Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
authorDominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 9 59758314f811
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Symbian3/SDK/Source/GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293.dita
Symbian3/SDK/Source/GUID-006C503D-1E52-450D-A4DA-8C19B141E09F.dita
Symbian3/SDK/Source/GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita
Symbian3/SDK/Source/GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E.dita
Symbian3/SDK/Source/GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e255924_href.jpg
Symbian3/SDK/Source/GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e259632_href.jpg
Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC-master.png
Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e52617_href.png
Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e58536_href.png
Symbian3/SDK/Source/GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06.dita
Symbian3/SDK/Source/GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e242288_href.png
Symbian3/SDK/Source/GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e246025_href.png
Symbian3/SDK/Source/GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F-master.png
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e57338_href.png
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e62220_href.png
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e67292_href.png
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e68994_href.png
Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e74136_href.png
Symbian3/SDK/Source/GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita
Symbian3/SDK/Source/GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e304438_href.jpg
Symbian3/SDK/Source/GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e310453_href.jpg
Symbian3/SDK/Source/GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e333616_href.png
Symbian3/SDK/Source/GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e339773_href.png
Symbian3/SDK/Source/GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e277562_href.png
Symbian3/SDK/Source/GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e281248_href.png
Symbian3/SDK/Source/GUID-02659624-4C27-573C-BE2E-0250D860BEA3.dita
Symbian3/SDK/Source/GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e7010_href.png
Symbian3/SDK/Source/GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e8285_href.png
Symbian3/SDK/Source/GUID-026E865E-12FA-59A9-B923-309B65790E23.dita
Symbian3/SDK/Source/GUID-02970C7B-5B98-50C7-A324-0DDD71120DEB-master.png
Symbian3/SDK/Source/GUID-02970C7B-5B98-50C7-A324-0DDD71120DEB_d0e185592_href.png
Symbian3/SDK/Source/GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita
Symbian3/SDK/Source/GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393621_href.png
Symbian3/SDK/Source/GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393783_href.png
Symbian3/SDK/Source/GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita
Symbian3/SDK/Source/GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413283_href.png
Symbian3/SDK/Source/GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413445_href.png
Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-3-1-1-7-1-7-1-11-1.dita
Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-6-1-1-4-1-6-1-7-1-11-1.dita
Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2.dita
Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e52515_href.png
Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e58606_href.png
Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e67355_href.png
Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e72556_href.png
Symbian3/SDK/Source/GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e214249_href.png
Symbian3/SDK/Source/GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e217986_href.png
Symbian3/SDK/Source/GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita
Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665-master.png
Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e53370_href.png
Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e59136_href.png
Symbian3/SDK/Source/GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e5846_href.png
Symbian3/SDK/Source/GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e7121_href.png
Symbian3/SDK/Source/GUID-04B044E7-5F10-47BC-B95F-27B62C2870E8.dita
Symbian3/SDK/Source/GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita
Symbian3/SDK/Source/GUID-0504B740-FB22-4399-B16D-BE6030B512B3.dita
Symbian3/SDK/Source/GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e190203_href.png
Symbian3/SDK/Source/GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e195211_href.png
Symbian3/SDK/Source/GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01.dita
Symbian3/SDK/Source/GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e63611_href.png
Symbian3/SDK/Source/GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e68845_href.png
Symbian3/SDK/Source/GUID-056165A7-E8A1-4868-8051-9EC58C5A3342.dita
Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188-master.png
Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188_d0e64300_href.png
Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188_d0e69537_href.png
Symbian3/SDK/Source/GUID-058D9E7F-5F4B-5656-BA49-16ED2D1451AE.dita
Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5-master.png
Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e66467_href.png
Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e71711_href.png
Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita
Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-6-1-1-4-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita
Symbian3/SDK/Source/GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita
Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-3-1-1-7-1-8-1-4-1.dita
Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-6-1-1-4-1-6-1-8-1-4-1.dita
Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC.dita
Symbian3/SDK/Source/GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita
Symbian3/SDK/Source/GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E.dita
Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B-master.png
Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e58084_href.png
Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e61483_href.png
Symbian3/SDK/Source/GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita
Symbian3/SDK/Source/GUID-07A42662-87A1-4537-89B9-F87DFC8481E8.dita
Symbian3/SDK/Source/GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e323166_href.jpg
Symbian3/SDK/Source/GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e329323_href.jpg
Symbian3/SDK/Source/GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita
Symbian3/SDK/Source/GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e240067_href.png
Symbian3/SDK/Source/GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e243804_href.png
Symbian3/SDK/Source/GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e11707_href.png
Symbian3/SDK/Source/GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e12976_href.png
Symbian3/SDK/Source/GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita
Symbian3/SDK/Source/GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e220093_href.png
Symbian3/SDK/Source/GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e223830_href.png
Symbian3/SDK/Source/GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e117574_href.png
Symbian3/SDK/Source/GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e124112_href.png
Symbian3/SDK/Source/GUID-08937880-C381-4C8B-AC17-7162C1243E23_d0e68807_href.png
Symbian3/SDK/Source/GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406599_href.png
Symbian3/SDK/Source/GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406761_href.png
Symbian3/SDK/Source/GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita
Symbian3/SDK/Source/GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e236873_href.png
Symbian3/SDK/Source/GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e240610_href.png
Symbian3/SDK/Source/GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e240374_href.png
Symbian3/SDK/Source/GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e244111_href.png
Symbian3/SDK/Source/GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e188596_href.png
Symbian3/SDK/Source/GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e193658_href.png
Symbian3/SDK/Source/GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469457_href.png
Symbian3/SDK/Source/GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469621_href.png
Symbian3/SDK/Source/GUID-092C18D4-A525-5562-9BF6-41435E400290.dita
Symbian3/SDK/Source/GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e71768_href.png
Symbian3/SDK/Source/GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e76917_href.png
Symbian3/SDK/Source/GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e354144_href.png
Symbian3/SDK/Source/GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e360224_href.png
Symbian3/SDK/Source/GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita
Symbian3/SDK/Source/GUID-0A13A931-016C-5325-97AF-2DE0B210DF2F.dita
Symbian3/SDK/Source/GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita
Symbian3/SDK/Source/GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4.dita
Symbian3/SDK/Source/GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita
Symbian3/SDK/Source/GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e4153_href.png
Symbian3/SDK/Source/GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e5428_href.png
Symbian3/SDK/Source/GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e79276_href.png
Symbian3/SDK/Source/GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e85988_href.png
Symbian3/SDK/Source/GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e327379_href.png
Symbian3/SDK/Source/GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e333536_href.png
Symbian3/SDK/Source/GUID-0B2245C5-766B-5CF1-8A0C-DD98CEEEBB05.dita
Symbian3/SDK/Source/GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita
Symbian3/SDK/Source/GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589.dita
Symbian3/SDK/Source/GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e265510_href.png
Symbian3/SDK/Source/GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e269218_href.png
Symbian3/SDK/Source/GUID-0C19D3F1-CF60-4760-8A77-242E14647738.dita
Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-3-1-1-9-1.dita
Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-6-1-1-4-1-8-1.dita
Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4.dita
Symbian3/SDK/Source/GUID-0C71B9C6-0782-5667-932A-07D770748DCE.dita
Symbian3/SDK/Source/GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita
Symbian3/SDK/Source/GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita
Symbian3/SDK/Source/GUID-0C85D5DE-D78D-4DDB-BA00-6278690C1047.dita
Symbian3/SDK/Source/GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita
Symbian3/SDK/Source/GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e36090_href.png
Symbian3/SDK/Source/GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e41657_href.png
Symbian3/SDK/Source/GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita
Symbian3/SDK/Source/GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e265567_href.png
Symbian3/SDK/Source/GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e269275_href.png
Symbian3/SDK/Source/GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8.dita
Symbian3/SDK/Source/GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E.dita
Symbian3/SDK/Source/GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita
Symbian3/SDK/Source/GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5.dita
Symbian3/SDK/Source/GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e78415_href.png
Symbian3/SDK/Source/GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e85127_href.png
Symbian3/SDK/Source/GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195.dita
Symbian3/SDK/Source/GUID-0DEC4D1B-2CD6-49BC-92E4-F0CB0BCBFA9D-master.jpg
Symbian3/SDK/Source/GUID-0DEC4D1B-2CD6-49BC-92E4-F0CB0BCBFA9D_d0e68726_href.jpg
Symbian3/SDK/Source/GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita
Symbian3/SDK/Source/GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e338735_href.png
Symbian3/SDK/Source/GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e344932_href.png
Symbian3/SDK/Source/GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e304358_href.jpg
Symbian3/SDK/Source/GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e310373_href.jpg
Symbian3/SDK/Source/GUID-0E695106-4139-4335-A11F-BD04418DD583.dita
Symbian3/SDK/Source/GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e281521_href.png
Symbian3/SDK/Source/GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e285207_href.png
Symbian3/SDK/Source/GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita
Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB-master.png
Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e52114_href.png
Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e57857_href.png
Symbian3/SDK/Source/GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita
Symbian3/SDK/Source/GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita
Symbian3/SDK/Source/GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita
Symbian3/SDK/Source/GUID-0F784804-8452-4C92-ABB3-56B81BAED744.dita
Symbian3/SDK/Source/GUID-0FD02CAD-B687-50C0-8E44-74ED9B4A936E-master.png
Symbian3/SDK/Source/GUID-0FD02CAD-B687-50C0-8E44-74ED9B4A936E_d0e382729_href.png
Symbian3/SDK/Source/GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e79728_href.png
Symbian3/SDK/Source/GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e86440_href.png
Symbian3/SDK/Source/GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e4248_href.png
Symbian3/SDK/Source/GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e5523_href.png
Symbian3/SDK/Source/GUID-107AE89E-901E-535F-8D1A-EE347D7822B1.dita
Symbian3/SDK/Source/GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e281237_href.png
Symbian3/SDK/Source/GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e284923_href.png
Symbian3/SDK/Source/GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e220786_href.png
Symbian3/SDK/Source/GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e224523_href.png
Symbian3/SDK/Source/GUID-10CF321F-3298-4527-BFF5-0351085C7C8C.dita
Symbian3/SDK/Source/GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita
Symbian3/SDK/Source/GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e333499_href.png
Symbian3/SDK/Source/GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e339656_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03-master.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e51581_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e56285_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e57133_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e64001_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e68838_href.png
Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e73982_href.png
Symbian3/SDK/Source/GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita
Symbian3/SDK/Source/GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita
Symbian3/SDK/Source/GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e107483_href.png
Symbian3/SDK/Source/GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e114021_href.png
Symbian3/SDK/Source/GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e13567_href.png
Symbian3/SDK/Source/GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e14831_href.png
Symbian3/SDK/Source/GUID-1248ED3E-438C-41E5-81D4-19FC721408BA_d0e81910_href.png
Symbian3/SDK/Source/GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita
Symbian3/SDK/Source/GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita
Symbian3/SDK/Source/GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita
Symbian3/SDK/Source/GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita
Symbian3/SDK/Source/GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e3434_href.png
Symbian3/SDK/Source/GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e4709_href.png
Symbian3/SDK/Source/GUID-1376F42B-1B1E-431E-8E60-4FDBAD34EA15.ditamap
Symbian3/SDK/Source/GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita
Symbian3/SDK/Source/GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita
Symbian3/SDK/Source/GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396107_href.png
Symbian3/SDK/Source/GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396269_href.png
Symbian3/SDK/Source/GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita
Symbian3/SDK/Source/GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e287313_href.png
Symbian3/SDK/Source/GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e290946_href.png
Symbian3/SDK/Source/GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e290621_href.png
Symbian3/SDK/Source/GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e294116_href.png
Symbian3/SDK/Source/GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita
Symbian3/SDK/Source/GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e176040_href.png
Symbian3/SDK/Source/GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e182634_href.png
Symbian3/SDK/Source/GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e338662_href.png
Symbian3/SDK/Source/GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e344859_href.png
Symbian3/SDK/Source/GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e333212_href.png
Symbian3/SDK/Source/GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e339369_href.png
Symbian3/SDK/Source/GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e15332_href.png
Symbian3/SDK/Source/GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e20914_href.png
Symbian3/SDK/Source/GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e109780_href.png
Symbian3/SDK/Source/GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e116318_href.png
Symbian3/SDK/Source/GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e186764_href.png
Symbian3/SDK/Source/GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e192309_href.png
Symbian3/SDK/Source/GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita
Symbian3/SDK/Source/GUID-16950F22-F5DE-4D52-8414-544105BA3200.dita
Symbian3/SDK/Source/GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e375093_href.png
Symbian3/SDK/Source/GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e381172_href.png
Symbian3/SDK/Source/GUID-16BA7B80-DC75-512C-AAEC-F571B5B73F09.dita
Symbian3/SDK/Source/GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e371844_href.png
Symbian3/SDK/Source/GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e377914_href.png
Symbian3/SDK/Source/GUID-16D0854D-55EF-4E22-B7D2-72603699BC59.dita
Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1.dita
Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-6-1-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D.dita
Symbian3/SDK/Source/GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e332834_href.png
Symbian3/SDK/Source/GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e338991_href.png
Symbian3/SDK/Source/GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3.dita
Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D-master.png
Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e62371_href.png
Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e63892_href.png
Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e67482_href.png
Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e69123_href.png
Symbian3/SDK/Source/GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e368182_href.png
Symbian3/SDK/Source/GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e374252_href.png
Symbian3/SDK/Source/GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita
Symbian3/SDK/Source/GUID-176913BA-3877-58E2-9E12-3606EE697813.dita
Symbian3/SDK/Source/GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita
Symbian3/SDK/Source/GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e332498_href.png
Symbian3/SDK/Source/GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e338655_href.png
Symbian3/SDK/Source/GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita
Symbian3/SDK/Source/GUID-182326EB-E818-4146-82D9-494D59E430B8-master.png
Symbian3/SDK/Source/GUID-182326EB-E818-4146-82D9-494D59E430B8_d0e81983_href.png
Symbian3/SDK/Source/GUID-18358882-A4DD-5010-BED7-4ACAE021495D.dita
Symbian3/SDK/Source/GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403005_href.png
Symbian3/SDK/Source/GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403167_href.png
Symbian3/SDK/Source/GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e207449_href.png
Symbian3/SDK/Source/GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e212244_href.png
Symbian3/SDK/Source/GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita
Symbian3/SDK/Source/GUID-18D92465-3F62-55CF-8229-EE811FD5F568.dita
Symbian3/SDK/Source/GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719.dita
Symbian3/SDK/Source/GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e272145_href.jpg
Symbian3/SDK/Source/GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e275826_href.jpg
Symbian3/SDK/Source/GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005.dita
Symbian3/SDK/Source/GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408.dita
Symbian3/SDK/Source/GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e277923_href.png
Symbian3/SDK/Source/GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e281609_href.png
Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-3-1-1-7-1-7-1-8-1.dita
Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1.dita
Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C.dita
Symbian3/SDK/Source/GUID-19E5720A-2B50-4515-AE90-A40C1BEDF4BA-master.png
Symbian3/SDK/Source/GUID-19E5720A-2B50-4515-AE90-A40C1BEDF4BA_d0e60568_href.png
Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e192246_href.png
Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e193926_href.png
Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e197254_href.png
Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e198934_href.png
Symbian3/SDK/Source/GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e70772_href.png
Symbian3/SDK/Source/GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e75806_href.png
Symbian3/SDK/Source/GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762.dita
Symbian3/SDK/Source/GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e240382_href.png
Symbian3/SDK/Source/GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e244119_href.png
Symbian3/SDK/Source/GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita
Symbian3/SDK/Source/GUID-1A905563-EF60-4A01-BC55-5B35904F96AB-master.png
Symbian3/SDK/Source/GUID-1A905563-EF60-4A01-BC55-5B35904F96AB_d0e63486_href.png
Symbian3/SDK/Source/GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita
Symbian3/SDK/Source/GUID-1AA392CB-F638-5D35-993E-4A26D67A7C98.dita
Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita
Symbian3/SDK/Source/GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123.dita
Symbian3/SDK/Source/GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita
Symbian3/SDK/Source/GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43.dita
Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita
Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1.dita
Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC.dita
Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-3-1-1-7-1-7-1.dita
Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-6-1-1-4-1-6-1-7-1.dita
Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389.dita
Symbian3/SDK/Source/GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita
Symbian3/SDK/Source/GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e249822_href.jpg
Symbian3/SDK/Source/GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e253554_href.jpg
Symbian3/SDK/Source/GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35.dita
Symbian3/SDK/Source/GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e215643_href.png
Symbian3/SDK/Source/GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e219380_href.png
Symbian3/SDK/Source/GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita
Symbian3/SDK/Source/GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita
Symbian3/SDK/Source/GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita
Symbian3/SDK/Source/GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita
Symbian3/SDK/Source/GUID-1D35F788-A470-5269-93E0-7C33A0013489.dita
Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B-master.png
Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e63101_href.png
Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e67264_href.png
Symbian3/SDK/Source/GUID-1D60BB43-4FF8-5632-A597-0DF00234F93E.dita
Symbian3/SDK/Source/GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e189660_href.png
Symbian3/SDK/Source/GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e194717_href.png
Symbian3/SDK/Source/GUID-1E1B040A-1C18-4F62-95F9-CE0ECE39C430.dita
Symbian3/SDK/Source/GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e311449_href.png
Symbian3/SDK/Source/GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e317843_href.png
Symbian3/SDK/Source/GUID-1E446762-AFE2-4198-8CD7-8C4466392543.dita
Symbian3/SDK/Source/GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F.dita
Symbian3/SDK/Source/GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7.dita
Symbian3/SDK/Source/GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e64452_href.png
Symbian3/SDK/Source/GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e65079_href.png
Symbian3/SDK/Source/GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e184889_href.png
Symbian3/SDK/Source/GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e191485_href.png
Symbian3/SDK/Source/GUID-1ECCCAA0-2E27-5E46-968D-4EBC4E5CE259.dita
Symbian3/SDK/Source/GUID-1F7B0EB9-50E9-4C11-B620-18054596F5AD.dita
Symbian3/SDK/Source/GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E.dita
Symbian3/SDK/Source/GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita
Symbian3/SDK/Source/GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita
Symbian3/SDK/Source/GUID-2022F702-9899-5798-8932-D70119C7177D.dita
Symbian3/SDK/Source/GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24.dita
Symbian3/SDK/Source/GUID-20B2C96A-9742-4CB0-A37F-19B65765E826.dita
Symbian3/SDK/Source/GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e202333_href.png
Symbian3/SDK/Source/GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e207341_href.png
Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8-master.png
Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e67767_href.png
Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e72920_href.png
Symbian3/SDK/Source/GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e4552_href.png
Symbian3/SDK/Source/GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e5827_href.png
Symbian3/SDK/Source/GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e237328_href.png
Symbian3/SDK/Source/GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e241065_href.png
Symbian3/SDK/Source/GUID-2161BD64-889B-5EAB-B023-1162FE9619DB.dita
Symbian3/SDK/Source/GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita
Symbian3/SDK/Source/GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e252674_href.jpg
Symbian3/SDK/Source/GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e256382_href.jpg
Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-5-1-7-1-6-1-3-1.dita
Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita
Symbian3/SDK/Source/GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita
Symbian3/SDK/Source/GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e283471_href.png
Symbian3/SDK/Source/GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e287157_href.png
Symbian3/SDK/Source/GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e190335_href.png
Symbian3/SDK/Source/GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e195343_href.png
Symbian3/SDK/Source/GUID-21F0EE0E-6CC6-44E7-9FED-FB8911E3C3A2-master.jpg
Symbian3/SDK/Source/GUID-21F0EE0E-6CC6-44E7-9FED-FB8911E3C3A2_d0e211670_href.jpg
Symbian3/SDK/Source/GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita
Symbian3/SDK/Source/GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e323992_href.png
Symbian3/SDK/Source/GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e330149_href.png
Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1-master.png
Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e36193_href.png
Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e41760_href.png
Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita
Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-5-1-7-1-6-1-7-1.dita
Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9.dita
Symbian3/SDK/Source/GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e70545_href.png
Symbian3/SDK/Source/GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e75600_href.png
Symbian3/SDK/Source/GUID-22699952-D032-5B69-B38A-43347A40A420_d0e355499_href.png
Symbian3/SDK/Source/GUID-22699952-D032-5B69-B38A-43347A40A420_d0e361579_href.png
Symbian3/SDK/Source/GUID-226EDECC-BE24-412C-945D-7EABE566282A.dita
Symbian3/SDK/Source/GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita
Symbian3/SDK/Source/GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita
Symbian3/SDK/Source/GUID-231840A2-255B-5200-8AD1-1D7667FCB448.dita
Symbian3/SDK/Source/GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e11032_href.png
Symbian3/SDK/Source/GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e12307_href.png
Symbian3/SDK/Source/GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083.dita
Symbian3/SDK/Source/GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e169182_href.jpg
Symbian3/SDK/Source/GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e175783_href.jpg
Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita
Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1.dita
Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3.dita
Symbian3/SDK/Source/GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e114300_href.png
Symbian3/SDK/Source/GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e120838_href.png
Symbian3/SDK/Source/GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87.dita
Symbian3/SDK/Source/GUID-2418E86F-BF82-4F2A-A056-5F1D0682C410.dita
Symbian3/SDK/Source/GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita
Symbian3/SDK/Source/GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0.dita
Symbian3/SDK/Source/GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e220109_href.png
Symbian3/SDK/Source/GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e223846_href.png
Symbian3/SDK/Source/GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e194954_href.png
Symbian3/SDK/Source/GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e199962_href.png
Symbian3/SDK/Source/GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e215812_href.png
Symbian3/SDK/Source/GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e219549_href.png
Symbian3/SDK/Source/GUID-24860917-0FE2-5C8F-B436-96928350996E.dita
Symbian3/SDK/Source/GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e129360_href.png
Symbian3/SDK/Source/GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e135898_href.png
Symbian3/SDK/Source/GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431.dita
Symbian3/SDK/Source/GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita
Symbian3/SDK/Source/GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e266785_href.png
Symbian3/SDK/Source/GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e270493_href.png
Symbian3/SDK/Source/GUID-25035286-5134-51F6-A3B6-C0DF0E802719.dita
Symbian3/SDK/Source/GUID-257212F5-A414-4F17-A786-DB3168218139_d0e67378_href.png
Symbian3/SDK/Source/GUID-257212F5-A414-4F17-A786-DB3168218139_d0e72579_href.png
Symbian3/SDK/Source/GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e214312_href.png
Symbian3/SDK/Source/GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e218049_href.png
Symbian3/SDK/Source/GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita
Symbian3/SDK/Source/GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita
Symbian3/SDK/Source/GUID-26399981-1E45-5578-851E-D234295F3B05_d0e76153_href.png
Symbian3/SDK/Source/GUID-26399981-1E45-5578-851E-D234295F3B05_d0e82865_href.png
Symbian3/SDK/Source/GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6.dita
Symbian3/SDK/Source/GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7.dita
Symbian3/SDK/Source/GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121.dita
Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2-master.png
Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e58092_href.png
Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e61491_href.png
Symbian3/SDK/Source/GUID-267D1E20-002E-53C7-8AE5-E063206C1562.dita
Symbian3/SDK/Source/GUID-268E2151-C758-46BF-86EB-F7D6EE44DBCF.dita
Symbian3/SDK/Source/GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e335760_href.png
Symbian3/SDK/Source/GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e341917_href.png
Symbian3/SDK/Source/GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e36237_href.png
Symbian3/SDK/Source/GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e41804_href.png
Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-3-1-1-5-1.dita
Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-6-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A.dita
Symbian3/SDK/Source/GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita
Symbian3/SDK/Source/GUID-27340D18-A31D-512E-920A-B06C784A978A.dita
Symbian3/SDK/Source/GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e264145_href.png
Symbian3/SDK/Source/GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e267853_href.png
Symbian3/SDK/Source/GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e299272_href.png
Symbian3/SDK/Source/GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e305299_href.png
Symbian3/SDK/Source/GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE.dita
Symbian3/SDK/Source/GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e287704_href.png
Symbian3/SDK/Source/GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e291337_href.png
Symbian3/SDK/Source/GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita
Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD-master.png
Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e56908_href.png
Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e63329_href.png
Symbian3/SDK/Source/GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita
Symbian3/SDK/Source/GUID-295341D9-A5FA-4F25-B681-C5B3264165AF.dita
Symbian3/SDK/Source/GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e336710_href.png
Symbian3/SDK/Source/GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e342907_href.png
Symbian3/SDK/Source/GUID-2972C100-EE68-5182-927C-3C46E8F5C0DD-master.png
Symbian3/SDK/Source/GUID-2972C100-EE68-5182-927C-3C46E8F5C0DD_d0e383129_href.png
Symbian3/SDK/Source/GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e220101_href.png
Symbian3/SDK/Source/GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e223838_href.png
Symbian3/SDK/Source/GUID-29E7942D-A00D-5771-9782-59260965C687_d0e213911_href.png
Symbian3/SDK/Source/GUID-29E7942D-A00D-5771-9782-59260965C687_d0e217648_href.png
Symbian3/SDK/Source/GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e299287_href.png
Symbian3/SDK/Source/GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e305314_href.png
Symbian3/SDK/Source/GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e375491_href.png
Symbian3/SDK/Source/GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e381570_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726-master.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e51533_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e57086_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e66217_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e68802_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e71460_href.png
Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e73947_href.png
Symbian3/SDK/Source/GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e213823_href.png
Symbian3/SDK/Source/GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e217560_href.png
Symbian3/SDK/Source/GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e262336_href.png
Symbian3/SDK/Source/GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e266044_href.png
Symbian3/SDK/Source/GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e42265_href.png
Symbian3/SDK/Source/GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e47820_href.png
Symbian3/SDK/Source/GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2807_href.png
Symbian3/SDK/Source/GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2909_href.png
Symbian3/SDK/Source/GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita
Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e18317_href.png
Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e48659_href.png
Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e54219_href.png
Symbian3/SDK/Source/GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita
Symbian3/SDK/Source/GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797.dita
Symbian3/SDK/Source/GUID-2C74E932-B1CA-434B-AF96-66D52D689620.dita
Symbian3/SDK/Source/GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e323436_href.jpg
Symbian3/SDK/Source/GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e329593_href.jpg
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B-master.png
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e57688_href.png
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e63133_href.png
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e68374_href.png
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e69226_href.png
Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e74392_href.png
Symbian3/SDK/Source/GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita
Symbian3/SDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita
Symbian3/SDK/Source/GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC.dita
Symbian3/SDK/Source/GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e135601_href.png
Symbian3/SDK/Source/GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e142135_href.png
Symbian3/SDK/Source/GUID-2D93660B-8206-5D20-85F5-6FFCF4549127.dita
Symbian3/SDK/Source/GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita
Symbian3/SDK/Source/GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita
Symbian3/SDK/Source/GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita
Symbian3/SDK/Source/GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita
Symbian3/SDK/Source/GUID-2E253B30-2611-546D-AE5B-1752556FC8E8.dita
Symbian3/SDK/Source/GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e172781_href.jpg
Symbian3/SDK/Source/GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e179376_href.jpg
Symbian3/SDK/Source/GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4.dita
Symbian3/SDK/Source/GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e202413_href.png
Symbian3/SDK/Source/GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e207421_href.png
Symbian3/SDK/Source/GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393415_href.png
Symbian3/SDK/Source/GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393577_href.png
Symbian3/SDK/Source/GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e221141_href.png
Symbian3/SDK/Source/GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e224878_href.png
Symbian3/SDK/Source/GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E.dita
Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-3-1-1-7-1-6-1.dita
Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-6-1-1-4-1-6-1-6-1.dita
Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497.dita
Symbian3/SDK/Source/GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e243046_href.png
Symbian3/SDK/Source/GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e246783_href.png
Symbian3/SDK/Source/GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e276117_href.png
Symbian3/SDK/Source/GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e279803_href.png
Symbian3/SDK/Source/GUID-2F987147-1435-55F1-B61C-8413C4AD8424.dita
Symbian3/SDK/Source/GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita
Symbian3/SDK/Source/GUID-2FDD1CAE-0FBF-4CC4-9C16-5AE4F538ED85.dita
Symbian3/SDK/Source/GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e321282_href.png
Symbian3/SDK/Source/GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e327439_href.png
Symbian3/SDK/Source/GUID-301488F8-B6D8-569A-B05E-19B740FE4C00.dita
Symbian3/SDK/Source/GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita
Symbian3/SDK/Source/GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita
Symbian3/SDK/Source/GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita
Symbian3/SDK/Source/GUID-30647807-A0D2-4D96-975A-BF1800749977.dita
Symbian3/SDK/Source/GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e107453_href.png
Symbian3/SDK/Source/GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e113991_href.png
Symbian3/SDK/Source/GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3.dita
Symbian3/SDK/Source/GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita
Symbian3/SDK/Source/GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e10243_href.png
Symbian3/SDK/Source/GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e11518_href.png
Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita
Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1.dita
Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686.dita
Symbian3/SDK/Source/GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e76797_href.png
Symbian3/SDK/Source/GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e83509_href.png
Symbian3/SDK/Source/GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita
Symbian3/SDK/Source/GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e287369_href.png
Symbian3/SDK/Source/GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e291002_href.png
Symbian3/SDK/Source/GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e3192_href.png
Symbian3/SDK/Source/GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e4467_href.png
Symbian3/SDK/Source/GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita
Symbian3/SDK/Source/GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e107413_href.png
Symbian3/SDK/Source/GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e113951_href.png
Symbian3/SDK/Source/GUID-330FBB90-E622-4FD1-A189-64656F68A10D.dita
Symbian3/SDK/Source/GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita
Symbian3/SDK/Source/GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita
Symbian3/SDK/Source/GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e76412_href.png
Symbian3/SDK/Source/GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e83124_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672-master.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e36608_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e42175_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e51756_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e57359_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e68090_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e69011_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e73223_href.png
Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e74156_href.png
Symbian3/SDK/Source/GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita
Symbian3/SDK/Source/GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita
Symbian3/SDK/Source/GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita
Symbian3/SDK/Source/GUID-341CE215-056C-45B6-ABE2-C75442605147_d0e62833_href.png
Symbian3/SDK/Source/GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e131819_href.jpg
Symbian3/SDK/Source/GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e138353_href.jpg
Symbian3/SDK/Source/GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita
Symbian3/SDK/Source/GUID-34BEF44B-EFBE-41EB-941D-0410FCB6782E.dita
Symbian3/SDK/Source/GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita
Symbian3/SDK/Source/GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e315024_href.png
Symbian3/SDK/Source/GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e321418_href.png
Symbian3/SDK/Source/GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e192564_href.png
Symbian3/SDK/Source/GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e197572_href.png
Symbian3/SDK/Source/GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e254247_href.png
Symbian3/SDK/Source/GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e257954_href.png
Symbian3/SDK/Source/GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e7042_href.png
Symbian3/SDK/Source/GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e8317_href.png
Symbian3/SDK/Source/GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e3705_href.png
Symbian3/SDK/Source/GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e4980_href.png
Symbian3/SDK/Source/GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita
Symbian3/SDK/Source/GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita
Symbian3/SDK/Source/GUID-36221068-4E6D-4E03-AF9A-AD9465F1C6B6-master.png
Symbian3/SDK/Source/GUID-36221068-4E6D-4E03-AF9A-AD9465F1C6B6_d0e63652_href.png
Symbian3/SDK/Source/GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e64475_href.png
Symbian3/SDK/Source/GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e65306_href.png
Symbian3/SDK/Source/GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita
Symbian3/SDK/Source/GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e36549_href.png
Symbian3/SDK/Source/GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e42116_href.png
Symbian3/SDK/Source/GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita
Symbian3/SDK/Source/GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita
Symbian3/SDK/Source/GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita
Symbian3/SDK/Source/GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e233427_href.png
Symbian3/SDK/Source/GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e237164_href.png
Symbian3/SDK/Source/GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418.dita
Symbian3/SDK/Source/GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e3183_href.png
Symbian3/SDK/Source/GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e4458_href.png
Symbian3/SDK/Source/GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e10475_href.png
Symbian3/SDK/Source/GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e9200_href.png
Symbian3/SDK/Source/GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e299302_href.png
Symbian3/SDK/Source/GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e305329_href.png
Symbian3/SDK/Source/GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e3412_href.png
Symbian3/SDK/Source/GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e4687_href.png
Symbian3/SDK/Source/GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e324269_href.png
Symbian3/SDK/Source/GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e330426_href.png
Symbian3/SDK/Source/GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e220875_href.png
Symbian3/SDK/Source/GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e224612_href.png
Symbian3/SDK/Source/GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e323490_href.jpg
Symbian3/SDK/Source/GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e329647_href.jpg
Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita
Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-6-1-1-4-1-6-1-3-1.dita
Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita
Symbian3/SDK/Source/GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e280262_href.png
Symbian3/SDK/Source/GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e283948_href.png
Symbian3/SDK/Source/GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita
Symbian3/SDK/Source/GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita
Symbian3/SDK/Source/GUID-383A96FD-99C3-593C-B7A2-58153F4050DE-master.png
Symbian3/SDK/Source/GUID-383A96FD-99C3-593C-B7A2-58153F4050DE_d0e383779_href.png
Symbian3/SDK/Source/GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e176377_href.png
Symbian3/SDK/Source/GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e182971_href.png
Symbian3/SDK/Source/GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9.dita
Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita
Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1.dita
Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107.dita
Symbian3/SDK/Source/GUID-38C8F8B0-C259-5B03-A13E-10DBED4071F2.dita
Symbian3/SDK/Source/GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e213777_href.png
Symbian3/SDK/Source/GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e217514_href.png
Symbian3/SDK/Source/GUID-39186342-960A-46A4-BC35-851F53665FA8.dita
Symbian3/SDK/Source/GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e376424_href.png
Symbian3/SDK/Source/GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e382491_href.png
Symbian3/SDK/Source/GUID-3978E21E-9B7A-4BEA-9B0A-10C247F6451B_d0e65859_href.png
Symbian3/SDK/Source/GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e299332_href.png
Symbian3/SDK/Source/GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e305359_href.png
Symbian3/SDK/Source/GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita
Symbian3/SDK/Source/GUID-39A995DC-F047-4B41-A60D-27063CE329BE.dita
Symbian3/SDK/Source/GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e244607_href.png
Symbian3/SDK/Source/GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e248344_href.png
Symbian3/SDK/Source/GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita
Symbian3/SDK/Source/GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e41135_href.png
Symbian3/SDK/Source/GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e46692_href.png
Symbian3/SDK/Source/GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita
Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD-master.png
Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e52689_href.png
Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e58816_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1-master.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51732_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51813_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57314_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57418_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57765_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e58473_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62127_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62495_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e68976_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e69055_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74118_href.png
Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74200_href.png
Symbian3/SDK/Source/GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita
Symbian3/SDK/Source/GUID-3B0602F1-4294-43C4-9E7A-B1A33291C22F.dita
Symbian3/SDK/Source/GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e266338_href.png
Symbian3/SDK/Source/GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e270046_href.png
Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE-master.png
Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e65995_href.png
Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e71245_href.png
Symbian3/SDK/Source/GUID-3BB539EF-E1DE-4EB4-A9F0-BB31430DD64A-master.png
Symbian3/SDK/Source/GUID-3BB539EF-E1DE-4EB4-A9F0-BB31430DD64A_d0e63738_href.png
Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03-master.png
Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e58883_href.png
Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e59473_href.png
Symbian3/SDK/Source/GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita
Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC-master.png
Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e58928_href.png
Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e59856_href.png
Symbian3/SDK/Source/GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e322219_href.png
Symbian3/SDK/Source/GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e328376_href.png
Symbian3/SDK/Source/GUID-3CA039D8-A74D-4C9E-B4F5-6E153C7F65A1.dita
Symbian3/SDK/Source/GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B.dita
Symbian3/SDK/Source/GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e196324_href.png
Symbian3/SDK/Source/GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e201332_href.png
Symbian3/SDK/Source/GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e76331_href.png
Symbian3/SDK/Source/GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e83043_href.png
Symbian3/SDK/Source/GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita
Symbian3/SDK/Source/GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e184580_href.png
Symbian3/SDK/Source/GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e191176_href.png
Symbian3/SDK/Source/GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572.dita
Symbian3/SDK/Source/GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431356_href.png
Symbian3/SDK/Source/GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431518_href.png
Symbian3/SDK/Source/GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e213809_href.png
Symbian3/SDK/Source/GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e217546_href.png
Symbian3/SDK/Source/GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e133201_href.png
Symbian3/SDK/Source/GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e139735_href.png
Symbian3/SDK/Source/GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e194049_href.png
Symbian3/SDK/Source/GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e199057_href.png
Symbian3/SDK/Source/GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A.dita
Symbian3/SDK/Source/GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e124947_href.png
Symbian3/SDK/Source/GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e131485_href.png
Symbian3/SDK/Source/GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e260274_href.png
Symbian3/SDK/Source/GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e263982_href.png
Symbian3/SDK/Source/GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e64488_href.png
Symbian3/SDK/Source/GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e65436_href.png
Symbian3/SDK/Source/GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C.dita
Symbian3/SDK/Source/GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita
Symbian3/SDK/Source/GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita
Symbian3/SDK/Source/GUID-3FB8AC96-209B-5B1E-8139-BA2D858CBF2F.dita
Symbian3/SDK/Source/GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita
Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-3-1-1-7-1-7-1-3-1.dita
Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1.dita
Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81.dita
Symbian3/SDK/Source/GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e3474_href.png
Symbian3/SDK/Source/GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e4749_href.png
Symbian3/SDK/Source/GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e357820_href.png
Symbian3/SDK/Source/GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e363900_href.png
Symbian3/SDK/Source/GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e196473_href.png
Symbian3/SDK/Source/GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e201481_href.png
Symbian3/SDK/Source/GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita
Symbian3/SDK/Source/GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e11254_href.png
Symbian3/SDK/Source/GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e12529_href.png
Symbian3/SDK/Source/GUID-4067B0E6-9431-4325-95F7-78B143EED326.dita
Symbian3/SDK/Source/GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e189180_href.png
Symbian3/SDK/Source/GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e194242_href.png
Symbian3/SDK/Source/GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita
Symbian3/SDK/Source/GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e196422_href.png
Symbian3/SDK/Source/GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e201430_href.png
Symbian3/SDK/Source/GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e247945_href.png
Symbian3/SDK/Source/GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e251682_href.png
Symbian3/SDK/Source/GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita
Symbian3/SDK/Source/GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e244714_href.png
Symbian3/SDK/Source/GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e248451_href.png
Symbian3/SDK/Source/GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita
Symbian3/SDK/Source/GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e107311_href.png
Symbian3/SDK/Source/GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e113849_href.png
Symbian3/SDK/Source/GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita
Symbian3/SDK/Source/GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita
Symbian3/SDK/Source/GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita
Symbian3/SDK/Source/GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2777_href.png
Symbian3/SDK/Source/GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2879_href.png
Symbian3/SDK/Source/GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e300969_href.png
Symbian3/SDK/Source/GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e306996_href.png
Symbian3/SDK/Source/GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6.dita
Symbian3/SDK/Source/GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e287092_href.png
Symbian3/SDK/Source/GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e290725_href.png
Symbian3/SDK/Source/GUID-42833109-F8C2-57FC-9995-0461698A19FF.dita
Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e15936_href.png
Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e46282_href.png
Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e51838_href.png
Symbian3/SDK/Source/GUID-431119D1-1B55-4503-905E-6E290FA241CE-master.png
Symbian3/SDK/Source/GUID-431119D1-1B55-4503-905E-6E290FA241CE_d0e63537_href.png
Symbian3/SDK/Source/GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e303218_href.png
Symbian3/SDK/Source/GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e309233_href.png
Symbian3/SDK/Source/GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita
Symbian3/SDK/Source/GUID-4352F2A7-2498-40AA-A335-4A8407497976.dita
Symbian3/SDK/Source/GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e332416_href.png
Symbian3/SDK/Source/GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e338573_href.png
Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36160_href.png
Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36212_href.png
Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41727_href.png
Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41779_href.png
Symbian3/SDK/Source/GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita
Symbian3/SDK/Source/GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e244320_href.png
Symbian3/SDK/Source/GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e248057_href.png
Symbian3/SDK/Source/GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406701_href.png
Symbian3/SDK/Source/GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406863_href.png
Symbian3/SDK/Source/GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e115760_href.png
Symbian3/SDK/Source/GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e122298_href.png
Symbian3/SDK/Source/GUID-44B0C58F-B938-4F69-B80A-1EB632EFD434.ditamap
Symbian3/SDK/Source/GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita
Symbian3/SDK/Source/GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64430_href.png
Symbian3/SDK/Source/GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64836_href.png
Symbian3/SDK/Source/GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e115768_href.png
Symbian3/SDK/Source/GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e122306_href.png
Symbian3/SDK/Source/GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e41397_href.png
Symbian3/SDK/Source/GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e46954_href.png
Symbian3/SDK/Source/GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita
Symbian3/SDK/Source/GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e184851_href.png
Symbian3/SDK/Source/GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e191447_href.png
Symbian3/SDK/Source/GUID-465F0DEF-935F-46D6-B711-A4D362DAD619.dita
Symbian3/SDK/Source/GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e79385_href.png
Symbian3/SDK/Source/GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e86097_href.png
Symbian3/SDK/Source/GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e336132_href.jpg
Symbian3/SDK/Source/GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e342329_href.jpg
Symbian3/SDK/Source/GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e341486_href.png
Symbian3/SDK/Source/GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e347683_href.png
Symbian3/SDK/Source/GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e304255_href.jpg
Symbian3/SDK/Source/GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e310270_href.jpg
Symbian3/SDK/Source/GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e230623_href.png
Symbian3/SDK/Source/GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e234360_href.png
Symbian3/SDK/Source/GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e201499_href.png
Symbian3/SDK/Source/GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e206507_href.png
Symbian3/SDK/Source/GUID-47851718-8DCA-57F5-8520-7044048A5852.dita
Symbian3/SDK/Source/GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e76227_href.png
Symbian3/SDK/Source/GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e82939_href.png
Symbian3/SDK/Source/GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e70851_href.png
Symbian3/SDK/Source/GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e75884_href.png
Symbian3/SDK/Source/GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e76342_href.png
Symbian3/SDK/Source/GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e83054_href.png
Symbian3/SDK/Source/GUID-4820CA37-982D-57BC-8829-498192801B1E.dita
Symbian3/SDK/Source/GUID-48363190-6FFB-4230-84B4-2E521EA51365.dita
Symbian3/SDK/Source/GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita
Symbian3/SDK/Source/GUID-48482288-B60B-477A-8E28-132F7CBE2C94.dita
Symbian3/SDK/Source/GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e322748_href.jpg
Symbian3/SDK/Source/GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e328905_href.jpg
Symbian3/SDK/Source/GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita
Symbian3/SDK/Source/GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830.dita
Symbian3/SDK/Source/GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e375455_href.png
Symbian3/SDK/Source/GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e381534_href.png
Symbian3/SDK/Source/GUID-48ED7013-B1B7-5E86-AC09-599C4499191D.dita
Symbian3/SDK/Source/GUID-49205F79-C17B-4126-BDB2-D759B91B5894.dita
Symbian3/SDK/Source/GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e215301_href.png
Symbian3/SDK/Source/GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e219038_href.png
Symbian3/SDK/Source/GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e266550_href.png
Symbian3/SDK/Source/GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e270258_href.png
Symbian3/SDK/Source/GUID-49363088-CE0B-558D-8E86-48400E4F7C2F.dita
Symbian3/SDK/Source/GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita
Symbian3/SDK/Source/GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita
Symbian3/SDK/Source/GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271.dita
Symbian3/SDK/Source/GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita
Symbian3/SDK/Source/GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e169416_href.jpg
Symbian3/SDK/Source/GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e176017_href.jpg
Symbian3/SDK/Source/GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e177144_href.png
Symbian3/SDK/Source/GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e183738_href.png
Symbian3/SDK/Source/GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita
Symbian3/SDK/Source/GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita
Symbian3/SDK/Source/GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276.dita
Symbian3/SDK/Source/GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e240294_href.png
Symbian3/SDK/Source/GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e244031_href.png
Symbian3/SDK/Source/GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita
Symbian3/SDK/Source/GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e79196_href.png
Symbian3/SDK/Source/GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e85908_href.png
Symbian3/SDK/Source/GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e190311_href.png
Symbian3/SDK/Source/GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e195319_href.png
Symbian3/SDK/Source/GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e221356_href.png
Symbian3/SDK/Source/GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e225093_href.png
Symbian3/SDK/Source/GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita
Symbian3/SDK/Source/GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023.dita
Symbian3/SDK/Source/GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e195578_href.png
Symbian3/SDK/Source/GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e200586_href.png
Symbian3/SDK/Source/GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8.dita
Symbian3/SDK/Source/GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e3498_href.png
Symbian3/SDK/Source/GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e4773_href.png
Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C-master.png
Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e40663_href.png
Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e46220_href.png
Symbian3/SDK/Source/GUID-4C9C236D-71A7-5A5D-8C1C-F574DA604AF6.dita
Symbian3/SDK/Source/GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita
Symbian3/SDK/Source/GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita
Symbian3/SDK/Source/GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e201428_href.png
Symbian3/SDK/Source/GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e206436_href.png
Symbian3/SDK/Source/GUID-4D6C478A-33BA-4D74-9B82-7133ABFFB0D2_d0e67039_href.png
Symbian3/SDK/Source/GUID-4D92E302-3145-4453-AFA1-F5C5BDF933F9.dita
Symbian3/SDK/Source/GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e108913_href.png
Symbian3/SDK/Source/GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e115451_href.png
Symbian3/SDK/Source/GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e276358_href.png
Symbian3/SDK/Source/GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e280044_href.png
Symbian3/SDK/Source/GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e192678_href.png
Symbian3/SDK/Source/GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e197686_href.png
Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-3-1-1-7-1-7-1-6-1.dita
Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1.dita
Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91.dita
Symbian3/SDK/Source/GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74.dita
Symbian3/SDK/Source/GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e306923_href.png
Symbian3/SDK/Source/GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e313317_href.png
Symbian3/SDK/Source/GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C.dita
Symbian3/SDK/Source/GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A.dita
Symbian3/SDK/Source/GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita
Symbian3/SDK/Source/GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e323870_href.jpg
Symbian3/SDK/Source/GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e330027_href.jpg
Symbian3/SDK/Source/GUID-504EB40B-AC98-5AB2-9263-185887C29A7E.dita
Symbian3/SDK/Source/GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e278106_href.jpg
Symbian3/SDK/Source/GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e281792_href.jpg
Symbian3/SDK/Source/GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5.dita
Symbian3/SDK/Source/GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita
Symbian3/SDK/Source/GUID-50BE8F1A-513A-433C-B045-66658FC226D7.dita
Symbian3/SDK/Source/GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita
Symbian3/SDK/Source/GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita
Symbian3/SDK/Source/GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226.dita
Symbian3/SDK/Source/GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e5873_href.png
Symbian3/SDK/Source/GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e7148_href.png
Symbian3/SDK/Source/GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e215568_href.png
Symbian3/SDK/Source/GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e219305_href.png
Symbian3/SDK/Source/GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e135615_href.png
Symbian3/SDK/Source/GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e142149_href.png
Symbian3/SDK/Source/GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e271836_href.jpg
Symbian3/SDK/Source/GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e275517_href.jpg
Symbian3/SDK/Source/GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e336843_href.png
Symbian3/SDK/Source/GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e343040_href.png
Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096-master.png
Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e52712_href.png
Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e58798_href.png
Symbian3/SDK/Source/GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e108759_href.png
Symbian3/SDK/Source/GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e115297_href.png
Symbian3/SDK/Source/GUID-51F43258-B3D8-5EC9-85EF-67F09499C253.dita
Symbian3/SDK/Source/GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e63705_href.png
Symbian3/SDK/Source/GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e68930_href.png
Symbian3/SDK/Source/GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e273833_href.png
Symbian3/SDK/Source/GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e277514_href.png
Symbian3/SDK/Source/GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427403_href.png
Symbian3/SDK/Source/GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427565_href.png
Symbian3/SDK/Source/GUID-52783B69-09FC-4123-849A-79FF61406129_d0e38122_href.png
Symbian3/SDK/Source/GUID-52783B69-09FC-4123-849A-79FF61406129_d0e43689_href.png
Symbian3/SDK/Source/GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e357398_href.png
Symbian3/SDK/Source/GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e363478_href.png
Symbian3/SDK/Source/GUID-53212F7A-938B-48F6-BC82-30F7494FF8A7-master.png
Symbian3/SDK/Source/GUID-53212F7A-938B-48F6-BC82-30F7494FF8A7_d0e82132_href.png
Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD-master.png
Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e57718_href.png
Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e67159_href.png
Symbian3/SDK/Source/GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e309152_href.png
Symbian3/SDK/Source/GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e315546_href.png
Symbian3/SDK/Source/GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e76242_href.png
Symbian3/SDK/Source/GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e82954_href.png
Symbian3/SDK/Source/GUID-535954FD-2501-5C80-AD86-AC73A86B18B5.dita
Symbian3/SDK/Source/GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e107147_href.png
Symbian3/SDK/Source/GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e113685_href.png
Symbian3/SDK/Source/GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita
Symbian3/SDK/Source/GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e230704_href.png
Symbian3/SDK/Source/GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e234441_href.png
Symbian3/SDK/Source/GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e281197_href.png
Symbian3/SDK/Source/GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e284883_href.png
Symbian3/SDK/Source/GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita
Symbian3/SDK/Source/GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C.dita
Symbian3/SDK/Source/GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e228979_href.png
Symbian3/SDK/Source/GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e232716_href.png
Symbian3/SDK/Source/GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e164369_href.jpg
Symbian3/SDK/Source/GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e170970_href.jpg
Symbian3/SDK/Source/GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF.dita
Symbian3/SDK/Source/GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D.dita
Symbian3/SDK/Source/GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e191959_href.png
Symbian3/SDK/Source/GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e196967_href.png
Symbian3/SDK/Source/GUID-5546C1F6-2110-5031-99BC-66E6958D513B.dita
Symbian3/SDK/Source/GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e336970_href.png
Symbian3/SDK/Source/GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e343167_href.png
Symbian3/SDK/Source/GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e75879_href.png
Symbian3/SDK/Source/GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e82591_href.png
Symbian3/SDK/Source/GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita
Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita
Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-5-1-5-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita
Symbian3/SDK/Source/GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita
Symbian3/SDK/Source/GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e324956_href.png
Symbian3/SDK/Source/GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e331113_href.png
Symbian3/SDK/Source/GUID-567718E7-0267-4641-A9E3-538D893362D2.dita
Symbian3/SDK/Source/GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e132911_href.png
Symbian3/SDK/Source/GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e139445_href.png
Symbian3/SDK/Source/GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8.dita
Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A-master.png
Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e63781_href.png
Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e69003_href.png
Symbian3/SDK/Source/GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e148577_href.png
Symbian3/SDK/Source/GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e155098_href.png
Symbian3/SDK/Source/GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e132621_href.png
Symbian3/SDK/Source/GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e139155_href.png
Symbian3/SDK/Source/GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita
Symbian3/SDK/Source/GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e292667_href.png
Symbian3/SDK/Source/GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e293517_href.png
Symbian3/SDK/Source/GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e3231_href.png
Symbian3/SDK/Source/GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e4506_href.png
Symbian3/SDK/Source/GUID-57F38146-1DA3-5657-ADF4-76DF740363C5.dita
Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita
Symbian3/SDK/Source/GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e107534_href.png
Symbian3/SDK/Source/GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e114072_href.png
Symbian3/SDK/Source/GUID-5857377F-B90D-5149-9485-5919C12B8F13.dita
Symbian3/SDK/Source/GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita
Symbian3/SDK/Source/GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita
Symbian3/SDK/Source/GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita
Symbian3/SDK/Source/GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e220630_href.png
Symbian3/SDK/Source/GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e224367_href.png
Symbian3/SDK/Source/GUID-598140D3-6C92-5D8E-B204-C7197C6E404D-master.png
Symbian3/SDK/Source/GUID-598140D3-6C92-5D8E-B204-C7197C6E404D_d0e384680_href.png
Symbian3/SDK/Source/GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita
Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e16785_href.png
Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e47131_href.png
Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e52687_href.png
Symbian3/SDK/Source/GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e240099_href.png
Symbian3/SDK/Source/GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e243836_href.png
Symbian3/SDK/Source/GUID-59D86225-4727-5B3F-9117-7815B4900445-master.jpg
Symbian3/SDK/Source/GUID-59D86225-4727-5B3F-9117-7815B4900445_d0e185535_href.jpg
Symbian3/SDK/Source/GUID-59ED6D14-0976-58AE-8DDC-73F051866406.dita
Symbian3/SDK/Source/GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e69489_href.png
Symbian3/SDK/Source/GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e74654_href.png
Symbian3/SDK/Source/GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita
Symbian3/SDK/Source/GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita
Symbian3/SDK/Source/GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e371630_href.png
Symbian3/SDK/Source/GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e377700_href.png
Symbian3/SDK/Source/GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e317563_href.png
Symbian3/SDK/Source/GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e323720_href.png
Symbian3/SDK/Source/GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e128056_href.png
Symbian3/SDK/Source/GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e134594_href.png
Symbian3/SDK/Source/GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e230759_href.png
Symbian3/SDK/Source/GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e234496_href.png
Symbian3/SDK/Source/GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389217_href.jpg
Symbian3/SDK/Source/GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389379_href.jpg
Symbian3/SDK/Source/GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e74056_href.png
Symbian3/SDK/Source/GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e79176_href.png
Symbian3/SDK/Source/GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita
Symbian3/SDK/Source/GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e75346_href.png
Symbian3/SDK/Source/GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e80478_href.png
Symbian3/SDK/Source/GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita
Symbian3/SDK/Source/GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6.dita
Symbian3/SDK/Source/GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e336267_href.jpg
Symbian3/SDK/Source/GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e342464_href.jpg
Symbian3/SDK/Source/GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e266965_href.png
Symbian3/SDK/Source/GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e270673_href.png
Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE-master.png
Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e64131_href.png
Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e69363_href.png
Symbian3/SDK/Source/GUID-5D408616-8A7A-4882-A64F-4BF6EC3FD6AA-master.png
Symbian3/SDK/Source/GUID-5D408616-8A7A-4882-A64F-4BF6EC3FD6AA_d0e67451_href.png
Symbian3/SDK/Source/GUID-5D712F4A-E956-543D-BCC0-91107C6E4717.dita
Symbian3/SDK/Source/GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e38281_href.png
Symbian3/SDK/Source/GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e43848_href.png
Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e19011_href.png
Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e49355_href.png
Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e54913_href.png
Symbian3/SDK/Source/GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e281245_href.png
Symbian3/SDK/Source/GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e284931_href.png
Symbian3/SDK/Source/GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e3219_href.png
Symbian3/SDK/Source/GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e4494_href.png
Symbian3/SDK/Source/GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita
Symbian3/SDK/Source/GUID-5E8C5D5C-8B84-4126-A8A8-F61F7DA0AD32_d0e65812_href.png
Symbian3/SDK/Source/GUID-5F4510C9-5B16-593A-A225-37606800915B.dita
Symbian3/SDK/Source/GUID-5F72210C-1636-584D-9D89-987D25136975-master.png
Symbian3/SDK/Source/GUID-5F72210C-1636-584D-9D89-987D25136975_d0e382613_href.png
Symbian3/SDK/Source/GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e290304_href.png
Symbian3/SDK/Source/GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e293561_href.png
Symbian3/SDK/Source/GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72.dita
Symbian3/SDK/Source/GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e128297_href.png
Symbian3/SDK/Source/GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e134835_href.png
Symbian3/SDK/Source/GUID-6067DF61-D32F-4029-ADCD-9E69CA564212.dita
Symbian3/SDK/Source/GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396128_href.png
Symbian3/SDK/Source/GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396290_href.png
Symbian3/SDK/Source/GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita
Symbian3/SDK/Source/GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita
Symbian3/SDK/Source/GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE.dita
Symbian3/SDK/Source/GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita
Symbian3/SDK/Source/GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC.dita
Symbian3/SDK/Source/GUID-6146A5BB-1AC1-48D4-9EB8-7FA4EC35BFF2.dita
Symbian3/SDK/Source/GUID-6163197B-7983-5FB7-9B92-02E490A900FB.dita
Symbian3/SDK/Source/GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6.dita
Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-3-1-1-8-1.dita
Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-6-1-1-4-1-7-1.dita
Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492.dita
Symbian3/SDK/Source/GUID-61BB12AA-7467-5633-8E4C-54D82AFF0F5E-master.jpg
Symbian3/SDK/Source/GUID-61BB12AA-7467-5633-8E4C-54D82AFF0F5E_d0e185528_href.jpg
Symbian3/SDK/Source/GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e41032_href.png
Symbian3/SDK/Source/GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e46589_href.png
Symbian3/SDK/Source/GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e107083_href.png
Symbian3/SDK/Source/GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e113621_href.png
Symbian3/SDK/Source/GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e276648_href.png
Symbian3/SDK/Source/GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e280334_href.png
Symbian3/SDK/Source/GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e332712_href.png
Symbian3/SDK/Source/GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e338869_href.png
Symbian3/SDK/Source/GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e4681_href.png
Symbian3/SDK/Source/GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e5956_href.png
Symbian3/SDK/Source/GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e11012_href.png
Symbian3/SDK/Source/GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e12287_href.png
Symbian3/SDK/Source/GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e306657_href.png
Symbian3/SDK/Source/GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e313051_href.png
Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e15172_href.png
Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e45518_href.png
Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e51074_href.png
Symbian3/SDK/Source/GUID-63C60154-2A50-5A39-A188-515A607F498B.dita
Symbian3/SDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita
Symbian3/SDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-5-1-6-1-5-1-3-1.dita
Symbian3/SDK/Source/GUID-6408C26A-2736-59A9-B785-6B119143619B.dita
Symbian3/SDK/Source/GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e184568_href.png
Symbian3/SDK/Source/GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e191164_href.png
Symbian3/SDK/Source/GUID-644810EC-7D5E-4569-834B-C207447B88A3.dita
Symbian3/SDK/Source/GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e111639_href.png
Symbian3/SDK/Source/GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e118177_href.png
Symbian3/SDK/Source/GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita
Symbian3/SDK/Source/GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e262462_href.png
Symbian3/SDK/Source/GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e266170_href.png
Symbian3/SDK/Source/GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341.dita
Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-3-1-1-8-1-6-1.dita
Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-6-1-1-4-1-7-1-6-1.dita
Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7.dita
Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1.dita
Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-6-1-1-4-1-6-1-5-1.dita
Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21.dita
Symbian3/SDK/Source/GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita
Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e40462_href.png
Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e46022_href.png
Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e57538_href.png
Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e74290_href.png
Symbian3/SDK/Source/GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e286968_href.jpg
Symbian3/SDK/Source/GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e290601_href.jpg
Symbian3/SDK/Source/GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e308626_href.png
Symbian3/SDK/Source/GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e315020_href.png
Symbian3/SDK/Source/GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579.dita
Symbian3/SDK/Source/GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e77550_href.png
Symbian3/SDK/Source/GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e84262_href.png
Symbian3/SDK/Source/GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita
Symbian3/SDK/Source/GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C.dita
Symbian3/SDK/Source/GUID-669190F8-3BE9-58FC-B689-00F06FDAD74D-master.png
Symbian3/SDK/Source/GUID-669190F8-3BE9-58FC-B689-00F06FDAD74D_d0e382307_href.png
Symbian3/SDK/Source/GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE.dita
Symbian3/SDK/Source/GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e351163_href.png
Symbian3/SDK/Source/GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e357243_href.png
Symbian3/SDK/Source/GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita
Symbian3/SDK/Source/GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e168995_href.jpg
Symbian3/SDK/Source/GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e175596_href.jpg
Symbian3/SDK/Source/GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3.dita
Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-3-1.dita
Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-3-1.dita
Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-6820BB9E-F0B9-4493-A4C3-686238527C9B-master.png
Symbian3/SDK/Source/GUID-6820BB9E-F0B9-4493-A4C3-686238527C9B_d0e60647_href.png
Symbian3/SDK/Source/GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita
Symbian3/SDK/Source/GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita
Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-3-1-1-9-1-4-1.dita
Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-6-1-1-4-1-8-1-4-1.dita
Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F.dita
Symbian3/SDK/Source/GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita
Symbian3/SDK/Source/GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8.dita
Symbian3/SDK/Source/GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e188429_href.png
Symbian3/SDK/Source/GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e193491_href.png
Symbian3/SDK/Source/GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1315_href.jpg
Symbian3/SDK/Source/GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1394_href.jpg
Symbian3/SDK/Source/GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e189143_href.png
Symbian3/SDK/Source/GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e194205_href.png
Symbian3/SDK/Source/GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita
Symbian3/SDK/Source/GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e80140_href.png
Symbian3/SDK/Source/GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e86852_href.png
Symbian3/SDK/Source/GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e76088_href.png
Symbian3/SDK/Source/GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e82800_href.png
Symbian3/SDK/Source/GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e351818_href.png
Symbian3/SDK/Source/GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e357898_href.png
Symbian3/SDK/Source/GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e202292_href.png
Symbian3/SDK/Source/GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e207300_href.png
Symbian3/SDK/Source/GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita
Symbian3/SDK/Source/GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e289302_href.png
Symbian3/SDK/Source/GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e292985_href.png
Symbian3/SDK/Source/GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita
Symbian3/SDK/Source/GUID-6B50C0B9-C3CB-4524-909D-7FD096A3F894.dita
Symbian3/SDK/Source/GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita
Symbian3/SDK/Source/GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115.dita
Symbian3/SDK/Source/GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e332788_href.png
Symbian3/SDK/Source/GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e338945_href.png
Symbian3/SDK/Source/GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e244875_href.png
Symbian3/SDK/Source/GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e248612_href.png
Symbian3/SDK/Source/GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3.dita
Symbian3/SDK/Source/GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8.dita
Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita
Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-6-1-1-4-1-6-1.dita
Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita
Symbian3/SDK/Source/GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita
Symbian3/SDK/Source/GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita
Symbian3/SDK/Source/GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e78396_href.png
Symbian3/SDK/Source/GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e85108_href.png
Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0.dita
Symbian3/SDK/Source/GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e3291_href.png
Symbian3/SDK/Source/GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e4566_href.png
Symbian3/SDK/Source/GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e356629_href.png
Symbian3/SDK/Source/GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e362709_href.png
Symbian3/SDK/Source/GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita
Symbian3/SDK/Source/GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD.dita
Symbian3/SDK/Source/GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e272089_href.jpg
Symbian3/SDK/Source/GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e275770_href.jpg
Symbian3/SDK/Source/GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita
Symbian3/SDK/Source/GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e271965_href.jpg
Symbian3/SDK/Source/GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e275646_href.jpg
Symbian3/SDK/Source/GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e107601_href.png
Symbian3/SDK/Source/GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e114139_href.png
Symbian3/SDK/Source/GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita
Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita
Symbian3/SDK/Source/GUID-6EF9F8EA-AD61-4AEA-9457-FE645EED2E4D.dita
Symbian3/SDK/Source/GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita
Symbian3/SDK/Source/GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita
Symbian3/SDK/Source/GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e355771_href.png
Symbian3/SDK/Source/GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e361851_href.png
Symbian3/SDK/Source/GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita
Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e52493_href.png
Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e58588_href.png
Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e67337_href.png
Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e72538_href.png
Symbian3/SDK/Source/GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e176588_href.png
Symbian3/SDK/Source/GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e183182_href.png
Symbian3/SDK/Source/GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e4528_href.png
Symbian3/SDK/Source/GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e5803_href.png
Symbian3/SDK/Source/GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e238861_href.png
Symbian3/SDK/Source/GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e242598_href.png
Symbian3/SDK/Source/GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e70764_href.png
Symbian3/SDK/Source/GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e75798_href.png
Symbian3/SDK/Source/GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita
Symbian3/SDK/Source/GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1.dita
Symbian3/SDK/Source/GUID-708FC2C8-19BB-5EFC-A8CD-B0E9E96A5409-master.png
Symbian3/SDK/Source/GUID-708FC2C8-19BB-5EFC-A8CD-B0E9E96A5409_d0e387120_href.png
Symbian3/SDK/Source/GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C-master.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e57062_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e60390_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e62839_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e67952_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68178_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68784_href.png
Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e73929_href.png
Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F-master.png
Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e69973_href.png
Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e75057_href.png
Symbian3/SDK/Source/GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita
Symbian3/SDK/Source/GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita
Symbian3/SDK/Source/GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e169108_href.jpg
Symbian3/SDK/Source/GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e175709_href.jpg
Symbian3/SDK/Source/GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita
Symbian3/SDK/Source/GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e200807_href.png
Symbian3/SDK/Source/GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e205815_href.png
Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F-master.png
Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e40348_href.png
Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e45911_href.png
Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e66754_href.png
Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e72000_href.png
Symbian3/SDK/Source/GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e65056_href.png
Symbian3/SDK/Source/GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e70305_href.png
Symbian3/SDK/Source/GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF.dita
Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita
Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-6-1-1-4-1-6-1-10-1.dita
Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053.dita
Symbian3/SDK/Source/GUID-72511204-FC90-54AA-9E2E-833318020318.dita
Symbian3/SDK/Source/GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e135705_href.png
Symbian3/SDK/Source/GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e142239_href.png
Symbian3/SDK/Source/GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241.dita
Symbian3/SDK/Source/GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e188567_href.png
Symbian3/SDK/Source/GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e193629_href.png
Symbian3/SDK/Source/GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e229035_href.png
Symbian3/SDK/Source/GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e232772_href.png
Symbian3/SDK/Source/GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C.dita
Symbian3/SDK/Source/GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e201561_href.png
Symbian3/SDK/Source/GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e206569_href.png
Symbian3/SDK/Source/GUID-730E1E2B-BB8B-4C66-8A70-0FBCE7680B66.dita
Symbian3/SDK/Source/GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita
Symbian3/SDK/Source/GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e31753_href.png
Symbian3/SDK/Source/GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e37319_href.png
Symbian3/SDK/Source/GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita
Symbian3/SDK/Source/GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e360653_href.png
Symbian3/SDK/Source/GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e366733_href.png
Symbian3/SDK/Source/GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e323663_href.jpg
Symbian3/SDK/Source/GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e329820_href.jpg
Symbian3/SDK/Source/GUID-7461BD6A-F50B-5E14-8995-CF3F2D8F5F14-master.png
Symbian3/SDK/Source/GUID-7461BD6A-F50B-5E14-8995-CF3F2D8F5F14_d0e382693_href.png
Symbian3/SDK/Source/GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e189164_href.png
Symbian3/SDK/Source/GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e194226_href.png
Symbian3/SDK/Source/GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE.dita
Symbian3/SDK/Source/GUID-7501D3AC-16FB-58E9-B55C-2598ECCD2FFA-master.png
Symbian3/SDK/Source/GUID-7501D3AC-16FB-58E9-B55C-2598ECCD2FFA_d0e381250_href.png
Symbian3/SDK/Source/GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita
Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita
Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-4-1.dita
Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita
Symbian3/SDK/Source/GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3.dita
Symbian3/SDK/Source/GUID-762A665F-43D0-53ED-B698-0CBD3AC46391.dita
Symbian3/SDK/Source/GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE.dita
Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e57233_href.png
Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e68916_href.png
Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e74059_href.png
Symbian3/SDK/Source/GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e36126_href.png
Symbian3/SDK/Source/GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e41693_href.png
Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1.dita
Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1.dita
Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E.dita
Symbian3/SDK/Source/GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita
Symbian3/SDK/Source/GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e333424_href.png
Symbian3/SDK/Source/GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e339581_href.png
Symbian3/SDK/Source/GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita
Symbian3/SDK/Source/GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e214491_href.png
Symbian3/SDK/Source/GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e218228_href.png
Symbian3/SDK/Source/GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1.dita
Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita
Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita
Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita
Symbian3/SDK/Source/GUID-77AD4D8C-08CA-45C4-B5E7-04B4C7958A1A_d0e81736_href.png
Symbian3/SDK/Source/GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e176330_href.png
Symbian3/SDK/Source/GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e182924_href.png
Symbian3/SDK/Source/GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e110965_href.png
Symbian3/SDK/Source/GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e117503_href.png
Symbian3/SDK/Source/GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE.dita
Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B-master.png
Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e55932_href.png
Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e63641_href.png
Symbian3/SDK/Source/GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita
Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7-master.png
Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e69648_href.png
Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e74811_href.png
Symbian3/SDK/Source/GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita
Symbian3/SDK/Source/GUID-788BC010-536D-4089-9B12-4A43A9C1C82B.dita
Symbian3/SDK/Source/GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e75280_href.png
Symbian3/SDK/Source/GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e80408_href.png
Symbian3/SDK/Source/GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e79683_href.png
Symbian3/SDK/Source/GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e86395_href.png
Symbian3/SDK/Source/GUID-78AC068A-C858-41E9-94A8-32C8A8581BF8_d0e68959_href.png
Symbian3/SDK/Source/GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e195032_href.png
Symbian3/SDK/Source/GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e200040_href.png
Symbian3/SDK/Source/GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e184827_href.png
Symbian3/SDK/Source/GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e191423_href.png
Symbian3/SDK/Source/GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita
Symbian3/SDK/Source/GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita
Symbian3/SDK/Source/GUID-795ED4C0-7C82-41DE-AD5B-AC69A426E2A5.dita
Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita
Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-6-1-1-4-1-9-1-4-1.dita
Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita
Symbian3/SDK/Source/GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e189034_href.png
Symbian3/SDK/Source/GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e194096_href.png
Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e51559_href.png
Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e55550_href.png
Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e57111_href.png
Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e68820_href.png
Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e73964_href.png
Symbian3/SDK/Source/GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita
Symbian3/SDK/Source/GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409504_href.png
Symbian3/SDK/Source/GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409666_href.png
Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e16895_href.png
Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e47241_href.png
Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e52797_href.png
Symbian3/SDK/Source/GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e189172_href.png
Symbian3/SDK/Source/GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e194234_href.png
Symbian3/SDK/Source/GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576.dita
Symbian3/SDK/Source/GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita
Symbian3/SDK/Source/GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita
Symbian3/SDK/Source/GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF.dita
Symbian3/SDK/Source/GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e304342_href.jpg
Symbian3/SDK/Source/GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e310357_href.jpg
Symbian3/SDK/Source/GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e230612_href.png
Symbian3/SDK/Source/GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e234349_href.png
Symbian3/SDK/Source/GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E.dita
Symbian3/SDK/Source/GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e243007_href.png
Symbian3/SDK/Source/GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e246744_href.png
Symbian3/SDK/Source/GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e189683_href.png
Symbian3/SDK/Source/GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e194738_href.png
Symbian3/SDK/Source/GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita
Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2-master.png
Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e66044_href.png
Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e71293_href.png
Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C-master.png
Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e64446_href.png
Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e69665_href.png
Symbian3/SDK/Source/GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e267163_href.png
Symbian3/SDK/Source/GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e270871_href.png
Symbian3/SDK/Source/GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita
Symbian3/SDK/Source/GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e287350_href.png
Symbian3/SDK/Source/GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e290983_href.png
Symbian3/SDK/Source/GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041.dita
Symbian3/SDK/Source/GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1.dita
Symbian3/SDK/Source/GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e34576_href.png
Symbian3/SDK/Source/GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e40142_href.png
Symbian3/SDK/Source/GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e7115_href.png
Symbian3/SDK/Source/GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e8390_href.png
Symbian3/SDK/Source/GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e5815_href.png
Symbian3/SDK/Source/GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e7090_href.png
Symbian3/SDK/Source/GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e73606_href.png
Symbian3/SDK/Source/GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e78726_href.png
Symbian3/SDK/Source/GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e195421_href.jpg
Symbian3/SDK/Source/GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e200429_href.jpg
Symbian3/SDK/Source/GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e184682_href.png
Symbian3/SDK/Source/GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e191278_href.png
Symbian3/SDK/Source/GUID-7F6283C0-46E8-427C-B6A9-FB274A7D2C15.dita
Symbian3/SDK/Source/GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e177349_href.png
Symbian3/SDK/Source/GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e183943_href.png
Symbian3/SDK/Source/GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita
Symbian3/SDK/Source/GUID-7FD49142-23DC-44FC-BA7D-C11E0559C8CF.dita
Symbian3/SDK/Source/GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402303_href.png
Symbian3/SDK/Source/GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402465_href.png
Symbian3/SDK/Source/GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita
Symbian3/SDK/Source/GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita
Symbian3/SDK/Source/GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017.dita
Symbian3/SDK/Source/GUID-80F2DEC8-152F-4681-A9D0-8EB776131313.dita
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7-master.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e51653_href.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e57208_href.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e64462_href.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e68897_href.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e69700_href.png
Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e74040_href.png
Symbian3/SDK/Source/GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e169014_href.jpg
Symbian3/SDK/Source/GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e175615_href.jpg
Symbian3/SDK/Source/GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e216847_href.png
Symbian3/SDK/Source/GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e220584_href.png
Symbian3/SDK/Source/GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita
Symbian3/SDK/Source/GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e312224_href.png
Symbian3/SDK/Source/GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e318618_href.png
Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-6-1-1-4-1-3-1-3-1.dita
Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067.dita
Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81-master.png
Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e58353_href.png
Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e61742_href.png
Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita
Symbian3/SDK/Source/GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita
Symbian3/SDK/Source/GUID-8300FD98-38D7-43EF-A71E-A7BEBFC3F8ED-master.png
Symbian3/SDK/Source/GUID-8300FD98-38D7-43EF-A71E-A7BEBFC3F8ED_d0e61693_href.png
Symbian3/SDK/Source/GUID-8305F179-8F26-4B38-8523-066D1B0B7A62_d0e212256_href.png
Symbian3/SDK/Source/GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita
Symbian3/SDK/Source/GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita
Symbian3/SDK/Source/GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita
Symbian3/SDK/Source/GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita
Symbian3/SDK/Source/GUID-83A4D862-368E-5DCC-998E-90144BE18A22.dita
Symbian3/SDK/Source/GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08.dita
Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C-master.png
Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e65944_href.png
Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e71193_href.png
Symbian3/SDK/Source/GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita
Symbian3/SDK/Source/GUID-84897583-A06F-42EE-917D-DF908B095AFF-master.png
Symbian3/SDK/Source/GUID-84897583-A06F-42EE-917D-DF908B095AFF_d0e316089_href.png
Symbian3/SDK/Source/GUID-84B088C0-7013-4B6A-BA34-8F022E38E822_d0e68775_href.png
Symbian3/SDK/Source/GUID-84C75561-E082-4EFF-89A7-901361612CCA_d0e61144_href.png
Symbian3/SDK/Source/GUID-85058500-87C5-457A-9567-ECAB29708759.dita
Symbian3/SDK/Source/GUID-8526BBD8-CA70-4B3F-B91D-D70AF06440B2-master.png
Symbian3/SDK/Source/GUID-8526BBD8-CA70-4B3F-B91D-D70AF06440B2_d0e55432_href.png
Symbian3/SDK/Source/GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e11153_href.png
Symbian3/SDK/Source/GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e12428_href.png
Symbian3/SDK/Source/GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e250294_href.jpg
Symbian3/SDK/Source/GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e254026_href.jpg
Symbian3/SDK/Source/GUID-858ABC77-053B-5C45-A8EB-08C68506B193.dita
Symbian3/SDK/Source/GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita
Symbian3/SDK/Source/GUID-85CA1089-3F58-5E82-86A4-4674C893B25F.dita
Symbian3/SDK/Source/GUID-85D006FA-EDCB-4BB4-8FD9-91C658B80DE7.dita
Symbian3/SDK/Source/GUID-860DCACE-4C5A-508F-B94C-12336E96D1C7-master.png
Symbian3/SDK/Source/GUID-860DCACE-4C5A-508F-B94C-12336E96D1C7_d0e383173_href.png
Symbian3/SDK/Source/GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita
Symbian3/SDK/Source/GUID-8675AC01-E2D8-425C-899F-12BE99345AA9.dita
Symbian3/SDK/Source/GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8.dita
Symbian3/SDK/Source/GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita
Symbian3/SDK/Source/GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429248_href.png
Symbian3/SDK/Source/GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429410_href.png
Symbian3/SDK/Source/GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita
Symbian3/SDK/Source/GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e383456_href.png
Symbian3/SDK/Source/GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e388502_href.png
Symbian3/SDK/Source/GUID-87BEA6F9-B236-50CF-9DB3-36234A6EB797.dita
Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-3-1-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-6-1-1-4-1-6-1-4-1.dita
Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A.dita
Symbian3/SDK/Source/GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e4619_href.png
Symbian3/SDK/Source/GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e5894_href.png
Symbian3/SDK/Source/GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406639_href.png
Symbian3/SDK/Source/GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406801_href.png
Symbian3/SDK/Source/GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e190349_href.png
Symbian3/SDK/Source/GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e195357_href.png
Symbian3/SDK/Source/GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita
Symbian3/SDK/Source/GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e220940_href.png
Symbian3/SDK/Source/GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e224677_href.png
Symbian3/SDK/Source/GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E.dita
Symbian3/SDK/Source/GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F.dita
Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita
Symbian3/SDK/Source/GUID-8A7B837D-4069-5364-A596-686EEBAE351D.dita
Symbian3/SDK/Source/GUID-8AB9527A-1C7E-5D3A-9AB2-A3FA1F5A2D5B.dita
Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8-master.png
Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e52168_href.png
Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e74508_href.png
Symbian3/SDK/Source/GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e357317_href.png
Symbian3/SDK/Source/GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e363397_href.png
Symbian3/SDK/Source/GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita
Symbian3/SDK/Source/GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e355357_href.png
Symbian3/SDK/Source/GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e361437_href.png
Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e15221_href.png
Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e45567_href.png
Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e51123_href.png
Symbian3/SDK/Source/GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27.dita
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4-master.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e36995_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e42562_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e57289_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60154_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60783_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e61412_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e65577_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e68958_href.png
Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e74100_href.png
Symbian3/SDK/Source/GUID-8C134C72-0552-59FE-AA19-F72250A8A947.dita
Symbian3/SDK/Source/GUID-8C5A65E6-D753-472F-B885-FD0409589036.dita
Symbian3/SDK/Source/GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e38310_href.png
Symbian3/SDK/Source/GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e43877_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41-master.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e51707_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57262_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57411_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e61778_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e68938_href.png
Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e74080_href.png
Symbian3/SDK/Source/GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e252803_href.jpg
Symbian3/SDK/Source/GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e256511_href.jpg
Symbian3/SDK/Source/GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e190606_href.png
Symbian3/SDK/Source/GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e195614_href.png
Symbian3/SDK/Source/GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita
Symbian3/SDK/Source/GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC.dita
Symbian3/SDK/Source/GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e396870_href.jpg
Symbian3/SDK/Source/GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e397032_href.jpg
Symbian3/SDK/Source/GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e220696_href.png
Symbian3/SDK/Source/GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e224433_href.png
Symbian3/SDK/Source/GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495.dita
Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita
Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-5-1-7-1-6-1-5-1.dita
Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita
Symbian3/SDK/Source/GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e336582_href.jpg
Symbian3/SDK/Source/GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e342779_href.jpg
Symbian3/SDK/Source/GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita
Symbian3/SDK/Source/GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B.dita
Symbian3/SDK/Source/GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e304490_href.jpg
Symbian3/SDK/Source/GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e310505_href.jpg
Symbian3/SDK/Source/GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e272075_href.jpg
Symbian3/SDK/Source/GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e275756_href.jpg
Symbian3/SDK/Source/GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393399_href.png
Symbian3/SDK/Source/GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393561_href.png
Symbian3/SDK/Source/GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e110788_href.png
Symbian3/SDK/Source/GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e117326_href.png
Symbian3/SDK/Source/GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e123728_href.jpg
Symbian3/SDK/Source/GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e130266_href.jpg
Symbian3/SDK/Source/GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita
Symbian3/SDK/Source/GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e337751_href.png
Symbian3/SDK/Source/GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e343948_href.png
Symbian3/SDK/Source/GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e230483_href.png
Symbian3/SDK/Source/GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e234220_href.png
Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53-master.png
Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e52050_href.png
Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e75139_href.png
Symbian3/SDK/Source/GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0.dita
Symbian3/SDK/Source/GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e307907_href.png
Symbian3/SDK/Source/GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e314301_href.png
Symbian3/SDK/Source/GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e149865_href.png
Symbian3/SDK/Source/GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e156386_href.png
Symbian3/SDK/Source/GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e337871_href.jpg
Symbian3/SDK/Source/GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e344068_href.jpg
Symbian3/SDK/Source/GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita
Symbian3/SDK/Source/GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita
Symbian3/SDK/Source/GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402513_href.png
Symbian3/SDK/Source/GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402675_href.png
Symbian3/SDK/Source/GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e323093_href.jpg
Symbian3/SDK/Source/GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e329250_href.jpg
Symbian3/SDK/Source/GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e193631_href.png
Symbian3/SDK/Source/GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e198639_href.png
Symbian3/SDK/Source/GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita
Symbian3/SDK/Source/GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita
Symbian3/SDK/Source/GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e76273_href.png
Symbian3/SDK/Source/GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e82985_href.png
Symbian3/SDK/Source/GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita
Symbian3/SDK/Source/GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e111104_href.png
Symbian3/SDK/Source/GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e117642_href.png
Symbian3/SDK/Source/GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e196262_href.png
Symbian3/SDK/Source/GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e201270_href.png
Symbian3/SDK/Source/GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita
Symbian3/SDK/Source/GUID-90B58A30-8BE8-48E8-ADB2-57E8A0AD8376.dita
Symbian3/SDK/Source/GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413239_href.png
Symbian3/SDK/Source/GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413401_href.png
Symbian3/SDK/Source/GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita
Symbian3/SDK/Source/GUID-91224821-8094-59ED-A100-4174193A25EE_d0e264846_href.png
Symbian3/SDK/Source/GUID-91224821-8094-59ED-A100-4174193A25EE_d0e268554_href.png
Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita
Symbian3/SDK/Source/GUID-9169062F-3B6D-544C-847C-BA859DAB33B9.dita
Symbian3/SDK/Source/GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e144644_href.jpg
Symbian3/SDK/Source/GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e151178_href.jpg
Symbian3/SDK/Source/GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita
Symbian3/SDK/Source/GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e71873_href.png
Symbian3/SDK/Source/GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e77022_href.png
Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6-master.png
Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e67660_href.png
Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e72782_href.png
Symbian3/SDK/Source/GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e215705_href.png
Symbian3/SDK/Source/GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e219442_href.png
Symbian3/SDK/Source/GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita
Symbian3/SDK/Source/GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692.dita
Symbian3/SDK/Source/GUID-92DF40DF-3C7C-5052-A78A-A47B8A455C32.dita
Symbian3/SDK/Source/GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita
Symbian3/SDK/Source/GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e214529_href.png
Symbian3/SDK/Source/GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e218266_href.png
Symbian3/SDK/Source/GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e176542_href.png
Symbian3/SDK/Source/GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e183136_href.png
Symbian3/SDK/Source/GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827.dita
Symbian3/SDK/Source/GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e270526_href.jpg
Symbian3/SDK/Source/GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e274234_href.jpg
Symbian3/SDK/Source/GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e202480_href.png
Symbian3/SDK/Source/GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e207488_href.png
Symbian3/SDK/Source/GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita
Symbian3/SDK/Source/GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e53249_href.png
Symbian3/SDK/Source/GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e59044_href.png
Symbian3/SDK/Source/GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita
Symbian3/SDK/Source/GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e129840_href.jpg
Symbian3/SDK/Source/GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e136378_href.jpg
Symbian3/SDK/Source/GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita
Symbian3/SDK/Source/GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426550_href.jpg
Symbian3/SDK/Source/GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426712_href.jpg
Symbian3/SDK/Source/GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2.dita
Symbian3/SDK/Source/GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita
Symbian3/SDK/Source/GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E.dita
Symbian3/SDK/Source/GUID-95493C3D-58C6-5EBF-85E1-167D58E68658.dita
Symbian3/SDK/Source/GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e277871_href.png
Symbian3/SDK/Source/GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e281557_href.png
Symbian3/SDK/Source/GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita
Symbian3/SDK/Source/GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita
Symbian3/SDK/Source/GUID-95EA435B-918A-4B68-8983-1D22B7840BA7.dita
Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-3-1-1-8-1-7-1.dita
Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-6-1-1-4-1-7-1-7-1.dita
Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983.dita
Symbian3/SDK/Source/GUID-9665C072-EA52-54B8-87A3-A7F818940DCD.dita
Symbian3/SDK/Source/GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e3380_href.png
Symbian3/SDK/Source/GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e4655_href.png
Symbian3/SDK/Source/GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E.dita
Symbian3/SDK/Source/GUID-96E46D0E-1CE3-58B4-AE99-6B2E622ADAF9.dita
Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-3-1-1-7-1-8-1-3-1.dita
Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1.dita
Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642.dita
Symbian3/SDK/Source/GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e270252_href.jpg
Symbian3/SDK/Source/GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e273960_href.jpg
Symbian3/SDK/Source/GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita
Symbian3/SDK/Source/GUID-9770F3B4-998D-474F-9A82-1B134A4C2869_d0e294365_href.png
Symbian3/SDK/Source/GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita
Symbian3/SDK/Source/GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0.dita
Symbian3/SDK/Source/GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16.dita
Symbian3/SDK/Source/GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0.dita
Symbian3/SDK/Source/GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254.dita
Symbian3/SDK/Source/GUID-983C5DB9-85EF-541E-B494-19E3E617914A.dita
Symbian3/SDK/Source/GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e76851_href.png
Symbian3/SDK/Source/GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e83563_href.png
Symbian3/SDK/Source/GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD.dita
Symbian3/SDK/Source/GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF.dita
Symbian3/SDK/Source/GUID-9955D228-75CE-45B3-9714-AF635D04E553-master.png
Symbian3/SDK/Source/GUID-9955D228-75CE-45B3-9714-AF635D04E553_d0e56643_href.png
Symbian3/SDK/Source/GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67.dita
Symbian3/SDK/Source/GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita
Symbian3/SDK/Source/GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e240083_href.png
Symbian3/SDK/Source/GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e243820_href.png
Symbian3/SDK/Source/GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita
Symbian3/SDK/Source/GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e262222_href.png
Symbian3/SDK/Source/GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e265930_href.png
Symbian3/SDK/Source/GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e304377_href.jpg
Symbian3/SDK/Source/GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e310392_href.jpg
Symbian3/SDK/Source/GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9.dita
Symbian3/SDK/Source/GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita
Symbian3/SDK/Source/GUID-9BB849A2-8F69-580D-8A52-C7002D919521.dita
Symbian3/SDK/Source/GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429704_href.png
Symbian3/SDK/Source/GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429866_href.png
Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita
Symbian3/SDK/Source/GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita
Symbian3/SDK/Source/GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita
Symbian3/SDK/Source/GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1.dita
Symbian3/SDK/Source/GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1.dita
Symbian3/SDK/Source/GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e376410_href.png
Symbian3/SDK/Source/GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e382477_href.png
Symbian3/SDK/Source/GUID-9C848E60-DD02-4787-90F3-1857AC3C3D1A_d0e68886_href.png
Symbian3/SDK/Source/GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e262298_href.png
Symbian3/SDK/Source/GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e266006_href.png
Symbian3/SDK/Source/GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e264555_href.png
Symbian3/SDK/Source/GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e268263_href.png
Symbian3/SDK/Source/GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B.dita
Symbian3/SDK/Source/GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e334781_href.jpg
Symbian3/SDK/Source/GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e340938_href.jpg
Symbian3/SDK/Source/GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita
Symbian3/SDK/Source/GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402571_href.png
Symbian3/SDK/Source/GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402733_href.png
Symbian3/SDK/Source/GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e210051_href.png
Symbian3/SDK/Source/GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e214846_href.png
Symbian3/SDK/Source/GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e272117_href.jpg
Symbian3/SDK/Source/GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e275798_href.jpg
Symbian3/SDK/Source/GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita
Symbian3/SDK/Source/GUID-9E00A9B2-9656-5569-B164-B7EFD2B2A9F6.dita
Symbian3/SDK/Source/GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e66389_href.png
Symbian3/SDK/Source/GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e71631_href.png
Symbian3/SDK/Source/GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e304473_href.jpg
Symbian3/SDK/Source/GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e310488_href.jpg
Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-3-1-1-7-1-7-1-10-1.dita
Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1.dita
Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0.dita
Symbian3/SDK/Source/GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C.dita
Symbian3/SDK/Source/GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e356932_href.png
Symbian3/SDK/Source/GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e363012_href.png
Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800-master.png
Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e52568_href.png
Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e58503_href.png
Symbian3/SDK/Source/GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e278090_href.jpg
Symbian3/SDK/Source/GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e281776_href.jpg
Symbian3/SDK/Source/GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita
Symbian3/SDK/Source/GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e404850_href.png
Symbian3/SDK/Source/GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e405012_href.png
Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3400_href.png
Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3531_href.png
Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4675_href.png
Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4806_href.png
Symbian3/SDK/Source/GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita
Symbian3/SDK/Source/GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e107398_href.png
Symbian3/SDK/Source/GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e113936_href.png
Symbian3/SDK/Source/GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e77328_href.png
Symbian3/SDK/Source/GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e84040_href.png
Symbian3/SDK/Source/GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504.dita
Symbian3/SDK/Source/GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e336695_href.png
Symbian3/SDK/Source/GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e342892_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD-master.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e51905_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e57512_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e67708_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e69130_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e72845_href.png
Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e74273_href.png
Symbian3/SDK/Source/GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B.dita
Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1.dita
Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1.dita
Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita
Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-5-1-7-1-6-1-6-1.dita
Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita
Symbian3/SDK/Source/GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e237205_href.png
Symbian3/SDK/Source/GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e240942_href.png
Symbian3/SDK/Source/GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita
Symbian3/SDK/Source/GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita
Symbian3/SDK/Source/GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita
Symbian3/SDK/Source/GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita
Symbian3/SDK/Source/GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD.dita
Symbian3/SDK/Source/GUID-A2031A61-3319-4FBA-BC71-AC1327182053.dita
Symbian3/SDK/Source/GUID-A24491E4-867F-4006-9798-07281553EA51.dita
Symbian3/SDK/Source/GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita
Symbian3/SDK/Source/GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e34881_href.png
Symbian3/SDK/Source/GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e40447_href.png
Symbian3/SDK/Source/GUID-A2F691C8-9525-4028-BF82-70E9D50630C6.dita
Symbian3/SDK/Source/GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e158775_href.jpg
Symbian3/SDK/Source/GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e165376_href.jpg
Symbian3/SDK/Source/GUID-A3155AA1-8D42-5855-AD49-089DC510BCB0-master.png
Symbian3/SDK/Source/GUID-A3155AA1-8D42-5855-AD49-089DC510BCB0_d0e383259_href.png
Symbian3/SDK/Source/GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e3331_href.png
Symbian3/SDK/Source/GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e4606_href.png
Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita
Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-6-1-1-4-1-5-1-3-1.dita
Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891.dita
Symbian3/SDK/Source/GUID-A3B58436-07E4-565B-800B-86435D205461.dita
Symbian3/SDK/Source/GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674.dita
Symbian3/SDK/Source/GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539.dita
Symbian3/SDK/Source/GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita
Symbian3/SDK/Source/GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita
Symbian3/SDK/Source/GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita
Symbian3/SDK/Source/GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e334165_href.jpg
Symbian3/SDK/Source/GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e340322_href.jpg
Symbian3/SDK/Source/GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e184934_href.png
Symbian3/SDK/Source/GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e191530_href.png
Symbian3/SDK/Source/GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita
Symbian3/SDK/Source/GUID-A5693758-495B-598E-A514-24C48D459BB6.dita
Symbian3/SDK/Source/GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita
Symbian3/SDK/Source/GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e36431_href.png
Symbian3/SDK/Source/GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e41998_href.png
Symbian3/SDK/Source/GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita
Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-3-1-1-9-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-6-1-1-4-1-8-1-4-1-3-1.dita
Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99.dita
Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-10-1-6-1-1-4-1-6-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-6-1-1-4-1-6-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B-master.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e40575_href.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e46132_href.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e58819_href.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e64364_href.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e67789_href.png
Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e72940_href.png
Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56-master.png
Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e57198_href.png
Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e63102_href.png
Symbian3/SDK/Source/GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e359404_href.png
Symbian3/SDK/Source/GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e365484_href.png
Symbian3/SDK/Source/GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393431_href.png
Symbian3/SDK/Source/GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393593_href.png
Symbian3/SDK/Source/GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e185379_href.png
Symbian3/SDK/Source/GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e191975_href.png
Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917-master.png
Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e55415_href.png
Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e63312_href.png
Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-3-1-1-6-1-4-1.dita
Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-6-1-1-4-1-5-1-4-1.dita
Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29.dita
Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita
Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1.dita
Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0.dita
Symbian3/SDK/Source/GUID-A83DBB85-EBA0-44CB-8903-69F5E0C08191.dita
Symbian3/SDK/Source/GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45.dita
Symbian3/SDK/Source/GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066.dita
Symbian3/SDK/Source/GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e357640_href.png
Symbian3/SDK/Source/GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e363720_href.png
Symbian3/SDK/Source/GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e304305_href.jpg
Symbian3/SDK/Source/GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e310320_href.jpg
Symbian3/SDK/Source/GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e169220_href.jpg
Symbian3/SDK/Source/GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e175821_href.jpg
Symbian3/SDK/Source/GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita
Symbian3/SDK/Source/GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e276053_href.jpg
Symbian3/SDK/Source/GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e279739_href.jpg
Symbian3/SDK/Source/GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita
Symbian3/SDK/Source/GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e246388_href.png
Symbian3/SDK/Source/GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e250125_href.png
Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-6-1-1-4-1-3-1-4-1.dita
Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9.dita
Symbian3/SDK/Source/GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e333278_href.png
Symbian3/SDK/Source/GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e339435_href.png
Symbian3/SDK/Source/GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e10566_href.png
Symbian3/SDK/Source/GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e11841_href.png
Symbian3/SDK/Source/GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e143085_href.png
Symbian3/SDK/Source/GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e149619_href.png
Symbian3/SDK/Source/GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e184946_href.png
Symbian3/SDK/Source/GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e191542_href.png
Symbian3/SDK/Source/GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita
Symbian3/SDK/Source/GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita
Symbian3/SDK/Source/GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita
Symbian3/SDK/Source/GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita
Symbian3/SDK/Source/GUID-ABD741AE-7F66-564C-895C-6E4682308CEA.dita
Symbian3/SDK/Source/GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita
Symbian3/SDK/Source/GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e3955_href.png
Symbian3/SDK/Source/GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e5230_href.png
Symbian3/SDK/Source/GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e184188_href.png
Symbian3/SDK/Source/GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e190784_href.png
Symbian3/SDK/Source/GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita
Symbian3/SDK/Source/GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita
Symbian3/SDK/Source/GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e148518_href.png
Symbian3/SDK/Source/GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e155039_href.png
Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita
Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1.dita
Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4.dita
Symbian3/SDK/Source/GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita
Symbian3/SDK/Source/GUID-ACF69260-D643-4709-8DAB-33FD92940F86.dita
Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-3-1-1-6-1.dita
Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-6-1-1-4-1-5-1.dita
Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F.dita
Symbian3/SDK/Source/GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e144346_href.png
Symbian3/SDK/Source/GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e150880_href.png
Symbian3/SDK/Source/GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e68734_href.png
Symbian3/SDK/Source/GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e73877_href.png
Symbian3/SDK/Source/GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e40470_href.png
Symbian3/SDK/Source/GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e46030_href.png
Symbian3/SDK/Source/GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e168926_href.jpg
Symbian3/SDK/Source/GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e175527_href.jpg
Symbian3/SDK/Source/GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429673_href.png
Symbian3/SDK/Source/GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429835_href.png
Symbian3/SDK/Source/GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita
Symbian3/SDK/Source/GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e160811_href.png
Symbian3/SDK/Source/GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e167412_href.png
Symbian3/SDK/Source/GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e287887_href.jpg
Symbian3/SDK/Source/GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e291520_href.jpg
Symbian3/SDK/Source/GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5.dita
Symbian3/SDK/Source/GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6.dita
Symbian3/SDK/Source/GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e11400_href.png
Symbian3/SDK/Source/GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e12675_href.png
Symbian3/SDK/Source/GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita
Symbian3/SDK/Source/GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e185333_href.png
Symbian3/SDK/Source/GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e191929_href.png
Symbian3/SDK/Source/GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita
Symbian3/SDK/Source/GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita
Symbian3/SDK/Source/GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita
Symbian3/SDK/Source/GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e213571_href.png
Symbian3/SDK/Source/GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e217308_href.png
Symbian3/SDK/Source/GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita
Symbian3/SDK/Source/GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita
Symbian3/SDK/Source/GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e184810_href.png
Symbian3/SDK/Source/GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e191406_href.png
Symbian3/SDK/Source/GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita
Symbian3/SDK/Source/GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita
Symbian3/SDK/Source/GUID-B1254526-3C72-59E7-88C0-667FC051379F.dita
Symbian3/SDK/Source/GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e357005_href.png
Symbian3/SDK/Source/GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e363085_href.png
Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071-master.png
Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e53053_href.png
Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e58775_href.png
Symbian3/SDK/Source/GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e213742_href.png
Symbian3/SDK/Source/GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e217479_href.png
Symbian3/SDK/Source/GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9.dita
Symbian3/SDK/Source/GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e341463_href.png
Symbian3/SDK/Source/GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e347660_href.png
Symbian3/SDK/Source/GUID-B172B71E-10DE-5AC6-9F10-A7EC74CE0B7F-master.png
Symbian3/SDK/Source/GUID-B172B71E-10DE-5AC6-9F10-A7EC74CE0B7F_d0e382778_href.png
Symbian3/SDK/Source/GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita
Symbian3/SDK/Source/GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03.dita
Symbian3/SDK/Source/GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita
Symbian3/SDK/Source/GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e113898_href.png
Symbian3/SDK/Source/GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e120436_href.png
Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D-master.png
Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e63770_href.png
Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e68992_href.png
Symbian3/SDK/Source/GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita
Symbian3/SDK/Source/GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e3348_href.png
Symbian3/SDK/Source/GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e4623_href.png
Symbian3/SDK/Source/GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e185390_href.png
Symbian3/SDK/Source/GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e191986_href.png
Symbian3/SDK/Source/GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e176531_href.png
Symbian3/SDK/Source/GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e183125_href.png
Symbian3/SDK/Source/GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF.dita
Symbian3/SDK/Source/GUID-B340078C-9EFC-4017-8F43-B0BBCE4935DC.dita
Symbian3/SDK/Source/GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita
Symbian3/SDK/Source/GUID-B3760707-2810-4CD9-82C7-6A40DE638D36.dita
Symbian3/SDK/Source/GUID-B386CA7A-F527-5584-9455-371E623DCF76.dita
Symbian3/SDK/Source/GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita
Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e18988_href.png
Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e49332_href.png
Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e54890_href.png
Symbian3/SDK/Source/GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita
Symbian3/SDK/Source/GUID-B459E37A-BECE-5087-9827-C93310890674_d0e281229_href.png
Symbian3/SDK/Source/GUID-B459E37A-BECE-5087-9827-C93310890674_d0e284915_href.png
Symbian3/SDK/Source/GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e19466_href.png
Symbian3/SDK/Source/GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e25044_href.png
Symbian3/SDK/Source/GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e75413_href.png
Symbian3/SDK/Source/GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e80545_href.png
Symbian3/SDK/Source/GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e80517_href.png
Symbian3/SDK/Source/GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e87229_href.png
Symbian3/SDK/Source/GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita
Symbian3/SDK/Source/GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB.dita
Symbian3/SDK/Source/GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita
Symbian3/SDK/Source/GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863.dita
Symbian3/SDK/Source/GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e3445_href.png
Symbian3/SDK/Source/GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e4720_href.png
Symbian3/SDK/Source/GUID-B57D7C53-DFDB-4590-8227-EA251D1ABBC7.dita
Symbian3/SDK/Source/GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5.dita
Symbian3/SDK/Source/GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita
Symbian3/SDK/Source/GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita
Symbian3/SDK/Source/GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita
Symbian3/SDK/Source/GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e376536_href.png
Symbian3/SDK/Source/GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e382603_href.png
Symbian3/SDK/Source/GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08.dita
Symbian3/SDK/Source/GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e204842_href.png
Symbian3/SDK/Source/GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e209850_href.png
Symbian3/SDK/Source/GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita
Symbian3/SDK/Source/GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e53483_href.png
Symbian3/SDK/Source/GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e61166_href.png
Symbian3/SDK/Source/GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e58076_href.png
Symbian3/SDK/Source/GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e61475_href.png
Symbian3/SDK/Source/GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2.dita
Symbian3/SDK/Source/GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e108735_href.png
Symbian3/SDK/Source/GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e115273_href.png
Symbian3/SDK/Source/GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e201451_href.png
Symbian3/SDK/Source/GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e206459_href.png
Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita
Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita
Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita
Symbian3/SDK/Source/GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita
Symbian3/SDK/Source/GUID-B876D548-FD40-4369-B328-7427002B4851.dita
Symbian3/SDK/Source/GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita
Symbian3/SDK/Source/GUID-B8D630CA-7CED-408E-B570-00FF95BE14ED-master.png
Symbian3/SDK/Source/GUID-B8D630CA-7CED-408E-B570-00FF95BE14ED_d0e82130_href.png
Symbian3/SDK/Source/GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e11326_href.png
Symbian3/SDK/Source/GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e12601_href.png
Symbian3/SDK/Source/GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2770_href.png
Symbian3/SDK/Source/GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2872_href.png
Symbian3/SDK/Source/GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e246991_href.png
Symbian3/SDK/Source/GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e250728_href.png
Symbian3/SDK/Source/GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita
Symbian3/SDK/Source/GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e330077_href.png
Symbian3/SDK/Source/GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e336234_href.png
Symbian3/SDK/Source/GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e323931_href.png
Symbian3/SDK/Source/GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e330088_href.png
Symbian3/SDK/Source/GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e304465_href.jpg
Symbian3/SDK/Source/GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e310480_href.jpg
Symbian3/SDK/Source/GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita
Symbian3/SDK/Source/GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e299317_href.png
Symbian3/SDK/Source/GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e305344_href.png
Symbian3/SDK/Source/GUID-BA49FDC0-808B-5E05-81AC-98637214F304.dita
Symbian3/SDK/Source/GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita
Symbian3/SDK/Source/GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita
Symbian3/SDK/Source/GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06.dita
Symbian3/SDK/Source/GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e40442_href.png
Symbian3/SDK/Source/GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e46002_href.png
Symbian3/SDK/Source/GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita
Symbian3/SDK/Source/GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita
Symbian3/SDK/Source/GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e322770_href.jpg
Symbian3/SDK/Source/GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e328927_href.jpg
Symbian3/SDK/Source/GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita
Symbian3/SDK/Source/GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140.dita
Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita
Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-6-1-1-4-1-6-1-8-1.dita
Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita
Symbian3/SDK/Source/GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e38273_href.png
Symbian3/SDK/Source/GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e43840_href.png
Symbian3/SDK/Source/GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e317327_href.png
Symbian3/SDK/Source/GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e323484_href.png
Symbian3/SDK/Source/GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita
Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84-master.png
Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e67137_href.png
Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e72805_href.png
Symbian3/SDK/Source/GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7.dita
Symbian3/SDK/Source/GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e3536_href.png
Symbian3/SDK/Source/GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e4811_href.png
Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-3-1-1-7-1-7-1-7-1.dita
Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-6-1-1-4-1-6-1-7-1-7-1.dita
Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40.dita
Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA-master.png
Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e52653_href.png
Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e58734_href.png
Symbian3/SDK/Source/GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita
Symbian3/SDK/Source/GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e321954_href.png
Symbian3/SDK/Source/GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e328111_href.png
Symbian3/SDK/Source/GUID-BE2D9AAB-203B-471A-984D-91E917611641.dita
Symbian3/SDK/Source/GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e308465_href.png
Symbian3/SDK/Source/GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e314859_href.png
Symbian3/SDK/Source/GUID-BE66CF87-E750-40BE-A5EB-18A43E927257-master.png
Symbian3/SDK/Source/GUID-BE66CF87-E750-40BE-A5EB-18A43E927257_d0e63571_href.png
Symbian3/SDK/Source/GUID-BE871265-147B-45F3-8772-A4E091223EDB.dita
Symbian3/SDK/Source/GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e322969_href.jpg
Symbian3/SDK/Source/GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e329126_href.jpg
Symbian3/SDK/Source/GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e233010_href.png
Symbian3/SDK/Source/GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e236747_href.png
Symbian3/SDK/Source/GUID-BF040EF4-E34C-40A3-AD15-F49426F56AA2.dita
Symbian3/SDK/Source/GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e214905_href.png
Symbian3/SDK/Source/GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e218642_href.png
Symbian3/SDK/Source/GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita
Symbian3/SDK/Source/GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2580_href.png
Symbian3/SDK/Source/GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2684_href.png
Symbian3/SDK/Source/GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e129372_href.png
Symbian3/SDK/Source/GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e135910_href.png
Symbian3/SDK/Source/GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita
Symbian3/SDK/Source/GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita
Symbian3/SDK/Source/GUID-C00FBDE4-EF59-5FED-BA92-625414AF45AE.dita
Symbian3/SDK/Source/GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e214465_href.png
Symbian3/SDK/Source/GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e218202_href.png
Symbian3/SDK/Source/GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita
Symbian3/SDK/Source/GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747.dita
Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29-master.png
Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e65898_href.png
Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e71147_href.png
Symbian3/SDK/Source/GUID-C0CC6EEF-E95F-4DE1-9E53-2B777D9E433D_d0e81716_href.png
Symbian3/SDK/Source/GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e216896_href.png
Symbian3/SDK/Source/GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e220633_href.png
Symbian3/SDK/Source/GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita
Symbian3/SDK/Source/GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita
Symbian3/SDK/Source/GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e396840_href.jpg
Symbian3/SDK/Source/GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e397002_href.jpg
Symbian3/SDK/Source/GUID-C1A6477D-2130-5664-A845-898212F96381_d0e290246_href.png
Symbian3/SDK/Source/GUID-C1A6477D-2130-5664-A845-898212F96381_d0e295005_href.png
Symbian3/SDK/Source/GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita
Symbian3/SDK/Source/GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e272131_href.jpg
Symbian3/SDK/Source/GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e275812_href.jpg
Symbian3/SDK/Source/GUID-C218732C-E675-5116-96FE-2604495C2C92-master.png
Symbian3/SDK/Source/GUID-C218732C-E675-5116-96FE-2604495C2C92_d0e383225_href.png
Symbian3/SDK/Source/GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita
Symbian3/SDK/Source/GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9.dita
Symbian3/SDK/Source/GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e16601_href.png
Symbian3/SDK/Source/GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e22179_href.png
Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8-master.png
Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e67775_href.png
Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e72928_href.png
Symbian3/SDK/Source/GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita
Symbian3/SDK/Source/GUID-C2D6BAB9-89BA-4E8D-82B4-2FAE04B9086C-master.png
Symbian3/SDK/Source/GUID-C2D6BAB9-89BA-4E8D-82B4-2FAE04B9086C_d0e48752_href.png
Symbian3/SDK/Source/GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e304448_href.jpg
Symbian3/SDK/Source/GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e310463_href.jpg
Symbian3/SDK/Source/GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e169089_href.jpg
Symbian3/SDK/Source/GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e175690_href.jpg
Symbian3/SDK/Source/GUID-C37790B3-967C-489C-8753-0434938CBE2B.dita
Symbian3/SDK/Source/GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C.dita
Symbian3/SDK/Source/GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e308998_href.png
Symbian3/SDK/Source/GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e315392_href.png
Symbian3/SDK/Source/GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6.dita
Symbian3/SDK/Source/GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e200042_href.png
Symbian3/SDK/Source/GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e205050_href.png
Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-3-1-1-3-1-3-1-3-1.dita
Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-6-1-1-4-1-9-1.dita
Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C.dita
Symbian3/SDK/Source/GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e244786_href.png
Symbian3/SDK/Source/GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e248523_href.png
Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7-master.png
Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e58870_href.png
Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e59093_href.png
Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64417_href.png
Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64639_href.png
Symbian3/SDK/Source/GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F.dita
Symbian3/SDK/Source/GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e165576_href.png
Symbian3/SDK/Source/GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e172177_href.png
Symbian3/SDK/Source/GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e169146_href.jpg
Symbian3/SDK/Source/GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e175747_href.jpg
Symbian3/SDK/Source/GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita
Symbian3/SDK/Source/GUID-C4FDDBD9-2B29-5A59-AA29-855D1BE1354A.dita
Symbian3/SDK/Source/GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51.dita
Symbian3/SDK/Source/GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e4697_href.png
Symbian3/SDK/Source/GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e5972_href.png
Symbian3/SDK/Source/GUID-C5AC5FAF-A55F-44B5-BB43-858861BAB11E-master.png
Symbian3/SDK/Source/GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e230564_href.png
Symbian3/SDK/Source/GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e234301_href.png
Symbian3/SDK/Source/GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e314550_href.png
Symbian3/SDK/Source/GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e320944_href.png
Symbian3/SDK/Source/GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita
Symbian3/SDK/Source/GUID-C60DC070-572B-5960-B394-550426FDB909.dita
Symbian3/SDK/Source/GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e333524_href.png
Symbian3/SDK/Source/GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e339681_href.png
Symbian3/SDK/Source/GUID-C6B65A53-BE0A-4C35-B355-379D9FE494F8_d0e66731_href.png
Symbian3/SDK/Source/GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e268483_href.png
Symbian3/SDK/Source/GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e272191_href.png
Symbian3/SDK/Source/GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C.dita
Symbian3/SDK/Source/GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C.dita
Symbian3/SDK/Source/GUID-C71311A7-F747-57EB-B31F-6E634D5976A3.dita
Symbian3/SDK/Source/GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e272103_href.jpg
Symbian3/SDK/Source/GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e275784_href.jpg
Symbian3/SDK/Source/GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita
Symbian3/SDK/Source/GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita
Symbian3/SDK/Source/GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita
Symbian3/SDK/Source/GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22.dita
Symbian3/SDK/Source/GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita
Symbian3/SDK/Source/GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e134273_href.jpg
Symbian3/SDK/Source/GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e140807_href.jpg
Symbian3/SDK/Source/GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita
Symbian3/SDK/Source/GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e185271_href.png
Symbian3/SDK/Source/GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e191867_href.png
Symbian3/SDK/Source/GUID-C8D04D54-D391-5505-9E80-596589410179_d0e333754_href.png
Symbian3/SDK/Source/GUID-C8D04D54-D391-5505-9E80-596589410179_d0e339911_href.png
Symbian3/SDK/Source/GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e7071_href.png
Symbian3/SDK/Source/GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e8346_href.png
Symbian3/SDK/Source/GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e37243_href.png
Symbian3/SDK/Source/GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e42810_href.png
Symbian3/SDK/Source/GUID-C95D0D29-E14F-5E34-B295-F3CBB38F85FF.dita
Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1.dita
Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-6-1-1-4-1-7-1-3-1.dita
Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F.dita
Symbian3/SDK/Source/GUID-C9F4AF3A-158C-4438-930D-9E351B89280C.dita
Symbian3/SDK/Source/GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432235_href.png
Symbian3/SDK/Source/GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432397_href.png
Symbian3/SDK/Source/GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita
Symbian3/SDK/Source/GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e40313_href.png
Symbian3/SDK/Source/GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e45876_href.png
Symbian3/SDK/Source/GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2587_href.png
Symbian3/SDK/Source/GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2691_href.png
Symbian3/SDK/Source/GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e250496_href.jpg
Symbian3/SDK/Source/GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e254228_href.jpg
Symbian3/SDK/Source/GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D.dita
Symbian3/SDK/Source/GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074.dita
Symbian3/SDK/Source/GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita
Symbian3/SDK/Source/GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D.dita
Symbian3/SDK/Source/GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e323040_href.jpg
Symbian3/SDK/Source/GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e329197_href.jpg
Symbian3/SDK/Source/GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita
Symbian3/SDK/Source/GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e172711_href.png
Symbian3/SDK/Source/GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e179306_href.png
Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3422_href.png
Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3543_href.png
Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4697_href.png
Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4818_href.png
Symbian3/SDK/Source/GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e205483_href.png
Symbian3/SDK/Source/GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e210493_href.png
Symbian3/SDK/Source/GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e36616_href.png
Symbian3/SDK/Source/GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e42183_href.png
Symbian3/SDK/Source/GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7.dita
Symbian3/SDK/Source/GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita
Symbian3/SDK/Source/GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e316250_href.png
Symbian3/SDK/Source/GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e322407_href.png
Symbian3/SDK/Source/GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita
Symbian3/SDK/Source/GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e320575_href.png
Symbian3/SDK/Source/GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e326732_href.png
Symbian3/SDK/Source/GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8.dita
Symbian3/SDK/Source/GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e254198_href.png
Symbian3/SDK/Source/GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e257906_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345485_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345918_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345997_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e346170_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351566_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351999_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352078_href.png
Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352251_href.png
Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-3-1-1-8-1-4-1.dita
Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-6-1-1-4-1-7-1-4-1.dita
Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978.dita
Symbian3/SDK/Source/GUID-CE7CF024-4898-551A-841B-38EC57A3EC82.dita
Symbian3/SDK/Source/GUID-CE94AD48-B79B-403A-98E9-F69494D052F9.dita
Symbian3/SDK/Source/GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita
Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e17625_href.png
Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e47970_href.png
Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e53527_href.png
Symbian3/SDK/Source/GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259.dita
Symbian3/SDK/Source/GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita
Symbian3/SDK/Source/GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A.dita
Symbian3/SDK/Source/GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e206241_href.png
Symbian3/SDK/Source/GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e211044_href.png
Symbian3/SDK/Source/GUID-CFC21A23-0299-4420-BB60-584D10C8913A.dita
Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita
Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1.dita
Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96.dita
Symbian3/SDK/Source/GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427383_href.png
Symbian3/SDK/Source/GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427545_href.png
Symbian3/SDK/Source/GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita
Symbian3/SDK/Source/GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita
Symbian3/SDK/Source/GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e195099_href.png
Symbian3/SDK/Source/GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e200107_href.png
Symbian3/SDK/Source/GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90.dita
Symbian3/SDK/Source/GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita
Symbian3/SDK/Source/GUID-D0FEE812-AD80-40D8-B902-05EC16C44C42.dita
Symbian3/SDK/Source/GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e354923_href.png
Symbian3/SDK/Source/GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e361003_href.png
Symbian3/SDK/Source/GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e36218_href.png
Symbian3/SDK/Source/GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e41785_href.png
Symbian3/SDK/Source/GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e203822_href.png
Symbian3/SDK/Source/GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e208830_href.png
Symbian3/SDK/Source/GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5.dita
Symbian3/SDK/Source/GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita
Symbian3/SDK/Source/GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e10560_href.png
Symbian3/SDK/Source/GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e9285_href.png
Symbian3/SDK/Source/GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407085_href.png
Symbian3/SDK/Source/GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407247_href.png
Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF-master.png
Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e53323_href.png
Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e59088_href.png
Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e82219_href.png
Symbian3/SDK/Source/GUID-D280276A-6E4C-41B7-B6EA-700B33B04981.dita
Symbian3/SDK/Source/GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita
Symbian3/SDK/Source/GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF.dita
Symbian3/SDK/Source/GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e351327_href.png
Symbian3/SDK/Source/GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e357407_href.png
Symbian3/SDK/Source/GUID-D2D17EF9-FFC6-5FBD-A992-55746A12B625.dita
Symbian3/SDK/Source/GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e324862_href.png
Symbian3/SDK/Source/GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e331019_href.png
Symbian3/SDK/Source/GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita
Symbian3/SDK/Source/GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e366524_href.png
Symbian3/SDK/Source/GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e372605_href.png
Symbian3/SDK/Source/GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita
Symbian3/SDK/Source/GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B.dita
Symbian3/SDK/Source/GUID-D458A54E-0D19-479C-B628-001C704E1CB3.dita
Symbian3/SDK/Source/GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita
Symbian3/SDK/Source/GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e4703_href.png
Symbian3/SDK/Source/GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e5978_href.png
Symbian3/SDK/Source/GUID-D4AA635F-DF24-541A-A452-192DDBEE4142.dita
Symbian3/SDK/Source/GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita
Symbian3/SDK/Source/GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita
Symbian3/SDK/Source/GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e204270_href.png
Symbian3/SDK/Source/GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e209278_href.png
Symbian3/SDK/Source/GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF.dita
Symbian3/SDK/Source/GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C.dita
Symbian3/SDK/Source/GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita
Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-3-1-1-8-1-5-1.dita
Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-6-1-1-4-1-7-1-5-1.dita
Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F.dita
Symbian3/SDK/Source/GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita
Symbian3/SDK/Source/GUID-D6A2B169-F6DB-5BCE-83C9-7CD4A10C5BE9.dita
Symbian3/SDK/Source/GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita
Symbian3/SDK/Source/GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e252535_href.jpg
Symbian3/SDK/Source/GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e256243_href.jpg
Symbian3/SDK/Source/GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3.dita
Symbian3/SDK/Source/GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF.dita
Symbian3/SDK/Source/GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e322196_href.png
Symbian3/SDK/Source/GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e328353_href.png
Symbian3/SDK/Source/GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita
Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A-master.png
Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e58942_href.png
Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e59705_href.png
Symbian3/SDK/Source/GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398384_href.png
Symbian3/SDK/Source/GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398546_href.png
Symbian3/SDK/Source/GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B.dita
Symbian3/SDK/Source/GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e78813_href.png
Symbian3/SDK/Source/GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e85525_href.png
Symbian3/SDK/Source/GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e4575_href.png
Symbian3/SDK/Source/GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e5850_href.png
Symbian3/SDK/Source/GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e11345_href.png
Symbian3/SDK/Source/GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e12620_href.png
Symbian3/SDK/Source/GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita
Symbian3/SDK/Source/GUID-D84847BB-523D-5057-8F14-F6BCEECA2327-master.jpg
Symbian3/SDK/Source/GUID-D84847BB-523D-5057-8F14-F6BCEECA2327_d0e185542_href.jpg
Symbian3/SDK/Source/GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6-master.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e51851_href.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e57458_href.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e58489_href.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e62511_href.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e69091_href.png
Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e74234_href.png
Symbian3/SDK/Source/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita
Symbian3/SDK/Source/GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697.dita
Symbian3/SDK/Source/GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e10779_href.png
Symbian3/SDK/Source/GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e12054_href.png
Symbian3/SDK/Source/GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e267518_href.png
Symbian3/SDK/Source/GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e271226_href.png
Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0-master.png
Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e51973_href.png
Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e57605_href.png
Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e69180_href.png
Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e74346_href.png
Symbian3/SDK/Source/GUID-D9F8B338-5CFA-472F-8A16-B5251B1B5A81.dita
Symbian3/SDK/Source/GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e79469_href.png
Symbian3/SDK/Source/GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e86181_href.png
Symbian3/SDK/Source/GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884.dita
Symbian3/SDK/Source/GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita
Symbian3/SDK/Source/GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e41499_href.png
Symbian3/SDK/Source/GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e47056_href.png
Symbian3/SDK/Source/GUID-DA37516F-874F-49B0-A176-73277BB86FD3.dita
Symbian3/SDK/Source/GUID-DAB4EE70-5F84-5AFA-B95B-A433695251F8.dita
Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C-master.png
Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e58905_href.png
Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e59307_href.png
Symbian3/SDK/Source/GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita
Symbian3/SDK/Source/GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A.dita
Symbian3/SDK/Source/GUID-DAF35D49-9630-4186-A350-E8483693D50D.dita
Symbian3/SDK/Source/GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita
Symbian3/SDK/Source/GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita
Symbian3/SDK/Source/GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e79867_href.png
Symbian3/SDK/Source/GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e86579_href.png
Symbian3/SDK/Source/GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461294_href.png
Symbian3/SDK/Source/GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461458_href.png
Symbian3/SDK/Source/GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e79595_href.png
Symbian3/SDK/Source/GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e86307_href.png
Symbian3/SDK/Source/GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2.dita
Symbian3/SDK/Source/GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e7089_href.png
Symbian3/SDK/Source/GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e8364_href.png
Symbian3/SDK/Source/GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e125271_href.jpg
Symbian3/SDK/Source/GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e131809_href.jpg
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e51623_href.png
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e56400_href.png
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e57178_href.png
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e64122_href.png
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e68872_href.png
Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e74016_href.png
Symbian3/SDK/Source/GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B.dita
Symbian3/SDK/Source/GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita
Symbian3/SDK/Source/GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e287427_href.png
Symbian3/SDK/Source/GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e291060_href.png
Symbian3/SDK/Source/GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e3450_href.png
Symbian3/SDK/Source/GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e4725_href.png
Symbian3/SDK/Source/GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398653_href.png
Symbian3/SDK/Source/GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398815_href.png
Symbian3/SDK/Source/GUID-DD0F8AFB-F96C-4EAC-96DE-7D5C0597B574-master.png
Symbian3/SDK/Source/GUID-DD0F8AFB-F96C-4EAC-96DE-7D5C0597B574_d0e315975_href.png
Symbian3/SDK/Source/GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e184514_href.png
Symbian3/SDK/Source/GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e191110_href.png
Symbian3/SDK/Source/GUID-DD263BCA-B660-49A5-BB65-8C45035002BD-master.png
Symbian3/SDK/Source/GUID-DD263BCA-B660-49A5-BB65-8C45035002BD_d0e81773_href.png
Symbian3/SDK/Source/GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF.dita
Symbian3/SDK/Source/GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e306771_href.jpg
Symbian3/SDK/Source/GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e313165_href.jpg
Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e19147_href.png
Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e49491_href.png
Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e55049_href.png
Symbian3/SDK/Source/GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e357582_href.png
Symbian3/SDK/Source/GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e363662_href.png
Symbian3/SDK/Source/GUID-DD77AA04-D0AB-4BEB-900F-B3BE50AC0B7F.dita
Symbian3/SDK/Source/GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB.dita
Symbian3/SDK/Source/GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e203628_href.png
Symbian3/SDK/Source/GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e208636_href.png
Symbian3/SDK/Source/GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e322882_href.jpg
Symbian3/SDK/Source/GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e329039_href.jpg
Symbian3/SDK/Source/GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e354645_href.png
Symbian3/SDK/Source/GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e360725_href.png
Symbian3/SDK/Source/GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902.dita
Symbian3/SDK/Source/GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita
Symbian3/SDK/Source/GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E.dita
Symbian3/SDK/Source/GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e124732_href.png
Symbian3/SDK/Source/GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e131270_href.png
Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e16477_href.png
Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e46823_href.png
Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e52379_href.png
Symbian3/SDK/Source/GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita
Symbian3/SDK/Source/GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E.dita
Symbian3/SDK/Source/GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e79092_href.png
Symbian3/SDK/Source/GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e85804_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655-master.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e51793_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e57398_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e58465_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e62487_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e69038_href.png
Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e74183_href.png
Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita
Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-6-1-1-3-1-10-1.dita
Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita
Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-6-1-1-3-1-10-1.dita
Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8-master.png
Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e67575_href.png
Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e72373_href.png
Symbian3/SDK/Source/GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4.dita
Symbian3/SDK/Source/GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e303526_href.jpg
Symbian3/SDK/Source/GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e309541_href.jpg
Symbian3/SDK/Source/GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD.dita
Symbian3/SDK/Source/GUID-E0C21636-657A-413F-A905-A08608B60768.dita
Symbian3/SDK/Source/GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita
Symbian3/SDK/Source/GUID-E1410365-7254-5326-B3F7-D7100D31E59F.dita
Symbian3/SDK/Source/GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60.dita
Symbian3/SDK/Source/GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita
Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita
Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1.dita
Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita
Symbian3/SDK/Source/GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e169127_href.jpg
Symbian3/SDK/Source/GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e175728_href.jpg
Symbian3/SDK/Source/GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e202076_href.png
Symbian3/SDK/Source/GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e207084_href.png
Symbian3/SDK/Source/GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e135205_href.png
Symbian3/SDK/Source/GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e141739_href.png
Symbian3/SDK/Source/GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3.dita
Symbian3/SDK/Source/GUID-E2E2FACF-5D4F-43E8-8B53-B268252CF572.dita
Symbian3/SDK/Source/GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e368521_href.png
Symbian3/SDK/Source/GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e374591_href.png
Symbian3/SDK/Source/GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita
Symbian3/SDK/Source/GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita
Symbian3/SDK/Source/GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita
Symbian3/SDK/Source/GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e332473_href.png
Symbian3/SDK/Source/GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e338630_href.png
Symbian3/SDK/Source/GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A.dita
Symbian3/SDK/Source/GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e66511_href.png
Symbian3/SDK/Source/GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e71755_href.png
Symbian3/SDK/Source/GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e130564_href.png
Symbian3/SDK/Source/GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e137102_href.png
Symbian3/SDK/Source/GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita
Symbian3/SDK/Source/GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e201740_href.png
Symbian3/SDK/Source/GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e206748_href.png
Symbian3/SDK/Source/GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita
Symbian3/SDK/Source/GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e322816_href.jpg
Symbian3/SDK/Source/GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e328973_href.jpg
Symbian3/SDK/Source/GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e3249_href.png
Symbian3/SDK/Source/GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e4524_href.png
Symbian3/SDK/Source/GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e203595_href.png
Symbian3/SDK/Source/GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e208603_href.png
Symbian3/SDK/Source/GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita
Symbian3/SDK/Source/GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e3490_href.png
Symbian3/SDK/Source/GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e4765_href.png
Symbian3/SDK/Source/GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e4231_href.png
Symbian3/SDK/Source/GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e5506_href.png
Symbian3/SDK/Source/GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e74415_href.png
Symbian3/SDK/Source/GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e79541_href.png
Symbian3/SDK/Source/GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2.dita
Symbian3/SDK/Source/GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita
Symbian3/SDK/Source/GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e77341_href.png
Symbian3/SDK/Source/GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e84053_href.png
Symbian3/SDK/Source/GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205.dita
Symbian3/SDK/Source/GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e67410_href.png
Symbian3/SDK/Source/GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e72613_href.png
Symbian3/SDK/Source/GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita
Symbian3/SDK/Source/GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF.dita
Symbian3/SDK/Source/GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita
Symbian3/SDK/Source/GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC.dita
Symbian3/SDK/Source/GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e334814_href.png
Symbian3/SDK/Source/GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e340971_href.png
Symbian3/SDK/Source/GUID-E764B4A3-4CEE-461D-B555-C8969A62130A.dita
Symbian3/SDK/Source/GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e337536_href.png
Symbian3/SDK/Source/GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e343733_href.png
Symbian3/SDK/Source/GUID-E7A53792-5ABC-460C-87EA-36E8C6989A2C.dita
Symbian3/SDK/Source/GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita
Symbian3/SDK/Source/GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e117641_href.png
Symbian3/SDK/Source/GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e124179_href.png
Symbian3/SDK/Source/GUID-E8266924-FA52-5171-BD73-423A46227A74.dita
Symbian3/SDK/Source/GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e266235_href.png
Symbian3/SDK/Source/GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e269943_href.png
Symbian3/SDK/Source/GUID-E87018CD-01B4-5886-87FC-CD25EE90587D.dita
Symbian3/SDK/Source/GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9.dita
Symbian3/SDK/Source/GUID-E8B0BDC7-714E-48EF-89F3-D8B7B34552ED.dita
Symbian3/SDK/Source/GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8.dita
Symbian3/SDK/Source/GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82.dita
Symbian3/SDK/Source/GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e111110_href.png
Symbian3/SDK/Source/GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e117648_href.png
Symbian3/SDK/Source/GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita
Symbian3/SDK/Source/GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413261_href.png
Symbian3/SDK/Source/GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413423_href.png
Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita
Symbian3/SDK/Source/GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e283704_href.png
Symbian3/SDK/Source/GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e287390_href.png
Symbian3/SDK/Source/GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita
Symbian3/SDK/Source/GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita
Symbian3/SDK/Source/GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E.dita
Symbian3/SDK/Source/GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e229007_href.png
Symbian3/SDK/Source/GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e232744_href.png
Symbian3/SDK/Source/GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47.dita
Symbian3/SDK/Source/GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390209_href.png
Symbian3/SDK/Source/GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390371_href.png
Symbian3/SDK/Source/GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita
Symbian3/SDK/Source/GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e184763_href.png
Symbian3/SDK/Source/GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e191359_href.png
Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3-master.png
Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e67688_href.png
Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e72825_href.png
Symbian3/SDK/Source/GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita
Symbian3/SDK/Source/GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita
Symbian3/SDK/Source/GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366-master.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e51873_href.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e57480_href.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e58382_href.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e62404_href.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e69109_href.png
Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e74252_href.png
Symbian3/SDK/Source/GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e280024_href.png
Symbian3/SDK/Source/GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e283710_href.png
Symbian3/SDK/Source/GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita
Symbian3/SDK/Source/GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e177456_href.png
Symbian3/SDK/Source/GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e184050_href.png
Symbian3/SDK/Source/GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita
Symbian3/SDK/Source/GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita
Symbian3/SDK/Source/GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita
Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e72175_href.png
Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e77324_href.png
Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e79634_href.png
Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF-master.png
Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e51678_href.png
Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e67259_href.png
Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e72462_href.png
Symbian3/SDK/Source/GUID-EDC16636-B24E-598B-9084-EAE782A4A213.dita
Symbian3/SDK/Source/GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e190360_href.png
Symbian3/SDK/Source/GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e195368_href.png
Symbian3/SDK/Source/GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita
Symbian3/SDK/Source/GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita
Symbian3/SDK/Source/GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e334772_href.jpg
Symbian3/SDK/Source/GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e340929_href.jpg
Symbian3/SDK/Source/GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e69754_href.png
Symbian3/SDK/Source/GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e74928_href.png
Symbian3/SDK/Source/GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita
Symbian3/SDK/Source/GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita
Symbian3/SDK/Source/GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e134536_href.png
Symbian3/SDK/Source/GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e141070_href.png
Symbian3/SDK/Source/GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C.dita
Symbian3/SDK/Source/GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e76890_href.png
Symbian3/SDK/Source/GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e83602_href.png
Symbian3/SDK/Source/GUID-EFEBDE65-293C-40AC-B57D-363158E77DA0.dita
Symbian3/SDK/Source/GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8.dita
Symbian3/SDK/Source/GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e219908_href.png
Symbian3/SDK/Source/GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e223645_href.png
Symbian3/SDK/Source/GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939.dita
Symbian3/SDK/Source/GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e431942_href.png
Symbian3/SDK/Source/GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e432104_href.png
Symbian3/SDK/Source/GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita
Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita
Symbian3/SDK/Source/GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE-master.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e51832_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e57438_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e58481_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e62503_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e64048_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69073_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69279_href.png
Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e74217_href.png
Symbian3/SDK/Source/GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e4714_href.png
Symbian3/SDK/Source/GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e5989_href.png
Symbian3/SDK/Source/GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e388871_href.jpg
Symbian3/SDK/Source/GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e389033_href.jpg
Symbian3/SDK/Source/GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita
Symbian3/SDK/Source/GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e74305_href.png
Symbian3/SDK/Source/GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e79427_href.png
Symbian3/SDK/Source/GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita
Symbian3/SDK/Source/GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e184149_href.png
Symbian3/SDK/Source/GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e190745_href.png
Symbian3/SDK/Source/GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita
Symbian3/SDK/Source/GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita
Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB-master.png
Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e18408_href.png
Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e54310_href.png
Symbian3/SDK/Source/GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e335623_href.png
Symbian3/SDK/Source/GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e341780_href.png
Symbian3/SDK/Source/GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita
Symbian3/SDK/Source/GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e117673_href.png
Symbian3/SDK/Source/GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e124211_href.png
Symbian3/SDK/Source/GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e189694_href.png
Symbian3/SDK/Source/GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e194747_href.png
Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364-master.png
Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e66931_href.png
Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e72186_href.png
Symbian3/SDK/Source/GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e184746_href.png
Symbian3/SDK/Source/GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e191342_href.png
Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita
Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1.dita
Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86.dita
Symbian3/SDK/Source/GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e213719_href.png
Symbian3/SDK/Source/GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e217456_href.png
Symbian3/SDK/Source/GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e220085_href.png
Symbian3/SDK/Source/GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e223822_href.png
Symbian3/SDK/Source/GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita
Symbian3/SDK/Source/GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e143081_href.png
Symbian3/SDK/Source/GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e149615_href.png
Symbian3/SDK/Source/GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita
Symbian3/SDK/Source/GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita
Symbian3/SDK/Source/GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3.dita
Symbian3/SDK/Source/GUID-F5371A59-A637-4623-A2C0-9A8B8E5F3CFB.dita
Symbian3/SDK/Source/GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59.dita
Symbian3/SDK/Source/GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e332635_href.png
Symbian3/SDK/Source/GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e338792_href.png
Symbian3/SDK/Source/GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e176051_href.png
Symbian3/SDK/Source/GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e182645_href.png
Symbian3/SDK/Source/GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita
Symbian3/SDK/Source/GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita
Symbian3/SDK/Source/GUID-F681C857-086F-527A-9946-A91560601658_d0e403679_href.jpg
Symbian3/SDK/Source/GUID-F681C857-086F-527A-9946-A91560601658_d0e403841_href.jpg
Symbian3/SDK/Source/GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e324544_href.png
Symbian3/SDK/Source/GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e330701_href.png
Symbian3/SDK/Source/GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E.dita
Symbian3/SDK/Source/GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita
Symbian3/SDK/Source/GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita
Symbian3/SDK/Source/GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita
Symbian3/SDK/Source/GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e169201_href.jpg
Symbian3/SDK/Source/GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e175802_href.jpg
Symbian3/SDK/Source/GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F.dita
Symbian3/SDK/Source/GUID-F77CC49A-904D-486B-8D16-972525EC34D5.dita
Symbian3/SDK/Source/GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e173024_href.png
Symbian3/SDK/Source/GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e179619_href.png
Symbian3/SDK/Source/GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2.dita
Symbian3/SDK/Source/GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita
Symbian3/SDK/Source/GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e70843_href.png
Symbian3/SDK/Source/GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e75876_href.png
Symbian3/SDK/Source/GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e79126_href.png
Symbian3/SDK/Source/GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e85838_href.png
Symbian3/SDK/Source/GUID-F7C762AA-3961-4739-ADD1-346DBF7CD7F8-master.png
Symbian3/SDK/Source/GUID-F7C762AA-3961-4739-ADD1-346DBF7CD7F8_d0e82262_href.png
Symbian3/SDK/Source/GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e36154_href.png
Symbian3/SDK/Source/GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e41721_href.png
Symbian3/SDK/Source/GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16.dita
Symbian3/SDK/Source/GUID-F8069628-BD32-535C-963A-A1CF8172E275.dita
Symbian3/SDK/Source/GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e202130_href.png
Symbian3/SDK/Source/GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e207138_href.png
Symbian3/SDK/Source/GUID-F8A26275-883A-5299-9C37-9DDCC2F62108.dita
Symbian3/SDK/Source/GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491-master.png
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e57672_href.png
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e62709_href.png
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e67818_href.png
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e69206_href.png
Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e74372_href.png
Symbian3/SDK/Source/GUID-F96D14A5-58BB-4F1A-A6FB-5D13DCB84B33-master.png
Symbian3/SDK/Source/GUID-F96D14A5-58BB-4F1A-A6FB-5D13DCB84B33_d0e61999_href.png
Symbian3/SDK/Source/GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e77110_href.png
Symbian3/SDK/Source/GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e83822_href.png
Symbian3/SDK/Source/GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita
Symbian3/SDK/Source/GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427411_href.png
Symbian3/SDK/Source/GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427573_href.png
Symbian3/SDK/Source/GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF.dita
Symbian3/SDK/Source/GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC.dita
Symbian3/SDK/Source/GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita
Symbian3/SDK/Source/GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e334695_href.png
Symbian3/SDK/Source/GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e340852_href.png
Symbian3/SDK/Source/GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e169039_href.jpg
Symbian3/SDK/Source/GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e175640_href.jpg
Symbian3/SDK/Source/GUID-FB45BC8B-FE99-5616-9270-132C4174DAE7-master.png
Symbian3/SDK/Source/GUID-FB45BC8B-FE99-5616-9270-132C4174DAE7_d0e383750_href.png
Symbian3/SDK/Source/GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e177098_href.png
Symbian3/SDK/Source/GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e183692_href.png
Symbian3/SDK/Source/GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e214615_href.png
Symbian3/SDK/Source/GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e218352_href.png
Symbian3/SDK/Source/GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253.dita
Symbian3/SDK/Source/GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e76136_href.png
Symbian3/SDK/Source/GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e82848_href.png
Symbian3/SDK/Source/GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e323758_href.jpg
Symbian3/SDK/Source/GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e329915_href.jpg
Symbian3/SDK/Source/GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita
Symbian3/SDK/Source/GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e334707_href.png
Symbian3/SDK/Source/GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e340864_href.png
Symbian3/SDK/Source/GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e306369_href.png
Symbian3/SDK/Source/GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312384_href.png
Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1.dita
Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-6-1-1-4-1-8-1-3-1.dita
Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita
Symbian3/SDK/Source/GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e215760_href.png
Symbian3/SDK/Source/GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e219497_href.png
Symbian3/SDK/Source/GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e194260_href.png
Symbian3/SDK/Source/GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e199268_href.png
Symbian3/SDK/Source/GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e383543_href.png
Symbian3/SDK/Source/GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e388684_href.png
Symbian3/SDK/Source/GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e72846_href.png
Symbian3/SDK/Source/GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e78000_href.png
Symbian3/SDK/Source/GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita
Symbian3/SDK/Source/GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e355285_href.png
Symbian3/SDK/Source/GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e361365_href.png
Symbian3/SDK/Source/GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e71700_href.png
Symbian3/SDK/Source/GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e76845_href.png
Symbian3/SDK/Source/GUID-FDD68915-5B6F-4091-A99A-64F91D508B3E.dita
Symbian3/SDK/Source/GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita
Symbian3/SDK/Source/GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5.dita
Symbian3/SDK/Source/GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e184843_href.png
Symbian3/SDK/Source/GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e191439_href.png
Symbian3/SDK/Source/GUID-FE4BBEB4-4E5A-5BF2-A72F-AF53BAD83518-master.png
Symbian3/SDK/Source/GUID-FE4BBEB4-4E5A-5BF2-A72F-AF53BAD83518_d0e187538_href.png
Symbian3/SDK/Source/GUID-FE922294-380D-447D-AC46-A46EFAD79168.dita
Symbian3/SDK/Source/GUID-FE94596E-B5BB-51FE-BE38-069840323915.dita
Symbian3/SDK/Source/GUID-FEFF353E-DE8A-5FBA-B696-CD01D06BE813-master.png
Symbian3/SDK/Source/GUID-FEFF353E-DE8A-5FBA-B696-CD01D06BE813_d0e187563_href.png
Symbian3/SDK/Source/GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438.dita
Symbian3/SDK/Source/GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita
Symbian3/SDK/Source/GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e79983_href.png
Symbian3/SDK/Source/GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e86695_href.png
Symbian3/SDK/Source/GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e3849_href.png
Symbian3/SDK/Source/GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e5124_href.png
Symbian3/SDK/Source/GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7.dita
Symbian3/SDK/Source/GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e338240_href.png
Symbian3/SDK/Source/GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e344437_href.png
--- a/Symbian3/SDK/Source/GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293" xml:lang="en"><title>Message
-Queue Overview</title><shortdesc>This topic describes the message queue overview.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A message queue is a mechanism for passing data: </p>
-<ul>
-<li id="GUID-B4740898-D06D-5B19-A3AD-E8FE3B72C397"><p>between threads within
-a process </p> </li>
-<li id="GUID-F9F8E8FF-02F7-5E11-BC57-61FFE1122DB1"><p>between threads that
-run in separate processes. </p> </li>
-</ul>
-<p>The mechanism provides a way to send data (messages) to an interested party
-without needing to know whether anyone is listening nor needing to know the
-identity of a recipient. </p>
-<p>A message is an object, usually an instance of a class, that is placed
-into a queue for delivery to recipients. A queue is normally created to deal
-with messages of a given type. This means that a queue is created to deal
-with messages of a defined (fixed) length. The size of a queue, i.e. the maximum
-number of messages, or slots, it can contain is defined and fixed when the
-queue is created. The size of message for which a queue is created, and the
-size of the queue is arbitrary, being limited only by system resources. </p>
-<p>A single queue can be shared by many readers and writers. Several threads
-may be reading from and writing to the same message queue, but only one thread
-can access the queue at a time. If multiple clients attempt to read from the
-message queue a panic will be raised. </p>
-<p>A message queue is represented by a <codeph>DMsgQueue</codeph> kernel side
-object, to which the reader and the writer can open a handle, a <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> object.
-A message queue is a reference counted object, being derived from <codeph>CObject</codeph>,
-which means that it is not persistent; it is deleted when the last handle
-to it is closed. The queue itself is simply a block of memory divided into
-slots, managed by the <codeph>DMsgQueue</codeph> object. </p>
-<fig id="GUID-BDA4A786-57B2-529D-BDFB-72D2B2B30670">
-<image href="GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e246744_href.png" placement="inline"/>
-</fig>
-<section id="GUID-1D2EF848-8068-56B9-850B-56AE88E192DE"><title>Handle to a
-message queue</title> <p>A message queue is created, opened, written to and
-read from through a message queue handle, an <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> object.
-This is a templated class, where the template parameter defines the message
-type. </p> <p> <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> is derived from <xref href="GUID-2DCEE7F5-9EA3-3546-8779-7299318176E2.dita"><apiname>RMsgQueueBase</apiname></xref>,
-which together form a thin template class/base class pair. <codeph>RMsgQueueBase</codeph> provides
-the implementation, while <codeph>RMsgQueue</codeph> provides type safety.
-An <codeph>RMsgQueueBase</codeph> object is a valid message queue handle,
-but does not offer the type safety that <codeph>RMsgQueue</codeph> does. </p> <fig id="GUID-B9685695-0E07-5CC1-AFED-0ABF4DC93ACB">
-<image href="GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e246783_href.png" placement="inline"/>
-</fig> <p>Message queues are used for one-way, one to one communications only.
-The message queue is therefore unicast. If there are multiple readers of the
-message queue only one will receive the message. </p> </section>
-<section id="GUID-910216A9-EE2D-5C45-8AB3-E1CBEF3B7514"><title>Visibility
-of a message queue</title> <p>A message queue can be: </p> <ul>
-<li id="GUID-A773AF82-EACC-57DB-9A6F-31F74A9EDF94"><p>named and be visible
-to all processes - a global queue </p> </li>
-<li id="GUID-9EFB0165-798F-5B5F-8537-199C9C16CE33"><p>local to the current
-process, i.e. not visible to any other process - a local queue </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293" xml:lang="en"><title>Message
+Queue Overview</title><shortdesc>This topic describes the message queue overview.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A message queue is a mechanism for passing data: </p>
+<ul>
+<li id="GUID-B4740898-D06D-5B19-A3AD-E8FE3B72C397"><p>between threads within
+a process </p> </li>
+<li id="GUID-F9F8E8FF-02F7-5E11-BC57-61FFE1122DB1"><p>between threads that
+run in separate processes. </p> </li>
+</ul>
+<p>The mechanism provides a way to send data (messages) to an interested party
+without needing to know whether anyone is listening nor needing to know the
+identity of a recipient. </p>
+<p>A message is an object, usually an instance of a class, that is placed
+into a queue for delivery to recipients. A queue is normally created to deal
+with messages of a given type. This means that a queue is created to deal
+with messages of a defined (fixed) length. The size of a queue, i.e. the maximum
+number of messages, or slots, it can contain is defined and fixed when the
+queue is created. The size of message for which a queue is created, and the
+size of the queue is arbitrary, being limited only by system resources. </p>
+<p>A single queue can be shared by many readers and writers. Several threads
+may be reading from and writing to the same message queue, but only one thread
+can access the queue at a time. If multiple clients attempt to read from the
+message queue a panic will be raised. </p>
+<p>A message queue is represented by a <codeph>DMsgQueue</codeph> kernel side
+object, to which the reader and the writer can open a handle, a <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> object.
+A message queue is a reference counted object, being derived from <codeph>CObject</codeph>,
+which means that it is not persistent; it is deleted when the last handle
+to it is closed. The queue itself is simply a block of memory divided into
+slots, managed by the <codeph>DMsgQueue</codeph> object. </p>
+<fig id="GUID-BDA4A786-57B2-529D-BDFB-72D2B2B30670">
+<image href="GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e243007_href.png" placement="inline"/>
+</fig>
+<section id="GUID-1D2EF848-8068-56B9-850B-56AE88E192DE"><title>Handle to a
+message queue</title> <p>A message queue is created, opened, written to and
+read from through a message queue handle, an <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> object.
+This is a templated class, where the template parameter defines the message
+type. </p> <p> <xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname>RMsgQueue</apiname></xref> is derived from <xref href="GUID-2DCEE7F5-9EA3-3546-8779-7299318176E2.dita"><apiname>RMsgQueueBase</apiname></xref>,
+which together form a thin template class/base class pair. <codeph>RMsgQueueBase</codeph> provides
+the implementation, while <codeph>RMsgQueue</codeph> provides type safety.
+An <codeph>RMsgQueueBase</codeph> object is a valid message queue handle,
+but does not offer the type safety that <codeph>RMsgQueue</codeph> does. </p> <fig id="GUID-B9685695-0E07-5CC1-AFED-0ABF4DC93ACB">
+<image href="GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e243046_href.png" placement="inline"/>
+</fig> <p>Message queues are used for one-way, one to one communications only.
+The message queue is therefore unicast. If there are multiple readers of the
+message queue only one will receive the message. </p> </section>
+<section id="GUID-910216A9-EE2D-5C45-8AB3-E1CBEF3B7514"><title>Visibility
+of a message queue</title> <p>A message queue can be: </p> <ul>
+<li id="GUID-A773AF82-EACC-57DB-9A6F-31F74A9EDF94"><p>named and be visible
+to all processes - a global queue </p> </li>
+<li id="GUID-9EFB0165-798F-5B5F-8537-199C9C16CE33"><p>local to the current
+process, i.e. not visible to any other process - a local queue </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-006C503D-1E52-450D-A4DA-8C19B141E09F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-006C503D-1E52-450D-A4DA-8C19B141E09F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,137 +1,137 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-006C503D-1E52-450D-A4DA-8C19B141E09F" xml:lang="en"><title>Introduction
-to Intermixing C and C++</title><shortdesc>When porting an open source application or any C (or C++) applications
-on top of Symbian/S60 using P.I.P.S., the developer will come across situations
-where C and C++ (and Symbian C++ as well) codes will be used together. The
-open source community implements a vast number of libraries that export C
-APIs to the user of such libraries.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-8-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-1">       <title>When
-and why to use C linkage</title>       <p>While porting such applications,
-if developers have to intermix C and C++ code, they then have to depend on
-C++ language features like extern "C" for giving C linkage to some set of
-APIs. This is required because C and C++ compilers handle function prototype
-in a different way. C++ compilers use name mangling, (or name decoration)
-to generate unique names for identifiers in a program. It is because of this
-technique, in C++, that it is possible to overload any functions (this requires
-that all the overloaded functions should have a different argument list).
-The C++ mangled name for any identifier contains all the necessary information
-that may be needed by the linker, such as linkage type, scope, calling convention,
-and others.</p><p>All identifiers (function names or variable names) declared
-or defined in C++ source or headers are subject to name mangling. When it
-comes to C, however, there is nothing called name mangling or overloading.
-It applies when the developer tries to use C APIs by including corresponding
-headers. To avoid name mangling, the developer should mention explicitly that
-those APIs are C APIs, by using the extern "C" keyword.  </p>     </section>
-<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-8-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-2">       <title>Syntax
-of extern C</title>       <p>The syntax of extern "C" is shown below: </p><codeblock xml:space="preserve">extern "C" declaration ;
-</codeblock><p>The declaration (or definition) that immediately follows extern
-"C" has the C linkage. </p><codeblock xml:space="preserve">extern "C" { 
-   declaration ; 
-   declaration ; 
-   ... 
-}</codeblock><p>Everything between the curly braces has C linkage, unless
-declared otherwise. </p>     </section>
-<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-8-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-3">       <title>How
-to use extern C</title>       <p>While writing header files with C functions
-which will be included by both C and C++ source files, the user must use extern
-"C" properly. See the example below: </p><codeblock xml:space="preserve">/*File: GoodCHeader.h */
-/* Can be used by C/C++ header and source files directly */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/* Write C function declarations here */
-void Function1(int, int);
-char* Function3(char*, int);
-int Function2(int);
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-</codeblock><p>Using <codeph>ifdef __cplusplus</codeph> is required since
-C does not support or recognize the <codeph>extern</codeph> keyword. It is
-C++ that provides the mechanisms for mixing C and C++ codes in the same program.
-To be precise, C++ supports mixing codes that are compiled by C and C++ compatible
-compilers in the same program.</p><p>If the C header is already defined and
-it does not have all the APIs defined under extern "C", then while including
-such a header in C++ source or header files, extern "C" should be used as
-in the example below:  </p><codeblock xml:space="preserve">*File: PureCHeader.h */
-/* If C++ header/source files need to include this header, extern "C" should be used*/
-/* Define all C APIs here*/
-void Function1(int, int);
-char* Function3(char*, int);
-int Function2(int);
-#endif
-
-
-//File: CSource.cpp
-// C++ source file using PureCHeader.h
-extern "C" {
-#include "PureCHeader.h"
-}
-void Foo() {
-   // use those C APIs here
-   int ret = Function2(10);
-}
-</codeblock>     </section>
-<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-8-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-4">       <title>Mixing
-C and C++ features using extern "C"</title>       <p>The developer
-can use all the features of C++ except templates within C by giving those
-functions extern "C" linkage. See the example below:</p><codeblock xml:space="preserve">#include &lt;iostream&gt;
-using namespace std;
-
-extern "C" {
-
-//Can give C linkage to this class!!
-class Sample{
-public:
-   Sample(int a = 10) : iMem(a) { }
-   void Display() { cout&lt;&lt;"iMem is : "&lt;&lt;iMemend1; }
-private:
-   int iMem;
-};
-
-/*
-//Can not  give C linkage to template!!
-//If we uncomment this code, then it will give a compilation error.
-template&lt;class DataType&gt; void Foo(DataType data) {
-}*/
-}</codeblock>     </section>
-<section id="GUID-9AC33F43-5B75-4994-899F-02CD3CE43E5C"><title>Extending C
-codes with C++ Codes</title><p>Using C linkage, C codes like structures and
-functions that manipulate those structures can be extended efficiently in
-a C++ source file as in the example below:  </p><codeblock xml:space="preserve">/* File: CHeader.h */
-typedef struct{
-   char* name;
-   int id;
-   float price;
-} Item;
-
-int Push(Item* item);
-int Pop(Item* item);
-
-
-
-/* File: CppHeader.h */
-//Give external linkage to C structure
-extern "C" {
-# include "CHeader.h"
-}
-
-class MyStack : public Item {
-public:
-   MyStack(char* aName, int aId, float aPrice) : name(aName), id(aId), price(aPrice) { }
-   int PushOnToStack() { return Push(this);}
-   int PopFromStack() { return Pop(this); }
-};
-</codeblock></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-006C503D-1E52-450D-A4DA-8C19B141E09F" xml:lang="en"><title>Introduction
+to Intermixing C and C++</title><shortdesc>When porting an open source application or any C (or C++) applications
+on top of Symbian/S60 using P.I.P.S., the developer will come across situations
+where C and C++ (and Symbian C++ as well) codes will be used together. The
+open source community implements a vast number of libraries that export C
+APIs to the user of such libraries.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-10-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-1">       <title>When
+and why to use C linkage</title>       <p>While porting such applications,
+if developers have to intermix C and C++ code, they then have to depend on
+C++ language features like extern "C" for giving C linkage to some set of
+APIs. This is required because C and C++ compilers handle function prototype
+in a different way. C++ compilers use name mangling, (or name decoration)
+to generate unique names for identifiers in a program. It is because of this
+technique, in C++, that it is possible to overload any functions (this requires
+that all the overloaded functions should have a different argument list).
+The C++ mangled name for any identifier contains all the necessary information
+that may be needed by the linker, such as linkage type, scope, calling convention,
+and others.</p><p>All identifiers (function names or variable names) declared
+or defined in C++ source or headers are subject to name mangling. When it
+comes to C, however, there is nothing called name mangling or overloading.
+It applies when the developer tries to use C APIs by including corresponding
+headers. To avoid name mangling, the developer should mention explicitly that
+those APIs are C APIs, by using the extern "C" keyword.  </p>     </section>
+<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-10-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-2">       <title>Syntax
+of extern C</title>       <p>The syntax of extern "C" is shown below: </p><codeblock xml:space="preserve">extern "C" declaration ;
+</codeblock><p>The declaration (or definition) that immediately follows extern
+"C" has the C linkage. </p><codeblock xml:space="preserve">extern "C" { 
+   declaration ; 
+   declaration ; 
+   ... 
+}</codeblock><p>Everything between the curly braces has C linkage, unless
+declared otherwise. </p>     </section>
+<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-10-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-3">       <title>How
+to use extern C</title>       <p>While writing header files with C functions
+which will be included by both C and C++ source files, the user must use extern
+"C" properly. See the example below: </p><codeblock xml:space="preserve">/*File: GoodCHeader.h */
+/* Can be used by C/C++ header and source files directly */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* Write C function declarations here */
+void Function1(int, int);
+char* Function3(char*, int);
+int Function2(int);
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+</codeblock><p>Using <codeph>ifdef __cplusplus</codeph> is required since
+C does not support or recognize the <codeph>extern</codeph> keyword. It is
+C++ that provides the mechanisms for mixing C and C++ codes in the same program.
+To be precise, C++ supports mixing codes that are compiled by C and C++ compatible
+compilers in the same program.</p><p>If the C header is already defined and
+it does not have all the APIs defined under extern "C", then while including
+such a header in C++ source or header files, extern "C" should be used as
+in the example below:  </p><codeblock xml:space="preserve">*File: PureCHeader.h */
+/* If C++ header/source files need to include this header, extern "C" should be used*/
+/* Define all C APIs here*/
+void Function1(int, int);
+char* Function3(char*, int);
+int Function2(int);
+#endif
+
+
+//File: CSource.cpp
+// C++ source file using PureCHeader.h
+extern "C" {
+#include "PureCHeader.h"
+}
+void Foo() {
+   // use those C APIs here
+   int ret = Function2(10);
+}
+</codeblock>     </section>
+<section id="GUID-88635D46-AEF6-4E8E-969D-D3E56941F289-GENID-1-10-1-11-1-1-5-1-3-1-7-1-4-1-4-1-3-4">       <title>Mixing
+C and C++ features using extern "C"</title>       <p>The developer
+can use all the features of C++ except templates within C by giving those
+functions extern "C" linkage. See the example below:</p><codeblock xml:space="preserve">#include &lt;iostream&gt;
+using namespace std;
+
+extern "C" {
+
+//Can give C linkage to this class!!
+class Sample{
+public:
+   Sample(int a = 10) : iMem(a) { }
+   void Display() { cout&lt;&lt;"iMem is : "&lt;&lt;iMemend1; }
+private:
+   int iMem;
+};
+
+/*
+//Can not  give C linkage to template!!
+//If we uncomment this code, then it will give a compilation error.
+template&lt;class DataType&gt; void Foo(DataType data) {
+}*/
+}</codeblock>     </section>
+<section id="GUID-9AC33F43-5B75-4994-899F-02CD3CE43E5C"><title>Extending C
+codes with C++ Codes</title><p>Using C linkage, C codes like structures and
+functions that manipulate those structures can be extended efficiently in
+a C++ source file as in the example below:  </p><codeblock xml:space="preserve">/* File: CHeader.h */
+typedef struct{
+   char* name;
+   int id;
+   float price;
+} Item;
+
+int Push(Item* item);
+int Pop(Item* item);
+
+
+
+/* File: CppHeader.h */
+//Give external linkage to C structure
+extern "C" {
+# include "CHeader.h"
+}
+
+class MyStack : public Item {
+public:
+   MyStack(char* aName, int aId, float aPrice) : name(aName), id(aId), price(aPrice) { }
+   int PushOnToStack() { return Push(this);}
+   int PopFromStack() { return Pop(this); }
+};
+</codeblock></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE"><title>What are Layers</title><shortdesc>This topic describes the concept of a <i>Layer</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Layer is a horizontal division of functionality in a stack. </p> <p>A Layer matches the concept of the Layer in the seven-layer International Organization for Standardization's OSI Model. A Layer also matches the concept of the Layer in the five layer model used to describe TCP/IP. </p> <p>A Layer can contain a single Communications Protocol. A Layer can also contain a number of related protocols collected into a single unit. TLS, TCP, IP, Ethernet are examples of the protocols. </p> <p>The concept of a Layer allows device creators to have different implementations in a given Layer. When a data connection starts or when the environment changes, the best protocol can be selected. </p> <p>The following diagram shows the concept. The diagram also shows the position of the Sockets Server Client APIs. </p> <fig id="GUID-B1EA40DF-E7D2-5326-9516-0DA2A917DC02"><title>
-          Layers in the Communications Framework 
-        </title> <image href="GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e82939_href.png" placement="inline"/></fig> <p>Although each Layer contains a different protocol, the Communications Framework allows separate protocols to make a single Layer. For example: NCP, LCP and HDLC together make the PPP protocol. TCP, UDP, ICMP, IP together make the TCP/IP group of protocols. Each of these groups of protocols can be put together into a single Layer. </p> <p>The number of Layers only depends on the configuration of the Communications Stack. The top Layer has the Sockets Server. The bottom Layer has the drivers for the communication hardware . Each Layer interacts only with the Layer immediately above and the Layer immediately below. </p> <p>The framework APIs that connect the protocols in each Layer are consistent across the Communications Framework. All protocols share a common method of communication that is independent of protocol behaviour. A common method of communication allows protocols to be stacked. The Communications Framework provides flexibility in the configuration of the protocol stacks for each device. The following diagram shows a number of protocols at each Layer. </p> <fig id="GUID-D4A66FE7-8163-5383-A500-A8591CA9538E"><title>
-          Protocols arranged in Layers in the Communications Framework 
-        </title> <image href="GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e82954_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE"><title>What are Layers</title><shortdesc>This topic describes the concept of a <i>Layer</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Layer is a horizontal division of functionality in a stack. </p> <p>A Layer matches the concept of the Layer in the seven-layer International Organization for Standardization's OSI Model. A Layer also matches the concept of the Layer in the five layer model used to describe TCP/IP. </p> <p>A Layer can contain a single Communications Protocol. A Layer can also contain a number of related protocols collected into a single unit. TLS, TCP, IP, Ethernet are examples of the protocols. </p> <p>The concept of a Layer allows device creators to have different implementations in a given Layer. When a data connection starts or when the environment changes, the best protocol can be selected. </p> <p>The following diagram shows the concept. The diagram also shows the position of the Sockets Server Client APIs. </p> <fig id="GUID-B1EA40DF-E7D2-5326-9516-0DA2A917DC02"><title>
+          Layers in the Communications Framework 
+        </title> <image href="GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e76227_href.png" placement="inline"/></fig> <p>Although each Layer contains a different protocol, the Communications Framework allows separate protocols to make a single Layer. For example: NCP, LCP and HDLC together make the PPP protocol. TCP, UDP, ICMP, IP together make the TCP/IP group of protocols. Each of these groups of protocols can be put together into a single Layer. </p> <p>The number of Layers only depends on the configuration of the Communications Stack. The top Layer has the Sockets Server. The bottom Layer has the drivers for the communication hardware . Each Layer interacts only with the Layer immediately above and the Layer immediately below. </p> <p>The framework APIs that connect the protocols in each Layer are consistent across the Communications Framework. All protocols share a common method of communication that is independent of protocol behaviour. A common method of communication allows protocols to be stacked. The Communications Framework provides flexibility in the configuration of the protocol stacks for each device. The following diagram shows a number of protocols at each Layer. </p> <fig id="GUID-D4A66FE7-8163-5383-A500-A8591CA9538E"><title>
+          Protocols arranged in Layers in the Communications Framework 
+        </title> <image href="GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e76242_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,24 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E" xml:lang="en"><title>Password
-query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A specific case of the Data query is the Password query, used for confidential
-information such as passwords or PINs. It uses the password editor, which
-functions much like any other editor, except that instead of the actual data,
-a dummy character (asterisk) represents each input character. In case of a
-numeric-only password, the asterisks appear as soon as characters are entered.
-In case of alphanumeric input, to support typing characters by repeated presses
-of the same numeric key, the character is displayed normally for a short time,
-and then changed into an asterisk.</p>
-<section><title>Using password queries
-in C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E" xml:lang="en"><title>Password
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A specific case of the Data query is the Password query, used for confidential
+information such as passwords or PINs. It uses the password editor, which
+functions much like any other editor, except that instead of the actual data,
+a dummy character (asterisk) represents each input character. In case of a
+numeric-only password, the asterisks appear as soon as characters are entered.
+In case of alphanumeric input, to support typing characters by repeated presses
+of the same numeric key, the character is displayed normally for a short time,
+and then changed into an asterisk.</p>
+<section id="GUID-A432F015-7FAF-4425-B7CC-F6543AA84DFD"><title>Using
+password queries in applications</title><p>For implementation
+information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e255924_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e259632_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC-master.png has changed
Binary file Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e52617_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e58536_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06" xml:lang="en"><title>Requesting
-RAM Synchronously</title><shortdesc>This section describes how an application can request for free
-RAM synchronously.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-CCF15EAF-F053-4968-AF9F-F9D0345F9F36"><p>Perform the steps
-described in <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Allowing
-Large Memory Allocation</xref>.</p></prereq>
-<context id="GUID-BFCBBCAE-9FD9-4549-86E9-48294E896D32">       <p>Requesting
-free RAM synchronously is easy to implement because no active object is needed
-and is recommended when there is no need to perform any other task while waiting
-for the request to complete. This approach is not recommended in case of a
-server, as synchronous call blocks the server and it cannot serve its clients
-during synchronous wait.</p>     </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-6-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-6-1-3-3-1"><cmd>Request free memory.</cmd>
-<info>           <codeblock xml:space="preserve">User::LeaveIfError(iOomMonitorSession.RequestFreeMemory(KLargeValueToAllocate));
-DoFunctionRequiring_KLargeValueToAllocate_Bytes();</codeblock>         </info>
-</step>
-</steps>
-<example><p>The following code snippet illustrates an synchronous request
-for 2MB RAM: </p><codeblock xml:space="preserve">TInt KLargeValueToAllocate = 2097152; //2MB
-
-// Create an OOM Monitor session
-ROomMonitorSession oomMonitorSession;
-CleanUpClosePushL(oomMonitorSession);
-User::LeaveIfError(oomMonitorSession.Connect());
-
-// Request free memory
-User::LeaveIfError(iOomMonitorSession.RequestFreeMemory(KLargeValueToAllocate));
-DoFunctionRequiring_KLargeValueToAllocate_Bytes();
-
-// Tidy up
-CleanupStack::PopAndDestroy(); //oomMonitorSession, calls Close()
-</codeblock></example>
-</taskbody><related-links>
-<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
-Priority</linktext></link>
-<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
-Overview</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06" xml:lang="en"><title>Requesting
+RAM Synchronously</title><shortdesc>This section describes how an application can request for free
+RAM synchronously.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-CCF15EAF-F053-4968-AF9F-F9D0345F9F36"><p>Perform the steps
+described in <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Allowing
+Large Memory Allocation</xref>.</p></prereq>
+<context id="GUID-BFCBBCAE-9FD9-4549-86E9-48294E896D32">       <p>Requesting
+free RAM synchronously is easy to implement because no active object is needed
+and is recommended when there is no need to perform any other task while waiting
+for the request to complete. This approach is not recommended in case of a
+server, as synchronous call blocks the server and it cannot serve its clients
+during synchronous wait.</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-6-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-6-1-3-3-1"><cmd>Request free memory.</cmd>
+<info>           <codeblock xml:space="preserve">User::LeaveIfError(iOomMonitorSession.RequestFreeMemory(KLargeValueToAllocate));
+DoFunctionRequiring_KLargeValueToAllocate_Bytes();</codeblock>         </info>
+</step>
+</steps>
+<example><p>The following code snippet illustrates an synchronous request
+for 2MB RAM: </p><codeblock xml:space="preserve">TInt KLargeValueToAllocate = 2097152; //2MB
+
+// Create an OOM Monitor session
+ROomMonitorSession oomMonitorSession;
+CleanUpClosePushL(oomMonitorSession);
+User::LeaveIfError(oomMonitorSession.Connect());
+
+// Request free memory
+User::LeaveIfError(iOomMonitorSession.RequestFreeMemory(KLargeValueToAllocate));
+DoFunctionRequiring_KLargeValueToAllocate_Bytes();
+
+// Tidy up
+CleanupStack::PopAndDestroy(); //oomMonitorSession, calls Close()
+</codeblock></example>
+</taskbody><related-links>
+<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
+Priority</linktext></link>
+<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
+Overview</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e242288_href.png has changed
Binary file Symbian3/SDK/Source/GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e246025_href.png has changed
--- a/Symbian3/SDK/Source/GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-01979029-C009-5FD3-9925-2B7945FB96A6"><title>Restarting a Network Connection Tutorial</title><shortdesc>This section describes the steps used to start a network connection that was stopped due to contention. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-8-1-20-1-1-5-1-4-1-5-1-8-1-3-1"><title>Introduction</title> <p>A low priority connection is terminated when a contention issue occurs and the incoming connection has a higher priority. The low priority connection can be restarted when the higher priority connection is complete. For example, if an always-on Internet connection is terminated to enable the user to send an MMS, the Internet connection is restarted when the message is sent. </p> </section> <section><title>Introduction</title> <ol id="GUID-409D0186-1BE4-5F7B-999D-0A9FFDED5F14"><li id="GUID-99D5A504-3DE4-59A1-AFC0-A49D13A8B7F5"><p>To terminate the high priority connection on of the following occurs: </p> <ol id="GUID-CF81E2BE-E5E4-5143-AA5C-B0355FB9F9BE"><li id="GUID-E8FE9288-9E3C-58CC-B7AA-435FB1D8DFBF"><p>The Connection Provider (CPR) receives a <codeph>TStopNormal</codeph> message to terminate the process. </p> </li> <li id="GUID-DC6D3CEA-8CD1-5B36-856A-A20AEED6DA0E"><p>The connection remains idle and is automatically terminated. </p> </li> </ol> </li> <li id="GUID-9F56D151-DD81-5706-B82B-3194FA85DAD0"><p>The PDP Tier Manager does the following: </p> <ol id="GUID-E813DD8A-5F6C-5D92-9F99-B596FC7CB8D7"><li id="GUID-6D80A333-6517-5314-B8CA-797AF13D21C3"><p>Indicates to the PDP Meta-Connection Provider (MCPR) of the low priority connection that it can restore the connection. </p> </li> <li id="GUID-D14D495F-5C98-5C80-8A90-50C22806ADC3"><p>The PDP MCPR sends an availability notification to the <codeph>CConnection</codeph> of the low priority connection. </p> </li> </ol> </li> <li id="GUID-AA69E7A9-F16C-5284-9406-C6874569C897"><p> <codeph>CConnection</codeph> of the low priority connection receives the availability notification and uses <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-C7F27821-BE25-3560-B1A9-74D1A2BB38A9"><apiname>RConnection::Start(TConnPrefList)</apiname></xref> to establish the connection. </p> </li> </ol>  </section> <section><title>Restoring a connection </title> <p>Use the following code to ensure a stopped connection is restored when the higher priority connection has completed. </p> <codeblock id="GUID-92251970-53D1-5DE7-A67E-BC392C43B470" xml:space="preserve">
-
-    TConnPrefList* prefs = TConnPrefList::NewL();
-    CleanupStack::PushL(prefs);
-    TConnAPPref* APPref = TConnAPPref::NewL(iSnapNumber);
-    CleanupStack::PushL(APPref);
-    TConnAutoStartPref* autoPref = TConnAutoStartPref::NewL();
-    CleanupStack::PushL(autoPref);
-    prefs-&gt;AppendL(APPref);
-    prefs-&gt;AppendL(autoPref);
-
-    error = iConnection-&gt;Start(*prefs);  //Synchronous start. 
-    // For asynchronous variant iConnection-&gt;Start(*iPrefs,  iStatus), you need to     // store “prefs” as a class member and delete them in RunL .
-
-    delete APPref;
-    delete autoPref;
-    prefs-&gt;Remove(0);
-    prefs-&gt;Remove(0);
-    delete prefs;
-
-</codeblock> </section> </conbody><related-links><link href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita"><linktext>What is Contention?</linktext> </link> <link href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita"><linktext>What is Contention
-                Management?</linktext> </link> <link href="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita"><linktext>What are Access Point
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-01979029-C009-5FD3-9925-2B7945FB96A6"><title>Restarting a Network Connection Tutorial</title><shortdesc>This section describes the steps used to start a network connection that was stopped due to contention. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-10-1-21-1-1-5-1-4-1-5-1-8-1-3-1"><title>Introduction</title> <p>A low priority connection is terminated when a contention issue occurs and the incoming connection has a higher priority. The low priority connection can be restarted when the higher priority connection is complete. For example, if an always-on Internet connection is terminated to enable the user to send an MMS, the Internet connection is restarted when the message is sent. </p> </section> <section><title>Introduction</title> <ol id="GUID-409D0186-1BE4-5F7B-999D-0A9FFDED5F14"><li id="GUID-99D5A504-3DE4-59A1-AFC0-A49D13A8B7F5"><p>To terminate the high priority connection on of the following occurs: </p> <ol id="GUID-CF81E2BE-E5E4-5143-AA5C-B0355FB9F9BE"><li id="GUID-E8FE9288-9E3C-58CC-B7AA-435FB1D8DFBF"><p>The Connection Provider (CPR) receives a <codeph>TStopNormal</codeph> message to terminate the process. </p> </li> <li id="GUID-DC6D3CEA-8CD1-5B36-856A-A20AEED6DA0E"><p>The connection remains idle and is automatically terminated. </p> </li> </ol> </li> <li id="GUID-9F56D151-DD81-5706-B82B-3194FA85DAD0"><p>The PDP Tier Manager does the following: </p> <ol id="GUID-E813DD8A-5F6C-5D92-9F99-B596FC7CB8D7"><li id="GUID-6D80A333-6517-5314-B8CA-797AF13D21C3"><p>Indicates to the PDP Meta-Connection Provider (MCPR) of the low priority connection that it can restore the connection. </p> </li> <li id="GUID-D14D495F-5C98-5C80-8A90-50C22806ADC3"><p>The PDP MCPR sends an availability notification to the <codeph>CConnection</codeph> of the low priority connection. </p> </li> </ol> </li> <li id="GUID-AA69E7A9-F16C-5284-9406-C6874569C897"><p> <codeph>CConnection</codeph> of the low priority connection receives the availability notification and uses <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-C7F27821-BE25-3560-B1A9-74D1A2BB38A9"><apiname>RConnection::Start(TConnPrefList)</apiname></xref> to establish the connection. </p> </li> </ol>  </section> <section><title>Restoring a connection </title> <p>Use the following code to ensure a stopped connection is restored when the higher priority connection has completed. </p> <codeblock id="GUID-92251970-53D1-5DE7-A67E-BC392C43B470" xml:space="preserve">
+
+    TConnPrefList* prefs = TConnPrefList::NewL();
+    CleanupStack::PushL(prefs);
+    TConnAPPref* APPref = TConnAPPref::NewL(iSnapNumber);
+    CleanupStack::PushL(APPref);
+    TConnAutoStartPref* autoPref = TConnAutoStartPref::NewL();
+    CleanupStack::PushL(autoPref);
+    prefs-&gt;AppendL(APPref);
+    prefs-&gt;AppendL(autoPref);
+
+    error = iConnection-&gt;Start(*prefs);  //Synchronous start. 
+    // For asynchronous variant iConnection-&gt;Start(*iPrefs,  iStatus), you need to     // store “prefs” as a class member and delete them in RunL .
+
+    delete APPref;
+    delete autoPref;
+    prefs-&gt;Remove(0);
+    prefs-&gt;Remove(0);
+    delete prefs;
+
+</codeblock> </section> </conbody><related-links><link href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita"><linktext>What is Contention?</linktext> </link> <link href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita"><linktext>What is Contention
+                Management?</linktext> </link> <link href="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita"><linktext>What are Access Point
                 Priorities?</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F-master.png has changed
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e57338_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e62220_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e67292_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e68994_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e74136_href.png has changed
--- a/Symbian3/SDK/Source/GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A" xml:lang="en"><title>Porting
-applications from S60 5th Edition to Symbian^3</title><shortdesc>This section describes the changes required for applications to
-work on Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-3-1">
-<step id="GUID-D995E87C-216A-4368-AFB6-C541DF4691B1"><cmd>Add the following
-macro in your application's MMP files. This is required because the structure
-of the source code has changed.</cmd>
-<stepxmp><codeblock xml:space="preserve">APP_LAYER_SYSTEMINCLUDE</codeblock></stepxmp>
-</step>
-<step id="GUID-BECEFF4A-7EDA-42E1-8286-72DA13200D70"><cmd><xref href="GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita">Modify
-the applications to support single-tap</xref>.</cmd>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A" xml:lang="en"><title>Porting
+applications from S60 5th Edition to Symbian^3</title><shortdesc>This section describes the changes required for applications to
+work on Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-3-1">
+<step id="GUID-D995E87C-216A-4368-AFB6-C541DF4691B1"><cmd>Add the following
+macro in your application's MMP files. This is required because the structure
+of the source code has changed.</cmd>
+<stepxmp><codeblock xml:space="preserve">APP_LAYER_SYSTEMINCLUDE</codeblock></stepxmp>
+</step>
+<step id="GUID-BECEFF4A-7EDA-42E1-8286-72DA13200D70"><cmd><xref href="GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita">Modify
+the applications to support single-tap</xref>.</cmd>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e304438_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e310453_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e333616_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e339773_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e277562_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e281248_href.png has changed
--- a/Symbian3/SDK/Source/GUID-02659624-4C27-573C-BE2E-0250D860BEA3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-02659624-4C27-573C-BE2E-0250D860BEA3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-02659624-4C27-573C-BE2E-0250D860BEA3"><title>Media Client Video Display Overview</title><shortdesc>This document provides an overview of the Media Client Video Display library that is used by the Video Client library in the Multimedia Framework component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Media Client Video Display library allows you to display video in a window and to support a graphic surface. </p> </section> <section><title>Media Client Video Display library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-95C28A17-6CB2-5FAC-A687-30CB0D597683"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short description</entry> </row> </thead> <tbody><row><entry><p> <filepath>mediaclientvideodisplay.dll</filepath>  </p> </entry> <entry><p> <filepath>mediaclientvideodisplay.lib</filepath>  </p> </entry> <entry><p>These files are used to implement the display video functionality and support graphics surfaces. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architecture</title> <p>Media Client Video Display is a standalone library used by the <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client</xref> library to support video display. This allows you to use video display functionality separately from the client utilities. The class diagram for<xref href="GUID-2BE86C43-A982-39BC-B881-C190966A7E77.dita"><apiname>CMediaClientVideoDisplay</apiname></xref> is as follows: </p> <fig id="GUID-F8823BC8-AACB-5B7A-A751-11C1C326B71E"><image href="GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e321418_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Media Client Video Display library is a client interface to access display functions. The display functions are as follows: </p> <ul><li id="GUID-188BF5BC-EE01-5593-B7BD-57253F0C465E"><p>Adding a new window </p> </li> <li id="GUID-08928C55-2B49-5EFC-B1E1-35AB5271A6C3"><p>Redrawing the window </p> </li> <li id="GUID-69333E32-73A4-5354-9513-7D91FFF6D6D5"><p>Setting the video data for automatic and specified dimension scaling </p> </li> <li id="GUID-A53EAB56-691A-5A5C-AF0E-60B4F67B6997"><p>Rotating the video image </p> </li> <li id="GUID-D63B8851-2A38-5DF2-A2A8-5EDD3BB6A198"><p>Clipping the window </p> </li> <li id="GUID-A8A4DF2F-AC7A-5005-A5DD-AF996740557E"><p>Setting the video extension on the screen that is relative to the window. </p> </li> </ul> <p>The Media Client Video Display library allows you to perform rendering of video to graphics surfaces. It provides APIs to: </p> <ul><li id="GUID-4235EB20-E591-5A83-9380-799122774221"><p>Create the graphic surface </p> </li> <li id="GUID-4E7AF838-3DAD-5A28-B4FF-7AF9882A2716"><p>Update the graphic surface </p> </li> <li id="GUID-4A154439-4857-5A1D-97D6-0DB1E18BAAD3"><p>Surface parameters changed during video play back </p> </li> <li id="GUID-66212705-E07F-55BB-8404-EE7F392F08AE"><p>Remove the graphic surface. </p> </li> </ul> </section> <section><title>APIs</title> <p>The key class of Media Client Video Display is as follows: </p> <table id="GUID-65E3B808-88AF-569A-847F-DE3ABE4CCC1B"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-2BE86C43-A982-39BC-B881-C190966A7E77.dita"><apiname>CMediaClientVideoDisplay</apiname></xref>  </p> </entry> <entry><p>This class is an interface to add or remove video display windows. The <codeph>CMediaClientVideoDisplay</codeph> class supports graphics surfaces and provides display handling functions like video extension, scaling and rotation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Using Media Client Video Display</title> <p>Clients use <codeph>CMediaClientVideoDisplay</codeph> to: </p> <ul><li id="GUID-104EE148-7167-5F88-B9BB-42BA7A39B08F"><p>Display video in a window </p> </li> <li id="GUID-962251B9-D784-5DB9-AB52-293039E78F9A"><p>Support graphics surfaces. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-152BF5C3-CE32-5174-A043-1B2D5D8168C3.dita"><linktext>Media Client Video Display
-                Tutorial</linktext> </link> <link href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita"><linktext>Video Client Overview</linktext> </link> <link href="GUID-ADA8CECB-0E70-5B9C-8F36-0714AAF0CD13.dita"><linktext>Graphics Composition
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-02659624-4C27-573C-BE2E-0250D860BEA3"><title>Media Client Video Display Overview</title><shortdesc>This document provides an overview of the Media Client Video Display library that is used by the Video Client library in the Multimedia Framework component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Media Client Video Display library allows you to display video in a window and to support a graphic surface. </p> </section> <section><title>Media Client Video Display library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-95C28A17-6CB2-5FAC-A687-30CB0D597683"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short description</entry> </row> </thead> <tbody><row><entry><p> <filepath>mediaclientvideodisplay.dll</filepath>  </p> </entry> <entry><p> <filepath>mediaclientvideodisplay.lib</filepath>  </p> </entry> <entry><p>These files are used to implement the display video functionality and support graphics surfaces. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architecture</title> <p>Media Client Video Display is a standalone library used by the <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client</xref> library to support video display. This allows you to use video display functionality separately from the client utilities. The class diagram for<xref href="GUID-2BE86C43-A982-39BC-B881-C190966A7E77.dita"><apiname>CMediaClientVideoDisplay</apiname></xref> is as follows: </p> <fig id="GUID-F8823BC8-AACB-5B7A-A751-11C1C326B71E"><image href="GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e315024_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Media Client Video Display library is a client interface to access display functions. The display functions are as follows: </p> <ul><li id="GUID-188BF5BC-EE01-5593-B7BD-57253F0C465E"><p>Adding a new window </p> </li> <li id="GUID-08928C55-2B49-5EFC-B1E1-35AB5271A6C3"><p>Redrawing the window </p> </li> <li id="GUID-69333E32-73A4-5354-9513-7D91FFF6D6D5"><p>Setting the video data for automatic and specified dimension scaling </p> </li> <li id="GUID-A53EAB56-691A-5A5C-AF0E-60B4F67B6997"><p>Rotating the video image </p> </li> <li id="GUID-D63B8851-2A38-5DF2-A2A8-5EDD3BB6A198"><p>Clipping the window </p> </li> <li id="GUID-A8A4DF2F-AC7A-5005-A5DD-AF996740557E"><p>Setting the video extension on the screen that is relative to the window. </p> </li> </ul> <p>The Media Client Video Display library allows you to perform rendering of video to graphics surfaces. It provides APIs to: </p> <ul><li id="GUID-4235EB20-E591-5A83-9380-799122774221"><p>Create the graphic surface </p> </li> <li id="GUID-4E7AF838-3DAD-5A28-B4FF-7AF9882A2716"><p>Update the graphic surface </p> </li> <li id="GUID-4A154439-4857-5A1D-97D6-0DB1E18BAAD3"><p>Surface parameters changed during video play back </p> </li> <li id="GUID-66212705-E07F-55BB-8404-EE7F392F08AE"><p>Remove the graphic surface. </p> </li> </ul> </section> <section><title>APIs</title> <p>The key class of Media Client Video Display is as follows: </p> <table id="GUID-65E3B808-88AF-569A-847F-DE3ABE4CCC1B"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-2BE86C43-A982-39BC-B881-C190966A7E77.dita"><apiname>CMediaClientVideoDisplay</apiname></xref>  </p> </entry> <entry><p>This class is an interface to add or remove video display windows. The <codeph>CMediaClientVideoDisplay</codeph> class supports graphics surfaces and provides display handling functions like video extension, scaling and rotation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Using Media Client Video Display</title> <p>Clients use <codeph>CMediaClientVideoDisplay</codeph> to: </p> <ul><li id="GUID-104EE148-7167-5F88-B9BB-42BA7A39B08F"><p>Display video in a window </p> </li> <li id="GUID-962251B9-D784-5DB9-AB52-293039E78F9A"><p>Support graphics surfaces. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-152BF5C3-CE32-5174-A043-1B2D5D8168C3.dita"><linktext>Media Client Video Display
+                Tutorial</linktext> </link> <link href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita"><linktext>Video Client Overview</linktext> </link> <link href="GUID-ADA8CECB-0E70-5B9C-8F36-0714AAF0CD13.dita"><linktext>Graphics Composition
                 Surfaces</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e7010_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e8285_href.png has changed
--- a/Symbian3/SDK/Source/GUID-026E865E-12FA-59A9-B923-309B65790E23.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-026E865E-12FA-59A9-B923-309B65790E23.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-026E865E-12FA-59A9-B923-309B65790E23" xml:lang="en"><title>Creating
-a FAT Filename Conversion Plug-in</title><shortdesc>This section describes how to create a FAT Filename Conversion
-plug-in DLL. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq><p>This tutorial assumes that you have an understanding of the following: </p> <ul>
-<li id="GUID-09E0AD13-A9EA-5A1B-956F-2AC4812F99FC"><p><xref href="GUID-66231EA2-BDEF-582D-A4B9-F356B590038D.dita">FAT
-Filename Conversion Plug-ins Overview</xref> introduces Windows code page
-and the main purpose of the Plug-ins component. </p> </li>
-</ul> </prereq>
-<context><p>The flowchart below shows the steps to create a Fat Filename Conversion
-plug-in DLL. </p> <fig id="GUID-B3799729-B2DB-55E3-AE09-E045A9E1AE8B">
-<image href="GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426712_href.jpg" placement="inline"/>
-</fig> <p> <b>Note</b>: To create the plug-in DLL, the <filepath>unicodeconv.cpp</filepath> file
-is needed. It provides the functions to convert text between Unicode and a
-foreign encoding. It is available on the <xref href="https://developer.symbian.org/xref/sfl/xref/MCL/sf/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/src/" scope="external">Symbian Foundation</xref> web site. </p><p>This tutorial
-uses the example of <codeph>CP1250</codeph> to explain the process of creating
-a plug-in DLL. </p> </context>
-<steps id="GUID-8037DE6A-A5AB-575A-A9F5-0A6CB42651D4">
-<step id="GUID-21741F55-882F-51B9-BA77-EBFFED6B7D5E"><cmd>Create a source
-file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp1250.txt</filepath>.
-This file contains pairs of hexadecimal numbers. The first number in each
-pair is the encoding of a character in CP1250 and the second is the Unicode
-encoding of the same character. </cmd>
-<stepxmp><codeblock id="GUID-D6C46177-19BC-5AB6-9E0D-FEC339F71948" xml:space="preserve">...
-0x00    0x0000    #NULL
-0x01    0x0001    #START OF HEADING
-0x02    0x0002    #START OF TEXT
-0x03    0x0003    #END OF TEXT
-0x04    0x0004    #END OF TRANSMISSION
-0x05    0x0005    #ENQUIRY
-0x06    0x0006    #ACKNOWLEDGE
-...</codeblock> </stepxmp>
-<info>The source file has the same syntax as a cnvtool source file. For more
-information about the syntax, refer to <xref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita">Cnvtool
-Source File</xref>. </info>
-</step>
-<step id="GUID-10B9D3BB-7B21-5AC0-89B0-5E89C5796F11"><cmd/>
-<info>Start a command prompt to run the ConversionTable tool on the source
-as follows:<p><userinput><cmdname>cd </cmdname><parmname>d:\Symbian\epoc32\tools</parmname></userinput></p><p><userinput><cmdname>ConversionTable.pl </cmdname><parmname>d:\charconvfiles\data\cp1250.txt</parmname></userinput></p> </info>
-<info>This process generates a C++ source code file called <filepath>cp1250.cpp</filepath>.
-It is referred to as the ConversionTableTool-generated cpp file, which contains
-the data structure. The data structure is used by <filepath>unicodeconv.cpp</filepath> for
-the encoding conversion. </info>
-</step>
-<step id="GUID-D4F5D984-62E2-53F2-944E-E6E387ACA697"><cmd/>
-<info>Create an mmp file which is used to build the plug-in DLL. </info>
-<stepxmp><codeblock id="GUID-468B6E29-27BB-547B-A00A-5FF05D0A6E2C" xml:space="preserve">TARGET            cp1250.dll
-CAPABILITY            All
-TARGETTYPE            dll
-
-UID        0x100039e6 0x10206A9C
-VENDORID     0x70000001
-
-OS_LAYER_SYSTEMINCLUDE
-USERINCLUDE            ../inc
-
-SOURCEPATH            ../src
-SOURCE            unicodeconv.cpp
-
-SOURCEPATH            +/build/generated/fatcharsetconv
-SOURCE            cp1250.cpp
-
-DEFFILE             fatCnv.def
-
-LIBRARY            euser.lib
-
-SMPSAFE</codeblock> </stepxmp>
-</step>
-</steps>
-<postreq><p>Build the plug-in DLL and install it into the <filepath>\sys\bin\</filepath> directory.
-The DLL is then available to be loaded and called by the File Server.</p></postreq>
-</taskbody><related-links>
-<link href="GUID-2068DA42-AE77-5213-B3CF-C3AB7F2188BE.dita"><linktext>Using a FAT
-Filename Conversion Plug-in</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-026E865E-12FA-59A9-B923-309B65790E23" xml:lang="en"><title>Creating
+a FAT Filename Conversion Plug-in</title><shortdesc>This section describes how to create a FAT Filename Conversion
+plug-in DLL. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq><p>This tutorial assumes that you have an understanding of the following: </p> <ul>
+<li id="GUID-09E0AD13-A9EA-5A1B-956F-2AC4812F99FC"><p><xref href="GUID-66231EA2-BDEF-582D-A4B9-F356B590038D.dita">FAT
+Filename Conversion Plug-ins Overview</xref> introduces Windows code page
+and the main purpose of the Plug-ins component. </p> </li>
+</ul> </prereq>
+<context><p>The flowchart below shows the steps to create a Fat Filename Conversion
+plug-in DLL. </p> <fig id="GUID-B3799729-B2DB-55E3-AE09-E045A9E1AE8B">
+<image href="GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426550_href.jpg" placement="inline"/>
+</fig> <p> <b>Note</b>: To create the plug-in DLL, the <filepath>unicodeconv.cpp</filepath> file
+is needed. It provides the functions to convert text between Unicode and a
+foreign encoding. It is available on the <xref href="https://developer.symbian.org/xref/sfl/xref/MCL/sf/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/src/" scope="external">Symbian Foundation</xref> web site. </p><p>This tutorial
+uses the example of <codeph>CP1250</codeph> to explain the process of creating
+a plug-in DLL. </p> </context>
+<steps id="GUID-8037DE6A-A5AB-575A-A9F5-0A6CB42651D4">
+<step id="GUID-21741F55-882F-51B9-BA77-EBFFED6B7D5E"><cmd>Create a source
+file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp1250.txt</filepath>.
+This file contains pairs of hexadecimal numbers. The first number in each
+pair is the encoding of a character in CP1250 and the second is the Unicode
+encoding of the same character. </cmd>
+<stepxmp><codeblock id="GUID-D6C46177-19BC-5AB6-9E0D-FEC339F71948" xml:space="preserve">...
+0x00    0x0000    #NULL
+0x01    0x0001    #START OF HEADING
+0x02    0x0002    #START OF TEXT
+0x03    0x0003    #END OF TEXT
+0x04    0x0004    #END OF TRANSMISSION
+0x05    0x0005    #ENQUIRY
+0x06    0x0006    #ACKNOWLEDGE
+...</codeblock> </stepxmp>
+<info>The source file has the same syntax as a cnvtool source file. For more
+information about the syntax, refer to <xref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita">Cnvtool
+Source File</xref>. </info>
+</step>
+<step id="GUID-10B9D3BB-7B21-5AC0-89B0-5E89C5796F11"><cmd/>
+<info>Start a command prompt to run the ConversionTable tool on the source
+as follows:<p><userinput><cmdname>cd </cmdname><parmname>d:\Symbian\epoc32\tools</parmname></userinput></p><p><userinput><cmdname>ConversionTable.pl </cmdname><parmname>d:\charconvfiles\data\cp1250.txt</parmname></userinput></p> </info>
+<info>This process generates a C++ source code file called <filepath>cp1250.cpp</filepath>.
+It is referred to as the ConversionTableTool-generated cpp file, which contains
+the data structure. The data structure is used by <filepath>unicodeconv.cpp</filepath> for
+the encoding conversion. </info>
+</step>
+<step id="GUID-D4F5D984-62E2-53F2-944E-E6E387ACA697"><cmd/>
+<info>Create an mmp file which is used to build the plug-in DLL. </info>
+<stepxmp><codeblock id="GUID-468B6E29-27BB-547B-A00A-5FF05D0A6E2C" xml:space="preserve">TARGET            cp1250.dll
+CAPABILITY            All
+TARGETTYPE            dll
+
+UID        0x100039e6 0x10206A9C
+VENDORID     0x70000001
+
+OS_LAYER_SYSTEMINCLUDE
+USERINCLUDE            ../inc
+
+SOURCEPATH            ../src
+SOURCE            unicodeconv.cpp
+
+SOURCEPATH            +/build/generated/fatcharsetconv
+SOURCE            cp1250.cpp
+
+DEFFILE             fatCnv.def
+
+LIBRARY            euser.lib
+
+SMPSAFE</codeblock> </stepxmp>
+</step>
+</steps>
+<postreq><p>Build the plug-in DLL and install it into the <filepath>\sys\bin\</filepath> directory.
+The DLL is then available to be loaded and called by the File Server.</p></postreq>
+</taskbody><related-links>
+<link href="GUID-2068DA42-AE77-5213-B3CF-C3AB7F2188BE.dita"><linktext>Using a FAT
+Filename Conversion Plug-in</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-02970C7B-5B98-50C7-A324-0DDD71120DEB-master.png has changed
Binary file Symbian3/SDK/Source/GUID-02970C7B-5B98-50C7-A324-0DDD71120DEB_d0e185592_href.png has changed
--- a/Symbian3/SDK/Source/GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,67 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A" xml:lang="en"><title>Transparent
-Windows</title><shortdesc>This topic introduces the window transparency feature, which you
-can use to create semi-transparent UI content over other UI content. In ScreenPlay
-you can also use transparent windows to create semi-transparent UI content
-over external content, such as video and OpenGL ES. For example, in ScreenPlay
-you can display a semi-transparent dialog box over an OpenGL ES game. Transparent
-windows are implemented using alpha compositing, which means that the transparency
-information is embedded within the drawing commands. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <i>Note</i>: Semi-transparent UI content over content provided by Direct
-Screen Access (DSA) has never been supported and ScreenPlay does not change
-this. </p>
-<p> <b>Variant</b>: ScreenPlay and non-ScreenPlay. <b>Target audience</b>:
-Application developers. </p>
-<section id="GUID-7208D287-D0D9-4E19-89F0-87DB9BCE4736"><title>Alpha compositing</title> <p>In alpha compositing, an alpha
-channel is used to store opacity information along with the color values for
-each pixel. For example, if the color is represented as RGB values, the pixel
-values are typically stored as RGBA, where the final value is the alpha value.
-This represents the percentage opacity. Like the RGB values, the alpha value
-is frequently expressed in the range of 0 (completely transparent) to 255
-(fully opaque). For example, (0, 0, 0, 0) represents fully transparent black
-and (255, 255, 255, 127) represents white that has 50% opacity. </p> <p>Each
-of the RGB values are multiplied by the alpha percentage to give the opacity
-of the pixel. In order to reduce the need for multiplication during the compositing
-process, the RGB values are sometimes multiplied by the alpha value before
-storage. This is known as <b>premultiplied alpha</b> format. For example,
-a premultiplied alpha representation of white that has 50% opacity is (127,
-127, 127, 127). </p> </section>
-<section id="GUID-ED7D01C9-6B18-4280-B44E-B62ADE9EBA90"><title>Enabling transparency</title> <p>To enable transparency, call
-the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow::SetTransparencyAlphaChannel()</apiname></xref> method
-on the window (which must be an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> type)
-before it is activated. The transparency is then determined by the alpha values
-of the content rendered to the window. Typically you set the background to
-be fully or partially transparent, as shown in the following example: </p> <codeblock id="GUID-C33B91C2-D83C-5A6D-91A5-AB29B8EF46A0" xml:space="preserve">// Set transparency mode on.
-iWindow.SetTransparencyAlphaChannel();
-    
-// Set the background to be fully transparent black.
-iWindow.SetBackgroundColor(TRgb(0,0,0,0)); 
-    
-// Activate the window.
-iWindow.Activate();
-    
-// Begin drawing to the window.
-...  </codeblock></section>
-<section id="GUID-66EBABCC-4BF4-4DE8-9AD3-27598F3A0025"><title>Note</title><p>In earlier versions of the Symbian platform,
-it was possible to create transparent windows using a mask and the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class's <codeph>SetTransparencyFactor()</codeph>, <codeph>SetTransparencyBitmap()</codeph> and <codeph>SetTransparencyWsBitmap()</codeph> methods. <b>This
-mechanism is now deprecated and these methods are no longer functional</b>.</p><p>A
-new application and UI framework is planned for Symbian^4 (S^4). In order
-for AVKON applications (and clients that draw using <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>)
-to work correctly on this new framework, the main view must be opaque. See <xref href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita">How will the New Application
-Architecture Affect my Applications?</xref> for more information.</p> </section>
-</conbody><related-links>
-<link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext>
-</link>
-<link href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita"><linktext>How will
-the New Application Architecture Affect my Applications?</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A" xml:lang="en"><title>Transparent
+Windows</title><shortdesc>This topic introduces the window transparency feature, which you
+can use to create semi-transparent UI content over other UI content. In ScreenPlay
+you can also use transparent windows to create semi-transparent UI content
+over external content, such as video and OpenGL ES. For example, in ScreenPlay
+you can display a semi-transparent dialog box over an OpenGL ES game. Transparent
+windows are implemented using alpha compositing, which means that the transparency
+information is embedded within the drawing commands. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <i>Note</i>: Semi-transparent UI content over content provided by Direct
+Screen Access (DSA) has never been supported and ScreenPlay does not change
+this. </p>
+<p> <b>Variant</b>: ScreenPlay and non-ScreenPlay. <b>Target audience</b>:
+Application developers. </p>
+<section id="GUID-7208D287-D0D9-4E19-89F0-87DB9BCE4736"><title>Alpha compositing</title> <p>In
+alpha compositing, an alpha channel is used to store opacity information along
+with the color values for each pixel. For example, if the color is represented
+as RGB values, the pixel values are typically stored as RGBA, where the final
+value is the alpha value. This represents the percentage opacity. Like the
+RGB values, the alpha value is frequently expressed in the range of 0 (completely
+transparent) to 255 (fully opaque). For example, (0, 0, 0, 0) represents fully
+transparent black and (255, 255, 255, 127) represents white that has 50% opacity. </p> <p>Each
+of the RGB values are multiplied by the alpha percentage to give the opacity
+of the pixel. In order to reduce the need for multiplication during the compositing
+process, the RGB values are sometimes multiplied by the alpha value before
+storage. This is known as <b>premultiplied alpha</b> format. For example,
+a premultiplied alpha representation of white that has 50% opacity is (127,
+127, 127, 127). </p> </section>
+<section id="GUID-ED7D01C9-6B18-4280-B44E-B62ADE9EBA90"><title>Enabling transparency</title> <p>To
+enable transparency, call the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow::SetTransparencyAlphaChannel()</apiname></xref> method
+on the window (which must be an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> type)
+before it is activated. The transparency is then determined by the alpha values
+of the content rendered to the window. Typically you set the background to
+be fully or partially transparent, as shown in the following example: </p> <codeblock id="GUID-C33B91C2-D83C-5A6D-91A5-AB29B8EF46A0" xml:space="preserve">// Set transparency mode on.
+iWindow.SetTransparencyAlphaChannel();
+    
+// Set the background to be fully transparent black.
+iWindow.SetBackgroundColor(TRgb(0,0,0,0)); 
+    
+// Activate the window.
+iWindow.Activate();
+    
+// Begin drawing to the window.
+...  </codeblock></section>
+<section id="GUID-66EBABCC-4BF4-4DE8-9AD3-27598F3A0025"><title>Note</title><p>In
+earlier versions of the Symbian platform, it was possible to create transparent
+windows using a mask and the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class's <codeph>SetTransparencyFactor()</codeph>, <codeph>SetTransparencyBitmap()</codeph> and <codeph>SetTransparencyWsBitmap()</codeph> methods. <b>This mechanism
+is now deprecated and these methods are no longer functional</b>.</p><p>A
+new application and UI framework is planned for Symbian^4 (S^4). In order
+for AVKON applications (and clients that draw using <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>)
+to work correctly on this new framework, the main view must be opaque. See <xref href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita">How will the New Application
+Architecture Affect my Applications?</xref> for more information.</p> </section>
+</conbody><related-links>
+<link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext>
+</link>
+<link href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita"><linktext>How will
+the New Application Architecture Affect my Applications?</linktext></link>
+<link href="GUID-96E46D0E-1CE3-58B4-AE99-6B2E622ADAF9.dita"><linktext>Drawing transparent
+windows example</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393621_href.png has changed
Binary file Symbian3/SDK/Source/GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393783_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8" xml:lang="en"><title>Universal
-indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Universal indicators are small graphical icons. They inform the user about
-issues such as unread messages, waiting voice mail, selected phone line, IR
-and Bluetooth connection status, set clock alarm, home zone, and locked keypad.
-Each status indicator has a priority number, which determines which icons
-are displayed in case there are more of them than fit on the screen simultaneously.</p>
-<p>In the Idle state and in the Phone application, the universal indicators
-are displayed in the universal indicator area in the top-right corner (next
-to the battery pane) in the status pane (see figure below).</p>
-<p>Within applications other than Phone, status indicators appear in the universal
-status indicator pane, which is combined with the clock display. Due to the
-small size of this area, and also to avoid displaying unimportant things in
-general, only the most important status indicators are displayed. </p>
-<fig id="GUID-32C43BF4-7575-46B6-B2BC-FDDD5B0E9BCA">
-<title>Universal status indicators displayed in the top-right corner</title>
-<image href="GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e58536_href.png" placement="inline"/>
-</fig>
-<section id="GUID-4920B037-BE5E-460F-B3D6-267F57E663CF"><title>Using
-universal indicators in C++ applications</title><p>The universal
-indicators are not accessible to applications.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8" xml:lang="en"><title>Universal
+indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Universal indicators are small graphical icons. They inform the user about
+issues such as unread messages, waiting voice mail, selected phone line, IR
+and Bluetooth connection status, set clock alarm, home zone, and locked keypad.
+Each status indicator has a priority number, which determines which icons
+are displayed in case there are more of them than fit on the screen simultaneously.</p>
+<p>In the home screen and in the Phone application, the universal indicators
+are displayed in the universal indicator area in the top-right corner (next
+to the battery pane) in the status pane (see figure below).</p>
+<p>Within applications other than Phone, status indicators appear in the universal
+status indicator pane, which is combined with the clock display. Due to the
+small size of this area, and also to avoid displaying unimportant things in
+general, only the most important status indicators are displayed. </p>
+<fig id="GUID-32C43BF4-7575-46B6-B2BC-FDDD5B0E9BCA">
+<title>Universal status indicators displayed in the top-right corner</title>
+<image href="GUID-0181F4BD-51A2-49AF-9DAC-517F8BAD8DBC_d0e52617_href.png" placement="inline"/>
+</fig>
+<section id="GUID-4920B037-BE5E-460F-B3D6-267F57E663CF"><title>Using
+universal indicators in applications</title><p>The universal
+indicators are not accessible to applications.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413283_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413445_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-3-1-1-7-1-7-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-3-1-1-7-1-7-1-11-1" xml:lang="en"><title>Layout
-management</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Many factors have to be taken into consideration when laying out controls.
-Component controls are normally laid out within their containers according
-to the prevailing UI policy, skin, font, text style, zoom-factor and the sizes
-and shapes of the controls themselves. A change to any one of these might
-necessitate a new layout. </p>
-<p>The Control Framework supports run-time layout management with the <xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref> interface.
-Each compound control knows which layout manager to call when it changes size.
-The layout manager then takes responsibility for making any adjustments to
-the layout. </p>
-<p>A layout manager is associated with a compound control using: </p>
-<codeblock id="GUID-B2CAA11F-EAEF-5583-A86D-BEF8A279EF22-GENID-1-8-1-3-1-1-7-1-7-1-11-1-2-4" xml:space="preserve"> IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayout);</codeblock>
-<p>Note that this call passes 'ownership' so the caller does not need to retain
-a pointer. A layout manager may be attached to more than one control so it
-must implement its own reference count and delete itself when the count becomes
-zero. <codeph>SetLayoutManagerL()</codeph> is also used to dissociate a layout
-manager from a control by passing either NULL or a pointer to a different
-layout manager. </p>
-<p>The Control Framework does not provide any concrete layout managers. This
-is the responsibility of the UI variant library or the application developer. </p>
-<p>Though layout managers are now built into the control framework their use
-is optional. </p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-6-1-1-4-1-6-1-7-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-6-1-1-4-1-6-1-7-1-11-1" xml:lang="en"><title>Layout
-management</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Many factors have to be taken into consideration when laying out controls.
-Component controls are normally laid out within their containers according
-to the prevailing UI policy, skin, font, text style, zoom-factor and the sizes
-and shapes of the controls themselves. A change to any one of these might
-necessitate a new layout. </p>
-<p>The Control Framework supports run-time layout management with the <xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref> interface.
-Each compound control knows which layout manager to call when it changes size.
-The layout manager then takes responsibility for making any adjustments to
-the layout. </p>
-<p>A layout manager is associated with a compound control using: </p>
-<codeblock id="GUID-B2CAA11F-EAEF-5583-A86D-BEF8A279EF22-GENID-1-8-1-6-1-1-4-1-6-1-7-1-11-1-2-4" xml:space="preserve"> IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayout);</codeblock>
-<p>Note that this call passes 'ownership' so the caller does not need to retain
-a pointer. A layout manager may be attached to more than one control so it
-must implement its own reference count and delete itself when the count becomes
-zero. <codeph>SetLayoutManagerL()</codeph> is also used to dissociate a layout
-manager from a control by passing either NULL or a pointer to a different
-layout manager. </p>
-<p>The Control Framework does not provide any concrete layout managers. This
-is the responsibility of the UI variant library or the application developer. </p>
-<p>Though layout managers are now built into the control framework their use
-is optional. </p>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-0387B02E-9B81-5E61-A33E-D644251424A2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0387B02E-9B81-5E61-A33E-D644251424A2" xml:lang="en"><title>Layout
+management</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Many factors have to be taken into consideration when laying out controls.
+Component controls are normally laid out within their containers according
+to the prevailing UI policy, skin, font, text style, zoom-factor and the sizes
+and shapes of the controls themselves. A change to any one of these might
+necessitate a new layout. </p>
+<p>The Control Framework supports run-time layout management with the <xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref> interface.
+Each compound control knows which layout manager to call when it changes size.
+The layout manager then takes responsibility for making any adjustments to
+the layout. </p>
+<p>A layout manager is associated with a compound control using: </p>
+<codeblock id="GUID-B2CAA11F-EAEF-5583-A86D-BEF8A279EF22" xml:space="preserve"> IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayout);</codeblock>
+<p>Note that this call passes 'ownership' so the caller does not need to retain
+a pointer. A layout manager may be attached to more than one control so it
+must implement its own reference count and delete itself when the count becomes
+zero. <codeph>SetLayoutManagerL()</codeph> is also used to dissociate a layout
+manager from a control by passing either NULL or a pointer to a different
+layout manager. </p>
+<p>The Control Framework does not provide any concrete layout managers. This
+is the responsibility of the UI variant library or the application developer. </p>
+<p>Though layout managers are now built into the control framework their use
+is optional. </p>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e52515_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e58606_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e67355_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e72556_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e214249_href.png has changed
Binary file Symbian3/SDK/Source/GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e217986_href.png has changed
--- a/Symbian3/SDK/Source/GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,67 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8" xml:lang="en"><title>Creating
-and Signing an Installation File</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Introduction</title> <p>A Software Installation (SIS) file
-can be generated as an unsigned file, a self-signed or signed file. Self-signed
-and unsigned packages are considered to be <i>unknown</i>, and are installed
-by the Software Installer, depending on the security policy of the Symbian
-device. </p> <p>If the <filepath>SIS</filepath> file is signed, the Software
-Installer validates the certificate chains and based on verification, installs
-the <filepath>SIS</filepath> file or aborts the installation. </p> </section>
-<section><title>Procedure</title> <ol id="GUID-F956C034-BA59-5811-9043-BF0D77F10677">
-<li id="GUID-9842671A-A9BE-5CC1-A957-D2AA09B2B6D0"><p>Create a private key-public
-key pair and certificate request using the <xref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita">MakeKeys</xref> tool.
-For details, see <xref href="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita">MaKeKeys
-Tutorial</xref>. </p> </li>
-<li id="GUID-030DB6CF-22B6-529A-9915-38A4AD2A8A92"><p>Submit the certificate
-request to a Certificate Authority (CA) and receive an authenticated digital
-certificate. </p> </li>
-<li id="GUID-F8CDA8A6-4FD1-5F96-9D50-E2B7323504B5"><p>Create a package (PKG)
-file containing all the elements required to create the installation file.
-For details see <xref href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita">PKG
-File Format</xref> . </p> </li>
-<li id="GUID-80F3E1E2-7E61-53B7-948F-651BA163469E"><p>Run <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita">MakeSIS</xref> at
-the command prompt to create an unsigned SIS file. Specify the PKG file as
-input argument, as shown in the following example: </p> <p><codeblock id="GUID-44397CFA-9650-5C19-8F47-015A3BC90D88" xml:space="preserve">makesis mypackage.pkg</codeblock> </p> <p> <codeph>MakeSIS</codeph> generates an unsigned SIS file. </p> </li>
-<li id="GUID-C1190F84-8E02-5C57-90BE-3C3CCB0AAE04"><p>Run <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> at
-the command prompt to sign the unsigned SIS file. Specify the unsigned SIS
-file as input, and public key certificate and private key as arguments, as
-shown in the following example: </p> <p><codeblock id="GUID-A674816E-D8AF-5B9F-839B-3D53C337D481" xml:space="preserve">signsis trustedchain.pem eecertkey.key mypackage.sis</codeblock> </p> <p>Based on the certificate provided as input, <codeph>SignSiS</codeph> generates
-a signed SIS file. For details, see <xref href="GUID-AFBD4ED6-9588-531C-8EDF-566DB1D03088.dita">Signing</xref>  </p> </li>
-</ol><note> As an alternative to step 4 and 5, run the <xref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita">CreateSIS</xref> tool
-at the command prompt to generate and sign the installation file. Specify
-the trusted certificate-key pairs as arguments, as shown in the following
-example: <codeblock xml:space="preserve">createsis create -cert trustedchain.pem -key eecertkey.key mypackage.pkg
-</codeblock></note><p>The process of creating an installation file can be
-understood using the following illustration:</p><fig id="GUID-DB0D2E8C-E8B6-46C8-8CF4-1970EA1B3A03">
-<image href="GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e25044_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Notes</title> <p>While creating a SIS file using the <b>CreateSIS</b> tool,
-if you do not specify the key or certificate on the command line the <codeph>create</codeph> method
-generates a key and a matching self-signed certificate, and uses it to sign
-the resulting SIS file. </p> <p>The generated certificate and key is dumped
-into the current working directory as <filepath>cert-gen.cer</filepath> and <filepath>key-gen.key</filepath> files.
-If <filepath>key-gen.key</filepath> exists, the certificate and key filenames
-are indexed incrementally. That is, <filepath>cert-genx.cer</filepath> and <filepath>key-genx.key</filepath>,
-where <i>x</i> is the incremental index. </p> <p> <b> Note:</b> The passphrase
-encryption is not an option. It must be provided with the <codeph>-pass</codeph> option.
-If this option is not specified, <b>CreateSIS</b> prompts for the passphrase
-during key generation. </p> </section>
-</conbody><related-links>
-<link href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita"><linktext>CreateSIS</linktext>
-</link>
-<link href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita"><linktext>MakeSIS</linktext>
-</link>
-<link href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita"><linktext>SignSIS</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8" xml:lang="en"><title>Creating
+and Signing an Installation File</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Introduction</title> <p>A Software Installation (SIS) file
+can be generated as an unsigned file, a self-signed or signed file. Self-signed
+and unsigned packages are considered to be <i>unknown</i>, and are installed
+by the Software Installer, depending on the security policy of the Symbian
+device. </p> <p>If the <filepath>SIS</filepath> file is signed, the Software
+Installer validates the certificate chains and based on verification, installs
+the <filepath>SIS</filepath> file or aborts the installation. </p> </section>
+<section><title>Procedure</title> <ol id="GUID-F956C034-BA59-5811-9043-BF0D77F10677">
+<li id="GUID-9842671A-A9BE-5CC1-A957-D2AA09B2B6D0"><p>Create a private key-public
+key pair and certificate request using the <xref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita">MakeKeys</xref> tool.
+For details, see <xref href="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita">MaKeKeys
+Tutorial</xref>. </p> </li>
+<li id="GUID-030DB6CF-22B6-529A-9915-38A4AD2A8A92"><p>Submit the certificate
+request to a Certificate Authority (CA) and receive an authenticated digital
+certificate. </p> </li>
+<li id="GUID-F8CDA8A6-4FD1-5F96-9D50-E2B7323504B5"><p>Create a package (PKG)
+file containing all the elements required to create the installation file.
+For details see <xref href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita">PKG
+File Format</xref> . </p> </li>
+<li id="GUID-80F3E1E2-7E61-53B7-948F-651BA163469E"><p>Run <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita">MakeSIS</xref> at
+the command prompt to create an unsigned SIS file. Specify the PKG file as
+input argument, as shown in the following example: </p> <p><codeblock id="GUID-44397CFA-9650-5C19-8F47-015A3BC90D88" xml:space="preserve">makesis mypackage.pkg</codeblock> </p> <p> <codeph>MakeSIS</codeph> generates an unsigned SIS file. </p> </li>
+<li id="GUID-C1190F84-8E02-5C57-90BE-3C3CCB0AAE04"><p>Run <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> at
+the command prompt to sign the unsigned SIS file. Specify the unsigned SIS
+file as input, and public key certificate and private key as arguments, as
+shown in the following example: </p> <p><codeblock id="GUID-A674816E-D8AF-5B9F-839B-3D53C337D481" xml:space="preserve">signsis trustedchain.pem eecertkey.key mypackage.sis</codeblock> </p> <p>Based on the certificate provided as input, <codeph>SignSiS</codeph> generates
+a signed SIS file. For details, see <xref href="GUID-AFBD4ED6-9588-531C-8EDF-566DB1D03088.dita">Signing</xref>  </p> </li>
+</ol><note> As an alternative to step 4 and 5, run the <xref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita">CreateSIS</xref> tool
+at the command prompt to generate and sign the installation file. Specify
+the trusted certificate-key pairs as arguments, as shown in the following
+example: <codeblock xml:space="preserve">createsis create -cert trustedchain.pem -key eecertkey.key mypackage.pkg
+</codeblock></note><p>The process of creating an installation file can be
+understood using the following illustration:</p><fig id="GUID-DB0D2E8C-E8B6-46C8-8CF4-1970EA1B3A03">
+<image href="GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e19466_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Notes</title> <p>While creating a SIS file using the <b>CreateSIS</b> tool,
+if you do not specify the key or certificate on the command line the <codeph>create</codeph> method
+generates a key and a matching self-signed certificate, and uses it to sign
+the resulting SIS file. </p> <p>The generated certificate and key is dumped
+into the current working directory as <filepath>cert-gen.cer</filepath> and <filepath>key-gen.key</filepath> files.
+If <filepath>key-gen.key</filepath> exists, the certificate and key filenames
+are indexed incrementally. That is, <filepath>cert-genx.cer</filepath> and <filepath>key-genx.key</filepath>,
+where <i>x</i> is the incremental index. </p> <p> <b> Note:</b> The passphrase
+encryption is not an option. It must be provided with the <codeph>-pass</codeph> option.
+If this option is not specified, <b>CreateSIS</b> prompts for the passphrase
+during key generation. </p> </section>
+</conbody><related-links>
+<link href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita"><linktext>CreateSIS</linktext>
+</link>
+<link href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita"><linktext>MakeSIS</linktext>
+</link>
+<link href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita"><linktext>SignSIS</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665-master.png has changed
Binary file Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e53370_href.png has changed
Binary file Symbian3/SDK/Source/GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e59136_href.png has changed
Binary file Symbian3/SDK/Source/GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e5846_href.png has changed
Binary file Symbian3/SDK/Source/GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e7121_href.png has changed
--- a/Symbian3/SDK/Source/GUID-04B044E7-5F10-47BC-B95F-27B62C2870E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-04B044E7-5F10-47BC-B95F-27B62C2870E8" xml:lang="en"><title>Keypad
-tone</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A tone can be generated whenever a key event occurs. The tones for short
-key presses (actually a key down event) and long key presses are different;
-a key repeat event uses the long key press tone.</p>
-<p>The keypad tone can be adjusted or turned ON or OFF by the
-user.</p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-04D917A1-E1A0-5149-9660-80A1146D0984" xml:lang="en"><title>OpenGLES
-Collection Overview</title><shortdesc>OpenGL ES is a cross-platform API for 2D and 3D graphics on embedded
-systems. It consists of a subset of desktop OpenGL, which is a widely adopted
-2D and 3D graphics API, creating a low-level interface between software and
-graphics acceleration. OpenGL ES includes profiles for floating-point and
-fixed-point systems and the EGL specification for portably binding to native
-windowing systems. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. </p>
-<p>The Symbian platform supports two versions of OpenGL ES: </p>
-<ul>
-<li id="GUID-09B72D5B-EF77-5317-90C9-B048241D8569"><p>OpenGL ES 1.X, which
-is for fixed function hardware and offers acceleration, image quality and
-performance. </p> </li>
-<li id="GUID-F9E98024-8198-586D-8E97-C00EB090158E"><p>OpenGL ES 2.X, which
-is for programmable hardware and enables fully programmable 3D graphics and
-shader objects. </p> </li>
-</ul>
-<p>OpenGL ES is an open standard developed by the Khronos Group (<xref href="http://www.khronos.org/" scope="external">www.khronos.org</xref>). </p>
-<p>The following diagram shows the direct use of OpenGL ES by an application
-through the public OpenGL ES interface together with EGL. On the Symbian platform,
-both OpenGL ES and EGL have a component (shown in blue) that declares the
-interface, and both require an implementation that implements that interface
-(shown in green). </p>
-<fig id="GUID-41677786-E59F-5DF7-97BB-05D7FDA0950C">
-<title>           OpenGLES component relationships          </title>
-<image href="GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e209278_href.png" placement="inline"/>
-</fig>
-<p>It is possible for the OpenGL ES and EGL implementations to communicate
-through a private interface that is not standardized by Symbian. </p>
-<ul>
-<li id="GUID-537E019E-A415-5C6B-A144-D5AD3494E35B"><p>The <xref href="GUID-CBC43846-22BB-5AAF-89FE-3CF4F11B76F6.dita">OpenGLES
-Interface component</xref> provides a consistent interface to OpenGL ES on
-the Symbian platform, enabling cross-device compatibility. The component includes
-the Khronos-released header files (which incorporate some minor changes, such
-as in-source comments). It also provides some Symbian-specific header files
-and LIB, DEF and MMP files and UIDs. It does not provide any implementations
-of the APIs. </p> </li>
-<li id="GUID-712E1F08-6F6F-5E84-A9F1-3EC06D089E62"><p><xref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita">EGL</xref> is
-an interface between rendering APIs such as OpenGL ES or OpenVG and an underlying
-native platform window system. </p> </li>
-
-</ul>
-</conbody><related-links>
-<link href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita"><linktext>OpenGLES
-Collection</linktext></link>
-<link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL     
-           Collection</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-04D917A1-E1A0-5149-9660-80A1146D0984" xml:lang="en"><title>OpenGLES
+Collection Overview</title><shortdesc>OpenGL ES is a cross-platform API for 2D and 3D graphics on embedded
+systems. It consists of a subset of desktop OpenGL, which is a widely adopted
+2D and 3D graphics API, creating a low-level interface between software and
+graphics acceleration. OpenGL ES includes profiles for floating-point and
+fixed-point systems and the EGL specification for portably binding to native
+windowing systems. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. </p>
+<p>The Symbian platform supports two versions of OpenGL ES: </p>
+<ul>
+<li id="GUID-09B72D5B-EF77-5317-90C9-B048241D8569"><p>OpenGL ES 1.X, which
+is for fixed function hardware and offers acceleration, image quality and
+performance. </p> </li>
+<li id="GUID-F9E98024-8198-586D-8E97-C00EB090158E"><p>OpenGL ES 2.X, which
+is for programmable hardware and enables fully programmable 3D graphics and
+shader objects. </p> </li>
+</ul>
+<p>OpenGL ES is an open standard developed by the Khronos Group (<xref href="http://www.khronos.org/" scope="external">www.khronos.org</xref>). </p>
+<p>The following diagram shows the direct use of OpenGL ES by an application
+through the public OpenGL ES interface together with EGL. On the Symbian platform,
+both OpenGL ES and EGL have a component (shown in blue) that declares the
+interface, and both require an implementation that implements that interface
+(shown in green). </p>
+<fig id="GUID-41677786-E59F-5DF7-97BB-05D7FDA0950C">
+<title>           OpenGLES component relationships          </title>
+<image href="GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e204270_href.png" placement="inline"/>
+</fig>
+<p>It is possible for the OpenGL ES and EGL implementations to communicate
+through a private interface that is not standardized by Symbian. </p>
+<ul>
+<li id="GUID-537E019E-A415-5C6B-A144-D5AD3494E35B"><p>The <xref href="GUID-CBC43846-22BB-5AAF-89FE-3CF4F11B76F6.dita">OpenGLES
+Interface component</xref> provides a consistent interface to OpenGL ES on
+the Symbian platform, enabling cross-device compatibility. The component includes
+the Khronos-released header files (which incorporate some minor changes, such
+as in-source comments). It also provides some Symbian-specific header files
+and LIB, DEF and MMP files and UIDs. It does not provide any implementations
+of the APIs. </p> </li>
+<li id="GUID-712E1F08-6F6F-5E84-A9F1-3EC06D089E62"><p><xref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita">EGL</xref> is
+an interface between rendering APIs such as OpenGL ES or OpenVG and an underlying
+native platform window system. </p> </li>
+
+</ul>
+</conbody><related-links>
+<link href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita"><linktext>OpenGLES
+Collection</linktext></link>
+<link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL     
+           Collection</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0504B740-FB22-4399-B16D-BE6030B512B3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0504B740-FB22-4399-B16D-BE6030B512B3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0504B740-FB22-4399-B16D-BE6030B512B3" xml:lang="en"><title>Split
-view inputs</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Split view mode inputs are opened similar to the full screen inputs. Virtual
-ITU-T and QWERTY keyboards can be displayed in the split view mode. The application
-can decide whether to use the full screen input or split view input.</p>
-<p>Split view input uses the application’s own editor field, and the application
-remains partly visible when the input is opened. Applications have the responsibility
-of keeping the editor visible while user is typing. When the input opens,
-the status pane is hidden. Split view is closed by tapping the specific closing
-button present within the input.</p>
-<fig id="GUID-DB5AC3A3-3C98-4046-BAEE-EDAE8781C57B">
-<title>Split view ITU-T</title>
-<image href="GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e75798_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-E94E447D-186F-410C-BE48-A3466E3E39FC">
-<title>Split view QWERTY</title>
-<image href="GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e75806_href.png" placement="inline"/>
-</fig>
-<p>In hybrid devices, when the hardware keyboard is opened, the virtual keyboard
-(full screen or split view) disappears.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0504B740-FB22-4399-B16D-BE6030B512B3" xml:lang="en"><title>Split
+view inputs</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Split view mode inputs are opened similar to the full screen inputs. Virtual
+ITU-T and QWERTY keyboards can be displayed in the split view mode. The application
+can decide whether to use the full screen input or split view input.</p>
+<p>Split view input uses the application’s own editor field, and the application
+remains partly visible when the input is opened. Applications have the responsibility
+of keeping the editor visible while user is typing. When the input opens,
+the status pane is hidden. Split view is closed by tapping the specific closing
+button present within the input.</p>
+<fig id="GUID-DB5AC3A3-3C98-4046-BAEE-EDAE8781C57B">
+<title>Split view ITU-T</title>
+<image href="GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e70764_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-E94E447D-186F-410C-BE48-A3466E3E39FC">
+<title>Split view QWERTY</title>
+<image href="GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e70772_href.png" placement="inline"/>
+</fig>
+<p>In hybrid devices, when the hardware keyboard is opened, the virtual keyboard
+(full screen or split view) disappears.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e190203_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e195211_href.png has changed
--- a/Symbian3/SDK/Source/GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01" xml:lang="en"><title>Introduction
-to dictionary stores</title><shortdesc>A dictionary store is a store where all streams are accessed through
-a UID, rather than directly by stream ID.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A dictionary store contains streams in the usual way but, in addition,
-the root stream is a stream dictionary. That is, the external representation
-of a <codeph>CStreamDictionary</codeph> object is a list of two-way associations
-between UIDs and stream ids.</p>
-<p>The following diagram illustrates the concept of the dictionary store.</p>
-<fig id="GUID-6EEADFD0-FFCD-513F-BC26-99B46B54D600">
-<title>Dictionary store</title>
-<image href="GUID-22699952-D032-5B69-B38A-43347A40A420_d0e361579_href.png" placement="inline"/>
-</fig>
-<p>The interface to a dictionary store is provided by the <codeph>CDictionaryStore</codeph> abstract
-class. The classes for concrete dictionary stores are derived from this abstract
-class; for example, <codeph>CDictionaryFileStore</codeph> is a concrete dictionary
-store class which is implemented using a file store. </p>
-<p>Note that a dictionary store does not derive from <codeph>CStreamStore</codeph>,
-but owns a persistent store, a <codeph>CPersistentStore</codeph> type, and
-a stream dictionary, a <codeph>CStreamDictionary</codeph> type, as part of
-its implementation.</p>
-<p><b>See also</b> </p>
-<p><xref href="GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita">File based dictionary
-store</xref> </p>
-<p><xref href="GUID-F535B464-3125-549B-9130-E59B64C4B865.dita">Stream dictionaries</xref> </p>
-<p><xref href="GUID-A928E956-9800-5277-B0D3-34BBB2707AE1.dita">Stream ID</xref> </p>
-<p><xref href="GUID-95DF676F-F9BA-56E0-A4DE-E68B42C06932.dita">UID manipulation</xref></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01" xml:lang="en"><title>Introduction
+to dictionary stores</title><shortdesc>A dictionary store is a store where all streams are accessed through
+a UID, rather than directly by stream ID.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A dictionary store contains streams in the usual way but, in addition,
+the root stream is a stream dictionary. That is, the external representation
+of a <codeph>CStreamDictionary</codeph> object is a list of two-way associations
+between UIDs and stream ids.</p>
+<p>The following diagram illustrates the concept of the dictionary store.</p>
+<fig id="GUID-6EEADFD0-FFCD-513F-BC26-99B46B54D600">
+<title>Dictionary store</title>
+<image href="GUID-22699952-D032-5B69-B38A-43347A40A420_d0e355499_href.png" placement="inline"/>
+</fig>
+<p>The interface to a dictionary store is provided by the <codeph>CDictionaryStore</codeph> abstract
+class. The classes for concrete dictionary stores are derived from this abstract
+class; for example, <codeph>CDictionaryFileStore</codeph> is a concrete dictionary
+store class which is implemented using a file store. </p>
+<p>Note that a dictionary store does not derive from <codeph>CStreamStore</codeph>,
+but owns a persistent store, a <codeph>CPersistentStore</codeph> type, and
+a stream dictionary, a <codeph>CStreamDictionary</codeph> type, as part of
+its implementation.</p>
+<p><b>See also</b> </p>
+<p><xref href="GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita">File based dictionary
+store</xref> </p>
+<p><xref href="GUID-F535B464-3125-549B-9130-E59B64C4B865.dita">Stream dictionaries</xref> </p>
+<p><xref href="GUID-A928E956-9800-5277-B0D3-34BBB2707AE1.dita">Stream ID</xref> </p>
+<p><xref href="GUID-95DF676F-F9BA-56E0-A4DE-E68B42C06932.dita">UID manipulation</xref></p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e63611_href.png has changed
Binary file Symbian3/SDK/Source/GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e68845_href.png has changed
--- a/Symbian3/SDK/Source/GUID-056165A7-E8A1-4868-8051-9EC58C5A3342.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-056165A7-E8A1-4868-8051-9EC58C5A3342.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,69 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-056165A7-E8A1-4868-8051-9EC58C5A3342" xml:lang="en"><title>Usability
-considerations</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>All touch and gestural interfaces have to appear competent and safe. The
-interface must appear such that it is not going to misuse users' personal
-data or break down. Optimizing system performance is critical here. Low screen
-refresh rate and latent images do not give the impression of a trustworthy
-touch UI. The use of touch screen and sensors may also increase battery consumption
-of mobile devices.</p>
-<note><p>Touch screens consume most power during touch operations, and reducing
-unnecessary user interaction can help increase power efficiency. Specifically
-with resistive touch screens, avoiding excessively long touch and drag user
-actions is recommended. The continuous touch event flow keeps the CPU busy.
-The screen lock turns off the touch completely. To learn more about both optimizing
-system performance and battery life, see the <xref href="http://developer.symbian.org/wiki/index.php/Power_Management" scope="external">Power Management</xref> section at the Symbian Foundation.</p></note>
-<p>The best products predict the needs of their users and then fulfill those
-needs in unexpectedly pleasing ways. Adaptive targets are one way to do this.
- Controls that match the users actions well are another way devices can be
-clever.</p>
-<p><b>Interaction design</b></p>
-<p>Use appropriate and simple interaction logic:</p>
-<ul>
-<li><p>Navigation and controls must be clear and meaningful to prevent mistakes:
-strokes along the touch panel must produce a logical outcome. </p></li>
-<li><p>The coolest interaction in the world is empty unless it has clear meaning
-for the person performing it. When using indirect controls, the UI response
-must relate to the action the user is performing. </p></li>
-<li><p>Meaningful controls are easier to learn and remember. </p></li>
-</ul>
-<p>Touch UI can employ direct or indirect controls, or a combination of both:</p>
-<ul>
-<li><p>Direct controls allow users to simply tap the item they want to manipulate
-right on the screen itself, move it, make it bigger, scroll it, and so on.
-For more information, see <xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI
-components</xref> and <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for common UI components</xref>. </p></li>
-<li><p>Indirect controls use some other means to manipulate an object, for
-example, shaking, tilting, flipping, waving and so on. For more information,
-see <xref href="GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6.dita">Sensor interaction</xref>.</p></li>
-<li><p>Although Symbian platform allows the use of scrollbars, it is common
-to reverse the page scrolling orientation in applications such as browser.
-In absence of scrollbars, users will flick or drag the page upwards rather
-than pull a scrollbar down to move the page up, that is, to scroll down. In
-this case, scrollbars are used as navigation indicators.</p></li>
-</ul>
-<fig id="GUID-604A80CE-CB23-45A9-BC29-A01395CD6A2F">
-<image href="GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e74928_href.png" scale="60" placement="inline"/>
-</fig>
-<p>Direct taps and strokes are far easier for the user to understand and pick
-up than abstract, indirect ones. A single view must always employ only a few
-indirect strokes, so that the controls do not confuse the user. </p>
-<p><b>Visual design</b></p>
-<p>On touch screens, it is important to make a clear distinction between touchable
-areas, and non-touchable areas, such as text. Borders, glow effects, or other
-indicators can be used to highlight the interaction.<note>Theme design alone
-is not sufficient for indicating touch functionality, where one theme may
-indicate touch, another may not.</note></p>
-<p>See also:</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-056165A7-E8A1-4868-8051-9EC58C5A3342" xml:lang="en"><title>Usability
+considerations</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>All touch and gestural interfaces have to appear competent and safe. The
+interface must appear such that it is not going to misuse users' personal
+data or break down. Optimizing system performance is critical here. Low screen
+refresh rate and latent images do not give the impression of a trustworthy
+touch UI. The use of touch screen and sensors may also increase battery consumption
+of mobile devices.</p>
+<note><p>Touch screens consume most power during touch operations, and reducing
+unnecessary user interaction can help increase power efficiency. Specifically
+with resistive touch screens, avoiding excessively long touch and drag user
+actions is recommended. The continuous touch event flow keeps the CPU busy.
+The screen lock turns off the touch completely. To learn more about both optimizing
+system performance and battery life, see the <xref href="http://developer.symbian.org/wiki/index.php/Power_Management" scope="external">Power Management</xref> section at the Symbian Foundation.</p></note>
+<p>The best products predict the needs of their users and then fulfill those
+needs in unexpectedly pleasing ways. Adaptive targets are one way to do this.
+ Controls that match the users actions well are another way devices can be
+clever.</p>
+<p><b>Interaction design</b></p>
+<p>Use appropriate and simple interaction logic:</p>
+<ul>
+<li><p>Navigation and controls must be clear and meaningful to prevent mistakes:
+strokes along the touch panel must produce a logical outcome. </p></li>
+<li><p>The coolest interaction in the world is empty unless it has clear meaning
+for the person performing it. When using indirect controls, the UI response
+must relate to the action the user is performing. </p></li>
+<li><p>Meaningful controls are easier to learn and remember. </p></li>
+</ul>
+<p>Touch UI can employ direct or indirect controls, or a combination of both:</p>
+<ul>
+<li><p>Direct controls allow users to simply tap the item they want to manipulate
+right on the screen itself, move it, make it bigger, scroll it, and so on.
+For more information, see <xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI
+components</xref> and <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
+support for common UI components</xref>. </p></li>
+<li><p>Indirect controls use some other means to manipulate an object, for
+example, shaking, tilting, flipping, waving and so on. For more information,
+see <xref href="GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6.dita">Sensor interaction</xref>.</p></li>
+<li><p>Although Symbian platform allows the use of scrollbars, it is common
+to reverse the page scrolling orientation in applications such as browser.
+In absence of scrollbars, users will flick or drag the page upwards rather
+than pull a scrollbar down to move the page up, that is, to scroll down. In
+this case, scrollbars are used as navigation indicators.</p></li>
+</ul>
+<fig id="GUID-604A80CE-CB23-45A9-BC29-A01395CD6A2F">
+<image href="GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e69754_href.png" scale="60" placement="inline"/>
+</fig>
+<p>Direct taps and strokes are far easier for the user to understand and pick
+up than abstract, indirect ones. A single view must always employ only a few
+indirect strokes, so that the controls do not confuse the user. </p>
+<p><b>Visual design</b></p>
+<p>On touch screens, it is important to make a clear distinction between touchable
+areas, and non-touchable areas, such as text. Borders, glow effects, or other
+indicators can be used to highlight the interaction.<note>Theme design alone
+is not sufficient for indicating touch functionality, where one theme may
+indicate touch, another may not.</note></p>
+<p>See also:</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188-master.png has changed
Binary file Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188_d0e64300_href.png has changed
Binary file Symbian3/SDK/Source/GUID-057891A5-2394-489E-9323-91BE256F2188_d0e69537_href.png has changed
--- a/Symbian3/SDK/Source/GUID-058D9E7F-5F4B-5656-BA49-16ED2D1451AE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-058D9E7F-5F4B-5656-BA49-16ED2D1451AE" xml:lang="en"><title>UIDs</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Hash algorithm UIDs</title> <table id="GUID-419E5D6D-17A7-5454-92A1-E7EDEF618ED6">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry>UID</entry>
-<entry>Description</entry>
-<entry>Value</entry>
-<entry>RFC standard</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>KMd2Uid </p> </entry>
-<entry><p>MD2, Message-Digest Algorithm </p> </entry>
-<entry><p>0x10283173 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC
-1319</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KMd4Uid </p> </entry>
-<entry><p>MD4, Message-Digest Algorithm (Output: 128 bit message digest) </p> </entry>
-<entry><p>0x2000B341 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
-1320</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KMd5Uid </p> </entry>
-<entry><p>MD5 ,Message-Digest Algorithm (output:128-bit "fingerprint" or "message
-digest) </p> </entry>
-<entry><p>0x10283174 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
-1321</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KSha1Uid </p> </entry>
-<entry><p>Secure Hash Algorithm(output: 160-bit message digest) </p> </entry>
-<entry><p>0x10283175 </p> </entry>
-<entry><p> <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
-180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
-3174</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KSha224Uid </p> </entry>
-<entry><p>Sha224 algorithm </p> </entry>
-<entry><p>0x2000E258 </p> </entry>
-<entry><p> <xref href="http://all.net/books/standards/NIST-CSRC/csrc.nist.gov/publications/fips/fips180-2/FIPS180-2_changenotice.pdf" scope="external">FIPS 180-2 (with change notice)</xref>, <xref href="http://www.ietf.org/rfc/rfc3874.txt" scope="external">RFC3874</xref> and <xref href="http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf" scope="external">FIPS 180-3</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KSha256Uid </p> </entry>
-<entry><p>Sha256 algorithm </p> </entry>
-<entry><p>0x2000E259 </p> </entry>
-<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KSha384Uid </p> </entry>
-<entry><p>Sha384 algorithm </p> </entry>
-<entry><p>0x2000E25A </p> </entry>
-<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
-</row>
-<row>
-<entry><p>KSha512Uid </p> </entry>
-<entry><p>Sha512 algorithm </p> </entry>
-<entry><p>0x2000E25B </p> </entry>
-<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The hash algorithm UIDs are used by the following APIs: </p> <ul>
-<li id="GUID-FAD44CE7-B0C3-523C-895F-DB58122ACA9D"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateHashL()</apiname></xref>  </p> </li>
-<li id="GUID-B206FCF6-A9B4-5330-AC91-148D2A18C292"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateHashL()</apiname></xref>  </p> </li>
-<li id="GUID-DE3E3CC4-7041-5D50-9C38-409D37858CA0"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CCryptoPluginEntry::CreateHashL()</apiname></xref>  </p> </li>
-<li id="GUID-17E00247-8550-53C2-9484-3BD0B7BB8350"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateAsyncHashL()</apiname></xref>  </p> </li>
-<li id="GUID-3FAA4591-64B1-55BF-9A07-D8E4318F9DA7"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateAsyncHashL()</apiname></xref>  </p> </li>
-</ul> </section>
-<section><title>Random algorithm UIDs</title> <table id="GUID-7080EBEE-F16E-58E7-86D4-55B06AEE3F9C">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>UID</entry>
-<entry>Description</entry>
-<entry>Value</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>KRandomUid </p> </entry>
-<entry><p>Random algorithm UID </p> </entry>
-<entry><p>0x10283178 </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The random algorithm UIDs are used by the following APIs: </p> <ul>
-<li id="GUID-60CD845B-520E-5A92-9D98-7060DFAFBE2A"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRandomFactory::CreateRandomL()</apiname></xref>  </p> </li>
-<li id="GUID-F78A3F91-F0FC-5B97-B09C-377B84DAB442"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname> CryptoSpi::CRuleSelector::CreateRandomL()</apiname></xref>  </p> </li>
-<li id="GUID-43703C40-4FB3-5233-BF18-34320FC50D8E"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRandomFactory::CreateAsyncRandomL()</apiname></xref> </p> </li>
-<li id="GUID-E98800A8-4C96-52CE-AE42-0D780065FBDE"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateAsyncRandomL()</apiname></xref> </p> </li>
-</ul> </section>
-<section><title>Symmetric key algorithm UIDs</title> <table id="GUID-21816DBD-BC04-5F12-9972-8FEF5CEA3F5A">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>UID</entry>
-<entry>Description</entry>
-<entry>Value</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>KDesUid </p> </entry>
-<entry><p>Des algorithm UID </p> </entry>
-<entry><p>0x10283179 </p> </entry>
-</row>
-<row>
-<entry><p>K3DesUid </p> </entry>
-<entry><p>3Des algorithm UID </p> </entry>
-<entry><p>0x1028317a </p> </entry>
-</row>
-<row>
-<entry><p>KRc2Uid </p> </entry>
-<entry><p>RC2 algorithm UID </p> </entry>
-<entry><p>0x1028317b </p> </entry>
-</row>
-<row>
-<entry><p>KArc4Uid </p> </entry>
-<entry><p>ARC4 algorithm UID </p> </entry>
-<entry><p>0x1028317c </p> </entry>
-</row>
-<row>
-<entry><p>KAesUid </p> </entry>
-<entry><p>AES algorithm UID </p> </entry>
-<entry><p>0x1028317d </p> </entry>
-</row>
-<row>
-<entry><p>KMisty1Uid </p> </entry>
-<entry><p>Misty1 algorithm UID </p> </entry>
-<entry><p>0x102831be </p> </entry>
-</row>
-<row>
-<entry><p>KMisty2Uid </p> </entry>
-<entry><p>Misty2 algorithm UID </p> </entry>
-<entry><p>0x102831bf </p> </entry>
-</row>
-<row>
-<entry><p>KKasumiUid </p> </entry>
-<entry><p>Kasumi algorithm UID </p> </entry>
-<entry><p>0x102831c0 </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The symmetric key algorithm UIDs are used by the following API: </p> <ul>
-<li id="GUID-CF4CBD6B-F8AE-5034-9A3D-7D85D35DDCC4"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CSymmetricCipher::CSymmetricCipher()</apiname></xref> </p> </li>
-</ul> </section>
-<section><title>Asymmetric key algorithm UIDs</title> <table id="GUID-FB96DF5A-16F9-535F-B754-52FCEE1337C5">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>UID</entry>
-<entry>Description</entry>
-<entry>Value</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>KRsaCipherUid </p> </entry>
-<entry><p>RSA Cipher algorithm UID </p> </entry>
-<entry><p>0x1028317e </p> </entry>
-</row>
-<row>
-<entry><p>KRsaSignerUid </p> </entry>
-<entry><p>RSA Signer algorithm UID </p> </entry>
-<entry><p>0x1028317f </p> </entry>
-</row>
-<row>
-<entry><p>KDsaSignerUid </p> </entry>
-<entry><p>DSA Signer algorithm UID </p> </entry>
-<entry><p>0x10283180 </p> </entry>
-</row>
-<row>
-<entry><p>KDHAgreementUid </p> </entry>
-<entry><p>DH Agreement algorithm UID </p> </entry>
-<entry><p>0x10283183 </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The asymmetric key algorithm UIDs are used by the following API: </p> <ul>
-<li id="GUID-6121C646-5898-51C4-A51D-063A6841BDF7"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CAsymmetricCipher::CAsymmetricCipher()</apiname></xref> </p> </li>
-</ul> </section>
-<section><title>Operation modes</title> <table id="GUID-58122807-15E8-5919-BE4B-6E52BB425319">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>UID</entry>
-<entry>Description</entry>
-<entry>Value</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>KOperationModeNoneUid </p> </entry>
-<entry><p>None Mode UID </p> </entry>
-<entry><p>0x10283190 </p> </entry>
-</row>
-<row>
-<entry><p>KOperationModeECBUid </p> </entry>
-<entry><p>ECB Mode UID </p> </entry>
-<entry><p>0x10283191 </p> </entry>
-</row>
-<row>
-<entry><p>KOperationModeCBCUid </p> </entry>
-<entry><p>CBC Mode UID </p> </entry>
-<entry><p>0x10283192 </p> </entry>
-</row>
-<row>
-<entry><p>KOperationModeOFBUid </p> </entry>
-<entry><p>OFB Mode UID </p> </entry>
-<entry><p>0x10283193 </p> </entry>
-</row>
-<row>
-<entry><p>KOperationModeCFBUid </p> </entry>
-<entry><p>CFB Mode UID </p> </entry>
-<entry><p>0x10283194 </p> </entry>
-</row>
-<row>
-<entry><p>KOperationModeCTRUid </p> </entry>
-<entry><p>CTR Mode UID </p> </entry>
-<entry><p>0x10283195 </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The operation modes are used by the following APIs: </p> <ul>
-<li id="GUID-809C4C15-873A-51CE-B1E8-CCFAAD66C8A7"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateHashL()</apiname></xref>  </p> </li>
-<li id="GUID-D6732C41-74A4-59A3-A099-D7CA9AE2C634"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname> CryptoSpi::CHashFactory::CreateAsyncHashL()</apiname></xref>  </p> </li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5-master.png has changed
Binary file Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e66467_href.png has changed
Binary file Symbian3/SDK/Source/GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e71711_href.png has changed
--- a/Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1" xml:lang="en"><title>Bitmap
-Animation Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-44C21503-6654-4590-996F-969D5B8B6869-GENID-1-8-1-3-1-1-5-1-3-1-2-1"><title>Purpose</title> <p>This document shows you how to create an
-animation using the Bitmap Animation framework. </p> </section>
-<section id="GUID-3968A450-B383-4F55-A89D-817908FD67BE-GENID-1-8-1-3-1-1-5-1-3-1-2-2"><title>Architectural relationships</title> <p>The Bitmap Animation
-framework (<filepath>bmpanim.dll</filepath>) uses the font and bitmap server
-(<filepath>fbscli.dll</filepath>) to provide the bitmap images (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> s). </p> <p>An
-animation DLL (<filepath>bmpansrv.dll</filepath>), loaded by the Window Server,
-is used to perform the animation. </p> <p>The animation DLL uses the bitgdi
-component (<filepath>bitgdi.dll</filepath>) to draw the bitmaps. </p> </section>
-<section id="GUID-0CE251DB-D48D-43D2-AF0D-420D7AAF6414-GENID-1-8-1-3-1-1-5-1-3-1-2-3"><title>Description</title> <p>To use a bitmap animation in your application
-you need to: </p> <ul>
-<li id="GUID-F6367722-F765-550C-8B85-65FFEA38369A-GENID-1-8-1-3-1-1-5-1-3-1-2-3-3-1"><p>define one or more animation
-frames, each of which owns a bitmap, </p> </li>
-<li id="GUID-7B1EB74D-0057-52D6-8560-A96A301F0ED3-GENID-1-8-1-3-1-1-5-1-3-1-2-3-3-2"><p>assign the frames to
-an animation container, </p> </li>
-<li id="GUID-4C005026-80CE-59B4-A9EE-DAFD2EB71DFA-GENID-1-8-1-3-1-1-5-1-3-1-2-3-3-3"><p>create an animation
-player object and pass the animation container to it. This communicates with
-the window server to start and stop playing the animation inside a window. </p> </li>
-</ul> <p>Collectively, these steps make up the Bitmap Animation framework.
-The key client side classes that are involved in these steps are: </p> <ul>
-<li id="GUID-64D5B1E5-7FDD-5AD1-BD0F-906D27B118B1-GENID-1-8-1-3-1-1-5-1-3-1-2-3-5-1"><p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita"><apiname>CBitmapFrameData</apiname></xref>, </p> </li>
-<li id="GUID-0F881880-38C8-5E94-869E-835D90960C45-GENID-1-8-1-3-1-1-5-1-3-1-2-3-5-2"><p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, </p> </li>
-<li id="GUID-7330A56E-0371-5AE7-942F-E461F7D697F1-GENID-1-8-1-3-1-1-5-1-3-1-2-3-5-3"><p> <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>. </p> </li>
-</ul> <p>The rest of this document describes each of these steps, starting
-with the animation frame. </p> </section>
-<section id="GUID-112ED5AB-2CFA-415A-8CA2-9B327BADC99A-GENID-1-8-1-3-1-1-5-1-3-1-2-4"><title>Defining an animation frame</title> <p>The <codeph>CBitmapFrameData</codeph> class
-represents a single frame in an animation. The following properties of a frame
-can be set: </p> <ul>
-<li id="GUID-DEC005F2-FBAC-59AA-BA41-E4B3B025B19C-GENID-1-8-1-3-1-1-5-1-3-1-2-4-3-1"><p>the bitmap image, </p> </li>
-<li id="GUID-D1829CD2-786B-55DF-AF9A-49EBC2765906-GENID-1-8-1-3-1-1-5-1-3-1-2-4-3-2"><p>the mask, which is used
-for making parts of the image transparent, </p> </li>
-<li id="GUID-1371D69B-D45F-5A1E-8BA5-37210ED0FABA-GENID-1-8-1-3-1-1-5-1-3-1-2-4-3-3"><p>the time the frame is
-displayed, in milliseconds, </p> </li>
-<li id="GUID-8290AB20-F4E2-5FBC-84FA-BD55D4AE8EB4-GENID-1-8-1-3-1-1-5-1-3-1-2-4-3-4"><p>the position in the
-window where the frame is displayed. </p> </li>
-</ul> <p>These properties can either be set in <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-83DBA551-0023-399B-8791-EC4CEB4BEF53"><apiname>CBitmapFrameData::NewL()</apiname></xref> or
-by calling various setter functions, described below. </p> <p><b>Setting the
-image and mask bitmaps </b> </p> <p>The following code loads the bitmap and
-mask from a multi bitmap file, and constructs the frame, setting its bitmap
-and mask, which it takes ownership of: </p> <codeblock id="GUID-2B408AB3-8816-51B6-95DD-6848EB83EC84-GENID-1-8-1-3-1-1-5-1-3-1-2-4-7" xml:space="preserve">CFbsBitmap* bitmap=new (ELeave) CFbsBitmap; // load the image bitmap from an mbm file 
-CleanupStack::PushL(bitmap);
-User::LeaveIfError(bitmap-&gt;Load(KMBMFileName, EMbmAnimFrame1));
-CFbsBitmap* mask=new (ELeave) CFbsBitmap; // load the mask from the same mbm file
-CleanupStack::PushL(mask);
-User::LeaveIfError(mask-&gt;Load(KMBMFileName, EMbmAnimFrameMask1));
-CBitmapFrameData* frame1 = CBitmapFrameData::NewL(bitmap, mask);
-CleanupStack::Pop(2); // bitmap, mask</codeblock> <p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-E1FFD12D-5139-3532-8207-1D94C75ACBE8"><apiname>CBitmapFrameData::SetBitmap()</apiname></xref> and <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-D7EB7A35-006B-3A89-9EBA-3BFD28D02518"><apiname>CBitmapFrameData::SetMask()</apiname></xref> could alternatively be used. </p> <p>An animation can have multiple frames,
-each of which has an image and mask bitmap. Each frame stores a flag to indicate
-whether or not it owns the bitmaps. If the frame owns the bitmaps, they are
-deleted in the frame’s destructor. This flag can be set or unset by calling <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-15F4E778-0D5C-3653-8722-9352F4386C76"><apiname>CBitmapFrameData::SetBitmapsOwnedExternally()</apiname></xref>.
-By default, bitmaps are owned by the frame. </p> <p>The mask is used in the
-standard way for a bitmap mask, so pixels in the bitmap image that map to
-black pixels in the mask are drawn, while pixels that map to white pixels
-in the mask are not, so appear transparent. </p> <p><b>Setting the time interval </b> </p> <p>The
-time period for the frame to be displayed on the screen is set in milliseconds: </p> <codeblock id="GUID-7D886BE6-2660-5937-83F6-740D98E9A002-GENID-1-8-1-3-1-1-5-1-3-1-2-4-13" xml:space="preserve">frame1-&gt;SetInterval(125);</codeblock> <p>Note
-that a default time interval can be set in the frame container (described
-in the next section) by calling <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-A7CEB917-12B5-38E8-9BBA-5F42B695EA92"><apiname>CBitmapAnimClientData::SetFrameInterval()</apiname></xref>.
-Any value set in the container will apply to frames that have not set an interval
-themselves. </p> <p><b>Setting the frame’s position </b> </p> <p>The position
-of the frame relative to the animation window is set using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-EA74CED1-0AE0-30D2-9FFF-AAB321FC119C"><apiname>CBitmapFrameData::SetPosition()</apiname></xref>: </p> <codeblock id="GUID-2344FB5E-F8DC-54C1-8995-A2B21DDA5D24-GENID-1-8-1-3-1-1-5-1-3-1-2-4-17" xml:space="preserve">TPoint framePos(3,6);
-frame1-&gt;SetPosition(framePos);</codeblock> <p>Note that the position can also
-be specified in <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>; if so, this value applies
-to all frames. </p> <p>When you have finished defining the animation frame(s),
-use the frame container class, <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, to
-create the animation. </p> </section>
-<section id="GUID-598D3A59-6DC6-40C9-9CFA-30D5AB656040-GENID-1-8-1-3-1-1-5-1-3-1-2-5"><title>Defining an animation</title> <p>Frames are grouped into an
-animation frame container (<xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>), which
-allows the following behaviour to be set: </p> <ul>
-<li id="GUID-3DB97BEC-DE20-5514-AE79-D21D6B3C257D-GENID-1-8-1-3-1-1-5-1-3-1-2-5-3-1"><p>append frames to the
-container, </p> </li>
-<li id="GUID-13AA19C6-45E7-5AEC-A202-2D8FCA16BC4D-GENID-1-8-1-3-1-1-5-1-3-1-2-5-3-2"><p>set a default display
-interval for all frames, (note that the time interval set by an individual
-frame takes precedence, for that frame, over the default interval), </p> </li>
-<li id="GUID-CC7DA6F4-DDA9-5296-8348-9FA4D2D9B203-GENID-1-8-1-3-1-1-5-1-3-1-2-5-3-3"><p>set one of the following
-play modes for the animation: play once, loop or bounce (plays forwards and
-backwards), </p> </li>
-<li id="GUID-B32243AD-62F2-547D-B31B-C8B520F71D78-GENID-1-8-1-3-1-1-5-1-3-1-2-5-3-4"><p>set the animation to
-flash, </p> </li>
-<li id="GUID-F8251606-6004-5752-B74A-23CF280248B9-GENID-1-8-1-3-1-1-5-1-3-1-2-5-3-5"><p>provide an additional
-bitmap frame to use for the background to the animation (explained below). </p> </li>
-</ul> <p><b>Appending frames </b> </p> <p>First, create the frame container,
-and append the frame(s) to it in the correct sequence: </p> <codeblock id="GUID-67B754F6-1802-5361-9CB9-40E6D025AB04-GENID-1-8-1-3-1-1-5-1-3-1-2-5-6" xml:space="preserve">CBitmapAnimClientData* animFrames=CBitmapAnimClientData::NewL();
-CleanupStack::PushL(animFrames);
-animFrames-&gt;AppendFrameL(*frame1);
-animFrames-&gt;AppendFrameL(*frame2); // etc.</codeblock> <p><b>Setting the default
-display interval </b> </p> <p>A default display interval can be set for the
-animation: </p> <codeblock id="GUID-126F763A-DB9C-50F4-BEB5-70093895CB03-GENID-1-8-1-3-1-1-5-1-3-1-2-5-9" xml:space="preserve">animFrames-&gt;SetFrameInterval(100);</codeblock> <p>This
-applies only to frames which have not specified their own interval (using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-4EE6A625-B3AD-3389-93F0-D92D6FC3FC68"><apiname>CBitmapFrameData::SetInterval()</apiname></xref>).
-In this example, the default interval for frames without their own interval
-is 100 milliseconds (0.1 second). It can be used to ensure that all frames
-are displayed for the same length of time. </p> <p><b>Setting the play mode </b> </p> <p>There
-are three play modes: play once, play repeatedly in the same direction ('loop')
-and play forwards and backwards repeatedly ('bounce'). This code sets the
-animation to play once: </p> <codeblock id="GUID-13F860DF-A4E7-505E-AAD3-92C7BDF68886-GENID-1-8-1-3-1-1-5-1-3-1-2-5-13" xml:space="preserve">animFrames-&gt;SetPlayMode(CBitmapAnimClientData::EPlay);</codeblock> <p><b>Other properties </b> </p> <p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-E1BDF09C-2154-3E60-BFBD-B4400C3EA295"><apiname>CBitmapAnimClientData::SetFlash()</apiname></xref> and <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-C2B4666A-A755-313D-BAC5-CEF74C09BDB2"><apiname>CBitmapAnimClientData::SetBackgroundFrame()</apiname></xref> are used to set/unset the flash flag and the background frame, respectively.
-The flash flag determines whether the animation should flash or not. </p> <p>The
-background frame, which is optional, is used to clear the current frame before
-drawing the next one. If no background frame is provided by the client, the
-window server creates its own background frame using the original screen contents,
-and updates it when the animation window is redrawn. </p> <p>If the client-provided
-background frame contains an image bitmap and a mask, the background image
-used is a combination of the screen contents and the supplied background bitmap.
-If the client-provided background frame has a bitmap but no mask, the bitmap
-is used as the background. </p> </section>
-<section id="GUID-7299DDF6-52E7-43FB-A940-DD8D3059AE6E-GENID-1-8-1-3-1-1-5-1-3-1-2-6"><title>Playing the animation</title> <p>When the animation is ready
-to play, it must be packaged and sent to the window server’s animation DLL.
-This is done through an animation player (<xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>)
-object. </p> <p> <codeph>RBitmapAnim</codeph> allows you to do the following: </p> <ul>
-<li id="GUID-FE236CAC-38D1-5A3C-BE6A-35897F564592-GENID-1-8-1-3-1-1-5-1-3-1-2-6-4-1"><p>specify the window in
-which the animation is displayed, </p> </li>
-<li id="GUID-C0D41155-63B9-5038-924E-D7F3193FF65F-GENID-1-8-1-3-1-1-5-1-3-1-2-6-4-2"><p>associate the animation
-with an <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> object, which provides a connection to
-the window server, </p> </li>
-<li id="GUID-301E0D0B-2010-56CF-8780-FBE322CD9FDA-GENID-1-8-1-3-1-1-5-1-3-1-2-6-4-3"><p>pass the animation object
-to the window server’s animation DLL, </p> </li>
-<li id="GUID-610C8A64-4BC6-5E59-8DC4-809B47328F02-GENID-1-8-1-3-1-1-5-1-3-1-2-6-4-4"><p>specify the number of
-times the animation should play, </p> </li>
-<li id="GUID-2384FF48-9281-5D4E-9298-D822B7566E52-GENID-1-8-1-3-1-1-5-1-3-1-2-6-4-5"><p>start and stop playing
-the animation. Optionally the animation can start playing from a particular
-frame. </p> </li>
-</ul> <p>Note that after the animation object has been set up and passed to
-the window server, the general attributes of the animation, namely the flash
-property, the default display time for each frame and the play mode can still
-be changed, using the following <codeph>RBitmapAnim</codeph> functions: </p> <ul>
-<li id="GUID-8DA50426-3BD1-5B8E-B8D7-B0D8F19409DF-GENID-1-8-1-3-1-1-5-1-3-1-2-6-6-1"><p> <codeph>SetFlashL()</codeph>, </p> </li>
-<li id="GUID-C237DFD6-427F-5953-AFB6-0AA64B0D97FE-GENID-1-8-1-3-1-1-5-1-3-1-2-6-6-2"><p> <codeph>SetFrameIntervalL()</codeph>, </p> </li>
-<li id="GUID-8020158F-10BA-554E-9088-E51CE00DBBC6-GENID-1-8-1-3-1-1-5-1-3-1-2-6-6-3"><p> <codeph>SetPlayModeL()</codeph>. </p> </li>
-</ul> <p>Any changes to these properties made using <codeph>RBitmapAnim</codeph> will
-override the values previously set in <codeph>CBitmapAnimClientData</codeph>. </p> <p><b>Constructing
-the animation player </b> </p> <p> <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> is a handle
-to the server-side animation DLL. It is used to load the window server animation
-DLL, <filepath>bmpansrv.dll</filepath>, which provides the functions that
-perform the frames animation. The <codeph>RAnimDll</codeph> instance is passed
-to the <codeph>RBitmapAnim</codeph> constructor. </p> <codeblock id="GUID-04E123E6-306B-5C8B-9A0B-A415E6EBC74A-GENID-1-8-1-3-1-1-5-1-3-1-2-6-10" xml:space="preserve">RAnimDll animDLL(iEikonEnv-&gt;WsSession()); // session is used to interact with the window server
-_LIT(KDllName, "BMPANSRV.DLL"); 
-User::LeaveIfError(animDll.Load(KDllName)); 
-RBitmapAnim animPlayer(animDLL);
-animPlayer.ConstructL(Window());</codeblock> <p><b>Passing the animation object
-to the window server </b> </p> <p>The animation frame container (<codeph>CBitmapAnimClientData</codeph>)
-should be passed via the <codeph>RBitmapAnim</codeph> object to the window
-server. This is done using the function <codeph>SetBitmapAnimDataL()</codeph>.
-Note that calling this function does not cause the animation to start playing: </p> <codeblock id="GUID-F8CCC483-9B1F-58A4-AF93-E8E967A535B1-GENID-1-8-1-3-1-1-5-1-3-1-2-6-13" xml:space="preserve">animPlayer.SetBitmapAnimDataL(*animFrames);</codeblock> <p><b>Setting
-the number of cycles </b> </p> <p>If the animation should play more than once,
-the number of cycles should be set: </p> <codeblock id="GUID-549751F2-770E-54C4-8C78-7AFF633D9A4D-GENID-1-8-1-3-1-1-5-1-3-1-2-6-16" xml:space="preserve">animPlayer.SetNumberOfCyclesL(10);</codeblock> <p>Note that if the animation's play mode is 'bounce', the number of cycles
-must be set to at least two to ensure a complete animation routine. </p> <p><b>Setting
-the position </b> </p> <p>To set the animation’s position, use <codeph>SetPositionL()</codeph>.
-This value is an offset from the origin of the animation window. </p> <codeblock id="GUID-3F4E29C5-A456-5BFC-AA10-0A7E29EAAB97-GENID-1-8-1-3-1-1-5-1-3-1-2-6-20" xml:space="preserve">TPoint animPos(20,40);
-animPlayer.SetPositionL(animPos);</codeblock> <p><b>Starting/stopping the
-animation </b> </p> <p>The <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-E7C514C8-0335-3903-A997-C226170798C5"><apiname>RBitmapAnim::StartL()</apiname></xref> and <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-DD8AFC9D-E742-36E7-8816-37E61392DEDF"><apiname>RBitmapAnim::StopL()</apiname></xref> functions
-send commands to the animation DLL to start/stop the animation routine. </p> <p>Calling <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-1E2FCA51-21BF-3C21-8D96-753E27F277B1"><apiname>RBitmapAnim::DisplayFrameL()</apiname></xref> before
-the animation has started sets the frame from which the animation should start
-playing. </p> <p><b>Freeing resources </b> </p> <p>After they have been finished
-with, <codeph>Close()</codeph> should be called on the <codeph>RAnimDll</codeph> and <codeph>RBitmapAnim</codeph> objects. </p> <codeblock id="GUID-E7E87F97-9040-50F1-99F2-35AF517993E1-GENID-1-8-1-3-1-1-5-1-3-1-2-6-26" xml:space="preserve">animPlayer.Close();
-animDLL.Close();</codeblock> </section>
-<section id="GUID-CF40984F-2CA8-4EEE-98AD-C8F3E074407F-GENID-1-8-1-3-1-1-5-1-3-1-2-7"><title>See also</title> <ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation Overview</xref></p></li>
-<li><p><xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Introduction
-to the Font and Bitmap Server</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-6-1-1-4-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-6-1-1-4-1-4-1-3-1" xml:lang="en"><title>Bitmap
-Animation Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-44C21503-6654-4590-996F-969D5B8B6869-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-1"><title>Purpose</title> <p>This document shows you how to create an
-animation using the Bitmap Animation framework. </p> </section>
-<section id="GUID-3968A450-B383-4F55-A89D-817908FD67BE-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-2"><title>Architectural relationships</title> <p>The Bitmap Animation
-framework (<filepath>bmpanim.dll</filepath>) uses the font and bitmap server
-(<filepath>fbscli.dll</filepath>) to provide the bitmap images (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> s). </p> <p>An
-animation DLL (<filepath>bmpansrv.dll</filepath>), loaded by the Window Server,
-is used to perform the animation. </p> <p>The animation DLL uses the bitgdi
-component (<filepath>bitgdi.dll</filepath>) to draw the bitmaps. </p> </section>
-<section id="GUID-0CE251DB-D48D-43D2-AF0D-420D7AAF6414-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3"><title>Description</title> <p>To use a bitmap animation in your application
-you need to: </p> <ul>
-<li id="GUID-F6367722-F765-550C-8B85-65FFEA38369A-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-3-1"><p>define one or more animation
-frames, each of which owns a bitmap, </p> </li>
-<li id="GUID-7B1EB74D-0057-52D6-8560-A96A301F0ED3-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-3-2"><p>assign the frames to
-an animation container, </p> </li>
-<li id="GUID-4C005026-80CE-59B4-A9EE-DAFD2EB71DFA-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-3-3"><p>create an animation
-player object and pass the animation container to it. This communicates with
-the window server to start and stop playing the animation inside a window. </p> </li>
-</ul> <p>Collectively, these steps make up the Bitmap Animation framework.
-The key client side classes that are involved in these steps are: </p> <ul>
-<li id="GUID-64D5B1E5-7FDD-5AD1-BD0F-906D27B118B1-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-5-1"><p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita"><apiname>CBitmapFrameData</apiname></xref>, </p> </li>
-<li id="GUID-0F881880-38C8-5E94-869E-835D90960C45-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-5-2"><p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, </p> </li>
-<li id="GUID-7330A56E-0371-5AE7-942F-E461F7D697F1-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-3-5-3"><p> <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>. </p> </li>
-</ul> <p>The rest of this document describes each of these steps, starting
-with the animation frame. </p> </section>
-<section id="GUID-112ED5AB-2CFA-415A-8CA2-9B327BADC99A-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4"><title>Defining an animation frame</title> <p>The <codeph>CBitmapFrameData</codeph> class
-represents a single frame in an animation. The following properties of a frame
-can be set: </p> <ul>
-<li id="GUID-DEC005F2-FBAC-59AA-BA41-E4B3B025B19C-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-3-1"><p>the bitmap image, </p> </li>
-<li id="GUID-D1829CD2-786B-55DF-AF9A-49EBC2765906-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-3-2"><p>the mask, which is used
-for making parts of the image transparent, </p> </li>
-<li id="GUID-1371D69B-D45F-5A1E-8BA5-37210ED0FABA-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-3-3"><p>the time the frame is
-displayed, in milliseconds, </p> </li>
-<li id="GUID-8290AB20-F4E2-5FBC-84FA-BD55D4AE8EB4-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-3-4"><p>the position in the
-window where the frame is displayed. </p> </li>
-</ul> <p>These properties can either be set in <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-83DBA551-0023-399B-8791-EC4CEB4BEF53"><apiname>CBitmapFrameData::NewL()</apiname></xref> or
-by calling various setter functions, described below. </p> <p><b>Setting the
-image and mask bitmaps </b> </p> <p>The following code loads the bitmap and
-mask from a multi bitmap file, and constructs the frame, setting its bitmap
-and mask, which it takes ownership of: </p> <codeblock id="GUID-2B408AB3-8816-51B6-95DD-6848EB83EC84-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-7" xml:space="preserve">CFbsBitmap* bitmap=new (ELeave) CFbsBitmap; // load the image bitmap from an mbm file 
-CleanupStack::PushL(bitmap);
-User::LeaveIfError(bitmap-&gt;Load(KMBMFileName, EMbmAnimFrame1));
-CFbsBitmap* mask=new (ELeave) CFbsBitmap; // load the mask from the same mbm file
-CleanupStack::PushL(mask);
-User::LeaveIfError(mask-&gt;Load(KMBMFileName, EMbmAnimFrameMask1));
-CBitmapFrameData* frame1 = CBitmapFrameData::NewL(bitmap, mask);
-CleanupStack::Pop(2); // bitmap, mask</codeblock> <p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-E1FFD12D-5139-3532-8207-1D94C75ACBE8"><apiname>CBitmapFrameData::SetBitmap()</apiname></xref> and <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-D7EB7A35-006B-3A89-9EBA-3BFD28D02518"><apiname>CBitmapFrameData::SetMask()</apiname></xref> could alternatively be used. </p> <p>An animation can have multiple frames,
-each of which has an image and mask bitmap. Each frame stores a flag to indicate
-whether or not it owns the bitmaps. If the frame owns the bitmaps, they are
-deleted in the frame’s destructor. This flag can be set or unset by calling <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-15F4E778-0D5C-3653-8722-9352F4386C76"><apiname>CBitmapFrameData::SetBitmapsOwnedExternally()</apiname></xref>.
-By default, bitmaps are owned by the frame. </p> <p>The mask is used in the
-standard way for a bitmap mask, so pixels in the bitmap image that map to
-black pixels in the mask are drawn, while pixels that map to white pixels
-in the mask are not, so appear transparent. </p> <p><b>Setting the time interval </b> </p> <p>The
-time period for the frame to be displayed on the screen is set in milliseconds: </p> <codeblock id="GUID-7D886BE6-2660-5937-83F6-740D98E9A002-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-13" xml:space="preserve">frame1-&gt;SetInterval(125);</codeblock> <p>Note
-that a default time interval can be set in the frame container (described
-in the next section) by calling <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-A7CEB917-12B5-38E8-9BBA-5F42B695EA92"><apiname>CBitmapAnimClientData::SetFrameInterval()</apiname></xref>.
-Any value set in the container will apply to frames that have not set an interval
-themselves. </p> <p><b>Setting the frame’s position </b> </p> <p>The position
-of the frame relative to the animation window is set using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-EA74CED1-0AE0-30D2-9FFF-AAB321FC119C"><apiname>CBitmapFrameData::SetPosition()</apiname></xref>: </p> <codeblock id="GUID-2344FB5E-F8DC-54C1-8995-A2B21DDA5D24-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-4-17" xml:space="preserve">TPoint framePos(3,6);
-frame1-&gt;SetPosition(framePos);</codeblock> <p>Note that the position can also
-be specified in <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>; if so, this value applies
-to all frames. </p> <p>When you have finished defining the animation frame(s),
-use the frame container class, <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, to
-create the animation. </p> </section>
-<section id="GUID-598D3A59-6DC6-40C9-9CFA-30D5AB656040-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5"><title>Defining an animation</title> <p>Frames are grouped into an
-animation frame container (<xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>), which
-allows the following behaviour to be set: </p> <ul>
-<li id="GUID-3DB97BEC-DE20-5514-AE79-D21D6B3C257D-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-3-1"><p>append frames to the
-container, </p> </li>
-<li id="GUID-13AA19C6-45E7-5AEC-A202-2D8FCA16BC4D-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-3-2"><p>set a default display
-interval for all frames, (note that the time interval set by an individual
-frame takes precedence, for that frame, over the default interval), </p> </li>
-<li id="GUID-CC7DA6F4-DDA9-5296-8348-9FA4D2D9B203-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-3-3"><p>set one of the following
-play modes for the animation: play once, loop or bounce (plays forwards and
-backwards), </p> </li>
-<li id="GUID-B32243AD-62F2-547D-B31B-C8B520F71D78-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-3-4"><p>set the animation to
-flash, </p> </li>
-<li id="GUID-F8251606-6004-5752-B74A-23CF280248B9-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-3-5"><p>provide an additional
-bitmap frame to use for the background to the animation (explained below). </p> </li>
-</ul> <p><b>Appending frames </b> </p> <p>First, create the frame container,
-and append the frame(s) to it in the correct sequence: </p> <codeblock id="GUID-67B754F6-1802-5361-9CB9-40E6D025AB04-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-6" xml:space="preserve">CBitmapAnimClientData* animFrames=CBitmapAnimClientData::NewL();
-CleanupStack::PushL(animFrames);
-animFrames-&gt;AppendFrameL(*frame1);
-animFrames-&gt;AppendFrameL(*frame2); // etc.</codeblock> <p><b>Setting the default
-display interval </b> </p> <p>A default display interval can be set for the
-animation: </p> <codeblock id="GUID-126F763A-DB9C-50F4-BEB5-70093895CB03-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-9" xml:space="preserve">animFrames-&gt;SetFrameInterval(100);</codeblock> <p>This
-applies only to frames which have not specified their own interval (using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-4EE6A625-B3AD-3389-93F0-D92D6FC3FC68"><apiname>CBitmapFrameData::SetInterval()</apiname></xref>).
-In this example, the default interval for frames without their own interval
-is 100 milliseconds (0.1 second). It can be used to ensure that all frames
-are displayed for the same length of time. </p> <p><b>Setting the play mode </b> </p> <p>There
-are three play modes: play once, play repeatedly in the same direction ('loop')
-and play forwards and backwards repeatedly ('bounce'). This code sets the
-animation to play once: </p> <codeblock id="GUID-13F860DF-A4E7-505E-AAD3-92C7BDF68886-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-5-13" xml:space="preserve">animFrames-&gt;SetPlayMode(CBitmapAnimClientData::EPlay);</codeblock> <p><b>Other properties </b> </p> <p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-E1BDF09C-2154-3E60-BFBD-B4400C3EA295"><apiname>CBitmapAnimClientData::SetFlash()</apiname></xref> and <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-C2B4666A-A755-313D-BAC5-CEF74C09BDB2"><apiname>CBitmapAnimClientData::SetBackgroundFrame()</apiname></xref> are used to set/unset the flash flag and the background frame, respectively.
-The flash flag determines whether the animation should flash or not. </p> <p>The
-background frame, which is optional, is used to clear the current frame before
-drawing the next one. If no background frame is provided by the client, the
-window server creates its own background frame using the original screen contents,
-and updates it when the animation window is redrawn. </p> <p>If the client-provided
-background frame contains an image bitmap and a mask, the background image
-used is a combination of the screen contents and the supplied background bitmap.
-If the client-provided background frame has a bitmap but no mask, the bitmap
-is used as the background. </p> </section>
-<section id="GUID-7299DDF6-52E7-43FB-A940-DD8D3059AE6E-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6"><title>Playing the animation</title> <p>When the animation is ready
-to play, it must be packaged and sent to the window server’s animation DLL.
-This is done through an animation player (<xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>)
-object. </p> <p> <codeph>RBitmapAnim</codeph> allows you to do the following: </p> <ul>
-<li id="GUID-FE236CAC-38D1-5A3C-BE6A-35897F564592-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-4-1"><p>specify the window in
-which the animation is displayed, </p> </li>
-<li id="GUID-C0D41155-63B9-5038-924E-D7F3193FF65F-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-4-2"><p>associate the animation
-with an <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> object, which provides a connection to
-the window server, </p> </li>
-<li id="GUID-301E0D0B-2010-56CF-8780-FBE322CD9FDA-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-4-3"><p>pass the animation object
-to the window server’s animation DLL, </p> </li>
-<li id="GUID-610C8A64-4BC6-5E59-8DC4-809B47328F02-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-4-4"><p>specify the number of
-times the animation should play, </p> </li>
-<li id="GUID-2384FF48-9281-5D4E-9298-D822B7566E52-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-4-5"><p>start and stop playing
-the animation. Optionally the animation can start playing from a particular
-frame. </p> </li>
-</ul> <p>Note that after the animation object has been set up and passed to
-the window server, the general attributes of the animation, namely the flash
-property, the default display time for each frame and the play mode can still
-be changed, using the following <codeph>RBitmapAnim</codeph> functions: </p> <ul>
-<li id="GUID-8DA50426-3BD1-5B8E-B8D7-B0D8F19409DF-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-6-1"><p> <codeph>SetFlashL()</codeph>, </p> </li>
-<li id="GUID-C237DFD6-427F-5953-AFB6-0AA64B0D97FE-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-6-2"><p> <codeph>SetFrameIntervalL()</codeph>, </p> </li>
-<li id="GUID-8020158F-10BA-554E-9088-E51CE00DBBC6-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-6-3"><p> <codeph>SetPlayModeL()</codeph>. </p> </li>
-</ul> <p>Any changes to these properties made using <codeph>RBitmapAnim</codeph> will
-override the values previously set in <codeph>CBitmapAnimClientData</codeph>. </p> <p><b>Constructing
-the animation player </b> </p> <p> <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> is a handle
-to the server-side animation DLL. It is used to load the window server animation
-DLL, <filepath>bmpansrv.dll</filepath>, which provides the functions that
-perform the frames animation. The <codeph>RAnimDll</codeph> instance is passed
-to the <codeph>RBitmapAnim</codeph> constructor. </p> <codeblock id="GUID-04E123E6-306B-5C8B-9A0B-A415E6EBC74A-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-10" xml:space="preserve">RAnimDll animDLL(iEikonEnv-&gt;WsSession()); // session is used to interact with the window server
-_LIT(KDllName, "BMPANSRV.DLL"); 
-User::LeaveIfError(animDll.Load(KDllName)); 
-RBitmapAnim animPlayer(animDLL);
-animPlayer.ConstructL(Window());</codeblock> <p><b>Passing the animation object
-to the window server </b> </p> <p>The animation frame container (<codeph>CBitmapAnimClientData</codeph>)
-should be passed via the <codeph>RBitmapAnim</codeph> object to the window
-server. This is done using the function <codeph>SetBitmapAnimDataL()</codeph>.
-Note that calling this function does not cause the animation to start playing: </p> <codeblock id="GUID-F8CCC483-9B1F-58A4-AF93-E8E967A535B1-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-13" xml:space="preserve">animPlayer.SetBitmapAnimDataL(*animFrames);</codeblock> <p><b>Setting
-the number of cycles </b> </p> <p>If the animation should play more than once,
-the number of cycles should be set: </p> <codeblock id="GUID-549751F2-770E-54C4-8C78-7AFF633D9A4D-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-16" xml:space="preserve">animPlayer.SetNumberOfCyclesL(10);</codeblock> <p>Note that if the animation's play mode is 'bounce', the number of cycles
-must be set to at least two to ensure a complete animation routine. </p> <p><b>Setting
-the position </b> </p> <p>To set the animation’s position, use <codeph>SetPositionL()</codeph>.
-This value is an offset from the origin of the animation window. </p> <codeblock id="GUID-3F4E29C5-A456-5BFC-AA10-0A7E29EAAB97-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-20" xml:space="preserve">TPoint animPos(20,40);
-animPlayer.SetPositionL(animPos);</codeblock> <p><b>Starting/stopping the
-animation </b> </p> <p>The <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-E7C514C8-0335-3903-A997-C226170798C5"><apiname>RBitmapAnim::StartL()</apiname></xref> and <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-DD8AFC9D-E742-36E7-8816-37E61392DEDF"><apiname>RBitmapAnim::StopL()</apiname></xref> functions
-send commands to the animation DLL to start/stop the animation routine. </p> <p>Calling <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-1E2FCA51-21BF-3C21-8D96-753E27F277B1"><apiname>RBitmapAnim::DisplayFrameL()</apiname></xref> before
-the animation has started sets the frame from which the animation should start
-playing. </p> <p><b>Freeing resources </b> </p> <p>After they have been finished
-with, <codeph>Close()</codeph> should be called on the <codeph>RAnimDll</codeph> and <codeph>RBitmapAnim</codeph> objects. </p> <codeblock id="GUID-E7E87F97-9040-50F1-99F2-35AF517993E1-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-6-26" xml:space="preserve">animPlayer.Close();
-animDLL.Close();</codeblock> </section>
-<section id="GUID-CF40984F-2CA8-4EEE-98AD-C8F3E074407F-GENID-1-8-1-6-1-1-4-1-4-1-3-1-2-7"><title>See also</title> <ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation Overview</xref></p></li>
-<li><p><xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Introduction
-to the Font and Bitmap Server</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247" xml:lang="en"><title>Bitmap
+Animation Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-44C21503-6654-4590-996F-969D5B8B6869"><title>Purpose</title> <p>This document shows you how to create an
+animation using the Bitmap Animation framework. </p> </section>
+<section id="GUID-3968A450-B383-4F55-A89D-817908FD67BE"><title>Architectural relationships</title> <p>The Bitmap Animation
+framework (<filepath>bmpanim.dll</filepath>) uses the font and bitmap server
+(<filepath>fbscli.dll</filepath>) to provide the bitmap images (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> s). </p> <p>An
+animation DLL (<filepath>bmpansrv.dll</filepath>), loaded by the Window Server,
+is used to perform the animation. </p> <p>The animation DLL uses the bitgdi
+component (<filepath>bitgdi.dll</filepath>) to draw the bitmaps. </p> </section>
+<section id="GUID-0CE251DB-D48D-43D2-AF0D-420D7AAF6414"><title>Description</title> <p>To use a bitmap animation in your application
+you need to: </p> <ul>
+<li id="GUID-F6367722-F765-550C-8B85-65FFEA38369A"><p>define one or more animation
+frames, each of which owns a bitmap, </p> </li>
+<li id="GUID-7B1EB74D-0057-52D6-8560-A96A301F0ED3"><p>assign the frames to
+an animation container, </p> </li>
+<li id="GUID-4C005026-80CE-59B4-A9EE-DAFD2EB71DFA"><p>create an animation
+player object and pass the animation container to it. This communicates with
+the window server to start and stop playing the animation inside a window. </p> </li>
+</ul> <p>Collectively, these steps make up the Bitmap Animation framework.
+The key client side classes that are involved in these steps are: </p> <ul>
+<li id="GUID-64D5B1E5-7FDD-5AD1-BD0F-906D27B118B1"><p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita"><apiname>CBitmapFrameData</apiname></xref>, </p> </li>
+<li id="GUID-0F881880-38C8-5E94-869E-835D90960C45"><p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, </p> </li>
+<li id="GUID-7330A56E-0371-5AE7-942F-E461F7D697F1"><p> <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>. </p> </li>
+</ul> <p>The rest of this document describes each of these steps, starting
+with the animation frame. </p> </section>
+<section id="GUID-112ED5AB-2CFA-415A-8CA2-9B327BADC99A"><title>Defining an animation frame</title> <p>The <codeph>CBitmapFrameData</codeph> class
+represents a single frame in an animation. The following properties of a frame
+can be set: </p> <ul>
+<li id="GUID-DEC005F2-FBAC-59AA-BA41-E4B3B025B19C"><p>the bitmap image, </p> </li>
+<li id="GUID-D1829CD2-786B-55DF-AF9A-49EBC2765906"><p>the mask, which is used
+for making parts of the image transparent, </p> </li>
+<li id="GUID-1371D69B-D45F-5A1E-8BA5-37210ED0FABA"><p>the time the frame is
+displayed, in milliseconds, </p> </li>
+<li id="GUID-8290AB20-F4E2-5FBC-84FA-BD55D4AE8EB4"><p>the position in the
+window where the frame is displayed. </p> </li>
+</ul> <p>These properties can either be set in <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-83DBA551-0023-399B-8791-EC4CEB4BEF53"><apiname>CBitmapFrameData::NewL()</apiname></xref> or
+by calling various setter functions, described below. </p> <p><b>Setting the
+image and mask bitmaps </b> </p> <p>The following code loads the bitmap and
+mask from a multi bitmap file, and constructs the frame, setting its bitmap
+and mask, which it takes ownership of: </p> <codeblock id="GUID-2B408AB3-8816-51B6-95DD-6848EB83EC84" xml:space="preserve">CFbsBitmap* bitmap=new (ELeave) CFbsBitmap; // load the image bitmap from an mbm file 
+CleanupStack::PushL(bitmap);
+User::LeaveIfError(bitmap-&gt;Load(KMBMFileName, EMbmAnimFrame1));
+CFbsBitmap* mask=new (ELeave) CFbsBitmap; // load the mask from the same mbm file
+CleanupStack::PushL(mask);
+User::LeaveIfError(mask-&gt;Load(KMBMFileName, EMbmAnimFrameMask1));
+CBitmapFrameData* frame1 = CBitmapFrameData::NewL(bitmap, mask);
+CleanupStack::Pop(2); // bitmap, mask</codeblock> <p> <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-E1FFD12D-5139-3532-8207-1D94C75ACBE8"><apiname>CBitmapFrameData::SetBitmap()</apiname></xref> and <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-D7EB7A35-006B-3A89-9EBA-3BFD28D02518"><apiname>CBitmapFrameData::SetMask()</apiname></xref> could alternatively be used. </p> <p>An animation can have multiple frames,
+each of which has an image and mask bitmap. Each frame stores a flag to indicate
+whether or not it owns the bitmaps. If the frame owns the bitmaps, they are
+deleted in the frame’s destructor. This flag can be set or unset by calling <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-15F4E778-0D5C-3653-8722-9352F4386C76"><apiname>CBitmapFrameData::SetBitmapsOwnedExternally()</apiname></xref>.
+By default, bitmaps are owned by the frame. </p> <p>The mask is used in the
+standard way for a bitmap mask, so pixels in the bitmap image that map to
+black pixels in the mask are drawn, while pixels that map to white pixels
+in the mask are not, so appear transparent. </p> <p><b>Setting the time interval </b> </p> <p>The
+time period for the frame to be displayed on the screen is set in milliseconds: </p> <codeblock id="GUID-7D886BE6-2660-5937-83F6-740D98E9A002" xml:space="preserve">frame1-&gt;SetInterval(125);</codeblock> <p>Note
+that a default time interval can be set in the frame container (described
+in the next section) by calling <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-A7CEB917-12B5-38E8-9BBA-5F42B695EA92"><apiname>CBitmapAnimClientData::SetFrameInterval()</apiname></xref>.
+Any value set in the container will apply to frames that have not set an interval
+themselves. </p> <p><b>Setting the frame’s position </b> </p> <p>The position
+of the frame relative to the animation window is set using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-EA74CED1-0AE0-30D2-9FFF-AAB321FC119C"><apiname>CBitmapFrameData::SetPosition()</apiname></xref>: </p> <codeblock id="GUID-2344FB5E-F8DC-54C1-8995-A2B21DDA5D24" xml:space="preserve">TPoint framePos(3,6);
+frame1-&gt;SetPosition(framePos);</codeblock> <p>Note that the position can also
+be specified in <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>; if so, this value applies
+to all frames. </p> <p>When you have finished defining the animation frame(s),
+use the frame container class, <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>, to
+create the animation. </p> </section>
+<section id="GUID-598D3A59-6DC6-40C9-9CFA-30D5AB656040"><title>Defining an animation</title> <p>Frames are grouped into an
+animation frame container (<xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita"><apiname>CBitmapAnimClientData</apiname></xref>), which
+allows the following behaviour to be set: </p> <ul>
+<li id="GUID-3DB97BEC-DE20-5514-AE79-D21D6B3C257D"><p>append frames to the
+container, </p> </li>
+<li id="GUID-13AA19C6-45E7-5AEC-A202-2D8FCA16BC4D"><p>set a default display
+interval for all frames, (note that the time interval set by an individual
+frame takes precedence, for that frame, over the default interval), </p> </li>
+<li id="GUID-CC7DA6F4-DDA9-5296-8348-9FA4D2D9B203"><p>set one of the following
+play modes for the animation: play once, loop or bounce (plays forwards and
+backwards), </p> </li>
+<li id="GUID-B32243AD-62F2-547D-B31B-C8B520F71D78"><p>set the animation to
+flash, </p> </li>
+<li id="GUID-F8251606-6004-5752-B74A-23CF280248B9"><p>provide an additional
+bitmap frame to use for the background to the animation (explained below). </p> </li>
+</ul> <p><b>Appending frames </b> </p> <p>First, create the frame container,
+and append the frame(s) to it in the correct sequence: </p> <codeblock id="GUID-67B754F6-1802-5361-9CB9-40E6D025AB04" xml:space="preserve">CBitmapAnimClientData* animFrames=CBitmapAnimClientData::NewL();
+CleanupStack::PushL(animFrames);
+animFrames-&gt;AppendFrameL(*frame1);
+animFrames-&gt;AppendFrameL(*frame2); // etc.</codeblock> <p><b>Setting the default
+display interval </b> </p> <p>A default display interval can be set for the
+animation: </p> <codeblock id="GUID-126F763A-DB9C-50F4-BEB5-70093895CB03" xml:space="preserve">animFrames-&gt;SetFrameInterval(100);</codeblock> <p>This
+applies only to frames which have not specified their own interval (using <xref href="GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594.dita#GUID-D88261C5-BCD8-36C4-9A46-6DA0A7FB5594/GUID-4EE6A625-B3AD-3389-93F0-D92D6FC3FC68"><apiname>CBitmapFrameData::SetInterval()</apiname></xref>).
+In this example, the default interval for frames without their own interval
+is 100 milliseconds (0.1 second). It can be used to ensure that all frames
+are displayed for the same length of time. </p> <p><b>Setting the play mode </b> </p> <p>There
+are three play modes: play once, play repeatedly in the same direction ('loop')
+and play forwards and backwards repeatedly ('bounce'). This code sets the
+animation to play once: </p> <codeblock id="GUID-13F860DF-A4E7-505E-AAD3-92C7BDF68886" xml:space="preserve">animFrames-&gt;SetPlayMode(CBitmapAnimClientData::EPlay);</codeblock> <p><b>Other properties </b> </p> <p> <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-E1BDF09C-2154-3E60-BFBD-B4400C3EA295"><apiname>CBitmapAnimClientData::SetFlash()</apiname></xref> and <xref href="GUID-780B280B-A3D9-31C8-9F82-55353DC7E056.dita#GUID-780B280B-A3D9-31C8-9F82-55353DC7E056/GUID-C2B4666A-A755-313D-BAC5-CEF74C09BDB2"><apiname>CBitmapAnimClientData::SetBackgroundFrame()</apiname></xref> are used to set/unset the flash flag and the background frame, respectively.
+The flash flag determines whether the animation should flash or not. </p> <p>The
+background frame, which is optional, is used to clear the current frame before
+drawing the next one. If no background frame is provided by the client, the
+window server creates its own background frame using the original screen contents,
+and updates it when the animation window is redrawn. </p> <p>If the client-provided
+background frame contains an image bitmap and a mask, the background image
+used is a combination of the screen contents and the supplied background bitmap.
+If the client-provided background frame has a bitmap but no mask, the bitmap
+is used as the background. </p> </section>
+<section id="GUID-7299DDF6-52E7-43FB-A940-DD8D3059AE6E"><title>Playing the animation</title> <p>When the animation is ready
+to play, it must be packaged and sent to the window server’s animation DLL.
+This is done through an animation player (<xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita"><apiname>RBitmapAnim</apiname></xref>)
+object. </p> <p> <codeph>RBitmapAnim</codeph> allows you to do the following: </p> <ul>
+<li id="GUID-FE236CAC-38D1-5A3C-BE6A-35897F564592"><p>specify the window in
+which the animation is displayed, </p> </li>
+<li id="GUID-C0D41155-63B9-5038-924E-D7F3193FF65F"><p>associate the animation
+with an <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> object, which provides a connection to
+the window server, </p> </li>
+<li id="GUID-301E0D0B-2010-56CF-8780-FBE322CD9FDA"><p>pass the animation object
+to the window server’s animation DLL, </p> </li>
+<li id="GUID-610C8A64-4BC6-5E59-8DC4-809B47328F02"><p>specify the number of
+times the animation should play, </p> </li>
+<li id="GUID-2384FF48-9281-5D4E-9298-D822B7566E52"><p>start and stop playing
+the animation. Optionally the animation can start playing from a particular
+frame. </p> </li>
+</ul> <p>Note that after the animation object has been set up and passed to
+the window server, the general attributes of the animation, namely the flash
+property, the default display time for each frame and the play mode can still
+be changed, using the following <codeph>RBitmapAnim</codeph> functions: </p> <ul>
+<li id="GUID-8DA50426-3BD1-5B8E-B8D7-B0D8F19409DF"><p> <codeph>SetFlashL()</codeph>, </p> </li>
+<li id="GUID-C237DFD6-427F-5953-AFB6-0AA64B0D97FE"><p> <codeph>SetFrameIntervalL()</codeph>, </p> </li>
+<li id="GUID-8020158F-10BA-554E-9088-E51CE00DBBC6"><p> <codeph>SetPlayModeL()</codeph>. </p> </li>
+</ul> <p>Any changes to these properties made using <codeph>RBitmapAnim</codeph> will
+override the values previously set in <codeph>CBitmapAnimClientData</codeph>. </p> <p><b>Constructing
+the animation player </b> </p> <p> <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref> is a handle
+to the server-side animation DLL. It is used to load the window server animation
+DLL, <filepath>bmpansrv.dll</filepath>, which provides the functions that
+perform the frames animation. The <codeph>RAnimDll</codeph> instance is passed
+to the <codeph>RBitmapAnim</codeph> constructor. </p> <codeblock id="GUID-04E123E6-306B-5C8B-9A0B-A415E6EBC74A" xml:space="preserve">RAnimDll animDLL(iEikonEnv-&gt;WsSession()); // session is used to interact with the window server
+_LIT(KDllName, "BMPANSRV.DLL"); 
+User::LeaveIfError(animDll.Load(KDllName)); 
+RBitmapAnim animPlayer(animDLL);
+animPlayer.ConstructL(Window());</codeblock> <p><b>Passing the animation object
+to the window server </b> </p> <p>The animation frame container (<codeph>CBitmapAnimClientData</codeph>)
+should be passed via the <codeph>RBitmapAnim</codeph> object to the window
+server. This is done using the function <codeph>SetBitmapAnimDataL()</codeph>.
+Note that calling this function does not cause the animation to start playing: </p> <codeblock id="GUID-F8CCC483-9B1F-58A4-AF93-E8E967A535B1" xml:space="preserve">animPlayer.SetBitmapAnimDataL(*animFrames);</codeblock> <p><b>Setting
+the number of cycles </b> </p> <p>If the animation should play more than once,
+the number of cycles should be set: </p> <codeblock id="GUID-549751F2-770E-54C4-8C78-7AFF633D9A4D" xml:space="preserve">animPlayer.SetNumberOfCyclesL(10);</codeblock> <p>Note that if the animation's play mode is 'bounce', the number of cycles
+must be set to at least two to ensure a complete animation routine. </p> <p><b>Setting
+the position </b> </p> <p>To set the animation’s position, use <codeph>SetPositionL()</codeph>.
+This value is an offset from the origin of the animation window. </p> <codeblock id="GUID-3F4E29C5-A456-5BFC-AA10-0A7E29EAAB97" xml:space="preserve">TPoint animPos(20,40);
+animPlayer.SetPositionL(animPos);</codeblock> <p><b>Starting/stopping the
+animation </b> </p> <p>The <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-E7C514C8-0335-3903-A997-C226170798C5"><apiname>RBitmapAnim::StartL()</apiname></xref> and <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-DD8AFC9D-E742-36E7-8816-37E61392DEDF"><apiname>RBitmapAnim::StopL()</apiname></xref> functions
+send commands to the animation DLL to start/stop the animation routine. </p> <p>Calling <xref href="GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48.dita#GUID-0282B941-2A58-3F3D-8875-DFBA72F46F48/GUID-1E2FCA51-21BF-3C21-8D96-753E27F277B1"><apiname>RBitmapAnim::DisplayFrameL()</apiname></xref> before
+the animation has started sets the frame from which the animation should start
+playing. </p> <p><b>Freeing resources </b> </p> <p>After they have been finished
+with, <codeph>Close()</codeph> should be called on the <codeph>RAnimDll</codeph> and <codeph>RBitmapAnim</codeph> objects. </p> <codeblock id="GUID-E7E87F97-9040-50F1-99F2-35AF517993E1" xml:space="preserve">animPlayer.Close();
+animDLL.Close();</codeblock> </section>
+<section id="GUID-CF40984F-2CA8-4EEE-98AD-C8F3E074407F"><title>See also</title> <ul>
+<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation Overview</xref></p></li>
+<li><p><xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Introduction
+to the Font and Bitmap Server</xref></p></li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-063020E5-51C0-45C3-8B8B-015385FA0928" xml:lang="en"><title>Redirect
-Printf Example</title><shortdesc>Redirect standard I/O to a file</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example illustrates how to redirect standard I/O to a file. The <codeph>libc</codeph> library
-provides <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref> API to redirect all standard IOs (namely
-- stderr, stdin or stdout). Application first prints launching information
-at the console and then opens one file to redirect standard output using <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref>.
-Calling <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref> once more, the user can change the filename
-during execution. This helps to redirect application <xref href="GUID-919E1C29-029A-38E2-B844-141A6E02ADA2.dita"><apiname>printf()</apiname></xref> messages
-into a log file. </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-16-1-3-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.zip" scope="external">redirectprintf.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-16-1-3-3"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example. </p> <p><b>Capabilities</b> </p>The program
-capabilities are defined in <filepath>redirectprintf.mmp</filepath> : <codeph>CAPABILITY
-NONE</codeph>. </section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-16-1-3-4"><title>Building and
-Using</title> To build the example application, go to the redirectprintf\group
-directory and build the application.  The definition for the whole application
-can be found in the bld.inf file in the group subdirectory of the applications
-main directory.<p>The application is simple console based application. It
-has its own default icon and can be launched from the UI both
-in the emulator and in the device.  The application can be launched by: Executing
-redirectprintf from eshell.  Clicking default icon with display text redirectprintf
-within the install folder launcher application. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-063020E5-51C0-45C3-8B8B-015385FA0928" xml:lang="en"><title>Redirect
+Printf Example</title><shortdesc>Redirect standard I/O to a file</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example illustrates how to redirect standard I/O to a file. The <codeph>libc</codeph> library
+provides <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref> API to redirect all standard IOs (namely
+- stderr, stdin or stdout). Application first prints launching information
+at the console and then opens one file to redirect standard output using <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref>.
+Calling <xref href="GUID-6A17B64B-44DC-33F0-B18A-25004500C831.dita"><apiname>freopen()</apiname></xref> once more, the user can change the filename
+during execution. This helps to redirect application <xref href="GUID-919E1C29-029A-38E2-B844-141A6E02ADA2.dita"><apiname>printf()</apiname></xref> messages
+into a log file. </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-15-1-3-2"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.zip" scope="external">redirectprintf.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-15-1-3-3"><title>Design and
+Implementation</title> <p>The following sections provide information about
+the implementation of the example. </p> <p><b>Capabilities</b> </p>The program
+capabilities are defined in <filepath>redirectprintf.mmp</filepath> : <codeph>CAPABILITY
+NONE</codeph>. </section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-15-1-3-4"><title>Building and
+Using</title> To build the example application, go to the redirectprintf\group
+directory and build the application.  The definition for the whole application
+can be found in the bld.inf file in the group subdirectory of the applications
+main directory.<p>The application is simple console based application. It
+has its own default icon and can be launched from the UI both
+in the emulator and in the device.  The application can be launched by: Executing
+redirectprintf from eshell.  Clicking default icon with display text redirectprintf
+within the install folder launcher application. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-3-1-1-7-1-8-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-3-1-1-7-1-8-1-4-1" xml:lang="en"><title>Embedded
-applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Embedded applications are required by the application architecture. These
-applications’ root controls should have a <i>z</i> -order that causes only
-the currently-active application to be displayed, and only that application
-to be able to receive pointer events.</p>
-<p>Additionally, only the currently active application — with its menu bar,
-active dialogs, and so on — should be able to process key events.</p>
-<p>The requirements of embedded applications are supported by stack-like behavior
-at each priority level within the controls maintained by the app UI.</p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-6-1-1-4-1-6-1-8-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-6-1-1-4-1-6-1-8-1-4-1" xml:lang="en"><title>Embedded
-applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Embedded applications are required by the application architecture. These
-applications’ root controls should have a <i>z</i> -order that causes only
-the currently-active application to be displayed, and only that application
-to be able to receive pointer events.</p>
-<p>Additionally, only the currently active application — with its menu bar,
-active dialogs, and so on — should be able to process key events.</p>
-<p>The requirements of embedded applications are supported by stack-like behavior
-at each priority level within the controls maintained by the app UI.</p>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC" xml:lang="en"><title>Embedded
+applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Embedded applications are required by the application architecture. These
+applications’ root controls should have a <i>z</i> -order that causes only
+the currently-active application to be displayed, and only that application
+to be able to receive pointer events.</p>
+<p>Additionally, only the currently active application — with its menu bar,
+active dialogs, and so on — should be able to process key events.</p>
+<p>The requirements of embedded applications are supported by stack-like behavior
+at each priority level within the controls maintained by the app UI.</p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,33 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-06730728-30C5-51FD-BD37-FB62F2958D28" xml:lang="en"><title>Calendar
-Conversion Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This topic describes date conversion between Gregorian and Chinese calendars. </p>
-<section><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-1d985cd3-8a52-41ae-b048-fdc92b4152a7.zip" scope="external">Calcon.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-1d985cd3-8a52-41ae-b048-fdc92b4152a7.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Architectural Relationships</title> <p>The <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> class
-is used to represent the Gregorian calendar date. The class <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> is
-used to represent the Chinese calendar date. <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref> is
-used for conversion in either direction between a Gregorian date and a Chinese
-date. </p> <p>The <codeph>CChineseCalendarConverter</codeph> interface is
-implemented by a separate plug-in, which is not provided by this component.
-If the plug-in is not available the interface returns an error. </p> </section>
-<section><title>Description</title> <p>The API consists of two calendar classes: <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> and <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref>, which converts between <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> and <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> formats
-in both directions. Chinese dates are calculated using the -2636 epoch. This
-is equivalent to 2637 BCE (Before Common Era). </p> </section>
-<section><title>Class summary</title> <ul>
-<li id="GUID-A8C05086-F2E1-5501-8261-36CA12C09B78"><p> <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref> </p> </li>
-<li id="GUID-ACAE410D-F7E9-51F8-A3AC-E739750307C4"><p> <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> </p> </li>
-<li id="GUID-D13CA6CB-B67C-5B8E-BD39-9D148424AB3A"><p> <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> </p> </li>
-<li id="GUID-A1DBD6FF-B548-5AC5-9B07-8BAADDC864A1"><p> <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-06730728-30C5-51FD-BD37-FB62F2958D28" xml:lang="en"><title>Calendar Conversion Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This topic describes date conversion between Gregorian and Chinese
+calendars. </p>
+<section id="GUID-E818CDBE-DCD5-4893-8CC9-8C123A6B0BD6"><title>Download</title> <p>Click on the following link to
+download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-1d985cd3-8a52-41ae-b048-fdc92b4152a7.zip" scope="external">Calcon.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-1d985cd3-8a52-41ae-b048-fdc92b4152a7.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-43D5CCC3-E22F-4FA2-93CE-E453FE476B2E"><title>Architectural Relationships</title> <p>The <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> class is used to represent the Gregorian calendar
+date. The class <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> is used to represent
+the Chinese calendar date. <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref> is used for conversion in either direction between a Gregorian date
+and a Chinese date. </p> <p>The <codeph>CChineseCalendarConverter</codeph> interface is implemented by a separate plug-in, which is not provided
+by this component. If the plug-in is not available the interface returns
+an error. </p> </section>
+<section id="GUID-D2ADF59A-2FA7-4A0E-BE6C-93D90D8B688C"><title>Description</title> <p>The API consists of two calendar
+classes: <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> and <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref>, which converts between <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> and <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> formats in both directions. Chinese dates
+are calculated using the -2636 epoch. This is equivalent to 2637 BCE
+(Before Common Era). </p> </section>
+<section id="GUID-B2E86B04-433D-4C98-9839-28B9AF6D1B2C"><title>Class summary</title> <ul>
+<li id="GUID-A8C05086-F2E1-5501-8261-36CA12C09B78"><p> <xref href="GUID-2F253853-79EB-316F-9E8D-D54AC6DDE06C.dita"><apiname>CChineseCalendarConverter</apiname></xref> </p> </li>
+<li id="GUID-ACAE410D-F7E9-51F8-A3AC-E739750307C4"><p> <xref href="GUID-BE7D196E-357B-36BE-80BB-CCBBE00DFA90.dita#GUID-BE7D196E-357B-36BE-80BB-CCBBE00DFA90/GUID-71BB17B0-A0A1-30BA-B1B5-B075E8320942"><apiname>ESock::TDateTime</apiname></xref> </p> </li>
+<li id="GUID-D13CA6CB-B67C-5B8E-BD39-9D148424AB3A"><p> <xref href="GUID-FD63BD10-1C14-39DF-8B3A-5D76C0DFAFDD.dita"><apiname>TChineseDate</apiname></xref> </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E"><title>Twip to Pixel Mapping</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides an introduction to two classes that embody the important GUI features of device independence and the ability to zoom. </p> <p>Two desirable facilities of a GUI are: </p> <ul><li id="GUID-BD40B76E-A127-5E3D-B166-8D875EA8DEA9"><p>device independence </p> </li> <li id="GUID-9440091B-CE23-568D-9A32-062A627A40C8"><p>zooming to reveal greater levels of detail or, conversely, more of a document </p> </li> </ul> <p>These two facilities are embodied in the two classes <codeph>MGraphicsDeviceMap</codeph> and <codeph>TZoomFactor</codeph>. </p> <p>Device independence is facilitated by storing drawings and text in device-independent form and then converting the device-independent units (twips) into device-dependent units (pixels) for different devices such as screens and printers. The conversion interface is <codeph>MGraphicsDeviceMap</codeph>, and it is implemented by graphics devices. </p> <p> <codeph>TZoomFactor</codeph> also implements this interface. It takes a mapping between twips and pixels, and then also applies a zooming factor: the larger the zooming factor, the more pixels per twip. The relationship between the classes is shown below: </p> <fig id="GUID-FE1CA913-3E44-506E-B8A6-253D169946F7"><image href="GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e206748_href.png" placement="inline"/></fig> <p>Note that <codeph>TZoomFactor</codeph> not only implements <codeph>MGraphicsDeviceMap</codeph> but also uses it. The point is that the <codeph>MGraphicsDeviceMap</codeph> -supporting object used can either be a graphics device, or another <codeph>TZoomFactor</codeph>. This allows zooming to be applied to an already zoomed mapping. </p> </conbody><related-links><link href="GUID-6AE2F937-69BB-5330-A2B5-44D37FA1DE16.dita"><linktext>Using TZoomFactor and
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E"><title>Twip to Pixel Mapping</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides an introduction to two classes that embody the important GUI features of device independence and the ability to zoom. </p> <p>Two desirable facilities of a GUI are: </p> <ul><li id="GUID-BD40B76E-A127-5E3D-B166-8D875EA8DEA9"><p>device independence </p> </li> <li id="GUID-9440091B-CE23-568D-9A32-062A627A40C8"><p>zooming to reveal greater levels of detail or, conversely, more of a document </p> </li> </ul> <p>These two facilities are embodied in the two classes <codeph>MGraphicsDeviceMap</codeph> and <codeph>TZoomFactor</codeph>. </p> <p>Device independence is facilitated by storing drawings and text in device-independent form and then converting the device-independent units (twips) into device-dependent units (pixels) for different devices such as screens and printers. The conversion interface is <codeph>MGraphicsDeviceMap</codeph>, and it is implemented by graphics devices. </p> <p> <codeph>TZoomFactor</codeph> also implements this interface. It takes a mapping between twips and pixels, and then also applies a zooming factor: the larger the zooming factor, the more pixels per twip. The relationship between the classes is shown below: </p> <fig id="GUID-FE1CA913-3E44-506E-B8A6-253D169946F7"><image href="GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e201740_href.png" placement="inline"/></fig> <p>Note that <codeph>TZoomFactor</codeph> not only implements <codeph>MGraphicsDeviceMap</codeph> but also uses it. The point is that the <codeph>MGraphicsDeviceMap</codeph> -supporting object used can either be a graphics device, or another <codeph>TZoomFactor</codeph>. This allows zooming to be applied to an already zoomed mapping. </p> </conbody><related-links><link href="GUID-6AE2F937-69BB-5330-A2B5-44D37FA1DE16.dita"><linktext>Using TZoomFactor and
                 MGraphicsDeviceMap</linktext> </link> <link href="GUID-1C3455BE-2082-504D-9157-88D8C72B1B80.dita"><linktext>Graphics Device Interface Concepts</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e58084_href.png has changed
Binary file Symbian3/SDK/Source/GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e61483_href.png has changed
--- a/Symbian3/SDK/Source/GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,48 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B"><title>Externalising a Swizzle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Typically, externalizing a Swizzle is a two stage process which involves:</p> <ul><li id="GUID-EB65444C-7693-53BB-B3B8-D072F80B0CFD"><p>externalizing the in-memory object which the Swizzle represents, to its own stream</p> </li> <li id="GUID-90A275E2-B9C2-5162-ADBA-1035102A93E1"><p>externalizing the resulting stream ID.</p> </li> </ul> <p>For example, given a container type object, <codeph>CClassABC</codeph>, with a data member <codeph>TSwizzle&lt;CClassB&gt; iB</codeph> representing a <codeph>CClassB</codeph> object in memory, the diagram below illustrates the result of storing the container object.</p> <fig id="GUID-E32084CE-13EE-5F32-A62E-A57C30768AE2"><image href="GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e363478_href.png" placement="inline"/></fig> <p>The following code fragments illustrates the process.</p> <p><codeph>iB</codeph> is a <codeph>CClassB</codeph> type component of a class <codeph>CClassABC</codeph>, and is represented by a Swizzle. The data member is defined as:</p> <codeblock id="GUID-9751293C-D5CD-5397-97F3-C0E5F4A877DF" xml:space="preserve">class CCClassABC : public CBase
-    {
-    ...
-    TSwizzle&lt;CClassB&gt; iB;
-    ...
-    }
-</codeblock> <p>Typically, a <codeph>CClassB</codeph> object is constructed and assigned to <codeph>iB</codeph>; this uses the Swizzle’s assignment operator:</p> <codeblock id="GUID-02F520BA-6A07-5E2B-97A9-191914623592" xml:space="preserve">iB = CClassB::NewL();</codeblock> <p>The Swizzle now represents the <codeph>CClassB</codeph> object by pointer.</p> <p>The <codeph>StoreL()</codeph> member function of <codeph>CClassABC</codeph> constructs a store map, an object of type <codeph>CStoreMap</codeph>, before calling <codeph>StoreComponentsL()</codeph> to externalise the swizzled <codeph>CClassB</codeph> object to its own stream.</p> <codeblock id="GUID-CDF0EC55-46A6-508A-8709-9B7108FCD0FE" xml:space="preserve">TStreamId CClassABC::StoreL() const
-    {
-    CStoreMap* map=CStoreMap::NewLC(iStore);
-       StoreComponentsL(*map);
- 
-       RStoreWriteStream stream(*map);
-       TStreamId id=stream.CreateLC(iStore);
-       ExternalizeL(stream);
-       stream.CommitL();
-
-       map-&gt;Reset();
-       CleanupStack::PopAndDestroy(2);
-       return id;
-       }</codeblock> <p>The variable <codeph>iStore</codeph> is a member of <codeph>CClassABC</codeph> containing a reference to the store.</p> <p><codeph>StoreComponentsL()</codeph> externalises the swizzled <codeph>CClassB</codeph> object by calling <codeph>CClassB</codeph> ’s own <codeph>StoreL()</codeph> member function which constructs a stream, externalises itself to the stream and returns the ID of that stream:</p> <codeblock id="GUID-79BAEB04-48E0-5741-AD12-7D7D85728FBE" xml:space="preserve">void CClassABC::StoreComponentsL(CStoreMap&amp; aMap) const
-          {
-          ...
-          TStreamId id;
-          if (iB)
-                {
-                id = iB-&gt;StoreL(iStore); // Id of the CClassB stream 
-                aMap.BindL(iB,id);
-                }
-          ...
-          }</codeblock> <p>The Swizzle must represent the <codeph>CClassB</codeph> type object as a pointer, i.e. the swizzled object must be in memory. The <codeph>operator-&gt;</codeph> applied to the Swizzle <codeph>iB</codeph> gives access to the <codeph>StoreL()</codeph> member function of the <codeph>CClassB</codeph> object.</p> <p>The condition <codeph>if (iB)</codeph> is equivalent to <codeph>if
-        (iB.IsPtr())</codeph> and returns true only if the Swizzle represents the <codeph>CClassB</codeph> object as a pointer . The act of externalizing the <codeph>CClassB</codeph> object, does not, and need not change the way that the Swizzle represents that object. Here, the <codeph>CClassB</codeph> object remains in memory and the Swizzle maintains its representation of it as a pointer, even after it has been externalised.</p> <p>The Stream ID of the externalised <codeph>CClassB</codeph> object is stored in the store map along with the associated Swizzle using <codeph>CStoreMap</codeph> ’s <codeph>BindL()</codeph> member function .The store map is used again later when the stream ID is externalised as part of <codeph>CClassABC</codeph> ’s data.</p> <p>The <codeph>ExternalizeL()</codeph> member function of <codeph>CClassABC</codeph> externalises <codeph>CClassABC</codeph>'s member data. This includes the stream ID of the externalised <codeph>CClassB</codeph> object which is externalised by applying the templated stream <codeph>operator&lt;&lt;</codeph> to the Swizzle <codeph>iB</codeph>.</p> <codeblock id="GUID-8F144C77-D4CE-58BD-8155-65BCCFA31DA2" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
-    {
-    ...
-    aStream &lt;&lt; iB
-    ...
-    }
-</codeblock> <p>At this point, the Swizzle still represents the <codeph>CClassB</codeph> object as a pointer, and the object itself is still in memory.</p> <p>The mechanism underlying the implementation of the stream <codeph>operator&lt;&lt;</codeph>, assumes that the stream ID associated with the Swizzle has been placed in the store map. It also assumes that the <codeph>RStoreWriteStream</codeph> object has been constructed, specifying the store map as an externalizer.</p> <p>The end result of the operation <codeph>aStream &lt;&lt; iB;</codeph>, is to externalise, to the stream, the stream ID associated with the Swizzle <codeph>iB</codeph>. The following diagram shows this:</p> <fig id="GUID-0958AA91-661B-54EA-B540-067DB933169D"><image href="GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e363662_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B"><title>Externalising a Swizzle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Typically, externalizing a Swizzle is a two stage process which involves:</p> <ul><li id="GUID-EB65444C-7693-53BB-B3B8-D072F80B0CFD"><p>externalizing the in-memory object which the Swizzle represents, to its own stream</p> </li> <li id="GUID-90A275E2-B9C2-5162-ADBA-1035102A93E1"><p>externalizing the resulting stream ID.</p> </li> </ul> <p>For example, given a container type object, <codeph>CClassABC</codeph>, with a data member <codeph>TSwizzle&lt;CClassB&gt; iB</codeph> representing a <codeph>CClassB</codeph> object in memory, the diagram below illustrates the result of storing the container object.</p> <fig id="GUID-E32084CE-13EE-5F32-A62E-A57C30768AE2"><image href="GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e357398_href.png" placement="inline"/></fig> <p>The following code fragments illustrates the process.</p> <p><codeph>iB</codeph> is a <codeph>CClassB</codeph> type component of a class <codeph>CClassABC</codeph>, and is represented by a Swizzle. The data member is defined as:</p> <codeblock id="GUID-9751293C-D5CD-5397-97F3-C0E5F4A877DF" xml:space="preserve">class CCClassABC : public CBase
+    {
+    ...
+    TSwizzle&lt;CClassB&gt; iB;
+    ...
+    }
+</codeblock> <p>Typically, a <codeph>CClassB</codeph> object is constructed and assigned to <codeph>iB</codeph>; this uses the Swizzle’s assignment operator:</p> <codeblock id="GUID-02F520BA-6A07-5E2B-97A9-191914623592" xml:space="preserve">iB = CClassB::NewL();</codeblock> <p>The Swizzle now represents the <codeph>CClassB</codeph> object by pointer.</p> <p>The <codeph>StoreL()</codeph> member function of <codeph>CClassABC</codeph> constructs a store map, an object of type <codeph>CStoreMap</codeph>, before calling <codeph>StoreComponentsL()</codeph> to externalise the swizzled <codeph>CClassB</codeph> object to its own stream.</p> <codeblock id="GUID-CDF0EC55-46A6-508A-8709-9B7108FCD0FE" xml:space="preserve">TStreamId CClassABC::StoreL() const
+    {
+    CStoreMap* map=CStoreMap::NewLC(iStore);
+       StoreComponentsL(*map);
+ 
+       RStoreWriteStream stream(*map);
+       TStreamId id=stream.CreateLC(iStore);
+       ExternalizeL(stream);
+       stream.CommitL();
+
+       map-&gt;Reset();
+       CleanupStack::PopAndDestroy(2);
+       return id;
+       }</codeblock> <p>The variable <codeph>iStore</codeph> is a member of <codeph>CClassABC</codeph> containing a reference to the store.</p> <p><codeph>StoreComponentsL()</codeph> externalises the swizzled <codeph>CClassB</codeph> object by calling <codeph>CClassB</codeph> ’s own <codeph>StoreL()</codeph> member function which constructs a stream, externalises itself to the stream and returns the ID of that stream:</p> <codeblock id="GUID-79BAEB04-48E0-5741-AD12-7D7D85728FBE" xml:space="preserve">void CClassABC::StoreComponentsL(CStoreMap&amp; aMap) const
+          {
+          ...
+          TStreamId id;
+          if (iB)
+                {
+                id = iB-&gt;StoreL(iStore); // Id of the CClassB stream 
+                aMap.BindL(iB,id);
+                }
+          ...
+          }</codeblock> <p>The Swizzle must represent the <codeph>CClassB</codeph> type object as a pointer, i.e. the swizzled object must be in memory. The <codeph>operator-&gt;</codeph> applied to the Swizzle <codeph>iB</codeph> gives access to the <codeph>StoreL()</codeph> member function of the <codeph>CClassB</codeph> object.</p> <p>The condition <codeph>if (iB)</codeph> is equivalent to <codeph>if
+        (iB.IsPtr())</codeph> and returns true only if the Swizzle represents the <codeph>CClassB</codeph> object as a pointer . The act of externalizing the <codeph>CClassB</codeph> object, does not, and need not change the way that the Swizzle represents that object. Here, the <codeph>CClassB</codeph> object remains in memory and the Swizzle maintains its representation of it as a pointer, even after it has been externalised.</p> <p>The Stream ID of the externalised <codeph>CClassB</codeph> object is stored in the store map along with the associated Swizzle using <codeph>CStoreMap</codeph> ’s <codeph>BindL()</codeph> member function .The store map is used again later when the stream ID is externalised as part of <codeph>CClassABC</codeph> ’s data.</p> <p>The <codeph>ExternalizeL()</codeph> member function of <codeph>CClassABC</codeph> externalises <codeph>CClassABC</codeph>'s member data. This includes the stream ID of the externalised <codeph>CClassB</codeph> object which is externalised by applying the templated stream <codeph>operator&lt;&lt;</codeph> to the Swizzle <codeph>iB</codeph>.</p> <codeblock id="GUID-8F144C77-D4CE-58BD-8155-65BCCFA31DA2" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
+    {
+    ...
+    aStream &lt;&lt; iB
+    ...
+    }
+</codeblock> <p>At this point, the Swizzle still represents the <codeph>CClassB</codeph> object as a pointer, and the object itself is still in memory.</p> <p>The mechanism underlying the implementation of the stream <codeph>operator&lt;&lt;</codeph>, assumes that the stream ID associated with the Swizzle has been placed in the store map. It also assumes that the <codeph>RStoreWriteStream</codeph> object has been constructed, specifying the store map as an externalizer.</p> <p>The end result of the operation <codeph>aStream &lt;&lt; iB;</codeph>, is to externalise, to the stream, the stream ID associated with the Swizzle <codeph>iB</codeph>. The following diagram shows this:</p> <fig id="GUID-0958AA91-661B-54EA-B540-067DB933169D"><image href="GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e357582_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-07A42662-87A1-4537-89B9-F87DFC8481E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-07A42662-87A1-4537-89B9-F87DFC8481E8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-07A42662-87A1-4537-89B9-F87DFC8481E8" xml:lang="en"><title>Signal
-and battery indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The top-left area of the screen is used for the cellular signal strength
-indicator, and the corresponding top-right area for the battery level indicator.</p>
-<fig id="GUID-DF681F66-0CB3-4D53-A853-6BA9DF1D4BA2">
-<title>Signal and battery indicators on the sides of the status pane. Other
-status indicators are visible below the Navi pane.</title>
-<image href="GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e58503_href.png" placement="inline"/>
-</fig>
-<p>The signal indicator is a part of the Status pane, and it is displayed
-in all states where the Status pane exists. Indicators consist of a bar graph
-that indicates the current battery or signal level and an icon that describes
-battery or in signal indicator connected cellular network and its connection
-state.</p>
-<section id="GUID-2485FBC3-0722-47FF-8998-8FC015A4F4B8"><title>Using
-signal and battery indicators in C++ applications</title><p>The
-signal and battery indicators are not accessible to applications.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-07A42662-87A1-4537-89B9-F87DFC8481E8" xml:lang="en"><title>Signal
+and battery indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The top-left area of the screen is used for the cellular signal strength
+indicator, and the corresponding top-right area for the battery level indicator.</p>
+<fig id="GUID-DF681F66-0CB3-4D53-A853-6BA9DF1D4BA2">
+<title>Signal and battery indicators on the sides of the status pane.</title>
+<image href="GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e52568_href.png" placement="inline"/>
+</fig>
+<p>The signal indicator is a part of the Status pane, and it is displayed
+in all states where the Status pane exists. Indicators consist of a bar graph
+that indicates the current battery or signal level and an icon that describes
+battery or in signal indicator connected cellular network and its connection
+state.</p>
+<section id="GUID-2485FBC3-0722-47FF-8998-8FC015A4F4B8"><title>Using
+signal and battery indicators in applications</title><p>The signal and battery
+indicators are not accessible to applications.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e323166_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e329323_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,144 +1,144 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955" xml:lang="en"><title>Implementing
-framework requirements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-0BBC3D60-0EF0-4446-A1A5-CF84A4728C72"><title>Application Menu</title><image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e42175_href.png"/></fig>
-<p>In the Symbian platform, mobile device users start applications from
-the application menu. When the mobile device user selects an application,
-the application framework calls the application's entry point to launch the
-application. In some cases, applications can also be started by other executables.</p>
-<fig id="GUID-5A76CBEA-8AF3-4F68-B2FB-9F402D748DF3"><title>Application launch</title><image href="GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e42183_href.png"/></fig>
-<p>When an application starts, objects are created in the following order:</p>
-<ol>
-<li id="GUID-BC07E865-8B42-4654-90F9-4644B202EDBC"><p>application
-(<xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref>)</p></li>
-<li id="GUID-0B6D8737-8FC7-486B-B3ED-6F91CFA69670"><p>document (<xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>)</p>
-</li>
-<li id="GUID-FAAD10CF-2F0F-4589-B2B8-A2A8A3696CA5"><p>UI controller
-(<xref href="GUID-6F2BAB12-6273-3314-B9F1-9AA08403F5EF.dita"><apiname>CAknAppUI</apiname></xref> or <xref href="GUID-9CB85702-5D4F-371E-99D0-F6030DC86539.dita"><apiname>CAknAppViewUI</apiname></xref> depending
-upon your approach)</p></li>
-<li id="GUID-ED56D892-18C4-447C-A7AB-811E1D90C2DA"><p>view controller
-(<xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>) in <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
-view applications</xref></p></li>
-<li id="GUID-5BFF07E4-6575-4B23-9FA5-824DB057A55C"><p>view (<xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>)</p>
-</li>
-</ol>
-<section id="GUID-B8AA011F-23EB-4BA5-9FA6-1382D37E13A9"><title>Entry point</title>
-<p>The two methods that you need to implement for the entry point are as
-follows:</p>
-<ul>
-<li><p>an entry point for the application, with the following syntax:</p>
-<itemgroup>
-<codeblock id="GUID-F09C226F-B1D6-4435-8983-7DD62D1BBD26" xml:space="preserve">GLDEF_C TInt E32Main()
-    {
-    return EikStart::RunApplication( NewApplication );
-    }</codeblock>
-<p>where:</p>
-<p><parmname>E32Main()</parmname> is the entry point method called by the
-application framework</p>
-<p><parmname>return EikStart::RunApplication(NewApplication )</parmname> calls<xref href="GUID-E5533B10-D01F-3133-8E74-28071766885B.dita#GUID-E5533B10-D01F-3133-8E74-28071766885B/GUID-275C4B9B-53BD-38C5-8C8E-05D480358836"><apiname> EikStart::RunApplication()</apiname></xref></p>
-</itemgroup>
-</li>
-<li><p>a non-leaving factory method that creates a new instance
-of the application class, or <parmname>NULL</parmname> if the class cannot
-be instantiated. The expected syntax is as follows:</p>
-<itemgroup>
-<codeblock id="GUID-D1F8BE18-84A5-4F32-9BC8-D5458455492A" xml:space="preserve">LOCAL_C CApaApplication* NewApplication()
-    {
-    return new CMyAppClass;
-    }</codeblock>
-<p>where:</p>
-<p><parmname>NewApplication()</parmname> is a method that returns a pointer
-to a <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> object.</p>
-<p><parmname>return new CMyAppClass</parmname> returns an instance of the
-application class as created by the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> derived
-class</p>
-<p>The application framework expects the factory method to have exactly
-this prototype. In other words, the factory function should be like the above
-code fragment.</p>
-</itemgroup>
-</li>
-</ul>
-</section>
-<section id="GUID-63C94373-F55D-4B58-9637-7BA0E1B14ACF"><title>CAknApplication</title>
-<p>You must implement at least the following two methods in your <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> derived
-class:</p>
-<ul>
-<li><p>a method that returns the application UID. The syntax is
-as follows:</p>
-<codeblock id="GUID-77921F31-5A36-4A6B-AD2C-E9364A50E0F6" xml:space="preserve">TUid CMyAppClass::AppDllUid() const
-    {
-    return KUidMyApp;
-    }</codeblock>
-<p>where:</p>
-<itemgroup>
-<p><xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita#GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7/GUID-669C19DC-04C9-3979-A87E-8F9EFA8E4D99"><apiname>CApaApplication::AppDllUid()</apiname></xref> is used to get the application
-UID</p>
-<p><parmname>KUidMyApp</parmname> is the UID for your application, which
-is typically declared in an application header file.</p>
-</itemgroup>
-<p>The application framework calls the <parmname>AppDllUid()</parmname> method
-to get the application UID. The application framework checks to see if there
-is an instance of the application with the same UID already running. If so,
-then the application framework switches to the already existing application. </p>
-<note>
-<p>You must return the same UID that you declared for the UID3 in the <xref href="GUID-1F7E1476-D7A3-49E4-B05B-F3A0FD6333B6.dita"><parmname>mmp</parmname></xref> and <xref href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita">registration</xref> files.</p>
-</note>
-</li>
-<li><p>a factory function for creating an object of the document
-class for your application. The expected syntax is as follows:</p>
-<codeblock id="GUID-C56EAA45-A671-47D6-8FE6-492B154813BF" xml:space="preserve">CApaDocument* CMyAppClass::CreateDocumentL()
-    {
-    return CMyAppDocument::NewL( *this );
-    }
-</codeblock>
-<p>where:</p>
-<itemgroup>
-<p><xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita#GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9/GUID-D0810109-8F11-3B65-8806-9A61317D2128"><apiname>CEikApplication::CreateDocumentL()</apiname></xref> is called by the
-application framework.</p>
-<p> <parmname>return CMyAppDocument::NewL( *this )</parmname> returns an
-instance of the <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class of your application.
-It represents the data that relates to a particular instance of the application
-and owns the application <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
-controller</xref>.</p>
-</itemgroup>
-</li>
-</ul>
-<note>
-<p>The application framework owns the document object and is responsible
-for destroying it.</p>
-</note>
-</section>
-<section id="GUID-73A8D2EE-F22A-483D-A23A-5E46D709A718"><title>CAknDocument</title>
-<p>You must implement a <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class for
-your application, even if you do not store data, as this is the class that
-owns the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref> for
-your application. The expected syntax for creating the UI controller class
-is as follows:</p>
-<codeblock id="GUID-C016DB83-2B28-4DEC-8027-A9291E380191" xml:space="preserve">CEikAppUi* CMyAppDocument::CreateAppUiL()
-    {
-    return new ( ELeave ) CMyAppAppUi;
-    }</codeblock>
-<p>where:</p>
-<ul>
-<li><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita#GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB/GUID-37544F28-FD9A-3E11-96B8-7DA8BC84CC59"><apiname>CEikDocument::CreateAppUiL()</apiname></xref> carries out
-the first phase construction of the UI controller</p></li>
-<li><p><parmname>new ( ELeave ) CMyAppAppUi </parmname> is a method
-that creates an instance of the UI controller class of your application</p>
-</li>
-</ul>
-<p>The application framework owns the UI controller object of the application
-and is responsible for destroying it. There are two alternate classes from
-which you can derive your UI controller class, <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref> or <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>.</p>
-<p>For more information on the UI controller options, see <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref></p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955" xml:lang="en"><title>Implementing
+framework requirements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-0BBC3D60-0EF0-4446-A1A5-CF84A4728C72"><title>Application Menu</title><image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e36608_href.png"/></fig>
+<p>In the Symbian platform, mobile device users start applications from
+the application menu. When the mobile device user selects an application,
+the application framework calls the application's entry point to launch the
+application. In some cases, applications can also be started by other executables.</p>
+<fig id="GUID-5A76CBEA-8AF3-4F68-B2FB-9F402D748DF3"><title>Application launch</title><image href="GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e36616_href.png"/></fig>
+<p>When an application starts, objects are created in the following order:</p>
+<ol>
+<li id="GUID-BC07E865-8B42-4654-90F9-4644B202EDBC"><p>application
+(<xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref>)</p></li>
+<li id="GUID-0B6D8737-8FC7-486B-B3ED-6F91CFA69670"><p>document (<xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>)</p>
+</li>
+<li id="GUID-FAAD10CF-2F0F-4589-B2B8-A2A8A3696CA5"><p>UI controller
+(<xref href="GUID-6F2BAB12-6273-3314-B9F1-9AA08403F5EF.dita"><apiname>CAknAppUI</apiname></xref> or <xref href="GUID-9CB85702-5D4F-371E-99D0-F6030DC86539.dita"><apiname>CAknAppViewUI</apiname></xref> depending
+upon your approach)</p></li>
+<li id="GUID-ED56D892-18C4-447C-A7AB-811E1D90C2DA"><p>view controller
+(<xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>) in <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
+view applications</xref></p></li>
+<li id="GUID-5BFF07E4-6575-4B23-9FA5-824DB057A55C"><p>view (<xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>)</p>
+</li>
+</ol>
+<section id="GUID-B8AA011F-23EB-4BA5-9FA6-1382D37E13A9"><title>Entry point</title>
+<p>The two methods that you need to implement for the entry point are as
+follows:</p>
+<ul>
+<li><p>an entry point for the application, with the following syntax:</p>
+<itemgroup>
+<codeblock id="GUID-F09C226F-B1D6-4435-8983-7DD62D1BBD26" xml:space="preserve">GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication( NewApplication );
+    }</codeblock>
+<p>where:</p>
+<p><parmname>E32Main()</parmname> is the entry point method called by the
+application framework</p>
+<p><parmname>return EikStart::RunApplication(NewApplication )</parmname> calls<xref href="GUID-E5533B10-D01F-3133-8E74-28071766885B.dita#GUID-E5533B10-D01F-3133-8E74-28071766885B/GUID-275C4B9B-53BD-38C5-8C8E-05D480358836"><apiname> EikStart::RunApplication()</apiname></xref></p>
+</itemgroup>
+</li>
+<li><p>a non-leaving factory method that creates a new instance
+of the application class, or <parmname>NULL</parmname> if the class cannot
+be instantiated. The expected syntax is as follows:</p>
+<itemgroup>
+<codeblock id="GUID-D1F8BE18-84A5-4F32-9BC8-D5458455492A" xml:space="preserve">LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CMyAppClass;
+    }</codeblock>
+<p>where:</p>
+<p><parmname>NewApplication()</parmname> is a method that returns a pointer
+to a <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> object.</p>
+<p><parmname>return new CMyAppClass</parmname> returns an instance of the
+application class as created by the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> derived
+class</p>
+<p>The application framework expects the factory method to have exactly
+this prototype. In other words, the factory function should be like the above
+code fragment.</p>
+</itemgroup>
+</li>
+</ul>
+</section>
+<section id="GUID-63C94373-F55D-4B58-9637-7BA0E1B14ACF"><title>CAknApplication</title>
+<p>You must implement at least the following two methods in your <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> derived
+class:</p>
+<ul>
+<li><p>a method that returns the application UID. The syntax is
+as follows:</p>
+<codeblock id="GUID-77921F31-5A36-4A6B-AD2C-E9364A50E0F6" xml:space="preserve">TUid CMyAppClass::AppDllUid() const
+    {
+    return KUidMyApp;
+    }</codeblock>
+<p>where:</p>
+<itemgroup>
+<p><xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita#GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7/GUID-669C19DC-04C9-3979-A87E-8F9EFA8E4D99"><apiname>CApaApplication::AppDllUid()</apiname></xref> is used to get the application
+UID</p>
+<p><parmname>KUidMyApp</parmname> is the UID for your application, which
+is typically declared in an application header file.</p>
+</itemgroup>
+<p>The application framework calls the <parmname>AppDllUid()</parmname> method
+to get the application UID. The application framework checks to see if there
+is an instance of the application with the same UID already running. If so,
+then the application framework switches to the already existing application. </p>
+<note>
+<p>You must return the same UID that you declared for the UID3 in the <xref href="GUID-1F7E1476-D7A3-49E4-B05B-F3A0FD6333B6.dita"><parmname>mmp</parmname></xref> and <xref href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita">registration</xref> files.</p>
+</note>
+</li>
+<li><p>a factory function for creating an object of the document
+class for your application. The expected syntax is as follows:</p>
+<codeblock id="GUID-C56EAA45-A671-47D6-8FE6-492B154813BF" xml:space="preserve">CApaDocument* CMyAppClass::CreateDocumentL()
+    {
+    return CMyAppDocument::NewL( *this );
+    }
+</codeblock>
+<p>where:</p>
+<itemgroup>
+<p><xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita#GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9/GUID-D0810109-8F11-3B65-8806-9A61317D2128"><apiname>CEikApplication::CreateDocumentL()</apiname></xref> is called by the
+application framework.</p>
+<p> <parmname>return CMyAppDocument::NewL( *this )</parmname> returns an
+instance of the <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class of your application.
+It represents the data that relates to a particular instance of the application
+and owns the application <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
+controller</xref>.</p>
+</itemgroup>
+</li>
+</ul>
+<note>
+<p>The application framework owns the document object and is responsible
+for destroying it.</p>
+</note>
+</section>
+<section id="GUID-73A8D2EE-F22A-483D-A23A-5E46D709A718"><title>CAknDocument</title>
+<p>You must implement a <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class for
+your application, even if you do not store data, as this is the class that
+owns the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref> for
+your application. The expected syntax for creating the UI controller class
+is as follows:</p>
+<codeblock id="GUID-C016DB83-2B28-4DEC-8027-A9291E380191" xml:space="preserve">CEikAppUi* CMyAppDocument::CreateAppUiL()
+    {
+    return new ( ELeave ) CMyAppAppUi;
+    }</codeblock>
+<p>where:</p>
+<ul>
+<li><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita#GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB/GUID-37544F28-FD9A-3E11-96B8-7DA8BC84CC59"><apiname>CEikDocument::CreateAppUiL()</apiname></xref> carries out
+the first phase construction of the UI controller</p></li>
+<li><p><parmname>new ( ELeave ) CMyAppAppUi </parmname> is a method
+that creates an instance of the UI controller class of your application</p>
+</li>
+</ul>
+<p>The application framework owns the UI controller object of the application
+and is responsible for destroying it. There are two alternate classes from
+which you can derive your UI controller class, <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref> or <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>.</p>
+<p>For more information on the UI controller options, see <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref></p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e240067_href.png has changed
Binary file Symbian3/SDK/Source/GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e243804_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e11707_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e12976_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,152 +1,154 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F" xml:lang="en"><title>Selection
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A selection list is a common means of displaying and accessing data in
-applications. When a selection list is displayed, the application is typically
-in a permanent state, which means that the user can leave the application,
-open another application, and later return to the same state. Selection lists
-are displayed in the main pane.</p>
-<p>Typically, the user can open items in a selection list, leading into another,
-more detailed view of the item within the application. In addition to browsing
-and selecting items, other functions are available in the Options menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref>).</p>
-<p>The usage of the Selection key in selection lists deserves special attention.
-Depending on the case, it can do the following actions:</p>
-<ul>
-<li><p>Selects the item in focus. This should happen whenever it is assumed
-that it is clear to the user what happens. Selecting can mean:</p><ul>
-<li><p>Opening an item, such as a folder or a date in Calendar, leading to
-a detailed view.</p></li>
-<li><p>Executing a command when the focused item is a command.</p></li>
-</ul></li>
-<li><p>Opens the context sensitive Options menu. This should only happen when
-the user cannot be assumed to know what happens if the Selection key is pressed.
-The menu should contain only high-priority options associated with the item
-in focus, not general items such as Settings, Help, or Exit. The maximum amount
-of options in the context sensitive Options menu is four.</p></li>
-</ul>
-<p>The two types of Selection key actions should not be mixed within one list;
-one or the other should happen for every item in the list.</p>
-<fig id="GUID-010C51B9-5D2A-4DD5-A1DA-67A30CD132FD">
-<title>Select action opens a view</title>
-<image href="GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e61475_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-5DD10CF4-6E68-4C81-81D8-1CA45CD674C4">
-<title>Select action performs a command</title>
-<image href="GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e61483_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-B8275C0A-50B9-4A48-AC20-8E2B84F23F8B">
-<title>Context sensitive Options menu opened with the Selection key</title>
-<image href="GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e61491_href.png" placement="inline"/>
-</fig>
-<p>The keypad functions for selection lists are as follows:</p>
-<table id="GUID-2AF81DA9-8C20-47AE-87DE-8252CC1DAF59"><title>Default key events
-in selection list</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p>Arrow up / down</p></entry>
-<entry><p>Moves the focus in the list.</p></entry>
-</row>
-<row>
-<entry><p>Arrow left / right</p></entry>
-<entry><p>May be ignored, or may have navigation functions associated with
-them (see <xref href="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita">Navigation</xref>).</p></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><p>Selects the item; see the discussion above.</p></entry>
-</row>
-<row>
-<entry><p>Left softkey (Options)</p></entry>
-<entry><p>Opens the Options menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options
-menu</xref>).</p></entry>
-</row>
-<row>
-<entry><p>Right softkey (Back; Exit)</p></entry>
-<entry><p>Back stepping (see<xref href="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita">Navigation</xref>).</p></entry>
-</row>
-<row>
-<entry><p>Clear</p></entry>
-<entry><p>Deletes the item if it can be deleted (confirmation from the user
-is required); otherwise ignored.</p></entry>
-</row>
-<row>
-<entry><p>Edit</p></entry>
-<entry><p>Ignored, or a marking function if the list is markable (see <xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable list</xref>).</p></entry>
-</row>
-<row>
-<entry><p>Numeric keypad</p></entry>
-<entry><p>May be ignored, or may have specific functions within the state.</p></entry>
-</row>
-<row>
-<entry><p>Other keys</p></entry>
-<entry><p>Do the default action of the key.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<p>The following table lists the default touch events for selection list:</p>
-<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-8-1-6-1-1-5-1-11-1-1-4-1-2-13"><title>Default touch
-events for Selection list.</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Item is activated.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Stylus pop-up menu is opened.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect is provided with
-hold event. Pop-up effect is provided when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch event combinations, refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-4149CCA2-D8FE-4393-8D82-A736EF5337C5">
-<title>Selection lists </title>
-<image href="GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e61742_href.png" placement="inline"/>
-</fig>
-<section id="GUID-FA4ACC82-0080-429B-A155-433F175138A6"><title>Using
-selection lists in C++ applications</title><p>The API to use for selection
-lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information,
-see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F" xml:lang="en"><title>Selection
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A selection list is a common means of displaying and accessing data in
+applications. When a selection list is displayed, the application is typically
+in a permanent state, which means that the user can leave the application,
+open another application, and later return to the same state. Selection lists
+are displayed in the main pane.</p>
+<p>Typically, the user can open items in a selection list, leading into another,
+more detailed view of the item within the application. In addition to browsing
+and selecting items, other functions are available in the Options menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref>).</p>
+<p>The usage of the Selection key in selection lists deserves special attention.
+Depending on the case, it can do the following actions:</p>
+<ul>
+<li><p>Selects the item in focus. This should happen whenever it is assumed
+that it is clear to the user what happens. Selecting can mean:</p><ul>
+<li><p>Opening an item, such as a folder or a date in Calendar, leading to
+a detailed view.</p></li>
+<li><p>Executing a command when the focused item is a command.</p></li>
+</ul></li>
+<li><p>Opens the context sensitive Options menu. This should only happen when
+the user cannot be assumed to know what happens if the Selection key is pressed.
+The menu should contain only high-priority options associated with the item
+in focus, not general items such as Settings, Help, or Exit. The maximum amount
+of options in the context sensitive Options menu is four.</p></li>
+</ul>
+<p>The two types of Selection key actions should not be mixed within one list;
+one or the other should happen for every item in the list.</p>
+<fig id="GUID-010C51B9-5D2A-4DD5-A1DA-67A30CD132FD">
+<title>Select action opens a view</title>
+<image href="GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e58076_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-5DD10CF4-6E68-4C81-81D8-1CA45CD674C4">
+<title>Select action performs a command</title>
+<image href="GUID-06B287CD-C19A-4CAC-8378-5563C552448B_d0e58084_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-B8275C0A-50B9-4A48-AC20-8E2B84F23F8B">
+<title>Context sensitive Options menu opened with the Selection key</title>
+<image href="GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e58092_href.png" placement="inline"/>
+</fig>
+<p>The keypad functions for selection lists are as follows:</p>
+<table id="GUID-2AF81DA9-8C20-47AE-87DE-8252CC1DAF59"><title>Default key events
+in selection list</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry valign="top"><p>Key events</p></entry>
+<entry valign="top"><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Arrow up / Arrow down</p></entry>
+<entry><p>Moves up or down to next visible item in a list.</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / Arrow right</p></entry>
+<entry><p>May be ignored, or may have navigation functions associated with
+them (see <xref href="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita">Navigation</xref>).</p></entry>
+</row>
+<row>
+<entry><p>Selection key</p></entry>
+<entry><p>Selects the item; see the discussion above.</p></entry>
+</row>
+<row>
+<entry><p>Left softkey (Options)</p></entry>
+<entry><p>Opens the Options menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options
+menu</xref>).</p></entry>
+</row>
+<row>
+<entry><p>Right softkey (Back; Exit)</p></entry>
+<entry><p>Back stepping (see<xref href="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita">Navigation</xref>).</p></entry>
+</row>
+<row>
+<entry><p>Clear</p></entry>
+<entry><p>Deletes the item if it can be deleted (confirmation from the user
+is required); otherwise ignored.</p></entry>
+</row>
+<row>
+<entry><p>Edit</p></entry>
+<entry><p>Ignored, or a marking function if the list is markable (see <xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable list</xref>).</p></entry>
+</row>
+<row>
+<entry><p>Numeric keypad</p></entry>
+<entry><p>May be ignored, or may have specific functions within the state.</p></entry>
+</row>
+<row>
+<entry><p>Other keys</p></entry>
+<entry><p>Do the default action of the key.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<p>The following table lists the default touch events for selection list:</p>
+<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-10-1-6-1-1-5-1-8-1-1-9-1-10-1-2-13"><title>Default touch
+events for Selection list.</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Item is activated.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Stylus pop-up menu is opened.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect is provided with
+hold event. Pop-up effect is provided when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch event combinations, refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-4149CCA2-D8FE-4393-8D82-A736EF5337C5">
+<title>Selection lists </title>
+<image href="GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e58353_href.png" placement="inline"/>
+</fig>
+<section id="GUID-FA4ACC82-0080-429B-A155-433F175138A6"><title>Using
+selection lists in applications</title><p>The API to use for selection lists
+is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e220093_href.png has changed
Binary file Symbian3/SDK/Source/GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e223830_href.png has changed
Binary file Symbian3/SDK/Source/GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e117574_href.png has changed
Binary file Symbian3/SDK/Source/GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e124112_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08937880-C381-4C8B-AC17-7162C1243E23_d0e68807_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406599_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406761_href.png has changed
--- a/Symbian3/SDK/Source/GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,65 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937" xml:lang="en"><title>Main
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The main pane is the main area of the screen where an application can display
-its data.</p>
-<p>There are a number of standard components for applications to use in the
-main pane as listed in the following table:</p>
-<table id="GUID-72C9D280-C5DB-4BD8-ACA5-B4D0BCAE8EDA"><title>Standard components
-for applications to use in main pane</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.34*"/><colspec colname="col2" colwidth="1.66*"/>
-<thead>
-<row>
-<entry>Pane</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>List</p></entry>
-<entry><p>There are several standard list types to choose from (see <xref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita">Lists and grids</xref> for
-a detailed description of the list types).</p><p>In the landscape mode, two
-row lists are most commonly stretched to be displayed in one row, which enables
-displaying more items in landscape. List stretching is ON by default, but
-application can decide to disable it.</p></entry>
-</row>
-<row>
-<entry><p>Grid</p></entry>
-<entry><p>Items can be presented on a two-directional grid.</p></entry>
-</row>
-<row>
-<entry><p>Find pane</p></entry>
-<entry><p>The Find pane is used together with a list, and it allows the user
-to search list items alphabetically (see <xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find
-pane</xref> for more information about the Find pane).</p></entry>
-</row>
-<row>
-<entry><p>Status indicators</p></entry>
-<entry><p>Status indicators are displayed in the Universal indicator pane.
-See <xref href="GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita">Universal indicators</xref> for
-more details on Status indicators.</p></entry>
-</row>
-<row>
-<entry><p>Soft indicators</p></entry>
-<entry><p>Soft indicators only exist in the Idle state. See <xref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita">Indicators</xref> for
-more information on status indicators and soft indicators.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>Applications can also use the main pane area to freely draw whatever is
-needed. In that case, however, the responsibility for the look and feel is
-entirely on the application's designer. </p>
-<p>For information on how to implement
-your application using the Symbian application and UI frameworks, see <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application and UI frameworks</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937" xml:lang="en"><title>Main pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The main pane is the main area of the screen where an application can display
+its data.</p>
+<p>There are a number of standard components for applications to use in the
+main pane as listed in the following table:</p>
+<table id="GUID-72C9D280-C5DB-4BD8-ACA5-B4D0BCAE8EDA"><title>Standard components
+for applications to use in main pane</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.34*"/><colspec colname="col2" colwidth="1.66*"/>
+<thead>
+<row>
+<entry>Pane</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>List</p></entry>
+<entry><p>There are several standard list types to choose from (see <xref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita">Lists and grids</xref> for
+a detailed description of the list types).</p><p>In the landscape mode, two
+row lists are most commonly stretched to be displayed in one row, which enables
+displaying more items in landscape. List stretching is ON by default, but
+application can decide to disable it.</p></entry>
+</row>
+<row>
+<entry><p>Grid</p></entry>
+<entry><p>Items can be presented on a two-directional grid.</p></entry>
+</row>
+<row>
+<entry><p>Find pane</p></entry>
+<entry><p>The Find pane is used together with a list, and it allows the user
+to search list items alphabetically (see <xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find
+pane</xref> for more information about the Find pane).</p></entry>
+</row>
+<row>
+<entry><p>Soft indicators</p></entry>
+<entry><p>Soft indicators only exist in the home screen. See <xref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita">Indicators</xref> for
+more information on status indicators and soft indicators.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>Applications can also use the main pane area to freely draw whatever is
+needed. In that case, however, the responsibility for the look and feel is
+entirely on the application's designer. </p>
+<p>For information on how to implement
+your application using the Symbian application and UI frameworks, see <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application and UI frameworks</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e236873_href.png has changed
Binary file Symbian3/SDK/Source/GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e240610_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e240374_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e244111_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e188596_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e193658_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469457_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469621_href.png has changed
--- a/Symbian3/SDK/Source/GUID-092C18D4-A525-5562-9BF6-41435E400290.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-092C18D4-A525-5562-9BF6-41435E400290.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-092C18D4-A525-5562-9BF6-41435E400290" xml:lang="en"><title>LibpThread
-Example - Using P.I.P.S OECORE </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX on
-the Symbian platform) program, the use of the LibpThread library to demonstrate
-simple multi-threading and synchronisation. </p>
-<p>The purpose is to create a basic multithreading example showing the usage
-of the LibpThread APIs. This example also shows how multi-threading is used
-to achieve concurrency in tasks and sharing of resources. </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-3"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.zip" scope="external"> LibpThreadExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-4"><title>Description</title> <p>The
-following sections provide more information about the steps that the example
-performs. </p> <p><b> Thread Synchronisation</b> </p> <p>The example creates
-three threads named ThreadOne, ThreadTwo and ThreadThree. The threads write
-"One", "Two" and "Three" five times in a text file. The text file, located
-in <filepath>epoc32\winscw\c\newfile.txt</filepath>, is used as a shared resource
-for all three threads. A mutex is used to ensure that first ThreadOne writes
-in the file, then ThreadTwo and then ThreadThree. If the mutex is not used
-all the threads can simultaneously write in the file. This can be seen by
-commenting out <codeph>pthread_mutex_lock</codeph> and <codeph>pthread_mutex_unlock</codeph> in
-the code. </p> </section>
-<section id="GUID-236CB272-E196-4A61-B627-ACFFC4B37AA1"><title>Related APIs</title><p><xref href="GUID-736D5209-CD86-324C-BAB0-7B15C3D1862D.dita"><apiname>pthread_mutex_lock</apiname></xref> </p><p><xref href="GUID-9D7CD10C-F958-3792-8888-B7F39B148302.dita"><apiname>pthread_mutex_unlock</apiname></xref> </p><p><xref href="GUID-3A89E849-DD7F-3381-9469-6CD89892E616.dita"><apiname>pthread_join</apiname></xref></p><p><xref href="GUID-889CB456-6980-3B92-9350-0C6C8C9AC435.dita"><apiname>pthread_mutex_t</apiname></xref></p></section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-6"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build
-process</xref> describes how to build this example application. </p> <p>The
-example builds an executable called <filepath>LibpThreadExample.exe</filepath> in
-the standard locations. </p> <p>To run the example, start <filepath>LibpThreadExample.exe</filepath> from
-the file system or from your IDE. After launching the executable, depending
-on the emulator you are using, you may need to navigate away from the application
-launcher or shell screen to view the console. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-092C18D4-A525-5562-9BF6-41435E400290" xml:lang="en"><title>LibpThread Example - Using P.I.P.S OECORE </title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX
+on the Symbian platform) program, the use of the LibpThread library
+to demonstrate simple multi-threading and synchronisation. </p>
+<p>The purpose is to create a basic multithreading example showing
+the usage of the LibpThread APIs. This example also shows how multi-threading
+is used to achieve concurrency in tasks and sharing of resources. </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-7-1-2-3"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.zip" scope="external"> LibpThreadExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-7-1-2-4"><title>Description</title> <p>The following sections provide more information about the steps
+that the example performs. </p> <p><b> Thread Synchronisation</b> </p> <p>The example creates three threads named ThreadOne,
+ThreadTwo and ThreadThree. The threads write "One", "Two" and "Three"
+five times in a text file. The text file, located in <filepath>epoc32\winscw\c\newfile.txt</filepath>, is used as a shared resource for all three threads. A mutex is
+used to ensure that first ThreadOne writes in the file, then ThreadTwo
+and then ThreadThree. If the mutex is not used all the threads can
+simultaneously write in the file. This can be seen by commenting out <codeph>pthread_mutex_lock</codeph> and <codeph>pthread_mutex_unlock</codeph> in the code. </p> </section>
+<section id="GUID-236CB272-E196-4A61-B627-ACFFC4B37AA1"><title>Related
+APIs</title><p><xref href="GUID-94FEEC14-384E-364F-929F-0339FE559FB0.dita"><apiname>pthread_mutex_lock(pthread_mutex_t *)</apiname></xref> </p><p><xref href="GUID-E0AABD52-5A8F-3F49-A46D-5CE5BE975765.dita"><apiname>pthread_mutex_unlock(pthread_mutex_t *)</apiname></xref> </p><p><xref href="GUID-23868643-4C61-3661-843B-2D67C54CF163.dita"><apiname>pthread_join(pthread_t,void **)</apiname></xref></p><p><xref href="GUID-889CB456-6980-3B92-9350-0C6C8C9AC435.dita"><apiname>pthread_mutex_t</apiname></xref></p></section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-7-1-2-6"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this example application. </p> <p>The example builds an executable called <filepath>LibpThreadExample.exe</filepath> in the standard locations. </p> <p>To run the example, start <filepath>LibpThreadExample.exe</filepath> from the file system or from your
+IDE. After launching the executable, depending on the emulator you
+are using, you may need to navigate away from the application launcher
+or shell screen to view the console. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e71768_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e76917_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e354144_href.png has changed
Binary file Symbian3/SDK/Source/GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e360224_href.png has changed
--- a/Symbian3/SDK/Source/GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10" xml:lang="en"><title>Listening
-for Channel Changes</title><shortdesc>The sensor channel APIs enable you to receive notifications when
-a sensor channel is added or removed. This ensures that you are informed of
-changes to sensor channels whenever there is a change. For example, you can
-receive notifications when a specific proximity sensor channel is added.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-03B31784-B731-43C4-B2DC-38DD4898AE22">       <p>Before listening
-for channel changes, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
-the sensor channel</xref>.</p>     </prereq>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-9-1-3-2">
-<step id="GUID-B454B117-4FC5-4B19-B512-7B4A213E4C51"><cmd>Create a channel
-listener implementation for the <parmname>MSensrvChannelListener</parmname> interface.</cmd>
-<stepxmp><codeblock xml:space="preserve">class ChannelListener:public MSensrvChannelListener
-    {
-    public:    
-    void ChannelChangeDetected(const TSensrvChannelInfo &amp;aDetectedChannel, TSensrvChannelChangeType aChangeType)
-        {
-        ...
-         //Implementation
-        }
-    void ChannelDetectionError(CSensrvChannelFinder aChannelFinder, TSensrvErrorSeverity aError)
-        {
-        ...
-         //Implementation
-        }
-    void GetChannelListenerInterfaceL(TUid aInterfaceUid, TAny *aInterface)
-        {
-        ...
-         //Implementation
-        }
-    };</codeblock></stepxmp>
-</step>
-<step id="GUID-CB0E18F1-21C3-4B51-88C8-ABCBD083304D"><cmd>Start channel listening
-by passing an instance of the channel listener implementation, using <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-FFB9A53F-CAD2-3CC7-9FAD-D254E15F83CF"><apiname>CSensrvChannelFinder::SetChannelListenerL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">//Instance of the channel listener implementation
-ChannelListener channelListener;
-//Channel search parameters
-TSensrvChannelInfo &amp;searchParameters
-...
-CSensrvChannelFinder* finder = CSensrvChannelFinder::NewLC();
-...
-channel-&gt;SetChannelListenerL(channelListener, searchParameters);
-...</codeblock></stepxmp>
-<info><p>This listens for channels that meet the supplied search parameters.
-When a channel change occurs, a <parmname>ChannelChangeDetected</parmname> notification
-is delivered through the <parmname>MSensrvChannelListener</parmname> interface.</p></info>
-</step>
-<step id="GUID-E9FF2158-0E82-4AB8-A9C0-8FE5A2651FE8"><cmd>Stop channel listening
-by passing a NULL parameter to the <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-FFB9A53F-CAD2-3CC7-9FAD-D254E15F83CF"><apiname>CSensrvChannelFinder::SetChannelListenerL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">ChannelListener channelListener=NULL;
-finder-&gt;SetChannelListenerL(channelListener, searchParameters);</codeblock></stepxmp>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10" xml:lang="en"><title>Listening
+for Channel Changes</title><shortdesc>The sensor channel APIs enable you to receive notifications when
+a sensor channel is added or removed. This ensures that you are informed of
+changes to sensor channels whenever there is a change. For example, you can
+receive notifications when a specific proximity sensor channel is added.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-03B31784-B731-43C4-B2DC-38DD4898AE22">       <p>Before listening
+for channel changes, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
+the sensor channel</xref>.</p>     </prereq>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-9-1-3-2">
+<step id="GUID-B454B117-4FC5-4B19-B512-7B4A213E4C51"><cmd>Create a channel
+listener implementation for the <parmname>MSensrvChannelListener</parmname> interface.</cmd>
+<stepxmp><codeblock xml:space="preserve">class ChannelListener:public MSensrvChannelListener
+    {
+    public:    
+    void ChannelChangeDetected(const TSensrvChannelInfo &amp;aDetectedChannel, TSensrvChannelChangeType aChangeType)
+        {
+        ...
+         //Implementation
+        }
+    void ChannelDetectionError(CSensrvChannelFinder aChannelFinder, TSensrvErrorSeverity aError)
+        {
+        ...
+         //Implementation
+        }
+    void GetChannelListenerInterfaceL(TUid aInterfaceUid, TAny *aInterface)
+        {
+        ...
+         //Implementation
+        }
+    };</codeblock></stepxmp>
+</step>
+<step id="GUID-CB0E18F1-21C3-4B51-88C8-ABCBD083304D"><cmd>Start channel listening
+by passing an instance of the channel listener implementation, using <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-FFB9A53F-CAD2-3CC7-9FAD-D254E15F83CF"><apiname>CSensrvChannelFinder::SetChannelListenerL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">//Instance of the channel listener implementation
+ChannelListener channelListener;
+//Channel search parameters
+TSensrvChannelInfo &amp;searchParameters
+...
+CSensrvChannelFinder* finder = CSensrvChannelFinder::NewLC();
+...
+channel-&gt;SetChannelListenerL(channelListener, searchParameters);
+...</codeblock></stepxmp>
+<info><p>This listens for channels that meet the supplied search parameters.
+When a channel change occurs, a <parmname>ChannelChangeDetected</parmname> notification
+is delivered through the <parmname>MSensrvChannelListener</parmname> interface.</p></info>
+</step>
+<step id="GUID-E9FF2158-0E82-4AB8-A9C0-8FE5A2651FE8"><cmd>Stop channel listening
+by passing a NULL parameter to the <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-FFB9A53F-CAD2-3CC7-9FAD-D254E15F83CF"><apiname>CSensrvChannelFinder::SetChannelListenerL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">ChannelListener channelListener=NULL;
+finder-&gt;SetChannelListenerL(channelListener, searchParameters);</codeblock></stepxmp>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-0A13A931-016C-5325-97AF-2DE0B210DF2F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0A13A931-016C-5325-97AF-2DE0B210DF2F" xml:lang="en"><title>Window Server Client-Side Library Overview</title><shortdesc>The Window Server keeps track of window sizes, positions,
+visibility and validity (keeping window content up to date). It also
+receives and distributes user input in the form of key presses and
+pointer events. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Note that much of the Window Server API is low-level and is encapsulated
+in the UI Control Framework API. </p>
+<section id="GUID-E1891417-0C8F-46FE-BC4D-23C1E1BB750E"><title>Window
+Server client-side library details</title> <p>The following table
+shows the DLLs that provides the functionality and the library to
+which your code must link. </p> <table id="GUID-D5750916-4A95-5944-9ADB-05E35D47592B">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/>
+<colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath>ws32_nga.dll</filepath>  </p> </entry>
+<entry><p> <filepath>ws32.lib</filepath>  </p> </entry>
+<entry><p>The Window Server client-side library for the <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> variant. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>ws32_nonnga.dll</filepath>  </p> </entry>
+<entry> <p> <filepath>ws32.lib</filepath>  </p></entry>
+<entry><p>The Window Server client-side library for the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref> variant. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The details of the client-side API are very similar in
+the two variants. There are some additional features in the ScreenPlay
+variant for displaying surfaces.</p> </section>
+<section id="GUID-D5B8436F-D7AA-4A72-A967-FC2BB8D8EB0B"><title>Architecture</title> <p>The Window Server is used by all applications that have a user
+interface. The primary user input for these applications comes from
+the keyboard and pointer, and their primary user-visible output is
+to the screen. These input and output devices are shared between all
+applications on the system. Each client thread opens a session to
+the server, and issues requests for service. </p> <fig id="GUID-4EEE0DBF-A4DC-59A1-8310-504BF05204C7">
+<title>              Window Server            </title>
+<desc><p>The Window Server controls access by many client applications,
+to the machine’s screen, keyboard and pointer. </p> </desc>
+<image href="GUID-FE4BBEB4-4E5A-5BF2-A72F-AF53BAD83518_d0e187538_href.png" placement="inline"/>
+</fig> <p>The Window Server thread runs at a higher priority than
+any application; only the kernel runs at a higher priority. Therefore,
+all applications' requests for screen updates, and all handling of
+machine events such as pointers and keys, are handled at higher priority
+than any individual application. </p> <p>Each client application runs
+in its own thread. The Window Server presents an interface to client
+applications such that they can run without direct interaction with
+the other applications on the machine. Drawing is clipped to the visible
+area of the application’s windows. Pointer events are only received
+if they are related to the application’s windows. Similarly, keyboard
+events are only given to an application whose window group has focus
+or to one that has captured them. A client application may ignore
+the majority of events relating to other applications. It won't even
+be told about most of them. </p> <p>Each client application communicates
+with the Window Server using a Window Server session, or other object
+created from the session. The application waits to receive events
+by setting up one or more active objects. Events include user input
+and requests that windows be redrawn. Applications may create systems
+of windows and draw to them. </p> </section>
+<section id="GUID-A8BCF1C1-A637-4DDC-9249-BCEF4E23BA06"><title>Window
+server client-side API</title> <p>The following diagram shows the
+key classes in the Window Server client-side library. Below the diagram
+we provide a summary of the key concepts. </p> <fig id="GUID-A84A2706-1AF0-598B-976E-0980AD69E6E7">
+<title>             Window Server client-side API classes        
+   </title>
+<image href="GUID-FEFF353E-DE8A-5FBA-B696-CD01D06BE813_d0e187563_href.png" placement="inline"/>
+</fig> <table id="GUID-37EDAB58-6F7B-526A-8E46-891598924120">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Concept</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>Session</b>  </p> </entry>
+<entry><p>A Window Server session allows an application to control
+and interrogate its windows, the events it wishes to receive, and
+all other window groups connected to the Window Server. A session
+is encapsulated by <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Events</b>  </p> </entry>
+<entry><p>Applications function by waiting for events and handling
+them. Common events are user input, and requests that windows be redrawn.
+The Window Server session is used to request and obtain events. Most
+events (such as key and point events) are encapsulated in <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref>. </p> <p>A redraw event tells the application
+what screen area needs redrawing. It is encapsulated in <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Window group</b>  </p> </entry>
+<entry><p>A window group is special non-displayable type of window,
+which can be considered as the root window of an application. Keyboard
+events and focus are associated with it, and it can have a name, used
+for such things as lists of running applications. A window group is
+provided by <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Drawable windows</b>  </p> </entry>
+<entry><p>Drawable windows allow applications to draw to the screen.
+They have operations to control size, position, visibility, scrolling,
+z-order, and parent/child relationships. In a standard drawable window,
+areas that become invalid (e.g. when an overlaying window is removed)
+must be redrawn by the client application. It is provided by <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>. </p> <p>A backed-up drawable window's content
+is stored by the Window Server, and redrawn by the server when it
+becomes invalid. It is provided by <xref href="GUID-27A95595-F74D-32B2-A960-0CA290C8A3B3.dita"><apiname>RBackedUpWindow</apiname></xref>. </p> <p>These window types are derived from a sequence of base
+classes, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita"><apiname>RWindowTreeNode</apiname></xref>, <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>, and <xref href="GUID-FDF4BB7E-8750-3564-982A-0124A977C82E.dita"><apiname>RDrawableWindow</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Graphics</b>  </p> </entry>
+<entry><p>Applications draw to drawable windows through a windows
+graphics context provided by a windows graphics device. These implement
+the abstract graphics context and graphics device interfaces respectively,
+as defined in the Graphics API. </p> <p>The windows graphics context
+is provided by <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>; the windows graphics
+device by <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref>. The bitmap class, <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>, is extended for most efficient use with the
+Window Server by <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Sprites and cursors</b>  </p> </entry>
+<entry><p>A sprite is an arbitrary-shaped bitmap that can be moved
+without applications having to redraw the underlying screen. It has
+one or more sprite members, each containing a bitmap image and a time
+interval for that bitmap to be displayed. The sprite class is <xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref>; the sprite member class is <xref href="GUID-7F4E749E-D08D-3771-A3F1-9AEC5D16B78C.dita"><apiname>TSpriteMember</apiname></xref>. </p> <p>A specialized sprite type is provided for pointer cursors,
+which automatically track the position of a pointer. It is provided
+by <xref href="GUID-6E71A7F9-E980-3D99-ACB0-6743A0D13EBF.dita"><apiname>RWsPointerCursor</apiname></xref>. </p> <p>Text cursors are handled
+by the class <xref href="GUID-CF377A98-F11F-380F-AD10-7F3E261D4421.dita"><apiname>CTextView</apiname></xref>. They can take the form
+of a text or a line cursor. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Animation client</b>  </p> </entry>
+<entry><p>Third-parties can write Window Server plug-in DLLs, as defined
+in the Animation API, that perform animations. Providers of such animation
+DLLs must also provide a client-side interface to allow applications
+to control the animation. The base class for an animation client-side
+interface is <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> <p>Clients must request
+an animation DLL to be loaded before the animations provided by it
+can be used. This is done through <xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>RAnimDll</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Transparent windows</b>  </p> </entry>
+<entry><p>Transparent windows enable you to display semi-transparent
+bitmaps on a window. The window must be an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>. Methods to create transparent windows can be found in the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Surfaces</b>  </p> </entry>
+<entry><p>In ScreenPlay, applications (such as games and video) that
+use a rendering API that can potentially benefit from hardware acceleration
+(depending on hardware) can render directly to graphics <i>surfaces</i>. A surface is a hardware independent buffer for holding an image
+or part of a scene. Surfaces are identified using a 128 bit surface
+ID in a <codeph>TSurfaceId</codeph> class.</p> <p>The Window Server
+delegates the composition of surfaces to a composition engine which
+has an adaptation part that enables device creators to take advantage
+of graphics processing hardware if it is available. However, this
+is largely transparent to application developers. </p><p>See <xref href="GUID-1C025957-258C-54C0-94A5-AD60C14E6D76.dita">External Surfaces</xref> for more information.</p> </entry>
+</row>
+<row>
+<entry><p> <b>Direct Screen Access (DSA)</b>  </p> </entry>
+<entry><p>Mainly used in the non-ScreenPlay variant, DSA enables applications
+that require high frame rates (such as video and games) to bypass
+the Window Server and write to the screen directly. This avoids client-server
+communication and as a result is faster. However, some interaction
+with the Window Server is needed to prevent the application from drawing
+over other application's data. </p> <p>In ScreenPlay, Symbian recommends
+the use of <xref href="GUID-1C025957-258C-54C0-94A5-AD60C14E6D76.dita">external surfaces</xref> in preference to DSA. However, support for
+DSA is maintained for backward compatibility reasons, although there
+are some subtle changes in the support offered.</p><p>ScreenPlay does
+not support the mixing of <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> and DSA rendering
+to the same window. When DSA rendering is present, any <codeph>CWindowGc</codeph> rendering to the same window is ignored. For example, an application
+that uses <codeph>CWindowGC</codeph> rendering in one part of a window
+and DSA rendering in another part will not work as expected in a ScreenPlay
+environment. Similarly, <codeph>CWindowGc</codeph> rendering can no
+longer be used to seed the DSA content as it could previously. However, <codeph>CWindowGc</codeph> rendering can be provided but it is not rendered
+until the DSA rendering finishes. It is therefore best to avoid mixing
+the rendering types in the same window.</p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+</conbody><related-links>
+<link href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita"><linktext>Window
+Server Client-Side Library</linktext></link>
+</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,629 +1,629 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566" xml:lang="en"><title>How
-to Configure Multithreaded C32 Serial Comms: Tutorial</title><abstract><shortdesc>This page describes how a device manufacturer can configure
-the grouping of CSYs into various threads. </shortdesc> <p>The Serial Server
-on Symbian platform supports the use of multiple threads in order to separate
-the serial plug-in CSY modules. The first section provides a brief migration
-guide, while the subsequent sections provide more detail on the specific parameters
-and behaviour, and other advanced information. </p> </abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
-
-<section id="GUID-4109EB99-A9A8-597B-BF42-89CF6AD7DB73"><title>Introduction</title> <p>The
-Comms Configurator (<codeph>c32start</codeph>) uses a configuration Comms
-Module Ini file (.CMI) to load Comms Provider Modules (CPMs) into the Rootserver
-process. Each CMI file represents exactly one CPM loaded inside Rootserver.
-CPMs are the name given to threads running inside the Rootserver process,
-since they extend the thread concept by adding a wrapper of extra information
-and functionality used to manage the threads. </p> <p>The Comms Configurator
-searches for the CMI files in the <codeph>\private\101f7988</codeph> folders
-by searching from Y: to A: and then Z:. The folder <filepath>101f7988</filepath> is
-the secure area for the Comms Configurator process and its name derives from
-the UID for the process - as specified by the requirements for <xref href="GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B.dita#GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B/GUID-03558B99-2B98-579C-AD59-CF66BD98F69F">Data Caging</xref>. If the files are found in the ROM (usually Z:) they are <i>not</i> then
-copied to any other drive but only read in-place. Thus, a later configuration
-of CMI files installed on another media/drive other than the ROM drive can
-be used to override the original ROM configuration. The Configurator reads
-these files only once during boot so any further changes will not take effect
-until the next system boot. </p> </section>
-<section id="GUID-B742D7C6-ACA3-40CD-8D2D-B8E8AB4F1885"><title>Quick Migration Guide</title> <p>This section provides a brief
-description of how to migrate a configuration from the old single-threaded
-C32 Serial Server to the new multi-threaded server. As there are numerous
-potential configurations with the multi-threaded server, this migration guide
-should be used as a first step to getting any old settings migrated over and
-thus allowing the server to continue working after an upgrade of Symbian platform. </p> <p>Once
-migrated, the other sections in this article provide further useful information
-regarding configuring CMI files for better performance in line with the requirements
-of the particular device. </p> <p>The quick migration involves two steps: </p> <ul>
-<li id="GUID-07F882AE-797F-5326-A4C3-DC596F3BC888"><p>apply any special configuration
-used with the previous single-threaded C32 Serial Server to the new configuration
-files supplied with the multi-threaded server </p> </li>
-<li id="GUID-423E4236-73EA-51CA-B9E3-03761078DF86"><p>adjust the default set
-of configuration files supplied with the multi-threaded server to suit the
-particular serial plug-ins in use </p> </li>
-</ul> <p>These two steps are explained in more detail in the following sections. </p> <p><b>Migrating settings</b> </p> <p>The original single-threaded Serial Server
-was controlled by a single configuration file called (by default) <filepath>c32.cmi</filepath>,
-located in <filepath>\private\101f7988</filepath>. A default version of this
-file shipped with Symbian platform, although a device manufacturer could change
-this file. The default version of this file was: </p> <codeblock id="GUID-897E8787-4E34-5D80-B04F-85E94EE5B570" xml:space="preserve">## Comms Configurator config file for the C32 server
-
-[Loader]
-Name=CCommServer
-FileName=c32.dll
-ThreadFunctionOrdinal=87
-IsServer=1
-IsSticky=1
-Priority=EPriorityMuchMore
-StackSize=8192
-ScaledStartupState=0x1085
-HeapOption=EDefaultHeap
-MinHeapSize=256
-MaxHeapSize=524288
-SystemCritical=1</codeblock> <p>The multi-threaded C32 Serial Server (C32MT)
-ships by default with five configuration files, since by default it supports
-five different threads. These configuration files are: </p> <codeblock id="GUID-AE8071D9-1ECD-58EF-AC33-713B42EDB7F8" xml:space="preserve">\private\101f7988\c32.cmi
-\private\101f7988\c32_first.cmi
-\private\101f7988\c32_second.cmi
-\private\101f7988\c32_third.cmi
-\private\101f7988\c32_fourth.cmi</codeblock> <p>They are an extended version
-of the original CMI file that shipped with the single-threaded C32. For example,
-the first of these configuration files (c32.cmi) looks like: </p> <codeblock id="GUID-6B6FF51B-A9CC-5D9D-99B0-A98BA1634FA2" xml:space="preserve"># c32_main - Comms Configurator config file forming part of the Default C32 server configuration
-
-[Loader]
-Name=C32_Main
-FileName=c32.dll
-ThreadFunctionOrdinal=87
-IsSticky=0
-IsServer=1
-Priority=EPriorityMuchMore
-StackSize=16384
-ScaledStartupState=0x1085
-HeapOption=ENewHeap
-MinHeapSize=256
-MaxHeapSize=524288
-SystemCritical=1
-Group=C32SerComms
-OnDemand=0
-# Don't check heap if shutting down with EImmediate (KCF_ModuleImmediateNoCheck)
-ControlFlags=4
-[IniData]
-Role=Dealer
-WorkerId=0</codeblock> <p>The first step in migrating is to ensure that any
-unique configuration used with the old server is migrated across to the new
-server. The particular parameters that should be considered in this procedure
-are: </p> <codeblock id="GUID-8E2C24C0-8770-57CD-8064-5D85F4096DAE" xml:space="preserve">Priority
-StackSize
-ScaledStartupState
-MinHeapSize
-MaxHeapSize
-SystemCritical</codeblock> <p>These parameters would need migrating to each
-of the five new CMI files. The following notes relate to deliberate changes
-to parameter values between the single and multi-threaded servers: </p> <dl>
-<dlentry>
-<dt><b>HeapOption</b> </dt>
-<dd><p>The value of <codeph>HeapOption</codeph> is different between the old
-and new files - this was made to aid in debugging the new multi-threaded server
-by separating its memory from the rest of the comms system. It can be safely
-changed back if desired. </p> </dd>
-</dlentry>
-<dlentry>
-<dt><b>IsSticky</b> </dt>
-<dd><p>The value of <codeph>IsSticky</codeph> has changed from 1 to 0. The <codeph>IsSticky</codeph> parameter
-is normally unused in a production system for the Serial Server since the
-server runs as a <codeph>SystemCritical</codeph> thread and thus cannot be
-shutdown and, if it panics, the phone would reboot. The change was made to
-facilitate testing, since in a test environment the Serial Server can be shutdown,
-and to facilitate this the value of <codeph>IsSticky</codeph> must be set
-to 0. </p> </dd>
-</dlentry>
-<dlentry>
-<dt><b>StackSize</b> </dt>
-<dd><p>The value of <codeph>StackSize</codeph> has increased from 8192 for
-the single-threaded C32 to 16384 for C32MT. This change is due to the increased
-stack usage of the multi-threaded C32. The value used - 16384 - was based
-on the value proven to work with the similar ESock multi-threaded server.
-It is possible that this value could be trimmed back towards 8192 to save
-memory depending on the CSYs being used, since the ECUART CSY has been tested
-to work with the multi-threaded C32 server with a stack size of just 8192,
-and CSYs are usually much less memory-demanding than the protocols being used
-in ESock. </p> </dd>
-</dlentry>
-</dl> <p><b>Assigning
-CSY plug-ins to threads</b> </p> <p>The second part of migration to the new
-multi-threaded serial server is to alter the default set of CMI files to match
-the plug-ins (CSYs) in use and the desired operation. This step is not mandatory
-since by default C32 will load all plug-ins correctly. But, it is worth considering
-at this stage whether the default configuration needs some changes to match
-the requirements of the device. </p> <p>There are three broad configurations
-available, which are defined by whether one or more CSYs are run in the main
-thread for efficiency. The default configuration supplied with Symbian platform
-runs all the CSYs outside the main thread since this ensures that no CSY can
-deny service to the main server thread. It is expected that this configuration
-will suit most situations, but for more information on the other configurations,
-see the later section <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-5A5FEA44-F43B-51BE-9736-7FC76901DB02">Typical
-Thread Configuration Examples</xref>. </p> <p>As mentioned earlier, the default
-configuration uses five threads. The description for each of these is given
-in the following table: </p> <table id="GUID-0F03B8CD-0142-595A-874F-A35C80F8C991">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry>Worker ID</entry>
-<entry>Summary</entry>
-<entry>CMI file</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>0</p> </entry>
-<entry><p>Main thread </p> </entry>
-<entry><p> <filepath>c32.cmi</filepath>  </p> </entry>
-<entry><p>Runs the serial server to service client requests and pass on to
-the CSYs, possibly in other threads. This thread is expected to be started
-at device boot. </p> </entry>
-</row>
-<row>
-<entry><p>1</p> </entry>
-<entry><p>USB thread </p> </entry>
-<entry><p> <filepath>c32_first.cmi</filepath>  </p> </entry>
-<entry><p>Runs the USB CSY (ECACM). This is separated from all other threads
-so that USB can run at high-speed uninterrupted. This thread is only started
-when a client requires a USB connection. </p> </entry>
-</row>
-<row>
-<entry><p>2</p> </entry>
-<entry><p>Baseband thread </p> </entry>
-<entry><p> <filepath>c32_second.cmi</filepath>  </p> </entry>
-<entry><p>Runs the RS232 CSY (ECUART). This thread runs the ECUART plug-in
-separately since ECUART is sometimes used to connect to the baseband. If a
-different CSY is being used to connect to the baseband, it can be added to
-this CMI file and ECUART either moved to another thread, or removed altogether.
-As the baseband requires a high speed and fast response time, it is recommended
-that the baseband CSY should be run in this thread to separate it from all
-other CSYs. This thread is only started when a client requires the CSY. </p> </entry>
-</row>
-<row>
-<entry><p>3</p> </entry>
-<entry><p>Bluetooth and IrDA thread </p> </entry>
-<entry><p> <filepath>c32_third.cmi</filepath>  </p> </entry>
-<entry><p>Runs the Bluetooth and IrDA CSYs. These CSYs usually do not have
-high requirements for throughput or response and thus can run together. This
-thread is only started when one of its CSYs is required by a client. </p> </entry>
-</row>
-<row>
-<entry><p>4</p> </entry>
-<entry><p>Default thread </p> </entry>
-<entry><p> <filepath>c32_fourth.cmi</filepath>  </p> </entry>
-<entry><p>Runs any unlisted CSYs. If C32 is asked to load a CSY for which
-no thread has been identified in a CMI file, then C32 will load the CSY in
-this thread. This thread is only started when required. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>For a particular device, the above configuration may need to be
-changed to address the requirements of the device. Typical adjustments to
-consider are: </p> <ol id="GUID-FB351652-6FBA-5176-9C51-AAC40752C333">
-<li id="GUID-EA20A49C-FB32-5BC6-B47A-24F0487F65FD"><p>Change the CSY name
-for Worker ID 2 to match the baseband CSY, and then either move ECUART to
-Worker ID 3 or into its own new thread, or don't add it to any CMI file if
-the device doesn't use the ECUART CSY </p> </li>
-<li id="GUID-E08331AD-4AEA-5CAA-8C28-8B3001E1FAEC"><p>Add any extra low-performance
-CSYs to Worker ID 3 so that they run together with Bluetooth and IrDA. Extra
-CSYs could be run in a new separate thread but there is a memory cost for
-each new thread added so this should be considered (8K is typically allocated
-to a new thread, see <xref href="GUID-49379616-C235-598D-AE43-668998AD072B.dita#GUID-49379616-C235-598D-AE43-668998AD072B/GUID-5A573FEB-A274-5C0F-A6B6-87D5BAD8A21C">Process,
-thread, stack and memory useful information</xref>, and there is a limit to
-the number of threads with their own heaps that can be started in the Root
-Server). </p> </li>
-<li id="GUID-45D296E1-654C-5181-A38E-4D0AFC23A4A6"><p>For any extra high-performance
-CSYs, create a new CMI file so that these can run separately from the other
-CSYs. See <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-C8EA2AA7-28CB-5F89-A0CC-CF20EF21AE6D">Creating
-A New CMI</xref> below </p> </li>
-<li id="GUID-BC119A2C-445A-5EF7-92DF-17D7E28A1A3B"><p>Prioritise important
-threads (or reduce the priority of lesser threads). Candidates for increased
-priority would be the Main, USB and Baseband threads. Care should be taken
-when adjusting thread priorities since these affect the whole Comms system
-- more guidance on setting thread priorities is available in the document <i>How
-To Assign Thread Priorities</i> elsewhere in this developer library. </p> </li>
-</ol> <p>When making these adjustments note that there is no cost involved
-with mentioning CSYs that may never be loaded. </p> </section>
-<section id="GUID-E7F95EA1-D91D-4623-B163-8BE198CC991C"><title>Overview of the C32 multi-threaded CMI files</title> <p>C32
-Multithreading uses the same Dealer/Player terminology/concepts as Esock Multithreading.
-The <b>Dealer</b> is the main C32 Comms Provider Module (CPM) which runs the
-C32 server; a Player is a C32 CPM that only runs one or more CSYs and takes
-the client requests from the Dealer module. </p> <p>For example: </p> <p> <b>C32.cmi</b>  </p> <codeblock id="GUID-569AA81E-8689-5B15-A2C8-24E9163398A7" xml:space="preserve">[Loader]
-Name=C32_Main
-FileName=c32.dll
-ThreadFunctionOrdinal=87
-IsServer=1
-IsSticky=0
-ThreadPriority=EPriorityMuchMore
-StackSize=16384
-ScaledStartupState=0x1085
-HeapOption=ENewHeap
-MinHeapSize=256
-MaxHeapSize=524288
-SystemCritical=1
-Group=C32SerComms
-OnDemand=0
-[IniData]
-Role=Dealer
-WorkerId=0
-</codeblock> <p>The <xref href="GUID-83297976-F146-3B82-BE1C-C1E8F8B9DEE5.dita"><apiname>ThreadFunctionOrdinal</apiname></xref> identifier must
-refer to the correct ordinal number of the main thread function for the DLL
-file containing the Comms Provider Module. Due to binary compatibility considerations
-this must be placed at ordinal "87" in the export table. A Comms Provider
-Module/CPM is essentially a thread managed by the Comms Configurator. </p> <p>The
-description of each of the settings under <codeph>[Loader]</codeph> that are
-specific to C32 and the settings under <codeph>[IniData]</codeph> are described
-in further detail below. </p> <p>As well as the C32 server thread, any other
-CPMs that C32 needs must also have their own CMI file. One such example file
-is: </p> <p> <b>C32_Default.cmi</b>  </p> <codeblock id="GUID-7E488DEF-535C-5C13-9DEA-246B11DF39E4" xml:space="preserve">[Loader]
-Name=C32_Default
-FileName=c32.dll
-ThreadFunctionOrdinal=87
-IsServer=1
-IsSticky=0
-ThreadPriority=EPriorityMuchMore
-StackSize=16384
-ScaledStartupState=0x3040
-HeapOption=EShareHeap
-SharedHeapName=C32_Main
-MinHeapSize=256
-MaxHeapSize=524288
-SystemCritical=0
-Group=C32SerComms
-OnDemand=1
-Binding0=C32_Default:4,C32_Main:0,ECustom,42,42
-[IniData]
-Role=Player
-WorkerId=4
-CSYList=*</codeblock> </section>
-<section id="GUID-AEEFD832-108E-5CC2-AD5D-5CF6414CA720"><title>C32 CMI Parameter
-Descriptions</title> <p>This section gives details about the parameters available
-in the CMI file relevant to C32. The CMI file has two sections - a <codeph>[Loader]</codeph> section
-and an <codeph>[IniData]</codeph> section. The <codeph>[Loader]</codeph> section
-parameters are defined for the CPM, and the ones relevant to C32MT are detailed
-below. The <codeph>[IniData]</codeph> section contains parameters specific
-to a CPM. If further information on the format of the CMI file itself or the <codeph>[Loader]</codeph> parameters
-is required, please refer to the document <i>Comms Process Starter/Config
-Design Document</i> section <i>3.1.1</i>. This document is located in this
-developer library as well as in the <filepath>comms-infras\rootserver\Documentation</filepath> folder. </p> <p><b>A note on CMI processing</b> </p> <p>No mechanism is provided to change
-CMI files at run-time, since they are designed to be configured for inclusion
-in a ROM and then not changed through the life of a phone product. After-market
-changing of the configuration is supported via the installation of CMI files
-in a non-ROM folder which then take precedence over the ROM files when the
-device is next rebooted. Thus, any CMI configuration file problems should
-become apparent during the early stages of phone development. </p> <p>A bad
-configuration will panic in debug builds to signal the user to change/edit
-the <codeph>.CMI</codeph> files in order to make a desired and correct configuration.
-In <codeph>urel</codeph> builds a bad configuration may survive (unless the <codeph>.CMI</codeph> files
-are very malformed) but at a cost that all CSYs are loaded in the Dealer Thread
-(<codeph>Workerid=0</codeph>) making it in effect a single threaded system. </p> <p>The
-panic numbers used by the C32 Serial Server for internal server faults are
-defined in the enum <xref href="GUID-FED70722-0258-3B96-A941-1F7C13699002.dita"><apiname>TECommFault</apiname></xref>. </p> <p><b> CMI [Loader] Parameters relevant to C32</b> </p> <p><b>OnDemand </b> </p> <p>This indicates whether the CPM is started as part
-of the Configurator’s CPM load on boot ("0"), or whether the CPM should only
-be loaded via an explicit request to Configurator ("1"). The default value
-is "0". The <codeph>OnDemand</codeph> parameter for the main thread can only
-be "0" if mentioned. For Player modules the setting can be either "0" or "1".
-If a Player thread is not marked as <codeph>OnDemand=1</codeph> then it will
-load during the boot sequence. If the main thread (<codeph>Workerid=0</codeph>)
-is marked as <codeph>OnDemand=1</codeph>, then this is a configuration error
-and C32 can never be started (although in theory this is possible - see <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-6350761E-18F6-53B7-98F8-C6E2EB5DA942">Footnote
-1</xref> below). Players marked to load at boot up do not load any CSYs implicitly
-as part of the boot load. </p> <p>All Player modules for C32 must be marked
-with <codeph>OnDemand=1</codeph> since the C32 Dealer must instigate a Player
-load. If a Player thread is not marked as <codeph>OnDemand=0</codeph> then
-it will load during the boot sequence. </p> <p><b>Group </b> </p> <p>All CMI files for C32 must map to the same Group ID.
-The actual Group ID for the C32 group is <codeph>C32SerComms</codeph>. CMI
-files for C32 Players that do not have a Group member will never be loaded
-by C32 (assuming <codeph>OnDemand=1</codeph> is set for the Player threads). </p> <p>If
-there is no group defined in any CMI files and therefore no <b>[IniData]</b> is
-processed for any of them, then C32 will simply assign all CSYs to load into
-the Dealer thread. </p> <p> <b>Name</b>  </p> <p>This parameter is used to
-identify the CPM to the Configurator and is used to name the thread for the
-kernel. It is stored by C32 for all CMI files in the C32SerComms group for
-use when requesting Configurator to load or unload a CPM. As this value is
-easily configurable and is used to name the thread to the kernel, software
-should not rely on the name of any C32 thread being any particular string.
-Prior to the multithreaded C32 (C32MT), the C32 thread was conventionally
-known as <codeph>CCommServer</codeph>. However, with C32 now potentially having
-a multiplicity of threads, other schemes are probable such as <codeph>C32_Main,
-C32_USB and C32_BaseBand</codeph> or <codeph>C32_BT-IR and              C32_Default</codeph>  </p> <p>The
-Dealer and all Players in the C32 group can have any name since C32 will find
-them as part of the same group (see Group above). The names in the C32 group
-should all be unique – if the same name is found twice or more C32 will panic
-in debug builds but attempt to recover in release builds by only processing
-the first that it finds. This is still a highly risky situation since if C32
-needs to start that module in order to accommodate a CSY, Configurator may
-load the wrong CMI file when creating the new thread. </p> <p>When introducing
-new CMIs, care should be taken to change the <codeph>BindingN</codeph> line
-in CMI to reflect the new modulename and WorkerId. </p> <p><b>CMI [IniData] Parameters relevant to C32</b> </p> <p>In the case where
-C32 has a CMI file that loads the C32 binary during boot up, but the CMI file
-does not have an <codeph>[IniData]</codeph> section, C32 will assume that
-this CMI is for the main thread and that the CMI is a pre-C32MT file. However,
-for C32MT, this is an undesired configuration and should be rectified. Old
-versions of <codeph>c32.cmi</codeph> are only kept in the source distribution
-to support backwards compatibility and should not be used in a system which
-has C32MT present. In such backwards-compatible modes of C32MT, the main thread
-will host a Player in case no other CMI files are present. </p> <p> <b>Role</b>  </p> <p>The
-value for this parameter should be either <codeph>Dealer</codeph> or <codeph>Player</codeph>.
-Only one <codeph>Dealer</codeph> can exist in a C32 system, but there can
-be any number of <codeph>Player</codeph> s. If there are two or more <codeph>Dealer</codeph> CMI
-files, the <codeph>ScaledStartupState</codeph> determines which Dealer CMI
-starts first. If both the CMIs have the same <codeph>ScaledStartupState</codeph>,
-then they are loaded in alphabetical order. Configurator is guaranteed to
-start a C: CMI file before the Z: one. If they both have the same module name
-then it is safe since Rootserver will refuse the load of the second module
-with the same name failing with <codeph>KErrAlreadyExists</codeph>. However,
-if the module name is different Rootserver will load them both and C32 will
-detect that an instance of itself is already running and exit the second thread.
-Only the IniData for the CMI file that was used to start the Dealer will be
-processed, with all other Dealer CMI files being ignored. If the main thread
-is to include a co-resident Player, the iniData should include the <codeph>CSYList</codeph> key-value
-pair discussed below. </p> <p> <b>WorkerId</b>  </p> <p>The ID number of this
-thread inside the C32 system. The Id numbers should be a positive integer
-or "0" in the case of the main thread (In case CMI file of <codeph>WorkerId=0</codeph> has
-anything else than Dealer as role, it is overridden with Role=Dealer, logging
-a warning). The system expects subsequent ID numbers to be incremented up
-from the main thread's ID. Where a CMI file in the C32 group does not have
-a WorkerId, it is a bad configuration and will panic in debug builds. Allocating
-the next higher number is not possible as this Player needs to be bound with
-the Dealer using the <codeph>BindingN</codeph> line which accepts <codeph>WorkerId</codeph> parameter.
-In case of duplicate <codeph>WorkerId</codeph>, a panic occurs as the second
-module cannot be bound to the Dealer as the binding for the main thread has
-already been done. </p> <p> <b>CSYList</b>  </p> <p>A comma-separated list
-of the filenames of the CSYs this thread will own. All CMIs in the C32 group
-must have a CSY list, except for the Dealer which can optionally have a <codeph>CSYList</codeph>.
-A Player with no <codeph>CSYList</codeph> represents a bad configuration as
-a Player’s sole purpose is to load CSYs. Such a Player with no CSY list will
-never be started by C32. A Dealer with no CSY list will act purely as a Dealer.
-A Dealer with a CSY list becomes a Dealer with a co-resident Player inside
-its thread. <codeph>CSYList</codeph> param determines if the CPM will host
-a Player or not. </p> <p>If a CSY appears in more than one CMI file, then
-the CSY will be assigned to one thread, but not necessarily that with the
-least number of CSYs in it. </p> <p>The comma-separated list should not have
-any spaces or other white space in it, and each CSY name must be an alphanumeric
-string. The CSY name is not case sensitive, and should not have the <codeph>.CSY</codeph> extension.
-C32 does not check whether the supplied CSY names actually exist as binaries,
-since it only refers to the list when a client asks to load a particular CSY. </p> <p>If
-an asterix ("*") appears as a CSY name in the CSY list, this is inferred by
-C32 as meaning that this thread is also to be used to load any CSYs not mentioned
-in any CMI file, and is known as the <i>default</i> thread. If two different
-CMI files in the C32 group have the wildcard then only one CMI file will be
-marked as being the host for unknown CSYs – it is not defined as to which
-one. If no CMI file has a wildcard then C32 will assign the wildcard to an
-unused Player thread so that all unlisted CSYs are isolated into their own
-thread. This is overridden if the only CMI file is for the Dealer, in which
-case the Dealer will load all CSYs into its own co-resident Player, since
-the Dealer cannot request the Configurator to start a module for which there
-is not an associated CMI file. </p> </section>
-<section id="GUID-8E49AE8A-E940-52F3-ADA5-0332DA1D58D2"><title>Important Notes</title> <p>Field
-names in the <codeph>[IniData]</codeph> are case sensitive, but fields values
-are not. </p> <p>The <codeph>BindingN</codeph> line is responsible for binding
-the Player CPM with Dealer. If you leave out the <codeph>BindingN</codeph> line
-from the CMI then the new Player will in essence remain as an island and no
-requests for loading or any subsequent operation can be passed to it from
-Dealer. This will not result in a panic. </p> <p>The <codeph>C32_Main.cmi</codeph> doesn’t
-have a <codeph>BindingN</codeph> line since it is a Dealer and thus does not
-need to bind to another Dealer. </p> </section>
-<section id="GUID-C8EA2AA7-28CB-5F89-A0CC-CF20EF21AE6D"><title>Creating A
-New CMI</title> <p>To create a new CMI file, copy an existing Player CMI file,
-rename it and change the necessary parameters as detailed below. The examples
-below assume that the base CMI used was the supplied <codeph>c32_fourth.cmi</codeph>.
-The following parameters need to be changed to make a valid configuration
-file: </p> <p>In <b>[Loader] </b> section are: </p> <ul>
-<li id="GUID-6C3E5830-9A7A-5D84-B4A5-FCA7FD66E31A"><p> <b>Name</b> - This
-is the module name of CPM. </p> </li>
-<li id="GUID-D5BDBEAC-A417-5D39-BB85-4E5AB9DDD36A"><p> <b>BindingN</b> - BindingN
-line is changed to reflect the new module name and <codeph>WorkerId</codeph> value </p> </li>
-</ul> <p>In<b> [IniData] </b> section: </p> <ul>
-<li id="GUID-3855C593-297D-5360-9926-0A1BFFAC3B12"><p> <b>WorkerId</b> - This
-value is numeric and must be unique </p> </li>
-<li id="GUID-EA091203-C0E9-5303-9FD5-924F3C67FB55"><p> <b>CSYList</b> - Contains
-CSYs which you want to load in this new CPM, separated by commas, no white
-spaces allowed. </p> </li>
-</ul> <p>Since the additional CMI being added is a <codeph>Player</codeph>,
-the Role field remains the same and it can not be changed to <codeph>Dealer</codeph> as
-the CPM with <codeph>WorkerId=0</codeph> is the one and only Dealer in the
-C32MT. </p> <codeblock id="GUID-8722A0B7-FB88-5516-846B-BCC4E11D0EEE" xml:space="preserve">[Loader]
-# Change the Name value to your CSY name
-Name=C32_Default  // </codeblock> <p>Change the <codeph>Name</codeph> value
-to the name of your CSY, e.g. </p> <codeblock id="GUID-EDCEA3C0-D4E6-5075-9FDE-65425194D6E5" xml:space="preserve">Name=C32_MyCSYs</codeblock> <codeblock id="GUID-B7D87670-C791-533F-A8F1-6135050387E2" xml:space="preserve">FileName=c32.dll
-ThreadFunctionOrdinal=87
-ThreadPriority=EPriorityMuchMore
-StackSize=16384
-ScaledStartupState=0x3040
-HeapOption=ENewHeap
-MinHeapSize=256
-MaxHeapSize=524288
-SystemCritical=1
-Group=C32SerComms
-OnDemand=1</codeblock> <p>Change the BindingN line to refer to your CSY, for
-example change from </p> <codeblock id="GUID-81BEFC33-67EE-5547-8C7C-E473F902F145" xml:space="preserve"># Change the BindingN line to refer to your CSYs
-Binding0=C32_Default:4,C32_Main:0,ECustom,42,42</codeblock> <p>to </p> <codeblock id="GUID-2B7683AF-E01F-5C7A-896B-E3E4F37FAF23" xml:space="preserve">Binding0=C32_MyCSYs:5,C32_Main:0,ECustom,42,42</codeblock> <p>And
-in the <b>[IniData]</b> section: </p> <codeblock id="GUID-A0AA8BA4-AA45-5FAE-95D4-24764695F04B" xml:space="preserve">[IniData]
-# Make sure Role is set to "Player"
-Role=Player</codeblock> <p>Change the <b>WorkerId</b>, for example from <codeph>WorkerId=4</codeph> to </p> <codeblock id="GUID-D334F3C3-38B7-578F-8E9C-2C4FBBB05C06" xml:space="preserve">WorkerId=5</codeblock> <p>and
-change the <b>CSYList</b> to specify your CSYs, e.g. change "CSYList=XX,YY,zz"
-to </p> <codeblock id="GUID-9AAAD2C9-A0D0-5733-8EFC-1CB848DB8785" xml:space="preserve">CSYList=MyCSY1,MyCSY2</codeblock> </section>
-<section id="GUID-5A5FEA44-F43B-51BE-9736-7FC76901DB02"><title>Typical Thread
-Configuration Examples</title> <p>This section describes the three broad configurations
-for threading available for the C32 Serial Server. Each has different potential
-effects on the performance of C32. </p> <p>The three broad configurations
-available, with a summary of their costs and benefits, are detailed in the
-following table: </p> <table id="GUID-5552EBC6-3387-59E6-85AC-9585F31C6ABB">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry/>
-<entry>Configuration</entry>
-<entry>Advantages</entry>
-<entry>Disadvantages</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>1</p> </entry>
-<entry><p>Run all CSYs outside the main thread <b>[Default supplied CMI set]</b>  </p> </entry>
-<entry><ul>
-<li id="GUID-3BD88C6F-9C4E-5001-B7D1-2A9DC3BBE649"><p>Some CSYs can be promoted
-ahead of others using thread priorities </p> </li>
-<li id="GUID-1C1C0DF2-5EED-5AE4-820A-B3020AF66AE6"><p>Main thread cannot ever
-stall when any CSY stalls </p> </li>
-<li id="GUID-F4331549-9283-5E78-AEE1-32C4CF0F11E3"><p>Stackable CSYs are possible:
-a CSY can connect to another CSY through the C32 API as long as both are in
-different threads </p> </li>
-</ul> </entry>
-<entry><ul>
-<li id="GUID-898ED70D-CCB3-5D56-A9A9-49C19BC3C5DC"><p>Operations on CSYs are
-a bit slower due to increased overhead of inter-thread communication </p> </li>
-<li id="GUID-DA120612-E01B-51A4-8B77-F582D8170318"><p>Complex to debug </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p>2</p> </entry>
-<entry><p>Run some CSYs in the main thread </p> </entry>
-<entry><ul>
-<li id="GUID-70EFC61A-5D52-55D1-B364-096F84D0EBDF"><p>CSYs in the main thread
-avoid the overhead of inter-thread communication </p> </li>
-<li id="GUID-63D0CE88-5B6D-5787-A2B4-936B48D16FB2"><p>Some CSYs can be promoted
-ahead of others using thread priorities </p> </li>
-<li id="GUID-71641750-5882-53FC-9B40-0421050E5355"><p>Main thread cannot stall
-when a CSY in a separate thread stalls </p> </li>
-<li id="GUID-88EEE21E-42CF-5401-B985-427E7B3641E9"><p>Stackable CSYs are possible:
-a CSY can connect to another CSY through the C32 API as long as both are in
-different threads </p> </li>
-</ul> </entry>
-<entry><ul>
-<li id="GUID-70FDC4C2-FACB-592F-AA96-9C3F980FA842"><p>If any CSY in the main
-thread stalls, the whole server stalls </p> </li>
-<li id="GUID-E5F158D5-4720-5869-9B67-7FC3001B75F2"><p>No means to prioritise
-one CSY ahead of others (without changing the CSY code) </p> </li>
-<li id="GUID-A773FE9F-AC77-59B0-AECB-FB5C8174583C"><p>Operations on CSYs outside
-the main thread are a bit slower due to the increased overhead of inter-thread
-communication </p> </li>
-<li id="GUID-C0505A00-C777-582A-8B98-C1E53AC094B7"><p>Complex to debug </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p>3</p> </entry>
-<entry><p>Run all CSYs in the main thread <b>[Default configuration when any
-CMI files are corrupt]</b>  </p> </entry>
-<entry><ul>
-<li id="GUID-537C35E5-041E-5BDC-9298-26F89CE5E51F"><p>Simplest to debug since
-no inter-thread communication </p> </li>
-<li id="GUID-EFDEEA79-10D8-5FBF-B630-268F14362C0D"><p>All CSYs avoid the overhead
-of inter-thread communication </p> </li>
-</ul> </entry>
-<entry><ul>
-<li id="GUID-F0C2BD50-CFAD-5E99-AFDF-65BF96B5BB67"><p>If any CSY stalls, the
-whole server stalls </p> </li>
-<li id="GUID-83EDBE8F-17BD-514A-B0D5-5A6020A8DF56"><p>No means to prioritise
-one CSY ahead of others (without changing the CSY code) </p> </li>
-<li id="GUID-BE4157B4-0D0D-5520-8E85-A6C4755410B3"><p>No stackable CSYs are
-possible </p> </li>
-</ul> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The default set of CMI files supplied with Symbian platform
-is based on the first broad configuration since it was decided that the small
-cost of running all CSYs outside the main thread is justified by the increased
-reliability to the whole C32 system of ensuring no CSY can deny service to
-the C32 server. Each of these configurations is explained in more detail below. </p> <fig id="GUID-BC275667-5D19-56CA-ABD9-68265A852282">
-<title>              Figure 1 - No CSYs in main thread: RootServer with 4
-C32 CPMs            </title>
-<image href="GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e124112_href.png" placement="inline"/>
-</fig> <p>Referring to Figure 1, the following can be observed: </p> <ol id="GUID-DA3BC841-1BE9-5483-8EC0-7BA479D85C14">
-<li id="GUID-EAD7752C-A094-51CA-903C-52DCF2AB5353"><p>The Main Thread has <codeph>WorkerId=0</codeph>,
-Role as Dealer and is configured to load no CSY </p> </li>
-<li id="GUID-CE4A7176-2BD6-5149-B24A-45DCD0945C76"><p>The Player Thread 1
-has <codeph>WorkerId=1</codeph>, Role as Player and is configured to load
-ECACM CSY </p> </li>
-<li id="GUID-A327174B-CA1A-5AD8-92E9-9895363D7851"><p>The Player Thread 2
-has <codeph>WorkerId=2</codeph>, Role as Player and is configured to load
-ECUART CSY </p> </li>
-<li id="GUID-6015DA12-C259-5B9F-9D72-CFF86AA91435"><p>The Player Thread 3
-has <codeph>WorkerId=3</codeph>, Role as Player and is configured to load <i>unlisted</i> csy.
-What unlisted csy means here is that apart from ECACM and ECUART, if any new
-csy is to be loaded, it will get loaded in this thread. </p> </li>
-</ol> <p>The <b>[IniData]</b> section for the above CPMs would look like: </p> <codeblock id="GUID-CE1D7541-5103-5E9B-A20A-11A6C17ABFCA" xml:space="preserve">[IniData]
-Role=Dealer
-WorkerId=0
-</codeblock> <codeblock id="GUID-51C4FC4E-1F85-59D3-9F9D-FC6868042363" xml:space="preserve">[IniData]
-Role=Player
-WorkerId=1
-CSYList=ECACM
-</codeblock> <codeblock id="GUID-F21BBEC3-482A-59C4-BBE7-9B304F07EDB3" xml:space="preserve">[IniData]
-Role=Player
-WorkerId=2
-CSYList=ECUART
-</codeblock> <codeblock id="GUID-74C70C5D-2B37-5AF8-B703-4072610C6C3E" xml:space="preserve">[IniData]
-Role=Player
-WorkerId=3
-CSYList=*
-</codeblock> <fig id="GUID-92921AF5-D056-52A9-B10E-80760DE9CD2F">
-<title>              Figure 2 - All CSYs in main thread: RootServer with single
-C32 CPM            </title>
-<image href="GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e124179_href.png" placement="inline"/>
-</fig> <p>In Figure 2 the CPM loads any CSYs, and so should contain <codeph>CSYList</codeph> tag
-in the IniData section. </p> <p>The Main Thread has <codeph>WorkerId=0</codeph>,
-Role as Dealer and is configured to load <i>any</i> CSY. In this configuration
-since it is a single thread, all the CSYs will be loaded in the same thread. </p> <p>The <b>[IniData]</b> section
-for above CPM would look like: </p> <codeblock id="GUID-BCDEB67F-85D0-560A-AC5B-7D05B807B857" xml:space="preserve">[IniData]
-Role=Dealer
-WorkerId=0
-CSYList=*
-</codeblock> <fig id="GUID-8F658644-2E07-53A3-A003-C1F015E1396B">
-<title>                 Figure 3 - Some CSYs in main thread: RootServer with
-3 CPMs               </title>
-<image href="GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e124211_href.png" placement="inline"/>
-</fig> <p>From Figure 3, the following can be observed. </p> <ol id="GUID-E945237B-900A-588A-A3FF-C0B75A43BB4A">
-<li id="GUID-0A3CEB52-2C0F-5BB9-A271-756F9F374111"><p>The Main Thread has <codeph>WorkerId=0</codeph>,
-Role as Dealer and is configured to load HSDPA csy </p> </li>
-<li id="GUID-34EF4E58-A6DB-5EFB-8C13-EE8064A7E3F7"><p>The Player Thread 1
-has <codeph>WorkerId=1</codeph>, Role as Player and is configured to load
-ECACM csy </p> </li>
-<li id="GUID-BFF9FDF7-C714-5D0A-B8B3-DC4CCB2EC8FB"><p>The Player Thread 2
-has <codeph>WorkerId=2</codeph>, Role as Player and is configured to load
-an unlisted csy </p> </li>
-</ol> <p>The IniData section for above CPMs would look like: </p> <codeblock id="GUID-E5A77235-60E5-526D-A95C-750FCDCA96BE" xml:space="preserve">[IniData]
-Role=Dealer
-WorkerId=0
-CSYList=HSDPA
-</codeblock> <codeblock id="GUID-ED3EE5DE-65C4-50CB-AEA1-59D89FBC0EF3" xml:space="preserve">[IniData]
-Role=Player
-WorkerId=1
-CSYList=ECACM</codeblock> <codeblock id="GUID-00F4F479-B153-5F05-8E13-D2276D70B605" xml:space="preserve">[IniData]
-Role=Player
-WorkerId=2
-CSYList=*</codeblock> </section>
-<section id="GUID-6350761E-18F6-53B7-98F8-C6E2EB5DA942"><title>Footnotes</title> <dl>
-<dlentry>
-<dt><b>Footnote 1</b> </dt>
-<dd><p>In theory the C32 main thread (<codeph>Workerid=0</codeph>) could be
-marked as on-demand and started by the first client to connect to it. This
-might be useful since it would save device boot time for a device that does
-not need serial comms as part of boot up. The process would require the client
-to connect to Configurator and load the C32 main module explicitly. For this
-to work the main Module’s name would have to be fixed (the reference system
-uses “<codeph>C32_Main</codeph> ”) so that the client can identify it to Configurator
-- which is not a big problem, and the client would need the appropriate capabilities
-(also not a big problem as the client could well be inside Rootserver too).
-The other problem is that making it on-demand requires that it is still started
-by a priviledged process before any unpriviledged process attempts to use
-the C32 API (since this will fail unless no CSYs require any capabilities).
-Therefore, for on-demand main thread-loading to work, intimate details about
-the specific configuration of CSYs for a device and their potential clients
-would be needed. </p> </dd>
-</dlentry>
-</dl> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566" xml:lang="en"><title>How
+to Configure Multithreaded C32 Serial Comms: Tutorial</title><abstract><shortdesc>This page describes how a device manufacturer can configure
+the grouping of CSYs into various threads. </shortdesc> <p>The Serial Server
+on Symbian platform supports the use of multiple threads in order to separate
+the serial plug-in CSY modules. The first section provides a brief migration
+guide, while the subsequent sections provide more detail on the specific parameters
+and behaviour, and other advanced information. </p> </abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
+
+<section id="GUID-4109EB99-A9A8-597B-BF42-89CF6AD7DB73"><title>Introduction</title> <p>The
+Comms Configurator (<codeph>c32start</codeph>) uses a configuration Comms
+Module Ini file (.CMI) to load Comms Provider Modules (CPMs) into the Rootserver
+process. Each CMI file represents exactly one CPM loaded inside Rootserver.
+CPMs are the name given to threads running inside the Rootserver process,
+since they extend the thread concept by adding a wrapper of extra information
+and functionality used to manage the threads. </p> <p>The Comms Configurator
+searches for the CMI files in the <codeph>\private\101f7988</codeph> folders
+by searching from Y: to A: and then Z:. The folder <filepath>101f7988</filepath> is
+the secure area for the Comms Configurator process and its name derives from
+the UID for the process - as specified by the requirements for <xref href="GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B.dita#GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B/GUID-03558B99-2B98-579C-AD59-CF66BD98F69F">Data Caging</xref>. If the files are found in the ROM (usually Z:) they are <i>not</i> then
+copied to any other drive but only read in-place. Thus, a later configuration
+of CMI files installed on another media/drive other than the ROM drive can
+be used to override the original ROM configuration. The Configurator reads
+these files only once during boot so any further changes will not take effect
+until the next system boot. </p> </section>
+<section id="GUID-B742D7C6-ACA3-40CD-8D2D-B8E8AB4F1885"><title>Quick Migration Guide</title> <p>This section provides a brief
+description of how to migrate a configuration from the old single-threaded
+C32 Serial Server to the new multi-threaded server. As there are numerous
+potential configurations with the multi-threaded server, this migration guide
+should be used as a first step to getting any old settings migrated over and
+thus allowing the server to continue working after an upgrade of Symbian platform. </p> <p>Once
+migrated, the other sections in this article provide further useful information
+regarding configuring CMI files for better performance in line with the requirements
+of the particular device. </p> <p>The quick migration involves two steps: </p> <ul>
+<li id="GUID-07F882AE-797F-5326-A4C3-DC596F3BC888"><p>apply any special configuration
+used with the previous single-threaded C32 Serial Server to the new configuration
+files supplied with the multi-threaded server </p> </li>
+<li id="GUID-423E4236-73EA-51CA-B9E3-03761078DF86"><p>adjust the default set
+of configuration files supplied with the multi-threaded server to suit the
+particular serial plug-ins in use </p> </li>
+</ul> <p>These two steps are explained in more detail in the following sections. </p> <p><b>Migrating settings</b> </p> <p>The original single-threaded Serial Server
+was controlled by a single configuration file called (by default) <filepath>c32.cmi</filepath>,
+located in <filepath>\private\101f7988</filepath>. A default version of this
+file shipped with Symbian platform, although a device manufacturer could change
+this file. The default version of this file was: </p> <codeblock id="GUID-897E8787-4E34-5D80-B04F-85E94EE5B570" xml:space="preserve">## Comms Configurator config file for the C32 server
+
+[Loader]
+Name=CCommServer
+FileName=c32.dll
+ThreadFunctionOrdinal=87
+IsServer=1
+IsSticky=1
+Priority=EPriorityMuchMore
+StackSize=8192
+ScaledStartupState=0x1085
+HeapOption=EDefaultHeap
+MinHeapSize=256
+MaxHeapSize=524288
+SystemCritical=1</codeblock> <p>The multi-threaded C32 Serial Server (C32MT)
+ships by default with five configuration files, since by default it supports
+five different threads. These configuration files are: </p> <codeblock id="GUID-AE8071D9-1ECD-58EF-AC33-713B42EDB7F8" xml:space="preserve">\private\101f7988\c32.cmi
+\private\101f7988\c32_first.cmi
+\private\101f7988\c32_second.cmi
+\private\101f7988\c32_third.cmi
+\private\101f7988\c32_fourth.cmi</codeblock> <p>They are an extended version
+of the original CMI file that shipped with the single-threaded C32. For example,
+the first of these configuration files (c32.cmi) looks like: </p> <codeblock id="GUID-6B6FF51B-A9CC-5D9D-99B0-A98BA1634FA2" xml:space="preserve"># c32_main - Comms Configurator config file forming part of the Default C32 server configuration
+
+[Loader]
+Name=C32_Main
+FileName=c32.dll
+ThreadFunctionOrdinal=87
+IsSticky=0
+IsServer=1
+Priority=EPriorityMuchMore
+StackSize=16384
+ScaledStartupState=0x1085
+HeapOption=ENewHeap
+MinHeapSize=256
+MaxHeapSize=524288
+SystemCritical=1
+Group=C32SerComms
+OnDemand=0
+# Don't check heap if shutting down with EImmediate (KCF_ModuleImmediateNoCheck)
+ControlFlags=4
+[IniData]
+Role=Dealer
+WorkerId=0</codeblock> <p>The first step in migrating is to ensure that any
+unique configuration used with the old server is migrated across to the new
+server. The particular parameters that should be considered in this procedure
+are: </p> <codeblock id="GUID-8E2C24C0-8770-57CD-8064-5D85F4096DAE" xml:space="preserve">Priority
+StackSize
+ScaledStartupState
+MinHeapSize
+MaxHeapSize
+SystemCritical</codeblock> <p>These parameters would need migrating to each
+of the five new CMI files. The following notes relate to deliberate changes
+to parameter values between the single and multi-threaded servers: </p> <dl>
+<dlentry>
+<dt><b>HeapOption</b> </dt>
+<dd><p>The value of <codeph>HeapOption</codeph> is different between the old
+and new files - this was made to aid in debugging the new multi-threaded server
+by separating its memory from the rest of the comms system. It can be safely
+changed back if desired. </p> </dd>
+</dlentry>
+<dlentry>
+<dt><b>IsSticky</b> </dt>
+<dd><p>The value of <codeph>IsSticky</codeph> has changed from 1 to 0. The <codeph>IsSticky</codeph> parameter
+is normally unused in a production system for the Serial Server since the
+server runs as a <codeph>SystemCritical</codeph> thread and thus cannot be
+shutdown and, if it panics, the phone would reboot. The change was made to
+facilitate testing, since in a test environment the Serial Server can be shutdown,
+and to facilitate this the value of <codeph>IsSticky</codeph> must be set
+to 0. </p> </dd>
+</dlentry>
+<dlentry>
+<dt><b>StackSize</b> </dt>
+<dd><p>The value of <codeph>StackSize</codeph> has increased from 8192 for
+the single-threaded C32 to 16384 for C32MT. This change is due to the increased
+stack usage of the multi-threaded C32. The value used - 16384 - was based
+on the value proven to work with the similar ESock multi-threaded server.
+It is possible that this value could be trimmed back towards 8192 to save
+memory depending on the CSYs being used, since the ECUART CSY has been tested
+to work with the multi-threaded C32 server with a stack size of just 8192,
+and CSYs are usually much less memory-demanding than the protocols being used
+in ESock. </p> </dd>
+</dlentry>
+</dl> <p><b>Assigning
+CSY plug-ins to threads</b> </p> <p>The second part of migration to the new
+multi-threaded serial server is to alter the default set of CMI files to match
+the plug-ins (CSYs) in use and the desired operation. This step is not mandatory
+since by default C32 will load all plug-ins correctly. But, it is worth considering
+at this stage whether the default configuration needs some changes to match
+the requirements of the device. </p> <p>There are three broad configurations
+available, which are defined by whether one or more CSYs are run in the main
+thread for efficiency. The default configuration supplied with Symbian platform
+runs all the CSYs outside the main thread since this ensures that no CSY can
+deny service to the main server thread. It is expected that this configuration
+will suit most situations, but for more information on the other configurations,
+see the later section <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-5A5FEA44-F43B-51BE-9736-7FC76901DB02">Typical
+Thread Configuration Examples</xref>. </p> <p>As mentioned earlier, the default
+configuration uses five threads. The description for each of these is given
+in the following table: </p> <table id="GUID-0F03B8CD-0142-595A-874F-A35C80F8C991">
+<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry>Worker ID</entry>
+<entry>Summary</entry>
+<entry>CMI file</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>0</p> </entry>
+<entry><p>Main thread </p> </entry>
+<entry><p> <filepath>c32.cmi</filepath>  </p> </entry>
+<entry><p>Runs the serial server to service client requests and pass on to
+the CSYs, possibly in other threads. This thread is expected to be started
+at device boot. </p> </entry>
+</row>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>USB thread </p> </entry>
+<entry><p> <filepath>c32_first.cmi</filepath>  </p> </entry>
+<entry><p>Runs the USB CSY (ECACM). This is separated from all other threads
+so that USB can run at high-speed uninterrupted. This thread is only started
+when a client requires a USB connection. </p> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Baseband thread </p> </entry>
+<entry><p> <filepath>c32_second.cmi</filepath>  </p> </entry>
+<entry><p>Runs the RS232 CSY (ECUART). This thread runs the ECUART plug-in
+separately since ECUART is sometimes used to connect to the baseband. If a
+different CSY is being used to connect to the baseband, it can be added to
+this CMI file and ECUART either moved to another thread, or removed altogether.
+As the baseband requires a high speed and fast response time, it is recommended
+that the baseband CSY should be run in this thread to separate it from all
+other CSYs. This thread is only started when a client requires the CSY. </p> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Bluetooth and IrDA thread </p> </entry>
+<entry><p> <filepath>c32_third.cmi</filepath>  </p> </entry>
+<entry><p>Runs the Bluetooth and IrDA CSYs. These CSYs usually do not have
+high requirements for throughput or response and thus can run together. This
+thread is only started when one of its CSYs is required by a client. </p> </entry>
+</row>
+<row>
+<entry><p>4</p> </entry>
+<entry><p>Default thread </p> </entry>
+<entry><p> <filepath>c32_fourth.cmi</filepath>  </p> </entry>
+<entry><p>Runs any unlisted CSYs. If C32 is asked to load a CSY for which
+no thread has been identified in a CMI file, then C32 will load the CSY in
+this thread. This thread is only started when required. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>For a particular device, the above configuration may need to be
+changed to address the requirements of the device. Typical adjustments to
+consider are: </p> <ol id="GUID-FB351652-6FBA-5176-9C51-AAC40752C333">
+<li id="GUID-EA20A49C-FB32-5BC6-B47A-24F0487F65FD"><p>Change the CSY name
+for Worker ID 2 to match the baseband CSY, and then either move ECUART to
+Worker ID 3 or into its own new thread, or don't add it to any CMI file if
+the device doesn't use the ECUART CSY </p> </li>
+<li id="GUID-E08331AD-4AEA-5CAA-8C28-8B3001E1FAEC"><p>Add any extra low-performance
+CSYs to Worker ID 3 so that they run together with Bluetooth and IrDA. Extra
+CSYs could be run in a new separate thread but there is a memory cost for
+each new thread added so this should be considered (8K is typically allocated
+to a new thread, see <xref href="GUID-49379616-C235-598D-AE43-668998AD072B.dita#GUID-49379616-C235-598D-AE43-668998AD072B/GUID-5A573FEB-A274-5C0F-A6B6-87D5BAD8A21C">Process,
+thread, stack and memory useful information</xref>, and there is a limit to
+the number of threads with their own heaps that can be started in the Root
+Server). </p> </li>
+<li id="GUID-45D296E1-654C-5181-A38E-4D0AFC23A4A6"><p>For any extra high-performance
+CSYs, create a new CMI file so that these can run separately from the other
+CSYs. See <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-C8EA2AA7-28CB-5F89-A0CC-CF20EF21AE6D">Creating
+A New CMI</xref> below </p> </li>
+<li id="GUID-BC119A2C-445A-5EF7-92DF-17D7E28A1A3B"><p>Prioritise important
+threads (or reduce the priority of lesser threads). Candidates for increased
+priority would be the Main, USB and Baseband threads. Care should be taken
+when adjusting thread priorities since these affect the whole Comms system
+- more guidance on setting thread priorities is available in the document <i>How
+To Assign Thread Priorities</i> elsewhere in this developer library. </p> </li>
+</ol> <p>When making these adjustments note that there is no cost involved
+with mentioning CSYs that may never be loaded. </p> </section>
+<section id="GUID-E7F95EA1-D91D-4623-B163-8BE198CC991C"><title>Overview of the C32 multi-threaded CMI files</title> <p>C32
+Multithreading uses the same Dealer/Player terminology/concepts as Esock Multithreading.
+The <b>Dealer</b> is the main C32 Comms Provider Module (CPM) which runs the
+C32 server; a Player is a C32 CPM that only runs one or more CSYs and takes
+the client requests from the Dealer module. </p> <p>For example: </p> <p> <b>C32.cmi</b>  </p> <codeblock id="GUID-569AA81E-8689-5B15-A2C8-24E9163398A7" xml:space="preserve">[Loader]
+Name=C32_Main
+FileName=c32.dll
+ThreadFunctionOrdinal=87
+IsServer=1
+IsSticky=0
+ThreadPriority=EPriorityMuchMore
+StackSize=16384
+ScaledStartupState=0x1085
+HeapOption=ENewHeap
+MinHeapSize=256
+MaxHeapSize=524288
+SystemCritical=1
+Group=C32SerComms
+OnDemand=0
+[IniData]
+Role=Dealer
+WorkerId=0
+</codeblock> <p>The <xref href="GUID-83297976-F146-3B82-BE1C-C1E8F8B9DEE5.dita"><apiname>ThreadFunctionOrdinal</apiname></xref> identifier must
+refer to the correct ordinal number of the main thread function for the DLL
+file containing the Comms Provider Module. Due to binary compatibility considerations
+this must be placed at ordinal "87" in the export table. A Comms Provider
+Module/CPM is essentially a thread managed by the Comms Configurator. </p> <p>The
+description of each of the settings under <codeph>[Loader]</codeph> that are
+specific to C32 and the settings under <codeph>[IniData]</codeph> are described
+in further detail below. </p> <p>As well as the C32 server thread, any other
+CPMs that C32 needs must also have their own CMI file. One such example file
+is: </p> <p> <b>C32_Default.cmi</b>  </p> <codeblock id="GUID-7E488DEF-535C-5C13-9DEA-246B11DF39E4" xml:space="preserve">[Loader]
+Name=C32_Default
+FileName=c32.dll
+ThreadFunctionOrdinal=87
+IsServer=1
+IsSticky=0
+ThreadPriority=EPriorityMuchMore
+StackSize=16384
+ScaledStartupState=0x3040
+HeapOption=EShareHeap
+SharedHeapName=C32_Main
+MinHeapSize=256
+MaxHeapSize=524288
+SystemCritical=0
+Group=C32SerComms
+OnDemand=1
+Binding0=C32_Default:4,C32_Main:0,ECustom,42,42
+[IniData]
+Role=Player
+WorkerId=4
+CSYList=*</codeblock> </section>
+<section id="GUID-AEEFD832-108E-5CC2-AD5D-5CF6414CA720"><title>C32 CMI Parameter
+Descriptions</title> <p>This section gives details about the parameters available
+in the CMI file relevant to C32. The CMI file has two sections - a <codeph>[Loader]</codeph> section
+and an <codeph>[IniData]</codeph> section. The <codeph>[Loader]</codeph> section
+parameters are defined for the CPM, and the ones relevant to C32MT are detailed
+below. The <codeph>[IniData]</codeph> section contains parameters specific
+to a CPM. If further information on the format of the CMI file itself or the <codeph>[Loader]</codeph> parameters
+is required, please refer to the document <i>Comms Process Starter/Config
+Design Document</i> section <i>3.1.1</i>. This document is located in this
+developer library as well as in the <filepath>comms-infras\rootserver\Documentation</filepath> folder. </p> <p><b>A note on CMI processing</b> </p> <p>No mechanism is provided to change
+CMI files at run-time, since they are designed to be configured for inclusion
+in a ROM and then not changed through the life of a phone product. After-market
+changing of the configuration is supported via the installation of CMI files
+in a non-ROM folder which then take precedence over the ROM files when the
+device is next rebooted. Thus, any CMI configuration file problems should
+become apparent during the early stages of phone development. </p> <p>A bad
+configuration will panic in debug builds to signal the user to change/edit
+the <codeph>.CMI</codeph> files in order to make a desired and correct configuration.
+In <codeph>urel</codeph> builds a bad configuration may survive (unless the <codeph>.CMI</codeph> files
+are very malformed) but at a cost that all CSYs are loaded in the Dealer Thread
+(<codeph>Workerid=0</codeph>) making it in effect a single threaded system. </p> <p>The
+panic numbers used by the C32 Serial Server for internal server faults are
+defined in the enum <xref href="GUID-FED70722-0258-3B96-A941-1F7C13699002.dita"><apiname>TECommFault</apiname></xref>. </p> <p><b> CMI [Loader] Parameters relevant to C32</b> </p> <p><b>OnDemand </b> </p> <p>This indicates whether the CPM is started as part
+of the Configurator’s CPM load on boot ("0"), or whether the CPM should only
+be loaded via an explicit request to Configurator ("1"). The default value
+is "0". The <codeph>OnDemand</codeph> parameter for the main thread can only
+be "0" if mentioned. For Player modules the setting can be either "0" or "1".
+If a Player thread is not marked as <codeph>OnDemand=1</codeph> then it will
+load during the boot sequence. If the main thread (<codeph>Workerid=0</codeph>)
+is marked as <codeph>OnDemand=1</codeph>, then this is a configuration error
+and C32 can never be started (although in theory this is possible - see <xref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita#GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566/GUID-6350761E-18F6-53B7-98F8-C6E2EB5DA942">Footnote
+1</xref> below). Players marked to load at boot up do not load any CSYs implicitly
+as part of the boot load. </p> <p>All Player modules for C32 must be marked
+with <codeph>OnDemand=1</codeph> since the C32 Dealer must instigate a Player
+load. If a Player thread is not marked as <codeph>OnDemand=0</codeph> then
+it will load during the boot sequence. </p> <p><b>Group </b> </p> <p>All CMI files for C32 must map to the same Group ID.
+The actual Group ID for the C32 group is <codeph>C32SerComms</codeph>. CMI
+files for C32 Players that do not have a Group member will never be loaded
+by C32 (assuming <codeph>OnDemand=1</codeph> is set for the Player threads). </p> <p>If
+there is no group defined in any CMI files and therefore no <b>[IniData]</b> is
+processed for any of them, then C32 will simply assign all CSYs to load into
+the Dealer thread. </p> <p> <b>Name</b>  </p> <p>This parameter is used to
+identify the CPM to the Configurator and is used to name the thread for the
+kernel. It is stored by C32 for all CMI files in the C32SerComms group for
+use when requesting Configurator to load or unload a CPM. As this value is
+easily configurable and is used to name the thread to the kernel, software
+should not rely on the name of any C32 thread being any particular string.
+Prior to the multithreaded C32 (C32MT), the C32 thread was conventionally
+known as <codeph>CCommServer</codeph>. However, with C32 now potentially having
+a multiplicity of threads, other schemes are probable such as <codeph>C32_Main,
+C32_USB and C32_BaseBand</codeph> or <codeph>C32_BT-IR and              C32_Default</codeph>  </p> <p>The
+Dealer and all Players in the C32 group can have any name since C32 will find
+them as part of the same group (see Group above). The names in the C32 group
+should all be unique – if the same name is found twice or more C32 will panic
+in debug builds but attempt to recover in release builds by only processing
+the first that it finds. This is still a highly risky situation since if C32
+needs to start that module in order to accommodate a CSY, Configurator may
+load the wrong CMI file when creating the new thread. </p> <p>When introducing
+new CMIs, care should be taken to change the <codeph>BindingN</codeph> line
+in CMI to reflect the new modulename and WorkerId. </p> <p><b>CMI [IniData] Parameters relevant to C32</b> </p> <p>In the case where
+C32 has a CMI file that loads the C32 binary during boot up, but the CMI file
+does not have an <codeph>[IniData]</codeph> section, C32 will assume that
+this CMI is for the main thread and that the CMI is a pre-C32MT file. However,
+for C32MT, this is an undesired configuration and should be rectified. Old
+versions of <codeph>c32.cmi</codeph> are only kept in the source distribution
+to support backwards compatibility and should not be used in a system which
+has C32MT present. In such backwards-compatible modes of C32MT, the main thread
+will host a Player in case no other CMI files are present. </p> <p> <b>Role</b>  </p> <p>The
+value for this parameter should be either <codeph>Dealer</codeph> or <codeph>Player</codeph>.
+Only one <codeph>Dealer</codeph> can exist in a C32 system, but there can
+be any number of <codeph>Player</codeph> s. If there are two or more <codeph>Dealer</codeph> CMI
+files, the <codeph>ScaledStartupState</codeph> determines which Dealer CMI
+starts first. If both the CMIs have the same <codeph>ScaledStartupState</codeph>,
+then they are loaded in alphabetical order. Configurator is guaranteed to
+start a C: CMI file before the Z: one. If they both have the same module name
+then it is safe since Rootserver will refuse the load of the second module
+with the same name failing with <codeph>KErrAlreadyExists</codeph>. However,
+if the module name is different Rootserver will load them both and C32 will
+detect that an instance of itself is already running and exit the second thread.
+Only the IniData for the CMI file that was used to start the Dealer will be
+processed, with all other Dealer CMI files being ignored. If the main thread
+is to include a co-resident Player, the iniData should include the <codeph>CSYList</codeph> key-value
+pair discussed below. </p> <p> <b>WorkerId</b>  </p> <p>The ID number of this
+thread inside the C32 system. The Id numbers should be a positive integer
+or "0" in the case of the main thread (In case CMI file of <codeph>WorkerId=0</codeph> has
+anything else than Dealer as role, it is overridden with Role=Dealer, logging
+a warning). The system expects subsequent ID numbers to be incremented up
+from the main thread's ID. Where a CMI file in the C32 group does not have
+a WorkerId, it is a bad configuration and will panic in debug builds. Allocating
+the next higher number is not possible as this Player needs to be bound with
+the Dealer using the <codeph>BindingN</codeph> line which accepts <codeph>WorkerId</codeph> parameter.
+In case of duplicate <codeph>WorkerId</codeph>, a panic occurs as the second
+module cannot be bound to the Dealer as the binding for the main thread has
+already been done. </p> <p> <b>CSYList</b>  </p> <p>A comma-separated list
+of the filenames of the CSYs this thread will own. All CMIs in the C32 group
+must have a CSY list, except for the Dealer which can optionally have a <codeph>CSYList</codeph>.
+A Player with no <codeph>CSYList</codeph> represents a bad configuration as
+a Player’s sole purpose is to load CSYs. Such a Player with no CSY list will
+never be started by C32. A Dealer with no CSY list will act purely as a Dealer.
+A Dealer with a CSY list becomes a Dealer with a co-resident Player inside
+its thread. <codeph>CSYList</codeph> param determines if the CPM will host
+a Player or not. </p> <p>If a CSY appears in more than one CMI file, then
+the CSY will be assigned to one thread, but not necessarily that with the
+least number of CSYs in it. </p> <p>The comma-separated list should not have
+any spaces or other white space in it, and each CSY name must be an alphanumeric
+string. The CSY name is not case sensitive, and should not have the <codeph>.CSY</codeph> extension.
+C32 does not check whether the supplied CSY names actually exist as binaries,
+since it only refers to the list when a client asks to load a particular CSY. </p> <p>If
+an asterix ("*") appears as a CSY name in the CSY list, this is inferred by
+C32 as meaning that this thread is also to be used to load any CSYs not mentioned
+in any CMI file, and is known as the <i>default</i> thread. If two different
+CMI files in the C32 group have the wildcard then only one CMI file will be
+marked as being the host for unknown CSYs – it is not defined as to which
+one. If no CMI file has a wildcard then C32 will assign the wildcard to an
+unused Player thread so that all unlisted CSYs are isolated into their own
+thread. This is overridden if the only CMI file is for the Dealer, in which
+case the Dealer will load all CSYs into its own co-resident Player, since
+the Dealer cannot request the Configurator to start a module for which there
+is not an associated CMI file. </p> </section>
+<section id="GUID-8E49AE8A-E940-52F3-ADA5-0332DA1D58D2"><title>Important Notes</title> <p>Field
+names in the <codeph>[IniData]</codeph> are case sensitive, but fields values
+are not. </p> <p>The <codeph>BindingN</codeph> line is responsible for binding
+the Player CPM with Dealer. If you leave out the <codeph>BindingN</codeph> line
+from the CMI then the new Player will in essence remain as an island and no
+requests for loading or any subsequent operation can be passed to it from
+Dealer. This will not result in a panic. </p> <p>The <codeph>C32_Main.cmi</codeph> doesn’t
+have a <codeph>BindingN</codeph> line since it is a Dealer and thus does not
+need to bind to another Dealer. </p> </section>
+<section id="GUID-C8EA2AA7-28CB-5F89-A0CC-CF20EF21AE6D"><title>Creating A
+New CMI</title> <p>To create a new CMI file, copy an existing Player CMI file,
+rename it and change the necessary parameters as detailed below. The examples
+below assume that the base CMI used was the supplied <codeph>c32_fourth.cmi</codeph>.
+The following parameters need to be changed to make a valid configuration
+file: </p> <p>In <b>[Loader] </b> section are: </p> <ul>
+<li id="GUID-6C3E5830-9A7A-5D84-B4A5-FCA7FD66E31A"><p> <b>Name</b> - This
+is the module name of CPM. </p> </li>
+<li id="GUID-D5BDBEAC-A417-5D39-BB85-4E5AB9DDD36A"><p> <b>BindingN</b> - BindingN
+line is changed to reflect the new module name and <codeph>WorkerId</codeph> value </p> </li>
+</ul> <p>In<b> [IniData] </b> section: </p> <ul>
+<li id="GUID-3855C593-297D-5360-9926-0A1BFFAC3B12"><p> <b>WorkerId</b> - This
+value is numeric and must be unique </p> </li>
+<li id="GUID-EA091203-C0E9-5303-9FD5-924F3C67FB55"><p> <b>CSYList</b> - Contains
+CSYs which you want to load in this new CPM, separated by commas, no white
+spaces allowed. </p> </li>
+</ul> <p>Since the additional CMI being added is a <codeph>Player</codeph>,
+the Role field remains the same and it can not be changed to <codeph>Dealer</codeph> as
+the CPM with <codeph>WorkerId=0</codeph> is the one and only Dealer in the
+C32MT. </p> <codeblock id="GUID-8722A0B7-FB88-5516-846B-BCC4E11D0EEE" xml:space="preserve">[Loader]
+# Change the Name value to your CSY name
+Name=C32_Default  // </codeblock> <p>Change the <codeph>Name</codeph> value
+to the name of your CSY, e.g. </p> <codeblock id="GUID-EDCEA3C0-D4E6-5075-9FDE-65425194D6E5" xml:space="preserve">Name=C32_MyCSYs</codeblock> <codeblock id="GUID-B7D87670-C791-533F-A8F1-6135050387E2" xml:space="preserve">FileName=c32.dll
+ThreadFunctionOrdinal=87
+ThreadPriority=EPriorityMuchMore
+StackSize=16384
+ScaledStartupState=0x3040
+HeapOption=ENewHeap
+MinHeapSize=256
+MaxHeapSize=524288
+SystemCritical=1
+Group=C32SerComms
+OnDemand=1</codeblock> <p>Change the BindingN line to refer to your CSY, for
+example change from </p> <codeblock id="GUID-81BEFC33-67EE-5547-8C7C-E473F902F145" xml:space="preserve"># Change the BindingN line to refer to your CSYs
+Binding0=C32_Default:4,C32_Main:0,ECustom,42,42</codeblock> <p>to </p> <codeblock id="GUID-2B7683AF-E01F-5C7A-896B-E3E4F37FAF23" xml:space="preserve">Binding0=C32_MyCSYs:5,C32_Main:0,ECustom,42,42</codeblock> <p>And
+in the <b>[IniData]</b> section: </p> <codeblock id="GUID-A0AA8BA4-AA45-5FAE-95D4-24764695F04B" xml:space="preserve">[IniData]
+# Make sure Role is set to "Player"
+Role=Player</codeblock> <p>Change the <b>WorkerId</b>, for example from <codeph>WorkerId=4</codeph> to </p> <codeblock id="GUID-D334F3C3-38B7-578F-8E9C-2C4FBBB05C06" xml:space="preserve">WorkerId=5</codeblock> <p>and
+change the <b>CSYList</b> to specify your CSYs, e.g. change "CSYList=XX,YY,zz"
+to </p> <codeblock id="GUID-9AAAD2C9-A0D0-5733-8EFC-1CB848DB8785" xml:space="preserve">CSYList=MyCSY1,MyCSY2</codeblock> </section>
+<section id="GUID-5A5FEA44-F43B-51BE-9736-7FC76901DB02"><title>Typical Thread
+Configuration Examples</title> <p>This section describes the three broad configurations
+for threading available for the C32 Serial Server. Each has different potential
+effects on the performance of C32. </p> <p>The three broad configurations
+available, with a summary of their costs and benefits, are detailed in the
+following table: </p> <table id="GUID-5552EBC6-3387-59E6-85AC-9585F31C6ABB">
+<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry/>
+<entry>Configuration</entry>
+<entry>Advantages</entry>
+<entry>Disadvantages</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>Run all CSYs outside the main thread <b>[Default supplied CMI set]</b>  </p> </entry>
+<entry><ul>
+<li id="GUID-3BD88C6F-9C4E-5001-B7D1-2A9DC3BBE649"><p>Some CSYs can be promoted
+ahead of others using thread priorities </p> </li>
+<li id="GUID-1C1C0DF2-5EED-5AE4-820A-B3020AF66AE6"><p>Main thread cannot ever
+stall when any CSY stalls </p> </li>
+<li id="GUID-F4331549-9283-5E78-AEE1-32C4CF0F11E3"><p>Stackable CSYs are possible:
+a CSY can connect to another CSY through the C32 API as long as both are in
+different threads </p> </li>
+</ul> </entry>
+<entry><ul>
+<li id="GUID-898ED70D-CCB3-5D56-A9A9-49C19BC3C5DC"><p>Operations on CSYs are
+a bit slower due to increased overhead of inter-thread communication </p> </li>
+<li id="GUID-DA120612-E01B-51A4-8B77-F582D8170318"><p>Complex to debug </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Run some CSYs in the main thread </p> </entry>
+<entry><ul>
+<li id="GUID-70EFC61A-5D52-55D1-B364-096F84D0EBDF"><p>CSYs in the main thread
+avoid the overhead of inter-thread communication </p> </li>
+<li id="GUID-63D0CE88-5B6D-5787-A2B4-936B48D16FB2"><p>Some CSYs can be promoted
+ahead of others using thread priorities </p> </li>
+<li id="GUID-71641750-5882-53FC-9B40-0421050E5355"><p>Main thread cannot stall
+when a CSY in a separate thread stalls </p> </li>
+<li id="GUID-88EEE21E-42CF-5401-B985-427E7B3641E9"><p>Stackable CSYs are possible:
+a CSY can connect to another CSY through the C32 API as long as both are in
+different threads </p> </li>
+</ul> </entry>
+<entry><ul>
+<li id="GUID-70FDC4C2-FACB-592F-AA96-9C3F980FA842"><p>If any CSY in the main
+thread stalls, the whole server stalls </p> </li>
+<li id="GUID-E5F158D5-4720-5869-9B67-7FC3001B75F2"><p>No means to prioritise
+one CSY ahead of others (without changing the CSY code) </p> </li>
+<li id="GUID-A773FE9F-AC77-59B0-AECB-FB5C8174583C"><p>Operations on CSYs outside
+the main thread are a bit slower due to the increased overhead of inter-thread
+communication </p> </li>
+<li id="GUID-C0505A00-C777-582A-8B98-C1E53AC094B7"><p>Complex to debug </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Run all CSYs in the main thread <b>[Default configuration when any
+CMI files are corrupt]</b>  </p> </entry>
+<entry><ul>
+<li id="GUID-537C35E5-041E-5BDC-9298-26F89CE5E51F"><p>Simplest to debug since
+no inter-thread communication </p> </li>
+<li id="GUID-EFDEEA79-10D8-5FBF-B630-268F14362C0D"><p>All CSYs avoid the overhead
+of inter-thread communication </p> </li>
+</ul> </entry>
+<entry><ul>
+<li id="GUID-F0C2BD50-CFAD-5E99-AFDF-65BF96B5BB67"><p>If any CSY stalls, the
+whole server stalls </p> </li>
+<li id="GUID-83EDBE8F-17BD-514A-B0D5-5A6020A8DF56"><p>No means to prioritise
+one CSY ahead of others (without changing the CSY code) </p> </li>
+<li id="GUID-BE4157B4-0D0D-5520-8E85-A6C4755410B3"><p>No stackable CSYs are
+possible </p> </li>
+</ul> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The default set of CMI files supplied with Symbian platform
+is based on the first broad configuration since it was decided that the small
+cost of running all CSYs outside the main thread is justified by the increased
+reliability to the whole C32 system of ensuring no CSY can deny service to
+the C32 server. Each of these configurations is explained in more detail below. </p> <fig id="GUID-BC275667-5D19-56CA-ABD9-68265A852282">
+<title>              Figure 1 - No CSYs in main thread: RootServer with 4
+C32 CPMs            </title>
+<image href="GUID-085CD9C3-706F-51E7-A1D5-95483D3C9254_d0e117574_href.png" placement="inline"/>
+</fig> <p>Referring to Figure 1, the following can be observed: </p> <ol id="GUID-DA3BC841-1BE9-5483-8EC0-7BA479D85C14">
+<li id="GUID-EAD7752C-A094-51CA-903C-52DCF2AB5353"><p>The Main Thread has <codeph>WorkerId=0</codeph>,
+Role as Dealer and is configured to load no CSY </p> </li>
+<li id="GUID-CE4A7176-2BD6-5149-B24A-45DCD0945C76"><p>The Player Thread 1
+has <codeph>WorkerId=1</codeph>, Role as Player and is configured to load
+ECACM CSY </p> </li>
+<li id="GUID-A327174B-CA1A-5AD8-92E9-9895363D7851"><p>The Player Thread 2
+has <codeph>WorkerId=2</codeph>, Role as Player and is configured to load
+ECUART CSY </p> </li>
+<li id="GUID-6015DA12-C259-5B9F-9D72-CFF86AA91435"><p>The Player Thread 3
+has <codeph>WorkerId=3</codeph>, Role as Player and is configured to load <i>unlisted</i> csy.
+What unlisted csy means here is that apart from ECACM and ECUART, if any new
+csy is to be loaded, it will get loaded in this thread. </p> </li>
+</ol> <p>The <b>[IniData]</b> section for the above CPMs would look like: </p> <codeblock id="GUID-CE1D7541-5103-5E9B-A20A-11A6C17ABFCA" xml:space="preserve">[IniData]
+Role=Dealer
+WorkerId=0
+</codeblock> <codeblock id="GUID-51C4FC4E-1F85-59D3-9F9D-FC6868042363" xml:space="preserve">[IniData]
+Role=Player
+WorkerId=1
+CSYList=ECACM
+</codeblock> <codeblock id="GUID-F21BBEC3-482A-59C4-BBE7-9B304F07EDB3" xml:space="preserve">[IniData]
+Role=Player
+WorkerId=2
+CSYList=ECUART
+</codeblock> <codeblock id="GUID-74C70C5D-2B37-5AF8-B703-4072610C6C3E" xml:space="preserve">[IniData]
+Role=Player
+WorkerId=3
+CSYList=*
+</codeblock> <fig id="GUID-92921AF5-D056-52A9-B10E-80760DE9CD2F">
+<title>              Figure 2 - All CSYs in main thread: RootServer with single
+C32 CPM            </title>
+<image href="GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e117641_href.png" placement="inline"/>
+</fig> <p>In Figure 2 the CPM loads any CSYs, and so should contain <codeph>CSYList</codeph> tag
+in the IniData section. </p> <p>The Main Thread has <codeph>WorkerId=0</codeph>,
+Role as Dealer and is configured to load <i>any</i> CSY. In this configuration
+since it is a single thread, all the CSYs will be loaded in the same thread. </p> <p>The <b>[IniData]</b> section
+for above CPM would look like: </p> <codeblock id="GUID-BCDEB67F-85D0-560A-AC5B-7D05B807B857" xml:space="preserve">[IniData]
+Role=Dealer
+WorkerId=0
+CSYList=*
+</codeblock> <fig id="GUID-8F658644-2E07-53A3-A003-C1F015E1396B">
+<title>                 Figure 3 - Some CSYs in main thread: RootServer with
+3 CPMs               </title>
+<image href="GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e117673_href.png" placement="inline"/>
+</fig> <p>From Figure 3, the following can be observed. </p> <ol id="GUID-E945237B-900A-588A-A3FF-C0B75A43BB4A">
+<li id="GUID-0A3CEB52-2C0F-5BB9-A271-756F9F374111"><p>The Main Thread has <codeph>WorkerId=0</codeph>,
+Role as Dealer and is configured to load HSDPA csy </p> </li>
+<li id="GUID-34EF4E58-A6DB-5EFB-8C13-EE8064A7E3F7"><p>The Player Thread 1
+has <codeph>WorkerId=1</codeph>, Role as Player and is configured to load
+ECACM csy </p> </li>
+<li id="GUID-BFF9FDF7-C714-5D0A-B8B3-DC4CCB2EC8FB"><p>The Player Thread 2
+has <codeph>WorkerId=2</codeph>, Role as Player and is configured to load
+an unlisted csy </p> </li>
+</ol> <p>The IniData section for above CPMs would look like: </p> <codeblock id="GUID-E5A77235-60E5-526D-A95C-750FCDCA96BE" xml:space="preserve">[IniData]
+Role=Dealer
+WorkerId=0
+CSYList=HSDPA
+</codeblock> <codeblock id="GUID-ED3EE5DE-65C4-50CB-AEA1-59D89FBC0EF3" xml:space="preserve">[IniData]
+Role=Player
+WorkerId=1
+CSYList=ECACM</codeblock> <codeblock id="GUID-00F4F479-B153-5F05-8E13-D2276D70B605" xml:space="preserve">[IniData]
+Role=Player
+WorkerId=2
+CSYList=*</codeblock> </section>
+<section id="GUID-6350761E-18F6-53B7-98F8-C6E2EB5DA942"><title>Footnotes</title> <dl>
+<dlentry>
+<dt><b>Footnote 1</b> </dt>
+<dd><p>In theory the C32 main thread (<codeph>Workerid=0</codeph>) could be
+marked as on-demand and started by the first client to connect to it. This
+might be useful since it would save device boot time for a device that does
+not need serial comms as part of boot up. The process would require the client
+to connect to Configurator and load the C32 main module explicitly. For this
+to work the main Module’s name would have to be fixed (the reference system
+uses “<codeph>C32_Main</codeph> ”) so that the client can identify it to Configurator
+- which is not a big problem, and the client would need the appropriate capabilities
+(also not a big problem as the client could well be inside Rootserver too).
+The other problem is that making it on-demand requires that it is still started
+by a priviledged process before any unpriviledged process attempts to use
+the C32 API (since this will fail unless no CSYs require any capabilities).
+Therefore, for on-demand main thread-loading to work, intimate details about
+the specific configuration of CSYs for a device and their potential clients
+would be needed. </p> </dd>
+</dlentry>
+</dl> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4" xml:lang="en"><title>How
-to use the SIP Codec API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section provides the information about the protocol and error handling
-related to the SIP Codec API. </p>
-<section id="GUID-6ED042DA-40C0-5FC2-931B-2B9A0B3D7182"><title>Protocol</title><p>The
-following illustration shows the steps for creating a CSIPContactHeader instance.
-  </p><fig id="GUID-6E4ECB08-CAED-4062-BCF3-AE2210317B52">
-<title>Creating a Contact Header </title>
-<image href="GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e340971_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-1E82D5DB-9B70-5C2F-A2E8-B777727F8468"><title>Error handling</title><p>If
-an error occurs during a synchronous operation initiated by the client, the
-function that is called exits with the correct error code.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4" xml:lang="en"><title>How
+to use the SIP Codec API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section provides the information about the protocol and error handling
+related to the SIP Codec API. </p>
+<section id="GUID-6ED042DA-40C0-5FC2-931B-2B9A0B3D7182"><title>Protocol</title><p>The
+following illustration shows the steps for creating a CSIPContactHeader instance.
+  </p><fig id="GUID-6E4ECB08-CAED-4062-BCF3-AE2210317B52">
+<title>Creating a Contact Header </title>
+<image href="GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e334814_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-1E82D5DB-9B70-5C2F-A2E8-B777727F8468"><title>Error handling</title><p>If
+an error occurs during a synchronous operation initiated by the client, the
+function that is called exits with the correct error code.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,111 +1,111 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC" xml:lang="en"><title>Redraw
-Stores</title><shortdesc>Redraw stores store the sequence of drawing commands representing
-window contents. Whenever possible, the Window Server performs server-initiated
-redraws by repeating the sequence of stored commands, rather than by sending
-redraw requests to the client. This minimises the number of client-server
-transactions and means that redraws are done as soon as the server detects
-that they are needed. This topic explains some of the background to redraw
-stores. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>:
-Device creators. </p>
-<p>The classes involved with redraw stores are as follows: </p>
-<fig id="GUID-85C23EC3-BADE-5DE1-872D-0D8399209874">
-<title>           Redraw stores class diagram          </title>
-<image href="GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e201481_href.png" placement="inline"/>
-</fig>
-<p> <xref href="GUID-FF963788-695A-320F-9E81-76E45B0287D1.dita"><apiname>CWsRedrawMsgWindow</apiname></xref> is the class representing a redraw
-store. Draw commands are stored in a number of segments, stored in the nested
-class <xref href="GUID-53F68722-1A1D-30D8-960E-226843AB56E1.dita"><apiname>CRedrawSegment</apiname></xref>. </p>
-<p>Redraw drawing takes place as follows: </p>
-<ol id="GUID-2C26C7D9-1C38-55E1-BF14-A36A9F9F05F3">
-<li id="GUID-2FCE8CBF-6BF3-5033-8BB7-935D0B276F7C"><p>A call to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref> causes
-either the whole window, or a rectangle within it, to be marked as invalid. </p> </li>
-<li id="GUID-EB4CAD7F-1B3C-5D2A-85FD-31D0C7F9503D"><p>Next, a call to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> is
-made, either for the whole window or for a rectangle within it. </p> </li>
-<li id="GUID-88AF657A-8C5E-5CE8-BEF9-F8C1E34F6174"><p>Draw operations take
-place. </p> </li>
-<li id="GUID-58BC4A48-5035-582D-BE17-C15A885F4B5F"><p>Finally there is a call
-to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
-</ol>
-<p>In this sequence, the draw operations within the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> brackets
-are interpreted as <i>replacing</i> whatever drawing was previously present
-in the affected rectangle. </p>
-<p>It is important to bracket all drawing within <codeph>BeginRedraw(TRect)</codeph> and <codeph>EndRedraw(TRect)</codeph> calls.
-In ScreenPlay, the Window Server ignores all drawing not within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> brackets
-and triggers a full-window redraw. In debug builds, there is an option to
-panic clients violating this convention. </p>
-<p>For more information, see <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">Redraw
-Drawing</xref>. </p>
-<section id="GUID-27FE041D-3DE3-4290-AF6D-38DDB8970008"><title>Redraw segments and non-redraw handling</title> <p>When the
-Window Server receives a batch of redraw drawing, everything between a BeginRedraw/EndRedraw
-bracket is stored in a single <b>redraw segment</b>. The segment is marked
-as <codeph>ESegmentTypePendingRedraw</codeph> while it is being received,
-and <codeph>ESegmentTypeRedraw</codeph> once it is complete. </p> <p>Redraw
-segments have a region to which they apply. For <codeph>ESegmentTypeRedraw</codeph>,
-the region is initially set to be the rectangle passed into the <codeph>BeginRedraw()</codeph> call.
-When a new<codeph>ESegmentTypeRedraw</codeph> is created, its region is subtracted
-from the regions of all existing segments. This reflects the fact that redraw
-drawing <i>replaces</i> existing drawing. If, as a consequence of new redraw
-drawing, the region of an existing segment becomes empty, that segment is
-discarded. Its drawing has been replaced everywhere, so it is no longer needed. </p> <p>What
-happens to drawing that is received between an <codeph>EndRedraw</codeph> and
-the next <codeph>BeginRedraw</codeph> —and which is therefore <b>non-redraw
-drawing</b> —depends on which variant is in use: </p> <ul>
-<li id="GUID-0B29AC2F-AD48-5EAB-B3BE-B8FC296B092A"><p>In ScreenPlay, non-redraw
-drawing is not stored in a segment but instead triggers the Window Server
-to invalidate the entire window. This means that the client application must
-then perform a full window redraw. </p> </li>
-<li id="GUID-B592A6D0-68B7-5A16-B179-9F78C5FCDBB3"><p>In the non-ScreenPlay
-variant, non-redraw drawing is stored in a segment marked as <codeph>ESegmentTypeNonRedraw</codeph>.
-For these segments the region is initially set to be the whole window and
-does not affect the regions of existing segments, because non-redraw drawing
-is drawn over existing drawing. </p> </li>
-</ul> </section>
-<section id="GUID-DB24B91E-6628-4B6E-AE9A-ACAB30AA02C3"><title> Redraw store playback</title> <p>When playback is required,
-the redraw store goes through the redraw segments and replays them if the
-region for the segment intersects the region that is to be redrawn. It follows
-from the way that they are managed that the regions of redraw segments are
-mutually disjoint. This means that in ScreenPlay they can be replayed in any
-order. This is also true in the non-ScreenPlay when there are only redraw
-segments present. </p> <p>In the non-ScreenPlay variant, any non-redraw segments
-are replayed in earliest-first order, because they draw on top of earlier
-drawing. </p> </section>
-<section id="GUID-74EC09C2-BB39-42B2-B765-191A7E17A4D6"><title> Aging of non-redraw segments</title> <p> <b>Variant</b>:
-Non-ScreenPlay only. </p> <p>Non-redraw segments can cause inefficient operation
-of redraw stores. For this reason, in the non-ScreenPlay variant where non-redraw
-segments are still used, the Window Server "ages" them. That is, non-redraw
-segments are considered to have a finite lifetime, after which they are discarded.
-When a non-redraw segment is discarded, the Window Server makes a redraw request
-to the client asking it to provide new draw operations for the invalid region. </p> <p>The
-lifetime for non-redraw segments is set in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">WSINI.INI
-file</xref> using the parameter <codeph>NONREDRAWAGELIMIT</codeph>, followed
-by a duration in microseconds. If this line is not present in the <codeph>WSINI.INI</codeph>,
-a default of one second is used. </p> </section>
-<section id="GUID-8CE71B67-21F3-4D16-9A1A-70A70A24EFD3"><title>Atomic Redraws</title> <p> <b>Variant</b>: Both (ScreenPlay
-and non-ScreenPlay). </p> <p>Another <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">WSINI.INI
-file</xref> setting that affects redraw storing is <codeph>ATOMICREDRAWS</codeph>.
-If this parameter is present, new draw operations received after a <codeph>BeginRedraw()</codeph> are
-not considered valid until the corresponding <codeph>EndRedraw()</codeph> is
-received. In particular, a new segment does not replace existing segments
-until it is complete. This has the consequence that if redraw store playback
-is required before the <codeph>EndRedraw()</codeph> for a new segment is received,
-draw operations from old segments for that region are used instead. Thus drawing
-within <codeph>Begin/EndRedraw</codeph> brackets can be considered as an atomic
-operation. This eliminates one potential source of flicker. </p> </section>
-</conbody><related-links>
-<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
-and Drawing </linktext></link>
-<link href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita"><linktext>The wsini.ini
-File Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC" xml:lang="en"><title>Redraw
+Stores</title><shortdesc>Redraw stores store the sequence of drawing commands representing
+window contents. Whenever possible, the Window Server performs server-initiated
+redraws by repeating the sequence of stored commands, rather than by sending
+redraw requests to the client. This minimises the number of client-server
+transactions and means that redraws are done as soon as the server detects
+that they are needed. This topic explains some of the background to redraw
+stores. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>:
+Device creators. </p>
+<p>The classes involved with redraw stores are as follows: </p>
+<fig id="GUID-85C23EC3-BADE-5DE1-872D-0D8399209874">
+<title>           Redraw stores class diagram          </title>
+<image href="GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e196473_href.png" placement="inline"/>
+</fig>
+<p> <xref href="GUID-FF963788-695A-320F-9E81-76E45B0287D1.dita"><apiname>CWsRedrawMsgWindow</apiname></xref> is the class representing a redraw
+store. Draw commands are stored in a number of segments, stored in the nested
+class <xref href="GUID-53F68722-1A1D-30D8-960E-226843AB56E1.dita"><apiname>CRedrawSegment</apiname></xref>. </p>
+<p>Redraw drawing takes place as follows: </p>
+<ol id="GUID-2C26C7D9-1C38-55E1-BF14-A36A9F9F05F3">
+<li id="GUID-2FCE8CBF-6BF3-5033-8BB7-935D0B276F7C"><p>A call to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref> causes
+either the whole window, or a rectangle within it, to be marked as invalid. </p> </li>
+<li id="GUID-EB4CAD7F-1B3C-5D2A-85FD-31D0C7F9503D"><p>Next, a call to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> is
+made, either for the whole window or for a rectangle within it. </p> </li>
+<li id="GUID-88AF657A-8C5E-5CE8-BEF9-F8C1E34F6174"><p>Draw operations take
+place. </p> </li>
+<li id="GUID-58BC4A48-5035-582D-BE17-C15A885F4B5F"><p>Finally there is a call
+to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
+</ol>
+<p>In this sequence, the draw operations within the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> brackets
+are interpreted as <i>replacing</i> whatever drawing was previously present
+in the affected rectangle. </p>
+<p>It is important to bracket all drawing within <codeph>BeginRedraw(TRect)</codeph> and <codeph>EndRedraw(TRect)</codeph> calls.
+In ScreenPlay, the Window Server ignores all drawing not within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> brackets
+and triggers a full-window redraw. In debug builds, there is an option to
+panic clients violating this convention. </p>
+<p>For more information, see <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">Redraw
+Drawing</xref>. </p>
+<section id="GUID-27FE041D-3DE3-4290-AF6D-38DDB8970008"><title>Redraw segments and non-redraw handling</title> <p>When the
+Window Server receives a batch of redraw drawing, everything between a BeginRedraw/EndRedraw
+bracket is stored in a single <b>redraw segment</b>. The segment is marked
+as <codeph>ESegmentTypePendingRedraw</codeph> while it is being received,
+and <codeph>ESegmentTypeRedraw</codeph> once it is complete. </p> <p>Redraw
+segments have a region to which they apply. For <codeph>ESegmentTypeRedraw</codeph>,
+the region is initially set to be the rectangle passed into the <codeph>BeginRedraw()</codeph> call.
+When a new<codeph>ESegmentTypeRedraw</codeph> is created, its region is subtracted
+from the regions of all existing segments. This reflects the fact that redraw
+drawing <i>replaces</i> existing drawing. If, as a consequence of new redraw
+drawing, the region of an existing segment becomes empty, that segment is
+discarded. Its drawing has been replaced everywhere, so it is no longer needed. </p> <p>What
+happens to drawing that is received between an <codeph>EndRedraw</codeph> and
+the next <codeph>BeginRedraw</codeph> —and which is therefore <b>non-redraw
+drawing</b> —depends on which variant is in use: </p> <ul>
+<li id="GUID-0B29AC2F-AD48-5EAB-B3BE-B8FC296B092A"><p>In ScreenPlay, non-redraw
+drawing is not stored in a segment but instead triggers the Window Server
+to invalidate the entire window. This means that the client application must
+then perform a full window redraw. </p> </li>
+<li id="GUID-B592A6D0-68B7-5A16-B179-9F78C5FCDBB3"><p>In the non-ScreenPlay
+variant, non-redraw drawing is stored in a segment marked as <codeph>ESegmentTypeNonRedraw</codeph>.
+For these segments the region is initially set to be the whole window and
+does not affect the regions of existing segments, because non-redraw drawing
+is drawn over existing drawing. </p> </li>
+</ul> </section>
+<section id="GUID-DB24B91E-6628-4B6E-AE9A-ACAB30AA02C3"><title> Redraw store playback</title> <p>When playback is required,
+the redraw store goes through the redraw segments and replays them if the
+region for the segment intersects the region that is to be redrawn. It follows
+from the way that they are managed that the regions of redraw segments are
+mutually disjoint. This means that in ScreenPlay they can be replayed in any
+order. This is also true in the non-ScreenPlay when there are only redraw
+segments present. </p> <p>In the non-ScreenPlay variant, any non-redraw segments
+are replayed in earliest-first order, because they draw on top of earlier
+drawing. </p> </section>
+<section id="GUID-74EC09C2-BB39-42B2-B765-191A7E17A4D6"><title> Aging of non-redraw segments</title> <p> <b>Variant</b>:
+Non-ScreenPlay only. </p> <p>Non-redraw segments can cause inefficient operation
+of redraw stores. For this reason, in the non-ScreenPlay variant where non-redraw
+segments are still used, the Window Server "ages" them. That is, non-redraw
+segments are considered to have a finite lifetime, after which they are discarded.
+When a non-redraw segment is discarded, the Window Server makes a redraw request
+to the client asking it to provide new draw operations for the invalid region. </p> <p>The
+lifetime for non-redraw segments is set in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">WSINI.INI
+file</xref> using the parameter <codeph>NONREDRAWAGELIMIT</codeph>, followed
+by a duration in microseconds. If this line is not present in the <codeph>WSINI.INI</codeph>,
+a default of one second is used. </p> </section>
+<section id="GUID-8CE71B67-21F3-4D16-9A1A-70A70A24EFD3"><title>Atomic Redraws</title> <p> <b>Variant</b>: Both (ScreenPlay
+and non-ScreenPlay). </p> <p>Another <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">WSINI.INI
+file</xref> setting that affects redraw storing is <codeph>ATOMICREDRAWS</codeph>.
+If this parameter is present, new draw operations received after a <codeph>BeginRedraw()</codeph> are
+not considered valid until the corresponding <codeph>EndRedraw()</codeph> is
+received. In particular, a new segment does not replace existing segments
+until it is complete. This has the consequence that if redraw store playback
+is required before the <codeph>EndRedraw()</codeph> for a new segment is received,
+draw operations from old segments for that region are used instead. Thus drawing
+within <codeph>Begin/EndRedraw</codeph> brackets can be considered as an atomic
+operation. This eliminates one potential source of flicker. </p> </section>
+</conbody><related-links>
+<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
+and Drawing </linktext></link>
+<link href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita"><linktext>The wsini.ini
+File Reference</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e4153_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e5428_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e79276_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e85988_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e327379_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e333536_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0B2245C5-766B-5CF1-8A0C-DD98CEEEBB05.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0B2245C5-766B-5CF1-8A0C-DD98CEEEBB05" xml:lang="en"><title>Random Number Generation (RNG)</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Random Number Generation (RNG) generates cryptographically strong random numbers for use by cryptographic applications such as one-time pads and Initialization Vectors. The applications rely on RNG for its randomness, unpredictability and irreproducibility.</p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,95 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Snapshot API. </p> <section><title>Purpose</title> <p>This API allows the client to request snapshot data in a specified image format for both still images and video. The client can specify the properties of the snapshot, such as size, background colour and position to be used. For example, details about whether the snapshot has been scaled. </p> <p><b>Snapshot API Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-2842BA4C-19BB-5641-9D92-C76DCA01AF00"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-74692ABF-B1FF-3ED6-BAED-BFBA2E89CFD1.dita"><apiname>ecamsnapshot.dll</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-645E6782-2610-3E79-A6A8-66A65C325E5F.dita"><apiname>euser.lib </apiname></xref>  </p> <p> <xref href="GUID-EA31C23F-8081-3A82-ABAA-168F970B5381.dita"><apiname>ecampluginsupport.lib </apiname></xref>  </p> <p> <xref href="GUID-AE2B970C-BCE8-3A17-AB2B-D5D51AB9F29E.dita"><apiname>ecamhistogram.lib </apiname></xref>  </p> </entry> <entry><p>These files are used for implementing the Snapshot APIs. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>This is part of the camera component. </p> </section> <section><title>Description</title> <p>The client application using this API should provide <codeph>McameraObserver2 </codeph> interface to be signalled, with event <codeph>KuidECamEventCameraSnapshot</codeph>, when snapshot data is available to be retrieved from the Ecam server. The client can then retrieve the snapshot data from the server. </p> </section> <section><title>Key Snapshot API Classes</title> <p>The key classes that make up the Snapshot API are as follows: </p> <ul><li id="GUID-5A404626-6602-5203-9735-37E1801BF2B0"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7DB06650-199E-3B00-A19A-1B48D671E46E"><apiname> CCamera::CCameraSnapshot </apiname></xref>  </p> <p>This class allows a client to request snapshot data in a specified image format for both still images and video. </p> <ul><li id="GUID-5A8FEB02-3EE7-5D68-9533-8E557B53B9F6"><p> <xref href="GUID-9749B0DF-B887-3798-9185-481DF8E2F7C2.dita#GUID-9749B0DF-B887-3798-9185-481DF8E2F7C2/GUID-AB58C0C8-2C2E-3A83-9022-F2E7A356F877"><apiname> CCameraSnapshot::SupportedFormats() </apiname></xref>  </p> <p>Gets a list of the camera formats for which the server supports snapshots. </p> </li> <li id="GUID-2A68E999-85DA-54C3-8FBF-5F0CA0C68A52"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-0379784D-339B-3962-AD73-D2140518F39E"><apiname> CCamera::CCameraSnapshot::PrepareSnapshotL()
-                     </apiname></xref>  </p> <p>Selects snapshot parameters. The following example shows how to do this: </p> <codeblock id="GUID-219108F7-389A-52C3-BBCF-91976A227B84" xml:space="preserve">// Gets the list of supported formats for snapshots
-TUint suppFormats = snap-&gt;SupportedFormats();
-        
-CCamera::TFormat format = CCamera::EFormatJpeg;
-if(suppFormats &amp; format)
-    {
-    // Sets the properties of the snapshot data including 
-    // background colour and the position of the snapshot  
-    TSize sShotSize(90,50);
-    TRgb bgrndColor(100,100,100);
-    TBool aspectRatio = ETrue;
-    TPoint orgPos(2,2);
-     
-    snap-&gt;PrepareSnapshotL(format, orgPos, sShotSize, bgrndColor,aspectRatio);
-</codeblock> </li> <li id="GUID-9782C5D8-B43D-5506-8E49-B188AAC7D810"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-BCC10C00-8EBC-3A9D-A399-7AAA13824E0D"><apiname>
-                     CCamera::CCameraSnapshot::IsSnapshotActive()</apiname></xref>  </p> <p>Determines if the snapshot feature is active. </p> </li> <li id="GUID-8979122B-FEA6-54B8-80CC-1B439A2C60A5"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-A6AD9EBB-CC0C-38B6-A2C4-8DADD2B4B729"><apiname> CCamera::CCameraSnapshot::StartSnapshot()
-                     </apiname></xref>  </p> <p>Request notifications from the Camera. </p> </li> <li id="GUID-DF449145-0A9C-5B4B-8648-F9F29C543C1A"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-40F3FFA0-736A-3E47-8BBA-ABAE8C44BD84"><apiname> CCamera::CCameraSnapshot::StopSnapshot() </apiname></xref> </p> <p>Stops receiving snapshot notifications. </p> </li> <li id="GUID-9B6FFA13-5523-5006-84DD-5F50E8DA6337"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-FD954C76-308F-3405-A553-6D47D9C67D4D"><apiname> CCamera::CCameraSnapshot::SnapshotDataL()
-                     </apiname></xref>  </p> <p>Returns the snapshot data from server to the client. </p> </li> </ul> </li> <li id="GUID-58145F88-1AD2-57EF-A0B0-CD133BF37BF3"><p> <xref href="GUID-B0E7BDE5-2303-3547-93FB-DE0F2BC8E5FA.dita"><apiname>McameraSnapshot</apiname></xref>  </p> </li> <li id="GUID-CC7F1791-2FEC-5747-90D2-8F2A3CCD4065"><p> <xref href="GUID-6106F1FD-B3E9-3C0C-85A8-02E3C9D60D51.dita"><apiname>McameraSnapshot2</apiname></xref>  </p> </li> <li id="GUID-7E2ED929-5F16-5B7F-98F3-D18F275C58BF"><p> <xref href="GUID-928182A8-809C-3968-9203-75142146E100.dita"><apiname>CCameraDirectSnapshot</apiname></xref>  </p> </li> <li id="GUID-4C5EF5B0-5D64-5703-8ED4-0787166106D2"><p> <xref href="GUID-1A18F853-86BE-35C8-846B-77A412F65AE7.dita"><apiname>McameraDirectSnapshot</apiname></xref>  </p> </li> </ul> </section> <section><title>Using Snapshot API</title> <p>Clients can use the Snapshot API to: </p> <ul><li id="GUID-0ABF1882-0A95-500D-AD8E-5A8801816B79"><p>Create snapshots for still images and video. </p> </li> <li id="GUID-46E79542-004F-5B0C-80C8-6E2B00160FEE"><p>View the captured images on the display instantly. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Overview</xref> of the Camera component </p> <p>The <xref href="GUID-FD530B98-B17D-54CD-A86E-B6FFF701D19C.dita">Snapshot</xref> tutorial </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces you to the Snapshot API. </p>
+<section id="GUID-E45FEE91-DAE3-4ADA-886E-FA15926BC364"><title>Purpose</title> <p>This
+API allows the client to request snapshot data in a specified image format
+for both still images and video. The client can specify the properties of
+the snapshot, such as size, background colour and position to be used. For
+example, details about whether the snapshot has been scaled. </p> <p><b>Snapshot
+API Library Details</b> </p> <p>The DLL that provides the functionality and
+the library to which your code must link is identified below. </p> <table id="GUID-2842BA4C-19BB-5641-9D92-C76DCA01AF00">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><codeph>ecamsnapshot.dll</codeph> </p> </entry>
+<entry><p> <codeph>euser.lib</codeph>  </p> <p> <codeph>ecampluginsupport.lib </codeph> </p> <p> <codeph>ecamhistogram.lib</codeph> </p> </entry>
+<entry><p>These files are used for implementing the Snapshot APIs. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-0DEFF9A2-3A3E-47FD-81ED-B73667C6A8FB"><title>Architectural
+Relationship</title> <p>This is part of the camera component. </p> </section>
+<section id="GUID-F347B9F8-560B-43C9-9974-942DA8E8610E"><title>Description</title> <p>The
+client application using this API should provide <codeph>McameraObserver2</codeph> interface
+to be signalled, with event <codeph>KuidECamEventCameraSnapshot</codeph>,
+when snapshot data is available to be retrieved from the Ecam server. The
+client can then retrieve the snapshot data from the server. </p> </section>
+<section id="GUID-A2178F27-19D7-443F-80EB-62A21C70A3EC"><title>Key Snapshot
+API Classes</title> <p>The key classes that make up the Snapshot API are as
+follows: </p> <ul>
+<li id="GUID-5A404626-6602-5203-9735-37E1801BF2B0"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7DB06650-199E-3B00-A19A-1B48D671E46E"><apiname> CCamera::CCameraSnapshot </apiname></xref>  </p> <p>This
+class allows a client to request snapshot data in a specified image format
+for both still images and video. </p> <ul>
+<li id="GUID-5A8FEB02-3EE7-5D68-9533-8E557B53B9F6"><p> <xref href="GUID-9749B0DF-B887-3798-9185-481DF8E2F7C2.dita#GUID-9749B0DF-B887-3798-9185-481DF8E2F7C2/GUID-AB58C0C8-2C2E-3A83-9022-F2E7A356F877"><apiname> CCameraSnapshot::SupportedFormats() </apiname></xref>  </p> <p>Gets
+a list of the camera formats for which the server supports snapshots. </p> </li>
+<li id="GUID-2A68E999-85DA-54C3-8FBF-5F0CA0C68A52"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-0379784D-339B-3962-AD73-D2140518F39E"><apiname> CCamera::CCameraSnapshot::PrepareSnapshotL()
+                     </apiname></xref>  </p> <p>Selects snapshot parameters. The
+following example shows how to do this: </p> <codeblock id="GUID-219108F7-389A-52C3-BBCF-91976A227B84" xml:space="preserve">// Gets the list of supported formats for snapshots
+TUint suppFormats = snap-&gt;SupportedFormats();
+        
+CCamera::TFormat format = CCamera::EFormatJpeg;
+if(suppFormats &amp; format)
+    {
+    // Sets the properties of the snapshot data including 
+    // background colour and the position of the snapshot  
+    TSize sShotSize(90,50);
+    TRgb bgrndColor(100,100,100);
+    TBool aspectRatio = ETrue;
+    TPoint orgPos(2,2);
+     
+    snap-&gt;PrepareSnapshotL(format, orgPos, sShotSize, bgrndColor,aspectRatio);
+</codeblock> </li>
+<li id="GUID-9782C5D8-B43D-5506-8E49-B188AAC7D810"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-BCC10C00-8EBC-3A9D-A399-7AAA13824E0D"><apiname>         
+            CCamera::CCameraSnapshot::IsSnapshotActive()</apiname></xref>  </p> <p>Determines
+if the snapshot feature is active. </p> </li>
+<li id="GUID-8979122B-FEA6-54B8-80CC-1B439A2C60A5"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-A6AD9EBB-CC0C-38B6-A2C4-8DADD2B4B729"><apiname> CCamera::CCameraSnapshot::StartSnapshot()
+                     </apiname></xref>  </p> <p>Request notifications from the Camera. </p> </li>
+<li id="GUID-DF449145-0A9C-5B4B-8648-F9F29C543C1A"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-40F3FFA0-736A-3E47-8BBA-ABAE8C44BD84"><apiname> CCamera::CCameraSnapshot::StopSnapshot() </apiname></xref> </p> <p>Stops
+receiving snapshot notifications. </p> </li>
+<li id="GUID-9B6FFA13-5523-5006-84DD-5F50E8DA6337"><p> <xref href="GUID-7DB06650-199E-3B00-A19A-1B48D671E46E.dita#GUID-7DB06650-199E-3B00-A19A-1B48D671E46E/GUID-FD954C76-308F-3405-A553-6D47D9C67D4D"><apiname> CCamera::CCameraSnapshot::SnapshotDataL()
+                     </apiname></xref>  </p> <p>Returns the snapshot data from server
+to the client. </p> </li>
+</ul> </li>
+<li id="GUID-58145F88-1AD2-57EF-A0B0-CD133BF37BF3"><p> <xref href="GUID-CBB8D575-A12F-32C4-BC19-55AEB51D2601.dita"><apiname>MCameraSnapshot</apiname></xref>  </p> </li>
+<li id="GUID-CC7F1791-2FEC-5747-90D2-8F2A3CCD4065"><p> <xref href="GUID-A048086C-0481-3E68-9B96-70943917B3FB.dita"><apiname>MCameraSnapshot2</apiname></xref>  </p> </li>
+<li id="GUID-7E2ED929-5F16-5B7F-98F3-D18F275C58BF"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-880B1BDF-C42F-3190-81C2-B2DD555AC8FE"><apiname>CCamera::CCameraDirectSnapshot</apiname></xref>  </p> </li>
+<li id="GUID-4C5EF5B0-5D64-5703-8ED4-0787166106D2"><p> <xref href="GUID-E75CBA2D-933F-33CF-9F66-0868D6BC0649.dita"><apiname>MCameraDirectSnapshot</apiname></xref>  </p> </li>
+</ul> </section>
+<section id="GUID-EEA6127D-B05C-4E40-AE81-9FB6AF6E6FB6"><title>Using Snapshot
+API</title> <p>Clients can use the Snapshot API to: </p> <ul>
+<li id="GUID-0ABF1882-0A95-500D-AD8E-5A8801816B79"><p>Create snapshots for
+still images and video. </p> </li>
+<li id="GUID-46E79542-004F-5B0C-80C8-6E2B00160FEE"><p>View the captured images
+on the display instantly. </p> </li>
+</ul> </section>
+<section id="GUID-519A1998-16F8-4280-BCC5-8F653BB1B420"><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Overview</xref> of the Camera
+component </p> <p>The <xref href="GUID-FD530B98-B17D-54CD-A86E-B6FFF701D19C.dita">Snapshot</xref> tutorial </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589" xml:lang="en"><title>Navigating
-in applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The traditional hierarchical tree structure forms the basis for navigation.
-The user can move forward from one node (state) by opening an available item
-or selecting an option from a menu. The Back function (available in the right
-softkey Back) returns to the previous level in the hierarchy. In the initial
-state of an application (number 1 in the figure below), the Exit function
-replaces Back in the right softkey and is used for closing the application.</p>
-<fig id="GUID-E040C6A4-5CB6-4DEC-99A8-8704AD6C3CCF">
-<title>Example of the basic state hierarchy in an application. The solid lines
-indicate moving forward from a state into a sub-state. The dotted lines are
-backward moves to the previous level.</title>
-<image href="GUID-C0CC6EEF-E95F-4DE1-9E53-2B777D9E433D_d0e81716_href.png" scale="70" placement="inline"/>
-</fig>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e265510_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e269218_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0C19D3F1-CF60-4760-8A77-242E14647738.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0C19D3F1-CF60-4760-8A77-242E14647738.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C19D3F1-CF60-4760-8A77-242E14647738" xml:lang="en"><title>Touch
-UI observer interfaces</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To support the touch functionality in the UI components, following observer
-interfaces are provided:</p>
-<ul>
-<li><p><b>Navigation decorator observer</b> (<codeph>MAknNaviDecoratorObserver</codeph>)-
-It is used in the navigation pane. The interface receives an event indicating
-that the decorator’s right or left arrow has been tapped (or the navi label).
-Based on the event received, the observer implementation performs an action
-(for example, raise the volume or change focus to the next tab). This observer
-is useful when custom controls needs to be implemented  in the navigation
-control. The observer can be set using <codeph>CAknNavigationDecorator::SetNaviDecoratorObserver()</codeph>.</p> <p/> </li>
-<li><p><b>Long tap detector</b> (<codeph>CAknLongTapDetector</codeph>) - It
-is an AVKON component that an application or control can use to receive long
-tap events.</p><p>The long tap handler must inherit from <codeph>MAknLongTapDetectorCallBack</codeph> and
-implement the <codeph>HandleLongTapEventL()</codeph> call back function for
-long tap events.</p> <p>When the stylus/finger is held down in the same position,
-an animation starts in about 0.15 s to show that the long tap functionality
-has started. Animation is provided by AVKON and cannot be changed by the application
-or control. However, animation can be turned off using the class <codeph>CAknLongTapDetector</codeph> in
-the Touch UI utilities API.</p> <p>For implementation information, see the <xref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita">Touch UI utilities API specification</xref>.</p></li>
-<li><p><b>Double-click support in lists</b> - To receive double-click events
-from a list or grid, the object that needs to be informed must implement and
-register the <codeph>MEikListBoxObserver</codeph> interface via <codeph>CEikListBox::SetListBoxObserver()</codeph>. </p>After
-registering, handle the <codeph>EEventItemDoubleClicked</codeph> event in<codeph>HandleListBoxEventL()</codeph> method. <p>If
-single click is enabled, <codeph>EEventItemSingleClicked</codeph> event should
-be handled instead.</p></li>
-<li><p><b>Title pane touch observer</b> - The title pane touch observer enables
-you to provide functionality for title pane touch events. For implementation
-information, see the <xref format="html" href="specs/guides/Title_Pane_Touch_Observer_API_Specification/Title_Pane_Touch_Observer_API_Specification.html" scope="peer">Title pane touch observer API specification</xref>.</p></li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0C19D3F1-CF60-4760-8A77-242E14647738" xml:lang="en"><title>Touch
+UI observer interfaces</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To support the touch functionality in the UI components, following observer
+interfaces are provided:</p>
+<ul>
+<li><p><b>Navigation decorator observer</b> (<codeph>MAknNaviDecoratorObserver</codeph>)-
+It is used in the navigation pane. The interface receives an event indicating
+that the decorator’s right or left arrow has been tapped (or the navi label).
+Based on the event received, the observer implementation performs an action
+(for example, raise the volume or change focus to the next tab). This observer
+is useful when custom controls needs to be implemented  in the navigation
+control. The observer can be set using <xref href="GUID-7E710ED4-F210-3BD0-AC0A-DC506E327B32.dita#GUID-7E710ED4-F210-3BD0-AC0A-DC506E327B32/GUID-3EE352C1-5B27-30DB-9D72-21A84A89E7AB"><apiname>CAknNavigationDecorator::SetNaviDecoratorObserver()</apiname></xref>.</p> <p/> </li>
+<li><p><b>Long tap detector</b> (<codeph>CAknLongTapDetector</codeph>) - It
+is an AVKON component that an application or control can use to receive long
+tap events.</p><p>The long tap handler must inherit from <codeph>MAknLongTapDetectorCallBack</codeph> and
+implement the <codeph>HandleLongTapEventL()</codeph> call back function for
+long tap events.</p> <p>When the stylus/finger is held down in the same position,
+an animation starts in about 0.15 s to show that the long tap functionality
+has started. Animation is provided by AVKON and cannot be changed by the application
+or control. However, animation can be turned off using the class <codeph>CAknLongTapDetector</codeph> in
+the Touch UI utilities API.</p> <p>For implementation information, see the <xref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita">Touch UI utilities API specification</xref>.</p></li>
+<li><p><b>Title pane touch observer</b> - The title pane touch observer enables
+you to provide functionality for title pane touch events. For implementation
+information, see the <xref format="html" href="specs/guides/Title_Pane_Touch_Observer_API_Specification/Title_Pane_Touch_Observer_API_Specification.html" scope="peer">Title pane touch observer API specification</xref>.</p></li>
+</ul>
+<section id="GUID-2EF727B6-0E73-4CD1-AA51-7608DE18F622"><title>See also</title><xref href="GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita">Touch
+support in lists</xref></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-3-1-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-3-1-1-9-1" xml:lang="en"><title>Using Front
-End Processor (FEPBASE)</title><shortdesc>This section explains Front End Processor (FEP), and its implementations
-and events.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-6-1-1-4-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-6-1-1-4-1-8-1" xml:lang="en"><title>Using Front
-End Processor (FEPBASE)</title><shortdesc>This section explains Front End Processor (FEP), and its implementations
-and events.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4" xml:lang="en"><title>Using Front
+End Processor (FEPBASE)</title><shortdesc>This section explains Front End Processor (FEP), and its implementations
+and events.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0C71B9C6-0782-5667-932A-07D770748DCE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0C71B9C6-0782-5667-932A-07D770748DCE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C71B9C6-0782-5667-932A-07D770748DCE" xml:lang="en"><title>TextMTM
-utilities</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In addition to the MTM component DLLs, a number of other programs are provided. </p>
-<section><title>Example Code</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip </xref>  </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files reproduced
-here are the main files contained in the examples directory. Some extra files
-may be needed to run the examples, and these will be found in the appropriate
-examples directory </p> </section>
-<section><title>Common classes: txut</title> <p>The <filepath>txut</filepath> project
-provides source for a small utilities DLL, which holds code that must be shared
-between the Client and the Server-side Text MTM components. </p> <ul>
-<li id="GUID-193A94E1-21B8-58E0-9196-8B99B315F657"><p> <codeph>TTxtProgress</codeph> encapsulates
-progress information. The Server-side MTM records its progress using this
-class when performing copy and move operations. The User Interface MTM can
-extract information from the class for display to the user. </p> </li>
-<li id="GUID-3A70D7CE-A8EB-5016-9EEB-C9D320B2778D"><p> <codeph>CMTMTxtSettings</codeph> encapsulates
-access to the MTM's settings as they are stored in the central repository. <codeph>TMTMTxtSetting</codeph> encapsulates
-the settings for a single TextMTM service. This contains only a single property:
-the folder to which the service is mapped. </p> </li>
-<li id="GUID-ECA2F381-18F1-5BE8-9B6F-390A9AACF02F"><p> <codeph>TxtUtils</codeph> provides
-static utility functions. </p> </li>
-</ul> </section>
-<section><title>Classes used</title><p><xref href="GUID-AE4CD271-25CD-3115-9D49-F7A28CC83430.dita"><apiname>TTxtProgressCMTMTxtSettings </apiname></xref> <xref href="GUID-E035803A-FFDA-36A7-B159-E2BABECF6F7B.dita"><apiname>TMTMTxtSettingTxtUtils</apiname></xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0C71B9C6-0782-5667-932A-07D770748DCE" xml:lang="en"><title>TextMTM utilities</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In addition to the MTM component DLLs, a number of other programs
+are provided. </p>
+<section id="GUID-8A044535-B34F-4129-9871-2B2A8E1256BF"><title>Example Code</title> <p>Click on the following link
+to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip </xref>  </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files
+reproduced here are the main files contained in the examples directory.
+Some extra files may be needed to run the examples, and these will
+be found in the appropriate examples directory </p> </section>
+<section id="GUID-8996DA4F-9FCA-4D1A-A859-FDDED2A255CF"><title>Common classes: txut</title> <p>The <filepath>txut</filepath> project provides source for a small utilities DLL, which holds code
+that must be shared between the Client and the Server-side Text MTM
+components. </p> <ul>
+<li id="GUID-193A94E1-21B8-58E0-9196-8B99B315F657"><p> <codeph>TTxtProgress</codeph> encapsulates progress information. The Server-side MTM records its
+progress using this class when performing copy and move operations.
+The User Interface MTM can extract information from the class for
+display to the user. </p> </li>
+<li id="GUID-3A70D7CE-A8EB-5016-9EEB-C9D320B2778D"><p> <codeph>CMTMTxtSettings</codeph> encapsulates access to the MTM's settings as they are stored in
+the central repository. <codeph>TMTMTxtSetting</codeph> encapsulates
+the settings for a single TextMTM service. This contains only a single
+property: the folder to which the service is mapped. </p> </li>
+<li id="GUID-ECA2F381-18F1-5BE8-9B6F-390A9AACF02F"><p> <codeph>TxtUtils</codeph> provides static utility functions. </p> </li>
+</ul> </section>
+<section id="GUID-3B52CB7B-9F8C-4325-AA3E-D2E94E8E8DD3"><title>Classes used</title><ul>
+<li><p><xref href="GUID-AE4CD271-25CD-3115-9D49-F7A28CC83430.dita"><apiname>TTxtProgressCMTMTxtSettings </apiname></xref></p></li>
+<li><p><xref href="GUID-E035803A-FFDA-36A7-B159-E2BABECF6F7B.dita"><apiname>TMTMTxtSettingTxtUtils</apiname></xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E" xml:lang="en"><title>PBE
+-- guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-BE431C93-15F3-5A3E-B461-6D0B8CAA50CA"><p> <xref href="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita#GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E/GUID-297963A8-4FD2-5350-AE7C-18D6C7C11179">What is PBE?</xref>  </p> </li>
+<li id="GUID-3A2686D3-6A20-5E45-AB34-256BE39862FF"><p> <xref href="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita#GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E/GUID-CC39624C-D78C-5AD4-A5CA-8E9C09C4C80F">What is PBE used for?</xref>  </p> </li>
+<li id="GUID-9E2294EF-D5B2-5C80-ABB4-1E5A100FF96F"><p> <xref href="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita#GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E/GUID-6EFD52CC-D8C7-57A3-8607-6EA6DD09ABEE">Base classes and their derived classes</xref>  </p> </li>
+<li id="GUID-B433029C-EF44-5536-ADE8-2DA4A64E2A4C"><p> <xref href="GUID-18358882-A4DD-5010-BED7-4ACAE021495D.dita">Example
+code</xref>  </p> </li>
+</ul>
+<section id="GUID-297963A8-4FD2-5350-AE7C-18D6C7C11179"><title>What is PBE?</title> <p>PBE
+provides an API to encrypt and decrypt data with a user-supplied password.
+It is intended to be used by applications, such as editors or database programs,
+that might provide the ability to encrypt a user's documents. It aims to be
+secure and easy to use, and attempts to overcome the common pitfalls of encryption
+based on user-supplied passwords. Specifically, it uses a <xref href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/index.html" scope="external">PKCS#5</xref> -based key derivation function to create the
+symmetric key based on the user's password. </p> <p> <xref href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/index.html" scope="external">PKCS#5</xref> is the Password Based Encryption standard produced
+by RSA laboratories. It describes a method to generate a symmetric key based
+on a password. We use PKCS#5 v2.0 (specified in <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2898.txt" scope="external">RFC 2898</xref>), which is able to generate unlimited key
+length. </p> <p>The PBE algorithm generates a symmetric key based on a password,
+which is provided by the user. To impede dictionary attacks, the password
+is appended with a salt before being digested to produce the key; the salt
+is generated using a pseudo random number generator. Furthermore, the PBE
+algorithm by which the keys are derived is iterated a number of times, the
+default being <codeph>KDefaultIterations</codeph>. As the ciphers operate
+in CBC mode, a randomly selected Initialization Vector (IV) is passed to them
+as a seed. Note that the salt value, iteration count value, and the IV (i.e.,
+the <codeph>CPBEncryptParms</codeph> object) do not have to be kept secret
+and can be sent along with the ciphertext. </p> <p>PBE provides APIs for encrypting
+a single object (<codeph>CPBEncryptElement</codeph>) and multiple objects
+(<codeph>CPBEncryptSet</codeph>). The latter is useful in the situation if
+one wants random access to an encrypted source consisting of multiple, independent
+elements; for example a database or a store. </p> </section>
+<section id="GUID-CC39624C-D78C-5AD4-A5CA-8E9C09C4C80F"><title>What is PBE
+used for?</title> <p>PBE is used to implement <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita">Secure
+Stream Encryption</xref>, which can be used, for example: </p> <ul>
+<li id="GUID-13D8CD70-E1A2-5635-8515-C6C8811F468D"><p>to password protect
+a database file </p> </li>
+<li id="GUID-2F2CC007-18BA-5254-AAF6-428C57F12DDE"><p>to store contacts encrypted
+on a mobile phone. </p> </li>
+</ul> </section>
+<section id="GUID-6EFD52CC-D8C7-57A3-8607-6EA6DD09ABEE"><title>Base classes
+and their derived classes</title> <p>The diagrams below show the main classes
+used in password based encryption and which are implemented in <filepath>pbe.dll</filepath>.
+Blue dotted arrows indicate that a class is contained or used by another class.
+The arrows are labelled with the variable(s) through which the pointed class
+is accessible. The color of the boxes indicates the type of Symbian class,
+i.e., <codeph>M</codeph>, <codeph>C</codeph>, <codeph>R</codeph> or <codeph>T</codeph> class.
+For detailed information on each component see the Cryptography API Reference
+material. </p> <fig id="GUID-E3F6C83F-6B73-52A1-88F2-B996E2FD1D5C">
+<title>The inheritance diagram above shows the <codeph>CPBEncryptionBase</codeph> abstract
+base class. Also shown are the following classes from the Cryptography API: <codeph>CPBEncryptElement</codeph>, <codeph>CPBEncryptSet</codeph>, <codeph>CPBAuthData</codeph>, <codeph>CPBEncryptionData</codeph>, and <codeph>CPBEncryptParams</codeph>.</title>
+<image href="GUID-FB45BC8B-FE99-5616-9270-132C4174DAE7_d0e383750_href.png" placement="inline"/>
+</fig> <fig id="GUID-3843237A-3246-5179-8481-426A0E0CD095">
+<title>The inheritance diagram above shows the <codeph>CPBEncryptor</codeph> abstract
+base class. Also shown are the following classes from the Cryptography API: <codeph>CPBDecryptor</codeph>, <codeph>CPBDecryptorElement</codeph>, <codeph>CPBDecryptorSet</codeph>, <codeph>CSymmetricCipher</codeph>, <codeph>CPBEncryptorElement</codeph>, <codeph>CPBEncryptorSet</codeph>.</title>
+<image href="GUID-383A96FD-99C3-593C-B7A2-58153F4050DE_d0e383779_href.png" placement="inline"/>
+</fig> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,455 +1,455 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90" xml:lang="en"><title>Going
-Beyond Hello: A Tutorial for Symbian C++ Applications</title><shortdesc>This tutorial shows how you can extend that basic example to create
-a small paint application, along the way learning more about the application
-frameworks (e.g. defining menus, how to handle touch-screen events, drawing
-to the screen etc.).</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In the <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++
-Quick Start</xref> you learned how to create a basic example application using
-Carbide.c++, and how to build and run it on the Windows emulator and on a
-device.  </p>
-<p><b>Comes with Code</b>: <xref href="http://developer.symbian.org/wiki/images/e/eb/HelloSymbianWorld_Example_Code.zip.dita">File:
-HelloSymbianWorld Example Code.zip</xref></p>
-<section id="GUID-14C6D367-D806-45F8-BC44-C5DBC78096D9">       <title> Application
-Structure</title>       <p>Carbide.c++ offers two ways of exploring your project.
-The traditional <b>Project Explorer</b> window, which can also be found in
-Eclipse, lists the files belonging to the project in the same directory structure
-as in the file system.  </p><p>The <b>Symbian Project Navigator</b> contains
-the same contents, but displays them in a logical hierarchy according to <xref href="http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions.dita">Symbian
-Conventions</xref>. </p><p> You might wonder why a basic "Hello World" application
-contains so many files. The answer is straightforward - a much simpler Hello
-World wouldn’t be a very good starting point for real-world applications.
- </p><p>Instead the wizard generates the project for a complete and readily
-extensible application. The project separates code and data, and uses a form
-of the <xref href="http://wiki.forum.nokia.com/index.php/Design_Patterns_in_Symbian.dita#http://wiki.forum.nokia.com/index.php/Design_Patterns_in_Symbian/Model-View-Control_Pattern">model
-view controller pattern</xref> for structuring your code. The application
-already reacts to system events and contains everything that is required for
-localization. </p><p/><p><b>What are the directories of a project?</b><fig id="GUID-898488F8-5CF9-4A01-95F8-45E2C5D2E501">
-<image href="GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e3849_href.png" placement="inline"/>
-</fig></p><p/><b>\group</b><ul>
-<li><p><b>bld.inf</b>: Component-definition file. This specifies the <codeph>mmp</codeph> files
-that belong to your component, any shared header files that it exports, and
-the default build targets (e.g. GCCE, WINSCW).</p><ul>
-<li><p><codeph>Bld.inf</codeph> is used to generate the makefiles and <codeph>abld.bat</codeph> used
-to build for the command-line (see <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian
-C++ Quick Start</xref>). </p></li>
-<li><p>This file is the starting point when you want to import a Symbian C++
-project into Carbide.c++, because it contains references to all executables
-in your project (see the section on Importing Other Examples). </p></li>
-</ul></li>
-<li><p><b>HelloWorld.mmp</b>: Project-definition file. This specifies how
-to build an executable (in this case <codeph>HelloWorld.exe</codeph>) in a
-platform- and compiler-independent way. It contains information such as resource
-files to be compiled, source files to include when compiling, and the libraries
-to include when linking. </p></li>
-<li><p><b>Icons_aif_scalable_dc.mk</b>: Makefile used to create the application's
-icon from the <codeph>*.svg</codeph> file in the <codeph>/gfx</codeph> folder. </p></li>
-</ul><p> </p><p><b>\src</b></p><ul>
-<li><p> <b>HelloWorldApplication.cpp</b>: This file contains the entry point
-for the EXE file (<codeph>E32Main()</codeph>) as well as the implementation
-of the Application class (which provides some basic functionality for the
-GUI framework). Normally this is "boilerplate" code and you do not need to
-make any changes. </p></li>
-<li><p><b>HelloWorldDocument.cpp</b>: This class is supposed to take care
-of the persistent data model of your application and therefore provides some
-functions to load and save <codeph>.ini</codeph> files. This mechanism is
-disabled by default - for most applications you may treat this as "boilerplate"
-code. </p></li>
-<li><p><b>HelloWorldAppUi.cpp</b>: This is the main controller of your application.
-It contains the logic for handling application-wide events (so you don’t have
-to handle, for example, the exit event in every view). It owns all the views
-that you use. </p></li>
-<li><p><b>HelloWorldContainerView.cpp</b>: This is a kind of controller, which
-is responsible for handling events and the UI elements of the currently visible
-view. It’s not visible itself, but owns and manages the <i>Container</i> (below),
-which corresponds to the view in the traditional model view controller pattern.</p></li>
-<li><p><b>HelloWorldContainer.cpp</b>: Contains the UI elements that should
-be displayed by the view. Therefore, the ContainerView and the Container usually
-have a very strong relationship. </p></li>
-</ul><p>During start-up, one class instance creates the next:</p><fig id="GUID-2A3EE3C2-3515-4217-BCB3-182A01936898">
-<image href="GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e3955_href.png" placement="inline"/>
-</fig><p/><p><b>\inc</b></p><ul>
-<li><p><b>HelloWorldApplication.h</b>, <b>HelloWorldDocument.h</b>, <b>HelloWorldAppUi.h</b>, <b>HelloWorldContainerView.h</b>, <b>HelloWorldContainer.h</b>: Header files corresponding to each of the main source files above. </p></li>
-<li><p><b>HelloWorld.hrh</b>: UIDs/identifiers for UI elements including views.
-These are shared between the resource file definitions for UI elements and
-the source code command handlers.</p></li>
-<li><p><b>HelloWorld.pan</b>: Panic code and method definitions.</p></li>
-</ul><p/><p><b>\data</b></p><ul>
-<li><p><b>HelloWorld_reg.rss</b>: Contains registration information about
-the application, such as its title.</p></li>
-<li><p><b>HelloWorld.rss</b>: Main resource file. Contains additional information
-about the application, as well as user interface and text resource definitions.
-     </p></li>
-<li><p><b>HelloWorld.loc</b>, <b>HelloWorld.l01</b>: Localization files. Strings
-used by UI are defined in separate localization resource files. Each file
-has the format <codeph>.lxx</codeph>, where <i>xx</i> is a language specific
-numeric file extension - e.g. UK English is ‘01’, French ‘02’ and German ‘03’.
-The <codeph>.loc</codeph> file is a kind of junction that <codeph>#includes</codeph> the
-language specific files. The languages are compiled into separate resource
-files (extension <codeph>.rxx</codeph>; the resource file for the current
-language is loaded by the UI framework at runtime</p></li>
-</ul><p/><p><b>\gfx</b></p><ul>
-<li><p><b>list_icon.bmp</b>, <b>list_icon_mask.bmp</b>, <b>mark_icon.bmp</b>, <b>mark_icon_mask.bmp</b>:
-Bitmap and bitmap masks. These are compiled into the MultiBitMap (<codeph>mbm</codeph>)
-format for display in the application.</p></li>
-<li><p> <b>qgn_menu_HelloWorld.svg</b>: SVG-T image that gets compiled into
-the <codeph>HelloWorld_aif.mif</codeph> MultiImageFile (<codeph>mif</codeph>)
-used for the application icon.</p></li>
-</ul><p/><p><b>\sis</b></p><ul>
-<li><p><b>HelloWorld.pkg</b>: Defines the contents that should be packaged
-into the installable <codeph>.sis</codeph> file for the device. This includes
-the executable as well as all resources required by the application (graphics
-and so on).</p></li>
-<li><p><b>HelloWorld.sis</b>: Compressed and self-contained installation file
-for the device. Compiled based on the package file.     </p></li>
-<li><p><b>HelloWorld.sisx</b>: <codeph>.sis</codeph> file which has been signed
-with a certificate (in this case self-signed).</p></li>
-</ul>     </section>
-<section id="GUID-65BEDD17-334B-4C42-8D89-DAB355F97F51"><title> Extending
-Hello World – Drawing</title><p>To make our application a little bit more
-interactive, we are going to implement a simple paint tool, allowing the user
-to draw lines by touching the screen.    </p><p>We could draw the lines directly
-on the screen, but then everything would get lost when something caused our
-application to redraw the screen – for example, a telephone call that came
-through while our application was running. Therefore, we have to draw the
-lines to a bitmap, which is simply copied to the screen whenever required.
-  </p><p>Another solution (more difficult but also more flexible!) would be
-to store all lines in a list and to iterate over the list each time the application
-needs to draw the contents of the screen. </p></section>
-<section id="GUID-217EFA6E-9B5F-4B65-8B99-E056CC26156D"><title> Using the
-SDK Documentation</title><p>The class that can handle bitmap data is called <codeph>CFbsBitmap</codeph>.
-Let’s take a look at the documentation for this class to find out more about
-the required header files, libraries and available methods.    </p><p><xref href="http://developer.symbian.org/search/search_results.php?txtSearch=CFbsBitmap&amp;site=sdl_collection.dita">Search</xref> the
-online documentation for the class you're interested in, in this case <codeph>CFbsBitmap</codeph>. <xref href="http://developer.symbian.org/main/documentation/reference/s%5E2/doc_source/reference/tb91sf-PP/fontandbitmapserver/index.html.dita">CFbsBitmap
-in Os Font_and_Bitmap_Server</xref> should be (one of the) first topics you
-find. </p><p/><note>If you're working offline you can also search for documentation
-in the SDK. <b>Start</b> menu: <b>Start - S60 Developer Tools - 5th Edition
-SDK, v<i>1.0</i> - SDK Documentation</b></note><p>Right at the top of the
-reference page you will see that the header file we need to use is <codeph>FBS.H</codeph> and
-the library we need to link against is called <codeph>fbscli.lib</codeph>. </p><fig id="GUID-23B3B7CF-E676-4FBC-8B26-E7B88764781C">
-<image href="GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e4153_href.png" placement="inline"/>
-</fig><p>This class is capable of storing a bitmap. It's also possible to
-get direct access to the bitmap data. However for more convenient methods
-of drawing we will work through a drawing device and context.    </p><p>To
-find out more about bitmaps, contexts and drawing functions, <xref href="http://developer.symbian.org/search/search_results.php?txtSearch=bitmaps&amp;site=sdl_collection.dita">Search for ‘bitmaps’</xref> in the documentation, and go to the page <b>Bitmaps
-in Using Bitmaps</b>, or <b>Using Bitmaps in Using Graphics Device Interfaces</b>.
-   Symbian provides several different device and context classes. For our
-application we’re going to use <codeph>CFbsBitmapDevice</codeph> (header file: <codeph>bitdev.h</codeph>,
-library: <codeph>bitgdi.lib</codeph>) and <codeph>CFbsBitGc</codeph> (header
-file: <codeph>bitstd.h</codeph>, library: <codeph>bitgdi.lib</codeph>). </p></section>
-<section id="GUID-D9C51891-11DE-4042-AE32-CC7EA362C32A"><title> Adding Libraries
-To a Project</title><p>In the previous step, we determined that we need two
-libraries in order to use all three bitmap-related classes: <codeph>fbscli.lib</codeph> and <codeph>bitgdi.lib</codeph>.
-To add them to our project, open the <codeph>HelloWorld.mmp</codeph> project
-file (in the <codeph>/group/</codeph> folder if you’re using the <b>Project
-Explorer</b> window). Switch to the <b>Libraries</b> tab.    At the top of
-this page, you will see a list of included libraries. <codeph>fbscli.lib</codeph> is
-already in the list, so we don’t need to add it. However <codeph>bitgdi.lib</codeph> is
-missing. </p><note>There are more libraries in the list than are used by our
-project (added by the wizard!). These cause no harm so we choose not to remove
-them.</note><p>Click on the <b>Add</b> button. Search for <codeph>bitgdi.lib</codeph> in
-the list and add it to the <b>Libraries</b> list. </p><fig id="GUID-7D1E15B4-5157-4F48-9084-6DDBD6EE0208">
-<image href="GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e4231_href.png" placement="inline"/>
-</fig><p>When you’re finished, make sure that both libraries are in the <b>Libraries</b> list.
-   </p><p>When you compile your application again, Carbide.c++ will detect
-the changes in the .mmp file and ask you what to do. Click on <b>Compile and
-Link</b> to update the project with the changes we have made to the <codeph>.mmp</codeph> file. <fig id="GUID-77F781CD-A2EF-4489-BAE2-EB283057670E">
-<image href="GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e4248_href.png" placement="inline"/>
-</fig></p></section>
-<section id="GUID-F2A4FC0F-8C67-4151-8BD2-808FCEDD121F"><title> Creating Bitmaps</title><p>Now
-the libraries have been added, we can use the bitmap classes in our project.
-Open the file <codeph>HelloWorldContainer.h</codeph> and add the following
-include statements: </p><codeblock xml:space="preserve">#include &lt;fbs.h&gt;
-#include &lt;bitdev.h&gt;
-#include &lt;bitstd.h&gt;
-</codeblock><p>We also need to store the bitmap objects as instance (member)
-variables. Add the following definitions to a private section of the <codeph>CHelloWorldContainer</codeph> class.
-Be careful not to write anything into areas managed by the UI designer, because
-your changes could be overwritten. These areas are marked by comments.   
- </p><codeblock xml:space="preserve">private:  
-CFbsBitmap* iBitmap;  
-CFbsBitmapDevice* iBmpDevice;  
-CFbsBitGc* iBmpGc;   </codeblock><p>Symbian C++ uses some <xref href="http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions.dita#http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions/Naming_Conventions">naming conventions</xref>. Instance variables should have a lowercase <codeph>i</codeph> at
-the beginning of the variable name (<codeph>iBitmap</codeph>). Arguments should
-be marked by an a (<codeph>aBitmap</codeph>). Normal local variables that
-you create inside a function do not need any prefix. That way, you instantly
-know where the variable is coming from – this is very important when deleting
-objects.    Next, we want to create the bitmap. Define and implement a new
-method: </p><codeph>void CHelloWorldContainer::CreateBitmapsL()</codeph><p>Let’s
-go line by line through the required code for this method:    First, we have
-to make sure that any previous objects are deleted if they already exist.
-This would be required (for example) if the running application needs to re-create
-the bitmap because the screen layout changes. You don’t need to add an if
-statement to check if the pointer is NULL beforehand – the C++ <codeph>delete</codeph> statement
-only deletes the object if the pointer is not NULL. You do however need to
-ensure that the objects are set to NULL after deletion to avoid possible "double
-deletion" in the destructor. </p><codeblock xml:space="preserve">delete iBitmap; iBitmap = NULL;  
-delete iBmpDevice; iBmpDevice = NULL;  
-delete iBmpGc; iBmpGc = NULL;</codeblock><p>This following line of code should
-look familiar – it simply creates an instance of the <codeph>CFbsBitmap</codeph> class:
-     </p><p><codeph> iBitmap = new (ELeave) CFbsBitmap();</codeph>       </p><p>The
-(<codeph>ELeave</codeph>) parameter is Symbian C++ specific. This causes a <xref href="http://developer.symbian.org/wiki/index.php/Leaves_%26_The_Cleanup_Stack_(Fundamentals_of_Symbian_C%2B%2B).dita"> leave</xref> (the
-Symbian C++ equivalent of standard exceptions) if allocating the object fails
-– for example, because there is not enough free memory. With the (<codeph>ELeave</codeph>),
-you don’t have to manually check if the pointer is actually pointing to a
-valid object after creating the object instance. You can find out more about
-leaves in <xref href="http://developer.symbian.org/wiki/index.php/Fundamentals_of_Symbian_C%2B%2B.dita">Fundamentals
-of C++</xref>.    </p><p>We do not handle the potential leave here; that’s
-why the method name (<codeph>CreateBitmapL()</codeph>) has a trailing L to
-show that it can also leave. More on this topic in a moment.    </p><p>Now,
-it’s time to let the <codeph>CFbsBitmap</codeph> class allocate the memory
-for the bitmap it is going to manage. The available drawing size for our container
-can be queried by the method <codeph>Size()</codeph> from its base class. <codeph>EColor16MU</codeph> specifies
-the color depth – in this case, it’s a true color display mode with 32 bits
-per pixel; the top byte is unused. The color mode <codeph>EColor16MA</codeph> would
-use the top byte for the alpha channel, several other modes are available
-as well.   </p><p><codeph>iBitmap-&gt;Create(Size(), EColor16MU);</codeph>  
- </p><p>The next line creates a graphics device based on the bitmap. A graphics
-device represents the medium being drawn to and is needed to create a graphics
-context. The use of a <codeph>NewL()</codeph> method is common in Symbian
-C++; it is a static factory function which returns a fully constructed object
-of the desired type.   </p><p><codeph> iBmpDevice = CFbsBitmapDevice::NewL(iBitmap);</codeph> 
-  </p><p>A graphics context provides a large number of drawing operations,
-along with state settings defining how the drawing is performed. The bitmap
-graphics context used here is a specialization of the generic graphics context
-and adds some methods that can be used for bitmaps only – such as clearing
-and copying rectangular areas.    </p><p><codeph>iBmpDevice-&gt;CreateContext(iBmpGc);</codeph> 
-  </p><p>Whenever you create objects, it’s best to think about where and when
-they are going to be deleted right away. Memory leaks are a serious issue
-on a mobile device where no virtual memory is available and the main memory
-is limited to 30-80 MB. Therefore, go to the destructor of <codeph>CHelloWorldContainer</codeph> and
-add the required statements for deleting the three objects:      </p><p> <codeblock xml:space="preserve">delete iBmpGc;  
-delete iBmpDevice;  
-delete iBitmap;</codeblock>       </p><p>The next step addresses the remaining
-question: where to call the <codeph>CreateBitmapsL()</codeph> method. Of course,
-you could do this from the construction methods of the class. But what if,
-while your application is running, the user physically turns the phone, causing
-it to switch from portrait to landscape mode? Because the bitmap was created
-with the portrait size in mind, the user would no longer be able to use the
-full screen for drawing.    </p><p>Therefore, we have to react to events that
-inform us when the screen size is changed. In those situations, <codeph>SizeChanged()</codeph> is
-executed. When the container is first constructed, its size changes as well.
-Because of this, we can simply call our <codeph>CreateBitmapsL()</codeph> method
-from within <codeph>SizeChanged()</codeph>:       </p><p><codeblock xml:space="preserve">void CHelloWorldContainer::SizeChanged()  
-	{  
-	CCoeControl::SizeChanged();  
-	LayoutControls();     
-	// [[[ begin generated region: do not modify [Generated Contents]
-	// ]]] end generated region [Generated Contents]
-	if (!iBitmap || (iBitmap &amp;&amp; iBitmap-&gt;SizeInPixels() != Size()))
-		{
-		TRAPD(err, CreateBitmapsL());
-		}
-	}</codeblock>      </p><p>In the source code above, an additional check ensures
-that the bitmap is only re-created if the size available for the container
-is really different to the existing bitmap size – the <codeph>SizeChanged()</codeph> method
-is also called, for example, when the option menu obscures part of our view.
-This does not affect the available space for our drawing area and therefore
-should not lead to re-creating the bitmap.    </p><p>But what is the <codeph>TRAPD()</codeph> statement
-doing here? Let’s use this to take a closer look at the concept of leaves. </p><p/><p><b>Leaves</b></p><p>When
-programming using Symbian C++, an L is appended to the name of methods that
-can leave (usually because it contains other methods that can leave and does
-not choose to "TRAP" them). Note: this is a helpful convention, but is not
-checked or required by the compiler.    </p><p>Our <codeph>CreateBitmapsL()</codeph> method
-contains two methods that can leave: the (<codeph>ELeave</codeph>) parameter
-causes a leave if there is not enough memory to allocate the object. The <codeph>NewL()</codeph> method
-from the graphics device also has a trailing <codeph>L</codeph> – meaning
-that this method can also leave. We did not catch any (all) of those leaves
-in the <codeph>CreateBitmapsL()</codeph> method so it was named with a trailing <codeph>L</codeph>.
-   </p><p>Any leaves are passed up in the call stack until caught by a <codeph>TRAPD</codeph> macro.
-The <codeph>SizeChanged()</codeph> method traps any leaves from <codeph>CreateBitmapsL()</codeph> and
-consequently does <b>not</b> need to have a trailing <codeph>L</codeph>. 
-  </p><p>The error code of the leave is stored in the err variable, which
-is declared as a normal integer by this macro. It would be a good idea to
-take a look at the contents of this variable and to handle errors instead
-of ignoring them as we’re doing here. But for the sake of simplicity, we do
-not handle any errors that might occur in this situation. </p><p/><p><b>Tip</b></p><p>A
-good way to automatically check your code for potential problems is to use
-the <i>CodeScanner</i> tool that comes with Carbide.c++. It is a static code-analysis
-tool looking at Symbian coding rules and standards. Find out more at: <xref href="http://carbidehelp.nokia.com/help/topic/com.nokia.carbide.cpp.codescanner/html/codescanner.htm.dita">http://carbidehelp.nokia.com/help/topic/com.nokia.carbide.cpp.codescanner/html/codescanner.htm</xref></p></section>
-<section id="GUID-7E4A9491-8F22-4D68-9890-95332D31412B"><title> Handling Touch
-Events</title><p>Before we start handling the touch events, we need one more
-instance variable in our code. To draw a line from one touch position to the
-next, it’s necessary to save the first position. Therefore, add the following
-private instance variable to <codeph>CHelloWorldContainer</codeph>: <codeblock xml:space="preserve">TPoint iLastPos;</codeblock></p><p><codeph>TPoint</codeph> is
-a convenience class that stores two integers that can be used as co-ordinates.
-Additionally, it provides some methods to modify the point. We do not need
-to initialize the variable in the constructor of the <codeph>CHelloWorldContainer</codeph> class
-– the container class is indirectly derived from the class <codeph>CBase</codeph>,
-which automatically zero-initializes all member variables.    Touch events
-are delivered to the container class, which is responsible for managing the
-visible UI content in the main pane of your application. To handle the events
-ourselves, we have to override the following method in <codeph>CHelloWorldContainer</codeph>: </p><p><codeph>void
-CHelloWorldContainer::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)</codeph></p><p>Define
-this method in the header file (can be private or protected) and add its implementation
-in the <codeph>.cpp</codeph> file.    The information about the new event
-is sent through the argument <codeph>aPointerEvent</codeph>. We are interested
-in the up event for the first button (there is only one in current touch devices;
-you can’t click with a right button as you would with a mouse). Whenever the
-user releases the stylus or finger from the touch screen, we want to draw
-a line to this position. Put the following code into this if statement: <codeblock xml:space="preserve">if (aPointerEvent.iType == TPointerEvent::EButton1Up)
-  {
-  }</codeblock></p><p>Drawing the line itself is rather simple. First, define
-the color and style that should be used for drawing, then call the function
-for drawing the line. Note that the settings concerning the color and style
-stay active until they are changed again in this graphics context – you do
-not need to set them every time when executing consecutive drawing operations. </p><codeblock xml:space="preserve">iBmpGc-&gt;SetPenColor(KRgbRed);  
-iBmpGc-&gt;SetPenSize(TSize(2,2));  
-iBmpGc-&gt;DrawLine(iLastPos, aPointerEvent.iPosition);</codeblock><p>Next, we
-have to save the new position, because it will be required as the starting
-point for the next line. </p><codeph>iLastPos = aPointerEvent.iPosition;</codeph><p>Finally,
-issue a request to the framework to redraw the screen. Otherwise, the user
-won’t see the new line! </p><codeph>DrawDeferred();</codeph><p>At the end
-of the method, also call the <codeph>HandlePointerEventL()</codeph> method
-of the base class (the container is derived from <codeph>CCoeControl</codeph>,
-because it is a normal UI control by itself): </p><codeph>CCoeControl::HandlePointerEventL(aPointerEvent);</codeph><p>To
-sum it up, this is the final code for the <codeph>HandlePointerEvent()</codeph> method: </p><codeblock xml:space="preserve">void CHelloWorldContainer::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
-      {
-      iBmpGc-&gt;SetPenColor(KRgbRed);
-      iBmpGc-&gt;SetPenSize(TSize(2,2));
-      iBmpGc-&gt;DrawLine(iLastPos, aPointerEvent.iPosition);
-      iLastPos = aPointerEvent.iPosition;
-      DrawDeferred();
-      }
-    CCoeControl::HandlePointerEventL(aPointerEvent);
-    }</codeblock><p>We’ve already added all the code required for drawing
-to the bitmap, but this bitmap still has to be transferred to the screen.
-The <codeph>CHelloWorldContainer::Draw()</codeph> method is called when the
-system wants the contents of the container to be redrawn. Therefore, we need
-to add the following line of code to the end of the <codeph>Draw()</codeph> method,
-which copies the bitmap to the top left of the graphics context of the screen: </p><codeph>gc.BitBlt(TPoint(0,
-0), iBitmap);</codeph><p>Now compile the project. It should already work –
-you can draw red lines by just clicking inside the main pane of the emulator! </p><fig id="GUID-CFD29EE4-464B-498C-80F5-493847DE0AEE">
-<image href="GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e4528_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-8DC096A0-807D-437C-9A96-ABAFE2AF7F26"><title>  Defining
-a Menu </title><p>The application would be improved if the user could clear
-the drawing during use, rather than having to restart it. This section shows
-how you add and handle menu items to provide this functionality, and to exit
-the application    Open the <codeph>HelloWorldContainer.uidesign</codeph> document.
-You can find it in the root folder of your project in the <b>Project Explorer</b> or
-in the <b>UI Designs</b> folder of the Symbian Project Navigator.    </p><p>Click
-on the <b>Options</b> menu item below the UI design to reveal the menu. As
-indicated, you simply need to click on the empty menu item and start typing. </p><fig id="GUID-96D944A2-87C5-4530-AB0C-580C3277285D">
-<image href="GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e4552_href.png" placement="inline"/>
-</fig><p>Add two menu items – <b>Clear</b> (for clearing the image) and <b>Exit</b> (for
-closing the application).    </p><p>Then click once on the Exit menu item
-to select it. Go to the <b>Behavior</b> group of the <b>Properties</b> window
-and change the command ID to <codeph>EAknCmdExit</codeph> (this is available
-in the drop-down list). This command will also be sent to your application
-if the operating system wants to shut it down, for example, when the phone
-does not have enough memory left. Therefore, it is necessary that every application
-always responds to this event and instantly shuts the application down. It
-is already handled by the basic application that the Carbide.c++ wizard generated
-for you; you don’t need to implement the command handling for this event yourself. </p><fig id="GUID-8FD2973F-23FF-4734-AE16-CA39C02C7DE5">
-<image href="GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e4575_href.png" placement="inline"/>
-</fig><p>If you try your application now, you will see that the Exit menu
-item already works. </p><p/><p><b>Tip</b></p><p> When testing the application,
-always quit your application using the <b>Exit</b> command (rather than just
-closing the emulator). The application environment will then automatically
-check for memory leaks. If you just shut down the emulator you may not discover
-the leak until much later, making it a lot more difficult to find the cause.</p></section>
-<section id="GUID-0090F731-A243-44C7-96ED-1EC5DB172F8D"><title> Clearing the
-Drawing </title><p>Whenever the <b>Clear</b> menu item is selected the view
-class method <codeph>CHelloWorldContainerView::HandleCommandL()</codeph> is
-called with the command ID of the menu item as a parameter.   </p><p> If we
-want to handle the menu item, the UI designer can create the necessary code
-for us. Right-click on the menu item and choose <b>Handle ‘selected’ Event</b>.
-The UI designer will ask you to save the design – choose <b>Yes</b>. The code
-will then be generated and you will jump into the code view to a new method
-called <codeph>HandleClearMenuItemSelectedL()</codeph> – a more convenient
-place to put your command-handling code than directly in a big <codeph>HandleCommandL()</codeph> method
-that receives all commands. The auto-generated source code therefore calls
-the new extra method from within <codeph>HandleCommandL()</codeph> (take a
-look at that method to see what really happens). </p><fig id="GUID-8E944FEE-EFDF-4AFE-BEB8-F3B216B91A98">
-<image href="GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e4619_href.png" placement="inline"/>
-</fig><p>Now, we only need to tell the container that it should clear its
-bitmap buffer. To do this, create a new public method in the container: </p><codeblock xml:space="preserve">void CHelloWorldContainer::ClearDrawing()
-  {
-  iBmpGc-&gt;Clear();
-  DrawDeferred();
-  }</codeblock><p>Now, call this method from the menu item handler method.
-As explained in the section about the application architecture, the view class
-(<codeph>CHelloWorldContainerView</codeph>) is the controller and owner for/of
-the container class (<codeph>CHelloWorldContainer</codeph>). Therefore, this
-class has a pointer to the container as an instance variable, which you can
-use to clear the drawing. </p><codeblock xml:space="preserve">TBool CHelloWorldContainerView::HandleClearMenuItemSelectedL(TInt aCommand)
-  {
-  iHelloWorldContainer-&gt;ClearDrawing();
-  return ETrue;
-  }</codeblock><p>The menu command should now clear the image.    </p><p>Congratulations,
-you have completed the tutorial and have created your own small mobile painting
-application! </p></section>
-<section id="GUID-2BD775FF-BD36-4550-A388-48A3B1832D9E"><title> Further Exercises</title><p>As
-an exercise, it’s a good idea to extend the application by yourself – for
-example, you could add some menu items that allow the end user to change the
-color of the pen. </p><p/><p><b>Tip</b></p><p> It’s a good idea to learn
-keyboard shortcuts as early as possible, because they can significantly increase
-the efficiency of your work. For example, you can press <b>Ctrl + B</b> to
-build the project, instead of using the icon or the menu commands. Also very
-helpful: <b>Ctrl + Shift + F</b> automatically formats and indents your code.
-You can get a full list of commands by pressing <b>Ctrl + 3</b>. A hot keys
-list appears when you press <b>Ctrl + Shift + L</b>.</p><p/><p> <b>Importing
-Other Examples</b></p><p>The S60 SDK itself installs many examples; additional
-applications can be downloaded from the developer.symbian.org and Forum Nokia
-(see the Related Info section  for more information).    To import ready-made
-applications in Carbide.c++, go to <b>File | Import</b>. In the following
-dialog, select <b>Symbian OS Bld.inf file</b> and click <b>Next</b>. </p><fig id="GUID-8E8F4507-70E7-496C-AE4D-16DAD8146ABA">
-<image href="GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e4681_href.png" placement="inline"/>
-</fig><p/><p>Now, click <b>Browse</b> and navigate to the <codeph>bld.inf</codeph> file
-of the project you want to import. It’s usually stored in the <codeph>/group/</codeph> subfolder
-of the project. </p><fig id="GUID-B682943D-10EE-4DC8-B510-7C2D54C536EE">
-<image href="GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e4697_href.png" placement="inline"/>
-</fig><p>In the following step, select which SDKs you would like to use. The
-same considerations as those explained when creating your Hello World application
-apply. </p><fig id="GUID-5A381CA4-CCE0-4359-8F02-697AEDA72BDE">
-<image href="GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e4703_href.png" placement="inline"/>
-</fig><p>You can usually accept the default values for the next step and let
-the wizard import everything.    </p><p>In the last step, you have to define
-the <b>Project Properties</b>. In most cases, you can leave the default values. </p><fig id="GUID-1AB6D789-9407-4AB0-8F52-B1138DE063BD">
-<image href="GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e4714_href.png" placement="inline"/>
-</fig><p>Afterwards, the project is imported and you can start working. The
-project contents will not be copied to the current Carbide.c++ workspace,
-so you will work directly on the original directory and the original files.
-Copy the project to a different directory first if you want to keep the original
-project or example in its original state – for example, into the workspace
-directory.    </p><p><b>Troubleshooting</b>: If <keyword>importing</keyword> the
-project fails, take special care of the last step of the import process: the
-root directory should be set correctly to the root directory of the project
-and not one level above it. Also, the project name should be the same as the
-last part of the root directory. From time to time, the default values are
-not configured properly, causing problems in the import process. </p><p/><p><b>Warning</b>  </p><p>Do
-not use the standard (Eclipse) project import! The reason is that this import
-method would also import all build configuration settings, including references
-to installed SDKs and paths on the original system. Therefore, if you import
-a project from somebody else but don’t have the SDK installed in exactly the
-same directory, the build configurations will no longer work. The <codeph>bld.inf</codeph> import
-method recreates the SDK bindings and only imports the real contents of the
-project.</p></section>
-<section id="GUID-191D5D9D-00FB-47F0-B88B-8B87588A20C8"><title> Summary</title><p>This
-part of the tutorial has shown how we can extend the basic skeleton from the <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++ Quick Start</xref> to
-create a small paint application. The tutorial explains the application framework,
-including how you define menus, how to handle touch-screen events, drawing
-to the screen etc. </p></section>
-<section id="GUID-8B6E602D-CA6B-41DD-B3DC-4C3BC9A04154"><title> Related Info</title><ul>
-<li><p><xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++
-Quick Start</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device.dita">Getting
-Started with Debugging on the Device</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/images/e/eb/HelloSymbianWorld_Example_Code.zip.dita">File:
-HelloSymbianWorld Example Code.zip</xref>  (code example associated with this
-article)</p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90" xml:lang="en"><title>Going
+Beyond Hello: A Tutorial for Symbian C++ Applications</title><shortdesc>This tutorial shows how you can extend that basic example to create
+a small paint application, along the way learning more about the application
+frameworks (e.g. defining menus, how to handle touch-screen events, drawing
+to the screen etc.).</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In the <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++
+Quick Start</xref> you learned how to create a basic example application using
+Carbide.c++, and how to build and run it on the Windows emulator and on a
+device.  </p>
+<p><b>Comes with Code</b>: <xref href="http://developer.symbian.org/wiki/images/e/eb/HelloSymbianWorld_Example_Code.zip.dita">File:
+HelloSymbianWorld Example Code.zip</xref></p>
+<section id="GUID-14C6D367-D806-45F8-BC44-C5DBC78096D9">       <title> Application
+Structure</title>       <p>Carbide.c++ offers two ways of exploring your project.
+The traditional <b>Project Explorer</b> window, which can also be found in
+Eclipse, lists the files belonging to the project in the same directory structure
+as in the file system.  </p><p>The <b>Symbian Project Navigator</b> contains
+the same contents, but displays them in a logical hierarchy according to <xref href="http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions.dita">Symbian
+Conventions</xref>. </p><p> You might wonder why a basic "Hello World" application
+contains so many files. The answer is straightforward - a much simpler Hello
+World wouldn’t be a very good starting point for real-world applications.
+ </p><p>Instead the wizard generates the project for a complete and readily
+extensible application. The project separates code and data, and uses a form
+of the <xref href="http://wiki.forum.nokia.com/index.php/Design_Patterns_in_Symbian.dita#http://wiki.forum.nokia.com/index.php/Design_Patterns_in_Symbian/Model-View-Control_Pattern">model
+view controller pattern</xref> for structuring your code. The application
+already reacts to system events and contains everything that is required for
+localization. </p><p/><p><b>What are the directories of a project?</b><fig id="GUID-898488F8-5CF9-4A01-95F8-45E2C5D2E501">
+<image href="GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e5124_href.png" placement="inline"/>
+</fig></p><p/><b>\group</b><ul>
+<li><p><b>bld.inf</b>: Component-definition file. This specifies the <codeph>mmp</codeph> files
+that belong to your component, any shared header files that it exports, and
+the default build targets (e.g. GCCE, WINSCW).</p><ul>
+<li><p><codeph>Bld.inf</codeph> is used to generate the makefiles and <codeph>abld.bat</codeph> used
+to build for the command-line (see <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian
+C++ Quick Start</xref>). </p></li>
+<li><p>This file is the starting point when you want to import a Symbian C++
+project into Carbide.c++, because it contains references to all executables
+in your project (see the section on Importing Other Examples). </p></li>
+</ul></li>
+<li><p><b>HelloWorld.mmp</b>: Project-definition file. This specifies how
+to build an executable (in this case <codeph>HelloWorld.exe</codeph>) in a
+platform- and compiler-independent way. It contains information such as resource
+files to be compiled, source files to include when compiling, and the libraries
+to include when linking. </p></li>
+<li><p><b>Icons_aif_scalable_dc.mk</b>: Makefile used to create the application's
+icon from the <codeph>*.svg</codeph> file in the <codeph>/gfx</codeph> folder. </p></li>
+</ul><p> </p><p><b>\src</b></p><ul>
+<li><p> <b>HelloWorldApplication.cpp</b>: This file contains the entry point
+for the EXE file (<codeph>E32Main()</codeph>) as well as the implementation
+of the Application class (which provides some basic functionality for the
+GUI framework). Normally this is "boilerplate" code and you do not need to
+make any changes. </p></li>
+<li><p><b>HelloWorldDocument.cpp</b>: This class is supposed to take care
+of the persistent data model of your application and therefore provides some
+functions to load and save <codeph>.ini</codeph> files. This mechanism is
+disabled by default - for most applications you may treat this as "boilerplate"
+code. </p></li>
+<li><p><b>HelloWorldAppUi.cpp</b>: This is the main controller of your application.
+It contains the logic for handling application-wide events (so you don’t have
+to handle, for example, the exit event in every view). It owns all the views
+that you use. </p></li>
+<li><p><b>HelloWorldContainerView.cpp</b>: This is a kind of controller, which
+is responsible for handling events and the UI elements of the currently visible
+view. It’s not visible itself, but owns and manages the <i>Container</i> (below),
+which corresponds to the view in the traditional model view controller pattern.</p></li>
+<li><p><b>HelloWorldContainer.cpp</b>: Contains the UI elements that should
+be displayed by the view. Therefore, the ContainerView and the Container usually
+have a very strong relationship. </p></li>
+</ul><p>During start-up, one class instance creates the next:</p><fig id="GUID-2A3EE3C2-3515-4217-BCB3-182A01936898">
+<image href="GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e5230_href.png" placement="inline"/>
+</fig><p/><p><b>\inc</b></p><ul>
+<li><p><b>HelloWorldApplication.h</b>, <b>HelloWorldDocument.h</b>, <b>HelloWorldAppUi.h</b>, <b>HelloWorldContainerView.h</b>, <b>HelloWorldContainer.h</b>: Header files corresponding to each of the main source files above. </p></li>
+<li><p><b>HelloWorld.hrh</b>: UIDs/identifiers for UI elements including views.
+These are shared between the resource file definitions for UI elements and
+the source code command handlers.</p></li>
+<li><p><b>HelloWorld.pan</b>: Panic code and method definitions.</p></li>
+</ul><p/><p><b>\data</b></p><ul>
+<li><p><b>HelloWorld_reg.rss</b>: Contains registration information about
+the application, such as its title.</p></li>
+<li><p><b>HelloWorld.rss</b>: Main resource file. Contains additional information
+about the application, as well as user interface and text resource definitions.
+     </p></li>
+<li><p><b>HelloWorld.loc</b>, <b>HelloWorld.l01</b>: Localization files. Strings
+used by UI are defined in separate localization resource files. Each file
+has the format <codeph>.lxx</codeph>, where <i>xx</i> is a language specific
+numeric file extension - e.g. UK English is ‘01’, French ‘02’ and German ‘03’.
+The <codeph>.loc</codeph> file is a kind of junction that <codeph>#includes</codeph> the
+language specific files. The languages are compiled into separate resource
+files (extension <codeph>.rxx</codeph>; the resource file for the current
+language is loaded by the UI framework at runtime</p></li>
+</ul><p/><p><b>\gfx</b></p><ul>
+<li><p><b>list_icon.bmp</b>, <b>list_icon_mask.bmp</b>, <b>mark_icon.bmp</b>, <b>mark_icon_mask.bmp</b>:
+Bitmap and bitmap masks. These are compiled into the MultiBitMap (<codeph>mbm</codeph>)
+format for display in the application.</p></li>
+<li><p> <b>qgn_menu_HelloWorld.svg</b>: SVG-T image that gets compiled into
+the <codeph>HelloWorld_aif.mif</codeph> MultiImageFile (<codeph>mif</codeph>)
+used for the application icon.</p></li>
+</ul><p/><p><b>\sis</b></p><ul>
+<li><p><b>HelloWorld.pkg</b>: Defines the contents that should be packaged
+into the installable <codeph>.sis</codeph> file for the device. This includes
+the executable as well as all resources required by the application (graphics
+and so on).</p></li>
+<li><p><b>HelloWorld.sis</b>: Compressed and self-contained installation file
+for the device. Compiled based on the package file.     </p></li>
+<li><p><b>HelloWorld.sisx</b>: <codeph>.sis</codeph> file which has been signed
+with a certificate (in this case self-signed).</p></li>
+</ul>     </section>
+<section id="GUID-65BEDD17-334B-4C42-8D89-DAB355F97F51"><title> Extending
+Hello World – Drawing</title><p>To make our application a little bit more
+interactive, we are going to implement a simple paint tool, allowing the user
+to draw lines by touching the screen.    </p><p>We could draw the lines directly
+on the screen, but then everything would get lost when something caused our
+application to redraw the screen – for example, a telephone call that came
+through while our application was running. Therefore, we have to draw the
+lines to a bitmap, which is simply copied to the screen whenever required.
+  </p><p>Another solution (more difficult but also more flexible!) would be
+to store all lines in a list and to iterate over the list each time the application
+needs to draw the contents of the screen. </p></section>
+<section id="GUID-217EFA6E-9B5F-4B65-8B99-E056CC26156D"><title> Using the
+SDK Documentation</title><p>The class that can handle bitmap data is called <codeph>CFbsBitmap</codeph>.
+Let’s take a look at the documentation for this class to find out more about
+the required header files, libraries and available methods.    </p><p><xref href="http://developer.symbian.org/search/search_results.php?txtSearch=CFbsBitmap&amp;site=sdl_collection.dita">Search</xref> the
+online documentation for the class you're interested in, in this case <codeph>CFbsBitmap</codeph>. <xref href="http://developer.symbian.org/main/documentation/reference/s%5E2/doc_source/reference/tb91sf-PP/fontandbitmapserver/index.html.dita">CFbsBitmap
+in Os Font_and_Bitmap_Server</xref> should be (one of the) first topics you
+find. </p><p/><note>If you're working offline you can also search for documentation
+in the SDK. <b>Start</b> menu: <b>Start - S60 Developer Tools - 5th Edition
+SDK, v<i>1.0</i> - SDK Documentation</b></note><p>Right at the top of the
+reference page you will see that the header file we need to use is <codeph>FBS.H</codeph> and
+the library we need to link against is called <codeph>fbscli.lib</codeph>. </p><fig id="GUID-23B3B7CF-E676-4FBC-8B26-E7B88764781C">
+<image href="GUID-0B0EF90E-45A4-467F-8CD9-33FBC612B3BD_d0e5428_href.png" placement="inline"/>
+</fig><p>This class is capable of storing a bitmap. It's also possible to
+get direct access to the bitmap data. However for more convenient methods
+of drawing we will work through a drawing device and context.    </p><p>To
+find out more about bitmaps, contexts and drawing functions, <xref href="http://developer.symbian.org/search/search_results.php?txtSearch=bitmaps&amp;site=sdl_collection.dita">Search for ‘bitmaps’</xref> in the documentation, and go to the page <b>Bitmaps
+in Using Bitmaps</b>, or <b>Using Bitmaps in Using Graphics Device Interfaces</b>.
+   Symbian provides several different device and context classes. For our
+application we’re going to use <codeph>CFbsBitmapDevice</codeph> (header file: <codeph>bitdev.h</codeph>,
+library: <codeph>bitgdi.lib</codeph>) and <codeph>CFbsBitGc</codeph> (header
+file: <codeph>bitstd.h</codeph>, library: <codeph>bitgdi.lib</codeph>). </p></section>
+<section id="GUID-D9C51891-11DE-4042-AE32-CC7EA362C32A"><title> Adding Libraries
+To a Project</title><p>In the previous step, we determined that we need two
+libraries in order to use all three bitmap-related classes: <codeph>fbscli.lib</codeph> and <codeph>bitgdi.lib</codeph>.
+To add them to our project, open the <codeph>HelloWorld.mmp</codeph> project
+file (in the <codeph>/group/</codeph> folder if you’re using the <b>Project
+Explorer</b> window). Switch to the <b>Libraries</b> tab.    At the top of
+this page, you will see a list of included libraries. <codeph>fbscli.lib</codeph> is
+already in the list, so we don’t need to add it. However <codeph>bitgdi.lib</codeph> is
+missing. </p><note>There are more libraries in the list than are used by our
+project (added by the wizard!). These cause no harm so we choose not to remove
+them.</note><p>Click on the <b>Add</b> button. Search for <codeph>bitgdi.lib</codeph> in
+the list and add it to the <b>Libraries</b> list. </p><fig id="GUID-7D1E15B4-5157-4F48-9084-6DDBD6EE0208">
+<image href="GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e5506_href.png" placement="inline"/>
+</fig><p>When you’re finished, make sure that both libraries are in the <b>Libraries</b> list.
+   </p><p>When you compile your application again, Carbide.c++ will detect
+the changes in the .mmp file and ask you what to do. Click on <b>Compile and
+Link</b> to update the project with the changes we have made to the <codeph>.mmp</codeph> file. <fig id="GUID-77F781CD-A2EF-4489-BAE2-EB283057670E">
+<image href="GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e5523_href.png" placement="inline"/>
+</fig></p></section>
+<section id="GUID-F2A4FC0F-8C67-4151-8BD2-808FCEDD121F"><title> Creating Bitmaps</title><p>Now
+the libraries have been added, we can use the bitmap classes in our project.
+Open the file <codeph>HelloWorldContainer.h</codeph> and add the following
+include statements: </p><codeblock xml:space="preserve">#include &lt;fbs.h&gt;
+#include &lt;bitdev.h&gt;
+#include &lt;bitstd.h&gt;
+</codeblock><p>We also need to store the bitmap objects as instance (member)
+variables. Add the following definitions to a private section of the <codeph>CHelloWorldContainer</codeph> class.
+Be careful not to write anything into areas managed by the UI designer, because
+your changes could be overwritten. These areas are marked by comments.   
+ </p><codeblock xml:space="preserve">private:  
+CFbsBitmap* iBitmap;  
+CFbsBitmapDevice* iBmpDevice;  
+CFbsBitGc* iBmpGc;   </codeblock><p>Symbian C++ uses some <xref href="http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions.dita#http://developer.symbian.org/wiki/index.php/Coding_Standards_and_Conventions/Naming_Conventions">naming conventions</xref>. Instance variables should have a lowercase <codeph>i</codeph> at
+the beginning of the variable name (<codeph>iBitmap</codeph>). Arguments should
+be marked by an a (<codeph>aBitmap</codeph>). Normal local variables that
+you create inside a function do not need any prefix. That way, you instantly
+know where the variable is coming from – this is very important when deleting
+objects.    Next, we want to create the bitmap. Define and implement a new
+method: </p><codeph>void CHelloWorldContainer::CreateBitmapsL()</codeph><p>Let’s
+go line by line through the required code for this method:    First, we have
+to make sure that any previous objects are deleted if they already exist.
+This would be required (for example) if the running application needs to re-create
+the bitmap because the screen layout changes. You don’t need to add an if
+statement to check if the pointer is NULL beforehand – the C++ <codeph>delete</codeph> statement
+only deletes the object if the pointer is not NULL. You do however need to
+ensure that the objects are set to NULL after deletion to avoid possible "double
+deletion" in the destructor. </p><codeblock xml:space="preserve">delete iBitmap; iBitmap = NULL;  
+delete iBmpDevice; iBmpDevice = NULL;  
+delete iBmpGc; iBmpGc = NULL;</codeblock><p>This following line of code should
+look familiar – it simply creates an instance of the <codeph>CFbsBitmap</codeph> class:
+     </p><p><codeph> iBitmap = new (ELeave) CFbsBitmap();</codeph>       </p><p>The
+(<codeph>ELeave</codeph>) parameter is Symbian C++ specific. This causes a <xref href="http://developer.symbian.org/wiki/index.php/Leaves_%26_The_Cleanup_Stack_(Fundamentals_of_Symbian_C%2B%2B).dita"> leave</xref> (the
+Symbian C++ equivalent of standard exceptions) if allocating the object fails
+– for example, because there is not enough free memory. With the (<codeph>ELeave</codeph>),
+you don’t have to manually check if the pointer is actually pointing to a
+valid object after creating the object instance. You can find out more about
+leaves in <xref href="http://developer.symbian.org/wiki/index.php/Fundamentals_of_Symbian_C%2B%2B.dita">Fundamentals
+of C++</xref>.    </p><p>We do not handle the potential leave here; that’s
+why the method name (<codeph>CreateBitmapL()</codeph>) has a trailing L to
+show that it can also leave. More on this topic in a moment.    </p><p>Now,
+it’s time to let the <codeph>CFbsBitmap</codeph> class allocate the memory
+for the bitmap it is going to manage. The available drawing size for our container
+can be queried by the method <codeph>Size()</codeph> from its base class. <codeph>EColor16MU</codeph> specifies
+the color depth – in this case, it’s a true color display mode with 32 bits
+per pixel; the top byte is unused. The color mode <codeph>EColor16MA</codeph> would
+use the top byte for the alpha channel, several other modes are available
+as well.   </p><p><codeph>iBitmap-&gt;Create(Size(), EColor16MU);</codeph>  
+ </p><p>The next line creates a graphics device based on the bitmap. A graphics
+device represents the medium being drawn to and is needed to create a graphics
+context. The use of a <codeph>NewL()</codeph> method is common in Symbian
+C++; it is a static factory function which returns a fully constructed object
+of the desired type.   </p><p><codeph> iBmpDevice = CFbsBitmapDevice::NewL(iBitmap);</codeph> 
+  </p><p>A graphics context provides a large number of drawing operations,
+along with state settings defining how the drawing is performed. The bitmap
+graphics context used here is a specialization of the generic graphics context
+and adds some methods that can be used for bitmaps only – such as clearing
+and copying rectangular areas.    </p><p><codeph>iBmpDevice-&gt;CreateContext(iBmpGc);</codeph> 
+  </p><p>Whenever you create objects, it’s best to think about where and when
+they are going to be deleted right away. Memory leaks are a serious issue
+on a mobile device where no virtual memory is available and the main memory
+is limited to 30-80 MB. Therefore, go to the destructor of <codeph>CHelloWorldContainer</codeph> and
+add the required statements for deleting the three objects:      </p><p> <codeblock xml:space="preserve">delete iBmpGc;  
+delete iBmpDevice;  
+delete iBitmap;</codeblock>       </p><p>The next step addresses the remaining
+question: where to call the <codeph>CreateBitmapsL()</codeph> method. Of course,
+you could do this from the construction methods of the class. But what if,
+while your application is running, the user physically turns the phone, causing
+it to switch from portrait to landscape mode? Because the bitmap was created
+with the portrait size in mind, the user would no longer be able to use the
+full screen for drawing.    </p><p>Therefore, we have to react to events that
+inform us when the screen size is changed. In those situations, <codeph>SizeChanged()</codeph> is
+executed. When the container is first constructed, its size changes as well.
+Because of this, we can simply call our <codeph>CreateBitmapsL()</codeph> method
+from within <codeph>SizeChanged()</codeph>:       </p><p><codeblock xml:space="preserve">void CHelloWorldContainer::SizeChanged()  
+	{  
+	CCoeControl::SizeChanged();  
+	LayoutControls();     
+	// [[[ begin generated region: do not modify [Generated Contents]
+	// ]]] end generated region [Generated Contents]
+	if (!iBitmap || (iBitmap &amp;&amp; iBitmap-&gt;SizeInPixels() != Size()))
+		{
+		TRAPD(err, CreateBitmapsL());
+		}
+	}</codeblock>      </p><p>In the source code above, an additional check ensures
+that the bitmap is only re-created if the size available for the container
+is really different to the existing bitmap size – the <codeph>SizeChanged()</codeph> method
+is also called, for example, when the option menu obscures part of our view.
+This does not affect the available space for our drawing area and therefore
+should not lead to re-creating the bitmap.    </p><p>But what is the <codeph>TRAPD()</codeph> statement
+doing here? Let’s use this to take a closer look at the concept of leaves. </p><p/><p><b>Leaves</b></p><p>When
+programming using Symbian C++, an L is appended to the name of methods that
+can leave (usually because it contains other methods that can leave and does
+not choose to "TRAP" them). Note: this is a helpful convention, but is not
+checked or required by the compiler.    </p><p>Our <codeph>CreateBitmapsL()</codeph> method
+contains two methods that can leave: the (<codeph>ELeave</codeph>) parameter
+causes a leave if there is not enough memory to allocate the object. The <codeph>NewL()</codeph> method
+from the graphics device also has a trailing <codeph>L</codeph> – meaning
+that this method can also leave. We did not catch any (all) of those leaves
+in the <codeph>CreateBitmapsL()</codeph> method so it was named with a trailing <codeph>L</codeph>.
+   </p><p>Any leaves are passed up in the call stack until caught by a <codeph>TRAPD</codeph> macro.
+The <codeph>SizeChanged()</codeph> method traps any leaves from <codeph>CreateBitmapsL()</codeph> and
+consequently does <b>not</b> need to have a trailing <codeph>L</codeph>. 
+  </p><p>The error code of the leave is stored in the err variable, which
+is declared as a normal integer by this macro. It would be a good idea to
+take a look at the contents of this variable and to handle errors instead
+of ignoring them as we’re doing here. But for the sake of simplicity, we do
+not handle any errors that might occur in this situation. </p><p/><p><b>Tip</b></p><p>A
+good way to automatically check your code for potential problems is to use
+the <i>CodeScanner</i> tool that comes with Carbide.c++. It is a static code-analysis
+tool looking at Symbian coding rules and standards. Find out more at: <xref href="http://carbidehelp.nokia.com/help/topic/com.nokia.carbide.cpp.codescanner/html/codescanner.htm.dita">http://carbidehelp.nokia.com/help/topic/com.nokia.carbide.cpp.codescanner/html/codescanner.htm</xref></p></section>
+<section id="GUID-7E4A9491-8F22-4D68-9890-95332D31412B"><title> Handling Touch
+Events</title><p>Before we start handling the touch events, we need one more
+instance variable in our code. To draw a line from one touch position to the
+next, it’s necessary to save the first position. Therefore, add the following
+private instance variable to <codeph>CHelloWorldContainer</codeph>: <codeblock xml:space="preserve">TPoint iLastPos;</codeblock></p><p><codeph>TPoint</codeph> is
+a convenience class that stores two integers that can be used as co-ordinates.
+Additionally, it provides some methods to modify the point. We do not need
+to initialize the variable in the constructor of the <codeph>CHelloWorldContainer</codeph> class
+– the container class is indirectly derived from the class <codeph>CBase</codeph>,
+which automatically zero-initializes all member variables.    Touch events
+are delivered to the container class, which is responsible for managing the
+visible UI content in the main pane of your application. To handle the events
+ourselves, we have to override the following method in <codeph>CHelloWorldContainer</codeph>: </p><p><codeph>void
+CHelloWorldContainer::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)</codeph></p><p>Define
+this method in the header file (can be private or protected) and add its implementation
+in the <codeph>.cpp</codeph> file.    The information about the new event
+is sent through the argument <codeph>aPointerEvent</codeph>. We are interested
+in the up event for the first button (there is only one in current touch devices;
+you can’t click with a right button as you would with a mouse). Whenever the
+user releases the stylus or finger from the touch screen, we want to draw
+a line to this position. Put the following code into this if statement: <codeblock xml:space="preserve">if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+  {
+  }</codeblock></p><p>Drawing the line itself is rather simple. First, define
+the color and style that should be used for drawing, then call the function
+for drawing the line. Note that the settings concerning the color and style
+stay active until they are changed again in this graphics context – you do
+not need to set them every time when executing consecutive drawing operations. </p><codeblock xml:space="preserve">iBmpGc-&gt;SetPenColor(KRgbRed);  
+iBmpGc-&gt;SetPenSize(TSize(2,2));  
+iBmpGc-&gt;DrawLine(iLastPos, aPointerEvent.iPosition);</codeblock><p>Next, we
+have to save the new position, because it will be required as the starting
+point for the next line. </p><codeph>iLastPos = aPointerEvent.iPosition;</codeph><p>Finally,
+issue a request to the framework to redraw the screen. Otherwise, the user
+won’t see the new line! </p><codeph>DrawDeferred();</codeph><p>At the end
+of the method, also call the <codeph>HandlePointerEventL()</codeph> method
+of the base class (the container is derived from <codeph>CCoeControl</codeph>,
+because it is a normal UI control by itself): </p><codeph>CCoeControl::HandlePointerEventL(aPointerEvent);</codeph><p>To
+sum it up, this is the final code for the <codeph>HandlePointerEvent()</codeph> method: </p><codeblock xml:space="preserve">void CHelloWorldContainer::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
+    {
+    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+      {
+      iBmpGc-&gt;SetPenColor(KRgbRed);
+      iBmpGc-&gt;SetPenSize(TSize(2,2));
+      iBmpGc-&gt;DrawLine(iLastPos, aPointerEvent.iPosition);
+      iLastPos = aPointerEvent.iPosition;
+      DrawDeferred();
+      }
+    CCoeControl::HandlePointerEventL(aPointerEvent);
+    }</codeblock><p>We’ve already added all the code required for drawing
+to the bitmap, but this bitmap still has to be transferred to the screen.
+The <codeph>CHelloWorldContainer::Draw()</codeph> method is called when the
+system wants the contents of the container to be redrawn. Therefore, we need
+to add the following line of code to the end of the <codeph>Draw()</codeph> method,
+which copies the bitmap to the top left of the graphics context of the screen: </p><codeph>gc.BitBlt(TPoint(0,
+0), iBitmap);</codeph><p>Now compile the project. It should already work –
+you can draw red lines by just clicking inside the main pane of the emulator! </p><fig id="GUID-CFD29EE4-464B-498C-80F5-493847DE0AEE">
+<image href="GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e5803_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-8DC096A0-807D-437C-9A96-ABAFE2AF7F26"><title>  Defining
+a Menu </title><p>The application would be improved if the user could clear
+the drawing during use, rather than having to restart it. This section shows
+how you add and handle menu items to provide this functionality, and to exit
+the application    Open the <codeph>HelloWorldContainer.uidesign</codeph> document.
+You can find it in the root folder of your project in the <b>Project Explorer</b> or
+in the <b>UI Designs</b> folder of the Symbian Project Navigator.    </p><p>Click
+on the <b>Options</b> menu item below the UI design to reveal the menu. As
+indicated, you simply need to click on the empty menu item and start typing. </p><fig id="GUID-96D944A2-87C5-4530-AB0C-580C3277285D">
+<image href="GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e5827_href.png" placement="inline"/>
+</fig><p>Add two menu items – <b>Clear</b> (for clearing the image) and <b>Exit</b> (for
+closing the application).    </p><p>Then click once on the Exit menu item
+to select it. Go to the <b>Behavior</b> group of the <b>Properties</b> window
+and change the command ID to <codeph>EAknCmdExit</codeph> (this is available
+in the drop-down list). This command will also be sent to your application
+if the operating system wants to shut it down, for example, when the phone
+does not have enough memory left. Therefore, it is necessary that every application
+always responds to this event and instantly shuts the application down. It
+is already handled by the basic application that the Carbide.c++ wizard generated
+for you; you don’t need to implement the command handling for this event yourself. </p><fig id="GUID-8FD2973F-23FF-4734-AE16-CA39C02C7DE5">
+<image href="GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e5850_href.png" placement="inline"/>
+</fig><p>If you try your application now, you will see that the Exit menu
+item already works. </p><p/><p><b>Tip</b></p><p> When testing the application,
+always quit your application using the <b>Exit</b> command (rather than just
+closing the emulator). The application environment will then automatically
+check for memory leaks. If you just shut down the emulator you may not discover
+the leak until much later, making it a lot more difficult to find the cause.</p></section>
+<section id="GUID-0090F731-A243-44C7-96ED-1EC5DB172F8D"><title> Clearing the
+Drawing </title><p>Whenever the <b>Clear</b> menu item is selected the view
+class method <codeph>CHelloWorldContainerView::HandleCommandL()</codeph> is
+called with the command ID of the menu item as a parameter.   </p><p> If we
+want to handle the menu item, the UI designer can create the necessary code
+for us. Right-click on the menu item and choose <b>Handle ‘selected’ Event</b>.
+The UI designer will ask you to save the design – choose <b>Yes</b>. The code
+will then be generated and you will jump into the code view to a new method
+called <codeph>HandleClearMenuItemSelectedL()</codeph> – a more convenient
+place to put your command-handling code than directly in a big <codeph>HandleCommandL()</codeph> method
+that receives all commands. The auto-generated source code therefore calls
+the new extra method from within <codeph>HandleCommandL()</codeph> (take a
+look at that method to see what really happens). </p><fig id="GUID-8E944FEE-EFDF-4AFE-BEB8-F3B216B91A98">
+<image href="GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e5894_href.png" placement="inline"/>
+</fig><p>Now, we only need to tell the container that it should clear its
+bitmap buffer. To do this, create a new public method in the container: </p><codeblock xml:space="preserve">void CHelloWorldContainer::ClearDrawing()
+  {
+  iBmpGc-&gt;Clear();
+  DrawDeferred();
+  }</codeblock><p>Now, call this method from the menu item handler method.
+As explained in the section about the application architecture, the view class
+(<codeph>CHelloWorldContainerView</codeph>) is the controller and owner for/of
+the container class (<codeph>CHelloWorldContainer</codeph>). Therefore, this
+class has a pointer to the container as an instance variable, which you can
+use to clear the drawing. </p><codeblock xml:space="preserve">TBool CHelloWorldContainerView::HandleClearMenuItemSelectedL(TInt aCommand)
+  {
+  iHelloWorldContainer-&gt;ClearDrawing();
+  return ETrue;
+  }</codeblock><p>The menu command should now clear the image.    </p><p>Congratulations,
+you have completed the tutorial and have created your own small mobile painting
+application! </p></section>
+<section id="GUID-2BD775FF-BD36-4550-A388-48A3B1832D9E"><title> Further Exercises</title><p>As
+an exercise, it’s a good idea to extend the application by yourself – for
+example, you could add some menu items that allow the end user to change the
+color of the pen. </p><p/><p><b>Tip</b></p><p> It’s a good idea to learn
+keyboard shortcuts as early as possible, because they can significantly increase
+the efficiency of your work. For example, you can press <b>Ctrl + B</b> to
+build the project, instead of using the icon or the menu commands. Also very
+helpful: <b>Ctrl + Shift + F</b> automatically formats and indents your code.
+You can get a full list of commands by pressing <b>Ctrl + 3</b>. A hot keys
+list appears when you press <b>Ctrl + Shift + L</b>.</p><p/><p> <b>Importing
+Other Examples</b></p><p>The S60 SDK itself installs many examples; additional
+applications can be downloaded from the developer.symbian.org and Forum Nokia
+(see the Related Info section  for more information).    To import ready-made
+applications in Carbide.c++, go to <b>File | Import</b>. In the following
+dialog, select <b>Symbian OS Bld.inf file</b> and click <b>Next</b>. </p><fig id="GUID-8E8F4507-70E7-496C-AE4D-16DAD8146ABA">
+<image href="GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e5956_href.png" placement="inline"/>
+</fig><p/><p>Now, click <b>Browse</b> and navigate to the <codeph>bld.inf</codeph> file
+of the project you want to import. It’s usually stored in the <codeph>/group/</codeph> subfolder
+of the project. </p><fig id="GUID-B682943D-10EE-4DC8-B510-7C2D54C536EE">
+<image href="GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e5972_href.png" placement="inline"/>
+</fig><p>In the following step, select which SDKs you would like to use. The
+same considerations as those explained when creating your Hello World application
+apply. </p><fig id="GUID-5A381CA4-CCE0-4359-8F02-697AEDA72BDE">
+<image href="GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e5978_href.png" placement="inline"/>
+</fig><p>You can usually accept the default values for the next step and let
+the wizard import everything.    </p><p>In the last step, you have to define
+the <b>Project Properties</b>. In most cases, you can leave the default values. </p><fig id="GUID-1AB6D789-9407-4AB0-8F52-B1138DE063BD">
+<image href="GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e5989_href.png" placement="inline"/>
+</fig><p>Afterwards, the project is imported and you can start working. The
+project contents will not be copied to the current Carbide.c++ workspace,
+so you will work directly on the original directory and the original files.
+Copy the project to a different directory first if you want to keep the original
+project or example in its original state – for example, into the workspace
+directory.    </p><p><b>Troubleshooting</b>: If <keyword>importing</keyword> the
+project fails, take special care of the last step of the import process: the
+root directory should be set correctly to the root directory of the project
+and not one level above it. Also, the project name should be the same as the
+last part of the root directory. From time to time, the default values are
+not configured properly, causing problems in the import process. </p><p/><p><b>Warning</b>  </p><p>Do
+not use the standard (Eclipse) project import! The reason is that this import
+method would also import all build configuration settings, including references
+to installed SDKs and paths on the original system. Therefore, if you import
+a project from somebody else but don’t have the SDK installed in exactly the
+same directory, the build configurations will no longer work. The <codeph>bld.inf</codeph> import
+method recreates the SDK bindings and only imports the real contents of the
+project.</p></section>
+<section id="GUID-191D5D9D-00FB-47F0-B88B-8B87588A20C8"><title> Summary</title><p>This
+part of the tutorial has shown how we can extend the basic skeleton from the <xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++ Quick Start</xref> to
+create a small paint application. The tutorial explains the application framework,
+including how you define menus, how to handle touch-screen events, drawing
+to the screen etc. </p></section>
+<section id="GUID-8B6E602D-CA6B-41DD-B3DC-4C3BC9A04154"><title> Related Info</title><ul>
+<li><p><xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++
+Quick Start</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device.dita">Getting
+Started with Debugging on the Device</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/images/e/eb/HelloSymbianWorld_Example_Code.zip.dita">File:
+HelloSymbianWorld Example Code.zip</xref>  (code example associated with this
+article)</p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0C85D5DE-D78D-4DDB-BA00-6278690C1047.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0C85D5DE-D78D-4DDB-BA00-6278690C1047" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Touch UI utilities API is an SDK API and first released in S60 5th
-Edition. </p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454" xml:lang="en"><title>Setting
-Channel Properties</title><shortdesc>The channel properties can be configured using the <codeph>CSensrvChannel::SetProperty()</codeph> function.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-578E2FA5-5265-4AF7-88EC-9BA5C143DDF7">       <p>Before setting
-channel properties, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
-the sensor channel</xref>.</p>     </prereq>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-7-1-3-2">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-7-1-3-2-1"><cmd>Create a <parmname>TSensrvProperty</parmname> property
-object for setting the <parmname>KSensrvPropIdDataRate</parmname> property
-using the <parmname>TSensrvProperty(const TSensrvPropertyId,const TInt,const
-TInt)</parmname> constructor.</cmd>
-<stepxmp><codeblock xml:space="preserve">...
-TInt val=2;
-TSensrvProperty sensrvProperty(KSensrvPropIdDataRate,KSensrvItemIndexNone,val);
-...</codeblock></stepxmp>
-</step>
-<step id="GUID-3AC7711D-8CBB-427A-BEA1-800539AC1377"><cmd>Set the <parmname>KSensrvPropIdDataRate</parmname> property
-value by passing the property object that you created to <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-B69100DD-522F-3B5A-AC65-DE1950A673F0"><apiname>CSensrvChannel::SetProperty()</apiname></xref>.</cmd>
-<stepxmp><codeblock xml:space="preserve">...
-CSensrvChannel* channel;
-...
-TInt ret;
-ret=channel-&gt;SetProperty(sensrvProperty);
-...</codeblock></stepxmp>
-</step>
-</steps>
-<example><p>The following example explains how to set the x-axis of accelerometer
-channel status from activated to deactivated. </p><p>The axis active property <parmname>KSensrvPropIdAxisActive</parmname> is
-first retrieved using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function.
-If the axis is active, the new <b>deactivated</b> value is set in the retrieved
-property object. Then the channel is updated with this updated property object
-by using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-B69100DD-522F-3B5A-AC65-DE1950A673F0"><apiname>CSensrvChannel::SetProperty()</apiname></xref> function.</p><codeblock xml:space="preserve">TSensrvProperty property;
-    TInt err( KErrNone );
-    TInt axisActive( 0 );
-    iSensorChannel-&gt;GetPropertyL( KSensrvPropIdAxisActive,
-                                  TSensrvAccelerometerAxisData::Index::iAxisX,
-                                  property );
-    property.GetValue( axisActive );
-    if( 1 == axisActive )
-        {
-        property.SetValue( 0 ); // A value other than 1 means that sensor axis is deactivated.
-        err = iSensorChannel-&gt;SetProperty( property );
-        if( KErrNone == err )
-            {
-            //Accelerometer x-axis was successfully deactivated
-            }
-       }
-    else
-        {
-        //Accelerometer x-axis is already inactive
-        }</codeblock></example>
-<postreq id="GUID-5155648B-6A69-4BF4-A5C2-83A8611F2B22"><p>End the session
-with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454" xml:lang="en"><title>Setting
+Channel Properties</title><shortdesc>The channel properties can be configured using the <codeph>CSensrvChannel::SetProperty()</codeph> function.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-578E2FA5-5265-4AF7-88EC-9BA5C143DDF7">       <p>Before setting
+channel properties, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
+the sensor channel</xref>.</p>     </prereq>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-7-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-7-1-3-2-1"><cmd>Create a <parmname>TSensrvProperty</parmname> property
+object for setting the <parmname>KSensrvPropIdDataRate</parmname> property
+using the <parmname>TSensrvProperty(const TSensrvPropertyId,const TInt,const
+TInt)</parmname> constructor.</cmd>
+<stepxmp><codeblock xml:space="preserve">...
+TInt val=2;
+TSensrvProperty sensrvProperty(KSensrvPropIdDataRate,KSensrvItemIndexNone,val);
+...</codeblock></stepxmp>
+</step>
+<step id="GUID-3AC7711D-8CBB-427A-BEA1-800539AC1377"><cmd>Set the <parmname>KSensrvPropIdDataRate</parmname> property
+value by passing the property object that you created to <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-B69100DD-522F-3B5A-AC65-DE1950A673F0"><apiname>CSensrvChannel::SetProperty()</apiname></xref>.</cmd>
+<stepxmp><codeblock xml:space="preserve">...
+CSensrvChannel* channel;
+...
+TInt ret;
+ret=channel-&gt;SetProperty(sensrvProperty);
+...</codeblock></stepxmp>
+</step>
+</steps>
+<example><p>The following example explains how to set the x-axis of accelerometer
+channel status from activated to deactivated. </p><p>The axis active property <parmname>KSensrvPropIdAxisActive</parmname> is
+first retrieved using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function.
+If the axis is active, the new <b>deactivated</b> value is set in the retrieved
+property object. Then the channel is updated with this updated property object
+by using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-B69100DD-522F-3B5A-AC65-DE1950A673F0"><apiname>CSensrvChannel::SetProperty()</apiname></xref> function.</p><codeblock xml:space="preserve">TSensrvProperty property;
+    TInt err( KErrNone );
+    TInt axisActive( 0 );
+    iSensorChannel-&gt;GetPropertyL( KSensrvPropIdAxisActive,
+                                  TSensrvAccelerometerAxisData::Index::iAxisX,
+                                  property );
+    property.GetValue( axisActive );
+    if( 1 == axisActive )
+        {
+        property.SetValue( 0 ); // A value other than 1 means that sensor axis is deactivated.
+        err = iSensorChannel-&gt;SetProperty( property );
+        if( KErrNone == err )
+            {
+            //Accelerometer x-axis was successfully deactivated
+            }
+       }
+    else
+        {
+        //Accelerometer x-axis is already inactive
+        }</codeblock></example>
+<postreq id="GUID-5155648B-6A69-4BF4-A5C2-83A8611F2B22"><p>End the session
+with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e36090_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e41657_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,75 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66" xml:lang="en"><title>BIOMessageMgr:
-BIO Message manager using the message server</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The BIO Message manager example comprises two projects <filepath>BIOMessage.exe</filepath> and <filepath>BIOParser.dll</filepath>.
-The <filepath>BIOMessage.exe</filepath> example connects to the message server,
-creates a BIO message and sends the registered parser DLL and message entry
-to <filepath>BIOParser.dll</filepath>. </p>
-<section id="GUID-BBF66472-C97E-5C14-85BB-30AD56703E83"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-34a2835d-797c-4d05-8919-03fc43821825.zip" scope="external">Biomsgexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-34a2835d-797c-4d05-8919-03fc43821825.html" scope="peer"> browse</xref> to view the example code. </p> </section>
-<section id="GUID-3CD32BF4-F354-4281-9C9A-1FD5ED4761C7"><title>BIOMessage: BIO messaging using the message server</title> <p><b>Description</b> </p> <p>This
-example code demonstrates BIO messaging using <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> and <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> and
-other supporting classes as mentioned in the <xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita#GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66/GUID-5048F691-DBA0-52DC-BBBA-922EE5DDE8D5">Class
-Summary</xref> below. </p> <p>The <filepath>BIOMessage</filepath> example
-code provides the following functionality: </p> <p><b>Creating a session </b> </p> <codeblock id="GUID-822DA39D-0568-54D9-A8EA-D49ABAB6D4D5" xml:space="preserve">void CBioMessage::Connect();</codeblock> <p>Creates
-a session with the message server using <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref>. </p> <p>The
-generated console output looks like this: </p> <fig id="GUID-3F7EFDA7-7103-58F2-819B-F50A564F67F9">
-<image href="GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e290946_href.png" placement="inline"/>
-</fig> <p><b>Creating a BIO message </b> </p> <codeblock id="GUID-898B2AF1-6B24-516A-A8CF-CE210D9136EC" xml:space="preserve">void CBioMessage::Create(RSendAsMessage&amp; aMessage);</codeblock> <p>This function does the following: </p> <ul>
-<li id="GUID-3B28353D-8885-56A2-9000-B2B481045A4A"><p>creates a BIO message
-of VCard type </p> </li>
-<li id="GUID-B8FE7FB1-D904-5520-9762-A0BAE0D53833"><p>sets the message body
-text </p> </li>
-<li id="GUID-AE681720-90EE-5AEE-9D98-54C41DD19E49"><p>adds the message recipients
-for the message to be sent. </p> </li>
-</ul> <p>The generated console output looks like this: </p> <fig id="GUID-7E3F4DA5-BFC3-5393-A04A-FDE944A89815">
-<image href="GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e290983_href.png" placement="inline"/>
-</fig> <p><b>Sending the BIO message </b> </p> <codeblock id="GUID-AA6C86D7-1657-5E3D-A025-43EB77FD3D31" xml:space="preserve">void CBioMessage::Send(RSendAsMessage&amp; aMessage);</codeblock> <p>Sends the message to the recipients. </p> <p>The generated console output
-looks like this: </p> <fig id="GUID-75B51188-D5AA-5BBD-90CA-3C33D2CF3744">
-<image href="GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e291002_href.png" placement="inline"/>
-</fig> <p><b>Creating the parser </b> </p> <codeblock id="GUID-0E38D4C7-B9D8-5F6E-A0AB-315447101C1D" xml:space="preserve">CBioParser::NewL(CMsvEntry* aEntry);</codeblock> <p>Creates a <codeph>CBioParser</codeph> object based on the message entry. </p> <p><b>Parsing
-the BIO message </b> </p> <codeblock id="GUID-BF605939-E297-5131-AFFA-DFED793492DF" xml:space="preserve">CBioParser::ParserL();</codeblock> <p>This
-function does the following: </p> <ul>
-<li id="GUID-A05F6576-7677-5D92-A9C4-1697D64CBAF3"><p>calls <codeph>ExtractMessageBodyL()</codeph> to
-extract the message body text from <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref>, the message
-store </p> </li>
-<li id="GUID-ADAB322E-2354-52C5-9B7C-A4335E84B6EF"><p>finds, loads and maintains
-a reference count of client processes for a BIO parser DLL </p> </li>
-<li id="GUID-5F5D6BE4-EECE-5E70-82C6-2EB92133A2AF"><p>parses the message body
-text. </p> </li>
-</ul> <p>The generated console output looks like this: </p> <fig id="GUID-2E3907F9-E810-5B1F-A6A0-60484FE004DF">
-<image href="GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e291060_href.png" placement="inline"/>
-</fig><p><b>Class Summary</b></p><p><xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref></p><p> <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref></p><p> <xref href="GUID-CB2BB982-F91D-3E06-8D66-56731AA60EB8.dita"><apiname>CSendAsMessageTypes</apiname></xref></p><p> <xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts</apiname></xref></p><p> <xref href="GUID-49738A1E-D452-30F3-9044-6528CABBD5D4.dita"><apiname>CRegisteredParserDll</apiname></xref></p><p> <xref href="GUID-115327CD-43D1-324B-84D7-8DFB6226C42A.dita"><apiname>CBIODatabase</apiname></xref></p><p> <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref></p> </section>
-<section id="GUID-A61C8676-A44E-4F4B-96F3-D4836FD47370"><title>BIOParser: BIO message parsing</title> <p><b>Description</b> </p> <p>This
-example code demonstrates the parsing of the message. <codeph>CBIOExampleParser</codeph> is
-the wrapper class which uses <xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref> and other
-supporting classes mentioned in the <xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita#GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66/GUID-E9472DA3-DA7B-5F4B-ACBF-770D3DE81580">Class
-Summary</xref> below. </p> <p>The <filepath>BIOParser</filepath> example code
-provides the following functionality: </p> <p><b>Creating the parser </b> </p> <codeblock id="GUID-C4ED1683-524A-55DA-88CB-D321C2AA59C2" xml:space="preserve">CBIOExampleParser* CBIOExampleParser::NewL(CRegisteredParserDll&amp; aRegisteredParserDll, CMsvEntry&amp; aEntry, RFs&amp; aFs);</codeblock> <p>Creates a <codeph>CBIOExampleParser</codeph> object based on the registered
-parser DLL and the message entry. </p> <p><b>Parsing the BIO message </b> </p> <codeblock id="GUID-6F493EBE-BD8C-5982-B1AB-B592A3BAD1F4" xml:space="preserve">void CBIOExampleParser::ParseL();</codeblock> <p>Parses
-the BIO message. </p> <p><b>Processing the BIO message </b> </p> <codeblock id="GUID-106E21B6-CDFE-51AB-9C91-C263033B60AE" xml:space="preserve">CBIOExampleParser::ProcessL();</codeblock> <p>Processes
-the parsed data. </p> <p id="GUID-E9472DA3-DA7B-5F4B-ACBF-770D3DE81580"><b>Class
-Summary</b> </p><p><xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref></p> </section>
-<section id="GUID-15A5B370-1546-4A27-8F3D-8BE336AE32FD"><title>Build</title> <p>The <filepath>BIOMessageMgr</filepath> example
-code includes the following project files for building the application: <filepath>BIOParser.mmp</filepath>, <filepath>BIOMessage.mmp</filepath> and <filepath>bld.inf</filepath>. </p> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
-build process</xref> describes how to build this application. </p> <p>In CodeWarrior:
-firstly, 'make' the <filepath>BIOParser.mcp</filepath> which creates <filepath>BIOParser.dll</filepath> and <filepath>BIOParser.lib</filepath> in <filepath>\epoc32\release\winscw\</filepath>  <i>&lt;build_variant&gt;</i>, then secondly,
-make <filepath>BIOMessage.exe</filepath> in the same directory. Run <filepath>BIOMessage.mcp</filepath>,
-which runs <filepath>BIOMessage.exe</filepath> thus launching the emulator. </p> </section>
-<section id="GUID-E5C238CE-1321-4F18-9E37-C2CFE6D3995E"><title>Usage</title> <p>Launch the target. For emulator targets,
-run: <filepath>\epoc32\release\&lt;wins or winscw&gt;\&lt;urel or           udeb&gt;\BIOMessage.exe</filepath>.
-If TechView emulator is used, to run the application go to System menu and
-click on Open files / programs window. Start the "BIO Messaging Example" application. </p> <p>Step
-through each phase of the example by pressing the space bar or by tapping
-on the window drawn by the example. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66" xml:lang="en"><title>BIOMessageMgr:
+BIO Message manager using the message server</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The BIO Message manager example comprises two projects <filepath>BIOMessage.exe</filepath> and <filepath>BIOParser.dll</filepath>.
+The <filepath>BIOMessage.exe</filepath> example connects to the message server,
+creates a BIO message and sends the registered parser DLL and message entry
+to <filepath>BIOParser.dll</filepath>. </p>
+<section id="GUID-BBF66472-C97E-5C14-85BB-30AD56703E83"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-34a2835d-797c-4d05-8919-03fc43821825.zip" scope="external">Biomsgexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-34a2835d-797c-4d05-8919-03fc43821825.html" scope="peer"> browse</xref> to view the example code. </p> </section>
+<section id="GUID-3CD32BF4-F354-4281-9C9A-1FD5ED4761C7"><title>BIOMessage: BIO messaging using the message server</title> <p><b>Description</b> </p> <p>This
+example code demonstrates BIO messaging using <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> and <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> and
+other supporting classes as mentioned in the <xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita#GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66/GUID-5048F691-DBA0-52DC-BBBA-922EE5DDE8D5">Class
+Summary</xref> below. </p> <p>The <filepath>BIOMessage</filepath> example
+code provides the following functionality: </p> <p><b>Creating a session </b> </p> <codeblock id="GUID-822DA39D-0568-54D9-A8EA-D49ABAB6D4D5" xml:space="preserve">void CBioMessage::Connect();</codeblock> <p>Creates
+a session with the message server using <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref>. </p> <p>The
+generated console output looks like this: </p> <fig id="GUID-3F7EFDA7-7103-58F2-819B-F50A564F67F9">
+<image href="GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e287313_href.png" placement="inline"/>
+</fig> <p><b>Creating a BIO message </b> </p> <codeblock id="GUID-898B2AF1-6B24-516A-A8CF-CE210D9136EC" xml:space="preserve">void CBioMessage::Create(RSendAsMessage&amp; aMessage);</codeblock> <p>This function does the following: </p> <ul>
+<li id="GUID-3B28353D-8885-56A2-9000-B2B481045A4A"><p>creates a BIO message
+of VCard type </p> </li>
+<li id="GUID-B8FE7FB1-D904-5520-9762-A0BAE0D53833"><p>sets the message body
+text </p> </li>
+<li id="GUID-AE681720-90EE-5AEE-9D98-54C41DD19E49"><p>adds the message recipients
+for the message to be sent. </p> </li>
+</ul> <p>The generated console output looks like this: </p> <fig id="GUID-7E3F4DA5-BFC3-5393-A04A-FDE944A89815">
+<image href="GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e287350_href.png" placement="inline"/>
+</fig> <p><b>Sending the BIO message </b> </p> <codeblock id="GUID-AA6C86D7-1657-5E3D-A025-43EB77FD3D31" xml:space="preserve">void CBioMessage::Send(RSendAsMessage&amp; aMessage);</codeblock> <p>Sends the message to the recipients. </p> <p>The generated console output
+looks like this: </p> <fig id="GUID-75B51188-D5AA-5BBD-90CA-3C33D2CF3744">
+<image href="GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e287369_href.png" placement="inline"/>
+</fig> <p><b>Creating the parser </b> </p> <codeblock id="GUID-0E38D4C7-B9D8-5F6E-A0AB-315447101C1D" xml:space="preserve">CBioParser::NewL(CMsvEntry* aEntry);</codeblock> <p>Creates a <codeph>CBioParser</codeph> object based on the message entry. </p> <p><b>Parsing
+the BIO message </b> </p> <codeblock id="GUID-BF605939-E297-5131-AFFA-DFED793492DF" xml:space="preserve">CBioParser::ParserL();</codeblock> <p>This
+function does the following: </p> <ul>
+<li id="GUID-A05F6576-7677-5D92-A9C4-1697D64CBAF3"><p>calls <codeph>ExtractMessageBodyL()</codeph> to
+extract the message body text from <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref>, the message
+store </p> </li>
+<li id="GUID-ADAB322E-2354-52C5-9B7C-A4335E84B6EF"><p>finds, loads and maintains
+a reference count of client processes for a BIO parser DLL </p> </li>
+<li id="GUID-5F5D6BE4-EECE-5E70-82C6-2EB92133A2AF"><p>parses the message body
+text. </p> </li>
+</ul> <p>The generated console output looks like this: </p> <fig id="GUID-2E3907F9-E810-5B1F-A6A0-60484FE004DF">
+<image href="GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e287427_href.png" placement="inline"/>
+</fig><p><b>Class Summary</b></p><p><xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref></p><p> <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref></p><p> <xref href="GUID-CB2BB982-F91D-3E06-8D66-56731AA60EB8.dita"><apiname>CSendAsMessageTypes</apiname></xref></p><p> <xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts</apiname></xref></p><p> <xref href="GUID-49738A1E-D452-30F3-9044-6528CABBD5D4.dita"><apiname>CRegisteredParserDll</apiname></xref></p><p> <xref href="GUID-115327CD-43D1-324B-84D7-8DFB6226C42A.dita"><apiname>CBIODatabase</apiname></xref></p><p> <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref></p> </section>
+<section id="GUID-A61C8676-A44E-4F4B-96F3-D4836FD47370"><title>BIOParser: BIO message parsing</title> <p><b>Description</b> </p> <p>This
+example code demonstrates the parsing of the message. <codeph>CBIOExampleParser</codeph> is
+the wrapper class which uses <xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref> and other
+supporting classes mentioned in the <xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita#GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66/GUID-E9472DA3-DA7B-5F4B-ACBF-770D3DE81580">Class
+Summary</xref> below. </p> <p>The <filepath>BIOParser</filepath> example code
+provides the following functionality: </p> <p><b>Creating the parser </b> </p> <codeblock id="GUID-C4ED1683-524A-55DA-88CB-D321C2AA59C2" xml:space="preserve">CBIOExampleParser* CBIOExampleParser::NewL(CRegisteredParserDll&amp; aRegisteredParserDll, CMsvEntry&amp; aEntry, RFs&amp; aFs);</codeblock> <p>Creates a <codeph>CBIOExampleParser</codeph> object based on the registered
+parser DLL and the message entry. </p> <p><b>Parsing the BIO message </b> </p> <codeblock id="GUID-6F493EBE-BD8C-5982-B1AB-B592A3BAD1F4" xml:space="preserve">void CBIOExampleParser::ParseL();</codeblock> <p>Parses
+the BIO message. </p> <p><b>Processing the BIO message </b> </p> <codeblock id="GUID-106E21B6-CDFE-51AB-9C91-C263033B60AE" xml:space="preserve">CBIOExampleParser::ProcessL();</codeblock> <p>Processes
+the parsed data. </p> <p id="GUID-E9472DA3-DA7B-5F4B-ACBF-770D3DE81580"><b>Class
+Summary</b> </p><p><xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref></p> </section>
+<section id="GUID-15A5B370-1546-4A27-8F3D-8BE336AE32FD"><title>Build</title> <p>The <filepath>BIOMessageMgr</filepath> example
+code includes the following project files for building the application: <filepath>BIOParser.mmp</filepath>, <filepath>BIOMessage.mmp</filepath> and <filepath>bld.inf</filepath>. </p> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this application. </p> <p>In CodeWarrior:
+firstly, 'make' the <filepath>BIOParser.mcp</filepath> which creates <filepath>BIOParser.dll</filepath> and <filepath>BIOParser.lib</filepath> in <filepath>\epoc32\release\winscw\</filepath>  <i>&lt;build_variant&gt;</i>, then secondly,
+make <filepath>BIOMessage.exe</filepath> in the same directory. Run <filepath>BIOMessage.mcp</filepath>,
+which runs <filepath>BIOMessage.exe</filepath> thus launching the emulator. </p> </section>
+<section id="GUID-E5C238CE-1321-4F18-9E37-C2CFE6D3995E"><title>Usage</title> <p>Launch the target. For emulator targets,
+run: <filepath>\epoc32\release\&lt;wins or winscw&gt;\&lt;urel or           udeb&gt;\BIOMessage.exe</filepath>.
+If TechView emulator is used, to run the application go to System menu and
+click on Open files / programs window. Start the "BIO Messaging Example" application. </p> <p>Step
+through each phase of the example by pressing the space bar or by tapping
+on the window drawn by the example. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e265567_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e269275_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8"><title>Standard SMS Converter</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes the Standard SMS Converter and the alphabet it supports. </p> <section><title>Introduction</title> <p>The Standard SMS Converter is a built-in converter based on the GSM 7-bit encoding. This converter is identified by the <codeph>KCharacterSetIdentifierSms7Bit</codeph> UID, which is defined in the <filepath>charconv.h</filepath> header file. To better understand the different character set of each SMS converter, the Standard SMS Converter is set as the baseline. Any differences or additions to the character set of Standard SMS Converter are listed. </p> <p>For all of the converters, any undefined Unicode is converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section> <section id="GUID-2EE2587C-16F2-524C-B350-E22A75F86F3A"><title>Alphabet</title> <p>The highlighted boxes in Figure 1 illustrate the alphabet of the standard SMS converter: </p> <ul><li id="GUID-16BD53E0-8C2B-503B-82BE-0A1D3D0AF2F1"><p>GSM 7-bit default alphabet </p> </li> <li id="GUID-16D5929D-8A03-5082-9B82-F68D863D69A1"><p>GSM 7-bit default alphabet extension table </p> </li> <li id="GUID-743F9057-8A3E-520B-8F8A-C6FBA3DFEEDD"><p>Extra lossy conversions–shown as Lossy Characters 1 in Figure 4. </p> </li> </ul> <p>Figure 1 </p> <fig id="GUID-51217C83-4B41-5A05-B5FB-100C89996B6B"><title>
-             Alphabet of the Standard SMS Converter 
-          </title> <image href="GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407247_href.png" placement="inline"/></fig> <p>For information about the GSM 7-bit default alphabet and extension table, see 3GPP TS 23.038 V8.1.0. The table below lists the extra lossy conversions supported by the standard converter. </p> <table id="GUID-6CCD9755-6504-590B-B061-57B4B5C67DED"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry> <entry><p>0x00E7 </p> </entry> <entry><p>0x09 </p> </entry> <entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry> </row> <row><entry><p>δ GREEK SMALL LETTER DELTA </p> </entry> <entry><p>0x03B4 </p> </entry> <entry><p>0x10 </p> </entry> <entry><p>Δ GREEK CAPITAL LETTER DELTA </p> </entry> </row> <row><entry><p>φ GREEK SMALL LETTER PHI </p> </entry> <entry><p>0x03C6 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>ϕ GREEK PHI SYMBOL </p> </entry> <entry><p>0x03D5 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>γ GREEK SMALL LETTER GAMMA </p> </entry> <entry><p>0x03B3 </p> </entry> <entry><p>0x13 </p> </entry> <entry><p>Γ GREEK CAPITAL LETTER GAMMA </p> </entry> </row> <row><entry><p>λ GREEK SMALL LETTER LAMDA </p> </entry> <entry><p>0x03BB </p> </entry> <entry><p>0x14 </p> </entry> <entry><p>Λ GREEK CAPITAL LETTER LAMDA </p> </entry> </row> <row><entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> <entry><p>0x03A9 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>ω GREEK SMALL LETTER OMEGA </p> </entry> <entry><p>0x03C9 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>ώ GREEK SMALL LETTER OMEGA WITH TONOS </p> </entry> <entry><p>0x03CE </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>Ω OHM SIGN </p> </entry> <entry><p>0x2126 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>π GREEK SMALL LETTER PI </p> </entry> <entry><p>0x03C0 </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>∏ N-ARY PRODUCT </p> </entry> <entry><p>0x220F </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>ψ GREEK SMALL LETTER PSI </p> </entry> <entry><p>0x03C8 </p> </entry> <entry><p>0x17 </p> </entry> <entry><p>Ψ GREEK CAPITAL LETTER PSI </p> </entry> </row> <row><entry><p>ς GREEK SMALL LETTER FINAL SIGMA </p> </entry> <entry><p>0x03C2 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>σ GREEK SMALL LETTER SIGMA </p> </entry> <entry><p>0x03C3 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>∑ N-ARY SUMMATION </p> </entry> <entry><p>0x2211 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>θ GREEK SMALL LETTER THETA </p> </entry> <entry><p>0x03B8 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ϑ GREEK THETA SYMBOL </p> </entry> <entry><p>0x03D1 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ξ GREEK SMALL LETTER XI </p> </entry> <entry><p>0x03BE </p> </entry> <entry><p>0x1A </p> </entry> <entry><p>Ξ GREEK CAPITAL LETTER XI </p> </entry> </row> <row><entry><p>(FORM FEED) </p> </entry> <entry><p>0x000C </p> </entry> <entry><p>0x1B0A </p> </entry> <entry><p>(PAGE BREAK) </p> </entry> </row> <row><entry><p>À LATIN CAPITAL LETTER A WITH GRAVE </p> </entry> <entry><p>0x00C0 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Á LATIN CAPITAL LETTER A WITH ACUTE </p> </entry> <entry><p>0x00C1 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX </p> </entry> <entry><p>0x00C2 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ã LATIN CAPITAL LETTER A WITH TILDE </p> </entry> <entry><p>0x00C3 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ά GREEK CAPITAL LETTER ALPHA WITH TONOS </p> </entry> <entry><p>0x0386 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Α GREEK CAPITAL LETTER ALPHA </p> </entry> <entry><p>0x0391 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>ά GREEK SMALL LETTER ALPHA WITH TONOS </p> </entry> <entry><p>0x03AC </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>α GREEK SMALL LETTER ALPHA </p> </entry> <entry><p>0x03B1 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Β GREEK CAPITAL LETTER BETA </p> </entry> <entry><p>0x0392 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>β GREEK SMALL LETTER BETA </p> </entry> <entry><p>0x03B2 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>ϐ GREEK BETA SYMBOL </p> </entry> <entry><p>0x03D0 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>È LATIN CAPITAL LETTER E WITH GRAVE </p> </entry> <entry><p>0x00C8 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX </p> </entry> <entry><p>0x00CA </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ë LATIN CAPITAL LETTER E WITH DIAERESIS </p> </entry> <entry><p>0x00CB </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Έ GREEK CAPITAL LETTER EPSILON WITH TONOS </p> </entry> <entry><p>0x0388 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ε GREEK CAPITAL LETTER EPSILON </p> </entry> <entry><p>0x0395 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>έ GREEK SMALL LETTER EPSILON WITH TONOS </p> </entry> <entry><p>0x03AD </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>ε GREEK SMALL LETTER EPSILON </p> </entry> <entry><p>0x03B5 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ή GREEK CAPITAL LETTER ETA WITH TONOS </p> </entry> <entry><p>0x0389 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Η GREEK CAPITAL LETTER ETA </p> </entry> <entry><p>0x0397 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>ή GREEK SMALL LETTER ETA WITH TONOS </p> </entry> <entry><p>0x03AE </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>η GREEK SMALL LETTER ETA </p> </entry> <entry><p>0x03B7 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ì LATIN CAPITAL LETTER I WITH GRAVE </p> </entry> <entry><p>0x00CC </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Í LATIN CAPITAL LETTER I WITH ACUTE </p> </entry> <entry><p>0x00CD </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX </p> </entry> <entry><p>0x00CE </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ï LATIN CAPITAL LETTER I WITH DIAERESIS </p> </entry> <entry><p>0x00CF </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ί GREEK CAPITAL LETTER IOTA WITH TONOS </p> </entry> <entry><p>0x038A </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS </p> </entry> <entry><p>0x0390 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ι GREEK CAPITAL LETTER IOTA </p> </entry> <entry><p>0x0399 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA </p> </entry> <entry><p>0x03AA </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ί GREEK SMALL LETTER IOTA WITH TONOS </p> </entry> <entry><p>0x03AF </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ι GREEK SMALL LETTER IOTA </p> </entry> <entry><p>0x03B9 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA </p> </entry> <entry><p>0x03CA </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Κ GREEK CAPITAL LETTER KAPPA </p> </entry> <entry><p>0x039A </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>κ GREEK SMALL LETTER KAPPA </p> </entry> <entry><p>0x03BA </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>Μ GREEK CAPITAL LETTER MU </p> </entry> <entry><p>0x039C </p> </entry> <entry><p>0x4D </p> </entry> <entry><p>M LATIN CAPITAL LETTER M </p> </entry> </row> <row><entry><p>μ GREEK SMALL LETTER MU </p> </entry> <entry><p>0x03BC </p> </entry> <entry><p>0x4D </p> </entry> <entry><p>M LATIN CAPITAL LETTER M </p> </entry> </row> <row><entry><p>Ν GREEK CAPITAL LETTER NU </p> </entry> <entry><p>0x039D </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>ν GREEK SMALL LETTER NU </p> </entry> <entry><p>0x03BD </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ò LATIN CAPITAL LETTER O WITH GRAVE </p> </entry> <entry><p>0x00D2 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ó LATIN CAPITAL LETTER O WITH ACUTE </p> </entry> <entry><p>0x00D3 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX </p> </entry> <entry><p>0x00D4 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Õ LATIN CAPITAL LETTER O WITH TILDE </p> </entry> <entry><p>0x00D5 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ό GREEK CAPITAL LETTER OMICRON WITH TONOS </p> </entry> <entry><p>0x038C </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ο GREEK CAPITAL LETTER OMICRON </p> </entry> <entry><p>0x039F </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>ο GREEK SMALL LETTER OMICRON </p> </entry> <entry><p>0x03BF </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>ό GREEK SMALL LETTER OMICRON WITH TONOS </p> </entry> <entry><p>0x03CC </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ρ GREEK CAPITAL LETTER RHO </p> </entry> <entry><p>0x03A1 </p> </entry> <entry><p>0x50 </p> </entry> <entry><p>P LATIN CAPITAL LETTER P </p> </entry> </row> <row><entry><p>ρ GREEK SMALL LETTER RHO </p> </entry> <entry><p>0x03C1 </p> </entry> <entry><p>0x50 </p> </entry> <entry><p>P LATIN CAPITAL LETTER P </p> </entry> </row> <row><entry><p>Τ GREEK CAPITAL LETTER TAU </p> </entry> <entry><p>0x03A4 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>τ GREEK SMALL LETTER TAU </p> </entry> <entry><p>0x03C4 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ù LATIN CAPITAL LETTER U WITH GRAVE </p> </entry> <entry><p>0x00D9 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ú LATIN CAPITAL LETTER U WITH ACUTE </p> </entry> <entry><p>0x00DA </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX </p> </entry> <entry><p>0x00DB </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Χ GREEK CAPITAL LETTER CHI </p> </entry> <entry><p>0x03A7 </p> </entry> <entry><p>0x58 </p> </entry> <entry><p>X LATIN CAPITAL LETTER X </p> </entry> </row> <row><entry><p>χ GREEK SMALL LETTER CHI </p> </entry> <entry><p>0x03C7 </p> </entry> <entry><p>0x58 </p> </entry> <entry><p>X LATIN CAPITAL LETTER X </p> </entry> </row> <row><entry><p>Ý LATIN CAPITAL LETTER Y WITH ACUTE </p> </entry> <entry><p>0x00DD </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS </p> </entry> <entry><p>0x038E </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Υ GREEK CAPITAL LETTER UPSILON </p> </entry> <entry><p>0x03A5 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA </p> </entry> <entry><p>0x03AB </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS </p> </entry> <entry><p>0x03B0 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>υ GREEK SMALL LETTER UPSILON </p> </entry> <entry><p>0x03C5 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA </p> </entry> <entry><p>0x03CB </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ύ GREEK SMALL LETTER UPSILON WITH TONOS </p> </entry> <entry><p>0x03CD </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϒ GREEK UPSILON WITH HOOK SYMBOL </p> </entry> <entry><p>0x03D2 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL </p> </entry> <entry><p>0x03D3 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL </p> </entry> <entry><p>0x03D4 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ζ GREEK CAPITAL LETTER ZETA </p> </entry> <entry><p>0x0396 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>ζ GREEK SMALL LETTER ZETA </p> </entry> <entry><p>0x03b6 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>á LATIN SMALL LETTER A WITH ACUTE </p> </entry> <entry><p>0x00E1 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>â LATIN SMALL LETTER A WITH CIRCUMFLEX </p> </entry> <entry><p>0x00E2 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ã LATIN SMALL LETTER A WITH TILDE </p> </entry> <entry><p>0x00E3 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ê LATIN SMALL LETTER E WITH CIRCUMFLEX </p> </entry> <entry><p>0x00EA </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ë LATIN SMALL LETTER E WITH DIAERESIS </p> </entry> <entry><p>0x00EB </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>í LATIN SMALL LETTER I WITH ACUTE </p> </entry> <entry><p>0x00ED </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>î LATIN SMALL LETTER I WITH CIRCUMFLEX </p> </entry> <entry><p>0x00EE </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ï LATIN SMALL LETTER I WITH DIAERESIS </p> </entry> <entry><p>0x00EF </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ó LATIN SMALL LETTER O WITH ACUTE </p> </entry> <entry><p>0x00f3 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ô LATIN SMALL LETTER O WITH CIRCUMFLEX </p> </entry> <entry><p>0x00F4 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>õ LATIN SMALL LETTER O WITH TILDE </p> </entry> <entry><p>0x00F5 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ú LATIN SMALL LETTER U WITH ACUTE </p> </entry> <entry><p>0x00FA </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>û LATIN SMALL LETTER U WITH CIRCUMFLEX </p> </entry> <entry><p>0x00FB </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ý LATIN SMALL LETTER Y WITH ACUTE </p> </entry> <entry><p>0x00FD </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> <row><entry><p>ÿ LATIN SMALL LETTER Y WITH DIAERESIS </p> </entry> <entry><p>0x00FF </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS Encodings and Converters Overview</xref> </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8"><title>Standard SMS Converter</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes the Standard SMS Converter and the alphabet it supports. </p> <section><title>Introduction</title> <p>The Standard SMS Converter is a built-in converter based on the GSM 7-bit encoding. This converter is identified by the <codeph>KCharacterSetIdentifierSms7Bit</codeph> UID, which is defined in the <filepath>charconv.h</filepath> header file. To better understand the different character set of each SMS converter, the Standard SMS Converter is set as the baseline. Any differences or additions to the character set of Standard SMS Converter are listed. </p> <p>For all of the converters, any undefined Unicode is converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section> <section id="GUID-2EE2587C-16F2-524C-B350-E22A75F86F3A"><title>Alphabet</title> <p>The highlighted boxes in Figure 1 illustrate the alphabet of the standard SMS converter: </p> <ul><li id="GUID-16BD53E0-8C2B-503B-82BE-0A1D3D0AF2F1"><p>GSM 7-bit default alphabet </p> </li> <li id="GUID-16D5929D-8A03-5082-9B82-F68D863D69A1"><p>GSM 7-bit default alphabet extension table </p> </li> <li id="GUID-743F9057-8A3E-520B-8F8A-C6FBA3DFEEDD"><p>Extra lossy conversions–shown as Lossy Characters 1 in Figure 4. </p> </li> </ul> <p>Figure 1 </p> <fig id="GUID-51217C83-4B41-5A05-B5FB-100C89996B6B"><title>
+             Alphabet of the Standard SMS Converter 
+          </title> <image href="GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407085_href.png" placement="inline"/></fig> <p>For information about the GSM 7-bit default alphabet and extension table, see 3GPP TS 23.038 V8.1.0. The table below lists the extra lossy conversions supported by the standard converter. </p> <table id="GUID-6CCD9755-6504-590B-B061-57B4B5C67DED"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry> <entry><p>0x00E7 </p> </entry> <entry><p>0x09 </p> </entry> <entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry> </row> <row><entry><p>δ GREEK SMALL LETTER DELTA </p> </entry> <entry><p>0x03B4 </p> </entry> <entry><p>0x10 </p> </entry> <entry><p>Δ GREEK CAPITAL LETTER DELTA </p> </entry> </row> <row><entry><p>φ GREEK SMALL LETTER PHI </p> </entry> <entry><p>0x03C6 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>ϕ GREEK PHI SYMBOL </p> </entry> <entry><p>0x03D5 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>γ GREEK SMALL LETTER GAMMA </p> </entry> <entry><p>0x03B3 </p> </entry> <entry><p>0x13 </p> </entry> <entry><p>Γ GREEK CAPITAL LETTER GAMMA </p> </entry> </row> <row><entry><p>λ GREEK SMALL LETTER LAMDA </p> </entry> <entry><p>0x03BB </p> </entry> <entry><p>0x14 </p> </entry> <entry><p>Λ GREEK CAPITAL LETTER LAMDA </p> </entry> </row> <row><entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> <entry><p>0x03A9 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>ω GREEK SMALL LETTER OMEGA </p> </entry> <entry><p>0x03C9 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>ώ GREEK SMALL LETTER OMEGA WITH TONOS </p> </entry> <entry><p>0x03CE </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>Ω OHM SIGN </p> </entry> <entry><p>0x2126 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>π GREEK SMALL LETTER PI </p> </entry> <entry><p>0x03C0 </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>∏ N-ARY PRODUCT </p> </entry> <entry><p>0x220F </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>ψ GREEK SMALL LETTER PSI </p> </entry> <entry><p>0x03C8 </p> </entry> <entry><p>0x17 </p> </entry> <entry><p>Ψ GREEK CAPITAL LETTER PSI </p> </entry> </row> <row><entry><p>ς GREEK SMALL LETTER FINAL SIGMA </p> </entry> <entry><p>0x03C2 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>σ GREEK SMALL LETTER SIGMA </p> </entry> <entry><p>0x03C3 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>∑ N-ARY SUMMATION </p> </entry> <entry><p>0x2211 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>θ GREEK SMALL LETTER THETA </p> </entry> <entry><p>0x03B8 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ϑ GREEK THETA SYMBOL </p> </entry> <entry><p>0x03D1 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ξ GREEK SMALL LETTER XI </p> </entry> <entry><p>0x03BE </p> </entry> <entry><p>0x1A </p> </entry> <entry><p>Ξ GREEK CAPITAL LETTER XI </p> </entry> </row> <row><entry><p>(FORM FEED) </p> </entry> <entry><p>0x000C </p> </entry> <entry><p>0x1B0A </p> </entry> <entry><p>(PAGE BREAK) </p> </entry> </row> <row><entry><p>À LATIN CAPITAL LETTER A WITH GRAVE </p> </entry> <entry><p>0x00C0 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Á LATIN CAPITAL LETTER A WITH ACUTE </p> </entry> <entry><p>0x00C1 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX </p> </entry> <entry><p>0x00C2 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ã LATIN CAPITAL LETTER A WITH TILDE </p> </entry> <entry><p>0x00C3 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ά GREEK CAPITAL LETTER ALPHA WITH TONOS </p> </entry> <entry><p>0x0386 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Α GREEK CAPITAL LETTER ALPHA </p> </entry> <entry><p>0x0391 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>ά GREEK SMALL LETTER ALPHA WITH TONOS </p> </entry> <entry><p>0x03AC </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>α GREEK SMALL LETTER ALPHA </p> </entry> <entry><p>0x03B1 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Β GREEK CAPITAL LETTER BETA </p> </entry> <entry><p>0x0392 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>β GREEK SMALL LETTER BETA </p> </entry> <entry><p>0x03B2 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>ϐ GREEK BETA SYMBOL </p> </entry> <entry><p>0x03D0 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>È LATIN CAPITAL LETTER E WITH GRAVE </p> </entry> <entry><p>0x00C8 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX </p> </entry> <entry><p>0x00CA </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ë LATIN CAPITAL LETTER E WITH DIAERESIS </p> </entry> <entry><p>0x00CB </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Έ GREEK CAPITAL LETTER EPSILON WITH TONOS </p> </entry> <entry><p>0x0388 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ε GREEK CAPITAL LETTER EPSILON </p> </entry> <entry><p>0x0395 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>έ GREEK SMALL LETTER EPSILON WITH TONOS </p> </entry> <entry><p>0x03AD </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>ε GREEK SMALL LETTER EPSILON </p> </entry> <entry><p>0x03B5 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ή GREEK CAPITAL LETTER ETA WITH TONOS </p> </entry> <entry><p>0x0389 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Η GREEK CAPITAL LETTER ETA </p> </entry> <entry><p>0x0397 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>ή GREEK SMALL LETTER ETA WITH TONOS </p> </entry> <entry><p>0x03AE </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>η GREEK SMALL LETTER ETA </p> </entry> <entry><p>0x03B7 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ì LATIN CAPITAL LETTER I WITH GRAVE </p> </entry> <entry><p>0x00CC </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Í LATIN CAPITAL LETTER I WITH ACUTE </p> </entry> <entry><p>0x00CD </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX </p> </entry> <entry><p>0x00CE </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ï LATIN CAPITAL LETTER I WITH DIAERESIS </p> </entry> <entry><p>0x00CF </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ί GREEK CAPITAL LETTER IOTA WITH TONOS </p> </entry> <entry><p>0x038A </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS </p> </entry> <entry><p>0x0390 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ι GREEK CAPITAL LETTER IOTA </p> </entry> <entry><p>0x0399 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA </p> </entry> <entry><p>0x03AA </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ί GREEK SMALL LETTER IOTA WITH TONOS </p> </entry> <entry><p>0x03AF </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ι GREEK SMALL LETTER IOTA </p> </entry> <entry><p>0x03B9 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA </p> </entry> <entry><p>0x03CA </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Κ GREEK CAPITAL LETTER KAPPA </p> </entry> <entry><p>0x039A </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>κ GREEK SMALL LETTER KAPPA </p> </entry> <entry><p>0x03BA </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>Μ GREEK CAPITAL LETTER MU </p> </entry> <entry><p>0x039C </p> </entry> <entry><p>0x4D </p> </entry> <entry><p>M LATIN CAPITAL LETTER M </p> </entry> </row> <row><entry><p>μ GREEK SMALL LETTER MU </p> </entry> <entry><p>0x03BC </p> </entry> <entry><p>0x4D </p> </entry> <entry><p>M LATIN CAPITAL LETTER M </p> </entry> </row> <row><entry><p>Ν GREEK CAPITAL LETTER NU </p> </entry> <entry><p>0x039D </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>ν GREEK SMALL LETTER NU </p> </entry> <entry><p>0x03BD </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ò LATIN CAPITAL LETTER O WITH GRAVE </p> </entry> <entry><p>0x00D2 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ó LATIN CAPITAL LETTER O WITH ACUTE </p> </entry> <entry><p>0x00D3 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX </p> </entry> <entry><p>0x00D4 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Õ LATIN CAPITAL LETTER O WITH TILDE </p> </entry> <entry><p>0x00D5 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ό GREEK CAPITAL LETTER OMICRON WITH TONOS </p> </entry> <entry><p>0x038C </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ο GREEK CAPITAL LETTER OMICRON </p> </entry> <entry><p>0x039F </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>ο GREEK SMALL LETTER OMICRON </p> </entry> <entry><p>0x03BF </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>ό GREEK SMALL LETTER OMICRON WITH TONOS </p> </entry> <entry><p>0x03CC </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ρ GREEK CAPITAL LETTER RHO </p> </entry> <entry><p>0x03A1 </p> </entry> <entry><p>0x50 </p> </entry> <entry><p>P LATIN CAPITAL LETTER P </p> </entry> </row> <row><entry><p>ρ GREEK SMALL LETTER RHO </p> </entry> <entry><p>0x03C1 </p> </entry> <entry><p>0x50 </p> </entry> <entry><p>P LATIN CAPITAL LETTER P </p> </entry> </row> <row><entry><p>Τ GREEK CAPITAL LETTER TAU </p> </entry> <entry><p>0x03A4 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>τ GREEK SMALL LETTER TAU </p> </entry> <entry><p>0x03C4 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ù LATIN CAPITAL LETTER U WITH GRAVE </p> </entry> <entry><p>0x00D9 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ú LATIN CAPITAL LETTER U WITH ACUTE </p> </entry> <entry><p>0x00DA </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX </p> </entry> <entry><p>0x00DB </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Χ GREEK CAPITAL LETTER CHI </p> </entry> <entry><p>0x03A7 </p> </entry> <entry><p>0x58 </p> </entry> <entry><p>X LATIN CAPITAL LETTER X </p> </entry> </row> <row><entry><p>χ GREEK SMALL LETTER CHI </p> </entry> <entry><p>0x03C7 </p> </entry> <entry><p>0x58 </p> </entry> <entry><p>X LATIN CAPITAL LETTER X </p> </entry> </row> <row><entry><p>Ý LATIN CAPITAL LETTER Y WITH ACUTE </p> </entry> <entry><p>0x00DD </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS </p> </entry> <entry><p>0x038E </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Υ GREEK CAPITAL LETTER UPSILON </p> </entry> <entry><p>0x03A5 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA </p> </entry> <entry><p>0x03AB </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS </p> </entry> <entry><p>0x03B0 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>υ GREEK SMALL LETTER UPSILON </p> </entry> <entry><p>0x03C5 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA </p> </entry> <entry><p>0x03CB </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ύ GREEK SMALL LETTER UPSILON WITH TONOS </p> </entry> <entry><p>0x03CD </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϒ GREEK UPSILON WITH HOOK SYMBOL </p> </entry> <entry><p>0x03D2 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL </p> </entry> <entry><p>0x03D3 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL </p> </entry> <entry><p>0x03D4 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ζ GREEK CAPITAL LETTER ZETA </p> </entry> <entry><p>0x0396 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>ζ GREEK SMALL LETTER ZETA </p> </entry> <entry><p>0x03b6 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>á LATIN SMALL LETTER A WITH ACUTE </p> </entry> <entry><p>0x00E1 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>â LATIN SMALL LETTER A WITH CIRCUMFLEX </p> </entry> <entry><p>0x00E2 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ã LATIN SMALL LETTER A WITH TILDE </p> </entry> <entry><p>0x00E3 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ê LATIN SMALL LETTER E WITH CIRCUMFLEX </p> </entry> <entry><p>0x00EA </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ë LATIN SMALL LETTER E WITH DIAERESIS </p> </entry> <entry><p>0x00EB </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>í LATIN SMALL LETTER I WITH ACUTE </p> </entry> <entry><p>0x00ED </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>î LATIN SMALL LETTER I WITH CIRCUMFLEX </p> </entry> <entry><p>0x00EE </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ï LATIN SMALL LETTER I WITH DIAERESIS </p> </entry> <entry><p>0x00EF </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ó LATIN SMALL LETTER O WITH ACUTE </p> </entry> <entry><p>0x00f3 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ô LATIN SMALL LETTER O WITH CIRCUMFLEX </p> </entry> <entry><p>0x00F4 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>õ LATIN SMALL LETTER O WITH TILDE </p> </entry> <entry><p>0x00F5 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ú LATIN SMALL LETTER U WITH ACUTE </p> </entry> <entry><p>0x00FA </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>û LATIN SMALL LETTER U WITH CIRCUMFLEX </p> </entry> <entry><p>0x00FB </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ý LATIN SMALL LETTER Y WITH ACUTE </p> </entry> <entry><p>0x00FD </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> <row><entry><p>ÿ LATIN SMALL LETTER Y WITH DIAERESIS </p> </entry> <entry><p>0x00FF </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS Encodings and Converters Overview</xref> </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E" xml:lang="en"><title>SQL
-Optimization Guide</title><shortdesc>This document discusses SQL optimization techniques.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Several best practice tips have been created as a response to customer
-experience feedback. Use this guide to decide where to start optimizing. </p>
-<section id="GUID-4AF79E32-4BC9-5A13-BF0E-F7F329982F1C"><title> Optimization
-issues</title> <p>SQL performance can be optimized by following good practice
-in the design of databases, formulation of SQL queries, use of indexes and
-other techniques. </p> <p id="GUID-828B8B44-8CC3-5CCA-A4C9-BF90353B2002"><b> Transient tables</b> </p> <p>Transient
-tables are created by the database engine to compute intermediate results. </p> <p>Transient
-tables are stored on disk by default, which may result in unexpected I/O calls
-that will probably have a negative impact on database performance. </p> <p id="GUID-0F43181C-2C32-5B5D-8AA2-4588D3DAF171-GENID-1-8-1-21-1-1-6-1-1-9-1-7-1-5-1-4-1-3-2-6"><b>Prevent datafile corruption</b> </p> <p>Datafile
-corruption is corruption of the file containing a database with invalid data. </p> <p>Datafile
-corruption can occur after a system crash or loss of power. SQLite maintains
-files called rollback journals from which the last valid state of a database
-can be reconstructed. However, if a rollback journal is removed or renamed
-during recovery from a crash, for instance in the course of application recovery
-the database will remain corrupted. </p> <p id="GUID-0F43181C-2C32-5B5D-8AA2-4588D3DAF171-GENID-1-8-1-21-1-1-6-1-1-9-1-7-1-5-1-4-1-3-2-9"><b>SQL index tips</b> </p> <p>Indexes
-are added either manually or automatically to columns of a data table to speed
-up SELECT operations. </p> <p>Indexes greatly speed up the performance of
-SELECT statements but can impact on insertions, updates and deletions and
-memory usage. It is not efficient to index all columns regardless of their
-purpose and under certain circumstances indexes decrease performance. They
-are best added to a database at the last stage of development. </p> <p><b>SQL insertion tips</b> </p> <p>INSERT, like UPDATE and DELETE, is an inherently
-fast operation but it can execute slowly if each individual operation is wrapped
-in a transaction, which is the default behavior. </p> <p>Multiple insertion
-statements should be grouped into transactions by explicit use of the COMMIT
-statement or else by use of TEMP tables which can be inserted into the database
-as a batch in a single operation, and by reuse of prepared statements. Insert
-statements should use bound parameters for reasons of efficiency and to prevent
-SQL injection attacks. </p> <p><b>SQL
-schema tips</b> </p> <p>A database schema is a definition of its structure
-including the tables, data types and keys. </p> <p>The design of a database
-can impact on the efficiency of the SQL queries run on it. Correct ordering
-of columns in a table and use of keys makes a database more efficient, while
-it is inefficient to store numerous large data structures such as BLOBs directly
-in a database. Schemas are best kept small. </p> <p><b>SQL expressions</b> </p> <p>An expression is the part of an SQL statement
-which uses operators to combine values to form new values. </p> <p>Some ways
-of writing an expression are more efficient than others because of the way
-the SQLite optimizer rewrites operators. It is also important to use constant
-subexpressions within subqueries. </p> <p><b>SQL
-statement tips</b> </p> <p>Certain SQL statements have special case optimizations. </p> <p>There
-are special rules for using the MIN and MAX functions, the UNION and UNION
-ALL operators and OFFSET clauses efficiently within SELECT statements. </p> <p><b>SQL joins</b> </p> <p>SQL joins are used to combine multiple tables into
-virtual tables. </p> <p>A join on multiple tables involves reordering their
-columns to construct the combined virtual table. The optimizer attempts to
-perform this ordering in the most efficient way but is not always successful.
-You can override the optimizer by using the CROSS JOIN operator. </p> <p><b>ANALYZE command</b> </p> <p>The ANALYZE command is used to provide statistics
-about the distribution of values in a populated database. </p> <p>The ANALYZE
-command creates a table SQLITE_STAT1 containing the statistical profile of
-the database at the time when it was run. The optimizer uses that data to
-choose between implementation options. Developers can also use the data to
-make their own optimizations and they can modify the table to influence the
-behavior of the optimizer. </p> <p><b>SQL
-WHERE clause tips</b> </p> <p>The SQL WHERE clause restricts the effect of
-an SQL statement to rows satisfying the expression which it contains. </p> <p>The
-performance of a WHERE clause can be improved by following certain rules.
-It is inefficient to use expressions within WHERE clauses instead of indexed
-column names. Also, the AND operator should always be preferred to the OR
-operator. </p> </section>
-</conbody><related-links>
-<link href="GUID-831F9AA3-0209-53DC-96C4-04157F22870C.dita"><linktext>SQL Developer
-Tips</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E" xml:lang="en"><title>SQL
+Optimization Guide</title><shortdesc>This document discusses SQL optimization techniques.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Several best practice tips have been created as a response to customer
+experience feedback. Use this guide to decide where to start optimizing. </p>
+<section id="GUID-4AF79E32-4BC9-5A13-BF0E-F7F329982F1C"><title> Optimization
+issues</title> <p>SQL performance can be optimized by following good practice
+in the design of databases, formulation of SQL queries, use of indexes and
+other techniques. </p> <p id="GUID-828B8B44-8CC3-5CCA-A4C9-BF90353B2002"><b> Transient tables</b> </p> <p>Transient
+tables are created by the database engine to compute intermediate results. </p> <p>Transient
+tables are stored on disk by default, which may result in unexpected I/O calls
+that will probably have a negative impact on database performance. </p> <p id="GUID-0F43181C-2C32-5B5D-8AA2-4588D3DAF171-GENID-1-10-1-22-1-1-6-1-1-9-1-7-1-5-1-4-1-3-2-6"><b>Prevent datafile corruption</b> </p> <p>Datafile
+corruption is corruption of the file containing a database with invalid data. </p> <p>Datafile
+corruption can occur after a system crash or loss of power. SQLite maintains
+files called rollback journals from which the last valid state of a database
+can be reconstructed. However, if a rollback journal is removed or renamed
+during recovery from a crash, for instance in the course of application recovery
+the database will remain corrupted. </p> <p id="GUID-0F43181C-2C32-5B5D-8AA2-4588D3DAF171-GENID-1-10-1-22-1-1-6-1-1-9-1-7-1-5-1-4-1-3-2-9"><b>SQL index tips</b> </p> <p>Indexes
+are added either manually or automatically to columns of a data table to speed
+up SELECT operations. </p> <p>Indexes greatly speed up the performance of
+SELECT statements but can impact on insertions, updates and deletions and
+memory usage. It is not efficient to index all columns regardless of their
+purpose and under certain circumstances indexes decrease performance. They
+are best added to a database at the last stage of development. </p> <p><b>SQL insertion tips</b> </p> <p>INSERT, like UPDATE and DELETE, is an inherently
+fast operation but it can execute slowly if each individual operation is wrapped
+in a transaction, which is the default behavior. </p> <p>Multiple insertion
+statements should be grouped into transactions by explicit use of the COMMIT
+statement or else by use of TEMP tables which can be inserted into the database
+as a batch in a single operation, and by reuse of prepared statements. Insert
+statements should use bound parameters for reasons of efficiency and to prevent
+SQL injection attacks. </p> <p><b>SQL
+schema tips</b> </p> <p>A database schema is a definition of its structure
+including the tables, data types and keys. </p> <p>The design of a database
+can impact on the efficiency of the SQL queries run on it. Correct ordering
+of columns in a table and use of keys makes a database more efficient, while
+it is inefficient to store numerous large data structures such as BLOBs directly
+in a database. Schemas are best kept small. </p> <p><b>SQL expressions</b> </p> <p>An expression is the part of an SQL statement
+which uses operators to combine values to form new values. </p> <p>Some ways
+of writing an expression are more efficient than others because of the way
+the SQLite optimizer rewrites operators. It is also important to use constant
+subexpressions within subqueries. </p> <p><b>SQL
+statement tips</b> </p> <p>Certain SQL statements have special case optimizations. </p> <p>There
+are special rules for using the MIN and MAX functions, the UNION and UNION
+ALL operators and OFFSET clauses efficiently within SELECT statements. </p> <p><b>SQL joins</b> </p> <p>SQL joins are used to combine multiple tables into
+virtual tables. </p> <p>A join on multiple tables involves reordering their
+columns to construct the combined virtual table. The optimizer attempts to
+perform this ordering in the most efficient way but is not always successful.
+You can override the optimizer by using the CROSS JOIN operator. </p> <p><b>ANALYZE command</b> </p> <p>The ANALYZE command is used to provide statistics
+about the distribution of values in a populated database. </p> <p>The ANALYZE
+command creates a table SQLITE_STAT1 containing the statistical profile of
+the database at the time when it was run. The optimizer uses that data to
+choose between implementation options. Developers can also use the data to
+make their own optimizations and they can modify the table to influence the
+behavior of the optimizer. </p> <p><b>SQL
+WHERE clause tips</b> </p> <p>The SQL WHERE clause restricts the effect of
+an SQL statement to rows satisfying the expression which it contains. </p> <p>The
+performance of a WHERE clause can be improved by following certain rules.
+It is inefficient to use expressions within WHERE clauses instead of indexed
+column names. Also, the AND operator should always be preferred to the OR
+operator. </p> </section>
+</conbody><related-links>
+<link href="GUID-831F9AA3-0209-53DC-96C4-04157F22870C.dita"><linktext>SQL Developer
+Tips</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,107 +1,107 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE" xml:lang="en"><title>Touch
-UI user experience</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In general, the touch UI in the Symbian platform devices emulates the functionality
-of the Arrow and Selection keys, but there are many deviations to this general
-principle. Touch interaction design is a success if mobile device users choose
-to use the stylus or finger even if all the same tasks can be performed using
-the hardware keys. All Symbian platform common components are touch-enabled,
-allowing full use with a finger.</p>
-<p>The touch UI is designed to enable full task flow with touch, without the
-need to switch to hardware keys. Thus, the design ensures that users can complete
-a task with the chosen interaction method (keys or touch) from start to finish.
-However, the touch UI offers some usability benefits compared to keyboard
-use.</p>
-<p>The following guidelines must be followed while designing applications
-for touch use:</p>
-<ul>
-<li><p>Design decisions must be based on the real-time use cases.</p></li>
-<li><p>Enable touch functionality only for obvious functions to make sure
-that users can find them.</p></li>
-<li><p>Keep in mind that not every item on the screen has to have a functionality
-attached to it and that the functionality should not be too surprising or
-radical.</p></li>
-<li><p>Keep in mind that theme design alone is not sufficient as means of
-indicating touch functionality; where one theme may indicate touch, another
-may not.</p></li>
-</ul>
-<p>In touch interaction, touch refers to pressing the finger or stylus against
-the touch screen, tap corresponds to touch and release, while touch and drag
-means touching and moving the finger or stylus along the screen. Basic touch
-interaction is achieved through a short tap and long tap. In the short tap,
-users place down and lift up a finger on the same item within a short period
-of time. A long tap performs some specific actions (described in more detail
-in <xref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita">Touch down and hold</xref>)
-when users hold down the finger on a component for a set amount of time. The
-following table lists the actions that take place on various finger movements. </p>
-<note><p>The touch and drag functionality is not supported by Symbian platform
-as an integrated part of the style, but it is supported in some selected applications
-such as moving items in the <xref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita">Menu</xref>.</p></note>
-<table id="GUID-1A7C0B14-3A0D-4CC1-B6C4-377AC4615E2F"><title>Touch events</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.47*"/><colspec colname="col2" colwidth="1.53*"/>
-<thead>
-<row>
-<entry>Touch type</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch</p></entry>
-<entry><p>The following actions take place on touch: </p><ul>
-<li><p>The component or control under the finger takes active focus. </p></li>
-<li><p>The button under the finger changes its appearance to the pressed down
-status. </p></li>
-<li><p>Scrolling is activated if the finger is on a scrollbar.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Tap</p></entry>
-<entry><p>The following actions take place on a tap (touch and release): </p><ul>
-<li><p>The menu command under the finger is activated. </p></li>
-<li><p>The button that was pressed down is released and the corresponding
-function is performed (unless it is a latching button as in a toolbar).</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Touch and cancel</p></entry>
-<entry><p>Users can cancel any action on the objects on which they place the
-finger by dragging the finger outside the object area before lifting it. If
-the users drag the finger back onto the object before they lift it, the action
-is performed.</p></entry>
-</row>
-<row>
-<entry><p>Touch and drag</p></entry>
-<entry><p>Users can place the finger on the screen and move it on the screen
-without lifting it. This kind of dragging can be used to: </p><ul>
-<li><p>Scroll lists and grids. </p></li>
-<li><p>Select multiple objects in lists (see <xref href="GUID-D9F25AAD-18A1-43AC-B59B-82396DAA68F9.dita">Touch
-based multiple selection</xref>). </p></li>
-<li><p>Browse menu items. When the finger moves on a menu item, the item is
-focused and opens possible submenu panes. Lifting the finger performs the
-focused menu command. </p></li>
-<li><p>Highlight text in appropriate editor fields (<i>paint</i> it). </p></li>
-<li><p>Perform application-specific functions, such as drawing lines or dragging
-selections.</p></li>
-</ul></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-48D98CA8-47ED-4E6D-8A43-388D8A0293E5"><title>Using
-touch events in C++ applications</title><p>For information on how to receive
-touch events using <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">application
-and UI frameworks</xref> , see <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Window
-server events</xref> and <xref href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita">Pointer
-events</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE" xml:lang="en"><title>Touch
+UI user experience</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In general, the touch UI in the Symbian platform devices emulates the functionality
+of the Arrow and Selection keys, but there are many deviations to this general
+principle. Touch interaction design is a success if mobile device users choose
+to use the stylus or finger even if all the same tasks can be performed using
+the hardware keys. All Symbian platform common components are touch-enabled,
+allowing full use with a finger.</p>
+<p>The touch UI is designed to enable full task flow with touch, without the
+need to switch to hardware keys. Thus, the design ensures that users can complete
+a task with the chosen interaction method (keys or touch) from start to finish.
+However, the touch UI offers some usability benefits compared to keyboard
+use.</p>
+<p>The following guidelines must be followed while designing applications
+for touch use:</p>
+<ul>
+<li><p>Design decisions must be based on the real-time use cases.</p></li>
+<li><p>Enable touch functionality only for obvious functions to make sure
+that users can find them.</p></li>
+<li><p>Keep in mind that not every item on the screen has to have a functionality
+attached to it and that the functionality should not be too surprising or
+radical.</p></li>
+<li><p>Keep in mind that theme design alone is not sufficient as means of
+indicating touch functionality; where one theme may indicate touch, another
+may not.</p></li>
+</ul>
+<p>In touch interaction, touch refers to pressing the finger or stylus against
+the touch screen, tap corresponds to touch and release, while touch and drag
+means touching and moving the finger or stylus along the screen. Basic touch
+interaction is achieved through a short tap and long tap. In the short tap,
+users place down and lift up a finger on the same item within a short period
+of time. A long tap performs some specific actions (described in more detail
+in <xref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita">Touch down and hold</xref>)
+when users hold down the finger on a component for a set amount of time. The
+following table lists the actions that take place on various finger movements. </p>
+<note><p>The touch and drag functionality is not supported by Symbian platform
+as an integrated part of the style, but it is supported in some selected applications
+such as moving items in the <xref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita">Menu</xref>.</p></note>
+<table id="GUID-1A7C0B14-3A0D-4CC1-B6C4-377AC4615E2F"><title>Touch events</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.47*"/><colspec colname="col2" colwidth="1.53*"/>
+<thead>
+<row>
+<entry>Touch type</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch</p></entry>
+<entry><p>The following actions take place on touch: </p><ul>
+<li><p>The component or control under the finger takes active focus. </p></li>
+<li><p>The button under the finger changes its appearance to the pressed down
+status. </p></li>
+<li><p>Scrolling is activated if the finger is on a scrollbar.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Tap</p></entry>
+<entry><p>The following actions take place on a tap (touch and release): </p><ul>
+<li><p>The menu command under the finger is activated. </p></li>
+<li><p>The button that was pressed down is released and the corresponding
+function is performed (unless it is a latching button as in a toolbar).</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Touch and cancel</p></entry>
+<entry><p>Users can cancel any action on the objects on which they place the
+finger by dragging the finger outside the object area before lifting it. If
+the users drag the finger back onto the object before they lift it, the action
+is performed.</p></entry>
+</row>
+<row>
+<entry><p>Touch and drag</p></entry>
+<entry><p>Users can place the finger on the screen and move it on the screen
+without lifting it. This kind of dragging can be used to: </p><ul>
+<li><p>Scroll lists and grids. </p></li>
+<li><p>Select multiple objects in lists (see <xref href="GUID-D9F25AAD-18A1-43AC-B59B-82396DAA68F9.dita">Touch
+based multiple selection</xref>). </p></li>
+<li><p>Browse menu items. When the finger moves on a menu item, the item is
+focused and opens possible submenu panes. Lifting the finger performs the
+focused menu command. </p></li>
+<li><p>Highlight text in appropriate editor fields (<i>paint</i> it). </p></li>
+<li><p>Perform application-specific functions, such as drawing lines or dragging
+selections.</p></li>
+</ul></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-48D98CA8-47ED-4E6D-8A43-388D8A0293E5"><title>Using
+touch events in applications</title><p>For information on how
+to receive touch events using <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">application
+and UI frameworks</xref> , see <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Window
+server events</xref> and <xref href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita">Pointer
+events</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5"><title>What are fields</title><shortdesc>This topic describes the structure of a field. A field is an item that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>A field is a container and an element. A field is the basic unit of information in the Comms Database. </p> <p>A field is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph>. The template parameter defines the type of data that the field contains. For example <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TInt</apiname></xref>, <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TDesC</apiname></xref>, <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TBool</apiname></xref>   </p> <p>Fields are collected into records. </p> <fig id="GUID-39CDC3FB-156B-539B-A513-7B725A97D3B9"><image href="GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e86181_href.png" placement="inline"/></fig> <p><b>Getting data from a field </b> </p> <p>An overloaded conversion operator converts the data value in a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph> object to the template type. The template type is the type defined by the characters <codeph>T</codeph>. The operator allows you to use a <codeph>CMDBField&lt;T&gt;</codeph> object on the right-hand side of an assignment call. The operator also allows you to pass a <codeph>CMDBField&lt;T&gt;</codeph> object into a function that requires items of the template type. </p> <p>The value of a field in memory is NULL: </p> <ul><li id="GUID-1500B567-B899-5769-97D8-E7949B6034CA"><p>if the caller has not set the value </p> </li> <li id="GUID-2766C253-443B-5BD1-977F-69EB4E2349CD"><p>if the field as not been loaded from the Comms Database </p> </li> </ul> <p>If the value of a field is NULL after the field has been successfully loaded from the Comms Database, the field has been explicitly set to NULL by the writer of the record. </p> <p><b>Setting data into a field </b> </p> <p>A field has an assignment operator. A type <codeph>T</codeph> field accepts a type <codeph>T</codeph> item on the right-hand side of an assignment. </p> <p>A descriptor has variable length data. You need to set the size of the buffer that the field uses to store data. You must call <codeph>SetMaxLengthL()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph> object and pass the length of the data to be added. You then use the assignment operator. The length that you set must be enough or the assignment operator does not work. The <codeph>SetL()</codeph> function is an alternative method. This function calculates the length of a descriptor parameter for a descriptor field type and performs the allocation and assignment. </p> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5"><title>What are fields</title><shortdesc>This topic describes the structure of a field. A field is an item that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>A field is a container and an element. A field is the basic unit of information in the Comms Database. </p> <p>A field is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph>. The template parameter defines the type of data that the field contains. For example <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TInt</apiname></xref>, <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TDesC</apiname></xref>, <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TBool</apiname></xref>   </p> <p>Fields are collected into records. </p> <fig id="GUID-39CDC3FB-156B-539B-A513-7B725A97D3B9"><image href="GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e79469_href.png" placement="inline"/></fig> <p><b>Getting data from a field </b> </p> <p>An overloaded conversion operator converts the data value in a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph> object to the template type. The template type is the type defined by the characters <codeph>T</codeph>. The operator allows you to use a <codeph>CMDBField&lt;T&gt;</codeph> object on the right-hand side of an assignment call. The operator also allows you to pass a <codeph>CMDBField&lt;T&gt;</codeph> object into a function that requires items of the template type. </p> <p>The value of a field in memory is NULL: </p> <ul><li id="GUID-1500B567-B899-5769-97D8-E7949B6034CA"><p>if the caller has not set the value </p> </li> <li id="GUID-2766C253-443B-5BD1-977F-69EB4E2349CD"><p>if the field as not been loaded from the Comms Database </p> </li> </ul> <p>If the value of a field is NULL after the field has been successfully loaded from the Comms Database, the field has been explicitly set to NULL by the writer of the record. </p> <p><b>Setting data into a field </b> </p> <p>A field has an assignment operator. A type <codeph>T</codeph> field accepts a type <codeph>T</codeph> item on the right-hand side of an assignment. </p> <p>A descriptor has variable length data. You need to set the size of the buffer that the field uses to store data. You must call <codeph>SetMaxLengthL()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;T&gt;</codeph> object and pass the length of the data to be added. You then use the assignment operator. The length that you set must be enough or the assignment operator does not work. The <codeph>SetL()</codeph> function is an alternative method. This function calculates the length of a descriptor parameter for a descriptor field type and performs the allocation and assignment. </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e78415_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e85127_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195"><title>Drawing Polylines and Polygons</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw a polyline and how to draw and fill a self-crossing polygon. </p> <p>The example code assumes the array of points used when drawing these shapes is defined as follows: </p> <codeblock id="GUID-9DACC372-C21C-5C99-9026-C5505B7C2B5A" xml:space="preserve">...
-// set up an array of points for drawing a polyline and a polygon etc.
-// will be used relative to top left of rectangle
-TPoint point1(20,20);
-TPoint point2(100,190);
-TPoint point3(110,90);
-TPoint point4(50,150);
-TPoint point5(200,150);
-CArrayFix&lt;TPoint&gt;* mypoints = new CArrayFixFlat&lt;TPoint&gt;(5);
-CleanupStack::PushL(mypoints);
-mypoints-&gt;AppendL(point1);
-mypoints-&gt;AppendL(point2);
-mypoints-&gt;AppendL(point3);
-mypoints-&gt;AppendL(point4);
-mypoints-&gt;AppendL(point5);
-...
-    
-// switch statement with example cases
-...
-CleanupStack::PopAndDestroy(); // mypoints</codeblock> <section><title>Drawing a polyline</title> <p>You can draw a polyline using <codeph>DrawPolyLine()</codeph> from an array of points. </p> <codeblock id="GUID-96082027-6F7C-52C3-A1E1-B41569851D97" xml:space="preserve">...
-// draw a polyline
-gc.DrawPolyLine(mypoints);
-...</codeblock> </section> <section><title>Drawing a polygon</title> <p>The following example code illustrates how to draw a filled polygon from an array of points. The polygon is self-crossing. Self-crossing polygons can be filled according to one of two rules, <codeph>TFillRule::EAlternate</codeph> (the default), or <codeph>TFillRule::EWinding</codeph>. These rules work with the concept of a winding number, as shown in the following figure: </p> <fig id="GUID-DCCC82D0-04BD-5CE5-B21E-1DF921F7E956"><title>
-             Winding numbers 
-          </title> <image href="GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e207488_href.png" placement="inline"/></fig> <p> <codeph>EWinding</codeph> fills all areas, while <codeph>EAlternate</codeph> only fills areas with odd winding numbers. </p> <p><b>Drawing a polygon using the EWinding fill rule</b> </p> <ol id="GUID-40875382-97F3-5BBA-9CE7-C49A6418ECCD"><li id="GUID-8A0BBCBF-BAB2-59A0-BE7B-F27875318DF5"><p>Use <codeph>SetBrushStyle()</codeph> to set a cross-hatched brush style. </p> </li> <li id="GUID-C7845F63-2332-5FA4-A750-0223ECFED056"><p>Use <codeph>DrawPolygon()</codeph> to draw the polygon with the <codeph>EWinding</codeph> fill rule. </p> </li> </ol> <codeblock id="GUID-893413B0-E8AA-5317-95B1-A8970D63FFC9" xml:space="preserve">...
-// draw self-crossing polygon using the winding fill rule
-gc.SetBrushStyle(CGraphicsContext::ESquareCrossHatchBrush);
-gc.SetBrushColor(black);
-gc.DrawPolygon(mypoints,CGraphicsContext::EWinding);
-...</codeblock> <p><b>Drawing a polygon using the EAlternate fill rule</b> </p> <ol id="GUID-A41D3FCD-9C7D-5400-B0EF-3CC287193B9B"><li id="GUID-0949D505-AF72-5CA6-B93B-7A6D34BC1B5E"><p>Use <codeph>SetBrushStyle()</codeph> to set a diamond cross-hatched brush style. </p> </li> <li id="GUID-F5382106-FFEB-55EA-98DF-751E07050568"><p>Use <codeph>DrawPolygon()</codeph> to draw the polygon with the <codeph>EAlternate</codeph> fill rule. </p> </li> </ol> <codeblock id="GUID-CBF5948B-BC44-5803-B00B-86D231D44169" xml:space="preserve">...
-// draw self-crossing polygon using the alternate fill rule
-gc.SetBrushStyle(CGraphicsContext::EDiamondCrossHatchBrush);
-gc.SetBrushColor(black);
-gc.DrawPolygon(mypoints,CGraphicsContext::EAlternate);
-...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195"><title>Drawing Polylines and Polygons</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw a polyline and how to draw and fill a self-crossing polygon. </p> <p>The example code assumes the array of points used when drawing these shapes is defined as follows: </p> <codeblock id="GUID-9DACC372-C21C-5C99-9026-C5505B7C2B5A" xml:space="preserve">...
+// set up an array of points for drawing a polyline and a polygon etc.
+// will be used relative to top left of rectangle
+TPoint point1(20,20);
+TPoint point2(100,190);
+TPoint point3(110,90);
+TPoint point4(50,150);
+TPoint point5(200,150);
+CArrayFix&lt;TPoint&gt;* mypoints = new CArrayFixFlat&lt;TPoint&gt;(5);
+CleanupStack::PushL(mypoints);
+mypoints-&gt;AppendL(point1);
+mypoints-&gt;AppendL(point2);
+mypoints-&gt;AppendL(point3);
+mypoints-&gt;AppendL(point4);
+mypoints-&gt;AppendL(point5);
+...
+    
+// switch statement with example cases
+...
+CleanupStack::PopAndDestroy(); // mypoints</codeblock> <section><title>Drawing a polyline</title> <p>You can draw a polyline using <codeph>DrawPolyLine()</codeph> from an array of points. </p> <codeblock id="GUID-96082027-6F7C-52C3-A1E1-B41569851D97" xml:space="preserve">...
+// draw a polyline
+gc.DrawPolyLine(mypoints);
+...</codeblock> </section> <section><title>Drawing a polygon</title> <p>The following example code illustrates how to draw a filled polygon from an array of points. The polygon is self-crossing. Self-crossing polygons can be filled according to one of two rules, <codeph>TFillRule::EAlternate</codeph> (the default), or <codeph>TFillRule::EWinding</codeph>. These rules work with the concept of a winding number, as shown in the following figure: </p> <fig id="GUID-DCCC82D0-04BD-5CE5-B21E-1DF921F7E956"><title>
+             Winding numbers 
+          </title> <image href="GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e202480_href.png" placement="inline"/></fig> <p> <codeph>EWinding</codeph> fills all areas, while <codeph>EAlternate</codeph> only fills areas with odd winding numbers. </p> <p><b>Drawing a polygon using the EWinding fill rule</b> </p> <ol id="GUID-40875382-97F3-5BBA-9CE7-C49A6418ECCD"><li id="GUID-8A0BBCBF-BAB2-59A0-BE7B-F27875318DF5"><p>Use <codeph>SetBrushStyle()</codeph> to set a cross-hatched brush style. </p> </li> <li id="GUID-C7845F63-2332-5FA4-A750-0223ECFED056"><p>Use <codeph>DrawPolygon()</codeph> to draw the polygon with the <codeph>EWinding</codeph> fill rule. </p> </li> </ol> <codeblock id="GUID-893413B0-E8AA-5317-95B1-A8970D63FFC9" xml:space="preserve">...
+// draw self-crossing polygon using the winding fill rule
+gc.SetBrushStyle(CGraphicsContext::ESquareCrossHatchBrush);
+gc.SetBrushColor(black);
+gc.DrawPolygon(mypoints,CGraphicsContext::EWinding);
+...</codeblock> <p><b>Drawing a polygon using the EAlternate fill rule</b> </p> <ol id="GUID-A41D3FCD-9C7D-5400-B0EF-3CC287193B9B"><li id="GUID-0949D505-AF72-5CA6-B93B-7A6D34BC1B5E"><p>Use <codeph>SetBrushStyle()</codeph> to set a diamond cross-hatched brush style. </p> </li> <li id="GUID-F5382106-FFEB-55EA-98DF-751E07050568"><p>Use <codeph>DrawPolygon()</codeph> to draw the polygon with the <codeph>EAlternate</codeph> fill rule. </p> </li> </ol> <codeblock id="GUID-CBF5948B-BC44-5803-B00B-86D231D44169" xml:space="preserve">...
+// draw self-crossing polygon using the alternate fill rule
+gc.SetBrushStyle(CGraphicsContext::EDiamondCrossHatchBrush);
+gc.SetBrushColor(black);
+gc.DrawPolygon(mypoints,CGraphicsContext::EAlternate);
+...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
                 to a Graphics Context Tutorials</linktext> </link> <link href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"><linktext>Drawing and Graphics Contexts</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0DEC4D1B-2CD6-49BC-92E4-F0CB0BCBFA9D-master.jpg has changed
Binary file Symbian3/SDK/Source/GUID-0DEC4D1B-2CD6-49BC-92E4-F0CB0BCBFA9D_d0e68726_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9" xml:lang="en"><title> circularbuffer:
-Circular Buffer Example</title><shortdesc>This example demonstrates the how to use the circular buffer classes <codeph>CCirBuf</codeph> and <codeph>CCirBuffer</codeph>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-4AF25C42-D4E3-54AC-A493-F17995CF27A0"><title>Purpose</title> <p>This
-example application shows how to construct and make use of circular buffers
-containing integers, objects of user defined classes and objects of an R class. </p> </section>
-<section id="GUID-DC849488-96A4-41A7-A088-4F4CC406F68B"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-07c0d4d4-3e5e-4329-a0c5-e569e89d3a9e.zip" scope="external">circularbuffer .zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-07c0d4d4-3e5e-4329-a0c5-e569e89d3a9e.html" scope="peer"> browse </xref> to view the example code.</p> </section>
-<section id="GUID-014CB2CC-94DC-4DF5-AA93-9157B756C915"><title>class summary</title><p><xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita"><apiname>CCirBuffer </apiname></xref> <xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita"><apiname>CCirBuf</apiname></xref> </p></section>
-<section id="GUID-2B02964A-812A-5838-9A6F-64E4C8D069EF"><title>Design and
-implementation</title> <p>Class diagram: </p> <fig id="GUID-1424998B-6CBC-5CEF-9A2D-4DBB286F409B">
-<title>              Circular buffers example class diagram            </title>
-<image href="GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e253554_href.jpg" placement="inline"/>
-</fig> <p>The example creates a circular buffer of integers using <xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita#GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623/GUID-600BE94B-72FF-3A44-92EC-3806B7F5E4E5"><apiname>CCirBuffer::Put()</apiname></xref> to
-add elements and <xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita#GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623/GUID-112CD6F9-DAB4-30E5-9E5C-B636F8AEEC08"><apiname>CCirBuffer::Get()</apiname></xref> to remove an element.
-To demonstrate the circular nature of the buffer, the example: </p> <ul>
-<li id="GUID-950580F8-9810-5172-95AD-7B3C2B933818"><p>adds four elements until
-the buffer is full, </p> </li>
-<li id="GUID-28BD6FC5-80AC-5567-94E6-4592A0BD2751"><p>tries to adds another
-element to the buffer, which fails with a buffer full error message, </p> </li>
-<li id="GUID-AAB4C513-DB1C-5BEF-9C2E-9CED284A2C58"><p>removes elements 1 and
-2 from the buffer, leaving elements 3 and 4, </p> </li>
-<li id="GUID-3DE3EB5E-5080-527B-8C69-92535A6CB6CC"><p>adds two new elements
-(5 and 6) to the buffer, </p> </li>
-<li id="GUID-A7CDA10E-DF03-5460-BA7A-1E85B3FC66D8"><p>removes all elements
-(3, 4, 5 and 6) from the buffer. </p> </li>
-</ul> <p>Similar steps are performed using <xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita"><apiname>CCirBuf</apiname></xref> to add
-(<xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita#GUID-1D73835F-4361-3216-8EFC-669364E3F5E7/GUID-1EE35B7E-6E95-3B6A-9EE4-B5CCFA4F772D"><apiname>CCirBuf::Add()</apiname></xref>) and remove (<xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita#GUID-1D73835F-4361-3216-8EFC-669364E3F5E7/GUID-FFCCB7E3-B69F-3CC8-B38C-0179915C1E20"><apiname>CCirBuf::Remove()</apiname></xref>)
-user-defined objects, and objects of an <codeph>R</codeph> class to and from
-the buffer. </p> <p>After removing R class objects from the circular buffer,
-they must be closed in order to release the resource held by the R Class objects. </p> </section>
-<section id="GUID-6CB8757B-66CF-577C-A490-99CBBC10E2B5"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-48DC5748-F246-57CB-9568-4B49E09A2CAA"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-DEEF2C1B-2D81-5DA7-BE70-EAD7496B16FA"><p>For the emulator, the
-example builds an executable called <filepath>circularbuffer.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-<section id="GUID-BC504F56-2676-5CBB-8DC1-57B3D9DD3950"><title>Running the
-example</title> <p>The user is prompted to press a key in order to progress
-from one function to the next. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9" xml:lang="en"><title> circularbuffer:
+Circular Buffer Example</title><shortdesc>This example demonstrates the how to use the circular buffer classes <codeph>CCirBuf</codeph> and <codeph>CCirBuffer</codeph>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-4AF25C42-D4E3-54AC-A493-F17995CF27A0"><title>Purpose</title> <p>This
+example application shows how to construct and make use of circular buffers
+containing integers, objects of user defined classes and objects of an R class. </p> </section>
+<section id="GUID-DC849488-96A4-41A7-A088-4F4CC406F68B"><title>Download</title> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-07c0d4d4-3e5e-4329-a0c5-e569e89d3a9e.zip" scope="external">circularbuffer .zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-07c0d4d4-3e5e-4329-a0c5-e569e89d3a9e.html" scope="peer"> browse </xref> to view the example code.</p> </section>
+<section id="GUID-014CB2CC-94DC-4DF5-AA93-9157B756C915"><title>class summary</title><p><xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita"><apiname>CCirBuffer </apiname></xref> <xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita"><apiname>CCirBuf</apiname></xref> </p></section>
+<section id="GUID-2B02964A-812A-5838-9A6F-64E4C8D069EF"><title>Design and
+implementation</title> <p>Class diagram: </p> <fig id="GUID-1424998B-6CBC-5CEF-9A2D-4DBB286F409B">
+<title>              Circular buffers example class diagram            </title>
+<image href="GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e249822_href.jpg" placement="inline"/>
+</fig> <p>The example creates a circular buffer of integers using <xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita#GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623/GUID-600BE94B-72FF-3A44-92EC-3806B7F5E4E5"><apiname>CCirBuffer::Put()</apiname></xref> to
+add elements and <xref href="GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623.dita#GUID-620EC30F-933F-3073-9E5F-CAC9F2BA4623/GUID-112CD6F9-DAB4-30E5-9E5C-B636F8AEEC08"><apiname>CCirBuffer::Get()</apiname></xref> to remove an element.
+To demonstrate the circular nature of the buffer, the example: </p> <ul>
+<li id="GUID-950580F8-9810-5172-95AD-7B3C2B933818"><p>adds four elements until
+the buffer is full, </p> </li>
+<li id="GUID-28BD6FC5-80AC-5567-94E6-4592A0BD2751"><p>tries to adds another
+element to the buffer, which fails with a buffer full error message, </p> </li>
+<li id="GUID-AAB4C513-DB1C-5BEF-9C2E-9CED284A2C58"><p>removes elements 1 and
+2 from the buffer, leaving elements 3 and 4, </p> </li>
+<li id="GUID-3DE3EB5E-5080-527B-8C69-92535A6CB6CC"><p>adds two new elements
+(5 and 6) to the buffer, </p> </li>
+<li id="GUID-A7CDA10E-DF03-5460-BA7A-1E85B3FC66D8"><p>removes all elements
+(3, 4, 5 and 6) from the buffer. </p> </li>
+</ul> <p>Similar steps are performed using <xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita"><apiname>CCirBuf</apiname></xref> to add
+(<xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita#GUID-1D73835F-4361-3216-8EFC-669364E3F5E7/GUID-1EE35B7E-6E95-3B6A-9EE4-B5CCFA4F772D"><apiname>CCirBuf::Add()</apiname></xref>) and remove (<xref href="GUID-1D73835F-4361-3216-8EFC-669364E3F5E7.dita#GUID-1D73835F-4361-3216-8EFC-669364E3F5E7/GUID-FFCCB7E3-B69F-3CC8-B38C-0179915C1E20"><apiname>CCirBuf::Remove()</apiname></xref>)
+user-defined objects, and objects of an <codeph>R</codeph> class to and from
+the buffer. </p> <p>After removing R class objects from the circular buffer,
+they must be closed in order to release the resource held by the R Class objects. </p> </section>
+<section id="GUID-6CB8757B-66CF-577C-A490-99CBBC10E2B5"><title>Building and
+configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-48DC5748-F246-57CB-9568-4B49E09A2CAA"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-DEEF2C1B-2D81-5DA7-BE70-EAD7496B16FA"><p>For the emulator, the
+example builds an executable called <filepath>circularbuffer.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+<section id="GUID-BC504F56-2676-5CBB-8DC1-57B3D9DD3950"><title>Running the
+example</title> <p>The user is prompted to press a key in order to progress
+from one function to the next. </p> </section>
 </refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e338735_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e344932_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e304358_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e310373_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-0E695106-4139-4335-A11F-BD04418DD583.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0E695106-4139-4335-A11F-BD04418DD583.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,132 +1,131 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0E695106-4139-4335-A11F-BD04418DD583" xml:lang="en"><title>Multi-selection
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Multi-selection lists are used when the purpose is to emphasize that it
-is possible to select several items from a list at the same time. Typically,
-there is an on-going operation that expects one or more items as input. An
-example of this is when the user is creating a group, and a list of names
-is offered as a multi-selection list.</p>
-<p>In a multi-selection list, the user can browse the items and check and
-uncheck any number of them. The state of each item is indicated in a checkbox
-adjacent to the item. When the user accepts the list, information about the
-marked items is passed to the application.</p>
-<p>Items are checked and unchecked using the Selection key, and the list is
-accepted with the left softkey Done/OK. Note that unlike in a markable list,
-the Options softkey is not available: one can only check and uncheck items
-and then accept or cancel the list.</p>
-<fig id="GUID-5ACB3332-F5FF-4BAD-AC49-2B569DB54378">
-<title>Multi-selection lists: in the main pane (left) and in a setting editor
-(right)</title>
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62127_href.png" placement="inline"/>
-</fig>
-<p>The keypad functions for multi-selection lists are as follows:</p>
-<table id="GUID-94AC7390-A39D-48A4-AF4E-FF34EBE44593"><title>Default key event
-in multi-selection list</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Arrow up / down</p></entry>
-<entry><p>Moves the focus in the list.</p></entry>
-</row>
-<row>
-<entry><p>Arrow left / right</p></entry>
-<entry><p>Ignored (can be used to control tabs).</p></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><p>Marks / unmarks the current item; toggle.</p></entry>
-</row>
-<row>
-<entry><p>Left softkey (Done)</p></entry>
-<entry><p>Accepts the list, passes the selections to the application.</p></entry>
-</row>
-<row>
-<entry><p>Right softkey (Cancel)</p></entry>
-<entry><p>Cancels the list, returns to the previous state.</p></entry>
-</row>
-<row>
-<entry><p>Clear, Edit, Call creation</p></entry>
-<entry><p>Ignored.</p></entry>
-</row>
-<row>
-<entry><p>Numeric keypad</p></entry>
-<entry><p>Ignored.</p></entry>
-</row>
-<row>
-<entry><p>Other keys</p></entry>
-<entry><p>Do the default action of the key.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-8-1-6-1-1-5-1-11-1-1-6-1-2-8"><title>The default touch
-events for multi-selection list</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>The item is marked/unmarked.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic effect is provided with
-touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down, move and touch release within the list</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p><p>Touch release after movement does not mark/unmark
-the item.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-3AF7EE7E-50F2-4714-BFC4-4C4A0033D89D"><title>Using
-multi-selection lists in C++ applications</title><p>The API to use for multi-selection
-lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information,
-see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0E695106-4139-4335-A11F-BD04418DD583" xml:lang="en"><title>Multi-selection
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Multi-selection lists are used when the purpose is to emphasize that it
+is possible to select several items from a list at the same time. Typically,
+there is an on-going operation that expects one or more items as input. An
+example of this is when the user is creating a group, and a list of names
+is offered as a multi-selection list.</p>
+<p>In a multi-selection list, the user can browse the items and check and
+uncheck any number of them. The state of each item is indicated in a checkbox
+adjacent to the item. When the user accepts the list, information about the
+marked items is passed to the application.</p>
+<p>Items are checked and unchecked using the Selection key, and the list is
+accepted with the left softkey <uicontrol>Done</uicontrol>/<uicontrol>OK</uicontrol>.
+Note that unlike in a markable list, the Options softkey is not available:
+one can only check and uncheck items and then accept or cancel the list.</p>
+<fig id="GUID-5ACB3332-F5FF-4BAD-AC49-2B569DB54378">
+<title>Multi-selection lists: in the main pane (left) and in a setting editor
+(right)</title>
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57765_href.png" placement="inline"/>
+</fig>
+<p>The keypad functions for multi-selection lists are as follows:</p>
+<table id="GUID-94AC7390-A39D-48A4-AF4E-FF34EBE44593"><title>Default key event
+in multi-selection list</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Key</entry>
+<entry>Action</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Arrow up / down</p></entry>
+<entry><p>Moves the focus in the list.</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / right</p></entry>
+<entry><p>Ignored (can be used to control tabs).</p></entry>
+</row>
+<row>
+<entry><p>Selection key</p></entry>
+<entry><p>Marks / unmarks the current item; toggle.</p></entry>
+</row>
+<row>
+<entry><p>Left softkey (Done)</p></entry>
+<entry><p>Accepts the list, passes the selections to the application.</p></entry>
+</row>
+<row>
+<entry><p>Right softkey (Cancel)</p></entry>
+<entry><p>Cancels the list, returns to the previous state.</p></entry>
+</row>
+<row>
+<entry><p>Clear, Edit, Call creation</p></entry>
+<entry><p>Ignored.</p></entry>
+</row>
+<row>
+<entry><p>Numeric keypad</p></entry>
+<entry><p>Ignored.</p></entry>
+</row>
+<row>
+<entry><p>Other keys</p></entry>
+<entry><p>Do the default action of the key.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-10-1-6-1-1-5-1-8-1-1-9-1-9-1-2-8"><title>The default touch
+events for multi-selection list</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>The item is marked/unmarked.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic effect is provided with
+touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down, move and touch release within the list</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p><p>Touch release after movement does not mark/unmark
+the item.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-3AF7EE7E-50F2-4714-BFC4-4C4A0033D89D"><title>Using
+multi-selection lists in applications</title><p>The API to use
+for multi-selection lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e281521_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e285207_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731" xml:lang="en"><title>Dynamic
-Resolution Switching</title><shortdesc>ScreenPlay provides support for externally connected displays,
-such as TV-out. Previous versions of Symbian and the non-ScreenPlay variant
-consider the size of all displays to be fixed, assuming them to be built into
-the phone. However, for High-Definition Multimedia Interface (HDMI) and composite
-video connectors, there is a range of resolutions that can change dynamically.
-ScreenPlay provides an optional feature that supports switching between resolutions
-at runtime. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. </p>
-<section id="GUID-374864AA-3757-4BD9-A5EB-4AC0E6DDD198"><title>The pre-ScreenPlay background</title> <p>Early devices typically
-had a screen size of 220 x 176 pixels. Over time, these were followed by higher
-resolution screens, such as 440 x 252 pixels. Applications that were designed
-for 220 x 176 pixel screens could run on 440 x 252 pixel screens because the
-Window Server simply scaled the pixels by a factor of two. </p> <p>However,
-this approach did not work when phones with 320 x 240 pixel screens were introduced,
-because each axis required a different scaling factor. Symbian introduced
-the <b>screen mode</b> feature to handle this and similar use cases. Device
-creators define in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
-file</xref> a number of screen modes for each physical screen on the device.
-For each screen mode the device creator defines parameters to control the
-offset from the top left corner of the screen, the height and width in both
-pixels and twips, <i>X</i> and <i>Y</i> axis scaling factors and so on. The
-Window Server uses these to position and scale old applications so that they
-can run on new phones with higher resolutions, as shown in the following diagram
-(which is not drawn to scale). The screen mode is still used in the same way
-in the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
-variant</xref>. </p> <fig id="GUID-FF86B974-1B1E-5EE1-A88A-9CD11B213A9B">
-<title>The screen mode enables old applications to run on new            
- phones with higher resolutions            </title>
-<image href="GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e191929_href.png" placement="inline"/>
-</fig> <p>There are several similar use cases, such as swapping between portrait
-and landscape orientations and flip phones that have a flap that, when closed,
-partially obscures the main screen. The Window Server uses the screen mode
-parameters to display applications differently depending on whether the phone
-is in portrait or landscape orientation and whether the flap is open or closed.
-The screen mode represents the area that is presented to the application and
-is available to application developers through <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref>. </p> <p>Defining
-the screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
-file</xref> in this way means that all possible screen sizes and resolutions
-must be fixed and known at ROM building time. This approach has limitations
-when working with technologies such as HDMI and composite video connectors,
-where there is a very wide range of possible resolutions that may not be known
-until runtime. </p> </section>
-<section id="GUID-139F6C69-85CD-4796-AE8D-A48EEAEB5294"><title>The ScreenPlay approach</title> <p>In ScreenPlay the actual
-resolution of the full composition/display area can be determined at runtime.
-The full UI area is mapped to fill this display area but may be a lower virtual
-resolution, which is scaled. The render stage chain handles the
-scaling and positioning of applications and any external surfaces within the
-UI, and the composition engine performs the scaling of the pixel data to the
-actual display area at physical resolution. This has the advantage that the
-scaling can be handled by the graphics acceleration hardware, if it is available. </p> <p>Another
-advantage of this approach is that it enables dynamic scaling of the pixels.
-Usually pixels are square on a mobile phone display, but not square on many
-external displays. When the square pixels from the device are displayed on
-such a display, they may need to be scaled by different arbitrary factors
-on each axis. This is called <b>anisotropic scaling</b>. In contrast, <b>isotropic
-scaling</b> means that both pixel axes are scaled by the same arbitrary factor. </p> <p>The
-following diagram illustrates how the full UI area is mapped to fill the display/composition
-area. The application's area (which corresponds to the screen mode) is referred
-to as the <b>application extent</b> in ScreenPlay. </p> <fig id="GUID-724DB4EE-1F45-58D9-889C-B42ECEE7208D">
-<title>Coordinate spaces in ScreenPlay            </title>
-<image href="GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e191975_href.png" placement="inline"/>
-</fig> <p>ScreenPlay handles application sizing and positioning in a fundamentally
-different way from the non-ScreenPlay variant. Using a fixed offset to position
-the application within the screen is inadequate when connecting to an external
-HDMI display, for example, when the resolution may not be known until runtime.
-For example, the offset designed for a QVGA display does not position the
-application correctly in a higher resolution display, as shown in the following
-diagram, where the red cross indicates the offset for a QVGA display. </p> <fig id="GUID-A2816D08-B61F-5605-B6AF-A9D186F6BED5">
-<title>A fixed offset and several display resolutions (not drawn         
-    to scale)            </title>
-<image href="GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e191986_href.png" placement="inline"/>
-</fig> <p>In ScreenPlay there is no scaling of the application extent relative
-to the full UI area—there is always a 1:1 pixel correspondence between them.
-In addition, although supported, the screen mode offset is not necessarily
-used. Instead, the render stage chain selects an appropriate virtual resolution
-and handles the positioning—for example, centering it and using a best fit
-algorithm so that it takes up as much of the screen as possible or using the
-offset as a minimum margin size. The device creator can choose how to implement
-this in the render stages. In order to position the application correctly
-within the UI area, the Window Server gets the positioning information from
-the first render stage in the chain when the configuration or screen mode
-changes. </p> <p>ScreenPlay supports fixed screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
-file</xref>, although the scaling parameters are not used. However, the screen
-mode width and height in pixels and twips when specified and used together,
-provide the pixel aspect ratio. In order to maintain backwards compatibility,
-render stages should respect this aspect ratio whenever possible. </p> <p>It
-is possible for applications to determine and draw to the UI area outside
-the application extent using the APIs described below. However, <b>dynamic
-screen modes</b> provide an alternative mechanism for existing applications
-to access the full UI area. This is particularly suitable for HDMI and similar
-technologies where the resolution may not be known until runtime. To use this
-approach, the device creator must define one or two screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref> and
-set their height and width in pixels to -1. One dynamic screen mode then represents
-the current display configuration and the other one, if present, represents
-the configuration when the screen is rotated by 90º or 270º. Using dynamic
-screen modes means that the display configuration can be changed at runtime
-according to the hardware that is available and detected by the composition
-engine. </p> <p>When a dynamic screen mode is used, the application extent
-always fills the full UI space and the area returned by <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref> always
-matches the actual resolution that is in use. </p>  </section>
-</conbody><related-links>
-<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
-Concepts</linktext></link>
-
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731" xml:lang="en"><title>Dynamic
+Resolution Switching</title><shortdesc>ScreenPlay provides support for externally connected displays,
+such as TV-out. Previous versions of Symbian and the non-ScreenPlay variant
+consider the size of all displays to be fixed, assuming them to be built into
+the phone. However, for High-Definition Multimedia Interface (HDMI) and composite
+video connectors, there is a range of resolutions that can change dynamically.
+ScreenPlay provides an optional feature that supports switching between resolutions
+at runtime. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. </p>
+<section id="GUID-374864AA-3757-4BD9-A5EB-4AC0E6DDD198"><title>The pre-ScreenPlay background</title> <p>Early devices typically
+had a screen size of 220 x 176 pixels. Over time, these were followed by higher
+resolution screens, such as 440 x 252 pixels. Applications that were designed
+for 220 x 176 pixel screens could run on 440 x 252 pixel screens because the
+Window Server simply scaled the pixels by a factor of two. </p> <p>However,
+this approach did not work when phones with 320 x 240 pixel screens were introduced,
+because each axis required a different scaling factor. Symbian introduced
+the <b>screen mode</b> feature to handle this and similar use cases. Device
+creators define in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
+file</xref> a number of screen modes for each physical screen on the device.
+For each screen mode the device creator defines parameters to control the
+offset from the top left corner of the screen, the height and width in both
+pixels and twips, <i>X</i> and <i>Y</i> axis scaling factors and so on. The
+Window Server uses these to position and scale old applications so that they
+can run on new phones with higher resolutions, as shown in the following diagram
+(which is not drawn to scale). The screen mode is still used in the same way
+in the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
+variant</xref>. </p> <fig id="GUID-FF86B974-1B1E-5EE1-A88A-9CD11B213A9B">
+<title>The screen mode enables old applications to run on new            
+ phones with higher resolutions            </title>
+<image href="GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e185333_href.png" placement="inline"/>
+</fig> <p>There are several similar use cases, such as swapping between portrait
+and landscape orientations and flip phones that have a flap that, when closed,
+partially obscures the main screen. The Window Server uses the screen mode
+parameters to display applications differently depending on whether the phone
+is in portrait or landscape orientation and whether the flap is open or closed.
+The screen mode represents the area that is presented to the application and
+is available to application developers through <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref>. </p> <p>Defining
+the screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
+file</xref> in this way means that all possible screen sizes and resolutions
+must be fixed and known at ROM building time. This approach has limitations
+when working with technologies such as HDMI and composite video connectors,
+where there is a very wide range of possible resolutions that may not be known
+until runtime. </p> </section>
+<section id="GUID-139F6C69-85CD-4796-AE8D-A48EEAEB5294"><title>The ScreenPlay approach</title> <p>In ScreenPlay the actual
+resolution of the full composition/display area can be determined at runtime.
+The full UI area is mapped to fill this display area but may be a lower virtual
+resolution, which is scaled. The render stage chain handles the
+scaling and positioning of applications and any external surfaces within the
+UI, and the composition engine performs the scaling of the pixel data to the
+actual display area at physical resolution. This has the advantage that the
+scaling can be handled by the graphics acceleration hardware, if it is available. </p> <p>Another
+advantage of this approach is that it enables dynamic scaling of the pixels.
+Usually pixels are square on a mobile phone display, but not square on many
+external displays. When the square pixels from the device are displayed on
+such a display, they may need to be scaled by different arbitrary factors
+on each axis. This is called <b>anisotropic scaling</b>. In contrast, <b>isotropic
+scaling</b> means that both pixel axes are scaled by the same arbitrary factor. </p> <p>The
+following diagram illustrates how the full UI area is mapped to fill the display/composition
+area. The application's area (which corresponds to the screen mode) is referred
+to as the <b>application extent</b> in ScreenPlay. </p> <fig id="GUID-724DB4EE-1F45-58D9-889C-B42ECEE7208D">
+<title>Coordinate spaces in ScreenPlay            </title>
+<image href="GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e185379_href.png" placement="inline"/>
+</fig> <p>ScreenPlay handles application sizing and positioning in a fundamentally
+different way from the non-ScreenPlay variant. Using a fixed offset to position
+the application within the screen is inadequate when connecting to an external
+HDMI display, for example, when the resolution may not be known until runtime.
+For example, the offset designed for a QVGA display does not position the
+application correctly in a higher resolution display, as shown in the following
+diagram, where the red cross indicates the offset for a QVGA display. </p> <fig id="GUID-A2816D08-B61F-5605-B6AF-A9D186F6BED5">
+<title>A fixed offset and several display resolutions (not drawn         
+    to scale)            </title>
+<image href="GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e185390_href.png" placement="inline"/>
+</fig> <p>In ScreenPlay there is no scaling of the application extent relative
+to the full UI area—there is always a 1:1 pixel correspondence between them.
+In addition, although supported, the screen mode offset is not necessarily
+used. Instead, the render stage chain selects an appropriate virtual resolution
+and handles the positioning—for example, centering it and using a best fit
+algorithm so that it takes up as much of the screen as possible or using the
+offset as a minimum margin size. The device creator can choose how to implement
+this in the render stages. In order to position the application correctly
+within the UI area, the Window Server gets the positioning information from
+the first render stage in the chain when the configuration or screen mode
+changes. </p> <p>ScreenPlay supports fixed screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini
+file</xref>, although the scaling parameters are not used. However, the screen
+mode width and height in pixels and twips when specified and used together,
+provide the pixel aspect ratio. In order to maintain backwards compatibility,
+render stages should respect this aspect ratio whenever possible. </p> <p>It
+is possible for applications to determine and draw to the UI area outside
+the application extent using the APIs described below. However, <b>dynamic
+screen modes</b> provide an alternative mechanism for existing applications
+to access the full UI area. This is particularly suitable for HDMI and similar
+technologies where the resolution may not be known until runtime. To use this
+approach, the device creator must define one or two screen modes in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref> and
+set their height and width in pixels to -1. One dynamic screen mode then represents
+the current display configuration and the other one, if present, represents
+the configuration when the screen is rotated by 90º or 270º. Using dynamic
+screen modes means that the display configuration can be changed at runtime
+according to the hardware that is available and detected by the composition
+engine. </p> <p>When a dynamic screen mode is used, the application extent
+always fills the full UI space and the area returned by <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref> always
+matches the actual resolution that is in use. </p>  </section>
+</conbody><related-links>
+<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
+Concepts</linktext></link>
+
+
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB-master.png has changed
Binary file Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e52114_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e57857_href.png has changed
--- a/Symbian3/SDK/Source/GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF"><title>Textual Logging</title><shortdesc>This topic describes the textual logging mechanisms available to help debugging the Communication-related components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>Most Comms components can output debugging information. These components must be configured to output information, with the configuration procedure dependent on the logging mechanism used by the component. The following mechanisms are used to log the information: </p> <ul><li id="GUID-726B089B-F8E0-5893-9D3F-4AEBD1751BF1"><p> <b>Flogger</b> - This logging mechanism is a file logger. It used to be the standard mechanism for Comms logging, but it is being replaced by CDU (below). </p> </li> <li id="GUID-FC40C065-ED23-5F49-AAA7-F557BD12CD58"><p> <b>Comms Debug Utility (CDU)</b> - This logging mechanism is currently used for the majority of Comms logging. It is the successor to Flogger and adds a two-phase logging system to give flexibility in debugging problems which are difficult to reproduce in debug binary files. It unifies Comms logging into one text file and allows the output to be redirected to RDebug for easier on-target debugging, or on emulator to the fast Windows Debug port. For more information see <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-34383668-480A-50DF-A3DB-8DE17D49ED30">Post-processing CDU log files</xref>, <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-217068A5-CC0A-5548-898E-C392F2031647">Default CDU</xref> and <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-3F3CDC4F-A2C4-5DD4-8E7C-24D67DA8DA3B">Interpreting the log files</xref>. </p> <p> <b>Note:</b> The CDU API is not published and so its APIs cannot be used for adding new logging. </p> </li> <li id="GUID-FBD09686-A6AD-5781-BA2D-E1041B0B4D47"><p> <b>Unified Trace/UTrace/ULogger</b> - This logging mechanism is currently used for a small amount of Comms logging. For more information see <xref href="GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita">How to Use ULogger with Comms</xref>  </p> </li> <li id="GUID-EBC721D3-8EF5-5C5D-8AC7-F606B809E4E2"><p> <b>Proprietary</b> - This logging mechanism belongs to the component itself. A few components still use their own logging mechanisms, but these usually behave similarly to Flogger in that to obtain the logs the appropriate folder needs to exist while the component is running. </p> </li> </ul> <p> <b> Note:</b> When you enable logging for a component, the component may run significantly slower as it performs the logging. This could make reproducing a problem more difficult if the reduced component execution performance changes the sequence of events leading to the problem. </p> <section id="GUID-34383668-480A-50DF-A3DB-8DE17D49ED30"><title>Post-processing CDU log files</title> <p>The CDU log file format is designed to be viewed unprocessed. However, in some cases post-processing is required. Two post-processing tools are available: </p> <ul><li id="GUID-7C6331FC-D651-5813-B8EF-9762600682BB"><p> <b>Splitlog</b> - is supplied in <codeph>epoc32\tools</codeph> and splits the single <codeph>log.txt</codeph> file into multiple files by each unique tag combination. This tool is used to extract embedded binary logging such as that for PPP described below in <xref href="GUID-935DF48C-F014-5E2A-8BE6-29B00C4FD31D.dita">Component-Specific Debugging Help</xref>. </p> </li> <li id="GUID-27AF2B6F-5108-5A98-AD3E-23445E1ED87C"><p> <b>Networking Message Sequence Display Tool</b> - processes a standard <codeph>log.txt</codeph> file to extract the Comms Framework messages and generates HTML/SVG output files for display on a suitable SVG-enabled browser. </p> <fig id="GUID-02A86F64-2278-5B46-82A4-7243C4790107"><title>
-                  Figure 1 - Example SVG output from the Message Sequence Display
-                  Tool 
-                </title> <image href="GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e85108_href.png" placement="inline"/></fig> </li> </ul> </section> <section id="GUID-217068A5-CC0A-5548-898E-C392F2031647"><title>Default CDU</title> <p>CDU provides a default configuration file which lists all the known components which use it, and also provides a reference listing of <keyword>iby</keyword> files and their respective component source code and log tags. Figure 2 provides a snapshot of the configuration file: </p> <fig id="GUID-22A390A6-F81E-5ECF-8A48-07D51ABD9037"><title>
-             Figure 2 - The default commsdbg.ini file 
-          </title> <image href="GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e85127_href.png" placement="inline"/></fig> <p>The default CDU file is located at <filepath>..\comms-infras\commsdebugutility\group\commsdbgdefault.ini</filepath> and is available for the emulator in <filepath>epoc32\&lt;data|release\winscw\&lt;udeb|urel&gt;&gt;\z\resource\commsdbg.ini</filepath>. </p> </section> <section id="GUID-3F3CDC4F-A2C4-5DD4-8E7C-24D67DA8DA3B"><title>Interpreting the log files</title> <p>Comms components have specific log file schemes with some similarities. The following are guidelines for interpreting the files: </p> <ul><li id="GUID-54407D7D-E1FC-50C2-BFF5-961E699C02DE"><p> <b>Errors are logged</b> - when a panic or other serious error condition is encountered. Often the last few log lines includes where the critical condition was reached, since usually the panic code or error code alone is not enough. If not, then often searching for "warning" or "error" in the earlier logging will identify where the problem began. </p> </li> <li id="GUID-26C4961B-BA78-53B0-BEE4-E591D1C1717C"><p> <b>Multi-threaded module output prefixes thread number</b> - ESock and the C32 Serial Server prefix the log lines with the thread number within the specific thread numbering scheme. For example: </p> <codeblock id="GUID-6E3B1FF9-8FC2-5C5A-87E0-7D2BA45BFDCA" xml:space="preserve">esock   esock   a 2e W0: CWorkerThread::ConstructL Init RS ChannelHandler
-esock   esock   a    32    W4: SocketServer::InitL() Done!
-esock   Booting a 32 W4: CWorkerThread::ConstructL Init ProtocolManager
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF"><title>Textual Logging</title><shortdesc>This topic describes the textual logging mechanisms available to help debugging the Communication-related components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>Most Comms components can output debugging information. These components must be configured to output information, with the configuration procedure dependent on the logging mechanism used by the component. The following mechanisms are used to log the information: </p> <ul><li id="GUID-726B089B-F8E0-5893-9D3F-4AEBD1751BF1"><p> <b>Flogger</b> - This logging mechanism is a file logger. It used to be the standard mechanism for Comms logging, but it is being replaced by CDU (below). </p> </li> <li id="GUID-FC40C065-ED23-5F49-AAA7-F557BD12CD58"><p> <b>Comms Debug Utility (CDU)</b> - This logging mechanism is currently used for the majority of Comms logging. It is the successor to Flogger and adds a two-phase logging system to give flexibility in debugging problems which are difficult to reproduce in debug binary files. It unifies Comms logging into one text file and allows the output to be redirected to RDebug for easier on-target debugging, or on emulator to the fast Windows Debug port. For more information see <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-34383668-480A-50DF-A3DB-8DE17D49ED30">Post-processing CDU log files</xref>, <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-217068A5-CC0A-5548-898E-C392F2031647">Default CDU</xref> and <xref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita#GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF/GUID-3F3CDC4F-A2C4-5DD4-8E7C-24D67DA8DA3B">Interpreting the log files</xref>. </p> <p> <b>Note:</b> The CDU API is not published and so its APIs cannot be used for adding new logging. </p> </li> <li id="GUID-FBD09686-A6AD-5781-BA2D-E1041B0B4D47"><p> <b>Unified Trace/UTrace/ULogger</b> - This logging mechanism is currently used for a small amount of Comms logging. For more information see <xref href="GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita">How to Use ULogger with Comms</xref>  </p> </li> <li id="GUID-EBC721D3-8EF5-5C5D-8AC7-F606B809E4E2"><p> <b>Proprietary</b> - This logging mechanism belongs to the component itself. A few components still use their own logging mechanisms, but these usually behave similarly to Flogger in that to obtain the logs the appropriate folder needs to exist while the component is running. </p> </li> </ul> <p> <b> Note:</b> When you enable logging for a component, the component may run significantly slower as it performs the logging. This could make reproducing a problem more difficult if the reduced component execution performance changes the sequence of events leading to the problem. </p> <section id="GUID-34383668-480A-50DF-A3DB-8DE17D49ED30"><title>Post-processing CDU log files</title> <p>The CDU log file format is designed to be viewed unprocessed. However, in some cases post-processing is required. Two post-processing tools are available: </p> <ul><li id="GUID-7C6331FC-D651-5813-B8EF-9762600682BB"><p> <b>Splitlog</b> - is supplied in <codeph>epoc32\tools</codeph> and splits the single <codeph>log.txt</codeph> file into multiple files by each unique tag combination. This tool is used to extract embedded binary logging such as that for PPP described below in <xref href="GUID-935DF48C-F014-5E2A-8BE6-29B00C4FD31D.dita">Component-Specific Debugging Help</xref>. </p> </li> <li id="GUID-27AF2B6F-5108-5A98-AD3E-23445E1ED87C"><p> <b>Networking Message Sequence Display Tool</b> - processes a standard <codeph>log.txt</codeph> file to extract the Comms Framework messages and generates HTML/SVG output files for display on a suitable SVG-enabled browser. </p> <fig id="GUID-02A86F64-2278-5B46-82A4-7243C4790107"><title>
+                  Figure 1 - Example SVG output from the Message Sequence Display
+                  Tool 
+                </title> <image href="GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e78396_href.png" placement="inline"/></fig> </li> </ul> </section> <section id="GUID-217068A5-CC0A-5548-898E-C392F2031647"><title>Default CDU</title> <p>CDU provides a default configuration file which lists all the known components which use it, and also provides a reference listing of <keyword>iby</keyword> files and their respective component source code and log tags. Figure 2 provides a snapshot of the configuration file: </p> <fig id="GUID-22A390A6-F81E-5ECF-8A48-07D51ABD9037"><title>
+             Figure 2 - The default commsdbg.ini file 
+          </title> <image href="GUID-0D3060BE-8C0F-564A-8979-C9A88C49C5E8_d0e78415_href.png" placement="inline"/></fig> <p>The default CDU file is located at <filepath>..\comms-infras\commsdebugutility\group\commsdbgdefault.ini</filepath> and is available for the emulator in <filepath>epoc32\&lt;data|release\winscw\&lt;udeb|urel&gt;&gt;\z\resource\commsdbg.ini</filepath>. </p> </section> <section id="GUID-3F3CDC4F-A2C4-5DD4-8E7C-24D67DA8DA3B"><title>Interpreting the log files</title> <p>Comms components have specific log file schemes with some similarities. The following are guidelines for interpreting the files: </p> <ul><li id="GUID-54407D7D-E1FC-50C2-BFF5-961E699C02DE"><p> <b>Errors are logged</b> - when a panic or other serious error condition is encountered. Often the last few log lines includes where the critical condition was reached, since usually the panic code or error code alone is not enough. If not, then often searching for "warning" or "error" in the earlier logging will identify where the problem began. </p> </li> <li id="GUID-26C4961B-BA78-53B0-BEE4-E591D1C1717C"><p> <b>Multi-threaded module output prefixes thread number</b> - ESock and the C32 Serial Server prefix the log lines with the thread number within the specific thread numbering scheme. For example: </p> <codeblock id="GUID-6E3B1FF9-8FC2-5C5A-87E0-7D2BA45BFDCA" xml:space="preserve">esock   esock   a 2e W0: CWorkerThread::ConstructL Init RS ChannelHandler
+esock   esock   a    32    W4: SocketServer::InitL() Done!
+esock   Booting a 32 W4: CWorkerThread::ConstructL Init ProtocolManager
 </codeblock> <p>The log lines indicate that ESock's Worker zero - the main thread - has initiated construction of its Rootserver (RS) communications channel, while Worker four has started constructing the Protocol Manager. </p> <p> <b>Note:</b> The "2e" and "32" numbers are the kernel's own numbers for these threads. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B"><title>Editing media files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can use the MVS to edit media files (or "clips"). You can either crop a newly recorded file before saving it, or specify that only a portion of a saved file should play. </p> <section><title>Cropping a file</title> <p>You can crop a file - remove a specified number of seconds from the beginning or end of a file open for record - before saving it. </p> <p>Note: The audio or video cropped is deleted from the file and cannot be retrieved. </p> <p>To crop a file: </p> <ol id="GUID-E1702588-76EB-5658-9E41-58C321AB0238"><li id="GUID-C529BFF0-0C77-551F-BCEF-9CAFC45B91D5"><p>In the <i>Edit</i> menu, click <i>SetCropWindow</i>. The <i>Crop This Clip</i> dialog box is displayed. </p> <fig id="GUID-4B84821D-D691-5D9A-9CBF-91139A6D6527"><image href="GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e329593_href.jpg" placement="inline"/></fig> </li> <li id="GUID-385C53A9-2E7E-545E-AA68-0DF92192DE31"><p>Select the position of the <i>Crop</i>: offset from either the beginning or the end of the clip. </p> </li> <li id="GUID-2390AFE2-4A30-578E-9A01-C31C81FD7411"><p>Enter the <i>Cropping Point</i>: the offset in seconds. </p> </li> <li id="GUID-08C1E43C-563B-5DDA-8532-CD77766BBC12"><p>Click <i>Crop!</i> to crop the clip. </p> </li> </ol> </section> <section><title> Selecting a portion of a file to play</title> <p>Before you play a media file you can specify that you want to play only a portion of it. </p> <p>To select a portion of clip for playing: </p> <ol id="GUID-BA9788F7-8EC9-5CC9-8B46-7A7EF656E391"><li id="GUID-477D1475-0503-59EE-818A-CBF2EE56B577"><p>In the <i>Edit</i> menu, click <i>Set PlayWindow</i>. This displays the <i>Set PlayWindow</i> dialog box. </p> <fig id="GUID-00172882-B439-5834-9EC4-B2631C527E78"><image href="GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e329647_href.jpg" placement="inline"/></fig> </li> <li id="GUID-A1571A8E-CF88-5DF0-B574-81165B85CF45"><p>Enter the <i>Start</i> and <i>End</i> times of the portion in milliseconds. </p> </li> <li id="GUID-C383DC7C-86D5-5B87-BF4A-99C2E32C11D1"><p>Click <i>OK</i> to confirm the clip length. </p> <p>When you play the clip, only the selected portion is played. </p> </li> </ol> <p><b>Clearing a selected portion </b> </p> <p>To set the portion to play back to its original value (entire clip): from the <i>Edit</i> menu, click <i>ClearPlayWindow</i>. </p> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B"><title>Editing media files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can use the MVS to edit media files (or "clips"). You can either crop a newly recorded file before saving it, or specify that only a portion of a saved file should play. </p> <section><title>Cropping a file</title> <p>You can crop a file - remove a specified number of seconds from the beginning or end of a file open for record - before saving it. </p> <p>Note: The audio or video cropped is deleted from the file and cannot be retrieved. </p> <p>To crop a file: </p> <ol id="GUID-E1702588-76EB-5658-9E41-58C321AB0238"><li id="GUID-C529BFF0-0C77-551F-BCEF-9CAFC45B91D5"><p>In the <i>Edit</i> menu, click <i>SetCropWindow</i>. The <i>Crop This Clip</i> dialog box is displayed. </p> <fig id="GUID-4B84821D-D691-5D9A-9CBF-91139A6D6527"><image href="GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e323436_href.jpg" placement="inline"/></fig> </li> <li id="GUID-385C53A9-2E7E-545E-AA68-0DF92192DE31"><p>Select the position of the <i>Crop</i>: offset from either the beginning or the end of the clip. </p> </li> <li id="GUID-2390AFE2-4A30-578E-9A01-C31C81FD7411"><p>Enter the <i>Cropping Point</i>: the offset in seconds. </p> </li> <li id="GUID-08C1E43C-563B-5DDA-8532-CD77766BBC12"><p>Click <i>Crop!</i> to crop the clip. </p> </li> </ol> </section> <section><title> Selecting a portion of a file to play</title> <p>Before you play a media file you can specify that you want to play only a portion of it. </p> <p>To select a portion of clip for playing: </p> <ol id="GUID-BA9788F7-8EC9-5CC9-8B46-7A7EF656E391"><li id="GUID-477D1475-0503-59EE-818A-CBF2EE56B577"><p>In the <i>Edit</i> menu, click <i>Set PlayWindow</i>. This displays the <i>Set PlayWindow</i> dialog box. </p> <fig id="GUID-00172882-B439-5834-9EC4-B2631C527E78"><image href="GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e323490_href.jpg" placement="inline"/></fig> </li> <li id="GUID-A1571A8E-CF88-5DF0-B574-81165B85CF45"><p>Enter the <i>Start</i> and <i>End</i> times of the portion in milliseconds. </p> </li> <li id="GUID-C383DC7C-86D5-5B87-BF4A-99C2E32C11D1"><p>Click <i>OK</i> to confirm the clip length. </p> <p>When you play the clip, only the selected portion is played. </p> </li> </ol> <p><b>Clearing a selected portion </b> </p> <p>To set the portion to play back to its original value (entire clip): from the <i>Edit</i> menu, click <i>ClearPlayWindow</i>. </p> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701" xml:lang="en"><title>UI concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The UI (User Interface) in devices based on the Symbian platform consists
-of at least one display for showing output to mobile device users and keys
-that allow mobile device users to enter input. The number, size, and resolution
-of displays varies among <xref href="http://www.forum.nokia.com/devices/matrix_s60_1.html" scope="external">legacy
-S60 devices and devices based on the Symbian platform</xref>, as do the
-keys available for input.</p>
-<fig id="GUID-84A0AF11-85F9-45E1-B723-47A696C42619"><title>Symbian UI</title><image href="GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e45876_href.png"/></fig>
-<p>The display consists of the following elements:</p>
-<ul>
-<li><p><b>Window</b> - An area on the display. There are windows
-that take up the entire display, and other windows that only take up part
-of the display. For example, pop-up windows do not cover the entire display.
-Pop-up windows have frames and typically the underlying window is partly visible
-behind the pop-up window. Access to windows is gained through <xref href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita"><i>controls</i></xref>.</p>
-</li>
-<li><p><b>Pane</b> - This is a sub-element of a window that is dedicated
-to a specific purpose. Windows may contain several panes, and panes may contain
-sub-panes. </p></li>
-</ul>
-<section id="GUID-4D941E4F-5954-4132-AAB4-CD4A725862EE"><title>Windows</title>
-<p>The following figure illustrates a typical window for an application:</p>
-<fig id="GUID-4707694E-3017-4CD2-A5EC-63B3C624C6DF"><title>Symbian UI window</title><image href="GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e45911_href.png"/></fig>
-<p>Typically, a window contains a status pane, a main pane, and a control
-pane.</p>
-<note>
-<p>Symbian UI can rotate between portrait and landscape layouts. For more
-information on the design implications of this feature, see <xref href="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita">Symbian
-UI with rotation</xref>.</p>
-</note>
-<p>By default, the <i>status</i> pane:</p>
-<ul>
-<li><p>occupies the top part of the display</p></li>
-<li><p>shows information on the current application and state, and
-general information about the device status, such as signal and battery strength</p>
-</li>
-<li><p>contains five sub-panes: <i>title pane</i>, <i>context pane</i>, <i>navi
-pane</i>, <i>signal pane</i>, and <i>battery pane/universal indicator pane</i></p>
-</li>
-</ul>
-<p>The <i>main</i> pane is in the middle of the display. Applications display
-their application state in the main pane.</p>
-<p>By default, the <i>control</i> pane:</p>
-<ul>
-<li><p>occupies the bottom part of the display</p></li>
-<li><p>displays the labels associated with the two softkeys</p>
-</li>
-<li><p>appears even when pop-up windows are on the display, although
-they are not contained in the pop-up window.</p></li>
-</ul>
-<p>Mobile device users navigate through applications based on input from
-selections in the <i>control pane</i> or key presses. The traditional hierarchical
-tree structure forms the basis for navigation, with mobile device users moving
-from one node, which represents a state, to another. </p>
-<p>The figure below illustrates an example of a basic state hierarchy.</p>
-<fig id="GUID-C8A1E4B5-8737-4378-A44A-21EB14882EF5"><title>Example of a basic state hierarchy in an application</title><image href="GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e46002_href.png"/></fig>
-</section>
-<section id="GUID-1ADE27AA-CFB6-42C2-8AE2-E7EDD4EC627A"><title>Tabs</title>
-<p>The Symbian UI supports tabs, which allow you to collect information
-for a state onto different pages. These tabs exist in the same node of the
-navigation hierarchy. The concept of tabs is related to the term <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita"><i>view</i></xref>.</p>
-<p>The following figure illustrates the use of tabs in an application.</p>
-<fig id="GUID-7090D372-4DB7-43E6-95CA-22E39FE20752"><title>Windows with tabs</title><image href="GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e46022_href.png"/></fig>
-<p>The following figures illustrates how tabs appear in the navigation
-hierarchy.</p>
-<fig id="GUID-F595A77A-00A2-484F-85E5-3318749979E7"><title>Example of a hierarchy with tabs</title><image href="GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e46030_href.png"/></fig>
-<p>See also:</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701" xml:lang="en"><title>UI concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The UI (User Interface) in devices based on the Symbian platform consists
+of at least one display for showing output to mobile device users and keys
+that allow mobile device users to enter input. The number, size, and resolution
+of displays varies among <xref href="http://www.forum.nokia.com/devices/matrix_s60_1.html" scope="external">legacy
+S60 devices and devices based on the Symbian platform</xref>, as do the
+keys available for input.</p>
+<fig id="GUID-84A0AF11-85F9-45E1-B723-47A696C42619"><title>Device display and keypad controls</title><image href="GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e40313_href.png"/></fig>
+<p>The display consists of the following elements:</p>
+<ul>
+<li><p><b>Window</b> - An area on the display. There are windows
+that take up the entire display, and other windows that only take up part
+of the display. For example, pop-up windows do not cover the entire display.
+Pop-up windows have frames and typically the underlying window is partly visible
+behind the pop-up window. Access to windows is gained through <xref href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita"><i>controls</i></xref>.</p>
+</li>
+<li><p><b>Pane</b> - This is a sub-element of a window that is dedicated
+to a specific purpose. Windows may contain several panes, and panes may contain
+sub-panes. </p></li>
+</ul>
+<section id="GUID-4D941E4F-5954-4132-AAB4-CD4A725862EE"><title>Windows</title>
+<p>The following figure illustrates a typical window for an application:</p>
+<fig id="GUID-4707694E-3017-4CD2-A5EC-63B3C624C6DF"><title>Symbian UI window</title><image href="GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e40348_href.png"/></fig>
+<p>Typically, a window contains a status pane, a main pane, and a control
+pane.</p>
+<note>
+<p>Symbian UI can rotate between portrait and landscape layouts. For more
+information on the design implications of this feature, see <xref href="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita">Symbian
+UI with rotation</xref>.</p>
+</note>
+<p>By default, the <i>status</i> pane:</p>
+<ul>
+<li><p>occupies the top part of the display</p></li>
+<li><p>shows information on the current application and state, and
+general information about the device status, such as signal and battery strength</p>
+</li>
+<li><p>contains <i>title pane</i>, <i>context pane</i>, <i>navi
+pane</i>, <i>signal pane</i>, <i>battery pane</i>, <i>universal indicator
+pane</i> and <i>clock pane</i> sub-panes.</p></li>
+</ul>
+<p>The <i>main</i> pane is in the middle of the display. Applications display
+their application state in the main pane.</p>
+<p>By default, the <i>control</i> pane:</p>
+<ul>
+<li><p>occupies the bottom part of the display</p></li>
+<li><p>displays the labels associated with the two softkeys</p>
+</li>
+</ul>
+<p>Mobile device users navigate through applications based on input from
+selections in the <i>control pane</i> or key presses. The traditional hierarchical
+tree structure forms the basis for navigation, with mobile device users moving
+from one node, which represents a state, to another. </p>
+<p>The figure below illustrates an example of a basic state hierarchy.</p>
+<fig id="GUID-C8A1E4B5-8737-4378-A44A-21EB14882EF5"><title>Example of a basic state hierarchy in an application</title><image href="GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e40442_href.png"/></fig>
+</section>
+<section id="GUID-1ADE27AA-CFB6-42C2-8AE2-E7EDD4EC627A"><title>Tabs</title>
+<p>The Symbian UI supports tabs, which allow you to collect information
+for a state onto different pages. These tabs exist in the same node of the
+navigation hierarchy. The concept of tabs is related to the term <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita"><i>view</i></xref>.</p>
+<p>The following figure illustrates the use of tabs in an application.</p>
+<fig id="GUID-7090D372-4DB7-43E6-95CA-22E39FE20752"><title>Windows with tabs</title><image href="GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e40462_href.png"/></fig>
+<p>The following figures illustrates how tabs appear in the navigation
+hierarchy.</p>
+<fig id="GUID-F595A77A-00A2-484F-85E5-3318749979E7"><title>Example of a hierarchy with tabs</title><image href="GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e40470_href.png"/></fig>
+<p>See also:</p>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-0F784804-8452-4C92-ABB3-56B81BAED744.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-0F784804-8452-4C92-ABB3-56B81BAED744.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-0F784804-8452-4C92-ABB3-56B81BAED744" xml:lang="en"><title>Sensor
-Services Overview</title><shortdesc>The Sensor Services collection is a group of components that provide
-APIs for extending sensors by means of plug-ins and providing channel-based
-communication with the sensor hardware.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A6D94351-3A27-40CA-876A-B47B69AFD48C"><title>Key Concepts
-and Terms</title><dl>
-<dlentry>
-<dt>Sensor</dt>
-<dd><p>A sensor is a hardware measuring device connected to the Symbian
-device, which measures a physical quantity in its immediate vicinity and converts
-that quantity into small sets of numeric digital values.</p></dd>
-</dlentry>
-<dlentry>
-<dt>Sensor Subsystem (SSY)</dt>
-<dd><p>Sensor Subsystems are plug-ins that connect the sensor hardware with
-the sensor server.</p></dd>
-</dlentry>
-</dl>           </section>
-<section id="GUID-567734D1-EDE0-4799-8851-B798BB7ACF50"><title>Architecture</title> 
-     <fig id="GUID-BD0DC0F8-9DA8-40D2-ABE5-F6D7D36BB4B6">
-<title>Sensor Services Architecture</title>
-<image href="GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e134594_href.png" placement="inline"/>
-</fig><p>The Sensor Services collection consists of the following components:</p><ul>
-<li><p><b>Sensor Framework</b>, which provides sensor server and plug-in interfaces
-for adding any new sensor plug-in as required. The framework also provides
-sensor channel APIs for creating a medium (sensor channel) of exchange between
-the client applications and the sensor hardware. The sensor plug-ins retrieve
-data from sensor hardware (through sensor channels) and enable the client
-applications to use the data for specific requirements. </p></li>
-<li><p><b>Data Compensator</b>, which uses data provided by the sensor plug-ins
-to correct the sensor axis data based on the current orientation of the Symbian
-device. This data can be used by the client applications to display the pages
-in portrait or landscape views.</p></li>
-
-</ul>     </section>
-<section id="GUID-1ADD99BC-6ECF-464F-9E05-0BEA28F67A2B"><title>Typical Uses</title><ul>
-<li><p><xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita">Using Sensor
-Channel APIs</xref>.</p></li>
-<li><p><xref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita">Compensating
-Sensor Data for Display Orientation</xref></p></li>
-
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-0F784804-8452-4C92-ABB3-56B81BAED744" xml:lang="en"><title>Sensor
+Services Overview</title><shortdesc>The Sensor Services collection is a group of components that provide
+APIs for extending sensors by means of plug-ins and providing channel-based
+communication with the sensor hardware.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A6D94351-3A27-40CA-876A-B47B69AFD48C"><title>Key Concepts
+and Terms</title><dl>
+<dlentry>
+<dt>Sensor</dt>
+<dd><p>A sensor is a hardware measuring device connected to the Symbian
+device, which measures a physical quantity in its immediate vicinity and converts
+that quantity into small sets of numeric digital values.</p></dd>
+</dlentry>
+<dlentry>
+<dt>Sensor Subsystem (SSY)</dt>
+<dd><p>Sensor Subsystems are plug-ins that connect the sensor hardware with
+the sensor server.</p></dd>
+</dlentry>
+</dl>           </section>
+<section id="GUID-567734D1-EDE0-4799-8851-B798BB7ACF50"><title>Architecture</title> 
+     <fig id="GUID-BD0DC0F8-9DA8-40D2-ABE5-F6D7D36BB4B6">
+<title>Sensor Services Architecture</title>
+<image href="GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e128056_href.png" placement="inline"/>
+</fig><p>The Sensor Services collection consists of the following components:</p><ul>
+<li><p><b>Sensor Framework</b>, which provides sensor server and plug-in interfaces
+for adding any new sensor plug-in as required. The framework also provides
+sensor channel APIs for creating a medium (sensor channel) of exchange between
+the client applications and the sensor hardware. The sensor plug-ins retrieve
+data from sensor hardware (through sensor channels) and enable the client
+applications to use the data for specific requirements. </p></li>
+<li><p><b>Data Compensator</b>, which uses data provided by the sensor plug-ins
+to correct the sensor axis data based on the current orientation of the Symbian
+device. This data can be used by the client applications to display the pages
+in portrait or landscape views.</p></li>
+
+</ul>     </section>
+<section id="GUID-1ADD99BC-6ECF-464F-9E05-0BEA28F67A2B"><title>Typical Uses</title><ul>
+<li><p><xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita">Using Sensor
+Channel APIs</xref>.</p></li>
+<li><p><xref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita">Compensating
+Sensor Data for Display Orientation</xref></p></li>
+
+</ul></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-0FD02CAD-B687-50C0-8E44-74ED9B4A936E-master.png has changed
Binary file Symbian3/SDK/Source/GUID-0FD02CAD-B687-50C0-8E44-74ED9B4A936E_d0e382729_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e79728_href.png has changed
Binary file Symbian3/SDK/Source/GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e86440_href.png has changed
Binary file Symbian3/SDK/Source/GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e4248_href.png has changed
Binary file Symbian3/SDK/Source/GUID-10540A35-7E8E-40F0-BF93-CBC01884550C_d0e5523_href.png has changed
--- a/Symbian3/SDK/Source/GUID-107AE89E-901E-535F-8D1A-EE347D7822B1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-107AE89E-901E-535F-8D1A-EE347D7822B1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-107AE89E-901E-535F-8D1A-EE347D7822B1" xml:lang="en"><title>Architecture</title><shortdesc>This topic describes the architecture of the Serial Communications
-Server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Serial Communications Server uses the Symbian platform client/server
-framework. Clients use <codeph>R</codeph> classes that send requests to the
-Serial Communications Server. The server in turn passes requests to an appropriate
-plug-in module that handles the particular communication protocol. These plug-in
-modules are known as <i>Serial Protocol Modules</i> or <i>CSYs</i>. The Serial
-Protocol Modules are loaded by the Serial Communications server, and are not
-directly accessed by client applications. A Symbian platform phone may include
-a number of Serial Protocol Modules as standard, such as for handling RS232
-and infra-red serial communications. The Serial Protocol Module API allows
-new Serial Protocol Modules modules to be developed. </p>
-<p>The Serial Communications Server provides a publishedAll API to access
-the serial ports of the device. The Serial Communications Server provides
-functionality such as timeouts and port sharing for all Serial Protocol Modules.
-The Serial Protocol Modules provide the specific protocol and communicate
-with the serial device driver. To communicate with the serial device driver,
-the Serial Protocol Modules use publishedPartner APIs such as <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RBusDevComm</apiname></xref>.
-The <codeph>RBusDevComm</codeph> API provides a handle to a channel to the
-serial device driver. This device driver only implements the basic data transfer
-and break operations, and is not intended for use directly by client applications.
-The device driver is implemented using a Physical Device Driver (PDD) and
-a Logical Device Driver (LDD). The PDD and LDD must be loaded before a Serial
-Protocol Module can be used. For a device being tested, the application client
-may need to load the PDD and LDD. For a device that is shipped, the boot sequence
-normally loads the LDDs and PDDs. Figure 1 below shows the architecture and
-the appropriate APIs at each level. Figure 2 below shows the architecture
-with three Serial Protocol Modules loaded. </p>
-<fig id="GUID-4F316E33-41C6-5BF4-AAE1-2750C58CC1AA">
-<title>           Figure 1 - The architecture and the appropriate APIs at
-each level         </title>
-<image href="GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e122298_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-5B17051E-C4E7-5657-BB62-26072FB13D83">
-<title>           Figure 2 - The architecture with three CSYs loaded     
-   </title>
-<image href="GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e122306_href.png" placement="inline"/>
-</fig>
-<p>Each serial port has a limited availability when multiple clients attempt
-to use the port. The Serial Communications Server provides some functionality
-to mediate between competing clients. This mediation is provided by the <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RComm::Open()</apiname></xref> and <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RComm::OpenWithAvailable()</apiname></xref> APIs.
-However, the first client to access a port has control. If a client must get
-access to a serial port, then that client must ensure it connects to the serial
-port before other clients. The reliable method of ensuring access to a serial
-port is for a client to connect as part of the device boot procedure. If a
-client must have access to a serial port, then the device manufacturer should
-specify which clients access ports during device boot. </p>
-<section id="GUID-39D0A44F-3E6D-486F-BC72-A4260374419C"><title>Historical Notes</title> <ol id="GUID-920828D6-9304-5E44-B82D-671097029B21">
-<li id="GUID-EE61E2E6-EABB-58D1-AE5A-E452589F5D3C"><p>The framework supplied
-by the Serial Communications Server for Serial Protocol Modules has a narrower
-set of capabilities compared to the Socket Server for protocol developers. </p> </li>
-<li id="GUID-DB979584-6BBE-56AA-8068-FC5650D40A46"><p>In Symbian platform,
-the Serial Communications Server was converted into a multi-threaded server.
-The Serial Protocol Modules can be run in separate threads. This change did
-not change the behaviour of the Serial Communications Server except for three
-changes: </p> <ol id="GUID-0BCD64C0-448E-5ACA-9928-AC30E42A59CF">
-<li id="GUID-5EFB6685-D6E8-53D9-B3B6-5E1A944F4247"><p>A serial protocol module
-which blocks does not stop other Serial Protocol Modules from running </p> </li>
-<li id="GUID-71E76203-BA35-5854-AC89-E105BEBDB6B3"><p>A serial protocol module
-can run faster than other modules by changing the configured thread priority </p> </li>
-<li id="GUID-B844EEB9-B241-553B-8631-622BDA0B7A84"><p>A serial protocol module
-can use the Serial Communications Server API and request services of another
-serial protocol module </p> </li>
-</ol> </li>
-</ol> </section>
-</conbody><related-links>
-<link href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita"><linktext>        
-        Client/Server Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-107AE89E-901E-535F-8D1A-EE347D7822B1" xml:lang="en"><title>Architecture</title><shortdesc>This topic describes the architecture of the Serial Communications
+Server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Serial Communications Server uses the Symbian platform client/server
+framework. Clients use <codeph>R</codeph> classes that send requests to the
+Serial Communications Server. The server in turn passes requests to an appropriate
+plug-in module that handles the particular communication protocol. These plug-in
+modules are known as <i>Serial Protocol Modules</i> or <i>CSYs</i>. The Serial
+Protocol Modules are loaded by the Serial Communications server, and are not
+directly accessed by client applications. A Symbian platform phone may include
+a number of Serial Protocol Modules as standard, such as for handling RS232
+and infra-red serial communications. The Serial Protocol Module API allows
+new Serial Protocol Modules modules to be developed. </p>
+<p>The Serial Communications Server provides a publishedAll API to access
+the serial ports of the device. The Serial Communications Server provides
+functionality such as timeouts and port sharing for all Serial Protocol Modules.
+The Serial Protocol Modules provide the specific protocol and communicate
+with the serial device driver. To communicate with the serial device driver,
+the Serial Protocol Modules use publishedPartner APIs such as <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RBusDevComm</apiname></xref>.
+The <codeph>RBusDevComm</codeph> API provides a handle to a channel to the
+serial device driver. This device driver only implements the basic data transfer
+and break operations, and is not intended for use directly by client applications.
+The device driver is implemented using a Physical Device Driver (PDD) and
+a Logical Device Driver (LDD). The PDD and LDD must be loaded before a Serial
+Protocol Module can be used. For a device being tested, the application client
+may need to load the PDD and LDD. For a device that is shipped, the boot sequence
+normally loads the LDDs and PDDs. Figure 1 below shows the architecture and
+the appropriate APIs at each level. Figure 2 below shows the architecture
+with three Serial Protocol Modules loaded. </p>
+<fig id="GUID-4F316E33-41C6-5BF4-AAE1-2750C58CC1AA">
+<title>           Figure 1 - The architecture and the appropriate APIs at
+each level         </title>
+<image href="GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e115760_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-5B17051E-C4E7-5657-BB62-26072FB13D83">
+<title>           Figure 2 - The architecture with three CSYs loaded     
+   </title>
+<image href="GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e115768_href.png" placement="inline"/>
+</fig>
+<p>Each serial port has a limited availability when multiple clients attempt
+to use the port. The Serial Communications Server provides some functionality
+to mediate between competing clients. This mediation is provided by the <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RComm::Open()</apiname></xref> and <xref href="GUID-3B4E8ED5-72F7-3E51-B188-3C1045526DDF.dita"><apiname>RComm::OpenWithAvailable()</apiname></xref> APIs.
+However, the first client to access a port has control. If a client must get
+access to a serial port, then that client must ensure it connects to the serial
+port before other clients. The reliable method of ensuring access to a serial
+port is for a client to connect as part of the device boot procedure. If a
+client must have access to a serial port, then the device manufacturer should
+specify which clients access ports during device boot. </p>
+<section id="GUID-39D0A44F-3E6D-486F-BC72-A4260374419C"><title>Historical Notes</title> <ol id="GUID-920828D6-9304-5E44-B82D-671097029B21">
+<li id="GUID-EE61E2E6-EABB-58D1-AE5A-E452589F5D3C"><p>The framework supplied
+by the Serial Communications Server for Serial Protocol Modules has a narrower
+set of capabilities compared to the Socket Server for protocol developers. </p> </li>
+<li id="GUID-DB979584-6BBE-56AA-8068-FC5650D40A46"><p>In Symbian platform,
+the Serial Communications Server was converted into a multi-threaded server.
+The Serial Protocol Modules can be run in separate threads. This change did
+not change the behaviour of the Serial Communications Server except for three
+changes: </p> <ol id="GUID-0BCD64C0-448E-5ACA-9928-AC30E42A59CF">
+<li id="GUID-5EFB6685-D6E8-53D9-B3B6-5E1A944F4247"><p>A serial protocol module
+which blocks does not stop other Serial Protocol Modules from running </p> </li>
+<li id="GUID-71E76203-BA35-5854-AC89-E105BEBDB6B3"><p>A serial protocol module
+can run faster than other modules by changing the configured thread priority </p> </li>
+<li id="GUID-B844EEB9-B241-553B-8631-622BDA0B7A84"><p>A serial protocol module
+can use the Serial Communications Server API and request services of another
+serial protocol module </p> </li>
+</ol> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita"><linktext>        
+        Client/Server Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e281237_href.png has changed
Binary file Symbian3/SDK/Source/GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e284923_href.png has changed
Binary file Symbian3/SDK/Source/GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e220786_href.png has changed
Binary file Symbian3/SDK/Source/GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e224523_href.png has changed
--- a/Symbian3/SDK/Source/GUID-10CF321F-3298-4527-BFF5-0351085C7C8C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-10CF321F-3298-4527-BFF5-0351085C7C8C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-10CF321F-3298-4527-BFF5-0351085C7C8C" xml:lang="en"><title>Item
-type combinations</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A list can only be composed of items of the same type. However, it is possible
-to use some item types for different purposes. An example is a setting list
-that contains an item for accessing a sub-list of settings. In this item,
-the value box is omitted so that the item looks like a regular selection item,
-and selecting it opens another list. Similar techniques are possible with
-other double item types, too.</p>
-<fig id="GUID-4B95B534-90BC-42B9-ACAF-ED4BC30E19A2">
-<title>Setting list containing a non-setting item to access another view</title>
-<image href="GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e61166_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-10CF321F-3298-4527-BFF5-0351085C7C8C" xml:lang="en"><title>Item
+type combinations</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A list can only be composed of items of the same type. However, it is possible
+to use some item types for different purposes. An example is a setting list
+that contains an item for accessing a sub-list of settings. In this item,
+the value box is omitted so that the item looks like a regular selection item,
+and selecting it opens another list. Similar techniques are possible with
+other double item types, too.</p>
+<fig id="GUID-4B95B534-90BC-42B9-ACAF-ED4BC30E19A2">
+<title>Setting list containing a non-setting item to access another view</title>
+<image href="GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e53483_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542" xml:lang="en"><title>List
-types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Based on the functionality, the following list categories can be identified:</p>
-<ul>
-<li><p>Menu list </p></li>
-<li><p>Selection list</p></li>
-<li><p>Markable list </p></li>
-<li><p>Multi-selection list</p></li>
-<li><p>Setting list </p></li>
-<li><p>Hierarchical list</p></li>
-<li><p>Hierarchical column list</p></li>
-<li><p>Forms</p></li>
-</ul>
-<p>Lists belonging to one category may have different graphical appearances.
-See <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List layouts</xref> for
-information about different looking list items.</p>
-<p>On the whole, list items and command should not be mixed, but in cases
-where some command in a list would significantly boost efficiency and user
-experience, it is perfectly acceptable to add one command onto the list. It
-is important that there is no more than one command per list, and that the
-command is placed as the first item on that list.</p>
-<section id="GUID-6EF8CB10-EDF4-4457-86D8-F0DDD5ECFEAD"><title>Using
-different list types in C++ applications</title><p>The APIs to use for lists
-are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> (for menu, selection, markable, and multi-selection
-lists) and the <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html" scope="peer">Hierarchical lists API</xref> (for hierarchical and hierarchical
-column lists). For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p><p>For forms, the
-API is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information, see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref></p><p>For list types other
-than the hierarchical lists, the flags used to create the different list types
-in resource files, are described in <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic2.2.6" scope="peer">Listbox types in listbox resource definition</xref>.</p></section>
-<example><p/><p><b>See also</b>:</p></example>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542" xml:lang="en"><title>List
+types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Based on the functionality, the following list categories can be identified:</p>
+<ul>
+<li><p>Menu list </p></li>
+<li><p>Selection list</p></li>
+<li><p>Markable list </p></li>
+<li><p>Multi-selection list</p></li>
+<li><p>Setting list </p></li>
+<li><p>Hierarchical list</p></li>
+<li><p>Hierarchical column list</p></li>
+<li><p>Forms</p></li>
+</ul>
+<p>Lists belonging to one category may have different graphical appearances.
+See <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List layouts</xref> for
+information about different looking list items.</p>
+<p>On the whole, list items and command should not be mixed, but in cases
+where some command in a list would significantly boost efficiency and user
+experience, it is perfectly acceptable to add one command onto the list. It
+is important that there is no more than one command per list, and that the
+command is placed as the first item on that list.</p>
+<section id="GUID-6EF8CB10-EDF4-4457-86D8-F0DDD5ECFEAD"><title>Using
+different list types in applications</title><p>The APIs to use
+for lists are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> (for menu, selection, markable, and multi-selection
+lists) and the <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html" scope="peer">Hierarchical lists API</xref> (for hierarchical and hierarchical
+column lists). For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p><p>For forms, the
+API is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information, see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref></p><p>For list types other than the
+hierarchical lists, the flags used to create the different list types in resource
+files, are described in <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic2.2.6" scope="peer">Listbox types in listbox resource definition</xref>.</p></section>
+<example><p/><p><b>See also</b>:</p></example>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e333499_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e339656_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03-master.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e51581_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e56285_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e57133_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e64001_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e68838_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11A79174-485E-425C-9653-193B670A3F03_d0e73982_href.png has changed
--- a/Symbian3/SDK/Source/GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-11B69814-5B3E-42AE-844E-998A7A08E654" xml:lang="en"><title>Permanent
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Permanent notes remain on the screen for an indefinite time. The user cannot
-dismiss them. For example, <uicontrol>Insert SIM card</uicontrol>. </p>
-<section id="GUID-C0FAC6E3-F8D8-4C63-961B-9D65CA3F3D90"> 
-     <title>Using permanent notes in C++ applications</title>      <p>The
-API to use for the permanent note component is the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref>. To use a permanent note with the
-default icon, text, sound, and duration, create an instance of the note class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStaticNoteDialog.html" format="application/java-archive"><codeph>CAknStaticNoteDialog</codeph></xref>.</p><p>You
-can change the icon or text displayed in the note, use a different kind of
-sound, or change the note duration using the setter methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p>     </section>
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-11B69814-5B3E-42AE-844E-998A7A08E654" xml:lang="en"><title>Permanent
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Permanent notes remain on the screen for an indefinite time. The user cannot
+dismiss them. For example, <uicontrol>Insert SIM card</uicontrol>. </p>
+<section id="GUID-C0FAC6E3-F8D8-4C63-961B-9D65CA3F3D90"> 
+     <title>Using permanent notes in applications</title><p>The
+API to use for the permanent note component is the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref>. To use a permanent note with the default icon,
+text, sound, and duration, create an instance of the note class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStaticNoteDialog.html" format="application/java-archive"><codeph>CAknStaticNoteDialog</codeph></xref>.</p><p>You can change the icon
+or text displayed in the note, use a different kind of sound, or change the
+note duration using the setter methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p>     </section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,122 +1,123 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E" xml:lang="en"><title>Scrollbars</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>With any list, grid or other component that can be scrolled vertically,
-a scrollbar appears on the right-hand side of the component. The scrollbar
-is displayed also on pop-up components.</p>
-<fig id="GUID-1C685A4B-F3EF-4A43-9233-E84C67FD74F4">
-<title>Scroll pane with scrollbar</title>
-<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e73223_href.png" placement="inline"/>
-</fig>
-<ul>
-<li><p>The placement of the scroll handle on the scrollbar reflects the position
-of the focus on the scrolling content.</p></li>
-<li><p>The size of the scroll handle reflects the number of displayed items
-relative to the total number of items on the scrolled component.</p></li>
-<li><p>The scrollbar is displayed even when all items on the component can
-be displayed in the same view without scrolling. When this is the case, the
-scroll handle is displayed at the maximum size. The only exception is the
-Application Shell, where scrollbar is not displayed if all items fit the same
-view.</p></li>
-</ul>
-<section id="GUID-054FE843-7681-40D9-ACA7-47122BC3107B"><title>Scrollbars
-in Touch UI</title><p>In touch devices based on the Symbian platform, scrollbars
-(vertical and horizontal) have a touch-enabled scroll box. The hardware keys
-(Arrow keys) can also be used for scrolling when the scrollbars are visible.
-The scrolling movement on the screen is smooth.</p><p>For the scrollbar to
-be more usable with touch, the actual scrollbar area is wider than the visible
-scrollbar. When the user scrolls, the scrollbar has a related effect to indicate
-the scrolling. Because the actual area of scrollbar is wider, the items appearing
-on that area in scrollable list, grids, viewers cannot be touch-enabled, for
-example,list icons in column D cannot be tapped.</p><table id="GUID-96CBFEBF-601B-4686-85B2-7E634AB1F1B2">
-<title>Default control events for scrollbar.</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on a scrollbar, no thumb</p></entry>
-<entry><p>Scrolling is activated when there is a scrollbar under the touch
-event. Scrollbar thumb is moved towards the touch down position on the scroll
-bar. Scrolling is done for a page at a time.</p></entry>
-<entry><p>Scrollbar color is changed to indicate that the scrollbar has the
-control.</p><p>Tactile: <ul>
-<li>No feedback is provided when touch down on a scrollbar and no thumb is
-used. </li>
-<li><p>Sensitive slider effect and audio feedback given when thumb is moved
-towards the touch down position.</p></li>
-<li><p>No feedback is provided with touch release.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down on a scrollbar thumb</p></entry>
-<entry><p>Scrollbar thumb can be moved in desired direction. Scrollbar thumb
-color is changed as an indication to the users that scrolling can be performed.</p></entry>
-<entry><p>Scrollbar thumb color is changed to indicate scrolling activation.</p><p>Tactile:
-Sensitive slider effect and audio feedback provided with touch down and release
-events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold scrollbar, no thumb</p></entry>
-<entry><p>This action performs a “key repeat”. The scrollbar thumb is moved
-towards the touch down position</p></entry>
-<entry><p>Tactile: Sensitive slider effect and audio feedback provided with
-touch down and with steps.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Scrollbar thumb is moved along with the touch event.</p><p>Touch
-down on scrollbar thumb, dragging and touch release are performed on the scrollbar
-control area.</p></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive slider effect and audio feedback provided with touch down
-event.</p></li>
-<li><p>Smooth slider effect provided with the drag event.</p></li>
-<li><p>Sensitive slider effect provided with touch release.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down on scrollbar thumb and move outside the scrollbar control
-area</p></entry>
-<entry><p>Scrollbar thumb remains in the position where it was when the finger
-left the scrollbar control area.</p><p>If the user moves the touch outside
-the scrollbar control area and back, the thumb will continue to move along
-with the touch event.</p><p>After touch down on scrollbar thumb, touch is
-dragged out from the scrollbar control area, without releasing the touch.</p></entry>
-<entry><p>Tactile: Sensitive slider effect and audio feedback provided with
-touch down. No feedback is provided if the thumb is not moving. If the thumb
-moves, smooth slide feedback provided.</p><p><note>If touch release happens
-outside the scrollbar, no feedback is provided.</note></p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-<section id="GUID-87093F25-CFC3-4D71-A5EF-006C6425C65D"><title>Using
-scrollbars in C++ applications</title><p>The API to use for creating the scrollbar
-component is the <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html" scope="peer">Scroller API</xref>.</p><p>To use a scrollbar in your application,
-first create a scrollbar frame using the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCEikScrollBarFrame.html" format="application/java-archive"><codeph>CEikScrollbarFrame</codeph></xref>. All scrollbar operations are executed via this scrollbar frame.
-These operations include creating and destroying the scrollbar, setting its
-visibility, and adjusting the scrollbar's model. The scrollbar itself can
-be created using the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCEikScrollBarFrame.html#81980f8db36253fc89fb7ebbfa316b4d" format="application/java-archive"><codeph>CreateDoubleSpanScrollBarsL()</codeph></xref> in the class <codeph>CEikScrollBarFrame</codeph>.
-The class for the scrollbar is <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknDoubleSpanScrollBar.html" format="application/java-archive"><codeph>CAknDoubleSpanScrollBar</codeph></xref>. For implementation information, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.1" scope="peer">Creating a scrollbar</xref>.</p><p>Scrollbar models encapsulate
-the range of integers which a scrollbar can represent, from zero to n, and
-the current position of the scrollbar thumb within that range. To set the
-scrollbar model, use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classTAknDoubleSpanScrollBarModel.html" format="application/java-archive"><codeph>TAknDoubleSpanScrollbarModel</codeph></xref>. For information on updating the scrollbar's position and size using
-the scrollbar model, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.2" scope="peer">Updating ArrowHead scrollbar attributes</xref> and <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.3" scope="peer">Updating DoubleSpan scrollbar attributes</xref>.</p><p>You can
-control the scrollbar visibility using the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCEikScrollBarFrame.html#63d2cba6f1261f9c56dd7a98499fceda" format="application/java-archive"><codeph>SetScrollbarVisibilityL()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCEikScrollBarFrame.html" format="application/java-archive"><codeph>CEikScrollbarFrame</codeph></xref>.</p><p>To observed scrollbar events,
-use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMEikScrollBarObserver.html" format="application/java-archive"><codeph>MEikScrollbarObserver</codeph></xref>. For implementation information, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html.dita#specs/guides/Scroller_API_Specification/Scroller_API_Specification.html/Scroller_API_Specification.topic3.4">Observing scrollbar events</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E" xml:lang="en"><title>Scrollbars</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>With any list, grid or other component that can be scrolled vertically,
+a scrollbar appears on the right-hand side of the component. The scrollbar
+is displayed also on pop-up components.</p>
+<fig id="GUID-1C685A4B-F3EF-4A43-9233-E84C67FD74F4">
+<title>Scroll pane with scrollbar</title>
+<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e68090_href.png" placement="inline"/>
+</fig>
+<ul>
+<li><p>The placement of the scroll handle on the scrollbar reflects the position
+of the focus on the scrolling content.</p></li>
+<li><p>The size of the scroll handle reflects the number of displayed items
+relative to the total number of items on the scrolled component.</p></li>
+<li><p>The scrollbar can be displayed in the same view without scrolling.
+When this is the case, the scroll handle is displayed at the maximum size.
+The only exception is the Application Shell, where scrollbar is not displayed
+if all items fit the same view.</p></li>
+</ul>
+<section id="GUID-054FE843-7681-40D9-ACA7-47122BC3107B"><title>Scrollbars
+in Touch UI</title><p>In touch devices based on the Symbian platform, scrollbars
+(vertical and horizontal) have a touch-enabled scroll box. The hardware keys
+(Arrow keys) can also be used for scrolling when the scrollbars are visible.</p><p>For
+the scrollbar to be more usable with touch, the actual scrollbar area is wider
+than the visible scrollbar. When the user scrolls, the scrollbar has a related
+effect to indicate the scrolling. Because the actual area of scrollbar is
+wider, the items appearing on that area in scrollable list, grids, viewers
+cannot be touch-enabled, for example,list icons in column D cannot be tapped.</p><table id="GUID-96CBFEBF-601B-4686-85B2-7E634AB1F1B2"><title>Default control events
+for scrollbar.</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on a scrollbar, no thumb</p></entry>
+<entry><p>Scrolling is activated when there is a scrollbar under the touch
+event. Scrollbar thumb is moved towards the touch down position on the scroll
+bar. Scrolling is done for a page at a time.</p></entry>
+<entry><p>Scrollbar color is changed to indicate that the scrollbar has the
+control.</p><p>Tactile: <ul>
+<li>No feedback is provided when touch down on a scrollbar and no thumb is
+used. </li>
+<li><p>Sensitive slider effect and audio feedback given when thumb is moved
+towards the touch down position.</p></li>
+<li><p>No feedback is provided with touch release.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down on a scrollbar thumb</p></entry>
+<entry><p>Scrollbar thumb can be moved in desired direction. Scrollbar thumb
+color is changed as an indication to the users that scrolling can be performed.</p></entry>
+<entry><p>Scrollbar thumb color is changed to indicate scrolling activation.</p><p>Tactile:
+Sensitive slider effect and audio feedback provided with touch down and release
+events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold scrollbar, no thumb</p></entry>
+<entry><p>This action performs a “key repeat”. The scrollbar thumb is moved
+towards the touch down position</p></entry>
+<entry><p>Tactile: Sensitive slider effect and audio feedback provided with
+touch down and with steps.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Scrollbar thumb is moved along with the touch event.</p><p>Touch
+down on scrollbar thumb, dragging and touch release are performed on the scrollbar
+control area.</p></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive slider effect and audio feedback provided with touch down
+event.</p></li>
+<li><p>Smooth slider effect provided with the drag event.</p></li>
+<li><p>Sensitive slider effect provided with touch release.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down on scrollbar thumb and move outside the scrollbar control
+area</p></entry>
+<entry><p>Scrollbar thumb remains in the position where it was when the finger
+left the scrollbar control area.</p><p>If the user moves the touch outside
+the scrollbar control area and back, the thumb will continue to move along
+with the touch event.</p><p>After touch down on scrollbar thumb, touch is
+dragged out from the scrollbar control area, without releasing the touch.</p></entry>
+<entry><p>Tactile: Sensitive slider effect and audio feedback provided with
+touch down. No feedback is provided if the thumb is not moving. If the thumb
+moves, smooth slide feedback provided.</p><p><note>If touch release happens
+outside the scrollbar, no feedback is provided.</note></p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section id="GUID-87093F25-CFC3-4D71-A5EF-006C6425C65D"><title>Using
+scrollbars in applications</title><p>The API to use for creating the scrollbar
+component is the <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html" scope="peer">Scroller API</xref>.</p><p>To use a scrollbar in your application,
+first create a scrollbar frame using the<xref href="GUID-1277B47A-85B4-35D3-8599-7D6CC839E780.dita"><apiname>CEikScrollbarFrame</apiname></xref> class.
+All scrollbar operations are executed via this scrollbar frame. These operations
+include creating and destroying the scrollbar, setting its visibility, and
+adjusting the scrollbar's model. The scrollbar itself can be created using
+the <xref href="GUID-19DCF868-FA99-3714-83D1-527EFF9C673B.dita#GUID-19DCF868-FA99-3714-83D1-527EFF9C673B/GUID-73C9FB55-A88B-35EE-8AE5-88B511C675D5"><apiname>CEikScrollBarFrame::CreateDoubleSpanScrollBarsL()</apiname></xref> method.
+The class for the scrollbar is <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknDoubleSpanScrollBar.html" format="application/java-archive"><codeph>CAknDoubleSpanScrollBar</codeph></xref>. For implementation information, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.1" scope="peer">Creating a scrollbar</xref>.</p><p>Scrollbar models encapsulate
+the range of integers which a scrollbar can represent, from zero to n, and
+the current position of the scrollbar thumb within that range. To set the
+scrollbar model, use the <xref href="GUID-C48FA73D-8F4A-37BF-8298-C3A7D86AE972.dita"><apiname>TAknDoubleSpanScrollbarModel</apiname></xref> class.
+For information on updating the scrollbar's position and size using the scrollbar
+model, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.2" scope="peer">Updating ArrowHead scrollbar attributes</xref> and <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.3" scope="peer">Updating DoubleSpan scrollbar attributes</xref>.</p><p>You can
+control the scrollbar visibility using the <xref href="GUID-1277B47A-85B4-35D3-8599-7D6CC839E780.dita#GUID-1277B47A-85B4-35D3-8599-7D6CC839E780/GUID-8AFAE0F6-2C0A-335B-A8B6-996FBF4114D0"><apiname>CEikScrollbarFrame::SetScrollbarVisibilityL()</apiname></xref> method.</p><p>To
+observe scrollbar events, use the <xref href="GUID-149A9C33-0CD6-3032-8DFA-5723DD248464.dita"><apiname>MEikScrollbarObserver</apiname></xref> class.
+For implementation information, see <xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html#Scroller_API_Specification.topic3.4" scope="peer">Observing scrollbar events</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e107483_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e114021_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e13567_href.png has changed
Binary file Symbian3/SDK/Source/GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e14831_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1248ED3E-438C-41E5-81D4-19FC721408BA_d0e81910_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80" xml:lang="en"><title>Sockets
-Server Architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the architecture of the Sockets Server and the framework
-that implements sockets in Symbian platform. </p>
-<p>The sockets are similar in concept to Berkeley Software Distribution (BSD)
-sockets from the University of California at Berkeley. The sockets provide
-a generic interface to network level communications protocols for common operations
-in network computing. Common operations are: </p>
-<ul>
-<li id="GUID-3CFD5267-2254-5816-9443-E4256579E01D"><p>establish a connection </p> </li>
-<li id="GUID-C1061692-C402-5EB1-91E9-EEB3BD3410CE"><p>send data </p> </li>
-<li id="GUID-445FF07E-FC13-589A-B375-DED728F88E06"><p>receive data </p> </li>
-<li id="GUID-BBC3CE6E-01FA-52E6-BE5E-A53A2E5423AC"><p>configure network protocols </p> </li>
-</ul>
-<p>The Sockets Client API provides access to other network facilities. Examples
-of network facilities are: </p>
-<ul>
-<li id="GUID-E77E0241-2D8F-531B-93D3-78BD910BCEB4"><p>hostname resolution </p> </li>
-<li id="GUID-EB93A7E8-33BC-5A82-9CD7-8AB7065CDB1B"><p>service resolution </p> </li>
-<li id="GUID-439CE845-2A89-5886-81DD-9F3DD0537346"><p>information about protocols </p> </li>
-<li id="GUID-2AE98676-FEAC-5B49-BB39-1BD635F24FDF"><p>byte manipulation utilities </p> </li>
-</ul>
-<section id="GUID-986AB642-22DE-422C-965A-F70CC7A79779"><title>Required Background</title> <p>A
-working knowledge of socket based communications is recommended in order to
-understand how Symbian platform implements sockets. </p> <p>A knowledge of
-the selected protocol is also required if the application is going to set
-or get values specific to the protocol. For example, the knowledge is required
-to understand the data returned from <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-1B597C97-2AEB-32D1-B225-5C1E24F6470F"><apiname>RSocketServ::GetProtocolInfo()</apiname></xref>.
-The knowledge is also required if the application sets <xref href="GUID-9A20701F-5744-5F5F-BB0C-AB58EFB7D087.dita">Quality
-of Service</xref> (QoS) values. </p> </section>
-<section id="GUID-EBF65B0F-AFAE-4DA4-8B9F-E0E816FB6B67"><title>Key Concepts/Terms</title> <p>The
-Sockets Server starts when Symbian platform starts, and receives requests
-for socket based communications. If a request is received for a particular
-protocol, the Sockets Server loads the appropriate protocol modules to handle
-that request. </p> </section>
-<section id="GUID-7CE8ED89-2543-4E11-A9A4-9D2BC0B061B2"><title>Architectural
-relationships</title> <p>The Sockets Server provides a generic client interface,
-and a server to which particular protocol modules can be plugged in. A client
-uses a particular protocol by supplying protocol-specific parameters to Sockets
-API functions. </p> <fig id="GUID-253611E8-9893-5261-830F-28B888FFA15B">
-<title>              Figure 1 - The Socket Server's position in the Communications
-             Framework Architecture.            </title>
-<image href="GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e117326_href.png" placement="inline"/>
-</fig> <p>The TCP/IP API enables clients to use sockets for TCP/IP, including
-UDP, TCP, ICMP, IPv4, IPv6, ARP, and DNS. </p> <p>The IrDA Sockets API enables
-clients to use sockets for IrDA infra-red. </p> <p>The Bluetooth Sockets API
-enables clients to use sockets for Bluetooth. </p> <p>The SMS PRT API provides
-the GSM SMS Protocol stack and the WAP protocol stack over SMS. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80" xml:lang="en"><title>Sockets
+Server Architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the architecture of the Sockets Server and the framework
+that implements sockets in Symbian platform. </p>
+<p>The sockets are similar in concept to Berkeley Software Distribution (BSD)
+sockets from the University of California at Berkeley. The sockets provide
+a generic interface to network level communications protocols for common operations
+in network computing. Common operations are: </p>
+<ul>
+<li id="GUID-3CFD5267-2254-5816-9443-E4256579E01D"><p>establish a connection </p> </li>
+<li id="GUID-C1061692-C402-5EB1-91E9-EEB3BD3410CE"><p>send data </p> </li>
+<li id="GUID-445FF07E-FC13-589A-B375-DED728F88E06"><p>receive data </p> </li>
+<li id="GUID-BBC3CE6E-01FA-52E6-BE5E-A53A2E5423AC"><p>configure network protocols </p> </li>
+</ul>
+<p>The Sockets Client API provides access to other network facilities. Examples
+of network facilities are: </p>
+<ul>
+<li id="GUID-E77E0241-2D8F-531B-93D3-78BD910BCEB4"><p>hostname resolution </p> </li>
+<li id="GUID-EB93A7E8-33BC-5A82-9CD7-8AB7065CDB1B"><p>service resolution </p> </li>
+<li id="GUID-439CE845-2A89-5886-81DD-9F3DD0537346"><p>information about protocols </p> </li>
+<li id="GUID-2AE98676-FEAC-5B49-BB39-1BD635F24FDF"><p>byte manipulation utilities </p> </li>
+</ul>
+<section id="GUID-986AB642-22DE-422C-965A-F70CC7A79779"><title>Required Background</title> <p>A
+working knowledge of socket based communications is recommended in order to
+understand how Symbian platform implements sockets. </p> <p>A knowledge of
+the selected protocol is also required if the application is going to set
+or get values specific to the protocol. For example, the knowledge is required
+to understand the data returned from <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-1B597C97-2AEB-32D1-B225-5C1E24F6470F"><apiname>RSocketServ::GetProtocolInfo()</apiname></xref>.
+The knowledge is also required if the application sets <xref href="GUID-9A20701F-5744-5F5F-BB0C-AB58EFB7D087.dita">Quality
+of Service</xref> (QoS) values. </p> </section>
+<section id="GUID-EBF65B0F-AFAE-4DA4-8B9F-E0E816FB6B67"><title>Key Concepts/Terms</title> <p>The
+Sockets Server starts when Symbian platform starts, and receives requests
+for socket based communications. If a request is received for a particular
+protocol, the Sockets Server loads the appropriate protocol modules to handle
+that request. </p> </section>
+<section id="GUID-7CE8ED89-2543-4E11-A9A4-9D2BC0B061B2"><title>Architectural
+relationships</title> <p>The Sockets Server provides a generic client interface,
+and a server to which particular protocol modules can be plugged in. A client
+uses a particular protocol by supplying protocol-specific parameters to Sockets
+API functions. </p> <fig id="GUID-253611E8-9893-5261-830F-28B888FFA15B">
+<title>              Figure 1 - The Socket Server's position in the Communications
+             Framework Architecture.            </title>
+<image href="GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e110788_href.png" placement="inline"/>
+</fig> <p>The TCP/IP API enables clients to use sockets for TCP/IP, including
+UDP, TCP, ICMP, IPv4, IPv6, ARP, and DNS. </p> <p>The IrDA Sockets API enables
+clients to use sockets for IrDA infra-red. </p> <p>The Bluetooth Sockets API
+enables clients to use sockets for Bluetooth. </p> <p>The SMS PRT API provides
+the GSM SMS Protocol stack and the WAP protocol stack over SMS. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1293DE8C-E803-4ADF-9FA8-862519337331" xml:lang="en"><title>Software
-installer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>End users can install new software from a variety of sources: through
-e-mail, Internet downloads, multimedia messaging service (MMS) and WAP push
-messages, infrared and Bluetooth connections, PC Suite, and removable memory
-cards. The diversity of software vendors and delivery channels requires a
-sophisticated system for managing installed software.</p>
-<p>The Symbian <i>Software Installer</i> uses <i>digital signatures</i> and <i>certificates</i> to
-authenticate that the application being installed on a mobile device is from
-a known vendor. The signature can be obtained through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian
-Signed</xref> process, and the default certificates installed in the mobile
-device act as root certificates. During installation the signature is validated
-against the certificates. If they match, the application is installed and
-the requested <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> are
-stored in the executable, assuming that the root certificate can grant the
-capabilities. Only <i>user capabilities</i> can be granted to unsigned or
-self-signed applications, and these are always confirmed by the user. </p>
-<note>
-<p>The end users have an option to cancel the installation if they detect
-that the vendor of the software package and certificate authority are not
-trustworthy. This is especially important when installing security-related
-components (for example, VPN clients, firewalls and virus scanners) or other
-business-related software.</p>
-</note>
-<p>The Software Installer ensures that no two applications have the same <xref href="GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98.dita#GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98/GUID-EEC50FC0-46D5-4ED7-AD95-67430D5EC652">SID</xref> value
-on a particular target device. The Software Installer has the <codeph>TCB</codeph> capability
-to read and modify content in the <xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita"><codeph>\sys</codeph> </xref> folder
-and all its subfolders, which means that you can write to third-party application
-executables in the <codeph>\sys\bin</codeph> folder when they are installed
-through the Software Installer.</p>
-<p>For more information on the Software Installer, see <xref href="GUID-8E160B29-18C4-574B-9259-9A8E958CDA91.dita">Secure
-Software Install Tools</xref>.</p>
-<p>The following figure illustrates the steps of software installation:</p>
-<fig id="GUID-98820420-7C7A-46EC-9DE4-EA3F5FFD39A8"><title>Installation process for signed packages</title><image href="GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e11153_href.png"/></fig>
-<p>The Software Installer can install the following types of packages:</p>
-<ul>
-<li><p>signed <codeph>sis</codeph> packages</p></li>
-<li><p>Java archives (JAR) run by a Java virtual machine</p>
-</li>
-<li><p>Web Runtime widgets</p></li>
-</ul>
-<p>The Software Installer recognizes different devices, which allows you
-to define the platforms and devices to which the software can be installed.</p>
-
-<p>If you receive an error message when using the Software Installer, see <xref href="http://developer.symbian.org/wiki/index.php/Troubleshooting_Installation_Errors.dita">Troubleshooting
-Installation Errors</xref> at the Symbian Foundation.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1293DE8C-E803-4ADF-9FA8-862519337331" xml:lang="en"><title>Software
+installer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>End users can install new software from a variety of sources: through
+e-mail, Internet downloads, multimedia messaging service (MMS) and WAP push
+messages, infrared and Bluetooth connections, PC Suite, and removable memory
+cards. The diversity of software vendors and delivery channels requires a
+sophisticated system for managing installed software.</p>
+<p>The Symbian <i>Software Installer</i> uses <i>digital signatures</i> and <i>certificates</i> to
+authenticate that the application being installed on a mobile device is from
+a known vendor. The signature can be obtained through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian
+Signed</xref> process, and the default certificates installed in the mobile
+device act as root certificates. During installation the signature is validated
+against the certificates. If they match, the application is installed and
+the requested <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> are
+stored in the executable, assuming that the root certificate can grant the
+capabilities. Only <i>user capabilities</i> can be granted to unsigned or
+self-signed applications, and these are always confirmed by the user. </p>
+<note>
+<p>The end users have an option to cancel the installation if they detect
+that the vendor of the software package and certificate authority are not
+trustworthy. This is especially important when installing security-related
+components (for example, VPN clients, firewalls and virus scanners) or other
+business-related software.</p>
+</note>
+<p>The Software Installer ensures that no two applications have the same <xref href="GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98.dita#GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98/GUID-EEC50FC0-46D5-4ED7-AD95-67430D5EC652">SID</xref> value
+on a particular target device. The Software Installer has the <codeph>TCB</codeph> capability
+to read and modify content in the <xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita"><codeph>\sys</codeph> </xref> folder
+and all its subfolders, which means that you can write to third-party application
+executables in the <codeph>\sys\bin</codeph> folder when they are installed
+through the Software Installer.</p>
+<p>For more information on the Software Installer, see <xref href="GUID-8E160B29-18C4-574B-9259-9A8E958CDA91.dita">Secure
+Software Install Tools</xref>.</p>
+<p>The following figure illustrates the steps of software installation:</p>
+<fig id="GUID-98820420-7C7A-46EC-9DE4-EA3F5FFD39A8"><title>Installation process for signed packages</title><image href="GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e12428_href.png"/></fig>
+<p>The Software Installer can install the following types of packages:</p>
+<ul>
+<li><p>signed <codeph>sis</codeph> packages</p></li>
+<li><p>Java archives (JAR) run by a Java virtual machine</p>
+</li>
+<li><p>Web Runtime widgets</p></li>
+</ul>
+<p>The Software Installer recognizes different devices, which allows you
+to define the platforms and devices to which the software can be installed.</p>
+
+<p>If you receive an error message when using the Software Installer, see <xref href="http://developer.symbian.org/wiki/index.php/Troubleshooting_Installation_Errors.dita">Troubleshooting
+Installation Errors</xref> at the Symbian Foundation.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,252 +1,252 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280" xml:lang="en"><title>Socket
-Server Reference</title><shortdesc>This topic provides a summary of related documentation for the
-ESock APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-
-<section id="GUID-0D8CE9A1-7056-4A0B-A3D7-8469F9029341"><p>Socket Server APIs: </p> </section>
-<table id="GUID-C269B63A-A1D7-5A4B-8608-65462143CBA6">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry>Server session APIs</entry>
-<entry/>
-<entry>Header</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-
-<entry><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>  </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>RSocketServ establishes and reserves resources for the base communication
-session to the socket server. All other client interfaces require a valid
-session to be opened </p> </entry>
-</row>
-<row>
-
-<entry><p> <b>RSocketServ Subsession APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>End point for all socket-based communications. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Makes host name resolution queries. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Used to startup and manage active connections. It is possible to
-start a connection either implicitly, via the RSocket or RHostResolver APIs,
-or explicitly via the RConnection API. The RConnection creates a default subconnection. </p> <p> <xref href="GUID-5CFC075C-8F53-5E1B-A111-C6F4567DFD1E.dita">RConnection API Reference</xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Used to organise channels within a connection and manage Quality
-of Service. Multihoming-aware applications must use this API. Only valid in
-the context of an RConnection. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-7489739B-3608-3F9F-BB02-DE65D7AA53A2.dita"><apiname>RNetDatabase</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Interface for network database access. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-DDD32F28-BA89-3CA1-93B0-355CDD9CD92D.dita"><apiname>RServiceResolver</apiname></xref>  </p> </entry>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Provides an interface to resolve service names and ports. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>  </p> </entry>
-<entry/>
-<entry><p>ES_SOCK.H </p> </entry>
-<entry><p>Provides access to the Comms Management Plane, including Access
-Point queries. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-<section id="GUID-2214B4F9-FC01-4B86-B9CB-3A9A3769CE9C"><p>Bearer Mobility APIs </p> </section>
-<table id="GUID-DDBADF88-8197-5C9A-AC0E-42099252DC93">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Bearer mobility APIs</entry>
-<entry>Header</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-6CA83252-4D0C-3B72-83ED-B5152B666C83.dita"><apiname>CActiveCommsMobilityApiExt</apiname></xref>  </p> </entry>
-<entry><p>es_mobility_apiext.h </p> </entry>
-<entry><p>Comms Mobility API extension for application client running an Active
-Scheduler. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D5F43DFB-5143-3563-8655-16E245A9735F.dita"><apiname>RCommsMobilityApiExt</apiname></xref>  </p> </entry>
-<entry><p>es_mobility_apiext.h </p> </entry>
-<entry><p>Comms Mobility API extension for application client not running
-an Active Scheduler. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9A3979A9-F882-3053-B5B1-E0E125774271.dita"><apiname>MMobilityProtocolResp</apiname></xref>  </p> </entry>
-<entry><p>es_mobility_apiext.h </p> </entry>
-<entry><p>Interface to be implemented by the application client to support
-mobility API extension. See <xref href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita">Bearer
-Mobility Client</xref>. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-<section id="GUID-3CBE467D-11B7-40F7-B681-D40F4D48D18F"><p>How APIs related to the 3-Plane Comms Architecture. </p> <fig id="GUID-FC69453E-CA12-5CDB-A7E6-B2FA542BBE06">
-<title>           Figure 1 - How ESock APIs related to the 3-Plane Comms Architecture
-         </title>
-<image href="GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e120838_href.png" placement="inline"/>
-</fig> <p>The Sockets Client API also defines a number of support classes
-used in conjunction with the above interfaces. These encapsulate: </p> <ul>
-<li id="GUID-A1132B04-61D5-53E5-85A5-E7BBFA598B72"><p> <i>Addresses</i>: a
-base address class <xref href="GUID-66228064-B6E7-3CE9-8F5E-5DED4CD9A49B.dita"><apiname>TSockAddr</apiname></xref> is defined. Specific protocol
-address classes are derived from this. Each address can be identified by its
-Protocol Family, an integer which identifies protocol suites from others. </p> </li>
-<li id="GUID-BBD21B5C-20EE-5BC9-BEE4-00CB1565DE1E"><p> <i>Resolution queries</i>:
-queries made through <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref> objects are packaged
-in <xref href="GUID-C625E339-6726-3FB9-8F8A-F4DB0CAC15FF.dita"><apiname>TNameEntry</apiname></xref> descriptors. These are packages for <xref href="GUID-567CF5B5-464F-37B7-A91E-6A672C39BA44.dita"><apiname>TNameRecord</apiname></xref> objects
-that contain <xref href="GUID-66228064-B6E7-3CE9-8F5E-5DED4CD9A49B.dita"><apiname>TSockAddr</apiname></xref> objects to pass in addresses. </p> </li>
-<li id="GUID-EFB76FB6-00D2-5C01-BE59-B748CAAAC61E"><p> <i>Protocol information</i>:
-a comprehensive description of a protocol’s capabilities and properties can
-be dynamically obtained through the <xref href="GUID-0FB20F20-67EE-3948-B9F6-E1D679AC3D0F.dita"><apiname>TProtocolDesc</apiname></xref> class.
-Capabilities are identified by constants. </p> </li>
-<li id="GUID-4BD6B3AA-4711-55BE-8F34-88B28EC2657F"><p> <i>Endian issues</i>: <xref href="GUID-8183BE9B-6118-3472-A271-8409751CA5EF.dita"><apiname>BigEndian</apiname></xref>, <xref href="GUID-55FDB45E-2759-3192-AEE2-D600B232682B.dita"><apiname>LittleEndian</apiname></xref>,
-and <xref href="GUID-A934C24D-0E90-3D33-B4FC-654FB9004CFC.dita"><apiname>ByteOrder</apiname></xref> can be used to order integers to and from
-network order. </p> </li>
-</ul> </section>
-<section id="GUID-7803B89A-6ABF-529C-A0B8-CA06BA410F3B"><title>RSubConnection
-Events</title> <p> <b>CSubConGenEventDataClientJoined</b>, <b>CSubConGenEventDataClientLeft</b>  </p> <p>These
-two events derive from <xref href="GUID-1C0CC85E-38A7-3E7A-9246-940DCCE44EB0.dita"><apiname>CSubConGenEventDataClientBase</apiname></xref>, which
-provides the functionality for both. The source and destination end points
-of the data client are presented with this event, along with the IAP ID of
-the connection on which it was created. </p> <p> <b>CSubConNotificationEvent</b>  </p> <p>Both
-generic and extension sub-connection events derive from this class. The rules
-for generic and extension events are the same as for parameter sets. That
-is, a generic event MUST be able to be understood by all technologies. </p> <p>The <codeph>IsGeneric()</codeph> method
-identifies whether the event is generic. </p> <p>The <codeph>GroupId()</codeph> method
-returns the UID of the factory that contains the event, and <codeph>Id()</codeph> returns
-the class type Id within that factory. These two pieces of information comprise
-the <xref href="GUID-FEE87408-3FAA-31BB-A0C2-4BDEB279D4BA.dita"><apiname>STypeId</apiname></xref> of the event. </p> <p> <b>CSubConGenEventParamsGranted</b>  </p> <p>Notification
-of this event occurs after a request to <codeph>SetParameters()</codeph> has
-been made and negotiation with the network has been completed. A notification
-will be received for each family contained in the parameter bundle that was
-negotiated successfully. This event presents a generic set and zero or more
-extension sets (providing they are supported by the underlying sub-connection
-provider technology) of the parameter family identified by the Id returned
-from <codeph>GetFamily()</codeph>. </p> <p> <b>CSubConGenEventParamsRejected</b>  </p> <p>Notification
-of this event occurs after a request to <codeph>SetParameters()</codeph> has
-been made and negotiation with the network has failed for some reason. It
-could be an error within the handset software/configuration, or that the network
-could not provide the acceptable (minimum) level of QoS. The reason for failure
-and the parameter family are presented by the accessor methods <codeph>Error()</codeph> and <codeph>FamilyId()</codeph>.
-Like the <xref href="GUID-AA6CFA1E-0B17-3603-9065-34D05322C0A5.dita"><apiname>CSubConGenEventParamsGranted</apiname></xref> event, a notification
-for <xref href="GUID-7103CFA3-2119-3356-9460-B26D88036FEB.dita"><apiname>CSubConGenEventParamsRejected</apiname></xref> is received for each
-family in the parameter bundle that could not be negotiated successfully. </p> <p> <b>CSubConGenEventParamsChanged</b>  </p> <p>This
-event occurs when the properties of a parameter family has been renegotiated
-due to some event on the network. It is not sent in response to a request
-to change the properties. The change could be the result of an error or just
-that the level of QoS has improved/worsened. If a new set of parameters are
-available they’ll be presented as with the <xref href="GUID-AA6CFA1E-0B17-3603-9065-34D05322C0A5.dita"><apiname>CSubConGenEventParamsGranted</apiname></xref> event.
-The error status is presented via the <codeph>Error()</codeph> method. </p> <p> <b>CSubConGenEventSubConDown</b>  </p> <p>This
-event occurs when the underlying sub-connection has been lost. This could
-be due to request for it to be closed, or some error on the network. The error
-status is presented via the <codeph>Error()</codeph> method. </p> </section>
-<section id="GUID-7F057E16-0E56-5989-8647-7DAFF6E343D3"><title>RSubConnection
-QoS Parameters</title> <p> <b>CSubConQosGenericParamSet</b>  </p> <table id="GUID-227CFC6C-C38B-516F-AB6D-C3C2D51EA4A3">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry> Parameter </entry>
-<entry> Description </entry>
-<entry>Directions</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Bandwidth </p> </entry>
-<entry><p>Bandwidth the client requires </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Maximum Burst Size </p> </entry>
-<entry><p>Maximum size of a burst of data the client can handle </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Average Packet Size </p> </entry>
-<entry><p>Average packet size required (e.g. codec use) </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Maximum Packet Size </p> </entry>
-<entry><p>Maximum packet size the client can handle </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Delay </p> </entry>
-<entry><p>Acceptable Delay/Latency </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Delay Variation </p> </entry>
-<entry><p>Acceptable variation in delay (also known as jitter) </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Priority </p> </entry>
-<entry><p>Relative priority the client expects to give this channel compared
-to it’s other channels </p> </entry>
-<entry><p>Uplink / Downlink </p> </entry>
-</row>
-<row>
-<entry><p>Header mode </p> </entry>
-<entry><p>Specify whether the header size should be calculated by the QoS
-module or specified by the client. Default is to let the QoS module calculate
-it. </p> </entry>
-<entry><p>N/A </p> </entry>
-</row>
-<row>
-<entry><p>Name </p> </entry>
-<entry><p>Identity of a “well known” set of QoS Parameters. </p> </entry>
-<entry><p>N/A </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>If an extension parameter set is added to the family that contains
-conceptually identical parameters to those in the generic set, it is recommended
-that you set both instances (generic and extension) of those parameters. </p> <p> <b>CSubConQosIPLinkR99ParamSet</b> / <b>CSubConQosR99ParamSet</b>  </p> <p>Getter and setter methods are provided for each parameter. </p> <p> <b>Note: </b> The
-constants used for it are <xref href="GUID-04E17A74-BFAB-3DB7-998B-5BCB8A5FB4CC.dita"><apiname>KSubConIPParamsUid</apiname></xref> and <xref href="GUID-41202CC9-3547-3404-AF6C-678A36BAE7D9.dita"><apiname>KSubConQosIPLinkR99ParamsType</apiname></xref>. </p> <p>The
-following parameter sets are available in Symbian platform. </p> <p> <b>CSubConQosR5ParamSet</b>  </p> <p>It
-inherits from the release 4/99 set <codeph>CSubConQosR99ParamSet</codeph>.
-Although it is possible to add both this parameter set and the R4/R99 one,
-it is not necessary and should not be done. </p> <p> <b>CSubConIMSExtParamSet</b>  </p> <p>This
-class contains the IM CN Signalling Indicator flag. </p> </section>
-
-<section id="GUID-8797CEEF-CC6D-4B72-9C85-1B0E0188AA58"><title>Test programs</title> <p>None </p> </section>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280" xml:lang="en"><title>Socket
+Server Reference</title><shortdesc>This topic provides a summary of related documentation for the
+ESock APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+
+<section id="GUID-0D8CE9A1-7056-4A0B-A3D7-8469F9029341"><p>Socket Server APIs: </p> </section>
+<table id="GUID-C269B63A-A1D7-5A4B-8608-65462143CBA6">
+<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry>Server session APIs</entry>
+<entry/>
+<entry>Header</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>  </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>RSocketServ establishes and reserves resources for the base communication
+session to the socket server. All other client interfaces require a valid
+session to be opened </p> </entry>
+</row>
+<row>
+
+<entry><p> <b>RSocketServ Subsession APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>End point for all socket-based communications. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Makes host name resolution queries. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Used to startup and manage active connections. It is possible to
+start a connection either implicitly, via the RSocket or RHostResolver APIs,
+or explicitly via the RConnection API. The RConnection creates a default subconnection. </p> <p> <xref href="GUID-5CFC075C-8F53-5E1B-A111-C6F4567DFD1E.dita">RConnection API Reference</xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Used to organise channels within a connection and manage Quality
+of Service. Multihoming-aware applications must use this API. Only valid in
+the context of an RConnection. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-7489739B-3608-3F9F-BB02-DE65D7AA53A2.dita"><apiname>RNetDatabase</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Interface for network database access. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-DDD32F28-BA89-3CA1-93B0-355CDD9CD92D.dita"><apiname>RServiceResolver</apiname></xref>  </p> </entry>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Provides an interface to resolve service names and ports. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>  </p> </entry>
+<entry/>
+<entry><p>ES_SOCK.H </p> </entry>
+<entry><p>Provides access to the Comms Management Plane, including Access
+Point queries. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+<section id="GUID-2214B4F9-FC01-4B86-B9CB-3A9A3769CE9C"><p>Bearer Mobility APIs </p> </section>
+<table id="GUID-DDBADF88-8197-5C9A-AC0E-42099252DC93">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Bearer mobility APIs</entry>
+<entry>Header</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-6CA83252-4D0C-3B72-83ED-B5152B666C83.dita"><apiname>CActiveCommsMobilityApiExt</apiname></xref>  </p> </entry>
+<entry><p>es_mobility_apiext.h </p> </entry>
+<entry><p>Comms Mobility API extension for application client running an Active
+Scheduler. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D5F43DFB-5143-3563-8655-16E245A9735F.dita"><apiname>RCommsMobilityApiExt</apiname></xref>  </p> </entry>
+<entry><p>es_mobility_apiext.h </p> </entry>
+<entry><p>Comms Mobility API extension for application client not running
+an Active Scheduler. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9A3979A9-F882-3053-B5B1-E0E125774271.dita"><apiname>MMobilityProtocolResp</apiname></xref>  </p> </entry>
+<entry><p>es_mobility_apiext.h </p> </entry>
+<entry><p>Interface to be implemented by the application client to support
+mobility API extension. See <xref href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita">Bearer
+Mobility Client</xref>. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+<section id="GUID-3CBE467D-11B7-40F7-B681-D40F4D48D18F"><p>How APIs related to the 3-Plane Comms Architecture. </p> <fig id="GUID-FC69453E-CA12-5CDB-A7E6-B2FA542BBE06">
+<title>           Figure 1 - How ESock APIs related to the 3-Plane Comms Architecture
+         </title>
+<image href="GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e114300_href.png" placement="inline"/>
+</fig> <p>The Sockets Client API also defines a number of support classes
+used in conjunction with the above interfaces. These encapsulate: </p> <ul>
+<li id="GUID-A1132B04-61D5-53E5-85A5-E7BBFA598B72"><p> <i>Addresses</i>: a
+base address class <xref href="GUID-66228064-B6E7-3CE9-8F5E-5DED4CD9A49B.dita"><apiname>TSockAddr</apiname></xref> is defined. Specific protocol
+address classes are derived from this. Each address can be identified by its
+Protocol Family, an integer which identifies protocol suites from others. </p> </li>
+<li id="GUID-BBD21B5C-20EE-5BC9-BEE4-00CB1565DE1E"><p> <i>Resolution queries</i>:
+queries made through <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref> objects are packaged
+in <xref href="GUID-C625E339-6726-3FB9-8F8A-F4DB0CAC15FF.dita"><apiname>TNameEntry</apiname></xref> descriptors. These are packages for <xref href="GUID-567CF5B5-464F-37B7-A91E-6A672C39BA44.dita"><apiname>TNameRecord</apiname></xref> objects
+that contain <xref href="GUID-66228064-B6E7-3CE9-8F5E-5DED4CD9A49B.dita"><apiname>TSockAddr</apiname></xref> objects to pass in addresses. </p> </li>
+<li id="GUID-EFB76FB6-00D2-5C01-BE59-B748CAAAC61E"><p> <i>Protocol information</i>:
+a comprehensive description of a protocol’s capabilities and properties can
+be dynamically obtained through the <xref href="GUID-0FB20F20-67EE-3948-B9F6-E1D679AC3D0F.dita"><apiname>TProtocolDesc</apiname></xref> class.
+Capabilities are identified by constants. </p> </li>
+<li id="GUID-4BD6B3AA-4711-55BE-8F34-88B28EC2657F"><p> <i>Endian issues</i>: <xref href="GUID-8183BE9B-6118-3472-A271-8409751CA5EF.dita"><apiname>BigEndian</apiname></xref>, <xref href="GUID-55FDB45E-2759-3192-AEE2-D600B232682B.dita"><apiname>LittleEndian</apiname></xref>,
+and <xref href="GUID-A934C24D-0E90-3D33-B4FC-654FB9004CFC.dita"><apiname>ByteOrder</apiname></xref> can be used to order integers to and from
+network order. </p> </li>
+</ul> </section>
+<section id="GUID-7803B89A-6ABF-529C-A0B8-CA06BA410F3B"><title>RSubConnection
+Events</title> <p> <b>CSubConGenEventDataClientJoined</b>, <b>CSubConGenEventDataClientLeft</b>  </p> <p>These
+two events derive from <xref href="GUID-1C0CC85E-38A7-3E7A-9246-940DCCE44EB0.dita"><apiname>CSubConGenEventDataClientBase</apiname></xref>, which
+provides the functionality for both. The source and destination end points
+of the data client are presented with this event, along with the IAP ID of
+the connection on which it was created. </p> <p> <b>CSubConNotificationEvent</b>  </p> <p>Both
+generic and extension sub-connection events derive from this class. The rules
+for generic and extension events are the same as for parameter sets. That
+is, a generic event MUST be able to be understood by all technologies. </p> <p>The <codeph>IsGeneric()</codeph> method
+identifies whether the event is generic. </p> <p>The <codeph>GroupId()</codeph> method
+returns the UID of the factory that contains the event, and <codeph>Id()</codeph> returns
+the class type Id within that factory. These two pieces of information comprise
+the <xref href="GUID-FEE87408-3FAA-31BB-A0C2-4BDEB279D4BA.dita"><apiname>STypeId</apiname></xref> of the event. </p> <p> <b>CSubConGenEventParamsGranted</b>  </p> <p>Notification
+of this event occurs after a request to <codeph>SetParameters()</codeph> has
+been made and negotiation with the network has been completed. A notification
+will be received for each family contained in the parameter bundle that was
+negotiated successfully. This event presents a generic set and zero or more
+extension sets (providing they are supported by the underlying sub-connection
+provider technology) of the parameter family identified by the Id returned
+from <codeph>GetFamily()</codeph>. </p> <p> <b>CSubConGenEventParamsRejected</b>  </p> <p>Notification
+of this event occurs after a request to <codeph>SetParameters()</codeph> has
+been made and negotiation with the network has failed for some reason. It
+could be an error within the handset software/configuration, or that the network
+could not provide the acceptable (minimum) level of QoS. The reason for failure
+and the parameter family are presented by the accessor methods <codeph>Error()</codeph> and <codeph>FamilyId()</codeph>.
+Like the <xref href="GUID-AA6CFA1E-0B17-3603-9065-34D05322C0A5.dita"><apiname>CSubConGenEventParamsGranted</apiname></xref> event, a notification
+for <xref href="GUID-7103CFA3-2119-3356-9460-B26D88036FEB.dita"><apiname>CSubConGenEventParamsRejected</apiname></xref> is received for each
+family in the parameter bundle that could not be negotiated successfully. </p> <p> <b>CSubConGenEventParamsChanged</b>  </p> <p>This
+event occurs when the properties of a parameter family has been renegotiated
+due to some event on the network. It is not sent in response to a request
+to change the properties. The change could be the result of an error or just
+that the level of QoS has improved/worsened. If a new set of parameters are
+available they’ll be presented as with the <xref href="GUID-AA6CFA1E-0B17-3603-9065-34D05322C0A5.dita"><apiname>CSubConGenEventParamsGranted</apiname></xref> event.
+The error status is presented via the <codeph>Error()</codeph> method. </p> <p> <b>CSubConGenEventSubConDown</b>  </p> <p>This
+event occurs when the underlying sub-connection has been lost. This could
+be due to request for it to be closed, or some error on the network. The error
+status is presented via the <codeph>Error()</codeph> method. </p> </section>
+<section id="GUID-7F057E16-0E56-5989-8647-7DAFF6E343D3"><title>RSubConnection
+QoS Parameters</title> <p> <b>CSubConQosGenericParamSet</b>  </p> <table id="GUID-227CFC6C-C38B-516F-AB6D-C3C2D51EA4A3">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry> Parameter </entry>
+<entry> Description </entry>
+<entry>Directions</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Bandwidth </p> </entry>
+<entry><p>Bandwidth the client requires </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Maximum Burst Size </p> </entry>
+<entry><p>Maximum size of a burst of data the client can handle </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Average Packet Size </p> </entry>
+<entry><p>Average packet size required (e.g. codec use) </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Maximum Packet Size </p> </entry>
+<entry><p>Maximum packet size the client can handle </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Delay </p> </entry>
+<entry><p>Acceptable Delay/Latency </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Delay Variation </p> </entry>
+<entry><p>Acceptable variation in delay (also known as jitter) </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Priority </p> </entry>
+<entry><p>Relative priority the client expects to give this channel compared
+to it’s other channels </p> </entry>
+<entry><p>Uplink / Downlink </p> </entry>
+</row>
+<row>
+<entry><p>Header mode </p> </entry>
+<entry><p>Specify whether the header size should be calculated by the QoS
+module or specified by the client. Default is to let the QoS module calculate
+it. </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p>Name </p> </entry>
+<entry><p>Identity of a “well known” set of QoS Parameters. </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>If an extension parameter set is added to the family that contains
+conceptually identical parameters to those in the generic set, it is recommended
+that you set both instances (generic and extension) of those parameters. </p> <p> <b>CSubConQosIPLinkR99ParamSet</b> / <b>CSubConQosR99ParamSet</b>  </p> <p>Getter and setter methods are provided for each parameter. </p> <p> <b>Note: </b> The
+constants used for it are <xref href="GUID-04E17A74-BFAB-3DB7-998B-5BCB8A5FB4CC.dita"><apiname>KSubConIPParamsUid</apiname></xref> and <xref href="GUID-41202CC9-3547-3404-AF6C-678A36BAE7D9.dita"><apiname>KSubConQosIPLinkR99ParamsType</apiname></xref>. </p> <p>The
+following parameter sets are available in Symbian platform. </p> <p> <b>CSubConQosR5ParamSet</b>  </p> <p>It
+inherits from the release 4/99 set <codeph>CSubConQosR99ParamSet</codeph>.
+Although it is possible to add both this parameter set and the R4/R99 one,
+it is not necessary and should not be done. </p> <p> <b>CSubConIMSExtParamSet</b>  </p> <p>This
+class contains the IM CN Signalling Indicator flag. </p> </section>
+
+<section id="GUID-8797CEEF-CC6D-4B72-9C85-1B0E0188AA58"><title>Test programs</title> <p>None </p> </section>
+
 </refbody></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,120 +1,120 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C" xml:lang="en"><title>Simultaneous
-Call Tutorial</title><shortdesc>This tutorial describes how to handle two call with the telephony
-API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-02566DCB-EFC4-4C74-A9FD-98417AC0AF9D"><p>This state diagram shows how to dial or answer one or two calls
-at a time. </p> <fig id="GUID-3603A3BF-5E3F-5945-B762-42411EF4B497">
-<title>              Simultaneous Call State Diagram            </title>
-<image href="GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e40142_href.png" placement="inline"/>
-</fig> <p>The boxes are states. The enumeration value in each box is the status
-of the voice line. <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
-line status</xref> describes these states and their meaning. The arrows show
-events that trigger a change of state. In these events, a word in <b>bold</b> indicates
-a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> method that you can call. </p> </context>
-<steps id="GUID-20511421-E888-5AA6-8C8A-8B03AF9532EA">
-<step id="GUID-207F7101-D6BC-54B3-A6FD-BE4FA0C44CE4"><cmd/>
-
-<substeps id="GUID-3C223BD1-B3D3-54BF-9CE2-4CF0397C26A6">
-<substep id="GUID-D333CDDA-E565-5009-BB68-364FDFAEE537"><cmd/>
-<info>check the <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
-line status</xref> for other calls </info>
-<info><ul>
-<li id="GUID-6E5035AE-AA11-5D46-A6FA-FCFF600C3964"><p>if the line is <i>Idle</i> (<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>)
-then no calls are in progress </p> </li>
-<li id="GUID-0B35A0D6-2BB1-54ED-A562-653031ECBE91"><p>if the line is <i>on
-hold</i> (<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7F347F6A-0B02-34BC-B082-3449EA63A148"><apiname>CTelephony::EStatusHold</apiname></xref>) then there is another
-call in progress, but it is on hold and you can still dial or answer a second
-call. Now go to point four below </p> </li>
-<li id="GUID-A939F59B-59A4-56CE-8949-5DE28588EE57"><p>if another call is active,
-you must wait until it completes before you can dial or receive a call. </p> </li>
-</ul> </info>
-</substep>
-<substep id="GUID-DEF3414F-6836-57E2-96A9-6E824696F29A"><cmd/>
-<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita"> Dial a call</xref>  </info>
-<info>while no calls are in progress, the line's status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
-To dial a call, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref>. If dialling
-was successful and the remote party answers the call then the line's status
-will become <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref>. </info>
-</substep>
-<substep id="GUID-1D1F2233-367B-57E7-B4A5-A36CD4C53C8C"><cmd/>
-<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Answer a call</xref>  </info>
-<info>while no calls are in progress, the line's status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
-When a remote party calls your phone, the voice line's status will change
-to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. </info>
-<info>When the status is <codeph>CTelephony::EStatusRinging</codeph>, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6D12DBA4-8902-3649-B144-47C91F16C4B3"><apiname>CTelephony::AnswerIncomingCall()</apiname></xref> to
-answer the call. The status will change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref> and
-the phone user can talk to the remote party. </info>
-</substep>
-<substep id="GUID-A96B6019-65E1-5D10-9639-0F2D65E8FAE1"><cmd/>
-<info> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate the
-call</xref> </info>
-</substep>
-<substep id="GUID-C60ABD8F-C3D0-51F6-9A31-C1A9CDA27B24"><cmd/>
-<info>detect <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Remote
-Termination</xref> of a call </info>
-</substep>
-<substep id="GUID-EF4ECB49-F37F-54C7-96C8-9105D54AEA43"><cmd/>
-<info> <xref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita">Hold a Call</xref>  </info>
-</substep>
-<substep id="GUID-BB6D7BB5-4BEF-5D4D-B763-2EA7E8828D0F"><cmd/>
-<info> <xref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita">Resume a call</xref>  </info>
-</substep>
-<substep id="GUID-75078A44-B3EE-50CB-A746-C79D78228398"><cmd/>
-<info> <xref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita">Send DTMF tones
-down the line</xref>  </info>
-</substep>
-<substep id="GUID-4B8ED301-CAA2-5629-A697-73E6E0122F5E"><cmd/>
-<info> <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Line and call
-information</xref>  </info>
-</substep>
-<substep id="GUID-8CB212E7-2B55-580E-9DD4-D5A1694B94FA"><cmd/>
-<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita#GUID-D6334249-E61D-55E7-9D0E-95231DC3621F/GUID-19AC29A6-3A34-57E8-A0BE-8242CF60BF86">Answer
-a second call</xref>  </info>
-<info>at some point, a remote party might try to ring your phone. It is answered
-in the same way as the first </info>
-<info>The voice line state will change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>.
-You can receive notification when this occurs; see <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Detect
-an incoming call</xref>. Before answering the second call, you must put the
-original call on hold. This is shown in the diagram above. </info>
-</substep>
-<substep id="GUID-E4B328AF-66D5-5E21-BF74-7057D58694E6"><cmd/>
-<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita#GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC/GUID-8A1C0CE1-31F8-5B78-9FDC-D2BF46B2924F">Dial
-a second call</xref>  </info>
-<info>you can also dial a second call in the same way as the first. Once again,
-you must put your original call on hold before dialling the second call </info>
-</substep>
-<substep id="GUID-B8904540-FBA9-5351-B298-11681E3C9AA9"><cmd/>
-<info>a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-86D48DF2-1AA1-337A-A270-6703FF29C958"><apiname>CTelephony::TCallId</apiname></xref> will be given to you when you
-successfully connect a second call. You will also have a <codeph>CTelephony::TCallId</codeph> from
-the first call. Now you will be the owner of two calls: at any one time, one
-will always be active and one will always be on hold. </info>
-<info>Now you can: </info>
-<info><ul>
-<li id="GUID-B1B06B62-725A-5ACC-92AB-169F8C83EF2F"><p> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate
-either call</xref>. If you terminate the <b>active</b> call then you will
-be left with a call on hold. If you terminate the <b>on-hold</b> call then
-you will be left with an active call. </p> </li>
-<li id="GUID-590E8FC0-A09F-5CE5-BAE4-958439E35968"><p> <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Detect
-remote party terminating either call</xref>. Once again, if the <b>active</b> call
-ends then you will be left with a call on hold and vice versa. </p> </li>
-<li id="GUID-1638D67F-33E6-50EA-A122-FA54D08E6213"><p> <xref href="GUID-E2D4973C-FE93-5DE7-B04E-19B7701621C3.dita">Swap
-held and active calls</xref>. </p> </li>
-</ul> </info>
-</substep>
-</substeps>
-</step>
-</steps>
-</taskbody><related-links>
-<link href="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita"><linktext>Single Call
-                Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C" xml:lang="en"><title>Simultaneous
+Call Tutorial</title><shortdesc>This tutorial describes how to handle two call with the telephony
+API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-02566DCB-EFC4-4C74-A9FD-98417AC0AF9D"><p>This state diagram shows how to dial or answer one or two calls
+at a time. </p> <fig id="GUID-3603A3BF-5E3F-5945-B762-42411EF4B497">
+<title>              Simultaneous Call State Diagram            </title>
+<image href="GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e34576_href.png" placement="inline"/>
+</fig> <p>The boxes are states. The enumeration value in each box is the status
+of the voice line. <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
+line status</xref> describes these states and their meaning. The arrows show
+events that trigger a change of state. In these events, a word in <b>bold</b> indicates
+a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> method that you can call. </p> </context>
+<steps id="GUID-20511421-E888-5AA6-8C8A-8B03AF9532EA">
+<step id="GUID-207F7101-D6BC-54B3-A6FD-BE4FA0C44CE4"><cmd/>
+
+<substeps id="GUID-3C223BD1-B3D3-54BF-9CE2-4CF0397C26A6">
+<substep id="GUID-D333CDDA-E565-5009-BB68-364FDFAEE537"><cmd/>
+<info>check the <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
+line status</xref> for other calls </info>
+<info><ul>
+<li id="GUID-6E5035AE-AA11-5D46-A6FA-FCFF600C3964"><p>if the line is <i>Idle</i> (<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>)
+then no calls are in progress </p> </li>
+<li id="GUID-0B35A0D6-2BB1-54ED-A562-653031ECBE91"><p>if the line is <i>on
+hold</i> (<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7F347F6A-0B02-34BC-B082-3449EA63A148"><apiname>CTelephony::EStatusHold</apiname></xref>) then there is another
+call in progress, but it is on hold and you can still dial or answer a second
+call. Now go to point four below </p> </li>
+<li id="GUID-A939F59B-59A4-56CE-8949-5DE28588EE57"><p>if another call is active,
+you must wait until it completes before you can dial or receive a call. </p> </li>
+</ul> </info>
+</substep>
+<substep id="GUID-DEF3414F-6836-57E2-96A9-6E824696F29A"><cmd/>
+<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita"> Dial a call</xref>  </info>
+<info>while no calls are in progress, the line's status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
+To dial a call, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref>. If dialling
+was successful and the remote party answers the call then the line's status
+will become <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref>. </info>
+</substep>
+<substep id="GUID-1D1F2233-367B-57E7-B4A5-A36CD4C53C8C"><cmd/>
+<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Answer a call</xref>  </info>
+<info>while no calls are in progress, the line's status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
+When a remote party calls your phone, the voice line's status will change
+to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. </info>
+<info>When the status is <codeph>CTelephony::EStatusRinging</codeph>, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6D12DBA4-8902-3649-B144-47C91F16C4B3"><apiname>CTelephony::AnswerIncomingCall()</apiname></xref> to
+answer the call. The status will change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref> and
+the phone user can talk to the remote party. </info>
+</substep>
+<substep id="GUID-A96B6019-65E1-5D10-9639-0F2D65E8FAE1"><cmd/>
+<info> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate the
+call</xref> </info>
+</substep>
+<substep id="GUID-C60ABD8F-C3D0-51F6-9A31-C1A9CDA27B24"><cmd/>
+<info>detect <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Remote
+Termination</xref> of a call </info>
+</substep>
+<substep id="GUID-EF4ECB49-F37F-54C7-96C8-9105D54AEA43"><cmd/>
+<info> <xref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita">Hold a Call</xref>  </info>
+</substep>
+<substep id="GUID-BB6D7BB5-4BEF-5D4D-B763-2EA7E8828D0F"><cmd/>
+<info> <xref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita">Resume a call</xref>  </info>
+</substep>
+<substep id="GUID-75078A44-B3EE-50CB-A746-C79D78228398"><cmd/>
+<info> <xref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita">Send DTMF tones
+down the line</xref>  </info>
+</substep>
+<substep id="GUID-4B8ED301-CAA2-5629-A697-73E6E0122F5E"><cmd/>
+<info> <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Line and call
+information</xref>  </info>
+</substep>
+<substep id="GUID-8CB212E7-2B55-580E-9DD4-D5A1694B94FA"><cmd/>
+<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita#GUID-D6334249-E61D-55E7-9D0E-95231DC3621F/GUID-19AC29A6-3A34-57E8-A0BE-8242CF60BF86">Answer
+a second call</xref>  </info>
+<info>at some point, a remote party might try to ring your phone. It is answered
+in the same way as the first </info>
+<info>The voice line state will change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>.
+You can receive notification when this occurs; see <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Detect
+an incoming call</xref>. Before answering the second call, you must put the
+original call on hold. This is shown in the diagram above. </info>
+</substep>
+<substep id="GUID-E4B328AF-66D5-5E21-BF74-7057D58694E6"><cmd/>
+<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita#GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC/GUID-8A1C0CE1-31F8-5B78-9FDC-D2BF46B2924F">Dial
+a second call</xref>  </info>
+<info>you can also dial a second call in the same way as the first. Once again,
+you must put your original call on hold before dialling the second call </info>
+</substep>
+<substep id="GUID-B8904540-FBA9-5351-B298-11681E3C9AA9"><cmd/>
+<info>a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-86D48DF2-1AA1-337A-A270-6703FF29C958"><apiname>CTelephony::TCallId</apiname></xref> will be given to you when you
+successfully connect a second call. You will also have a <codeph>CTelephony::TCallId</codeph> from
+the first call. Now you will be the owner of two calls: at any one time, one
+will always be active and one will always be on hold. </info>
+<info>Now you can: </info>
+<info><ul>
+<li id="GUID-B1B06B62-725A-5ACC-92AB-169F8C83EF2F"><p> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate
+either call</xref>. If you terminate the <b>active</b> call then you will
+be left with a call on hold. If you terminate the <b>on-hold</b> call then
+you will be left with an active call. </p> </li>
+<li id="GUID-590E8FC0-A09F-5CE5-BAE4-958439E35968"><p> <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Detect
+remote party terminating either call</xref>. Once again, if the <b>active</b> call
+ends then you will be left with a call on hold and vice versa. </p> </li>
+<li id="GUID-1638D67F-33E6-50EA-A122-FA54D08E6213"><p> <xref href="GUID-E2D4973C-FE93-5DE7-B04E-19B7701621C3.dita">Swap
+held and active calls</xref>. </p> </li>
+</ul> </info>
+</substep>
+</substeps>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita"><linktext>Single Call
+                Tutorial</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e3434_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e4709_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1376F42B-1B1E-431E-8E60-4FDBAD34EA15.ditamap	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,7136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2008, v.4002-->
+<!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN"
+ "bookmap.dtd">
+<bookmap id="GUID-1376F42B-1B1E-431E-8E60-4FDBAD34EA15">
+<booktitle><mainbooktitle>Symbian Developer Library for Application
+Developers</mainbooktitle>
+<booktitlealt>Symbian Developer Library for Application Developers</booktitlealt>
+</booktitle>
+<frontmatter id="GUID-0C8DB681-B258-41CA-B05C-F99A638D7E34">
+<topicref href="GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB.dita"
+id="GUID-A1B89EC0-534F-4FEF-B0D1-94EFC1510FDA" print="no" toc="no"
+type="cover"></topicref>
+<notices href="GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D.dita"
+id="GUID-47874786-9E80-43BF-B62E-829D79E8D3E4"></notices>
+</frontmatter>
+<chapter href="GUID-00113601-193D-5214-9DFB-1C67456B7039.dita"
+id="GUID-55E75BAA-C082-4567-89F3-EC7C9C27851A">
+<topicref href="GUID-A24491E4-867F-4006-9798-07281553EA51.dita"
+id="GUID-90F54E87-EDE2-4EC5-915B-2123857BF83E"></topicref>
+<topicref href="GUID-2DC89F9D-30E8-5260-8850-53E4152EE3CF.dita"
+id="GUID-03988776-D184-4A09-BC8B-9946C3874380"></topicref>
+<topicref href="GUID-BF990E15-8B41-5C34-8CE0-04660A475043.dita"
+id="GUID-BF9EAAE4-B4EA-41AF-A029-F6E39473823B">
+<topicref href="GUID-5F822B8B-3440-5AA3-998E-B15E929F7A70.dita"
+id="GUID-833FB279-04D5-42D9-B936-3555907AB515"></topicref>
+<topicref href="GUID-6FA036F6-F4C7-50CA-B08F-7D5F8B7FB6B5.dita"
+id="GUID-D469D893-B087-4124-A62D-6513E21E0BA5"></topicref>
+</topicref>
+<topicref href="GUID-F18823F8-288A-4163-985E-6E22CC2CFD60.dita"
+id="GUID-DAD064B7-B412-4887-ADF9-01F61816F6B6"></topicref>
+</chapter>
+<chapter href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita"
+id="GUID-81BFA723-D773-44C5-AFD3-6FD7C8A3B78F">
+<topicref href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita"
+id="GUID-F1B62A11-207A-4D99-98F6-6D8C8CA8D573"></topicref>
+<topicref href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita"
+id="GUID-B8DCC2A3-A9E6-46C6-A69C-FED8BE99DD3F"></topicref>
+<topicref href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita"
+id="GUID-36A90676-D414-4B66-8141-1FCA3C5897CE"></topicref>
+</chapter>
+<chapter href="GUID-EFEBDE65-293C-40AC-B57D-363158E77DA0.dita"
+id="GUID-4078AAF9-9E1D-4425-9697-3A0F1493E842"></chapter>
+<chapter href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita"
+id="GUID-D1929C8F-75DC-457C-B684-ECD70D76D7F0">
+<topicref href="GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita"
+id="GUID-BC20A326-DCE1-41C3-A9DA-C792CB63925F">
+<topicref href="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita"
+id="GUID-27267635-B1B0-42CF-BE44-E4EE5095FB7B"></topicref>
+<topicref href="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita"
+id="GUID-4F81AA84-0FD5-44C6-A57C-F039B4765F01"></topicref>
+<topicref href="GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita"
+id="GUID-7BC7BEA4-B1B6-4675-94ED-6A7345115D5E"></topicref>
+<topicref href="GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita"
+id="GUID-7B72E898-8322-4BAC-8EC3-5478ECC239DB"></topicref>
+<topicref href="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita"
+id="GUID-1676A159-3ACF-4842-B9E7-309FE034C32E"></topicref>
+<topicref href="GUID-2131E679-779D-427D-BD41-47D9949A8749.dita"
+id="GUID-E3DD1591-B217-4CDC-AAE1-032C5B12F40E">
+<topicref href="GUID-D7E279EE-05F5-4E82-AF25-1E10FF50FABA.dita"
+id="GUID-90FF09BE-DB9D-4898-9926-BE9F09EB8B2F"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-CFC21A23-0299-4420-BB60-584D10C8913A.dita"
+id="GUID-3513DAF4-E4D6-4363-A2B8-1860D95BFB4E"></topicref>
+<topicref href="GUID-E7A53792-5ABC-460C-87EA-36E8C6989A2C.dita"
+id="GUID-D096684B-25C8-4641-B869-3500A53897DE">
+<topicref href="GUID-1F7B0EB9-50E9-4C11-B620-18054596F5AD.dita"
+id="GUID-826994BA-37E4-4C2E-AFB1-6AAE4A318E8C"></topicref>
+<topicref href="GUID-85D006FA-EDCB-4BB4-8FD9-91C658B80DE7.dita"
+id="GUID-2DAA2042-0B69-4623-87FD-C1CB5E856202"></topicref>
+<topicref href="GUID-4D92E302-3145-4453-AFA1-F5C5BDF933F9.dita"
+id="GUID-625EB42F-0FD1-449D-9BF1-C069A982D5C5"></topicref>
+</topicref>
+</chapter>
+<chapter href="GUID-AFAD9FAE-D09B-4778-8981-47A8073BC044.dita"
+id="GUID-50125E2C-3375-4610-9B4C-FB3351493F33">
+<topicref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita"
+id="GUID-56EB59EA-0711-4112-8860-D041BF02B7E5"></topicref>
+<topicref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita"
+id="GUID-1081AD19-4ABF-4EC1-A4D8-1AFDE793EA30"></topicref>
+</chapter>
+<chapter href="GUID-35D7EEFC-B2E4-5444-8875-2A24790E08C2.dita"
+id="GUID-1658EF0B-62F9-4024-B129-623340940759">
+<topicref href="GUID-9BADA8E9-15AA-5867-BF14-DB8C4D9B40A6.dita"
+id="GUID-C05FE964-699A-43FF-A6A0-357CF7A5DBF1"></topicref>
+<topicref href="GUID-79E8BE3D-9EF7-5275-A245-3CF689E58DE9.dita"
+id="GUID-6E1B107A-1BE7-4A37-8E1D-BB1BACDAA36F"></topicref>
+<topicref href="GUID-2458916B-55B2-5E08-A825-4EBDB3503E67.dita"
+id="GUID-6ABFCD37-BF7D-43BA-B996-24651D905CB6"></topicref>
+<topicref href="GUID-8675AC01-E2D8-425C-899F-12BE99345AA9.dita"
+id="GUID-B94070EF-8121-4209-A0B3-B88741FC1EB1"></topicref>
+<topicref href="GUID-348E8B54-88D9-5D66-AD11-09131EC387F9.dita"
+id="GUID-8832066D-1BE3-4871-9785-81787A87B41D"></topicref>
+<topicref href="GUID-1FFE4ED5-7B2E-58A0-9D08-A096F53F37AB.dita"
+id="GUID-F4A4FCB2-F003-48D2-BD47-CDCD9A756A20"></topicref>
+<topicref href="GUID-9E0DCB19-5775-5E23-B758-163D747A71C9.dita"
+id="GUID-5ACFC35E-8E10-411A-A334-EDC07B29999F"></topicref>
+<topicref href="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita"
+id="GUID-5292CB9A-FAFA-498B-9FC1-848FB77D4984"></topicref>
+<topicref href="GUID-497930CE-4D61-50EE-A63B-3656158EE29C.dita"
+id="GUID-1CA6A124-EDE6-4F18-86FB-3BAE48709D28"></topicref>
+<topicref href="GUID-12FF05BE-F06E-58F0-909D-05CB6F7FA03E.dita"
+id="GUID-AD2D939C-C1E3-4C3D-9354-233B3BBF4E02"></topicref>
+<topicref href="GUID-D5FD665E-333B-50FF-A46F-6B22C0877285.dita"
+id="GUID-5E831A4E-BD5E-4B58-9305-B2E9F3462F7B"></topicref>
+<topicref href="GUID-5BDE6462-E6CA-5738-A587-C7D875574789.dita"
+id="GUID-79B35CA3-03EA-4116-A3E8-1F053BF83544"></topicref>
+<topicref href="GUID-93086866-F6E1-5715-A3BE-EEACF8A760DB.dita"
+id="GUID-AAA5A68D-699B-4424-9B34-39703900A8BB"></topicref>
+<topicref href="GUID-7767640D-5DD0-563B-8EE7-5C3EAEDBF859.dita"
+id="GUID-CEB04C37-032E-4C70-B66B-03D781FDCB01"></topicref>
+<topicref href="GUID-16A1C613-288D-471C-8551-51B61290E28F.dita"
+id="GUID-695E311D-ED7B-4A8B-9B18-B7826D887F52"></topicref>
+<topicref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita"
+id="GUID-8A1040BE-0C2F-4B34-A893-01B4FF7CCB36"></topicref>
+<topicref href="GUID-AC39AA12-4F39-58DB-BE67-C624C0A96DE2.dita"
+id="GUID-0C6B7782-1C84-4F47-9B7C-F638BE3B27FE">
+<topicref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita"
+id="GUID-A33BABF8-6A89-45BE-8F3C-AB391060A8FD"></topicref>
+<topicref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"
+id="GUID-2A04BCFF-1093-4CFC-9422-6051C5A1FACC"></topicref>
+<topicref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita"
+id="GUID-87CD6E1A-C3FE-4D9B-BE83-84109DB15A40"></topicref>
+<topicref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita"
+id="GUID-B4A7E4C7-8E82-4EB1-89EE-E14C0CDAC2A2"></topicref>
+<topicref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita"
+id="GUID-01158E5C-7FDC-427F-A1DB-6F60608D7463"></topicref>
+</topicref>
+</chapter>
+<chapter chunk="by-topic"
+href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita"
+id="GUID-AD2C37AD-CFB1-4D20-A6DA-FA90C59BF910">
+<topicref chunk="by-topic"
+href="GUID-39A995DC-F047-4B41-A60D-27063CE329BE.dita"
+id="GUID-C111BF5C-9798-4165-9AE2-ED691E282076">
+<topicref chunk="by-topic"
+href="GUID-98F104F6-8850-4417-907E-113F2166EBD9.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-CC8EA664-FF2E-40FB-BC1C-89FB1255A9C9.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8.dita"
+id="GUID-883ED085-582F-466C-9194-67555072CA74">
+<topicref chunk="by-topic"
+href="GUID-9058F379-C495-4B22-B270-FF6A80E450B8.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-EEC50FC0-46D5-4ED7-AD95-67430D5EC651.dita"
+id="GUID-3C1E8906-9BD1-4357-89D5-0E5CE55BB0EF">
+<topicref chunk="by-topic"
+href="GUID-50BE8F1A-513A-433C-B045-66658FC226D7.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-8255A186-C1AC-44DA-844C-1FEA029C73BC.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-B088B74A-9A6D-4C72-9069-391ECAD38514.dita"
+id="GUID-3B317F8F-2BA9-4F5B-898A-5F75C6745496">
+<topicref chunk="by-topic"
+href="GUID-C37790B3-967C-489C-8753-0434938CBE2B.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-21F92FAD-1EF1-4E36-9157-9214E7C6BB01.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8.dita"></topicref>
+</topicref>
+<topicref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita"
+id="GUID-6F0C610C-0FA8-4948-A860-9B255F580CFE">
+<topicref chunk="by-topic"
+href="GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E.dita"
+id="GUID-17191DEB-DF4E-450B-B76F-1000A1286FDE">
+<topicref chunk="by-topic"
+href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-ACDED56F-38FE-491D-B019-BE2C53A75D28.dita"></topicref>
+</topicref>
+<topicref href="GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B.dita"
+id="GUID-41D63393-50AF-472B-A06B-70560EBF79CC"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-97FFA8D2-4515-448B-8107-61151F252048.dita"
+id="GUID-79315258-C162-4810-A9DF-0E69C95BC5A6">
+<topicref chunk="by-topic"
+href="GUID-E9E5556C-101B-48F2-B9AA-9DBEF5D85D5E.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-A1ED2377-E196-423F-A5A2-1889C1CC3E05.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-30647807-A0D2-4D96-975A-BF1800749977.dita"
+id="GUID-0198770C-6DA5-483D-AD8B-E1860508DE1A"></topicref>
+</chapter>
+<chapter href="GUID-32E29020-1956-461A-B79A-1492E06049E7.dita"
+id="GUID-B18E4A4F-A384-4FCB-9036-AEBE883C6D08">
+<topicgroup id="GUID-FA6278C1-2D98-4371-9CCA-0CE87E9AEF3D">
+<topicref href="GUID-97CCEF05-8F3D-5802-A33A-ED349084D524.dita"
+id="GUID-C3603501-AC56-4CB5-AFC2-A836B7BCF436">
+<topicref href="GUID-AF30D941-BFD8-5260-9588-C5DA6983F558.dita"
+id="GUID-1E678D32-14C3-4401-BAFD-AEBD3198DB9B">
+<topicref href="GUID-A3449F37-89BB-5208-8FD5-F4DF73F7E71A.dita"
+id="GUID-C33C04C3-5267-4A01-B74F-4BC29CE7B396"></topicref>
+<topicref href="GUID-57F38146-1DA3-5657-ADF4-76DF740363C5.dita"
+id="GUID-3FCC8008-F234-4106-BF64-1B4AF3CC9897"></topicref>
+<topicref href="GUID-4E195F2A-78AE-5664-A115-AD65BF457AB1.dita"
+id="GUID-0D6CE78E-77EF-468E-B9D1-3572AF6E445E"></topicref>
+<topicref href="GUID-B386CA7A-F527-5584-9455-371E623DCF76.dita"
+id="GUID-635FF1F0-5E09-4A2D-9170-EA253319AAE3"></topicref>
+</topicref>
+<topicref href="GUID-FC2F5CDE-D140-5893-894D-D9B93AF6BDC2.dita"
+id="GUID-46FA3254-AF9A-4F2B-B0DD-D28797D4870F">
+<topicref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita"
+id="GUID-40D8572D-628B-40A4-AA78-6049455DD308"></topicref>
+<topicref
+href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita"
+id="GUID-0A8EC89E-4BE0-4308-99C0-04D0319FF969"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-BDE88969-3302-4D5C-A25D-71BBFC79A84C">
+<topicref href="GUID-0AF47934-0A16-51A2-9254-992D7C6B322B.dita"
+id="GUID-24DE1D17-ADA8-476D-B8DF-A4E4B24E5979">
+<topicref href="GUID-772F9CC3-71B3-53F0-9307-91D35B133810.dita"
+id="GUID-41082D6A-3209-4599-88A1-D592D5AB6104"></topicref>
+<topicref href="GUID-8E160B29-18C4-574B-9259-9A8E958CDA91.dita"
+id="GUID-2F2F1950-9B76-4D53-A98A-8F4A84D311E3">
+<topicref href="GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121.dita"
+id="GUID-AF879555-E8B9-43A5-A6DB-871AFE40421E"></topicref>
+<topicref href="GUID-3170F958-137A-5DD5-A6DD-D5474ABECD22.dita"
+id="GUID-F0C23CF8-2937-4BFC-907B-C2D9F66CFAE1">
+<topicref href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita"
+id="GUID-5D0B564B-D5FE-4473-AB6F-B80406504ED0"></topicref>
+<topicref href="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita"
+id="GUID-849A2013-651B-459B-8FE8-F55043567006">
+<topicref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita"
+id="GUID-F7FBBEC0-132C-41B3-A1D0-31CDBEAF5E0E"></topicref>
+<topicref href="GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita"
+id="GUID-11510F90-951F-4E59-B7A4-C5C2A3E6A78D"></topicref>
+<topicref href="GUID-6CC45734-E497-40A7-AB23-37A24EBAF339.dita"
+id="GUID-8E7CCD02-19C0-4578-9709-F02E686C21BC"></topicref>
+</topicref>
+<topicref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita"
+id="GUID-BFD78898-6221-4DEC-80CD-448DB14247F6"></topicref>
+</topicref>
+<topicref href="GUID-9903E2AB-9D96-5005-8DC5-26653F93616C.dita"
+id="GUID-9811D801-8907-4890-B9BF-82B1CB3D2EFF">
+<topicref href="GUID-0554452F-856D-51A1-A1A5-C44EEFF7A3D4.dita"
+id="GUID-B5176D49-C256-448C-B5B6-16A358DEBB25"></topicref>
+<topicref href="GUID-1C7F6DBA-7113-5542-AEF1-179FDD980443.dita"
+id="GUID-4C16575A-88F0-4A0E-A970-6D5E20E88820">
+<topicref href="GUID-F370FDA8-6DB7-531A-A057-B773F1729C46.dita"
+id="GUID-95C0AF64-F25A-4534-B2F1-4885446A390E"></topicref>
+<topicref href="GUID-6A8A4910-681B-5E5A-AEA9-FD8BDBD84EDD.dita"
+id="GUID-A667C098-8967-44AB-916A-EAF78747C0F4"></topicref>
+<topicref href="GUID-ABD45929-DEA1-5500-B64A-B32F623B6A06.dita"
+id="GUID-FCFEA46E-A502-4C62-B175-58356B0DA027"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-ED2D5BEA-AD2A-51CE-8CBC-8B5E33DD6356.dita"
+id="GUID-4674A27D-0EF8-4DC1-9116-65B6D9439EED">
+<topicref href="GUID-AFE0238A-D6A4-5D07-BB99-85E8CF97BD26.dita"
+id="GUID-EFD66C5F-DE62-4F35-B049-A3E3B592F564"></topicref>
+<topicref href="GUID-C55D1D74-B764-5DD1-8C43-5A5138578EAC.dita"
+id="GUID-D0713AD8-837E-497B-93E6-713BC7FD88E2">
+<topicref href="GUID-AFBD4ED6-9588-531C-8EDF-566DB1D03088.dita"
+id="GUID-B4B01609-6A22-454F-B86B-43A841860FD4"></topicref>
+<topicref href="GUID-9DCD2076-0F73-5BB7-85BF-580567E0AB53.dita"
+id="GUID-13E91532-F961-43F6-9CC6-E5993F22A6D4">
+<topicref href="GUID-7FD72D9F-D65E-5248-A296-F2196F1DF5CF.dita"
+id="GUID-313C97D6-DE31-47E6-B291-9513AA329CB1"></topicref>
+</topicref>
+<topicref href="GUID-F8A26275-883A-5299-9C37-9DDCC2F62108.dita"
+id="GUID-2F051410-F5E3-4BAB-976E-DEBB40C22FB2"></topicref>
+<topicref href="GUID-A6CF0AD2-BDE4-548C-A165-581FCD019D7C.dita"
+id="GUID-6200CF28-7921-442C-BFB0-AE19E88A04A6"></topicref>
+<topicref href="GUID-7A7254E3-A03A-5B38-B2B5-FFEEE70F5E93.dita"
+id="GUID-55FF9BBA-D842-4C82-80E8-80AD19D03CA6"></topicref>
+</topicref>
+<topicref href="GUID-A4C26317-9F76-587E-A4B6-D94892ACF11B.dita"
+id="GUID-EEFABE24-736B-4E6D-9683-E00078686F00">
+<topicref href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita"
+id="GUID-B6280F64-0638-46E6-B158-94B356AB0AB2"></topicref>
+<topicref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita"
+id="GUID-C467F6DF-4A11-4146-88AD-CCC8AD6D487B"></topicref>
+</topicref>
+<topicref href="GUID-100F41B4-67BE-5978-99DA-C9B6DE8760F7.dita"
+id="GUID-C638ACC1-163F-4E29-8BCB-003D067B07DF">
+<topicref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita"
+id="GUID-026A8C70-3146-4E44-A81B-E23CE9A8C132"></topicref>
+<topicref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita"
+id="GUID-381C764D-6F7F-48CC-B51B-EB6BD4FC6EAE"></topicref>
+<topicref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita"
+id="GUID-CEA4E6C6-2706-4EFB-BFBF-611F284A6A89"></topicref>
+<topicref href="GUID-42CF6D55-CAD2-5049-A1B6-35479404C273.dita"
+id="GUID-B9185120-D948-4350-ACAF-B3FAA054BF5F"></topicref>
+<topicref href="GUID-6D6C54E2-66DA-5626-A75D-5597469D5BE0.dita"
+id="GUID-215EB8C4-FD95-44A2-8C95-69E1E0ECF1A5">
+<topicref href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita"
+id="GUID-B91BBB20-2FBE-40DD-91C4-A21F9418F6B8">
+<topicref href="GUID-0BE71FC3-4759-50FC-A74F-C3DD42C9FCED.dita"
+id="GUID-49AEA3D8-331E-443C-9513-FAFD21ADD9FA"></topicref>
+<topicref href="GUID-31C133DE-F245-5992-9A41-20A99291E72A.dita"
+id="GUID-D6246DED-05A0-4D65-A0CE-053A9FA8F648"></topicref>
+<topicref href="GUID-D9D20EE0-AC86-512A-91C0-EA0ACF3912A7.dita"
+id="GUID-B277E423-AFC6-46E5-9734-A6F49E888E0E"></topicref>
+<topicref href="GUID-7664A4D4-C24B-5225-9E0B-7A021DA6A3AF.dita"
+id="GUID-8580DEB5-4A9C-45FF-9419-7A89548965C5"></topicref>
+<topicref href="GUID-F87A1381-3E71-5723-B8B6-3F4E0FF368CE.dita"
+id="GUID-D68B2F04-83CC-4C52-A410-810B38E2F4AB"></topicref>
+<topicref href="GUID-72C2E618-C33D-5770-908D-E1A99E5D1B1D.dita"
+id="GUID-8812ABE5-27EC-436C-93EC-7111E3E083A5">
+<topicref href="GUID-130D7E96-2AEF-559B-B5F1-D4B6754519C9.dita"
+id="GUID-89DE95A4-B41D-46CC-8716-597EA4D058B6"></topicref>
+<topicref href="GUID-C32D14AD-CC99-59D6-BA22-321F705418AF.dita"
+id="GUID-7A8D1CB1-5EF5-43D5-99DD-B5A40A029E35">
+<topicref href="GUID-D201143F-2B35-5633-8572-C5CAE556FC75.dita"
+id="GUID-10D3AEDD-83F9-4370-AC8B-537EDB9A0993"></topicref>
+<topicref href="GUID-71909C6D-297C-50A9-99BB-FEBC67389954.dita"
+id="GUID-D27C3FA1-37A3-4169-904D-88ABC8A17977"></topicref>
+<topicref href="GUID-C5F9AAD3-5183-57E5-A33B-032DE3C063AE.dita"
+id="GUID-77E06530-4436-497F-8DE1-BAC9B2B1C191"></topicref>
+</topicref>
+<topicref href="GUID-FF82B80D-18CA-5333-83EB-3AB94F696016.dita"
+id="GUID-548B33EA-9C55-44AD-A742-73496AE02885"></topicref>
+<topicref href="GUID-FF39192E-9C93-593F-8F47-DB18DB876F6F.dita"
+id="GUID-44C9B7A7-72B5-4794-8177-9748E15E2690">
+<topicref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita"
+id="GUID-2E12F4A6-5219-43DA-9EDE-2C39F1CB454C"></topicref>
+<topicref href="GUID-9D5F3B5E-37FB-5156-808B-F92519412A7F.dita"
+id="GUID-4D8504BA-BB28-4E24-AECA-0202DDDE0177"></topicref>
+</topicref>
+<topicref href="GUID-255653B8-DACF-552C-8F33-7F6552824F4F.dita"
+id="GUID-78BBEE47-C08F-4848-9027-D51F5C96397D"></topicref>
+</topicref>
+<topicref href="GUID-DB220677-5998-529C-BE35-0D66F588E057.dita"
+id="GUID-DECB898C-F8E5-4C5F-A337-09C520F2A84D"></topicref>
+<topicref href="GUID-DA09248E-E299-596E-9860-B709F7C6529A.dita"
+id="GUID-E4ABFFE9-7481-465F-B8E2-7B436D27C64C"></topicref>
+<topicref href="GUID-6E385BCC-8AD8-5CCD-9378-86127443B407.dita"
+id="GUID-5D73D888-651C-49E8-B7D7-BF8B0EF7A8BE">
+<topicref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita"
+id="GUID-A0683A94-307A-4728-9C9B-6F13F8B0CA79"></topicref>
+<topicref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita"
+id="GUID-0C0A20EC-B43C-4D1C-B1B5-9E48B2BFAC92"></topicref>
+<topicref href="GUID-AF26E3D3-D0CD-4715-B9F6-FBB1BCF2DDE2.dita"
+id="GUID-D7283B51-1FE2-4196-9B45-F486434F61B2"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-2942D367-B3B9-43EA-AF24-867B2892817B">
+<topicref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita"
+id="GUID-1A3BED1A-9C38-4A32-8809-0B79E3D1C7E1">
+<topicref href="GUID-0F647342-E069-5444-9370-58520375543A.dita"
+id="GUID-46783D6E-CC98-49B8-8DEC-0E043A69A8D6">
+<topicref href="GUID-7C197DC1-43CA-5146-B81D-36B685A1D0C9.dita"
+id="GUID-9052F948-A78B-40DD-B01A-28432704271A">
+<topicref href="GUID-EA7C8C95-A4D5-5E90-B0B8-C35D8C7423F1.dita"
+id="GUID-F1754595-6E22-47E0-9CB7-6042686B4AA1">
+<topicref href="GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3.dita"
+id="GUID-7E2458FF-A67F-49F6-BB76-0D2EBE112AEB"></topicref>
+<topicref href="GUID-83676985-070A-5CE9-BF36-D7C56C5025F9.dita"
+id="GUID-DFD30B8A-8F7C-42AF-B656-0E96F1CF039C"></topicref>
+<topicref href="GUID-520F620F-03CE-5C4E-9783-745D2740F648.dita"
+id="GUID-292F19CA-A6BB-4DC0-AFCA-84A499A81200"></topicref>
+</topicref>
+<topicref href="GUID-844C335C-E8FD-5DF8-8E05-7DB1DF4C3360.dita"
+id="GUID-C5A94BF5-C1E8-49A1-BFFD-FEA89B391727">
+<topicref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita"
+id="GUID-09B2B894-943C-4D25-BA56-75F698929771"></topicref>
+<topicref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita"
+id="GUID-F2C939A2-9B17-4453-A676-F1033888414B"></topicref>
+<topicref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita"
+id="GUID-0CCB4A5C-A58E-4D02-9ACA-5A815A3A8C04"></topicref>
+<topicref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita"
+id="GUID-EE87B788-4589-4A08-93C5-D937E5C9A546"></topicref>
+<topicref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita"
+id="GUID-2794059E-2805-46F6-9435-C7094A82D8B1"></topicref>
+<topicref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita"
+id="GUID-3B1D7536-7C90-4BDD-A100-8D832E52EE01"></topicref>
+<topicref href="GUID-E2D4973C-FE93-5DE7-B04E-19B7701621C3.dita"
+id="GUID-95418C5D-D38B-4356-98C7-D19EB9E58442"></topicref>
+<topicref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita"
+id="GUID-A714822B-9A13-4B84-BA5F-3E4F3E665BBB"></topicref>
+</topicref>
+<topicref href="GUID-F4163874-3F97-506B-AC93-EA2321D3BEC1.dita"
+id="GUID-7284994B-E86E-47A3-A0B6-9D09956C915E">
+<topicref href="GUID-5E10D5B7-C407-51E0-8C16-466A8BC89106.dita"
+id="GUID-72FC5CE0-7E99-4B98-84D5-6C9A1BE8743F"></topicref>
+<topicref href="GUID-CC5A1C8D-55AA-5FAE-A446-4CBF949C9003.dita"
+id="GUID-E34E670E-27EF-4B6C-ADD3-449A446EE537"></topicref>
+<topicref href="GUID-99F36ADE-EBBF-5EE7-B4C9-A540D4CA1776.dita"
+id="GUID-C807678D-1E9D-4741-BEBB-23961434EEDE"></topicref>
+<topicref href="GUID-79CFCC01-7418-5ECA-AF65-1DCAD97AA7A6.dita"
+id="GUID-14928F12-35D9-42EF-AFB0-648CED4EE7EE"></topicref>
+<topicref href="GUID-511A0F2D-AD60-56C5-808C-8F8570C19C3A.dita"
+id="GUID-4DA1B01E-B491-4A3C-AEAE-7C7F60D39822"></topicref>
+<topicref href="GUID-FDD42A61-9FFE-53F5-A0B3-D8087270C7F6.dita"
+id="GUID-EA101F64-1E3E-4E91-B9FA-6717B6ED8397"></topicref>
+</topicref>
+<topicref href="GUID-5E95D090-582E-536A-AE93-8C5312618E76.dita"
+id="GUID-123B604E-3B77-4D4B-9A5C-B37B42B5E158">
+<topicref href="GUID-2DC4EAD5-98D3-5B17-AEBD-6ADE481CBD94.dita"
+id="GUID-73F3705B-F518-4AF7-8BCC-830647652BBD"></topicref>
+<topicref href="GUID-EE79D90C-CC71-5C2B-8715-A9764A48F40D.dita"
+id="GUID-BDB9F7B6-98FE-474C-B349-B2B8D0FC5C75"></topicref>
+<topicref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita"
+id="GUID-5B4A50EF-BE5B-4AE7-9330-4AFD0D7215FC"></topicref>
+</topicref>
+<topicref href="GUID-E9C896AE-62B4-54DC-9958-913D19D14DC6.dita"
+id="GUID-4E62536F-B064-4EE7-A93F-43B6F6720443">
+<topicref href="GUID-9EE405E2-2D58-525B-8C33-B1EAC0C5A71A.dita"
+id="GUID-CAFCD588-2FA4-46F1-B7C8-89C1E17CAF72"></topicref>
+<topicref href="GUID-AC5665B4-8E33-58A3-824B-6CC40E13160A.dita"
+id="GUID-DAD00974-2015-457E-A2B1-641483D12E4A"></topicref>
+<topicref href="GUID-7EA8047F-BD30-5100-9284-9A684500BFE6.dita"
+id="GUID-A7E41325-BE8C-4ABC-863D-A85A832DA9B1"></topicref>
+<topicref href="GUID-C48890DD-BBFD-53FA-95D6-7F39D9C3C263.dita"
+id="GUID-483830E5-96C1-4632-A9AD-A03D894CAD37"></topicref>
+</topicref>
+<topicref href="GUID-87CD8C58-F6B9-5D6B-9D7B-862979DE3B6F.dita"
+id="GUID-DC988A19-461F-4356-9B41-54447BD957F8"></topicref>
+<topicref href="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita"
+id="GUID-EC75459C-AA1C-4137-89AE-101F80D349B5"></topicref>
+<topicref href="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita"
+id="GUID-1D233EB1-D06B-45D2-87DC-EECD4C23C060"></topicref>
+<topicref href="GUID-8BE1690A-F331-5AD0-BC22-3122CA4C4E01.dita"
+id="GUID-E07C6EF9-212D-4B75-86C5-75822AABD855">
+<topicref href="GUID-2332AFD7-30F2-5B4D-BBA9-3EA36D8F5E81.dita"
+id="GUID-8B4FDB23-7F45-4E30-848E-04F1FBF2B5EB"></topicref>
+<topicref href="GUID-8FC2BA94-2374-5BFE-B4CF-624A6B0056BC.dita"
+id="GUID-8C0221D4-EB01-4F4F-B082-86B94F617741"></topicref>
+<topicref href="GUID-4B885E13-AC1E-5208-9F07-E6219E214626.dita"
+id="GUID-88C62B47-110B-419E-9D44-20FAFBEDD594"></topicref>
+<topicref href="GUID-B66323BB-7AC0-5303-BC3A-DD577D28CF16.dita"
+id="GUID-9B982E68-948A-48EB-A54D-549958F9D10A"></topicref>
+</topicref>
+<topicref href="GUID-D5AA9C67-CCE3-53BE-A50E-FAE73699E68F.dita"
+id="GUID-FC62D7C5-0664-4825-AC08-9349E44C36F9">
+<topicref href="GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita"
+id="GUID-5F240874-7C1E-42E8-8509-FCA4AA1DE1C1"></topicref>
+</topicref>
+<topicref href="GUID-97EC9722-242B-5DF4-99E9-B63AC4BA97DA.dita"
+id="GUID-550DA947-6602-47B7-BAC0-8804E63259A3"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-C5D6DF24-8C4C-4B98-BB48-9878CE046566">
+<topicref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita"
+id="GUID-BC813F90-5B2D-4502-A28E-35AEFB968102">
+<topicref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita"
+id="GUID-BD0D5FA5-D097-4BE3-9371-50EEE74F5A2A">
+<topicref chunk="by-topic"
+href="GUID-0F8D0399-58CD-4EB6-82DF-75D6BE5B0A84.dita"
+id="GUID-94A3D457-C6AD-4F13-ACBB-1431337D91EA">
+<topicref chunk="by-topic"
+href="GUID-5F749184-C804-41FC-BA81-038783BDC967.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita"
+id="GUID-E1A1892A-16EB-42F0-A560-784CDB3FE80B">
+<topicref chunk="by-topic"
+href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita"
+id="GUID-56553305-D267-4192-B71B-8BFD1B5798AF">
+<topicref chunk="by-topic"
+href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">
+<topicref chunk="by-topic"
+href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">
+<topicref chunk="by-topic"
+href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">
+<topicref chunk="by-topic"
+href="GUID-542550FA-F9F1-46D6-8182-6E7FAA013572.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-1614B24F-5DB2-43AA-9A18-723BD61B8B4C.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-95DD1440-01C9-4997-8DD4-FFD33D7DEAFF.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-3729C075-4958-4874-9DD7-02A68D17E043.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-5A292526-5B71-4076-9DBD-1385CD1FFD37.dita">
+<topicref chunk="by-topic"
+href="GUID-B4218FA6-5BE0-4000-BC85-3078892EDADA.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-51CD4B23-F4C1-4CD2-8CDB-6335365CE44B.dita">
+<topicref chunk="by-topic"
+href="GUID-6A2160F0-6062-4E77-ABA3-B829AF9689FA.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-6457E7C4-1203-47B6-8AD3-A6998798943B.dita"></topicref>
+</topicref>
+<topicref href="GUID-26A4F760-C85A-4030-8910-15D239323E9D.dita"
+id="GUID-776F31AE-683A-4087-BDD3-A52026799845">
+<topicref href="GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82.dita"
+id="GUID-74F2A5DA-D2EF-4E0A-9288-ED63B2FDA711"></topicref>
+<topicref href="GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3.dita"
+id="GUID-4C3339B7-015C-4A06-9F7C-58EC1C9399D4"></topicref>
+<topicref href="GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6.dita"
+id="GUID-4A3AD4B6-597D-499D-8DE3-1C0D4331BFAC"></topicref>
+<topicref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita"
+id="GUID-EAFB3082-334C-465E-8D0C-9E6103BF9E0A"></topicref>
+<topicref href="GUID-DB2E0959-C24E-4E6E-BC6D-064B91BDE662.dita"
+id="GUID-47C3C741-851D-4975-A26A-9972615DFA01"></topicref>
+</topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-0FB60233-993A-4BF2-9E8C-E03AD092359B.dita"
+id="GUID-11E4E9FD-A9FB-4990-9B0A-F22032C1E3CE">
+<topicref chunk="by-topic"
+href="GUID-2B7F7484-3A44-4A96-9B5D-79DF8A09115A.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-EC49B54F-7724-433B-BD7F-201DE3B7DAA6.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-CBB00F6A-CBA7-4872-B0A1-A86A863725F5.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-23A60DE7-B72D-41BD-9F1E-882D31A7E3C7.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-2C74E932-B1CA-434B-AF96-66D52D689620.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-94C64AC2-5680-4DED-8CCB-55CD5C25F1E5.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-BF1AAA0D-DF2F-4E1D-A0D2-F419BD32F97A.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-9F90A2F0-9C76-4871-A766-D1AE0FC42C08.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-411ACFE6-0324-4330-ABCD-97A925759A3C.dita"
+id="GUID-C74314E4-F7BA-4C34-A687-6D7820659986">
+<topicref chunk="by-topic"
+href="GUID-6AD1DA34-EA3D-4EC9-A667-390507B4D6CB.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-C99BA704-4E9F-482C-942F-1B4D7F385BD8.dita"></topicref>
+</topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita"
+id="GUID-1953408B-E725-4FFD-B359-EEAF52205744">
+<topicref chunk="by-topic"
+href="GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita">
+<topicref chunk="by-topic"
+href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">
+<topicref chunk="by-topic"
+href="GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-40CA47C0-76F9-42FE-AF9D-0B1BF42ACCB7.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-F3262DF6-39CA-4E96-AD0E-C1FFDE9B0A61.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-E50EC0B4-A434-4C30-A1A9-1A976185FF28.dita"
+id="GUID-32CF182A-1767-4E89-84E8-B79220E20CE2">
+<topicref chunk="by-topic"
+href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">
+<topicref chunk="by-topic"
+href="GUID-215935B4-8AA8-4A87-B70F-E43ADB70B1D2.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-A29FB4CA-2161-4407-BA69-48FBF5D7543F.dita">
+<topicref chunk="by-topic"
+href="GUID-BE871265-147B-45F3-8772-A4E091223EDB.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-97486385-88F7-4AF1-B880-D9A8AA4D7094.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-FC63E2D1-697C-4890-9B70-0DC0AAE7597C.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">
+<topicref chunk="by-topic"
+href="GUID-89B12BB4-877E-4157-9BD1-81AD02EE3543.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-BCC6F8D1-9F6C-41C4-A2FB-AB7528B03F8D.dita">
+<topicref chunk="by-topic"
+href="GUID-A3BCC33F-D11B-4F98-BCC3-9A06381A02E7.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-DFDDF0C5-0E66-4394-A746-7FE35EEA4E6A.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-95C188D0-EDB2-46D0-ACDE-19AAD524C9F4.dita">
+<topicref chunk="by-topic"
+href="GUID-1A26BD9E-5B8E-4E6D-904E-B8354B14E111.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-57CA8A13-05C6-4AFE-9804-E2EA2453143A.dita"></topicref>
+</topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">
+<topicref chunk="by-topic"
+href="GUID-546FD573-8136-4C58-878B-C2F643B333AA.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-B2737D23-936F-4968-99DE-7FAB28968AA9.dita">
+<topicref chunk="by-topic"
+href="GUID-5578DF32-65ED-47F9-8A10-7538206AC473.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-2BD20EF8-B6B8-4A1B-8B0D-3326B839FD37.dita"></topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-57A73F9C-5E72-4445-BF2C-9D44A3EC88B5.dita">
+<topicref chunk="by-topic"
+href="GUID-D78B510E-3F5C-4B5D-B53F-917F2DAF6C6A.dita"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref chunk="by-topic"
+href="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita"
+id="GUID-59F3891D-466E-4224-BC4E-65AD0AF02F02">
+<topicref chunk="by-topic"
+href="GUID-457CC544-EC3B-4863-A5C4-DC7046614929.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-9EA7B72B-8394-48B8-A0CC-4BB34CBDB01C.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-88917386-AD48-4C76-A1C7-46F0B1E85A18.dita"></topicref>
+</topicref>
+<topicref
+href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita"
+id="GUID-17BA7CC3-219D-4E67-AE0B-689E358F6DB0"></topicref>
+</topicref>
+<topicref href="GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4.dita"
+id="GUID-4F52806A-95D7-4B29-8271-60041B71F679">
+<topicref href="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D.dita"
+id="GUID-9271CA28-D03B-44C0-ACD5-2C9A0AAC95D9">
+<topicref href="GUID-829761B6-ECF7-5E15-A475-AEE357687067.dita"
+id="GUID-84969540-5926-4010-B869-7A1D4A2C390D"></topicref>
+<topicref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9.dita"
+id="GUID-4512C63A-0BEA-4A92-B44A-3DB4E1CED787"></topicref>
+</topicref>
+<topicref href="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A.dita"
+id="GUID-99CEF00A-7268-469D-8682-3C20473F5BB3">
+<topicref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita"
+id="GUID-B9212FD1-B243-45C7-957F-4881324F9F8F"></topicref>
+</topicref>
+<topicref href="GUID-AD5F35EC-4459-589F-9C46-94901562E05F.dita"
+id="GUID-9E5731F5-B32B-411B-A186-4A57FE4DBF27">
+<topicref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891.dita"
+id="GUID-766E5E86-0C6F-4501-B563-ABFC0AD8F951"></topicref>
+<topicref href="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29.dita"
+id="GUID-996815CF-19DE-4059-B3CA-C44FF78C6BE5"></topicref>
+</topicref>
+<topicref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita"
+id="GUID-778481A2-C9A6-4955-8CE2-819410B93863">
+<topicref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita"
+id="GUID-A1C0A2B7-D338-4F87-9DF3-51B54BD6947B"></topicref>
+<topicref href="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A.dita"
+id="GUID-8E5AB09B-DA68-421A-838C-0B0EABB55F37"></topicref>
+<topicref href="GUID-651C2913-2AB9-5873-B296-5C4233967F21.dita"
+id="GUID-A452C46F-F527-4980-A399-40B296F319A6"></topicref>
+<topicref href="GUID-2F42DC8F-E489-5EA4-8413-784D34965497.dita"
+id="GUID-AE31B650-12E8-4B6D-8D94-84D54F45796B"></topicref>
+<topicref href="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389.dita"
+id="GUID-705A1562-F6B2-49B5-B6CA-9DBF6E459BA6">
+<topicref href="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81.dita"
+id="GUID-F1DDA119-FC4C-457D-8816-EB7D83400D23"></topicref>
+<topicref
+href="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-10-1-6-1-1-4-1-6-1-7-1-4-1.dita"
+id="GUID-A75E33CE-6B2D-4DE9-92BD-2C6C067B7B04"></topicref>
+<topicref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita"
+id="GUID-4A7A9099-EE50-4C59-8DEF-0F9125A2F3E8"></topicref>
+<topicref href="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91.dita"
+id="GUID-7EC0A5AA-0F6D-4F3E-B0CA-DB0C0A99CEC8"></topicref>
+<topicref href="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40.dita"
+id="GUID-E82787BA-02D9-4A10-9446-306C1E492D8A"></topicref>
+<topicref href="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C.dita"
+id="GUID-BD9C80C9-6329-49B9-9620-E0B8315376EE"></topicref>
+<topicref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86.dita"
+id="GUID-5EA31AC5-3D8A-42B3-B004-CCC4B593018D"></topicref>
+<topicref href="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0.dita"
+id="GUID-731B3EDD-653E-48A2-AB53-988217D8BA91"></topicref>
+<topicref href="GUID-0387B02E-9B81-5E61-A33E-D644251424A2.dita"
+id="GUID-2901AC56-32E8-4F95-9263-911EA861829E"></topicref>
+</topicref>
+<topicref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita"
+id="GUID-DBC2CEED-1597-4FD8-AE36-F0311431F850">
+<topicref href="GUID-971C9B81-1D6F-59E7-9416-385A0787D642.dita"
+id="GUID-F6403BDE-AD7B-4ADA-B48D-2912094620E8"></topicref>
+<topicref href="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC.dita"
+id="GUID-BBD57FF6-05DF-4F55-BCC6-A0AED1335D50"></topicref>
+</topicref>
+<topicref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita"
+id="GUID-17755416-A4D7-4224-B716-2F5A0A5F9798"></topicref>
+<topicref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053.dita"
+id="GUID-26735D58-2ECF-4C34-8713-8C6F8BE7EBB8"></topicref>
+<topicref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita"
+id="GUID-0D73A3EB-D1E6-4520-9E32-C9425C4FD999"></topicref>
+</topicref>
+<topicref href="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492.dita"
+id="GUID-F88A1F5E-13BD-4C66-BB42-41E54E91701F">
+<topicref href="GUID-C9823942-CE52-53E3-B183-3B1F6509749F.dita"
+id="GUID-AF5C56FA-A544-4232-9A7F-20D393882B6B"></topicref>
+<topicref href="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978.dita"
+id="GUID-C8334F4C-D0B7-4239-A9F1-876B07DF2E5D"></topicref>
+<topicref href="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F.dita"
+id="GUID-031EDCDD-6712-4347-9726-1EF1B52559D5"></topicref>
+<topicref href="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7.dita"
+id="GUID-4026FCBF-5FBE-47CE-94B5-77AA2219E4C8"></topicref>
+<topicref href="GUID-9620407B-0560-5D95-A862-5AE406C48983.dita"
+id="GUID-9EA8E5BA-55BC-457B-B716-6385D74211F8"></topicref>
+</topicref>
+<topicref href="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4.dita"
+id="GUID-B5B5C5A2-AD38-43F2-A8BC-932B888DF590">
+<topicref href="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita"
+id="GUID-FA8FE4DA-C7E9-404C-8857-CA4B703737D4"></topicref>
+<topicref href="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F.dita"
+id="GUID-BF75AF5C-7363-41C8-87C5-3C4E90297446">
+<topicref href="GUID-A626197A-3FA7-588C-B649-E33CCA990B99.dita"
+id="GUID-69B74B42-D7A1-4A19-8C45-A2E18920AC69"></topicref>
+<topicref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0.dita"
+id="GUID-DBEF9D49-21B0-4202-ABCC-2DF6C4875700"></topicref>
+<topicref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC.dita"
+id="GUID-2FBECC29-8577-4414-B7DE-971282C34E7D"></topicref>
+<topicref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96.dita"
+id="GUID-511F52AD-2A0A-42A7-A4A6-C0B2052F041E"></topicref>
+<topicref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0.dita"
+id="GUID-C3D07865-7379-4F9D-97F3-777847FEB445"></topicref>
+<topicref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4.dita"
+id="GUID-A3E1A020-623C-43EA-A81A-8A161642B58A"></topicref>
+<topicref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3.dita"
+id="GUID-43254797-6A35-4C65-8E39-8732DAC5B929"></topicref>
+<topicref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107.dita"
+id="GUID-6641BA97-852A-440C-97FF-6CBB22A5BC67"></topicref>
+<topicref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686.dita"
+id="GUID-0B4B94AA-F48F-4A16-AF33-A632ABE00882"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C459D462-772A-58FC-8C46-B7559436C12C.dita"
+id="GUID-D467E357-8D23-4D58-9A2D-12DAB30DBE9F">
+<topicref href="GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123.dita"
+id="GUID-CB68CB10-92AC-45CF-8C72-8C385879F4B8"></topicref>
+<topicref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita"
+id="GUID-0FBE8424-C60E-46B1-965D-4DEA0E73AFF0"></topicref>
+<topicref href="GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7.dita"
+id="GUID-8CB7378E-B559-4907-9269-7FDEC5478957"></topicref>
+<topicref href="GUID-8C134C72-0552-59FE-AA19-F72250A8A947.dita"
+id="GUID-E6ABA953-CAE5-4D26-9A78-F696626377CA"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita"
+id="GUID-0645E265-26F8-4F3F-BAD8-3548D543BCB1" locktitle="yes">
+<topicref href="GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE.dita"
+id="GUID-06C840B1-0BF6-4329-80EF-C27B6FE25098"></topicref>
+<topicref href="GUID-308A3F78-3DD6-443A-B021-B8E2C2DFEE4D.dita"
+id="GUID-E0ECE054-35BA-4CF2-B856-FA88E2C9A8C5"></topicref>
+<topicref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita"
+id="GUID-CB60436C-B504-49A0-8D74-9FBAB76AD220"></topicref>
+<topicref href="GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita"
+id="GUID-833DFB7C-760F-4DF5-A8DE-6EB737E51483"></topicref>
+<topicgroup id="GUID-D71314CE-C6FF-49FC-9421-7D8D87E5760D">
+<topicref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita"
+id="GUID-B4D0D08F-9BA3-4458-845C-B728258510F8">
+<topicref href="GUID-788BC010-536D-4089-9B12-4A43A9C1C82B.dita"
+id="GUID-AE67C353-0750-45F5-B5A8-5B4ED171BBA8"></topicref>
+<topicref href="GUID-226EDECC-BE24-412C-945D-7EABE566282A.dita"
+id="GUID-0A339538-5016-4251-9264-F9B7D629ABB3"></topicref>
+<topicref href="GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1.dita"
+id="GUID-5629E63F-B2A7-4315-BBF1-3AA4F7709155"></topicref>
+<topicref href="GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06.dita"
+id="GUID-3B2CF6FA-5550-4330-AD9D-B83C3F997BF3"></topicref>
+<topicref href="GUID-07A42662-87A1-4537-89B9-F87DFC8481E8.dita"
+id="GUID-30805B71-4F66-4DAB-B34C-DAFA3CC8C042"></topicref>
+<topicref href="GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E.dita"
+id="GUID-3446D8FF-B3AD-4F28-85E7-30D37EA9A033"></topicref>
+<topicref href="GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita"
+id="GUID-1EEFAFFD-9070-48CB-A447-0329512B362F"></topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-36BB2E12-6C7A-4AE1-87D0-65D618B9F455">
+<topicref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita"
+id="GUID-172A4FC6-BA1B-49FF-8C85-AD122E7E0363">
+<topicref href="GUID-16D0854D-55EF-4E22-B7D2-72603699BC59.dita"
+id="GUID-16B83CF3-5552-4647-A33B-D2FF884CFB8A"></topicref>
+<topicref href="GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576.dita"
+id="GUID-596D84E2-50D9-43B2-96F7-831C813F94BC"></topicref>
+<topicref href="GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005.dita"
+id="GUID-1E1A38A8-C8FA-4902-8AEE-DAEC081EF8D9">
+<topicref href="GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C.dita"
+id="GUID-61909988-501E-4190-A274-0F439F082DE3"></topicref>
+</topicref>
+<topicref href="GUID-FE922294-380D-447D-AC46-A46EFAD79168.dita"
+id="GUID-C2BCE4C9-DA2D-4697-B528-53A3FFC93D98"></topicref>
+<topicref href="GUID-32756B46-DAB7-44FA-B710-33EC36E1409F.dita"
+id="GUID-71A1C677-7818-4095-946D-41A734133FC1"></topicref>
+<topicref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita"
+id="GUID-BD3F5CDA-D923-428B-B461-A68B5BB05B5D">
+<topicref href="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita"
+id="GUID-5B23E520-6530-4B2A-AF10-BF657E70E296"></topicref>
+<topicref href="GUID-10CF321F-3298-4527-BFF5-0351085C7C8C.dita"
+id="GUID-AF2F6783-8ABE-4DFE-9E66-21E12FFA3280"></topicref>
+<topicref href="GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF.dita"
+id="GUID-45D280F2-D9D3-49C9-835F-637FD1049B96"></topicref>
+<topicref href="GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254.dita"
+id="GUID-391DF6EC-A933-4732-B80C-CD41641238E3"></topicref>
+<topicref href="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita"
+id="GUID-DFB9F0B8-9535-474E-AD14-897B0E28F7FE"></topicref>
+</topicref>
+<topicref href="GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita"
+id="GUID-AEFEE7A9-73A5-40BF-8714-D62320CD0492">
+<topicref href="GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7.dita"
+id="GUID-9F0EF4D5-3B30-45F7-9917-932A39BC8501"></topicref>
+<topicref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita"
+id="GUID-522057DE-FF09-4EC6-8F82-C4AF6AF1ACB8">
+<topicref href="GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C.dita"
+id="GUID-D8EB490E-2229-474C-9D24-B76588006219"></topicref>
+<topicref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita"
+id="GUID-D9C936F1-BAC3-4668-911F-AEAD92046111"></topicref>
+<topicref href="GUID-03DE8DB5-BF37-4E02-BFB7-D14BD8B3E1BA.dita"
+id="GUID-5F5E5016-DDB6-4216-A1D2-1730D09E2479"></topicref>
+</topicref>
+<topicref href="GUID-16950F22-F5DE-4D52-8414-544105BA3200.dita"
+id="GUID-2CA49DA0-B351-4684-8880-9CEDA94A421F"></topicref>
+<topicref href="GUID-DAF35D49-9630-4186-A350-E8483693D50D.dita"
+id="GUID-DFB464F9-A599-46EC-B3CD-1FA8E8F1CDAB"></topicref>
+<topicref href="GUID-85058500-87C5-457A-9567-ECAB29708759.dita"
+id="GUID-5771566A-65F1-4F3C-8907-CD8D7F9EA8CA"></topicref>
+<topicref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita"
+id="GUID-E9AD7953-9DA3-4D7C-BCDE-8AAD1DFEDE0B"></topicref>
+<topicref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita"
+id="GUID-475B158A-E559-4D8C-9957-8CE7E01C14E5"></topicref>
+<topicref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita"
+id="GUID-B6412B20-E203-4115-870B-271762193D8C"></topicref>
+<topicref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita"
+id="GUID-2EFB966C-197C-4A30-AAB7-F77D71BFC9A8"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita"
+id="GUID-421C1703-271D-446C-84DB-77FC9FF03ADA"></topicref>
+<topicgroup id="GUID-BBAC6448-000A-4BD2-8007-0CBC80F9DE10">
+<topicref href="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita"
+id="GUID-8C4A05AF-0DEE-470D-B132-E2505814409F">
+<topicref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"
+id="GUID-F5DEABF3-476D-42B4-9969-C556DDFF0407"></topicref>
+<topicref href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"
+id="GUID-861472CE-FE37-4652-86AB-EF241174B5AD"></topicref>
+<topicref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"
+id="GUID-81ECBBAB-E8B0-4992-ACAA-26BDFC171331"></topicref>
+<topicref href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"
+id="GUID-3B5D7E5A-A9D0-4741-B299-B0568E2BB8DB"></topicref>
+<topicref href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"
+id="GUID-5BBD8736-A573-481C-BC94-EF99E253A9C4"></topicref>
+<topicref href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"
+id="GUID-D1861B04-CF5C-44FC-BC86-8BC5FA0E95C6"></topicref>
+<topicref href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"
+id="GUID-C0296E10-73FB-4E09-9BF5-88BD6E0A044B"></topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-9C04C2C1-5CFC-4AD1-84B8-730CF5D4BC18">
+<topicref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita"
+id="GUID-C684A768-B8E7-48F5-806C-6FF6515A9D1A">
+<topicref href="GUID-567718E7-0267-4641-A9E3-538D893362D2.dita"
+id="GUID-96C09D34-DCF9-46A2-908A-5369BAA976D8"></topicref>
+<topicref href="GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita"
+id="GUID-A80983DC-E20F-44B1-8BFE-743971E7F829"></topicref>
+<topicref href="GUID-B3760707-2810-4CD9-82C7-6A40DE638D36.dita"
+id="GUID-D6BA564F-6022-4526-9F5D-8BD17C2BB4CF"></topicref>
+<topicref href="GUID-6690CEFF-AE08-4881-AF52-70C097EB2871.dita"
+id="GUID-D458CF13-0BE3-4C00-974A-1E2DA7FE6030"></topicref>
+<topicref href="GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C.dita"
+id="GUID-070A0551-590C-4194-BD34-09D137FC5152"></topicref>
+<topicref href="GUID-03708BB2-68CF-4EFB-BE2F-C92DAD59F7F2.dita"
+id="GUID-341F9146-34AB-4A52-AA28-87639BFF6E53"></topicref>
+<topicref chunk="by-topic"
+href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita"
+id="GUID-9CDD8556-713A-45CE-A11D-E404C80AEB60">
+<topicref chunk="by-topic"
+href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-48363190-6FFB-4230-84B4-2E521EA51365.dita"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9.dita"
+id="GUID-D3E3D564-B5D6-4410-AA15-3586AB2802A7"></topicref>
+<topicref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita"
+id="GUID-1F66A730-EC3C-47E8-9681-996E5D3F7967">
+<topicref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita"
+id="GUID-C9C01396-7DAB-4C6B-8F6E-3A585592D032"></topicref>
+<topicref href="GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF.dita"
+id="GUID-F2F974E3-B8FF-4EAA-8C26-F865D18F6A05"></topicref>
+<topicgroup id="GUID-846615EC-1D15-41D3-9056-40791434BDD5">
+<topicref href="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita"
+id="GUID-B3C9FFF8-27ED-4992-AA90-603DBC2A77C8">
+<topicref href="GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita"
+id="GUID-763BD4B0-7A92-4FD7-91EE-88B6949CB9B2"></topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita"
+id="GUID-14467F13-0456-4E72-A62C-57A33300FB27"></topicref>
+<topicref href="GUID-0A5BF022-48C0-4B3D-8368-A9C9F1D9F550.dita"
+id="GUID-14277826-E90F-413A-8F9C-17B86E97B9F5"></topicref>
+<topicref href="GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43.dita"
+id="GUID-29EF1E37-11A7-4B64-9025-F57F79929CA5"></topicref>
+<topicref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita"
+id="GUID-F651EEDA-BB6F-4ABA-A95A-161755A99756"></topicref>
+</topicref>
+<topicgroup id="GUID-72FE6A60-C9D2-4768-94B1-1B957900C837">
+<topicref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita"
+id="GUID-8C0AD1D6-3F21-4671-AF6E-DCF0A227C641">
+<topicref href="GUID-48482288-B60B-477A-8E28-132F7CBE2C94.dita"
+id="GUID-9EF22563-D5C5-46E2-B7EE-6070A0A38C12"></topicref>
+<topicref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita"
+id="GUID-07639ADC-29D2-4DF8-81C2-5EAF0072830B"></topicref>
+<topicref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita"
+id="GUID-4F83B28A-F17F-4FEC-8997-00D3D3A6762B"></topicref>
+<topicref href="GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A.dita"
+id="GUID-F796238B-A1B3-49D4-B97F-B1FC59936C29"></topicref>
+<topicref href="GUID-F77CC49A-904D-486B-8D16-972525EC34D5.dita"
+id="GUID-745651C4-895E-4041-B016-29C62F7FC962">
+<topicref href="GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E.dita"
+id="GUID-608D3C00-CBF8-422A-8551-CF2674CFD003"></topicref>
+<topicref href="GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE.dita"
+id="GUID-C9BB81E3-BEC5-4E86-91B9-1914F18E6EBE"></topicref>
+</topicref>
+<topicref href="GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF.dita"
+id="GUID-A68E01B1-5422-4C80-B5EB-250165F2F3D9"></topicref>
+<topicref href="GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0.dita"
+id="GUID-C6E8419E-D326-4CC9-8DD3-82AA16BFD0BA"></topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-48A2AF36-F39E-45C6-BC89-7DB40716E345.dita"
+id="GUID-5D80A6DF-932C-4C86-B9C7-C7CA429C79F2">
+<topicref href="GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22.dita"
+id="GUID-F2DA0F84-D3DE-4D93-B550-718063C900FF"></topicref>
+<topicref href="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita"
+id="GUID-CE177AEE-D1E6-4A38-9416-7829ED4FA50C"></topicref>
+<topicref href="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita"
+id="GUID-9B11F7AD-1204-4BBE-A8FE-6A14573CFFED"></topicref>
+<topicref href="GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747.dita"
+id="GUID-9BEAB37C-A7BD-4D96-A06D-3CC9F775829D"></topicref>
+</topicref>
+<topicgroup id="GUID-98C9FDFD-665C-4F6A-B244-028C7A7956AE">
+<topicref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita"
+id="GUID-A35C266C-9FC8-4DAB-BCEB-79BC1268A381">
+<topicref href="GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3.dita"
+id="GUID-2409B778-F711-4A5D-9002-202A067D9AF0"></topicref>
+<topicref href="GUID-02200D23-E8ED-432A-9D71-694A4558BD20.dita"
+id="GUID-B797D47B-204B-49CC-9620-33726015CE97"></topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-12B5BFEB-FAF8-43EE-AC40-0C8AD424164E">
+<topicref href="GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita"
+id="GUID-0EAE462F-B555-4F77-A30C-DA16F92AE426">
+<topicref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita"
+id="GUID-41F19B3E-61B5-4624-A38C-7CE618BE9C1D"></topicref>
+<topicref href="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita"
+id="GUID-1BD2791B-2CBF-4821-A9E6-6DB31025CAB4"></topicref>
+<topicref href="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita"
+id="GUID-05A11EBB-367B-4D18-9B0E-01DE15DA5FCE"></topicref>
+<topicref href="GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59.dita"
+id="GUID-62E12F57-12E6-444A-B5E5-5AD5169993A5"></topicref>
+<topicref href="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita"
+id="GUID-6DAD9BAD-26BE-49B6-B016-DE37A217C411"></topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita"
+id="GUID-9626B0E3-593C-4D20-AECB-2995F2880F41"></topicref>
+<topicref href="GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C.dita"
+id="GUID-304FCDB0-2B30-4019-86F6-B89A056DEABE"></topicref>
+<topicref href="GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8.dita"
+id="GUID-FC34AB9A-F1D8-4B80-9E6B-AFDEC7D70758"></topicref>
+<topicgroup id="GUID-B436BDB7-E088-439B-813E-8E3AA9544F29">
+<topicref href="GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579.dita"
+id="GUID-658B728F-32CA-4EE6-9922-4E35F1B060A0">
+<topicref href="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita"
+id="GUID-B1D1FC7B-6CEF-4127-B47C-796A9BA53C82"></topicref>
+<topicref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita"
+id="GUID-1A54421D-3A02-41B6-BADA-8A38D2F50180">
+<topicref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita"
+id="GUID-B0792733-0F71-4D70-868D-10C360BCF8A1"></topicref>
+<topicref href="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita"
+id="GUID-A55D5346-D056-43A7-9C62-C278A1705441"></topicref>
+<topicref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita"
+id="GUID-CDCFFF50-2720-4F5A-81B9-E3136F6A5DC6"></topicref>
+<topicref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita"
+id="GUID-873423FC-8F18-4B1C-8486-526B95D2E7AE"></topicref>
+<topicref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita"
+id="GUID-FFD24FEA-AB50-4FE5-957A-FDC386664D92"></topicref>
+<topicref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita"
+id="GUID-128DD6A2-904F-4CB9-9013-E80912ABAC29"></topicref>
+</topicref>
+<topicref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita"
+id="GUID-13C0D06D-BF18-4204-85C8-74B9C611A160">
+<topicref href="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita"
+id="GUID-B9EC7C23-3213-4645-AFC3-D6DE3F48E8D8"></topicref>
+<topicref chunk="by-topic"
+href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita"
+id="GUID-52C5A3B7-E19E-4614-A7F9-A7F9FD110007">
+<topicref chunk="by-topic"
+href="GUID-A3AF142B-F9DF-43FD-9D3F-788A74D0C575.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-5B26AB8E-E20A-4C15-B4F8-812ED9A4A96C.dita"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita"
+id="GUID-0DA7C5CB-8A2A-438C-AFD8-A17E3E250D20"></topicref>
+<topicref href="GUID-8E2FA5CC-C582-4321-88BB-C5CE3AA047FE.dita"
+id="GUID-284CC357-1D44-4A95-B56D-EEDDEE6576DC"></topicref>
+<topicref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita"
+id="GUID-DEB0BB06-C624-401C-A26D-C5DA25941C7F"></topicref>
+<topicref href="GUID-6ED556AF-080F-4CA8-9A95-F7B6DA34B0CC.dita"
+id="GUID-F4B8DF9D-A00A-454A-93EE-E5C1D637597A"></topicref>
+<topicref href="GUID-F25C17AC-BA88-4965-BAE8-AEF0E2EA66EC.dita"
+id="GUID-ED77C7DB-7766-485B-9D4E-575E24017A47"></topicref>
+<topicref href="GUID-AD932CA2-80F3-4478-BFC4-73E501F4FF9F.dita"
+id="GUID-69F4BD79-27C5-4EC6-B99C-A2F1F9273472"></topicref>
+</topicref>
+</topicgroup>
+</topicref>
+<topichead id="GUID-8C40E993-C9A0-423D-979D-7BB11CE091C1"
+navtitle="Touch UI support">
+<topicmeta><linktext>Touch UI support</linktext>
+<shortdesc>From S60 5th Edition, all GUI applications must work with
+devices that have touch screens. This section describes how to use
+UI components with touch support, and how applications can receive
+touch related events.</shortdesc>
+</topicmeta>
+<topicref href="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita"
+id="GUID-7D06954D-AAE5-45FD-BE63-7B8A364CF0A2">
+<topicref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita"
+id="GUID-4601D5D2-B205-45CF-99AB-501D7F09A798"></topicref>
+<topicref href="GUID-F3CB6985-A9AA-4E01-B157-5AB8DDC7951B.dita"
+id="GUID-4A89B6DF-D377-4E56-9402-43BC0776725C"></topicref>
+<topicgroup id="GUID-B167D7BB-09AE-43BB-B5E4-9E69C29A5C87">
+<topicref href="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita"
+id="GUID-414FF4D2-1B0B-4139-9A4D-D8C18F2BC5C5">
+<topicgroup id="GUID-C03FD94B-E295-4E6F-83CB-8A25FE02CB6A">
+<topicref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita"
+id="GUID-24014BF3-7F9F-44B0-A7AD-F00B94F92209">
+<topicref href="GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita"
+id="GUID-A59D1756-DEB3-4C33-B911-8F2037D93A35"></topicref>
+<topicref href="GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3.dita"
+id="GUID-509CB8CE-99A9-4504-BF4B-4BA227614CD2"></topicref>
+</topicref>
+<topicref href="GUID-056165A7-E8A1-4868-8051-9EC58C5A3342.dita"
+id="GUID-8C348325-A36B-4528-9F42-F5055A1354D5">
+<topicref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita"
+id="GUID-1AEFA8E7-00E6-46D8-8DAE-25C14322FA65"></topicref>
+<topicref href="GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF.dita"
+id="GUID-E5880497-8B22-4911-9785-BEA88B409D20"></topicref>
+<topicref href="GUID-7BFEEDF7-3DB8-42FF-9D7A-F98E536F7686.dita"
+id="GUID-67C0A024-F61A-485B-836A-57ACF3F29B90"></topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita"
+id="GUID-9A7A1902-8166-4728-A853-943939E00191"></topicref>
+<topicref href="GUID-28A0E021-C702-4AAF-9C64-B60B09B40176.dita"
+id="GUID-D74751BC-FCE5-41F8-AB07-EFF1AF0017D8"></topicref>
+<topicref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita"
+id="GUID-C4E06E1C-CE04-404B-BE45-508220AABF89"></topicref>
+<topicref href="GUID-E764B4A3-4CEE-461D-B555-C8969A62130A.dita"
+id="GUID-7330A508-64E9-4D32-8064-9F39E1735406"></topicref>
+<topicref href="GUID-0504B740-FB22-4399-B16D-BE6030B512B3.dita"
+id="GUID-62C83F41-2461-4A47-98A2-169F559504F4"></topicref>
+<topicref href="GUID-295341D9-A5FA-4F25-B681-C5B3264165AF.dita"
+id="GUID-454DD631-4714-41DD-A7F1-A0C2B0B76A2C"></topicref>
+<topicref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita"
+id="GUID-D46A49B3-5159-4BBA-B3C3-C80C6D1402E3"></topicref>
+<topicref href="GUID-D9F25AAD-18A1-43AC-B59B-82396DAA68F9.dita"
+id="GUID-9A5A6FF4-6165-430F-8C44-E36C83879EFD"></topicref>
+<topicref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita"
+id="GUID-897D769C-0B4F-46F3-9D89-F1F6AB126A51"></topicref>
+</topicref>
+</topicgroup>
+<topicref href="GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita"
+id="GUID-46A6B7D9-EAC8-4907-BDA0-73CEFFF516F6"></topicref>
+<topicref href="GUID-A97250DA-A80C-4971-97DA-1C3E6520A44E.dita"
+id="GUID-76B1C555-D60E-4527-B3F9-72EC9AF6E33C"></topicref>
+</topicref>
+<topicref href="GUID-0C19D3F1-CF60-4760-8A77-242E14647738.dita"
+id="GUID-44887D83-0E8E-4571-9912-FEDEFCA4C585" locktitle="yes">
+</topicref>
+<topicref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita"
+id="GUID-59FDBD5A-EA97-4500-8A57-5A6C21E9C4B1"></topicref>
+<topichead id="GUID-FA9679A1-6FD7-4FB6-883A-D5719388A2B6" locktitle="yes"
+navtitle="API specifications">
+<topicmeta><linktext>API specifications</linktext>
+<shortdesc>This section provides information on using the touch UI
+component and tactile feedback APIs.</shortdesc>
+</topicmeta>
+<topicgroup id="GUID-236394C8-1EAD-4805-A29F-A052932FA1EC">
+<topicref href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita"
+id="GUID-E78F9E64-E602-4324-999A-4DA8A18FC592">
+<topicref href="GUID-1E446762-AFE2-4198-8CD7-8C4466392543.dita"
+id="GUID-1D1DB3C4-675F-454F-9392-9F00C3C5EBEF"></topicref>
+<topicref href="GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita"
+id="GUID-B80586DC-617E-4A66-AEC1-AB24A8FC937D">
+<topicref href="GUID-462239D1-4B40-4342-92DA-32AB0AF0D2F2.dita"
+id="GUID-BB10B807-6C3D-4EFF-A986-C8AA5559F456"></topicref>
+<topicref href="GUID-17F3FFF4-00B8-492F-95BD-11AFF02CAAB2.dita"
+id="GUID-4CD7427B-9C30-4572-9D76-0C9C5BD11AF8"></topicref>
+<topicref href="GUID-F2397B5A-0700-46D5-8E07-CBB9F769DA01.dita"
+id="GUID-64A25E9E-28BF-446D-AA2E-D4DB14615FB9"></topicref>
+<topicref href="GUID-A84EDC63-0A74-4B93-BED2-7BE273A6DDB3.dita"
+id="GUID-BF885943-153A-4EFE-9BD5-E80DB911B5E6"></topicref>
+<topicref href="GUID-E332F544-0759-4C10-B29C-14AA5EAEBD49.dita"
+id="GUID-CF522C47-06CD-44F1-9ED8-718B41050E25"></topicref>
+<topicref href="GUID-73DD8A9B-6F7A-4BF5-87A1-5D86662B30D3.dita"
+id="GUID-AC4D076D-6DC4-47DE-BB93-A76087EEF197"></topicref>
+<topicref href="GUID-210606BE-A36C-4B65-B083-93F71024196C.dita"
+id="GUID-17170037-2CB2-49AA-8A91-3F5F4DC42155"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-BAC296CD-495D-43B1-A321-EE4AE064A474">
+<topicref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"
+id="GUID-CFF9E4FA-02DC-4618-A478-81FD96E5CF20">
+<topicref href="GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita"
+id="GUID-04158E96-F346-4BAA-8502-98C997E9D0C2">
+<topicref href="GUID-CDBBD44F-C5F6-4D51-B4BA-23DA9BB58D69.dita"
+id="GUID-F0EF9677-B3E9-4FA9-8D7F-97AD23EA23BB"></topicref>
+<topicref href="GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita"
+id="GUID-2F5C570A-B520-49A0-A3DD-A19596945DCD"></topicref>
+<topicref href="GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita"
+id="GUID-5354D349-44EB-4EBB-A35C-9D5E40B7B51E"></topicref>
+<topicref href="GUID-089FE9FA-44C8-48D5-A473-9486BF763283.dita"
+id="GUID-218C6406-E3AA-4188-A296-6FB65DFDE2DB"></topicref>
+<topicref href="GUID-E1A2872E-6E8D-4C02-B3C0-23213FD56106.dita"
+id="GUID-CBF33FB4-1AEB-44F3-AD2A-A7475B757941"></topicref>
+<topicref href="GUID-62DF565C-8121-429F-99D0-B5FBDE634AA9.dita"
+id="GUID-CD7679CC-BDF1-4C5E-9006-DB7171C8F608"></topicref>
+<topicref href="GUID-79B4468A-2CF6-45E2-BC05-064CA300C12C.dita"
+id="GUID-D3C3B5FE-0350-4D11-9773-27B0FC2D8633"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-8B246A68-83D3-425B-863E-4F0997A88FF6">
+<topicref href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita"
+id="GUID-8605CB18-40CC-48A7-A819-38FD34C27984">
+<topicref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita"
+id="GUID-25F164A7-9F37-472C-AF6E-1EE5B5ADDDB2">
+<topicref href="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita"
+id="GUID-0EB5B82D-D469-4853-AC33-DEDF9059B276"></topicref>
+<topicref href="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita"
+id="GUID-40B54F5C-10FA-4113-BC8B-085B1C911CDA"></topicref>
+<topicref href="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita"
+id="GUID-4D68820C-CD6C-49FD-BB05-A63C8A822962"></topicref>
+<topicref href="GUID-7B863846-7666-4FBF-90B2-52F847710C45.dita"
+id="GUID-9515D6ED-75DF-446E-B1CD-77CA2585977B"></topicref>
+<topicref href="GUID-D932955F-30AA-40C7-9653-63E48C38BECB.dita"
+id="GUID-3C3AB949-9CAA-4DE6-AE2B-38C25A25C0BB"></topicref>
+<topicref href="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita"
+id="GUID-5DDACAE5-2EA1-4ECB-BE54-F04EA5A61991"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-748C772D-953D-4A1D-9A21-F6E751109D66">
+<topicref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita"
+id="GUID-27FB835E-D7F8-4D81-A742-C7F6E8693F91">
+<topicref href="GUID-B8C3E562-EE45-47F2-BC00-F6C10ADD3026.dita"
+id="GUID-1D16F631-E6CE-40F3-8B1B-F25580A634CC"></topicref>
+<topicref href="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita"
+id="GUID-B3458D57-1F39-449D-9AFE-0A2E749EC9DC">
+<topicref href="GUID-27897E0D-D9D6-4007-A45E-62C366F1267C.dita"
+id="GUID-8B0976E7-A155-42C9-AA40-AD4CC447E909"></topicref>
+<topicref href="GUID-10A03A8E-E967-4F9C-B911-2F06031C6ADC.dita"
+id="GUID-B9C41FFF-4681-41FA-991F-31FBF7D2012F"></topicref>
+<topicref href="GUID-129FCE62-5498-4717-864B-7DC6A5C5944D.dita"
+id="GUID-208E395A-5CB3-4868-A0D1-DEF6C0AF0967"></topicref>
+<topicref href="GUID-842D8557-076B-4A6E-B823-81164368FD86.dita"
+id="GUID-49BA6818-0B30-4836-9AD9-2C9F358004F5"></topicref>
+<topicref href="GUID-BF6ECC83-C7A0-4183-B835-6299CC2114AF.dita"
+id="GUID-4FE13322-CC93-4320-9CCD-6D88049D418C"></topicref>
+<topicref href="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita"
+id="GUID-2BC1B3D9-F95A-449E-A818-C9EADE1B7B5A"></topicref>
+<topicref href="GUID-2BF409EA-82BF-407C-B048-DA0973B7F61D.dita"
+id="GUID-D19A47D1-D866-4B2E-A2C8-6906C9BDB924"></topicref>
+<topicref href="GUID-2632A013-AA87-485E-855D-C50E211057D6.dita"
+id="GUID-7F30FEB3-2EC6-4EDF-A661-3968BA222372"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-2527B02A-E623-4042-80E9-76A9CC0EF552">
+<topicref href="GUID-B876D548-FD40-4369-B328-7427002B4851.dita"
+id="GUID-6816E4CA-21EC-465F-A61E-04D402D0C250">
+<topicref href="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita"
+id="GUID-B58D61FB-928E-43C8-A13E-27DE6608AC57"></topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-2F59C5CE-FDE7-4ED2-B37F-87559A0A87EA">
+<topicref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita"
+id="GUID-C618F5AE-4635-4879-9CA6-BB462F6A66AC">
+<topicref href="GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF.dita"
+id="GUID-F41D99A7-8618-4956-BA78-8BB82C827472"></topicref>
+<topicref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita"
+id="GUID-DBC33539-74A2-4F31-B115-AED4795A051E">
+<topicref href="GUID-402C3EE7-8852-49B6-BE62-8588753FAC8F.dita"
+id="GUID-AECCFCD7-21D4-4442-8524-744984FF34D6"></topicref>
+<topicref href="GUID-58318BAB-2EC4-4C9E-A7CA-580E701EE54F.dita"
+id="GUID-1DF62E68-CA63-4B07-9E25-66F72D8C8B6E"></topicref>
+<topicref href="GUID-BC3207BF-9E9F-4BA0-8F01-B72228110A61.dita"
+id="GUID-09E00CD7-067B-4324-A61C-AB7B4B2CE6E9"></topicref>
+<topicref href="GUID-3FE04A31-C35F-47E2-B615-6C1202FB8485.dita"
+id="GUID-38C16196-8E3E-4CA3-B5E2-6116BEB90223"></topicref>
+<topicref href="GUID-7AE34C8A-50C6-49BA-9E43-AE76873B5E12.dita"
+id="GUID-F0CB070B-4DC0-4120-895F-59D6DAFC7A28"></topicref>
+<topicref href="GUID-81424A53-F598-4E25-BA0A-E2FFA8BCDF2B.dita"
+id="GUID-28CE2C05-3E39-40D4-92D5-9D89476300D0"></topicref>
+<topicref href="GUID-8845AFD6-F238-43FF-BD7B-902CD8CD3973.dita"
+id="GUID-E10B3E1B-C083-46D8-BD09-4304E9381D20"></topicref>
+<topicref href="GUID-A32FFE7A-A531-48D4-AD23-1CC13CB7F4B7.dita"
+id="GUID-7016E7A0-F357-4801-AFDC-2640232405B4"></topicref>
+<topicref href="GUID-A4D8326E-E72F-443D-9CA5-7835D6AE171F.dita"
+id="GUID-AEA1524A-A902-45AD-A9C8-39281DBBBFB2"></topicref>
+<topicref href="GUID-2D390781-4467-403D-8FFC-8ED5B2319993.dita"
+id="GUID-81830A70-988F-498A-BAE4-E8EAD8381A0A"></topicref>
+<topicref href="GUID-6113CC3B-F994-4AA8-81E9-50433A3266E2.dita"
+id="GUID-0D54C348-338C-4E64-9969-8409C4B33DE6"></topicref>
+<topicref href="GUID-A168E5EB-4CF7-4B74-B67C-EDFD5378C5BF.dita"
+id="GUID-4105B1E1-A88F-46C6-8F4D-32D2D463227F"></topicref>
+<topicref href="GUID-270FC83E-1D47-4CF9-A560-FB5DDA53111E.dita"
+id="GUID-C4E01CC6-C3F7-4037-9797-296B211D6564"></topicref>
+<topicref href="GUID-8F2D8656-B7F4-4BDA-81CB-8440A2FDDD82.dita"
+id="GUID-DF781209-26D3-4B9C-BF30-B4A3948B2C6B"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-17AD7BD1-350D-4897-B347-83569FFE40AB">
+<topicref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita"
+id="GUID-792BA40C-BCE4-4E42-B8F7-F5A55B502B86">
+<topicref href="GUID-E0C21636-657A-413F-A905-A08608B60768.dita"
+id="GUID-74411132-B422-4806-AFB5-A700E12B76B8"></topicref>
+<topicref href="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita"
+id="GUID-D45B0314-5F27-48D5-92D8-DAF13354A734">
+<topicref href="GUID-4102F39E-6215-44AD-9E30-6D8E86114D7D.dita"
+id="GUID-AD96A558-BE0C-48D1-B22D-9F1F23913845"></topicref>
+<topicref href="GUID-C0C93B8A-C63C-424E-9C30-5D69C1578660.dita"
+id="GUID-4A005732-2BC2-4FB7-8254-72264CCFA094"></topicref>
+<topicref href="GUID-96228425-F2C8-4767-95AD-520C655B73C5.dita"
+id="GUID-8117BE28-22A8-45CC-99F2-308185819C5B"></topicref>
+<topicref href="GUID-92281C52-4F2E-4D9A-9D5A-E0C5F0433339.dita"
+id="GUID-4CAEE0D5-A6BA-427C-B056-D590D890F856"></topicref>
+<topicref href="GUID-BEA5E4F1-B355-47A1-99DC-8E8EDB7B1CB3.dita"
+id="GUID-4D2439FC-EA74-48F7-8114-AA7D354BB30C"></topicref>
+<topicref href="GUID-BF3767E9-054E-4894-9216-00866FC9C3D8.dita"
+id="GUID-7BF5C602-FEEC-4E9E-8E96-5781D91B08D8"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+</topichead>
+</topichead>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-46F997EF-8D1E-4B87-9692-FFA3F3AA6E90">
+<topicref href="GUID-620CD3E3-61C4-4643-8922-48DEA9EF0A6E.dita"
+id="GUID-CB4CCCB2-2886-4B5C-9DB9-D50C16285E10">
+<topicref href="GUID-38FBB22E-828E-43C9-8E18-A05AFF47D76B.dita"
+id="GUID-F8A40744-AD02-49A9-9386-BB0398EBEA36">
+<topicref href="GUID-7BB755B3-B34F-4F09-AE83-336D4F5556D0.dita"
+id="GUID-1C842476-04BC-4D42-8077-057A3D70A09A"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-07B406B7-48E5-408A-8A31-24A54278C75D">
+<topicref href="GUID-8F2D6AC8-8357-55C7-970B-CD2684BA9B04.dita"
+id="GUID-A6F49F89-18A4-4DBE-A9D8-78B5CA461AA9">
+<topicref href="GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A.dita"
+id="GUID-41D60A6D-085B-4568-BFC9-5A5B039AA71F"></topicref>
+<topicref href="GUID-8905A627-1D13-5066-ABC4-7E0AF07D96A5.dita"
+id="GUID-9B803205-E779-46CE-B8D2-294652308D90">
+<topicref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita"
+id="GUID-2A99FB5C-7330-42EA-A16B-4A15D73E1EBD"></topicref>
+<topicref href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"
+id="GUID-4BFCC50A-C2F4-4BB7-89A7-5E5D81096E72"></topicref>
+<topicref href="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita"
+id="GUID-3EB81B99-6929-4702-A792-7495075016CF"></topicref>
+<topicref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"
+id="GUID-B882EFE9-F6C8-4E78-9267-BE154D111522"></topicref>
+<topicref href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita"
+id="GUID-01F7864B-2B6E-45C5-8463-CC4096DF4292">
+<topicref href="GUID-5580195F-3DE7-55FA-B2C1-91A950A39C6E.dita"
+id="GUID-4AB09EEE-0365-485E-911D-2AE7390B996B"></topicref>
+<topicref href="GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita"
+id="GUID-2C24F0AC-1D9F-46A9-9144-21BCBB3AEB82"></topicref>
+<topicref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita"
+id="GUID-DD38D86D-9E71-49D3-8AEE-58BF4476FFB7"></topicref>
+</topicref>
+<topicref href="GUID-75132B6C-2305-57B1-B969-B4F639B29852.dita"
+id="GUID-A6E29F2E-1B3E-4E45-B075-E817506F9C1D"></topicref>
+<topicref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita"
+id="GUID-2915C98F-48B5-40D5-9257-B41899834A40"></topicref>
+<topicref href="GUID-F8069628-BD32-535C-963A-A1CF8172E275.dita"
+id="GUID-9424A99D-85EC-46EE-8172-83E80230A1BA"></topicref>
+<topicref href="GUID-EDC16636-B24E-598B-9084-EAE782A4A213.dita"
+id="GUID-0E55767C-7D6C-486D-B3B5-76F24DC38101"></topicref>
+<topicref href="GUID-B93D6BAE-B9B9-5118-92DF-5E566E5BE8EB.dita"
+id="GUID-EB9ABA25-927F-4D41-A156-8C33499BAF60">
+<topicref href="GUID-83E4F989-0B73-5E83-8547-AB3070492CBF.dita"
+id="GUID-9BE316E7-9CDA-45BA-A798-C88819F63FBF"></topicref>
+<topicref href="GUID-FEB6F717-C86C-54A5-B8D1-B2D882C5AC55.dita"
+id="GUID-D366206B-473D-43B7-AE0E-A3A422E70E39"></topicref>
+<topicref href="GUID-282CE322-923F-58F6-804D-E125ABACB025.dita"
+id="GUID-CE4E1AC6-FB27-4B7C-ACCC-2A45B656012F"></topicref>
+<topicref href="GUID-35AF5E92-7103-5A86-A3CC-B2CED7E9793B.dita"
+id="GUID-F98DD418-C686-40E9-A485-23E5CE23E673"></topicref>
+<topicref href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita"
+id="GUID-972B060F-6669-4E1A-98DC-D6A780A35DD0"></topicref>
+<topicref href="GUID-F49A5630-0BDE-5214-99F9-E4DAC9C5B548.dita"
+id="GUID-FD92888B-5A1D-4892-AE28-08B7367E34DB"></topicref>
+<topicref href="GUID-1DE160DB-8054-5522-95F7-4CE5D8FFBF2E.dita"
+id="GUID-E7692386-3C6D-4AB5-8364-A092C3574318"></topicref>
+<topicref href="GUID-08CCCF43-A742-547B-A0E0-F5F6176DABCE.dita"
+id="GUID-C78BB6D0-47A5-4915-9663-EFBC1AE9285A"></topicref>
+<topicref href="GUID-6BDF4599-B89B-5C4B-9795-B4C5C5F5CB5B.dita"
+id="GUID-699BA787-D539-4A03-8F52-9718DECB8FAD"></topicref>
+</topicref>
+<topicref href="GUID-FD8AD44E-271D-514C-A52A-513E7C8AD207.dita"
+id="GUID-EEE48931-8569-4884-8F1E-F1A23914D6D3">
+<topicref href="GUID-0AC0CBBA-87AD-5F94-8F0D-D13654ABB631.dita"
+id="GUID-53A06DFC-63B2-4E06-A0D8-DA1A382AC265"></topicref>
+<topicref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita"
+id="GUID-A83DDC1D-3FE0-410D-9B6A-1FF12CBF4352"></topicref>
+<topicref href="GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita"
+id="GUID-FA5CCA77-732F-489E-BE51-D20CDA873EA2"></topicref>
+<topicref href="GUID-84C20E6E-C5DF-5346-84A3-2D8C701303C8.dita"
+id="GUID-A9F00E5D-58EF-47C7-A868-35919B87A103"></topicref>
+<topicref href="GUID-935DF48C-F014-5E2A-8BE6-29B00C4FD31D.dita"
+id="GUID-4E1EFE48-63E1-49E6-9A9D-382E19A945A8"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C3018CEE-865B-595A-A735-40E11665E50A.dita"
+id="GUID-A036BB9C-68F1-4B77-BEF7-14664A94DBF2">
+<topicref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita"
+id="GUID-358E5F8E-5D40-4C38-BE20-F4CEE91A1C9E">
+<topicref href="GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita"
+id="GUID-001FF52D-425E-4D27-8A13-D71B890F962F">
+<topicref href="GUID-9665C072-EA52-54B8-87A3-A7F818940DCD.dita"
+id="GUID-23AEB39D-9042-4BEE-BA6C-3D904FA1D5D7"></topicref>
+<topicref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita"
+id="GUID-AA4F9080-9B88-4EBA-99AA-304910532F33"></topicref>
+<topicref href="GUID-B85CA4E7-3DF5-5D5C-BF7B-5D0DDCD468AE.dita"
+id="GUID-8DFD68D0-2F07-4274-87D9-BC912F734919"></topicref>
+<topicref href="GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5.dita"
+id="GUID-E0A6385B-54D3-4392-943D-29E670190B30"></topicref>
+<topicref href="GUID-231840A2-255B-5200-8AD1-1D7667FCB448.dita"
+id="GUID-76E8276F-2878-499D-8275-8EEC96735799"></topicref>
+<topicref href="GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08.dita"
+id="GUID-BD902741-8512-4EB1-8B21-06F82BD746A8"></topicref>
+<topicref href="GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08.dita"
+id="GUID-12B36D32-631C-4E3E-8216-538F573CD821"></topicref>
+<topicref href="GUID-4C35C86A-D57F-503B-8E55-5D235E0D6DA0.dita"
+id="GUID-8AE305EB-8C69-4118-B103-49873DFF1BCC"></topicref>
+<topicref href="GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9.dita"
+id="GUID-BDD6C08A-02FF-4482-8A2B-56358F91F89A"></topicref>
+<topicref href="GUID-1D836FB1-9BCA-53B5-8334-08CD59064227.dita"
+id="GUID-30943964-D45D-427D-A77E-298ED97CBD8D"></topicref>
+<topicref href="GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC.dita"
+id="GUID-0FB72F1B-E964-45BE-A8C7-476543A44634"></topicref>
+<topicref href="GUID-5D712F4A-E956-543D-BCC0-91107C6E4717.dita"
+id="GUID-F6D7FA2E-04D4-4BC7-A7F5-07901F17FB5E"></topicref>
+<topicref href="GUID-B89D2828-0FEE-5206-97D2-C7D4BBD35799.dita"
+id="GUID-029B2A19-DA5B-4C9E-BDB3-5C21B15EB97C"></topicref>
+</topicref>
+<topicref href="GUID-0CDA8FCA-AABE-5988-9467-30AA1AECCC90.dita"
+id="GUID-C0EBE095-54E7-4F1C-8562-23197B8DFE47"></topicref>
+<topicref href="GUID-5F641F7A-AEAA-5C3E-9179-C3707F10E6DC.dita"
+id="GUID-1AE9C488-06F1-4D4D-8D17-C800461A986F"></topicref>
+<topicref href="GUID-CE011029-0F2B-50D4-B793-A24C7ECFC21E.dita"
+id="GUID-07673129-E9CE-4FBB-A75C-9330BB6D8F88"></topicref>
+<topicref href="GUID-ACE7D63F-9544-56DB-A72D-FFB0A35661EC.dita"
+id="GUID-5B1AE236-0F33-49C6-9D4E-571D8B452954"></topicref>
+<topicref href="GUID-504EB40B-AC98-5AB2-9263-185887C29A7E.dita"
+id="GUID-98584E4F-580B-4F12-8E9E-EA1D90F18F12"></topicref>
+<topicref href="GUID-E4874B22-474B-56D0-8A8A-C60411D3CBCB.dita"
+id="GUID-FFF080C6-4327-4BEC-AD86-A418447C6733"></topicref>
+<topicref href="GUID-9D56FF77-A20B-5BFB-8DE6-19CC4535DFED.dita"
+id="GUID-2C43E06F-52FC-4C5F-A4D4-429003761B8F"></topicref>
+<topicref href="GUID-A96ABD2C-A338-58E5-A674-E840B1F53670.dita"
+id="GUID-63C4F134-9AEC-4043-BADC-4584230461C9"></topicref>
+<topicref href="GUID-F48CC072-66A0-5DBA-99A2-2F3BABF83BEB.dita"
+id="GUID-7920F94F-99DD-4A6A-90C2-4E48CBD3EF8C"></topicref>
+<topicref href="GUID-A19A1F43-E42B-5FC2-AE58-A7BC67B6733A.dita"
+id="GUID-C1DBEB8A-5665-426E-9E77-2CF481440929"></topicref>
+<topicref href="GUID-58089281-9DD0-502D-8DFD-831E7BAA931E.dita"
+id="GUID-349AEF40-4B66-4BE8-9F9D-59C9860000D6">
+<topicref href="GUID-4E4C842F-1AF6-505D-B378-2043FDD8985C.dita"
+id="GUID-5190EDD9-349F-42A3-BAAF-FCE07D0FC4D9"></topicref>
+<topicref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita"
+id="GUID-95BD9152-9F59-43C9-A0EE-8A072CFB8EA5"></topicref>
+<topicref href="GUID-FD0779D4-7B98-50A9-A2ED-2F3CA5EE51C1.dita"
+id="GUID-E3186A2C-D923-4C58-AA24-B475B300CA37"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-12D1F61B-6BC6-5215-A832-E84C0F480765.dita"
+id="GUID-342F5BA7-2A80-4057-BE0E-C6329C0F9701">
+<topicref href="GUID-A248C2C0-5F64-5484-85B2-57C86E3499E1.dita"
+id="GUID-8BE46DC9-F1C9-4CE5-8684-CA94AF5573B4">
+<topicref href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"
+id="GUID-209A09D0-17BA-425E-9779-359289F5191C"></topicref>
+<topicref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita"
+id="GUID-223A8E6A-E313-46EE-9D3D-FA7AF071AA07"></topicref>
+<topicref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"
+id="GUID-34AD2E2C-7A5A-41FA-8049-A79E7B8330D2"></topicref>
+<topicref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita"
+id="GUID-FD22F918-10B3-4F75-8554-E15700FF87CE"></topicref>
+<topicref href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita"
+id="GUID-40348BE9-105E-4C3D-A26A-927734328EEA"></topicref>
+<topicref href="GUID-F0891698-F714-55AA-A089-790BB0B07AE4.dita"
+id="GUID-D6D6A0DF-DF2B-4EF5-83FF-182BE374CBBB"></topicref>
+<topicref href="GUID-E4D47AED-5FCA-535B-9B8B-3267A4CD01C2.dita"
+id="GUID-B91BA656-0F0C-4BDB-96D5-21B9D321B75C"></topicref>
+<topicref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita"
+id="GUID-0195B9C8-946D-41D5-A02F-3E507023136D"></topicref>
+<topicref href="GUID-0995EBF6-D203-57B3-9F53-972AEB8F3D3C.dita"
+id="GUID-0618C5EA-AA76-4EA2-A82C-43A99ADADD2F"></topicref>
+<topicref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita"
+id="GUID-CB3C5D81-D81B-49D2-B12D-2A13FC2A5E04"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C7213C52-F867-574E-B99A-93BA92A1FE2F.dita"
+id="GUID-84CEB456-DA46-489C-A0FC-D29E6C369920">
+<topicref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita"
+id="GUID-092D7805-0723-434D-AE45-2B78C83B891B">
+<topicref href="GUID-A4726E90-4F72-5986-947A-D948A8029240.dita"
+id="GUID-8FF89F77-722B-4118-8C87-E09761749BBE">
+<topicref href="GUID-236D3822-13C3-5AD8-B0FB-C28732E17CF7.dita"
+id="GUID-FE541C41-9C44-4D4C-876E-352FB86F647F"></topicref>
+<topicref href="GUID-521837E2-583C-5C7D-85F7-D936C77AA84C.dita"
+id="GUID-C2394895-DC88-444F-AE93-CFE0B6F7F3D0"></topicref>
+<topicref href="GUID-EAE7819B-45C6-579F-BC01-82CB70294153.dita"
+id="GUID-5AAF6FB3-1E3E-4ABE-BC8F-F042D8022576"></topicref>
+<topicref href="GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2.dita"
+id="GUID-1286E7B1-7DBB-4769-A3EE-71593BAF4338"></topicref>
+</topicref>
+<topicref href="GUID-9142B2F6-8D93-5366-9B3A-4932D2C7988E.dita"
+id="GUID-1CE38A5E-4272-410B-9F1F-FC9B6CD518D3"></topicref>
+</topicref>
+<topicref href="GUID-31C265DA-5B54-5E6B-98E4-EE90A2AAF4D5.dita"
+id="GUID-4F55ED20-9E6F-474B-8973-25125D825E59">
+<topicref href="GUID-7324A06C-981B-568D-BDFA-EFE21049431C.dita"
+id="GUID-10FB30B7-AEDB-4F2A-B0C3-FF70860C75BD">
+<topicref href="GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC.dita"
+id="GUID-12C6279E-1338-4469-A60C-9C155B9DDC26"></topicref>
+</topicref>
+<topicref href="GUID-FF48E99A-551E-58E2-84C4-1985B557CCA4.dita"
+id="GUID-9C23E521-1AC0-44AD-80C5-82B246F0B909">
+<topicref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita"
+id="GUID-5C77BD71-B448-42A1-8038-BCF8A217A2F8"></topicref>
+<topicref href="GUID-35DE6C87-0C47-5D06-AC8E-3C39DC463F0C.dita"
+id="GUID-74A1BE29-B74B-4902-B6F5-7DD73BC50E98"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-2139B04C-6ED6-599B-A018-D92451B8353E.dita"
+id="GUID-E3DA26A7-8A08-4A30-B08A-69375A0E60D3">
+<topicref href="GUID-695B292F-114C-528F-9F71-1D03801D2203.dita"
+id="GUID-33665E56-4C01-4239-9E75-DB3B36BF5587"></topicref>
+<topicref href="GUID-31371091-A28D-5203-BE6A-0F182F99582D.dita"
+id="GUID-EFEDC558-D68C-4EDA-98CF-DC32EF332485">
+<topicref href="GUID-A51FE292-3E9D-52FE-B751-246C64F30BBC.dita"
+id="GUID-254A59B3-299F-40FA-9346-F18AB2201450">
+<topicref href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"
+id="GUID-8874FFB1-207B-4B7C-8869-A9C84EAC7F7A"></topicref>
+<topicref href="GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita"
+id="GUID-15FC979C-07CF-48EB-96C9-CA0E60961205"></topicref>
+<topicref href="GUID-B380482B-CF42-50BF-B09C-F4B3BDAA1679.dita"
+id="GUID-C1DBB043-9D4A-4857-9F18-88DBC17C2196"></topicref>
+</topicref>
+<topicref href="GUID-82499F0B-2791-59B6-9BAE-F9F87234FBF1.dita"
+id="GUID-71FD4AD3-E79C-4B90-A302-AC4CC198B6C4"></topicref>
+<topicref href="GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita"
+id="GUID-0CA4A1C0-D49E-4BAE-B708-E71E6A48B276"></topicref>
+</topicref>
+<topicref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"
+id="GUID-A5ABD986-F9B4-47FA-BB56-90A465742162">
+<topicref href="GUID-A80ED7B2-4A58-570A-A671-4F4B1BB9FDAF.dita"
+id="GUID-A340D3F5-99B0-41E4-9024-DC3A9A3CAFF3">
+<topicref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita"
+id="GUID-82DEE705-0309-4BD6-9426-1D2EDB69DE82"></topicref>
+<topicref href="GUID-D1BCE2D9-04B5-5C39-A50B-C5BBDAAFEFED.dita"
+id="GUID-89C9B770-0CE6-4FD9-907A-E2D816ADCF1F"></topicref>
+<topicref href="GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2.dita"
+id="GUID-38882E7C-E861-427C-BECC-C39CDECEFCA0"></topicref>
+<topicref href="GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8.dita"
+id="GUID-C76ED3CB-63A6-4282-A8CB-6E2801861E75"></topicref>
+<topicref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita"
+id="GUID-E80BE21E-ECCD-4F66-B0B0-983721A02314"></topicref>
+<topicref href="GUID-06CE943B-3D6A-50D1-97C3-CCFE4D4F5864.dita"
+id="GUID-2B618852-F1DA-4734-8FBE-BA96DF033FEF"></topicref>
+<topicref href="GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD.dita"
+id="GUID-1BF20209-BAC0-43A1-81A6-AF824E9AB653"></topicref>
+</topicref>
+<topicref href="GUID-E9E2783E-44A0-5BA6-BBF3-D13C8D67B53E.dita"
+id="GUID-8305F0C2-FD9E-4D0A-B9D3-914BB5F90281">
+<topicref href="GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B.dita"
+id="GUID-2BA537EB-BAF8-4C7E-AB00-4D19E7078467"></topicref>
+<topicref href="GUID-722180B8-0032-5C3F-AEB2-A9B1261450D8.dita"
+id="GUID-55F45255-C043-4F07-B16D-41036B41E13F"></topicref>
+<topicref href="GUID-782AA56A-D3CF-5239-AB62-9AE6741964E8.dita"
+id="GUID-38D0EFBF-5585-45B6-9D10-6B7787C106AC"></topicref>
+<topicref href="GUID-FCCE497D-1DA8-544B-A973-831E97DB5569.dita"
+id="GUID-EBC40C5E-58A7-49B7-BC5A-6BA6A575FE1F"></topicref>
+<topicref href="GUID-05E3ED3B-41F8-5FC2-87A2-627BD5E6BB04.dita"
+id="GUID-A32A5C42-E89B-42D0-86AD-0ECA71697BC2"></topicref>
+<topicref href="GUID-3AB8E95D-4270-5CDE-994E-404BCBEC57B6.dita"
+id="GUID-A563D1FB-00EE-4425-A57E-67C5C4C9DE14"></topicref>
+<topicref href="GUID-0116F567-D005-5480-AB37-9799398C0E6F.dita"
+id="GUID-EAD652AF-7A7A-473B-859F-9E9200914F1B"></topicref>
+<topicref href="GUID-7FAE6FE0-D5CB-55D4-94B0-ADD545577CA7.dita"
+id="GUID-3F1D3E28-B291-4F3F-B5B1-697A0B8AE85C"></topicref>
+<topicref href="GUID-E3E19113-AAEE-55C2-8016-11D492123762.dita"
+id="GUID-4C54F7FE-8D03-4514-B138-8102993F7062"></topicref>
+<topicref href="GUID-F67F8930-7F8A-5497-AAD9-D7789B437478.dita"
+id="GUID-AB23E29E-9773-4BA5-89AD-BF5280A4F825"></topicref>
+<topicref href="GUID-4C7ABD1C-B42C-590A-AD24-7FA6C3A8D18C.dita"
+id="GUID-7D9A13C5-2535-49C0-994B-6EB1B6FB494B"></topicref>
+<topicref href="GUID-E34D0F11-4B34-575C-BE78-8EAD13E9CD64.dita"
+id="GUID-DFD13E7B-128E-4B0C-95B5-282AED8C14A6"></topicref>
+<topicref href="GUID-AE31B2A5-40BA-5FD4-9CCA-2CDF5B00DFDC.dita"
+id="GUID-8C98BD38-1931-4E27-AF90-129DC07DB333"></topicref>
+<topicref href="GUID-3101392C-A9FF-5F56-8872-5A03D053565E.dita"
+id="GUID-51D0BDE1-F172-4DEA-85FC-87BB0233C2AF"></topicref>
+<topicref href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita"
+id="GUID-A1A5C3BD-4029-4E30-B5D9-5EB59E69CED6"></topicref>
+<topicref href="GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita"
+id="GUID-253801A8-2C89-45AC-93DC-22289415534F"></topicref>
+</topicref>
+<topicref href="GUID-69B5906E-63F5-59C6-A82C-DA4386B20F9F.dita"
+id="GUID-4212C42E-A465-42AB-BD04-AD02E10F2BC0">
+<topicref href="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita"
+id="GUID-25CD20B8-985C-4157-8799-55677A38B090"></topicref>
+<topicref href="GUID-9CA1C115-2DA3-59A8-AAE7-E99928B889BE.dita"
+id="GUID-DE7BB224-5F55-46E3-A340-ED5C9E7993B6"></topicref>
+<topicref href="GUID-5CFC075C-8F53-5E1B-A111-C6F4567DFD1E.dita"
+id="GUID-16A2BB6B-1E0A-4E25-9DF0-293989423D5A"></topicref>
+</topicref>
+<topicref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita"
+id="GUID-05AEAAFE-0B1A-4556-8A1B-57128722C3B2"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita"
+id="GUID-64C4195E-F5E1-4084-A0DE-70230A935D88">
+<topicref href="GUID-6C7B7778-9B2E-5D8C-B2D8-74AC1DEEDF61.dita"
+id="GUID-0F4965C2-E679-4D9C-A2F5-2B952E3914A0">
+<topicref href="GUID-107AE89E-901E-535F-8D1A-EE347D7822B1.dita"
+id="GUID-B1BD4678-B212-4135-BB03-85D921E18C7C"></topicref>
+<topicref href="GUID-D99D9DA3-AB82-5513-85C3-FFF254CB9B0B.dita"
+id="GUID-097DFF93-5363-4E82-9AF6-DF086BB9493B"></topicref>
+<topicref href="GUID-C7E37B5D-C7AA-5624-B34F-B3CA44516E1D.dita"
+id="GUID-B229F9A6-E960-46EE-9872-F7C14637672F"></topicref>
+<topicref href="GUID-9D9A67E0-CA0D-51B9-BD0D-3F474E90808D.dita"
+id="GUID-DAAA4A2F-9AA6-4A89-ABF5-6C3CA85246EF"></topicref>
+<topicref href="GUID-399AE85E-9A5F-5748-864E-51C3F417D45B.dita"
+id="GUID-E488B68C-23D7-4ACF-8F5D-E7F2872FD46D"></topicref>
+<topicref href="GUID-97E8BB93-DFEC-558F-BF7A-0F5FF0D16F06.dita"
+id="GUID-69FDC2E0-2C03-40CE-A24A-63F693890BE5"></topicref>
+<topicref href="GUID-768E599C-3EDA-5AC9-8D27-7C6240B0CC63.dita"
+id="GUID-2F345781-5645-495A-88DE-062E99F0A3C2"></topicref>
+<topicref href="GUID-C258D231-4B08-51C4-BA09-8C61239666E0.dita"
+id="GUID-ECFC0E2A-8E16-4062-8BF3-568A2A9C3432"></topicref>
+</topicref>
+<topicref href="GUID-EA83150B-8076-5EA5-BE78-962FB450E848.dita"
+id="GUID-3667A6A7-BD47-4E2A-AD36-57F66C3FF098"></topicref>
+<topicref href="GUID-468EDD07-3868-550B-B1C9-E79FD728F9B9.dita"
+id="GUID-AB5CCFF0-262C-4AC7-8A20-BDB715867302"></topicref>
+<topicref href="GUID-699E6012-92E0-56A2-943A-B6282E6A86B5.dita"
+id="GUID-70526871-36C5-4F7E-8C35-1E8BF30FC308"></topicref>
+<topicref href="GUID-D30B09D1-6537-58B4-B94E-13EAD5A28EE0.dita"
+id="GUID-0E2E0F96-6CD8-4B87-B6C9-D943EF28EFB2"></topicref>
+<topicref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita"
+id="GUID-A19012A6-DD82-4E44-BA40-D887FA43E7F7"></topicref>
+<topicref href="GUID-922442FC-D9E0-53BD-B8AD-011A724C96FF.dita"
+id="GUID-E459AEA0-8DCD-4A90-A673-3710C6C1504E"></topicref>
+<topicref href="GUID-57A909F3-EAEA-5FE2-B620-E21204794497.dita"
+id="GUID-6785A1F6-13BA-4F41-9A41-C3E6C9F8ED8C"></topicref>
+<topicref href="GUID-5D47DBF8-3DFE-5D0B-95B2-63302E91C423.dita"
+id="GUID-C8EBA877-6DD7-410C-BD1A-FD0F90234303"></topicref>
+<topicref href="GUID-397239F9-7EE8-52CF-9B37-328AE307BAA0.dita"
+id="GUID-E978D9E2-9015-4822-A295-CB236BA54AF0"></topicref>
+<topicref href="GUID-934AEB9C-77EA-5F50-BB84-2446DDD432C8.dita"
+id="GUID-80106314-71B2-41DC-9ECE-A5CBE7B58EB6"></topicref>
+<topicref href="GUID-31E9F790-8A47-588C-A515-D2C8CD367ADE.dita"
+id="GUID-4A31D0B2-7C7D-4014-AB50-7C4329336017"></topicref>
+<topicref href="GUID-294EF1C3-E7EC-5B93-B4F4-ECA50DD6993F.dita"
+id="GUID-3D0448B8-D6E0-4630-8061-99879481F83E"></topicref>
+<topicref href="GUID-BD9CBBE8-9389-50F9-98B1-0A07F7E2891C.dita"
+id="GUID-2BA77133-E145-4B66-9C42-5A0F111E7226"></topicref>
+<topicref href="GUID-ED2F48EA-8C31-5729-B312-E925B7EC3B24.dita"
+id="GUID-D66F9478-0554-4453-B347-9AE7C9EB2BFF">
+<topicref href="GUID-DB6AF6D3-38B6-51EF-A830-388961A3BF04.dita"
+id="GUID-38DB1499-F552-44A6-B52C-5910C69EAE89"></topicref>
+</topicref>
+<topicref href="GUID-00B82F15-0ACC-59A9-AB9C-E4342ABE64D3.dita"
+id="GUID-C404159E-5A3A-4613-845A-AAD8FE2CB4AE">
+<topicref href="GUID-35D49549-1F4D-583F-A45D-9B557A207DD2.dita"
+id="GUID-1C118CB8-C663-4AED-AEA4-8204F89EF7F9"></topicref>
+<topicref href="GUID-2751DBB8-D882-5803-9881-1C1F7B4FE413.dita"
+id="GUID-11284743-4E4D-411D-B600-EF7AC4417FC5"></topicref>
+</topicref>
+<topicref href="GUID-152B5CE8-B689-5E99-885F-79FB0654B7D6.dita"
+id="GUID-063743CF-6D37-4921-ABCD-1C43FABA039B">
+<topicref href="GUID-7FA9E730-DBE6-52DD-87FE-B2D01EFAAE12.dita"
+id="GUID-29675040-1DF2-403B-8B66-37764B3BC20A"></topicref>
+<topicref href="GUID-21C4398F-0519-5107-A735-A7137A1595E0.dita"
+id="GUID-F51ADF30-4FFF-49F0-8099-429924F48592"></topicref>
+<topicref href="GUID-5B451D6F-1F3D-5B54-BBC4-212D04F9977F.dita"
+id="GUID-C75B3F65-CD84-45DB-B77E-9FD903BADBDD"></topicref>
+<topicref href="GUID-0E6C7017-E430-51C0-A5D6-1798B0DCC6BC.dita"
+id="GUID-6B26F04C-43F3-4FF6-81F7-5D35D8AE0288"></topicref>
+<topicref href="GUID-7651FA57-4C0E-5EB6-8DB1-AAF23D39CD7C.dita"
+id="GUID-EE2BE5F0-764B-4C63-BA32-8F37F445BCEF"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-36AF783B-A56A-5C16-A055-9075ED4396C5.dita"
+id="GUID-B06C48D4-1855-406F-868B-BEFE46A7DB53">
+<topicref href="GUID-810043A5-62FF-55D3-A908-973FFB72DA4A.dita"
+id="GUID-5C2727D2-0B0C-4262-BEFA-0B84D3FFA4F0"></topicref>
+</topicref>
+<topicref href="GUID-E1EF7223-02EA-5875-84E6-6415E7081F6E.dita"
+id="GUID-D4157C59-C202-41EE-BE4C-28F1527E4E8B">
+<topicref href="GUID-4A21335F-7752-5134-98C5-D21D4657E094.dita"
+id="GUID-E303D31B-8D57-4A7E-B328-49ACB232D15C">
+<topicref href="GUID-FF62C847-B887-573B-804B-C82335DA2FE7.dita"
+id="GUID-5A8D0EE0-271C-49D6-9EAA-096C628F8293"></topicref>
+<topicref href="GUID-E8BD8844-3297-5848-BDF0-F6D595367145.dita"
+id="GUID-AD8ABCAF-793E-45FB-9CF7-22C04DD6CF48"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-10F0DEEF-D537-4C5C-9A30-465445364F46">
+<topicref href="GUID-F8C8CE42-E7C9-5AFC-86BC-B78F677F1B05.dita"
+id="GUID-0944EF05-7348-43C9-9805-664E373ECA78">
+<topicref href="GUID-9BAEF0E8-5414-597C-B0B7-5F6E02DBF3C5.dita"
+id="GUID-660DE7BF-49D0-4F2B-A727-2E5C5D0136AF">
+<topicref href="GUID-8C8B97BF-E769-5C7B-A6E0-B8CA7F12071C.dita"
+id="GUID-010CD523-B9CB-46ED-9470-A2CF69081D9F">
+<topicref href="GUID-95493C3D-58C6-5EBF-85E1-167D58E68658.dita"
+id="GUID-2BDDD951-2E04-47FB-987E-72D40D23C988"></topicref>
+<topicref href="GUID-D009C6A6-3388-554F-BCB5-4F438E7F9E99.dita"
+id="GUID-881ED2E1-A1E9-4558-B0EE-474E6DAD7DF7">
+<topicref href="GUID-C4A072E1-4385-5C98-98C1-56F297132F11.dita"
+id="GUID-7A4CFF11-7E6E-44F4-B4E0-E7779B2E9C07"></topicref>
+<topicref href="GUID-E25A5C1E-83D7-51D5-8F11-9C44C6CEEDCE.dita"
+id="GUID-4B4F74B6-B1D8-4FE8-B847-7E530E6676AC"></topicref>
+<topicref href="GUID-8E25E84C-E8F3-50B2-82E5-0611A341ED27.dita"
+id="GUID-35F97D93-7CFC-480B-9A44-53985B9B53D1"></topicref>
+<topicref href="GUID-7DDF477A-1744-589A-82CB-3CB32D56D7CE.dita"
+id="GUID-C0DA469F-EF39-41EB-A4DD-65E65C3385AA"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-DC011D9C-6C39-5BB9-A7CC-4447AB97A2D2.dita"
+id="GUID-3859C639-D4B8-43FB-8E2C-B54DBB9C3A77">
+<topicref href="GUID-4F004877-DFDD-5282-B8B6-7F36D892B122.dita"
+id="GUID-62387F3F-1FE2-4823-BF0A-67A987DFC7B9"></topicref>
+<topicref href="GUID-F2289115-B1F0-595D-AA1C-3E01F08911CA.dita"
+id="GUID-9982ADB2-DED6-464E-A5FB-EE2F23B6702A">
+<topicref href="GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066.dita"
+id="GUID-03F18488-8C74-4713-A879-A95CF72E25AB"></topicref>
+<topicref href="GUID-25A005BF-731B-58DB-8EF7-AB7840DA563F.dita"
+id="GUID-1D02A5B5-8D6A-4540-A728-22E81CF1460E">
+<topicref href="GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408.dita"
+id="GUID-2D3BF353-43BE-4BD9-8564-19C4284FAD36"></topicref>
+<topicref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita"
+id="GUID-5C63812C-86C6-4B7B-AFE2-BB6CBACD0B46"></topicref>
+<topicref href="GUID-1E55DD3C-D699-5062-88C1-C826F06CD48C.dita"
+id="GUID-BAE50B59-5B2D-4E59-9D18-74CB4C3E6EAD"></topicref>
+<topicref href="GUID-16A42EB3-4F45-5623-9981-1DEE3234471E.dita"
+id="GUID-F88215B3-DDDD-4B1B-AB91-7770936B7338"></topicref>
+</topicref>
+<topicref href="GUID-2E3BE23C-B9DC-5B5D-A56A-1DB819EFC9A6.dita"
+id="GUID-A0B9D97E-D9E7-4B5D-9B3F-45D5AA7BEB5B">
+<topicref href="GUID-D4E06508-4346-5294-995A-64B403467EC5.dita"
+id="GUID-28B2428C-6357-447E-B5EA-E46A093F642C">
+<topicref href="GUID-CD87FAF6-A11D-4260-9472-CABA18BF86B1.dita"
+id="GUID-9A697F7B-F3F3-4DA4-9511-F437D1D99AB4"></topicref>
+<topicref href="GUID-4860A4E6-1641-47D9-8243-C03779276C6D.dita"
+id="GUID-DAB2B745-993E-4049-8A44-8E0FD58B5417"></topicref>
+<topicref href="GUID-D21191CC-965A-4F92-9792-4B34D54114DA.dita"
+id="GUID-D1D43E1D-C62A-4A84-915A-B51AC82C8C16"></topicref>
+<topicref href="GUID-6DA81F01-FBD7-4167-B722-832888DEC0AD.dita"
+id="GUID-EB130026-F8B5-422C-8A08-FF5160196CAA"></topicref>
+<topicref href="GUID-4FE4B515-EE2B-47DB-BECE-E390E4EB2C3E.dita"
+id="GUID-D51ADDDC-2975-4F01-AFE5-9D7D237D09D6"></topicref>
+<topicref href="GUID-056736E0-3DF0-49FE-A44D-1A8E47FE45A0.dita"
+id="GUID-46762AAE-1632-420A-973F-F330A8736B5B"></topicref>
+<topicref href="GUID-3715E8EE-FF0A-4344-90F1-1609D54C166B.dita"
+id="GUID-7119497D-65AC-4C19-8706-55DA6B185116"></topicref>
+<topicref href="GUID-CF6C76A5-AC87-4EBD-AECF-35B456219B94.dita"
+id="GUID-84D7F192-17CC-48CA-A6BA-92AB07C96A03"></topicref>
+<topicref href="GUID-2382F758-35CF-4378-A5D5-183121E3BF6A.dita"
+id="GUID-80024D1F-ECD3-47F8-BDA7-A2020D292BFB"></topicref>
+</topicref>
+<topicref href="GUID-D78DCB72-7CEE-5075-A6FA-58D57AB5BA73.dita"
+id="GUID-5DC5E9DE-6718-47B0-82DA-3A4A03223BE0">
+<topicref href="GUID-623CA1EE-4D25-495A-BD2F-BA7BF95D6D9C.dita"
+id="GUID-6317D9C4-074A-4256-9C58-4280FF7BF701"></topicref>
+<topicref href="GUID-D89D1809-0A64-4331-BA5C-2B82187BEFB6.dita"
+id="GUID-51C1B493-4DC8-4DA2-A799-1B2CBCD331BF"></topicref>
+<topicref href="GUID-AE5432AE-C699-4403-BCFC-474515C9BEC8.dita"
+id="GUID-D15074A4-9F84-4223-A903-451C8CCD9316"></topicref>
+<topicref href="GUID-F575F364-4BCA-42C7-BE00-7B31D8B55AE1.dita"
+id="GUID-C6B4A5BA-FC4C-4033-8979-05DE61525304"></topicref>
+<topicref href="GUID-B57857D6-F00B-458A-8194-42CACA0BF131.dita"
+id="GUID-A21FC3FB-A01A-4E1F-A0CE-EF046920C906"></topicref>
+<topicref href="GUID-B80ADD0D-2834-4478-A4AD-1FEBC0112A43.dita"
+id="GUID-80BFF756-84B3-4D32-BE1F-A6FBA23CE3DB"></topicref>
+<topicref href="GUID-A0122085-369E-46EF-9CA1-0269982A5284.dita"
+id="GUID-040091D5-A34A-4519-847F-8F86AC19754B"></topicref>
+<topicref href="GUID-2D8A7DCE-47A2-4326-BF2F-B4901F1723A0.dita"
+id="GUID-AB5DCD39-8068-4DA2-A90A-A144E64471E9"></topicref>
+<topicref href="GUID-D157C4D3-FC2F-47DD-BD33-F8BA6156833D.dita"
+id="GUID-7C708A27-82ED-4C3C-8352-6F6DB2E6A68D"></topicref>
+</topicref>
+<topicref href="GUID-03494D84-7E6D-5128-A8CF-2F6E25543591.dita"
+id="GUID-676944D5-6AF3-4812-92C3-3AECE409AAE8"></topicref>
+<topicref href="GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6.dita"
+id="GUID-9A82B8F0-E6C0-415D-AD64-122BFF5037DA">
+<topicref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita"
+id="GUID-88457FE8-21B7-464E-ADEA-74734D5E821A"></topicref>
+<topicref href="GUID-BC627588-E8C7-4DDB-8313-7C57E0CCD93B.dita"
+id="GUID-E49798B9-C3D9-443F-848C-556DE4F8F10D"></topicref>
+<topicref href="GUID-7CF7D29B-14A4-432E-BBB2-E3AF283E45E3.dita"
+id="GUID-428CCDCE-F394-4581-89BE-467863E38F77"></topicref>
+<topicref href="GUID-FC7F8CFE-F9AD-4442-9289-CCEFEC62DF68.dita"
+id="GUID-AFE7861C-EC04-48FF-89F8-DA8D3F3EAD50"></topicref>
+<topicref href="GUID-6A0D353D-A9B0-46EA-8FDC-1FBBD4A20CFB.dita"
+id="GUID-EAD4AEEA-B880-40C4-BCCF-B00895CBE301"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E3ADCC42-ACFC-49FC-88FF-8196CE61014B.dita"
+id="GUID-5EA45326-FFB6-4DB1-9522-616CB4DEDDB5">
+<topicref href="GUID-0F784804-8452-4C92-ABB3-56B81BAED744.dita"
+id="GUID-FDB93F11-C38C-4389-9996-60DECA19DAE0"></topicref>
+<topicref href="GUID-9102DB10-3B93-4E79-9125-25791CEEBEFB.dita"
+id="GUID-5DBC9086-1293-4DB5-9F3C-05B602043A96">
+<topicref href="GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27.dita"
+id="GUID-338B00F5-C445-44E7-871D-C0118CB5A305"></topicref>
+<topicref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita"
+id="GUID-BE8B746C-D4C5-4B47-8D7D-5DAA272B1433">
+<topicref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita"
+id="GUID-68E682C4-6E9A-44C3-B44D-ABD5509B21C7"></topicref>
+<topicref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita"
+id="GUID-1F831306-5758-4767-8BCA-5C3434E7882A"></topicref>
+<topicref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita"
+id="GUID-1B03AC04-83F2-475D-83EB-124A1EE3EC51"></topicref>
+<topicref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita"
+id="GUID-30D309B1-68CA-43C7-A1B0-8237B5C2CE71"></topicref>
+<topicref href="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita"
+id="GUID-C919B9B5-5886-4DD7-AAF2-F21F6887F6DF"></topicref>
+<topicref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita"
+id="GUID-CDBB5B15-5652-4F6A-A149-AD9AD4CFE980"></topicref>
+<topicref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita"
+id="GUID-421B4F84-A2AD-4DDF-868C-D6D8D1E6341E"></topicref>
+</topicref>
+<topicref href="GUID-4DBE9AD9-2942-450B-B43C-3F2B47777357.dita"
+id="GUID-0CABF0AF-2E52-41CA-BB7E-92191E99CF07"></topicref>
+</topicref>
+<topicref href="GUID-7FB1B44E-B3FF-4765-88E3-A7FDB4FA8413.dita"
+id="GUID-A2724541-5D30-4791-B4EF-D41DD7668582">
+<topicref href="GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692.dita"
+id="GUID-A4EE8E73-4C62-445B-945F-D9552969BB73"></topicref>
+<topicref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita"
+id="GUID-D256F5A6-3AF5-4978-976C-4E0C5686754C"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-5DD344FD-C30D-47D8-B32B-644F1583A70B">
+<topicref href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita"
+id="GUID-76B8A735-7107-466C-B08E-9B18454869B7">
+<topicref href="GUID-58CA15F8-D984-5D07-8C00-161FA16A8FD3.dita"
+id="GUID-EE18D17B-B934-4692-95C6-BE9C74CE5F06">
+<topicref href="GUID-C38E6D35-43DF-54E6-809B-A7B871258944.dita"
+id="GUID-29D6055E-AADD-4981-AA0C-E56CBC540E2D"></topicref>
+<topicref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita"
+id="GUID-C2B8AA19-05CA-4454-9553-61D04AC689EB">
+<topicref href="GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita"
+id="GUID-387DE239-C3D5-4697-98B7-D2F89D69B2C8"></topicref>
+<topicref href="GUID-D2E19490-4179-548F-9DA8-9AE637FAC9E2.dita"
+id="GUID-6959A098-5F4B-4591-8DD6-143D13747370">
+<topicref href="GUID-C4CC3CA3-8C02-5F73-A482-4F849DD08111.dita"
+id="GUID-905EE182-39C5-495A-96B6-022698777013">
+<topicref href="GUID-3CAD7211-2164-5F93-9EA7-7167E1C14012.dita"
+id="GUID-FFF37C24-7D04-4426-AD39-814BCC50D516">
+<topicref href="GUID-BD7C45B2-11BF-5162-9F9B-B84E51C5C6D4.dita"
+id="GUID-ED83033A-1182-4D37-8E5E-1A024067D715"></topicref>
+<topicref href="GUID-A3320A1E-E85E-508D-A47E-E35824C947A3.dita"
+id="GUID-077DB33D-F45F-416D-AC39-E0597533B701"></topicref>
+</topicref>
+<topicref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita"
+id="GUID-E22FB347-9F72-4457-82BD-F99086F01FAB"></topicref>
+<topicref href="GUID-B5F98445-3CFF-5067-B89A-AC80F56C40C3.dita"
+id="GUID-3136A621-2B12-4216-B73E-DC35458B8675"></topicref>
+<topicref href="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita"
+id="GUID-B7117D80-8E89-460E-95BE-B587EC172B8C"></topicref>
+</topicref>
+<topicref href="GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99.dita"
+id="GUID-BB3D4795-9B90-49BB-8742-D31EE1587CF0"></topicref>
+</topicref>
+<topicref href="GUID-737ADA8D-5B7E-5408-9929-3EB9A3B4FCB1.dita"
+id="GUID-6CD5511B-AE86-4B38-91EA-FC44C5A89DA4">
+<topicref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita"
+id="GUID-D4BB5AB5-8234-44A6-BF72-953F4CF3C20B"></topicref>
+<topicref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita"
+id="GUID-68209A0A-A97E-44BC-9432-A02266D06AB6"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-D468BDDD-FC61-5571-A4E2-334B6BB9C1E3.dita"
+id="GUID-CA1CC888-E8F2-4BB4-A6B9-EED9DBE690CA">
+<topicref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita"
+id="GUID-4E7041C6-37FB-4783-90B7-DF6229DED33B"></topicref>
+<topicref href="GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6.dita"
+id="GUID-B841B565-97A2-413D-A3DF-0EC054FFAE97">
+<topicref href="GUID-2D6689C2-F17D-48A8-8EC9-3D83BCAA3681.dita"
+id="GUID-BC81563A-3B52-4B23-B8B0-CE73BD209859"></topicref>
+<topicref href="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita"
+id="GUID-FD7EE15B-0115-4EC7-8E77-6A3451C772EA"></topicref>
+<topicref href="GUID-4ADDDAFE-0941-4787-B07B-F5B7D8D5B1AA.dita"
+id="GUID-31ADF479-CA9F-44A0-9CDC-C32A879EECA8"></topicref>
+<topicref href="GUID-A399508A-DE6A-490D-9BFB-4FCF56FF9D4C.dita"
+id="GUID-D8172F24-C1C4-4E38-A22F-380B53B295A5"></topicref>
+<topicref href="GUID-13D2B45C-3A2A-497A-8D6A-87BE34D1DE69.dita"
+id="GUID-B8BFBE01-015D-4F00-96B0-CD9313C7BD53"></topicref>
+<topicref href="GUID-940E3C48-D0ED-419A-9172-E4856C6CA809.dita"
+id="GUID-4E0CF6AA-0265-4D58-AD1F-E9D6E0F0B600"></topicref>
+<topicref href="GUID-210A181E-5EB6-4626-9E7E-8761A2272D79.dita"
+id="GUID-00435298-E984-4A0A-8FF6-7167B19790B2"></topicref>
+<topicref href="GUID-AC6FCBB0-E4FD-4D30-B000-1F652B2EE96A.dita"
+id="GUID-A75A1D17-7D87-4AFC-A9D5-2F229E1E84A6"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1FB321DE-4A02-5468-9AF1-F3786EB678CF.dita"
+id="GUID-0B60672E-ED65-4EC5-B999-C9CA26742726">
+<topicref href="GUID-CFE3A216-E637-51C1-B258-2ADF4E0F4150.dita"
+id="GUID-EA5EF987-DDF9-4736-AA02-1CB887627F4D">
+<topicref href="GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6.dita"
+id="GUID-C49F89D4-2C0C-435E-9AEB-C0C04C84DE6D"></topicref>
+<topicref href="GUID-E6788741-EF34-57B7-B4D4-8AAC21B25774.dita"
+id="GUID-FAA8A348-BA9D-47D5-B249-9FC7DBD0AE39">
+<topicref href="GUID-27009193-6170-42B4-A258-E7B694EEC8EB.dita"
+id="GUID-FF4DA7F2-47AD-4BF1-8B6B-8C7B57CCD59F"></topicref>
+<topicref href="GUID-51F43258-B3D8-5EC9-85EF-67F09499C253.dita"
+id="GUID-9494B1A0-93F1-47ED-B1F3-25CCCEB18EBA"></topicref>
+<topicref href="GUID-FE2E8E58-6656-534E-A052-095AF559A482.dita"
+id="GUID-A1406192-4612-4339-80CA-3CB6C44DD44A"></topicref>
+<topicref href="GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita"
+id="GUID-CBDB9FA6-1FD4-4ED6-AD25-C3D7A95B2FEB"></topicref>
+<topicref href="GUID-9BE3DEBE-A1CE-5A2F-9746-1E6F2B5B050E.dita"
+id="GUID-9C811EF9-BFB9-4C7D-8459-9A6EB4347B2E"></topicref>
+</topicref>
+<topicref href="GUID-63730EBD-E5C1-5BA9-AB71-8FF668ECEF00.dita"
+id="GUID-319BCB40-CA68-4FEC-9DC4-F243C4536062">
+<topicref href="GUID-078492C7-7E25-5D6E-B6BE-3A5DAA4522DA.dita"
+id="GUID-12D91254-4424-4823-A747-6D5F47FD92C0">
+<topicref href="GUID-70CD9D74-8592-45F2-A91F-AD34ED93CB3D.dita"
+id="GUID-905A5BD5-9894-4826-BBFE-E8DA8F202149"></topicref>
+<topicref href="GUID-F4B61436-5496-4913-A769-794318C6B964.dita"
+id="GUID-FE10ED40-BFAB-42FB-BBE4-5C7B383F0F5B"></topicref>
+<topicref href="GUID-41F1AED1-7BE6-42CF-BC4A-E913A6F2D5E6.dita"
+id="GUID-FBA2D7F9-CDC9-4B07-9BC9-55C5AD2CAC24"></topicref>
+<topicref href="GUID-A8EE55C2-0636-44E2-8B2B-05EA8D4A96A4.dita"
+id="GUID-83410A83-C3B9-45BD-A2D5-E28832926987"></topicref>
+<topicref href="GUID-E173DF0D-DBE3-45DE-8763-453940DF3E5B.dita"
+id="GUID-1EDC3DCE-D8C5-4830-9FB5-D21DE335BF36"></topicref>
+<topicref href="GUID-D158746C-6043-4ED4-833B-85C82831A66B.dita"
+id="GUID-96D15869-796F-4243-9D0F-854802F319D4"></topicref>
+<topicref href="GUID-7440BE0A-6E4A-493D-8105-80DDABD6F3EB.dita"
+id="GUID-A8EF81B8-941D-457E-B62F-B4DC8A69A8AD"></topicref>
+</topicref>
+<topicref href="GUID-59D2B677-63D7-5FE7-98F4-549D9C235E56.dita"
+id="GUID-8E1D6136-22F5-468D-94EB-1AE7F6B7CCC0"></topicref>
+<topicref href="GUID-387DB01C-EA48-5A10-A960-9706F3D2D0B1.dita"
+id="GUID-924ABB70-5EEA-4207-9E74-4222FAEBEF64"></topicref>
+</topicref>
+<topicref href="GUID-7BCA8B7A-E250-5452-9837-26C60F71F14F.dita"
+id="GUID-6711F98D-F871-4087-9417-2789F6FB9904"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-CFFA84F1-2A5E-5E73-B168-C79C2E4DC75D.dita"
+id="GUID-2F70B264-808E-4AA2-BF58-EBA327016585">
+<topicref href="GUID-33BFC72A-2246-5366-81D7-72AB5B730F8F.dita"
+id="GUID-51EAC122-7EB9-4B34-8CCD-88922727B7E7">
+<topicref href="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita"
+id="GUID-BA62AB9E-95CF-4B5B-8E17-7ED992A0A48A"></topicref>
+<topicref href="GUID-99ACBD00-2F61-5984-BE77-91D5EF547289.dita"
+id="GUID-A4637348-4030-4F8F-8437-24EA5A788671">
+<topicref href="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita"
+id="GUID-DF89FA1B-4C09-4BAB-BF98-3C6EA6D7DEB4">
+<topicref href="GUID-49C93C36-D86B-4EEE-A8AB-4279312DF4BC.dita"
+id="GUID-78CB3752-1E54-40A2-B321-886708072C56"></topicref>
+<topicref href="GUID-008F9006-8548-443D-A7ED-4A8233E051C6.dita"
+id="GUID-17BE50F9-BCF0-4469-A33F-09289771AC52"></topicref>
+<topicref href="GUID-436B6DFE-D279-44BF-B099-B2547D50610A.dita"
+id="GUID-845CB7D3-7478-4DC6-AC71-CBF9B1146A4F"></topicref>
+<topicref href="GUID-22F4D9EA-9912-466E-B729-7706BC17BDA1.dita"
+id="GUID-C10942AC-9AEF-428A-B089-A7A9599615DC"></topicref>
+</topicref>
+<topicref href="GUID-C1C0E7DF-6519-5648-AE5E-6D149AF1A89A.dita"
+id="GUID-F2488028-19B1-4DC5-AFA2-8B964E7F4689">
+<topicref href="GUID-A7DFDC4F-56C2-46B3-8B76-A6488BE4ABE0.dita"
+id="GUID-62306088-F692-4FA4-B519-39A28E59D543"></topicref>
+<topicref href="GUID-5E7A1041-B0E1-47E3-A3BF-6C9AE221B98F.dita"
+id="GUID-D54BF97B-E095-4C13-B05D-FBDC0F39BD33"></topicref>
+<topicref href="GUID-FC46AA09-3E04-426B-BAC0-A992EA1AE0B6.dita"
+id="GUID-F271978F-6335-4D67-B6F2-5874B0ABD09B"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-9B8655A7-2F6D-53E0-8855-78D88BB84643.dita"
+id="GUID-1D46280E-D7B3-480E-9F96-FC845A8B74CB">
+<topicref href="GUID-0C0A85D1-BC15-502F-9DD1-A48C0A908CED.dita"
+id="GUID-29962AA4-F244-4377-AFEC-FC08E310666B">
+<topicref href="GUID-65282D5B-E911-5C7E-8571-0FCDCD1C1713.dita"
+id="GUID-C994AC1C-3EBE-435C-A931-EAE5AF87F038"></topicref>
+<topicref href="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita"
+id="GUID-C32A620F-CC76-42C0-96F8-7CB1C6E5D26A"></topicref>
+<topicref href="GUID-DE099071-8401-5DD0-B72A-672B307463A2.dita"
+id="GUID-15FF47E3-FF92-4977-80FA-BBF3DFD512A8"></topicref>
+<topicref href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita"
+id="GUID-9AB73114-A0AB-4211-A8B3-42896826BC4C">
+<topicref href="GUID-DA204619-9F02-5854-80BE-0AC6BB80D730.dita"
+id="GUID-DDFBBC8C-7487-4AD8-9E55-E33CC85C4845"></topicref>
+</topicref>
+<topicref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita"
+id="GUID-F10B7B8B-DC5D-4517-AB9C-FC0C9E8851D5"></topicref>
+<topicref href="GUID-643BECA3-FC08-58D0-8E1B-D3ECAEB25CB5.dita"
+id="GUID-385AEA99-CB86-4E91-9841-22B86495C0F6">
+<topicref href="GUID-B5696711-C79B-5239-B587-33507BF2B3BE.dita"
+id="GUID-E2DE92F7-36AE-4119-B142-004DAAE0E89E"></topicref>
+<topicref href="GUID-3F577531-9798-537F-8F8B-7CAB0257560C.dita"
+id="GUID-DF6E09BA-DF11-4F5D-BEF8-5D414DBBFB99">
+<topicref href="GUID-69CFCFF4-68C7-5345-ADF6-449E9E98297D.dita"
+id="GUID-9F56C7DA-ADAF-487B-8C7B-D2493E927DDA"></topicref>
+<topicref href="GUID-4C31BFCC-BC2A-55B1-8D3B-3355032E2062.dita"
+id="GUID-3EC57562-27B0-4422-8C54-9D10C0B1CFEB"></topicref>
+<topicref href="GUID-9EBF45BC-79C3-56B3-B52A-A4C3D615602C.dita"
+id="GUID-BFA7F64B-5877-4E07-A740-527AD0042488"></topicref>
+<topicref href="GUID-729289F7-D0CD-5B50-AA8D-A86C35034076.dita"
+id="GUID-A8C79F36-A481-48EC-8CD5-398F62759CCC"></topicref>
+<topicref href="GUID-4576A9FC-10EF-5D3A-9AFC-3BF9CE10EE2F.dita"
+id="GUID-E54550F0-93B5-466B-9A1E-04E8F86885DC"></topicref>
+<topicref href="GUID-89E0E8FE-6575-5A30-B25F-A873F5C5F389.dita"
+id="GUID-9190443B-DAFB-4765-941B-48E7383E2AE8"></topicref>
+<topicref href="GUID-22D7E6E9-D47D-52F0-A9DF-C69075DBEEC8.dita"
+id="GUID-007144DA-C7BB-4684-A615-2531C964D31E"></topicref>
+<topicref href="GUID-12E2AFC9-0010-5ACE-9635-6EBC4036E36A.dita"
+id="GUID-3EA5DE88-2D38-4026-93BC-0C2C6FB7C40D"></topicref>
+<topicref href="GUID-0EAB8D75-AA27-5548-8D0B-FC394AC79358.dita"
+id="GUID-EF533C50-9BF4-45A5-9A52-A0F1960B7FEE"></topicref>
+<topicref href="GUID-E1634502-483A-51F3-9F5D-C863C8C9465A.dita"
+id="GUID-7FC6D88B-36F7-4AED-A92B-1537CBCDB640"></topicref>
+<topicref href="GUID-3F1FA838-4B65-5692-8B73-AFB9896E5F10.dita"
+id="GUID-2336E6E5-3C51-4CA4-8499-8D7B37EC0F1F"></topicref>
+<topicref href="GUID-728F278B-30C8-5FA8-AD03-4C759690416E.dita"
+id="GUID-F45F334D-40E2-46DB-9A86-8400398CBF3F"></topicref>
+<topicref href="GUID-7C645FF2-4785-5716-9674-B3A224F6C0D9.dita"
+id="GUID-E46ACE89-447A-4277-93BD-3D7E20C7295D"></topicref>
+<topicref href="GUID-E23D699C-D087-5ADA-BD46-BA5D68DD0047.dita"
+id="GUID-B81102EC-48A9-4ADE-99E6-8CD87BAE9A01"></topicref>
+<topicref href="GUID-4CE611C7-1FD8-5DAA-AA04-5B80804D6DD7.dita"
+id="GUID-39F86824-568E-4BD9-9CDF-6B84F3BDD2C6"></topicref>
+<topicref href="GUID-10F30EB2-1431-5219-B1F8-95895FD5A448.dita"
+id="GUID-EB78B34B-982B-4A39-AC47-1828A7BF5946"></topicref>
+<topicref href="GUID-B6101F63-280D-5CF7-92EC-337FEDF5E148.dita"
+id="GUID-DD53EF3A-DCCD-4E74-842F-6EAE5E195D38"></topicref>
+<topicref href="GUID-7E2891DB-372F-517C-95A4-D706EF1DB8B3.dita"
+id="GUID-7CCE83C1-FD7D-46BF-BEB4-D9108B5EA40A"></topicref>
+<topicref href="GUID-215D2BD2-1757-5869-A589-98BE332EB4E2.dita"
+id="GUID-681A3EAE-FD04-43B0-AF36-7B2375033E85"></topicref>
+<topicref href="GUID-18CB4763-5EEE-5D0C-A293-D84563F06DB1.dita"
+id="GUID-26715A95-7942-4844-9326-116AE984A445"></topicref>
+<topicref href="GUID-B76CF2DF-8705-5C44-BBE5-29706957578D.dita"
+id="GUID-7CA10EE0-3A98-44F3-B006-6CE2CE390ECC"></topicref>
+<topicref href="GUID-54D1B7E1-39A5-5BB9-BC33-1047FDE941D9.dita"
+id="GUID-408E8070-B533-470D-B79B-4EE6E8F6FE90"></topicref>
+<topicref href="GUID-026164D5-6A32-5688-9D28-926DC0A61F35.dita"
+id="GUID-00D0C9B0-23F1-4E95-A056-9DEDA7CC19D4"></topicref>
+<topicref href="GUID-A6B5CB55-9928-580E-AE62-6017211457B8.dita"
+id="GUID-5DDAF98A-1B5B-448C-B15E-5E6F9FC14B4E"></topicref>
+<topicref href="GUID-B8E16769-0B82-57BB-8DA0-FEB4E181FA84.dita"
+id="GUID-480B186E-9A6E-4B36-A70B-D13CE1649CCC"></topicref>
+<topicref href="GUID-DC890B80-18F4-5D4A-8476-DBEB5FA20842.dita"
+id="GUID-6701FCE1-3205-4748-9102-234FA340AA7A"></topicref>
+<topicref href="GUID-519AEE28-D3A8-5430-88CA-178CA338D592.dita"
+id="GUID-DB83B8C7-CED6-4405-A8B1-0291E72227EA"></topicref>
+<topicref href="GUID-E632CCD2-EE53-5546-9603-E9A01A65614A.dita"
+id="GUID-65170F14-ADCD-4962-BCE2-049546A2F6DC"></topicref>
+<topicref href="GUID-8D7E5566-E297-5418-AC65-2FCA50FD1908.dita"
+id="GUID-5AB62E48-0419-40D3-A227-53DFCEAFF021"></topicref>
+<topicref href="GUID-DB51983B-9991-57F3-85E6-F770C35A9023.dita"
+id="GUID-A9B0FB78-8AC4-4164-BDFF-29975ADC645C"></topicref>
+<topicref href="GUID-0B97A12D-4EA8-5B08-9D59-4A3C892D01D4.dita"
+id="GUID-F72C5AD2-153B-4717-B736-1F0966B4EE4C"></topicref>
+<topicref href="GUID-208B15EA-ACDF-5305-A38C-D18AD79576A2.dita"
+id="GUID-623740B0-4EFB-40E7-9ECE-348E85A5BE09"></topicref>
+<topicref href="GUID-4911D998-5B1A-53E1-B1A7-920748489CD0.dita"
+id="GUID-3C1A45F9-4CD9-4D65-8DEB-883F2AE5CC13"></topicref>
+<topicref href="GUID-6D59E35B-6572-519A-8CFD-CB7781DDE631.dita"
+id="GUID-C7F9F86F-FE3D-40DB-B5B4-4333DC1F7A8D"></topicref>
+<topicref href="GUID-2822DEF4-F7E2-5795-BD67-14BF77C1EB85.dita"
+id="GUID-2DF18283-64B0-4F04-B8A6-19D85FEDF758"></topicref>
+<topicref href="GUID-4E45570C-A0EF-522C-BD67-FC31E4092740.dita"
+id="GUID-A7D2836D-49EE-4039-979B-A024678ADCFD"></topicref>
+<topicref href="GUID-A658690F-8F46-56F7-8CF6-06757C550A9A.dita"
+id="GUID-0579316E-8BBA-4197-870E-874DCE9E1C03"></topicref>
+<topicref href="GUID-EAFDBBC4-0F65-5BA9-9967-EE8D50BBCCB6.dita"
+id="GUID-3AA7160F-2C5E-49EC-8834-039B55DFF7A9"></topicref>
+<topicref href="GUID-1F809632-82B0-5B4C-92DB-9C4D1316AF03.dita"
+id="GUID-A551DF8D-AC90-4360-BA8C-C087E6A93124"></topicref>
+<topicref href="GUID-D01CC090-60D1-5D1D-AF87-C77D5DE46BAC.dita"
+id="GUID-B0160545-92B6-4540-BB02-DAB25326C9A3"></topicref>
+<topicref href="GUID-03194FB8-CC3F-5B8D-8719-3756FAC88102.dita"
+id="GUID-3CC2E5CB-5457-460F-B0CA-2824DF9760A4"></topicref>
+<topicref href="GUID-0FE4CC82-F638-5CDC-AC3F-096A05807480.dita"
+id="GUID-5FA934C3-E310-4C3D-AB7E-0CD1DD703A8C"></topicref>
+<topicref href="GUID-CE18D940-FEB9-5678-A3CC-AA8A979AD4DA.dita"
+id="GUID-B0390270-40A7-40F0-8688-5AD1D0E8AD12"></topicref>
+<topicref format="" href="GUID-9660B072-9BD6-5A84-B45A-636F0D06D467.dita"
+id="GUID-5533560A-CB9C-4C8A-8FC5-717772BF2631"></topicref>
+<topicref href="GUID-F06A89D5-EBC5-59BF-BE92-CE5C5076C3C9.dita"
+id="GUID-208E3515-A917-4CE3-BFDB-8BDA801FFB3E"></topicref>
+<topicref href="GUID-34A5AEFE-B785-58B0-9A75-5898EDFD6834.dita"
+id="GUID-B4896AED-6D02-4D9C-BD2D-88AC292C2E7D"></topicref>
+<topicref href="GUID-06DD6077-2ABD-5268-878E-9B26A3C4BE20.dita"
+id="GUID-309EB811-C7BD-4017-A585-7BCDD0266067"></topicref>
+<topicref href="GUID-D87C96CE-3F23-552D-927C-B6A1D61691BF.dita"
+id="GUID-C30A9B7D-F217-442E-87DF-6D71FAA4868C"></topicref>
+<topicref href="GUID-F620A451-9135-5CFD-9F76-F02AE830E094.dita"
+id="GUID-27006FB9-7DF5-42DC-83CD-1245C943B19D"></topicref>
+<topicref href="GUID-7A1B0CAC-BA12-512A-98B0-86CD317E4B24.dita"
+id="GUID-92C1E487-A443-40A6-87D1-BA57B6E6C71F"></topicref>
+<topicref href="GUID-C2A203B1-3D30-5CC0-BAF8-0624E9A8B2A9.dita"
+id="GUID-4FB6055C-ED5E-4CF7-AE9A-0A688A72377A"></topicref>
+<topicref href="GUID-78865979-D519-5476-91FE-9EF3386AC8F5.dita"
+id="GUID-59AA55DA-E3FA-4ADC-838E-E0DEA791C73D"></topicref>
+<topicref href="GUID-B82829FB-1F3D-53C9-8E3B-E9F8E3820E24.dita"
+id="GUID-096E9F32-E870-4673-AEBF-4B6672F4D590"></topicref>
+<topicref href="GUID-4CF02F12-7030-5E49-B0CC-593F02EF6FA7.dita"
+id="GUID-737F676B-072A-4D58-A803-07F38DDE7462"></topicref>
+<topicref href="GUID-0368678A-6963-5558-8DC2-0E618B927538.dita"
+id="GUID-5123D183-9B4F-4FCE-93C7-D1C46C934D95"></topicref>
+<topicref href="GUID-A4761D73-E2EA-512A-863B-D19F8698C69A.dita"
+id="GUID-4427085C-A024-4B23-83B0-1E36D274982B"></topicref>
+<topicref href="GUID-A09EAA46-47B4-5E3B-85F9-F6256B8B10CF.dita"
+id="GUID-8496AA28-513B-4C9E-8A54-36FDF95CDA29"></topicref>
+<topicref href="GUID-CD516F8E-EC7B-5949-BD03-713637CC866D.dita"
+id="GUID-E6312796-9091-4EEA-8FC3-61036CA4F96C"></topicref>
+</topicref>
+<topicref href="GUID-00FFF2B3-F8E4-5CBF-B031-240D98BB2111.dita"
+id="GUID-B03DA670-D8C2-47F6-8320-CD9109D890F4"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-4FCF605D-52D9-5B2D-80CF-80C940F680CA.dita"
+id="GUID-20FB2AB8-1C26-44AB-8703-F376D7F55724"></topicref>
+<topicref href="GUID-C3919681-BB41-4CFA-812F-2D7989E952DC.dita"
+id="GUID-D7A5F52B-5E2A-46D8-80D7-56D8D7BEB457">
+<topicref href="GUID-A9D8F93F-BB46-453C-939E-7C65976A9BDA.dita"
+id="GUID-872239C1-9FC2-4EB6-90B5-17C9456756C2"></topicref>
+<topicref href="GUID-F746C61E-BE8A-4F3B-B8F7-92964B36B298.dita"
+id="GUID-2D306437-2850-4260-B152-81E7C463F835">
+<topicref href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"
+id="GUID-7192C2CA-B8EB-444C-8EFE-0AC5952DB50C"></topicref>
+<topicref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita"
+id="GUID-921858E2-CB35-4990-841B-5B63A9971B2F">
+<topicref href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"
+id="GUID-272EA4C3-49F7-43E5-B96E-0FB463F0F06A"></topicref>
+<topicref href="GUID-54D5CBD5-0A1F-4835-B5F3-492728B9F51E.dita"
+id="GUID-99CA62FE-62B7-48DE-8C45-36B79DF3BC8A"></topicref>
+<topicref href="GUID-7D727FC9-EF32-49FD-B72E-E1E00315206E.dita"
+id="GUID-ED3D65D8-F9CD-4095-BF97-11924BAF310D"></topicref>
+<topicref href="GUID-DB6F586B-932A-4BDC-BA48-79C7D3FD9931.dita"
+id="GUID-60CC4E27-BF20-4047-92EB-95DF858F4D4E"></topicref>
+</topicref>
+<topicref href="GUID-C7AA92A9-9595-439A-A3E7-769E36D61FEE.dita"
+id="GUID-7A2596EE-9E45-4200-A6D6-5CCE16550372">
+<topicref href="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita"
+id="GUID-16708D4B-38AC-4670-A769-C411AF965A4D"></topicref>
+<topicref href="GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F.dita"
+id="GUID-497B0C95-57F9-41C1-B71D-D9E332099F39"></topicref>
+<topicref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita"
+id="GUID-357F177D-8F86-4CF2-92C6-57EAC0B38251">
+<topicref href="GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F.dita"
+id="GUID-AF3E3014-BE9C-4EB9-A6A8-7799DC3DE230"></topicref>
+<topicref href="GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06.dita"
+id="GUID-8FA4D233-11FF-4D7E-88D0-2083D97A9B73"></topicref>
+</topicref>
+<topicref href="GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita"
+id="GUID-0FE52A50-C9AE-4F78-B7FC-633F4254E19C"></topicref>
+</topicref>
+<topicref href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"
+id="GUID-9380C8A7-3102-4619-B218-51E75D45701A">
+<topicref href="GUID-178488C1-5453-490F-B168-9D73DB5BAE47.dita"
+id="GUID-D11AC3C1-1B97-42A6-B287-14822B1AD3C0"></topicref>
+<topicref href="GUID-0371FD21-D988-4560-891F-2840C36AB2E2.dita"
+id="GUID-7830433E-BB46-42F2-8F22-5731EA1DC388"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-51AD5CD7-E594-40A0-A7A8-A09FEA20A02C">
+<topicref href="GUID-5072BE46-B1B4-5C3A-BF55-BEA7443E7657.dita"
+id="GUID-4007CEA3-3CD8-4F97-A6F9-9D0A7D18BD13">
+<topicref href="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita"
+id="GUID-452B9A6B-18ED-4A1F-AF0C-13491A982830"></topicref>
+<topicref href="GUID-9208E03A-CC7A-57A9-84BD-778B99040842.dita"
+id="GUID-25E51BB9-4482-4F7F-97A3-AB8BEF0E0EE1">
+<topicref href="GUID-5D14ADEC-ED83-5FA4-B551-C57CAE4F79BE.dita"
+id="GUID-53185367-EA6D-4F7B-9049-C5B16F16A08B">
+<topicref href="GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023.dita"
+id="GUID-DE6EE121-E6A4-4992-BDBD-3D1C9FA2D0D4"></topicref>
+<topicref href="GUID-7AAAC6EA-784D-51E6-AD6B-521C9F5C4DBD.dita"
+id="GUID-56E62F22-29DC-45C2-AC65-CE6D3AC9172B">
+<topicref href="GUID-84922B27-FDCF-56FD-91ED-5E0BFE3ED0E4.dita"
+id="GUID-2CDE94CD-0B27-4094-A293-0B8C07101A93"></topicref>
+<topicref href="GUID-548CC331-8E38-5627-A925-EA386BE90258.dita"
+id="GUID-BA7A9DED-2129-45AE-AFA6-E04180977F23"></topicref>
+<topicref href="GUID-C3086910-D7B4-5549-BF65-374C8B602E8F.dita"
+id="GUID-438136B5-19E9-44C5-BB45-A35D74EBA8BB"></topicref>
+<topicref href="GUID-FDDAF8E9-4CAB-5489-B578-A5362E2140C1.dita"
+id="GUID-4ADCB5B6-91F0-4404-BA91-52EC0654F05C"></topicref>
+</topicref>
+<topicref href="GUID-017A0B4C-3FC2-5CFD-9D81-6A5ABF982D98.dita"
+id="GUID-4EEDB609-F58A-4194-A4BD-3AE406887263"></topicref>
+<topicref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita"
+id="GUID-B9C4372D-0B72-4C68-92A7-0FC8D0497DA8"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E2DE2C6F-E071-5E88-96F1-D71DDED84609.dita"
+id="GUID-9992D789-5E87-4B9E-AA8A-9375C0B36816">
+<topicref href="GUID-D79380CF-22B5-5865-9366-44118E8ECA2E.dita"
+id="GUID-9624D846-FFA6-425E-A64C-263951AD2FB3">
+<topicref href="GUID-4A4951D6-92A9-596D-B84C-B95E78CE8AA8.dita"
+id="GUID-700D8730-1DE5-4599-9670-DCE49DC0109D"></topicref>
+<topicref href="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita"
+id="GUID-F5B42F64-2326-43F7-B5CB-4AACB7E332A1"></topicref>
+<topicref href="GUID-85372267-C352-4389-8FC9-32B8E1622BC9.dita"
+id="GUID-8D229C67-A79E-4D89-A40F-35501C444CE1">
+<topicref href="GUID-6F78B032-00EC-4638-8B65-88CA99075B4F.dita"
+id="GUID-E31357CC-895E-4212-9E83-263E277512CD"></topicref>
+<topicref href="GUID-788031A5-75C1-420E-9E2B-71E09FF08ADF.dita"
+id="GUID-E023D4D3-6964-4A9B-AA7B-74AF9DD815BF"></topicref>
+<topicref href="GUID-C8674786-6C09-45C2-BA5D-4F69EBD8E42F.dita"
+id="GUID-4A5A868D-7997-49B8-A098-A4AAA5BF5BDA"></topicref>
+<topicref href="GUID-BB149ADF-3F4C-426C-8852-78FF4C144AD5.dita"
+id="GUID-16A61973-D751-406C-BF1F-3948313C0ECE">
+<topicref href="GUID-96CE7427-83DB-47DE-83FB-A65920EE0319.dita"
+id="GUID-72722481-F0D0-4723-8A60-60356D65A76C"></topicref>
+<topicref href="GUID-FF6846AA-7E8B-40DC-B6EC-32A8550F4942.dita"
+id="GUID-F9F9ED57-522F-41C3-B927-16D7387BF79A"></topicref>
+<topicref href="GUID-189DA86A-BA77-4314-9597-E3C92B3C82D9.dita"
+id="GUID-E0020B84-89A0-4306-B521-2F964BE11270"></topicref>
+</topicref>
+<topicref href="GUID-C7589C93-B517-4251-ACFB-B03E07993242.dita"
+id="GUID-A18BF955-9A87-4B38-A253-B83C5C568E7F"></topicref>
+</topicref>
+<topicref href="GUID-2016EF4B-F001-5EB2-8095-6048582511D6.dita"
+id="GUID-9EF54517-99CA-4C86-A0E3-C2074CDB5A70">
+<topicref href="GUID-CF6014E9-FB59-4715-B245-5826090DDF28.dita"
+id="GUID-41DF6D9C-AA90-41A4-813E-CD96D8D2596F"></topicref>
+<topicref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita"
+id="GUID-904083F9-6DD1-4961-B1A2-6958F4A6D35B"></topicref>
+<topicref href="GUID-38BE7105-309E-5372-98EE-BCA0ADD0ACBA.dita"
+id="GUID-B7D3A03A-6A25-4DE4-B296-D99D21DBB596"></topicref>
+<topicref href="GUID-5777D16D-71FA-5929-9557-4C532C59ECBF.dita"
+id="GUID-ED698BAE-D431-48E5-9BD6-DCBE4C1B6322"></topicref>
+<topicref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita"
+id="GUID-5640B7F9-38FD-4B4A-A650-7338BDF97439"></topicref>
+<topicref href="GUID-BBC49BE2-5147-5988-93FD-9CECF90BB223.dita"
+id="GUID-EA452B15-B8A5-4A17-8780-C7670302D999"></topicref>
+<topicref href="GUID-6590B534-D976-5305-BE95-48DD05120DFB.dita"
+id="GUID-F50B1C01-3465-4612-83FC-8377B2CD004D"></topicref>
+<topicref href="GUID-86086CA3-9A2E-4024-BE80-1763614A5079.dita"
+id="GUID-24601C5E-124D-46D7-8683-70F2622030DE"></topicref>
+</topicref>
+<topicref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita"
+id="GUID-D7BE438B-F0C2-403A-ACA7-5A51C79A00AA">
+<topicref href="GUID-4008963F-F4DF-4628-97D4-5B005D699E4B.dita"
+id="GUID-2EE5EA67-813B-4021-8C5D-A6FA53898502">
+<topicref href="GUID-FE76E172-6B94-47CC-9551-6DD62C04368D.dita"
+id="GUID-D1965428-E6A8-4C11-A14F-68BE8EA6D41B"></topicref>
+<topicref href="GUID-0C02D927-0B06-49BD-8738-149DCDDB23FC.dita"
+id="GUID-25977E53-161E-41FD-A0EC-2C77B52546ED"></topicref>
+<topicref href="GUID-B51EA0DA-5BCE-4A8C-A7A7-1FE096F7FF27.dita"
+id="GUID-EA258902-2C3E-454D-983F-23833183BB26"></topicref>
+</topicref>
+<topicref href="GUID-3B7D05F9-2BCA-4B53-AE9F-99B0B3B7C4A2.dita"
+id="GUID-150F18F5-7B9E-471B-8587-026455CBEF11">
+<topicref href="GUID-006C503D-1E52-450D-A4DA-8C19B141E09F.dita"
+id="GUID-B647DAAC-2E91-4BD3-82AD-A5127508BB6E"></topicref>
+<topicref href="GUID-E2B67F14-EC4E-41B6-9F8E-AB58B9E8D7B6.dita"
+id="GUID-7750E992-D9D1-4ACD-B95E-E6F30CFA51E7"></topicref>
+</topicref>
+<topicref href="GUID-89C83394-5F37-4AE5-AC5F-6006D2DD47DA.dita"
+id="GUID-2806BBE4-B3AB-4FCD-84CF-2E21E17957B6"></topicref>
+<topicref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita"
+id="GUID-B936E090-B611-484C-8AF9-2218EF89E0CC">
+<topicref href="GUID-ADB9AD91-37A2-4FE6-B378-C43CD0A7B513.dita"
+id="GUID-A2D97B61-6133-483E-A6D0-AB4557BBF13A">
+<topicref href="GUID-209F3620-2361-4AED-9F7A-02E72F9EE8FE.dita"
+id="GUID-5A4EA51A-4C9E-417D-AA0B-5E63839ACA36"></topicref>
+<topicref href="GUID-AA49FB68-22A1-417F-AB57-9C22CE016B21.dita"
+id="GUID-83C425CA-7BE0-456C-9F52-5A6DD64C58E9"></topicref>
+<topicref href="GUID-383C128C-15EB-4C64-9A1F-F1EA826323D0.dita"
+id="GUID-07B9A319-02FB-4B81-92F4-33893E5C8B54"></topicref>
+</topicref>
+<topicref href="GUID-545DA961-217E-49CA-A90E-7A41E2C03A99.dita"
+id="GUID-02379F57-D8AA-46BC-9E29-9D38FB46B134"></topicref>
+<topicref href="GUID-B58D282E-E6EC-4AE1-96DB-30A5FB850563.dita"
+id="GUID-6D2C983C-D967-4049-BBAC-1A3F11346BD5"></topicref>
+</topicref>
+<topicref href="GUID-41F33130-7968-5016-9ACE-9E9F906118DB.dita"
+id="GUID-B3E7A72D-6D16-47E1-999E-F82A5FE2DC48">
+<topicref href="GUID-66C1493D-5B85-558A-9A39-454E6EBA307B.dita"
+id="GUID-DC348EF0-8B1E-4EC9-989E-5A498A27075B"></topicref>
+<topicref href="GUID-E65D91AE-482F-5592-B83C-0F29126C2EFA.dita"
+id="GUID-B9244314-056F-456F-81B8-6BE6EACA3DD3"></topicref>
+<topicref href="GUID-186B9876-2A08-5F23-BB49-49EC34C51507.dita"
+id="GUID-A75EB8E4-AC1D-4779-B0F8-247F516EBA69"></topicref>
+<topicref href="GUID-6CF8A41B-C2DD-5D57-A71D-6405CE08A06B.dita"
+id="GUID-C0ADB441-0B45-473C-A767-19EABED015A5"></topicref>
+</topicref>
+<topicref href="GUID-539C4AA4-FF3F-4D6B-90A5-677092DBE54E.dita"
+id="GUID-BBB8B2C3-7F07-4D95-AC9D-66E953C0E053"></topicref>
+<topicref href="GUID-457628C5-2972-4432-A03F-CD8CC0E1B60A.dita"
+id="GUID-51BCA309-11F5-48AE-9158-9F2C13231FA9"></topicref>
+<topicref href="GUID-80F2DEC8-152F-4681-A9D0-8EB776131313.dita"
+id="GUID-4DA9C2FB-FBA2-4AFB-B373-DA9479CEFABF"></topicref>
+<topicref href="GUID-B7B7F611-BCA0-498F-BEC1-16B276F680D5.dita"
+id="GUID-03FD4B96-95CA-49FF-BE8C-D1E9086A390E"></topicref>
+<topicref href="GUID-9D278187-8B5E-581D-9869-EE8861048F93.dita"
+id="GUID-1F5BEE93-1E79-4BCA-8B74-FBDA76384415"></topicref>
+<topicref href="GUID-E7C41361-C0B9-5341-A864-B59770FB7C9B.dita"
+id="GUID-3FEB9140-2333-45C6-828C-B561152D21D3"></topicref>
+</topicref>
+<topicref href="GUID-C585871E-BE82-49EF-A4B9-4340A7154264.dita"
+id="GUID-1327B0CF-D518-4D69-A4F6-24D699ED789C"></topicref>
+<topicref href="GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341.dita"
+id="GUID-2DBCCA7C-4422-4802-B1C6-B9A966C8F2AC"></topicref>
+<topicref href="GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E.dita"
+id="GUID-6EB9B68E-FCD8-41AA-B3BF-BDB093F35CD4"></topicref>
+<topicref href="GUID-3EB1C34E-584E-595D-A339-DE170A96AEBC.dita"
+id="GUID-1478054B-DCBA-49F3-8A9B-01C24F6A672A">
+<topicref href="GUID-BE893F87-E7F6-56E5-BD27-328B532F8332.dita"
+id="GUID-CC6ABFBA-02F1-4E82-BCAB-CD7FDDD619FD"></topicref>
+<topicref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita"
+id="GUID-A96C44B7-948C-45B0-A516-28ED0D8BEFCA"></topicref>
+<topicref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita"
+id="GUID-11688315-71EA-4A22-B56A-34E2EAAD2A9E"></topicref>
+<topicref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita"
+id="GUID-C112B77F-395C-4EF6-A37C-E12A893C0887"></topicref>
+<topicref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita"
+id="GUID-5891E25D-985B-47D3-9AD0-571B6595BE3C"></topicref>
+<topicref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita"
+id="GUID-F935A321-84B5-466F-866D-55560A5B546E"></topicref>
+<topicref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita"
+id="GUID-586E85B1-1FED-4623-8035-2BAC871D37B6"></topicref>
+<topicref href="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita"
+id="GUID-A41F846E-02E3-4529-BFDC-3E34B9B914F8"></topicref>
+<topicref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita"
+id="GUID-D9871403-3AEC-4554-875F-01EB8890881A"></topicref>
+<topicref href="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita"
+id="GUID-70B39C70-9034-46AE-BC30-22E4718C256E"></topicref>
+<topicref href="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita"
+id="GUID-A222E47E-6290-491F-B6F6-7DAB5FF28B09"></topicref>
+<topicref href="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita"
+id="GUID-D051CFE7-402C-4A19-919C-C007DF4457C1"></topicref>
+<topicref href="GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita"
+id="GUID-32F55B4C-B4B6-463B-98F0-8DCE3FC26E0F"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-2C5B58F2-6BD2-5C2B-8E1B-CFB3D7EB6ED9.dita"
+id="GUID-415DAF8A-DEEF-411F-B529-25C59E1131F2">
+<topicref href="GUID-D6BEAF0D-844D-51F4-8DB7-FB1D60E17FE3.dita"
+id="GUID-F00640EC-55C6-4660-8BFD-9D0FF12D3AC6"></topicref>
+<topicref href="GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16.dita"
+id="GUID-39A5AAC8-BE59-4917-9BAB-5B601A2869BB"></topicref>
+<topicref href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita"
+id="GUID-528EC858-97E6-485C-97D2-BF1D33B3C726"></topicref>
+<topicref href="GUID-4492D5C1-C64E-5561-8A3F-8D887603B6FB.dita"
+id="GUID-06B737AB-90EF-462C-B65F-CD7A948CE5F0">
+<topicref href="GUID-CDE8CD85-8467-5B36-A0AC-41D1D98151CA.dita"
+id="GUID-B18D3DD0-518A-4620-A1A2-0FAE59C3A636">
+<topicref href="GUID-1ACD01D1-2055-581A-9478-2C0D7D1CF9E6.dita"
+id="GUID-F68B8EBB-F80E-41BA-981D-8D5642E872BA"></topicref>
+<topicref href="GUID-C9D4D586-58BF-5676-A53F-9C3A51101430.dita"
+id="GUID-464286E5-20CC-4A5E-AF3D-DF6182C0AACC"></topicref>
+<topicref href="GUID-AF2CE612-F12E-5A18-81A5-C303992D2D46.dita"
+id="GUID-489EC5E8-D858-4C95-AC90-6EEE6F0D2960"></topicref>
+</topicref>
+<topicref href="GUID-E331B72B-84AF-558A-9B8F-73E5E50B58C7.dita"
+id="GUID-1E2BB9C5-EFCB-40BB-9076-200F53E4370A"></topicref>
+</topicref>
+<topicref href="GUID-5B3F5296-D6D0-5D25-8362-141DF5927E52.dita"
+id="GUID-F5C37AE2-942A-4AAD-AF03-2FE2AD3C457A"></topicref>
+<topicref href="GUID-D32E52C9-F05C-5F1E-8B49-243D555C353C.dita"
+id="GUID-962EF538-A21B-490E-B2DA-09818FC84AA7"></topicref>
+<topicref href="GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719.dita"
+id="GUID-5A56EF76-307F-4D50-AF36-3D9BDFE50B6B"></topicref>
+</topicref>
+<topicref href="GUID-E21287EF-7211-590B-A1E3-E0B37069FCB2.dita"
+id="GUID-DD935600-943B-4DD3-BA0C-A9E2983A4393">
+<topicref href="GUID-6565B222-4036-5C3D-8319-4CDDA3F2098D.dita"
+id="GUID-A925010C-7A40-4418-8C2A-00E7F2F2F132">
+<topicref href="GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9.dita"
+id="GUID-FF656A49-1C77-4F1A-B480-5E4BFDEE2CBC"></topicref>
+<topicref href="GUID-8B37D53D-77E1-58C6-9A44-3376A450228B.dita"
+id="GUID-065A16D1-ED4B-499C-9683-2E692A96C9C0">
+<topicref href="GUID-BE70DCBF-366A-5054-B0F1-7FCEF45FC735.dita"
+id="GUID-7AB76C13-E1E2-4642-B0DB-2D84E59285B4"></topicref>
+<topicref href="GUID-A4ECB450-02DA-5E85-91AC-4C8BDE0B9B58.dita"
+id="GUID-21AEDA55-670B-4676-B979-C2AE62058906"></topicref>
+<topicref href="GUID-8F6D6934-8FF0-5045-8AB1-74384BE792EA.dita"
+id="GUID-9CCAB090-254A-4AB2-9ED7-319095BF5928"></topicref>
+</topicref>
+<topicref href="GUID-66402932-5C44-556B-A7AC-1C2D245C8B05.dita"
+id="GUID-8F90D05A-1977-4BB0-A8F6-28C044B7EF31">
+<topicref href="GUID-29AE56A8-DA08-5FB3-89F1-26B4308336BC.dita"
+id="GUID-182CB3E0-29A8-4EDB-80D7-FD681F32BE49"></topicref>
+<topicref href="GUID-21740D07-5F49-5D9C-9FEA-92958AF3805B.dita"
+id="GUID-DB9CDE57-0EBF-4E64-9AAF-D5885293EC45"></topicref>
+<topicref href="GUID-B4039418-6499-555D-AC24-9B49161299F2.dita"
+id="GUID-884FC18E-E56B-4933-9591-A59D37931DC4"></topicref>
+</topicref>
+<topicref href="GUID-04F076C4-AFFF-571C-8B73-B8589B58EC56.dita"
+id="GUID-CD16AFFA-127C-4148-8964-79C15C195354"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-440FDF7D-B9A0-5767-9FF8-412803C0D2A9.dita"
+id="GUID-01062172-7AD9-4B28-A8D9-732FEE61897A">
+<topicref href="GUID-08CEB0E8-7E94-545F-AA0C-E27CED08C167.dita"
+id="GUID-BF6EE0B3-2B82-4A2D-9FB3-B84F85833A07"></topicref>
+<topicref href="GUID-6FCB023F-E9E0-5C3D-A8BA-92B1B4733258.dita"
+id="GUID-DD7B19D5-3BB7-4EBF-AB09-CAB9410EDE3F"></topicref>
+<topicref href="GUID-39FA0ECE-D403-5F02-AC5D-7BC8E1669E8E.dita"
+id="GUID-79E29AA4-8B5D-4104-A589-750929C0376F">
+<topicref href="GUID-B661DFBC-9779-597D-A1DA-4FE085DAA61A.dita"
+id="GUID-1499EA6E-FA5B-404A-80A6-054C8D90A6C6"></topicref>
+<topicref href="GUID-44927609-CFD1-5D09-BA78-7A5AB981DD2E.dita"
+id="GUID-5FCA6B82-80E7-4F65-9991-5BEE66B235E8"></topicref>
+<topicref href="GUID-3BC54F46-5F81-5F2D-ACF8-E8E0A0D5A345.dita"
+id="GUID-D00A2495-BC6B-494F-A6B7-AD121980D110"></topicref>
+<topicref href="GUID-1261F3A3-6F27-5A85-81FF-A6858F03F711.dita"
+id="GUID-A3DF1B7F-1C7D-49CA-A6F6-FC2F88E589FB"></topicref>
+<topicref href="GUID-95954813-A4BC-5557-9E42-EB1AB1A6F381.dita"
+id="GUID-9E8FFEF3-C4A3-4AE9-AA9D-3EBF943D7C4C"></topicref>
+<topicref href="GUID-2AC1C0B6-0405-5F1D-A813-39DA35808182.dita"
+id="GUID-07775CE3-3C9D-40EE-B2BD-02A26DC0EF2C"></topicref>
+</topicref>
+<topicref href="GUID-F7C9824F-0598-56A1-AC2B-24904E997588.dita"
+id="GUID-D1705B0F-A32D-48F7-982B-5B8315E9137B">
+<topicref href="GUID-F51062B0-90BB-5659-9F23-2FF25116D78A.dita"
+id="GUID-F0CD86FB-12CD-4360-ABDD-4A047591895B">
+<topicref href="GUID-78175610-72F4-5CAF-B1E9-9A761347C9DB.dita"
+id="GUID-D0278C91-EBAF-4B0D-B29A-536DAAA72777"></topicref>
+<topicref href="GUID-C90FE253-B88B-5F01-AC8B-E89249083C93.dita"
+id="GUID-B57DAC1C-F1B5-400D-B524-36B0ECB0A373"></topicref>
+<topicref href="GUID-BB39DE14-B314-59CB-A8EC-BBD2A5C1BCD9.dita"
+id="GUID-13EE7B9A-40D7-4DE9-907B-0BAEB3BCC663"></topicref>
+</topicref>
+<topicref href="GUID-3C2E0C1A-DC7A-55F7-8005-39CEE71CD0A0.dita"
+id="GUID-4FA1DE86-19DD-4CA2-AF15-F634D5D19140"></topicref>
+</topicref>
+<topicref href="GUID-7EFA2113-3C4A-5C52-AC28-BBD512466302.dita"
+id="GUID-FDE214A5-4046-4951-BDF5-610896E94063">
+<topicref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita"
+id="GUID-7BDCC81A-1909-4755-911F-B1E6FFD5492D"></topicref>
+<topicref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita"
+id="GUID-50FD3C2B-D8C2-492E-A3D2-9F866E3C78E4"></topicref>
+<topicref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita"
+id="GUID-34E0B0EF-C730-457F-894D-E53C90E1216D"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-94215E49-605B-51BA-B215-10BDA1A0C013.dita"
+id="GUID-58A550A2-FDD8-4901-97D8-724910B4251D">
+<topicref href="GUID-651DA4DA-F8DF-5412-970C-86F45C877FDC.dita"
+id="GUID-914701B4-7CCA-4AB9-BC5F-CD74ACC8C69E"></topicref>
+<topicref href="GUID-743D2832-E73A-5184-A85D-306B2A6FFACC.dita"
+id="GUID-A61AB00F-4288-48B5-AA34-00C44026273A">
+<topicref href="GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827.dita"
+id="GUID-AAB24505-2D86-4A65-974A-2C60273C64BB"></topicref>
+<topicref href="GUID-DFF9DFC5-1BE0-5CA2-A2B9-27FA2DECFF59.dita"
+id="GUID-D3879DCB-959D-4AB0-AB03-D059FA0EF927"></topicref>
+</topicref>
+<topicref href="GUID-A602E35E-69BE-5F8C-A7E6-4B98E67BF382.dita"
+id="GUID-04308B7E-8433-40CC-99DD-AE9DCFC93321">
+<topicref href="GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita"
+id="GUID-D9D6A4B8-A55A-4419-AEE8-1245DB15D419"></topicref>
+<topicref href="GUID-F46CDF2C-DA64-5F30-B4C8-CC4B02CE67B9.dita"
+id="GUID-2D6AB8A0-0D49-4BC0-8430-0129928803CF">
+<topicref href="GUID-E0DC9706-AAC5-5950-86E8-D667A7AFCD49.dita"
+id="GUID-195BC4C8-42E2-44B0-87DE-A4EEF4A2DBF7"></topicref>
+<topicref href="GUID-38B65AAC-3CFA-5C9B-AD6F-36823B6C2C0E.dita"
+id="GUID-059C6F22-BFB3-4077-A272-428AB977CF1B"></topicref>
+</topicref>
+<topicref href="GUID-96837414-3041-5E1E-A2E9-C18EECCF86D9.dita"
+id="GUID-16E40068-1A0F-4ED9-AD7E-446C2FEEE7DC">
+<topicref href="GUID-5D4616AC-42AB-52C3-9092-4463C3687E58.dita"
+id="GUID-6428B7A4-7484-446B-9A8D-7BA04565D8BC">
+<topicref href="GUID-4D32A29F-6573-5233-8982-BDEEDDB4F0FF.dita"
+id="GUID-D83ABDFC-C6CD-40E0-AA3A-785AC802DD10"></topicref>
+<topicref href="GUID-4B7352BF-4BF8-5FF2-8835-F146BB7D4EAC.dita"
+id="GUID-D6BE2807-AD0C-40E4-B555-8E816FE0A909"></topicref>
+<topicref href="GUID-D535D51E-EAF5-581A-929B-5B1EF179A273.dita"
+id="GUID-B72CA6DC-A54E-4049-8F5B-26762A7ED5CF"></topicref>
+<topicref href="GUID-8E3BD71D-D372-5315-B282-F87FA60A1D5A.dita"
+id="GUID-0C9DB6C2-2492-43AC-9256-44FF04DC60CB"></topicref>
+<topicref href="GUID-098106AC-0A5A-5C7D-B432-492EADFE7EA3.dita"
+id="GUID-410D7326-CDE7-4CD5-A384-45F9986C34D1"></topicref>
+<topicref href="GUID-8F5BC47B-0551-5245-A1ED-629380111B43.dita"
+id="GUID-172974F6-CF07-4438-8B39-D8A98C1F7AB4"></topicref>
+<topicref href="GUID-A8F13E5A-56F2-5C72-AF81-5AC062B94C6C.dita"
+id="GUID-1FA8BA6E-322C-4FBD-854D-928FCA47F829"></topicref>
+</topicref>
+<topicref href="GUID-0E8206E9-4F1D-5DF5-8A69-9B0831061CFF.dita"
+id="GUID-725788C2-7C6C-471E-AF84-9D893D4EBFB3"></topicref>
+<topicref href="GUID-834F5FC8-EBE4-4076-B1E3-38DDFF89D700.dita"
+id="GUID-E812E7BD-6240-4004-B091-27466386B07C"></topicref>
+<topicref href="GUID-42F0F282-58D6-4878-B53D-EAEEF86A3D7D.dita"
+id="GUID-604CCFB3-062C-44BB-9847-FBFEDA4272B7"></topicref>
+<topicref href="GUID-853BFDC0-1993-5EFC-AA68-C9EA496EEF3F.dita"
+id="GUID-2EC1D978-E1BB-411B-B123-FA3D749A3319"></topicref>
+<topicref href="GUID-3F7142D6-261B-5FB9-888A-1A9BB51B67E5.dita"
+id="GUID-5A404A6F-3523-4D47-ACC7-1810B873AE7D"></topicref>
+<topicref href="GUID-0BE9F825-9FF8-55A1-AF7C-A380A0C64735.dita"
+id="GUID-6779EF19-AD19-4D81-A1F5-C98D556F39CD">
+<topicref href="GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A.dita"
+id="GUID-02D66992-9936-4062-AE67-6F72D2FD9A59"></topicref>
+<topicref href="GUID-5FEA4AF7-5837-4D9A-9022-92A746BED0C4.dita"
+id="GUID-9CF00FEC-A62E-4458-B0C8-9494BC384788"></topicref>
+<topicref href="GUID-101A11B5-E9A2-4E6D-9D81-9BF76312521D.dita"
+id="GUID-2E7BD8F2-59F4-4DEB-8B9F-7D334719C97A"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita"
+id="GUID-E6A0A6FD-D1A1-4CC7-B257-CEF606E067CF"></topicref>
+</topicref>
+<topicref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita"
+id="GUID-CC73BD28-9398-479B-B0CB-2376391301E0">
+<topicref href="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita"
+id="GUID-0DDF09D9-A8C7-4119-97B1-751E005A9F6A"></topicref>
+<topicref href="GUID-863AD171-B40B-5056-96B1-A7B995DB3524.dita"
+id="GUID-BE97F163-235B-4EF6-A11C-A0C15278BE9B">
+<topicref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita"
+id="GUID-B3B59E9D-48F6-4D30-ABCC-55707972F22A"></topicref>
+<topicref href="GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E.dita"
+id="GUID-51772D7A-2C45-4CBB-B8A4-9B2EE2B4FB47"></topicref>
+</topicref>
+<topicref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita"
+id="GUID-84493B86-8F95-443C-A576-0E0617FCAEAB"></topicref>
+</topicref>
+<topicref href="GUID-D049392D-2DA4-5E9C-8E3E-FEDF79BC5086.dita"
+id="GUID-B27AC8E3-34F8-413A-8550-64CEFF8226B5">
+<topicref href="GUID-3CDCE4E0-E29D-5782-8053-B386A9E34BCC.dita"
+id="GUID-BB9F3DAA-A5D9-42C3-8A96-369197CAFA12"></topicref>
+<topicref href="GUID-74C1C345-823C-5CD5-8FC5-214A55734E94.dita"
+id="GUID-445D1557-9FFF-4162-978E-C0C04B452FE3"></topicref>
+<topicref href="GUID-00363030-AAE2-5231-8407-AC609DA0F496.dita"
+id="GUID-F3960D5E-A208-4AA5-9CC9-9316E4122849"></topicref>
+<topicref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita"
+id="GUID-58BFD6EC-9B1E-44B6-9D37-24583DF027D0"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-94D67092-5EB3-4D83-A164-CA628F2E2DB0.dita"
+id="GUID-F89D03AC-E834-41FF-B6C4-7EF15ED7C9BB">
+<topicref href="GUID-1AC942E2-58C7-45C1-A122-3D07407A07D9.dita"
+id="GUID-00AAD562-9864-4526-8B40-B6FAD6F2048F"></topicref>
+<topicref href="GUID-66CF3E59-DA9C-4287-8A49-5655E83E2F84.dita"
+id="GUID-95A17C62-4C23-4D71-8527-2799621B5839"></topicref>
+<topicref href="GUID-9057474B-1ADB-4761-879B-6A03B61E6E00.dita"
+id="GUID-1833D388-51C5-4736-BDD3-86B0BF761E12">
+<topicref href="GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276.dita"
+id="GUID-CA34D4B0-591D-4789-B427-7501B1A46865"></topicref>
+<topicref href="GUID-7FD05006-09C1-4EF4-A2EB-AD98C2FA8866.dita"
+id="GUID-FC032260-0E7E-4853-815C-0264B10A714C"></topicref>
+<topicref href="GUID-01E7AE98-024C-4119-87D0-5BB9D53DA119.dita"
+id="GUID-7B5962D7-E57E-4AAD-AFBC-80210B06851B"></topicref>
+<topicref href="GUID-BEC25BA5-A994-48B6-B781-26900B04C8BE.dita"
+id="GUID-E6E58642-561B-4F17-8AD0-7AE36C80DAE2"></topicref>
+<topicref href="GUID-3D10DAFD-BE83-4892-B5E0-2ED7CF047788.dita"
+id="GUID-4F18E991-9E1D-40CB-9465-CE7EA7F4FD15"></topicref>
+</topicref>
+<topicref href="GUID-51FF9F99-8005-4480-9645-64476B953C57.dita"
+id="GUID-68B8CB65-E8E7-4C4F-A1FD-F1443F52CA0F">
+<topicref href="GUID-A9A8C0C1-4B89-40FE-917E-7D4F7387DDA9.dita"
+id="GUID-478B86DC-3CB0-4A34-B863-8ACA0EE8951E"></topicref>
+<topicref href="GUID-817C43E8-9169-4750-818B-B431D138D71A.dita"
+id="GUID-7C656ABC-1E9B-40CB-A1B8-4DFFB0A9EFFF"></topicref>
+<topicref href="GUID-D8D30C70-C6ED-4E4C-9815-BF7993262ABF.dita"
+id="GUID-E8A992CD-363B-4CA0-B2F2-98ADE9FC1D21"></topicref>
+<topicref href="GUID-09D1DB3C-DA2D-4E16-8EEB-2195F765BE22.dita"
+id="GUID-DE1F0D7F-9494-413E-9D12-29D59F9A3A01"></topicref>
+<topicref href="GUID-5329C067-60B8-4E0E-A2B3-9423B75E189D.dita"
+id="GUID-3D2AECE7-8107-4F23-85F9-0D1794AFEA17"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-324107D1-6E0B-56DD-BDC0-7296F688A9CF.dita"
+id="GUID-50E94166-B01D-441F-A17D-437959F15A83">
+<topicref href="GUID-62E8D3DF-7DF8-5FCA-8D7D-AA30EB0B8962.dita"
+id="GUID-C50D4CC5-C890-491E-A8BA-1A9A10F619D0"></topicref>
+<topicref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita"
+id="GUID-C25AF5A5-A63A-4DA7-B264-9D0F0313B409">
+<topicref href="GUID-8A7B837D-4069-5364-A596-686EEBAE351D.dita"
+id="GUID-AB86D305-94B8-4F60-9DD6-5D0B956B5AD3"></topicref>
+<topicref href="GUID-5E6B86D0-8C9D-58E9-83EC-F76DC2A8E7B6.dita"
+id="GUID-0B64B9C4-34F1-4AF0-938E-C907EB5A993B">
+<topicref href="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita"
+id="GUID-4240E234-F3E0-4076-9C92-21ED3817C716"></topicref>
+<topicref href="GUID-9E0CBB66-A573-5BBE-9788-95B313325C7E.dita"
+id="GUID-B2406A16-69DA-4EA0-9ABE-FC458CDD8B01"></topicref>
+<topicref href="GUID-5DC419C8-FD1B-534F-B33D-0D4EBBC6B506.dita"
+id="GUID-B93322D8-CD2C-425A-B724-BB183075E3C4"></topicref>
+<topicref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita"
+id="GUID-AA93DE9E-37AF-4D71-84A1-B57DBAED4EBD"></topicref>
+</topicref>
+<topicref href="GUID-110A0151-5719-51BC-8506-C18BE57FB400.dita"
+id="GUID-0B3EE3ED-28C3-44B9-BBD1-554921CC4D41">
+<topicref href="GUID-41D80358-473F-5B50-A09A-4F5601EAC4A9.dita"
+id="GUID-7A6B9831-51B7-4E12-BBBC-827BE88EAA8E">
+<topicref href="GUID-FF410602-8408-555E-B918-C0CF484535E7.dita"
+id="GUID-3659C91F-CEE8-4DC6-B876-E93179813006"></topicref>
+<topicref href="GUID-7F4692A0-1801-5D91-8F28-06075AC45DE2.dita"
+id="GUID-A1FD34FE-1582-4A35-9929-5F18D6069CCD"></topicref>
+<topicref href="GUID-E10A3336-9C4C-59A5-B94F-6CECA92FFB9F.dita"
+id="GUID-59E044EE-9AA1-4045-9109-A8B7AB52F161"></topicref>
+<topicref href="GUID-08007041-CE18-5B1C-9AE6-042EBBFD1AB6.dita"
+id="GUID-3A8F2112-D8CE-4357-A758-94CC41C4C913"></topicref>
+<topicref href="GUID-93F53961-9DA3-5D01-A881-D28E0EBF8B3C.dita"
+id="GUID-D78BE8E5-2B0D-4FEB-AA7D-A654972DD3B7"></topicref>
+</topicref>
+<topicref href="GUID-57F29787-B425-53EA-9DB4-372B77543584.dita"
+id="GUID-40FC3DE6-0500-4A05-B611-0C3E1C1EC7EE">
+<topicref href="GUID-F94CEC6D-C602-550F-9B12-856493F3C509.dita"
+id="GUID-2D7625A8-80B9-4442-9CEB-52AFE6EB8CC5"></topicref>
+<topicref href="GUID-895A685E-83E8-51A3-A823-3A0E07B1E609.dita"
+id="GUID-CA0C721E-B4C8-46C3-A93E-6B4131DCE143"></topicref>
+<topicref href="GUID-9A9103E4-27B0-5CF3-855A-DCD44795A5C0.dita"
+id="GUID-E8D05415-1C7F-4DB3-9E35-1EB06D738349">
+<topicref href="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita"
+id="GUID-56C69A6F-102C-49DF-BB37-300D6F279578"></topicref>
+<topicref href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita"
+id="GUID-B79FC5FE-AD58-49B4-B00C-CC7230AFF0FA"></topicref>
+<topicref href="GUID-39186342-960A-46A4-BC35-851F53665FA8.dita"
+id="GUID-FEA163D6-C2ED-4A9D-ADDE-7B1998E9DF96"></topicref>
+</topicref>
+<topicref href="GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita"
+id="GUID-69044203-0C94-4544-A5E3-035FAB2D5A54"></topicref>
+</topicref>
+<topicref href="GUID-DE9CB4F7-5129-5450-A6D6-9B0BA253FC81.dita"
+id="GUID-C27B1CDC-3093-49BA-A4F1-F1498287BF72">
+<topicref href="GUID-6E144992-AF5B-5CA3-9CC1-CFB5941103A9.dita"
+id="GUID-F5F75942-8844-404B-9B9C-2D25DF2A1933"></topicref>
+<topicref href="GUID-E3A80D62-09A5-502D-AB55-6AB2A5623465.dita"
+id="GUID-200A8BF7-E638-472A-BDB6-2113304223E0"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C7786266-FCE7-5A96-AA92-9A71486D3B6C.dita"
+id="GUID-063A7355-418D-4930-BF08-879F8BF7A73B"></topicref>
+<topicref href="GUID-E59A469E-A2B5-5DF0-BA7E-C50D4A38CCAA.dita"
+id="GUID-B16BBBC7-FAD5-4C91-B1C6-6F53509294DA">
+<topicref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita"
+id="GUID-7014AC54-674C-44EF-8DE9-579341871C29"></topicref>
+<topicref href="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita"
+id="GUID-9EBEE0CB-1ECC-4C32-8011-9F220A641E72"></topicref>
+<topicref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita"
+id="GUID-1B73FC3F-48CF-46CF-BF71-6A04AB2BBC1D"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-D02B5AF1-B1C3-560D-9654-971A5CC1A904.dita"
+id="GUID-0872B240-806E-4897-B74A-196630520E5A">
+<topicref href="GUID-D80D6D46-27B7-500E-A83C-63EF038606BF.dita"
+id="GUID-966CBF91-5E8C-477E-8AA4-8F5659BDCF0E"></topicref>
+<topicref href="GUID-C8BD333E-8384-534B-822B-F61B2F7C8B9F.dita"
+id="GUID-28364793-39C2-4254-B772-BB721279DF57">
+<topicref href="GUID-8B57B733-C418-5623-AFAD-34935FED1743.dita"
+id="GUID-4BF5DB69-3A42-4F2A-B2DE-EB4B59DC2DDD"></topicref>
+<topicref href="GUID-F61D1710-2D52-5B9B-A25F-6DFA606DAC0F.dita"
+id="GUID-03643266-7AF6-475E-B3B5-6D8F06DADAC9">
+<topicref href="GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140.dita"
+id="GUID-593960FB-469E-4855-975A-6AC3FF5B4A14"></topicref>
+<topicref href="GUID-9D871368-ADB9-5588-A1F3-39A432F4F32E.dita"
+id="GUID-2E747FC3-3E7B-4D65-B552-255B26D1E82D"></topicref>
+<topicref href="GUID-E8266924-FA52-5171-BD73-423A46227A74.dita"
+id="GUID-CB24D409-183C-4B73-9ADA-3859768F13C8"></topicref>
+<topicref href="GUID-0D2456BA-0737-5AB4-9C5E-F8CD70F4DCF6.dita"
+id="GUID-75C14091-5B04-48BA-9504-F7D61539C7B1"></topicref>
+<topicref href="GUID-D8900275-FCD4-5296-A27A-75A1C5744D7F.dita"
+id="GUID-AF606E44-8C46-4FBA-8F5A-277C69660D54"></topicref>
+<topicref href="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita"
+id="GUID-C7B00373-4C91-4298-BA6E-1467043E1699"></topicref>
+<topicref href="GUID-27340D18-A31D-512E-920A-B06C784A978A.dita"
+id="GUID-A0128BDF-55D6-48F0-BC7B-76E75D983180"></topicref>
+<topicref href="GUID-E6AD5C21-493F-59ED-9617-B348013BDCE5.dita"
+id="GUID-9CBB5426-CEA6-47C7-A805-13B79D7E5033"></topicref>
+</topicref>
+<topicref href="GUID-85AA0FD4-3BD1-50A7-B241-AE3908ACCF30.dita"
+id="GUID-5A88A4C9-B9B5-4498-B622-B08613945F52">
+<topicref href="GUID-8C94EE15-82EA-4A95-9044-C3404F95BD51.dita"
+id="GUID-13D96727-70E8-4CAC-B5B6-269EFFC37B85"></topicref>
+<topicref href="GUID-685CF352-372F-5393-97AF-1FA17DC57BA8.dita"
+id="GUID-B6EFD428-A6F8-4C09-BE1B-A2EA4DE74FB3"></topicref>
+<topicref href="GUID-7C6D3479-2159-5A9B-9970-0B3E625442A6.dita"
+id="GUID-AD1ADBC4-B172-4FBE-939A-A2702D2C50CA"></topicref>
+<topicref href="GUID-24D509E8-CF46-58D3-85E9-27DA7AB22012.dita"
+id="GUID-0B04B137-4F3A-4A03-8A11-A5BBA6002DA0"></topicref>
+<topicref href="GUID-FC929B37-20E1-5DA7-91A7-CBBED2E69A6E.dita"
+id="GUID-DA987C72-97EC-4FA5-8A1E-48D7992FE483">
+<topicref href="GUID-A6A6BC5B-4988-45B4-863D-0E3733B77EA2.dita"
+id="GUID-016F7F76-4B64-41E1-BFF7-A74C1B79FE58"></topicref>
+<topicref href="GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB.dita"
+id="GUID-86E5BA2E-4859-451D-85DD-9A7617DE2D30"></topicref>
+</topicref>
+<topicref href="GUID-2B6D7221-A23E-562E-9D9C-5EC197F1CB78.dita"
+id="GUID-D5679D47-0BC7-471F-A3BD-91D8F457C882"></topicref>
+<topicref href="GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita"
+id="GUID-8C7387B5-C14D-470B-86BC-53AEA94AA345"></topicref>
+</topicref>
+<topicref href="GUID-7953ECE8-3935-57E1-86C2-D53132930B71.dita"
+id="GUID-16443216-A93C-4B41-9B00-C5BFED8F917B">
+<topicref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita"
+id="GUID-0C8DECC7-4C00-43FF-BB55-A7927A48E261"></topicref>
+<topicref href="GUID-98903A01-CD04-5345-84AE-2E440CE06E11.dita"
+id="GUID-F6FE2208-FAA1-4ABE-8C72-483DC47BC7F8">
+<topicref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita"
+id="GUID-7268C7E8-0381-434C-AB76-5DFB6075B48E"></topicref>
+<topicref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita"
+id="GUID-F1E712AD-4A7E-4475-A807-36FB8F92344F"></topicref>
+<topicref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita"
+id="GUID-9B97EC44-86F1-44B4-92E7-EB180DE68468"></topicref>
+<topicref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita"
+id="GUID-77A90C1D-A86A-4DC1-8FD7-1D51C9E27392"></topicref>
+<topicref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita"
+id="GUID-32D508CA-3C7E-4466-9CE8-2B2CED48C436"></topicref>
+<topicref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita"
+id="GUID-BBEF4F83-B8C4-4454-BF89-255FBFA5798A"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-10A50B7C-63DB-599B-86C1-17989595CBD2.dita"
+id="GUID-F409C5E6-6DE7-4EFE-810B-0742AB168134"></topicref>
+</topicref>
+<topicref href="GUID-D98E984D-69A5-5BA8-89E7-A7CC9FD0C584.dita"
+id="GUID-7ACCD80A-9E2F-4CA1-ABB9-ECDF605D1228">
+<topicref href="GUID-42C94E3D-93DE-543E-A0D2-8B705C668BE0.dita"
+id="GUID-853CA862-3BCE-4E6F-81A0-0F29022A0B5C"></topicref>
+<topicref href="GUID-3B2FB34B-B4FC-5273-AE35-DADA2FA4C419.dita"
+id="GUID-BFF6DF9E-31E6-4CDF-8651-57C29C27A87B"></topicref>
+</topicref>
+<topicref href="GUID-4B8AEE55-1601-5CF8-9DD1-492DAE18F0F8.dita"
+id="GUID-AF585C59-6647-42D9-8C96-7C375A4B8669">
+<topicref href="GUID-ED6ED5E6-5A95-54F2-B5B2-6145A10F44BE.dita"
+id="GUID-E0DA1D6E-4A50-4DD5-9A05-DC749D987132"></topicref>
+<topicref href="GUID-634F4945-D92C-58D6-BF68-B8A770B2EF17.dita"
+id="GUID-B6D5BFD5-013F-458F-B29E-E8817D593041">
+<topicref href="GUID-79370E26-4549-5F31-99A3-8D0341F58F08.dita"
+id="GUID-13E02D95-1412-40D7-B68D-F968256351C6"></topicref>
+<topicref href="GUID-3AFA592E-ED32-5AC6-B331-E7191CF2D5E2.dita"
+id="GUID-B3E32A7E-61A3-48BF-A0F3-4869832004A7"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-28AD51DC-C101-5E6E-9EC3-C2B61400D8CD.dita"
+id="GUID-BC8F28E8-B00D-48D6-A280-47C627604356">
+<topicref href="GUID-D60B55FA-D8C1-559A-9D99-48845BE32A6C.dita"
+id="GUID-732401D5-1D3A-4D7A-9A41-08A6BE770AF8">
+<topicref href="GUID-B007634D-4D55-528A-8B85-6120C633AC8B.dita"
+id="GUID-E54D0A21-CE4B-49F4-9F11-6F65D6CD3CBF"></topicref>
+<topicref href="GUID-ECE93783-F571-51DA-AB92-EDDA8618A85C.dita"
+id="GUID-FC314CCA-F48D-4990-8E90-645BE8B29DB7">
+<topicref href="GUID-B1D5B680-00E3-5702-985A-94256180E2D8.dita"
+id="GUID-696975D2-78E9-4CFC-B12A-0C0C53772260"></topicref>
+<topicref href="GUID-A18153C0-230C-51FB-9384-A48BB4E42F03.dita"
+id="GUID-0A0578ED-7DE3-46FF-BF26-7E8DFB779070"></topicref>
+<topicref href="GUID-01677FF9-8FA1-5F0D-8223-46EDD20E3075.dita"
+id="GUID-12F6D0A5-4742-4EE9-8D5A-355A6495CCBC"></topicref>
+<topicref href="GUID-FC24C65C-0DCB-5E07-9A68-9001D34664DD.dita"
+id="GUID-263FCAF4-58F3-4F5F-9140-8775DC94C9D9"></topicref>
+<topicref href="GUID-96AB1D5A-932E-55BE-A025-F01608546B99.dita"
+id="GUID-D2E9FB5D-84D9-401E-9E40-417A119C7135"></topicref>
+<topicref href="GUID-38C37BA5-B972-5C8B-B8DE-B2FECF2A3C3C.dita"
+id="GUID-7B73ED0B-F5C1-4035-908C-128DC7C865DA"></topicref>
+</topicref>
+<topicref href="GUID-D33EB877-CCCB-527B-8AFC-4A8385C55E78.dita"
+id="GUID-F400491F-9F2F-44F4-AD13-AD6457EBAFF0">
+<topicref href="GUID-B419D99E-8312-5336-9693-3ED8DFCD0559.dita"
+id="GUID-E3832880-D51C-41CA-9DA8-F0E87948499E"></topicref>
+<topicref href="GUID-69D916D3-ED05-58DA-BA42-CE4D7E4F6482.dita"
+id="GUID-08655BE8-8E87-497C-B78C-6E49BA0A3BC5"></topicref>
+<topicref href="GUID-3799F0DA-B99C-55BB-B44F-63B971DF1865.dita"
+id="GUID-D32C7BC1-20E6-47E3-A796-B016FAD1B015"></topicref>
+<topicref href="GUID-7984F8F7-DC7B-56E0-A5DA-071A3D87714A.dita"
+id="GUID-1B0077A9-9E18-4BBC-9228-54C1DD90ED27"></topicref>
+<topicref href="GUID-5872329F-2B52-5F52-83C1-205F2F933877.dita"
+id="GUID-472EFC3C-08BD-4B3F-9BED-6C0B65949AF4"></topicref>
+<topicref href="GUID-B9F07057-4B31-5FE8-BE4C-98CC8151CD29.dita"
+id="GUID-589A5E1C-161E-4DC9-8AEF-078FC6D53E1A"></topicref>
+</topicref>
+<topicref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita"
+id="GUID-54AABA27-605B-4E31-966E-1464F3E5A3FA"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C5103B39-6F67-47E3-938A-32933E75F98E.dita"
+id="GUID-2106C302-CC60-488A-9322-D9EEE789E9D5">
+<topicref href="GUID-05DE2202-C0A4-4612-8EA0-7DA8B3DEA331.dita"
+id="GUID-779E85B3-2CA2-4ADB-99BE-BA99DA9A340F"></topicref>
+<topicref href="GUID-A2031A61-3319-4FBA-BC71-AC1327182053.dita"
+id="GUID-EF9EC978-AEDF-4475-84F0-60A3BEA272A9"></topicref>
+<topicref href="GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E.dita"
+id="GUID-4B95E342-5522-4078-86A0-4CF4B2BD94A4"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-CA3A9585-3648-46EA-8BE5-0DBE4B870CCD">
+<topicref href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita"
+id="GUID-17CFBB4E-0DCE-4B46-B6F7-F3ABE6BFE940">
+<topicref href="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita"
+id="GUID-A21939AE-1007-4B6A-A46A-46E9BE20F9D2"></topicref>
+<topicref href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita"
+id="GUID-C7AFC90B-187E-4C3F-8D08-420EB175C38E"></topicref>
+<topicref href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"
+id="GUID-F4D2C398-2D26-472E-97BF-18909B0A038C">
+<topicref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"
+id="GUID-4F9FD7C1-07BD-4669-9D18-565738B1E496"></topicref>
+<topicref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"
+id="GUID-2D758D24-E616-4619-8196-D363EAA5F5BC"></topicref>
+<topicref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita"
+id="GUID-6E19C595-A644-4C0E-9660-C5D4423C17D7"></topicref>
+<topicref href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"
+id="GUID-841AC5A7-76A5-4441-A416-65128B70740F"></topicref>
+<topicref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita"
+id="GUID-B11DA7C7-54D9-464A-86B5-478035D6D98E"></topicref>
+<topicref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita"
+id="GUID-1804375C-673E-4F74-9A41-DFF34E1198BC"></topicref>
+</topicref>
+<topicref href="GUID-47851718-8DCA-57F5-8520-7044048A5852.dita"
+id="GUID-E7ABC07D-DB97-421F-8C75-FDDECCBE60D8">
+<topicref href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita"
+id="GUID-96E04609-7990-4826-BBE7-F1A02FC4E707"></topicref>
+<topicref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita"
+id="GUID-D5EBE5CC-9A41-4C82-9A95-A4CAB3332A9C"></topicref>
+</topicref>
+<topicref href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita"
+id="GUID-794F76DE-0BA0-40A9-975B-99ED31EC8034">
+<topicref href="GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5.dita"
+id="GUID-B7DA670B-3165-4732-BADE-7583481BEB7A">
+<topicref href="GUID-92DF40DF-3C7C-5052-A78A-A47B8A455C32.dita"
+id="GUID-7B1DB2EA-99B1-419E-9AA1-66566B993FCD"></topicref>
+<topicref href="GUID-DAB4EE70-5F84-5AFA-B95B-A433695251F8.dita"
+id="GUID-8EEE8EE5-7F8F-45F3-A17B-C9B7474F1FFF"></topicref>
+<topicref href="GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259.dita"
+id="GUID-C6531F3B-0ADD-4F82-81E4-AF5889324435"></topicref>
+<topicref href="GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939.dita"
+id="GUID-1604C6FA-055F-471E-AAE1-8014CB542DF1"></topicref>
+<topicref href="GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504.dita"
+id="GUID-054F5988-9EDD-4475-BA18-2CE788AAE93E"></topicref>
+<topicref href="GUID-C4FDDBD9-2B29-5A59-AA29-855D1BE1354A.dita"
+id="GUID-22ECB7C4-455E-4A1E-98EF-03745A0AF566"></topicref>
+<topicref href="GUID-858ABC77-053B-5C45-A8EB-08C68506B193.dita"
+id="GUID-AAFCB649-77DF-47EF-B3EF-3761E9497648"></topicref>
+<topicref href="GUID-96E46D0E-1CE3-58B4-AE99-6B2E622ADAF9.dita"
+id="GUID-E759BAD8-4C6B-450F-8D77-AA88B3357BB0"></topicref>
+</topicref>
+<topicref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"
+id="GUID-67D466EE-4F8B-46E6-A196-587B76C15414">
+<topicref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita"
+id="GUID-CA95299F-C6CD-43B7-8867-F467AC79F276"></topicref>
+<topicref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita"
+id="GUID-AD07BADC-1657-45B1-A4FB-E1FEB3D4EA3F">
+<topicref href="GUID-0A13A931-016C-5325-97AF-2DE0B210DF2F.dita"
+id="GUID-39CE57A2-643A-4643-A980-9CFB0692543A"></topicref>
+<topicref href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita"
+id="GUID-C61C3F9D-2D6F-489D-B27C-6051289905DC"></topicref>
+<topicref href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita"
+id="GUID-313029DA-C91F-4BC9-A12E-308127A7EF40">
+<topicref href="GUID-0174CE72-AEF6-5DA9-A9C5-074781BD544F.dita"
+id="GUID-DC54AEB0-6076-4C55-938D-0A2A58845EE4"></topicref>
+<topicref href="GUID-E5CDDA05-CD86-5C44-B9DA-3249D9C14396.dita"
+id="GUID-7E0EA02F-8E40-4A42-8631-960868790468"></topicref>
+<topicref href="GUID-53E1EBAB-758B-58DF-9568-8CC682C0F74F.dita"
+id="GUID-3BD4C09F-1CC8-493C-B4F8-67A6291FB954"></topicref>
+<topicref href="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita"
+id="GUID-87CCF995-135D-465A-BC38-0CD3C7B72E0F"></topicref>
+<topicref href="GUID-9189A3F5-3016-5AF5-9D84-4E066A62D8DD.dita"
+id="GUID-B2B07891-B3E5-42AB-B650-CC1B18745A57"></topicref>
+</topicref>
+<topicref href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"
+id="GUID-5DBBDB60-AE31-4AE2-8CB2-8B97D4FEB9AE">
+<topicref href="GUID-40113BA1-FFDD-535C-B487-8C9F569E2BC7.dita"
+id="GUID-D53F632B-1A08-49B2-AA1C-A8050A657294"></topicref>
+<topicref href="GUID-D68E0A64-0E8A-5C52-9C5B-93BA3B80C200.dita"
+id="GUID-B795DD0C-F44E-4654-BCFF-603395621893"></topicref>
+<topicref href="GUID-08A6A034-5609-58B0-8EA7-943B2A937B40.dita"
+id="GUID-27AAB492-7DD5-47C1-AC10-930A6ABB0E9A"></topicref>
+<topicref href="GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205.dita"
+id="GUID-0F13113E-7EA7-47CD-BA53-4BB946FAECB4"></topicref>
+<topicref href="GUID-CE7CF024-4898-551A-841B-38EC57A3EC82.dita"
+id="GUID-28D7FA0B-5658-4E55-962B-944A9868C2D4"></topicref>
+<topicref href="GUID-7AE4913D-18CE-5F17-A6B1-6E3F6975A178.dita"
+id="GUID-82F1E809-7B58-4FA6-94E8-2BF39765F448"></topicref>
+<topicref href="GUID-91874A4A-57A4-54F9-966C-7D65D3782220.dita"
+id="GUID-971FE3A2-FFAA-4708-8D6B-3DA068830BAA"></topicref>
+<topicref href="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita"
+id="GUID-18D7E475-3F52-4045-9D2E-D1F076600B24"></topicref>
+</topicref>
+<topicref href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"
+id="GUID-12905854-AF7A-4056-A440-4D775CC4A0C1">
+<topicref href="GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C.dita"
+id="GUID-A8EC2066-17E3-4B4D-AD59-6589CA0012B6"></topicref>
+<topicref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita"
+id="GUID-D29A4BDF-1EEA-4C35-9A85-CF7228E3C36F"></topicref>
+<topicref href="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita"
+id="GUID-8DA69DAC-7272-45B9-89E0-34103270076F"></topicref>
+<topicref href="GUID-E8DF12FC-DCA9-57EA-833A-C1E8D6DAF405.dita"
+id="GUID-44796B87-2170-45FA-8F50-A7462EAC4A39"></topicref>
+</topicref>
+<topicref href="GUID-08427065-B8E5-5194-B095-3B5213836BED.dita"
+id="GUID-362EB068-9B3E-4887-A2DA-E80978BC8012">
+<topicref href="GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5.dita"
+id="GUID-50F5E99C-DD94-4DC6-90D6-6C712D310B4B"></topicref>
+<topicref href="GUID-7AC3477E-09C1-519A-9079-DA969B9FC4D7.dita"
+id="GUID-714414EC-21DB-473C-A674-740F060E8F45"></topicref>
+<topicref href="GUID-7750D4BE-9FBA-5D29-806D-B80911170ECD.dita"
+id="GUID-22BAAF8C-F2D6-4A2A-8F19-302FD9E2C45B"></topicref>
+<topicref href="GUID-EF87F8F8-1521-5C50-85A9-94038A99021C.dita"
+id="GUID-0A4CCF01-3BBC-460C-AC36-E5DE95638E21"></topicref>
+<topicref href="GUID-CD550DE7-D013-527B-BADE-5CB122C352C8.dita"
+id="GUID-FABF044C-7368-4FD2-96C6-1FEED10C9608"></topicref>
+<topicref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita"
+id="GUID-91D4A1C7-948A-4EF0-9B24-33C3251527EC">
+<topicref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita"
+id="GUID-6F122974-BDB8-4D22-84D0-797D18599FD1"></topicref>
+<topicref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"
+id="GUID-7A1DF802-DAE0-4C0E-848D-F32E72370C1C"></topicref>
+<topicref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"
+id="GUID-8A4E5B0C-74AC-4F99-A515-080056A38FF9"></topicref>
+<topicref href="GUID-3E7A9A92-F217-4BD1-82CE-227931CFB8ED.dita"
+id="GUID-46CCA7BF-E726-46B9-9BCD-A89F240FBA35">
+<topicref href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita"
+id="GUID-73B8557E-C6BB-413A-BC65-F014C6DCB60E"></topicref>
+<topicref href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita"
+id="GUID-C7AE12D4-025F-4DF7-BDB6-187FFB18A4A1"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B7FF0B9C-3A17-5AAA-A986-7BA4F44DBD41.dita"
+id="GUID-030E6C84-CC8D-4ECE-8D3C-8A570AD8F75F"></topicref>
+<topicref href="GUID-B830A1F7-9220-5879-80BE-C494A4CD155B.dita"
+id="GUID-FD98DE97-30B9-4A2B-A868-C076B03C4398"></topicref>
+<topicref href="GUID-A51D3749-442A-54E8-8EB5-BF907694CD8C.dita"
+id="GUID-1BB75933-D571-4E71-A062-4288507A9407"></topicref>
+<topicref href="GUID-E1E11C95-3400-548B-AEEE-577DA8FB9ECB.dita"
+id="GUID-097D1201-0DA1-45ED-AD11-1920CE93715C"></topicref>
+<topicref href="GUID-930A3ABD-84FB-5D76-938C-79383273DAE6.dita"
+id="GUID-9D377737-D55C-4732-992C-3CF460FBB24D"></topicref>
+</topicref>
+<topicref href="GUID-1C025957-258C-54C0-94A5-AD60C14E6D76.dita"
+id="GUID-EAF216F0-52B0-4F10-9A43-77124739C9A0">
+<topicref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita"
+id="GUID-FF0A1AB0-23F4-4121-A66C-86417185B581"></topicref>
+<topicref href="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita"
+id="GUID-5BA6829A-E906-4FEB-92A3-B009B390B6EC"></topicref>
+</topicref>
+<topicref href="GUID-567DFA14-A7AA-56F5-9741-CB1F28BCD39F.dita"
+id="GUID-52DAC3B4-BDB5-4CA1-BB36-EC767B5EAA2D">
+<topicref href="GUID-365BB311-8FC8-5DA5-B80D-C22D4AB35AEE.dita"
+id="GUID-86F09BA2-0A4C-4A0D-8EF1-B9D7C954078B"></topicref>
+<topicref href="GUID-2C17B7CA-39A3-5E2B-9B8E-239158A94F5C.dita"
+id="GUID-91CE20DC-40E3-4BD6-8616-298C316EFAF3"></topicref>
+<topicref href="GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF.dita"
+id="GUID-7FB1810D-D2DD-4CA0-9163-3FF6B521C87D"></topicref>
+</topicref>
+<topicref href="GUID-FAF1B60A-A4B5-5E45-B9B9-84DA982F2E2B.dita"
+id="GUID-8B2BC58B-D7F0-4AC0-AB5A-96EEEC733747">
+<topicref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita"
+id="GUID-6EC83A2B-1C86-4560-839E-EE0A5DCC370A"></topicref>
+<topicref href="GUID-37CB6D0C-41F0-5C52-A925-978FAC30D311.dita"
+id="GUID-FA17E6F1-6098-4252-8D20-33F9130E9A43"></topicref>
+<topicref href="GUID-FD622CE6-42D0-534D-9D0E-7AED5453F35A.dita"
+id="GUID-117C1EB0-3E7A-4010-AA88-7B22C48D1AEA"></topicref>
+<topicref href="GUID-EB82A2C8-EF92-5276-B503-687DEBF82EA4.dita"
+id="GUID-A01FC9CD-9911-4F67-9BCF-AA6E49ED8A42"></topicref>
+<topicref href="GUID-04C294A2-C63B-55A7-82DE-379BBFA05EF9.dita"
+id="GUID-63DF322F-C49D-4CCE-A4CD-6ADEE63161E1"></topicref>
+<topicref href="GUID-ECE9B461-B473-5B7B-B5EB-FAA60479848C.dita"
+id="GUID-35227F9C-2C20-4628-AED1-B708F37B5DA4"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-862D3B3B-3369-5FF4-B81A-ED5BE415B035.dita"
+id="GUID-99986B1C-206E-4E6A-97F1-825B5993351F">
+<topicref href="GUID-E29CAFA8-523D-57D2-AC1B-D6D01741550B.dita"
+id="GUID-7449337A-1CAD-49E6-B3E5-32496D6EB83E">
+<topicref href="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita"
+id="GUID-5513E601-D6CE-4203-814A-D784E0A3111D"></topicref>
+<topicref href="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita"
+id="GUID-3ED7FF66-BD64-4521-B3E5-D3D06D02B2ED"></topicref>
+</topicref>
+<topicref href="GUID-85E1E45B-DD05-5B7D-84E7-9911E0A3E3CC.dita"
+id="GUID-12579CA7-4C67-4943-8262-E43CC98A7C8A">
+<topicref href="GUID-AA02BFA9-E62E-56FC-BF22-8FE092ABD9DA.dita"
+id="GUID-BCC0827D-E7E1-4678-A217-76C2B5E64714"></topicref>
+<topicref href="GUID-6E8807F5-9CC0-5A70-8182-22230D43AA9E.dita"
+id="GUID-B33DD6F7-4AF8-4306-9B2F-75D21A557D5C"></topicref>
+<topicref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita"
+id="GUID-BE68B6E9-70A2-4AA7-BE70-A99E3F4CE4FF"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita"
+id="GUID-96D864DC-4EE2-4012-AFB5-6B0860A90312">
+<topicref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita"
+id="GUID-DDB1916E-FF20-4BCC-A976-0CCD73691CCF"></topicref>
+<topicref href="GUID-1C3888E3-33D4-5057-8819-CB6D97398031.dita"
+id="GUID-9A205768-297D-41FE-AF27-BEFF38F4A6CE">
+<topicref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita"
+id="GUID-A3DEE520-D6C0-4365-AE4C-82BBE71B6A10"></topicref>
+</topicref>
+<topicref href="GUID-30CAE438-6CC7-5532-8727-781B8E83574A.dita"
+id="GUID-35D3DF90-375B-4F1A-8E28-8E6532C51188"></topicref>
+</topicref>
+<topicref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"
+id="GUID-1C6B7980-7817-44EE-94D8-29F51F16F1E5">
+<topicref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita"
+id="GUID-F7A39DC8-781E-42C8-9548-FBB0E7D4D5C6"></topicref>
+<topicref href="GUID-1C3455BE-2082-504D-9157-88D8C72B1B80.dita"
+id="GUID-F5270BD7-B4D9-49DB-8189-364115B53090">
+<topicref href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"
+id="GUID-E50810DD-31FE-4E92-9F5A-3BAAC72B4C91">
+<topicref href="GUID-30066989-4A0F-5000-9488-AA7E50E2B871.dita"
+id="GUID-BD06C760-5167-4729-899E-1F24F2973450"></topicref>
+<topicref href="GUID-A3B5381F-7D81-52D5-97DE-CCF56C2A49A9.dita"
+id="GUID-56F10436-B54C-4C19-8058-E47BA5CB743D"></topicref>
+<topicref href="GUID-33180489-18DE-5705-A2DF-E44148C3A820.dita"
+id="GUID-688E9BA3-54FF-40C6-8536-5212373A2B45"></topicref>
+<topicref href="GUID-46C56A16-E548-59B1-88DF-3DAF3FF68751.dita"
+id="GUID-2B685E1F-3527-4879-9788-783866D1AD78"></topicref>
+<topicref href="GUID-2BC2A35E-634D-5F70-8279-C1822C0E4F3F.dita"
+id="GUID-ABDAFF9D-3A33-43C6-B346-492F89284149"></topicref>
+<topicref href="GUID-248D480D-2406-5FFD-8E3B-09CA67D1BE69.dita"
+id="GUID-DA0EB9E9-B8D5-44AE-B095-06E474C289DC"></topicref>
+<topicref href="GUID-25035286-5134-51F6-A3B6-C0DF0E802719.dita"
+id="GUID-D1239C71-6840-4A4D-9366-983EF341A692"></topicref>
+</topicref>
+<topicref href="GUID-5CEE36FC-C5A9-5C4E-9DBC-9C7B5B44EA2F.dita"
+id="GUID-A8A1C72D-B3FF-4F20-A940-684327CE7941">
+<topicref href="GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF.dita"
+id="GUID-58560B39-205F-4587-ABF9-53BEA89B615F"></topicref>
+<topicref href="GUID-F5DC1A03-6F07-5E60-B912-429DDC820875.dita"
+id="GUID-03468D80-0492-4005-BFB9-E2874648D449"></topicref>
+</topicref>
+<topicref href="GUID-8CEB9CF3-2F33-58E3-B948-565B61A37BC3.dita"
+id="GUID-5A838AC4-EC2F-4346-8F14-81E1089B7F5D">
+<topicref href="GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E.dita"
+id="GUID-C2C9DEA8-2D17-4CD9-8FA2-4C91661B2BC4"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1E68A78A-52E5-5DF7-B540-85C7194E4617.dita"
+id="GUID-46B8ABE7-6CBF-424F-9C51-6615822AD1BC">
+<topicref href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"
+id="GUID-DB596A41-288C-4179-A5CA-A9F3F9EA5D05">
+<topicref href="GUID-1903F18A-F095-5494-AF32-423AE7F27252.dita"
+id="GUID-F5578861-8A86-4D8E-A82A-DF4F5046EC0E"></topicref>
+<topicref href="GUID-BD463EF4-2538-51AF-8946-BFEC902A2DD0.dita"
+id="GUID-67AF6355-D1D4-4F2B-B593-B8DB664DFA76"></topicref>
+<topicref href="GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD.dita"
+id="GUID-A4FA019A-1553-4E7C-A782-5D1D9A521F82"></topicref>
+<topicref href="GUID-D38C47AD-ED05-5693-A734-498788B9B85B.dita"
+id="GUID-2CE5E690-9CF7-459C-ACE2-1D04A44086C1"></topicref>
+<topicref href="GUID-A5693758-495B-598E-A514-24C48D459BB6.dita"
+id="GUID-0A26C9A6-3047-4870-8045-FDB01D88043A"></topicref>
+<topicref href="GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF.dita"
+id="GUID-1BFF33FF-EC60-471A-B6D6-6F8313F5D145"></topicref>
+<topicref href="GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195.dita"
+id="GUID-52FB5D33-4AC5-4EC9-BB28-6DD3F908AA3D"></topicref>
+<topicref href="GUID-EF49C43F-E9ED-5B4D-B9C4-376B9A4E3FA6.dita"
+id="GUID-D0526A44-1837-460E-B237-382760B0290B"></topicref>
+</topicref>
+<topicref href="GUID-520AC2F0-009E-51F3-A661-3B6E949F1423.dita"
+id="GUID-31622DDB-5BF0-41B8-8549-B8B11ED37D4F">
+<topicref href="GUID-9E6822BE-BDF0-5710-9E60-A8DB14622C55.dita"
+id="GUID-E8694090-B05E-4910-8931-318CE08293D4"></topicref>
+<topicref href="GUID-F9471A5D-D239-5B24-A116-2B5B2C1F5C61.dita"
+id="GUID-DDB278F8-0380-4830-8B76-7C234D58557D"></topicref>
+</topicref>
+<topicref href="GUID-9BF04EB2-7050-51D2-9559-66BC47ECC5B1.dita"
+id="GUID-8866B6A3-9D88-4C48-9B0C-7DF88406F1B9">
+<topicref href="GUID-6AE2F937-69BB-5330-A2B5-44D37FA1DE16.dita"
+id="GUID-DF807474-F6B5-4A51-8793-2B683F13D4BA"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B6D4AEE9-5C17-51D9-BBDE-7CCB5218279D.dita"
+id="GUID-7765BD0C-4C60-4C73-B703-0CF602E5DF16">
+<topicref href="GUID-0AB9B221-38AE-576E-AC5A-C4C106E3D93B.dita"
+id="GUID-A575FC4D-72D0-41BA-B22D-5BB66DA83438"></topicref>
+</topicref>
+<topicref href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita"
+id="GUID-86A4E8AD-5BC3-4033-8286-41FB7B08749E">
+<topicref href="GUID-E9FF94D2-AFFD-54A4-A6C2-00929BC70DB0.dita"
+id="GUID-90361D7C-AB3D-46A6-9D53-28A790289987">
+<topicref href="GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D.dita"
+id="GUID-86FBAAD0-6FF6-4059-95FD-851111552420"></topicref>
+<topicref href="GUID-75B0B7C7-37B7-57D1-8EAA-8303A915A9DD.dita"
+id="GUID-8122BFE4-B0B7-4E3C-A56C-F2DF7A9D1D7D"></topicref>
+</topicref>
+<topicref href="GUID-AFE8A9CC-E026-5396-8E0C-616338B5F5C3.dita"
+id="GUID-BE980C96-6EBA-4563-BDC2-DC727A067416">
+<topicref href="GUID-3584C6F0-0B9E-5490-9CDB-86FA218A2E26.dita"
+id="GUID-9C0BEF18-A23B-43E9-A213-97840E9630F5"></topicref>
+<topicref href="GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674.dita"
+id="GUID-8774D1EC-AA62-4816-9EB3-427C3AAC2BEB"></topicref>
+<topicref href="GUID-4BB03B97-9AD0-50D0-AAE5-B7AB2415716E.dita"
+id="GUID-D72A67E8-12D6-485D-BC85-5E3A5F5F8DF9"></topicref>
+<topicref href="GUID-294E84BB-65D0-5275-848E-1960B201A371.dita"
+id="GUID-201A40B4-5D71-4E61-A7CA-13DD2A76AB95"></topicref>
+<topicref href="GUID-E1FFE8AB-9C4C-51DB-AC08-F0A18C33D735.dita"
+id="GUID-2E24CB91-46C6-418C-BA74-6EE67ABD4902"></topicref>
+<topicref href="GUID-C3FC557E-72B4-5714-AE21-930F421204D6.dita"
+id="GUID-D19CD617-C456-4C49-9058-098C61F29972"></topicref>
+<topicref href="GUID-0ECBFCA7-D398-53CE-BAF4-86CFB0124A0E.dita"
+id="GUID-7FC69884-610C-4349-A3B0-2314B287B55C"></topicref>
+<topicref href="GUID-9BF78E98-E376-5EE4-9350-C77BF9F540E6.dita"
+id="GUID-574C7B4E-D481-4D9B-8977-145AC72145F0"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E82FABA9-9CCC-548F-99DB-EF2B9036B405.dita"
+id="GUID-C5B14700-819C-4C79-93CF-11F996E367B2"></topicref>
+</topicref>
+<topicref href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita"
+id="GUID-1DE8EB0B-A721-4E58-B593-F78158147E6C">
+<topicref href="GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita"
+id="GUID-19DF4DC7-E36D-4041-A928-BF208427A43A"></topicref>
+<topicref href="GUID-CBC43846-22BB-5AAF-89FE-3CF4F11B76F6.dita"
+id="GUID-178C85CF-8929-4D90-BA26-1E95274E0A8C">
+<topicref href="GUID-12D5C140-DFDA-549B-9CCF-EF7488B832AE.dita"
+id="GUID-FFE8D9EF-4448-4210-83CF-0F9F5B6A7BD3"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"
+id="GUID-F68CDF4A-FA98-4D9F-BA02-3253A5564335">
+<topicref href="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita"
+id="GUID-B2C36C83-9630-4B2A-A1B3-5BD9D20DE33F"></topicref>
+<topicref href="GUID-C2E24953-3D83-59FB-8B7A-C850474406DB.dita"
+id="GUID-8E687CE1-8F5B-41CF-85FD-0A8F357A2092">
+<topicref href="GUID-7EFBEEAD-3E74-5165-B305-313F7DE4BEB4.dita"
+id="GUID-90037DDA-E1A3-495B-8908-39BA3BCFFACC"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"
+id="GUID-BBF29462-03DD-454D-8196-AB8A00CF9756">
+<topicref href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita"
+id="GUID-41941790-F1B6-4A81-976A-9D21C9862BCE"></topicref>
+<topicref href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita"
+id="GUID-2BD90A19-9A3A-4AF0-A66F-4CCF8EE429C8">
+<topicref href="GUID-A5914CFF-6F86-53E8-9928-36D3379835B1.dita"
+id="GUID-E34C8B0A-9393-4DD9-B72E-D988B0F0FC8C"></topicref>
+<topicref href="GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita"
+id="GUID-2960B77D-F18B-4851-A340-FE06579E2796"></topicref>
+<topicref href="GUID-2923A42C-1C0E-553D-8563-7B9FC51F153F.dita"
+id="GUID-02D8E727-1FB0-4A89-8538-7456552E8A22"></topicref>
+<topicref href="GUID-46813F51-370B-5853-917C-6916925A347D.dita"
+id="GUID-3B216687-C3B1-4265-B842-B285D1A9D30F"></topicref>
+</topicref>
+<topicref href="GUID-FFA5956E-0632-42F5-A2F9-0503888EF72B.dita"
+id="GUID-DBD9A61C-CD7A-4F68-B0DF-D654434FB573"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-87089CDB-142C-4046-AEDE-70CBF2209469">
+<topicref href="GUID-C0D38954-2FC5-4E8B-BC11-229464DCF16C.dita"
+id="GUID-40684C06-DB06-4374-A3E8-B00CB9A83478">
+<topicref href="GUID-1E8904E3-43AC-5332-A2EF-F11F5728DBE8.dita"
+id="GUID-D9029AE9-1C64-479E-A8CF-78E6078A36BA">
+<topicref href="GUID-B4A54501-4AA4-5ACB-96D7-4427C7752639.dita"
+id="GUID-DEE4D094-5C46-43A1-8D66-E6DADF33B902">
+<topicref href="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita"
+id="GUID-DF3086D6-7211-45BA-9F35-D7C2E094D6B4"></topicref>
+<topicref href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita"
+id="GUID-00067C9D-13F5-4D13-A35B-140712B5AC48"></topicref>
+<topicref href="GUID-81253CA0-2B57-5A3E-9ACD-469D4B922047.dita"
+id="GUID-7197BA15-9D7C-437E-BCE5-779FD49BE27D"></topicref>
+<topicref href="GUID-D9EE6C26-B0F0-58B9-BC17-4E18136187F8.dita"
+id="GUID-B3CBED71-DCEB-4924-B501-22E54DC7663A"></topicref>
+<topicref href="GUID-F9184A82-A467-5022-B02F-2FDF52258618.dita"
+id="GUID-FF76FA17-BBCA-4F03-B549-C1C2DFCD6A37">
+<topicref href="GUID-E50FC36D-949A-42E0-97A6-64D336DF8057.dita"
+id="GUID-1418830E-C48B-4C9E-957D-E3214CF989BC"></topicref>
+<topicref href="GUID-AD6A057D-D514-4145-B7A6-E43959543E92.dita"
+id="GUID-4AC2E740-3862-495E-A727-E717A81C3CE4"></topicref>
+<topicref href="GUID-5A9CBB5B-DE6A-42D6-9244-3F151B79BDCD.dita"
+id="GUID-77C10FC9-6089-44E0-8EBA-3EFD256077EC"></topicref>
+<topicref href="GUID-C3D309CB-EA9E-4D8D-8C88-3EBC5695385F.dita"
+id="GUID-DCAC2B9E-573E-4CF0-AA48-2F75A0631D4D"></topicref>
+<topicref href="GUID-00552575-AB10-4CB3-A37B-D83AE5975811.dita"
+id="GUID-3C88229E-9F3C-4D85-A434-D540FC8C8EEA">
+<topicref href="GUID-F411736E-09FE-4F46-8185-DF013E950069.dita"
+id="GUID-5E9874F0-71E4-4789-AD7A-E4E57FD18C51"></topicref>
+<topicref href="GUID-EA9C4CF0-F39B-4FBB-924D-F78320E08F2C.dita"
+id="GUID-14AA10DF-1A73-4390-9B75-F83B109D3782"></topicref>
+<topicref href="GUID-CDF9F944-814E-47EF-A6B5-E75300C228DD.dita"
+id="GUID-45D15814-7B59-43D0-903E-0325B7ECF8E4"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-A88F4A4E-49D7-4F92-8047-CA287C54B964.dita"
+id="GUID-8CF69858-9C17-4AD5-8040-6B07B7E4FA28"></topicref>
+<topicref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita"
+id="GUID-57062DFC-D058-4008-BD45-6B5112CC67AB"></topicref>
+<topicref href="GUID-F6CF2920-9095-568B-B332-D5F4A05BD23A.dita"
+id="GUID-F7ECD36E-4BA1-4899-856A-5BBAA78F2E1E">
+<topicref href="GUID-625FFD05-5660-4A8B-A543-BABB5E7A5503.dita"
+id="GUID-A5504C93-FDC3-4349-BD96-69A43A1EA4DF"></topicref>
+<topicref href="GUID-675D02F1-E7B1-4869-9213-8D0C2E0CC50D.dita"
+id="GUID-710914E2-5A98-421B-BD2A-06F5FF4299B0"></topicref>
+<topicref href="GUID-B432A48B-46CE-4FD4-880E-DA15AA304CAA.dita"
+id="GUID-63F31DF3-22E4-40C7-9850-798ED1CDBC17"></topicref>
+<topicref href="GUID-7800A00C-5BD3-46FA-9D0A-9DF29A5C057E.dita"
+id="GUID-8D6D1A4B-4B37-42C2-A818-EDFAC6A7548D"></topicref>
+</topicref>
+<topicref href="GUID-487F5A5B-E2D1-5138-8063-82940879D3D0.dita"
+id="GUID-BBFDAA96-1B69-46CB-9411-ABF1206EAD18"></topicref>
+<topicref href="GUID-E14C1D1E-B7E5-5244-8BE7-386C542AAB58.dita"
+id="GUID-ED9EC398-E4D1-43F7-852E-D3F1D87137B9"></topicref>
+<topicref href="GUID-F066FEA3-94E7-5D79-B427-E247A2D1EBB8.dita"
+id="GUID-061D7B39-D5F8-49DB-A24B-3E57332D6CE2">
+<topicref href="GUID-4ACEA6B0-CA7C-5751-A1B6-283287552A31.dita"
+id="GUID-82C82CD0-F240-4416-8293-DDB5EF380F8A"></topicref>
+<topicref href="GUID-F0ABCDE5-F818-526A-81EB-E2D4D87E3231.dita"
+id="GUID-1A517A43-7CD0-4513-9419-D9726BD3FC18">
+<topicref href="GUID-20B2C96A-9742-4CB0-A37F-19B65765E826.dita"
+id="GUID-1402EF73-42FD-417D-871B-D2513CF15C3E"></topicref>
+<topicref href="GUID-0E785F9A-F349-4941-B0B1-CFEE8A961464.dita"
+id="GUID-9BEE046B-039C-4257-8CA3-73692903A888">
+<topicref href="GUID-765A6D87-5C2C-4E79-9EA5-9F8930062ED0.dita"
+id="GUID-869C6E23-2AA2-4BC1-A651-3D6FB85C3FF9"></topicref>
+<topicref href="GUID-1D9EA46B-CF0B-4779-97F9-5BECA3622777.dita"
+id="GUID-71B00777-8866-46DD-A829-DFA8774C3896"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-8C5A65E6-D753-472F-B885-FD0409589036.dita"
+id="GUID-96AF18A1-20D3-4FAA-888A-7B7919EA11C8"></topicref>
+</topicref>
+<topicref href="GUID-1A28F76D-ACEF-51A3-96DF-9DFF2F5C2ACF.dita"
+id="GUID-D73AD6D1-248A-48EB-B8AB-1E1A72AB7E92">
+<topicref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita"
+id="GUID-22A829FE-2AD0-4AE0-B4D2-E2E97B49C6AB"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-939C0EE6-0931-4898-842B-9D0C9D61DD2F.dita"
+id="GUID-70E38AB7-652A-429E-AD1E-470EAD6B07CD">
+<topicref href="GUID-C0E7CBC4-C525-4CA8-8D21-E7E2ABE396CE.dita"
+id="GUID-59BAD668-3900-492A-9865-E9A10C46DC13">
+<topicref href="GUID-956E7DD6-C7FA-5F0A-9C86-D7FE58373A25.dita"
+id="GUID-067C64D7-5EB5-48A6-9C7A-CA6F97232588">
+<topicref href="GUID-EAD6B365-DCB9-51AD-AF21-0B8262B468A2.dita"
+id="GUID-D63820BE-8F19-415D-A31D-1F3F4F96DBA5"></topicref>
+<topicref href="GUID-F8159093-6349-516B-8301-C50BD2AC9F2C.dita"
+id="GUID-A0ECBA19-A462-4F78-8664-EA6D84E150B0"></topicref>
+<topicref href="GUID-402B5633-1E3A-5F24-8C4F-DA5F04D2557C.dita"
+id="GUID-055672EA-DF5E-4CB1-BA2B-5CA28D2754CD"></topicref>
+<topicref href="GUID-B36F47DC-0A62-5B8F-A761-2717B921A339.dita"
+id="GUID-DB8FD704-D44B-473D-9526-8DCC6C019604">
+<topicref href="GUID-7514DD31-E82B-49FD-916F-A9DF12D97204.dita"
+id="GUID-C549AB26-38A7-48B1-8D34-05C95BC316CD"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-945FAA13-A302-55F5-917C-EAD2C9D960E9.dita"
+id="GUID-6E332AEE-061F-4891-898D-2619D9FC48E4">
+<topicref href="GUID-EDA831F7-7248-5C00-B6BE-B7F44097C9B6.dita"
+id="GUID-9E6F172B-FA3F-4EEF-876C-BE8E1834C2BB"></topicref>
+<topicref href="GUID-AC4C18D1-D6A3-5988-AB10-5A5025183950.dita"
+id="GUID-0EFF40C8-C565-47F3-9CE7-0F9A7BA31FB7"></topicref>
+<topicref href="GUID-E97C2A7E-8E8F-58E6-99D4-288589385B44.dita"
+id="GUID-D59EF965-AF34-46F0-858B-42AFF24F1BDC"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-482C0E46-8E41-488B-8F4F-4E88A9D87734">
+<topicref href="GUID-D280276A-6E4C-41B7-B6EA-700B33B04981.dita"
+id="GUID-D70222C9-F9D3-49F5-9484-A2352BA50E10">
+<topicgroup id="GUID-A7907049-9439-4A2E-B221-B0E6DD44E933">
+<topicref href="GUID-465F0DEF-935F-46D6-B711-A4D362DAD619.dita"
+id="GUID-E154AD9A-21FB-4DF9-8079-004BF390315C">
+<topicref href="GUID-34BEF44B-EFBE-41EB-941D-0410FCB6782E.dita"
+id="GUID-5E2EC515-7FEC-447C-85D9-873BF08DE6DA"></topicref>
+<topicgroup id="GUID-D4D051CD-BEA1-4CFA-B79A-3D5CCF5C8938">
+<topicref href="GUID-A83DBB85-EBA0-44CB-8903-69F5E0C08191.dita"
+id="GUID-6CF4069A-CA64-4DE7-B736-F1DEFD336866">
+<topicref href="GUID-7F6283C0-46E8-427C-B6A9-FB274A7D2C15.dita"
+id="GUID-0038394B-75A4-4756-81E9-20E37253BCA9"></topicref>
+<topicref href="GUID-7FD49142-23DC-44FC-BA7D-C11E0559C8CF.dita"
+id="GUID-11592135-8CB0-4A35-9897-F7CFA46C6046"></topicref>
+<topicref href="GUID-D0FEE812-AD80-40D8-B902-05EC16C44C42.dita"
+id="GUID-49B6B6A3-4EC7-4599-8A83-20646DE9698C"></topicref>
+<topicref href="GUID-DD77AA04-D0AB-4BEB-900F-B3BE50AC0B7F.dita"
+id="GUID-FB45A6CC-6914-4B7A-9431-1E8058C10C75"></topicref>
+<topicref href="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita"
+id="GUID-1042C09F-0603-4DED-9121-0A1AF0432D58"></topicref>
+</topicref>
+</topicgroup>
+</topicref>
+</topicgroup>
+<topicref href="GUID-BE2D9AAB-203B-471A-984D-91E917611641.dita"
+id="GUID-59FA8881-9BF5-478B-870D-8D6D6B5B71AE"></topicref>
+<topicref href="GUID-49205F79-C17B-4126-BDB2-D759B91B5894.dita"
+id="GUID-E2BCF8DF-C4C7-4794-9564-3D331FA9C716"></topicref>
+<topicref href="GUID-3B0602F1-4294-43C4-9E7A-B1A33291C22F.dita"
+id="GUID-17884FA0-DECD-4CF2-8D43-6A96D62EF9FC">
+<topicref href="GUID-E2E2FACF-5D4F-43E8-8B53-B268252CF572.dita"
+id="GUID-9724F5D3-25E5-4554-A455-CAB47711343C"></topicref>
+<topicref href="GUID-A2F691C8-9525-4028-BF82-70E9D50630C6.dita"
+id="GUID-0329CC54-10A5-4B8F-AAFE-A77911A95FDA"></topicref>
+<topicref href="GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2.dita"
+id="GUID-E4C02E9B-A6D0-43F3-9C95-A26C0BC2E23F"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-76682AC5-843A-49B8-9745-629072578810">
+<topicref href="GUID-E3D2A6ED-8192-563D-8966-DD96B3AF1783.dita"
+id="GUID-BEEDC56D-65E6-4A0E-B0BB-0FC61C0158AD">
+<topicref href="GUID-0DF9E318-BE97-531E-AB39-A7B5E8787C87.dita"
+id="GUID-FC07B074-5550-4086-A938-6CAC8B6A32FC">
+<topicref href="GUID-A63025D1-7FD4-5120-8A1F-537D6B70103D.dita"
+id="GUID-F3064AF3-2C68-4B2F-B2C4-79A35561B162">
+<topicref href="GUID-2E085BAD-AAD7-5D1A-89A7-287EE42D1069.dita"
+id="GUID-5CBB69F9-A7C9-4D69-9211-237DDA8A7D8E">
+<topicref href="GUID-F6F9B2AC-A47E-5B0B-A1E2-EE2B31B59F2A.dita"
+id="GUID-BB42D8C5-DD96-4770-82DD-AEB3325C3226"></topicref>
+<topicref href="GUID-B1BDF68C-F989-56BD-AED4-727595D7355C.dita"
+id="GUID-09177199-BEA9-4F56-9159-15AD55026FBD"></topicref>
+<topicref href="GUID-8B28B8BB-6935-5332-B4D3-4183FDA3D202.dita"
+id="GUID-D75E45C4-1AF4-4353-A4C1-9AFD6515E78A"></topicref>
+<topicref href="GUID-56EE13F0-CAEE-5E1C-99CD-2FEC8C3BCA6B.dita"
+id="GUID-D12C89B2-6811-4E8F-9BBF-4DD9A3F7E0ED"></topicref>
+<topicref href="GUID-C302BD91-12AB-5888-98AC-33EB7A146312.dita"
+id="GUID-4045504D-0D82-40C5-B26C-A4C28DED7984"></topicref>
+<topicref href="GUID-BC32CC7C-99BA-59E8-A268-42F411CF336F.dita"
+id="GUID-50153701-E9B9-452E-B92B-A1094E853398"></topicref>
+<topicref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita"
+id="GUID-A78015FC-0041-489D-A5F1-98AEBA9B4C56">
+<topicref href="GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F.dita"
+id="GUID-1B74B04F-38F8-451B-82DD-793758278D99"></topicref>
+<topicref href="GUID-6FED83FE-1360-5468-B938-0BDFF7D62C43.dita"
+id="GUID-3C717E7B-7491-4FA8-B4B7-38D783C0F107"></topicref>
+<topicref href="GUID-591552AB-D708-5CB5-9597-A0AF3D303178.dita"
+id="GUID-6108B5B6-7305-4632-8A4C-9F1ED9325EE4"></topicref>
+<topicref href="GUID-4FB4CAD4-52BD-5DC1-9B20-34DA77F70A9D.dita"
+id="GUID-5372B9E9-0574-4ED9-BA76-36DF8EA2C093"></topicref>
+<topicref href="GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90.dita"
+id="GUID-A8C0655C-BF4A-4E6E-ACEA-179CD4A80593"></topicref>
+<topicref href="GUID-6163197B-7983-5FB7-9B92-02E490A900FB.dita"
+id="GUID-483EE44B-3365-49BB-92A3-A156AF3FF73C"></topicref>
+<topicref href="GUID-B0492A3A-A7F6-5F41-AE5C-4B31AC85769B.dita"
+id="GUID-B443370B-6B56-4F01-91E6-DC9EC3E49C43"></topicref>
+<topicref href="GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03.dita"
+id="GUID-EAC98612-78DB-497E-BB14-1DCEE81FB89C"></topicref>
+</topicref>
+<topicref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita"
+id="GUID-A38D1387-F66C-4741-AEBF-E38C694BAFC5">
+<topicref href="GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72.dita"
+id="GUID-F47CF45D-B4B3-4209-877F-9846C40904D2"></topicref>
+<topicref href="GUID-07045409-4714-5800-89EF-73590D4F0F37.dita"
+id="GUID-B789D2CC-6C0A-48FC-B6FF-744E83D3FF88"></topicref>
+<topicref href="GUID-2364CAB0-E19E-5EBB-837F-F6484642C2E4.dita"
+id="GUID-6BFF3904-14A7-4CBD-8C93-FBBFCAA1B783"></topicref>
+<topicref href="GUID-82C53275-6F7C-5B3D-9A07-FA4801D42403.dita"
+id="GUID-D25FA182-726B-4BBD-8303-3338B17DF2DC"></topicref>
+<topicref href="GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431.dita"
+id="GUID-9E77D025-C8A7-45B3-A0E2-3C5596F2FAAB"></topicref>
+<topicref href="GUID-59ED6D14-0976-58AE-8DDC-73F051866406.dita"
+id="GUID-7FD9BD3F-257D-473B-968A-B2C576C671CC"></topicref>
+<topicref href="GUID-8C1DF426-C85B-5124-970D-96119491926F.dita"
+id="GUID-5FCE899F-5C42-48C1-B899-E827E4899EB9"></topicref>
+<topicref href="GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B.dita"
+id="GUID-282327FA-4940-401A-BC3A-C7FF726DD828"></topicref>
+</topicref>
+<topicref href="GUID-E3F403EE-717B-5EA6-BC4E-6840097CAC10.dita"
+id="GUID-F64766AC-7BE7-4507-A7D1-CC0503DD3C7D">
+<topicref href="GUID-2F64B579-73D3-548A-9104-16483AF77BCB.dita"
+id="GUID-A926CFA1-2572-4B86-96C2-F2B74AF05E53">
+<topicref href="GUID-6180B291-1862-5F1F-AF05-85E42B37B172.dita"
+id="GUID-84319761-9B74-4117-934C-070388A6A268"></topicref>
+<topicref href="GUID-DE17BEA2-C821-50B8-9128-9C4D35D95599.dita"
+id="GUID-3BBCCBDE-84CE-490E-A952-7D9AEC29C70B"></topicref>
+<topicref href="GUID-9452D60C-CD3E-570D-885F-F329264AB6F4.dita"
+id="GUID-702FA6CB-7E52-4D5B-A4B1-5C356480F090"></topicref>
+<topicref href="GUID-763A2636-D448-5353-9E31-F61FE7EB39DA.dita"
+id="GUID-1105E58F-06E0-4C0D-9280-00CD93002E23"></topicref>
+<topicref href="GUID-74C7B8E1-0A02-5242-A8C9-5CDD410102CC.dita"
+id="GUID-B773E7DC-A333-4B30-81D3-143C99134557"></topicref>
+<topicref href="GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3.dita"
+id="GUID-F642EA40-6F1F-4AD9-AD9E-1CC44D0C3103"></topicref>
+<topicref href="GUID-577F42BA-299E-5071-8C7A-FA0CBADCECAE.dita"
+id="GUID-A912F76E-EF15-46C0-8C92-091E17C86C9A"></topicref>
+<topicref href="GUID-63C60154-2A50-5A39-A188-515A607F498B.dita"
+id="GUID-824DE92C-BA12-43AA-9C91-6E28D84093CC"></topicref>
+<topicref href="GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697.dita"
+id="GUID-06DEEC83-E704-4C6A-9C1B-6F37E92D1816"></topicref>
+<topicref href="GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita"
+id="GUID-88ED2285-9F19-4E83-AD9B-6043E9C690B1"></topicref>
+<topicref href="GUID-E1410365-7254-5326-B3F7-D7100D31E59F.dita"
+id="GUID-93A0EA57-A5CF-4EC3-BF64-8E3AF3AAE89C"></topicref>
+<topicref href="GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041.dita"
+id="GUID-B33F5706-1783-4C34-98EF-17A4A2942E0D"></topicref>
+<topicref href="GUID-F50003D0-402A-59E1-8F6F-8C999DC81735.dita"
+id="GUID-05E865C7-DFC7-4A6C-B88B-246B98BA6D3F"></topicref>
+</topicref>
+<topicref href="GUID-59DB0115-053A-5D23-8C40-E2428C096BBC.dita"
+id="GUID-4C61BD8E-3397-4C36-9B1D-C7D6A861B6C3">
+<topicref href="GUID-27C933F7-4634-57C8-B3D2-45C5563FECA4.dita"
+id="GUID-71804319-E7BB-48D2-B070-F694B49E5EB6"></topicref>
+<topicref href="GUID-5B2D6FE7-A09A-5DB1-A0B6-D1A1397D845F.dita"
+id="GUID-3C32477B-A44D-40E1-B6A8-B1F1F9E61DBA"></topicref>
+<topicref href="GUID-02E674F7-86F1-5A9C-8189-F4CEE80D9FBD.dita"
+id="GUID-569E8D3D-0D96-44CA-AAEA-19327C5C7058"></topicref>
+<topicref href="GUID-DE9E76F8-AE17-5962-A2BB-5006C6AB5C82.dita"
+id="GUID-325D5400-9DBD-4F97-831A-C91F7A98BA5C"></topicref>
+<topicref href="GUID-DD3411FE-D95B-5153-8C90-442618920E20.dita"
+id="GUID-A0B975A3-11BD-401F-ACC3-503FEC7791B9"></topicref>
+<topicref href="GUID-0AF14EE0-D4FD-53EA-B7E5-10724E3FA0DF.dita"
+id="GUID-4D5ACAF1-3A37-48D8-AA09-B91B54C7DE4B"></topicref>
+<topicref href="GUID-07FA8EC8-151F-574A-89F2-34C4AE2D1F0B.dita"
+id="GUID-64A9DAFE-8E0B-4F72-A779-DE6FC904427E"></topicref>
+<topicref href="GUID-059326DB-E7A4-5CB8-BCA7-FF0C71D9D1C7.dita"
+id="GUID-30B021BF-4B49-4FB4-A8F0-DA31D9F9AB30"></topicref>
+<topicref href="GUID-D664843A-0741-5E38-88D0-D8BEC9C732EB.dita"
+id="GUID-B3F52D8C-64BA-4793-B0AA-431F5F65FD4D"></topicref>
+<topicref href="GUID-1A94AA49-3954-581B-92EE-C9BDA253508F.dita"
+id="GUID-F8B844AB-6B49-4BEB-9D1F-5B6584506CC5"></topicref>
+<topicref href="GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60.dita"
+id="GUID-F8022622-E1A2-4E2C-8D49-E05A4B8B1952"></topicref>
+<topicref href="GUID-D1ADAF9A-62BD-5B68-980F-524FF440FEE1.dita"
+id="GUID-EF13EAD7-9488-4359-A7A2-B258DD8D8EDA"></topicref>
+<topicref href="GUID-5875C752-12A9-5819-90D9-CAAE48F1A5C5.dita"
+id="GUID-6F9AC6EF-E95C-46CC-92EC-31E6D0ABD414"></topicref>
+<topicref href="GUID-0446FD98-E0A0-5E6A-B056-AF54172B7453.dita"
+id="GUID-08B07016-8C77-427B-BEAF-619BFA692D70"></topicref>
+<topicref href="GUID-FF0330E8-81CA-52F3-AD60-89360B74B25D.dita"
+id="GUID-6D158D9E-CC35-4551-92F7-0D1BDEB3F28D"></topicref>
+<topicref href="GUID-82074583-C3A3-5168-8225-C60D52F403F0.dita"
+id="GUID-6768B080-D90D-4E93-9860-0DFB87CE0118"></topicref>
+<topicref href="GUID-B70E22E6-CF28-58A0-9D1E-C9A12D1FBC72.dita"
+id="GUID-F31BB81C-6BB8-4D12-A421-E46F56B3D9E9"></topicref>
+<topicref href="GUID-4F8B0675-AC8D-529A-903D-DA31C8236A98.dita"
+id="GUID-DCC4BFB0-F6D8-4141-B0D8-115516B0662E"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E41C4E77-C48B-548E-A2F5-14FA5CC68982.dita"
+id="GUID-C85E2377-C747-4B74-96C2-4563F850B5AD">
+<topicref href="GUID-978DFDB1-4B20-5302-A9E4-9C7404A7CB16.dita"
+id="GUID-A05294E9-E1DB-4C9E-B9B9-E04A23CA3ACC"></topicref>
+<topicref href="GUID-0EECEF02-EC6A-53D5-8B27-C0732DA0160A.dita"
+id="GUID-E7D43357-D305-4AFF-990A-8DDD55D0CA37"></topicref>
+<topicref href="GUID-FD5C6057-C6D3-5C1A-888C-7B7A3C89CD67.dita"
+id="GUID-DA43E93B-D240-4AF6-B4AA-F90966FE6AFD"></topicref>
+</topicref>
+<topicref href="GUID-E18584A9-4F16-51D0-89CB-96275A588F54.dita"
+id="GUID-D68A23D3-A4F9-4C69-A16E-4442E0C43552">
+<topicref href="GUID-9309D482-8931-58FC-9B34-D0E5E942E404.dita"
+id="GUID-14A2A48A-A6A6-43DF-AB2F-C6FC0A7D74CC"></topicref>
+<topicref href="GUID-426BADE5-64CF-525A-B4E3-21C40D7B4AB2.dita"
+id="GUID-AA46F225-AB2E-46EF-8BCA-E7085D608834"></topicref>
+<topicref href="GUID-6C07F513-66D5-5901-94A6-9ADA16987225.dita"
+id="GUID-D6469D2A-192D-4F77-BAE2-3DD99B54A4D8"></topicref>
+<topicref href="GUID-7536307B-10B7-5866-8A21-9DA352DF1928.dita"
+id="GUID-02B9B871-991D-4CD9-9A20-0A234BE7D7E4"></topicref>
+<topicref href="GUID-4F5E644B-B2DD-5CD3-B763-E134F1916E62.dita"
+id="GUID-9B1065CB-7A93-4F24-87E7-78C3747072B1"></topicref>
+<topicref href="GUID-947F448A-34D1-570F-9017-ED7B70674FBC.dita"
+id="GUID-55FDF4D7-94EA-4504-97B2-4C0A8F343B82"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-829D80B6-7F14-5006-94C5-2609565D7BCB.dita"
+id="GUID-9B3D0028-F2CE-47B2-8398-10C685F310E6">
+<topicref href="GUID-FBE448A4-4728-5EE5-84F2-4790735857B3.dita"
+id="GUID-BC43B318-CE8E-4773-8722-4D1BFB577CA5"></topicref>
+<topicref href="GUID-E525E177-1FE5-5845-9BF8-B76D434B838D.dita"
+id="GUID-3603DB32-02D0-44D0-8F57-D2C978CDCB50"></topicref>
+<topicref href="GUID-A9A49E91-B4EC-5D92-A021-7D08F4ED094C.dita"
+id="GUID-1271751B-06A6-4E4A-9EFF-3E7823B315F3"></topicref>
+<topicref href="GUID-189FBB0E-0A47-5CCC-9209-DC69E76DE6B3.dita"
+id="GUID-3BC0F5EC-9A03-418C-9A95-28E1A6DDB737"></topicref>
+<topicref href="GUID-1A9B3BB8-9F68-5C71-9534-A59638BBCD1E.dita"
+id="GUID-739651A0-D07D-49C9-84CC-99700B2885FB"></topicref>
+<topicref href="GUID-B22DC2FB-FA5C-5F62-8F01-A975EAA24E7F.dita"
+id="GUID-10FD1BE6-F737-46D7-A168-41F1DA321331"></topicref>
+<topicref href="GUID-F9FCE3FC-42E4-5E9E-9AFC-A9B02E2612A2.dita"
+id="GUID-1DB31CDD-8FFF-4C0B-BFF3-B6EBA2DD5B63"></topicref>
+</topicref>
+<topicref href="GUID-DBF88873-21B1-5493-8EBF-C9071D314A09.dita"
+id="GUID-AACA078F-F05C-41F8-B5A1-29B5B4617E6C">
+<topicref href="GUID-A668C70B-1AFF-5D58-9527-8530E2472227.dita"
+id="GUID-23DC3DA0-A6A6-4C9B-894C-DB86C47FC9C9"></topicref>
+<topicref href="GUID-21C04887-9F9C-5066-AA1D-B30C433CC0AE.dita"
+id="GUID-E4F452C0-3D16-477E-AEFC-CC352D364F4B"></topicref>
+<topicref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita"
+id="GUID-1FA56A2F-960F-4B4A-AB4A-848436C8EF41"></topicref>
+<topicref href="GUID-C15F56E3-753C-55CA-B3EF-63B2D139BCE4.dita"
+id="GUID-B7233F2F-B8AE-4B65-99DA-8AD00B0EB522"></topicref>
+<topicref href="GUID-2E22CB5B-E648-5760-AB74-8947C7EDE2CF.dita"
+id="GUID-99ACE707-CC6B-47A5-88BC-47036F65B3B5"></topicref>
+<topicref href="GUID-106B5A31-012E-503D-A972-A745ECADC1E7.dita"
+id="GUID-738A2F5C-C6C2-43B2-9EBD-F4957C150149"></topicref>
+<topicref href="GUID-E189B0C0-AAB5-5472-996B-91043DE0B6D4.dita"
+id="GUID-89BDC12F-0785-4D29-9C76-C2EBCC04028C"></topicref>
+<topicref href="GUID-506642C2-A14F-55F2-9377-43DDB14F4053.dita"
+id="GUID-185AA709-9FCF-48A9-89DC-482019CA615F"></topicref>
+<topicref href="GUID-D43BBBF3-841E-51A7-A2B2-0695594C821A.dita"
+id="GUID-CBE07ABE-4DFF-4AA1-936B-29A6F09E642E">
+<topicref href="GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226.dita"
+id="GUID-4A11845F-46BA-4C41-8998-2BCCAE393686"></topicref>
+<topicref href="GUID-F3090A98-267F-5310-83F4-93FD5CB760D6.dita"
+id="GUID-9EBCF4EA-3FE2-4521-8421-8ED2CC0937FF"></topicref>
+<topicref href="GUID-37D7019C-E3EF-5841-8691-5A865A2B5FD2.dita"
+id="GUID-330EA479-22F0-4743-898A-6313080F9B33"></topicref>
+</topicref>
+<topicref href="GUID-11EEFB3D-0414-5BEB-9D78-56A4B9154008.dita"
+id="GUID-E5DBEB31-1201-411B-8789-F93FF097C88B">
+<topicref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita"
+id="GUID-CF7A580C-26DA-4D41-8741-0860013CFD96">
+<topicref href="GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47.dita"
+id="GUID-6EF017CF-3E4C-455B-86E0-6DF04DA274FD"></topicref>
+<topicref href="GUID-A60BFFE4-E527-547C-AF4D-30BB7A1C0D07.dita"
+id="GUID-AE832908-A511-466E-BA5E-3042D8B700DD"></topicref>
+<topicref href="GUID-05785721-C090-50C6-BE5E-46EF14222FFF.dita"
+id="GUID-C01CC076-C084-49A8-82C3-ADBDE9DF5C82"></topicref>
+<topicref href="GUID-6D1A830E-F0F1-5C0F-8EEB-70922C0EF6B8.dita"
+id="GUID-E89EC2D2-12D5-4D61-80F9-2C8270E14406"></topicref>
+<topicref href="GUID-C501E703-E39D-598C-B962-7A32AC9091DD.dita"
+id="GUID-4A7C5CBE-EAD9-4863-BE62-15B7D965E8E7"></topicref>
+<topicref href="GUID-2C7AF56F-F741-5C9B-83B9-46C175330ED1.dita"
+id="GUID-70CD7ABF-CE90-4198-B183-550923D2B348"></topicref>
+</topicref>
+<topicref href="GUID-4C4B6098-38B4-5BD0-8E58-712511EBE074.dita"
+id="GUID-668BF3F8-B888-4682-A2A0-CE2F34EC51DB">
+<topicref href="GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B.dita"
+id="GUID-1BDC4D32-D1BA-4993-8E8F-1EC0CA667206"></topicref>
+<topicref href="GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE.dita"
+id="GUID-3FE43FA5-C34F-4C1C-B214-50AF6705401B"></topicref>
+<topicref href="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita"
+id="GUID-4460BFE2-BAD8-4CBE-983A-55F5B3401292"></topicref>
+<topicref href="GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita"
+id="GUID-4DF2DDF3-7A80-47D1-8B7A-73BBD035FF5F"></topicref>
+<topicref href="GUID-C85B4EA2-0184-52AF-B097-152E4A023CEF.dita"
+id="GUID-1C3F40F8-DF1C-4180-AA15-2504A942D4D3"></topicref>
+<topicref href="GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita"
+id="GUID-7192FE81-433C-4CC8-90D1-FD900EC47665"></topicref>
+</topicref>
+<topicref href="GUID-E8BEE049-6814-543B-8A88-889E434A5D92.dita"
+id="GUID-9EF108E1-AFD9-43CD-85B2-8F36752DBD31">
+<topicref href="GUID-BD649ABC-4DBC-5E37-B80D-2BB86F94F26A.dita"
+id="GUID-2B8301AF-3A72-4381-9DDC-56DD20CFF06E"></topicref>
+<topicref href="GUID-E81D72B2-BA77-5F4E-8742-3812A60A4DAC.dita"
+id="GUID-A00490B2-BD00-4F3B-A150-F8E9D1BB33D0"></topicref>
+<topicref href="GUID-4C1F3DB3-039C-57D6-987F-4A26E1E056E6.dita"
+id="GUID-362EA06B-5C45-4D20-81BC-B01BC6C3B36A"></topicref>
+<topicref href="GUID-F46D5A5B-EC44-53B0-9A11-886735B28610.dita"
+id="GUID-051088B6-BE50-41C6-B0EA-6A1BA9C41D50"></topicref>
+<topicref href="GUID-9F82E4D3-DDD4-50A5-AB12-50B216B73368.dita"
+id="GUID-D9E206CB-29F7-4719-8C16-C5125F2F0BB7"></topicref>
+<topicref href="GUID-4AC3CC42-6E8D-584A-AA39-84B5E0F3C16A.dita"
+id="GUID-B5C3ACEA-3230-4102-ADA2-45F9FB1C6399"></topicref>
+<topicref href="GUID-E8F8A9BE-4DCE-5CB9-BFC7-9BC00A7845F7.dita"
+id="GUID-3A838AB5-551B-4E19-AC5F-762F431136E2"></topicref>
+<topicref href="GUID-A7D95E53-67DA-54C7-B093-995CA9CC39B5.dita"
+id="GUID-3872E29D-2EA5-42B0-B030-ECA2A8CCF416"></topicref>
+<topicref href="GUID-93AB9273-08A5-52CD-AFF7-8B92D72067BF.dita"
+id="GUID-0623149D-7E4A-4707-9ADF-5DB1B43B320A"></topicref>
+<topicref href="GUID-0B6C97D3-0E2D-5BBE-B8AC-985902715160.dita"
+id="GUID-366DA172-7A13-4DE4-8546-746550749B13"></topicref>
+<topicref href="GUID-3D73DD8F-8D23-5D47-A4F7-3673C993EF8F.dita"
+id="GUID-57FA9F90-95BA-486A-BC90-FAEE932FBF92"></topicref>
+<topicref href="GUID-B71F0B0C-CFEB-583F-841D-07340DD6B9CE.dita"
+id="GUID-02532C12-30D2-4000-B65E-4385F28124BB"></topicref>
+<topicref href="GUID-7830BAAB-40DD-5E55-84B5-8DCA888E68E7.dita"
+id="GUID-A055327A-9E55-4EDA-B235-9C84FD27C462"></topicref>
+<topicref href="GUID-5B1A7CBF-40DE-56F9-B145-948C6F72B647.dita"
+id="GUID-013DE055-5BAD-46B8-AB44-EAAD04A77911"></topicref>
+<topicref href="GUID-FD273259-2282-5353-847D-853D483C37BC.dita"
+id="GUID-C2297F4F-D6D6-4E44-93E5-D9F21C52C089"></topicref>
+<topicref href="GUID-EC21A1A2-FD5A-5764-A69A-18D74090BA92.dita"
+id="GUID-622367E2-D926-4173-818F-CD928DA27DF1"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita"
+id="GUID-BDDB91E3-C0B1-4527-A827-6A996017C2AB">
+<topicref href="GUID-6468F3CB-7828-5746-A868-AD525EB7D6BD.dita"
+id="GUID-B27B8217-7CA6-4C1C-AD62-2AFE35B3D96E"></topicref>
+<topicref href="GUID-C642BA79-0E9B-5C62-9DC7-C64759830CD4.dita"
+id="GUID-7BCAD2E1-6082-4BEB-B931-73D434226703"></topicref>
+<topicref href="GUID-59FFCA8F-5F2C-55F9-B864-AFA1CC18722D.dita"
+id="GUID-FC1778D5-AA79-4E9C-B546-26BC9F56CB84"></topicref>
+<topicref href="GUID-E3DD768F-752F-5414-9E9A-86E046806903.dita"
+id="GUID-34BFA2A7-6251-4327-B866-CA1E91D13AFE"></topicref>
+<topicref href="GUID-82862A69-5E86-5924-BFF0-F7655FCBFAF0.dita"
+id="GUID-0DE9CF17-8E3A-4E7E-9F71-BDBB23B1701F"></topicref>
+<topicref href="GUID-596ADF23-FC69-5415-AAC6-EF565F75D0B1.dita"
+id="GUID-5EF77288-7933-441E-AD11-DD1CB86F01FD"></topicref>
+<topicref href="GUID-807B5CEE-CC1E-5A40-911F-3C5D5FA3633A.dita"
+id="GUID-55CBC3E7-5BD5-43D0-861D-A9AB8EF887A7"></topicref>
+<topicref href="GUID-1F1A6FCD-DA06-5F8B-8F2C-0BAA08DE0041.dita"
+id="GUID-BFCC1252-B36C-4A18-BF27-5226BCB5C2DF"></topicref>
+<topicref href="GUID-81C1F6BE-B2CE-5A2B-A6D4-DC1ABBBED0DE.dita"
+id="GUID-BB3AD3C4-0F24-484E-A1E6-8F3CF2AEC48F"></topicref>
+</topicref>
+<topicref href="GUID-D4A78D68-0812-532C-9AF9-85F1483EF3EA.dita"
+id="GUID-D45756CE-A901-41E0-9242-FEB86534BA5B">
+<topicref href="GUID-FE888721-C479-5D8A-810F-1A79575A1D58.dita"
+id="GUID-0B22FEBD-66BB-48BB-BD55-C9ABA1BEB48B"></topicref>
+<topicref href="GUID-D86B83B5-298E-510A-B984-7307CCA1AE1C.dita"
+id="GUID-CCC17DFB-D62F-4EDE-AA37-03C73646408D"></topicref>
+<topicref href="GUID-0C8389B8-91DF-58A1-A2A1-945A18CCBB10.dita"
+id="GUID-A52B5B7A-9E4D-4918-A7EB-315F1CE12B3B"></topicref>
+</topicref>
+<topicref href="GUID-7CB11EAD-260E-551A-85F1-FEAC975FE722.dita"
+id="GUID-F5AB6645-183B-45BF-B5CF-5FFA38F0F944">
+<topicref href="GUID-7A9FBE3A-D75E-59FC-9ACD-196670F0F9C8.dita"
+id="GUID-3DC65A67-D767-4B85-BFFE-BEA94C312033"></topicref>
+<topicref href="GUID-6C1E4B3D-0FBF-5CEA-9A30-B4C5CB4CAC3E.dita"
+id="GUID-6A11C172-AE54-4F84-B422-E7B64B1F9F66"></topicref>
+<topicref href="GUID-8A58670C-D805-5E97-9B88-70C40CD011D4.dita"
+id="GUID-FF653BED-5EF8-4A1B-BDA6-A3AF27DDF953"></topicref>
+<topicref href="GUID-4F2F254A-1A81-507A-B364-BE4088D3B3AE.dita"
+id="GUID-C0B6C6FA-A4DD-450B-BCCB-585BD892E0AB"></topicref>
+</topicref>
+<topicref href="GUID-565386C7-A6D4-59E2-A9CF-89F424750476.dita"
+id="GUID-D576C0BA-7E43-4A0D-8DE2-0E12EB797EDE">
+<topicref href="GUID-772DFFA1-4BBC-516F-909D-47CB773760F5.dita"
+id="GUID-870A3A36-D8F2-4D31-A54D-5F50C285C681"></topicref>
+<topicref href="GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC.dita"
+id="GUID-17E9BD27-EBF9-41FA-8ECA-270C03CB2286"></topicref>
+<topicref href="GUID-C8C2645A-F5A4-53F0-8F43-485FC0B472DC.dita"
+id="GUID-A83CDEE0-3945-471E-A2D6-A90C5CD47251"></topicref>
+<topicref href="GUID-4F882837-0DA1-5243-BA7B-696B418A160E.dita"
+id="GUID-2B0A3742-55F7-4DA7-B59B-B0F482D1C7A7"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-7AB66E79-1B75-50FE-ADA2-07B92B11D478.dita"
+id="GUID-1D51A8FD-BF52-45D7-A177-962997108338">
+<topicref href="GUID-CD506806-FC59-547A-B5CD-03314DF847F7.dita"
+id="GUID-5A340F82-0E2F-4937-94C2-74680A2BEFC5"></topicref>
+<topicref href="GUID-B1DD21A3-674A-5193-95CF-F533FDBBD319.dita"
+id="GUID-EC0A2588-2348-4F6A-B638-C331F1C49393"></topicref>
+<topicref href="GUID-61376760-C576-51E0-85F2-34718F8DC321.dita"
+id="GUID-587221E5-E525-49B4-81F6-9B4C3F29BD35"></topicref>
+<topicref href="GUID-4DC2D055-E522-51C4-8BF9-1361089F0E4A.dita"
+id="GUID-C5D071C7-40B9-4B7D-AA6F-7AAEB6524F61"></topicref>
+</topicref>
+<topicref href="GUID-4A56B285-790E-5171-88F3-8C40B2AA9699.dita"
+id="GUID-6584BA84-1172-4F0B-9582-B1CC2877C145">
+<topicref href="GUID-260C7ACD-0024-59DE-B1C6-0C852E44C457.dita"
+id="GUID-6A3A55F2-32B1-4EE1-9ABE-B73596B0D17A"></topicref>
+<topicref href="GUID-38CF8A8E-4778-5374-8AC6-5F9486A2B7FB.dita"
+id="GUID-7131D52F-3142-42B7-B081-A36D15ADFE2D"></topicref>
+<topicref href="GUID-C135B8D8-DA5A-5852-9C2D-18622404FE99.dita"
+id="GUID-6B7F7880-B2C7-488C-B47D-24AC3F8C89B8"></topicref>
+<topicref href="GUID-7572B1F0-66CD-53B8-A479-4A078C9CB28A.dita"
+id="GUID-47852D7F-0B15-4F4C-B639-08F807569896"></topicref>
+<topicref href="GUID-4FFA793B-9E57-5D59-B9A7-528F11C4852E.dita"
+id="GUID-04CE746B-A184-4FC5-881B-FAA3A8E9D4D4"></topicref>
+<topicref href="GUID-6D6DFC3A-8940-531A-A319-922317D19B51.dita"
+id="GUID-51461A29-B3AB-4C4F-84E2-6A2D6614E51D"></topicref>
+<topicref href="GUID-301193C2-666C-5A57-B898-A04EBB63E533.dita"
+id="GUID-E7FFE041-7ACB-4299-904A-ED4255590AC3"></topicref>
+<topicref href="GUID-FC043A7B-8990-52C8-85F5-10FF1B8EA36D.dita"
+id="GUID-1AC7BEA8-E2DE-4431-8479-A9446D4CBBFD"></topicref>
+<topicref href="GUID-6A37628A-C732-5765-9DC5-3AC691C2CD50.dita"
+id="GUID-0DFBA557-94B9-4F45-B950-2BA99CFDF6EA"></topicref>
+</topicref>
+<topicref href="GUID-2EAAE194-FAE1-5545-A678-72973E9B72A7.dita"
+id="GUID-40B690FF-755D-4137-B57B-DF5BD8DB1C21">
+<topicref href="GUID-485B1284-9DB0-5AF7-906A-89A830B9FE44.dita"
+id="GUID-1A287B77-7EFE-4E77-B8FA-80AB61B3B9EB"></topicref>
+<topicref href="GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017.dita"
+id="GUID-0031F231-FA23-4AC6-A31E-55675A1A0152"></topicref>
+<topicref href="GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E.dita"
+id="GUID-E9569A0F-42BB-4A60-9B57-FA029D257BA8"></topicref>
+<topicref href="GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C.dita"
+id="GUID-0294F137-AC96-4102-AABB-FE920CBE3A2D"></topicref>
+<topicref href="GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita"
+id="GUID-65B074EB-C713-44A2-8C2B-48D036A54192"></topicref>
+<topicref href="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita"
+id="GUID-586DF937-4E53-4222-82E2-574BEB89ADD1"></topicref>
+<topicref href="GUID-4C406E49-7726-5620-AAAA-84C33DADAF4B.dita"
+id="GUID-5CF91F24-AF6F-4622-AFBE-86D589619EAE"></topicref>
+<topicref href="GUID-C668AEF1-B7E2-53BB-A7EF-B92CA253DE2F.dita"
+id="GUID-A956A33F-D41E-47F0-9417-65D1A61C60F2"></topicref>
+</topicref>
+<topicref href="GUID-3786D8E6-17A9-52E4-A8DF-CFCDC3039854.dita"
+id="GUID-DD863B8E-174A-46B3-8A63-A9A8F8065E1B">
+<topicref href="GUID-E530CBB9-C20D-5426-89AA-DC0281C05381.dita"
+id="GUID-53C54F14-9B09-4B78-9D37-9BB39D3F9A7D"></topicref>
+<topicref href="GUID-1294F540-FDA7-5050-BAFB-3C9888491B98.dita"
+id="GUID-5C003DD9-133C-4D62-A306-603A299C4C8A"></topicref>
+<topicref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita"
+id="GUID-1D3C6E96-967A-49E3-A436-90DD779FA13F"></topicref>
+<topicref href="GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0.dita"
+id="GUID-4C7DE43F-9CC8-4ADA-8D79-D760FAEFB429"></topicref>
+<topicref href="GUID-B507490F-6BD3-5DF5-97E4-EFDFEA2B4EDD.dita"
+id="GUID-B0D3B737-3362-4400-8B09-E6C49AAB1445">
+<topicref href="GUID-EEAB5A2F-AD1F-57B9-98AA-20DEEA23C3C2.dita"
+id="GUID-1A68E48F-CDAB-4740-9742-68DCDBED9466">
+<topicref href="GUID-AAA2ABA4-5555-5E4B-AEFF-3DF61462B170.dita"
+id="GUID-9BF52726-2FEE-4660-8F38-693969D4F930"></topicref>
+<topicref href="GUID-FE14D954-4712-5DCE-998E-A39D79500ABF.dita"
+id="GUID-D3C2F936-C18C-4B51-8142-D38BFAEA65C4"></topicref>
+</topicref>
+<topicref href="GUID-C0C19F93-D804-5AED-90E4-A814FA6A3732.dita"
+id="GUID-5B7849CB-BF2A-4840-B65C-5C991743D176">
+<topicref href="GUID-C3AC4F95-67E9-5F1D-8CF0-F6B209319EC0.dita"
+id="GUID-F658B8A5-109D-4809-93A7-C248106B0355"></topicref>
+<topicref href="GUID-E6D9F8CA-F293-5CE6-93C4-5FEC5EBCB2E9.dita"
+id="GUID-4324A7C8-B2F2-4696-944E-0CA8781EB734"></topicref>
+<topicref href="GUID-CCCEC352-3A49-534C-9551-A4CAE1A3475E.dita"
+id="GUID-75041745-10A5-4CDA-B141-F36DA543C486"></topicref>
+<topicref href="GUID-B11304D7-284A-5165-9565-F9CC4405E258.dita"
+id="GUID-654A05D6-30DD-4B58-B8C0-28AC3BFB1153"></topicref>
+<topicref href="GUID-3A4947BD-1BEB-521C-BEDF-738064E83FE6.dita"
+id="GUID-3C157072-5EC0-4F56-AAFB-C31416F4D950"></topicref>
+</topicref>
+<topicref href="GUID-C2608BF5-CDA7-530A-B67A-0414C7FA585D.dita"
+id="GUID-51055D0B-600B-40F5-8659-A67FC6EACB85">
+<topicref href="GUID-2B8D3611-5B97-50E7-A9DD-23626A8EFB45.dita"
+id="GUID-5E025678-1B76-42A3-9D22-784898752C59"></topicref>
+<topicref href="GUID-890F06C6-DE32-5EB1-BF0F-D41794F47AE1.dita"
+id="GUID-6B5386F8-4595-485A-9A82-C2D5C04E874B"></topicref>
+<topicref href="GUID-2C5D53A3-0211-5C14-BD7F-E89EB27BAD2A.dita"
+id="GUID-8AFFD5DA-ED89-4ECE-AA35-E7E00428BE97"></topicref>
+<topicref href="GUID-220E5E6A-B55D-57BB-AC1A-CE06EB01F661.dita"
+id="GUID-7894DA11-7174-452E-AC5A-5B019E9F3744"></topicref>
+<topicref href="GUID-1D6DD213-1EEC-58D2-8311-7A1AF77960C1.dita"
+id="GUID-2AB947BB-6510-456B-A1F9-069F37806FF8"></topicref>
+<topicref href="GUID-0A9D11FB-6A24-5115-A39C-23FDE864DF6A.dita"
+id="GUID-67326936-D8B8-4162-966D-B1290B95F116"></topicref>
+<topicref href="GUID-B67DB652-A489-55C7-A3A2-D00C43BE161E.dita"
+id="GUID-0922A5DF-CC75-4D56-9A3F-F46A7D06D3F8"></topicref>
+<topicref href="GUID-1BD987D8-B018-51B7-80B2-4E1988841BC2.dita"
+id="GUID-94CB7DC0-617E-4534-8E2D-327AFA67C2F0"></topicref>
+<topicref href="GUID-56841E07-1A4A-5572-BF3F-F80069FD5D59.dita"
+id="GUID-50F2AE79-2274-4466-81FC-BCCA3DB64031"></topicref>
+<topicref href="GUID-9C36CF76-6ED2-5674-908F-A3DF8930CEB0.dita"
+id="GUID-AD7DEAAB-09CF-4117-934B-1F827FB65F2E"></topicref>
+<topicref href="GUID-2161BD64-889B-5EAB-B023-1162FE9619DB.dita"
+id="GUID-76EE2D5B-EEF1-4FAE-B221-31E262F9B8F0"></topicref>
+<topicref href="GUID-8BD6B29C-D905-5D2B-992A-A04AAD9ABBE3.dita"
+id="GUID-51E993E3-1A11-4064-A50A-B8B2D63C7273"></topicref>
+<topicref href="GUID-8EAB97D5-267A-58CC-BC3E-5CB1D72CB7ED.dita"
+id="GUID-4BA7A433-07B6-48A1-9743-072513B705FC"></topicref>
+<topicref href="GUID-7809407D-EDC0-5907-B932-0D5726A7ECA2.dita"
+id="GUID-48431283-6B89-4227-9172-842A3DD4D4D3"></topicref>
+<topicref href="GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2.dita"
+id="GUID-09FB32EE-EF29-4840-A68A-78E49EE84B5B"></topicref>
+<topicref href="GUID-BF796290-E9BC-5A18-AC59-9848823FBE34.dita"
+id="GUID-718DF0B1-C5D1-4878-ABD5-14A242BF4912"></topicref>
+<topicref href="GUID-837EF355-9154-506B-AE4F-4290FC9DBDC9.dita"
+id="GUID-68CBDF9E-A4D5-4975-8AF4-3E3E9FE55A23"></topicref>
+<topicref href="GUID-162A4409-1ABB-51A1-B7F1-75A31A5DEA63.dita"
+id="GUID-C06C0BDD-089A-4BBD-A5CF-ABF9B3F6F3C6"></topicref>
+<topicref href="GUID-C73318E7-44E2-5F42-BDB0-AAE9BD72BF5C.dita"
+id="GUID-D4164565-C509-4CD8-A1F2-A79080433715"></topicref>
+<topicref href="GUID-E72E2602-0492-58F9-A01F-D72BCC3FFFD5.dita"
+id="GUID-E914C0F6-02F2-433E-BF6F-BEA905FC3364"></topicref>
+</topicref>
+<topicref href="GUID-E1CF82AA-D1CB-59A6-96B6-17235278E2F9.dita"
+id="GUID-8229E47E-C3EC-4F34-B29D-AD53C8AA668B">
+<topicref href="GUID-C08CE95C-E1D4-5C43-93FB-21B6E86F4565.dita"
+id="GUID-3A5D8BEC-F47B-423A-9DBA-B39C62EA1748"></topicref>
+<topicref href="GUID-3631971E-424B-5B10-B44C-98FB7C265843.dita"
+id="GUID-CDC752D2-28B2-462C-8ADA-13E7205C53A0"></topicref>
+<topicref href="GUID-59BBEA98-6501-5415-A4B5-3AE8E33957D3.dita"
+id="GUID-24F3AA55-132A-4DD0-B449-C8BF335AA32E"></topicref>
+<topicref href="GUID-9BB736AD-1224-587B-AC8C-355E7C8AEDC6.dita"
+id="GUID-316F8301-F19E-4BED-9C5A-23EFF27CFDDE"></topicref>
+<topicref href="GUID-204B4155-AE35-5C53-867B-299AF7E5D16A.dita"
+id="GUID-39CC0846-014C-4403-80F0-4B7421404495"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita"
+id="GUID-B4DBAAE4-6F1E-4B5C-AD85-56D834A3ED66">
+<topicref href="GUID-D4C7A714-F7BB-5A8D-A875-4796395B9B6C.dita"
+id="GUID-02CBC2C2-209E-4550-B28D-6D93A1C5EB65"></topicref>
+<topicref href="GUID-67718111-07FB-59CC-A9C2-86593F868C2C.dita"
+id="GUID-5846F02D-6927-40FD-8ABA-3F530335714B"></topicref>
+<topicref href="GUID-0A332D6E-E712-5186-8CD0-D5022FA54052.dita"
+id="GUID-04F4391C-92FD-4793-A85F-1733BA7BD0D1"></topicref>
+<topicref href="GUID-9169062F-3B6D-544C-847C-BA859DAB33B9.dita"
+id="GUID-7962BC67-C436-4AF9-815C-BCDB7AB6022F"></topicref>
+<topicref href="GUID-975F53E5-1C13-5063-B817-795F2623737B.dita"
+id="GUID-91E3D522-7030-4D10-81C0-0535CEBBFACF"></topicref>
+<topicref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita"
+id="GUID-C5B10B07-7A94-4C6E-923E-2AFDD9070FA4"></topicref>
+<topicref href="GUID-ADF4BBBC-E771-5A12-A246-B5EA8EEE8D79.dita"
+id="GUID-47F0D54B-F93F-4057-AA9A-5AD2DB195986"></topicref>
+<topicref href="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita"
+id="GUID-E46E3FD7-9E87-4EDF-AA81-39B7006A2C06"></topicref>
+<topicref href="GUID-579D7C32-B6C8-5C77-88A5-B3078729E1BA.dita"
+id="GUID-67D4846C-ABE0-4705-B4AC-6E102715D801"></topicref>
+<topicref href="GUID-51621C76-17B5-5829-B4EC-86B453442CDC.dita"
+id="GUID-EE5605C9-5198-4435-9873-88DAD3D58847"></topicref>
+<topicref href="GUID-A30C1204-F130-501E-BD2D-1EE1537BEFC3.dita"
+id="GUID-127527EA-9527-40B9-B082-30507C0CDF93"></topicref>
+<topicref href="GUID-FAE3F35C-04C1-5CF4-8090-9DF58AD1C02A.dita"
+id="GUID-9E0B7D98-A9E9-45A0-9726-8B1854414F79"></topicref>
+<topicref href="GUID-C1612638-4C5A-5C37-AF1A-16F9EBEF09FD.dita"
+id="GUID-75C34FE4-8EE6-4C50-BB0E-C666F5F38B4E"></topicref>
+</topicref>
+<topicref href="GUID-F77578A2-3B11-5C29-9D00-43B971561876.dita"
+id="GUID-30846D8E-D6BB-471C-A7A3-B4537D02EB88">
+<topicref href="GUID-3313A7E0-B10A-5CDE-8DA3-FB9C48FC80CA.dita"
+id="GUID-8CCB34BA-C08B-4948-9698-EACDED9E513B"></topicref>
+<topicref href="GUID-C79B3D8C-499C-58B8-9DF4-B2D41CC82186.dita"
+id="GUID-EA4C043F-DEF4-4AB2-AC32-9838C13884BC"></topicref>
+<topicref href="GUID-CABA0B4D-11E4-5659-B949-C4277FB63804.dita"
+id="GUID-0F502399-3D72-4BF7-AC9D-5FEE3F666531"></topicref>
+<topicref href="GUID-508DD478-1876-5DE2-9271-BDD99F51F579.dita"
+id="GUID-1C3239D0-7BFA-4D5F-8F90-109AA09C89EB"></topicref>
+<topicref href="GUID-6408C26A-2736-59A9-B785-6B119143619B.dita"
+id="GUID-E3772073-B712-482A-BD22-15D12FAFE878"></topicref>
+<topicref href="GUID-B57ECD51-85EF-50EA-B3EE-62A85CD9C382.dita"
+id="GUID-641E96DA-D95D-4798-AAB8-7F70AAC540C2"></topicref>
+<topicref href="GUID-52D2B0A4-1535-5D41-BF4C-06745C0588F6.dita"
+id="GUID-4D8BF011-B57D-4F24-B73E-BEB02E1956FE"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6A6D5DC5-3B5C-5A26-8D7F-C280AA4D5F18.dita"
+id="GUID-8911F3F5-4E01-4FB7-ACFF-C58E6C76CD0B"></topicref>
+<topicref href="GUID-9AA99D27-D646-54D0-92B9-204FDA1F3162.dita"
+id="GUID-112AB6D6-ED75-4189-8A8B-97645B72CAD2">
+<topicref href="GUID-07A31FD0-304A-57CA-8FFE-4DAD8EE9B30F.dita"
+id="GUID-C4070685-4400-410F-A6EA-E29EF9E14DF1"></topicref>
+<topicref href="GUID-EA98D77C-743B-5BA5-B131-A327B12A099C.dita"
+id="GUID-CBB69039-0925-4661-8134-E527B813573F"></topicref>
+<topicref href="GUID-CDDF6758-C995-5FC8-AC8C-63298B65BBDE.dita"
+id="GUID-B2156A0C-CC6D-494D-9FB6-DC38CA5A22FD"></topicref>
+<topicref href="GUID-486981A0-1F0E-5935-8E9A-9C6D4CCF34A7.dita"
+id="GUID-E59F020B-A007-4E31-AAAA-041D99FFE3B1">
+<topicref href="GUID-AC99E9ED-2C02-561A-ABA4-DCDD415E8653.dita"
+id="GUID-3BC77D0C-69F4-46D7-BFD7-C7B94D4B62BC"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-9636A30F-39EB-54E6-8125-4487D4002FE0.dita"
+id="GUID-F843A311-FA6D-4C91-B86D-5A889F57468A">
+<topicref href="GUID-54417A4F-710D-5257-BF49-13D9F28C92B9.dita"
+id="GUID-84924534-3CEB-4726-B087-ADE2DBA081D7"></topicref>
+<topicref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita"
+id="GUID-878AE774-C012-4772-8B8A-57D7E8C1B247"></topicref>
+<topicref href="GUID-6D8460DF-8B0F-5249-B236-92ABE0E67A14.dita"
+id="GUID-AEE87E12-6D2B-4533-BFC0-A573AF0163DC"></topicref>
+<topicref href="GUID-BFEBCD57-3C83-56D7-B7A3-B8A361725645.dita"
+id="GUID-055701ED-917C-47AA-A75B-F34AB5229AD7">
+<topicref href="GUID-D557CC2C-C045-5818-B2F7-9BD8BC39257D.dita"
+id="GUID-A0B53C82-4D25-4F89-9F3A-57B9570D0B56"></topicref>
+<topicref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita"
+id="GUID-7F06DF25-81C9-461B-BA9D-4F0EB07CED43"></topicref>
+<topicref href="GUID-911CD800-2D1B-5D7B-A67C-66E01F91062C.dita"
+id="GUID-5285569F-7D66-4D79-BF3E-BE9F02B651C4"></topicref>
+<topicref href="GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51.dita"
+id="GUID-2E514447-1D33-4573-87B5-DC2B8BCC7C5C"></topicref>
+<topicref href="GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241.dita"
+id="GUID-1DBA1458-B011-440B-8EB6-AD6A0083E6AF"></topicref>
+<topicref href="GUID-5FBA9BB1-94A2-470C-9932-C4255E3774C0.dita"
+id="GUID-45D556FD-F32B-4181-AC33-D67BB251DCB8"></topicref>
+</topicref>
+<topicref href="GUID-A1BD83F8-C6DB-5737-8052-7B710B19147F.dita"
+id="GUID-D7C23CB1-0F9E-4D48-A178-728CB327C80C">
+<topicref href="GUID-CFA21FBA-593F-58DB-AADA-C9D6D676AEEE.dita"
+id="GUID-E7865EB7-8533-41EB-984E-B7B71438289C"></topicref>
+<topicref href="GUID-239AA6F5-30CE-5FF0-9C36-93D39FECE1DD.dita"
+id="GUID-BB47D2DF-09BC-406D-9E95-5B34F7AEAA5B"></topicref>
+<topicref href="GUID-8E363123-A85E-521C-BC10-96C59130E45C.dita"
+id="GUID-ECD7C8E4-F843-465F-8E5D-CA0FECC25A60"></topicref>
+</topicref>
+<topicref href="GUID-61DEE78D-4E78-5367-BC8A-F99D3B4E9D5A.dita"
+id="GUID-298C4433-E9C0-4FA1-9324-0262701B7C85">
+<topicref href="GUID-26D7BC6E-509C-51C5-9B86-437F3AEEB2EA.dita"
+id="GUID-06C73C2E-71B4-47C4-B9AA-E33A8E5F40ED">
+<topicref href="GUID-40671EEC-DACC-5F0B-978C-2794FB206E62.dita"
+id="GUID-BA140A2C-1EA1-463A-9BD1-532DC4F9EBD7"></topicref>
+<topicref href="GUID-EA71F52C-DB4C-500D-9051-31BEF29E171D.dita"
+id="GUID-A1124BA3-6215-4178-AB07-C8D8D3BED915"></topicref>
+<topicref href="GUID-8DF1C625-7963-55E9-BEEC-C9E37936F8CF.dita"
+id="GUID-1459AE8B-DA49-4691-AD3E-86909DA7AC42"></topicref>
+<topicref href="GUID-3AD20E0C-F364-533F-9FBC-227478CA9982.dita"
+id="GUID-68B427D3-9D00-47A2-A30F-D8993063C5A9"></topicref>
+<topicref href="GUID-7E967B81-2DBF-5A89-B74B-93FEA5515685.dita"
+id="GUID-5A77628D-CDED-4C54-BB47-8251E63EF0C6"></topicref>
+<topicref href="GUID-1171C47F-D7F3-5A49-B191-DB6CB7C84DC8.dita"
+id="GUID-E78BCDAA-DBBB-4FCB-96B0-3FA1C7E13B88"></topicref>
+<topicref href="GUID-F686965A-13E5-5C0A-AED1-55EC91C79433.dita"
+id="GUID-9EE201BE-3708-4E1E-ADB4-3A1BC4C978C2"></topicref>
+</topicref>
+<topicref href="GUID-E7D29464-05E1-5039-8A02-62CB27B5FF21.dita"
+id="GUID-9F478608-2548-4436-B038-9F40A2F99308">
+<topicref href="GUID-E93E577A-0BDF-5472-B79F-DA60841C30CC.dita"
+id="GUID-C556C65B-5E4A-4866-A824-72A44A31F04B"></topicref>
+<topicref href="GUID-14BBFDA8-7765-5939-9E47-36E299841F50.dita"
+id="GUID-E0BCF164-319C-4F69-B7FC-0A3A79842982"></topicref>
+<topicref href="GUID-72E1F91B-173B-5F45-B9FF-42FD5F45438C.dita"
+id="GUID-5F9FE241-428D-4659-832D-439DED4B1C1B"></topicref>
+<topicref href="GUID-27AAD3D5-AEC0-5A33-B14A-2E8B8D21CDAA.dita"
+id="GUID-7014A533-7779-4952-8356-8F9AB84AC5D3"></topicref>
+<topicref href="GUID-FE138F1A-1F52-5E9A-8EB2-5A8945A9CF30.dita"
+id="GUID-794DBA8B-8C1B-4A2A-9F6E-A176D5A89672"></topicref>
+<topicref href="GUID-18182059-859D-51CF-A940-D230D9F9CF8C.dita"
+id="GUID-35E94611-65F5-47A5-AC1F-E7D67E270053"></topicref>
+<topicref href="GUID-7A71CD0B-84C7-5A77-B573-C61F67C382DA.dita"
+id="GUID-94D0C327-B933-4612-B2A1-B2328C13A45A"></topicref>
+</topicref>
+<topicref href="GUID-5EBA3C03-2E4E-5DBA-BB5B-0D40DAB3C39B.dita"
+id="GUID-451F1D29-1F77-4DB2-B21F-27AAC85FAA5C">
+<topicref href="GUID-5829247E-2E8E-502F-9051-A59DA8EE71B0.dita"
+id="GUID-F3A82DDC-7F8B-421D-9A52-A1957E7B7D17"></topicref>
+<topicref href="GUID-60BF8840-CB87-5A39-A46E-76F8D4EDB50C.dita"
+id="GUID-35611EA7-2F3C-4EBD-B7A0-ACD133EA2473"></topicref>
+<topicref href="GUID-1FC0156C-7BDB-5D5B-9860-837DAB431D24.dita"
+id="GUID-BB0B14DC-8766-4930-9168-D06003DA3A00"></topicref>
+<topicref href="GUID-96C7CBD4-4B25-5AA1-A54F-1764B54FDC7E.dita"
+id="GUID-77919329-4734-4E7A-A5F0-2EC5267686F9"></topicref>
+</topicref>
+<topicref href="GUID-7366AE99-DE25-5DE0-BF9A-58E7742DA952.dita"
+id="GUID-E2A54C48-31E3-4A48-8889-CB1FF26F349B">
+<topicref href="GUID-C6AB2B3A-BBFC-5B57-BECB-F46C96250502.dita"
+id="GUID-A980EDC9-C17E-4536-8196-01CF9A8B07F9"></topicref>
+<topicref href="GUID-18EF9CFA-5080-5F89-89EC-C64897612D6B.dita"
+id="GUID-D3D5F2F2-C893-44F6-AECC-3327BCA263FD"></topicref>
+<topicref href="GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A.dita"
+id="GUID-EC527DAA-DE47-4204-85DC-0CC071CFFD38"></topicref>
+<topicref href="GUID-011D0974-CC37-5335-A8EB-7ECF4FC30F93.dita"
+id="GUID-5B1EAF01-C2FC-4A88-A92A-07142EFA70EB"></topicref>
+<topicref href="GUID-D51600DD-B79A-5A4D-B2D1-36C0A9F9D115.dita"
+id="GUID-9458974B-5836-4E5C-826B-E299A1D38CFD"></topicref>
+<topicref href="GUID-76D1438E-445E-5864-BA9D-27BC61D72C1B.dita"
+id="GUID-3355F33B-81D8-425F-B14A-7EEC2E8EA944"></topicref>
+<topicref href="GUID-0970A970-6E56-556C-B032-B7EAF8ABBBA6.dita"
+id="GUID-7275D7D0-0E64-45F0-8003-9FD342ACD6F2"></topicref>
+<topicref href="GUID-0715E8B9-8F43-5C7B-BDC6-4E8FA5352714.dita"
+id="GUID-D1F41AF7-EE50-41BE-9979-4CFC4A7822B8"></topicref>
+<topicref href="GUID-52151070-626D-5F14-B53F-7B46BCBD633E.dita"
+id="GUID-2F4A4BEC-59BE-4617-A50B-4D3118A300E8"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-24FD00A1-CD09-5845-ACD5-4E4FF25084B3.dita"
+id="GUID-73F1E559-09A0-48E0-AD7F-5FFF529252AB"></topicref>
+</topicref>
+<topicref href="GUID-806298E8-3196-5A1B-A392-7D5A903C3F57.dita"
+id="GUID-96A1D206-1091-4C26-A495-2E15FE476270">
+<topicref href="GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293.dita"
+id="GUID-6D5EC853-1D02-442A-8E5C-E650F956BFA6"></topicref>
+<topicref href="GUID-2F4B2A69-9B92-52BE-9A1A-FDA501579CE5.dita"
+id="GUID-E2D6298A-18D1-4DE2-BD89-85665F8CE64E"></topicref>
+</topicref>
+<topicref href="GUID-A81C65CF-CF4E-571C-8080-9D387F46AAD6.dita"
+id="GUID-B941FE22-09C1-4DE8-95BD-DC2BEDD7F67F">
+<topicref href="GUID-C705B0D5-055A-5DAA-9C6E-2FC3519FA50C.dita"
+id="GUID-203D644C-EF35-45E5-BACB-8D4768F97AA5"></topicref>
+<topicref href="GUID-D9EA2B10-B789-5CC1-9BD0-23B4FA7E0821.dita"
+id="GUID-1E7EFE38-C53F-4339-BFC7-083C948D684E"></topicref>
+<topicref href="GUID-FE910347-7CC1-5241-B443-88AD3F5A96EF.dita"
+id="GUID-F7A565C0-399C-4CD9-82CC-3861FCFDFCC7"></topicref>
+<topicref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita"
+id="GUID-0CCAF724-24CE-40BE-96EE-07C2E6251668"></topicref>
+</topicref>
+<topicref href="GUID-E634E701-0DA2-572E-852B-8A1F88F05E5A.dita"
+id="GUID-3D02E4C3-C46D-43BA-A0C3-EFB8A21AAC55"></topicref>
+<topicref href="GUID-A52E8853-9A8A-5B66-A2B0-F943B32AA5C6.dita"
+id="GUID-A8F74095-15A7-478C-A54E-AD3824CF54E6">
+<topicref href="GUID-BE0C94BE-94F0-54B3-8674-366C09261E5D.dita"
+id="GUID-C3C071F9-A960-4DA5-9E15-8F6D3D8EAEDA"></topicref>
+<topicref href="GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830.dita"
+id="GUID-260EAD45-2F20-4E08-B251-C226BC0BC587"></topicref>
+<topicref href="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita"
+id="GUID-455706F6-59B1-4754-9584-7CF750613DA9"></topicref>
+<topicref href="GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E.dita"
+id="GUID-0869026B-42EE-4660-AB3B-D0A11B89A032"></topicref>
+<topicref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita"
+id="GUID-44CF75EF-3359-4C5A-847D-3FD925F0799D"></topicref>
+<topicref href="GUID-BA9A7DF9-258A-5822-9115-E1102D609749.dita"
+id="GUID-921B64EC-9F90-4D5A-AA29-86D4CD343A47"></topicref>
+<topicref href="GUID-D4668FE9-52BF-581A-B403-CEC69D5219D9.dita"
+id="GUID-FB7ECE34-AB02-4B5E-821F-51605E7EB204"></topicref>
+<topicref href="GUID-FC639517-F138-5E84-B57A-6347F5A47B88.dita"
+id="GUID-43B31B8B-17E5-4121-93F7-3B5D3A3BB0ED"></topicref>
+<topicref href="GUID-EA0A4F6E-CA82-59A4-ABCB-70632CDC2714.dita"
+id="GUID-18943901-4273-4B6E-B6B3-6404C84E5EE2"></topicref>
+<topicref href="GUID-2A6C43A6-D5D3-5DC1-871C-C1428D2DB2E6.dita"
+id="GUID-EC9F0D2B-13A6-4A09-B2C1-394D9A936902"></topicref>
+<topicref href="GUID-8C4EB8E0-78F0-553D-91AE-EC070A47B0EE.dita"
+id="GUID-E181C878-8201-4E8E-BBAC-1798B41376AA"></topicref>
+</topicref>
+<topicref href="GUID-EE8ABE8F-A25D-509E-8B0C-9101F61F998D.dita"
+id="GUID-A0B78CD5-56A3-42ED-9F49-ECF3591DBDF8">
+<topicref href="GUID-255B6815-8CC8-5E4A-9999-9BC083BCCD83.dita"
+id="GUID-A2349D43-31CE-48B7-8477-F7968D54E78F"></topicref>
+<topicref href="GUID-5AA3E9E4-9727-5B54-81CB-DADA73DEC51E.dita"
+id="GUID-16C075C1-990D-4FBE-AD40-368AE6E0B7FF"></topicref>
+<topicref href="GUID-1D9376CD-3160-5CD8-A138-B94C5F7A50F8.dita"
+id="GUID-B038C4B7-783F-435C-AC10-0243557D71DF"></topicref>
+</topicref>
+<topicref href="GUID-FF8F5D97-7D37-5F6B-84A3-C064E2FD53E0.dita"
+id="GUID-608ECDCC-1B59-400F-8597-4DD5CDDE3BBF"></topicref>
+<topicref href="GUID-44F4089F-7184-5F73-A01E-E0F639D32EA1.dita"
+id="GUID-2F6D9313-7C19-4A11-8669-597EDBD70AEF"></topicref>
+<topicref href="GUID-BBBFC0AF-2E35-5F5C-A3A5-57C4196A6CDA.dita"
+id="GUID-B5039D77-F718-46F8-B913-C1A66BE8B569">
+<topicref href="GUID-5D4B86D3-20C4-5D87-A6C1-225018D32347.dita"
+id="GUID-10D751FC-E821-4783-B9AC-5E34BC9BD2BA"></topicref>
+<topicref href="GUID-B1C0C5E2-DC8D-5230-8D4B-338DF619F1D2.dita"
+id="GUID-1D773F09-F3EF-4757-BD66-EAC1BA33F1C5"></topicref>
+<topicref href="GUID-BA89F4DF-E2F6-5E0B-BF20-F8898FC5D5F8.dita"
+id="GUID-8210FB23-C89F-4406-B9B9-11C2280FDC82"></topicref>
+<topicref href="GUID-E865E677-1219-500C-89CF-0A2835B91834.dita"
+id="GUID-D1AF6F42-24D6-42D9-95FF-B321FEF20657"></topicref>
+<topicref href="GUID-547CF71C-6A62-57C0-A9BE-E76B4286C6D6.dita"
+id="GUID-5E6BC8A6-5F00-45B7-806F-4E182629E819"></topicref>
+<topicref href="GUID-088DC096-0CC7-5510-8D71-7DAF5961A681.dita"
+id="GUID-368576BA-B097-45EC-9102-2385F842DDE5"></topicref>
+<topicref href="GUID-FA120B3F-4EC4-5A0A-8A36-D5CD032CF1B0.dita"
+id="GUID-772822D9-20FA-4B0D-A589-6CBC00C6DD18"></topicref>
+<topicref href="GUID-9D00655C-AFBA-5DF7-B11B-6B2355BDF08D.dita"
+id="GUID-86C3E48F-A03D-40F7-9605-FC3DF461C36B"></topicref>
+<topicref href="GUID-91EBB6E0-932D-506D-B041-7FB8A531EFDD.dita"
+id="GUID-9B38E025-9C4E-4BB7-9D99-C6FCA828302B">
+<topicref href="GUID-21A43565-FC69-553E-9617-4832AB776004.dita"
+id="GUID-74AE110F-89D2-4DB9-9B65-B23B7C6B1106"></topicref>
+<topicref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita"
+id="GUID-400FEC71-269A-4AC7-8DB9-BC5C4754DA68"></topicref>
+<topicref href="GUID-A3EE649B-FF95-539F-8037-54706E4702D5.dita"
+id="GUID-235E5F07-0B63-4D15-A192-FD82E51D28F0"></topicref>
+<topicref href="GUID-25F853BF-BA95-5348-809E-670C04734AB7.dita"
+id="GUID-29DF3733-200B-4D27-A8BC-A3A22838B231"></topicref>
+<topicref href="GUID-1EDE641E-EF8C-542D-A7B3-7C496D41EF3D.dita"
+id="GUID-B43D4C26-E053-4AA2-A919-5CA7700210A6"></topicref>
+<topicref href="GUID-0B94F027-6524-54D1-9A5C-3849DA41FCB7.dita"
+id="GUID-EB13AEFC-4E25-430E-B643-59BF892AA9D1"></topicref>
+<topicref href="GUID-A16508C2-2743-5E36-BCFB-C509ACCD372F.dita"
+id="GUID-AA54A1CC-C011-4AA1-9F2B-5C39DAFFB2E8"></topicref>
+<topicref href="GUID-D542B24D-5A17-516C-85B0-66A5E8A97946.dita"
+id="GUID-C5A86D61-13E3-43A6-809E-D419580477EA"></topicref>
+<topicref href="GUID-EB286BFD-6A84-5F12-8CC5-1A347685634A.dita"
+id="GUID-9C29333B-9027-448E-A70C-DB265162EE91"></topicref>
+<topicref href="GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572.dita"
+id="GUID-1C7D4D73-76F0-4E10-B3DD-BD15513B21E1"></topicref>
+<topicref href="GUID-24477051-265A-5FE5-B479-ACB3EE27B825.dita"
+id="GUID-D717DE95-C215-49D0-B1A1-8AEDDA85DFBD"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1C7A0C22-90C6-5F54-8B43-342EE460C055.dita"
+id="GUID-34C7E33E-994A-47CD-8595-FEE0973C6128">
+<topicref href="GUID-27F345DA-7969-5B3B-B2BD-285CD168CF72.dita"
+id="GUID-EA2F2B75-6E56-4E6E-8598-95CC4B56AEF0"></topicref>
+<topicref href="GUID-1FBC290C-74C3-5618-A2B7-52181CDFE0F0.dita"
+id="GUID-ACE2E709-6DB2-4BE0-B823-1F169AB721F1">
+<topicref href="GUID-5219F0F7-4BFA-5B1B-999C-FBE4E2228588.dita"
+id="GUID-D9E612D2-4F7A-4AFA-A9CA-F95A31AD2778"></topicref>
+<topicref href="GUID-0422EDC4-E17C-5E58-BB37-03CCA79ED3E9.dita"
+id="GUID-A41A2755-5C30-41A0-95B9-10669249CFF8"></topicref>
+<topicref href="GUID-EA6965FB-5BB6-5110-9A16-B5403E1983D4.dita"
+id="GUID-EB76FA41-C10E-44CE-986E-EF030A80245A"></topicref>
+<topicref href="GUID-517F4D7A-5959-57E6-9C5C-3584FBA4EA42.dita"
+id="GUID-39E6365B-8E2F-4DD6-8C52-E6023310D0EC"></topicref>
+<topicref href="GUID-2D8093D7-58A8-59CD-96EF-5B0AAE029478.dita"
+id="GUID-5F19E620-6182-4C76-A579-AE42377C5ED6"></topicref>
+</topicref>
+<topicref href="GUID-926EFFB3-B0E0-5627-87C5-20F8B4A56028.dita"
+id="GUID-366DCEF7-1F0B-4FF1-87BC-31D6A97A4738">
+<topicref href="GUID-E5B5C3CA-B256-5B29-AB90-590676444C85.dita"
+id="GUID-82303849-362C-4442-B279-8B1F3EAAF136"></topicref>
+<topicref
+href="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1.dita"
+id="GUID-57914096-DFC4-493F-9679-1014672D7206"></topicref>
+</topicref>
+<topicref href="GUID-B659AD98-FB73-5C3C-8E13-D2CDBD2B84A2.dita"
+id="GUID-59874B43-2D51-4621-B657-67236C3D53D5">
+<topicref href="GUID-078E6232-31FA-5582-84B8-F5E3E4B14A05.dita"
+id="GUID-882F02C3-FB19-4884-A6B9-ACC40E53A57E"></topicref>
+<topicref
+href="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1.dita"
+id="GUID-AF9FBE99-86B3-44FB-8E2A-066252CE5144"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-95DF676F-F9BA-56E0-A4DE-E68B42C06932.dita"
+id="GUID-208C6C1D-4D7C-4CBF-A775-B8850B36F7AE">
+<topicref href="GUID-AB705D21-87A3-5F32-A4B9-17B7593DD5C3.dita"
+id="GUID-4DE09AA9-7A1D-4AD4-87BE-9D3C77C3EB11"></topicref>
+<topicref href="GUID-4D5B0B16-329F-5932-995D-DB43E6641EF9.dita"
+id="GUID-EFACE534-9A8B-4C5B-A6E9-EB52C2CA7391"></topicref>
+<topicref href="GUID-6CD0F7B8-3DB2-5332-A206-BD7A1C840614.dita"
+id="GUID-4F18DB3D-2D29-4B05-ACD7-B8A848A1BA69"></topicref>
+</topicref>
+<topicref href="GUID-C61A6E8E-F295-53B4-ACC6-CFE1D9117895.dita"
+id="GUID-E0C7708B-F61A-47D2-B8A1-CDDDE1484D99"></topicref>
+<topicref href="GUID-0D61EBFF-F513-5911-B234-09F36E5E3DC8.dita"
+id="GUID-4BB6F229-FF39-444E-BC2C-1028BEA557E5">
+<topicref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita"
+id="GUID-83008203-CBB1-4015-A88A-648AB612F0F3"></topicref>
+<topicref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita"
+id="GUID-0166D443-FDCD-4132-B136-A863C94F6F4D"></topicref>
+<topicref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita"
+id="GUID-84B6E79B-C272-4207-87ED-96EDAACEC440"></topicref>
+<topicref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita"
+id="GUID-A8E8D5A2-EBDA-4FEA-A4FD-A63141959531"></topicref>
+<topicref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita"
+id="GUID-DA4CFA9E-D893-4CDB-9905-1D9E4231207A"></topicref>
+<topicref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita"
+id="GUID-309370C0-25FC-49BC-B07F-D1FEF405248A"></topicref>
+<topicref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita"
+id="GUID-C08DD39C-F810-46C5-9D20-155566016DC1"></topicref>
+<topicref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita"
+id="GUID-EB5D8F2A-03D7-4A13-BC9F-6062D93D2948"></topicref>
+<topicref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita"
+id="GUID-AB2A2CD0-EB1F-4D6D-BBDA-5966618887BB"></topicref>
+<topicref href="GUID-960B2F4E-9012-53EE-973A-C3426A7DD48F.dita"
+id="GUID-C9802C91-6BB6-4462-B3E9-121A24AB2F76"></topicref>
+<topicref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita"
+id="GUID-CB9C9B88-2CB0-4093-8638-79DBACC98B0E"></topicref>
+<topicref href="GUID-7068AB77-5C96-59A3-B975-7923FD843832.dita"
+id="GUID-73816830-E763-401A-A95F-9E77CE67CD96"></topicref>
+<topicref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita"
+id="GUID-B835138D-7391-4E10-9BC7-63824580D7F3"></topicref>
+<topicref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita"
+id="GUID-5815B57A-23FD-4C06-A154-5702E9C64285"></topicref>
+<topicref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita"
+id="GUID-6B6CFF21-6A41-4A9E-B6E0-AA78FC5BD6F2"></topicref>
+<topicref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita"
+id="GUID-A87D889A-3881-455E-B6BB-9C79AE775CFC"></topicref>
+<topicref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita"
+id="GUID-5B399C9F-388C-4CFF-9B3A-2DFA7D3CC3D5"></topicref>
+<topicref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita"
+id="GUID-F14C7E13-30A2-4B9E-9DD7-A7B4A2DAD241"></topicref>
+<topicref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita"
+id="GUID-46D95819-6B57-4A29-B97C-C161A6CDB385"></topicref>
+<topicref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita"
+id="GUID-22D56912-9B9C-4FE2-B4EB-3EF3304EEA25"></topicref>
+<topicref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita"
+id="GUID-8FC9D660-B44D-4281-A3C2-81327FA93DAA"></topicref>
+<topicref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita"
+id="GUID-7C9A95A6-8523-4CC0-9F41-707E753543FA"></topicref>
+<topicref href="GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita"
+id="GUID-5F3E8C05-1E8E-4C06-8205-A8F003087E6A"></topicref>
+<topicref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita"
+id="GUID-526F8732-46F2-40E7-8690-56B97E9F4094"></topicref>
+<topicref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita"
+id="GUID-4F2D23FA-C8D8-4D0D-A835-7632229FCBD0"></topicref>
+<topicref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita"
+id="GUID-04A25E10-DC2F-47C8-B857-CF297E58C9DC"></topicref>
+<topicref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita"
+id="GUID-17AFAFF7-730F-4837-8A44-4742144A0E47"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-BB9760B4-4F3F-5326-81FB-B644C82F0E65.dita"
+id="GUID-137052D1-6A4B-4AD6-B020-7C594FB2488C">
+<topicref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita"
+id="GUID-DD8CF14B-6844-4585-806F-7C6F086B349E"></topicref>
+<topicref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita"
+id="GUID-7D2949C0-22E2-4DFF-8AAD-779242F424FD">
+<topicref href="GUID-B69FE02E-3A78-5438-BA7C-F7BB4CD3EB76.dita"
+id="GUID-4D3D41C5-0250-497B-8D9B-12CB653B6A00"></topicref>
+<topicref href="GUID-D3DD5F07-A383-5285-8C68-9F6C1C3E715B.dita"
+id="GUID-0BFF4DA5-B22E-44CB-8875-E6100BEA718F">
+<topicref href="GUID-8105D1FC-DFFE-59F0-A664-3DA44F002F47.dita"
+id="GUID-12A4D3BB-D5D8-4DF7-B086-18AF27BE3AC0"></topicref>
+</topicref>
+<topicref href="GUID-F0D5C8DB-3AD0-53F1-8301-C0F69A4F13C1.dita"
+id="GUID-97728F84-18FB-40D2-954A-50D787BA7562">
+<topicref href="GUID-843B3C4E-153D-5673-95EA-88322D689297.dita"
+id="GUID-88A56377-8C0B-4E53-8A18-9D4E9A960748"></topicref>
+<topicref href="GUID-7C7DC797-3600-5EF8-A3E4-B44A7BCEE373.dita"
+id="GUID-4421B0DA-0AA2-4463-8F31-B805723909A7"></topicref>
+<topicref href="GUID-06031510-2089-55A1-98A2-9045D1D07E4E.dita"
+id="GUID-D201FE9E-9636-4AFF-8B5A-5BAB94ABFFDA"></topicref>
+<topicref href="GUID-AF65EC50-0922-57DD-809B-DB8970C8E4C6.dita"
+id="GUID-092D992C-6B7A-4BFE-A186-D3DC73D73269"></topicref>
+<topicref href="GUID-1C0CA7AD-0F04-5346-AA51-4F9EB852FD38.dita"
+id="GUID-D93C44D9-FF0A-4460-BD6E-7CCC2AE6D698"></topicref>
+<topicref href="GUID-47A4949C-61B3-5B91-9845-F40A9BC157C4.dita"
+id="GUID-9791F13E-811B-4F4F-9C58-88CDD6D1F7FD"></topicref>
+<topicref href="GUID-E4A76562-E030-51A5-BD14-C734457443CA.dita"
+id="GUID-BBA44EB4-2B45-4F18-A1AF-A550CFC144E8"></topicref>
+<topicref href="GUID-5B50E929-5C29-5920-965E-24F6CB616AC9.dita"
+id="GUID-EA7BCDB2-23D0-4564-BD99-0D8FC8D2AEE6"></topicref>
+</topicref>
+<topicref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita"
+id="GUID-B4AE6219-C012-45B4-BEE6-32EC39037327">
+<topicref href="GUID-C72CF928-F32E-55CF-A4B0-B51CD7D14F8A.dita"
+id="GUID-38F5B914-7F4C-4D11-8D27-5AC3DC85859E"></topicref>
+<topicref href="GUID-E93D3767-0F74-5335-8233-8236908F70AF.dita"
+id="GUID-6F7122A8-22B3-4656-A3DC-8400133DC07F"></topicref>
+<topicref href="GUID-F4BD69B6-008E-51DB-ABFF-1E17E10B053F.dita"
+id="GUID-C9F6B1C6-CD2A-44AA-99CA-6098A0A08A7A"></topicref>
+<topicref href="GUID-EAEE54D0-4580-5BE7-AA16-4ABC216B4EB0.dita"
+id="GUID-65CD3BB8-3681-45A7-A708-D7D28DBA8488"></topicref>
+<topicref href="GUID-EF4423F9-05A5-5DD5-BDB6-C7D8F7901396.dita"
+id="GUID-17B3300F-13D4-48F5-8937-20AF270FD7CD"></topicref>
+<topicref href="GUID-D5B8DC2A-E2BA-54FE-A359-1496356AF93F.dita"
+id="GUID-E5EAFAFC-1185-4B5F-A947-6CDE397EF692"></topicref>
+<topicref href="GUID-F86CFD79-88B1-55E0-AF81-4666D97B7AF5.dita"
+id="GUID-6B0F3FE6-9E68-4076-AC01-A835153FEB08"></topicref>
+<topicref href="GUID-FA6E3270-C20A-5B05-9FFC-F3D4D8B35999.dita"
+id="GUID-52EA6FA6-566B-44A0-8B1F-2D948BB7B6D4"></topicref>
+<topicref href="GUID-6F938BDA-15CB-566E-88E0-6DF9278F8304.dita"
+id="GUID-54900CD0-4B1D-4CCB-B1F6-D71C39E0337E"></topicref>
+<topicref href="GUID-00DE7E90-4C6B-577A-85E1-76698CA2AB69.dita"
+id="GUID-25605DBE-7E56-4B1F-A957-C298EE61D682"></topicref>
+<topicref href="GUID-00025EAD-C4B6-5408-96A3-FFDBBBDC7CAB.dita"
+id="GUID-994B1764-393F-401F-8571-CE0955AB6CA6"></topicref>
+<topicref href="GUID-57DD8365-E60F-55C6-BB24-8D215A31A8AF.dita"
+id="GUID-959E158F-62CF-4688-B080-5F1CDC2D4CCE"></topicref>
+<topicref href="GUID-D91DC379-947A-52CB-A154-7922AF334527.dita"
+id="GUID-BBD64F82-622E-4B1C-B7EB-BCCB60591F67"></topicref>
+<topicref href="GUID-EC567597-093B-50C8-90FF-300A439A99A5.dita"
+id="GUID-90E23C8C-70AE-4D55-B719-9F1441863529"></topicref>
+<topicref href="GUID-F3520C6E-1B3A-5CB2-95F8-AB430D4BA327.dita"
+id="GUID-7DF6EEAB-6CC9-4696-8B18-5BF9F61BA6BE"></topicref>
+<topicref href="GUID-218DB978-929C-5701-869F-8415FF6CE62D.dita"
+id="GUID-472A9E0C-7834-4203-8BD6-657F6BEF46C6"></topicref>
+<topicref href="GUID-BAAB73D8-EF7F-5F62-B819-25EB2F5CCE3E.dita"
+id="GUID-C20CF35D-A810-4960-BDE0-ECBB7EDF6C9E"></topicref>
+</topicref>
+<topicref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita"
+id="GUID-4C018E64-E2C7-4670-8A24-E8BEE5CB0C05">
+<topicref href="GUID-204627D4-3818-5DE7-8969-C335DBA5B153.dita"
+id="GUID-9DC55AAE-A360-4D34-AF18-FD7711D1F0A6"></topicref>
+<topicref href="GUID-CA35A708-C6D9-51D7-873B-A79606FFAF66.dita"
+id="GUID-7CD52D50-4FD4-4B91-BD2F-BD4CFDD7EB4A"></topicref>
+<topicref href="GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863.dita"
+id="GUID-752926DE-2DEC-42E3-A041-03533003E813"></topicref>
+</topicref>
+<topicref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita"
+id="GUID-63A1A0F1-9DBC-4AAC-82E0-007EBBF564DA">
+<topicref href="GUID-3CE3D01D-3EA1-5D44-B9DE-350F9E88F9C9.dita"
+id="GUID-E291E60F-062D-47FD-A871-786832DEE634"></topicref>
+<topicref href="GUID-89F383B6-3730-51DF-8C41-CF2564B4D003.dita"
+id="GUID-8F26B821-5BB5-4EB8-AF60-B8962D2BBEE9"></topicref>
+<topicref href="GUID-2CE8544C-470C-5693-8ED6-27B01DD9548B.dita"
+id="GUID-A2887D5F-6704-48D5-AD1B-1F2DB038A772"></topicref>
+</topicref>
+<topicref href="GUID-22746579-EB41-5C76-96D0-606C132E824A.dita"
+id="GUID-D258F774-674C-42AF-BEAE-48D01A5D1276">
+<topicref href="GUID-54E62386-E4DB-55C3-BA9A-FFB7BFE6703E.dita"
+id="GUID-F7960276-6CCC-4BC5-B65E-9BD4A2751F43"></topicref>
+<topicref href="GUID-B0C99FFF-DAF8-5E0D-9EE0-60CBAEF6E8D7.dita"
+id="GUID-FA356292-49EA-4FFD-9503-0CC84A70A988"></topicref>
+<topicref href="GUID-B29D55DC-D2EE-5F05-A0BF-7C7C30615479.dita"
+id="GUID-63E46000-16E9-4824-9B97-522BE977796A"></topicref>
+</topicref>
+<topicref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita"
+id="GUID-7338469A-9BD9-4F8C-94AB-5298C7B48FDA"></topicref>
+<topicref href="GUID-3FEEFC4D-19B5-502A-8310-40646B9C34BC.dita"
+id="GUID-D7AF7FEB-744D-4BF8-9AA1-E15768A8BDA4"></topicref>
+</topicref>
+<topicref href="GUID-E23CC708-1DD1-5DFC-992A-997AA107A616.dita"
+id="GUID-6CF679E4-4A8B-4679-940D-532D3DED7282">
+<topicref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita"
+id="GUID-56121C4C-7F32-469B-8C6A-8CA23913A5A3"></topicref>
+<topicref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita"
+id="GUID-D7CB55D9-663E-4FD2-8333-12FA891CDDC9"></topicref>
+</topicref>
+<topicref href="GUID-B24F1029-39FE-539F-847E-1296A1574F95.dita"
+id="GUID-E918728F-AB10-4289-BD87-2C8844828F7B">
+<topicref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita"
+id="GUID-58F461FB-D1A6-49EF-8B83-4B75A62B5448"></topicref>
+<topicref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita"
+id="GUID-9EA6B024-CFB7-4994-952F-0CA559D9C6F9"></topicref>
+<topicref href="GUID-D358120E-6755-5D0F-8754-DAB4E2A52E00.dita"
+id="GUID-5C1CB6A4-0457-40CC-945B-0DF48CE90D7F"></topicref>
+</topicref>
+<topicref href="GUID-F50AC398-5184-5C65-8594-9E2859C3C47E.dita"
+id="GUID-3110F74C-2F9F-4E26-8DC6-A029A0B3AC5A">
+<topicref href="GUID-5ABEF28F-ADB2-5BA8-A946-FFA1F678F28E.dita"
+id="GUID-5B9290EA-6C95-4184-8C16-F1368A8E5908"></topicref>
+<topicref href="GUID-E8492B87-481E-56FA-8503-FF93DFE122F5.dita"
+id="GUID-80E3A3E7-95E0-427A-B19B-12CEF16C72C0"></topicref>
+<topicref href="GUID-576C8098-85C5-597B-8497-187E39A26E55.dita"
+id="GUID-974F4FB0-4916-4D5E-91B0-B79D03C5602C"></topicref>
+<topicref href="GUID-55A2D518-CDC7-5B96-84AB-9E16FFF4AE57.dita"
+id="GUID-036B61C9-EA47-41AE-A9DF-C980E453B956"></topicref>
+<topicref href="GUID-05E27705-47E5-5B27-849A-D2A6BA4F40E5.dita"
+id="GUID-54BB25E0-485F-434B-B612-FB1735BC1AA4"></topicref>
+<topicref href="GUID-24C80C7D-F330-5ADA-A8C8-AB882E2C57C2.dita"
+id="GUID-66CE72D9-8DAD-46B2-A6D9-85B317DF25B4"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-965636F8-C904-49DE-9618-B5F8A09F3657">
+<topicref href="GUID-7F476137-5E7F-5288-9F4A-6C20F0A1AD9B.dita"
+id="GUID-EB740C72-C0FE-4036-96A9-B9F8A6C1C26C">
+<topicref href="GUID-BA49FDC0-808B-5E05-81AC-98637214F304.dita"
+id="GUID-3EECEFC5-1BA5-44F4-AF56-71666F748E47"></topicref>
+<topicref href="GUID-1E158DE6-33F5-4B45-8923-28117EBAB68A.dita"
+id="GUID-639202A4-6AF8-4D8E-8964-64B95B99A552">
+<topicref chunk="by-topic"
+href="GUID-A996FAAF-DB18-4F78-A8DA-873ACD771560.dita"
+id="GUID-A11543B8-766F-4FDE-B738-9175927ED67C"></topicref>
+<topicref chunk="by-topic"
+href="GUID-DF756D6C-1E03-4EC0-B074-09611D122359.dita"
+id="GUID-1BA938E5-D02F-418F-BA5B-9FC7463B60BC"></topicref>
+</topicref>
+<topicref href="GUID-D0318BB6-0B9F-5A1C-AB0B-61BA22D28661.dita"
+id="GUID-A5337151-826A-487F-B071-E7196F7DC806">
+<topicref href="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita"
+id="GUID-98F5758C-8AD6-4FCB-B219-06B7EBF44FC1"></topicref>
+<topicref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita"
+id="GUID-9DE89BD5-E969-4849-B8FA-1D6F786EA648"></topicref>
+<topicref href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita"
+id="GUID-C22395DC-9DD1-48A1-AA0F-190894512C38"></topicref>
+<topicref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita"
+id="GUID-ED5E24D0-4EB0-488D-880B-68301680335F"></topicref>
+<topicref href="GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita"
+id="GUID-F36FF19F-F5B9-48A0-BD2D-D67C545154E7"></topicref>
+<topicref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita"
+id="GUID-F48A4546-3D03-4334-8B97-11D99FE24175"></topicref>
+<topicref href="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita"
+id="GUID-DA50BBC5-4E40-4815-BBC1-80B577261C5D"></topicref>
+<topicref href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita"
+id="GUID-035ACB6D-6855-4167-A181-6A3F3FDB3943"></topicref>
+<topicref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita"
+id="GUID-3333F589-CFF4-4946-A779-D5580BDD3509"></topicref>
+<topicref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita"
+id="GUID-71035D8A-0F10-4703-A2C5-C4243263F6FC"></topicref>
+<topicref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita"
+id="GUID-A319B881-2982-4468-92EE-403959DFF4C6"></topicref>
+<topicref href="GUID-0D5692FB-305E-58B2-B105-B309BB9AE38D.dita"
+id="GUID-E8ADEC7A-8EDE-42D5-9A5C-BA3D5E4441FC"></topicref>
+</topicref>
+<topicref href="GUID-05931546-C3C9-4085-8D5F-6B6C3F21D24C.dita"
+id="GUID-FF02D5A1-0C2A-41C5-80B5-B1C32C5BE229"></topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-940D1A14-BAA6-4291-B355-232DD988D9A5">
+<topicref href="GUID-1A43A45B-80AE-56A0-A94C-64BA75519C67.dita"
+id="GUID-510D4522-2DF9-4F3A-B74C-4D8614D9E998">
+<topicref href="GUID-DA6BB8BB-DD92-57A7-AD1B-F9CFF8CD433F.dita"
+id="GUID-CCE86C63-FC5D-4C2B-94E3-F5B5BBD19286">
+<topicref href="GUID-33C7EEEB-88B8-5587-916D-2C5D122F6010.dita"
+id="GUID-F72DFD8A-8B14-4C03-BEDD-1AA2A3E25133">
+<topicref href="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita"
+id="GUID-AAA79257-3C38-4078-999A-0DA40A61D256"></topicref>
+<topicref href="GUID-69438F28-E2E9-5BFA-B644-08FB59D50A39.dita"
+id="GUID-5987F1A6-EDB7-486F-A6FE-45D48FCE7052">
+<topicref href="GUID-CBFDD753-BAE3-5C40-B947-EB8CDA11CD23.dita"
+id="GUID-3E452A72-6AF0-4805-BE0C-9640B5E23740"></topicref>
+<topicref href="GUID-24414E32-94DC-5870-847B-A797C495F756.dita"
+id="GUID-97D5252C-000A-4686-A6CF-9F0C53CD677A"></topicref>
+</topicref>
+<topicref href="GUID-33B590F4-CAE8-58B2-92A9-53123BD42579.dita"
+id="GUID-A1C875B6-F4AE-469D-B8A1-E603929891C9"></topicref>
+<topicref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita"
+id="GUID-327A7386-C625-44EC-B574-BEC6719E8747"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B641E030-E605-5A51-9C95-D9A23A38AF20.dita"
+id="GUID-1E0D49AF-515D-41E9-A2B5-8FFFD2319343">
+<topicref href="GUID-27A2AE45-AFAC-5325-A9A9-4A8C69921EE3.dita"
+id="GUID-C5E0E88E-724F-4044-AF8D-8372049FD66E">
+<topicref href="GUID-0EDFDB1E-B851-5871-B235-453A2B2F6BFB.dita"
+id="GUID-B819DF63-B79D-4DB5-B008-23E0E834219E"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-4384066E-158A-5F63-A823-7793DAE680BF.dita"
+id="GUID-196AEAF6-DAD0-48AD-85E5-83461CC7CA27">
+<topicref href="GUID-9BB849A2-8F69-580D-8A52-C7002D919521.dita"
+id="GUID-3F567E56-F593-4E19-8D82-6A6FFB486F67"></topicref>
+<topicref href="GUID-401A07E7-97CF-57BD-B37D-F6412762BBCB.dita"
+id="GUID-AD0FE723-F00F-4E76-8FAD-BB31AAF1C611">
+<topicref href="GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F.dita"
+id="GUID-BD1D39AA-5331-4433-9E6E-2D21CC46E93D"></topicref>
+<topicref href="GUID-386A94C7-BCB4-55B5-843E-E4AC03A2E230.dita"
+id="GUID-7FAC3E52-7378-4378-BDB9-C48A57D99E27"></topicref>
+<topicref href="GUID-931F2B0C-0F7D-5819-83AF-8EC2C8988538.dita"
+id="GUID-B6703385-F9C2-4B5D-922C-8E07188CC0AA"></topicref>
+<topicref href="GUID-AD6587AD-A5B2-5369-9217-D752A37490C4.dita"
+id="GUID-0C90AF5A-00B5-4B04-BF53-343FD5F63DAC">
+<topicref href="GUID-24860917-0FE2-5C8F-B436-96928350996E.dita"
+id="GUID-04F0673C-2B95-46E5-A041-1F0DA087D126"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita"
+id="GUID-BF39B4D8-83AC-4C72-A6EE-A543E22161FD">
+<topicref href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita"
+id="GUID-AFADDBEE-86F5-4DBA-9837-EE48B48096CF"></topicref>
+<topicref href="GUID-42833109-F8C2-57FC-9995-0461698A19FF.dita"
+id="GUID-4D5ECE0E-B5B4-4806-9417-C3F577642253"></topicref>
+<topicref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita"
+id="GUID-6B93463A-838C-47B0-B282-D910CA1E6E6F"></topicref>
+</topicref>
+<topicref href="GUID-EADCDE6F-127E-528C-B2E0-F13E5C7FD4EF.dita"
+id="GUID-B11EF615-2225-43F4-B75A-E1564EFC509F">
+<topicref href="GUID-5B43ED43-21B4-54C6-8637-76554769E6FE.dita"
+id="GUID-EBCC0A39-F3DA-446D-AAE5-71054F82A176"></topicref>
+<topicref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita"
+id="GUID-9A949634-F368-4D8A-85D2-46565178FDCF"></topicref>
+</topicref>
+<topicref href="GUID-3988C2DE-3FC5-5AF8-BB9F-499E7082F7D5.dita"
+id="GUID-AC9C5357-EB5D-4901-88DD-4CBD743A9C70">
+<topicref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita"
+id="GUID-889069EF-FCC4-4378-A5D8-9CC72C4CB5CF"></topicref>
+<topicref href="GUID-2E253B30-2611-546D-AE5B-1752556FC8E8.dita"
+id="GUID-31590D2F-313E-44EC-A98B-C12F3910E98E"></topicref>
+</topicref>
+<topicref href="GUID-8832AED4-6B9F-5B35-8211-0C6661CD6DCA.dita"
+id="GUID-0695353F-151B-438F-9286-B68874C13D69">
+<topicref href="GUID-43CE4DCB-F498-5878-A2EE-7831BBB4D288.dita"
+id="GUID-D5F8946F-7DAB-40D7-AD32-BFC6696FEF71">
+<topicref href="GUID-FD733414-DDB2-5748-A193-6758FADEFEC1.dita"
+id="GUID-CAC70ED5-4DBF-43F6-9AC0-A83FC77E3113"></topicref>
+<topicref href="GUID-88FDEE3B-83DF-5635-92FC-CF291D1D6C2D.dita"
+id="GUID-E1FDACDB-EA5F-47A8-A8B1-5CDC16C81B0C"></topicref>
+</topicref>
+<topicref href="GUID-7965B998-0D1A-50F8-B2F9-D2A71744DF86.dita"
+id="GUID-B177D993-1D75-4BF4-B854-638306E52479">
+<topicref href="GUID-EBFE8B29-86AD-5785-8041-BCED2E90472E.dita"
+id="GUID-F6D3E642-4CDC-4D66-9129-5CB9BB66043D">
+<topicref href="GUID-ADAD07E4-3539-52DC-B117-7078B3045B74.dita"
+id="GUID-3E3C5B0E-B54E-46F7-AE72-FEAB3C36351F"></topicref>
+<topicref href="GUID-36C5768D-896B-521C-B4D2-C41C0AD85F3C.dita"
+id="GUID-DFD60B5A-4315-44ED-AF64-1146A7BE4B49"></topicref>
+<topicref href="GUID-A9DBE9E4-8239-526C-9D57-447DA628EE59.dita"
+id="GUID-AC493E1F-2514-42E3-86FB-B91A295D3F96"></topicref>
+</topicref>
+<topicref href="GUID-786984BD-ADE8-5EF1-A819-F402F5703A80.dita"
+id="GUID-89574EB4-017A-4861-96B9-6118CDDFA538">
+<topicref href="GUID-BB6C60B4-9D34-5AC0-A4FD-3B604A35B8BD.dita"
+id="GUID-98CC8438-16ED-4725-AA96-4C645F0FCB63"></topicref>
+<topicref href="GUID-D1303B75-607C-5C75-B8DB-39571E182C7F.dita"
+id="GUID-C85051FC-A9EA-44E2-B266-E2B7E99AF9F0"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-78B9AB7B-C1E3-4D2E-80C1-56BA97FB0999">
+<topicref href="GUID-5DD1010C-1648-5086-BA80-BC25F3C7A2C4.dita"
+id="GUID-4EEA3CC4-6970-4930-8EB9-940CEEB5B306">
+<topicref href="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita"
+id="GUID-84B26508-39FB-4647-93A4-75EC52F8D11C"></topicref>
+<topicref href="GUID-C1F71368-E35A-512D-A9DF-F81491F35E62.dita"
+id="GUID-C29BD074-DC1A-48F6-BA6D-F64C21E36B2D">
+<topicref href="GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115.dita"
+id="GUID-7C6DE61C-C2DC-4668-B2DF-2A0C040793AC"></topicref>
+<topicref href="GUID-9A5D0303-6C22-53A1-86DA-0431F726010B.dita"
+id="GUID-D992CE3D-AFBA-4003-A98A-7DC87150EC74"></topicref>
+<topicref href="GUID-036FCEAE-8137-5764-A512-DA1EE06DFCB8.dita"
+id="GUID-6B77965D-438E-4FAF-BF6D-A61219D269E7"></topicref>
+<topicref href="GUID-D4AA635F-DF24-541A-A452-192DDBEE4142.dita"
+id="GUID-393BE637-3489-46B0-A0DB-508AD2855416"></topicref>
+</topicref>
+<topicref href="GUID-C290FA5E-8E41-5D19-B8C1-F88491EE6388.dita"
+id="GUID-9A29E93F-ADE8-44F1-99D3-29DC98CA0D92">
+<topicref href="GUID-54AB166A-8B24-5065-92AD-5FC1BF3ED89C.dita"
+id="GUID-1D546B8A-1348-4AEB-9750-06727808E84A"></topicref>
+<topicref href="GUID-CADAABB4-C957-502E-BA4D-E9614C0D3878.dita"
+id="GUID-7F041966-0F61-4653-91B0-B959A09F5DA7">
+<topicref href="GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A.dita"
+id="GUID-3A36C497-8130-4947-8DBF-659C1683A001"></topicref>
+<topicref href="GUID-AA978F65-C25B-59DC-82BC-6892228EA3F9.dita"
+id="GUID-69DA21BB-3695-42F8-B62E-B8C0C1CF78B7"></topicref>
+</topicref>
+<topicref href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"
+id="GUID-7F2F2F4A-C4B0-4AAF-8D93-77607B4780D0">
+<topicref href="GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita"
+id="GUID-D646933D-9261-4997-8D85-69CF9BE63021"></topicref>
+<topicref href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita"
+id="GUID-B7C45C33-3C3A-4BBB-9F6D-E2B9ABBB2825">
+<topicref href="GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC.dita"
+id="GUID-3EA74256-3FAC-4B7F-8C3A-6AEC868B9055"></topicref>
+<topicref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"
+id="GUID-83D93D9C-6225-45F7-8B0B-12A4163CBEBF">
+<topicref href="GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita"
+id="GUID-22347765-517D-4D4C-8FE1-B4B90B4CD63D"></topicref>
+<topicref href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita"
+id="GUID-81B802F6-71F7-44CE-9086-D709B406B122">
+<topicref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita"
+id="GUID-4B2D1C16-82A0-4F3C-A47D-7FD1DB996E84"></topicref>
+<topicref href="GUID-D7600D93-CFB8-565D-8200-7082B2CF1791.dita"
+id="GUID-C3D6041E-F75D-486F-A727-E05632917151"></topicref>
+<topicref href="GUID-EB76BA4B-D6A2-5651-A310-647E1D2CDEBC.dita"
+id="GUID-9F010C48-74AF-4BD7-BF67-1FB7A0B7CB85"></topicref>
+<topicref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita"
+id="GUID-078D3B17-CD90-4971-BB12-CF52E1F5B15A"></topicref>
+</topicref>
+<topicref href="GUID-BAD138D5-2914-5C6E-9FA4-F7A3CCB85E6D.dita"
+id="GUID-0E799B6C-2B10-44CA-844A-7408B840AFBC"></topicref>
+<topicref href="GUID-92D6CC11-C597-5D00-AAE5-866289B7462F.dita"
+id="GUID-5EFDE2F7-0526-4693-AA2B-3C7C8514714A"></topicref>
+<topicref href="GUID-E96D8052-0CB2-53A6-915F-133D3058DCF9.dita"
+id="GUID-56BEA4AE-45EF-4EA0-BE6D-2B62145711F6"></topicref>
+</topicref>
+<topicref href="GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7.dita"
+id="GUID-FFA4E44B-AC8A-4EB9-95C3-8D726425B436"></topicref>
+<topicref href="GUID-5CFA3F21-3E42-5B53-8EC1-BC0F7F0E8136.dita"
+id="GUID-94D2D697-494C-4769-9B80-900D91B924C0">
+<topicref href="GUID-D099551B-6E99-5210-B44A-693012A29DD1.dita"
+id="GUID-B60F9F56-C1F9-43F5-86B6-D0E9BC1FD7DB"></topicref>
+<topicref href="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita"
+id="GUID-77F931BD-C5AB-48F2-961D-AF658EC23456"></topicref>
+<topicref href="GUID-5E522208-E8ED-5E95-946C-5D87CF303F1D.dita"
+id="GUID-1AD062AF-9FDF-4352-B1A4-D8380221E915"></topicref>
+<topicref href="GUID-7BB6C3A0-7FCF-5614-9940-B3630E5FC114.dita"
+id="GUID-926724B8-7A12-4E29-993F-804CAF0603D5"></topicref>
+<topicref href="GUID-21C03739-FF80-5874-A32B-F22DED13D18D.dita"
+id="GUID-674AEA2E-D75B-4B70-A16D-0F6073BE6D3F"></topicref>
+<topicref href="GUID-15A686A8-942E-54F8-BFD4-402323979C5A.dita"
+id="GUID-411A25A9-1AFF-4DD4-8578-2FFCB69BBDDC"></topicref>
+</topicref>
+<topicref href="GUID-F854D45A-A8CD-5B9F-9A59-C30A87F0955A.dita"
+id="GUID-302569B4-054F-444F-BC69-18B44592720E">
+<topicref href="GUID-2E96D6CC-1C1F-5C30-A315-9729D07D1605.dita"
+id="GUID-CB753014-C65D-4178-8066-01423C475AC3"></topicref>
+<topicref href="GUID-45B7FE73-2AB2-54CA-89D7-FFCAFD3B7915.dita"
+id="GUID-CB307AEA-209C-4C24-92F6-4B7EC7AE7290"></topicref>
+<topicref href="GUID-CC686E6C-FECB-548E-984A-15F7B9742DCB.dita"
+id="GUID-D8847AF4-34B4-4AAA-A96C-E20DEC97F54A"></topicref>
+<topicref href="GUID-5AAE8371-E146-562B-B8AF-149FF981693C.dita"
+id="GUID-B7041B7F-723D-40A8-B382-3CC5DA58CAC6"></topicref>
+</topicref>
+<topicref href="GUID-4CD6C5CC-A91B-56BE-825F-5B10B63627DA.dita"
+id="GUID-E41F1DA5-C667-4210-8CF4-611D65EF4048"></topicref>
+<topicref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita"
+id="GUID-81C46670-3BB8-47B8-BD9C-E4BB20AC75A8"></topicref>
+<topicref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita"
+id="GUID-0F743FA8-61EE-497F-BFEA-46648693C823"></topicref>
+<topicref href="GUID-2C8653F9-8873-59E8-9FD2-4215F6877ABC.dita"
+id="GUID-2124A721-B3A9-4FEC-98F8-9C40F4026225"></topicref>
+</topicref>
+<topicref href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita"
+id="GUID-87D2B63B-AE8C-4EEE-A6F2-9242F89E169E">
+<topicref href="GUID-7FCDAC24-BFEF-590B-B569-04AA262EBF06.dita"
+id="GUID-76B98DC8-E2C6-4E76-8A6E-EEEFC591A966">
+<topicref href="GUID-1E2DB50A-D8D7-595D-8448-77F057655E82.dita"
+id="GUID-AE249FC7-3CCD-47FD-824C-819746B04A7B"></topicref>
+<topicref href="GUID-AAE39139-B377-5122-A2B0-98708EA00614.dita"
+id="GUID-EE3B6247-F513-4620-925E-34F8CC29E0D0"></topicref>
+<topicref href="GUID-133999E8-0ACB-5929-949E-82BB16F8E267.dita"
+id="GUID-86F52B6F-798F-44B7-8A3A-27B637EB1BFB"></topicref>
+<topicref href="GUID-5D5BF7E5-4105-572E-81B5-0E61E1AA443E.dita"
+id="GUID-0D2BD9D4-9257-4BE8-BA26-E43206233547"></topicref>
+<topicref href="GUID-B79B6DD2-40C5-591B-AF56-5ACD167C66F5.dita"
+id="GUID-E82F86FD-FADE-4D7E-A846-5C5FDFF7082B"></topicref>
+</topicref>
+<topicref href="GUID-3FD2EADD-DC46-516D-B88D-DA523F51C5E3.dita"
+id="GUID-28F05CDA-EC5B-4699-A6B8-8F516372B868">
+<topicref href="GUID-91ED5F9C-216D-539D-B4D0-E6F2E087773E.dita"
+id="GUID-73FC6AFA-CD1F-4C43-886F-35DA0112D11E"></topicref>
+<topicref href="GUID-A09AFA5C-7B2A-503C-A218-987F2F9BF7B8.dita"
+id="GUID-6C4E369B-8039-4520-A285-F01DAAAB32E7"></topicref>
+<topicref href="GUID-D8D698FF-08CD-56B4-A6BF-E185A25F6988.dita"
+id="GUID-6AA8B102-1E2C-47A5-92A6-9CC057A168B8"></topicref>
+<topicref href="GUID-1B363B7B-35E9-5CD9-BC44-A19D94DA1D21.dita"
+id="GUID-A9EE5380-07CF-4B63-96D3-3D9FE1EFE49D"></topicref>
+</topicref>
+<topicref href="GUID-2F9BCBC4-A657-5B16-824E-5E96DA22AD00.dita"
+id="GUID-13D35A0C-6219-4957-8775-8F89940D138B">
+<topicref href="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita"
+id="GUID-73E6E7E1-BDA1-4D1D-80D9-45177D7B9EE4"></topicref>
+<topicref href="GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita"
+id="GUID-D9B2E00D-2B5B-4417-AA4A-4942CD61B08C"></topicref>
+</topicref>
+<topicref href="GUID-179099DA-1CD9-5912-B41B-363C132C7A86.dita"
+id="GUID-1137000C-64B5-4129-825B-EA051A05FEBD">
+<topicref href="GUID-6FE94423-9563-5F31-95EB-504479144B05.dita"
+id="GUID-EA4B4AAC-5BC7-4A3B-B845-D38338D29556">
+<topicref href="GUID-3FD5C609-3727-53B6-900F-ACBE59F62E4A.dita"
+id="GUID-31BA4AE4-AD28-4DE0-9074-E59413D89578"></topicref>
+<topicref href="GUID-62166BC9-D0BC-5070-BC57-2A1F4948BAFE.dita"
+id="GUID-BF7804C1-7FCA-450B-8863-E1089C7EB44F"></topicref>
+</topicref>
+<topicref href="GUID-9A3E0279-4F87-594D-A987-66DC77F408A0.dita"
+id="GUID-C2920730-2A6E-4B6B-B758-D2832F617F1F">
+<topicref href="GUID-FB185094-9868-5CBB-9CDE-51D7AB029450.dita"
+id="GUID-B415B654-0363-474D-87CE-24AF908ED8CA"></topicref>
+<topicref href="GUID-F9F45DE7-6688-5C31-90F0-0BEA72E74034.dita"
+id="GUID-1E5C9170-0468-4804-A387-B926FF041AE7"></topicref>
+<topicref href="GUID-0B95131E-6B7E-57A0-98B1-0B405207E0C4.dita"
+id="GUID-3CA1EDF2-C67F-4FC6-A1D8-3F01CC336C08"></topicref>
+<topicref href="GUID-653A92FB-F752-5210-8C98-9F107D74DC67.dita"
+id="GUID-547443E0-2600-4E2F-A1A6-ACFD20DF600D"></topicref>
+<topicref href="GUID-CBBE4BF7-B6E7-5607-95DC-F1C7D3711BD0.dita"
+id="GUID-FEDE9A08-72A0-4EB2-96EC-19D504CB7514"></topicref>
+<topicref href="GUID-E76DBFC7-E15E-5AB6-AE8D-72CA1808DBA2.dita"
+id="GUID-4D2341A2-EF51-4DD5-B24C-E1D818482696"></topicref>
+<topicref href="GUID-0DA1FA9A-0F61-580D-922F-02B33CEA09D6.dita"
+id="GUID-D8CDDA54-662E-4CC4-BFCB-814ADDC54B8F"></topicref>
+<topicref href="GUID-4263CC05-EF13-5A2C-875C-72F3C2F6AB57.dita"
+id="GUID-E4B9952B-A587-4440-B622-299437FF9E88"></topicref>
+<topicref href="GUID-DF4C1226-E4D1-5701-BA55-8701754129D1.dita"
+id="GUID-9031857F-501E-4AC1-AA74-255F07367B37"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1DF2D6EC-C445-5A0C-80C4-9C46AAA6EE44.dita"
+id="GUID-83309CD0-717E-4E5C-8219-F4DD209FF189">
+<topicref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita"
+id="GUID-6499589A-760B-4E94-A120-94C4C3EBA685">
+<topicref href="GUID-21909CF6-B810-599A-A486-01BA1BF21F35.dita"
+id="GUID-48D2EFA0-FD03-49A3-B94B-3584127D8636"></topicref>
+<topicref href="GUID-6C8F9EF9-F323-5423-B73E-4E26BCD2737E.dita"
+id="GUID-BADF2358-A5F4-4BF4-9D27-A31CB945F9CB"></topicref>
+<topicref href="GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083.dita"
+id="GUID-30FA1CBD-DC08-4E02-B804-947BA1546580"></topicref>
+<topicref href="GUID-70B9796F-8CF3-5DC4-93B4-0B1FED936169.dita"
+id="GUID-9BCDFB52-B734-4739-A04D-C967A1628B1C"></topicref>
+<topicref href="GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9.dita"
+id="GUID-B20C0FE9-162B-455B-B260-7440D25EED1B"></topicref>
+<topicref href="GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita"
+id="GUID-789D68FA-83BE-4D0B-94EC-C0FC12E81168"></topicref>
+<topicref href="GUID-0C71B9C6-0782-5667-932A-07D770748DCE.dita"
+id="GUID-688060ED-A778-4781-9CC6-8AAA8A4331AE"></topicref>
+</topicref>
+<topicref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita"
+id="GUID-ECF0F553-D848-4D6C-A9BE-807D9D14FA02"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E7BB0B0F-FC27-5428-81C0-1AB9CA426571.dita"
+id="GUID-4C1F0B14-4BAC-475D-993B-4A26762FF71A">
+<topicref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita"
+id="GUID-06EA6506-2FF7-4018-AC37-739895312572"></topicref>
+<topicref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita"
+id="GUID-57B47F0F-3838-454F-8D14-9BA62B3FC095"></topicref>
+</topicref>
+<topicref href="GUID-63816E09-46C7-503A-ADA0-E350C7ACF3C4.dita"
+id="GUID-3B777C30-4E0D-4479-99BF-EA21D7E0CD83">
+<topicref href="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita"
+id="GUID-318CD0CA-2572-4B5A-BE15-54C4A7873D43"></topicref>
+<topicref href="GUID-91F971B6-CA7A-5FE4-B10A-6CADC935C3B4.dita"
+id="GUID-FB82B7BE-980D-48EF-9686-4D6D4503B987">
+<topicref href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita"
+id="GUID-CCEEE71B-2F88-4C8A-8C11-A8281422B721"></topicref>
+</topicref>
+<topicref href="GUID-F7598A84-9736-5310-AAA4-5BCC4BE46C16.dita"
+id="GUID-2EF1F69D-A865-457B-A59F-128713A50320"></topicref>
+<topicref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita"
+id="GUID-A9111649-A720-4D23-B614-A1655DFE0656"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-DB6679CB-3F84-4768-B55E-F795580B96FC">
+<topicref href="GUID-1DE5CDAD-8D71-5384-9E98-5665D5A4C792.dita"
+id="GUID-3B581533-5C58-450A-B3DD-AF5487478BFB">
+<topicref href="GUID-E2252589-DCFB-5272-8FB3-701712D7F417.dita"
+id="GUID-F13B1737-9CA9-423B-9B38-856EF278E424"></topicref>
+<topicref href="GUID-288C200C-760D-52A2-8FC7-E179E5FB1A2A.dita"
+id="GUID-237D609C-E11F-4BE9-BF14-2F0303FDFAD1">
+<topicref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita"
+id="GUID-A3F77752-F334-486D-8BCF-E3BF2A1FF184"></topicref>
+<topicref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita"
+id="GUID-29008AD2-2BED-43E7-9EF5-C610C7E33D2D"></topicref>
+<topicref href="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E.dita"
+id="GUID-DBBA870F-C64E-46F8-9B55-954561223493"></topicref>
+<topicref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita"
+id="GUID-457F3033-F0FB-4ECE-A824-CA4717484C47"></topicref>
+<topicref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita"
+id="GUID-658B7316-8D37-4BD1-8F8B-03DE5BDC26A5"></topicref>
+<topicref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita"
+id="GUID-4CF3E6CF-47C2-44B4-B04E-B928B3DFEC7A"></topicref>
+<topicref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9.dita"
+id="GUID-37939CEE-86EB-4CE9-B83B-D87A04452B62"></topicref>
+</topicref>
+<topicref href="GUID-3E341F9F-2635-589B-A59A-B999FE7DF9BE.dita"
+id="GUID-7C96BEDC-23C0-4C9B-B5E3-57D95E3EE77E">
+<topicref href="GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3.dita"
+id="GUID-2C25BEC9-7B7C-4F0A-A238-CE612B7DF539"></topicref>
+<topicref href="GUID-98499337-5CB4-5A9C-907A-95FF57775983.dita"
+id="GUID-ED44FAAA-D7B7-48FD-85B2-2A4DC3E8CEB8">
+<topicref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"
+id="GUID-60443376-86C8-4DD4-A8A5-81B8AF24FD02"></topicref>
+<topicref href="GUID-95EA435B-918A-4B68-8983-1D22B7840BA7.dita"
+id="GUID-9E1C0CC6-8C15-4C20-B93E-C59C6A0E51F5">
+<topicref href="GUID-E9B97347-D703-4758-A5CE-423A6CB4E474.dita"
+id="GUID-41585ABF-4EF6-4DA7-B65F-44D2D5DEC3D3"></topicref>
+<topicref chunk="by-topic"
+href="GUID-A257C677-7155-413A-AC5C-1DDF71DF1187.dita"
+id="GUID-4673B0B0-F2F6-4272-98D9-76F385A34503"></topicref>
+</topicref>
+<topicref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita"
+id="GUID-53E80D03-CFC2-42CF-A759-3A9295875840">
+<topicref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita"
+id="GUID-5ADF7875-D8DA-4A53-ADC2-162D839F52B7"></topicref>
+<topicref href="GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita"
+id="GUID-D27BBBEF-6468-4DAC-B8F8-0A3F40E41243">
+<topicref chunk="by-topic"
+href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita"
+id="GUID-1B66B4FA-278C-4A59-94FA-0F9EA8206253"></topicref>
+<topicref chunk="by-topic"
+href="GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita"
+id="GUID-212FD485-CF2D-4A66-A86F-77D9F92BA175"></topicref>
+<topicref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita"
+id="GUID-C353EA94-911D-4D0C-AA84-8640CBD1D9CC"></topicref>
+<topicref href="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita"
+id="GUID-6E506AA2-0EC2-4648-ABB8-17B867A2ED24"></topicref>
+<topicref href="GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884.dita"
+id="GUID-DAC9CCCB-44AD-413E-AEDF-63187B4D7395"></topicref>
+<topicref href="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita"
+id="GUID-6BF11165-72E6-4E7D-8599-FA63BA3B57A8"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-13574CBC-893F-5756-825F-1E14A85E9C90.dita"
+id="GUID-3C093855-88D7-4AAC-B6E1-6AC41AD52838">
+<topicref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita"
+id="GUID-227A56E8-F8C5-4637-BB9C-DF10EB489429"></topicref>
+<topicref href="GUID-C82A6822-DDC5-5372-A830-6BCF517F1526.dita"
+id="GUID-9CAF400D-CAD8-4F54-A79D-43DC959E31AD">
+<topicref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita"
+id="GUID-9984711F-C765-4B6F-85F4-42F879AA48E3"></topicref>
+<topicref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita"
+id="GUID-ADB93C4E-7E39-4A65-8516-C521D31AD328"></topicref>
+<topicref href="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita"
+id="GUID-0B7E9F82-84A4-4698-8233-542EB5040ABA"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita"
+id="GUID-534FFE4E-713E-4725-AB85-DBEA57FEF099">
+<topicref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita"
+id="GUID-6E877265-FCCA-4471-8B70-8318B0A220BF"></topicref>
+<topicref href="GUID-39958349-2761-5532-A87F-EABB9EB68D10.dita"
+id="GUID-CFE50AD3-3809-4690-BC0C-79993A802C6F">
+<topicref href="GUID-2CC30ECA-053D-57FF-8E9D-8FA733A031C9.dita"
+id="GUID-EC8A6790-6FDF-4F4B-B7AD-EF731B5EEA5C"></topicref>
+<topicref href="GUID-BFE8B989-8B73-5D3E-B5F4-13AC016C122C.dita"
+id="GUID-3B2627E0-1B88-46F4-B36C-589B7AA6F9B3"></topicref>
+<topicref href="GUID-2A6AAD9C-BB99-5145-B4A2-FCEF6BECCFD4.dita"
+id="GUID-9F245A55-213E-425C-826C-E1C0B6BE7FB7"></topicref>
+<topicref href="GUID-AAA27EE5-E323-5822-A339-690316C2D9B4.dita"
+id="GUID-0BCEE44C-1AC3-4BAD-9776-A3CF8F09DCA1"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-5C678281-46F3-53C8-8D5A-93E51EC9E3CF.dita"
+id="GUID-F635D780-FAA9-4C15-89EC-4F8A76FEEEAD">
+<topicref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita"
+id="GUID-BE405139-B185-4AAF-A6E8-EC253EE0ACA8"></topicref>
+<topicref href="GUID-988CE67F-F5EB-52DB-95B8-A0AB48307EE0.dita"
+id="GUID-087EBA52-A004-4D01-8FC5-B49E747C8608">
+<topicref href="GUID-C519E523-E908-5185-949C-C1FAC0BAF0D9.dita"
+id="GUID-0F5171DF-69F5-45E3-A725-110516575CB4"></topicref>
+<topicref href="GUID-5A5DDB8C-1E70-5B63-96F1-7ABBFA568866.dita"
+id="GUID-4F7C0326-EFA7-4FFF-BEB5-485B64C12E96"></topicref>
+<topicref href="GUID-7022455A-E738-574E-897E-33243482D69A.dita"
+id="GUID-9693F0A2-9F74-43E7-8303-2D04C1FA2D81"></topicref>
+<topicref href="GUID-7F6A463C-2D33-5B6D-9394-DCB55FEEB5A3.dita"
+id="GUID-298AC3DC-519B-45DA-8A20-6D7031E8F128"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-9331EE17-1831-5D9F-A090-438E3D6D1375.dita"
+id="GUID-608058C0-9D70-4ED6-A472-FAE1FFAE1758">
+<topicref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita"
+id="GUID-7F78AAF2-5005-4554-A30F-7E378C3AA281"></topicref>
+<topicref href="GUID-28604BBC-1C43-56F3-8667-DAF869F38BDB.dita"
+id="GUID-5AC0E577-0AE9-4E81-B634-0C543006BD29">
+<topicref href="GUID-10E19876-85CA-5D45-854B-1F2C5A45A333.dita"
+id="GUID-E71F0BC6-7D15-46C6-B69A-440B42D06BF4"></topicref>
+<topicref href="GUID-8B7ABDB0-B016-5106-824E-D823F1D2959F.dita"
+id="GUID-0961162E-1E1F-44CA-AB38-E739B9CEA736"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C87EED5E-8000-5F73-875D-5C82117339A2.dita"
+id="GUID-BB435A13-122C-46D7-A13C-7B3560B1719D">
+<topicref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita"
+id="GUID-80FCAA6F-3830-4F7B-9E82-852C02AEB5AB"></topicref>
+<topicref href="GUID-33488ED1-32F6-5D39-B264-5CDE3FEDFD2B.dita"
+id="GUID-F22AE227-15D0-439B-98BB-620AD547FCD8">
+<topicref href="GUID-FD530B98-B17D-54CD-A86E-B6FFF701D19C.dita"
+id="GUID-1EFB8713-42F3-4AF6-86C4-20D7A3542CEA"></topicref>
+<topicref href="GUID-F89F92BA-763D-5531-BF74-C6BF36A589CD.dita"
+id="GUID-3BC2CD43-A6AD-4807-A7BB-534BDAAE1716"></topicref>
+<topicref href="GUID-1C0707F8-9E2A-58C6-997B-23B57C7EFA93.dita"
+id="GUID-CEED2BEE-147C-4EED-99AC-0FB7802C72DE"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B4C8B3D8-0272-577D-A669-C0AE84D035B4.dita"
+id="GUID-41742A44-DEFB-427F-9A3C-082FF5F2883D">
+<topicref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita"
+id="GUID-BB9BA57F-89FF-4FBE-864B-A9BC3460DA66"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-7DB86BF1-0485-5CBA-9554-4C474B0EC1FB.dita"
+id="GUID-3EE1462D-A1C5-44AE-B650-35AE3509D95F">
+<topicref href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"
+id="GUID-5B4A0710-3F35-40E6-8ACE-8BD9D504CE5D"></topicref>
+<topicref href="GUID-74D3B534-B209-5884-B38F-DEDFB23B64CF.dita"
+id="GUID-A7B9FD45-E7E9-453A-9081-0F75DE8CB6FF">
+<topicref href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"
+id="GUID-0804D04D-54DF-4EEF-833D-7706187CCC25"></topicref>
+</topicref>
+<topicref href="GUID-9DFB1340-FA1E-530E-9372-DB6509CECA2B.dita"
+id="GUID-1F888C05-54B6-47A2-8C5E-8AC23E2A70E2">
+<topicref href="GUID-C0B39D73-0A3C-5289-A774-7BE590037404.dita"
+id="GUID-ED1EB0E7-4841-49D2-B055-C619BE9423EB"></topicref>
+<topicref href="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita"
+id="GUID-DE1B8444-3300-4741-8C81-FC6D977CE51D"></topicref>
+<topicref href="GUID-E6692CDA-9E24-57AE-9BC2-14D68D6480C3.dita"
+id="GUID-520A8F80-CBD8-4F77-88D8-393A496B4F82"></topicref>
+</topicref>
+<topicref href="GUID-9C371845-9F5D-56BB-BE16-ED60139D02AF.dita"
+id="GUID-916475C5-E4DC-4D09-BAC5-7214A0F804F4">
+<topicref href="GUID-49882982-0DA2-5021-BAC8-7DC77BDFD27C.dita"
+id="GUID-DC86F80F-F4A9-4A44-BFC4-C660A6F00D39"></topicref>
+</topicref>
+<topicref href="GUID-B5509C73-9A72-5E4D-B9BB-733B10EF842E.dita"
+id="GUID-D3149BE8-5463-474D-BBA3-5EDF4680483C">
+<topicref href="GUID-FCEE832C-5D8D-5177-A86A-E10015EF77DC.dita"
+id="GUID-9028462B-F11F-45A0-B346-73BBAE0F42E2"></topicref>
+<topicref href="GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E.dita"
+id="GUID-35F7A54E-25F1-41E9-BF49-3F598C62AC74"></topicref>
+</topicref>
+<topicref href="GUID-BC9001F9-BA41-5916-B2B2-175E37D6F880.dita"
+id="GUID-C3FBF988-85B9-4935-920A-0F4CABD7EC8F">
+<topicref href="GUID-257E223F-1612-5978-982A-38DE8E08211C.dita"
+id="GUID-98F4BB50-D351-4FDB-AF78-81D412C71C01"></topicref>
+</topicref>
+<topicref href="GUID-A68D1F27-FE7E-503E-B5B6-7BD555B88558.dita"
+id="GUID-149BA023-FEEA-4B7B-91C1-70EEB00CDE61">
+<topicref href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"
+id="GUID-6BDC4850-F14E-4C8E-A2CC-58060E6970AD"></topicref>
+<topicref href="GUID-786A8188-AB4D-5C65-8BEF-50E45FDBE9A5.dita"
+id="GUID-11C861C9-E27D-4134-9B12-5088956C9AD2">
+<topicref href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"
+id="GUID-2657A7B4-3A19-4182-9B60-A133CFF5AC15"></topicref>
+<topicref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita"
+id="GUID-023F3498-2D8E-462B-9A2B-B9D19C4E60A7"></topicref>
+<topicref href="GUID-A578ECBB-28C5-51C6-A040-4AE65AD38C07.dita"
+id="GUID-727D3D33-0D52-45F6-B41B-156439B57A10"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C11D2D1A-F901-5439-BEAF-37E4BDE13EF7.dita"
+id="GUID-D4964E6B-3FD5-4777-8A08-F3B8BDC98FF8">
+<topicref href="GUID-27220B08-B2E7-5106-9BCC-C86938D3E37D.dita"
+id="GUID-DB5C648B-ECC7-4CA9-9285-3E6E74EE3AB7"></topicref>
+</topicref>
+<topicref href="GUID-042868E6-88BF-5797-BB53-8E34283DCF16.dita"
+id="GUID-1833E10C-CFAC-4318-B917-62EE0DBF6504">
+<topicref href="GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C.dita"
+id="GUID-83D4FC75-D926-4E4D-A8F5-8E8A93F8AB55"></topicref>
+<topicref href="GUID-AD6CF225-CFF9-5F76-AA00-3535EA7D6FF1.dita"
+id="GUID-8BF52E9A-8EBA-4AA4-820F-1D640F6AB422">
+<topicref href="GUID-03866ADB-5916-5B31-BCF0-44F94E12B740.dita"
+id="GUID-E64190A6-6957-44C2-9278-C48B6C5D9B66">
+<topicref href="GUID-07CBDD99-CA8F-5CF9-B957-933C36D47195.dita"
+id="GUID-AF71B400-05F6-4D2C-BA89-11961636D821">
+<topicref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita"
+id="GUID-AAC58E90-EFCB-47C5-94D3-9FC4DA853F4D"></topicref>
+</topicref>
+<topicref href="GUID-AFAB4B17-1E9B-562D-AC36-48C4B0FFDD50.dita"
+id="GUID-8759BBA3-762F-45BB-AC3A-33C8D1D6B9FF">
+<topicref href="GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE.dita"
+id="GUID-6B32FBBB-C703-4FF4-9010-162FEEFED18C"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-F221B15F-B5DE-516F-8FB0-75C1971DB3AF.dita"
+id="GUID-3DA314AF-1CA6-4EAD-BD2F-FDEC36856D31"></topicref>
+</topicref>
+<topicref href="GUID-26FD66B4-A291-5DAD-991D-40AB5316F30C.dita"
+id="GUID-45D23EAF-15A4-4A17-8542-E690385B42C4"></topicref>
+</topicref>
+<topicref href="GUID-53C0A250-287E-57E1-80BC-F66F9F9DD478.dita"
+id="GUID-8358C525-1B9C-42C4-B95A-EBF1852BB6CE">
+<topicref href="GUID-6914EA3D-6FAB-52DD-A159-990F4ED892A2.dita"
+id="GUID-FDE892AD-2799-4C28-B0F7-608DFC748BB5"></topicref>
+</topicref>
+<topicref href="GUID-419BD5DC-6264-59FB-8EF4-E5652440A060.dita"
+id="GUID-8F9A100C-00E9-4022-9B50-5D5FA695F128">
+<topicref href="GUID-636879DE-0D1B-5CB7-9552-5F38A89B3143.dita"
+id="GUID-250F3D27-66E1-40DE-8DDF-B5ABD2F2AD84"></topicref>
+</topicref>
+<topicref href="GUID-1708D9F8-1277-59B9-8130-BBEFFFF1F481.dita"
+id="GUID-BA5CE647-5559-4D93-A3A0-95BD7C21FF11">
+<topicref href="GUID-08304A3F-4331-5936-984E-74A1F35905B8.dita"
+id="GUID-AC6246A2-9618-4D2E-A68D-0F18610FDE13"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita"
+id="GUID-1F8A7B31-FC7E-487E-AFD9-2CC79E09C92E">
+<topicref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita"
+id="GUID-43BDF23F-FC5B-4813-BB63-469ECBEDC870"></topicref>
+<topicref href="GUID-923C50A1-813A-5B51-A630-FACFB8B35B3B.dita"
+id="GUID-021C767C-3CEC-47F6-8BC6-B7E0E8005D9F">
+<topicref href="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita"
+id="GUID-A77EE1D3-07C9-4386-AEFB-00F5C402B28A"></topicref>
+</topicref>
+<topicref href="GUID-6CEFD500-F00F-40AD-AE38-BCAA7FF394A3.dita"
+id="GUID-C60D4B7A-CD4B-402D-AAFF-475B22528168">
+<topicref href="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita"
+id="GUID-A35D7015-BEBC-41F9-ABE3-39084E60BCA2"></topicref>
+</topicref>
+<topicref href="GUID-EB15EC74-BCCE-591D-8308-210C22CDDDDA.dita"
+id="GUID-238CD65A-CC76-4A40-A04B-6333F5FF240B">
+<topicref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita"
+id="GUID-E919ECD1-6A6A-4BF2-92E3-F2F8559EAA00"></topicref>
+<topicref href="GUID-03D132BE-5B90-50E1-88D3-D66289C02444.dita"
+id="GUID-FA17AAB7-80B8-44DC-8654-1FC7CE689CF0">
+<topicref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita"
+id="GUID-04DD80D3-8F85-41D5-B5EC-DA6A6FB32A05"></topicref>
+<topicref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita"
+id="GUID-880874A5-452A-4C8A-9C9B-3F05866DC3F7"></topicref>
+<topicref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita"
+id="GUID-C4D0CDB1-810D-4BAE-B8B9-5BCDE3EA2FA4"></topicref>
+<topicref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita"
+id="GUID-A1C555C8-8D62-4DD5-B8D2-C2FC272DFCAB"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-C6E3A784-EE17-5A3C-9D81-9662114FD923.dita"
+id="GUID-8D1A9C7A-1B81-445B-8873-135D05CBF0B5">
+<topicref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita"
+id="GUID-1C662EEF-B976-4D65-ADDA-ACE386780EFC"></topicref>
+<topicref href="GUID-C2BF3044-CC37-554D-9496-C7B18AE94561.dita"
+id="GUID-4426B14B-5696-4B49-9F09-04AA9248F59F">
+<topicref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita"
+id="GUID-028315CB-53EC-4106-A92E-60B7D0445264"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-46E12D78-5F1F-55B8-B7E8-1B4862CC70E8.dita"
+id="GUID-D03A82F7-CFB1-49D8-A661-4E3113C1855B">
+<topicref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita"
+id="GUID-423B7C5A-65AF-49FA-A42E-BCFBE8C7193D"></topicref>
+<topicref href="GUID-4D94A4B8-392D-5657-BD71-F1EA54318C47.dita"
+id="GUID-7C58CD8E-8C08-43CA-98B1-BA322E584369">
+<topicref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita"
+id="GUID-F5FC03E3-1C9A-499D-BCC1-E904423C4F12"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-DCA8273C-84EC-503B-9776-F141113B5CA7.dita"
+id="GUID-1725A80F-F588-4A3D-9727-3C38B6247612">
+<topicref href="GUID-ED109E7B-EFCA-59B9-92D9-EBFBC0F8BF21.dita"
+id="GUID-CE37A7E6-3773-4320-ABA8-9052BC98DE3D"></topicref>
+</topicref>
+<topicref href="GUID-D6BED357-F10B-5C00-9F8E-2CA3A584C4E1.dita"
+id="GUID-0B8767CE-61EF-4542-B995-990B271F23D1">
+<topicref href="GUID-E92BEA67-CF92-5E0E-8B0D-F918178CE9E8.dita"
+id="GUID-F25AB57F-4646-404B-BB5B-9F32B394F57A"></topicref>
+</topicref>
+<topicref href="GUID-74FB4D67-ECCC-51DE-9F9F-6D3B43E01179.dita"
+id="GUID-2F1BD2EF-0179-4A93-9FD3-F5C91349546F">
+<topicref href="GUID-61E219A3-7D9D-5AAA-B6B3-61F0749E12B3.dita"
+id="GUID-DECAF23A-2BD3-4B31-A383-94B6ABE303D2"></topicref>
+<topicref href="GUID-5EC09CBB-9EDC-549C-9C4D-036261BE8A4B.dita"
+id="GUID-6D85D1E9-6E6E-4B7F-8745-A42787C890B9">
+<topicref href="GUID-A9AAADAF-12B1-5D0C-B8B3-6E7FDB9823DC.dita"
+id="GUID-123A5AF2-76E9-4847-9C09-190EF59DC224"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita"
+id="GUID-992A9BF4-9F00-44AC-9767-DE060D134511">
+<topicref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita"
+id="GUID-F1CDA4F4-048A-462E-9DD1-8F2C86F7F3FC"></topicref>
+<topicref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita"
+id="GUID-425BEF3F-29EE-4F96-8576-963EB25727B8">
+<topicref href="GUID-3F0856D9-7B58-5519-9B26-97F1A035E21D.dita"
+id="GUID-02D68205-DE05-4A42-865F-FA8E018556FB">
+<topicref href="GUID-172F46C1-6066-57FA-A815-5AC23ACE159D.dita"
+id="GUID-14AED479-D7C8-45EA-9E39-672605639F3C"></topicref>
+<topicref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita"
+id="GUID-C0D0CF44-2889-4B10-AD3C-BA26FCF26019"></topicref>
+<topicref href="GUID-733B9695-0C7C-5637-9025-6CE3BAA1A23E.dita"
+id="GUID-3F183426-1ACE-4500-8378-DE0E1B161983"></topicref>
+<topicref href="GUID-FE7DE542-3FD4-56D2-B281-C670EF1C4FEB.dita"
+id="GUID-6C8659D5-53EC-41BC-9DF8-2807EFB74E8E"></topicref>
+<topicref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita"
+id="GUID-6644A007-D684-4902-8DC7-CB541A7DA2A7"></topicref>
+<topicref href="GUID-70B3881F-9532-5F1D-B210-99A15DB93FC2.dita"
+id="GUID-844F5068-9D74-49CA-9C9D-79DE00F8B567"></topicref>
+<topicref href="GUID-469377FB-AAE8-5245-A8E1-469C65AFE5C5.dita"
+id="GUID-800D54D0-B2DE-47A1-BAAB-BD8EEB8C58C8"></topicref>
+<topicref href="GUID-F13C7D36-E4AB-57F1-87A1-EB83AA2258DF.dita"
+id="GUID-9B992DEE-8C2A-4225-A47F-B28F4DC263C7"></topicref>
+</topicref>
+<topicref href="GUID-B54E84A4-2F81-57C2-BEDC-48C6B3F6A023.dita"
+id="GUID-3930C922-80C7-413A-B0B9-8D1FDFB60B8A">
+<topicref href="GUID-D38456FB-BAA2-5473-B669-F44D5627155B.dita"
+id="GUID-51606780-2BDD-4AD3-92F7-E1CFFE0EF7BC"></topicref>
+</topicref>
+<topicref href="GUID-37934768-50D0-52A8-B594-B47D5E27722B.dita"
+id="GUID-EBC470BA-A180-4769-AEA0-9B4DA986326E">
+<topicref href="GUID-688C515E-3D1B-51BB-A776-A246FA232061.dita"
+id="GUID-7A7484B5-95DB-4C59-87B6-47A3A3DE7899"></topicref>
+<topicref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita"
+id="GUID-447AA75E-5410-463C-B6FE-57BC8D829A26"></topicref>
+<topicref href="GUID-ED700A4A-3BBF-5048-92CB-E3677A0FD09F.dita"
+id="GUID-0D43A399-C00E-4C4F-B2BF-A93E4B520837"></topicref>
+<topicref href="GUID-C08BBBAD-3605-53E3-A94F-ECCFFB80E1DD.dita"
+id="GUID-B6E5575A-9406-4ACB-96B9-B9FB7B5C1190"></topicref>
+<topicref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita"
+id="GUID-54654540-7067-4A4F-9CC9-FA69631B0B68"></topicref>
+<topicref href="GUID-2D20B6DF-BE02-50CF-8E9F-14E3402EF952.dita"
+id="GUID-926B6876-17C7-4D63-8377-BB4421383D6F"></topicref>
+<topicref href="GUID-44EDB476-33E2-5D91-8CC2-A04369AACCA4.dita"
+id="GUID-EA29073D-FC6E-4E3D-ABC1-AEC5AEB7FA55"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-17273087-B962-5E8A-8715-055C8BF34A5D.dita"
+id="GUID-7DA8AF9B-9888-433E-85A1-CABFF6259C5D">
+<topicref href="GUID-02659624-4C27-573C-BE2E-0250D860BEA3.dita"
+id="GUID-0285620A-50CF-4EE8-9110-D24E42DE576D"></topicref>
+<topicref href="GUID-152BF5C3-CE32-5174-A043-1B2D5D8168C3.dita"
+id="GUID-BFEC55BD-F7BF-4A0A-A329-06907372C258"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-1AFD6B2D-C6CD-5BBF-A968-F68CCDFDA927.dita"
+id="GUID-D290B917-E49B-4B5E-8D0A-6794C8D1D850">
+<topicref href="GUID-DDF4EA2E-59D6-5FE0-9C61-C5A9CBD8D4FE.dita"
+id="GUID-BA7EBE25-33F3-4816-9F61-8AA229400CA3"></topicref>
+<topicref href="GUID-B60A4401-56C0-5C70-BAA9-020321FEDCBB.dita"
+id="GUID-59D5F92B-10A3-4087-9BD7-ECAC658E3081">
+<topicref href="GUID-AAAC7887-93A8-5F8D-98D4-44FAD26C228A.dita"
+id="GUID-742BFBC1-75AA-4307-964B-3A127AD3C477"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-90B58A30-8BE8-48E8-ADB2-57E8A0AD8376.dita"
+id="GUID-79B5F3FA-C639-41BC-BE18-1F64072804F1">
+<topicref href="GUID-CE94AD48-B79B-403A-98E9-F69494D052F9.dita"
+id="GUID-0423E9DA-D73A-4347-B5EF-395A057F27A3"></topicref>
+</topicref>
+<topicref href="GUID-01103A66-532B-54ED-9D4D-39B81327E783.dita"
+id="GUID-FDAEEA67-DBDD-43F3-913D-19A59158D522">
+<topicref href="GUID-9782BF84-B91C-5D7C-BFAD-6B7E6A9ADD02.dita"
+id="GUID-0D418FC6-806D-4FA0-BC64-9916C7F97FA4"></topicref>
+<topicref href="GUID-B0F7EFB9-3502-50F7-BBE1-FD0DD7A360F8.dita"
+id="GUID-8215A5D6-2559-4457-8452-B66DDF5D3B6E">
+<topicref href="GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B.dita"
+id="GUID-E302A683-5D86-4D41-A340-5F49DAFDEE3D"></topicref>
+<topicref href="GUID-3AD215CA-AF7D-561C-9D9E-FAFB50F1E37F.dita"
+id="GUID-B84CBD91-199B-4269-AA8E-DB50EFDCE80F">
+<topicref href="GUID-B454C08F-0531-5789-ABFA-171D3C2319D9.dita"
+id="GUID-DCD6FD1E-33AE-4265-A8CB-4C017EEC024B"></topicref>
+</topicref>
+<topicref href="GUID-9C251352-B5CD-5BD2-B420-E14E40E137B1.dita"
+id="GUID-6923FDD6-D8CE-4A8E-A2B2-2EFD8C8952A1">
+<topicref href="GUID-DC4BF172-CDD3-5351-BBA1-550DEC1706BD.dita"
+id="GUID-B0C3C6CF-40E8-48B2-93A1-A63AFAD22244"></topicref>
+</topicref>
+<topicref href="GUID-EC861957-FF3A-5C3E-8713-145DD505996F.dita"
+id="GUID-9972DAE9-BDDD-4134-863A-C63A88FFA5F0">
+<topicref href="GUID-F684F363-B361-5868-9195-41305428AB2D.dita"
+id="GUID-5E17CC21-41EA-4003-BEF0-64ED46C49959"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-33FEE8F8-CD21-52EA-8EE2-502B12B3C463.dita"
+id="GUID-28DC3F5D-9CE4-45B3-8E68-5AC2410643C2">
+<topicref href="GUID-CC96F41D-5AC9-5D11-BD4D-073548EA5CC8.dita"
+id="GUID-1688BE18-0114-4405-81A7-0936EED8CBE2"></topicref>
+<topicref href="GUID-842D8124-554F-5D89-9E20-8B48EA539D2F.dita"
+id="GUID-6E78A965-89A3-4C66-992D-24479A32DC09">
+<topicref href="GUID-D9D2A600-89C6-5D82-8BC0-2C60D8F6517A.dita"
+id="GUID-38FEB302-83BD-4FD1-B464-9EEB293D9D6D"></topicref>
+<topicref href="GUID-FB2E1BFB-A06C-58D8-B175-1E7B10BCCB72.dita"
+id="GUID-3B3C5AF6-5FE7-47C0-BD07-9A38C3150A13">
+<topicref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita"
+id="GUID-0CEF1B1D-5EC5-4ACA-B9B4-F3A24214FB68"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-97F83011-BE3C-512C-9599-028CBB92BD51.dita"
+id="GUID-73B60703-65EA-4E2B-9025-77483CBD9F50">
+<topicref href="GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438.dita"
+id="GUID-D68192D5-9EED-4D51-BD77-DA1EACB275F1"></topicref>
+<topicref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita"
+id="GUID-C0C7711A-8039-4B2F-B961-8A625ECC41AE">
+<topicref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita"
+id="GUID-519916BF-F5CD-45FF-A0B7-6E6D3D25E1C8"></topicref>
+<topicref href="GUID-7261FEC6-5AA6-555C-AB72-2173BD3F1FA5.dita"
+id="GUID-520CD795-E5FC-45A6-8B6F-F0556B82051C"></topicref>
+<topicref href="GUID-BDC081CA-FB0D-5F56-8C1B-F7AC9DD6875D.dita"
+id="GUID-CDFDBA92-37FA-45EA-B322-F8C751FDA3B7"></topicref>
+<topicref href="GUID-55B9AF74-DF38-5490-BD3C-908A2FE362E6.dita"
+id="GUID-1A3FA466-2DCA-4920-9D59-D780D0B87193"></topicref>
+<topicref href="GUID-30FDDA7A-FF46-51A5-B73A-277C9FF69FFD.dita"
+id="GUID-DD8ADA52-3326-4262-BA58-B0F5B8BD58A3"></topicref>
+<topicref href="GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98.dita"
+id="GUID-93419275-E01F-4017-B4FA-6A77271FD162"></topicref>
+<topicref href="GUID-B998B8FC-3DC3-57B5-A4E6-C4D903B4ACF9.dita"
+id="GUID-450F6897-397E-42AB-91E7-8C821834E168"></topicref>
+<topicref href="GUID-21E26B07-7E4D-50E0-97BE-C05CCD88B89F.dita"
+id="GUID-8CECA2FC-67C5-4A8E-AF87-40A41CEEAA9E"></topicref>
+</topicref>
+<topicref href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita"
+id="GUID-D7799F62-6251-4FE0-B72F-4FE0E73E5F25">
+<topicref href="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita"
+id="GUID-125B5CFA-BAE9-47C8-8DAC-7D32741682DF"></topicref>
+<topicref href="GUID-354240A8-2DDD-5181-9A36-9A054D239B62.dita"
+id="GUID-F6988327-4202-4632-8876-FAF9B2A2E1FE"></topicref>
+<topicref href="GUID-87C81097-A892-5E45-A3CC-BE2C65A2FA70.dita"
+id="GUID-12205ED7-1B2F-4D6D-86D1-B16E7F550943">
+<topicref href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita"
+id="GUID-E6F46CCF-1653-43FC-B199-DEB76B444608"></topicref>
+<topicref href="GUID-A4354C8C-2A00-50C1-8DC6-6CE748BC01EB.dita"
+id="GUID-4502C08E-95F1-4E45-84CC-D49630D3CB0D"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6F6B6C23-D5CF-5BE7-A001-EE87BC76A65D.dita"
+id="GUID-6C994864-7772-41E1-A049-0AF0DA50F21E">
+<topicref href="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita"
+id="GUID-22685447-DFD2-4F85-8FD8-6E90064E67EA"></topicref>
+<topicref href="GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1.dita"
+id="GUID-1EF04F4B-6EA9-4306-9EDC-402E8230C14B"></topicref>
+</topicref>
+<topicref href="GUID-B61F5B98-E76E-52BF-ACB6-0C68314F190E.dita"
+id="GUID-F5669ECE-84A5-423F-A575-32DE3AF2E808">
+<topicref href="GUID-7226DB6E-93E9-57E6-B7AB-043E1C5E2A7F.dita"
+id="GUID-6F4EA048-20E9-4533-ABD0-EAB277157432"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-3291A4CF-3CCD-53BD-BBB5-4F2389765B08.dita"
+id="GUID-C32D51AE-D6DF-458F-8A0B-5A80F5BEB860">
+<topicref href="GUID-98FBEA7E-78BA-5A64-90D6-4641418003B4.dita"
+id="GUID-F58548A6-EC8E-4BD2-A300-B3DDA4FF1266">
+<topicref href="GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5.dita"
+id="GUID-834A9636-B30F-4DE4-96EA-8BA593971779"></topicref>
+<topicref href="GUID-752E6C04-D4AC-556C-84D5-E3D9D4BB6CB4.dita"
+id="GUID-CC4BED18-64A6-465A-B07D-6B032B1AB719">
+<topicref href="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita"
+id="GUID-03EDD806-691B-465E-AE97-7EC347FA5582"></topicref>
+<topicref href="GUID-6021BE18-3416-55DF-A628-0071024D7586.dita"
+id="GUID-029752EE-FD26-4AB8-929D-59CBF0F48999"></topicref>
+</topicref>
+<topicref href="GUID-7636F898-8390-5C32-964D-66CEA62A60F4.dita"
+id="GUID-B655C512-6C6D-4496-93FD-A5C90F8BF63A">
+<topicref href="GUID-AFD7E241-7DC5-5C7B-A7FB-D0B6DCF95ECD.dita"
+id="GUID-00575617-8A94-419E-AD85-8E5079A54C2F"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-803ABB5A-2E34-5F71-A5A9-0D475041185B.dita"
+id="GUID-90BA50F1-7FBF-4906-B9CC-6257C8D868ED">
+<topicref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita"
+id="GUID-F0A3030E-71F0-4EF2-A2B2-CD85005877F7"></topicref>
+<topicref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita"
+id="GUID-9F9B1BAA-EC66-4E5C-B9D7-99A02190FADA"></topicref>
+<topicref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita"
+id="GUID-A1764C02-295B-4F5E-B2F3-80FB130CD091"></topicref>
+<topicref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita"
+id="GUID-8B649CA0-A6D8-4718-AEBE-4F264E734163"></topicref>
+<topicref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita"
+id="GUID-8BBCE6F9-669A-49F4-B242-2B703D606857"></topicref>
+<topicref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita"
+id="GUID-3E59680A-5FA1-4872-870E-DFD8A3AC88EB"></topicref>
+</topicref>
+<topicref href="GUID-EC4CE675-3EE7-58F7-A872-E72548B0C9A5.dita"
+id="GUID-12BCF09C-133B-4159-9C7F-BC65728CD2FD">
+<topicref href="GUID-174D98FF-6782-564E-9FDF-1AE32F770591.dita"
+id="GUID-CC0E461B-9C65-4BAF-A333-1AE5D10F1BE4"></topicref>
+<topicref href="GUID-567AB683-5D92-533D-B4D8-813E70316DA3.dita"
+id="GUID-3C5F8173-94F9-43CB-8B73-BB8430C91705">
+<topicref href="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita"
+id="GUID-64B12647-9D18-4745-A97E-214C23EE6EDF"></topicref>
+<topicref href="GUID-DC704CA7-401C-54D5-85DA-B5EBF4362806.dita"
+id="GUID-E379C796-42D8-49DA-841D-A55020A95879">
+<topicref href="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita"
+id="GUID-A6499FA8-5A71-4357-9890-9EC99428214C"></topicref>
+</topicref>
+<topicref href="GUID-DDBE3874-60B0-5CAB-A782-294A32412C0B.dita"
+id="GUID-52D2E040-1307-42CD-A12C-5959BDAAF7F2">
+<topicref href="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita"
+id="GUID-CA56AE17-0ECC-4B7C-B967-D19F579286F2"></topicref>
+<topicref href="GUID-C25DEDBC-83B8-5502-BD2A-9561F81551A0.dita"
+id="GUID-8B70D3B0-41FD-4996-998B-C11DDCB84EE5">
+<topicref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita"
+id="GUID-0A88A4F8-E63E-4A40-81B0-88EDEDBA7876"></topicref>
+<topicref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita"
+id="GUID-E1507F36-4190-4937-ABF4-91A5DABB515C"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6EF91E47-F931-5AB3-9050-C545D9225E03.dita"
+id="GUID-25384D5F-0583-4F89-A460-86412AB0B87D">
+<topicref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita"
+id="GUID-ACEC5D8C-0A7F-43D4-A0AA-B046807EFF22"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita"
+id="GUID-3C3DEA09-22FF-4CAD-9D89-A1ADE57A9C5F">
+<topicref href="GUID-C05374FC-CF33-58C2-9442-B9EE78C81A4F.dita"
+id="GUID-9FCAE7E6-4397-459F-9952-94546CA360DF">
+<topicref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita"
+id="GUID-B3C882DF-812E-4F03-8867-F5A00CCBE5D9"></topicref>
+<topicref href="GUID-89EDF464-8DC5-5A2A-9135-3FE82EF40FF4.dita"
+id="GUID-7D4EC2E1-D8B3-4A9F-8F30-E3DE2B1E0922">
+<topicref href="GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074.dita"
+id="GUID-4A383F0C-A76A-4386-A6FD-022734C7AEC6"></topicref>
+<topicref href="GUID-71F41FAA-E549-55EF-B9F7-5F349EE96D63.dita"
+id="GUID-2208D541-E738-4F55-B78A-ACA1DBFA48A6">
+<topicref href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"
+id="GUID-DFE02B8B-5043-4C44-AA80-DA57B72CA60D"></topicref>
+<topicref href="GUID-8CCA6352-DC3D-5BFE-9AAF-B70173DF2558.dita"
+id="GUID-DB79F261-AB0D-4B7F-A463-7E17A29E60A6"></topicref>
+<topicref href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita"
+id="GUID-E07121AD-5299-4006-A582-27468B837683"></topicref>
+<topicref href="GUID-A5B74E5C-A26F-5699-8885-3C7F3121FAD6.dita"
+id="GUID-7EED09A8-C2D6-42DD-9557-CD37BFD86AF6"></topicref>
+<topicref href="GUID-57412030-6B02-592A-81D5-54D2767ED131.dita"
+id="GUID-309D33FB-F999-42AA-9211-594BCEE19CEE"></topicref>
+</topicref>
+<topicref href="GUID-A7498DE3-E9A1-5921-9867-4254685CAC18.dita"
+id="GUID-F7457C2C-8000-451D-82B2-A87C2846E928">
+<topicref href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"
+id="GUID-2092AA11-FC42-4CD5-8192-E4106355D66D"></topicref>
+<topicref href="GUID-769CD1E7-8545-5223-A195-43E72AAF5DDC.dita"
+id="GUID-B313E147-B45F-4A9B-9345-612C6596A5DE"></topicref>
+<topicref href="GUID-96B8657D-FC07-5D5C-8ADE-3B2167A9229E.dita"
+id="GUID-4E96E38E-99C7-4E01-A7B7-E0F04B0FF277"></topicref>
+<topicref href="GUID-D67D6147-ECE1-576C-A64C-120F32AE2AA2.dita"
+id="GUID-DAF7BE52-83F7-43E8-BDF7-0B02DCAFCB4F"></topicref>
+<topicref href="GUID-D0CD890F-36DB-5265-B2C1-8D632EAF736B.dita"
+id="GUID-8BD37A3D-25B5-471A-9571-8A6F058D551E"></topicref>
+</topicref>
+<topicref href="GUID-C1A5C1C5-2D97-516E-9B0F-CCE02C33B47D.dita"
+id="GUID-8981B418-18A6-4E4C-A062-FC50AECBDE8A">
+<topicref href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita"
+id="GUID-91AD7B6B-DF54-471E-931D-125900FBCE25"></topicref>
+<topicref href="GUID-A748041F-5925-54F8-AA21-C1CE8E0473AA.dita"
+id="GUID-BDE34E67-8C09-44DC-8D0E-BEA4F835D7BD"></topicref>
+<topicref href="GUID-3AB05112-0580-5FD2-AD61-5721090062F8.dita"
+id="GUID-BD189444-0EB8-4815-AA47-67ECB0761359"></topicref>
+<topicref href="GUID-12A754EE-7D90-56C8-BDA7-3293F34BE456.dita"
+id="GUID-61AF3BAE-6E67-401D-B551-8C44CC2926B7"></topicref>
+<topicref href="GUID-93EF4862-2395-5ED7-8446-A7FDA60535B1.dita"
+id="GUID-4CC0B947-CB2E-403F-80A8-A420DD285DEB"></topicref>
+<topicref href="GUID-DD8BFFF1-15C7-59B0-A107-C5CC90DBF4CC.dita"
+id="GUID-8BA07F85-2D11-4B96-BF00-653A7DFF8A8E"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-CFDC9764-ABE0-46E8-99BB-01833FC3E7AD">
+<topicref href="GUID-6425B722-4095-56E3-9198-70BA3E06C617.dita"
+id="GUID-2A1AE126-7E9B-45B3-9430-3D3F27DFF89B">
+<topicref href="GUID-C467E6CD-6656-55F6-BDDF-BFA4F187B14F.dita"
+id="GUID-A58538E9-F512-41FC-8BA3-C54774E6431B">
+<topicref href="GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD.dita"
+id="GUID-48F121F1-609A-444C-9880-47A86602AEE0"></topicref>
+<topicref href="GUID-5287A403-1094-5682-A443-A6C2A04A1F23.dita"
+id="GUID-BCBB6C94-955C-491C-941F-CAFED8E001D0"></topicref>
+<topicref href="GUID-9652782C-D5A7-584F-A61C-1340D49478A2.dita"
+id="GUID-C8137DA4-16D6-4A28-8653-A63A18EC5B41"></topicref>
+<topicref href="GUID-FBA52F3B-0A7A-5FE3-82CD-72F88788D432.dita"
+id="GUID-6D7649C3-5DD9-4C32-BEC2-16044F6750CF"></topicref>
+<topicref href="GUID-D7A8E007-CCCD-5E4F-A7DE-4D474C864104.dita"
+id="GUID-5FC912C0-F1CC-41DC-98C6-49054F27F0BA"></topicref>
+<topicref href="GUID-46047253-4471-502D-B48E-E1990E7F7962.dita"
+id="GUID-00A2C8E4-1F85-4361-A9FB-B524503331DC"></topicref>
+<topicref href="GUID-A81854C9-25F1-5C3B-AF3F-ECB7CFA26677.dita"
+id="GUID-5C53941A-2348-487E-A009-58F87BC8AA85"></topicref>
+<topicref href="GUID-765F43E2-39E8-53F5-881F-593F379623CA.dita"
+id="GUID-C7A7125B-7739-4056-92B1-4792D320BB9B"></topicref>
+<topicref href="GUID-0ACAFB87-0D45-5BAA-B40A-9A7DC1646B01.dita"
+id="GUID-2D3559F7-0D7A-4E71-B37C-F7D0C8AE348D"></topicref>
+<topicref href="GUID-D5F57D81-6B59-5C7E-A2C8-A5E29873346B.dita"
+id="GUID-72715114-1F22-4255-BC66-D5A8580F7333"></topicref>
+<topicref href="GUID-7D1E2DBD-004B-5047-BDA5-21CD55D0A95C.dita"
+id="GUID-18E9B819-C549-4D8F-BF19-13CEB9CF4D55"></topicref>
+<topicref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita"
+id="GUID-EA8838D2-4306-4CCF-9167-2592D92FCE3A"></topicref>
+</topicref>
+<topicref href="GUID-057F1F82-56AF-5696-853E-79196A3D567E.dita"
+id="GUID-00F68E47-4371-4CE2-9A8B-5B83676E83C8">
+<topicref href="GUID-093516F2-9076-5A96-9BEF-F5A77F75239C.dita"
+id="GUID-BC2F03AA-24C7-4580-BB1B-A32D51E8FBDD"></topicref>
+<topicref href="GUID-E339A683-94E2-54E8-BB2B-286B11B0FCE3.dita"
+id="GUID-0700B7FB-F6C6-4CDE-9544-37EFBC2BDEBF">
+<topicref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita"
+id="GUID-7879A4B9-5ED9-4AEA-A4E8-33D62745B165"></topicref>
+<topicref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita"
+id="GUID-BB644A76-E570-40DA-8DDA-2CF16C33CCBA"></topicref>
+<topicref href="GUID-38BA60AA-074D-59CC-9B16-F7E5B10248FD.dita"
+id="GUID-032A843F-0732-4043-BAB0-E72CC8B69DA5"></topicref>
+<topicref href="GUID-128F20B1-4293-59C5-99B5-83BF43CA2F01.dita"
+id="GUID-EF2040ED-FA18-44F1-B073-6C211389F487"></topicref>
+<topicref href="GUID-77E02E43-A72A-52DC-A22B-31FABE5B658D.dita"
+id="GUID-F7C116E9-2A45-4A45-9A24-535ACFA4FE45"></topicref>
+<topicref href="GUID-83A4D862-368E-5DCC-998E-90144BE18A22.dita"
+id="GUID-A43E4B92-0995-41CD-8ACF-4C2296333ACC"></topicref>
+</topicref>
+<topicref href="GUID-CD0EF6F2-9515-5884-B979-C3C391B7DA07.dita"
+id="GUID-7863EFD1-1A19-4647-A5C6-C9E024DF191C">
+<topicref href="GUID-85CA1089-3F58-5E82-86A4-4674C893B25F.dita"
+id="GUID-16EFA312-3513-4E7A-8D39-643D2C47BA20"></topicref>
+<topicref href="GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4.dita"
+id="GUID-17ADCA61-89C0-40CB-A756-D66DF6093E0F"></topicref>
+<topicref href="GUID-67ADD402-0741-5FFC-BF53-B6172C438E88.dita"
+id="GUID-3F275BAC-6939-436A-9F36-529140AD5A8B"></topicref>
+<topicref href="GUID-243CF1A9-F3CF-5562-8746-1CB392CDB73A.dita"
+id="GUID-6EC37E54-7B84-4EDA-BA99-32B3E15B6B6F"></topicref>
+<topicref href="GUID-1B3D9B3D-D507-5D78-9E90-060C26D3F971.dita"
+id="GUID-8DD245BC-1053-4F32-BC37-B83E30CD532D"></topicref>
+</topicref>
+<topicref href="GUID-399EAC59-643D-5DED-AB67-9F021CA5687A.dita"
+id="GUID-96E76BAC-4420-4CF8-8782-625C93C11C85">
+<topicref href="GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D.dita"
+id="GUID-2A42C4D0-788F-4349-90A1-47811F27312E"></topicref>
+<topicref href="GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67.dita"
+id="GUID-9E38E51D-6C9C-4D14-B6FF-F87AB9C37082"></topicref>
+<topicref href="GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7.dita"
+id="GUID-217E2406-F654-49D8-9B92-DDAC6F295236"></topicref>
+<topicref href="GUID-68BA05D8-BC78-583A-9958-553424EE3C9B.dita"
+id="GUID-BD80C980-CF8B-4F74-85FB-63B15923C384"></topicref>
+<topicref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita"
+id="GUID-7D31095F-2E2D-4B19-883F-83DE54598198"></topicref>
+<topicref href="GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45.dita"
+id="GUID-18B97EA5-D1EE-41D1-B448-0EE9B8D7D2AD"></topicref>
+<topicref href="GUID-770EF3C4-15D3-5A0F-B5DF-A95B27A0DB05.dita"
+id="GUID-0D1EF399-0F7A-4C27-A1DC-CDFC8F578360"></topicref>
+</topicref>
+<topicref href="GUID-28636BB0-2C25-5D6C-9777-41AA4F3D8F31.dita"
+id="GUID-DC79AE6E-9160-4B84-B15F-AF8143C6F271">
+<topicref href="GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16.dita"
+id="GUID-A3AFE90C-6BD1-491D-8CE3-0033BC1281A9"></topicref>
+<topicref href="GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C.dita"
+id="GUID-1862B544-28AC-42AF-8263-8B6334B2FBF2"></topicref>
+<topicref href="GUID-85CE1EC7-E791-57B6-99BA-720699ABC880.dita"
+id="GUID-6F31799C-8EB2-4307-BC0B-FF6ED70868E3"></topicref>
+<topicref href="GUID-2992031D-E176-5BC8-8B89-A5DC2A4B35AA.dita"
+id="GUID-5EF45316-BBE8-4DD8-A685-D76E6396B67D"></topicref>
+<topicref href="GUID-7690509A-C5EA-5835-9298-11E22F49FC2F.dita"
+id="GUID-96B180F7-E880-4297-B0AB-760B7E76598A"></topicref>
+<topicref href="GUID-6F40A921-83A9-5268-A9A6-80750CD5823D.dita"
+id="GUID-BBB371D1-1DE0-47EE-89B4-D00068D2ABC2"></topicref>
+</topicref>
+<topicref href="GUID-A3D1684D-1DF1-5CAF-A0BB-A32685528596.dita"
+id="GUID-9C5648A0-E5FD-4100-9CFB-DD88DBF9B391">
+<topicref href="GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE.dita"
+id="GUID-09A55058-AE16-4602-B1A1-10C091DEF579"></topicref>
+<topicref href="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita"
+id="GUID-E08AE047-5573-42DD-93DC-E1971F147BAF"></topicref>
+<topicref href="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita"
+id="GUID-6C7899FF-390A-45BD-B510-84951F06BF6A"></topicref>
+<topicref href="GUID-E211C047-FCF9-5B48-B9D9-97C3D093E19B.dita"
+id="GUID-D8C788F7-5155-441F-AFB9-DF7B5E60E5E5"></topicref>
+<topicref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita"
+id="GUID-4490730B-97CA-405A-A820-473E91C7482D"></topicref>
+</topicref>
+<topicref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita"
+id="GUID-42BA5F4A-691F-48CD-BBD4-E4DD9B0D54C9"></topicref>
+<topicref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita"
+id="GUID-0569111A-1038-4119-886B-DF64B2A238DD"></topicref>
+<topicref href="GUID-4C47ADC7-3624-5C39-B632-F227452C420A.dita"
+id="GUID-3CCBC2CB-62A5-4A17-89C2-0D0D3BCB2663">
+<topicref href="GUID-27F39152-0AF2-577A-A367-BCEE9060902E.dita"
+id="GUID-F4B2C107-331B-439B-9C66-19D02C9F8356"></topicref>
+<topicref href="GUID-82ABFD08-D354-5955-8F95-9F22859FCE2A.dita"
+id="GUID-67363266-FB66-49BE-94CC-839A1721A7DF">
+<topicref href="GUID-A1598248-EE3D-5ED5-A431-02DCEBEDF472.dita"
+id="GUID-80967DEA-D6BA-4A56-B4E1-0682375700D7"></topicref>
+<topicref href="GUID-7F8F830A-990C-5DDF-9D8F-28C89BFA755A.dita"
+id="GUID-A49DC820-837F-4F9A-9F81-88151D37B5CF"></topicref>
+<topicref href="GUID-53017B71-9399-548B-BD1D-C68FC535A543.dita"
+id="GUID-5D49BB25-C68B-4819-8028-68C0DE60F0E8"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-07B6CD9A-C54F-4E9D-B45F-0AFD412BE9C1">
+<topicref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita"
+id="GUID-1FE2B88D-1939-4626-A4CA-620E83A2AAB0">
+<topicref href="GUID-82438A0F-819C-5CDC-81DC-A8BFE3AA4A6A.dita"
+id="GUID-E943B81D-0550-47C9-AE3B-BB7A2E41267A">
+<topicref href="GUID-7821C498-70A2-5D3C-989A-58CEBAE9162B.dita"
+id="GUID-721FA7AF-9E61-4821-A985-60E530B9BD9F">
+<topicref href="GUID-5F1E5D73-27B5-5C08-848D-361AC2F15B96.dita"
+id="GUID-B2015255-FDB2-40B9-AA5F-8E07D63F88DF">
+<topicref href="GUID-A9640739-462C-5D95-8DCC-D273CD8439AE.dita"
+id="GUID-0D2CDCB7-C091-472A-8A08-6D369259996F"></topicref>
+<topicref href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita"
+id="GUID-F93A0D9C-336A-41D9-91C8-0F2E48511D93"></topicref>
+<topicref href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita"
+id="GUID-A00F01B2-88E9-4397-A129-459685E4E398"></topicref>
+<topicref href="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita"
+id="GUID-41F25C2C-85EB-4045-A989-D6CDE155B6A2"></topicref>
+</topicref>
+<topicref href="GUID-3A14EB6E-2F28-51F6-9D80-1AFCFFBDDF9D.dita"
+id="GUID-C9CFCA47-AA62-465F-8F78-7082D3A856FE">
+<topicref href="GUID-B8DEA3EE-7BA7-5A29-9A27-B87EE0EB254F.dita"
+id="GUID-5A13EEFA-0DDB-4655-AE63-B1AD19C0773E"></topicref>
+<topicref href="GUID-182A7A60-80BD-5E54-917A-8F4C26BB94CB.dita"
+id="GUID-16F4DCEA-465C-4F14-A7F8-F434BBE74E0D"></topicref>
+<topicref href="GUID-3AAE78A4-75C5-5607-8775-43DFB43DCFE8.dita"
+id="GUID-ACA751CF-4B02-4D0D-844D-D8B694ACBFB7"></topicref>
+<topicref href="GUID-7EE80A94-DAB3-5A5C-B3AE-146501592736.dita"
+id="GUID-AE0DF956-CD88-4D70-93E9-7DE2EADCAD7B"></topicref>
+<topicref href="GUID-95C166C3-2A25-55FB-88BD-62B7EFED2F8E.dita"
+id="GUID-B86BCA93-9F77-4957-B8AC-750B730A6C20"></topicref>
+<topicref href="GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita"
+id="GUID-C209ADB7-4F56-4B3A-BF37-6B2A2410A64E"></topicref>
+</topicref>
+<topicref href="GUID-C95D0D29-E14F-5E34-B295-F3CBB38F85FF.dita"
+id="GUID-B69FC510-5AFC-4CE8-B962-10A349A77CEF">
+<topicref href="GUID-5546C1F6-2110-5031-99BC-66E6958D513B.dita"
+id="GUID-859475BC-131C-4BB5-987F-9AD5DC45FDB5"></topicref>
+<topicref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita"
+id="GUID-1D5D087C-92F4-4F24-80C2-E84AEC791F00"></topicref>
+</topicref>
+<topicref href="GUID-229C2057-F187-5019-AE21-AAA5803DD0ED.dita"
+id="GUID-2E36F0F5-AE57-4E43-B20A-F43B100A8713"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-DBD4964D-7728-5E57-8BBA-824F98D0CCF8.dita"
+id="GUID-DC5ED0AB-CFD8-4BBB-B289-DA2ED933841A">
+<topicref href="GUID-7510C121-A23F-50E0-8130-16AF552BC497.dita"
+id="GUID-227D90D4-203E-4580-B77C-A2EBB6EC0D48">
+<topicref href="GUID-69B46D92-8D07-5B42-B603-3F725977AA4A.dita"
+id="GUID-7BF14E16-259C-4C87-A7A6-371FFE956709"></topicref>
+<topicref href="GUID-45E1953A-DEFB-5E48-AC96-443A3234F913.dita"
+id="GUID-52D9A931-CB78-4EDC-8503-807A0142CC4F"></topicref>
+<topicref href="GUID-0B5DB521-831C-5016-BD38-EC7E86F41513.dita"
+id="GUID-C1712F8C-603D-4927-9C58-B9BD56FC8308"></topicref>
+</topicref>
+<topicref href="GUID-B01427FA-B857-532B-B2F3-BD90CA042233.dita"
+id="GUID-5C381BF6-D5CE-43F9-98FA-294DBBDCD892">
+<topicref href="GUID-F532D96F-7CB0-5CC7-9382-0CF44F7C0234.dita"
+id="GUID-5ED66C2B-8C91-464E-B125-DDDC40A8CAD3"></topicref>
+</topicref>
+<topicref href="GUID-2B026328-010F-5245-B3A1-6E8C97BA4BAE.dita"
+id="GUID-82F422B5-A95A-42A5-B8E0-984F7F20E34D">
+<topicref href="GUID-6A78F618-09A9-56A7-8C58-98C353BF0788.dita"
+id="GUID-0D64ACCA-757E-4DB2-85A4-BBB745D7266F"></topicref>
+<topicref href="GUID-9EF1B1D2-7048-5198-8BC2-3FC960F073E4.dita"
+id="GUID-113AE69B-D40A-46F2-B55C-2AC17E1263BB">
+<topicref href="GUID-6F6AEFB5-4D0E-5324-A3CD-1E533002DB45.dita"
+id="GUID-10CE84BD-28E3-4E8B-8BCF-6BEC0C8FD096"></topicref>
+<topicref href="GUID-19450648-4400-57A3-95FB-FC8AE73CD0A8.dita"
+id="GUID-62FA5F13-F352-48B3-9E77-36F893191DFF"></topicref>
+</topicref>
+<topicref href="GUID-3A42464E-CAA2-5A8C-B52F-2A6B1D095544.dita"
+id="GUID-87FF4D87-2C6D-4D06-9C54-B9D80672F3E5">
+<topicref href="GUID-28D13F63-9D72-5D70-BE81-3B4E54B3A8C1.dita"
+id="GUID-5057F8ED-358D-4F5D-90E3-7CB751B687B6"></topicref>
+<topicref href="GUID-81BE3473-E3E4-55F1-897F-635A197AF1DF.dita"
+id="GUID-39A0F2E3-8482-4FE4-8F51-D64E358B818B"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-D5987006-A871-5F4E-AEA0-5A3B092D996A.dita"
+id="GUID-D6AAB104-9E4A-4A93-AE32-E015C6620934">
+<topicref href="GUID-8A678AE5-A133-58EA-A4DD-B5BFC94D3AEA.dita"
+id="GUID-8E93B127-E36C-4201-A2FF-74E5722C5944"></topicref>
+<topicref href="GUID-6822E7FA-D055-5693-8872-8D0E8554A734.dita"
+id="GUID-4C2BBC43-838D-4C29-AAB0-E46A918CC1A3"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-CAC4849E-5989-4F8B-9BBE-E64A431F5BCF">
+<topicref href="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita"
+id="GUID-E990AC74-C34B-4572-B1CE-742EDE9C8CD4">
+<topicgroup id="GUID-DE6234C5-06B7-4BA8-ACDA-957AEAC5EAB5">
+<topicref href="GUID-7495B1C8-38B5-5A09-8231-25B3BBC09F51.dita"
+id="GUID-F1DEE648-991F-420A-A823-A2FD54F0FEE9">
+<topicref
+href="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-3-1.dita"
+id="GUID-85BBB98A-5950-470A-900E-5A6D27BBE7BA"></topicref>
+<topicref href="GUID-0CA63AEB-9A80-51C6-AE7F-E747D6B3B789.dita"
+id="GUID-1319B317-8B81-4D4C-A9B7-D2FC003C9419">
+<topicref
+href="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-3-1.dita"
+id="GUID-478D4DF2-37D0-40B0-9355-193B34DD078A"></topicref>
+<topicref href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"
+id="GUID-2D144B62-DE91-4506-BACD-B427A6381DD0"></topicref>
+<topicref href="GUID-1568493D-0384-5FBD-816B-60A4817CEF0C.dita"
+id="GUID-31055F33-53CB-4255-AF68-17005263F63D"></topicref>
+<topicref href="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita"
+id="GUID-F6E6FDB6-DB24-457F-A70E-B9E1AD45AAC0"></topicref>
+<topicref href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita"
+id="GUID-FA55041B-E2C2-40B3-85E5-700B627B9641"></topicref>
+<topicref href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita"
+id="GUID-7612D31F-689B-4250-8600-6F3F05E33A5B"></topicref>
+<topicref href="GUID-27C3F32C-4B66-539A-8561-EF442E0F0A77.dita"
+id="GUID-A2856F64-5AF7-4C8B-BA90-D056F3D9EC8F"></topicref>
+<topicref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita"
+id="GUID-DE828EC5-A315-4B0D-8773-37B91CFA4998"></topicref>
+<topicref href="GUID-6F716E31-490E-5CA1-871A-D8D1661E3078.dita"
+id="GUID-512E4BF7-B4B6-4AD0-B14E-CE2922D1F488"></topicref>
+<topicref href="GUID-D01C4682-619E-501E-8992-9F7FA35D7682.dita"
+id="GUID-787934DC-8532-48EC-8239-C342E5C632E2"></topicref>
+<topicref href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita"
+id="GUID-749940A4-3D5A-4672-89DE-3174CCEE612D"></topicref>
+<topicref href="GUID-910780A3-D6AB-5EE2-966A-5F228AC5804F.dita"
+id="GUID-A3DBB4BA-B968-4FB9-B762-E9E88009CFED"></topicref>
+<topicref href="GUID-F2489DE2-18E2-5C5B-A174-49B5B7A64A7C.dita"
+id="GUID-975BAF65-9A0F-47F0-91F4-E59D0E1E684D"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-B8908163-3539-4602-AAD8-3E1AD46D2ACD">
+<topicref href="GUID-45A03C42-652C-59BD-9A21-6346A96310DB.dita"
+id="GUID-1ED8B559-96BF-40EC-B22E-D122BF8152BA">
+<topicref href="GUID-5B63D14D-007D-566F-A065-1A25FE4B97A3.dita"
+id="GUID-F420591E-C1A9-43E7-A360-C747290739CB">
+<topicref href="GUID-D14CD452-BFCE-5EBA-B73B-61AA045D23E4.dita"
+id="GUID-76FE6C65-5611-4761-9B9C-0FB06E4BD2D2"></topicref>
+<topicref href="GUID-B0D76734-1DB7-5465-91AE-BB3521599A75.dita"
+id="GUID-00B6B501-A92B-4C20-8329-6B7ED0B300F2"></topicref>
+<topicref href="GUID-132DBA2F-B913-5565-9720-015777630C22.dita"
+id="GUID-B219F55D-5934-4EDA-AA44-B6E9A79E8588">
+<topicref href="GUID-BCB0E50F-B22E-5964-BB68-BEE1870D9C79.dita"
+id="GUID-44A37BA3-0798-44CC-B69F-CA50DEF49F65"></topicref>
+<topicref href="GUID-2022F702-9899-5798-8932-D70119C7177D.dita"
+id="GUID-21F2D380-D475-400D-85BD-D86AF511B0A5"></topicref>
+<topicref href="GUID-E4A950EA-5671-5755-B3EF-5D6B90E19AE6.dita"
+id="GUID-3CC51F83-2F51-441C-8FB1-4D98BC156758"></topicref>
+<topicref href="GUID-BE65B3A7-04E8-5406-B46A-09E2608E0F1F.dita"
+id="GUID-0B5F958D-3E36-4FBB-A48E-CE3D435013FD"></topicref>
+<topicref href="GUID-55ECBCF5-FC29-5A4A-A3C6-1CB1C0D562CE.dita"
+id="GUID-64F0FE1E-D052-4D79-82C6-71C3F9BC1A7E"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-4E4E4BED-6DCE-4835-8CAC-08AAECF4A5C7">
+<topicref href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita"
+id="GUID-52272566-7A27-44CA-B3FA-051000F13398">
+<topicref href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"
+id="GUID-0CE5A078-EE99-4402-A6A0-2B9BB11A714E"></topicref>
+<topicref href="GUID-30BB4435-C95C-5016-A86B-4E98311F9FE2.dita"
+id="GUID-BD9390B5-BF22-4973-8432-D5EC03F86A98">
+<topicref href="GUID-C9A1CC1E-2398-5887-8C64-7B8EE0B22022.dita"
+id="GUID-3E182CE9-DBB4-47CA-B14A-75AE953A4811"></topicref>
+</topicref>
+<topicref href="GUID-50BA6AEB-E968-5CCA-8F5D-A65969263D90.dita"
+id="GUID-A240D5EC-AC70-4D4E-AF2B-6119A5260815">
+<topicref href="GUID-CBC57511-7F28-596A-9763-5674EB41BCAC.dita"
+id="GUID-B0E9D363-6A3D-408E-932F-94126CE9824D"></topicref>
+<topicref href="GUID-53E5C9EA-0A38-54A1-AE24-95B71BFFB4B5.dita"
+id="GUID-A2F65F83-F286-49CE-896B-0945AF3FDF34"></topicref>
+<topicref href="GUID-E3BE62B2-9625-5F79-84A4-0248A3F36225.dita"
+id="GUID-4E9DAFB3-74F8-48F8-8A8F-AB7969A771E2"></topicref>
+<topicref href="GUID-1C683226-C142-5C7B-BD20-060058352B08.dita"
+id="GUID-557CC79A-53A6-49FE-979A-D47469094CC1"></topicref>
+<topicref href="GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita"
+id="GUID-A6FBB504-F1D6-40CD-8101-EFD467ED562B"></topicref>
+<topicref href="GUID-998DCA78-2488-5D6D-B5B3-D86C52F32823.dita"
+id="GUID-57B62170-A169-4B09-964F-FA1B6742D0ED"></topicref>
+<topicref href="GUID-E87018CD-01B4-5886-87FC-CD25EE90587D.dita"
+id="GUID-A5FC532E-BF9B-43FA-AFCF-59654DB257A2"></topicref>
+<topicref href="GUID-277BD68B-70CF-5798-A77D-E2B901FA613B.dita"
+id="GUID-8AC308F7-1064-4DF0-A608-CA9CAE68C413"></topicref>
+</topicref>
+<topicref href="GUID-C0414BDC-06FD-5E3C-93F7-DD3467CAA75E.dita"
+id="GUID-25DEDEF9-1ACE-4B4E-8602-1C06CC941CA4">
+<topicref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita"
+id="GUID-8454EA55-5CC6-4650-9CFB-C932EE082C99"></topicref>
+<topicref href="GUID-EACA05F0-7291-535C-82BC-16DF3AAA417E.dita"
+id="GUID-079C20C1-F72B-4039-A7D5-981D54486D2A"></topicref>
+<topicref href="GUID-B10B6363-9FB9-562C-8DCA-42FEF8D5413B.dita"
+id="GUID-DBB5276B-E470-43C0-B4CA-11B0D392E118">
+<topicref href="GUID-B3248893-9944-5544-84EA-0F4D40992152.dita"
+id="GUID-36B186B2-689F-4354-9D6E-DD6841E19F38"></topicref>
+<topicref href="GUID-8579426F-C443-558B-9380-FED79D4BA8F4.dita"
+id="GUID-3C72FE5E-E35D-4233-854A-48C1CFD7104E"></topicref>
+<topicref href="GUID-F5B0FE6A-6DE6-56B5-89A5-684CD2602B40.dita"
+id="GUID-373ADFAB-0905-4F1D-89F4-E46C06329DCC"></topicref>
+<topicref href="GUID-785B2F0B-E7E6-5DAE-98F1-6C32BED25964.dita"
+id="GUID-107585FA-275E-468B-B1A5-0918CE92D238"></topicref>
+<topicref href="GUID-898FF7CE-969C-5FE1-9346-34BCBE637A57.dita"
+id="GUID-B145D0DA-75A1-4DA4-9E31-3461234D5068"></topicref>
+<topicref href="GUID-0747B7D8-86B4-51DE-BC71-7FACE61EB5E2.dita"
+id="GUID-35821839-96B5-4C8A-9528-A0A691E344DE"></topicref>
+<topicref href="GUID-84921F68-9449-564A-8527-203FA84AF2AF.dita"
+id="GUID-44BDB7EF-9CE5-46CD-BF3E-18A4B8F8F423"></topicref>
+<topicref href="GUID-24A149FA-B82A-53A2-83E6-4F625D7041D7.dita"
+id="GUID-0AF3044E-1BC3-45C5-A209-6184ECA3CB5E"></topicref>
+<topicref href="GUID-A278C1A2-0724-5800-B353-46809C44C142.dita"
+id="GUID-72942C08-31C1-4EFD-9382-7B75970B2C0A"></topicref>
+<topicref href="GUID-79B699F5-5EDE-5561-A385-19ED02248398.dita"
+id="GUID-90123358-72A5-483E-8EA0-29AAD1114183"></topicref>
+</topicref>
+<topicref href="GUID-4F4B97FD-B0C7-5FDD-AC50-9611B240A11E.dita"
+id="GUID-2C2CA81D-7CF9-40A0-AA83-9A21B40E5ED2">
+<topicref href="GUID-7BE83158-B818-57E4-9A8C-43E5D2C84687.dita"
+id="GUID-9E856632-8E81-434F-8E37-1C6C2D18D0C7"></topicref>
+<topicref href="GUID-FCBEE38E-FA6D-5C09-8B17-F18EF3E2E826.dita"
+id="GUID-F745716A-650D-4762-9A14-2D820856CE21"></topicref>
+<topicref href="GUID-47419CFB-163D-5A4E-8A00-C73773353BDF.dita"
+id="GUID-A77A240F-7961-48C2-94F8-5ABA915AE675"></topicref>
+<topicref href="GUID-580471E3-7DFD-5325-A8B9-B3E7FABF872D.dita"
+id="GUID-D19819BA-8CDB-4A44-BA3E-EE74D9B1F7F4"></topicref>
+</topicref>
+<topicref href="GUID-FACE863C-8667-5726-B668-C39AA0FBFC68.dita"
+id="GUID-2FF4D061-DA70-4584-9503-ADC72723A659">
+<topicref href="GUID-12CB6E0E-69CD-51A6-8966-3621CB26E1CD.dita"
+id="GUID-A949B284-9DAD-4D3B-B8BD-8D3868498603"></topicref>
+<topicref href="GUID-118C8F84-2BB3-5F60-B6AB-22F0F1B3349E.dita"
+id="GUID-AFE37B1C-8178-4763-8DF8-27B38058A98A"></topicref>
+<topicref href="GUID-2052461A-DF29-5DD0-A7D2-B46A50EAD762.dita"
+id="GUID-731CD5A6-1468-4E2A-B2EB-EE7F0589F1F7"></topicref>
+<topicref href="GUID-39897348-B27A-5C02-B65C-C26D122BCAE4.dita"
+id="GUID-A3A31BD6-7DC5-4F02-B333-9335CC7AF6CE"></topicref>
+<topicref href="GUID-05DA872F-F70E-5085-8AA9-12B6A0B71917.dita"
+id="GUID-334313A0-CE99-40DE-8910-8982DE5043A5"></topicref>
+</topicref>
+<topicref href="GUID-5544728C-A53D-57F0-B8D8-F7B694C8B5CA.dita"
+id="GUID-5E304084-2551-4E5B-B85B-F2129C395003">
+<topicref href="GUID-120163D6-2E49-5D91-A746-2C8C4C944461.dita"
+id="GUID-267A36F1-A527-4415-AF13-0B0A5CBF27BE"></topicref>
+<topicref href="GUID-F40E34F4-5B8B-523E-82B6-7717D8FD26AB.dita"
+id="GUID-11488629-86DB-40D8-B560-21AFB2AB41EE"></topicref>
+<topicref href="GUID-BDC03973-45B0-54BD-99D1-298F4F59DB95.dita"
+id="GUID-F1620BA9-298E-43F4-AACD-3DB3F26EFEA4"></topicref>
+</topicref>
+<topicref href="GUID-766F8505-4536-57A6-A788-EFCD8CCF875F.dita"
+id="GUID-57858F8E-94FE-4823-9EBA-0C899299AB39">
+<topicref href="GUID-C61B979A-921A-5756-8D7E-691C3DDD3437.dita"
+id="GUID-9D8C228A-54C4-443F-AEB8-A2D54A169CDF"></topicref>
+<topicref href="GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D.dita"
+id="GUID-05AA7473-67AB-4FEF-BE39-000B574685EA"></topicref>
+<topicref href="GUID-EFA822E0-BE80-5EB8-82E5-1659BDB1BDD9.dita"
+id="GUID-5DA7C291-D03A-4F55-88AB-AACE282BF81E"></topicref>
+<topicref href="GUID-05FDC28B-F033-5FDC-8F41-71BD212C27E2.dita"
+id="GUID-954F8E00-DCB6-4035-8ABF-472BF1AE4AF3"></topicref>
+<topicref href="GUID-FF28B015-DFC5-5656-9066-FBCCBA2818AF.dita"
+id="GUID-7921D43C-7D81-4FF6-839C-95CC790321BF"></topicref>
+<topicref href="GUID-71F33868-0C59-5CE8-95BD-304066DB8946.dita"
+id="GUID-41E177FD-71EF-4F6A-B569-5B3BE9362B7F"></topicref>
+<topicref href="GUID-5F3B814F-30B2-5325-A83F-A48ACCF095EB.dita"
+id="GUID-4745320D-2F46-41C9-A120-2D86061EB61D"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-3FAB9077-3EC3-5539-B391-D11456362513.dita"
+id="GUID-6D5059C8-CF48-40CE-8803-6F3CBED2E07E">
+<topicref href="GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita"
+id="GUID-1A569ECB-B785-4968-A67A-E943BC4358EC"></topicref>
+<topicref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita"
+id="GUID-37C128EC-61B1-4522-9D79-AE5840B59A4D">
+<topicref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"
+id="GUID-6166A431-A6A8-49F5-BE48-4733C481F014"></topicref>
+<topicref href="GUID-576BA55E-3CD3-5867-B55D-60CE137595F2.dita"
+id="GUID-52694B17-BE99-44E4-8770-3635065678DE"></topicref>
+<topicref href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita"
+id="GUID-4DC4C093-591A-4684-AF23-547CBCF164E3"></topicref>
+<topicref href="GUID-C7FB54C4-43C9-562A-A18C-2818AF624774.dita"
+id="GUID-293A7B7C-0E87-4C50-9AEE-A4AAEED245BA"></topicref>
+<topicref href="GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita"
+id="GUID-35472DA3-10CD-450C-A92D-51AA505ED8CF"></topicref>
+<topicref href="GUID-A9EA16CE-2F80-5344-827D-0C2ED5812788.dita"
+id="GUID-4CB10FB3-5525-4F11-AE0E-471BDDA30D7A"></topicref>
+<topicref href="GUID-2F987147-1435-55F1-B61C-8413C4AD8424.dita"
+id="GUID-6857343A-33E7-4103-89C3-03D486C78A32"></topicref>
+<topicref href="GUID-1A8B20B3-CA6D-58A6-9DA0-8EB3965EDE7A.dita"
+id="GUID-D1620DD4-B107-4E81-879A-DDB1973EC55F"></topicref>
+</topicref>
+<topicref href="GUID-E9C608C0-AC22-5267-BEC4-207C9758F968.dita"
+id="GUID-208575FB-D83F-4C92-B3F8-6A59309FE3B9">
+<topicref href="GUID-5EAED550-5FFC-54A6-BB4A-720975B127B8.dita"
+id="GUID-D69727BE-1CC1-4D61-9694-9893D3AF8158"></topicref>
+<topicref href="GUID-D8CC5B36-41DA-5989-8FA8-3F56306146A3.dita"
+id="GUID-08FF22A9-3A15-4B45-935B-37173732CB77"></topicref>
+<topicref href="GUID-A0E75BD9-E3C6-5D28-B53C-B76260F63B89.dita"
+id="GUID-BB0E1DC4-924F-4FFC-883E-E2DCCB2849D3">
+<topicref href="GUID-B0F9CDEC-A953-51D0-B7A3-8B341A7C784A.dita"
+id="GUID-2BF24C0F-FC03-4F02-A6F2-A257987C2189"></topicref>
+<topicref href="GUID-2D93660B-8206-5D20-85F5-6FFCF4549127.dita"
+id="GUID-F16707C2-9112-4D5E-942E-7F2E1FD266F5"></topicref>
+<topicref href="GUID-DF1C3E6D-9133-530B-B318-66F0E6CDB3AD.dita"
+id="GUID-E0306DFE-1300-4F2B-B067-52E5AE3B00FD"></topicref>
+</topicref>
+<topicref href="GUID-A0F56EA1-49BA-5306-9ADC-A0647270F720.dita"
+id="GUID-6CEB31AA-71AB-4AAF-B447-EDFEAC07413C">
+<topicref href="GUID-983C5DB9-85EF-541E-B494-19E3E617914A.dita"
+id="GUID-2B9DEFE1-EC72-4E1D-A425-D0CD04B3AB7E"></topicref>
+<topicref href="GUID-95448841-5E5B-54C4-85A7-DCE6D078E036.dita"
+id="GUID-FE6FF271-F533-4F27-A8B3-8508678AC763"></topicref>
+</topicref>
+<topicref href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita"
+id="GUID-39ACB4B4-B018-45C1-A1C3-7979BCF4D353">
+<topicref href="GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01.dita"
+id="GUID-92236966-0423-4102-AC1C-1636A97A462A"></topicref>
+<topicref href="GUID-22F74DA4-2CAB-5CA9-877C-0FC2F891E259.dita"
+id="GUID-CB0EA3C4-7F09-4279-9E56-6B09D73401E0"></topicref>
+<topicref href="GUID-9C6D94B2-8F03-5A4D-9AEC-7C3FEA0E1ACA.dita"
+id="GUID-6E4077FB-BC35-41E1-9A1F-F164A334D035"></topicref>
+</topicref>
+<topicref href="GUID-EEA5F7C6-8916-5FB9-8367-002F41A576D4.dita"
+id="GUID-08D0013E-C53A-4C31-ADB9-7FB666EE76A6"></topicref>
+<topicref href="GUID-6EE0CB66-A759-5E0C-884D-90895F35F267.dita"
+id="GUID-415C64A0-D665-4D03-879D-7B1370267411">
+<topicref href="GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B.dita"
+id="GUID-D2A2C54B-8F94-41F9-A16A-238FCCA15F49"></topicref>
+<topicref href="GUID-442F2E69-87B5-54E7-B62A-70B742432372.dita"
+id="GUID-B76ECD04-436D-4AD2-9CDE-8DB959A2868A"></topicref>
+</topicref>
+<topicref href="GUID-F8D12BC4-82C6-59CD-93C9-506FF872C622.dita"
+id="GUID-E0CDE87E-5F53-4EED-B3E0-3C3753DFCD53">
+<topicref href="GUID-1824B323-AAA8-5403-A4CF-D1F530CBDAF5.dita"
+id="GUID-99743823-03EA-4D3D-AD2E-0941C6EC3A3B"></topicref>
+<topicref href="GUID-34E19A27-F61D-5190-8709-151523CB0BE1.dita"
+id="GUID-6F5D1554-0C9E-458C-8219-C27C312E808D"></topicref>
+<topicref href="GUID-FDF3546D-1A16-5F71-B9E4-8DA0F02CC7A3.dita"
+id="GUID-95958538-D34A-4E14-920A-4F52D9F4A318"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-D7211372-9411-5A18-88F0-615F4983A2E0.dita"
+id="GUID-BD0348F1-94D1-49A8-9424-3EFB379E6634">
+<topicref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita"
+id="GUID-3B09794D-3C47-4A7F-83B0-6A1B50A1B32F"></topicref>
+<topicref href="GUID-5B6BF7FA-21D2-5A63-8217-6D36F6B8C033.dita"
+id="GUID-0AF5527E-923A-47A4-AFCE-C11DB70A12BD">
+<topicref href="GUID-74CBD580-01F8-5C68-A5FD-6331AAE7DF62.dita"
+id="GUID-DAE26C16-444C-4550-AC3A-79FECCC8FD7B"></topicref>
+<topicref href="GUID-A928E956-9800-5277-B0D3-34BBB2707AE1.dita"
+id="GUID-6CC1D950-0E35-42CE-982C-020DF5336E3B"></topicref>
+<topicref href="GUID-1F68D172-1090-5930-BD7B-AE7276667104.dita"
+id="GUID-D716E7BD-B32A-4FD7-A19A-67FF6AFCE62C"></topicref>
+<topicref href="GUID-E79D47D6-3FF2-5858-B092-29D39A1CA2B6.dita"
+id="GUID-D191CA3C-C86B-493E-9620-AB5CE6B13CB0"></topicref>
+<topicref href="GUID-88E610C1-6662-5A12-B950-B695A7EB776C.dita"
+id="GUID-892780B7-93AE-493D-A32D-538E124C1675"></topicref>
+<topicref href="GUID-F535B464-3125-549B-9130-E59B64C4B865.dita"
+id="GUID-C60C99E5-4C4E-40CB-A4C6-8F587BD03155"></topicref>
+</topicref>
+<topicref href="GUID-79CE15C5-B595-5336-AE87-DE92990F6D47.dita"
+id="GUID-9A12E1AF-4BCA-4DBE-94DC-4CD1FBC70723">
+<topicref href="GUID-18D92465-3F62-55CF-8229-EE811FD5F568.dita"
+id="GUID-4F850C20-C83C-404E-967F-5BB2B02C8C69"></topicref>
+<topicref href="GUID-3ABE9420-2668-507E-B857-E62DC50654BD.dita"
+id="GUID-DD5BE78A-B66B-482E-8ACF-C39EA7691260"></topicref>
+<topicref href="GUID-2C767F68-2150-55C1-B801-AB6EB58FD97C.dita"
+id="GUID-75CAB7FE-1F77-4F35-9707-CA65FC36F30B"></topicref>
+<topicref href="GUID-3B0BF8FF-88AB-5BF4-9F04-5F82A3998699.dita"
+id="GUID-C841A434-C8AF-458B-AB60-4214C2017928"></topicref>
+<topicref href="GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1.dita"
+id="GUID-7A969D76-BE5F-49DC-BEEC-6C8E01527E45"></topicref>
+<topicref href="GUID-38A656D3-F830-5E26-8167-3638B6BC5DF6.dita"
+id="GUID-9EFC26D7-909E-4FD5-A1C8-6DA014536F37"></topicref>
+<topicref href="GUID-A8EADD99-561C-5077-834F-DFC2CC4AE6E2.dita"
+id="GUID-CE2FDA18-6ED1-473E-B352-ED35A22C48D6"></topicref>
+</topicref>
+<topicref href="GUID-53112730-5871-5920-8861-D2F6BF1595BC.dita"
+id="GUID-689CFA6D-9AC4-4C20-887E-DF89CEFC19A3">
+<topicref href="GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E.dita"
+id="GUID-A1B2FC2C-FE4A-49D4-8E0F-5258F06AC2EA"></topicref>
+<topicref href="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita"
+id="GUID-29D7DD81-4131-4689-88E1-6272E4501D0F"></topicref>
+<topicref href="GUID-535954FD-2501-5C80-AD86-AC73A86B18B5.dita"
+id="GUID-9B007B0A-6AFF-4B36-9F18-245E6523D79C"></topicref>
+<topicref href="GUID-386FD0B9-D502-577C-BED2-5F31D9CA67CC.dita"
+id="GUID-FFF2DB67-BFE9-4ABB-A91D-9DA3F893623D"></topicref>
+</topicref>
+<topicref href="GUID-C1AA34CB-D63D-57E3-87F6-28AD22537D21.dita"
+id="GUID-D2F7282E-F554-43EB-9A24-E0D6371C9564">
+<topicref href="GUID-50196C0E-39AF-5E94-888B-9901C934CCE7.dita"
+id="GUID-9EA90FD1-C4E3-45FB-8CB1-E42D5C73BC82"></topicref>
+<topicref href="GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5.dita"
+id="GUID-A85387A6-0F9D-4305-A439-854FF3FF76A8"></topicref>
+<topicref href="GUID-38B11AE2-DB91-517F-BFE4-E72ACE96EDF5.dita"
+id="GUID-77A2F6A8-19A3-41A8-8FD2-B7B003FA3B39"></topicref>
+<topicref href="GUID-36718217-C9F7-5ACF-8DE7-7D83FBF435DB.dita"
+id="GUID-770DB5C8-6604-4F32-9FFD-25285BC39825"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6BF09365-09D7-5596-B802-1BE1757F51F6.dita"
+id="GUID-1B37633C-E313-41F2-BEFE-67428B10AD69">
+<topicref href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita"
+id="GUID-6833DD1B-F7FA-48B3-8BCB-6CF6E7558D10"></topicref>
+<topicref href="GUID-3C552587-B983-5725-898D-81CC31458DE8.dita"
+id="GUID-5D86D987-65CA-4A22-B348-1583267EBB01"></topicref>
+<topicref href="GUID-72151EF7-52C0-5DF4-AC69-07087F31D9E8.dita"
+id="GUID-F3F8B4B9-EDCE-4365-9DBC-58746385E283"></topicref>
+<topicref href="GUID-5CF5B8D6-C477-55D2-A036-2C090FA41D33.dita"
+id="GUID-C3813E19-E7A8-4872-9D23-5FAB430D1111"></topicref>
+<topicref href="GUID-2488FA07-BCAB-55DC-8724-C1C3C0DEC0AD.dita"
+id="GUID-A895D62E-F77B-40E0-B771-3F3D5B41AE3D"></topicref>
+<topicref href="GUID-E3210353-EEC2-56CB-AD75-309E5DCDEDD1.dita"
+id="GUID-340DE573-D1CB-4B7B-9BEC-01736AB55A2D"></topicref>
+<topicref href="GUID-3690B530-BFFC-554E-9692-3D7C4C0BC803.dita"
+id="GUID-039B765C-6032-4FE5-891B-A5F749AED8CC"></topicref>
+<topicref href="GUID-7CE86E8C-0187-5679-B87D-71ABDE479048.dita"
+id="GUID-1A4F1D4C-F6EC-4BDC-8F61-1F0FF42C897B"></topicref>
+<topicref href="GUID-8A2029C7-1258-5B12-B217-DE3EE4340B72.dita"
+id="GUID-C15CDE89-CEF2-454C-9952-F13677EE9A49"></topicref>
+<topicref href="GUID-DA4160B0-7B63-5C84-B3C6-190100530EDE.dita"
+id="GUID-12D5C650-474C-434F-A871-AE1DBE3F9C99"></topicref>
+<topicref href="GUID-31EB55B1-5A52-5ED1-92D3-C4B0222749B3.dita"
+id="GUID-6C10E339-6982-4241-9693-30D62B326798"></topicref>
+<topicref href="GUID-2277BB1C-C04D-56C8-9B9B-FBC2EDCA9B07.dita"
+id="GUID-3AB514EE-078A-46FA-B2CC-60BEC02F3170"></topicref>
+<topicref href="GUID-EB6A14CF-05DA-5EAD-AB68-F6511907DF05.dita"
+id="GUID-47B7C982-721E-4F80-9DA0-A9CA6C6F38D1"></topicref>
+<topicref href="GUID-C1BCBA03-4E64-5188-8D33-25B4121C1582.dita"
+id="GUID-E2262D17-4D74-415A-B958-CAD116B0948A"></topicref>
+<topicref href="GUID-82762D6D-7EF5-5061-9393-BBDCCC7212CD.dita"
+id="GUID-60F4893E-EEFC-464F-A34D-90E02CAAA7C4"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-868D5B32-1CC4-506E-9C49-C86428B9A50F.dita"
+id="GUID-B90FFE6A-9602-4B22-991B-18CB6C20AF61">
+<topicref href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"
+id="GUID-1E0488D1-969F-4702-B737-8FDF7B08AB3E"></topicref>
+<topicref href="GUID-25C3CDBE-8D53-5F1A-A4CA-993E1151AD93.dita"
+id="GUID-D22BA71F-B8E8-49A8-81DE-DD0DB384DA67">
+<topicref href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita"
+id="GUID-EF5D3C30-274A-4342-9A41-D272F375B558"></topicref>
+</topicref>
+<topicref href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita"
+id="GUID-B0247654-672C-4B82-8BFF-ECA50E756548"></topicref>
+<topicref href="GUID-C6D3827F-8F73-593E-A339-B510EEB9771F.dita"
+id="GUID-911C3AE6-937B-458C-9252-C12DB05CC7D5">
+<topicref href="GUID-A64625D4-F101-5DB7-896B-F91A21BABE01.dita"
+id="GUID-FB9F3EE2-46A9-42D0-B752-59D1906B6F7B"></topicref>
+<topicref href="GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74.dita"
+id="GUID-412E39C5-A6F8-4BE2-84A8-3B6A65C4E262"></topicref>
+<topicref href="GUID-831F9AA3-0209-53DC-96C4-04157F22870C.dita"
+id="GUID-46DE94B6-7F4C-431A-8B6E-85F09721E022">
+<topicref href="GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E.dita"
+id="GUID-9438AF63-6C28-4A53-9541-871D3EF0876E"></topicref>
+<topicref href="GUID-43CA02E7-0101-5824-B91B-E15EE20C829A.dita"
+id="GUID-20A486B6-9E5C-48A1-81AF-D07063A631C8"></topicref>
+<topicref href="GUID-49A3419F-D20A-5C5D-B2FF-51724EF37704.dita"
+id="GUID-C7284EDA-EF79-4211-906B-D02448661D6B"></topicref>
+<topicref href="GUID-C2FAEBB2-4A1A-5BB0-9670-4801525CBC6A.dita"
+id="GUID-CA5D5859-365D-41B3-A93C-EC2D754A525F"></topicref>
+<topicref href="GUID-B994E6F7-228A-5433-B87F-91857C5D93D6.dita"
+id="GUID-0EC25BAD-FC68-46B4-874C-F62BAF0F9945"></topicref>
+<topicref href="GUID-4FC23DB7-4758-5DA4-81FF-0DAB169E2757.dita"
+id="GUID-A71615E7-D596-4BDF-BF09-9A1656923DD1"></topicref>
+<topicref href="GUID-2A2920E0-5D40-5358-BC0C-8572CEFE078C.dita"
+id="GUID-1D4BFA29-221A-4C55-A25E-139546DE6028"></topicref>
+<topicref href="GUID-126FCCCC-0E7D-59AE-959A-2F94A7319C4B.dita"
+id="GUID-44A13F5A-85E0-4890-B8A1-2722EB7009CA"></topicref>
+<topicref href="GUID-ACCCB148-DAF9-59EC-B585-8EF632B9BF04.dita"
+id="GUID-545F34CE-BA74-45A2-98EB-7B637CAE9176"></topicref>
+<topicref href="GUID-B7E978C1-45CA-554C-8028-D901B97BA2E0.dita"
+id="GUID-FC4AFF4A-78A0-4867-8F6A-D1A7DB5AE0EB"></topicref>
+<topicref href="GUID-AF5A75D7-0687-546C-87B2-0B7DF7D33217.dita"
+id="GUID-EEDE0ED3-F64F-49C5-8983-491804AA5132"></topicref>
+</topicref>
+<topicref href="GUID-481D4689-C4DA-50FB-9529-081EB9BD7901.dita"
+id="GUID-1553A073-3E8E-46F9-91AE-2FD3E366B156">
+<topicref href="GUID-EC33FF66-F15E-5316-8828-C6CFD57DB9E5.dita"
+id="GUID-D28A4F92-2009-4744-A028-213577D38C56"></topicref>
+<topicref href="GUID-321F406B-2C77-5F2B-9FDA-F25726188CE2.dita"
+id="GUID-6B8FE02E-7E3E-41CF-80A6-33D76665A22D"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-582CAA4A-1240-5138-983D-D9C6EEAF5566.dita"
+id="GUID-414A3A4F-E3EA-42BC-B1B2-782D6C602910">
+<topicref href="GUID-200647EF-B9CA-5EEA-8760-71A9C1B063CE.dita"
+id="GUID-666DC280-DE07-42DE-A68C-ACD42813ED84"></topicref>
+<topicref href="GUID-B38EBDBA-2A30-5595-9639-6AE58C530DCB.dita"
+id="GUID-E88D29EB-2BB5-4FD1-8F78-B04DFF19E3C0"></topicref>
+<topicref href="GUID-1D35F788-A470-5269-93E0-7C33A0013489.dita"
+id="GUID-232CFFE4-33C8-4656-B8ED-135CE8330E8E"></topicref>
+<topicref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita"
+id="GUID-41737FC8-92AD-4B59-B4D5-6FE84D264610"></topicref>
+<topicref href="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita"
+id="GUID-FA0CB62C-6A4F-4F04-976D-11C31DC1DB63"></topicref>
+<topicref href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita"
+id="GUID-1660D897-B700-4A1C-A4AB-7FC3B31569BB"></topicref>
+<topicref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita"
+id="GUID-783793C8-15EF-45A1-B07C-7B8FA910F8BE"></topicref>
+<topicref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita"
+id="GUID-84442FF7-087A-43F2-9CCD-069477074F69"></topicref>
+<topicref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita"
+id="GUID-F20E39D0-A8B3-4F7D-B988-8925F95AFE9D"></topicref>
+<topicref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita"
+id="GUID-4600EFED-E079-4DBD-ACF3-76B21BE55DC3"></topicref>
+<topicref href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita"
+id="GUID-E35B0D82-C7DA-423D-AC67-E0912C20A651"></topicref>
+<topicref href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita"
+id="GUID-98ACA9D6-A1B7-4466-ABCA-9B90D8B45E7A"></topicref>
+</topicref>
+<topicref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita"
+id="GUID-306162A4-8D3A-490A-AE4A-ED50E16A8768">
+<topicref href="GUID-E0D622CE-5D10-5C6E-9998-545C016575F0.dita"
+id="GUID-6E364461-8A49-4762-A9D1-BE07DC343273"></topicref>
+<topicref href="GUID-5FB2141F-8B2F-5DAE-8FDF-58D7351C5848.dita"
+id="GUID-7F0C7DAC-C5CC-4D1B-AEE3-E81B1CEC234C"></topicref>
+<topicref href="GUID-22B535FA-6C8A-5B39-9CD7-6E85A86B7C2C.dita"
+id="GUID-A8312005-12AC-428A-BE30-692302CAE282"></topicref>
+<topicref href="GUID-C67A7554-256C-5392-8309-A0138CC4EBF2.dita"
+id="GUID-9A947160-EE45-488E-B2D3-C4F86AAF0BE7"></topicref>
+<topicref href="GUID-189DCEF1-EBCD-5971-9D7C-109F0C910802.dita"
+id="GUID-EE14321B-4DD3-4208-B827-BD9D61DCBB39"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-02C9C31A-6563-59E4-BF46-129F4ED95087.dita"
+id="GUID-440D5603-5967-4F07-B240-265AF734D426">
+<topicref href="GUID-5CA62D99-15E2-5556-966F-CFC3FCE3B246.dita"
+id="GUID-971F6E3D-6F2C-40FA-9BD2-039B48C94D0E"></topicref>
+<topicref href="GUID-22A4F33C-4F93-572E-91CD-E93CD0B69B09.dita"
+id="GUID-E7DC1A06-10AE-479E-83A3-B31E01AFE28B">
+<topicref href="GUID-84AD87E9-B21A-52FC-B1E1-7287BA8A30D4.dita"
+id="GUID-A15394CB-6191-4412-BC65-5CBD54C97635"></topicref>
+</topicref>
+<topicref href="GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797.dita"
+id="GUID-5B9446F7-7574-47C6-946E-8894B087A3EE"></topicref>
+</topicref>
+<topicref href="GUID-6D28A0C6-7D1A-5C71-B61C-EE3F9E29DC5D.dita"
+id="GUID-63B8D796-D731-4F4E-8D4E-373D04D6BB3A">
+<topicref href="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita"
+id="GUID-B7179B40-75D4-473D-B826-6639409E5297"></topicref>
+<topicref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita"
+id="GUID-8BFD2E49-B70D-4284-965E-72313BE48E42"></topicref>
+<topicref href="GUID-AA5DEEB2-0B13-5FA8-8494-EC2F5C654FEF.dita"
+id="GUID-686D9464-3A4E-4096-A911-716A27F80AE1"></topicref>
+<topicref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita"
+id="GUID-C9EADAE2-7A97-43E3-AF2E-BE811F0A7099"></topicref>
+<topicref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita"
+id="GUID-6A96548F-5332-42FA-A305-8DB9B5DBB184"></topicref>
+<topicref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita"
+id="GUID-B8919844-063F-4D16-9A25-C509A1A69328"></topicref>
+<topicref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita"
+id="GUID-E4B32D87-7528-433F-BC98-CE46C10E40C3"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-A4F055D9-65D5-47D9-A552-4A70F6DE48ED">
+<topicref href="GUID-BE3B53A8-B06D-53C4-8FC0-85B3BA4F39EF.dita"
+id="GUID-F55AD901-E673-4C5A-9FB2-66B74C1517FD">
+<topicref href="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita"
+id="GUID-0384B59B-0EAF-41E4-8106-DC3BE7798330">
+<topicref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita"
+id="GUID-53731E85-F541-4D23-99B3-87495AB22303"></topicref>
+<topicref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita"
+id="GUID-68FB3FAD-E018-4C7D-AB87-B51E17E7A127"></topicref>
+</topicref>
+<topicref href="GUID-00631ED2-1B7F-5FC4-9E81-4B6DF7946631.dita"
+id="GUID-70B17D27-0AE8-4065-B666-95923154C359">
+<topicref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita"
+id="GUID-458D528A-4800-4791-9B5C-97FA83F6969E"></topicref>
+<topicref href="GUID-B82FBA26-6B34-4387-A5BC-758B74F37E5F.dita"
+id="GUID-842E7B84-465A-457C-BE65-70492BF7A9EC">
+<topicref href="GUID-335A4B77-20C4-52B9-88AA-58540269E321.dita"
+id="GUID-FA5D93F9-0CDE-4267-B9C4-5A2D03227B1A"></topicref>
+<topicref href="GUID-9B428B4E-83B7-5EE3-8D63-E2B0602D1D91.dita"
+id="GUID-A60D3F41-B0D0-4ED3-BA90-990D90B034DB"></topicref>
+<topicref href="GUID-CD8A3420-6C9B-5774-86FA-85CFE062C400.dita"
+id="GUID-E28C5263-07FC-4E9F-9B2F-F57146ED96BF"></topicref>
+<topicref href="GUID-62195532-3FD0-5A3B-90E6-D624C4A60594.dita"
+id="GUID-0451FEB7-D5B1-4FBB-91E9-9C2673EE14C2"></topicref>
+<topicref href="GUID-3987D040-27F7-5226-96AC-D578ECA4C0A2.dita"
+id="GUID-736B9C9E-6359-4959-95DA-ACB60DF1F758"></topicref>
+<topicref href="GUID-DA0F4990-DDC4-5B0A-A446-A3C8672DA95A.dita"
+id="GUID-F72F8F44-DC77-4DB6-9EB4-5795D8C571E3"></topicref>
+<topicref href="GUID-7811C33D-96D3-5001-B4D3-92BF44F39B2C.dita"
+id="GUID-9CD9EFC3-4D4F-48FF-B94B-DC254391F9A0"></topicref>
+<topicref href="GUID-20DDA21D-B5DE-5D24-9E75-69C68EAF1782.dita"
+id="GUID-3D3AD723-E44F-4586-A000-FCC250D1A154"></topicref>
+</topicref>
+<topicref href="GUID-A60C4549-9FAA-496A-B743-D395A461B61F.dita"
+id="GUID-DD3A2B4E-704B-4C65-B27F-806B37F13452">
+<topicref href="GUID-7BB38C3E-BEA9-545B-AEC2-5E9078D0B8A2.dita"
+id="GUID-3B37F9F3-F768-45A2-8E0D-3404D877D1AF"></topicref>
+<topicref href="GUID-8FDCABBB-AD6D-513D-9FBF-631DC1846D20.dita"
+id="GUID-A49A9A27-3839-4633-8C31-5DEE05C0047C"></topicref>
+<topicref href="GUID-710FADA2-7A6C-5D60-BCE5-8772071F2BD4.dita"
+id="GUID-1ECCA3BE-7A70-4FCF-AEEB-C9F5DE3F4B88"></topicref>
+<topicref href="GUID-3BDF7402-8AD6-57C7-849A-145E08EC7E86.dita"
+id="GUID-FA7A221F-2305-49E2-ABD3-58888F2B383F"></topicref>
+<topicref href="GUID-0F1D1BC4-C8FB-55BE-83FE-DD604C4A9CA3.dita"
+id="GUID-302D0879-2CDA-4523-B45A-371D6029D8D8"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-3AF6CE70-DDBE-53F3-ABB6-7E78A300F14B.dita"
+id="GUID-0365E3EA-4974-43A4-A824-EF689E0A9B8C">
+<topicref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita"
+id="GUID-FAD24B62-5EE8-495A-A3B2-58E0DA4ACF5D"></topicref>
+<topicref href="GUID-12D1EE2F-AF1E-4C53-ADC8-D8BC205BD063.dita"
+id="GUID-9FAC7774-8025-4EA4-BD75-62561B867F3F">
+<topicref href="GUID-CF34D34E-FF17-5395-A1CD-768414E0B014.dita"
+id="GUID-ADA779A4-CF81-4692-935A-3906F72ED0CD"></topicref>
+<topicref href="GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418.dita"
+id="GUID-2B962216-4FEA-4953-A44C-27A72C89BE31"></topicref>
+<topicref href="GUID-1361A508-D3DB-53F8-B1A1-34646F777B88.dita"
+id="GUID-981FA912-C65A-4AC2-B895-617D5C0CDEF3"></topicref>
+<topicref href="GUID-58ACE248-BF26-57BB-B5D2-C772FC046222.dita"
+id="GUID-CF6C70B5-AF81-4B0F-BE88-1687DA662711"></topicref>
+<topicref href="GUID-DCFD4CA0-6FB2-5339-BCFF-5B48E3E7E455.dita"
+id="GUID-EC080E73-7862-4887-81CD-DFF7D84CD610"></topicref>
+<topicref href="GUID-200BA7B9-70A1-5D15-8CFF-FBD18930757D.dita"
+id="GUID-D7454A11-C454-43BF-85F8-130169C5D29B"></topicref>
+<topicref href="GUID-0E226657-1A19-5601-B392-4E9A0BDB4014.dita"
+id="GUID-457A9CA7-619E-41B8-A920-9A2BA95AB0A0"></topicref>
+<topicref href="GUID-92156269-0645-54AB-9075-EE7708D333F4.dita"
+id="GUID-D42E845F-D47C-43D2-8E79-AA1CA1CB2BE5"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-34B36F04-D707-5357-8073-3B9FF7B95B22.dita"
+id="GUID-9C71A396-3599-4961-A7E5-349D2BB11660">
+<topicref href="GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita"
+id="GUID-D3ED738B-2D63-4C16-A468-DC91E5E10C54"></topicref>
+</topicref>
+<topicref href="GUID-6061361C-01F7-5BB1-87E1-46CBF9CCC44C.dita"
+id="GUID-AA85FFB0-57B2-4786-A0B5-2B70FC999EB3">
+<topicref href="GUID-49363088-CE0B-558D-8E86-48400E4F7C2F.dita"
+id="GUID-F7B959D6-C63F-48D3-9C1B-17F05A9E30AE"></topicref>
+</topicref>
+<topicref href="GUID-27E38FBB-F417-56C8-BFCF-B32215668902.dita"
+id="GUID-3AA59722-FFD9-4477-82A5-A05C797D3212">
+<topicref href="GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495.dita"
+id="GUID-CE184513-F926-4CB1-8B8A-AB00D2145868"></topicref>
+<topicref href="GUID-2A39CCBD-CADB-56B7-872A-1EC617AC7D93.dita"
+id="GUID-160B9981-F817-43DB-BE4B-FC28F8B3FC2B"></topicref>
+<topicref href="GUID-082E47B3-8AAB-51B7-93F9-3C528B97D0A9.dita"
+id="GUID-A029A8F3-DCDA-4DCA-9B6B-185E7BC3B4E9"></topicref>
+</topicref>
+<topicref href="GUID-F6BC696F-0279-5902-B945-AEF7257D3EEB.dita"
+id="GUID-803CACF1-22C6-4CAC-8B91-1F9132A83611">
+<topicref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita"
+id="GUID-A7FC96A3-0B1D-4E30-956B-02C834C3CF5E"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-4D270BBF-3FDA-47A4-9909-36153B3C39F7">
+<topicref href="GUID-315452C2-A1E2-5888-A694-6D2DE73A3F5E.dita"
+id="GUID-81FE6296-A5EF-4069-BFC1-5ADD85AB48FB">
+<topicref href="GUID-BC191AA8-696F-51A2-801F-B3F952037F54.dita"
+id="GUID-8700FE0E-8762-44D0-AA4B-5365C740A2F4"></topicref>
+<topicref href="GUID-6F73ED8C-E259-5717-AB84-0C2933A866DA.dita"
+id="GUID-03A19A75-0451-47BE-85CB-EB97B4964AD7">
+<topicref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita"
+id="GUID-179A4E83-AC80-4508-B069-0DD22C906407"></topicref>
+<topicref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita"
+id="GUID-74CADC8D-2CFE-47A2-9EF3-714460475F06"></topicref>
+<topicref href="GUID-5C58F7D1-D672-5B6D-AD48-863EC68F7446.dita"
+id="GUID-BFD81FDB-B035-43D6-9D05-0A9F4698BA3A"></topicref>
+</topicref>
+<topicref href="GUID-BA362536-C9C9-5BA4-BEE3-0E1AD7FA45F1.dita"
+id="GUID-A28EE2E1-FEA3-4165-B85D-E13F0A63F897">
+<topicref href="GUID-5329AE68-39E0-55E7-9878-2D8FF9E29B21.dita"
+id="GUID-95A7A17B-FCEA-4E2B-B097-305272068CA5">
+<topicref href="GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762.dita"
+id="GUID-BC0AAD69-BF55-40FD-B59E-ADD2CDCB0D68"></topicref>
+<topicref href="GUID-66022FF4-3044-51E6-88CE-FE3B1283C0CB.dita"
+id="GUID-631EDBEE-E446-4D64-B9F8-625C3B8CCE04">
+<topicref href="GUID-6BE03135-6192-5520-AE8F-80BDB3187259.dita"
+id="GUID-DF806A31-D614-45C8-9FCA-09F068DC3F58"></topicref>
+<topicref href="GUID-4E838A77-C7B5-5B1F-93F5-F3577901914B.dita"
+id="GUID-4734154E-C745-407D-BC54-275CD0AD1FEE"></topicref>
+</topicref>
+<topicref href="GUID-B2089965-546C-5FF2-8596-13A2221E02E6.dita"
+id="GUID-4C38BE3E-0AF3-4FD2-A6A6-EF25682A6879">
+<topicref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita"
+id="GUID-B8D8AC14-CE7F-4A75-988D-57FFA9291BBA"></topicref>
+<topicref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita"
+id="GUID-4512D3AC-EB32-431D-8138-BE8E4D774BFC"></topicref>
+<topicref href="GUID-DB827750-6057-537E-8FE1-8F68BF2E9F99.dita"
+id="GUID-2A307384-62F7-4776-AFE2-2FAB39D03054"></topicref>
+<topicref href="GUID-85D9878E-4FEF-5E45-9F87-53634CD171E0.dita"
+id="GUID-D38B8430-A4C2-435F-8ECC-1F3053778ED3"></topicref>
+<topicref href="GUID-CCD3B91F-9E7F-5CE2-8AFC-4ABF787E5614.dita"
+id="GUID-151600CE-663F-480F-874E-645AEE1FE813"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-A40376B6-8B2B-551A-B72F-CFCADBC84BE7.dita"
+id="GUID-BD331CE9-8083-435D-BD8A-400663B825DE">
+<topicref href="GUID-8933D7D5-F84D-5BF2-BF2A-832DA183E26B.dita"
+id="GUID-71404B23-2AAE-4F1D-80C3-5B739FFBE0E8">
+<topicref href="GUID-2BB17FB4-07A9-52E3-A650-570A16FA771D.dita"
+id="GUID-CD230DF1-2F5F-47DC-A7CA-14B08D65273B"></topicref>
+<topicref href="GUID-9CB10936-3201-546D-BC81-B53293EE1933.dita"
+id="GUID-E242CC45-255E-4885-A657-05DAD6026877">
+<topicref href="GUID-6FCAB5DC-D3E9-5406-8B9E-E1B1CF18C73F.dita"
+id="GUID-0B4E50C5-E802-4EFA-875E-95EA98B15743"></topicref>
+<topicref href="GUID-6849E256-6719-5788-BCB2-7557F09AAAD0.dita"
+id="GUID-D83BBCCE-45DE-4637-A195-77B313CA83F2"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-4B03733F-D84D-5A28-B772-2E256D86ABC7.dita"
+id="GUID-BD938D78-4DEE-4978-BE52-B9C83F1A1200">
+<topicref href="GUID-04FB9E08-DDFE-53B1-B8E1-687A1AEC4286.dita"
+id="GUID-DB00D96E-34D2-4A16-A8FB-C2D68AC3C31E"></topicref>
+<topicref href="GUID-B1B3C5E6-9F38-5A55-A30E-4C7591B446CC.dita"
+id="GUID-9A6198B9-DDCF-4CDA-BFCD-1DD148BF41A0"></topicref>
+<topicref href="GUID-7C96B363-7891-50D3-A40F-92B9CBC4624C.dita"
+id="GUID-5BB27E4A-87B0-468C-82FF-2B44B87CA0B8">
+<topicref href="GUID-9473F793-29ED-42ED-933B-A995E56E71CB.dita"
+id="GUID-37B238E4-B966-4336-A50F-C41C995F9835"></topicref>
+<topicref href="GUID-13BDBFA4-49FE-4D62-8B5F-BE3DF3ABAF3E.dita"
+id="GUID-A0F2777C-A4F6-4C2E-82F5-54231CB5C56C"></topicref>
+<topicref href="GUID-D8A18789-3A3E-4E4A-9D34-35F83BF71449.dita"
+id="GUID-A1026EC8-97AC-4994-8159-CF143550DF52"></topicref>
+</topicref>
+<topicref href="GUID-C119A79A-D705-50B3-B174-70F517947BBD.dita"
+id="GUID-BFFEC8C1-D62F-4B38-8ED4-4F2EB974C913"></topicref>
+<topicref href="GUID-6BD23C4F-CBF7-584D-81D9-EB8D14DC3081.dita"
+id="GUID-53B91569-D9D6-4DF7-A409-4CA13444C8B3">
+<topicref href="GUID-C83D7112-0CF4-588D-8A0C-D27AB387F4D3.dita"
+id="GUID-1CBF0E66-846A-4793-86B1-9EAA9BBC8D3E"></topicref>
+<topicref href="GUID-46D6DF29-38F7-5842-9FDD-82754AE8D9A0.dita"
+id="GUID-C05DC20B-2EB9-4A71-AD50-3CFEB1CFD2D6"></topicref>
+<topicref href="GUID-FF6F26C7-0037-5117-9232-6FAFFA152F0C.dita"
+id="GUID-72D9725E-B051-4162-A7FD-4FAE74F7C4EE"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita"
+id="GUID-C191CF05-80C9-4CDE-9222-64CAAE873AF2">
+<topicref href="GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7.dita"
+id="GUID-F9F9E6B6-CD66-4E32-93DA-DD50983342A0"></topicref>
+<topicref href="GUID-1E1B040A-1C18-4F62-95F9-CE0ECE39C430.dita"
+id="GUID-0C582CB0-D98F-425E-A836-08A3A9B316F3">
+<topicref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita"
+id="GUID-29A13DB0-8EB9-4627-BECD-4267A71D5A5E"></topicref>
+<topicref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita"
+id="GUID-2C963B20-7867-46F3-B8AA-9D00081F324D"></topicref>
+<topicref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita"
+id="GUID-76BEAB4C-4A39-4E09-A2A9-B091EF57B256"></topicref>
+<topicref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita"
+id="GUID-F1BA3C4F-A326-468D-BBE8-D6A70601229C"></topicref>
+<topicref href="GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE.dita"
+id="GUID-F6F1085A-206B-4B37-9D46-3B5B6FD42D6F"></topicref>
+<topicref href="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita"
+id="GUID-9B8D7FDE-4748-46C6-B1B4-6C1038B80EF0"></topicref>
+</topicref>
+<topicref href="GUID-268E2151-C758-46BF-86EB-F7D6EE44DBCF.dita"
+id="GUID-C70260A5-8AA9-4334-ACFF-4B2876C1D1AC">
+<topicref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita"
+id="GUID-C0AD5D5D-A557-4C22-AC72-CED6B066F2CA"></topicref>
+<topicref href="GUID-5857377F-B90D-5149-9485-5919C12B8F13.dita"
+id="GUID-BCBCA7D8-ABC3-464F-8185-BF3B8387B773"></topicref>
+<topicref href="GUID-D2D17EF9-FFC6-5FBD-A992-55746A12B625.dita"
+id="GUID-3022653A-422F-4394-A85E-1A3F0105D7FE"></topicref>
+<topicref href="GUID-4C9C236D-71A7-5A5D-8C1C-F574DA604AF6.dita"
+id="GUID-2973CB92-EA33-4625-8A18-CDA1903DD7C7"></topicref>
+<topicref href="GUID-1AA392CB-F638-5D35-993E-4A26D67A7C98.dita"
+id="GUID-BF22C527-E4E3-4053-9BD3-A110B5406CB8"></topicref>
+<topicref href="GUID-1D60BB43-4FF8-5632-A597-0DF00234F93E.dita"
+id="GUID-A825C19D-8A93-4E69-A1E2-EC8804857911"></topicref>
+<topicref href="GUID-D6A2B169-F6DB-5BCE-83C9-7CD4A10C5BE9.dita"
+id="GUID-CBF062A8-12EE-430E-8F92-E3DD42D80FEC"></topicref>
+<topicref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita"
+id="GUID-C049954F-B99E-4C21-AE24-3B2AA8560923"></topicref>
+</topicref>
+<topicref href="GUID-38C8F8B0-C259-5B03-A13E-10DBED4071F2.dita"
+id="GUID-B6FB1FAD-4AE3-4C48-ADE3-550E585E2C03"></topicref>
+<topicref href="GUID-D88AA184-6E22-5069-A249-5AD83F548C56.dita"
+id="GUID-DA6A1AA3-6D8C-4ABF-911B-9C03BF22F9A8"></topicref>
+<topicref href="GUID-0CD273A2-434C-52E0-B840-CCF24B2853B8.dita"
+id="GUID-E1978640-98F2-4BD5-93EA-B7DFEE4B0F37"></topicref>
+<topicref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita"
+id="GUID-F6B0D940-4C97-4182-95A3-2B03653F843A"></topicref>
+<topicref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita"
+id="GUID-830762EA-A28B-49EC-AD6E-CF3B4ED3D5A7"></topicref>
+<topicref href="GUID-8AB9527A-1C7E-5D3A-9AB2-A3FA1F5A2D5B.dita"
+id="GUID-294F7D23-FC8D-4469-858E-6FF91AAB191F"></topicref>
+<topicref href="GUID-18358882-A4DD-5010-BED7-4ACAE021495D.dita"
+id="GUID-674CCEFB-4394-40C7-B6A4-EEA2379DF70D">
+<topicref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita"
+id="GUID-0ECBF13C-B1E6-4ED7-879D-1EC016CD268B"></topicref>
+<topicref href="GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C.dita"
+id="GUID-85265CF6-3403-419A-B3AB-785E0D789E08"></topicref>
+<topicref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita"
+id="GUID-F10539B3-9DC0-4A61-9DF8-0137D8F22DE9"></topicref>
+<topicref href="GUID-267D1E20-002E-53C7-8AE5-E063206C1562.dita"
+id="GUID-D68AF1FD-6FC1-469A-9089-8597ED2EC9CA"></topicref>
+<topicref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita"
+id="GUID-4880B05A-3DD3-4B60-9B29-537C1D462CA4"></topicref>
+<topicref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita"
+id="GUID-5D942423-3591-44BC-B050-BABA95846CE9"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-2663ED06-8C97-5867-B7F6-6167EBFEA223.dita"
+id="GUID-E97BFE2A-0608-471D-B812-EE5E4A15E60B">
+<topicref href="GUID-C3846503-BEFE-5539-B7ED-FD1915D38380.dita"
+id="GUID-A8DD14DB-3BC3-43A5-9D4D-82036F530DB0"></topicref>
+<topicref href="GUID-314992D7-F6E1-5335-9EDA-DE89E67CDF57.dita"
+id="GUID-8696FEBE-B0FC-406E-92C5-115114A470A1">
+<topicref href="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita"
+id="GUID-C2A7BBB2-E976-41A7-AB11-D2DFDBA60297"></topicref>
+</topicref>
+<topicref href="GUID-C3290344-486B-554D-97FC-42DF48E150AA.dita"
+id="GUID-8B64EF1E-C4B8-4AB0-9A43-47AA9B66B336">
+<topicref href="GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5.dita"
+id="GUID-8B6A4AF0-E001-42CC-8F67-E3332C094071"></topicref>
+<topicref href="GUID-69B005F8-9038-546F-8ADF-8499984A18E1.dita"
+id="GUID-2A400DE0-D2EF-41FC-BF88-E639CAB8F1A7">
+<topicref href="GUID-E326C00B-6E07-5902-AB19-F00D1761795C.dita"
+id="GUID-019B3E04-FAD8-4FEA-A551-420082AE96F5"></topicref>
+<topicref href="GUID-C93D021E-D99A-5839-AB54-3D8D7620214A.dita"
+id="GUID-B480F1BF-8AA0-48FE-ACD3-906E48E73A64"></topicref>
+<topicref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita"
+id="GUID-C764BB21-D45F-4341-B1B3-EC4B591187BF"></topicref>
+<topicref href="GUID-A636C1B3-8AB2-52D7-BB19-4CC93F4BDD97.dita"
+id="GUID-5966D456-718E-4EDD-A23E-0DD09CFC6A45"></topicref>
+<topicref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita"
+id="GUID-48871D91-F0E9-48B9-AAD6-16C30A441545"></topicref>
+<topicref href="GUID-116AB921-B063-5CC2-962F-A74562F20EAE.dita"
+id="GUID-FC851EF5-3EF3-4C1F-9F89-8A72DB9D2986"></topicref>
+</topicref>
+<topicref href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita"
+id="GUID-5AAF05A8-C6A6-4C89-BFB8-BF15BAAC4C2D">
+<topicref href="GUID-0F4DE9E0-4A98-5914-9AB1-DD6CE1A5A1F3.dita"
+id="GUID-CA61706B-4880-4342-97A8-606BC42020DB"></topicref>
+<topicref href="GUID-0010EB39-8C23-5453-BE96-4EFC520B6F81.dita"
+id="GUID-B6AB3D64-9307-47B7-BC1B-B331DAEFC217">
+<topicref href="GUID-037225BC-AC45-540E-A899-1B8AB9112D6E.dita"
+id="GUID-12F5AE98-89AC-4E32-AED7-20E40FE24CCF"></topicref>
+<topicref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita"
+id="GUID-2D90018F-6231-4543-9C87-0DCF64E5550A"></topicref>
+</topicref>
+<topicref href="GUID-695FCEB8-EA04-5C1C-A197-648275BA0281.dita"
+id="GUID-B4B84B1D-A5BC-479E-844A-09DBAB1C76ED">
+<topicref href="GUID-C4389D60-2A8D-532D-9D92-E57B0CCD14CF.dita"
+id="GUID-918AB8C6-D7AD-4D97-985D-85294105E999"></topicref>
+<topicref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita"
+id="GUID-C9F4B3E4-8114-4DF3-9EAA-3CE83AAEA302">
+<topicref href="GUID-A56D550A-BF08-5D9C-A64C-67E8654F449B.dita"
+id="GUID-0582C3A5-8250-4690-8514-71C5C50BBA2D"></topicref>
+<topicref href="GUID-384A25D6-EC89-576E-857F-D8D26292FED9.dita"
+id="GUID-F69D8DE0-9737-47EA-8842-82CA007F71A1"></topicref>
+<topicref href="GUID-389F1390-5752-5F2E-B2F6-724F9543BB35.dita"
+id="GUID-410DB305-54BE-41A9-8F42-3CFFD1636EB4">
+<topicref href="GUID-F6625E22-BFB2-5367-A1A8-916252999B78.dita"
+id="GUID-E76ABC24-DFB6-44C5-8954-353F7BCEDA68"></topicref>
+<topicref href="GUID-93069514-BC40-5E53-B126-F5C5C43C3D83.dita"
+id="GUID-4DEB13D3-28E8-4D5D-B73B-9D907E139128"></topicref>
+</topicref>
+<topicref href="GUID-6A770434-EF8A-5ECC-BB74-2E7FC4A9E360.dita"
+id="GUID-11CB09AB-8533-4783-B945-6F7584390C55"></topicref>
+<topicref href="GUID-98B0A83B-0064-598E-BE88-84305CA6A4F1.dita"
+id="GUID-7142807B-32AD-4324-8B6C-4F7CE3C675C6"></topicref>
+<topicref href="GUID-85EAD2EA-6ADB-5866-9784-5E2B30E661AF.dita"
+id="GUID-A51917A9-FE0E-4B35-8400-FB0CB68A70D7"></topicref>
+<topicref href="GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita"
+id="GUID-E1272611-FC7B-461C-A1C6-1AB29D68188C"></topicref>
+<topicref href="GUID-F446E658-B717-5257-9C5C-442B07B19565.dita"
+id="GUID-90A21C12-FB47-4706-8651-124C302697AB"></topicref>
+<topicref href="GUID-60141F31-6061-5C65-809D-FE7A4F8414F7.dita"
+id="GUID-8BDA5F0D-282F-46F6-B841-837112E9A96C"></topicref>
+<topicref href="GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8.dita"
+id="GUID-E34BD5D1-F8A9-434A-867B-E9188AD983E3"></topicref>
+<topicref href="GUID-1733B4E1-3264-58DF-957B-F5C0AE1E0644.dita"
+id="GUID-69EB2719-800B-4583-8C31-A21E44314D10"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-92025FE2-16B1-59FE-9967-6972F6E7D4CA.dita"
+id="GUID-E6062833-7DEC-49CE-9319-DD65BFAF8423">
+<topicref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita"
+id="GUID-C8AA553B-D6E8-4821-B75E-4E2300072F1F"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-77594F77-FF1E-4CAF-95E5-969D578413B6">
+<topicref href="GUID-4CF8E6BC-3E2A-5773-A296-6321573B967E.dita"
+id="GUID-28DD95A1-22A3-469E-82B9-AF61299AA137">
+<topicref href="GUID-0F875AD4-F3A1-5AAA-81D3-E60436472443.dita"
+id="GUID-CAFD6CF6-C005-4CDA-89AD-DCCFF13A1F1F">
+<topicref href="GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita"
+id="GUID-D3326F92-7282-493E-BC1A-75C5C1DACFE5"></topicref>
+<topicref href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita"
+id="GUID-07D043E7-9C1B-4A8E-A08E-E24EEF0B4857"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-2D01E101-9B7C-4030-B382-7900748DF3BA">
+<topicref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita"
+id="GUID-67ED2AD3-D732-42A2-91A3-8F672143FAC8">
+<topicref href="GUID-071A1E59-FE77-5D4D-B4D1-E6ECDF68BB03.dita"
+id="GUID-250600ED-689D-4875-92E8-1883BD1FB4F9">
+<topicref href="GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF.dita"
+id="GUID-5E7D0D15-2158-4D75-85C4-6D9639273C0E"></topicref>
+<topicref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita"
+id="GUID-6A642E5D-EC1A-4546-B79A-37B6DA872FA5">
+<topicref href="GUID-8451102A-8E68-5C86-9E40-D53183E32261.dita"
+id="GUID-BB30E472-B4E2-4A32-B1DE-A0EA77FBD514"></topicref>
+<topicref href="GUID-756D831F-F302-594C-8116-144358DD8442.dita"
+id="GUID-E86A277F-15E5-4C25-BA95-5812CFC99AA3">
+<topicref href="GUID-E5893C4A-024A-53A7-805F-68989382DC3F.dita"
+id="GUID-27170F08-6E67-4ADF-AC37-5C0BC5FBADB9"></topicref>
+<topicref href="GUID-B75BD3DE-9C2E-5429-B55B-891462B92795.dita"
+id="GUID-7C0031D2-8EE9-42E2-A579-78C2D43E4C97"></topicref>
+<topicref href="GUID-E2A2FA2A-5D9A-56FE-B7E5-69CCBC656BB9.dita"
+id="GUID-CF1F742F-21EF-447C-8227-C07BBD027A9D"></topicref>
+<topicref href="GUID-2373A158-C18A-51B5-BE9A-6B8F7FC63A35.dita"
+id="GUID-46536247-8903-417B-A49A-43EDC7DC5451"></topicref>
+<topicref href="GUID-33210C48-3198-51BC-9970-8B29F711A8E2.dita"
+id="GUID-DA7667F7-5407-4199-9E58-CA910A106332"></topicref>
+<topicref href="GUID-ED342E6B-A4A3-576B-8934-7E7C049837F0.dita"
+id="GUID-BAABCE77-6145-411A-9BE2-21008824EB0F"></topicref>
+</topicref>
+<topicref href="GUID-8D5E17DA-8EF1-52B4-9706-9836B8D6CE43.dita"
+id="GUID-2D3EFCB5-54E4-4995-AD8E-1A381C4CECE4">
+<topicref href="GUID-2F1C6B4C-2C23-5A35-A0D2-223EC6238F7D.dita"
+id="GUID-D5478B8C-932D-45A6-9A39-709FE540FF48"></topicref>
+<topicref href="GUID-275D7892-EEBD-5DBD-A9D7-F6A715B79659.dita"
+id="GUID-5645F884-F8B2-4B80-B595-14C41A4874EF"></topicref>
+<topicref href="GUID-1EA7B3A5-7A94-5E8F-A0A8-9CA417E14032.dita"
+id="GUID-55AD9E0D-1D13-4592-B30C-0D152985613B"></topicref>
+<topicref href="GUID-65F8675F-FF08-5707-BA5B-BF3B4B779393.dita"
+id="GUID-C4964C6A-AAB2-40D9-9EFF-63BAEFDC6E18"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-EA15E87C-6A24-50B1-9FAC-9ACE8911ABD5.dita"
+id="GUID-5EFECCAB-BD66-42B2-90ED-737C876BF11C">
+<topicref href="GUID-AB0A3E87-6725-5E83-B462-1219CE205187.dita"
+id="GUID-6DBD7610-0E20-4CBB-8BE8-8BAD4093DEBF"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-ACB3786B-38EB-58F4-87B6-6A46A390B154.dita"
+id="GUID-75EF3A6F-C6AE-4776-AC21-A023C7933F65">
+<topicref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita"
+id="GUID-83512EFB-A19F-40FB-B599-178E6BA29EF4"></topicref>
+<topicref href="GUID-0F3E543D-CFEE-5CD8-8BAB-19B3A993388F.dita"
+id="GUID-62318BD7-8215-4286-91CA-1E133251A613">
+<topicref href="GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902.dita"
+id="GUID-531D4114-6B3E-49B2-8D66-724A7486F46E"></topicref>
+<topicref href="GUID-308A481C-2280-59CE-AE85-83047B11BBE4.dita"
+id="GUID-F2DE364E-F03C-46D8-A1B1-3E26AAA7F558">
+<topicref href="GUID-91C4F00B-E241-57DC-8520-8C16A302C983.dita"
+id="GUID-429BA256-73AA-482C-9EF4-0E45F9C03321"></topicref>
+<topicref href="GUID-685AD682-10DC-553B-9C3A-04D0376138C4.dita"
+id="GUID-38B774F6-7AC0-41A2-826C-2ED7E9E627D8"></topicref>
+<topicref href="GUID-197648C4-A42C-5769-82B7-F8BA510631D9.dita"
+id="GUID-DD4C5176-678A-4A0D-9673-62BF0CEB16D2"></topicref>
+<topicref href="GUID-50CDF6E0-C352-5771-8686-B551267C6BE6.dita"
+id="GUID-18B49608-1B3D-4743-825E-F4E1850A51AC"></topicref>
+</topicref>
+<topicref href="GUID-0DBB2379-6FCB-5D1D-AE5A-2DC7C498F479.dita"
+id="GUID-5D1DEB78-9EDF-4005-9F57-FCBE450D1684"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-6CE12919-FF81-5254-BA12-385F589FEA44.dita"
+id="GUID-BE6B1B37-049D-4E4A-B5F3-4356AF18EB8C">
+<topicref href="GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF.dita"
+id="GUID-EDE36566-FEEC-4F80-9D95-518E3FC36982"></topicref>
+<topicref href="GUID-7F2C1C45-43FA-5F19-81E3-4DBC0328E4A7.dita"
+id="GUID-186A9914-DA41-4FCE-9FF3-6B082C1EB137"></topicref>
+<topicref href="GUID-11E05C4A-CC94-5A0E-9D07-1863FB03747F.dita"
+id="GUID-A09E31D8-6832-47AF-B1B7-F3CFF53D5A2F">
+<topicref href="GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0.dita"
+id="GUID-8F74C24F-0755-4454-87C8-220C9D230C2D"></topicref>
+<topicref href="GUID-9668ADA2-7170-57AC-A5D7-1350894413FF.dita"
+id="GUID-3375F1F5-A1D8-4146-82BB-74129795E784">
+<topicref href="GUID-C49F63A4-BA9D-5C99-8C82-EB3163E30D3E.dita"
+id="GUID-88E735F7-B0D1-4519-AD4E-718EA64DFB39"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-8411E1C9-C6CC-5B0A-BEBA-74D0B8AABF35.dita"
+id="GUID-43307B63-B7D3-4118-9F1F-2A0E80A23D72">
+<topicref href="GUID-5E1C24CA-2F82-5E30-8981-0F343FF2BD89.dita"
+id="GUID-44947C7D-4E03-428E-B4CB-51BDF79C1F4D"></topicref>
+<topicref href="GUID-F2A793F1-A5B5-526B-B147-771D440B13A2.dita"
+id="GUID-032C706D-5346-4CBE-A37B-769960F05FE5"></topicref>
+<topicref href="GUID-783D0B50-0E8A-5199-A07E-749D4A71E671.dita"
+id="GUID-125A7970-CE51-49B5-9AFF-4C8C32FB447E"></topicref>
+</topicref>
+<topicref href="GUID-5FE7D4DB-B853-57C4-8A90-16DF92F6231A.dita"
+id="GUID-ACD03142-9119-4C68-8019-74B73DFD5F0D">
+<topicref href="GUID-58F65411-CF08-5F46-8222-3FDB9E571FCC.dita"
+id="GUID-1FED5784-54F6-4480-9813-A8EF2ECA57A6">
+<topicref href="GUID-301488F8-B6D8-569A-B05E-19B740FE4C00.dita"
+id="GUID-E29C2DDE-8331-471B-945B-6CE02940971A"></topicref>
+<topicref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita"
+id="GUID-8194F37F-E7F3-458E-822F-B74683CD8B69"></topicref>
+<topicref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita"
+id="GUID-ED718732-110E-444F-9602-C51090907760"></topicref>
+<topicref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita"
+id="GUID-546A42D5-1970-4EEF-A56B-D4C5421ADAAD"></topicref>
+<topicref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita"
+id="GUID-5911612C-0076-420A-B3A1-E0DFEC1DDAC8"></topicref>
+</topicref>
+<topicref href="GUID-70339E6A-63CD-5A74-846C-50771FDAC763.dita"
+id="GUID-5E7CE12D-902C-4E73-8871-5727A12EE5E5"></topicref>
+<topicref href="GUID-834BD3BB-B39C-5EE9-8A62-9DC435930F95.dita"
+id="GUID-9C01DDFC-1B63-43D7-AEEE-B244E474D00D"></topicref>
+<topicref href="GUID-FDA7B932-B9C6-502D-8699-C18C8D86BCC6.dita"
+id="GUID-F061E79C-A760-4FD1-B9C5-BB284CEBDCF5"></topicref>
+<topicref href="GUID-5C63EF5C-826D-5838-BB7E-12FF4EA1DFCE.dita"
+id="GUID-2159BAED-6804-4410-B7F3-EFFA8CBEF9D1"></topicref>
+<topicref href="GUID-01A0682A-50B1-57AB-9939-6CC8FCCD782D.dita"
+id="GUID-2515943B-A01A-4762-93DC-A08BD6B3F716"></topicref>
+</topicref>
+<topicref href="GUID-A035B592-F423-5980-8E7E-E726CF24CF3E.dita"
+id="GUID-5CF0CA4D-560A-4341-90D9-9EB64870974C">
+<topicref href="GUID-C670D31C-82A7-519C-8506-3C4B99294B21.dita"
+id="GUID-9BADFB20-D2C7-4044-A283-B336E27140E8"></topicref>
+<topicref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita"
+id="GUID-7FA5C403-22E5-4068-A460-488A4AA80C6A"></topicref>
+<topicref href="GUID-39C9DD69-504A-529C-ABD3-A73DCAD3F8E9.dita"
+id="GUID-83E9B4C8-40ED-43B9-828A-841608011821"></topicref>
+<topicref href="GUID-A2793EFD-F765-5392-8471-C8A0C2FFC163.dita"
+id="GUID-960D353F-EB87-4A3E-9882-8B97A31F4FCD"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-AAFCC290-E91A-4391-A295-D23F97566DE6">
+<topicref href="GUID-1DCA2F4D-ABE6-52A0-AC4E-5AAC1AB5909D.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1">
+<topicref href="GUID-762A665F-43D0-53ED-B698-0CBD3AC46391.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1-1-3">
+<topicref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita"
+id="GUID-BAC14B45-7C18-4709-86F8-765D8BF8CA72"></topicref>
+<topicref href="GUID-98B85D7F-7BD9-5056-A99F-0BC99D921B87.dita"
+id="GUID-DB2DECE2-39DC-4B5D-98C2-E1A627E2A539">
+<topicref href="GUID-78FB26E2-AA60-5531-B2FE-4FA6C88F2D47.dita"
+id="GUID-153B4AF8-340C-457C-975F-C1834F7C09DA">
+<topicref href="GUID-72986B3C-047C-5411-8F15-BC9C65C3289C.dita"
+id="GUID-B1AFADD1-F800-4E91-819B-1F9797EFF120"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1-1-3-1-7">
+<topicref href="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita"
+id="GUID-A23E9571-BA80-40D9-BEAD-B1EF681A0024"></topicref>
+<topicref href="GUID-89AD2E29-DF29-5B2B-9894-B7ECD62854F4.dita"
+id="GUID-A518779C-8C8F-4ACF-A6EF-6FA6486647C5">
+<topicref href="GUID-D76D4788-E65A-59A8-8DD9-7A8096E115D5.dita"
+id="GUID-D97B1A7D-1838-418C-9930-1353EFA6AB8C"></topicref>
+<topicref href="GUID-92A4F66E-252D-5C90-AE59-1B1991002D7B.dita"
+id="GUID-AB4E35FB-E159-4B06-99D9-D4D80E09A02B"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-DB453F9B-55B6-50C7-984D-7154F1E84AE6.dita"
+id="GUID-FB72C724-3BB5-412A-95F0-2863933B428B"></topicref>
+<topicref href="GUID-75C5A614-CEC1-5832-ACEA-E3C31B8A0DE8.dita"
+id="GUID-7632331B-C698-4641-8E85-3A0A1B3C6DC5"></topicref>
+</topicref>
+<topicref href="GUID-F3406651-0B57-50FD-81CA-A3D4000D5625.dita"
+id="GUID-5562D8CC-E89C-4551-9A5A-A675EC73ADC8">
+<topicref href="GUID-C71311A7-F747-57EB-B31F-6E634D5976A3.dita"
+id="GUID-FF6DB147-C7D0-431C-9A18-ECE9B58A2493"></topicref>
+<topicref href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita"
+id="GUID-2C18D42B-B958-4E2D-9710-1B19057F01A3"></topicref>
+<topicref href="GUID-E64C06D7-B138-5BCC-A814-3F9E2C517404.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1-1-4-1-5">
+<topicref href="GUID-6F2BFFD4-9A2A-5EEC-87A2-3B60CB7F9CD5.dita"
+id="GUID-41E7E132-0329-4ED9-872D-EF79AF36D876"></topicref>
+<topicref href="GUID-5BE31242-78A2-584B-BF00-B7805C219E40.dita"
+id="GUID-1E89537D-5B49-464F-91E1-702C757451ED">
+<topicref href="GUID-325D8E31-584B-5B10-902C-F004641A614D.dita"
+id="GUID-986936C6-CED7-43E4-AB9E-691207BF339A"></topicref>
+<topicref href="GUID-3FAECE72-FCC6-5C58-B724-C9A9DE485788.dita"
+id="GUID-73A5D0C3-59AC-495C-9375-1D8D2C324D9C"></topicref>
+<topicref href="GUID-77AC5975-D36F-585F-BC0B-DC1C2357BBF2.dita"
+id="GUID-0ADC8ECF-7D7D-4897-835F-119957288063"></topicref>
+<topicref href="GUID-5373B575-F284-5774-9C73-2A18C4A912A2.dita"
+id="GUID-0F1AAF86-907F-4199-B036-2FAAB45FE39D"></topicref>
+<topicref href="GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8.dita"
+id="GUID-860D9289-F038-4FDB-BF0E-9271ED3BE5E3"></topicref>
+</topicref>
+<topicref href="GUID-BD11A724-2364-5D40-A9D1-2774993BA4A4.dita"
+id="GUID-978946A3-3203-4170-9FBA-5CB00CF25632">
+<topicref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita"
+id="GUID-07C3C8AF-E4BC-4692-AF36-8052496AECA0"></topicref>
+<topicref href="GUID-2624060D-A5E7-590A-9FA0-471AE42A9BE9.dita"
+id="GUID-A78AE720-30BF-44F7-B75F-1A56829E57D7"></topicref>
+<topicref href="GUID-CD3B2B7D-BAE5-5F99-A5F5-74AFC678D986.dita"
+id="GUID-6D081A99-076A-421A-9818-2C37D5D7F2A0"></topicref>
+<topicref href="GUID-214A7085-185B-5D40-A613-E82E68968AAB.dita"
+id="GUID-28C3BE08-329B-4769-A2F7-C6EE4EFBC10B"></topicref>
+<topicref href="GUID-01F6E612-B151-5FC3-B08A-E17A7987F029.dita"
+id="GUID-DF9C94EC-D599-4302-9CA3-A133A8A8C7E7"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-E7ACEC20-27C9-5124-A46E-2812A64E3E4B.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1-1-4-1-6">
+<topicref href="GUID-001F6216-48AE-57D4-8985-65CF77B26F19.dita"
+id="GUID-16D03442-BF28-4BF6-98CF-ABAF89CE5A2F"></topicref>
+<topicref href="GUID-93491DAE-4D2D-5F5F-97E7-91B265E9951E.dita"
+id="GUID-C33E5113-A02B-4D30-AB40-B6B39D8AA5F8">
+<topicref href="GUID-F5F981E4-6910-5440-AE8E-2EFAB2D01EE9.dita"
+id="GUID-FE850A98-A275-4B29-8C98-DE520D31404A">
+<topicref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita"
+id="GUID-99E7339A-64CF-41B8-9224-BF9C580969EE"></topicref>
+<topicref href="GUID-FE94596E-B5BB-51FE-BE38-069840323915.dita"
+id="GUID-ECAEDAA8-F8C7-48D0-A487-AA6000F854B2"></topicref>
+<topicref href="GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8.dita"
+id="GUID-08EB3EB9-D4EB-47DA-93EC-E9C836230E87"></topicref>
+<topicref href="GUID-B1254526-3C72-59E7-88C0-667FC051379F.dita"
+id="GUID-6FCE8F50-993B-4911-93B2-1A2C3F14D1B1"></topicref>
+<topicref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita"
+id="GUID-19A38E3C-C423-41B6-8C47-719E068DF1D3"></topicref>
+<topicref href="GUID-C524C3E8-D151-5AB2-8791-1342C297FFBB.dita"
+id="GUID-7995BF3F-7440-48CF-BC6E-843C9EDF3284"></topicref>
+<topicref href="GUID-4A9053C2-80ED-5FB7-B07D-E1DC5D965213.dita"
+id="GUID-1D243082-552F-498A-B5A8-6F7FAFD17E6A"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-0584846D-D4D9-5093-8FE5-764CCFBA813F.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-27-1-1-4-1-7">
+<topicref href="GUID-66231EA2-BDEF-582D-A4B9-F356B590038D.dita"
+id="GUID-E5427493-BA6C-4CB3-A42F-93DFAACC87D4"></topicref>
+<topicref href="GUID-F4320746-68DF-50B6-817A-24E46DFBF77B.dita"
+id="GUID-7344DB7E-DA2D-4D19-8444-3ACAE4D37026">
+<topicref href="GUID-026E865E-12FA-59A9-B923-309B65790E23.dita"
+id="GUID-6B7A5DAD-C567-43BE-B19A-FD03846EA05B"></topicref>
+<topicref href="GUID-2068DA42-AE77-5213-B3CF-C3AB7F2188BE.dita"
+id="GUID-030194FD-FDEE-4073-97CB-AE125532B191"></topicref>
+</topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-4F901F56-7F0E-4869-85CA-6109ED0AF5B7.dita"
+id="GUID-3C17741C-78A1-437D-AC31-68BDE89E4762">
+<topicref href="GUID-533EC918-BF5B-5D0B-8860-1E8746A05EE3.dita"
+id="GUID-A54906C5-D466-457C-9E7D-FFBC22FFA443">
+<topicref href="GUID-0AA6186C-DD10-5811-940F-D26A7D34C66F.dita"
+id="GUID-DE6B1559-0650-419A-83EA-674EF7A44FBB"></topicref>
+<topicref href="GUID-60E8185C-04EC-5541-8392-5457808B9774.dita"
+id="GUID-E1A22C1E-6130-4D95-87B2-B8E7F0D2F5C3">
+<topicref href="GUID-6A5FAD55-DE84-569D-B5EB-1474DD2AF392.dita"
+id="GUID-52C77F0E-7D46-44B8-AF25-1DD36711434D"></topicref>
+<topicref href="GUID-BE26CD1E-C566-572D-9B2D-B6CFCA647C72.dita"
+id="GUID-E888FB03-D316-4532-81F9-BE7DF0A47347"></topicref>
+<topicref href="GUID-86E704A2-FB15-5D78-BFD2-0E7117360342.dita"
+id="GUID-A9032458-8F27-4225-904D-4EA89CFF7CD9"></topicref>
+<topicref href="GUID-56EA1BD6-DE61-5541-993A-2B60D1DE41AC.dita"
+id="GUID-8D9B1C3D-3465-4092-AB89-11A46F7748D0"></topicref>
+<topicref href="GUID-2999C8D1-5C95-5474-BB02-11182CC3A407.dita"
+id="GUID-54286EB5-27E1-4CA1-95CE-1F54C25595C5"></topicref>
+<topicref href="GUID-426DECE8-311A-5720-88BB-F2A4805648D6.dita"
+id="GUID-5F09A318-A8A3-4C1A-928B-C50C99659D9A"></topicref>
+<topicref href="GUID-CCFF2755-02EC-510B-A052-33ABA318B922.dita"
+id="GUID-608D7E59-8551-4232-BB25-C4594A11A565"></topicref>
+</topicref>
+<topicref href="GUID-2DDEF473-B804-51DF-874F-ADF46CB03ABA.dita"
+id="GUID-3C3063E0-F7F8-4371-836E-1BDF4CA01474">
+<topicref href="GUID-837333EB-8BD1-551A-BFB4-05BE2056E2DA.dita"
+id="GUID-CC428E14-788B-44D9-9EE2-50FB9BEA2050"></topicref>
+<topicref href="GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271.dita"
+id="GUID-48159105-6EF2-4871-A73E-D82A6A4A93B6"></topicref>
+<topicref href="GUID-E0D10091-1F66-428A-919C-BE8C95DEACD1.dita"
+id="GUID-E634B5DB-1C8F-49F8-987C-540643C96AE6"></topicref>
+<topicref href="GUID-157445C2-BFF7-5733-B87C-CC249D8506CD.dita"
+id="GUID-FCF4AD87-D48B-4326-B3EA-E3FA32EA488B"></topicref>
+<topicref href="GUID-80F83F9C-2B58-5238-AE38-1193BAE72CB0.dita"
+id="GUID-FC357812-8601-40D7-B0C2-9C3278E17C06"></topicref>
+<topicref href="GUID-74E69324-7BCC-591F-B2A9-2932A3790966.dita"
+id="GUID-EB5DD57A-ADE3-4C45-900F-9E4D5564AD21"></topicref>
+<topicref href="GUID-9761C39D-30E9-5BFA-ABF0-2C2377E3EADB.dita"
+id="GUID-445CF211-21BD-426E-ACCE-8C49940C4221"></topicref>
+<topicref href="GUID-AF408E56-D2CB-557C-9D04-C6F7CE1A5424.dita"
+id="GUID-C184CD46-2ECB-4816-A35A-B2599D2B9ED4"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-4CBFA2E3-0EFC-5E10-A960-57A8FF9A6025.dita"
+id="GUID-5A18F535-4BFC-4E4A-AA87-313637B9331A">
+<topicref href="GUID-3E7193C2-143E-58EF-B21F-9C0E1C65226F.dita"
+id="GUID-1671EEF5-8FFC-4E3D-8180-EEBD3688DC01"></topicref>
+<topicref href="GUID-F6C2C8D4-D3B0-5441-BF2D-6F42489198D6.dita"
+id="GUID-8810C414-874C-46D9-B539-3126FE0CAA7D">
+<topicref href="GUID-ED373BF9-A555-50E9-974C-82522206EFE6.dita"
+id="GUID-8F18956B-F28A-4617-944C-E68E08149DF5"></topicref>
+<topicref href="GUID-5C79E34A-4048-57C4-A7CF-2D56DC9702FB.dita"
+id="GUID-721D72BE-1366-477B-B4E1-1312C869F458"></topicref>
+<topicref href="GUID-51C6E337-9E68-542A-B785-670417A55CEF.dita"
+id="GUID-30325BCF-C405-430D-AD59-DCFE3E0AB19F"></topicref>
+<topicref href="GUID-EDAF2886-5296-53BD-B847-0E0D9B5FBF7E.dita"
+id="GUID-D67F7156-7ACB-41B2-8709-DBEEFD53DF21"></topicref>
+</topicref>
+<topicref href="GUID-136540F0-108A-5794-A0FE-D95260F4E59B.dita"
+id="GUID-FBBE3945-8A61-4046-86CF-9881426C20E7">
+<topicref href="GUID-55165C57-0F32-5363-A2EC-E37B5B36B6E1.dita"
+id="GUID-A3688089-B2B0-47C9-838B-D8CA58E5F015"></topicref>
+<topicref href="GUID-E9E26499-1102-578E-93F6-A8E14181A25C.dita"
+id="GUID-F004E8E3-5063-4019-BDE0-BD0E03A41BD6"></topicref>
+<topicref href="GUID-530DBEB3-2379-5567-BB10-45D21D6FF80A.dita"
+id="GUID-1AF91FF8-FFA3-4ADB-AFBE-C192E6E163BE"></topicref>
+<topicref href="GUID-DC0E3782-82EF-5104-937C-41F24DF1E1CA.dita"
+id="GUID-D4D3538E-AB46-4612-81AD-218C83D4ECC7"></topicref>
+<topicref href="GUID-1B58FBA8-4E2C-5A99-A4B7-D7475E1B8F96.dita"
+id="GUID-911F1BE4-96A9-4D2B-93FE-EFA97389692A"></topicref>
+<topicref href="GUID-1501D056-D068-5DE4-9408-17B530D75FC3.dita"
+id="GUID-BE8CC43D-4241-42AD-B615-D5815B825C6C"></topicref>
+<topicref href="GUID-74A4A88D-768E-51B9-B50B-81CF35D5D692.dita"
+id="GUID-2F25AB3D-6C03-422F-B7CD-A2F0FCB6F115"></topicref>
+<topicref href="GUID-23E18D4B-FB09-5BA9-9D31-E4875A0F8955.dita"
+id="GUID-5EE863AF-E3B5-4AE8-AC2E-8A9F3D99EF84"></topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-0C47C23E-F6D4-4CCD-9B1C-C58CC9251898">
+<topicref href="GUID-82AF5F49-EE25-54C7-AEE9-D1F41BD5190F.dita"
+id="GUID-6E749BEC-C92E-463D-B97A-1CFCDEBDEF85">
+<topicref href="GUID-A25E730C-F34D-5464-BE78-650B3DEA4A88.dita"
+id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-10-1-28-1-1-3">
+<topicref href="GUID-0129AE17-B171-5CD5-8542-1DB738CBAB8B.dita"
+id="GUID-56006F41-8489-4AA0-802C-5C87E31A1C09">
+<topicref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita"
+id="GUID-004E14A0-EF73-4D01-80E7-CB336FCC8EEE"></topicref>
+</topicref>
+<topicref href="GUID-05A3E75B-25F9-54AC-8AF8-3E97F832E626.dita"
+id="GUID-27F1444D-382D-4D70-B8B5-A6697EC9FCAC">
+<topicref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita"
+id="GUID-DD699656-9313-4A88-9533-6CCD1F124D87"></topicref>
+<topicref href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita"
+id="GUID-291F4C8F-BB14-4427-9788-8CA73192C317"></topicref>
+<topicref href="GUID-74E3A687-18BD-5255-9CB9-F4B01878A1E1.dita"
+id="GUID-1B5B2D99-27F7-4580-B28A-F25252725A6B">
+<topicref href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita"
+id="GUID-32016C75-E615-4166-AA1D-43E66249200E"></topicref>
+<topicref href="GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC.dita"
+id="GUID-9D2B63B0-B414-402D-AEB3-14FD57569282"></topicref>
+<topicref href="GUID-E20C2C98-A294-551B-99CF-BE1DAA6F597E.dita"
+id="GUID-44D71103-F3FD-4CEE-A17B-C592DF5DDE36"></topicref>
+<topicref href="GUID-92C2317A-57B8-558E-984B-B10FD0404981.dita"
+id="GUID-CC77E42A-E1A4-407F-BDD4-8A54CF7006B0"></topicref>
+<topicref href="GUID-49A7E8FD-72DA-5D56-86BE-74AA9AAF7C02.dita"
+id="GUID-DCC06C59-F47B-4AF1-AD35-B4CFC602EFD7"></topicref>
+</topicref>
+<topicref href="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita"
+id="GUID-9CF36E35-6525-427B-ABBB-161C05208E05"></topicref>
+</topicref>
+<topicref href="GUID-AF28D930-6BD1-5DC5-9BE5-7512241E90CD.dita"
+id="GUID-A617E228-F4F7-4D4B-9AB1-7A1BDB718C44">
+<topicref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita"
+id="GUID-75912659-75D8-4CBA-B7DF-CD4CFB2EAC71"></topicref>
+<topicref href="GUID-0D16866C-F46B-5A2B-B974-324278588A1B.dita"
+id="GUID-A908B890-31B3-4E9F-88CC-7A75DA9A0A31"></topicref>
+<topicref href="GUID-4A9255D1-42A4-57FA-A4B4-42C552964047.dita"
+id="GUID-8401926A-CA7F-47F5-976A-54B36DD9BA22">
+<topicref href="GUID-CB568D14-1B0C-568F-B9CA-DDD15C53EEF3.dita"
+id="GUID-7C852666-A6A0-4489-8B05-813D777BA1D1"></topicref>
+<topicref href="GUID-E16070E5-379A-5818-81CC-B00059A40084.dita"
+id="GUID-0268D616-E865-4E72-81E1-77212149984B"></topicref>
+<topicref href="GUID-F4099885-55A0-5ACF-A73B-9C647B02B142.dita"
+id="GUID-AEB9445E-4112-49F1-BD6A-47D8B14288D2"></topicref>
+<topicref href="GUID-E6B3E575-80E3-58E3-9950-E0A5F6798861.dita"
+id="GUID-C28795BD-D95F-45C1-9563-3E6958A17B00"></topicref>
+<topicref href="GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808.dita"
+id="GUID-73FF3B32-B5CA-492B-A9A3-13AF0509D80D"></topicref>
+<topicref href="GUID-23014C8A-2A0B-5F6A-9BB2-6642E1EC0462.dita"
+id="GUID-5552D35F-8776-4392-888F-09A8DBFAB69D"></topicref>
+</topicref>
+<topicref href="GUID-5DACAB53-6D32-5250-9BC2-3E8597C3E2B2.dita"
+id="GUID-256CB959-806F-4636-AC14-76794551CF98"></topicref>
+<topicref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita"
+id="GUID-632BF0DD-4CB9-4B3B-AD8A-B4298F556D98"></topicref>
+</topicref>
+<topicref href="GUID-77ECD89F-84BB-55F1-9876-382E043F0C0D.dita"
+id="GUID-05E081CE-E4DD-4B21-8439-15DB87CD2F20"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+<topicgroup id="GUID-F86610F8-D743-4B2E-AFEE-4C574EF92FC3">
+<topicref href="GUID-F9F53050-AAFA-4685-8C62-033E585F061B.dita"
+id="GUID-490E52DA-6F7A-4654-8128-1598314FF925">
+<topicref chunk="by-topic"
+href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita"
+id="GUID-4CD4EE3F-59D8-4C7E-BA5E-B75AECFE655F">
+<topicref chunk="by-topic"
+href="GUID-D730D796-F640-4100-BD41-32515EF086F1.dita"></topicref>
+<topicref chunk="by-topic"
+href="GUID-9D6E0EB4-CBF8-48BC-A76F-FE6366D4D96E.dita"></topicref>
+</topicref>
+</topicref>
+</topicgroup>
+</chapter>
+<chapter format="application/java-archive"
+href="GUID-59FDCA92-D2AE-4F3D-8B23-ED7695F506CB.jar"
+id="GUID-8AE29805-3DF4-4D22-928A-C44C31F9D446" print="no">
+<topicmeta><linktext>API Specifications</linktext></topicmeta>
+</chapter>
+<chapter href="GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita"
+id="GUID-D1BC02D8-6A39-4189-BAA0-5E473B9AAB22">
+<topicgroup id="GUID-4E2277E1-0F1F-4BC8-B1B6-663D757CE7D0">
+<topicref href="GUID-A294084E-B5BB-54C6-A622-49F20E8C927B.dita"
+id="GUID-414C7955-9738-4692-B942-BF293A4433FA">
+<topicref href="GUID-D9AEB0C8-D219-5DC6-B3D9-6D029F190902.dita"
+id="GUID-BB6BF6EA-D3E9-421A-B4F4-AAD6CC8E4F1A"></topicref>
+<topicref href="GUID-37EF6DE5-0684-5C6C-8DBB-2BB03677A6FE.dita"
+id="GUID-843C25EB-6680-4FF3-BC83-6F4EFDB92579"></topicref>
+<topicref href="GUID-E5B657E4-C11F-5D9C-8505-95B7153074CD.dita"
+id="GUID-CD401AA7-FC3C-4CBC-9AAA-46B460B31C66"></topicref>
+<topicref href="GUID-CDF09E59-E085-5D77-9074-2809318FDFC3.dita"
+id="GUID-EAB2E68D-8FBE-49A4-A5E1-48AE072E09FB"></topicref>
+<topicref href="GUID-7833630F-1AD8-505F-8318-4712E124F5FF.dita"
+id="GUID-E723E3C6-A50B-4EA0-9C6D-31ED2FB3A3B3"></topicref>
+<topicref href="GUID-759B520A-0211-59C4-9901-154ED4E4530B.dita"
+id="GUID-E007FFA2-DEEA-4175-AC7A-7BA014179464"></topicref>
+<topicref href="GUID-1A9F7EFF-BAAA-5F89-9A1A-EFB859ECD00D.dita"
+id="GUID-D8994F62-D27B-40A4-9452-469658B2F200"></topicref>
+<topicref href="GUID-38EA1AE0-EA25-530C-8594-20AFCE3AD087.dita"
+id="GUID-58B7D66F-A39F-4C95-BFC8-3C3DE1E6ACCE"></topicref>
+<topicref href="GUID-8FE15DE1-9A15-5DCF-BA01-4272579B2BA6.dita"
+id="GUID-326085C7-4547-4551-B2EA-ED1E31CC774C"></topicref>
+<topicref href="GUID-82761635-4361-5C93-B159-C4B729187CB5.dita"
+id="GUID-0BD840D4-66A7-4EBE-9219-658931E02CDA"></topicref>
+<topicref href="GUID-AB62AA91-98DE-5750-842B-BB8700B90C21.dita"
+id="GUID-B256E895-BB58-4AFF-9B15-8EC548C9922D"></topicref>
+<topicref href="GUID-29D7CD15-9556-54B4-BA3B-C187ACC904C3.dita"
+id="GUID-1D0F4A10-3AB0-4EA6-B2F2-B9B4BE5F930E"></topicref>
+<topicref href="GUID-75A0D688-D586-589A-A24F-1D79E1FE6398.dita"
+id="GUID-26C786CF-D962-4532-8DA0-95C1FA3C8391"></topicref>
+<topicref href="GUID-679CD3E4-9CED-5C30-AE63-7405CF0ED412.dita"
+id="GUID-EA322D4E-453F-4E6C-A045-C7066BF59BF1"></topicref>
+<topicref href="GUID-B4ECB1BE-F591-500C-B165-AF1940963F0B.dita"
+id="GUID-4E841092-81DF-4F95-A8A3-495A8968E778"></topicref>
+<topicref href="GUID-09366A52-5A75-544C-B323-888A3B3B9043.dita"
+id="GUID-E650A88F-B247-42F6-BF73-5337A1E0186D"></topicref>
+<topicref href="GUID-42815858-78B4-5F86-8804-C5141371F70A.dita"
+id="GUID-0617D1B9-C532-4EB3-8D5C-81DE07EA02F9"></topicref>
+<topicref href="GUID-E61DA881-7362-5C80-AC14-15914919AE6C.dita"
+id="GUID-C83D95F7-76DF-4CCB-9C48-CD3D180271CB"></topicref>
+<topicref href="GUID-71580DD7-22D3-5C22-9E8E-2039BB649106.dita"
+id="GUID-311EC9D4-D0A0-4DB9-B13D-F12A009F82B9"></topicref>
+<topicref href="GUID-0A7ADA78-D575-5A07-A52A-F8A3ACBC2746.dita"
+id="GUID-64C3BA5E-9A08-4F7B-9985-6590874AF99A"></topicref>
+<topicref href="GUID-626D2500-7E0E-5A93-9202-03C13EA8C0C7.dita"
+id="GUID-29D8CDFD-9374-4B18-B9F4-8D3631164FEA"></topicref>
+<topicref href="GUID-656F8D90-09BE-5192-AB27-693B0171E85C.dita"
+id="GUID-974FEF07-5E50-4051-97CB-989CD1DF2F58"></topicref>
+<topicref href="GUID-2B6DF036-F127-533C-A7A6-CD27BD3C5FED.dita"
+id="GUID-AA95FFF3-9BF2-407D-A7F5-5DFA5CD22829"></topicref>
+<topicref href="GUID-C298632E-3E91-5A92-B5BD-1335CBC6882A.dita"
+id="GUID-7E15E347-BCFF-41C7-B6F5-80746927A54E"></topicref>
+<topicref href="GUID-1D25050A-4CC2-5017-BBE8-7AC380BAC027.dita"
+id="GUID-A44CBB2F-646E-4E77-99A3-232EA5C960FC"></topicref>
+<topicref href="GUID-092C5C46-7B19-5B73-B0A6-E5C153C1FB8F.dita"
+id="GUID-2489D6A2-CF3B-4522-8898-8E77BC8696A3"></topicref>
+<topicref href="GUID-1C26DA65-D763-5C52-9E07-EA8B9652A172.dita"
+id="GUID-09A9EE0C-F603-46BF-AF82-EFAD1AE1FB68"></topicref>
+<topicref href="GUID-DFD13812-E9AB-5B95-B46D-91C68A0B976D.dita"
+id="GUID-0BE5E71B-BCC9-4975-87E6-72D5C0897008"></topicref>
+<topicref href="GUID-A7DBF4A6-0D2F-5998-977D-A305623F6C67.dita"
+id="GUID-BA001A1D-8909-49B0-AF46-AE902F5FA732"></topicref>
+<topicref href="GUID-7A37251B-E0B0-5DFB-89E1-E7277122226F.dita"
+id="GUID-52D94D9D-5634-4F6F-A4FB-FD3C06947FE2"></topicref>
+<topicref href="GUID-F71D440B-215A-5831-A988-2B2123E805F8.dita"
+id="GUID-CB9CB32D-7C02-4D22-9E13-845D6F80E760"></topicref>
+<topicref href="GUID-9C46DE8B-222D-5E24-AB0D-37BDC8BC0AFB.dita"
+id="GUID-39890ED4-1422-44F4-8335-0D3EEED2ABCC"></topicref>
+<topicref href="GUID-0A4B1E12-5DC8-5D56-9B3D-4069CCC989F2.dita"
+id="GUID-E64F8BA1-FDB6-4F30-8CBE-5183B27CC11E"></topicref>
+<topicref href="GUID-7DE155F1-B89F-51B6-B7EC-C161402007A6.dita"
+id="GUID-6BE6A502-88CB-4F86-8C86-3D074A987E52"></topicref>
+<topicref href="GUID-076CA26D-BA1F-534E-9AE0-3A673190179D.dita"
+id="GUID-9BAB74BD-4F9E-4D70-8A63-63A48ED6E652"></topicref>
+<topicref href="GUID-686359E3-9C4C-507A-909B-91C32469ECDE.dita"
+id="GUID-FFE4F909-3379-41CF-9A3A-ECC9A04B19B2"></topicref>
+<topicref href="GUID-8C91182B-A54B-5622-B6D6-F13483586084.dita"
+id="GUID-C4B267DF-BD47-475B-BA36-B8219858FF20"></topicref>
+<topicref href="GUID-2C85F286-822B-5830-B819-D4C55D830CBE.dita"
+id="GUID-6377B635-1CE6-464F-B289-34743DB92CAD"></topicref>
+<topicref href="GUID-74E24DCD-79E8-5591-93A6-50288E9EBD6B.dita"
+id="GUID-DF2ADE48-44D7-4047-AA67-48E0527C29B0"></topicref>
+<topicref href="GUID-D5A1F9AE-4455-5993-8779-C94E985F12D5.dita"
+id="GUID-8C7BEC2F-445D-402B-8815-7109059AA298"></topicref>
+<topicref href="GUID-1AA1466C-707A-5A28-8B35-E9F4BBD69ABA.dita"
+id="GUID-AB588DC7-206B-4B16-B7A7-679267D5FA8C"></topicref>
+<topicref href="GUID-9920FF2F-DF64-55DD-B824-2BEE6215EFF2.dita"
+id="GUID-CBF86A64-53D7-46D9-889C-B8084198BC94"></topicref>
+<topicref href="GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3.dita"
+id="GUID-1E7EC108-8DEB-46DA-9B13-0B7E2365DF91"></topicref>
+<topicref href="GUID-73B12E66-A01D-5ABC-BEFF-73558DBAB9E7.dita"
+id="GUID-D171E33E-D70E-45C7-A47F-697103F915A1"></topicref>
+<topicref href="GUID-82EF851B-9154-5C12-A18F-355D1BB07F40.dita"
+id="GUID-735DFC4E-5D2A-4C0E-BD16-771A3FF00376"></topicref>
+<topicref href="GUID-108956E7-718F-5839-A59B-7AE56D59CE74.dita"
+id="GUID-1DEA90CA-29CC-4429-9206-CCF935BF4CE1"></topicref>
+<topicref href="GUID-A35B7FD6-AAD5-53AC-A1B2-594D9CB78929.dita"
+id="GUID-64731F57-C977-49C0-AD6C-E858EC08DDE6"></topicref>
+<topicref href="GUID-B1A546D6-8158-5ACA-A41A-7CC2935A5411.dita"
+id="GUID-BF4243D5-4309-4E09-81C7-449EF94C5D44"></topicref>
+<topicref href="GUID-7F04A8FF-7D3B-53DA-95D1-7BBB9C2949CD.dita"
+id="GUID-08B4B7AF-E8BB-440F-88D6-5B5022336EB4"></topicref>
+<topicref href="GUID-DCC98EAD-7BA7-5018-B7D4-F7E768159F2A.dita"
+id="GUID-86441AD0-6744-4C8F-B564-A293CF82679C"></topicref>
+<topicref href="GUID-7EDA0ED7-D560-5E6B-BF11-F4154EAC0587.dita"
+id="GUID-535A0203-C764-42CD-85AA-88E847ECB9DD"></topicref>
+<topicref href="GUID-D71DBD74-EC70-5A04-AF68-C4A310AE1AED.dita"
+id="GUID-F25A9416-9BBD-45E3-A910-0EFE2330513F"></topicref>
+<topicref href="GUID-0E12D791-D9AC-5F7E-9AB7-363D706BC516.dita"
+id="GUID-51399A5A-20EF-4CC6-A13B-D296E2A96EFB"></topicref>
+</topicref>
+</topicgroup>
+</chapter>
+<chapter href="GUID-A837D8F6-B9D3-5119-8C63-51772B388999.dita"
+id="GUID-9CD95C3D-A4B3-49C3-9791-EE286997845D">
+<topicref href="GUID-AFF0B669-E0D8-5533-A105-0F5EBC6AF5E1.dita"
+id="GUID-0C97FFBE-7CA1-41DB-B880-BA5E9E995DFC"></topicref>
+<topicref href="GUID-617A7B7E-DF91-5757-B473-D2E0B665F5E4.dita"
+id="GUID-8F6FA5A4-DCA3-441B-AD61-E6D60BB8EF7E">
+<topicref href="GUID-28227926-2D5A-500C-B2BC-0EE6CC077DBE.dita"
+id="GUID-23F491F9-667D-486B-9A40-EEC16B38EA7F"></topicref>
+<topicref href="GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita"
+id="GUID-593CF9D4-47ED-461A-AE5E-B3D79E0EAE23"></topicref>
+<topicref href="GUID-F35C5336-907C-5B2A-92C6-F8883D49996E.dita"
+id="GUID-923ACCC0-A099-4AAA-B578-DA80718F5CB9"></topicref>
+<topicref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita"
+id="GUID-FF34C5BF-1E9C-430D-9ED9-02CBD4FF31DD">
+<topicref href="GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35.dita"
+id="GUID-1F0869ED-476A-4530-BDEE-0E95A21F8EF5"></topicref>
+<topicref href="GUID-3F880EFC-E891-5C71-8360-1BBB54367AFA.dita"
+id="GUID-76E692D9-14AC-4BC4-B9A8-0E448625D6E7"></topicref>
+<topicref href="GUID-A6116E8B-9C4A-5B9E-AA8A-BE031408AA2F.dita"
+id="GUID-D7FF30D4-CE05-4967-9310-A21175739BF0"></topicref>
+<topicref href="GUID-188F9462-F805-522A-84FF-770EAB045504.dita"
+id="GUID-BA1527F7-2791-4451-A5AC-24E79D1967BA"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-687AFC9D-ADB7-5190-A535-C54B835825DD.dita"
+id="GUID-5DD895F9-8E4E-4CCB-94A3-A11D655BEF33">
+<topicref href="GUID-5FFBC0B0-FC6E-5D60-868B-064DBEB632E0.dita"
+id="GUID-C2AEB0E6-AEAE-4A9B-B275-16E55378DD25"></topicref>
+<topicref
+href="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1.dita"
+id="GUID-0A3958EC-287D-4770-A064-333E09F31156"></topicref>
+<topicref href="GUID-07C031C2-7FFC-5B0E-9691-E6E678E65C4B.dita"
+id="GUID-05CFBC8C-8F8B-41C1-AD0E-545110611B51">
+<topicref href="GUID-E80AA33B-E5E0-5F4B-9A7F-65B357F7161C.dita"
+id="GUID-706A0550-DF15-410F-B14A-B06513D05E9E"></topicref>
+<topicref href="GUID-C39CA508-86F7-5B99-9390-56980DD0EFFB.dita"
+id="GUID-12F5F8CD-CE2C-4AD9-B71A-054101C9387C"></topicref>
+<topicref href="GUID-10F1D390-2CB6-584B-B760-E6A6E1D8FDDA.dita"
+id="GUID-32C6B2D2-E718-416C-B937-1475CE2333F6"></topicref>
+<topicref href="GUID-F9605837-2209-500D-AB62-48A433489C5E.dita"
+id="GUID-6591B7B9-C2DC-423B-9EA8-2AE8B5978399"></topicref>
+<topicref href="GUID-383A617C-474B-509D-BA37-3515BCC5F1D1.dita"
+id="GUID-5DDCCD20-6CDD-4C3E-A96B-5B42201A966C"></topicref>
+<topicref href="GUID-11BF98BD-814A-5CB8-B83E-6D14F38F1783.dita"
+id="GUID-EB11187D-AE54-4C12-B987-AABBAAE8CF0F"></topicref>
+<topicref href="GUID-AECDAEBF-777A-579B-92F8-560FD7FF86E7.dita"
+id="GUID-5B82098D-C88E-404B-ADA2-59906768A92C"></topicref>
+<topicref href="GUID-32F00078-6084-5288-9D3F-9F8D70514799.dita"
+id="GUID-C9CA311F-22CA-4118-8B8A-A8CA1F95417E"></topicref>
+<topicref href="GUID-E932B20C-5155-530F-9669-6F5BB1F1AD41.dita"
+id="GUID-12160735-9644-41C4-9CBC-2E8CC74AA801"></topicref>
+<topicref href="GUID-89ADFC64-AF9F-51B1-AC5F-493897226270.dita"
+id="GUID-CDB4DAD9-AB9D-42CB-A835-8D007BDD70A0"></topicref>
+<topicref href="GUID-37057FD5-7ED0-5B18-9C28-39F6816D7627.dita"
+id="GUID-5762C0E1-A3DE-4485-85D6-2ABD81D00598"></topicref>
+<topicref href="GUID-914DD950-4332-5F23-B725-F4D330DB19EB.dita"
+id="GUID-CEF11941-BE6A-4964-9B2B-EEFEF8183F54"></topicref>
+</topicref>
+<topicref href="GUID-141633B8-A3D4-5BBB-97C5-3D928746ECE7.dita"
+id="GUID-464891BC-BC27-428D-86C8-AB37D6749AB1"></topicref>
+<topicref href="GUID-50FD71BF-2DDA-5E80-9904-82DC90FCE6DD.dita"
+id="GUID-CFC494E0-14DB-4A16-B6C8-368C15DD3B3B">
+<topicref href="GUID-0D619063-F2DB-53FC-A5E6-BC09AD915FA4.dita"
+id="GUID-26ABA92C-1FC2-4217-95CD-2148D765CF2F"></topicref>
+<topicref href="GUID-B6088C0A-20AE-5108-A28C-9CA884205493.dita"
+id="GUID-CDB7CE11-C55C-4C6E-AF9C-EEF955F9A77B"></topicref>
+<topicref href="GUID-7F9F0EB3-8F0E-55BB-9864-C80FE6FC1528.dita"
+id="GUID-94B65FE4-5786-411D-913D-7FD7391854E5"></topicref>
+<topicref href="GUID-36743EC8-5A64-5FF5-8632-56CBBD04EC12.dita"
+id="GUID-7DA9B977-276D-43E3-82FA-57C98CA0175E"></topicref>
+<topicref href="GUID-97C0A5B1-99AE-5F71-9092-A6976E54AEA7.dita"
+id="GUID-64622117-E4C6-4268-8454-80580FDAF8A3"></topicref>
+<topicref href="GUID-0142B290-DA6C-5574-83D7-7555D804D9B5.dita"
+id="GUID-F7146146-D056-4A4F-A93D-B7F8171FBA7E"></topicref>
+<topicref href="GUID-FFD56DA3-9301-5679-9209-A70CE63A34A2.dita"
+id="GUID-FB17596C-54BE-44E7-9286-4D77DD806CD1"></topicref>
+</topicref>
+<topicref href="GUID-F6780E5A-26DA-5453-B9BE-11039CFA4FFB.dita"
+id="GUID-9DFEE386-B31B-4D89-BA15-5BD0A51F54FA">
+<topicref href="GUID-66470976-7B8B-582B-B32B-4010C95052FF.dita"
+id="GUID-29B72B47-0794-4913-8D54-770A5AF26E5F"></topicref>
+<topicref href="GUID-9574041E-183D-5C3F-8429-A62323B97739.dita"
+id="GUID-EDB3D510-A85E-46A4-B70D-3D4EA4A912B5"></topicref>
+<topicref href="GUID-A4B391F0-058F-5B51-8D28-6A7B5C4A1BB9.dita"
+id="GUID-2E90F23E-4A0C-45FA-BB3B-9E55350402A4"></topicref>
+<topicref href="GUID-9444E57C-1C2F-5EAC-B162-25FC27BB9516.dita"
+id="GUID-A9B781A6-3ED9-4FAA-B66A-CA6B0928862C"></topicref>
+</topicref>
+</topicref>
+<topicref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita"
+id="GUID-D535371B-A642-4B9E-AA02-0B9380F94C91">
+<topicref href="GUID-0BF25E2A-99B9-5558-B805-019430409518.dita"
+id="GUID-D38807AA-B44F-4D61-B1E2-40A81885B60A"></topicref>
+<topicref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita"
+id="GUID-C4C8F244-41A9-479C-B9FE-0F5D5CD1E5DA"></topicref>
+<topicref href="GUID-E08F6BA9-F1A9-50D5-8CBE-8304BBA24D1F.dita"
+id="GUID-13880765-CF2C-4422-8B29-55FE70CDF90D">
+<topicref href="GUID-FCE138BF-A471-5864-AE4C-8D89EF5F2BB9.dita"
+id="GUID-D213BE36-7813-4707-A9B2-A3CC9EF3A0BB"></topicref>
+<topicref href="GUID-B5576E47-CBB6-5E50-91BD-1CA1425EACE8.dita"
+id="GUID-380CAF93-A49B-4012-AB28-33E99C27595A"></topicref>
+<topicref href="GUID-049A089E-FF08-5706-8485-8C9A5A0BCF6F.dita"
+id="GUID-5911B66D-C8B6-499D-B8D8-A9C3C8F8B3F1"></topicref>
+<topicref href="GUID-2AD64552-440B-5439-885B-BE71DE0E8F1F.dita"
+id="GUID-F1786AA7-A9F5-4A4A-8A60-89419347C057"></topicref>
+<topicref href="GUID-30EB4252-4CBA-5174-9133-E79AC9AEAEBF.dita"
+id="GUID-5F88956A-FF4C-44D1-B7B7-A95723FEE9D4"></topicref>
+<topicref href="GUID-FA18838A-F0C6-5241-8913-BFB46571D908.dita"
+id="GUID-A2F21D7F-3667-45CE-97CA-40E84B8E766A"></topicref>
+<topicref href="GUID-D37576D8-1BD6-520B-9C69-60F2F89E4452.dita"
+id="GUID-1A55D5AF-9A70-440D-B408-77329C138710"></topicref>
+</topicref>
+<topicref href="GUID-763DCEF4-C960-58A2-99DC-7FFD3187BFD4.dita"
+id="GUID-6113FFE8-FAA0-4ACF-A8ED-0C384D085012">
+<topicref href="GUID-1BA6BC6E-0B77-5B8A-AEF6-9E5DBAB36254.dita"
+id="GUID-C82C0EF0-3B03-4C3F-8028-8176C03E9AAD"></topicref>
+<topicref href="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita"
+id="GUID-D15A0830-183A-4340-B64A-35C57FD93763"></topicref>
+<topicref href="GUID-D0C1493F-BA2F-517B-9D96-073DCF3D7923.dita"
+id="GUID-F0F53682-7E65-495F-A61E-13303AF5DAA9"></topicref>
+<topicref href="GUID-915A1B7D-10BB-5B4A-8C5E-99AD28375AD7.dita"
+id="GUID-9D883FA8-70D2-46C8-8D10-0693643205F5"></topicref>
+<topicref href="GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita"
+id="GUID-7F16A95F-C7A7-42D6-89FB-E89FD4FBA006"></topicref>
+<topicref href="GUID-D173BE00-1DE7-53D0-BBEF-CBF7CACB0193.dita"
+id="GUID-EEBCE412-333D-42D0-9B54-CB8BF3664338"></topicref>
+<topicref href="GUID-5B442231-6E71-5F35-A27E-B14AEC2FC105.dita"
+id="GUID-618CB2EC-B50D-4217-84CA-712605697F63"></topicref>
+<topicref href="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita"
+id="GUID-0EFFA7F4-6CD4-4C63-A096-1BB3DFCC08ED"></topicref>
+<topicref href="GUID-33716081-180C-5DDB-A5D2-0EC61357250D.dita"
+id="GUID-CB3A8C55-6DD6-4550-9A2A-7844796433B4"></topicref>
+<topicref href="GUID-75AFF4B9-1F95-585E-9354-EAA6271251FA.dita"
+id="GUID-CC36747D-6D71-468D-AFD3-55F3C9A4A307"></topicref>
+<topicref href="GUID-E0284006-9173-5BC5-A899-E0873CA1AE1F.dita"
+id="GUID-D44BB8E1-000F-4B2A-B8FF-26AF45EA0DD7"></topicref>
+<topicref href="GUID-8061E4C1-4E63-53F6-9863-D0D7BB8A2E5D.dita"
+id="GUID-87498047-1038-432A-8C34-7D3FD466E9E7"></topicref>
+<topicref href="GUID-0E3E2FAD-FC85-5995-8B5C-8F1C1A4186D0.dita"
+id="GUID-C922F189-790F-47F3-8493-29127E22BA42"></topicref>
+</topicref>
+<topicref href="GUID-81835322-5EF7-5839-9DC1-9A3FD396BD36.dita"
+id="GUID-95315A47-CFC8-46B2-8FD9-5AA31A301C03">
+<topicref href="GUID-ADDF9C0F-32D3-5CB1-B3B5-2FAD3A4EC278.dita"
+id="GUID-B4F05A1E-7FBE-4075-AEE2-3C329268AF2A"></topicref>
+<topicref href="GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43.dita"
+id="GUID-1F3A418F-06FD-413B-B979-4F345F3433E6"></topicref>
+<topicref href="GUID-4406BDE0-8256-5F97-9FC5-BBFD11D9C4A3.dita"
+id="GUID-00C2EAAF-F434-4721-8A48-5868DCDF8DF3"></topicref>
+</topicref>
+<topicref href="GUID-594488FF-02C9-5066-85DB-5F88A754AE18.dita"
+id="GUID-529D036F-5648-4FBD-BE20-15E5644DBFB6">
+<topicref href="GUID-C762E5B4-A7E3-5CAD-B639-A31F5D1899D3.dita"
+id="GUID-CC98BDD2-4F34-4F29-A471-C4A1D93C34A6"></topicref>
+<topicref href="GUID-FF312AAD-E40B-5238-A31C-B34AFD892D5A.dita"
+id="GUID-0E3B646A-4623-48AB-9E84-525A94C32978"></topicref>
+<topicref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita"
+id="GUID-3D78D4E4-4C44-4218-8ED9-C6B9D649A13C"></topicref>
+<topicref href="GUID-A27A05A2-B161-54D2-92E0-8620B01BFD44.dita"
+id="GUID-448B014F-F311-486F-92D9-202CC2256351"></topicref>
+<topicref href="GUID-CF8287B9-2063-5316-A1BF-7DFC58FCDE30.dita"
+id="GUID-B384D25B-7E5F-41B6-B548-B5C62E6AB477"></topicref>
+</topicref>
+<topicref href="GUID-12D8C373-5199-5B89-9910-00F769AC164A.dita"
+id="GUID-1779B512-DFE4-44FF-AB75-7A7E6B6BC78F"></topicref>
+<topicref href="GUID-917413FC-0AC0-5768-B5AD-36BD2EDCB1FF.dita"
+id="GUID-34E52B35-D3B9-4F2B-8F68-72C8AD06B962"></topicref>
+<topicref href="GUID-7FF363B0-B05F-5490-8D9C-59061B905381.dita"
+id="GUID-0C3DF695-192B-4A54-A540-18697060D88B"></topicref>
+<topicref href="GUID-61459132-3AC2-55D3-AC28-D6FA689409E6.dita"
+id="GUID-C7B3FDC2-FBD1-4289-B41E-AA1BF7A1E103"></topicref>
+<topicref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita"
+id="GUID-6E3B160A-59DD-4F3D-8A5B-63AF086A59CD"></topicref>
+<topicref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita"
+id="GUID-98D1B711-B911-4C20-853C-0990338078AF"></topicref>
+<topicref href="GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita"
+id="GUID-A05327D2-3C75-4443-8201-6DA855DFF228"></topicref>
+<topicref href="GUID-C07B506E-A1C8-537C-A7BF-DD7F449DF8A5.dita"
+id="GUID-3916AFBE-BB62-4EC3-B0E4-228D70D861E4"></topicref>
+<topicref href="GUID-201E6D4C-5F0F-5AA2-BC79-91E3C62C8971.dita"
+id="GUID-04BA9C83-E56A-4DA4-9016-18D434A678C6"></topicref>
+<topicref href="GUID-F9455FE8-5247-58D5-ACEF-52753B88444F.dita"
+id="GUID-7B8CA9E1-011D-4EC9-A3BE-76018A324972"></topicref>
+<topicref href="GUID-380A8C4F-3EB6-5E1C-BCFB-ED5B866136D9.dita"
+id="GUID-006C18C5-7751-46F7-AAA6-3F1CF3CAD92F"></topicref>
+<topicref href="GUID-D525B9A9-6B32-535B-A282-60C85A48D3FB.dita"
+id="GUID-A40F9B5E-57BC-4D5D-A1E0-A01FEB841AF1"></topicref>
+<topicref href="GUID-AE3BE603-21ED-5DEA-B1E9-0F1ADBED06D0.dita"
+id="GUID-D14AE4DF-D3FF-449C-9D0B-5235C8290A75"></topicref>
+<topicref href="GUID-2C1DB75C-FB12-520C-85B1-57F1EDB61E3B.dita"
+id="GUID-8B88B4D2-806C-4641-ABD9-6658DDE81EA4"></topicref>
+<topicref href="GUID-F5D49215-B34A-5FCC-A7E1-0AF3275694B3.dita"
+id="GUID-49E89483-706A-4941-8C9C-81B6B2DB192C"></topicref>
+<topicref href="GUID-6025A68F-625B-570A-87D7-2C11E66044D4.dita"
+id="GUID-2256E4AF-E870-4E0C-AE64-85B000006637"></topicref>
+</topicref>
+<topicref href="GUID-49397CFD-955A-5DF6-9251-368C44224966.dita"
+id="GUID-389F7E83-C387-47DC-B3AC-424524807268">
+<topicref href="GUID-28B9B737-AA79-5595-8DDE-7DD52402C0B9.dita"
+id="GUID-A80F5C8A-E813-47B6-A5CA-6B5674B17A14"></topicref>
+<topicref href="GUID-B1800856-3516-5D22-B1C5-556866CDDF46.dita"
+id="GUID-6D79C5F5-194F-4B33-AA70-1CA561ECC80B"></topicref>
+<topicref href="GUID-038747F2-E5A2-5739-BFF5-69B6BD0DCEB2.dita"
+id="GUID-44643F07-36AF-4D96-A539-FC4B9C152CF1">
+<topicref href="GUID-5A3A3EA0-6C03-56F2-B277-B61A27ABFF9E.dita"
+id="GUID-E0888BCE-275A-40B6-9A0B-C47F37109F87"></topicref>
+<topicref href="GUID-3BCA55F8-3867-579B-8D81-C540A32A8462.dita"
+id="GUID-C813C1E4-BBDE-4D55-AC15-6C5D3756AA2B"></topicref>
+<topicref href="GUID-14A0FC93-2AD9-5B33-B423-2CCAD3C96B5F.dita"
+id="GUID-38A5508C-2705-4814-BE92-4563962D3FFE"></topicref>
+<topicref href="GUID-C2709212-FD91-5245-9A1D-0E8114D7B202.dita"
+id="GUID-630ECD4A-97A7-437E-B7FD-79F50E3F38A5"></topicref>
+<topicref href="GUID-DA793067-32DD-5D4D-A0E6-E05DF9047529.dita"
+id="GUID-1B8B6571-16CA-4DF0-9DF2-EDFEE71A253D"></topicref>
+<topicref href="GUID-8E7CCFD7-F820-596E-BACB-AE43878C6CD8.dita"
+id="GUID-E0AFA1E5-BAB2-4945-994F-74BAE7F019C5"></topicref>
+<topicref href="GUID-2AE024D5-B34B-5E7E-BC7E-8C45E80173C5.dita"
+id="GUID-C2CCF7D7-C7A6-45FF-91CB-56E5E50C1D2E"></topicref>
+<topicref href="GUID-4D4CB4DC-9B9A-5256-B949-C5E9F369D9C6.dita"
+id="GUID-DA980A49-28B4-46ED-967C-38E5043F999F"></topicref>
+<topicref href="GUID-DD7D33BD-0DDB-584C-9362-AEECFA1EA9A7.dita"
+id="GUID-01AF0C63-B27D-47EA-9C5D-6B102276AD38"></topicref>
+<topicref href="GUID-F13D4492-4E0C-5D7A-A30D-9E79F092CF72.dita"
+id="GUID-8BDDAC98-9EF6-4F4C-8AE1-368A381EF3CD"></topicref>
+<topicref href="GUID-6CB40FC5-5CBF-592C-B27D-29922C3815DC.dita"
+id="GUID-43FD2368-D9CC-4524-A4A8-1AC7BBEB9457"></topicref>
+<topicref href="GUID-3F1FF06E-4190-5AC7-86C6-6732B632BA1A.dita"
+id="GUID-8E827A06-A70D-44CD-AC67-21E488535411"></topicref>
+<topicref href="GUID-C5F4CF0F-EC1B-595D-8C95-41891CB5930D.dita"
+id="GUID-6767BCF9-9CF3-4548-ACAB-6034CB9688D3"></topicref>
+<topicref href="GUID-F9E10A82-88E9-57AA-AFEE-3C1A21BF05BC.dita"
+id="GUID-B8C3CF6C-D2DC-4094-B128-63F85327316D"></topicref>
+<topicref href="GUID-F4C3DDE1-F7D3-5256-BABD-34759DCA57BF.dita"
+id="GUID-A4DEB860-CB91-4EC9-B43E-9F645504A5E1"></topicref>
+<topicref href="GUID-F0923110-D5D9-56D7-8CBC-82CAE062BC1A.dita"
+id="GUID-75731C9E-71BE-48D5-9916-7A51BB3C40E4"></topicref>
+<topicref href="GUID-7971886A-8ED0-5924-9BC0-A163BA499888.dita"
+id="GUID-02A10985-A977-4A36-9230-3926E77412CF"></topicref>
+<topicref href="GUID-139E7235-4F23-5F0E-A969-6D7165AE5298.dita"
+id="GUID-EE0C39EA-9FF5-4878-8A5D-96A4113C6E72"></topicref>
+<topicref href="GUID-7A22FBD7-F306-578C-BD54-BCF74B7343CF.dita"
+id="GUID-636390E4-FBE0-4654-9EDE-ED8B0481C0D9"></topicref>
+<topicref href="GUID-8FF4D117-920A-5AFA-ABB3-C0101EE2B7AA.dita"
+id="GUID-90EAFBBE-DFE0-4E62-AEF3-B26EC3594806"></topicref>
+<topicref href="GUID-DDE06BD5-2515-59FD-B91F-4C78A768533D.dita"
+id="GUID-A85CF5D3-4AE4-4734-A7A4-F7BCF2F9DE30"></topicref>
+<topicref href="GUID-AD5C89AC-51CD-5CC0-961C-62F38E9BEA33.dita"
+id="GUID-526CFF72-253D-4A5B-BFE6-AC241BF6EA59"></topicref>
+<topicref href="GUID-2273C35F-C8FD-5321-BAE8-4995C5B374E5.dita"
+id="GUID-151E903B-AA41-45D5-B116-8E56D3E90B68"></topicref>
+<topicref href="GUID-023268BB-8C52-51A1-9E3B-4C7E265DFDAB.dita"
+id="GUID-C3745A37-2DEB-4765-9879-F93D9ED34611"></topicref>
+</topicref>
+<topicref href="GUID-7D3B5008-CB40-504D-90A8-92DE482977CA.dita"
+id="GUID-738C2604-8EFD-48BD-8DA1-A2CAF4F0938F">
+<topicref href="GUID-EDCBBB5E-FAAD-50A5-9EE4-B4F399B77CE9.dita"
+id="GUID-74D1F22C-271D-43C6-B7AD-B946CD055D7D"></topicref>
+<topicref href="GUID-3A05CD69-0AB6-5549-B18A-842F49C06874.dita"
+id="GUID-DF58D8FE-46FB-46E4-AC67-E23503B26385"></topicref>
+<topicref href="GUID-2910AB26-CA7C-50B9-A187-0C8406C1ED1F.dita"
+id="GUID-EB199791-90C6-46B9-A8E3-C0A7E704B418"></topicref>
+<topicref href="GUID-5AF0B573-4351-5735-92A1-4F29BCF9A164.dita"
+id="GUID-F81D3432-200E-49A8-B95D-8F795558C3C0"></topicref>
+<topicref href="GUID-A12A6C54-7E9E-5ECD-A0BF-8F980160A0D2.dita"
+id="GUID-6FEDCFF6-BDA5-424F-B420-7FDBC043D98A"></topicref>
+<topicref href="GUID-B1C79738-0449-5C26-BA8A-4612C6BF652F.dita"
+id="GUID-01C8BD0C-ED2B-4AD0-8B73-86264A009829"></topicref>
+<topicref href="GUID-7FA5898D-8898-53CE-875E-1DE97BE02C81.dita"
+id="GUID-6690FDC7-0E71-4F8E-9C2C-A19C2C9DA7C3"></topicref>
+<topicref href="GUID-2C68AC8D-6767-5865-B684-CB627C20C6DC.dita"
+id="GUID-9D189C9E-855D-4BD8-B98C-1F530BABD93F"></topicref>
+<topicref href="GUID-60B98AFE-6DE6-5086-B70C-F377562E60D9.dita"
+id="GUID-308D98D5-3195-492D-8F13-BED849CB7800"></topicref>
+<topicref href="GUID-7A52BD40-E1C1-5C67-AAA0-1B79A34CF24C.dita"
+id="GUID-9C5F1486-339C-42E6-A116-7BAFFEF366CF"></topicref>
+<topicref href="GUID-E6CB4891-AFC8-50BB-A2C8-057DB1269DA9.dita"
+id="GUID-8A6E962B-07CA-439A-9E14-0A7AB599E85A"></topicref>
+</topicref>
+<topicref href="GUID-CAC07A47-1475-5152-83AA-E59FD3AFF321.dita"
+id="GUID-DB22F14A-973A-47B4-B5F6-050BBA7FA10A"></topicref>
+<topicref href="GUID-50F216D0-242A-5796-BDCC-7AAB28535458.dita"
+id="GUID-5ABACDE9-3B24-419A-8AED-5C99D0586C0D"></topicref>
+<topicref href="GUID-5986717C-C777-590D-8487-CB8ED488E975.dita"
+id="GUID-8FABA914-CF67-4188-AF0B-D7CAEF0B5708"></topicref>
+<topicref href="GUID-BBBB5000-90A2-503A-9521-2FC6DEC69DC8.dita"
+id="GUID-CE4D579D-5D83-4245-877D-02C6655E710C">
+<topicref href="GUID-B68FF699-923B-530E-A877-86507B1D42F1.dita"
+id="GUID-71FDFB26-714C-468E-BE49-70F647B72F76"></topicref>
+<topicref href="GUID-619A607D-CA89-5A98-887D-5B1D2A5F921C.dita"
+id="GUID-AA9AF5B8-79FF-48B0-9C15-22F890BBCD9E"></topicref>
+<topicref href="GUID-48BD628F-F47F-535B-B148-7425A6704FC2.dita"
+id="GUID-F400CED9-B0D6-47E1-8B44-70431A3E28BC"></topicref>
+<topicref href="GUID-947317B7-7E12-509B-9A16-F0604D7F8BA2.dita"
+id="GUID-355FE231-C519-4097-87C8-23910F28EC46"></topicref>
+<topicref href="GUID-E63AAE78-335F-5BD3-BECA-1709C3C7FB3F.dita"
+id="GUID-DD9CCA9B-6585-463C-9254-123407C35065"></topicref>
+<topicref href="GUID-A668442E-0768-5AF1-829B-A80864756A0B.dita"
+id="GUID-50CE2815-D367-4F74-8B56-3BABC42AD2CE"></topicref>
+<topicref href="GUID-96C007D1-9AA0-57DC-A6DC-8B6E5A2DF644.dita"
+id="GUID-91B6436A-154B-40CD-95FD-CD8EEDF2B10E"></topicref>
+<topicref href="GUID-46B5E7B1-F0C2-5C1E-972A-C339E7515225.dita"
+id="GUID-BCD31B22-4D66-45F5-A2FC-B8AC08F15629"></topicref>
+<topicref href="GUID-5822CE94-C8AF-5F81-AB3F-E95B44265065.dita"
+id="GUID-E8CB7C24-0DD5-4608-8490-B4FB69A2FC56"></topicref>
+<topicref href="GUID-66C1F45B-FA94-5724-AD8F-371EAE92B7E9.dita"
+id="GUID-81A14573-35B6-4501-93F7-5BCB2C4BB8C2"></topicref>
+<topicref href="GUID-AF8280C0-20B2-5D68-BFF5-7D9D1CE989DD.dita"
+id="GUID-B0E11B8B-5B57-4792-83F3-552F01AFFF1F"></topicref>
+<topicref href="GUID-3BB6E558-017D-584A-BCB7-AB1DD80C5A90.dita"
+id="GUID-E1B9D4B9-B4FA-4EF5-8DC5-64CED1AD7BB4"></topicref>
+<topicref href="GUID-E71D8907-236E-5948-9594-E14E34A31DC8.dita"
+id="GUID-D665C587-661E-4B13-B6AC-9B2A9724BFFC"></topicref>
+<topicref href="GUID-6C1D941B-ADD1-5BD3-9045-53B66253316B.dita"
+id="GUID-7B980F77-3D62-428C-AFD6-4AF79A46F4A4"></topicref>
+<topicref href="GUID-432FF981-010F-540B-834F-FF924238AA2A.dita"
+id="GUID-5C8742D4-874D-4AE9-8CDD-AAF53D82290A"></topicref>
+<topicref href="GUID-BB0C4204-3C31-57D1-B1C5-6D2FCF571931.dita"
+id="GUID-AC2BEB6C-6EC3-49F8-A272-6E6978E32251"></topicref>
+<topicref href="GUID-A8ECAA53-9094-5C0A-8893-2757559C15F0.dita"
+id="GUID-0CBF02A5-6B4E-4FA6-A836-A6532A89E7BF"></topicref>
+<topicref href="GUID-74E94DC3-88C7-51BE-9354-C49B3A7A8B03.dita"
+id="GUID-42AA4EC1-D518-47E3-AB54-21F7EEB84E62"></topicref>
+<topicref href="GUID-9F22E663-8BC4-5502-879F-E6B790465E74.dita"
+id="GUID-F5363BB6-A261-4857-A2B7-E3C393BA6EA5"></topicref>
+<topicref href="GUID-6A783365-3CC3-5D7E-9F1C-D3585C4AE66C.dita"
+id="GUID-D3D0BCE9-9055-4751-A73A-1D53834EC1E2"></topicref>
+<topicref href="GUID-A1F037FE-0D88-5108-B96E-4ADE6B3A4A3E.dita"
+id="GUID-22546FEC-07FB-479C-9066-81DB7E708FF3"></topicref>
+<topicref href="GUID-7C4A8920-359F-5328-8D28-2AFBA25A6A9E.dita"
+id="GUID-1C881D1C-4F11-47A0-90CF-C70600D7375F"></topicref>
+<topicref href="GUID-36AA53D2-A117-5D80-A5B4-67EF865DC40E.dita"
+id="GUID-2B2B355F-85F2-48EC-99B4-3A37CE08C492"></topicref>
+<topicref href="GUID-567D36A2-1097-5D44-B1B2-896F0F812A32.dita"
+id="GUID-3C967120-1F66-43EC-B100-8DAD9042729F"></topicref>
+<topicref href="GUID-34DB27CB-9010-5B7F-A51E-0CA794147CAE.dita"
+id="GUID-B7D6EA1F-F8DE-4424-98F7-3F056478F2DE"></topicref>
+<topicref href="GUID-1879BEEB-9945-55F4-817E-8D6117055B1D.dita"
+id="GUID-07DEF2C9-32EB-450E-879B-11874756A5C3"></topicref>
+<topicref href="GUID-A05F0124-AE28-5088-8AFE-22956D1549AD.dita"
+id="GUID-7B5FA4F9-2931-4E3F-96A2-9A5CEC393D78"></topicref>
+<topicref href="GUID-D553D41C-D724-510A-A239-66CC158D6984.dita"
+id="GUID-187A6B34-8311-4D0C-92BA-821726CFD36A"></topicref>
+<topicref href="GUID-7226154E-2387-5D14-A009-2A1A60617970.dita"
+id="GUID-8C282E4E-5139-4F01-BF20-0BD098F608C1"></topicref>
+<topicref href="GUID-2393237A-E60F-5556-8657-B0AA6470225C.dita"
+id="GUID-6187FBD9-3B8F-43B7-8314-9EB47C7E29C9"></topicref>
+<topicref href="GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B.dita"
+id="GUID-EC486938-AC62-469B-B6D5-17E7B56EE39F"></topicref>
+<topicref href="GUID-E4BF80BE-17E9-5622-9E10-43C96EAC9754.dita"
+id="GUID-C6F22F4F-8C97-46E0-9645-CA8D0C8CDF04"></topicref>
+<topicref href="GUID-5512B80D-77E8-5DFB-BD97-EBC1C4360E90.dita"
+id="GUID-02B7FD1D-DE2D-4F85-9AA1-3CEFE0642D2F"></topicref>
+<topicref href="GUID-2FCB4609-1568-5B5F-AD9D-5A531B17A68F.dita"
+id="GUID-23B07069-CB38-4A7D-934D-C486FD3C38BD"></topicref>
+<topicref href="GUID-A98F7AA2-A908-527E-9AEC-54DDD10A49C1.dita"
+id="GUID-36B93D9D-0D9E-4B67-AF11-89A474A1FCCD"></topicref>
+<topicref href="GUID-F03A323A-2FCC-5247-909F-4AB2701B1C45.dita"
+id="GUID-0D6C951B-DF10-4365-A056-5E9E01F8993E"></topicref>
+<topicref href="GUID-A3301ED7-8FD5-580B-B365-4BE12FF2F3AA.dita"
+id="GUID-AA7002D4-7E2F-4D23-BCE3-B8863D2A7A2E"></topicref>
+<topicref href="GUID-565074B2-53E2-54CD-A06B-7E044E66EBE8.dita"
+id="GUID-FF9ED03F-A148-4A5F-9C78-3CA3FA4321CD"></topicref>
+<topicref href="GUID-13AA46F9-7D5E-5BBE-8021-C9326121E605.dita"
+id="GUID-54E81EE9-6AAC-42BB-99C2-B36B2B5936D6"></topicref>
+<topicref href="GUID-B707887A-E0FA-5DF6-A906-A91E31E17321.dita"
+id="GUID-F0FEC023-09A4-48CF-8726-6AA1EFF57C4E"></topicref>
+<topicref href="GUID-E4A23972-CC2F-5773-B1A4-6123333D1F5E.dita"
+id="GUID-065CBA41-AC1F-44CA-95CA-A62F16D8C1FB"></topicref>
+<topicref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita"
+id="GUID-0EECF866-476D-4192-9066-3839B3D65043"></topicref>
+<topicref href="GUID-6D7F3D5C-BC1C-5657-993A-4D7E5712CAF5.dita"
+id="GUID-DF0ABD26-E86B-4CC2-9C19-5D15B79C974E"></topicref>
+<topicref href="GUID-16781448-75CB-5C11-B9E6-288BA3C0B43E.dita"
+id="GUID-A5854BBB-5EDA-4D5B-AE16-6776286A83E3"></topicref>
+<topicref href="GUID-809D428D-5BF6-57FF-952D-2FDF88E50833.dita"
+id="GUID-C0490FC3-3857-4AF8-BA9B-BEB8F4F6F76B"></topicref>
+<topicref href="GUID-B58D93D7-597C-5200-82ED-F434B297CAC9.dita"
+id="GUID-C6915FDB-DCA5-4D0A-A1F6-B3FBC410BD6D"></topicref>
+<topicref href="GUID-495C619C-1223-59C1-9B31-0F4031BAE4A9.dita"
+id="GUID-E873B114-B045-47BE-9A59-8D5F45572C0E"></topicref>
+<topicref href="GUID-AA9611C0-9AFC-530B-9B50-0D6E600C8D3E.dita"
+id="GUID-C83B6CD2-2FF6-4017-97AD-D6065D1DF55C"></topicref>
+<topicref href="GUID-5D4DA7CA-DAB8-51E6-B597-4E8B0AB56477.dita"
+id="GUID-75113D0A-5106-48F0-BA41-2F105CF698AA"></topicref>
+<topicref href="GUID-7681734D-1291-59A3-B226-BC58403FA8A0.dita"
+id="GUID-344F9630-D104-45D8-B820-6C3DD049933F"></topicref>
+<topicref href="GUID-9535CF67-7541-554E-BE5C-9FDDFDB58EA5.dita"
+id="GUID-CDD90E9B-968B-4451-B1EC-763CFFBB27DB"></topicref>
+<topicref href="GUID-BFCFD93E-D591-50D2-8263-D13D08DD9F15.dita"
+id="GUID-D668F5B5-3BA4-4B73-B5D6-8600C65A613C"></topicref>
+<topicref href="GUID-751F057B-BF6D-5B28-A47A-3E99B25731CF.dita"
+id="GUID-C0651852-E6D3-41F2-97DB-45077706D1DE"></topicref>
+<topicref href="GUID-FAFDBFC2-BFFF-536C-A96D-8404C389DD0C.dita"
+id="GUID-5C4464B9-42C2-408C-8B54-F88E60B1312E"></topicref>
+<topicref href="GUID-52B2DFDD-063A-5ED4-9A0B-FB3346301482.dita"
+id="GUID-EBA9A4B9-D4CD-4BF6-9A3B-CAD40B7A0E8F"></topicref>
+<topicref href="GUID-50941508-B999-5FCC-B2B9-F29F5F2CA4C1.dita"
+id="GUID-BEF3D78E-DC77-4943-A9B2-7011F080B029"></topicref>
+<topicref href="GUID-535793F2-08F1-5B4E-AD32-783985C53124.dita"
+id="GUID-633BA0E3-2CF8-415D-ABB3-D58D0EA9C804"></topicref>
+<topicref href="GUID-35532303-1316-58CA-90C8-FAB56EE3C1F5.dita"
+id="GUID-B59C1137-CD61-496E-976C-74399CB141D7"></topicref>
+<topicref href="GUID-D5358527-5E6F-5158-8BCB-F9D74DB9B354.dita"
+id="GUID-BA7C85D8-2C55-44DF-8DD9-F4E08A2C5C7A"></topicref>
+<topicref href="GUID-1A3E282E-ACC0-5F88-A759-3ED6106B02B4.dita"
+id="GUID-3683C81E-94D9-4185-AF81-2DFF0144D150"></topicref>
+</topicref>
+<topicref href="GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8.dita"
+id="GUID-76D1B2B6-19A8-4988-813E-4B303D71DC86"></topicref>
+</topicref>
+</chapter>
+<chapter href="GUID-1D0E418B-09D4-5A6E-A1A8-A46F9F9CF371.dita"
+id="GUID-C9AFCBA2-6169-42F1-981C-BAC65D00E535">
+<topicref href="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita"
+id="GUID-D0BC7389-CCAC-4B6E-B2DF-ED04AF69B44C"></topicref>
+<topicref href="GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2.dita"
+id="GUID-01BA3966-A5C4-4829-846F-0D4FF01D72A6"></topicref>
+</chapter><?Pub Caret1?>
+</bookmap>
+<?Pub *0000389977?>
--- a/Symbian3/SDK/Source/GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E" xml:lang="en"><title>Introduction
-to Symbian^3</title><shortdesc>The Symbian platform, is a comprehensive open-source software platform
-for Symbian-based devices. The platform is used by device manufactures to
-build devices, and by third-party developers to create after-market applications
-for installation onto devices.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-1212158F-A8CF-41FE-A6B9-4461D90EA2A5"><title>Overview</title><p>The
-Symbian platform includes a customizable user interface, a rich set of applications,
-common user interface components (AVKON, UIKON) and development tools for
-implementing new applications. It also includes tools and documentation that
-enables device creators and application developers to create feature-rich
-devices and applications.</p><p>The Symbian platform architecture is divided
-into different layers:</p><ul>
-<li><p>The <b>Applications Layer</b> consists of application specific UI and
-engine components. It uses the services provided by Middleware and OS layers. </p></li>
-<li><p>The <b>Middleware Layer</b> consists of domains which provide services
-to the application layer; for example, Multimedia, Networking and Location
-services.</p></li>
-<li><p>The <b>Operating System (OS) Layer</b> provides all higher-level
-OS services across a full range of technology domains such as communications,
-networking, graphics, multimedia and so on. It also includes low-level OS
-services such as frameworks, libraries and utilities, which turn the abstracted
-hardware and OS mechanisms into a programmable interface. </p></li>
-<li><p>The <b>Adaptation layer</b> integrates the generic platform software
-with the phone’s cellular platform. It is implemented by the device creators
-though reference implementations are provided with the platform.</p><draft-comment time="2009-12-08T14:38" translate="no">Give link to the adaptation documentation.</draft-comment></li>
-<li><p>The <b>Cellular Platform</b> is the device-specific hardware and cellular
-software that performs the services required by the Symbian platform.</p></li>
-</ul><p>For more information about layers of the Symbian platform and the
-packages contained within it, see the <xref href="http://developer.symbian.org/downloads/system_models/foundationpkg_22-05-09.svg" scope="external">Package view of the current Symbian Foundation platform</xref>.</p><fig id="GUID-AD79AEF5-1DB3-47F7-9B42-FE5C7FE7C6A3">
-<title>Architecture of the Symbian platform</title>
-<image href="GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1315_href.jpg" placement="inline"/>
-</fig><p>A layer can have packages from any <xref href="http://developer.symbian.org/main/source/technology_domains/index.php.dita">technology
-domain</xref>. Technology domains are a group of packages, each of which is
-a collection of components. To understand more about the architecture, what
-the platform offers, see <xref href="http://developer.symbian.org/wiki/index.php/Main_Page.dita">Introduction
-to Symbian Developer Community</xref>.</p></section>
-<section id="GUID-6D6715BB-B591-4C97-82BF-1AA68079B45C"><title>Platform UID</title><p>The
-platform UID for Symbian^3 is 0x20022E6D.</p></section>
-<section id="GUID-177B4AB9-E89E-4AF4-8BC9-503E9F747FE3"><title>Download</title><ul>
-<li><p>You can download the Application Development Toolkit and Product Development
-Toolkit from the <xref href="http://developer.symbian.org/main/tools_and_kits/index.php" scope="external">Symbian Developer</xref> Website.</p></li>
-
-</ul></section>
-</conbody><related-links>
-<linklist>
-<link href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita"><linktext>What's new
-in Symbian^3</linktext></link>
-<link href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita"><linktext>New C++ APIs
-in Symbian^3</linktext></link>
-<link href="GUID-BA0A115B-068C-4257-9489-DF35DF633AD2.dita"><linktext>Porting applications
-to Symbian^3</linktext></link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E" xml:lang="en"><title>Introduction to Symbian^3</title><shortdesc>The Symbian platform, is a comprehensive open-source software
+platform for Symbian-based devices. The platform is used by device
+manufactures to build devices, and by third-party developers to create
+after-market applications for installation onto devices.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-1212158F-A8CF-41FE-A6B9-4461D90EA2A5"><title>Overview</title><p>The Symbian platform includes a customizable user interface, a
+rich set of applications, common user interface components (AVKON,
+UIKON) and development tools for implementing new applications. It
+also includes tools and documentation that enables device creators
+and application developers to create feature-rich devices and applications.</p><p>The Symbian platform architecture is divided into different layers:</p><ul>
+<li><p>The <b>Applications Layer</b> consists of application specific
+UI and engine components. It uses the services provided by Middleware
+and OS layers. </p></li>
+<li><p>The <b>Middleware Layer</b> consists of domains which provide
+services to the application layer; for example, Multimedia, Networking
+and Location services.</p></li>
+<li><p>The <b>Operating System (OS) Layer</b> provides all higher-level
+OS services across a full range of technology domains such as communications,
+networking, graphics, multimedia and so on. It also includes low-level
+OS services such as frameworks, libraries and utilities, which turn
+the abstracted hardware and OS mechanisms into a programmable interface. </p></li>
+<li><p>The <b>Adaptation layer</b> integrates the generic platform
+software with the phone’s cellular platform. It is implemented by
+the device creators though reference implementations are provided
+with the platform.</p><draft-comment time="2009-12-08T14:38" translate="no">Give
+link to the adaptation documentation.</draft-comment></li>
+<li><p>The <b>Cellular Platform</b> is the device-specific hardware
+and cellular software that performs the services required by the Symbian
+platform.</p></li>
+</ul><p>For more information about layers of the Symbian platform
+and the packages contained within it, see the <xref href="http://developer.symbian.org/downloads/system_models/foundationpkg_22-05-09.svg" scope="external">Package view of the current Symbian Foundation platform</xref>.</p><fig id="GUID-AD79AEF5-1DB3-47F7-9B42-FE5C7FE7C6A3">
+<title>Architecture of the Symbian platform</title>
+<image href="GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1394_href.jpg" placement="inline"/>
+</fig><p>A layer can have packages from any <xref format="html" href="http://developer.symbian.org/main/source/technology_domains/index.php" scope="external">technology domain</xref>. Technology domains are
+a group of packages, each of which is a collection of components.
+To understand more about the architecture, what the platform offers,
+see <xref format="html" href="http://developer.symbian.org/wiki/index.php/Main_Page" scope="external">Introduction to Symbian Developer Community</xref>.</p></section>
+<section id="GUID-6D6715BB-B591-4C97-82BF-1AA68079B45C"><title>Platform
+UID</title><p>The platform UID for Symbian^3 is 0x20022E6D.</p></section>
+<section id="GUID-177B4AB9-E89E-4AF4-8BC9-503E9F747FE3"><title>Download</title><ul>
+<li><p> You can download the Symbian Foundation Application Development
+Toolkit and Product Development Toolkit from the <xref format="html" href="http://developer.symbian.org/main/tools_and_kits/index.php" scope="external">Symbian Developer</xref> Website.</p></li>
+
+</ul></section>
+</conbody><related-links>
+<linklist>
+<link href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita"><linktext>What's
+new in Symbian^3</linktext></link>
+<link href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita"><linktext>New
+C++ APIs in Symbian^3</linktext></link>
+<link href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita">
+<linktext>Porting applications from S60 5th Edition to Symbian^3</linktext>
+</link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,121 +1,121 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED" xml:lang="en"><title>DBMS
-Overview</title><shortdesc>Provides an interface to relational databases. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-40E204A0-AAE5-46AA-BC88-2A80D81AC710"><title>Purpose</title> <p id="GUID-844F756E-1670-5D24-8D63-2092ABE3354C"> The
-DBMS component provides an interface to relational databases. It enables you
-to create and access databases either from a single client or from multiple
-clients sharing access over a server. </p> </section>
-<section id="GUID-AC97ABD1-CD17-403B-B654-91A75A6C627A"><title>Required background</title> <p>To use DBMS you need a knowledge
-of relational databases and the SQL query language. </p> </section>
-<section id="GUID-B0F498B6-722A-4FE2-B7B2-5064FEFF9470"><title>Key concepts and terms</title> <dl>
-<dlentry>
-<dt>Store database </dt>
-<dd><p>A client-side single client database stored in permanent file stores,
-implemented by <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref>  </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Named database </dt>
-<dd><p>A database allowing simultaneous read/write access by multiple clients,
-implemented by <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref>  </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-856FC618-CF46-4735-B90B-B1BDB91F01D5"><title>Architecture</title> <p>DBMS defines a general relational
-database access API, and allows different database implementations to be provided
-of which there are two: a small and relatively lightweight client-side implementation;
-and, for when multiple clients must have write access to a database, a client-server
-implementation. </p> <p>When multiple clients can access the same database,
-transactions ensure that only one client can change data at a time. </p> <p>The <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
-a sophisticated file storage, called permanent file stores, that allows individual
-entries in a file to be modified. The database implementations use these stores
-for the underlying data storage. </p> <fig id="GUID-6907C48E-3E72-5FED-B5E5-67C6F6922ED9">
-<title>              DBMS Class Diagrams           </title>
-<image href="GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e357898_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-CC1087EA-0995-4ABE-8C28-8CBF0D62E7FA"><title>DBMS Summary</title> <p>DBMS provides the following: </p> <ul>
-<li id="GUID-CA46F9A6-15C2-5584-A907-9D1DD79C8711"><p> <b>Database Management
-System Library</b>  </p> <p> <filepath>edbms.dll</filepath>  </p> </li>
-<li id="GUID-8D01F878-BCA7-5F88-AC31-BEA68B0739CD"><p> <b>Database Management
-System Server</b>  </p> <p> <filepath>edbsrv.exe</filepath>  </p> </li>
-</ul> </section>
-<section id="GUID-8534CB50-0E49-4614-883B-61B6B583ABCB"><title>APIs</title> <table id="GUID-E682487D-23AC-5A0A-89F5-568D73452AF1">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-E11B1981-CA78-3660-AE09-AD3B4D453733.dita"><apiname>RDbDatabase</apiname></xref>  </p> </entry>
-<entry><p>Abstract database class. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref>  </p> </entry>
-<entry><p>Implements <codeph>RDbDatabase</codeph> as a store database. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref>  </p> </entry>
-<entry><p>Implements a named database. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F861EB8F-F621-3E77-8F9A-5E4EFC4E9C2F.dita"><apiname>RDbRowSet</apiname></xref>  </p> </entry>
-<entry><p>The base class for all rowset types. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-90ABFA73-6374-367C-BAA9-88CD810035CC.dita"><apiname>RDbTable</apiname></xref>  </p> </entry>
-<entry><p>Provides access to table data as a rowset. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AE1BEF00-5AA7-3F03-95B0-9E40395EDA6C.dita"><apiname>RDbView</apiname></xref>  </p> </entry>
-<entry><p>Generates rowsets from an SQL query. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A7C9FEFA-A9A9-357F-AF66-FA3A288AF925.dita"><apiname>TDbQuery</apiname></xref>  </p> </entry>
-<entry><p>A wrapper for an SQL string combined with a text comparison mode. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-E53A90DF-3589-34BD-B7C3-02371567AF41.dita"><apiname>TDbWindow</apiname></xref>  </p> </entry>
-<entry><p>Describes the desired shape of a view's pre-evaluation window. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-53AB4535-A859-3A8C-8344-53865B2FE0B4.dita"><apiname>RDbNotifier</apiname></xref>  </p> </entry>
-<entry><p>Provides notification of database changes to clients. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-B73210AC-8B93-430A-8E6F-8FD06C631E90"><title>Typical uses</title> <p>DBMS is very well suited to applications
-with small to medium-sized datasets, where the total record count is less
-than 10,000 and the database size is less than 512KB. It scales reasonably
-well to larger datasets with total record counts less than 100,000 and database
-sizes less than 10MB. </p> <p>DBMS is a suitable database engine for applications
-such as: </p> <ul>
-<li id="GUID-3638AC16-C761-5FEE-BFE1-C516C5674C88"><p>address books </p> </li>
-<li id="GUID-7C3E01B0-898A-5FC0-9C48-EB7D998C878D"><p>call logs </p> </li>
-<li id="GUID-B8F92167-446A-5CB0-A5A6-998B2E1ED9A4"><p>message stores. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
-Storage Overview</linktext></link>
-<link href="GUID-12CB6E0E-69CD-51A6-8966-3621CB26E1CD.dita"><linktext>DBMS
-rowsets overview</linktext></link>
-<link href="GUID-7BE83158-B818-57E4-9A8C-43E5D2C84687.dita"><linktext>DBMS columns,
-column sets, and                 keys overview</linktext></link>
-<link href="GUID-C61B979A-921A-5756-8D7E-691C3DDD3437.dita"><linktext>DBMS sharing
-databases                 overview</linktext></link>
-<link href="GUID-120163D6-2E49-5D91-A746-2C8C4C944461.dita"><linktext>DBMS incremental
-operations                 overview</linktext></link>
-<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File stores
-overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED" xml:lang="en"><title>DBMS
+Overview</title><shortdesc>Provides an interface to relational databases. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-40E204A0-AAE5-46AA-BC88-2A80D81AC710"><title>Purpose</title> <p id="GUID-844F756E-1670-5D24-8D63-2092ABE3354C"> The
+DBMS component provides an interface to relational databases. It enables you
+to create and access databases either from a single client or from multiple
+clients sharing access over a server. </p> </section>
+<section id="GUID-AC97ABD1-CD17-403B-B654-91A75A6C627A"><title>Required background</title> <p>To use DBMS you need a knowledge
+of relational databases and the SQL query language. </p> </section>
+<section id="GUID-B0F498B6-722A-4FE2-B7B2-5064FEFF9470"><title>Key concepts and terms</title> <dl>
+<dlentry>
+<dt>Store database </dt>
+<dd><p>A client-side single client database stored in permanent file stores,
+implemented by <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref>  </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Named database </dt>
+<dd><p>A database allowing simultaneous read/write access by multiple clients,
+implemented by <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref>  </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-856FC618-CF46-4735-B90B-B1BDB91F01D5"><title>Architecture</title> <p>DBMS defines a general relational
+database access API, and allows different database implementations to be provided
+of which there are two: a small and relatively lightweight client-side implementation;
+and, for when multiple clients must have write access to a database, a client-server
+implementation. </p> <p>When multiple clients can access the same database,
+transactions ensure that only one client can change data at a time. </p> <p>The <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
+a sophisticated file storage, called permanent file stores, that allows individual
+entries in a file to be modified. The database implementations use these stores
+for the underlying data storage. </p> <fig id="GUID-6907C48E-3E72-5FED-B5E5-67C6F6922ED9">
+<title>              DBMS Class Diagrams           </title>
+<image href="GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e351818_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-CC1087EA-0995-4ABE-8C28-8CBF0D62E7FA"><title>DBMS Summary</title> <p>DBMS provides the following: </p> <ul>
+<li id="GUID-CA46F9A6-15C2-5584-A907-9D1DD79C8711"><p> <b>Database Management
+System Library</b>  </p> <p> <filepath>edbms.dll</filepath>  </p> </li>
+<li id="GUID-8D01F878-BCA7-5F88-AC31-BEA68B0739CD"><p> <b>Database Management
+System Server</b>  </p> <p> <filepath>edbsrv.exe</filepath>  </p> </li>
+</ul> </section>
+<section id="GUID-8534CB50-0E49-4614-883B-61B6B583ABCB"><title>APIs</title> <table id="GUID-E682487D-23AC-5A0A-89F5-568D73452AF1">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-E11B1981-CA78-3660-AE09-AD3B4D453733.dita"><apiname>RDbDatabase</apiname></xref>  </p> </entry>
+<entry><p>Abstract database class. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref>  </p> </entry>
+<entry><p>Implements <codeph>RDbDatabase</codeph> as a store database. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref>  </p> </entry>
+<entry><p>Implements a named database. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F861EB8F-F621-3E77-8F9A-5E4EFC4E9C2F.dita"><apiname>RDbRowSet</apiname></xref>  </p> </entry>
+<entry><p>The base class for all rowset types. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-90ABFA73-6374-367C-BAA9-88CD810035CC.dita"><apiname>RDbTable</apiname></xref>  </p> </entry>
+<entry><p>Provides access to table data as a rowset. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-AE1BEF00-5AA7-3F03-95B0-9E40395EDA6C.dita"><apiname>RDbView</apiname></xref>  </p> </entry>
+<entry><p>Generates rowsets from an SQL query. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A7C9FEFA-A9A9-357F-AF66-FA3A288AF925.dita"><apiname>TDbQuery</apiname></xref>  </p> </entry>
+<entry><p>A wrapper for an SQL string combined with a text comparison mode. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-E53A90DF-3589-34BD-B7C3-02371567AF41.dita"><apiname>TDbWindow</apiname></xref>  </p> </entry>
+<entry><p>Describes the desired shape of a view's pre-evaluation window. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-53AB4535-A859-3A8C-8344-53865B2FE0B4.dita"><apiname>RDbNotifier</apiname></xref>  </p> </entry>
+<entry><p>Provides notification of database changes to clients. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-B73210AC-8B93-430A-8E6F-8FD06C631E90"><title>Typical uses</title> <p>DBMS is very well suited to applications
+with small to medium-sized datasets, where the total record count is less
+than 10,000 and the database size is less than 512KB. It scales reasonably
+well to larger datasets with total record counts less than 100,000 and database
+sizes less than 10MB. </p> <p>DBMS is a suitable database engine for applications
+such as: </p> <ul>
+<li id="GUID-3638AC16-C761-5FEE-BFE1-C516C5674C88"><p>address books </p> </li>
+<li id="GUID-7C3E01B0-898A-5FC0-9C48-EB7D998C878D"><p>call logs </p> </li>
+<li id="GUID-B8F92167-446A-5CB0-A5A6-998B2E1ED9A4"><p>message stores. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
+Storage Overview</linktext></link>
+<link href="GUID-12CB6E0E-69CD-51A6-8966-3621CB26E1CD.dita"><linktext>DBMS
+rowsets overview</linktext></link>
+<link href="GUID-7BE83158-B818-57E4-9A8C-43E5D2C84687.dita"><linktext>DBMS columns,
+column sets, and                 keys overview</linktext></link>
+<link href="GUID-C61B979A-921A-5756-8D7E-691C3DDD3437.dita"><linktext>DBMS sharing
+databases                 overview</linktext></link>
+<link href="GUID-120163D6-2E49-5D91-A746-2C8C4C944461.dita"><linktext>DBMS incremental
+operations                 overview</linktext></link>
+<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File stores
+overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396107_href.png has changed
Binary file Symbian3/SDK/Source/GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396269_href.png has changed
--- a/Symbian3/SDK/Source/GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01" xml:lang="en"><title>List query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A List query offers a list of predefined choices for the user. It can be
-used when more than two options must be offered to the user. There is a prompt
-text (optional) on top of the window, and a list of options to choose from.</p>
-<p>The list in a List query is a menu list: the user can select an item or
-dismiss the query; the Options menu is not available. The default softkey
-labels are OK on the left and Cancel on the right, the actual texts can be
-specific to the context. The Selection key causes the same action as the left
-softkey.</p>
-<p>Any list item layout suitable for menu lists can be used; see <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List
-layouts</xref>.</p>
-<fig id="GUID-C40BEE37-FF71-442B-A1CF-7E6CCA2157F6">
-<title>List query </title>
-<image href="GUID-84B088C0-7013-4B6A-BA34-8F022E38E822_d0e68775_href.png" scale="40" placement="inline"/>
-</fig>
-<p>The number of items in the list should be kept low, so that all items can
-be seen without scrolling.</p>
-<section><title>Using list queries in
-C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01" xml:lang="en"><title>List
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A List query offers a list of predefined choices for the user. It can be
+used when more than two options must be offered to the user. There is a prompt
+text (optional) on top of the window, and a list of options to choose from.</p>
+<p>The list in a List query is a menu list: the user can select an item or
+dismiss the query; the Options menu is not available. The default softkey
+labels are OK on the left and Cancel on the right, the actual texts can be
+specific to the context. The Selection key causes the same action as the left
+softkey.</p>
+<p>Any list item layout suitable for menu lists can be used; see <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List
+layouts</xref>.</p>
+<fig id="GUID-A44481C9-82CA-46DE-8D54-1BCC033A8CAB">
+<title>List query </title>
+<image href="GUID-431119D1-1B55-4503-905E-6E290FA241CE_d0e63537_href.png" placement="inline"/>
+</fig>
+<p>The number of items in the list should be kept low, so that all items can
+be seen without scrolling.</p>
+<section id="GUID-79EFB689-9545-473D-A843-C9283F1D1091"><title>Using
+list queries in applications</title><p>For implementation information,
+see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e287313_href.png has changed
Binary file Symbian3/SDK/Source/GUID-13F10D4C-BA0C-5B46-804D-191A70C36324_d0e290946_href.png has changed
Binary file Symbian3/SDK/Source/GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e290621_href.png has changed
Binary file Symbian3/SDK/Source/GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e294116_href.png has changed
--- a/Symbian3/SDK/Source/GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9" xml:lang="en"><title>S60 Platform:
-Descriptor Example</title><shortdesc>Examples that explains how to use descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This C++ code example demonstrates how to use descriptors (Symbian OS strings)
-and related APIs. The example is an S60 application that is used to run one
-example method or all of them. The methods write a log on the screen or into
-a file that demonstrates the results of different statements. The example
-has been updated to support S60 5th Edition and touch UI. Important classes:
-TBuf, HBufC, RBuf.</p>
-<p>For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/21cd5284-ad26-4d05-8f11-585519ca35b6/S60_Platform_Descriptor_Example.html" scope="external">Descriptors example.</xref>.</p>
-<section id="GUID-D51C3B3F-A1A1-48A5-8742-8A84447D3FA6"><p><b>Download</b> </p> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c4df8866-07d0-4b84-8715-6dacf56406ae.zip" scope="external">DescriptorExample .zip </xref>.</p><p>View the example code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c4df8866-07d0-4b84-8715-6dacf56406ae.html" scope="peer"> browse </xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9" xml:lang="en"><title>Descriptor
+Example</title><shortdesc>Examples that explains how to use descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This C++ code example demonstrates how to use descriptors and related APIs.
+The example is an S60 application that is used to run one example method or
+all of them. The methods write a log on the screen or into a file that demonstrates
+the results of different statements. </p>
+<section id="GUID-D51C3B3F-A1A1-48A5-8742-8A84447D3FA6"><p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c4df8866-07d0-4b84-8715-6dacf56406ae.zip" scope="external">DescriptorExample .zip </xref>.</p><p>View the example code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c4df8866-07d0-4b84-8715-6dacf56406ae.html" scope="peer"> browse </xref>.</p></section>
+<section id="GUID-4B4B14E8-1955-499E-86E3-9F651E859465"><title>Class Summary</title> <p><xref href="GUID-0B9C8884-6BFF-35E2-AA6F-E4057B85AFCF.dita"><apiname>TBuf</apiname></xref></p><p><xref href="GUID-4D64E4B7-6BEE-3900-A115-460FE5B2D79E.dita"><apiname>TBufC</apiname></xref></p><p><xref href="GUID-EA7DEFA4-D4D9-3B2B-86A3-C3FB1A682E61.dita"><apiname>TPtr</apiname></xref></p><p><xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref></p><p><xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref></p><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref></p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e176040_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e182634_href.png has changed
Binary file Symbian3/SDK/Source/GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e338662_href.png has changed
Binary file Symbian3/SDK/Source/GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e344859_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e333212_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e339369_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e15332_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e20914_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e109780_href.png has changed
Binary file Symbian3/SDK/Source/GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e116318_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e186764_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e192309_href.png has changed
--- a/Symbian3/SDK/Source/GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-165EE4DD-C9CA-430B-8377-068A4194716E" xml:lang="en"><title>Modifying
-applications to support single-tap</title><shortdesc> Symbian^3 enhances the touch interaction by providing support
-for single-tap.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-0EFB67F7-2936-4126-B13A-67402F696663"><p>S60 5th Edition
-introduced touch support feature with double-tap to maintain binary and source
-code compatibility with the existing S60 3.x applications. The UI was focus
-driven, with the first tap for object selection (the corresponding event forwarded
-to the application) and the second tap for activation.</p><p>Symbian^3 enhances
-the touch support with single tap for achieving better usability and development
-of platform and 3rd party applications. The supporting UI is based on direct
-manipulation and is not focus driven, which means that a single-tap on the
-device selects and activates an event. This change modifies the touch behavior
-of certain UI components as listed below:<ul>
-<li><p>By default, none of the menu items are highlighted.</p></li>
-<li><p>Item specific options are displayed in stylus menus rather than in
-options menus.</p></li>
-<li><p>The side toolbar is hidden in the landscape layout view except in specific
-applications like the message viewer and editor.</p></li>
-</ul></p><p>It is highly recommended that you migrate your applications to
-single-tap to complement the platform UI behavior. However, if you do not
-migrate your applications to single-tap, they work the same way as in S60
-5th Edition (touch support with double-tap).<note> The UI components can be
-used in hybrid devices for both touch and non-touch events. For details, see <xref href="GUID-EE001282-604B-45F4-8A9E-F657113C86CE.dita">Designing application UIs
-for touch and non-touch devices</xref>.</note>  </p></context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-3-2">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-4-1-1-7-1-4-1-3-2-1"><cmd>Include the <xref href="GUID-2A5F78CD-F404-338E-A505-93DC30CD4A0A.dita"><apiname>EAknTouchCompatible</apiname></xref> and <xref href="GUID-42FC6075-C1A0-3E68-8109-F6CC04CFBAE2.dita"><apiname>EAknSingleClickCompatible</apiname></xref> flags in your application's UI (<codeph>CAknAppUi</codeph> ) constructor.</cmd>
-<stepxmp><p>For example, </p><codeblock xml:space="preserve">void CFileBrowseBaseView::ConstructL() //Called from framework (CEikDocument)
-{
-  ...
-    BaseConstructL(EAknEnableSkin | EAknEnableMSK | <b>EAknTouchCompatible</b> | <b>EAknSingleClickCompatible</b>);
-  ...
-}</codeblock></stepxmp>
-<info><p>The <xref href="GUID-2A5F78CD-F404-338E-A505-93DC30CD4A0A.dita"><apiname>EAknTouchCompatible</apiname></xref> flag enables touch functionality.
-The <xref href="GUID-42FC6075-C1A0-3E68-8109-F6CC04CFBAE2.dita"><apiname>EAknSingleClickCompatible</apiname></xref> flag enables single-click
-functionality on the Symbian device.</p></info>
-<stepresult><p>The following illustrations show how applications behave before
-and after the single-tap changes are made:</p><fig id="GUID-7015C5AD-8162-4185-801C-BEF4352B9837">
-<title>Double-tap enabled: By default, UI component is highlighted.</title>
-<image href="GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2580_href.png" placement="inline"/>
-</fig><fig id="GUID-12C4AB22-ACF7-4A43-B322-ABB39B5653DC">
-<title>Single-tap enabled: By default, no UI component is highlighted.</title>
-<image href="GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2587_href.png" placement="inline"/>
-</fig></stepresult>
-</step>
-<step id="GUID-CCF099FE-76F5-49AC-99A7-E834A07FD628"><cmd>Hide item-specific
-commands from the application's <xref href="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita">menus</xref>, <xref href="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita">submenus</xref> and <xref href="GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita">toolbars</xref>. Item-specific
-commands are functions that are specific to an item. For example, <b>Edit</b> is
-an item-specific command for an existing contact in the <b>Phone book</b>.</cmd>
-<stepresult><p>As a result, all item-specific options are hidden in menus,
-submenus and toolbars and are displayed in the <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">stylus
-popup menus</xref>. </p></stepresult>
-</step>
-<step id="GUID-10C30123-1921-43E1-B39F-C41DC65991E6"><cmd><xref href="GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita">Activate
-items in a list</xref> on single-tap.</cmd>
-</step>
-<step id="GUID-10F9F971-4E80-4D0A-90B2-7BDC9C40E0A9"><cmd><xref href="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita">Disable
-stylus popup menu in AVKON lists</xref>.</cmd>
-</step>
-<step id="GUID-FF167282-56A6-42F4-ABAE-5A53ECCC0E2F"><cmd><xref href="GUID-2131E679-779D-427D-BD41-47D9949A8749.dita">Disable
-hardware key shortcuts</xref>.</cmd>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-165EE4DD-C9CA-430B-8377-068A4194716E" xml:lang="en"><title>Modifying applications to support single-tap</title><shortdesc> Symbian^3 enhances the touch interaction by providing
+support for single-tap.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-0EFB67F7-2936-4126-B13A-67402F696663"><p>S60 5th
+Edition introduced touch support feature with double-tap to maintain
+binary and source code compatibility with the existing S60 3.x applications.
+The UI was focus driven, with the first tap for object selection (the
+corresponding event forwarded to the application) and the second tap
+for activation.</p><p>Symbian^3 enhances the touch support with single
+tap for achieving better usability and development of platform and
+3rd party applications. The supporting UI is based on direct manipulation
+and is not focus driven, which means that a single-tap on the device
+selects and activates an event. This change modifies the touch behavior
+of certain UI components as listed below:<ul>
+<li><p>By default, none of the menu items are highlighted.</p></li>
+<li><p>Item specific options are displayed in stylus menus rather
+than in options menus.</p></li>
+<li><p>The side toolbar is hidden in the landscape layout view except
+in specific applications like the message viewer and editor.</p></li>
+</ul></p><p>It is highly recommended that you migrate your applications
+to single-tap to complement the platform UI behavior. However, if
+you do not migrate your applications to single-tap, they work the
+same way as in S60 5th Edition (touch support with double-tap). </p></context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-6-1-1-4-1-3-2-1"><cmd>Include
+the <xref href="GUID-2A5F78CD-F404-338E-A505-93DC30CD4A0A.dita"><apiname>EAknTouchCompatible</apiname></xref> and <xref href="GUID-42FC6075-C1A0-3E68-8109-F6CC04CFBAE2.dita"><apiname>EAknSingleClickCompatible</apiname></xref> flags in your application's UI (<codeph>CAknAppUi</codeph> ) constructor.</cmd>
+<stepxmp><p>For example, </p><codeblock xml:space="preserve">void CFileBrowseBaseView::ConstructL() //Called from framework (CEikDocument)
+{
+  ...
+    BaseConstructL(EAknEnableSkin | EAknEnableMSK | <b>EAknTouchCompatible</b> | <b>EAknSingleClickCompatible</b>);
+  ...
+}</codeblock></stepxmp>
+<info><p>The <xref href="GUID-2A5F78CD-F404-338E-A505-93DC30CD4A0A.dita"><apiname>EAknTouchCompatible</apiname></xref> flag enables touch
+functionality. The <xref href="GUID-42FC6075-C1A0-3E68-8109-F6CC04CFBAE2.dita"><apiname>EAknSingleClickCompatible</apiname></xref> flag
+enables single-click functionality on the Symbian device.</p></info>
+<stepresult><p>The following illustrations show how applications behave
+before and after the single-tap changes are made:</p><fig id="GUID-7015C5AD-8162-4185-801C-BEF4352B9837">
+<title>Double-tap enabled: By default, UI component is highlighted.</title>
+<image href="GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2684_href.png" placement="inline"/>
+</fig><fig id="GUID-12C4AB22-ACF7-4A43-B322-ABB39B5653DC">
+<title>Single-tap enabled: By default, no UI component is highlighted.</title>
+<image href="GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2691_href.png" placement="inline"/>
+</fig></stepresult>
+</step>
+<step id="GUID-CCF099FE-76F5-49AC-99A7-E834A07FD628"><cmd>Hide item-specific
+commands from the application's <xref href="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita">menus</xref>, <xref href="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita">submenus</xref> and <xref href="GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita">toolbars</xref>.
+Item-specific commands are functions that are specific to an item.
+For example, <b>Edit</b> is an item-specific command for an existing
+contact in the <b>Phone book</b>.</cmd>
+<stepresult><p>As a result, all item-specific options are hidden in
+menus, submenus and toolbars and are displayed in the <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">stylus popup menus</xref>. </p></stepresult>
+</step>
+<step id="GUID-10C30123-1921-43E1-B39F-C41DC65991E6"><cmd><xref href="GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita">Activate items in
+a list</xref> on single-tap.</cmd>
+</step>
+<step id="GUID-10F9F971-4E80-4D0A-90B2-7BDC9C40E0A9"><cmd><xref href="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita">Disable stylus popup
+menu in AVKON lists</xref>.</cmd>
+</step>
+<step id="GUID-FF167282-56A6-42F4-ABAE-5A53ECCC0E2F"><cmd><xref href="GUID-2131E679-779D-427D-BD41-47D9949A8749.dita">Disable hardware
+key shortcuts</xref>.</cmd>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-16950F22-F5DE-4D52-8414-544105BA3200.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-16950F22-F5DE-4D52-8414-544105BA3200.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,138 +1,135 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-16950F22-F5DE-4D52-8414-544105BA3200" xml:lang="en"><title>Hierarchical
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The hierarchical list component (a "tree list") is available for use in
-dialogs that deal with moving items to and from (or copying them) from one
-folder to another. The main use situation for the component is the File Manager
-folder and file browsing, when the actual data is being showed in the same
-view. The hierarchical list component allows users to browse through their
-folder content by having a list and its content available simultaneously:
-the user can simply expand a listed item (folder) to show its content.</p>
-<p>Unlike the other Symbian list types, the hierarchical list component is
-not structured on the A   D column structure. Visually, the hierarchical levels
-are connected with vertical lines (see the figure below), and the folders
-in each hierarchy level are shown before files on that same level. Scroll
-bars function as usual (vertical bar is always present, horizontal bar is
-available when necessary), and the list does not loop by default, although
-it is possible to enable looping. Marquee scrolling is supported, but if not
-used, the names of folders and files are truncated where necessary. The height
-and the vertical distribution of the folder/file texts on the list is the
-same as in normal lists. Hierarchical lists can be used both in the main pane
-and as pop-ups.</p>
-<fig id="GUID-5CC170B7-72AA-422E-8C44-AFB135C596D6">
-<title>Hierarchical list component</title>
-<image href="GUID-341CE215-056C-45B6-ABE2-C75442605147_d0e62833_href.png" scale="40" placement="inline"/>
-</fig>
-<p>Owing to the need for horizontal scrolling, it is not possible to use tabs
-in the Navi pane. Typically the hierarchical list component is capable of
-showing three hierarchy levels in portrait orientation, but this may vary
-according to the display sizes and resolutions as well as the display orientation.
-The order of folders (sorting order) on each level is defined by the application.</p>
-<p><b>General navigation:</b></p>
-<ul>
-<li><p>Arrow keys either expand collapsed folders (Arrow right, the focus
-does not move yet), collapse expanded folders (Arrow left: one press to move
-the focus onto the parent folder when there is one, second press to collapse
-the contents), or move the focus into the direction of scrolling. </p></li>
-<li><p>The Selection key expands collapsed (or vice versa) folders or opens
-files under focus. </p></li>
-<li><p>Commands for expanding, collapsing and opening folders or files are
-also available in the <b>Options</b> menu.</p></li>
-</ul>
-<table id="GUID-7E9F23CF-F8F3-4E51-98DF-5789C447F08F"><title>Default touch
-events for hierarchical list items</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on collapsed folder</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
-is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on collapsed folder</p></entry>
-<entry><p>Item is expanded. If the folder is empty, the only action performed
-is that the icon is changed to expanded folder indication.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on expanded folder</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on expanded folder</p></entry>
-<entry><p>Item is collapsed. </p><p>If the folder is empty, only action is
-that the icon is changed to collapsed folder indication.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on folder</p></entry>
-<entry><p>Stylus pop-up menu opens.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect given with hold
-event and pop-up effect is provided when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on file</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Sensitive list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on file</p></entry>
-<entry><p>Item is activated.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Sensitive list effect is provided
-with touch down and release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on file</p></entry>
-<entry><p>Stylus pop-up menu is opened.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect given with hold
-event and pop-up effect given when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on item and move</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p><p>Expand and collapse functions are not done
-while dragging.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on item and move horizontally</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-E507585F-2B77-49BC-B982-76E143E7BF2A"><title>Using
-hierarchical lists in C++ applications</title><p>The API to use for hierarchical
-lists is the <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html" scope="peer">Hierarchical lists API</xref>. For implementation information,
-see <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-16950F22-F5DE-4D52-8414-544105BA3200" xml:lang="en"><title>Hierarchical
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The hierarchical list component (a "tree list") is available for use in
+dialogs that deal with moving items to and from (or copying them) from one
+folder to another. The main use situation for the component is the File Manager
+folder and file browsing, when the actual data is being showed in the same
+view. The hierarchical list component allows users to browse through their
+folder content by having a list and its content available simultaneously:
+the user can simply expand a listed item (folder) to show its content.</p>
+<p>Unlike the other Symbian list types, the hierarchical list component is
+not structured on the A   D column structure. Visually, the hierarchical levels
+are connected with vertical lines (see the figure below), and the folders
+in each hierarchy level are shown before files on that same level. Scroll
+bars function as usual (vertical bar is always present, horizontal bar is
+available when necessary), and the list does not loop by default, although
+it is possible to enable looping. Marquee scrolling is supported, but if not
+used, the names of folders and files are truncated where necessary. The height
+and the vertical distribution of the folder/file texts on the list is the
+same as in normal lists. Hierarchical lists can be used both in the main pane
+and as pop-ups.</p>
+<fig id="GUID-5CC170B7-72AA-422E-8C44-AFB135C596D6">
+<title>Hierarchical list component</title>
+<image href="GUID-9955D228-75CE-45B3-9714-AF635D04E553_d0e56643_href.png" placement="inline"/>
+</fig>
+<p>Owing to the need for horizontal scrolling, it is not possible to use tabs
+in the Navi pane. Typically the hierarchical list component is capable of
+showing three hierarchy levels in portrait orientation, but this may vary
+according to the display sizes and resolutions as well as the display orientation.
+The order of folders (sorting order) on each level is defined by the application.</p>
+<p><b>General navigation:</b></p>
+<ul>
+<li><p>Arrow keys either expand collapsed folders (Arrow right, the focus
+does not move yet), collapse expanded folders (Arrow left: one press to move
+the focus onto the parent folder when there is one, second press to collapse
+the contents), or move the focus into the direction of scrolling. </p></li>
+<li><p>The Selection key expands collapsed (or vice versa) folders or opens
+files under focus. </p></li>
+<li><p>Commands for expanding, collapsing and opening folders or files are
+also available in the <b>Options</b> menu.</p></li>
+</ul>
+<table id="GUID-7E9F23CF-F8F3-4E51-98DF-5789C447F08F"><title>Default touch
+events for hierarchical list items</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on collapsed folder</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
+is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on collapsed folder</p></entry>
+<entry><p>Item is expanded. If the folder is empty, the only action performed
+is that the icon is changed to expanded folder indication.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on expanded folder</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on expanded folder</p></entry>
+<entry><p>Item is collapsed. </p><p>If the folder is empty, only action is
+that the icon is changed to collapsed folder indication.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on folder</p></entry>
+<entry><p>Stylus pop-up menu opens.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect given with hold
+event and pop-up effect is provided when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on file</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Sensitive list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on file</p></entry>
+<entry><p>Item is activated.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Sensitive list effect is provided
+with touch down and release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on file</p></entry>
+<entry><p>Stylus pop-up menu is opened.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect given with hold
+event and pop-up effect given when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on item and move</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p><p>Expand and collapse functions are not done
+while dragging.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on item and move horizontally</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-E507585F-2B77-49BC-B982-76E143E7BF2A"><title>Using
+hierarchical lists in applications</title><p>The API to use for hierarchical
+lists is the <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html" scope="peer">Hierarchical lists API</xref>. For implementation information,
+see <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e375093_href.png has changed
Binary file Symbian3/SDK/Source/GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e381172_href.png has changed
--- a/Symbian3/SDK/Source/GUID-16BA7B80-DC75-512C-AAEC-F571B5B73F09.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-16BA7B80-DC75-512C-AAEC-F571B5B73F09" xml:lang="en"><title>Cryptography API guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The cryptography API provides cryptographic services to the user software through a standard Symbian platform interface. </p> <p> <i>Note: The strong cryptography API guide is not publically available.</i>  </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e371844_href.png has changed
Binary file Symbian3/SDK/Source/GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e377914_href.png has changed
--- a/Symbian3/SDK/Source/GUID-16D0854D-55EF-4E22-B7D2-72603699BC59.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-16D0854D-55EF-4E22-B7D2-72603699BC59.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-16D0854D-55EF-4E22-B7D2-72603699BC59" xml:lang="en"><title>Empty
-lists and grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>If there are no items to be displayed in a list or grid, the pane contains
-a text informing the user about the empty list. The information displayed
-in the list should be designed to provide as much help and guidance to the
-user as possible. Instead of merely stating that a list is empty, the text
-should point the user to some useful direction in the application in order
-to add content.</p>
-<fig id="GUID-05A6F907-D7C3-44F5-B866-E070D872CECA">
-<title>Empty list: the primary font used for informing of an empty list (left),
-the secondary font (right) used in addition to provide the user with further
-information (used only in cases when genuinely useful additional information
-is available)</title>
-<image href="GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e58816_href.png" placement="inline"/>
-</fig>
-<p>Depending on the case, the text may be aligned to prompt the user to create
-the first item for an empty list.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-16D0854D-55EF-4E22-B7D2-72603699BC59" xml:lang="en"><title>Empty
+lists and grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>If there are no items to be displayed in a list or grid, the pane contains
+a text informing the user about the empty list. The information displayed
+in the list should be designed to provide as much help and guidance to the
+user as possible. Instead of merely stating that a list is empty, the text
+should point the user to some useful direction in the application in order
+to add content.</p>
+<fig id="GUID-05A6F907-D7C3-44F5-B866-E070D872CECA">
+<title>Empty list: the primary font is used to inform about an empty list
+and provide the user with further information (used only in cases when genuinely
+useful additional information is available).</title>
+<image href="GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e52689_href.png" placement="inline"/>
+</fig>
+<p>Depending on the case, the text may be aligned to prompt the user to create
+the first item for an empty list.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1" xml:lang="en"><title>Animation</title><shortdesc>This section explains how to create basic client-side animation
-and server-side sprite animation using the Animation framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-6-1-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-6-1-1-4-1-3-1" xml:lang="en"><title>Animation</title><shortdesc>This section explains how to create basic client-side animation
-and server-side sprite animation using the Animation framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D" xml:lang="en"><title>Animation</title><shortdesc>This section explains how to create basic client-side animation
+and server-side sprite animation using the Animation framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e332834_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e338991_href.png has changed
--- a/Symbian3/SDK/Source/GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3" xml:lang="en"><title>Implementing
-support for scalable UI</title><shortdesc>For the correct control to receive touch events, you must implement
-support for scalable UI.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In Touch UI devices, supporting scalable UI is even more crucial than before.
-Traditionally, the problem was that the application did not scale to fit the
-screen size correctly.</p>
-<p>For more information on scalable UI, see <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">Scalability</xref> section.</p>
-<p>In Touch UI, there is also another consideration, the Symbian platform
-may not receive touch events, or it may receive touch events for the incorrect
-control, because there is a problem with knowing the correct location of the
-touch event.</p>
-<p>The following figures illustrate code required for handling scalable UI
-events.</p>
-<fig id="GUID-0300A264-1F48-4D4F-A3ED-18734983B36E">
-<title>Scalable UI implementation in control</title>
-<image href="GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e43840_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-39D4E25F-C4C3-4C19-BED0-42E06F63A0BD">
-<title>Scalable UI implementation in UI controller</title>
-<image href="GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e43848_href.png" placement="inline"/>
-</fig>
-<p>For further implementation information, see <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">Handling
-layout change events</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3" xml:lang="en"><title>Implementing
+support for scalable UI</title><shortdesc>For the correct control to receive touch events, you must implement
+support for scalable UI.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In Touch UI devices, supporting scalable UI is even more crucial than before.
+Traditionally, the problem was that the application did not scale to fit the
+screen size correctly.</p>
+<p>For more information on scalable UI, see <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">Scalability</xref> section.</p>
+<p>In Touch UI, there is also another consideration, the Symbian platform
+may not receive touch events, or it may receive touch events for the incorrect
+control, because there is a problem with knowing the correct location of the
+touch event.</p>
+<p>The following figures illustrate code required for handling scalable UI
+events.</p>
+<fig id="GUID-0300A264-1F48-4D4F-A3ED-18734983B36E">
+<title>Scalable UI implementation in control</title>
+<image href="GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e38273_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-39D4E25F-C4C3-4C19-BED0-42E06F63A0BD">
+<title>Scalable UI implementation in UI controller</title>
+<image href="GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e38281_href.png" placement="inline"/>
+</fig>
+<p>For further implementation information, see <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">Handling
+layout change events</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D-master.png has changed
Binary file Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e62371_href.png has changed
Binary file Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e63892_href.png has changed
Binary file Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e67482_href.png has changed
Binary file Symbian3/SDK/Source/GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e69123_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e368182_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e374252_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-1747534D-063A-45B0-8636-E7767F984BB0" xml:lang="en"><title>Generating
-a Certificate Request</title><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq><p>Create a private key and a self signed certificate as explained
-in the <xref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita">Creating a Private
-Key and Self Signed Certificate</xref>. </p></prereq>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-4-1-1-4-1-4-1-4-1-6-1-2-2">
-<step id="GUID-F4C2AD1D-476E-4E7E-887F-0678A1F5346F"><cmd>Run MakeKeys at
-the command prompt using the <codeph>-req</codeph> option.</cmd>
-<info><p>The following is the syntax: </p><codeblock xml:space="preserve">&gt; makekeys -req [-v] [-password &lt;password&gt;] -dname &lt;distinguished-name-string&gt; &lt;private-key-file&gt; &lt;public-key-cert&gt;&lt;cert-request-file&gt;</codeblock><note type="important">The <codeph>&lt;cert-request-file&gt;</codeph> must specify
-a name for the output certificate request file with <codeph>.p10</codeph> extension.</note></info>
-<stepxmp><p>For example, </p><codeblock xml:space="preserve">&gt; makekeys -req -dname "CN=Symbian Foundation Developer O=Symbian Foundation C=GB" HelloWorld.key HelloWorld.cer HelloWorldreq.p10
-</codeblock><p>Here, the <codeph>-dname</codeph> provides a simple distinguished
-name string to the MakeKeys tool. <codeph>HelloWorld.key</codeph> is the private
-key file and <codeph>HelloWorld.cer</codeph> is the public key self-signed
-certificate file that were created previously using MakeKeys. <codeph>Helloworldreq.p10</codeph> is
-the name of the output certificate request file. </p></stepxmp>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-1747534D-063A-45B0-8636-E7767F984BB0" xml:lang="en"><title>Generating
+a Certificate Request</title><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq><p>Create a private key and a self signed certificate as explained
+in the <xref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita">Creating a Private
+Key and Self Signed Certificate</xref>. </p></prereq>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-4-1-1-4-1-4-1-4-1-6-1-2-2">
+<step id="GUID-F4C2AD1D-476E-4E7E-887F-0678A1F5346F"><cmd>Run MakeKeys at
+the command prompt using the <codeph>-req</codeph> option.</cmd>
+<info><p>The following is the syntax: </p><codeblock xml:space="preserve">&gt; makekeys -req [-v] [-password &lt;password&gt;] -dname &lt;distinguished-name-string&gt; &lt;private-key-file&gt; &lt;public-key-cert&gt;&lt;cert-request-file&gt;</codeblock><note type="important">The <codeph>&lt;cert-request-file&gt;</codeph> must specify
+a name for the output certificate request file with <codeph>.p10</codeph> extension.</note></info>
+<stepxmp><p>For example, </p><codeblock xml:space="preserve">&gt; makekeys -req -dname "CN=Symbian Foundation Developer O=Symbian Foundation C=GB" HelloWorld.key HelloWorld.cer HelloWorldreq.p10
+</codeblock><p>Here, the <codeph>-dname</codeph> provides a simple distinguished
+name string to the MakeKeys tool. <codeph>HelloWorld.key</codeph> is the private
+key file and <codeph>HelloWorld.cer</codeph> is the public key self-signed
+certificate file that were created previously using MakeKeys. <codeph>Helloworldreq.p10</codeph> is
+the name of the output certificate request file. </p></stepxmp>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-176913BA-3877-58E2-9E12-3606EE697813.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-176913BA-3877-58E2-9E12-3606EE697813.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,77 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-176913BA-3877-58E2-9E12-3606EE697813"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces to the Advanced Camera Settings library in Ecam. The Advanced Camera Settings library is used by application developers to enable camera users to configure camera settings and by device creators to define default and mandatory software and hardware configuration settings. </p> <section><title>Purpose</title> <p>Advanced Camera Settings provides domain specific getters and setters for well known camera hardware settings. Image or video format, sizes and video frame rates are already well defined in the general <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref> API. </p> <p><b>Advanced Camera Settings Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-9C053250-4959-5DB9-9646-6E50A3EDDE87"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-EC265726-FA8D-3D91-9ECC-F68E5D444534.dita"><apiname>ecamadvsettings.dll</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-B4E2E996-CFBE-3156-B02D-D0F2F634B3C7.dita"><apiname>ecam.lib</apiname></xref>  </p> </entry> <entry><p>These files are used for implementing the Advanced Settings. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>The Advanced Settings is a part of the camera component. </p> </section> <section><title>Description</title> <p>The advanced settings class, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>, provides access to common camera hardware settings related to image acquisition for still images and video. </p> <p>To allow the settings to be both flexible and rich enough to work with different camera hardware, settings are identified by UID values. You can get a list of UIDs of the supported and currently active settings, so that a user interface of the available options can be updated accordingly. The class also allows the range of possible values for a setting to be obtained. </p> </section> <section><title>Key Advanced Settings API Classes</title> <p>The key classes that make up the Advanced Settings are as follows: </p> <ul><li id="GUID-64ACC4F4-4001-573D-B561-A1DBC1A1C3BD"><p> <xref href="GUID-055FE6AE-0489-325A-BC84-C387E946D50D.dita"><apiname>MCameraPresets</apiname></xref>  </p> </li> <li id="GUID-D54D56F3-0666-51FF-8A5C-17A9822FB1B0"><p> <xref href="GUID-8B30B504-513B-387D-9389-4C26DCEE8372.dita"><apiname>MCameraAdvancedSettings</apiname></xref>  </p> </li> <li id="GUID-FB3E0B7F-5815-5D4B-B8E6-C1F6CF87D53F"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>  </p> </li> </ul> </section> <section><title>Using Advanced Camera Settings</title> <p>Clients can use the Advanced Settings to: </p> <ul><li id="GUID-81F86379-88CF-522B-81C3-C0D6E34C1023"><p>Build up a configuration set for a camera including: </p> <ul><li id="GUID-61F644CD-BC21-51BF-A976-EE340AF19350"><p>Camera type. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-6C99156B-A23F-32C8-AA84-F7005EDEBD3E"><apiname>CCamera::CCameraAdvancedSettings::TCameraType</apiname></xref>  </p> </li> <li id="GUID-24923284-C4D4-5910-A990-7B3725A8DC7F"><p>Stabilization mode. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-48DF3436-E92C-341B-ABA2-73B7A32CEDCD"><apiname>CCamera::CCameraAdvancedSettings::TStabilizationMode</apiname></xref>  </p> </li> <li id="GUID-0370445E-0DFF-5BB6-B1FA-BD8991529898"><p>Focus Mode. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-877A6E33-8F63-3EFC-8D8C-F77857457B80"><apiname>CCamera::CCameraAdvancedSettings::TFocusMode</apiname></xref>  </p> </li> <li id="GUID-F09295E4-82A7-5D23-B2B6-0E29E6B3EF60"><p>plus several other configuration specifiers such as <xref href="GUID-FAF63EED-08F8-3374-AFF6-4FBD6F17CD3F.dita"><apiname>TDriveMode</apiname></xref>, <xref href="GUID-BF21D32B-91D3-321D-A900-96F6FC61D414.dita"><apiname>TBracketMode</apiname></xref>, <xref href="GUID-69C6A109-EF78-3A36-9E77-2B2007477B6B.dita"><apiname>TPictureOrientation</apiname></xref> and several others. </p> </li> </ul> </li> <li id="GUID-056CAC6B-4A4E-5A95-8988-0FB9E3C298F7"><p>List the UIDs of the supported and currently active settings, so that the user interface can be updated accordingly. </p> </li> <li id="GUID-58963101-6552-5FCD-AD8A-C94705F71279"><p>Support the continuous digital zooming functionality. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Overview</xref> of Camera Framework </p> <p><xref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita">Advanced Settings for Focus, Drive Modes, and Bracket Modes</xref>  </p> <p><xref href="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita">Continuous Digital Zooming</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-176913BA-3877-58E2-9E12-3606EE697813" xml:lang="en"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces to the Advanced Camera Settings library in Ecam.
+The Advanced Camera Settings library is used by application developers to
+enable camera users to configure camera settings and by device creators to
+define default and mandatory software and hardware configuration settings. </p>
+<section id="GUID-8042E290-802C-44BB-93F3-538AB726E43C"><title>Purpose</title> <p>Advanced Camera Settings provides domain
+specific getters and setters for well known camera hardware settings. Image
+or video format, sizes and video frame rates are already well defined in the
+general <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> API. </p> <p><b>Advanced
+Camera Settings Library Details</b> </p> <p>The DLL that provides the functionality
+and the library to which your code must link is identified below. </p> <table id="GUID-9C053250-4959-5DB9-9646-6E50A3EDDE87">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>ecamadvsettings.dll </entry>
+<entry>ecam.lib </entry>
+<entry><p>These files are used for implementing the Advanced Settings. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-7AEE09BE-2952-4FA2-8522-A4ED0B2DAC62"><title>Architectural Relationship</title> <p>The Advanced Settings
+is a part of the camera component. </p> </section>
+<section id="GUID-978DA3BF-7EFF-471A-95F2-1D4C3381A026"><title>Description</title> <p>The advanced settings class, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>,
+provides access to common camera hardware settings related to image acquisition
+for still images and video. </p> <p>To allow the settings to be both flexible
+and rich enough to work with different camera hardware, settings are identified
+by UID values. You can get a list of UIDs of the supported and currently active
+settings, so that a user interface of the available options can be updated
+accordingly. The class also allows the range of possible values for a setting
+to be obtained. </p> </section>
+<section id="GUID-60DCE23C-D5B6-459B-A066-C5338A42184A"><title>Key Advanced Settings API Classes</title> <p>The key classes
+that make up the Advanced Settings are as follows: </p> <ul>
+<li id="GUID-64ACC4F4-4001-573D-B561-A1DBC1A1C3BD"><p> <xref href="GUID-055FE6AE-0489-325A-BC84-C387E946D50D.dita"><apiname>MCameraPresets</apiname></xref>  </p> </li>
+<li id="GUID-D54D56F3-0666-51FF-8A5C-17A9822FB1B0"><p> <xref href="GUID-8B30B504-513B-387D-9389-4C26DCEE8372.dita"><apiname>MCameraAdvancedSettings</apiname></xref>  </p> </li>
+<li id="GUID-FB3E0B7F-5815-5D4B-B8E6-C1F6CF87D53F"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>  </p> </li>
+</ul> </section>
+<section id="GUID-60479960-CE90-483A-9E7D-B64D545F7CB3"><title>Using Advanced Camera Settings</title> <p>Clients can use
+the Advanced Settings to: </p> <ul>
+<li id="GUID-81F86379-88CF-522B-81C3-C0D6E34C1023"><p>Build up a configuration
+set for a camera including: </p> <ul>
+<li id="GUID-61F644CD-BC21-51BF-A976-EE340AF19350"><p>Camera type. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-6C99156B-A23F-32C8-AA84-F7005EDEBD3E"><apiname>CCamera::CCameraAdvancedSettings::TCameraType</apiname></xref>  </p> </li>
+<li id="GUID-24923284-C4D4-5910-A990-7B3725A8DC7F"><p>Stabilization mode. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-48DF3436-E92C-341B-ABA2-73B7A32CEDCD"><apiname>CCamera::CCameraAdvancedSettings::TStabilizationMode</apiname></xref>  </p> </li>
+<li id="GUID-0370445E-0DFF-5BB6-B1FA-BD8991529898"><p>Focus Mode. <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-877A6E33-8F63-3EFC-8D8C-F77857457B80"><apiname>CCamera::CCameraAdvancedSettings::TFocusMode</apiname></xref>  </p> </li>
+<li id="GUID-F09295E4-82A7-5D23-B2B6-0E29E6B3EF60"><p>plus several other configuration
+specifiers such as <xref href="GUID-FAF63EED-08F8-3374-AFF6-4FBD6F17CD3F.dita"><apiname>TDriveMode</apiname></xref>, <xref href="GUID-BF21D32B-91D3-321D-A900-96F6FC61D414.dita"><apiname>TBracketMode</apiname></xref>, <xref href="GUID-69C6A109-EF78-3A36-9E77-2B2007477B6B.dita"><apiname>TPictureOrientation</apiname></xref> and
+several others. </p> </li>
+</ul> </li>
+<li id="GUID-056CAC6B-4A4E-5A95-8988-0FB9E3C298F7"><p>List the UIDs of the
+supported and currently active settings, so that the user interface can be
+updated accordingly. </p> </li>
+<li id="GUID-58963101-6552-5FCD-AD8A-C94705F71279"><p>Support the continuous
+digital zooming functionality. </p> </li>
+</ul> </section>
+<section id="GUID-565B80CB-0F0A-4E46-B05F-4B3718DCD7E4"><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Overview</xref> of
+Camera Framework </p> <p><xref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita">Advanced
+Settings for Focus, Drive Modes, and Bracket Modes</xref>  </p> <p><xref href="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita">Continuous
+Digital Zooming</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-17C64C2F-9426-4B41-9F0A-23060289D644" xml:lang="en"><title>Multi-touch</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Multi-touch is an enhancement to the touch screen, which provides the user
-with the ability to apply elaborate finger gestures onto the display as commands
-to the device.</p>
-<p>Multi-touch is implemented based on the size and type of interfaces. When
-a finger or an object touches the display causing the light to scatter, the
-reflection is caught by the sensors. The response for the touch is sent back
-based on the type of reflection measured.</p>
-<p>Only the devices with multi-touch support have 'Pinch Stroke' as a touch
-stroke.</p>
-<section id="GUID-7AECBBDD-8583-4555-A2F3-83404CBC64C1"><title>Pinch Stroke</title>Pinch
-stroke is invoked by two separate but simultaneously active touch down events
-and dragging movements along the line that goes through both touch down points.
-On release, the pinch in or pinch out state is maintained. Pinch stroke can
-be utilized, for example, in Photo viewer to zoom in and zoom out.<fig id="GUID-93C93C51-1F0D-4ADE-8FEC-3223B9C9F60B">
-<image href="GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e75600_href.png" placement="inline"/>
-</fig><p>The following table lists the default touch-events for pinch-stroke:</p><table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-8-1-6-1-1-6-2-1-5-1-1-7-1-2-4-4"><title>Default touch events
-for pinch-stroke</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.68*"/><colspec colname="col2" colwidth="1.00*"/><colspec colname="col3" colwidth="1.32*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>First touch down</p></entry>
-<entry><p>No action.</p></entry>
-<entry><p>Tactile: <ul>
-<li><p>First touch down tactile feedback follows the context-based feedback. </p></li>
-<li><p>Audio feedback is provided with touch down.</p></li>
-</ul></p></entry>
-</row>
-<row>
-<entry><p>Second simultaneous touch down</p></entry>
-<entry><p>Activates multi-touch mode for the content defined.</p></entry>
-<entry><p>Tactile: <ul>
-<li><p>When second finger is touched down multi-touch recognition, two sensitive
-pulses effect is provided.</p></li>
-<li><p>Audio feedback is provided with touch down.</p></li>
-</ul></p></entry>
-</row>
-<row>
-<entry><p>Pinch in</p></entry>
-<entry><p>Moving the touch points (directly) closer to each other is recognized
-as pinch in. Application can use it, for example, for zooming out a picture.
-The behavior should be in relation to the speed and size of the stroke.</p></entry>
-<entry><p>Tactile: Smooth pinch effect is provided while moving the fingers. </p><p>No
-audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Pinch out</p></entry>
-<entry><p>Moving the touch points (directly) away from each other is recognized
-as pinch out. Application can use it, for example, for zooming in a picture.
-The behavior should be in relation to the speed and size of the stroke.</p></entry>
-<entry><p>Tactile: Smooth pinch effect is provided while moving the fingers. </p><p>No
-audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Releasing one or both fingers stops the pinch.</p></entry>
-<entry><p>No tactile or audio feedback given.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-17C64C2F-9426-4B41-9F0A-23060289D644" xml:lang="en"><title>Multi-touch</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Multi-touch is an enhancement to the touch screen, which provides
+the user with the ability to apply elaborate finger gestures onto
+the display as commands to the device.</p>
+<p>Multi-touch is implemented based on the size and type of interfaces.
+When a finger or an object touches the display causing the light to
+scatter, the reflection is caught by the sensors. The response for
+the touch is sent back based on the type of reflection measured.</p>
+<p>Only the devices with multi-touch support have 'Pinch Stroke' as
+a touch stroke.</p>
+<section id="GUID-7AECBBDD-8583-4555-A2F3-83404CBC64C1"><title>Pinch
+Stroke</title>Pinch stroke is invoked by two separate but simultaneously
+active touch down events and dragging movements along the line that
+goes through both touch down points. On release, the pinch in or pinch
+out state is maintained. Pinch stroke can be utilized, for example,
+in Photo viewer to zoom in and zoom out.<fig id="GUID-93C93C51-1F0D-4ADE-8FEC-3223B9C9F60B">
+<image href="GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e70545_href.png" placement="inline"/>
+</fig><p>The following table lists the default touch-events for pinch-stroke:</p><table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-10-1-6-1-1-6-2-1-5-1-1-6-1-2-4-4"><title>Default
+touch events for pinch-stroke</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.68*"/><colspec colname="col2" colwidth="1.00*"/><colspec colname="col3" colwidth="1.32*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>First touch down</p></entry>
+<entry><p>No action.</p></entry>
+<entry><p>Tactile: <ul>
+<li><p>First touch down tactile feedback follows the context-based
+feedback. </p></li>
+<li><p>Audio feedback is provided with touch down.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Second simultaneous touch down</p></entry>
+<entry><p>Activates multi-touch mode for the content defined.</p></entry>
+<entry><p>Tactile: <ul>
+<li><p>When second finger is touched down multi-touch recognition,
+two sensitive pulses effect is provided.</p></li>
+<li><p>Audio feedback is provided with touch down.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Pinch in</p></entry>
+<entry><p>Moving the touch points (directly) closer to each other
+is recognized as pinch in. Application can use it, for example, for
+zooming out a picture. The behavior should be in relation to the speed
+and size of the stroke.</p></entry>
+<entry><p>Tactile: Smooth pinch effect is provided while moving the
+fingers. </p><p>No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Pinch out</p></entry>
+<entry><p>Moving the touch points (directly) away from each other
+is recognized as pinch out. Application can use it, for example, for
+zooming in a picture. The behavior should be in relation to the speed
+and size of the stroke.</p></entry>
+<entry><p>Tactile: Smooth pinch effect is provided while moving the
+fingers. </p><p>No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Releasing one or both fingers stops the pinch.</p></entry>
+<entry><p>No tactile or audio feedback given.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section id="GUID-C9D46D3B-B1D0-45C7-8A9F-FCF82653D78F"><title>Using multi-touch in applications</title>For multi-touch,
+use classes <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> and <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref> (which extends <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>). For more information,
+see <xref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita">Advanced
+pointers</xref> section.</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e332498_href.png has changed
Binary file Symbian3/SDK/Source/GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e338655_href.png has changed
--- a/Symbian3/SDK/Source/GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B" xml:lang="en"><title>BIO
-Messaging Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The BIO Messaging Framework provides a framework supports plug-ins which
-receive, parse and process BIO messages </p>
-<p>Bearer Independent Objects (BIO) messages contain data that can be received
-and interpreted by the device. Unlike conventional messages—such as, SMS and
-email, BIO messages does not depend on the type of transport over which it
-is received. not intended to be read by the user in their raw form. BIO messages
-can be received over a number of bearers: IR, Bluetooth, SMS and WAP Push. </p>
-<section><title>Purpose</title> <p>Plug-ins supported by the framework handle
-incoming BIO messages received by a phone. BIO messages are sent to the system
-to update attributes on the system. </p> <p>Examples of BIO messages are vCards
-vCals, device settings, ringtones, graphical logos and icons, Internet access
-point setup messages and Over the Air (OTA) configuration messages. vCards
-are parsed and then displayed to the user, and when accepted they modify the
-user’s contact database. OTA configuration messages are parsed before they
-are displayed to the user, and if accepted they create email accounts or internet
-access points. </p> </section>
-<section id="GUID-6E7D52CF-F18C-5C92-9DB2-611EDD018048"><title>Key terms</title> <dl>
-<dlentry>
-<dt>vCard</dt>
-<dd><p>An electronic business card, which is a collection of properties. Properties
-can be a property name, one or more property parameters. and a property value. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>vCal</dt>
-<dd><p>An electronic calendar entry, which consists of a collection of properties. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>BIO Messaging Framework comprises
-of three main components—<xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-BA671884-B143-52B0-9F48-1801F465F6D6">BIO
-MTM</xref>, <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-38031091-ED66-51CF-A025-85C7CEEC3D7D">BIO
-database</xref> and <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-9C9FDAE8-B89A-57EF-8F56-E0C84D9E5837">BIO
-parser</xref>. </p> <p>BIO messages are not received by the BIO Message Framework
-directly. They come over other subsystems to the BIO database. For example,
-the SMS watchers receive BIO messages from the SMS stack and use BIO Messaging
-Framework to tag the messages with the correct BIO ID. </p> <p>The following
-figure illustrates the BIO Messaging Framework architecture: </p> <fig id="GUID-2CEE40B9-2559-5CF3-B98F-2472F6B4D35D">
-<title>              BIO Messaging Framework architecture            </title>
-<image href="GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e290725_href.png" placement="inline"/>
-</fig> <p id="GUID-38031091-ED66-51CF-A025-85C7CEEC3D7D"><b>BIO database</b> </p> <p>The
-BIO database is used to identify the type of BIO messages. It maps message
-attributes, such as port number, MIME type, or leading string to a BIO type.
-These attributes are then used by clients of the BIO Message Framework to
-determine what ports to listen for messages. For example, SMS messages which
-start with that string and, when storing these messages in the inbox, tag
-them with the BIO ID associated with that leading string. </p> <p><b>BIO watcher</b> </p> <p>BIO
-watcher is part of the <xref href="GUID-4603D4ED-966F-5F70-B991-D10495BC2D7E.dita">Watcher
-Framework</xref>, which handles BIO messages that come from the SMS and WAP
-stack. It firsts identifies the type of BIO message using the BIO database,
-and then creates a BIO message in a Message Store using the messaging APIs. </p> <p><b>BIF
-files and utilities</b> </p> <p>BIO Information Files (BIF) are resource files
-that are read by the BIO database to provide registration information of BIO
-message types. There is one BIF file for every BIO message type. They encapsulate
-the information required for identifying BIO messages. The information may
-include the expected port number, MIME type or leading string. Different BIO
-watchers use different information. </p> <p>BIF files can be one of two formats.
-The first format is a resource file and the second format is a custom binary
-format for representing the data fields in the BIF file. The BIF utilities
-(<filepath>bifu.dll</filepath>) provide the functionality to read information
-in BIF files of both formats. </p> <p id="GUID-BA671884-B143-52B0-9F48-1801F465F6D6"><b>BIO
-MTM</b> </p> <p>The BIO Client MTM is responsible for loading the BIO database
-and BIO utilities to handle parse or process requests from messaging clients.
-It is called by a messaging client to parse or process a BIO message that
-is saved in a Message Store. If the client is trusted with the correct capabilities,
-the BIO parser DLLs are loaded successfully. Without the right capabilities,
-the DLLs will not run. A BIO watcher saves the BIO message with the BIO flag
-and the appropriate BIO type set. </p> <p>The BIO MTM does not support sending
-messages and therefore does not support reply or forward of BIO messages.
-Forwarding and replying to BIO messages is supported by the MTM that the message
-is sent over, for example SMS. </p> <p id="GUID-9C9FDAE8-B89A-57EF-8F56-E0C84D9E5837"><b>BIO
-parser and utilities</b> </p> <p>BIO parsers are plug-ins (DLLs) that provide
-parsing and processing functionality for incoming BIO messages. The parser
-uses BIO utilities to provide base functionality. BIO utilities that load
-the BIO parser use the DLL filename and load the DLLs from the <filepath>\sys\bin</filepath> location. </p> <p>Each
-BIO parser implements the <xref href="GUID-2DBFC4F4-3675-32DD-ACF7-B075827C4181.dita"><apiname>ParseL</apiname></xref> and <xref href="GUID-1451C2B5-426E-30F3-AD30-C05ECA1BF4EF.dita"><apiname>ProcessL</apiname></xref> functions.
-The level of functionality varies between parsers. Some parsers update the
-final repository with the received data. For example, the WAP parser updates
-the <codeph>CommDb</codeph> with the received settings. Some parsers save
-data in an unparsed state for processing by another component. This secondary
-parsing is not part of BIO Messaging Framework and must be initiated by a
-messaging client. For example, when generic file parser (GFP) saves a vCard
-data as a file to update the contact database, the UI must then invoke the
-Versit parser to parse the vCard and commit it to the contact database. </p> <p>It
-is possible to add new BIO parsers to provide support for different types
-of BIO message. The following are the types of parsers provided by Symbian: </p> <ul>
-<li id="GUID-884D2387-313D-5408-A72B-607036AAA67A"><p> <b>Generic file parser
-(GFP):</b> The generic file parser can be used to identify and save a variety
-of BIO data types, for example, vCards and vCals. The generic file parser
-does not process the data, it saves it in the message store for processing
-by another component. The file is saved as an attachment of the message entry
-that is parsed. </p> </li>
-<li id="GUID-732BB8B0-DD6D-5808-A260-598343727228"><p> <b>OTA parser (WAPP):</b> The
-WAPP parser decodes Nokia OTA messages and updates CommDb to reflect the received
-settings. </p> </li>
-<li id="GUID-5A42A060-4B0C-5581-A584-A34914F6B972"><p> <b>Internet Access
-Parser (IACP):</b> The IACP parser decodes Nokia smart messages and updates
-the CommDb and messaging settings where appropriate. </p> </li>
-</ul> </section>
-<section><title>API summary</title> <p> <xref href="GUID-B752DB50-DF39-3FE2-975C-D49318426F93.dita"><apiname>CBIOClientMtm</apiname></xref>, <xref href="GUID-115327CD-43D1-324B-84D7-8DFB6226C42A.dita"><apiname>CBIODatabase</apiname></xref> and <xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref> are the main APIs of BIO Message Framework. </p> </section>
-</conbody><related-links>
-<link href="GUID-4603D4ED-966F-5F70-B991-D10495BC2D7E.dita"><linktext>Watcher Framework</linktext>
-</link>
-<link href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita"><linktext>Example code</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B" xml:lang="en"><title>BIO
+Messaging Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The BIO Messaging Framework provides a framework supports plug-ins which
+receive, parse and process BIO messages </p>
+<p>Bearer Independent Objects (BIO) messages contain data that can be received
+and interpreted by the device. Unlike conventional messages—such as, SMS and
+email, BIO messages does not depend on the type of transport over which it
+is received. not intended to be read by the user in their raw form. BIO messages
+can be received over a number of bearers: IR, Bluetooth, SMS and WAP Push. </p>
+<section><title>Purpose</title> <p>Plug-ins supported by the framework handle
+incoming BIO messages received by a phone. BIO messages are sent to the system
+to update attributes on the system. </p> <p>Examples of BIO messages are vCards
+vCals, device settings, ringtones, graphical logos and icons, Internet access
+point setup messages and Over the Air (OTA) configuration messages. vCards
+are parsed and then displayed to the user, and when accepted they modify the
+user’s contact database. OTA configuration messages are parsed before they
+are displayed to the user, and if accepted they create email accounts or internet
+access points. </p> </section>
+<section id="GUID-6E7D52CF-F18C-5C92-9DB2-611EDD018048"><title>Key terms</title> <dl>
+<dlentry>
+<dt>vCard</dt>
+<dd><p>An electronic business card, which is a collection of properties. Properties
+can be a property name, one or more property parameters. and a property value. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>vCal</dt>
+<dd><p>An electronic calendar entry, which consists of a collection of properties. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>BIO Messaging Framework comprises
+of three main components—<xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-BA671884-B143-52B0-9F48-1801F465F6D6">BIO
+MTM</xref>, <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-38031091-ED66-51CF-A025-85C7CEEC3D7D">BIO
+database</xref> and <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-9C9FDAE8-B89A-57EF-8F56-E0C84D9E5837">BIO
+parser</xref>. </p> <p>BIO messages are not received by the BIO Message Framework
+directly. They come over other subsystems to the BIO database. For example,
+the SMS watchers receive BIO messages from the SMS stack and use BIO Messaging
+Framework to tag the messages with the correct BIO ID. </p> <p>The following
+figure illustrates the BIO Messaging Framework architecture: </p> <fig id="GUID-2CEE40B9-2559-5CF3-B98F-2472F6B4D35D">
+<title>              BIO Messaging Framework architecture            </title>
+<image href="GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e287092_href.png" placement="inline"/>
+</fig> <p id="GUID-38031091-ED66-51CF-A025-85C7CEEC3D7D"><b>BIO database</b> </p> <p>The
+BIO database is used to identify the type of BIO messages. It maps message
+attributes, such as port number, MIME type, or leading string to a BIO type.
+These attributes are then used by clients of the BIO Message Framework to
+determine what ports to listen for messages. For example, SMS messages which
+start with that string and, when storing these messages in the inbox, tag
+them with the BIO ID associated with that leading string. </p> <p><b>BIO watcher</b> </p> <p>BIO
+watcher is part of the <xref href="GUID-4603D4ED-966F-5F70-B991-D10495BC2D7E.dita">Watcher
+Framework</xref>, which handles BIO messages that come from the SMS and WAP
+stack. It firsts identifies the type of BIO message using the BIO database,
+and then creates a BIO message in a Message Store using the messaging APIs. </p> <p><b>BIF
+files and utilities</b> </p> <p>BIO Information Files (BIF) are resource files
+that are read by the BIO database to provide registration information of BIO
+message types. There is one BIF file for every BIO message type. They encapsulate
+the information required for identifying BIO messages. The information may
+include the expected port number, MIME type or leading string. Different BIO
+watchers use different information. </p> <p>BIF files can be one of two formats.
+The first format is a resource file and the second format is a custom binary
+format for representing the data fields in the BIF file. The BIF utilities
+(<filepath>bifu.dll</filepath>) provide the functionality to read information
+in BIF files of both formats. </p> <p id="GUID-BA671884-B143-52B0-9F48-1801F465F6D6"><b>BIO
+MTM</b> </p> <p>The BIO Client MTM is responsible for loading the BIO database
+and BIO utilities to handle parse or process requests from messaging clients.
+It is called by a messaging client to parse or process a BIO message that
+is saved in a Message Store. If the client is trusted with the correct capabilities,
+the BIO parser DLLs are loaded successfully. Without the right capabilities,
+the DLLs will not run. A BIO watcher saves the BIO message with the BIO flag
+and the appropriate BIO type set. </p> <p>The BIO MTM does not support sending
+messages and therefore does not support reply or forward of BIO messages.
+Forwarding and replying to BIO messages is supported by the MTM that the message
+is sent over, for example SMS. </p> <p id="GUID-9C9FDAE8-B89A-57EF-8F56-E0C84D9E5837"><b>BIO
+parser and utilities</b> </p> <p>BIO parsers are plug-ins (DLLs) that provide
+parsing and processing functionality for incoming BIO messages. The parser
+uses BIO utilities to provide base functionality. BIO utilities that load
+the BIO parser use the DLL filename and load the DLLs from the <filepath>\sys\bin</filepath> location. </p> <p>Each
+BIO parser implements the <xref href="GUID-2DBFC4F4-3675-32DD-ACF7-B075827C4181.dita"><apiname>ParseL</apiname></xref> and <xref href="GUID-1451C2B5-426E-30F3-AD30-C05ECA1BF4EF.dita"><apiname>ProcessL</apiname></xref> functions.
+The level of functionality varies between parsers. Some parsers update the
+final repository with the received data. For example, the WAP parser updates
+the <codeph>CommDb</codeph> with the received settings. Some parsers save
+data in an unparsed state for processing by another component. This secondary
+parsing is not part of BIO Messaging Framework and must be initiated by a
+messaging client. For example, when generic file parser (GFP) saves a vCard
+data as a file to update the contact database, the UI must then invoke the
+Versit parser to parse the vCard and commit it to the contact database. </p> <p>It
+is possible to add new BIO parsers to provide support for different types
+of BIO message. The following are the types of parsers provided by Symbian: </p> <ul>
+<li id="GUID-884D2387-313D-5408-A72B-607036AAA67A"><p> <b>Generic file parser
+(GFP):</b> The generic file parser can be used to identify and save a variety
+of BIO data types, for example, vCards and vCals. The generic file parser
+does not process the data, it saves it in the message store for processing
+by another component. The file is saved as an attachment of the message entry
+that is parsed. </p> </li>
+<li id="GUID-732BB8B0-DD6D-5808-A260-598343727228"><p> <b>OTA parser (WAPP):</b> The
+WAPP parser decodes Nokia OTA messages and updates CommDb to reflect the received
+settings. </p> </li>
+<li id="GUID-5A42A060-4B0C-5581-A584-A34914F6B972"><p> <b>Internet Access
+Parser (IACP):</b> The IACP parser decodes Nokia smart messages and updates
+the CommDb and messaging settings where appropriate. </p> </li>
+</ul> </section>
+<section><title>API summary</title> <p> <xref href="GUID-B752DB50-DF39-3FE2-975C-D49318426F93.dita"><apiname>CBIOClientMtm</apiname></xref>, <xref href="GUID-115327CD-43D1-324B-84D7-8DFB6226C42A.dita"><apiname>CBIODatabase</apiname></xref> and <xref href="GUID-7A187B0D-79D6-3EAD-8181-FE2EBB9043DC.dita"><apiname>CBaseScriptParser2</apiname></xref> are the main APIs of BIO Message Framework. </p> </section>
+</conbody><related-links>
+<link href="GUID-4603D4ED-966F-5F70-B991-D10495BC2D7E.dita"><linktext>Watcher Framework</linktext>
+</link>
+<link href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita"><linktext>Example code</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-182326EB-E818-4146-82D9-494D59E430B8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-182326EB-E818-4146-82D9-494D59E430B8_d0e81983_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-18358882-A4DD-5010-BED7-4ACAE021495D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-18358882-A4DD-5010-BED7-4ACAE021495D" xml:lang="en"><title>Example code</title><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403005_href.png has changed
Binary file Symbian3/SDK/Source/GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403167_href.png has changed
Binary file Symbian3/SDK/Source/GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e207449_href.png has changed
Binary file Symbian3/SDK/Source/GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e212244_href.png has changed
--- a/Symbian3/SDK/Source/GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2"><title>Recording Video Data</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to record video data. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to use the video recorder to control video recording. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video recorder utility is used to record video clips to files, descriptors or URLs and manipulate embedded meta data. This functionality is implemented by the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref> class. </p> <p>The sequence diagram below explains the different functionalities of the video recorder utility: </p> <fig id="GUID-ADEA2E56-8601-55C2-9887-C35B366C3C87"><title>
-                Video recorder sequence diagram 
-             </title> <image href="GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e320944_href.png" placement="inline"/></fig> </section> <section><title>Using Video Recording </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-120128C4-C7E9-5DD6-84CA-7798CCE7AB01"><p><xref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita#GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2/GUID-5378C592-9E29-554C-A4CB-90A9D8210239"> Record Video Data</xref>  </p> </li> </ul> <p id="GUID-5378C592-9E29-554C-A4CB-90A9D8210239"><b>Basic Procedure</b> </p> <p>The high level steps to record video data are shown here: </p> <ol id="GUID-B0CCE7C7-7428-5198-A5AD-BDB45D73D19D"><li id="GUID-5A3C0168-F27E-5136-B1EC-635827F51A80"><p>If you are using an audio clip, the recording gain must be set using the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-411D9EF8-93AA-3BC6-85CF-38BFF142D379"><apiname>CVideoRecorderUtility::SetGainL()</apiname></xref> function before recording because the initial gain is undefined or may also have been modified by another client application. </p> </li> <li id="GUID-93560BD5-6FAD-5939-9C7B-9FBE5E22F4F8"><p>The specific functions to record and perform related tasks are as follows: </p> <ul><li id="GUID-A2E04F54-BE9C-5AC8-A2C3-A8421E03E829"><p>To start recording video data to the specified file, descriptor or URL, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-0336E439-275D-3766-9840-37F4C8218F5A"><apiname>CVideoRecorderUtility::Record()</apiname></xref> function. </p> <codeblock id="GUID-A5C5F5F6-5137-5742-ADF6-E99DC00A9FCC" xml:space="preserve">void CRecordVideo::Record()
-    {
-    iVideoRecordUtility-&gt;Record();
-    }</codeblock> </li> <li id="GUID-1B3162D7-A0A6-5556-B81B-21BE3AB21F1C"><p>To pause recording, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-394D2DB5-7545-390B-8CB8-C321EA897298"><apiname>CVideoRecorderUtility::PauseL()</apiname></xref> function. The position within the video clip is maintained in case a subsequent <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-0336E439-275D-3766-9840-37F4C8218F5A"><apiname>CVideoRecorderUtility::Record()</apiname></xref> is called. </p> <codeblock id="GUID-1D3CFFBF-8040-534A-B878-AAE2F29A70EC" xml:space="preserve">void CRecordVideo::PauseL()
-    {
-    iVideoRecordUtility-&gt;PauseL();
-    }</codeblock> </li> <li id="GUID-CA27950D-7E70-5947-9067-ADFFECE08DD0"><p>To stop recording, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-BAD9B7BB-94E5-3584-9B59-E4FB92206FF7"><apiname>CVideoRecorderUtility::Stop()</apiname></xref> function. If the video format supports audio tracks and if audio is enabled, this function also stops recording the audio data. </p> <codeblock id="GUID-2CC808B5-7A0C-5886-ABCC-76D8E30AFCFA" xml:space="preserve">TInt CRecordVideo::Stop()
-    {
-    TInt err = iVideoRecordUtility-&gt;Stop();
-    return err;
-    }</codeblock> </li> <li id="GUID-3673BD16-3AE1-591B-B8A8-0C8BB6F4BDFC"><p>To close all related video and audio controllers, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-8572BA1E-9EFA-30F3-B7A0-6E750E94F846"><apiname>CVideoRecorderUtility::Close()</apiname></xref> function. </p> <codeblock id="GUID-0F8E11A0-50A4-5614-B08E-30AEB6CF7538" xml:space="preserve">void  CRecordVideo::Close()
-    {
-    iVideoRecordUtility-&gt;Close();
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2"><title>Recording Video Data</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to record video data. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to use the video recorder to control video recording. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video recorder utility is used to record video clips to files, descriptors or URLs and manipulate embedded meta data. This functionality is implemented by the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref> class. </p> <p>The sequence diagram below explains the different functionalities of the video recorder utility: </p> <fig id="GUID-ADEA2E56-8601-55C2-9887-C35B366C3C87"><title>
+                Video recorder sequence diagram 
+             </title> <image href="GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e314550_href.png" placement="inline"/></fig> </section> <section><title>Using Video Recording </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-120128C4-C7E9-5DD6-84CA-7798CCE7AB01"><p><xref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita#GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2/GUID-5378C592-9E29-554C-A4CB-90A9D8210239"> Record Video Data</xref>  </p> </li> </ul> <p id="GUID-5378C592-9E29-554C-A4CB-90A9D8210239"><b>Basic Procedure</b> </p> <p>The high level steps to record video data are shown here: </p> <ol id="GUID-B0CCE7C7-7428-5198-A5AD-BDB45D73D19D"><li id="GUID-5A3C0168-F27E-5136-B1EC-635827F51A80"><p>If you are using an audio clip, the recording gain must be set using the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-411D9EF8-93AA-3BC6-85CF-38BFF142D379"><apiname>CVideoRecorderUtility::SetGainL()</apiname></xref> function before recording because the initial gain is undefined or may also have been modified by another client application. </p> </li> <li id="GUID-93560BD5-6FAD-5939-9C7B-9FBE5E22F4F8"><p>The specific functions to record and perform related tasks are as follows: </p> <ul><li id="GUID-A2E04F54-BE9C-5AC8-A2C3-A8421E03E829"><p>To start recording video data to the specified file, descriptor or URL, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-0336E439-275D-3766-9840-37F4C8218F5A"><apiname>CVideoRecorderUtility::Record()</apiname></xref> function. </p> <codeblock id="GUID-A5C5F5F6-5137-5742-ADF6-E99DC00A9FCC" xml:space="preserve">void CRecordVideo::Record()
+    {
+    iVideoRecordUtility-&gt;Record();
+    }</codeblock> </li> <li id="GUID-1B3162D7-A0A6-5556-B81B-21BE3AB21F1C"><p>To pause recording, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-394D2DB5-7545-390B-8CB8-C321EA897298"><apiname>CVideoRecorderUtility::PauseL()</apiname></xref> function. The position within the video clip is maintained in case a subsequent <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-0336E439-275D-3766-9840-37F4C8218F5A"><apiname>CVideoRecorderUtility::Record()</apiname></xref> is called. </p> <codeblock id="GUID-1D3CFFBF-8040-534A-B878-AAE2F29A70EC" xml:space="preserve">void CRecordVideo::PauseL()
+    {
+    iVideoRecordUtility-&gt;PauseL();
+    }</codeblock> </li> <li id="GUID-CA27950D-7E70-5947-9067-ADFFECE08DD0"><p>To stop recording, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-BAD9B7BB-94E5-3584-9B59-E4FB92206FF7"><apiname>CVideoRecorderUtility::Stop()</apiname></xref> function. If the video format supports audio tracks and if audio is enabled, this function also stops recording the audio data. </p> <codeblock id="GUID-2CC808B5-7A0C-5886-ABCC-76D8E30AFCFA" xml:space="preserve">TInt CRecordVideo::Stop()
+    {
+    TInt err = iVideoRecordUtility-&gt;Stop();
+    return err;
+    }</codeblock> </li> <li id="GUID-3673BD16-3AE1-591B-B8A8-0C8BB6F4BDFC"><p>To close all related video and audio controllers, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-8572BA1E-9EFA-30F3-B7A0-6E750E94F846"><apiname>CVideoRecorderUtility::Close()</apiname></xref> function. </p> <codeblock id="GUID-0F8E11A0-50A4-5614-B08E-30AEB6CF7538" xml:space="preserve">void  CRecordVideo::Close()
+    {
+    iVideoRecordUtility-&gt;Close();
     }</codeblock> </li> </ul> </li> </ol> </section> <section><title>See Also</title> <p><xref href="GUID-688C515E-3D1B-51BB-A776-A246FA232061.dita">Creating and Preparing a Video Recorder</xref>  </p> <p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita">Configuring the Video Recorder</xref>  </p> <p><xref href="GUID-ED700A4A-3BBF-5048-92CB-E3677A0FD09F.dita">Enabling/Disabling Video Recording</xref>  </p> <p><xref href="GUID-C08BBBAD-3605-53E3-A94F-ECCFFB80E1DD.dita">Controlling Video Recording Quality</xref>  </p> <p><xref href="GUID-2D20B6DF-BE02-50CF-8E9F-14E3402EF952.dita">Setting Video Metadata</xref>  </p> <p><xref href="GUID-44EDB476-33E2-5D91-8CC2-A04369AACCA4.dita">Controlling the Video Plugin</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-18D92465-3F62-55CF-8229-EE811FD5F568.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-18D92465-3F62-55CF-8229-EE811FD5F568.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-18D92465-3F62-55CF-8229-EE811FD5F568"><title>Stream networks</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>When a store stream is created, a stream ID is generated. This ID can be used to open the stream later. Stream IDs can be externalised into another stream, and this allows streams in a store to be built into a network.</p> <p>An object that is saved to a store may use a network of streams, typically starting with a single head stream.</p> <p>An object stores itself using a function of the form:</p> <codeblock id="GUID-A150BE2B-BCC6-52DC-BEB4-826FDDB28C09" xml:space="preserve">streamId=object.StoreL(store);</codeblock> <p>Given the correct stream ID, the object may be restored using a function of the form:</p> <codeblock id="GUID-2F6D9176-0ED8-5696-9FF8-D347084B9CFB" xml:space="preserve">object.RestoreL(store,streamId)</codeblock> <p>where <codeph>store</codeph> is a reference or pointer to a store.</p> <p>The function names <codeph>StoreL()</codeph> and <codeph>RestoreL()</codeph> are conventional for this purpose.</p> <p>The following diagram shows the idea of stream networks:</p> <fig id="GUID-970A4AE3-62C2-5BFD-990D-96D76735049A"><image href="GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e362709_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-18D92465-3F62-55CF-8229-EE811FD5F568"><title>Stream networks</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>When a store stream is created, a stream ID is generated. This ID can be used to open the stream later. Stream IDs can be externalised into another stream, and this allows streams in a store to be built into a network.</p> <p>An object that is saved to a store may use a network of streams, typically starting with a single head stream.</p> <p>An object stores itself using a function of the form:</p> <codeblock id="GUID-A150BE2B-BCC6-52DC-BEB4-826FDDB28C09" xml:space="preserve">streamId=object.StoreL(store);</codeblock> <p>Given the correct stream ID, the object may be restored using a function of the form:</p> <codeblock id="GUID-2F6D9176-0ED8-5696-9FF8-D347084B9CFB" xml:space="preserve">object.RestoreL(store,streamId)</codeblock> <p>where <codeph>store</codeph> is a reference or pointer to a store.</p> <p>The function names <codeph>StoreL()</codeph> and <codeph>RestoreL()</codeph> are conventional for this purpose.</p> <p>The following diagram shows the idea of stream networks:</p> <fig id="GUID-970A4AE3-62C2-5BFD-990D-96D76735049A"><image href="GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e356629_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719" xml:lang="en"><title>Migrating
-from STLport v4 to v5</title><shortdesc>If you are using STLport v4, it is recommended that you migrate
-to the latest version of Standard C++ Library (STLport v5 ) available from
-Symbian^3 to make use of it's latest features.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-FFA3AFA4-7417-4B3E-85FC-8FB5613B764D">       <p>To migrate
-to STLport v5, application developers can retain the existing sources, but
-must make changes to the MMP files. More than just linking against STLport
-v5, application developers can make use of latest features available from
-STLport v5 onwards and also make use of tools support added in Symbian^3.</p> 
-   </prereq>
-<context id="GUID-829B7AE0-8480-45AE-A611-BDE659FF01B9">       <p>To migrate
-from STLport v4 to v5, perform the following steps:</p>     </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-5-1-4-1-9-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-5-1-4-1-9-1-3-3-1"><cmd/>
-<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
-from <filepath>libstdcpp.lib</filepath> to <filepath>libstdcppv5.lib</filepath>.</p></info>
-</step>
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-5-1-4-1-9-1-3-3-2"><cmd/>
-<info><p>Replace the <codeph>SYSTEMINCLUDE</codeph> path in the <filepath>.MMP</filepath> file
-from <filepath>\epoc32\include\stdapis\stlport</filepath> to <filepath>\epoc32\include\stdapis\stlportv5</filepath>.</p></info>
-</step>
-<step id="GUID-4721BCB0-9D9D-44CF-8FCA-0F0AB760D7C0"><cmd/>
-<info><p>Add the <codeph>STDCPP</codeph> keyword to the <filepath>.MMP</filepath> file,
-if you are using the global operator <codeph>new</codeph> and your target
-type is not an STD target type. </p></info>
-<stepresult><p><note> As Carbide currently has a defect associated with the <codeph>STDCPP</codeph> keyword,
-it is recommended that you build code from command line instead of using Carbide. </note></p></stepresult>
-</step>
-</steps>
-<postreq id="GUID-243E4595-F067-46A4-B7D5-99ED4703D19E"><p><b>Note</b>: For
-more information about using STLport v5 on Symbian platform, see <xref href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita">Standard
-C++ Support on Symbian Platform</xref>.</p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719" xml:lang="en"><title>Migrating
+from STLport v4 to v5</title><shortdesc>If you are using STLport v4, it is recommended that you migrate
+to the latest version of Standard C++ Library (STLport v5 ) available from
+Symbian^3 to make use of it's latest features.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-FFA3AFA4-7417-4B3E-85FC-8FB5613B764D">       <p>To migrate
+to STLport v5, application developers can retain the existing sources, but
+must make changes to the MMP files. More than just linking against STLport
+v5, application developers can make use of latest features available from
+STLport v5 onwards and also make use of tools support added in Symbian^3.</p> 
+   </prereq>
+<context id="GUID-829B7AE0-8480-45AE-A611-BDE659FF01B9">       <p>To migrate
+from STLport v4 to v5, perform the following steps:</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-5-1-4-1-9-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-5-1-4-1-9-1-3-3-1"><cmd/>
+<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
+from <filepath>libstdcpp.lib</filepath> to <filepath>libstdcppv5.lib</filepath>.</p></info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-5-1-4-1-9-1-3-3-2"><cmd/>
+<info><p>Replace the <codeph>SYSTEMINCLUDE</codeph> path in the <filepath>.MMP</filepath> file
+from <filepath>\epoc32\include\stdapis\stlport</filepath> to <filepath>\epoc32\include\stdapis\stlportv5</filepath>.</p></info>
+</step>
+<step id="GUID-4721BCB0-9D9D-44CF-8FCA-0F0AB760D7C0"><cmd/>
+<info><p>Add the <codeph>STDCPP</codeph> keyword to the <filepath>.MMP</filepath> file,
+if you are using the global operator <codeph>new</codeph> and your target
+type is not an STD target type. </p></info>
+<stepresult><p><note> As Carbide currently has a defect associated with the <codeph>STDCPP</codeph> keyword,
+it is recommended that you build code from command line instead of using Carbide. </note></p></stepresult>
+</step>
+</steps>
+<postreq id="GUID-243E4595-F067-46A4-B7D5-99ED4703D19E"><p><b>Note</b>: For
+more information about using STLport v5 on Symbian platform, see <xref href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita">Standard
+C++ Support on Symbian Platform</xref>.</p></postreq>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e272145_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e275826_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,135 +1,140 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005" xml:lang="en"><title>Grid
-types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Grids are in many ways analogous to lists. However, there are some things
-worth noticing:</p>
-<ul>
-<li>In grids, the Arrow left and Arrow right keys are always used for moving
-the focus; they cannot be used in any other way that may be possible with
-lists. <p/></li>
-<li><p>Grid layouts are not as standardized as lists; the layouts must be
-designed case by case for the applications. Typically, grid items occupy less
-screen space than list items. This results in grid items having fewer elements
-than list items. A grid item may in general have one text, or one graphic,
-or a text and a graphic.</p></li>
-</ul>
-<p>The following grid types can be used, and they are analogous to the corresponding
-list types:</p>
-<table id="GUID-77A41D48-C4F8-4E2D-8BCC-11C8A233EC89"><title>Grid types</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Grid</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Menu grid</p></entry>
-<entry><p>For selecting one item; no Options menu.</p></entry>
-</row>
-<row>
-<entry><p>Selection grid</p></entry>
-<entry><p>Permanent state; can be left pending, the Options menu is available.</p></entry>
-</row>
-<row>
-<entry><p>Markable grid</p></entry>
-<entry><p>A selection grid with the marking function.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>There are no grid types corresponding to a multi-selection list, a setting
-list or a form.</p>
-<table id="GUID-00226785-93CC-4514-9327-15EC9C272E18"><title>Default touch
-events in grids.</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
-is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Item is activated</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect  is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside the grid without releasing the touch
-down.</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down, move outside and back.</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move vertically</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move horizontally</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry>Highlight stays on the item while it is touched and disappears when
-moving outside of it.<p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-D51BDE18-D03E-42DC-BC41-551BB0DBBAD7"><title>Using
-grids in C++ applications</title><p>The APIs to use for grids are the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref> and the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref> and <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p><p>The <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGrid.html" format="application/java-archive"><codeph>CAknGrid</codeph></xref> class is used to set up the basic parameters of
-a layout in terms of number of columns and rows, cell size, and orientation.
-After this, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classAknListBoxLayouts.html" format="application/java-archive"><codeph>AknListBoxLayouts</codeph></xref> is
-used to set up detailed parameters for graphics and text in the cell. The
-following cell parameters can be set:</p><ul>
-<li><p>Location and size of bitmaps</p></li>
-<li><p>Location and size of text string</p></li>
-<li><p>Font and its color </p></li>
-<li><p>Text align in the allocated space</p></li>
-</ul><p>Bitmaps are loaded manually, as an icon array.</p><p>Other parameters
-of visual elements (for example, highlighted text color) are used from the
-Symbian Developer Platform standard look and feel module; these should not
-be overridden unless you've instantiated your own class. </p><p>Several <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">specialized grid classes</xref> can be found in AVKON.</p><p>Use
-the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknCaleMonthStyleGrid.html" format="application/java-archive"><codeph>CAknCaleMonthStyleGrid</codeph></xref> to show a month view. The first row shows the day and the first column shows
-the week number. The following data can be set for an item:</p><ul>
-<li><p>Outlined icon to show border, dimension 21 x 9 pixels</p></li>
-<li><p>Marking icon in the bottom right corner of a cell, dimension 5 x 5
-pixels</p></li>
-<li><p>Two-digit number</p></li>
-</ul><p>Use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknPinbStyleGrid.html" format="application/java-archive"><codeph>CAknPinbStyleGrid</codeph></xref> to show application shortcuts in a 5 x 5 cells grid. For every item, an
-icon is specified that is displayed in the center of a cell. In addition,
-two small icons, 13 x 13 pixels, can be specified. The first one is displayed
-in the top-right corner for marking. The second one is displayed in the bottom-left
-corner to show the target application. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005" xml:lang="en"><title>Grid
+types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Grids are in many ways analogous to lists. However, there are some things
+worth noticing:</p>
+<ul>
+<li>In grids, the Arrow left and Arrow right keys are always used for moving
+the focus; they cannot be used in any other way that may be possible with
+lists. <p/></li>
+<li><p>Grid layouts are not as standardized as lists; the layouts must be
+designed case by case for the applications. Typically, grid items occupy less
+screen space than list items. This results in grid items having fewer elements
+than list items. A grid item may in general have one text, or one graphic,
+or a text and a graphic.</p></li>
+</ul>
+<p>The following grid types can be used, and they are analogous to the corresponding
+list types:</p>
+<table id="GUID-77A41D48-C4F8-4E2D-8BCC-11C8A233EC89"><title>Grid types</title>
+<tgroup cols="2">
+
+<colspec colname="col1" colwidth="0.60*"/><colspec colname="col2" colwidth="1.40*"/>
+<thead>
+<row>
+<entry>Grid</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Menu grid</p></entry>
+<entry><p>For selecting one item; no Options menu.</p></entry>
+</row>
+<row>
+<entry><p>Selection grid</p></entry>
+<entry><p>Permanent state; can be left pending, the Options menu is available.</p></entry>
+</row>
+<row>
+<entry><p>Markable grid</p></entry>
+<entry><p>A selection grid with the marking function.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>There are no grid types corresponding to a multi-selection list, a setting
+list or a form.</p>
+<table id="GUID-00226785-93CC-4514-9327-15EC9C272E18"><title>Default touch
+events in grids.</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
+is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Item is activated</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect  is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside the grid without releasing the touch
+down.</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down, move outside and back.</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move vertically</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move horizontally</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry>Highlight stays on the item while it is touched and disappears when
+moving outside of it.<p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-D51BDE18-D03E-42DC-BC41-551BB0DBBAD7"><title>Using
+grids in applications</title><p>The APIs to use for grids are
+the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref> and the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref> and <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p><p>The <xref href="GUID-B49E127B-09B1-3A82-B704-56373B4E1F1D.dita"><apiname>CAknGrid</apiname></xref> class
+is used to set up the basic parameters of a layout in terms of number of columns
+and rows, cell size, and orientation. After this, <xref href="GUID-75F5E010-D30A-37B6-B4B3-A25C1DAEAD52.dita"><apiname>AknListBoxLayouts</apiname></xref> is
+used to set up detailed parameters for graphics and text in the cell. The
+following cell parameters can be set:</p><ul>
+<li><p>Location and size of bitmaps</p></li>
+<li><p>Location and size of text string</p></li>
+<li><p>Font and its color </p></li>
+<li><p>Text align in the allocated space</p></li>
+</ul><p>Bitmaps are loaded manually, as an icon array.</p><p>Other parameters
+of visual elements (for example, highlighted text color) are used from the
+Symbian Developer Platform standard look and feel module; these should not
+be overridden unless you've instantiated your own class. </p><p>Several <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">specialized grid classes</xref> can be found in AVKON.</p><p>Use
+the class <xref href="GUID-4A864745-EA9C-3ED6-B3B7-1DF92817A96A.dita"><apiname>CAknCaleMonthStyleGrid</apiname></xref> to show a month view.
+The first row shows the day and the first column shows the week number. The
+following data can be set for an item:</p><ul>
+<li><p>Outlined icon to show border, dimension 21 x 9 pixels</p></li>
+<li><p>Marking icon in the bottom right corner of a cell, dimension 5 x 5
+pixels</p></li>
+<li><p>Two-digit number</p></li>
+</ul><p>Use the class <xref href="GUID-D2166870-2ED0-3516-BE88-92FE7E9ED7BA.dita"><apiname>CAknPinbStyleGrid</apiname></xref> to show application
+shortcuts in a 5 x 5 cells grid. For every item, an icon is specified that
+is displayed in the center of a cell. In addition, two small icons, 13 x 13
+pixels, can be specified. The first one is displayed in the top-right corner
+for marking. The second one is displayed in the bottom-left corner to show
+the target application. </p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408"><title>Light API</title><shortdesc>Light API is a library API that provides the ability to control various light targets of the device. It also provides methods to retrieve the current light status and the supported light targets of the device. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>It uses synchronous method calls which block the client application until a response is received from the plug-in. The API consists of <codeph>CHWRMLight</codeph> and <codeph>MHWRMLightObserver</codeph> classes. </p> <fig id="GUID-CA2D2394-FF93-54F9-880A-7AD56CFB1BDE"><title>
-          Light API Interfaces 
-        </title> <image href="GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e131485_href.png" placement="inline"/></fig> <p>The client creates an instance of <codeph>CHWRMLight</codeph> using <xref href="GUID-93132FF9-512F-30EC-8AB0-BD3E98F668E6.dita"><apiname>NewL()</apiname></xref>. If the client requires status information, it must also provide a callback pointer of the <xref href="GUID-54A448DF-6C1A-347F-9B11-734DAA813268.dita"><apiname>MHWRMLightObserver</apiname></xref> implementing class for the <xref href="GUID-93132FF9-512F-30EC-8AB0-BD3E98F668E6.dita"><apiname>NewL()</apiname></xref> method. </p> <p>Usually HWRM Light interface supports restoring the previous or default light state (ON/OFF/BLINK). The already supported (reservation controller) functionality in existing HWRM light APIs is extended to restore the previous or default color of the LED as well. </p> <p>HWRM also supports automatic reserve and release the targets depends on the client application foreground observer notification through an UI plugin. During these states the light state with color value would be stored and restored automatically. This means if the client application window comes on the foreground then the reserved target’s state will be restored. </p> <section><title>Definitions</title> <table id="GUID-62DF1B4F-EC68-53EB-B620-0D1AC8EC8D35"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Term</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p>Light target </p> </entry> <entry><p>A separate entity that can be lighted in the device. For example, the primary display of the device is a light target. </p> </entry> </row> <row><entry><p>Lights frozen state </p> </entry> <entry><p>Whenever lights are released, their current state is stored as frozen state. On next reserve, the user can specify that frozen state be restored. </p> </entry> </row> <row><entry><p>Lights default state </p> </entry> <entry><p>Lights default state is determined by device inactivity time and relevant general settings. </p> </entry> </row> <row><entry><p>Lights base state </p> </entry> <entry><p>It is the state of the light target set for infinite duration (after all the time-based operation is completed). </p> </entry> </row> </tbody> </tgroup> </table> </section> </conbody><related-links><link href="GUID-D4E06508-4346-5294-995A-64B403467EC5.dita"><linktext>Light API Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408"><title>Light API</title><shortdesc>Light API is a library API that provides the ability to control various light targets of the device. It also provides methods to retrieve the current light status and the supported light targets of the device. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>It uses synchronous method calls which block the client application until a response is received from the plug-in. The API consists of <codeph>CHWRMLight</codeph> and <codeph>MHWRMLightObserver</codeph> classes. </p> <fig id="GUID-CA2D2394-FF93-54F9-880A-7AD56CFB1BDE"><title>
+          Light API Interfaces 
+        </title> <image href="GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e124947_href.png" placement="inline"/></fig> <p>The client creates an instance of <codeph>CHWRMLight</codeph> using <xref href="GUID-93132FF9-512F-30EC-8AB0-BD3E98F668E6.dita"><apiname>NewL()</apiname></xref>. If the client requires status information, it must also provide a callback pointer of the <xref href="GUID-54A448DF-6C1A-347F-9B11-734DAA813268.dita"><apiname>MHWRMLightObserver</apiname></xref> implementing class for the <xref href="GUID-93132FF9-512F-30EC-8AB0-BD3E98F668E6.dita"><apiname>NewL()</apiname></xref> method. </p> <p>Usually HWRM Light interface supports restoring the previous or default light state (ON/OFF/BLINK). The already supported (reservation controller) functionality in existing HWRM light APIs is extended to restore the previous or default color of the LED as well. </p> <p>HWRM also supports automatic reserve and release the targets depends on the client application foreground observer notification through an UI plugin. During these states the light state with color value would be stored and restored automatically. This means if the client application window comes on the foreground then the reserved target’s state will be restored. </p> <section><title>Definitions</title> <table id="GUID-62DF1B4F-EC68-53EB-B620-0D1AC8EC8D35"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Term</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p>Light target </p> </entry> <entry><p>A separate entity that can be lighted in the device. For example, the primary display of the device is a light target. </p> </entry> </row> <row><entry><p>Lights frozen state </p> </entry> <entry><p>Whenever lights are released, their current state is stored as frozen state. On next reserve, the user can specify that frozen state be restored. </p> </entry> </row> <row><entry><p>Lights default state </p> </entry> <entry><p>Lights default state is determined by device inactivity time and relevant general settings. </p> </entry> </row> <row><entry><p>Lights base state </p> </entry> <entry><p>It is the state of the light target set for infinite duration (after all the time-based operation is completed). </p> </entry> </row> </tbody> </tgroup> </table> </section> </conbody><related-links><link href="GUID-D4E06508-4346-5294-995A-64B403467EC5.dita"><linktext>Light API Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e277923_href.png has changed
Binary file Symbian3/SDK/Source/GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e281609_href.png has changed
--- a/Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-3-1-1-7-1-7-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-3-1-1-7-1-7-1-8-1" xml:lang="en"><title>Control
-contexts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Prior to Symbian OS v9.1 controls were able to share a graphics context
-using the <codeph>MCoeControlContext</codeph> API. This was used primarily
-in compound controls to achieve a common solid background color and was necessary
-because controls were required to clear and redraw their own rectangles. Now,
-with improvements to flicker free drawing and improved framework mechanisms
-for drawing patterned (skinned) backgrounds, parents and containers are able
-to provide backgrounds. </p>
-<p> <b>The MCoeControlContext API is now deprecated for UIQ.</b> A description
-of the migration process is described below. </p>
-<p>S60 and MOAP do not use the new background framework. </p>
-<section id="GUID-321057E8-417E-4D8C-8C53-3AE1C80C3ED6-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4"><title/><p><b>Control
-Contexts </b> </p> <p>Control contexts allow a group of controls to share
-graphics context settings for drawing. Each control may use a control context,
-a class derived from <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref>. By using the same
-control context a group of controls can share common settings. A typical use
-is for components of a compound control to use the same control context to
-ensure that they use the same background color settings. </p> <p>Functions
-defined by <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref> are called from within the
-control framework when a control is about to be drawn. These functions can
-be implemented to initialize graphics settings to common values. By using
-the same control context a group of controls can all be made to use the same
-graphics settings. </p> <p>The context is set for all controls that wish to
-use it by setting their <codeph>iContext</codeph> members, either directly,
-by using <codeph>CCoeControl::SetControlContext(),</codeph> or by copying
-with <codeph>CCoeControl::CopyControlContextFrom()</codeph>. Whenever a control
-is about to be drawn the control framework checks if the control has its <codeph>iContext</codeph> member
-set and, if so, calls <codeph>MCoeControlContext::ActivateContext()</codeph>.
-This function has a default implementation that calls <codeph>MCoeControlContext::PrepareContext()</codeph>,
-which should have been implemented to initialize the graphics settings. </p> <p>The
-control framework provides one concrete control context class, <codeph>CCoeBrushAndPenContext</codeph>,
-which sets graphics context brush and pen settings. Applications derive other
-control context classes as required. </p> <p>The control framework automatically
-propagates a compound control’s context to all of its components when the
-components set their container with <codeph>CCoeControl::SetContainerWindowL()</codeph>. </p> <p> </p> <p><b>The
-following section describes how code written for older versions of Symbian
-platform must be updated. </b> </p> <p>The following changes need to be made
-to existing code: </p> <ul>
-<li id="GUID-71F1C167-CD12-5D00-9F16-73732BD698CB-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-1"><p>Remove all code referring
-to the <codeph>CCoeControl::iContext</codeph> variable. </p> </li>
-<li id="GUID-3B13DB08-A7B9-5B2D-9A6D-FBA8D9B3A6B0-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-2"><p>Remove all calls to <codeph>CCoeControl’s
-                SetControlContext()</codeph>, <codeph>CopyControlContextFrom()</codeph> and <codeph>ControlContext()</codeph>. </p> </li>
-<li id="GUID-4CD48156-C053-5DF0-9ACC-9AF5415C3104-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-3"><p>Remove all implementations
-of the <codeph>MCoeControlContext</codeph> from all custom controls, i.e.
-remove all <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph> implementations
-from custom controls. </p> </li>
-<li id="GUID-AD956F60-78C0-5A77-AE7E-FED2FAA096E8-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-4"><p>Remove all use of the <codeph>CCoeBrushAndPenContext</codeph> and <codeph>MCoeControlBrushContext</codeph> APIs. </p> </li>
-<li id="GUID-8519E952-7A86-5CE5-BE18-2DA081AA16B9-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-5"><p>Remove all calls to <codeph>MCoeControlContext</codeph> ’s <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph>. </p> </li>
-<li id="GUID-C27D37C8-7E49-5A62-B7F9-966D66FF1DB5-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-6"><p>Remove all code that
-clears the area surrounding the controls’ actual graphical representation. </p> </li>
-<li id="GUID-1A5941C7-74BC-584C-9733-609EF79CEC19-GENID-1-8-1-3-1-1-7-1-7-1-8-1-2-4-11-7"><p>Change
-the draw code of compound controls so that the parent of children correctly
-updates the area behind the children. </p> </li>
-</ul> <p>This stage 7 will not work for window-owning controls as the Window
-Server will prevent the parent from drawing behind the child's window. See <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> and <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-3-1-1-7-1-9-1-2-18">how
-to write a control</xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1" xml:lang="en"><title>Control
-contexts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Prior to Symbian OS v9.1 controls were able to share a graphics context
-using the <codeph>MCoeControlContext</codeph> API. This was used primarily
-in compound controls to achieve a common solid background color and was necessary
-because controls were required to clear and redraw their own rectangles. Now,
-with improvements to flicker free drawing and improved framework mechanisms
-for drawing patterned (skinned) backgrounds, parents and containers are able
-to provide backgrounds. </p>
-<p> <b>The MCoeControlContext API is now deprecated for UIQ.</b> A description
-of the migration process is described below. </p>
-<p>S60 and MOAP do not use the new background framework. </p>
-<section id="GUID-321057E8-417E-4D8C-8C53-3AE1C80C3ED6-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4"><title/><p><b>Control
-Contexts </b> </p> <p>Control contexts allow a group of controls to share
-graphics context settings for drawing. Each control may use a control context,
-a class derived from <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref>. By using the same
-control context a group of controls can share common settings. A typical use
-is for components of a compound control to use the same control context to
-ensure that they use the same background color settings. </p> <p>Functions
-defined by <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref> are called from within the
-control framework when a control is about to be drawn. These functions can
-be implemented to initialize graphics settings to common values. By using
-the same control context a group of controls can all be made to use the same
-graphics settings. </p> <p>The context is set for all controls that wish to
-use it by setting their <codeph>iContext</codeph> members, either directly,
-by using <codeph>CCoeControl::SetControlContext(),</codeph> or by copying
-with <codeph>CCoeControl::CopyControlContextFrom()</codeph>. Whenever a control
-is about to be drawn the control framework checks if the control has its <codeph>iContext</codeph> member
-set and, if so, calls <codeph>MCoeControlContext::ActivateContext()</codeph>.
-This function has a default implementation that calls <codeph>MCoeControlContext::PrepareContext()</codeph>,
-which should have been implemented to initialize the graphics settings. </p> <p>The
-control framework provides one concrete control context class, <codeph>CCoeBrushAndPenContext</codeph>,
-which sets graphics context brush and pen settings. Applications derive other
-control context classes as required. </p> <p>The control framework automatically
-propagates a compound control’s context to all of its components when the
-components set their container with <codeph>CCoeControl::SetContainerWindowL()</codeph>. </p> <p> </p> <p><b>The
-following section describes how code written for older versions of Symbian
-platform must be updated. </b> </p> <p>The following changes need to be made
-to existing code: </p> <ul>
-<li id="GUID-71F1C167-CD12-5D00-9F16-73732BD698CB-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-1"><p>Remove all code referring
-to the <codeph>CCoeControl::iContext</codeph> variable. </p> </li>
-<li id="GUID-3B13DB08-A7B9-5B2D-9A6D-FBA8D9B3A6B0-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-2"><p>Remove all calls to <codeph>CCoeControl’s
-                SetControlContext()</codeph>, <codeph>CopyControlContextFrom()</codeph> and <codeph>ControlContext()</codeph>. </p> </li>
-<li id="GUID-4CD48156-C053-5DF0-9ACC-9AF5415C3104-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-3"><p>Remove all implementations
-of the <codeph>MCoeControlContext</codeph> from all custom controls, i.e.
-remove all <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph> implementations
-from custom controls. </p> </li>
-<li id="GUID-AD956F60-78C0-5A77-AE7E-FED2FAA096E8-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-4"><p>Remove all use of the <codeph>CCoeBrushAndPenContext</codeph> and <codeph>MCoeControlBrushContext</codeph> APIs. </p> </li>
-<li id="GUID-8519E952-7A86-5CE5-BE18-2DA081AA16B9-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-5"><p>Remove all calls to <codeph>MCoeControlContext</codeph> ’s <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph>. </p> </li>
-<li id="GUID-C27D37C8-7E49-5A62-B7F9-966D66FF1DB5-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-6"><p>Remove all code that
-clears the area surrounding the controls’ actual graphical representation. </p> </li>
-<li id="GUID-1A5941C7-74BC-584C-9733-609EF79CEC19-GENID-1-8-1-6-1-1-4-1-6-1-7-1-8-1-2-4-11-7"><p>Change
-the draw code of compound controls so that the parent of children correctly
-updates the area behind the children. </p> </li>
-</ul> <p>This stage 7 will not work for window-owning controls as the Window
-Server will prevent the parent from drawing behind the child's window. See <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> and <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-3-1-1-7-1-9-1-2-18">how
-to write a control</xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C" xml:lang="en"><title>Control
+contexts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Prior to Symbian OS v9.1 controls were able to share a graphics context
+using the <codeph>MCoeControlContext</codeph> API. This was used primarily
+in compound controls to achieve a common solid background color and was necessary
+because controls were required to clear and redraw their own rectangles. Now,
+with improvements to flicker free drawing and improved framework mechanisms
+for drawing patterned (skinned) backgrounds, parents and containers are able
+to provide backgrounds. </p>
+<p> <b>The MCoeControlContext API is now deprecated for UIQ.</b> A description
+of the migration process is described below. </p>
+<p>S60 and MOAP do not use the new background framework. </p>
+<section id="GUID-321057E8-417E-4D8C-8C53-3AE1C80C3ED6"><title/><p><b>Control
+Contexts </b> </p> <p>Control contexts allow a group of controls to share
+graphics context settings for drawing. Each control may use a control context,
+a class derived from <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref>. By using the same
+control context a group of controls can share common settings. A typical use
+is for components of a compound control to use the same control context to
+ensure that they use the same background color settings. </p> <p>Functions
+defined by <xref href="GUID-298C4B9D-4DB7-322A-99AB-15816C0F0247.dita"><apiname>MCoeControlContext</apiname></xref> are called from within the
+control framework when a control is about to be drawn. These functions can
+be implemented to initialize graphics settings to common values. By using
+the same control context a group of controls can all be made to use the same
+graphics settings. </p> <p>The context is set for all controls that wish to
+use it by setting their <codeph>iContext</codeph> members, either directly,
+by using <codeph>CCoeControl::SetControlContext(),</codeph> or by copying
+with <codeph>CCoeControl::CopyControlContextFrom()</codeph>. Whenever a control
+is about to be drawn the control framework checks if the control has its <codeph>iContext</codeph> member
+set and, if so, calls <codeph>MCoeControlContext::ActivateContext()</codeph>.
+This function has a default implementation that calls <codeph>MCoeControlContext::PrepareContext()</codeph>,
+which should have been implemented to initialize the graphics settings. </p> <p>The
+control framework provides one concrete control context class, <codeph>CCoeBrushAndPenContext</codeph>,
+which sets graphics context brush and pen settings. Applications derive other
+control context classes as required. </p> <p>The control framework automatically
+propagates a compound control’s context to all of its components when the
+components set their container with <codeph>CCoeControl::SetContainerWindowL()</codeph>. </p> <p> </p> <p><b>The
+following section describes how code written for older versions of Symbian
+platform must be updated. </b> </p> <p>The following changes need to be made
+to existing code: </p> <ul>
+<li id="GUID-71F1C167-CD12-5D00-9F16-73732BD698CB"><p>Remove all code referring
+to the <codeph>CCoeControl::iContext</codeph> variable. </p> </li>
+<li id="GUID-3B13DB08-A7B9-5B2D-9A6D-FBA8D9B3A6B0"><p>Remove all calls to <codeph>CCoeControl’s
+                SetControlContext()</codeph>, <codeph>CopyControlContextFrom()</codeph> and <codeph>ControlContext()</codeph>. </p> </li>
+<li id="GUID-4CD48156-C053-5DF0-9ACC-9AF5415C3104"><p>Remove all implementations
+of the <codeph>MCoeControlContext</codeph> from all custom controls, i.e.
+remove all <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph> implementations
+from custom controls. </p> </li>
+<li id="GUID-AD956F60-78C0-5A77-AE7E-FED2FAA096E8"><p>Remove all use of the <codeph>CCoeBrushAndPenContext</codeph> and <codeph>MCoeControlBrushContext</codeph> APIs. </p> </li>
+<li id="GUID-8519E952-7A86-5CE5-BE18-2DA081AA16B9"><p>Remove all calls to <codeph>MCoeControlContext</codeph> ’s <codeph>ActivateContext()</codeph>, <codeph>ResetContext()</codeph> and <codeph>PrepareContext()</codeph>. </p> </li>
+<li id="GUID-C27D37C8-7E49-5A62-B7F9-966D66FF1DB5"><p>Remove all code that
+clears the area surrounding the controls’ actual graphical representation. </p> </li>
+<li id="GUID-1A5941C7-74BC-584C-9733-609EF79CEC19"><p>Change
+the draw code of compound controls so that the parent of children correctly
+updates the area behind the children. </p> </li>
+</ul> <p>This stage 7 will not work for window-owning controls as the Window
+Server will prevent the parent from drawing behind the child's window. See <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> and <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0">how
+to write a control</xref>. </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-19E5720A-2B50-4515-AE90-A40C1BEDF4BA-master.png has changed
Binary file Symbian3/SDK/Source/GUID-19E5720A-2B50-4515-AE90-A40C1BEDF4BA_d0e60568_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e192246_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e193926_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e197254_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e198934_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e70772_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A488C86-C0D7-49DE-A32B-6AFEDDC9E89F_d0e75806_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762"><title>User Prompt Service Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>User Prompt Service (UPS) allows device creators to specify whether requests made by applications to access services, such as a request to make a telephone call, are processed silently or whether they require the user to be prompted. </p> <section><title>Purpose</title> <p>An application requests a service. The service provider (a system server) requests a decision from the UPS. The UPS searches for a matching policy file and policy. Based on the policy for the service, the service request may be immediately accepted or denied or it may need to receive a decision from the user, in which case it is accepted or denied after several further steps are carried out. </p> <p>Device creators can customize the circumstances under which prompts are generated by configuring policies. Policies are made up of details about the service being requested as well as information about whether to accept or deny silently or to ask the user. They are defined in policy lists. Each service has one policy list defining any number of policies. In cases where the policy specifies that a user prompt is required, ECom plug-ins called <xref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita">Policy Evaluators</xref> and <xref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita">Dialog Creators</xref>, written by device creators. </p> </section> <section><title>Key concepts</title> <p>The component has the following key concepts: </p> <dl><dlentry><dt>Policy</dt> <dd><p>Policies specify whether application requests to access services should be processed silently or whether the user should be prompted for a decision. Policies may be general or specific – for example a policy may be specific to a single application, a group of applications or a class of applications (For example, those with unprotected secure ids). Policies are defined in policy lists. Device creators define policies. </p> </dd> </dlentry> <dlentry><dt>UPS policy file</dt> <dd><p>A UPS policy file is a compiled resource file containing all of the policies for a given service. The policies are ordered from most specific to least specific. </p> <p>Because policies are matched in order, each service may have only one policy file. To define a policy safely, you need to know which other policies have been defined. If you place a general policy near the beginning of the list of policies, you prevent other policies from being evaluated. </p> </dd> </dlentry> <dlentry><dt>Policy evaluator</dt> <dd><p>Policy evaluators are Ecom plug-ins, which are responsible for generating fingerprints (see below) used to locate previous decision records related to the request. Device creators define policy evaluators. </p> </dd> </dlentry> <dlentry><dt>Dialog creator</dt> <dd><p>Dialog creators are Ecom plug-ins, which display and generate dialog prompts. Device creators define dialog creators. </p> </dd> </dlentry> <dlentry><dt>Fingerprint</dt> <dd><p>A fingerprint is a collection of data to do with the service being requested. The fingerprint usually includes the destination string supplied by the service that is matched to the destination string of a policy in the policy file. It might be a phone number, domain name, access point etc. A fingerprint is used to search the decision database for a match and to add a record to the decision database if a match was not found in the initial search. Device creators define the <codeph>GenerateFingerprints()</codeph> function in the Policy Evaluator plug-in. </p> <p>A fingerprint serves two purposes: </p> <ul><li id="GUID-2F6022DE-F9C0-5560-A966-F77F5F8077AC"><p>The UPS uses it to search the decision database for a match. </p> </li> <li id="GUID-2BB4C56D-055D-5E79-97D7-CCC2E0D69700"><p>If the UPS finds no record of a previous user decision and the user selects "always" or "never" in response to the UPS prompt, it uses the fingerprint to create a new record in the decision database. </p> </li> </ul> <p>It is possible to specify one or many policy evaluators. It is also possible not to specify a policy evaluator and to depend on the default policy evaluator. </p> </dd> </dlentry> <dlentry><dt>Decision database</dt> <dd><p>A decision database stores the phone user's choice of whether a request is always granted or never granted. Decisions stored in the decision database persist across reboots of the device. The decision database is provided by Symbian. </p> <p>The decision database may not be accessed directly. However, records may be retrieved and deleted via the management APIs. This might be used by a control-panel application. </p> </dd> </dlentry> </dl> </section> <section><title>Architectural relationships</title> <p>The UPS provides <xref href="GUID-F1FE58C4-2703-3651-8721-D018865BA169.dita"><apiname>CDialogCreator</apiname></xref> and <xref href="GUID-FDE91CAC-1588-3EED-B509-08168F4B881B.dita"><apiname>CPolicyEvaluator</apiname></xref> interfaces for device creators to implement. </p> <fig id="GUID-66482906-10D7-5536-87CE-0B97C1DFBB16"><title>
-             UPS components 
-          </title> <image href="GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e382477_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <p>The following diagram shows the relationships between some of the key classes in the UPS. </p> <fig id="GUID-2D2DB4F6-6526-585A-835F-FD78E43B5079"><title>
-             Class diagram of key classes in UPS 
-          </title> <image href="GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e382491_href.png" placement="inline"/></fig> <table id="GUID-3A54E48E-35CF-5B20-8139-BF63B7EF3EDB"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class Name</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-179AD3F9-8121-3F65-B393-CA3924A3111B"><apiname>UserPromptService::CClientEntity</apiname></xref>  </p> </entry> <entry><p>Class representing an entity executing within a client process. For example, a script. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-0F7D8FF7-6176-32F8-8469-253D81848090"><apiname>UserPromptService::CDialogCreator</apiname></xref>  </p> </entry> <entry><p>Abstract base class for dialog creator Ecom plug-ins. Dialog creators are responsible for generating and displaying prompt dialogs. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-2E49A95A-8CAC-36B9-BAC8-A9DED4AE7CFE"><apiname>UserPromptService::CFingerprint</apiname></xref>  </p> </entry> <entry><p>Class that represents the fingerprint data for a stored decision. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-490A81F4-B763-3D01-AAAC-61B94793B0CB"><apiname>UserPromptService::CPolicy</apiname></xref>  </p> </entry> <entry><p>Class for a single policy record. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-65A2A57C-E9BB-3957-BC16-5579BF105329"><apiname>UserPromptService::CPolicyEvaluator</apiname></xref>  </p> </entry> <entry><p>Abstract base class for a policy evaluator Ecom plug-in. Policy evaluators are primarily responsible for generating the fingerprints used to locate previous decision records related to the current request. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The following diagram shows the sequence of activities performed by the UPS after it receives a request from a server: </p> <fig id="GUID-4FE4A657-5299-5D20-8E23-90C3EEC67462"><title>
-             Diagram showing activities for a single request 
-          </title> <image href="GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e382603_href.png" placement="inline"/></fig> <p>As is shown in the above diagram, the UPS returns a decision to the system server as in the following use cases: </p> <ul><li id="GUID-E414AB08-85A4-5686-88F1-584E17244DA9"><p>processing silently </p> </li> <li id="GUID-DFC214C2-D97C-550D-80EE-62653BDD9FFB"><p>finding a stored decision in the decision database </p> </li> <li id="GUID-266A70E9-67C4-5FA5-9E02-CB4ECC6E53E2"><p>prompting the user in a dialog and resulting in a "one-shot" or "session" (non-persistent) decision by the user </p> </li> <li id="GUID-25813297-93CD-5668-9DB2-1A0C7DC06A26"><p>prompting the user in a dialog and resulting in an "always" or "never" (persistent) decision by the user </p> </li> </ul> <p>The Policy Evaluator allows device creators to customize the behaviour of the UPS at run-time. Policy Evaluators may: </p> <ul><li id="GUID-281ACA0D-0927-5D0B-9F09-71256343ACC8"><p>Allow security decisions to be specific to the data on which the service acts instead of simply granting full access to the service, for example "Allow application X to send SMS messages to 01234567". This is supported via the fingerprint functionality. </p> </li> <li id="GUID-027E0704-7766-5742-AB35-3B49D9DEBEC6"><p>Allow a security decision to be specific to an individual script executing within a scripting host. This is supported via the client entity field. </p> </li> <li id="GUID-B20E7021-251F-59BD-ADBC-02EFEA09F5F2"><p>Allow a prompt to be displayed even if the user selected "Always" or "Never". This could be based on a usage threshold or simply as additional confirmation if the user selected "Never". This is supported via the force prompt functionality. </p> </li> </ul> </section> <section><title>Typical uses</title> <p>The UPS component provides interfaces to perform the following tasks: </p> <ul><li id="GUID-7D89C9F6-82E6-5B5C-9652-C8749E2BF759"><p><xref href="GUID-85D9878E-4FEF-5E45-9F87-53634CD171E0.dita">Integrating a System Server with UPS</xref>  </p> </li> <li id="GUID-B2633E58-3B5C-5763-A4AC-1BA0B624DAE3"><p><xref href="GUID-DB827750-6057-537E-8FE1-8F68BF2E9F99.dita">Writing a UPS Policy File</xref>  </p> </li> <li id="GUID-CDDBA2CE-A80B-5B7C-8865-D059052BD33C"><p><xref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita">Writing a UPS Policy Evaluator</xref>  </p> </li> <li id="GUID-69F5480D-3575-5124-AE14-F458FC03A578"><p><xref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita">Writing a UPS Dialog Creator</xref>  </p> </li> <li id="GUID-5B659B40-818D-55F7-87AD-4144427DA52F"><p><xref href="GUID-CCD3B91F-9E7F-5CE2-8AFC-4ABF787E5614.dita">Using UPS management APIs</xref>  </p> </li> <li id="GUID-AAC1FF6D-6D4C-5548-B385-B672622A799D"><p>Example code at <filepath>\sf\os\security\authorisation\userpromptservice\examples\</filepath> location. </p> </li> </ul> </section> <section><title>See also</title> <p>For related information, see <xref href="GUID-6849E256-6719-5788-BCB2-7557F09AAAD0.dita">UPS Configuration</xref>. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762"><title>User Prompt Service Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>User Prompt Service (UPS) allows device creators to specify whether requests made by applications to access services, such as a request to make a telephone call, are processed silently or whether they require the user to be prompted. </p> <section><title>Purpose</title> <p>An application requests a service. The service provider (a system server) requests a decision from the UPS. The UPS searches for a matching policy file and policy. Based on the policy for the service, the service request may be immediately accepted or denied or it may need to receive a decision from the user, in which case it is accepted or denied after several further steps are carried out. </p> <p>Device creators can customize the circumstances under which prompts are generated by configuring policies. Policies are made up of details about the service being requested as well as information about whether to accept or deny silently or to ask the user. They are defined in policy lists. Each service has one policy list defining any number of policies. In cases where the policy specifies that a user prompt is required, ECom plug-ins called <xref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita">Policy Evaluators</xref> and <xref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita">Dialog Creators</xref>, written by device creators. </p> </section> <section><title>Key concepts</title> <p>The component has the following key concepts: </p> <dl><dlentry><dt>Policy</dt> <dd><p>Policies specify whether application requests to access services should be processed silently or whether the user should be prompted for a decision. Policies may be general or specific – for example a policy may be specific to a single application, a group of applications or a class of applications (For example, those with unprotected secure ids). Policies are defined in policy lists. Device creators define policies. </p> </dd> </dlentry> <dlentry><dt>UPS policy file</dt> <dd><p>A UPS policy file is a compiled resource file containing all of the policies for a given service. The policies are ordered from most specific to least specific. </p> <p>Because policies are matched in order, each service may have only one policy file. To define a policy safely, you need to know which other policies have been defined. If you place a general policy near the beginning of the list of policies, you prevent other policies from being evaluated. </p> </dd> </dlentry> <dlentry><dt>Policy evaluator</dt> <dd><p>Policy evaluators are Ecom plug-ins, which are responsible for generating fingerprints (see below) used to locate previous decision records related to the request. Device creators define policy evaluators. </p> </dd> </dlentry> <dlentry><dt>Dialog creator</dt> <dd><p>Dialog creators are Ecom plug-ins, which display and generate dialog prompts. Device creators define dialog creators. </p> </dd> </dlentry> <dlentry><dt>Fingerprint</dt> <dd><p>A fingerprint is a collection of data to do with the service being requested. The fingerprint usually includes the destination string supplied by the service that is matched to the destination string of a policy in the policy file. It might be a phone number, domain name, access point etc. A fingerprint is used to search the decision database for a match and to add a record to the decision database if a match was not found in the initial search. Device creators define the <codeph>GenerateFingerprints()</codeph> function in the Policy Evaluator plug-in. </p> <p>A fingerprint serves two purposes: </p> <ul><li id="GUID-2F6022DE-F9C0-5560-A966-F77F5F8077AC"><p>The UPS uses it to search the decision database for a match. </p> </li> <li id="GUID-2BB4C56D-055D-5E79-97D7-CCC2E0D69700"><p>If the UPS finds no record of a previous user decision and the user selects "always" or "never" in response to the UPS prompt, it uses the fingerprint to create a new record in the decision database. </p> </li> </ul> <p>It is possible to specify one or many policy evaluators. It is also possible not to specify a policy evaluator and to depend on the default policy evaluator. </p> </dd> </dlentry> <dlentry><dt>Decision database</dt> <dd><p>A decision database stores the phone user's choice of whether a request is always granted or never granted. Decisions stored in the decision database persist across reboots of the device. The decision database is provided by Symbian. </p> <p>The decision database may not be accessed directly. However, records may be retrieved and deleted via the management APIs. This might be used by a control-panel application. </p> </dd> </dlentry> </dl> </section> <section><title>Architectural relationships</title> <p>The UPS provides <xref href="GUID-F1FE58C4-2703-3651-8721-D018865BA169.dita"><apiname>CDialogCreator</apiname></xref> and <xref href="GUID-FDE91CAC-1588-3EED-B509-08168F4B881B.dita"><apiname>CPolicyEvaluator</apiname></xref> interfaces for device creators to implement. </p> <fig id="GUID-66482906-10D7-5536-87CE-0B97C1DFBB16"><title>
+             UPS components 
+          </title> <image href="GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e376410_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <p>The following diagram shows the relationships between some of the key classes in the UPS. </p> <fig id="GUID-2D2DB4F6-6526-585A-835F-FD78E43B5079"><title>
+             Class diagram of key classes in UPS 
+          </title> <image href="GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e376424_href.png" placement="inline"/></fig> <table id="GUID-3A54E48E-35CF-5B20-8139-BF63B7EF3EDB"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class Name</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-179AD3F9-8121-3F65-B393-CA3924A3111B"><apiname>UserPromptService::CClientEntity</apiname></xref>  </p> </entry> <entry><p>Class representing an entity executing within a client process. For example, a script. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-0F7D8FF7-6176-32F8-8469-253D81848090"><apiname>UserPromptService::CDialogCreator</apiname></xref>  </p> </entry> <entry><p>Abstract base class for dialog creator Ecom plug-ins. Dialog creators are responsible for generating and displaying prompt dialogs. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-2E49A95A-8CAC-36B9-BAC8-A9DED4AE7CFE"><apiname>UserPromptService::CFingerprint</apiname></xref>  </p> </entry> <entry><p>Class that represents the fingerprint data for a stored decision. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-490A81F4-B763-3D01-AAAC-61B94793B0CB"><apiname>UserPromptService::CPolicy</apiname></xref>  </p> </entry> <entry><p>Class for a single policy record. </p> </entry> </row> <row><entry><p> <xref href="GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D.dita#GUID-0A4AFA03-0424-3384-AFEC-083B31C86B5D/GUID-65A2A57C-E9BB-3957-BC16-5579BF105329"><apiname>UserPromptService::CPolicyEvaluator</apiname></xref>  </p> </entry> <entry><p>Abstract base class for a policy evaluator Ecom plug-in. Policy evaluators are primarily responsible for generating the fingerprints used to locate previous decision records related to the current request. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The following diagram shows the sequence of activities performed by the UPS after it receives a request from a server: </p> <fig id="GUID-4FE4A657-5299-5D20-8E23-90C3EEC67462"><title>
+             Diagram showing activities for a single request 
+          </title> <image href="GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e376536_href.png" placement="inline"/></fig> <p>As is shown in the above diagram, the UPS returns a decision to the system server as in the following use cases: </p> <ul><li id="GUID-E414AB08-85A4-5686-88F1-584E17244DA9"><p>processing silently </p> </li> <li id="GUID-DFC214C2-D97C-550D-80EE-62653BDD9FFB"><p>finding a stored decision in the decision database </p> </li> <li id="GUID-266A70E9-67C4-5FA5-9E02-CB4ECC6E53E2"><p>prompting the user in a dialog and resulting in a "one-shot" or "session" (non-persistent) decision by the user </p> </li> <li id="GUID-25813297-93CD-5668-9DB2-1A0C7DC06A26"><p>prompting the user in a dialog and resulting in an "always" or "never" (persistent) decision by the user </p> </li> </ul> <p>The Policy Evaluator allows device creators to customize the behaviour of the UPS at run-time. Policy Evaluators may: </p> <ul><li id="GUID-281ACA0D-0927-5D0B-9F09-71256343ACC8"><p>Allow security decisions to be specific to the data on which the service acts instead of simply granting full access to the service, for example "Allow application X to send SMS messages to 01234567". This is supported via the fingerprint functionality. </p> </li> <li id="GUID-027E0704-7766-5742-AB35-3B49D9DEBEC6"><p>Allow a security decision to be specific to an individual script executing within a scripting host. This is supported via the client entity field. </p> </li> <li id="GUID-B20E7021-251F-59BD-ADBC-02EFEA09F5F2"><p>Allow a prompt to be displayed even if the user selected "Always" or "Never". This could be based on a usage threshold or simply as additional confirmation if the user selected "Never". This is supported via the force prompt functionality. </p> </li> </ul> </section> <section><title>Typical uses</title> <p>The UPS component provides interfaces to perform the following tasks: </p> <ul><li id="GUID-7D89C9F6-82E6-5B5C-9652-C8749E2BF759"><p><xref href="GUID-85D9878E-4FEF-5E45-9F87-53634CD171E0.dita">Integrating a System Server with UPS</xref>  </p> </li> <li id="GUID-B2633E58-3B5C-5763-A4AC-1BA0B624DAE3"><p><xref href="GUID-DB827750-6057-537E-8FE1-8F68BF2E9F99.dita">Writing a UPS Policy File</xref>  </p> </li> <li id="GUID-CDDBA2CE-A80B-5B7C-8865-D059052BD33C"><p><xref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita">Writing a UPS Policy Evaluator</xref>  </p> </li> <li id="GUID-69F5480D-3575-5124-AE14-F458FC03A578"><p><xref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita">Writing a UPS Dialog Creator</xref>  </p> </li> <li id="GUID-5B659B40-818D-55F7-87AD-4144427DA52F"><p><xref href="GUID-CCD3B91F-9E7F-5CE2-8AFC-4ABF787E5614.dita">Using UPS management APIs</xref>  </p> </li> <li id="GUID-AAC1FF6D-6D4C-5548-B385-B672622A799D"><p>Example code at <filepath>\sf\os\security\authorisation\userpromptservice\examples\</filepath> location. </p> </li> </ul> </section> <section><title>See also</title> <p>For related information, see <xref href="GUID-6849E256-6719-5788-BCB2-7557F09AAAD0.dita">UPS Configuration</xref>. </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e240382_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e244119_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B"><title>OpenVG Collection Overview</title><shortdesc>OpenVG is a royalty-free, cross-platform API that provides a low-level hardware acceleration interface for vector graphics libraries such as Flash and SVG. OpenVG is targeted primarily at handheld devices that require portable acceleration of high-quality vector graphics for user interfaces and text on small screen devices—while enabling hardware acceleration to provide fluidly interactive performance at very low power levels. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. </p> <p>OpenVG is an open standard developed by the Khronos Group (<xref scope="external" href="http://www.khronos.org">www.khronos.org</xref>). OpenVG features include: </p> <ul><li id="GUID-B267EBF8-8507-5200-A988-E9473421C7AE"><p>Coordinate systems and transformations (image drawing uses a 3x3 perspective transformation matrix) </p> </li> <li id="GUID-9DD01326-63A6-548E-A245-61118D1751D1"><p>Viewport clipping, scissoring and alpha masking </p> </li> <li id="GUID-E265A325-F47B-5D5E-B98E-4DC7113000FB"><p>Paths </p> </li> <li id="GUID-AAB66D89-68F2-59A5-BB29-E49932FEFB13"><p>Images and image filters </p> </li> <li id="GUID-DEB27EED-13F2-5B2D-AADD-2BA0F2A4A872"><p>Paint (gradient and pattern) </p> </li> <li id="GUID-9CC84B3A-2891-5D2C-909E-F0C12F96569E"><p>Blending. </p> </li> </ul> <p>In addition, the associated VGU utility library provides features such as higher-level geometric primitives and image warping. </p> <section><title>Architecture</title> <p>OpenVG only defines rendering functionality and therefore cannot be used in isolation. It requires EGL to establish an environment in which OpenVG can be used. For example, EGL tells OpenVG where its rendered output should go. OpenVG depends on a standalone implementation of EGL. </p> <p>The following diagram shows the direct use of OpenVG by an application through the public OpenVG interface together with EGL. On the Symbian platform, both OpenVG and EGL have a component (shown in blue) that declares the interface, and both require an implementation that implements that interface (shown in green). </p> <fig id="GUID-2BCC3100-9644-55D1-A26E-C3510A148E66"><title>
-             OpenVG external relationships 
-          </title> <image href="GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e209850_href.png" placement="inline"/></fig> <p>It is possible for the OpenVG and EGL implementations to communicate through a private interface that is not standardized by Symbian. </p> <p>The <xref href="GUID-C2E24953-3D83-59FB-8B7A-C850474406DB.dita">OpenVG Interface</xref> provides a consistent interface to OpenVG on the Symbian platform, enabling cross-device compatibility. The component includes the Khronos-released header files (which incorporate some minor changes, such as to the comments). It also provides some Symbian-specific header files and some other files (such as LIB, DEF and MMP files) and UIDs. It does not provide any implementations of the APIs. </p> </section> <section><title>Description</title> <p>OpenVG is designed to be the primary 2D and vector graphics API for use by mobile devices. By providing a consistent interface to OpenVG, the Symbian platform allows OpenVG applications and middleware (such as an SVG engine) to automatically benefit from hardware acceleration when it is present without losing compatibility when it is not available. In addition device and hardware manufacturers benefit from a standard Hardware Adaptation Interface (HAI) to plug into. This means that OpenVG has the potential to provide end users with improved quality and responsiveness of graphics features. </p> </section> </conbody><related-links><link href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"><linktext>OpenVG Collection</linktext> </link> <link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B"><title>OpenVG Collection Overview</title><shortdesc>OpenVG is a royalty-free, cross-platform API that provides a low-level hardware acceleration interface for vector graphics libraries such as Flash and SVG. OpenVG is targeted primarily at handheld devices that require portable acceleration of high-quality vector graphics for user interfaces and text on small screen devices—while enabling hardware acceleration to provide fluidly interactive performance at very low power levels. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. </p> <p>OpenVG is an open standard developed by the Khronos Group (<xref scope="external" href="http://www.khronos.org">www.khronos.org</xref>). OpenVG features include: </p> <ul><li id="GUID-B267EBF8-8507-5200-A988-E9473421C7AE"><p>Coordinate systems and transformations (image drawing uses a 3x3 perspective transformation matrix) </p> </li> <li id="GUID-9DD01326-63A6-548E-A245-61118D1751D1"><p>Viewport clipping, scissoring and alpha masking </p> </li> <li id="GUID-E265A325-F47B-5D5E-B98E-4DC7113000FB"><p>Paths </p> </li> <li id="GUID-AAB66D89-68F2-59A5-BB29-E49932FEFB13"><p>Images and image filters </p> </li> <li id="GUID-DEB27EED-13F2-5B2D-AADD-2BA0F2A4A872"><p>Paint (gradient and pattern) </p> </li> <li id="GUID-9CC84B3A-2891-5D2C-909E-F0C12F96569E"><p>Blending. </p> </li> </ul> <p>In addition, the associated VGU utility library provides features such as higher-level geometric primitives and image warping. </p> <section><title>Architecture</title> <p>OpenVG only defines rendering functionality and therefore cannot be used in isolation. It requires EGL to establish an environment in which OpenVG can be used. For example, EGL tells OpenVG where its rendered output should go. OpenVG depends on a standalone implementation of EGL. </p> <p>The following diagram shows the direct use of OpenVG by an application through the public OpenVG interface together with EGL. On the Symbian platform, both OpenVG and EGL have a component (shown in blue) that declares the interface, and both require an implementation that implements that interface (shown in green). </p> <fig id="GUID-2BCC3100-9644-55D1-A26E-C3510A148E66"><title>
+             OpenVG external relationships 
+          </title> <image href="GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e204842_href.png" placement="inline"/></fig> <p>It is possible for the OpenVG and EGL implementations to communicate through a private interface that is not standardized by Symbian. </p> <p>The <xref href="GUID-C2E24953-3D83-59FB-8B7A-C850474406DB.dita">OpenVG Interface</xref> provides a consistent interface to OpenVG on the Symbian platform, enabling cross-device compatibility. The component includes the Khronos-released header files (which incorporate some minor changes, such as to the comments). It also provides some Symbian-specific header files and some other files (such as LIB, DEF and MMP files) and UIDs. It does not provide any implementations of the APIs. </p> </section> <section><title>Description</title> <p>OpenVG is designed to be the primary 2D and vector graphics API for use by mobile devices. By providing a consistent interface to OpenVG, the Symbian platform allows OpenVG applications and middleware (such as an SVG engine) to automatically benefit from hardware acceleration when it is present without losing compatibility when it is not available. In addition device and hardware manufacturers benefit from a standard Hardware Adaptation Interface (HAI) to plug into. This means that OpenVG has the potential to provide end users with improved quality and responsiveness of graphics features. </p> </section> </conbody><related-links><link href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"><linktext>OpenVG Collection</linktext> </link> <link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL
                 Collection</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1A905563-EF60-4A01-BC55-5B35904F96AB-master.png has changed
Binary file Symbian3/SDK/Source/GUID-1A905563-EF60-4A01-BC55-5B35904F96AB_d0e63486_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,164 +1,154 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B" xml:lang="en"><title>Forms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A form is a specific kind of selection list, where all items (fields) have
-some editable content. </p>
-<p>A form can be in the View state or in the Edit state. The item layouts
-and functionality are different in these states:</p>
-<ul>
-<li><p>In the View state, the items are not editable. The form functions and
-looks exactly like a similar selection list. Items can be selected to perform
-an application-specific function. </p></li>
-<li><p>In the Edit state, the user can edit all the fields. Forms can contain
-text fields (alphanumeric or numeric content), pop-up fields and sliders.</p></li>
-</ul>
-<p>Forms work with single click. The view state of the form follows list behavior.
-Edit state works with single click but it has the highlight always visible
-to indicate the active form item. Note that the entire form component item
-should be touch sensitive in normal state. This means that even if the user
-does not touch the edit field but instead the field header, the item is still
-activated.</p>
-<p>The user can switch from the View state to the Edit state using the Edit
-command in the Options menu. In the Edit state, the contents of the form can
-be accepted using the right softkey labeled as Done. The form then returns
-to the View state.</p>
-<fig id="GUID-A2BD480A-8FF8-46D2-8C2D-1C300761BBEF">
-<title>An example form</title>
-<image href="GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e63641_href.png" placement="inline"/>
-</fig>
-<p>The following table lists the default touch events for forms:</p>
-<table id="GUID-9342F902-5F33-4A51-BCCB-258C4AADAC8C"><title>Default touch
-events for forms</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.03*"/>
-<colspec colname="col3" colwidth="1.17*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-
-<entry nameend="col3" namest="col1"><p><b>In Edit State</b></p></entry>
-</row>
-<row>
-<entry><p>Touch down on item</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown on the item and focus shifts to the item.</p><p>Tactile:
-Basic list effect and audio feedback is provided with touch down event.</p><note> Only
-form-specific feedback is provided. No sensitive edit feedback provided on
-editor item in the form.</note></entry>
-</row>
-<row>
-<entry><p>Touch release on item</p></entry>
-<entry><p>Item is activated.</p><p>When the user moves a cursor to a text
-field, the cursor is placed at the end of the text in the field. If the field
-is empty, the cursor is placed at the beginning of the field.</p><p>Touch
-release on a radio button list item selects the item and closes the pop-up.</p></entry>
-<entry><p>Highlight remains on the item.</p><p>In case of a radio button list,
-highlight stays on the full list, and not on any single selection item.</p><p>Tactile:
-Basic list effect provided with release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on item</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside form</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Highlight remains on the item that is currently active, when the
-user starts to move.</p><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside the form without releasing touch.</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside the radio button list</p></entry>
-<entry><p>Radio button list is closed.</p></entry>
-<entry><p>Tactile: Pop-up effect is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry nameend="col3" namest="col1"/>
-</row>
-<row>
-<entry nameend="col3" namest="col1"><p><b>In View State</b></p></entry>
-</row>
-<row>
-<entry><p>Touch down on item</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
-is provided with the touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>One of the following occurs:<ul>
-<li><p>Item is activated.</p></li>
-<li><p>Item get editable.</p></li>
-<li><p>Item opens context specific <b>Options</b> menu.</p></li>
-</ul></p></entry>
-<entry><p>Highlight disappears.</p><p>Tactile: Basic list effect is provided
-with touch release event.</p><p>If the touch release opens a pop-up, the pop-up
-open effect is provided with the touch release. If theme effects are ON, then
-increasing long touch effect with touch release is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside form</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside the form without releasing touch.</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-CB9AC4F2-4C2B-49AA-9FCE-E9EA7209CC50"><title>Using
-forms in C++ applications</title><p>The API to use for creating forms is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information, see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref>.</p><p>Typically, a form will be derived
-from the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html" format="application/java-archive"><codeph>CAknForm</codeph></xref> and
-the methods <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#b90bd30d42503d5f0464e9ff1ce3b830" format="application/java-archive"><codeph>SaveFormDataL()</codeph></xref> and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#6ff9f54d5d8a08da0c6f6574389b787a" format="application/java-archive"><codeph>DoNotSaveFormData()</codeph></xref> will be implemented by the developer. These are called when users
-switch from edit mode to view mode and are prompted by the form as to whether
-they wish to save their modifications.</p><p>For customization, the class <codeph>CAknForm</codeph> provides
-a single-line or double-line layout and it is possible to use icons on forms. </p><p>In
-the following example, the form is pushed on the cleanup stack before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#a7108b30a367ecb940f57e0dd35973bd" format="application/java-archive"><codeph>ConstructL()</codeph></xref> (a
-potentially leaving method) is called, and popped off before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknDialog.html#2bb826c038d23806445872d768e7d151" format="application/java-archive"><codeph>ExecuteLD()</codeph></xref>. </p><codeblock xml:space="preserve">CAknExFormAdd* form = new(ELeave) CAknExFormAdd;
-CleanupStack::PushL(form);
-form-&gt;ConstructL();
-CleanupStack::Pop();
-form-&gt;ExecuteLD(R_AKNEXFORM_TEXT_FIELD_DIALOG);
-</codeblock></section>
-</conbody><related-links>
-<linklist><title>Related APIs</title>
-<link format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html" scope="peer"><linktext>Dialogs API</linktext></link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B" xml:lang="en"><title>Forms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A form is a specific kind of selection list, where all items (fields)
+have some editable content. </p>
+<p>A form can be in the View state or in the Edit state. The item
+layouts and functionality are different in these states:</p>
+<ul>
+<li><p>In the View state, the items are not editable. The form functions
+and looks exactly like a similar selection list. Items can be selected
+to perform an application-specific function. </p></li>
+<li><p>In the Edit state, the user can edit all the fields. Forms
+can contain text fields (alphanumeric or numeric content), pop-up
+fields and sliders.</p></li>
+</ul>
+<p>Forms work with single tap. The view state of the form follows
+list behavior. Edit state works with single tap but it has the highlight
+always visible to indicate the active form item. Note that the entire
+form component item should be touch sensitive in normal state. This
+means that even if the user does not touch the edit field but instead
+the field header, the item is still activated.</p>
+<p>The user can switch from the View state to the Edit state using
+the Edit command in the Options menu. In the Edit state, the contents
+of the form can be accepted using the right softkey labeled as Done.
+The form then returns to the View state.</p>
+<fig id="GUID-A2BD480A-8FF8-46D2-8C2D-1C300761BBEF">
+<title>An example form</title>
+<image href="GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e55932_href.png" placement="inline"/>
+</fig>
+<p>The following table lists the default touch events for forms:</p>
+<table id="GUID-9342F902-5F33-4A51-BCCB-258C4AADAC8C"><title>Default
+touch events for forms</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.03*"/><colspec colname="col3" colwidth="1.17*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry nameend="col3" namest="col1"><p><b>In Edit State</b></p></entry>
+</row>
+<row>
+<entry><p>Touch down on item</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown on the item and focus shifts to the item.</p><p>Tactile: Basic list effect and audio feedback is provided with
+touch down event.</p><note> Only form-specific feedback is provided.
+No sensitive edit feedback provided on editor item in the form.</note></entry>
+</row>
+<row>
+<entry><p>Touch release on item</p></entry>
+<entry><p>Item is activated.</p><p>When the user moves a cursor to
+a text field, the cursor is placed at the end of the text in the field.
+If the field is empty, the cursor is placed at the beginning of the
+field.</p><p>Touch release on a radio button list item selects the
+item and closes the pop-up.</p></entry>
+<entry><p>Highlight remains on the item.</p><p>In case of a radio
+button list, highlight stays on the full list, and not on any single
+selection item.</p><p>Tactile: Basic list effect provided with release
+event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on item</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside form</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events</p></entry>
+<entry><p>Highlight remains on the item that is currently active,
+when the user starts to move.</p><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside the form without releasing touch.</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside the radio button list</p></entry>
+<entry><p>Radio button list is closed.</p></entry>
+<entry><p>Tactile: Pop-up effect is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry nameend="col3" namest="col1"/>
+</row>
+<row>
+<entry nameend="col3" namest="col1"><p><b>In View State</b></p></entry>
+</row>
+<row>
+<entry><p>Touch down on item</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and
+audio feedback is provided with the touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>One of the following occurs:<ul>
+<li><p>Item is activated.</p></li>
+<li><p>Item get editable.</p></li>
+<li><p>Item opens context specific <b>Options</b> menu.</p></li>
+</ul></p></entry>
+<entry><p>Highlight disappears.</p><p>Tactile: Basic list effect is
+provided with touch release event.</p><p>If the touch release opens
+a pop-up, the pop-up open effect is provided with the touch release.
+If theme effects are ON, then increasing long touch effect with touch
+release is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside form</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside the form without releasing touch.</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-CB9AC4F2-4C2B-49AA-9FCE-E9EA7209CC50"><title>Using forms in applications</title><p>The API to use for creating forms is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information, see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref>.</p><p>Typically, a form will
+be derived from the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html" format="application/java-archive"><codeph>CAknForm</codeph></xref> and the methods <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#b90bd30d42503d5f0464e9ff1ce3b830" format="application/java-archive"><codeph>SaveFormDataL()</codeph></xref> and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#6ff9f54d5d8a08da0c6f6574389b787a" format="application/java-archive"><codeph>DoNotSaveFormData()</codeph></xref> will be implemented by
+the developer. These are called when users switch from edit mode to
+view mode and are prompted by the form as to whether they wish to
+save their modifications.</p><p>For customization, the class <codeph>CAknForm</codeph> provides a single-line or double-line layout and
+it is possible to use icons on forms. </p><p>In the following example,
+the form is pushed on the cleanup stack before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#a7108b30a367ecb940f57e0dd35973bd" format="application/java-archive"><codeph>ConstructL()</codeph></xref> (a potentially leaving method)
+is called, and popped off before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknDialog.html#2bb826c038d23806445872d768e7d151" format="application/java-archive"><codeph>ExecuteLD()</codeph></xref>. </p><codeblock xml:space="preserve">CAknExFormAdd* form = new(ELeave) CAknExFormAdd;
+CleanupStack::PushL(form);
+form-&gt;ConstructL();
+CleanupStack::Pop();
+form-&gt;ExecuteLD(R_AKNEXFORM_TEXT_FIELD_DIALOG);
+</codeblock></section>
+</conbody><related-links>
+<linklist><title>Related APIs</title>
+<link format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html" scope="peer"><linktext>Dialogs API</linktext></link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1AA392CB-F638-5D35-993E-4A26D67A7C98.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1AA392CB-F638-5D35-993E-4A26D67A7C98" xml:lang="en"><title>How
+to retrieve characteristics</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following example demonstrates the use of the legacy selector to retrieve
+the characteristics of an asymmetric cipher object. In the example, an implementation
+object is constructed (making use of an RSA Key Pair also generated by the
+framework) and returned. The plug-in characteristics and extended characteristics
+associated with the object are then accessed. </p>
+<codeblock id="GUID-CF2DF77C-90BD-56A0-A27D-89C4DA18EDCD" xml:space="preserve">#include &lt;cryptoasymmetriccipherapi.h&gt;
+#include &lt;cryptokeypairgeneratorapi.h&gt;
+#include &lt;cryptospidef.h&gt;
+#include &lt;plugincharacteristics.h&gt;
+#include &lt;extendedcharacteristics.h&gt;
+#include &lt;keypair.h&gt;
+
+// Constant definition for the RSA key pair generator exponent value
+const TInt KKeyExponent = 65537;
+
+using namespace CryptoSpi;
+
+// Create a new CCryptoParams instance to contain the RSA Key Pair initialization data
+CCryptoParams* keyParams = CCryptoParams::NewLC(); 
+                    
+// Create an RSA Key Pair and Key Pair Generator object pointers
+CKeyPair* keyPair = NULL;
+CKeyPairGenerator * keypairImpl = NULL;                
+                
+// Set the RSA Key Pair Generator initialization parameters reate an RSA key pair
+keyParams-&gt;AddL(KKeyExponent, KRsaKeyParameterEUid);
+keyParams-&gt;AddL(KRsaPrivateKeyStandard, KRsaKeyTypeUid);
+
+// Retrieve an instance of an RSA Key Pair Generator implementation from the framework
+CKeyPairGeneratorFactory::CreateKeyPairGeneratorL( keypairImpl,
+                                                   KRSAKeyPairGeneratorUid,
+                                                   keyParams);
+                                            
+CleanupStack::PushL(keypairImpl);
+    
+// Create an RSA Key Pair    
+keypairImpl-&gt;GenerateKeyPairL(1024, *keyParams, keyPair);
+                
+CleanupStack::PushL(keyPair);
+                                        
+// Create and initialize a pointer for the asymmetric cipher implementation object        
+CAsymmetricCipher* asymmetricCipherImpl = NULL;
+
+// If successful, the 'CreateAsymmetricCipherL' method returns KErrNone and sets the 
+// asymmetricCipherImpl pointer to point to the constructed implementation
+TRAPD(err, CAsymmetricCipherFactory::CreateAsymmetricCipherL(asymmetricCipherImpl,
+                                                             KRsaCipherUid,
+                                                             keyPair-&gt;PrivateKey(),
+                                                             KCryptoModeEncryptUid,
+                                                             KPaddingModeNoneUid,
+                                                             NULL));
+
+// Having successfully constructed the asymmetric cipher implementation object, 
+// it is possible to retrieve the plug-in characteristics associated with it
+if (asymmetricCipherImpl &amp;&amp; (err == KErrNone))
+ {
+ CleanupStack::PushL(asymmetricCipherImpl);
+
+ // Retrieving common and algorithm-specific characteristics
+ // Create a constant pointer of type TCharacteristics used to access the
+ // asymmetric cipher plug-in's common and algorithm-specific characteristics
+    const TCharacteristics* chars(NULL);
+
+ // Retrieve the common and algorithm-specific characteristics by calling the
+ // 'GetCharacteristicsL' method passing in TCharacteristics pointer
+ asymmetricCipherImpl-&gt;GetCharacteristicsL(chars);
+
+ // Static cast the characteristics to type TAsymmetricCipherCharacteristics
+ const TAsymmetricCipherCharacteristics* asymmetricChars = 
+  static_cast&lt;const TAsymmetricCipherCharacteristics*&gt;(chars);
+
+ // Retrieve the common characteristics from the TASymmetricCipherCharacteristics
+ // object
+ const TCommonCharacteristics* asymmetricCommonChars = &amp;asymmetricChars-&gt;cmn;
+
+    TUid implementationId;
+    TBool hardwareSupported;
+    TRomLitC16 creatorName;
+    TInt maximumKeyLength;
+    TInt32 supportedPaddingModes;
+
+ // Example of extracting asymmetric common characteristics
+ implementationId.iUid = asymmetricCommonChars-&gt;iImplementationUID;
+ hardwareSupported = asymmetricCommonChars-&gt;iIsHardwareSupported;
+ creatorName = *(asymmetricCommonChars-&gt;iCreatorName);
+
+ // Example of extracting asymmetric algorithm specific characteristics
+ maximumKeyLength = asymmetricChars-&gt;iMaximumKeyLength;
+ supportedPaddingModes = *(asymmetricChars-&gt;iSupportedPaddingModes);
+
+ //Retrieving extended characteristics
+
+ // Create a constant pointer of type CExtendedCharacteristics used to store and
+ // access the asymmetric cipher plug-in extended characteristics. Retrieve
+ // the data by calling the 'GetExtendedCharacteristicsL' method and store the
+ // returned pointer
+ const CExtendedCharacteristics* extendedChars =
+  asymmetricCipherImpl-&gt;GetExtendedCharacteristicsL();
+
+ // Const casting the pointer to the CExtendedCharacteristics object allows it to
+ // be pushed onto the cleanup stack
+ CExtendedCharacteristics* ncExtendedChars =
+  const_cast&lt;CExtendedCharacteristics*&gt;(extendedChars);
+ CleanupStack::PushL(ncExtendedChars);
+
+ TInt concurrency;
+
+ // Each of the extended characteristics for the particular cryptographic
+ // implementation can then be accessed by passing the UID value into the
+ // appropriate 'Get' method
+ concurrency = extendedChars-&gt;GetTIntCharacteristicL(KConcurrencyTypeUid);
+ // Alternatively, extended characteristic retrieval can be achieved via the
+ // ListExtendedCharacteristics() method of the CExtendedCharacteristics Object.
+ // Using the 'ListExtendedCharacteristics' function returns a pointer to a
+ // CCryptoParams object, that contains a list of all associated extended
+ // characteristics
+ const CCryptoParams* extendedCryptoParams = 
+  extendedChars-&gt;ListExtendedCharacteristics();
+
+ TBool exclusiveUse;
+
+ // The extended characteristics can then be accessed in much the same way as 
+ // before, making a call to the appropriate 'Get' method with the UID value of the
+ // required type
+ exclusiveUse = extendedCryptoParams-&gt;GetTIntL(KExclusiveUseTypeUid);
+
+ CleanupStack::PopAndDestroy(2, asymmetricCipherImpl);
+ }
+
+// Pop and destroy the remaining items on the cleanup stack
+CleanupStack::PopAndDestroy(3,keyParams);
+    
+</codeblock>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,179 +1,179 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB" xml:lang="en"><title>Writing
-a MIME Recognizer</title><abstract><p>The Mime Recognizers provide the implementation for data type
-(MIME Type) recognition using the MIME recognition framework. </p><p>Each
-MIME recognizer specifies the MIME type it supports along with the priority
-and confidence of recognition. A MIME recognizer reads a small piece of data
-and identifies the data type. Once the data type is identified, it is passed
-to the <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">Application
-Architecture </xref> (AppArc). AppArc launches the application
-that best handles the identified data type.  </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-8-1-11-1-1-6-1-6-1-4-1-3-1-3-1"><p>Symbian OS v9.1
-and onwards, MIME recognizers are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECOM</xref> plug-ins.
-They are located in <b>\sys\bin\</b>. </p> <p>Each MIME recognizer is loaded
-by the <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">Application
-Architecture (AppArc)</xref> during the startup sequence. </p> </context>
-<steps id="GUID-45E4FFC7-5C92-5101-B21B-581C2AFB9CF0">
-<step id="GUID-016BE2C1-DFB1-51B0-9A5C-C3A926C48E33"><cmd/>
-<info>Create a project file (<filepath>.mmp</filepath>) for the MIME recognizer
-and ensure the following parameters are set. </info>
-<stepxmp><table id="GUID-8A194C7E-8927-5A8A-B1EA-EB9D7A23CF0C">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p> <b>Variable Name</b>  </p> </entry>
-<entry><p> <b>Value</b>  </p> </entry>
-<entry><p> <b>Description</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>TargetType</codeph>  </p> </entry>
-<entry><p> <codeph>plugin</codeph>  </p> </entry>
-<entry><p>Specifies the type of binary. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>Resource</codeph>  </p> </entry>
-<entry><p>Use the block <codeph>start resource ... end</codeph>  </p> </entry>
-<entry><p>The variable <codeph>Resource</codeph> is set to the registration
-resource file (<filepath>.rss)</filepath>)of the MIME recognizer. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>UID</codeph>  </p> </entry>
-<entry><p> <codeph>0x10009D8D</codeph> and the <codeph>DLL UID</codeph>  </p> </entry>
-<entry><p>The variable <codeph>UID</codeph> requires two values. The first
-value is 0x10009D8D and is constant for all MIME recognizers. The second value
-is the UID of the DLL. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>Capability</codeph>  </p> </entry>
-<entry><p> <codeph>Protserv</codeph>  </p> </entry>
-<entry><p>The AppArc server has <codeph>protserv</codeph> capability.The MIME
-recognizers are loaded by the AppArc server on requirement. The MIME recognizers
-must have <codeph>protserv</codeph> capability to be loaded by the AppArc
-server. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </stepxmp>
-<info>For more details, refer <xref href="GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita">Creating
-a Project File</xref>. </info>
-<info>The code below shows a sample <filepath>.mmp</filepath> file with the
-above parameters set. </info>
-<stepxmp><codeblock id="GUID-B21A3AEB-C21C-5C9B-8BE3-715336ECBFD0" xml:space="preserve">target exampleRecognizer.dll
-
-capability          Protserv
-targettype          plugin
-uid                    0x10009d8d 0x1d1f75ed
-vendorid            0x70000001
-
-sourcepath          .
-source                 exampleRecognizer.cpp
-systeminclude       \EPOC32\INCLUDE
-systeminclude       \EPOC32\INCLUDE\ECOM 
-
-library                EUSER.LIB APMIME.LIB 
-
-start resource   1d1f75ed.rss
-target           exampleRecognizer.rsc
-end</codeblock> </stepxmp>
-</step>
-<step id="GUID-98A72A42-24D2-5A16-A0DE-15223FD1A685"><cmd/>
-<info>Export the factory code function of the MIME recognizer as shown below.
-This is required to create an instance of the MIME recognizer. </info>
-<info>The class <codeph>CExampleRecognizer</codeph> is derived from <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>. </info>
-<stepxmp><codeblock id="GUID-F61F7E5E-37E0-5F4B-8E9A-E4C106005554" xml:space="preserve">const TInt KImplementationUID = 0x101F7DA1;
-
-CApaDataRecognizerType* CExampleRecognizer::CreateRecognizerL()
-       {
-         return new (ELeave) CExampleRecognizer;
-       }
-
-const TImplementationProxy ImplementationTable[] = 
-       {
-        IMPLEMENTATION_PROXY_ENTRY(KImplementationUID,CExampleRecognizer::CreateRecognizerL);
-       }
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
-       {
-        aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-        return ImplementationTable;
-    }
-</codeblock> </stepxmp>
-<info>For more details refer <xref href="GUID-895A685E-83E8-51A3-A823-3A0E07B1E609.dita">Exporting
-Implementation Factories.</xref>  </info>
-</step>
-<step id="GUID-B06E4D48-5CC2-5BEB-8C28-8DE5EFF62FE1"><cmd/>
-<info>Implement <codeph>CApaDataRecognizerType</codeph> polymorphic interface. </info>
-<substeps id="GUID-C29E1469-92CF-53D6-867F-FA73E223929C">
-<substep id="GUID-B670112D-ACEB-5001-8F60-F16DF4240CE7"><cmd/>
-<info>The code below shows a sample constructor implementation. </info>
-<stepxmp><codeblock id="GUID-F8BD0190-4751-5731-BBF8-BD41644755F5" xml:space="preserve">const TUid KExampleUid = {0x1d1f75ed};
-
-const TInt KNumDataTypes = 1;
-
-CExampleRecognizer::CExampleRecognizer() : CApaDataRecognizerType(KExampleUid,CApaDataRecognizerType::EHigh) 
-
-  { 
-     iCountDataTypes = KNumDataTypes;
- 
-  } 
-
-</codeblock> </stepxmp>
-<info>Specify a UID (the <codeph>DLL UID</codeph> as specified in the plug-in
-project definition file) and a <xref href="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita">priority</xref> in
-the constructor. </info>
-<info>The <codeph>iCountDataTypes</codeph> variable, represents the number
-of data types supported by the recognizer can also be set in the constructor.
-The value set for this variable should match the implementation of <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-FBCE07F2-9566-3AD1-B943-2FFF5C5AAE67"><apiname>CApaDataRecognizerType::SupportedDataTypeL()</apiname></xref>. </info>
-</substep>
-<substep id="GUID-5F36C1F6-3EDA-5817-801D-9B5C6F9F4927"><cmd/>
-<info>Implement the pure virtual function <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-FBCE07F2-9566-3AD1-B943-2FFF5C5AAE67"><apiname>CApaDataRecognizerType::SupportedDataTypeL()</apiname></xref>.
-It returns the MIME types that the recognizer is capable of recognizing. </info>
-<info>The code below shows a sample implementation of <codeph>SupportedDataTypeL()</codeph> for
-supporting MIME type/ subtype "text/example". </info>
-<stepxmp><codeblock id="GUID-D2DDF2A2-2897-544A-ACA7-DA3A60FB27E9" xml:space="preserve">
-_LIT8(KExampleTextMimeType, "text/example"); 
-
-
-TDataType CExampleRecognizer::SupportedDataTypeL(TInt aIndex) const
-
-    {
-        return TDataType(KExampleTextMimeType);
-
-    }</codeblock> </stepxmp>
-</substep>
-<substep id="GUID-4C2CD90F-17AB-53B5-883A-7022E1231E2E"><cmd/>
-<info>Implement <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-74ED8BEA-52AA-3AC4-92D9-5E4FB4F25DDD"><apiname>CApaDataRecognizerType::DoRecognizeL()</apiname></xref>.
-This function executes data type recognition. </info>
-<info>The code below shows a sample implementation of <codeph>DoRecognizeL()</codeph> for
-recognizing the MIME type <codeph>"/text/example"</codeph> contained in files
-with <filepath>.example</filepath> extension with maximum confidence. </info>
-<stepxmp><codeblock id="GUID-C8F82861-AF59-5E23-9F1D-8656B2D1EE54" xml:space="preserve">void CExampleRecognizer::DoRecognizeL(const TDesC&amp; aName, const TDesC8&amp; aBuffer)
-    {
-    _LIT8(KExampleData, "example");
-    _LIT(KDotExample, ".Example");
-
-    TParse parse;
-    parse.Set(aName,NULL,NULL);
-    TPtrC ext=parse.Ext(); // extract the extension from the filename
-
-    if (ext.CompareF(KDotExample)==0 &amp;&amp; aBuffer.FindF(KExampleData)!=KErrNotFound)
-         {
-          iConfidence=ECertain;
-          iDataType=TDataType(KExampleTextMimeType); 
-        }
-    }</codeblock> </stepxmp>
-</substep>
-</substeps>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB" xml:lang="en"><title>Writing
+a MIME Recognizer</title><abstract><p>The Mime Recognizers provide the implementation for data type
+(MIME Type) recognition using the MIME recognition framework. </p><p>Each
+MIME recognizer specifies the MIME type it supports along with the priority
+and confidence of recognition. A MIME recognizer reads a small piece of data
+and identifies the data type. Once the data type is identified, it is passed
+to the <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">Application
+Architecture </xref> (AppArc). AppArc launches the application
+that best handles the identified data type.  </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-10-1-11-1-1-6-1-6-1-4-1-3-1-3-1"><p>Symbian OS v9.1
+and onwards, MIME recognizers are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECOM</xref> plug-ins.
+They are located in <b>\sys\bin\</b>. </p> <p>Each MIME recognizer is loaded
+by the <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">Application
+Architecture (AppArc)</xref> during the startup sequence. </p> </context>
+<steps id="GUID-45E4FFC7-5C92-5101-B21B-581C2AFB9CF0">
+<step id="GUID-016BE2C1-DFB1-51B0-9A5C-C3A926C48E33"><cmd/>
+<info>Create a project file (<filepath>.mmp</filepath>) for the MIME recognizer
+and ensure the following parameters are set. </info>
+<stepxmp><table id="GUID-8A194C7E-8927-5A8A-B1EA-EB9D7A23CF0C">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p> <b>Variable Name</b>  </p> </entry>
+<entry><p> <b>Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TargetType</codeph>  </p> </entry>
+<entry><p> <codeph>plugin</codeph>  </p> </entry>
+<entry><p>Specifies the type of binary. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Resource</codeph>  </p> </entry>
+<entry><p>Use the block <codeph>start resource ... end</codeph>  </p> </entry>
+<entry><p>The variable <codeph>Resource</codeph> is set to the registration
+resource file (<filepath>.rss)</filepath>)of the MIME recognizer. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UID</codeph>  </p> </entry>
+<entry><p> <codeph>0x10009D8D</codeph> and the <codeph>DLL UID</codeph>  </p> </entry>
+<entry><p>The variable <codeph>UID</codeph> requires two values. The first
+value is 0x10009D8D and is constant for all MIME recognizers. The second value
+is the UID of the DLL. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Capability</codeph>  </p> </entry>
+<entry><p> <codeph>Protserv</codeph>  </p> </entry>
+<entry><p>The AppArc server has <codeph>protserv</codeph> capability.The MIME
+recognizers are loaded by the AppArc server on requirement. The MIME recognizers
+must have <codeph>protserv</codeph> capability to be loaded by the AppArc
+server. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </stepxmp>
+<info>For more details, refer <xref href="GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita">Creating
+a Project File</xref>. </info>
+<info>The code below shows a sample <filepath>.mmp</filepath> file with the
+above parameters set. </info>
+<stepxmp><codeblock id="GUID-B21A3AEB-C21C-5C9B-8BE3-715336ECBFD0" xml:space="preserve">target exampleRecognizer.dll
+
+capability          Protserv
+targettype          plugin
+uid                    0x10009d8d 0x1d1f75ed
+vendorid            0x70000001
+
+sourcepath          .
+source                 exampleRecognizer.cpp
+systeminclude       \EPOC32\INCLUDE
+systeminclude       \EPOC32\INCLUDE\ECOM 
+
+library                EUSER.LIB APMIME.LIB 
+
+start resource   1d1f75ed.rss
+target           exampleRecognizer.rsc
+end</codeblock> </stepxmp>
+</step>
+<step id="GUID-98A72A42-24D2-5A16-A0DE-15223FD1A685"><cmd/>
+<info>Export the factory code function of the MIME recognizer as shown below.
+This is required to create an instance of the MIME recognizer. </info>
+<info>The class <codeph>CExampleRecognizer</codeph> is derived from <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>. </info>
+<stepxmp><codeblock id="GUID-F61F7E5E-37E0-5F4B-8E9A-E4C106005554" xml:space="preserve">const TInt KImplementationUID = 0x101F7DA1;
+
+CApaDataRecognizerType* CExampleRecognizer::CreateRecognizerL()
+       {
+         return new (ELeave) CExampleRecognizer;
+       }
+
+const TImplementationProxy ImplementationTable[] = 
+       {
+        IMPLEMENTATION_PROXY_ENTRY(KImplementationUID,CExampleRecognizer::CreateRecognizerL);
+       }
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
+       {
+        aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+        return ImplementationTable;
+    }
+</codeblock> </stepxmp>
+<info>For more details refer <xref href="GUID-895A685E-83E8-51A3-A823-3A0E07B1E609.dita">Exporting
+Implementation Factories.</xref>  </info>
+</step>
+<step id="GUID-B06E4D48-5CC2-5BEB-8C28-8DE5EFF62FE1"><cmd/>
+<info>Implement <codeph>CApaDataRecognizerType</codeph> polymorphic interface. </info>
+<substeps id="GUID-C29E1469-92CF-53D6-867F-FA73E223929C">
+<substep id="GUID-B670112D-ACEB-5001-8F60-F16DF4240CE7"><cmd/>
+<info>The code below shows a sample constructor implementation. </info>
+<stepxmp><codeblock id="GUID-F8BD0190-4751-5731-BBF8-BD41644755F5" xml:space="preserve">const TUid KExampleUid = {0x1d1f75ed};
+
+const TInt KNumDataTypes = 1;
+
+CExampleRecognizer::CExampleRecognizer() : CApaDataRecognizerType(KExampleUid,CApaDataRecognizerType::EHigh) 
+
+  { 
+     iCountDataTypes = KNumDataTypes;
+ 
+  } 
+
+</codeblock> </stepxmp>
+<info>Specify a UID (the <codeph>DLL UID</codeph> as specified in the plug-in
+project definition file) and a <xref href="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita">priority</xref> in
+the constructor. </info>
+<info>The <codeph>iCountDataTypes</codeph> variable, represents the number
+of data types supported by the recognizer can also be set in the constructor.
+The value set for this variable should match the implementation of <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-FBCE07F2-9566-3AD1-B943-2FFF5C5AAE67"><apiname>CApaDataRecognizerType::SupportedDataTypeL()</apiname></xref>. </info>
+</substep>
+<substep id="GUID-5F36C1F6-3EDA-5817-801D-9B5C6F9F4927"><cmd/>
+<info>Implement the pure virtual function <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-FBCE07F2-9566-3AD1-B943-2FFF5C5AAE67"><apiname>CApaDataRecognizerType::SupportedDataTypeL()</apiname></xref>.
+It returns the MIME types that the recognizer is capable of recognizing. </info>
+<info>The code below shows a sample implementation of <codeph>SupportedDataTypeL()</codeph> for
+supporting MIME type/ subtype "text/example". </info>
+<stepxmp><codeblock id="GUID-D2DDF2A2-2897-544A-ACA7-DA3A60FB27E9" xml:space="preserve">
+_LIT8(KExampleTextMimeType, "text/example"); 
+
+
+TDataType CExampleRecognizer::SupportedDataTypeL(TInt aIndex) const
+
+    {
+        return TDataType(KExampleTextMimeType);
+
+    }</codeblock> </stepxmp>
+</substep>
+<substep id="GUID-4C2CD90F-17AB-53B5-883A-7022E1231E2E"><cmd/>
+<info>Implement <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-74ED8BEA-52AA-3AC4-92D9-5E4FB4F25DDD"><apiname>CApaDataRecognizerType::DoRecognizeL()</apiname></xref>.
+This function executes data type recognition. </info>
+<info>The code below shows a sample implementation of <codeph>DoRecognizeL()</codeph> for
+recognizing the MIME type <codeph>"/text/example"</codeph> contained in files
+with <filepath>.example</filepath> extension with maximum confidence. </info>
+<stepxmp><codeblock id="GUID-C8F82861-AF59-5E23-9F1D-8656B2D1EE54" xml:space="preserve">void CExampleRecognizer::DoRecognizeL(const TDesC&amp; aName, const TDesC8&amp; aBuffer)
+    {
+    _LIT8(KExampleData, "example");
+    _LIT(KDotExample, ".Example");
+
+    TParse parse;
+    parse.Set(aName,NULL,NULL);
+    TPtrC ext=parse.Ext(); // extract the extension from the filename
+
+    if (ext.CompareF(KDotExample)==0 &amp;&amp; aBuffer.FindF(KExampleData)!=KErrNotFound)
+         {
+          iConfidence=ECertain;
+          iDataType=TDataType(KExampleTextMimeType); 
+        }
+    }</codeblock> </stepxmp>
+</substep>
+</substeps>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123" xml:lang="en"><title>Animation
-example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-6F2D66DB-B099-4D4F-8F98-720B4A67C24A"><title>Description</title> <p>This example is a UI application, which
-demonstrates how to create and play basic and sprite animations. It implements
-all the standard classes required by any application using UI controls such
-as an application, a document, an application UI and a view. </p> <p>The application
-provides UI controls to create a sprite animation and a basic client-side
-animation. It also provides UI controls to control the behavior
-of an animation such as, start, stop, pause, resume and move. </p> <p>The
-application plays an animated <filepath>.gif</filepath> file both as a basic
-client-side animation and a server-side sprite animation. It performs the
-following tasks in the order they are listed to create the basic and sprite
-animations: </p> <ol id="GUID-5860A908-A761-5431-AB6E-EEBE4D7CF0FE">
-<li id="GUID-33C9AD3D-8067-5A28-8C83-38A97C03C549"><p>Creates an object of
-the <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> class. </p> </li>
-<li id="GUID-87DA4E47-1D76-5C16-BE0F-3F64AC00063B"><p>Loads the animated <filepath>.gif</filepath> file
-into the object. </p> </li>
-<li id="GUID-86DA1F4B-A2BA-56FD-B06E-8F369572B320"><p>Configures the animation
-to play in an infinite loop using <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref>. </p> </li>
-<li id="GUID-2BB161BD-24E0-5961-8EDD-9ED0C37C0D2E"><p>Creates objects of <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> and <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref> classes by passing the data provider object as an argument. </p> </li>
-<li id="GUID-5568FAA9-8C74-5828-8AC9-1325C1AE16F0"><p>Starts animations with
-the <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> object as an argument. </p> </li>
-</ol> <p>Once both the animations are started, the window server will automatically
-draw the animations onto the window by calling the <codeph>Draw()</codeph> method. </p> </section>
-<section id="GUID-9A796309-6E8C-498C-ADCE-B45821142563"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-00c88af8-a2db-4fe9-af89-545d8b91ea98.zip" scope="external">AnimExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-00c88af8-a2db-4fe9-af89-545d8b91ea98.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-8540B854-4D8F-465C-98A1-CE8D4BEC55C0"><title>Class summary</title> <ul>
-<li id="GUID-04DF6CC6-085A-5F96-9981-D6926F9193C3"><p> <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref> </p> </li>
-<li id="GUID-3902EF29-2C1D-59AE-A4FE-AECDFADDAC85"><p> <xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref> </p> </li>
-<li id="GUID-7A376E96-1E0A-5844-97BC-B753DF809A6B"><p> <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> </p> </li>
-<li id="GUID-E193DEF2-CCC9-5235-B948-D8E3EF7D7E3C"><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> </p> </li>
-<li id="GUID-29DAD5A9-4A75-594F-A494-C73BE9578704"><p> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive</apiname></xref> </p> </li>
-<li id="GUID-86EF37C0-7777-5B34-8351-13FC36B5B931"><p> <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> </p> </li>
-<li id="GUID-9EB00957-5039-5AF8-85B1-06BAB817D586"><p> <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref> </p> </li>
-<li id="GUID-D0F82278-65D0-55C2-B13B-6D27ED119321"><p> <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> </p> </li>
-<li id="GUID-D13D4CF7-8C2B-531D-892A-25EBE837E452"><p> <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> </p> </li>
-</ul> </section>
-<section id="GUID-8A4B78B0-F836-4873-B2AF-E7332438E24D"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
-platform build process</xref> describes how to build an application. But,
-use <codeph>abld export</codeph> command before <codeph>abld build</codeph> to
-copy the animated <filepath>.gif</filepath> file to RAM (<filepath>C:\</filepath> drive)
-of the target platform. </p> <p>The AnimExample builds an executable called <filepath>AnimExample.exe</filepath> in
-the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>udeb
-or urel</i> for CodeWarrior). Either launch the executable or launch the emulator
-and then select the AnimExample application from the Emulator's extras bar. </p> </section>
-<section id="GUID-D0CF73E7-ACD7-4A1F-8809-E1AF4AC9C853"><title>See also</title> <p><xref href="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1.dita">Using
-Animation</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123" xml:lang="en"><title>Animation
+example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-6F2D66DB-B099-4D4F-8F98-720B4A67C24A"><title>Description</title> <p>This example is a UI application, which
+demonstrates how to create and play basic and sprite animations. It implements
+all the standard classes required by any application using UI controls such
+as an application, a document, an application UI and a view. </p> <p>The application
+provides UI controls to create a sprite animation and a basic client-side
+animation. It also provides UI controls to control the behavior
+of an animation such as, start, stop, pause, resume and move. </p> <p>The
+application plays an animated <filepath>.gif</filepath> file both as a basic
+client-side animation and a server-side sprite animation. It performs the
+following tasks in the order they are listed to create the basic and sprite
+animations: </p> <ol id="GUID-5860A908-A761-5431-AB6E-EEBE4D7CF0FE">
+<li id="GUID-33C9AD3D-8067-5A28-8C83-38A97C03C549"><p>Creates an object of
+the <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> class. </p> </li>
+<li id="GUID-87DA4E47-1D76-5C16-BE0F-3F64AC00063B"><p>Loads the animated <filepath>.gif</filepath> file
+into the object. </p> </li>
+<li id="GUID-86DA1F4B-A2BA-56FD-B06E-8F369572B320"><p>Configures the animation
+to play in an infinite loop using <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref>. </p> </li>
+<li id="GUID-2BB161BD-24E0-5961-8EDD-9ED0C37C0D2E"><p>Creates objects of <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> and <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref> classes by passing the data provider object as an argument. </p> </li>
+<li id="GUID-5568FAA9-8C74-5828-8AC9-1325C1AE16F0"><p>Starts animations with
+the <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> object as an argument. </p> </li>
+</ol> <p>Once both the animations are started, the window server will automatically
+draw the animations onto the window by calling the <codeph>Draw()</codeph> method. </p> </section>
+<section id="GUID-9A796309-6E8C-498C-ADCE-B45821142563"><title>Download</title> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-00c88af8-a2db-4fe9-af89-545d8b91ea98.zip" scope="external">AnimExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-00c88af8-a2db-4fe9-af89-545d8b91ea98.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-8540B854-4D8F-465C-98A1-CE8D4BEC55C0"><title>Class summary</title> <ul>
+<li id="GUID-04DF6CC6-085A-5F96-9981-D6926F9193C3"><p> <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref> </p> </li>
+<li id="GUID-3902EF29-2C1D-59AE-A4FE-AECDFADDAC85"><p> <xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref> </p> </li>
+<li id="GUID-7A376E96-1E0A-5844-97BC-B753DF809A6B"><p> <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> </p> </li>
+<li id="GUID-E193DEF2-CCC9-5235-B948-D8E3EF7D7E3C"><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> </p> </li>
+<li id="GUID-29DAD5A9-4A75-594F-A494-C73BE9578704"><p> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive</apiname></xref> </p> </li>
+<li id="GUID-86EF37C0-7777-5B34-8351-13FC36B5B931"><p> <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> </p> </li>
+<li id="GUID-9EB00957-5039-5AF8-85B1-06BAB817D586"><p> <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref> </p> </li>
+<li id="GUID-D0F82278-65D0-55C2-B13B-6D27ED119321"><p> <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> </p> </li>
+<li id="GUID-D13D4CF7-8C2B-531D-892A-25EBE837E452"><p> <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> </p> </li>
+</ul> </section>
+<section id="GUID-8A4B78B0-F836-4873-B2AF-E7332438E24D"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+platform build process</xref> describes how to build an application. But,
+use <codeph>abld export</codeph> command before <codeph>abld build</codeph> to
+copy the animated <filepath>.gif</filepath> file to RAM (<filepath>C:\</filepath> drive)
+of the target platform. </p> <p>The AnimExample builds an executable called <filepath>AnimExample.exe</filepath> in
+the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>udeb
+or urel</i> for CodeWarrior). Either launch the executable or launch the emulator
+and then select the AnimExample application from the Emulator's extras bar. </p> </section>
+<section id="GUID-D0CF73E7-ACD7-4A1F-8809-E1AF4AC9C853"><title>See also</title> <p><xref href="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D.dita">Using
+Animation</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135" xml:lang="en"><title>Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the ideas that underly the Comms Database. </p>
-<p>The Comms Database provides system wide storage for communications related
-settings. The Comms Database holds information about Internet Access Providers
-(IAPs), Internet Service Providers (ISPs), GPRS, modems, locations, charge-cards,
-proxies, WAP settings etc. The Comms Database holds this information as a
-set of related tables. </p>
-<p>Symbian platform defines the format of this information, but the Comms
-Database can also contain user-defined data. Symbian support for user-defined
-data is limited to backup and security. </p>
-<p>Tools and applications that manage voice and data transmissions use the
-Comms Database. </p>
-<p>The Comms Database is a persistent store. Tools and applications use the
-CommsDat API to access the data in the Comms Database. The CommsDat API hides
-the structure of the data on the database. The CommsDat API also hides the
-implementation of the database, and allows the implementation to change in
-future versions of Symbian platform without a change to client code. </p>
-<p>The current version of Symbian platform implements the Comms
-Database in the Central Repository. </p>
-<p>The Comms Database is available on all Symbian platforms. </p>
-<fig id="GUID-51EC89D3-B9BF-5074-95C7-8C8304626F6E">
-<image href="GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e85804_href.png" placement="inline"/>
-</fig>
-</conbody><related-links>
-<link href="GUID-00696F18-F1C8-5810-A9F9-E7215CA451A4.dita"><linktext>Configuring
-comms database using CED</linktext></link>
-<link href="GUID-A0948145-32C3-5754-B76D-AD7A8AF001A2.dita"><linktext>Comms database
-configuration file format</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135" xml:lang="en"><title>Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the ideas that underly the Comms Database. </p>
+<p>The Comms Database provides system wide storage for communications related
+settings. The Comms Database holds information about Internet Access Providers
+(IAPs), Internet Service Providers (ISPs), GPRS, modems, locations, charge-cards,
+proxies, WAP settings etc. The Comms Database holds this information as a
+set of related tables. </p>
+<p>Symbian platform defines the format of this information, but the Comms
+Database can also contain user-defined data. Symbian support for user-defined
+data is limited to backup and security. </p>
+<p>Tools and applications that manage voice and data transmissions use the
+Comms Database. </p>
+<p>The Comms Database is a persistent store. Tools and applications use the
+CommsDat API to access the data in the Comms Database. The CommsDat API hides
+the structure of the data on the database. The CommsDat API also hides the
+implementation of the database, and allows the implementation to change in
+future versions of Symbian platform without a change to client code. </p>
+<p>The current version of Symbian platform implements the Comms
+Database in the Central Repository. </p>
+<p>The Comms Database is available on all Symbian platforms. </p>
+<fig id="GUID-51EC89D3-B9BF-5074-95C7-8C8304626F6E">
+<image href="GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e79092_href.png" placement="inline"/>
+</fig>
+</conbody><related-links>
+<link href="GUID-00696F18-F1C8-5810-A9F9-E7215CA451A4.dita"><linktext>Configuring
+comms database using CED</linktext></link>
+<link href="GUID-A0948145-32C3-5754-B76D-AD7A8AF001A2.dita"><linktext>Comms database
+configuration file format</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43" xml:lang="en"><title>Tooltips</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Tooltip is used for providing brief hint about an item, to explain the
-user’s tasks for the item selected by the user.</p>
-<p>An <xref href="GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0.dita">information pop-up</xref> is
-used to display the tooltip.</p>
-<p><b>Design recommendation</b>: Tooltips must not be used for items that
-might open a stylus pop-up menu with touch down and hold. </p>
-<p><note>It is an application's responsibility to design all required texts
-for their tooltips.</note></p>
-<fig id="GUID-E707CA70-836D-41AA-A753-3E4E8319C55C">
-<title>Example tooltip</title>
-<image href="GUID-5D408616-8A7A-4882-A64F-4BF6EC3FD6AA_d0e67451_href.png" placement="inline"/>
-</fig>
-<p>Tooltip appears when the user touches down and holds on an item, that has
-a tooltip designed, for at least 0.3 seconds. It also appears from a dimmed
-icon, as it would be displayed in “normal” situation. Tooltip disappears with
-touch release, when the focus is moved to another item or when the user touches
-down some other item that does not have a tooltip.</p>
-<p> There is no touch interaction with the tooltip item.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43" xml:lang="en"><title>Tooltips</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Tooltip is used for providing brief hint about an item, to explain the
+user’s tasks for the item selected by the user.</p>
+<p>An <xref href="GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0.dita">information pop-up</xref> is
+used to display the tooltip.</p>
+<p>Information pop-up notes are used to provide additional information to
+the user, most typically regarding a focused item. Although the Information
+pop-up can be used in various applications and components, it should not be
+used too frequently as constantly appearing and disappearing notes may disturb
+smooth user experience.</p>
+<p>The Information pop-up does not have focus, its content cannot be scrolled,
+and the control always remains in the main pane. The maximum number of rows
+in the Information pop-up is four. In a typical case, the pop-up emerges one
+second after the user has taken the focus on an item but has not made any
+further actions. The pop-up is timed so that it (typically) remains visible
+for ten seconds or until some event interrupts it. Time-outs are application-specific
+and variation is possible.</p>
+<p>The API to use for the information pop-up is the <xref format="html" href="specs/guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer">Info pop-up API</xref>.</p>
+<fig id="GUID-F7BBCA95-5754-44C1-9CCF-3A5B837E98B5">
+<title>Example of tooltip</title>
+<image href="GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e63101_href.png" placement="inline"/>
+</fig>
+<p><b>Design recommendation</b>: Tooltips must not be used for items that
+might open a stylus pop-up menu with touch down and hold. </p>
+<p><note>It is an application's responsibility to design all required texts
+for their tooltips.</note></p>
+<p>Tooltip appears when the user touches down and holds on an item, that has
+a tooltip designed, for at least 0.3 seconds. It also appears from a dimmed
+icon, as it would be displayed in “normal” situation. Tooltip disappears with
+touch release, when the focus is moved to another item or when the user touches
+down some other item that does not have a tooltip.</p>
+<p> There is no touch interaction with the tooltip item.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1" xml:lang="en"><title>Fixed
-and Floating Windows</title><shortdesc>This section explains the fixed and floating FEP windows.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-0DE8957D-8462-4662-A89F-501C7B3B4DA8-GENID-1-8-1-3-1-1-9-1-4-1-5-1-3-1"><title>The fixed window</title><p>The
-FEP architecture does not enable FEP to negotiate with the application beneath
-them for division of screen area. </p></section>
-<section id="GUID-C1D818DC-1422-451B-9052-D1C35F64524D-GENID-1-8-1-3-1-1-9-1-4-1-5-1-3-2"><title>The floating
-window</title> <p>To make the control of FEP window float above the application,
-and even above any dialogs or pop-up windows that the application launches,
-use the following code in the  construction of control routine: </p> <codeblock id="GUID-C7EB4E51-4B26-5F2B-B4D4-29C8E6AE6B35-GENID-1-8-1-3-1-1-9-1-4-1-5-1-3-2-3" xml:space="preserve">DrawableWindow()-&gt;SetOrdinalPosition(0, ECoeWinPriorityFep);</codeblock> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1" xml:lang="en"><title>Fixed
-and Floating Windows</title><shortdesc>This section explains the fixed and floating FEP windows.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-0DE8957D-8462-4662-A89F-501C7B3B4DA8-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1-3-1"><title>The fixed window</title><p>The
-FEP architecture does not enable FEP to negotiate with the application beneath
-them for division of screen area. </p></section>
-<section id="GUID-C1D818DC-1422-451B-9052-D1C35F64524D-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1-3-2"><title>The floating
-window</title> <p>To make the control of FEP window float above the application,
-and even above any dialogs or pop-up windows that the application launches,
-use the following code in the  construction of control routine: </p> <codeblock id="GUID-C7EB4E51-4B26-5F2B-B4D4-29C8E6AE6B35-GENID-1-8-1-6-1-1-4-1-8-1-4-1-5-1-3-2-3" xml:space="preserve">DrawableWindow()-&gt;SetOrdinalPosition(0, ECoeWinPriorityFep);</codeblock> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC" xml:lang="en"><title>Fixed
+and Floating Windows</title><shortdesc>This section explains the fixed and floating FEP windows.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-0DE8957D-8462-4662-A89F-501C7B3B4DA8"><title>The fixed window</title><p>The
+FEP architecture does not enable FEP to negotiate with the application beneath
+them for division of screen area. </p></section>
+<section id="GUID-C1D818DC-1422-451B-9052-D1C35F64524D"><title>The floating
+window</title> <p>To make the control of FEP window float above the application,
+and even above any dialogs or pop-up windows that the application launches,
+use the following code in the  construction of control routine: </p> <codeblock id="GUID-C7EB4E51-4B26-5F2B-B4D4-29C8E6AE6B35" xml:space="preserve">DrawableWindow()-&gt;SetOrdinalPosition(0, ECoeWinPriorityFep);</codeblock> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-3-1-1-7-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-3-1-1-7-1-7-1" xml:lang="en"><title>Controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In the Symbian platform UI Control Framework, all UI elements (with a few
-exceptions) are <keyword>controls</keyword>. A control is a rectangular area
-of the screen that may respond to user input events. Buttons, menus, text
-input boxes and application views displaying application-specific data are
-all examples of controls. </p>
-<p>All controls are implemented by deriving from the <codeph>CCoeControl</codeph> class.
-Concrete implementations of controls are provided by a user interface library,
-or by the application programmer. The control framework itself provides no
-concrete controls. </p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-6-1-1-4-1-6-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-6-1-1-4-1-6-1-7-1" xml:lang="en"><title>Controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In the Symbian platform UI Control Framework, all UI elements (with a few
-exceptions) are <keyword>controls</keyword>. A control is a rectangular area
-of the screen that may respond to user input events. Buttons, menus, text
-input boxes and application views displaying application-specific data are
-all examples of controls. </p>
-<p>All controls are implemented by deriving from the <codeph>CCoeControl</codeph> class.
-Concrete implementations of controls are provided by a user interface library,
-or by the application programmer. The control framework itself provides no
-concrete controls. </p>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389" xml:lang="en"><title>Controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In the Symbian platform UI Control Framework, all UI elements (with a few
+exceptions) are <keyword>controls</keyword>. A control is a rectangular area
+of the screen that may respond to user input events. Buttons, menus, text
+input boxes and application views displaying application-specific data are
+all examples of controls. </p>
+<p>All controls are implemented by deriving from the <codeph>CCoeControl</codeph> class.
+Concrete implementations of controls are provided by a user interface library,
+or by the application programmer. The control framework itself provides no
+concrete controls. </p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,87 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571" xml:lang="en"><title>Slider
-setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A slider setting item has a value (numeric or textual) that can be adjusted
-using an interface with a slider appearance. The control area is the same
-as for scrollbar.</p>
-<fig id="GUID-4BD2501D-187A-4DFE-996B-F749CDAD1F55">
-<title>Slider setting item</title>
-<image href="GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e69363_href.png" placement="inline"/>
-</fig>
-<p>The actual slider item usage is specified in applications.</p>
-<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-8-1-6-1-1-5-1-18-1-5-1-2-4"><title>Default touch
-events for slider setting item</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down (on slider)</p></entry>
-<entry><p>Slider thumb is moved to the nearest slider step position on the
-slider. </p><p>Value is changed accordingly. </p><p>If touch down event is
-performed in the middle of two slider step positions, the slider thumb is
-moved towards the greater (larger) value.</p></entry>
-<entry><p>Tactile: No touch down effect. Sensitive slider effect and audio
-given when thumb moves.</p></entry>
-</row>
-<row>
-<entry><p>Touch down (on slider thumb)</p></entry>
-<entry><p>Slider thumb is activated and can be moved.</p></entry>
-<entry><p>Tactile: Sensitive slider effect and audio given with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: Sensitive slider effect given with touch release (on slider
-thumb).</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (on slider)</p></entry>
-<entry><p>Moves the thumb step by step to the place where touched down.</p></entry>
-<entry><p>Tactile: Hold slider effect is given with long touch on slider.
-Effect is tied to the steps. If there are more than 15 steps, then smooth
-slider effect is given instead.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (on slider thumb)</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Slider thumb is moved along with the touch event. </p><p>It moves
-step by step via its possible positions.</p><p>Value is changing accordingly. </p><p>If
-touch release in the middle of two slider step positions, the slider thumb
-is moved towards the greater (larger) value. </p><p>The slider control area
-is the entire main pane area.</p></entry>
-<entry><p>Tactile: Smooth slider effect is provided when dragging from thumb. </p><p>Smooth
-feedback can be increasing and decreasing when there is a meaning to use this
-kind of feature (e.g., in volume and zoom slider).</p></entry>
-</row>
-<row>
-<entry><p>Touch down and cancel (slider thumb)</p></entry>
-<entry><p>Slider thumb is moved to the nearest slider step position where
-it was when the touch left the slider control area.</p></entry>
-<entry><p>Tactile: No feedback given with touch release after drag outside.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571" xml:lang="en"><title>Slider
+setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A slider setting item has a value (numeric or textual) that can be adjusted
+using an interface with a slider appearance. The control area for slider setting
+item is same as that of the scrollbar.</p>
+<fig id="GUID-4BD2501D-187A-4DFE-996B-F749CDAD1F55">
+<title>Slider setting item</title>
+<image href="GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e64131_href.png" placement="inline"/>
+</fig>
+<p>The actual slider item usage is specified in applications.</p>
+<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-10-1-6-1-1-5-1-15-1-5-1-2-4"><title>Default touch
+events for slider setting item</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down (on slider)</p></entry>
+<entry><p>Slider thumb is moved to the nearest slider step position on the
+slider. </p><p>Value is changed accordingly. </p><p>If touch down event is
+performed in the middle of two slider step positions, the slider thumb is
+moved towards the greater (larger) value.</p></entry>
+<entry><p>Tactile: No touch down effect. Sensitive slider effect and audio
+given when thumb moves.</p></entry>
+</row>
+<row>
+<entry><p>Touch down (on slider thumb)</p></entry>
+<entry><p>Slider thumb is activated and can be moved.</p></entry>
+<entry><p>Tactile: Sensitive slider effect and audio given with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: Sensitive slider effect given with touch release (on slider
+thumb).</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (on slider)</p></entry>
+<entry><p>Moves the thumb step by step to the place where touched down.</p></entry>
+<entry><p>Tactile: Hold slider effect is given with long touch on slider.
+Effect is tied to the steps. If there are more than 15 steps, then smooth
+slider effect is given instead.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (on slider thumb)</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Slider thumb is moved along with the touch event. </p><p>It moves
+step by step via its possible positions.</p><p>Value is changing accordingly. </p><p>If
+touch release in the middle of two slider step positions, the slider thumb
+is moved towards the greater (larger) value. </p><p>The slider control area
+is the entire main pane area.</p></entry>
+<entry><p>Tactile: Smooth slider effect is provided when dragging from thumb. </p><p>Smooth
+feedback can be increasing and decreasing when there is a meaning to use this
+kind of feature (e.g., in volume and zoom slider).</p></entry>
+</row>
+<row>
+<entry><p>Touch down and cancel (slider thumb)</p></entry>
+<entry><p>Slider thumb is moved to the nearest slider step position where
+it was when the touch left the slider control area.</p></entry>
+<entry><p>Tactile: No feedback given with touch release after drag outside.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e249822_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-1BDBFC07-A8E8-5150-953D-CA9CFE1CBF16_d0e253554_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35"><title>Application registration files</title><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Introduction</title> <p>An application registration file defines information about an application that is required by the application launcher or system shell. This includes the application’s name, UID and properties. Other information required by the shell, for instance the icons and captions, is defined separately; the location of the icon/caption definitions is provided in the registration file. Before v8.1, all of this information was provided by aif files. In v8.1, both aif files and registration files are supported, but from v9.0 onwards, only registration files are supported. </p> <fig id="GUID-25C677B0-097F-5E86-A6C3-92DF092A0C9A"><title>
-             Registration files
-          </title> <desc><p>This diagram shows: </p> </desc> <image href="GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461458_href.png" placement="inline"/></fig> <p>A registration file is required by every application, even if it has default properties, icons and caption. Minimally, it must specify the application's UID and the name of the application’s executable. </p> <p>For an example, see <xref href="GUID-188F9462-F805-522A-84FF-770EAB045504.dita">An example registration file and icon/caption file</xref>. </p> </section> <section><title>Registration information</title> <p>A registration file defines the following non-localisable application information; in other words, information that never varies according to the phone’s language setting: </p> <ul><li id="GUID-0AC456CA-D202-5476-A250-2EDF16847DED"><p>the application’s properties, such as whether it is embeddable or hidden, </p> </li> <li id="GUID-7EFFB70B-3F42-5379-B1CD-9B52B56AC895"><p>a group name; this may be used to categorize applications. Note that a group name may also be defined in the localisable file. If so, the localisable version will take precedence. </p> </li> <li id="GUID-493468C8-CE59-56CF-9BA6-FACBF43F8AEA"><p>a number which identifies the screen on which the application is displayed (if the phone has multiple screens). </p> </li> <li id="GUID-9E7AAF73-890E-5BF6-83DC-A8B11B19EE1E"><p>the MIME types supported by the application, and the priority of support for each, </p> </li> <li id="GUID-88039BB3-D3B5-5CFC-8389-1683BB6C267F"><p>a list of files owned by the application, </p> </li> <li id="GUID-2C12A4CC-4B76-5787-98F1-DD7415A27364"><p>a flag that identifies non-standard types of application, </p> </li> <li id="GUID-AA15C72C-F69D-5642-9C08-5E92FC7A0380"><p>for server applications only, a list of the services provided. </p> </li> </ul> <p>All of these properties are defined using an <codeph>APP_REGISTRATION_INFO</codeph> resource struct. See its declaration in <filepath>AppInfo.rh</filepath> for the default values. For more information about these properties, see <xref href="GUID-A6116E8B-9C4A-5B9E-AA8A-BE031408AA2F.dita">Defining application icons, captions and properties</xref>. </p> <p>Most applications also need to define localisable information, for instance non-default captions and icons and possibly a group name (described above). The registration file specifies its location. This can be done in one of two ways: </p> <ul><li id="GUID-7E5B8B94-5889-57F1-9620-B28DD7CEA092"><p>as the name and path (excluding drive letter and extension) of a <xref href="GUID-3F880EFC-E891-5C71-8360-1BBB54367AFA.dita">localisable icon/caption definition file</xref>, </p> </li> <li id="GUID-CEFEEBC7-B20E-560E-947A-D7D49DB36AF8"><p>as the ID of a <codeph>LOCALISABLE_APP_INFO</codeph> resource struct defined in the application’s UI resource file. In this case, the name and path of the application’s UI resource file (excluding drive letter and extension) must also be provided. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35"><title>Application registration files</title><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Introduction</title> <p>An application registration file defines information about an application that is required by the application launcher or system shell. This includes the application’s name, UID and properties. Other information required by the shell, for instance the icons and captions, is defined separately; the location of the icon/caption definitions is provided in the registration file. Before v8.1, all of this information was provided by aif files. In v8.1, both aif files and registration files are supported, but from v9.0 onwards, only registration files are supported. </p> <fig id="GUID-25C677B0-097F-5E86-A6C3-92DF092A0C9A"><title>
+             Registration files
+          </title> <desc><p>This diagram shows: </p> </desc> <image href="GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461294_href.png" placement="inline"/></fig> <p>A registration file is required by every application, even if it has default properties, icons and caption. Minimally, it must specify the application's UID and the name of the application’s executable. </p> <p>For an example, see <xref href="GUID-188F9462-F805-522A-84FF-770EAB045504.dita">An example registration file and icon/caption file</xref>. </p> </section> <section><title>Registration information</title> <p>A registration file defines the following non-localisable application information; in other words, information that never varies according to the phone’s language setting: </p> <ul><li id="GUID-0AC456CA-D202-5476-A250-2EDF16847DED"><p>the application’s properties, such as whether it is embeddable or hidden, </p> </li> <li id="GUID-7EFFB70B-3F42-5379-B1CD-9B52B56AC895"><p>a group name; this may be used to categorize applications. Note that a group name may also be defined in the localisable file. If so, the localisable version will take precedence. </p> </li> <li id="GUID-493468C8-CE59-56CF-9BA6-FACBF43F8AEA"><p>a number which identifies the screen on which the application is displayed (if the phone has multiple screens). </p> </li> <li id="GUID-9E7AAF73-890E-5BF6-83DC-A8B11B19EE1E"><p>the MIME types supported by the application, and the priority of support for each, </p> </li> <li id="GUID-88039BB3-D3B5-5CFC-8389-1683BB6C267F"><p>a list of files owned by the application, </p> </li> <li id="GUID-2C12A4CC-4B76-5787-98F1-DD7415A27364"><p>a flag that identifies non-standard types of application, </p> </li> <li id="GUID-AA15C72C-F69D-5642-9C08-5E92FC7A0380"><p>for server applications only, a list of the services provided. </p> </li> </ul> <p>All of these properties are defined using an <codeph>APP_REGISTRATION_INFO</codeph> resource struct. See its declaration in <filepath>AppInfo.rh</filepath> for the default values. For more information about these properties, see <xref href="GUID-A6116E8B-9C4A-5B9E-AA8A-BE031408AA2F.dita">Defining application icons, captions and properties</xref>. </p> <p>Most applications also need to define localisable information, for instance non-default captions and icons and possibly a group name (described above). The registration file specifies its location. This can be done in one of two ways: </p> <ul><li id="GUID-7E5B8B94-5889-57F1-9620-B28DD7CEA092"><p>as the name and path (excluding drive letter and extension) of a <xref href="GUID-3F880EFC-E891-5C71-8360-1BBB54367AFA.dita">localisable icon/caption definition file</xref>, </p> </li> <li id="GUID-CEFEEBC7-B20E-560E-947A-D7D49DB36AF8"><p>as the ID of a <codeph>LOCALISABLE_APP_INFO</codeph> resource struct defined in the application’s UI resource file. In this case, the name and path of the application’s UI resource file (excluding drive letter and extension) must also be provided. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e215643_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e219380_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB"><title>Audio Input Streaming Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to use Audio Input Streaming. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to open, read and then close an audio input stream. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita">Audio Input Streaming Overview</xref> provides an introduction to Audio Input Streaming. </p> <p><b>Introduction</b> </p> <p>The audio input stream interface class, <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref>, enables MMF client applications to: </p> <ul><li id="GUID-577E976A-11CC-5054-ABDE-522A30B5FDCF"><p>stream audio data from the low level audio controller (which has collected it from a hardware device, such as a microphone) to specified buffers (record audio). </p> </li> <li id="GUID-71E21858-E184-5B07-AE02-EFBE8F823B6E"><p>specify the priority of the audio stream relative to other clients trying to use the same audio hardware </p> </li> <li id="GUID-BA394ADC-BC3F-5896-BAD0-EB24759DBD36"><p>set the sample rate and the number of channels to use for recording. </p> </li> <li id="GUID-1CEAC638-A49F-5A21-91FC-90B6B56522EA"><p>change the gain and channel balance of the input stream. </p> </li> </ul> <p>The low level audio controller stores the audio data in buffers. <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> reads these buffers incrementally and does not have to wait until capture is complete. </p> </section> <section><title>Using Audio Input Streaming </title> <p>Typically, using an audio input stream involves the following steps as shown in the sequence diagram below: </p> <fig id="GUID-FC960A5D-EDE5-5245-A736-6A6C00A0AC33"><image href="GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e315020_href.png" placement="inline"/></fig> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-1E1A247E-3740-5CAB-AEB7-171F455EE429"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-196AFBAE-8264-5DE2-994D-F2F06CF5CF3A"> Constructing an audio input stream</xref>  </p> </li> <li id="GUID-2744A8AE-A82C-5DAC-8C12-87D9B5ADCA6F"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-51B28404-61E7-54E8-9F4E-730315308EA2">Opening an audio input stream</xref>  </p> </li> <li id="GUID-98480431-5F02-57D0-9564-7F0FFF2782C8"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-4EAC65E0-E108-5BAA-B338-5B19B82D5057"> Getting and setting the stream properties</xref>  </p> </li> <li id="GUID-C03B920D-396F-5A44-9A76-77709CE45D2B"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-BD91C4E9-9BBA-5442-A72E-01B42160DBDA"> Reading an audio input stream</xref>  </p> </li> <li id="GUID-91F3BEEE-52D7-504C-B74D-5C2FB8D59004"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-5811A2A0-5793-5FBB-B01A-AD94590955A8">Stopping an audio input stream</xref>  </p> </li> </ul> <p id="GUID-196AFBAE-8264-5DE2-994D-F2F06CF5CF3A"><b>Basic Procedure to Construct an Audio Input Stream</b> </p> <p>The high level step to construct an audio input stream is shown here: </p> <ul><li id="GUID-DDD98263-FD3A-5057-8E35-72D237807343"><p>The client application creates an audio input stream object using the static function <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita#GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8/GUID-D534A585-D2B7-3906-AD82-E14A5FC1D501"><apiname>CMdaAudioInputStream::NewL()</apiname></xref>. The input stream class provides two versions of the constructor: one with the default priority and preferences, and another with specified priority and preferences. The client application must also implement the observer class <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita"><apiname>MMdaAudioInputStreamCallback</apiname></xref> to notify it about audio input streaming progress. </p> <p>The following code constructs an audio input stream: </p> <codeblock id="GUID-0749EB33-33FA-5B58-856B-99F96AB9E3A2" xml:space="preserve">CMdaAudioInputStream* aInputStream;
-aInputStream = CMdaAudioInputStream::NewL(aCallback, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);</codeblock> <p>where, <codeph>aCallback</codeph> is an <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita"><apiname>MMdaAudioInputStreamCallback</apiname></xref> object. </p> </li> </ul> <p id="GUID-51B28404-61E7-54E8-9F4E-730315308EA2"><b>Basic Procedure to Open an Audio Input Stream</b> </p> <p>The high level steps to open an audio input stream are shown here: </p> <ol id="GUID-67E0F7C7-E2E3-5882-A21F-254CB2EEBDA3"><li id="GUID-B3AE7481-9750-5352-B10B-D51D1A220F97"><p>To open an input stream, use the <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref> member function, which provides a pointer to the <xref href="GUID-06892E22-2EAC-305A-9D3A-F24E7F903427.dita"><apiname>TMdaPackage</apiname></xref> object with the required audio settings. You can also open the stream without the audio settings. For example: </p> <codeblock id="GUID-96065C5F-54F6-59D7-B6F1-BDE71EF46303" xml:space="preserve">aInputStream-&gt;Open(NULL);</codeblock> </li> <li id="GUID-8D443EF2-2FD1-5DBD-BEB3-21C5B7855978"><p>Once the stream is open, a <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-1F9A4EAF-EE58-3FA4-8707-D8C5EDFC0664"><apiname>MMdaAudioInputStreamCallback::MaiscOpenComplete()</apiname></xref> is issued to indicate that the stream is ready for use. </p> <codeblock id="GUID-20F93B48-6662-59F1-A61B-374565A2FCB2" xml:space="preserve">void CIOStreamAudio::MaiscOpenComplete(TInt aError)
-    {
-    ASSERT(iState==EStateOpeningInput);
-    if (aError!=KErrNone)
-        {
-        Complete(aError);
-        }
-    else
-        {
-        iMainBuffer.Zero();
-        iState = EStateReading;
-        ReadNextBlock(KNullDesC8); // kick off a new read - KNullDesC8 for first buffer
-        }
-    }</codeblock> </li> </ol> <p id="GUID-4EAC65E0-E108-5BAA-B338-5B19B82D5057"><b>Basic Procedure to Get and Set Stream Properties </b> </p> <p>The high level steps to get and set stream properties are shown here: </p> <ol id="GUID-98A49133-59B7-5681-9EC0-C19B1D71E9DD"><li id="GUID-DD84E50F-B44A-5ADC-ADF5-5DDE561D9AFD"><p>To set the sampling rate and number of audio channels, use the <xref href="GUID-38034819-8999-3EBE-9833-479D96D5DAB6.dita"><apiname>SetAudioPropertiesL()</apiname></xref> member function. You can do this only if the stream is open and if data is not being streamed. Values must be specified as enum values. For example, <xref href="GUID-CF54F882-E290-3C68-9352-79C6B7303FDF.dita#GUID-CF54F882-E290-3C68-9352-79C6B7303FDF/GUID-681C1220-0CDD-34BF-848F-9DC82CB001DB"><apiname>TMdaAudioDataSettings::ESampleRate8000Hz</apiname></xref> and not <codeph>8000</codeph> (Hz). The following code sets the sampling rate to 8000Hz and audio channel to mono: </p> <codeblock id="GUID-EBC071A0-A461-5000-80E5-D3579E690D18" xml:space="preserve">aInputStream-&gt;SetAudioPropertiesL(TMdaAudioDataSettings::ESampleRate8000Hz,TMdaAudioDataSettings::EChannelsMono));</codeblock> </li> <li id="GUID-EE508886-465A-581D-9FAF-76B5C522433F"><p>The <xref href="GUID-F4CC52C5-414A-3CA9-8472-A5C5298AC412.dita"><apiname>Gain()</apiname></xref> and <xref href="GUID-C2B76645-A50F-3DFF-943B-4F3D5A33ED31.dita"><apiname>GetBalanceL()</apiname></xref> member functions let you determine the current gain and balance settings. </p> </li> <li id="GUID-AEABCD16-7828-5DA1-B234-58BF44FB9C0E"><p>The <xref href="GUID-54851704-F44B-3C2C-B3C9-2B4537AD1472.dita"><apiname>SetGain()</apiname></xref> and <xref href="GUID-D1856981-6A17-3CD9-80B5-65781A803BA4.dita"><apiname>SetBalanceL()</apiname></xref> member functions let you set the gain and balance respectively. You can use them while the stream is open, with the new settings taking immediate effect. </p> </li> </ol> <p id="GUID-BD91C4E9-9BBA-5442-A72E-01B42160DBDA"><b>Basic Procedure to Read an Audio Input Stream</b> </p> <p>The high level steps to read an audio input stream are shown here: </p> <ol id="GUID-D78033B0-4918-51B8-8DC0-8B55F0172AC3"><li id="GUID-47C7BE03-0EAA-5C19-8FBB-7723B2AA9DEC"><p>To record the audio stream, use the <xref href="GUID-D7A48ABE-33F7-333E-8F57-0E673DA4B6F5.dita"><apiname>ReadL()</apiname></xref> member function, specifying the buffer to use. The first <xref href="GUID-D7A48ABE-33F7-333E-8F57-0E673DA4B6F5.dita"><apiname>ReadL()</apiname></xref> after a successful <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref>, starts audio recording. Once the buffer is successfully recorded, a pointer to it is returned by <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-FB4EC66A-4B6D-331B-B5A1-4605084343B0"><apiname>MMdaAudioInputStreamCallback::MaiscBufferCopied()</apiname></xref> callback. </p> <codeblock id="GUID-362E4E39-294E-57B9-912D-D0EB2C7B0B9B" xml:space="preserve">void CIOStreamAudio::MaiscBufferCopied(TInt aError, const TDesC8&amp; aBuffer)
-    {
-    ASSERT(iState==EStateReading);
-    if (aError!=KErrNone)
-        {
-        if (aError!=KErrAbort) // aborts happen on Stop as buffers are recovered, need to ignore
-            {
-            Complete(aError);
-            }
-        }
-    else
-        {
-        ReadNextBlock(aBuffer);
-        }
-    }</codeblock> </li> <li id="GUID-CD08610E-0AFE-5730-BC3A-8F112FF54EE5"><p>The following code reads the next audio block into the buffer in an array of descriptors: </p> <codeblock id="GUID-7E4D79D2-34DC-5691-865A-6C472B766BF8" xml:space="preserve">void CIOStreamAudio::ReadNextBlock(const TDesC8&amp; aBuffer)
-    {
-    ASSERT(iState==EStateReading);
-    // buffer will be tail of iMainBuffer. Shift latter's length and get the next bit
-    TInt lengthRecorded = iMainBuffer.Length()+aBuffer.Length();
-    iMainBuffer.SetLength(lengthRecorded);
-    iBufferPtr.Set(const_cast&lt;TUint8*&gt;(iMainBuffer.Ptr())+lengthRecorded, 0, iMainBuffer.MaxLength()-lengthRecorded);
-    TRAPD(error, iInputStream-&gt;ReadL(iBufferPtr));
-    if (error!=KErrNone)
-        {
-        Complete(error);
-        }
-    }</codeblock> </li> </ol> <p id="GUID-5811A2A0-5793-5FBB-B01A-AD94590955A8"><b>Basic Procedure to Stop an Audio Input Stream</b> </p> <p>The high level steps to stop an audio input stream are shown here: </p> <ul><li id="GUID-43677A50-198B-59D5-8F58-39C96CFAC5A4"><p>To stop recording the audio stream, use the <xref href="GUID-7CBDCF0D-1D11-34D1-BF5C-1E5B50DA75B5.dita"><apiname>Stop()</apiname></xref> member function. Two callbacks are issued after a <codeph>Stop()</codeph>. </p> <ol id="GUID-591B7B4E-899D-5D28-B33D-3EFC2DE1B4D6"><li id="GUID-EE9F9106-E0E8-5C20-8D8E-CB2A9FCCD0C4"><p>An <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-FB4EC66A-4B6D-331B-B5A1-4605084343B0"><apiname>MMdaAudioInputStreamCallback::MaiscBufferCopied()</apiname></xref> pointing to a buffer that contains the last of the recorded audio data (and an <codeph>aError</codeph> value of <codeph>KErrAbort</codeph>). </p> </li> <li id="GUID-E3EBC7BE-C12C-527C-BF33-3EF787D8F9F4"><p>An <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-23F823E5-46A4-34D1-A7DD-DF6B18C37445"><apiname>MMdaAudioInputStreamCallback::MaiscRecordComplete()</apiname></xref>, indicating successful closure of the audio stream. </p> <codeblock id="GUID-A9CE4580-E981-56E8-B98B-05C84E3C746E" xml:space="preserve">void CIOStreamAudio::MaiscRecordComplete(TInt aError)
-    {
-    ASSERT(iState==EStateReading &amp;&amp; aError!=KErrNone);
-    Complete(aError);
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB"><title>Audio Input Streaming Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to use Audio Input Streaming. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to open, read and then close an audio input stream. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita">Audio Input Streaming Overview</xref> provides an introduction to Audio Input Streaming. </p> <p><b>Introduction</b> </p> <p>The audio input stream interface class, <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref>, enables MMF client applications to: </p> <ul><li id="GUID-577E976A-11CC-5054-ABDE-522A30B5FDCF"><p>stream audio data from the low level audio controller (which has collected it from a hardware device, such as a microphone) to specified buffers (record audio). </p> </li> <li id="GUID-71E21858-E184-5B07-AE02-EFBE8F823B6E"><p>specify the priority of the audio stream relative to other clients trying to use the same audio hardware </p> </li> <li id="GUID-BA394ADC-BC3F-5896-BAD0-EB24759DBD36"><p>set the sample rate and the number of channels to use for recording. </p> </li> <li id="GUID-1CEAC638-A49F-5A21-91FC-90B6B56522EA"><p>change the gain and channel balance of the input stream. </p> </li> </ul> <p>The low level audio controller stores the audio data in buffers. <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> reads these buffers incrementally and does not have to wait until capture is complete. </p> </section> <section><title>Using Audio Input Streaming </title> <p>Typically, using an audio input stream involves the following steps as shown in the sequence diagram below: </p> <fig id="GUID-FC960A5D-EDE5-5245-A736-6A6C00A0AC33"><image href="GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e308626_href.png" placement="inline"/></fig> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-1E1A247E-3740-5CAB-AEB7-171F455EE429"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-196AFBAE-8264-5DE2-994D-F2F06CF5CF3A"> Constructing an audio input stream</xref>  </p> </li> <li id="GUID-2744A8AE-A82C-5DAC-8C12-87D9B5ADCA6F"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-51B28404-61E7-54E8-9F4E-730315308EA2">Opening an audio input stream</xref>  </p> </li> <li id="GUID-98480431-5F02-57D0-9564-7F0FFF2782C8"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-4EAC65E0-E108-5BAA-B338-5B19B82D5057"> Getting and setting the stream properties</xref>  </p> </li> <li id="GUID-C03B920D-396F-5A44-9A76-77709CE45D2B"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-BD91C4E9-9BBA-5442-A72E-01B42160DBDA"> Reading an audio input stream</xref>  </p> </li> <li id="GUID-91F3BEEE-52D7-504C-B74D-5C2FB8D59004"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita#GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB/GUID-5811A2A0-5793-5FBB-B01A-AD94590955A8">Stopping an audio input stream</xref>  </p> </li> </ul> <p id="GUID-196AFBAE-8264-5DE2-994D-F2F06CF5CF3A"><b>Basic Procedure to Construct an Audio Input Stream</b> </p> <p>The high level step to construct an audio input stream is shown here: </p> <ul><li id="GUID-DDD98263-FD3A-5057-8E35-72D237807343"><p>The client application creates an audio input stream object using the static function <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita#GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8/GUID-D534A585-D2B7-3906-AD82-E14A5FC1D501"><apiname>CMdaAudioInputStream::NewL()</apiname></xref>. The input stream class provides two versions of the constructor: one with the default priority and preferences, and another with specified priority and preferences. The client application must also implement the observer class <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita"><apiname>MMdaAudioInputStreamCallback</apiname></xref> to notify it about audio input streaming progress. </p> <p>The following code constructs an audio input stream: </p> <codeblock id="GUID-0749EB33-33FA-5B58-856B-99F96AB9E3A2" xml:space="preserve">CMdaAudioInputStream* aInputStream;
+aInputStream = CMdaAudioInputStream::NewL(aCallback, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);</codeblock> <p>where, <codeph>aCallback</codeph> is an <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita"><apiname>MMdaAudioInputStreamCallback</apiname></xref> object. </p> </li> </ul> <p id="GUID-51B28404-61E7-54E8-9F4E-730315308EA2"><b>Basic Procedure to Open an Audio Input Stream</b> </p> <p>The high level steps to open an audio input stream are shown here: </p> <ol id="GUID-67E0F7C7-E2E3-5882-A21F-254CB2EEBDA3"><li id="GUID-B3AE7481-9750-5352-B10B-D51D1A220F97"><p>To open an input stream, use the <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref> member function, which provides a pointer to the <xref href="GUID-06892E22-2EAC-305A-9D3A-F24E7F903427.dita"><apiname>TMdaPackage</apiname></xref> object with the required audio settings. You can also open the stream without the audio settings. For example: </p> <codeblock id="GUID-96065C5F-54F6-59D7-B6F1-BDE71EF46303" xml:space="preserve">aInputStream-&gt;Open(NULL);</codeblock> </li> <li id="GUID-8D443EF2-2FD1-5DBD-BEB3-21C5B7855978"><p>Once the stream is open, a <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-1F9A4EAF-EE58-3FA4-8707-D8C5EDFC0664"><apiname>MMdaAudioInputStreamCallback::MaiscOpenComplete()</apiname></xref> is issued to indicate that the stream is ready for use. </p> <codeblock id="GUID-20F93B48-6662-59F1-A61B-374565A2FCB2" xml:space="preserve">void CIOStreamAudio::MaiscOpenComplete(TInt aError)
+    {
+    ASSERT(iState==EStateOpeningInput);
+    if (aError!=KErrNone)
+        {
+        Complete(aError);
+        }
+    else
+        {
+        iMainBuffer.Zero();
+        iState = EStateReading;
+        ReadNextBlock(KNullDesC8); // kick off a new read - KNullDesC8 for first buffer
+        }
+    }</codeblock> </li> </ol> <p id="GUID-4EAC65E0-E108-5BAA-B338-5B19B82D5057"><b>Basic Procedure to Get and Set Stream Properties </b> </p> <p>The high level steps to get and set stream properties are shown here: </p> <ol id="GUID-98A49133-59B7-5681-9EC0-C19B1D71E9DD"><li id="GUID-DD84E50F-B44A-5ADC-ADF5-5DDE561D9AFD"><p>To set the sampling rate and number of audio channels, use the <xref href="GUID-38034819-8999-3EBE-9833-479D96D5DAB6.dita"><apiname>SetAudioPropertiesL()</apiname></xref> member function. You can do this only if the stream is open and if data is not being streamed. Values must be specified as enum values. For example, <xref href="GUID-CF54F882-E290-3C68-9352-79C6B7303FDF.dita#GUID-CF54F882-E290-3C68-9352-79C6B7303FDF/GUID-681C1220-0CDD-34BF-848F-9DC82CB001DB"><apiname>TMdaAudioDataSettings::ESampleRate8000Hz</apiname></xref> and not <codeph>8000</codeph> (Hz). The following code sets the sampling rate to 8000Hz and audio channel to mono: </p> <codeblock id="GUID-EBC071A0-A461-5000-80E5-D3579E690D18" xml:space="preserve">aInputStream-&gt;SetAudioPropertiesL(TMdaAudioDataSettings::ESampleRate8000Hz,TMdaAudioDataSettings::EChannelsMono));</codeblock> </li> <li id="GUID-EE508886-465A-581D-9FAF-76B5C522433F"><p>The <xref href="GUID-F4CC52C5-414A-3CA9-8472-A5C5298AC412.dita"><apiname>Gain()</apiname></xref> and <xref href="GUID-C2B76645-A50F-3DFF-943B-4F3D5A33ED31.dita"><apiname>GetBalanceL()</apiname></xref> member functions let you determine the current gain and balance settings. </p> </li> <li id="GUID-AEABCD16-7828-5DA1-B234-58BF44FB9C0E"><p>The <xref href="GUID-54851704-F44B-3C2C-B3C9-2B4537AD1472.dita"><apiname>SetGain()</apiname></xref> and <xref href="GUID-D1856981-6A17-3CD9-80B5-65781A803BA4.dita"><apiname>SetBalanceL()</apiname></xref> member functions let you set the gain and balance respectively. You can use them while the stream is open, with the new settings taking immediate effect. </p> </li> </ol> <p id="GUID-BD91C4E9-9BBA-5442-A72E-01B42160DBDA"><b>Basic Procedure to Read an Audio Input Stream</b> </p> <p>The high level steps to read an audio input stream are shown here: </p> <ol id="GUID-D78033B0-4918-51B8-8DC0-8B55F0172AC3"><li id="GUID-47C7BE03-0EAA-5C19-8FBB-7723B2AA9DEC"><p>To record the audio stream, use the <xref href="GUID-D7A48ABE-33F7-333E-8F57-0E673DA4B6F5.dita"><apiname>ReadL()</apiname></xref> member function, specifying the buffer to use. The first <xref href="GUID-D7A48ABE-33F7-333E-8F57-0E673DA4B6F5.dita"><apiname>ReadL()</apiname></xref> after a successful <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref>, starts audio recording. Once the buffer is successfully recorded, a pointer to it is returned by <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-FB4EC66A-4B6D-331B-B5A1-4605084343B0"><apiname>MMdaAudioInputStreamCallback::MaiscBufferCopied()</apiname></xref> callback. </p> <codeblock id="GUID-362E4E39-294E-57B9-912D-D0EB2C7B0B9B" xml:space="preserve">void CIOStreamAudio::MaiscBufferCopied(TInt aError, const TDesC8&amp; aBuffer)
+    {
+    ASSERT(iState==EStateReading);
+    if (aError!=KErrNone)
+        {
+        if (aError!=KErrAbort) // aborts happen on Stop as buffers are recovered, need to ignore
+            {
+            Complete(aError);
+            }
+        }
+    else
+        {
+        ReadNextBlock(aBuffer);
+        }
+    }</codeblock> </li> <li id="GUID-CD08610E-0AFE-5730-BC3A-8F112FF54EE5"><p>The following code reads the next audio block into the buffer in an array of descriptors: </p> <codeblock id="GUID-7E4D79D2-34DC-5691-865A-6C472B766BF8" xml:space="preserve">void CIOStreamAudio::ReadNextBlock(const TDesC8&amp; aBuffer)
+    {
+    ASSERT(iState==EStateReading);
+    // buffer will be tail of iMainBuffer. Shift latter's length and get the next bit
+    TInt lengthRecorded = iMainBuffer.Length()+aBuffer.Length();
+    iMainBuffer.SetLength(lengthRecorded);
+    iBufferPtr.Set(const_cast&lt;TUint8*&gt;(iMainBuffer.Ptr())+lengthRecorded, 0, iMainBuffer.MaxLength()-lengthRecorded);
+    TRAPD(error, iInputStream-&gt;ReadL(iBufferPtr));
+    if (error!=KErrNone)
+        {
+        Complete(error);
+        }
+    }</codeblock> </li> </ol> <p id="GUID-5811A2A0-5793-5FBB-B01A-AD94590955A8"><b>Basic Procedure to Stop an Audio Input Stream</b> </p> <p>The high level steps to stop an audio input stream are shown here: </p> <ul><li id="GUID-43677A50-198B-59D5-8F58-39C96CFAC5A4"><p>To stop recording the audio stream, use the <xref href="GUID-7CBDCF0D-1D11-34D1-BF5C-1E5B50DA75B5.dita"><apiname>Stop()</apiname></xref> member function. Two callbacks are issued after a <codeph>Stop()</codeph>. </p> <ol id="GUID-591B7B4E-899D-5D28-B33D-3EFC2DE1B4D6"><li id="GUID-EE9F9106-E0E8-5C20-8D8E-CB2A9FCCD0C4"><p>An <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-FB4EC66A-4B6D-331B-B5A1-4605084343B0"><apiname>MMdaAudioInputStreamCallback::MaiscBufferCopied()</apiname></xref> pointing to a buffer that contains the last of the recorded audio data (and an <codeph>aError</codeph> value of <codeph>KErrAbort</codeph>). </p> </li> <li id="GUID-E3EBC7BE-C12C-527C-BF33-3EF787D8F9F4"><p>An <xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita#GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0/GUID-23F823E5-46A4-34D1-A7DD-DF6B18C37445"><apiname>MMdaAudioInputStreamCallback::MaiscRecordComplete()</apiname></xref>, indicating successful closure of the audio stream. </p> <codeblock id="GUID-A9CE4580-E981-56E8-B98B-05C84E3C746E" xml:space="preserve">void CIOStreamAudio::MaiscRecordComplete(TInt aError)
+    {
+    ASSERT(iState==EStateReading &amp;&amp; aError!=KErrNone);
+    Complete(aError);
     }</codeblock> </li> </ol> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita">Audio Output Streaming Tutorial</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6" xml:lang="en"><title>Uikon
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-CB78AFE5-5471-49D0-9740-E3FDA18ED6E9"><title>Purpose</title> <p>Provides a framework for applications.
-The framework is fundamental to all GUI applications.</p> </section>
-<section id="GUID-74F7D413-3912-477E-A89E-D6BD5F395F9D"><title>Architectural relationships</title> <p>Uikon provides a UI
-library layer. It was designed to allow further higher level UI libraries
-to be added that can include controls that derive from the ones provided by
-Uikon. Avkon provides these higher level UI libraries in Symbian^3 and historically
-in the S60 platform. Application developers can use the Uikon APIs directly,
-though they should check that there is not a more appropriate Avkon API. </p> <p>The
-Uikon application framework extends two lower frameworks:</p> <ul>
-<li id="GUID-6941969D-7625-5376-A5D6-5E5B0378D0E7"><p>the Application Architecture
-Framework: handles application start-up and accessing the application data
-(its <i>document</i>). </p> </li>
-<li id="GUID-F1AA0F97-5205-537C-994A-6A3FA811AA72"><p>UI Control Framework:
-provides the framework for drawing and handling input to screen controls</p> </li>
-</ul> <p> Uikon ties these two frameworks together to provide the framework
-for the standard application design. </p> <p>Uikon's framework classes are
-extended in turn by:</p> <ul>
-<li id="GUID-EF33F5C8-6EA8-5D8A-AE53-A35C692E291A"><p>applications, to implement
-appropriate behaviour for their type of data, and for their types of command</p> </li>
-<li id="GUID-66353589-7D6B-548E-81A0-3A3515CF8BD8"><p>possibly by UI variant-specific
-libraries, to add UI variant-specific behaviour to the application framework</p> </li>
-</ul> </section>
-<section id="GUID-3B1FA50E-E199-46F3-B8A0-9370BECDE8E2"><title>Description</title> <p>The API has five key concepts: application
-(<codeph>CEikApplication</codeph>), document (<codeph>CEikDocument</codeph>),
-app UI (<codeph>CEikAppUi</codeph>), UI Environment (<codeph>CEikonEnv</codeph>),
-and utilities (<codeph>EikFileUtils</codeph>).</p> <p><b>Application</b> </p> <p>The application class defines properties of the application, such as UID
-and caption, and creates a new document.</p> <p>The application base class
-is provided by <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref>.</p> <p><b>Document</b> </p> <p>The document class represents the data model for
-the application. In file-based applications, it stores and restores the application's
-data. It handles requests to edit a document by creating an app UI.</p> <p>The
-document base class is provided by <xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref>.</p> <p><b>App UI</b> </p> <p>The app UI is the central user interface class. It
-creates and owns controls to display the application data, and centralises
-handling of command input from standard controls such as menus and toolbars.</p> <p>The
-app UI base class is provided by <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>, which can be
-customised by using the resource structure <xref href="GUID-77DF8122-9267-36A6-B5C5-AC989828F2EA.dita"><apiname>EIK_APP_INFO</apiname></xref>.</p> <p><b>UI Environment</b> </p> <p>The UI Environment provides a large number
-of assorted UI functionality, particularly simple access to information and
-query dialogs, and access to standard system UI resources (bitmaps and fonts).
-Every object in a GUI application can access a UI Environment (through <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita#GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E/GUID-3587E866-F434-30BA-9CFC-0D40EF8D47FE"><apiname>CEikonEnv::Static()</apiname></xref>),
-as a pointer to it is stored in thread-local storage.</p> <p>The UI Environment
-is provided by <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita"><apiname>CEikonEnv</apiname></xref>.</p> <p><b>Utilities</b> </p> <p>Utility classes provide easy access for applications
-to frequently-used functionality. Notable are <xref href="GUID-EF4568CF-947B-3931-B860-2A63A6B7C275.dita"><apiname>EikFileUtils</apiname></xref> for
-file access, and <xref href="GUID-C886511D-1922-3703-843D-1936018788AC.dita"><apiname>EikResourceUtils</apiname></xref> for resource access.</p> </section>
-<section id="GUID-E0A48D84-08C6-44BC-B4A0-E8DF472DCB3B"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI
-Control Framework Overview</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6" xml:lang="en"><title>Uikon
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-CB78AFE5-5471-49D0-9740-E3FDA18ED6E9"><title>Purpose</title> <p>Provides a framework for applications.
+The framework is fundamental to all GUI applications.</p> </section>
+<section id="GUID-74F7D413-3912-477E-A89E-D6BD5F395F9D"><title>Architectural relationships</title> <p>Uikon provides a UI
+library layer. It was designed to allow further higher level UI libraries
+to be added that can include controls that derive from the ones provided by
+Uikon. Avkon provides these higher level UI libraries in Symbian^3 and historically
+in the S60 platform. Application developers can use the Uikon APIs directly,
+though they should check that there is not a more appropriate Avkon API. </p> <p>The
+Uikon application framework extends two lower frameworks:</p> <ul>
+<li id="GUID-6941969D-7625-5376-A5D6-5E5B0378D0E7"><p>the Application Architecture
+Framework: handles application start-up and accessing the application data
+(its <i>document</i>). </p> </li>
+<li id="GUID-F1AA0F97-5205-537C-994A-6A3FA811AA72"><p>UI Control Framework:
+provides the framework for drawing and handling input to screen controls</p> </li>
+</ul> <p> Uikon ties these two frameworks together to provide the framework
+for the standard application design. </p> <p>Uikon's framework classes are
+extended in turn by:</p> <ul>
+<li id="GUID-EF33F5C8-6EA8-5D8A-AE53-A35C692E291A"><p>applications, to implement
+appropriate behaviour for their type of data, and for their types of command</p> </li>
+<li id="GUID-66353589-7D6B-548E-81A0-3A3515CF8BD8"><p>possibly by UI variant-specific
+libraries, to add UI variant-specific behaviour to the application framework</p> </li>
+</ul> </section>
+<section id="GUID-3B1FA50E-E199-46F3-B8A0-9370BECDE8E2"><title>Description</title> <p>The API has five key concepts: application
+(<codeph>CEikApplication</codeph>), document (<codeph>CEikDocument</codeph>),
+app UI (<codeph>CEikAppUi</codeph>), UI Environment (<codeph>CEikonEnv</codeph>),
+and utilities (<codeph>EikFileUtils</codeph>).</p> <p><b>Application</b> </p> <p>The application class defines properties of the application, such as UID
+and caption, and creates a new document.</p> <p>The application base class
+is provided by <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref>.</p> <p><b>Document</b> </p> <p>The document class represents the data model for
+the application. In file-based applications, it stores and restores the application's
+data. It handles requests to edit a document by creating an app UI.</p> <p>The
+document base class is provided by <xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref>.</p> <p><b>App UI</b> </p> <p>The app UI is the central user interface class. It
+creates and owns controls to display the application data, and centralises
+handling of command input from standard controls such as menus and toolbars.</p> <p>The
+app UI base class is provided by <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>, which can be
+customised by using the resource structure <xref href="GUID-77DF8122-9267-36A6-B5C5-AC989828F2EA.dita"><apiname>EIK_APP_INFO</apiname></xref>.</p> <p><b>UI Environment</b> </p> <p>The UI Environment provides a large number
+of assorted UI functionality, particularly simple access to information and
+query dialogs, and access to standard system UI resources (bitmaps and fonts).
+Every object in a GUI application can access a UI Environment (through <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita#GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E/GUID-3587E866-F434-30BA-9CFC-0D40EF8D47FE"><apiname>CEikonEnv::Static()</apiname></xref>),
+as a pointer to it is stored in thread-local storage.</p> <p>The UI Environment
+is provided by <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita"><apiname>CEikonEnv</apiname></xref>.</p> <p><b>Utilities</b> </p> <p>Utility classes provide easy access for applications
+to frequently-used functionality. Notable are <xref href="GUID-EF4568CF-947B-3931-B860-2A63A6B7C275.dita"><apiname>EikFileUtils</apiname></xref> for
+file access, and <xref href="GUID-C886511D-1922-3703-843D-1936018788AC.dita"><apiname>EikResourceUtils</apiname></xref> for resource access.</p> </section>
+<section id="GUID-E0A48D84-08C6-44BC-B4A0-E8DF472DCB3B"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI
+Control Framework Overview</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9" xml:lang="en"><title>XML
-DOM Engine Node Reference</title><shortdesc>This topic lists the node classes of the XML DOM Engine. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section><p>The following diagram describes all the node classes of the XML
-DOM Engine. Refer to the links below for more information about each class. </p> <fig id="GUID-C6E93943-CF46-5583-93DF-BDE4CCE3BC7C">
-<title>           XML DOM Engine classes          </title>
-<image href="GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e432104_href.png" scale="75" placement="inline"/>
-</fig> <ul>
-<li id="GUID-22EF7178-178A-52BA-A51E-1B1140DB0668"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument</apiname></xref>  </p> </li>
-<li id="GUID-C5634D5A-28E5-50AE-993F-CC0210D1E376"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement</apiname></xref>  </p> </li>
-<li id="GUID-BD4FE99D-913D-5FAA-832A-8B437BD19BE2"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngAttr</apiname></xref>  </p> </li>
-<li id="GUID-3A448CC7-D344-58E8-A26E-A863F5E20C6E"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TTextXmlEngNode</apiname></xref>  </p> </li>
-<li id="GUID-E7F70FFA-89B6-5D4B-A680-8809B1E79A80"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngComment</apiname></xref>  </p> </li>
-<li id="GUID-7AD06387-6368-5ACC-81CA-2ACA9ECCF735"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngEntityReference</apiname></xref>  </p> </li>
-<li id="GUID-713C0FF3-1B8D-5E08-B501-754F9D54BF10"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngCharacterData</apiname></xref>  </p> </li>
-<li id="GUID-2E0550F9-0A95-570D-8031-97CA827D3E73"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngProcessingInstruction</apiname></xref>  </p> </li>
-<li id="GUID-01F8114C-3F9C-5EB4-9E8C-F0409A16CE2D"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngCDATASection</apiname></xref>  </p> </li>
-<li id="GUID-D9183E10-DDB6-555E-B342-FF3C5D279553"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngDocumentFragment</apiname></xref>  </p> </li>
-<li id="GUID-9C07431D-FA83-5982-A1AD-E0C8BA597B42"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngNamespace</apiname></xref>  </p> </li>
-<li id="GUID-487D05BE-6619-58A9-8B74-E5AE1B324D47"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngNodeList</apiname></xref> <codeph>&lt;T&gt;</codeph>  </p> </li>
-<li id="GUID-7898E31B-42F3-506F-B9CE-0E1158B29A13"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDOMImplementation</apiname></xref>  </p> </li>
-<li id="GUID-40A5F223-4EF9-50CD-B47E-F45B03F0BBF6"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngDataContainer</apiname></xref>  </p> </li>
-<li id="GUID-87172A0F-97D2-568F-88A4-52B8D6CCCCC1"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngFileContainer</apiname></xref>  </p> </li>
-<li id="GUID-0D4E6124-DA51-511F-85D6-06E43889DA0B"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngChunkContainer</apiname></xref>  </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita"><linktext>XML DOM Engine
-Overview</linktext></link>
-<link href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita"><linktext>Implementation
-of W3C Types</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9" xml:lang="en"><title>XML
+DOM Engine Node Reference</title><shortdesc>This topic lists the node classes of the XML DOM Engine. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section><p>The following diagram describes all the node classes of the XML
+DOM Engine. Refer to the links below for more information about each class. </p> <fig id="GUID-C6E93943-CF46-5583-93DF-BDE4CCE3BC7C">
+<title>           XML DOM Engine classes          </title>
+<image href="GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e431942_href.png" scale="75" placement="inline"/>
+</fig> <ul>
+<li id="GUID-22EF7178-178A-52BA-A51E-1B1140DB0668"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument</apiname></xref>  </p> </li>
+<li id="GUID-C5634D5A-28E5-50AE-993F-CC0210D1E376"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement</apiname></xref>  </p> </li>
+<li id="GUID-BD4FE99D-913D-5FAA-832A-8B437BD19BE2"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngAttr</apiname></xref>  </p> </li>
+<li id="GUID-3A448CC7-D344-58E8-A26E-A863F5E20C6E"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TTextXmlEngNode</apiname></xref>  </p> </li>
+<li id="GUID-E7F70FFA-89B6-5D4B-A680-8809B1E79A80"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngComment</apiname></xref>  </p> </li>
+<li id="GUID-7AD06387-6368-5ACC-81CA-2ACA9ECCF735"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngEntityReference</apiname></xref>  </p> </li>
+<li id="GUID-713C0FF3-1B8D-5E08-B501-754F9D54BF10"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngCharacterData</apiname></xref>  </p> </li>
+<li id="GUID-2E0550F9-0A95-570D-8031-97CA827D3E73"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngProcessingInstruction</apiname></xref>  </p> </li>
+<li id="GUID-01F8114C-3F9C-5EB4-9E8C-F0409A16CE2D"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngCDATASection</apiname></xref>  </p> </li>
+<li id="GUID-D9183E10-DDB6-555E-B342-FF3C5D279553"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngDocumentFragment</apiname></xref>  </p> </li>
+<li id="GUID-9C07431D-FA83-5982-A1AD-E0C8BA597B42"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngNamespace</apiname></xref>  </p> </li>
+<li id="GUID-487D05BE-6619-58A9-8B74-E5AE1B324D47"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngNodeList</apiname></xref> <codeph>&lt;T&gt;</codeph>  </p> </li>
+<li id="GUID-7898E31B-42F3-506F-B9CE-0E1158B29A13"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDOMImplementation</apiname></xref>  </p> </li>
+<li id="GUID-40A5F223-4EF9-50CD-B47E-F45B03F0BBF6"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngDataContainer</apiname></xref>  </p> </li>
+<li id="GUID-87172A0F-97D2-568F-88A4-52B8D6CCCCC1"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngFileContainer</apiname></xref>  </p> </li>
+<li id="GUID-0D4E6124-DA51-511F-85D6-06E43889DA0B"><p> <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngChunkContainer</apiname></xref>  </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita"><linktext>XML DOM Engine
+Overview</linktext></link>
+<link href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita"><linktext>Implementation
+of W3C Types</linktext></link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362" xml:lang="en"><title>Subsessions
-within a session</title><shortdesc>Describes subsessions within a session.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Once a client has established a session with a server, it can then establish
-a number of subsessions with that server. Each subsession represents an independent
-channel of communication within the current session. </p>
-<p>Subsessions are useful if a single client needs to establish many channels
-of communication with the server. This is because subsessions have a much
-lower overhead than a full session. The main cost of a subsession is slightly
-increased programming complexity on the server side. </p>
-<p>The main points are: </p>
-<ul>
-<li id="GUID-66581D72-861A-5F70-B3F3-348C31615EA5"><p>the client has an <xref href="GUID-1BBE1448-1DF8-33C4-BF9E-5A5F427AEE35.dita"><apiname>RSubSessionBase</apiname></xref> handle
-to the subsession </p> </li>
-<li id="GUID-7EEEB011-CB41-5E20-BF91-C6D01B4F71EE"><p>the server uses a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> derived
-class to represent the subsession. </p> </li>
-</ul>
-<p>As a subsession is always referenced by a handle on the client side, the
-corresponding subsession object on the server side must generate a handle. </p>
-<p>For ordinary sessions, the generation of handles is done by the server
-framework. </p>
-<p>For subsessions, server side code must be explicitly written to do this.
-The <codeph>CObject</codeph> class and its associated container (<codeph>CObjectCon</codeph>)
-and index (<codeph>CObjectIx</codeph>) classes provide the behaviour to achieve
-this. </p>
-<section id="GUID-4F58EC0B-5AC3-4961-B04F-2CE64185ECEF"><title>Server side requirements</title> <p>Each subsession is represented
-by an instance of a <codeph>CObject</codeph> derived class. </p> <p>Subsession
-objects must be held in an object container, an instance of <codeph>CObjectCon</codeph>.
-This means that the server 's <codeph>CServer2</codeph> derived class must
-construct and maintain a <codeph>CObjectCon</codeph> object. </p> <p>Object
-containers are constructed by and held in an object container index, an instance
-of a <codeph>CObjectConIx</codeph>. This means that the server 's <codeph>CServer2</codeph> derived
-class must construct and maintain a <codeph>CObjectConIx</codeph> object. </p> <p>A
-unique handle number for a subsession object is generated when the subsession
-object is added to an object index, an instance of a <codeph>CObjectIx</codeph>.
-This means that the server's <codeph>CServer2</codeph> derived class must
-construct and maintain a <codeph>CObjectIx</codeph> object. </p> <p>The handle
-number is a combination of a unique id assigned to the object's container
-and a number generated by the object index. </p> <fig id="GUID-14035881-8AD5-50B5-A285-5DD2D7E68FDA">
-<image href="GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e240942_href.png" placement="inline"/>
-<p>Subsession within a session</p>
-</fig> </section>
-<section id="GUID-93D80DDA-8E2E-462F-8A67-0982B456A8A6"><title>Note</title> <ul>
-<li id="GUID-49B41D98-027F-534F-86D7-3774CAC884F9"><p>Depending on the purpose
-of the server, more than one object container (a <codeph>CObjectCon</codeph>)
-and more than one object index (a <codeph>CObjectIx</codeph>) may be used.
-However, the server must have <i>one and only one</i> object container index
-(a <codeph>CObjectConIx</codeph>) from which all object containers are generated. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362" xml:lang="en"><title>Subsessions
+within a session</title><shortdesc>Describes subsessions within a session.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Once a client has established a session with a server, it can then establish
+a number of subsessions with that server. Each subsession represents an independent
+channel of communication within the current session. </p>
+<p>Subsessions are useful if a single client needs to establish many channels
+of communication with the server. This is because subsessions have a much
+lower overhead than a full session. The main cost of a subsession is slightly
+increased programming complexity on the server side. </p>
+<p>The main points are: </p>
+<ul>
+<li id="GUID-66581D72-861A-5F70-B3F3-348C31615EA5"><p>the client has an <xref href="GUID-1BBE1448-1DF8-33C4-BF9E-5A5F427AEE35.dita"><apiname>RSubSessionBase</apiname></xref> handle
+to the subsession </p> </li>
+<li id="GUID-7EEEB011-CB41-5E20-BF91-C6D01B4F71EE"><p>the server uses a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> derived
+class to represent the subsession. </p> </li>
+</ul>
+<p>As a subsession is always referenced by a handle on the client side, the
+corresponding subsession object on the server side must generate a handle. </p>
+<p>For ordinary sessions, the generation of handles is done by the server
+framework. </p>
+<p>For subsessions, server side code must be explicitly written to do this.
+The <codeph>CObject</codeph> class and its associated container (<codeph>CObjectCon</codeph>)
+and index (<codeph>CObjectIx</codeph>) classes provide the behaviour to achieve
+this. </p>
+<section id="GUID-4F58EC0B-5AC3-4961-B04F-2CE64185ECEF"><title>Server side requirements</title> <p>Each subsession is represented
+by an instance of a <codeph>CObject</codeph> derived class. </p> <p>Subsession
+objects must be held in an object container, an instance of <codeph>CObjectCon</codeph>.
+This means that the server 's <codeph>CServer2</codeph> derived class must
+construct and maintain a <codeph>CObjectCon</codeph> object. </p> <p>Object
+containers are constructed by and held in an object container index, an instance
+of a <codeph>CObjectConIx</codeph>. This means that the server 's <codeph>CServer2</codeph> derived
+class must construct and maintain a <codeph>CObjectConIx</codeph> object. </p> <p>A
+unique handle number for a subsession object is generated when the subsession
+object is added to an object index, an instance of a <codeph>CObjectIx</codeph>.
+This means that the server's <codeph>CServer2</codeph> derived class must
+construct and maintain a <codeph>CObjectIx</codeph> object. </p> <p>The handle
+number is a combination of a unique id assigned to the object's container
+and a number generated by the object index. </p> <fig id="GUID-14035881-8AD5-50B5-A285-5DD2D7E68FDA">
+<image href="GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e237205_href.png" placement="inline"/>
+<p>Subsession within a session</p>
+</fig> </section>
+<section id="GUID-93D80DDA-8E2E-462F-8A67-0982B456A8A6"><title>Note</title> <ul>
+<li id="GUID-49B41D98-027F-534F-86D7-3774CAC884F9"><p>Depending on the purpose
+of the server, more than one object container (a <codeph>CObjectCon</codeph>)
+and more than one object index (a <codeph>CObjectIx</codeph>) may be used.
+However, the server must have <i>one and only one</i> object container index
+(a <codeph>CObjectConIx</codeph>) from which all object containers are generated. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1D35F788-A470-5269-93E0-7C33A0013489.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1D35F788-A470-5269-93E0-7C33A0013489.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-1D35F788-A470-5269-93E0-7C33A0013489"><title>Creating a Table </title><shortdesc>This tutorial shows you how to create a Symbian SQL table. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-8-1-21-1-1-6-1-1-9-1-8-1-6-1-3-1"><p>This tutorial uses code from the <xref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita">Basic SQL example application</xref>. </p> <p><b>Assumptions </b> </p> <p>You have a database. The database has no tables and therefore no data. </p> <p><b>SQL statements </b> </p> <p>The following SQL statements are used for this example: </p> <p><userinput>CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT)</userinput> </p> <p>The <xref href="GUID-4688F6B7-E1B0-37CF-BAA2-C6BD103D4FDF.dita"><apiname>RSqlDatabase::Exec</apiname></xref> function provides a mechanism for executing Symbian SQL statements. </p> </context> <steps id="GUID-CF509D01-A43D-5B06-86B3-2F3F27E56DD1"><step id="GUID-8C01D480-6297-5663-B7B2-54988FABD459"><cmd>Create a table </cmd> <info>The steps required to create a table are shown here: </info> <substeps id="GUID-1A0FC730-B110-5EE6-8EB6-9CC10750CE9F"><substep id="GUID-4B88DCB9-FF03-5D4E-A061-FE5D8F686FC9"><cmd>Declare a constant to hold the table handle: </cmd> <stepxmp><codeblock id="GUID-98F9AF2B-5599-5490-A90A-6299814EE1FB" xml:space="preserve">_LIT(KTabCreate,"CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT);");</codeblock> </stepxmp> <stepresult> <codeph>KTabCreate</codeph> will be used later by the SQL EXECUTE command. </stepresult> </substep> <substep id="GUID-A7BAF541-EF41-5A75-8560-2553B81B35CC"><cmd>Instantiate the required objects: </cmd> <stepxmp><codeblock id="GUID-69EC7894-C3C9-5BE3-B54A-66651C1647E1" xml:space="preserve">RSqlDatabase db;
-CConsoleBase* iConsole;</codeblock> </stepxmp> <info>This creates an RSqlDatabase object, which is needed to execute the SQL statement. </info> </substep> <substep id="GUID-98878406-01F8-5162-818A-2A53BE5FF96B"><cmd>Execute the SQL statement: </cmd> <stepxmp><codeblock id="GUID-4E02D739-ABF7-54E5-89FF-3EDD943A8231" xml:space="preserve">db.Exec(KTabCreate)</codeblock> </stepxmp> <info>This will execute the SQL statement to create the table. </info> </substep> </substeps> <stepresult>The table now exists and you can begin adding data to it. </stepresult> </step> </steps> <result id="GUID-D697ACB5-9E8C-5F6A-972F-8D150AD5D469"><p>Your database now has at least one table. You can begin to add data to the table and you can query and edit it. </p> </result> <example id="GUID-630D1DAD-F3AA-58D1-9E92-7A07097D9DEF"><title>Create table example</title> <p>The following code snippet is from the example used for this tutorial: </p> <codeblock id="GUID-76426336-3BF5-5126-8224-C7E372E2CA29" xml:space="preserve">_LIT(KTabCreate,"CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT);");
-_LIT(KCreateTable,"\nCreating a table\n");
-...
-CConsoleBase* iConsole;
-...
-RSqlDatabase db;
-iConsole-&gt;Printf(KCreateTable);
-...
-User::LeaveIfError(db.Exec(KTabCreate));
-...</codeblock> </example> <postreq id="GUID-AE41BAEA-E1DB-53B1-B289-3CD020CA0B4B"><p>Now that you have created a table you need to populate it with some data. The following tasks will show you how to populate a table: </p> <ul><li id="GUID-B9AC3160-267B-57AD-B29A-19013EC2E05E"><p> <xref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita">Querying Databases: Basic</xref>  </p> </li> <li id="GUID-92B5719B-D8C3-5215-B6EF-F7820F4514BD"><p> <xref href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita">Inserting Data into a Table</xref> </p> </li> <li id="GUID-F518E95A-3E3E-588A-831A-774B4F0540DB"><p> <xref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita">Writing from a Data Stream</xref>  </p> </li> </ul> </postreq> </taskbody><related-links><link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext> </link> <link href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita"><linktext>Basic SQL Example
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task xml:lang="en" id="GUID-1D35F788-A470-5269-93E0-7C33A0013489"><title>Creating a Table </title><shortdesc>This tutorial shows you how to create a Symbian SQL table. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-10-1-22-1-1-6-1-1-9-1-8-1-6-1-3-1"><p>This tutorial uses code from the <xref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita">Basic SQL example application</xref>. </p> <p><b>Assumptions </b> </p> <p>You have a database. The database has no tables and therefore no data. </p> <p><b>SQL statements </b> </p> <p>The following SQL statements are used for this example: </p> <p><userinput>CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT)</userinput> </p> <p>The <xref href="GUID-4688F6B7-E1B0-37CF-BAA2-C6BD103D4FDF.dita"><apiname>RSqlDatabase::Exec</apiname></xref> function provides a mechanism for executing Symbian SQL statements. </p> </context> <steps id="GUID-CF509D01-A43D-5B06-86B3-2F3F27E56DD1"><step id="GUID-8C01D480-6297-5663-B7B2-54988FABD459"><cmd>Create a table </cmd> <info>The steps required to create a table are shown here: </info> <substeps id="GUID-1A0FC730-B110-5EE6-8EB6-9CC10750CE9F"><substep id="GUID-4B88DCB9-FF03-5D4E-A061-FE5D8F686FC9"><cmd>Declare a constant to hold the table handle: </cmd> <stepxmp><codeblock id="GUID-98F9AF2B-5599-5490-A90A-6299814EE1FB" xml:space="preserve">_LIT(KTabCreate,"CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT);");</codeblock> </stepxmp> <stepresult> <codeph>KTabCreate</codeph> will be used later by the SQL EXECUTE command. </stepresult> </substep> <substep id="GUID-A7BAF541-EF41-5A75-8560-2553B81B35CC"><cmd>Instantiate the required objects: </cmd> <stepxmp><codeblock id="GUID-69EC7894-C3C9-5BE3-B54A-66651C1647E1" xml:space="preserve">RSqlDatabase db;
+CConsoleBase* iConsole;</codeblock> </stepxmp> <info>This creates an RSqlDatabase object, which is needed to execute the SQL statement. </info> </substep> <substep id="GUID-98878406-01F8-5162-818A-2A53BE5FF96B"><cmd>Execute the SQL statement: </cmd> <stepxmp><codeblock id="GUID-4E02D739-ABF7-54E5-89FF-3EDD943A8231" xml:space="preserve">db.Exec(KTabCreate)</codeblock> </stepxmp> <info>This will execute the SQL statement to create the table. </info> </substep> </substeps> <stepresult>The table now exists and you can begin adding data to it. </stepresult> </step> </steps> <result id="GUID-D697ACB5-9E8C-5F6A-972F-8D150AD5D469"><p>Your database now has at least one table. You can begin to add data to the table and you can query and edit it. </p> </result> <example id="GUID-630D1DAD-F3AA-58D1-9E92-7A07097D9DEF"><title>Create table example</title> <p>The following code snippet is from the example used for this tutorial: </p> <codeblock id="GUID-76426336-3BF5-5126-8224-C7E372E2CA29" xml:space="preserve">_LIT(KTabCreate,"CREATE TABLE Pets( person TEXT, cat SMALLINT, dog SMALLINT, rodent SMALLINT, bird SMALLINT);");
+_LIT(KCreateTable,"\nCreating a table\n");
+...
+CConsoleBase* iConsole;
+...
+RSqlDatabase db;
+iConsole-&gt;Printf(KCreateTable);
+...
+User::LeaveIfError(db.Exec(KTabCreate));
+...</codeblock> </example> <postreq id="GUID-AE41BAEA-E1DB-53B1-B289-3CD020CA0B4B"><p>Now that you have created a table you need to populate it with some data. The following tasks will show you how to populate a table: </p> <ul><li id="GUID-B9AC3160-267B-57AD-B29A-19013EC2E05E"><p> <xref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita">Querying Databases: Basic</xref>  </p> </li> <li id="GUID-92B5719B-D8C3-5215-B6EF-F7820F4514BD"><p> <xref href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita">Inserting Data into a Table</xref> </p> </li> <li id="GUID-F518E95A-3E3E-588A-831A-774B4F0540DB"><p> <xref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita">Writing from a Data Stream</xref>  </p> </li> </ul> </postreq> </taskbody><related-links><link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext> </link> <link href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita"><linktext>Basic SQL Example
                 Application</linktext> </link> </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e63101_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e67264_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1D60BB43-4FF8-5632-A597-0DF00234F93E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1D60BB43-4FF8-5632-A597-0DF00234F93E" xml:lang="en"><title>Finding
+the cryptographic strength</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <xref href="GUID-975EEB8D-32AC-3182-B69C-CEE365505AC4.dita"><apiname>TCrypto</apiname></xref> class enables the user software to find
+out the strength of a Cryptography library. The example below illustrates
+how: </p>
+<codeblock id="GUID-130CBA8C-0629-52A9-BB96-20E50A4DE417" xml:space="preserve">
+// 1. Get the cryptography strength.
+
+TCrypto::TStrength strength = TCrypto::Strength();
+
+
+// 2. Determine the cryptographic strength.
+
+switch (strength)
+    {
+    case TCrypto::EWeak:
+        // Using 56 bit key strength.
+        break;
+    case TCrypto::EStrong:
+        // Using 512 bit key strength.
+        break;
+    default:
+    }
+</codeblock>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e189660_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e194717_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1E1B040A-1C18-4F62-95F9-CE0ECE39C430.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1E1B040A-1C18-4F62-95F9-CE0ECE39C430" xml:lang="en"><title>Cryptography Concepts</title><shortdesc>This section provides all the conceptual information about
+the Crypto and the different features supported by Crypto.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e311449_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e317843_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1E446762-AFE2-4198-8CD7-8C4466392543.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1E446762-AFE2-4198-8CD7-8C4466392543.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1E446762-AFE2-4198-8CD7-8C4466392543" xml:lang="en"><title>Choice
-list API class structure</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The class structure for the Choice list API consists of the class <codeph>CAknChoiceList</codeph> and
-observer interface <codeph>McoeControlObserver</codeph>. The class structure
-is depicted in the figure below.</p>
-<fig id="GUID-F3AE7068-6277-4A02-B057-8324487F5D2F">
-<title>Choice list API classes</title>
-<image href="GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e76917_href.png" scale="50" placement="inline"/>
-</fig>
-<p>The <codeph>CAknChoiceList</codeph> class provides an interface for controlling
-the choice list. You need to create separate instances of this class for each
-choice list. </p>
-<p>When you use the choice list component in your application, you must implement
-the <codeph>McoeControlObserver</codeph> interface. This interface is used
-as a callback hook between the client application and the actual choice list.
-The client application receives a notification through this interface when
-the choice list is closed. This enables you to determine what to do with the
-changed selection from the choice list in your client application.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1E446762-AFE2-4198-8CD7-8C4466392543" xml:lang="en"><title>Choice
+list API class structure</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The class structure for the Choice list API consists of the class <codeph>CAknChoiceList</codeph> and
+observer interface <codeph>McoeControlObserver</codeph>. The class structure
+is depicted in the figure below.</p>
+<fig id="GUID-F3AE7068-6277-4A02-B057-8324487F5D2F">
+<title>Choice list API classes</title>
+<image href="GUID-0991E536-97B2-4EAA-9448-A090BD073140_d0e71768_href.png" scale="50" placement="inline"/>
+</fig>
+<p>The <codeph>CAknChoiceList</codeph> class provides an interface for controlling
+the choice list. You need to create separate instances of this class for each
+choice list. </p>
+<p>When you use the choice list component in your application, you must implement
+the <codeph>McoeControlObserver</codeph> interface. This interface is used
+as a callback hook between the client application and the actual choice list.
+The client application receives a notification through this interface when
+the choice list is closed. This enables you to determine what to do with the
+changed selection from the choice list in your client application.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F" xml:lang="en"><title>Increasing
-the Priority of a Third-Party Application</title><shortdesc>This section describes how a third-party application can increase
-its OOM priority by using OOM Monitor APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-FD9A15E9-6313-4BD3-A52A-7E3B71D39B37-GENID-1-8-1-10-1-1-8-1-5-1-6-1-5-1-3-1"><p>Third-party applications
-that needs to be running all the time can increase their priority to <codeph>High</codeph> from
-the default level (<codeph>Normal</codeph>). By increasing the priority, applications
-can protect itself from being closed by the OOM Monitor. For example:</p><ul>
-<li><p>IP Phone application receiving IP calls </p></li>
-<li><p>Instant Messaging application receiving messages</p></li>
-</ul><p>are applications which listens for events from the network all the
-time.</p></context>
-<steps id="GUID-01A482C7-3004-484D-9948-B0B892E913AF-GENID-1-8-1-10-1-1-8-1-5-1-6-1-5-1-3-2">
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-5-1-3-2-1"><cmd>Create an OOM Monitor
-session</cmd>
-<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
-CleanUpClosePushL(ioomMonitorSession);
-User::LeaveIfError(ioomMonitorSession.Connect());
-</codeblock></info>
-</step>
-<step id="GUID-3033BB28-ACC5-440C-9BDB-D1BC36CD001C-GENID-1-8-1-10-1-1-8-1-5-1-6-1-5-1-3-2-2"><cmd>Set the priority
-for the application to <codeph>High</codeph> .</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityHigh);
-DoCriticalBackgroundProcessingL();
-</codeblock></info>
-</step>
-<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-8-1-10-1-1-8-1-5-1-6-1-5-1-3-2-3"><cmd>Close the session.</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
-</codeblock></info>
-</step>
-</steps>
-</taskbody><related-links>
-<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
-Priority</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F" xml:lang="en"><title>Increasing
+the Priority of a Third-Party Application</title><shortdesc>This section describes how a third-party application can increase
+its OOM priority by using OOM Monitor APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-FD9A15E9-6313-4BD3-A52A-7E3B71D39B37-GENID-1-10-1-10-1-1-8-1-5-1-6-1-5-1-3-1"><p>Third-party applications
+that needs to be running all the time can increase their priority to <codeph>High</codeph> from
+the default level (<codeph>Normal</codeph>). By increasing the priority, applications
+can protect itself from being closed by the OOM Monitor. For example:</p><ul>
+<li><p>IP Phone application receiving IP calls </p></li>
+<li><p>Instant Messaging application receiving messages</p></li>
+</ul><p>are applications which listens for events from the network all the
+time.</p></context>
+<steps id="GUID-01A482C7-3004-484D-9948-B0B892E913AF-GENID-1-10-1-10-1-1-8-1-5-1-6-1-5-1-3-2">
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-5-1-3-2-1"><cmd>Create an OOM Monitor
+session</cmd>
+<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
+CleanUpClosePushL(ioomMonitorSession);
+User::LeaveIfError(ioomMonitorSession.Connect());
+</codeblock></info>
+</step>
+<step id="GUID-3033BB28-ACC5-440C-9BDB-D1BC36CD001C-GENID-1-10-1-10-1-1-8-1-5-1-6-1-5-1-3-2-2"><cmd>Set the priority
+for the application to <codeph>High</codeph> .</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityHigh);
+DoCriticalBackgroundProcessingL();
+</codeblock></info>
+</step>
+<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-10-1-10-1-1-8-1-5-1-6-1-5-1-3-2-3"><cmd>Close the session.</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
+</codeblock></info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
+Priority</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,38 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7" xml:lang="en"><title>ControlFramework:
-A UI application with a toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-F8C6B617-BD51-4A79-9B8E-74C453343045"><title>Description</title> <p>This example program creates an application
-that uses a single view. It implements the standard classes required by any
-application using UI controls. That is, an application, a document, an application
-UI and a view. </p> <p>A view is a control (derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>)
-that displays the application's data on the screen and handles user input.
-The pointer and key input is handled by printing to the screen a description
-of the key event, or the x,y coordinates of the pointer event. </p> <p>The
-application and document are implemented minimally. The application UI handles
-commands by overriding the <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita#GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E/GUID-D6E5C363-CF39-3E56-B717-57CCEE8DC96F"><apiname>CEikAppUi::HandleCommandL()</apiname></xref> method.
-In this example, commands are generated by the toolbar buttons, and are handled
-by changing the formatting of the text. The text that is initially displayed
-is read from a resource file. </p> </section>
-<section id="GUID-5CA06077-7F63-4E48-85A5-B4D92D8D4A7A"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-10dbd09f-5242-44c4-b3f3-b62669bd8c53.zip" scope="external">ControlFramework.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-10dbd09f-5242-44c4-b3f3-b62669bd8c53.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-EE3123AF-180A-48AC-99E5-BE75DF5847B8"><title>Class Summary</title><p> <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref>  </p><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref> </p><p> <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref></p><p>  <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>  </p></section>
-<section id="GUID-E6DD4EA2-7F4A-4C87-AEC5-3F06AC2D0F2D"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
-build process</xref> describes how to build an application. </p> <p>The ControlFramework
-example builds an executable called <filepath>ControlFramework.exe</filepath> in
-the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
-CodeWarrior). Either launch the executable itself, or launch the emulator
-and then select the ControlFramework application from the Emulator's extras
-bar. </p> </section>
-<section id="GUID-7C8D5BAF-0D50-4778-82C3-F5AFCBBA165B"><title>See also</title> <p> <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita">Using
-UI Control Framework (CONE)</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7" xml:lang="en"><title>ControlFramework: A UI application with a toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-F8C6B617-BD51-4A79-9B8E-74C453343045"><title>Description</title> <p>This example program creates an application that uses a single
+view. It implements the standard classes required by any application
+using UI controls. That is, an application, a document, an application
+UI and a view. </p> <p>A view is a control (derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>) that displays the application's data on the
+screen and handles user input. The pointer and key input is handled
+by printing to the screen a description of the key event, or the x,y
+coordinates of the pointer event. </p> <p>The application and document
+are implemented minimally. The application UI handles commands by
+overriding the <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita#GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E/GUID-D6E5C363-CF39-3E56-B717-57CCEE8DC96F"><apiname>CEikAppUi::HandleCommandL()</apiname></xref> method.
+In this example, commands are generated by the toolbar buttons, and
+are handled by changing the formatting of the text. The text that
+is initially displayed is read from a resource file. </p> </section>
+<section id="GUID-5CA06077-7F63-4E48-85A5-B4D92D8D4A7A"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-10dbd09f-5242-44c4-b3f3-b62669bd8c53.zip" scope="external">ControlFramework.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-10dbd09f-5242-44c4-b3f3-b62669bd8c53.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-EE3123AF-180A-48AC-99E5-BE75DF5847B8"><title>Class
+Summary</title><ul>
+<li><p><xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref></p></li>
+<li><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref></p></li>
+<li><p><xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref></p></li>
+<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-E6DD4EA2-7F4A-4C87-AEC5-3F06AC2D0F2D"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build an application. </p> <p>The ControlFramework example builds an executable called <filepath>ControlFramework.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
+CodeWarrior). Either launch the executable itself, or launch the emulator
+and then select the ControlFramework application from the Emulator's
+extras bar. </p> </section>
+<section id="GUID-7C8D5BAF-0D50-4778-82C3-F5AFCBBA165B"><title>See
+also</title> <p> <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita">Using UI Control Framework (CONE)</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e64452_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e65079_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e184889_href.png has changed
Binary file Symbian3/SDK/Source/GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e191485_href.png has changed
--- a/Symbian3/SDK/Source/GUID-1ECCCAA0-2E27-5E46-968D-4EBC4E5CE259.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1ECCCAA0-2E27-5E46-968D-4EBC4E5CE259" xml:lang="en"><title>Application
-Framework Example Code</title><shortdesc>Example code for Application Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-1F7B0EB9-50E9-4C11-B620-18054596F5AD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1F7B0EB9-50E9-4C11-B620-18054596F5AD" xml:lang="en"><title>Deprecated APIs</title><shortdesc>All the deprecated APIs in Symbian^3 are listed with the
+alternatives provided. These deprecated APIs will be removed from
+the future Symbian platform release, so it is recommended to avoid
+using these APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following table summarizes the deprecated APIs:</p>
+<table id="GUID-1A133A2D-D803-4026-AF28-4A96DB25F42B-GENID-1-6-1-1-6-1-4-1-3-2">
+<tgroup cols="3"><colspec colname="col1" colwidth="0.34*"/><colspec colname="COLSPEC0" colwidth="1.66*"/><colspec colname="col2" colwidth="1.66*"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Affected headers and libraries</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>AVKON UI framework and the following dependant APIs:<ul>
+<li><p>Phonebook Data Add Edit UI API</p></li>
+<li><p>Phonebook Data Management API</p></li>
+<li><p>Speed Dial Utility Control API</p></li>
+<li><p>Phonebook vCard Import Export API</p></li>
+<li><p>Phonebook UI Utilities API</p></li>
+<li><p>Phonebook Thumbnail operation API</p></li>
+<li><p>Phonebook Fetch UI API</p></li>
+<li><p>Screensaver API</p></li>
+<li><p>SendUI API</p></li>
+<li><p>Notepad Library API</p></li>
+<li><p>Connection Settings UI API</p></li>
+<li><p>Landmarks UI Add_Edit API</p></li>
+<li><p>Landmarks UI selector API</p></li>
+<li><p>Location Center Registration API</p></li>
+</ul></entry>
+<entry>The <filepath>avkon.lib</filepath>, <filepath>commondialogs.lib</filepath>, and <filepath>eikcoctl.lib</filepath> libraries of AVKON UI framework
+are affected by this change.<p>The following dependant libraries are
+also affected by this change:</p><ul>
+<li><p><filepath>pbkview.lib</filepath></p></li>
+<li><p><filepath>pbkeng.lib</filepath></p></li>
+<li><p><filepath>bcardeng.lib</filepath></p></li>
+<li><p><filepath>spdctrl.lib</filepath></p></li>
+<li><p><filepath>sendui.lib</filepath></p></li>
+<li><p><filepath>npdlib.lib</filepath></p></li>
+<li><p><filepath>cmmanager.lib</filepath></p></li>
+<li><p><filepath>eikdlg.lib</filepath></p></li>
+<li><p><filepath>commonui.lib</filepath></p></li>
+<li><p><filepath>eikctl.lib</filepath></p></li>
+<li><p><filepath>uiklaf.lib</filepath></p></li>
+<li><p><filepath>eikdlg.lib</filepath></p></li>
+<li><p><filepath>aknnotify.lib</filepath></p></li>
+<li><p><filepath>lmkcommonui.lib</filepath></p></li>
+</ul></entry>
+<entry>AVKON UI framework and its dependant APIs have been deprecated.
+This is the first step to move to Qt UI framework in the future releases.
+It is recommended to start migrating all the existing applications
+from AVKON to Qt, so that these applications continue to work on the
+future Symbian platform releases. For more information on migrating
+to Qt, refer to <xref format="html" href="http://library.forum.nokia.com/topic/Qt_for_Symbian_Developers_Library/GUID-97A34C6E-9F2B-4743-86F8-563362F7047A_cover.html" scope="external">Qt for Symbian</xref></entry>
+</row>
+<row>
+<entry><codeph>KLinkLayerOpen</codeph> and <codeph>KLinkLayerClosed</codeph>  </entry>
+<entry><filepath>nifvar.h</filepath> and <filepath>nifman.dll</filepath></entry>
+<entry>These constants have been deprecated. The existing applications
+will continue to work, but it is recommended that the new applications
+use<codeph> KConnectionUp</codeph> or <codeph>KConnectionDown</codeph> constants (<filepath>es_sock.h</filepath>) to indicate the connection
+status.</entry>
+</row>
+<row>
+<entry><codeph>KCDCurrentVersion</codeph>  and <codeph>KCDLatestVersion</codeph>  </entry>
+<entry><filepath>commsdat.h</filepath>, <filepath>metadatabase.h</filepath> and <filepath>commsdat.dll</filepath>.</entry>
+<entry>These constants were used to retrieve the version information
+of a database schema in Comms Database. They have been deprecated
+from Symbian^3 onwards as there are two database schemas in Comms
+Database. To identify each of these schemas separately, use <codeph>KCDVersion1_1</codeph> and <codeph>KCDVersion1_2</codeph> instead
+of the deprecated constants. The existing applications using these
+deprecated constants will continue to work on Symbian^3 without any
+change.</entry>
+</row>
+<row>
+<entry><codeph>RConnection::DataTransferredRequest()</codeph>, <codeph>RConnection::DataTransferredCancel()</codeph>, <codeph>RConnection::GetDataSentNotificationRequest()</codeph>, <codeph>RConnection::DataSentNotificationCancel()</codeph>, <codeph>RConnection::DataReceivedNotificationRequest()</codeph>, and <codeph>RConnection::DataReceivedNotificationCancel()</codeph>.</entry>
+<entry><filepath>es_sock.h</filepath> and <filepath>esock.dll</filepath></entry>
+<entry>All these APIs has been deprecated. To monitor data and handle
+data sent/received notifications, use the <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> API instead. All the existing applications continue to work on Symbian^3
+without any changes. For more information on using <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> API, refer to <xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Socket-Server</xref> documentation.</entry>
+</row>
+<row>
+<entry><p>Sub-connection management and monitoring APIs:</p><ul>
+<li><p><codeph>RConnection::Stop(TSubConnectionUniqueId)</codeph></p></li>
+<li><p><codeph>RConnection::Stop(TSubConnectionUniqueId, TConnStopType)</codeph> </p></li>
+<li><p><codeph>RConnection::ProgressNotification(TSubConnectionUniqueId,
+TNifProgressBuf&amp;, TRequestStatus&amp;, TUint)</codeph></p></li>
+<li><p><codeph>RConnection::CancelProgressNotification(TSubConnectionUniqueId)</codeph></p></li>
+<li><p><codeph>RConnection::Progress(TSubConnectionUniqueId, TNifProgress&amp;) </codeph></p></li>
+<li><p><codeph>RConnection::IsSubConnectionActiveRequest()</codeph></p></li>
+<li><p><codeph>RConnection::IsSubConnectionActiveCancel()</codeph></p></li>
+</ul><p>Connection settings access APIs in RConnection:</p><ul>
+<li><p><codeph>RConnection::GetIntSetting(const TDesC&amp;, TUint32&amp;)</codeph></p></li>
+<li><p><codeph>RConnection::GetBoolSetting(const TDesC&amp;, TBool&amp;)</codeph></p></li>
+<li><p><codeph>RConnection::GetDesSetting(const TDesC&amp;, TDes8&amp;)</codeph></p></li>
+<li><p><codeph>RConnection::GetDesSetting(const TDesC&amp;, TDes16&amp;)</codeph></p></li>
+<li><p><codeph>RConnection::GetLongDesSetting(const TDesC&amp; aSettingName,
+TDes&amp; aValue)</codeph></p></li>
+</ul><p>System wide connection management and monitoring APIs:</p><ul>
+<li><p><codeph>RConnection::EnumerateConnections(TUint&amp; aCount)</codeph></p></li>
+<li><p><codeph>RConnection::AllInterfaceNotification(TDes8&amp; aNotification,
+TRequestStatus&amp; aStatus)</codeph></p></li>
+<li><p><codeph>RConnection::CancelAllInterfaceNotification()</codeph></p></li>
+</ul></entry>
+<entry><filepath>es_sock.h</filepath> and <filepath>esocksvr.dll</filepath></entry>
+<entry><p>All the sub-connection management and monitoring APIs in
+RConnection have been deprecated. Instead of these deprecated APIs,
+use the following RSubConnection APIs:</p><ul>
+<li><p><xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita#GUID-0AFDA357-EE44-3788-9CAB-162B874134BF/GUID-7B2223D7-D08E-39D3-AF14-A15E848D1011"><apiname>RSubConnection::EventNotification(TNotificationEventBuf&amp;
+aEventBuffer, TBool aGenericEventsOnly, TRequestStatus&amp; aStatus)</apiname></xref> </p></li>
+<li><p><xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita#GUID-0AFDA357-EE44-3788-9CAB-162B874134BF/GUID-8894D416-34DA-32F9-9CAB-095A0039D6CD"><apiname>RSubConnection::EventNotification(TNotificationEventBuf&amp;
+aEventBuffer, TEventFilter aEventFilterList[], TUint aEventListLength,
+TRequestStatus&amp; aStatus)</apiname></xref></p></li>
+<li><p><xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita#GUID-0AFDA357-EE44-3788-9CAB-162B874134BF/GUID-ADCDEFFC-8622-3C77-91F0-2E3020745E46"><apiname>RSubConnection::CancelEventNotification()</apiname></xref></p></li>
+<li><p><xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita#GUID-0AFDA357-EE44-3788-9CAB-162B874134BF/GUID-E25294DA-633B-37BC-9921-09C4822C3B7A"><apiname>RSubConnection::Stop()</apiname></xref></p></li>
+</ul><p>For more information on these <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs, refer to <xref href="GUID-4C7ABD1C-B42C-590A-AD24-7FA6C3A8D18C.dita">Registering for Sub-Connection events: Tutorial</xref></p><p>The
+connection settings access APIs in <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> are
+deprecated so you can use <xref href="GUID-5EC4B812-241B-39BF-B74D-F72260C939BE.dita#GUID-5EC4B812-241B-39BF-B74D-F72260C939BE/GUID-546B08D6-2265-3BA7-9AAF-CF39E8ABCB6F"><apiname>RConnection::GetParameters(ESock::CCommsDataObjectBase&amp;
+aDataObject)</apiname></xref> to retrieve the connection settings.</p><p>The system-wide connection management APIs are deprecated so avoid
+using it. Instead, use the following <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref> APIs:</p><ul>
+<li><p><xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-A2ED3E49-53F0-3BFD-8E77-DE543BAADA93"><apiname>RConnectionServ::AccessPointStatusQuery(const CConnectionServParameterBundle&amp;
+aQuery, CConnectionServParameterBundle&amp; aResult, TRequestStatus&amp;
+aStatus)</apiname></xref></p></li>
+<li><p><xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-31901844-6423-3B20-86DA-58DE2443885A"><apiname>RConnectionServ::AccessPointNotification(const CConnectionServParameterBundle&amp;
+aQuery, MAccessPointNotificationObserver&amp; aObserver)</apiname></xref></p></li>
+<li><p><xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-96F75179-AE3E-3CC5-9C25-63E66053D99E"><apiname>RConnectionServ::CancelAccessPointNotification()</apiname></xref></p></li>
+</ul><p>For more information on how to use these APIs, refer to <xref href="GUID-AE31B2A5-40BA-5FD4-9CCA-2CDF5B00DFDC.dita">Using a Management
+Plane session to receive Access Point notifications: Tutorial</xref>.</p></entry>
+</row>
+<row>
+<entry><codeph>CFbsDevice::CancelSprite()</codeph>, <codeph>CFbsDevice::HideSprite()</codeph>,<codeph>CFbsDevice::HideSprite(const TRect&amp;, const TRegion*)</codeph>, <codeph>CFbsDevice::ShowSprite(TSpriteBase*)</codeph>, <codeph>CFbsDevice::ShowSprite(TSpriteBase*, const TRect&amp;,const TRegion*)</codeph>, <codeph>CFbsScreenDevice::DrawSpriteBegin()</codeph>, <codeph>CFbsScreenDevice::DrawSpriteEnd()</codeph>, <codeph>CFbsScreenDevice::CancelSprite()</codeph>, <codeph>CFbsScreenDevice::HideSprite()</codeph>, <codeph>CFbsScreenDevice::HideSprite(const TRect&amp;,const TRegion*)</codeph>, <codeph>CFbsScreenDevice::ShowSprite(TSpriteBase*)</codeph>, and <codeph>CFbsScreenDevice::ShowSprite(TSpriteBase*, const TRect&amp;,const
+TRegion*)</codeph>.</entry>
+<entry><filepath>bitdev.h</filepath></entry>
+<entry>These <codeph>CFbsDevice</codeph> and <codeph>CFbsScreenDevice</codeph> APIs, which were used internally by the Window Server
+for implementing sprites, are deprecated from Symbian^3 onwards. </entry>
+</row>
+<row>
+
+<entry>Flash Viewer Framework API</entry>
+<entry><filepath>flash_ui.h</filepath> and <filepath>flash2ui.dll</filepath></entry>
+<entry>This framework API is deprecated so remove all references to
+it.</entry>
+</row>
+<row>
+<entry>Browser Control API, Browser Plugin API, Download Manager Client
+API, Download Manager UI API, Favourites Engine API, and Settings
+API</entry>
+<entry><filepath>browserengine.lib</filepath>, <filepath>browserengine.lib</filepath>, <filepath>downloadmgr.lib</filepath>, <filepath>downloadmgruilib.lib</filepath>, and <filepath>favouritesengine.lib</filepath>.</entry>
+<entry>All these browser APIs are deprecated, so start using the <xref format="html" href="http://doc.qt.nokia.com/4.6/qtwebkit.html" scope="external">QTWebKit</xref> module instead. </entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,179 +1,179 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E"><title>Exif Utility Library Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Exif (Exchangeable image file format) is a standard specifying rules for storing metadata in digital image files, mainly those using JPEG compression. </p> <section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-8-1-18-1-1-5-1-6-1-8-1-4-1-2-2"><title>Purpose</title> <p>Exif enhances the JPEG and TIFF specifications with the addition of metadata tags to hold information such as the camera settings used to take the picture. </p> </section> <section><title>Exif Overview</title> <p>The Exif standard defines a wide range of metadata tags, some of which are listed below: </p> <ul><li id="GUID-55D72AF0-DEB5-55FE-AD34-52B14DD39590"><p>Date and time information of the image captured. </p> </li> <li id="GUID-DE117EE6-9465-59CD-A5C2-1FAECBF6DFE0"><p>Camera settings like camera model and make, and information that varies with each image such as orientation, aperture, shutter speed, focal length, metering mode, and film speed information. </p> </li> <li id="GUID-6F02CD74-00C5-5574-A3A2-45DB997F9AD4"><p>A thumbnail for previewing the picture on camera LCD. </p> </li> <li id="GUID-BB16459B-A734-5E3D-A632-CF8AFB31398F"><p>Copyright information. </p> </li> </ul> <p><b> Accessing Exif Metadata</b> </p> <p>Access to Exif metadata is provided through an abstract interface available in all the main ICL APIs. This interface can be implemented and managed through an ICL plugin, exhibiting the functionality to the client through the plugin extension mechanism. </p> <p>The <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> class is a generic interface for accessing the Exif metadata. To access a specific item of a metadata, both tag ID and the primary Image File Directory [IFD] number must be provided in the <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> access method, as some tags may appear in more than one IFD. The primary IFD number may either be 0 or 1. The main image tags are grouped together under IFD 0 and the tags for the thumbnail images are grouped under IFD 1 in the Exif metadata. The tags under these IFD can be further classified into sub IFD: </p> <p>For example : Tags related to the GPS can be sorted to form a group. </p> <p>The <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> is compounded by two classes as mentioned below: </p> <ul><li id="GUID-607A6DAE-75E0-56CD-8601-E360272D4CB3"><p> <xref href="GUID-B742FC40-2D88-3E71-8F89-FCB15A2C6619.dita"><apiname>MExifMetadataReader</apiname></xref> : This provides more generic functionalitites to read the tags from the Exif Metadata. The user is expected to provide the tag id and the primary IFD for the tags that needs to be read. </p> </li> <li id="GUID-0174AF96-9024-5FC1-BC04-4799C4F04CC0"><p> <xref href="GUID-27F068D2-F5BE-3D0B-83F4-493A783CFB80.dita"><apiname>MExifMetadataWriter</apiname></xref> : This is a generic way to write or set the tags of the Exif metadata. Here also the user is expected to render the key inputs like tag id and IFD for the data that needs to be written or modified. </p> </li> </ul> <p>The access provided by <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> is quite low level. The users are expected to know the tag IDs defined in the Exif specification in order to use it. Hence more user friendly classes as listed below are made available to access these tags. </p> </section> <section><title>Examples</title> <p>This section contains code snippets showing how Exif metadata is accessed in several situations. </p> <p><b>JPEG Exif Plugin</b> </p> <ul><li id="GUID-0D60F5DD-FFCD-51F5-BC57-9FB04500147F"><p> <xref href="GUID-8AA987C9-456B-3E7C-95C2-C5578EE977B9.dita"><apiname>TExifReaderUtility</apiname></xref> : This class provides a user friendly interface for reading the metadata in Exif encoded image files. The following example code illustrates its use: </p> <codeblock id="GUID-15B5C5BE-4021-55A9-99AD-77745A571863" xml:space="preserve">void CIclExample::AccessToEXIFMetadataL(const TDesC&amp; aFileName)
-    {
-    HBufC8* buffer8Bit=NULL;
-    
-    // If the image is not recognised or valid then the call will leave with an error
-    CJPEGExifDecoder* exifdecoder =  static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::FileNewL(iFs, aFileName/*,CImageDecoder::EOptionNone, KNullUid, KNullUid, KUidICLJpegEXIFInterface*/));
-       CleanupStack::PushL(exifdecoder);
-    
-    // Create a MExifMetadata object and Initializes to metadata associated with the CJPEGExifDecoder    
-    MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();
-
-    // Create a TExifReaderUtility object and pass the metadata to read it
-    if(metaData != NULL)
-        {
-        TExifReaderUtility reader(metaData);    
-        User::LeaveIfError(reader.GetImageDescription(buffer8Bit));
-        }
-
-    delete buffer8Bit;
-    CleanupStack::PopAndDestroy(exifdecoder);
-    }</codeblock> </li> <li id="GUID-07517C00-052C-5E88-9ED6-B4F87B95470C"><p> <xref href="GUID-62EA502C-FBE8-39A8-AEC6-3104C15F18C9.dita"><apiname> TExifWriterUtility</apiname></xref> : This class provides a user friendly interface for writing the metadata in Exif encoded image files. The following example code illustrates its use: </p> <codeblock id="GUID-71F45182-4C2E-57D0-94D9-DF71B05D31AF" xml:space="preserve">void CIclExample::AddEXIFDataToJPEGFileL()
-{
-    TInt err = KErrNone;
-      
-    HBufC8 *encodedImageDescriptor = NULL;
-   
-    // Create the encoder, passing a buffer to store the encoded image
-    CJPEGExifEncoder* exifencoder = static_cast&lt;CJPEGExifEncoder*&gt;(CImageEncoder::DataNewL(encodedImageDescriptor,CImageEncoder::EOptionNone,KImageTypeJPGUid));
-    
-    // Create a MExifMetadata object and initializes to metadata associated with CJPEGExifEncoder  
-    MExifMetadataWriter* metaData=exifencoder-&gt;ExifMetadata(); 
-    CleanupStack::PushL(exifencoder);
-    
-    // Create a TExifWriterUtility object to write the metadata in to the image
-      TExifWriterUtility exifWriteUtility(metaData);
-
-    HBufC8*    buf8ParamWriteVersion=KBuf8ParamWriteVersion().Alloc();
-
-    User::LeaveIfError(exifWriteUtility.SetImageDescription(buf8ParamWriteVersion));
-   
-       delete encodedImageDescriptor;
-      encodedImageDescriptor = NULL;
-      
-      delete buf8ParamWriteVersion;
-      buf8ParamWriteVersion = NULL;
-       
-    CleanupStack::PopAndDestroy(exifencoder);
-
-    }</codeblock> </li> </ul> <p>The access to the Exif metadata in image decoder/encoder will be provided through the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. The extended object <xref href="GUID-52969E30-A244-3A27-8182-FE105FEDABD7.dita"><apiname>CJPEGExifDecoder</apiname></xref> of the public class <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> provides the mechanism to access the custom Exif interface, by allowing the client to request a reference to the MExifMetadata interface. Once the source image has been set, and the client has acquired a reference to <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref>, the data associated with the Exif tags can be accessed at any time before or after a decoding process has taken place. </p> <p>The client can request the main image or the thumbnail image as the source for the decode operation using the function <xref href="GUID-6F675985-A77B-3ADB-891A-B5B24D749DBC.dita"><apiname>SetImageTypeL()</apiname></xref>. These are the only arguments SetImageTypeL() will accept. Any other argument provided will cause the function to leave with error KErrArgument. The plugin assumes the main image to be the source unless otherwise specified. The plugin will ignore the function call if the image requested is unavailable. </p> <codeblock id="GUID-E7E96B7B-7BED-56A0-BBBD-C2F7B6F355FF" xml:space="preserve">imageDecoder-&gt;SetImageTypeL(CImageDecoder::EImageTypeThumbnail);</codeblock> <p>Unlike decoding, encoding is a one step procedure that requires all the Exif data to be set before the event is initiated. Any unspecified parameters must be populated by the default values. The call to the SetImageTypeL() determines whether an embedded image will be included in the encoded image or not. The client must furnish an optional parameter EImageTypeThumbnail along with the EImageTypeMain included in the bitfield to denote the inclusion of a thumbnail in the encoded image. Any other parameter specified aberrant from this specification will result in the function leaving with KErrArgument error. The thumbnail generated will conform to the DCF standards. </p> <p id="GUID-93EB3782-FECC-5151-A052-F922BEEA6479"><b> Exif support in CImageDisplay</b> </p> <p>In this scenario, the <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> returns a pointer to the object that implements the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. The Exif metadata can be extracted, once the source image has been set. This provides a read only access to the metadata. It is illustrated as follows: </p> <codeblock id="GUID-9953D8E8-B8A6-53FF-93B3-294371948E88" xml:space="preserve">void CIclExample::AccessToEXIFMetadataL(const TDesC&amp; aFileName)
-    {
-    HBufC8* buffer8Bit=NULL;
-    
-    // Create the decoder, passing in the image memory. The image is recognised by the 
-    // Image Conversion Library, an appropriate codec plugin loaded and the image 
-    // headers parsed.
-    // If the image is not recognised or valid then the call will leave with an error
-    CJPEGExifDecoder* exifdecoder =  static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::FileNewL(iFs, aFileName/*,CImageDecoder::EOptionNone, KNullUid, KNullUid, KUidICLJpegEXIFInterface*/));
-       CleanupStack::PushL(exifdecoder);
-    
-    // Create a MExifMetadata object and Initializes to metadata associated with the CJPEGExifDecoder    
-    MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();
-
-    // Create a TExifReaderUtility object and pass the metadata to read it
-    if(metaData != NULL)
-        {
-        TExifReaderUtility reader(metaData);    
-        User::LeaveIfError(reader.GetImageDescription(buffer8Bit));
-        }
-
-    delete buffer8Bit;
-    CleanupStack::PopAndDestroy(exifdecoder);
-    }</codeblock> <p id="GUID-A0B37BD4-05E2-58DA-8D25-F1E4A116AE79"><b>Exif support in CimageTransform</b> </p> <p>In this scenario, the <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> returns a pointer to the object that implements the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. It is illustrated as follows: </p> <codeblock id="GUID-581E936E-BDDC-5C7F-9645-B3911A2A6F6F" xml:space="preserve">void CIclExample::AddEXIFDataToJPEGFileL()
-{
-    TInt err = KErrNone;
-      
-    HBufC8 *encodedImageDescriptor = NULL;
-   
-    // Create the encoder, passing a buffer to store the encoded image
-    CJPEGExifEncoder* exifencoder = static_cast&lt;CJPEGExifEncoder*&gt;(CImageEncoder::DataNewL(encodedImageDescriptor,CImageEncoder::EOptionNone,KImageTypeJPGUid));
-    
-    // Create a MExifMetadata object and initializes to metadata associated with CJPEGExifEncoder  
-    MExifMetadataWriter* metaData=exifencoder-&gt;ExifMetadata(); 
-    CleanupStack::PushL(exifencoder);
-    
-    // Create a TExifWriterUtility object to write the metadata in to the image
-      TExifWriterUtility exifWriteUtility(metaData);
-
-    HBufC8*    buf8ParamWriteVersion=KBuf8ParamWriteVersion().Alloc();
-
-    User::LeaveIfError(exifWriteUtility.SetImageDescription(buf8ParamWriteVersion));
-   
-       delete encodedImageDescriptor;
-      encodedImageDescriptor = NULL;
-      
-      delete buf8ParamWriteVersion;
-      buf8ParamWriteVersion = NULL;
-       
-    CleanupStack::PopAndDestroy(exifencoder);
-
-    }</codeblock> <p>The <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> provides functions to scale still images. Additionally, it has the ability to scale only a subset of the original image by setting a clipping rectangle. This acts as if the source image outside the region does not exist causing the clipped image to be resized to the size specified. </p> <p>Furthermore, a thumbnail can be added to the JPEG file as shown in the code below: </p> <codeblock id="GUID-F7E532F5-14AC-5F4B-B98E-3A471C6DEA30" xml:space="preserve">void CIclExample::AddThumbnailToJPEGFileL(const TDesC&amp; aFileName)
-    {
-        TInt err = KErrNone;
-                 TInt soiOffset=0;
-                 TInt thumbnailLength = 0;
-     TInt size = 0;
-     Const TInt KConstStartOffset = 12;
-           HBufC8 *desData= NULL;
-  
-     TPtr8 imageFromFilePtr = LoadImageIntoMemoryL(aFileName);
-
-     // Create a CImageTransform object and push it on to the cleanup stack
-     CImageTransform* imageTransform=CImageTransform::NewL(iFs);
-     CleanupStack::PushL(imageTransform);
-
-     // Call SetSourceFilenameL() function of CImageTransform to set the source to file
-     imageTransform-&gt;SetSourceFilenameL(aFileName);
-     
-     // Call SetDestDataL() function of CImageTransform to set the destination size in pixels
-     imageTransform-&gt;SetDestDataL(desData);
-     
-     // Call SetDestSizeInPixelsL() function of CImageTransform to set the destination size in pixels
-     imageTransform-&gt;SetDestSizeInPixelsL(TSize(160, 120), ETrue);
-     
-     // Call SetOptionsL() to add the thumbnail
-     imageTransform-&gt;SetOptionsL(CImageTransform::EThumbnail);
-     
-     //Call SetupL() to setup the ImageTransform
-     imageTransform-&gt;SetupL();
-    
-   // encode the image
-     CActiveListener* activeListener = CreateAndInitializeActiveListenerLC();
-     imageTransform-&gt;Transform(activeListener-&gt;iStatus);
-     CActiveScheduler::Start();
-     User::LeaveIfError(activeListener -&gt; iStatus.Int());    
-     
-     // Create a CJPEGExifDecoder
-  CJPEGExifDecoder* exifdecoder = static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::DataNewL(iFs, imageFromFilePtr));
-  CleanupStack::PushL(exifdecoder);
-     
-     // Get the thumbnail from the image
-     MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();        
-
-     // Get the offset to the thumbnail image (i.e. the value of tag 0x0201)
-  metaData-&gt;GetIntegerParam(0x0201, 1, soiOffset);
-        
-     // Get the length of the thumbnail image    (i.e. the value of tag 0x0202)
-     metaData-&gt;GetIntegerParam(0x0202, 1, thumbnailLength);
-     
-     // Add thumbnail to image    
-     RFile file;
-     file.Open(iFs,KbitmapFile,EFileShareReadersOnly|EFileStream|EFileRead);
-     CleanupClosePushL(file);
-     file.Size(size);
-
-     HBufC8* buffer = HBufC8::NewMaxLC(size);
-     TPtr8 bufferDes(buffer-&gt;Des());
-     file.Read(bufferDes);
- 
-  TPtrC8 thumbnailData = bufferDes.Mid(KConstStartOffset + soiOffset,thumbnailLength);
-     
-  // Write thumbnail data to image
-     User::LeaveIfError(file.Write(thumbnailData));
-
-     file.Close();
-  delete desData;
-  
-     CleanupStack::PopAndDestroy(6);// buffer,exifdecoder,activeListener,imageTransform,desData,iImageInMemory
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E"><title>Exif Utility Library Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Exif (Exchangeable image file format) is a standard specifying rules for storing metadata in digital image files, mainly those using JPEG compression. </p> <section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-10-1-19-1-1-5-1-6-1-7-1-4-1-2-2"><title>Purpose</title> <p>Exif enhances the JPEG and TIFF specifications with the addition of metadata tags to hold information such as the camera settings used to take the picture. </p> </section> <section><title>Exif Overview</title> <p>The Exif standard defines a wide range of metadata tags, some of which are listed below: </p> <ul><li id="GUID-55D72AF0-DEB5-55FE-AD34-52B14DD39590"><p>Date and time information of the image captured. </p> </li> <li id="GUID-DE117EE6-9465-59CD-A5C2-1FAECBF6DFE0"><p>Camera settings like camera model and make, and information that varies with each image such as orientation, aperture, shutter speed, focal length, metering mode, and film speed information. </p> </li> <li id="GUID-6F02CD74-00C5-5574-A3A2-45DB997F9AD4"><p>A thumbnail for previewing the picture on camera LCD. </p> </li> <li id="GUID-BB16459B-A734-5E3D-A632-CF8AFB31398F"><p>Copyright information. </p> </li> </ul> <p><b> Accessing Exif Metadata</b> </p> <p>Access to Exif metadata is provided through an abstract interface available in all the main ICL APIs. This interface can be implemented and managed through an ICL plugin, exhibiting the functionality to the client through the plugin extension mechanism. </p> <p>The <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> class is a generic interface for accessing the Exif metadata. To access a specific item of a metadata, both tag ID and the primary Image File Directory [IFD] number must be provided in the <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> access method, as some tags may appear in more than one IFD. The primary IFD number may either be 0 or 1. The main image tags are grouped together under IFD 0 and the tags for the thumbnail images are grouped under IFD 1 in the Exif metadata. The tags under these IFD can be further classified into sub IFD: </p> <p>For example : Tags related to the GPS can be sorted to form a group. </p> <p>The <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> is compounded by two classes as mentioned below: </p> <ul><li id="GUID-607A6DAE-75E0-56CD-8601-E360272D4CB3"><p> <xref href="GUID-B742FC40-2D88-3E71-8F89-FCB15A2C6619.dita"><apiname>MExifMetadataReader</apiname></xref> : This provides more generic functionalitites to read the tags from the Exif Metadata. The user is expected to provide the tag id and the primary IFD for the tags that needs to be read. </p> </li> <li id="GUID-0174AF96-9024-5FC1-BC04-4799C4F04CC0"><p> <xref href="GUID-27F068D2-F5BE-3D0B-83F4-493A783CFB80.dita"><apiname>MExifMetadataWriter</apiname></xref> : This is a generic way to write or set the tags of the Exif metadata. Here also the user is expected to render the key inputs like tag id and IFD for the data that needs to be written or modified. </p> </li> </ul> <p>The access provided by <xref href="GUID-D3846471-6576-3080-A0C0-C1531DD6DAA3.dita"><apiname>MExifMetaData</apiname></xref> is quite low level. The users are expected to know the tag IDs defined in the Exif specification in order to use it. Hence more user friendly classes as listed below are made available to access these tags. </p> </section> <section><title>Examples</title> <p>This section contains code snippets showing how Exif metadata is accessed in several situations. </p> <p><b>JPEG Exif Plugin</b> </p> <ul><li id="GUID-0D60F5DD-FFCD-51F5-BC57-9FB04500147F"><p> <xref href="GUID-8AA987C9-456B-3E7C-95C2-C5578EE977B9.dita"><apiname>TExifReaderUtility</apiname></xref> : This class provides a user friendly interface for reading the metadata in Exif encoded image files. The following example code illustrates its use: </p> <codeblock id="GUID-15B5C5BE-4021-55A9-99AD-77745A571863" xml:space="preserve">void CIclExample::AccessToEXIFMetadataL(const TDesC&amp; aFileName)
+    {
+    HBufC8* buffer8Bit=NULL;
+    
+    // If the image is not recognised or valid then the call will leave with an error
+    CJPEGExifDecoder* exifdecoder =  static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::FileNewL(iFs, aFileName/*,CImageDecoder::EOptionNone, KNullUid, KNullUid, KUidICLJpegEXIFInterface*/));
+       CleanupStack::PushL(exifdecoder);
+    
+    // Create a MExifMetadata object and Initializes to metadata associated with the CJPEGExifDecoder    
+    MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();
+
+    // Create a TExifReaderUtility object and pass the metadata to read it
+    if(metaData != NULL)
+        {
+        TExifReaderUtility reader(metaData);    
+        User::LeaveIfError(reader.GetImageDescription(buffer8Bit));
+        }
+
+    delete buffer8Bit;
+    CleanupStack::PopAndDestroy(exifdecoder);
+    }</codeblock> </li> <li id="GUID-07517C00-052C-5E88-9ED6-B4F87B95470C"><p> <xref href="GUID-62EA502C-FBE8-39A8-AEC6-3104C15F18C9.dita"><apiname> TExifWriterUtility</apiname></xref> : This class provides a user friendly interface for writing the metadata in Exif encoded image files. The following example code illustrates its use: </p> <codeblock id="GUID-71F45182-4C2E-57D0-94D9-DF71B05D31AF" xml:space="preserve">void CIclExample::AddEXIFDataToJPEGFileL()
+{
+    TInt err = KErrNone;
+      
+    HBufC8 *encodedImageDescriptor = NULL;
+   
+    // Create the encoder, passing a buffer to store the encoded image
+    CJPEGExifEncoder* exifencoder = static_cast&lt;CJPEGExifEncoder*&gt;(CImageEncoder::DataNewL(encodedImageDescriptor,CImageEncoder::EOptionNone,KImageTypeJPGUid));
+    
+    // Create a MExifMetadata object and initializes to metadata associated with CJPEGExifEncoder  
+    MExifMetadataWriter* metaData=exifencoder-&gt;ExifMetadata(); 
+    CleanupStack::PushL(exifencoder);
+    
+    // Create a TExifWriterUtility object to write the metadata in to the image
+      TExifWriterUtility exifWriteUtility(metaData);
+
+    HBufC8*    buf8ParamWriteVersion=KBuf8ParamWriteVersion().Alloc();
+
+    User::LeaveIfError(exifWriteUtility.SetImageDescription(buf8ParamWriteVersion));
+   
+       delete encodedImageDescriptor;
+      encodedImageDescriptor = NULL;
+      
+      delete buf8ParamWriteVersion;
+      buf8ParamWriteVersion = NULL;
+       
+    CleanupStack::PopAndDestroy(exifencoder);
+
+    }</codeblock> </li> </ul> <p>The access to the Exif metadata in image decoder/encoder will be provided through the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. The extended object <xref href="GUID-52969E30-A244-3A27-8182-FE105FEDABD7.dita"><apiname>CJPEGExifDecoder</apiname></xref> of the public class <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> provides the mechanism to access the custom Exif interface, by allowing the client to request a reference to the MExifMetadata interface. Once the source image has been set, and the client has acquired a reference to <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref>, the data associated with the Exif tags can be accessed at any time before or after a decoding process has taken place. </p> <p>The client can request the main image or the thumbnail image as the source for the decode operation using the function <xref href="GUID-6F675985-A77B-3ADB-891A-B5B24D749DBC.dita"><apiname>SetImageTypeL()</apiname></xref>. These are the only arguments SetImageTypeL() will accept. Any other argument provided will cause the function to leave with error KErrArgument. The plugin assumes the main image to be the source unless otherwise specified. The plugin will ignore the function call if the image requested is unavailable. </p> <codeblock id="GUID-E7E96B7B-7BED-56A0-BBBD-C2F7B6F355FF" xml:space="preserve">imageDecoder-&gt;SetImageTypeL(CImageDecoder::EImageTypeThumbnail);</codeblock> <p>Unlike decoding, encoding is a one step procedure that requires all the Exif data to be set before the event is initiated. Any unspecified parameters must be populated by the default values. The call to the SetImageTypeL() determines whether an embedded image will be included in the encoded image or not. The client must furnish an optional parameter EImageTypeThumbnail along with the EImageTypeMain included in the bitfield to denote the inclusion of a thumbnail in the encoded image. Any other parameter specified aberrant from this specification will result in the function leaving with KErrArgument error. The thumbnail generated will conform to the DCF standards. </p> <p id="GUID-93EB3782-FECC-5151-A052-F922BEEA6479"><b> Exif support in CImageDisplay</b> </p> <p>In this scenario, the <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> returns a pointer to the object that implements the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. The Exif metadata can be extracted, once the source image has been set. This provides a read only access to the metadata. It is illustrated as follows: </p> <codeblock id="GUID-9953D8E8-B8A6-53FF-93B3-294371948E88" xml:space="preserve">void CIclExample::AccessToEXIFMetadataL(const TDesC&amp; aFileName)
+    {
+    HBufC8* buffer8Bit=NULL;
+    
+    // Create the decoder, passing in the image memory. The image is recognised by the 
+    // Image Conversion Library, an appropriate codec plugin loaded and the image 
+    // headers parsed.
+    // If the image is not recognised or valid then the call will leave with an error
+    CJPEGExifDecoder* exifdecoder =  static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::FileNewL(iFs, aFileName/*,CImageDecoder::EOptionNone, KNullUid, KNullUid, KUidICLJpegEXIFInterface*/));
+       CleanupStack::PushL(exifdecoder);
+    
+    // Create a MExifMetadata object and Initializes to metadata associated with the CJPEGExifDecoder    
+    MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();
+
+    // Create a TExifReaderUtility object and pass the metadata to read it
+    if(metaData != NULL)
+        {
+        TExifReaderUtility reader(metaData);    
+        User::LeaveIfError(reader.GetImageDescription(buffer8Bit));
+        }
+
+    delete buffer8Bit;
+    CleanupStack::PopAndDestroy(exifdecoder);
+    }</codeblock> <p id="GUID-A0B37BD4-05E2-58DA-8D25-F1E4A116AE79"><b>Exif support in CimageTransform</b> </p> <p>In this scenario, the <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> returns a pointer to the object that implements the <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata</apiname></xref> interface. It is illustrated as follows: </p> <codeblock id="GUID-581E936E-BDDC-5C7F-9645-B3911A2A6F6F" xml:space="preserve">void CIclExample::AddEXIFDataToJPEGFileL()
+{
+    TInt err = KErrNone;
+      
+    HBufC8 *encodedImageDescriptor = NULL;
+   
+    // Create the encoder, passing a buffer to store the encoded image
+    CJPEGExifEncoder* exifencoder = static_cast&lt;CJPEGExifEncoder*&gt;(CImageEncoder::DataNewL(encodedImageDescriptor,CImageEncoder::EOptionNone,KImageTypeJPGUid));
+    
+    // Create a MExifMetadata object and initializes to metadata associated with CJPEGExifEncoder  
+    MExifMetadataWriter* metaData=exifencoder-&gt;ExifMetadata(); 
+    CleanupStack::PushL(exifencoder);
+    
+    // Create a TExifWriterUtility object to write the metadata in to the image
+      TExifWriterUtility exifWriteUtility(metaData);
+
+    HBufC8*    buf8ParamWriteVersion=KBuf8ParamWriteVersion().Alloc();
+
+    User::LeaveIfError(exifWriteUtility.SetImageDescription(buf8ParamWriteVersion));
+   
+       delete encodedImageDescriptor;
+      encodedImageDescriptor = NULL;
+      
+      delete buf8ParamWriteVersion;
+      buf8ParamWriteVersion = NULL;
+       
+    CleanupStack::PopAndDestroy(exifencoder);
+
+    }</codeblock> <p>The <xref href="GUID-204C95AA-803F-322F-A43D-4E1622180EF6.dita"><apiname>ExifMetadata()</apiname></xref> provides functions to scale still images. Additionally, it has the ability to scale only a subset of the original image by setting a clipping rectangle. This acts as if the source image outside the region does not exist causing the clipped image to be resized to the size specified. </p> <p>Furthermore, a thumbnail can be added to the JPEG file as shown in the code below: </p> <codeblock id="GUID-F7E532F5-14AC-5F4B-B98E-3A471C6DEA30" xml:space="preserve">void CIclExample::AddThumbnailToJPEGFileL(const TDesC&amp; aFileName)
+    {
+        TInt err = KErrNone;
+                 TInt soiOffset=0;
+                 TInt thumbnailLength = 0;
+     TInt size = 0;
+     Const TInt KConstStartOffset = 12;
+           HBufC8 *desData= NULL;
+  
+     TPtr8 imageFromFilePtr = LoadImageIntoMemoryL(aFileName);
+
+     // Create a CImageTransform object and push it on to the cleanup stack
+     CImageTransform* imageTransform=CImageTransform::NewL(iFs);
+     CleanupStack::PushL(imageTransform);
+
+     // Call SetSourceFilenameL() function of CImageTransform to set the source to file
+     imageTransform-&gt;SetSourceFilenameL(aFileName);
+     
+     // Call SetDestDataL() function of CImageTransform to set the destination size in pixels
+     imageTransform-&gt;SetDestDataL(desData);
+     
+     // Call SetDestSizeInPixelsL() function of CImageTransform to set the destination size in pixels
+     imageTransform-&gt;SetDestSizeInPixelsL(TSize(160, 120), ETrue);
+     
+     // Call SetOptionsL() to add the thumbnail
+     imageTransform-&gt;SetOptionsL(CImageTransform::EThumbnail);
+     
+     //Call SetupL() to setup the ImageTransform
+     imageTransform-&gt;SetupL();
+    
+   // encode the image
+     CActiveListener* activeListener = CreateAndInitializeActiveListenerLC();
+     imageTransform-&gt;Transform(activeListener-&gt;iStatus);
+     CActiveScheduler::Start();
+     User::LeaveIfError(activeListener -&gt; iStatus.Int());    
+     
+     // Create a CJPEGExifDecoder
+  CJPEGExifDecoder* exifdecoder = static_cast&lt;CJPEGExifDecoder*&gt;(CJPEGExifDecoder::DataNewL(iFs, imageFromFilePtr));
+  CleanupStack::PushL(exifdecoder);
+     
+     // Get the thumbnail from the image
+     MExifMetadata* metaData=exifdecoder-&gt;ExifMetadata();        
+
+     // Get the offset to the thumbnail image (i.e. the value of tag 0x0201)
+  metaData-&gt;GetIntegerParam(0x0201, 1, soiOffset);
+        
+     // Get the length of the thumbnail image    (i.e. the value of tag 0x0202)
+     metaData-&gt;GetIntegerParam(0x0202, 1, thumbnailLength);
+     
+     // Add thumbnail to image    
+     RFile file;
+     file.Open(iFs,KbitmapFile,EFileShareReadersOnly|EFileStream|EFileRead);
+     CleanupClosePushL(file);
+     file.Size(size);
+
+     HBufC8* buffer = HBufC8::NewMaxLC(size);
+     TPtr8 bufferDes(buffer-&gt;Des());
+     file.Read(bufferDes);
+ 
+  TPtrC8 thumbnailData = bufferDes.Mid(KConstStartOffset + soiOffset,thumbnailLength);
+     
+  // Write thumbnail data to image
+     User::LeaveIfError(file.Write(thumbnailData));
+
+     file.Close();
+  delete desData;
+  
+     CleanupStack::PopAndDestroy(6);// buffer,exifdecoder,activeListener,imageTransform,desData,iImageInMemory
     }</codeblock> <p><b>Exif extension to support YUV image format</b> </p> <p>An extension to Exif is provided in the ICL to support encoding and decoding uncompressed YUV data images to and from the JPEG data format. The advantage of YUV format over RGB is that it reduces the amount of information required to reproduce a satisfactory video image. This is achieved by some of the components in YUV corresponding to more than one pixel. </p> <p>For example, the pixel does not necessarily have its own set of Y,U,V components, but may share the U and V components with other pixels as shown below: </p> <ul><li id="GUID-0ECC419B-DD45-5AC9-A645-2ABB7879A948"><p>YUV 4:4:4 - Each pixel has a Y, U, and V component. </p> </li> <li id="GUID-AC35BF13-7982-5F41-B9B2-5307FC6CEF90"><p>YUV 4:2:2 - Each horizontal pair of pixels has a Y component per pixel but only one U and V component per pair. </p> </li> <li id="GUID-7AE81F82-1379-5129-89DB-9B2DEB3D7352"><p>YUV 4:2:0 - Each 2*2 block of pixels has a Y component per pixel but only one U and one V component per block. </p> </li> </ul> <p>Note: The YUV bitmap layout may differ from the RGB bitmap layout in the sense that the RGB pixel components are rendered in the same buffer as opposed to YUV bitmaps which may have different layouts. </p> <p>The conversion between RGB and 4:4:4 YUV is pretty straight forward. The <xref href="GUID-BD22C221-5362-3E3B-A32C-56F43433D2FB.dita"><apiname>CFbsBitmaps</apiname></xref> are capable of encapsulating YUV data presented in its basic 4:4:4 YUV interleaved format. However, the existing <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> does not support all possible YUV bitmap formats and layouts. This limitation is overcome by the <xref href="GUID-54159F7E-C9A9-3FB5-806D-751DAF213290.dita"><apiname>CImageFrame</apiname></xref> class which allows the image data to be stored in the memory in any format or layout as long as it is uniquely identified. This is achieved by using format code UID's. </p> <codeblock id="GUID-270015D5-6359-5720-8EF0-494DA64A24FC" xml:space="preserve">    CImageFrame* imageFrame= CImageFrame::NewL(&amp;chunk, imageSizeInBytes, KRChunkSize);</codeblock> </section> </conbody><related-links><link href="GUID-FCEE832C-5D8D-5177-A86A-E10015EF77DC.dita"><linktext>Exif Utility Overview</linktext> </link> <link href="GUID-9C371845-9F5D-56BB-BE16-ED60139D02AF.dita"><linktext>JPEG Exif Plugin</linktext> </link> <link href="GUID-27220B08-B2E7-5106-9BCC-C86938D3E37D.dita"><linktext>Image Display</linktext> </link> <link href="GUID-6914EA3D-6FAB-52DD-A159-990F4ED892A2.dita"><linktext>Image Transformation</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,78 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C" xml:lang="en"><title>Designing
-applications for touch UI</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Both touch screens and hybrid devices are supported by Symbian platform.
-Touch screen enables direct manipulation of content and objects, allowing
-for far more natural interaction with the device. This means a completely
-different user experience and interaction style compared to using a hardware
-keypad.</p>
-<fig id="GUID-0895B1BD-27D2-4824-A02C-F89137A16E53">
-<image href="GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e74654_href.png" scale="60" placement="inline"/>
-</fig>
-<p>All applications must be touch-enabled, which means that they can be used
-with the touch screen alone, regardless of the presence of a keypad. There
-are only three mandatory hardware keys in touch devices based
-on the Symbian platform - Send, End, and Multi-tasking key.</p>
-<p>The application features must follow the platform support for different
-hardware. When designing a touch-enabled Symbian application, the UI must
-be designed so that everything can be accomplished by using the touch screen
-interface, as the potential target devices may or may not have a hardware
-keyboard.  </p>
-<p>The touch UI in the Symbian platform is based on the use of resistive and
-capacitive touch screens. In <b>resistive touch screen</b> technology, two
-conductive and resistive layers are separated by a thin space. When an object
-touches this kind of touch panel, the layers are connected at a certain point,
-and a touch event is registered. This allows efficient stylus control, in
-addition to finger touch - unlike capacitive panels, which usually register
-only finger touch. Additionally, resistive touch screen offers a higher resolution
-and more durability. In <b>capacitive touch screen</b> technology, the panel
-consists of an insulator such as glass, coated with a transparent conductor
-(such as indium tin oxide (ITO)). When an object touches the surface of the
-screen, it results in a distortion of the local electrostatic field, measurable
-as a change in capacitance. Then a touch controller measures the frequency
-variations to ascertain the co-ordinates of the object's touch. Capacitive
-touch screen supports <xref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita">multi-touch</xref>.</p>
-<p>The hardware is supported by various:</p>
-<ul>
-<li><p>touch-specific components (see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for common UI components</xref>)</p></li>
-<li><p>component and UI behavior changes</p></li>
-<li><p>layout changes, and</p></li>
-<li><p>additions to the interaction style.</p></li>
-</ul>
-<p>The touch UI is designed to enable full task flow with touch, with minimal
-need to switch to hardware keys. Thus, the design ensures that users can complete
-a task with the chosen interaction method from start to finish. </p>
-<p>While designing and implementing applications for touch screen devices
-based on the Symbian platform, consider interactions that benefit the most
-from the touch UI.  </p>
-<p>If you can apply direct manipulation of the UI, for example when moving
-items from one place to another, or scrolling a page, do not confine the user
-with unnecessary scrollbars or have the user resort to options list commands.</p>
-<p>Instead, enable the user to view pages larger than a screen by panning
-them directly, and dragging and dropping items rather than marking them and
-using menu options. </p>
-<ul>
-<li><p>Remember that the most intuitive touch screen interactions that can
-be performed using a finger are tapping, stroking up/down/left/right, and
-the long tap. </p></li>
-<li><p>Utilize strokes that are easily discovered to the users in the given
-context. It should be explicit to the user where strokes can be performed. </p></li>
-<li><p>Design to ensure that users can complete a task with the same interaction
-method from start to finish - touch or hardware keys, stylus, or finger, and
-using one hand or both hands. </p></li>
-<li><p>Aim to optimize system performance and battery consumption to provide
-a fluid and reliable touch user experience. </p></li>
-</ul>
-<p><b>See Also</b>:</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C" xml:lang="en"><title>Designing
+applications for touch UI</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Both touch screens and hybrid devices are supported by Symbian platform.
+Touch screen enables direct manipulation of content and objects, allowing
+for far more natural interaction with the device. This means a completely
+different user experience and interaction style compared to using a hardware
+keypad.</p>
+<fig id="GUID-0895B1BD-27D2-4824-A02C-F89137A16E53">
+<image href="GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e69489_href.png" scale="60" placement="inline"/>
+</fig>
+<p>All applications must be touch-enabled, which means that they can be used
+with the touch screen alone, regardless of the presence of a keypad. In Symbian
+platform-based touch devices, the important hardware keys are Send, End, Multi-tasking
+and Power key.</p>
+<p>The application features must follow the platform support for different
+hardware. When designing a touch-enabled Symbian application, the UI must
+be designed so that everything can be accomplished by using the touch screen
+interface, as the potential target devices may or may not have a hardware
+keyboard.  </p>
+<p>The touch UI in the Symbian platform is based on the use of resistive and
+capacitive touch screens. In <b>resistive touch screen</b> technology, two
+conductive and resistive layers are separated by a thin space. When an object
+touches this kind of touch panel, the layers are connected at a certain point,
+and a touch event is registered. This allows efficient stylus control, in
+addition to finger touch - unlike capacitive panels, which usually register
+only finger touch. Additionally, resistive touch screen offers a higher resolution
+and more durability. In <b>capacitive touch screen</b> technology, the panel
+consists of an insulator such as glass, coated with a transparent conductor
+(such as indium tin oxide (ITO)). When an object touches the surface of the
+screen, it results in a distortion of the local electrostatic field, measurable
+as a change in capacitance. Then a touch controller measures the frequency
+variations to ascertain the co-ordinates of the object's touch. Capacitive
+touch screen supports <xref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita">multi-touch</xref>.</p>
+<p>The hardware is supported by various:</p>
+<ul>
+<li><p>touch-specific components (see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
+support for common UI components</xref>)</p></li>
+<li><p>component and UI behavior changes</p></li>
+<li><p>layout changes, and</p></li>
+<li><p>additions to the interaction style.</p></li>
+</ul>
+<p>The touch UI is designed to enable full task flow with touch, with minimal
+need to switch to hardware keys. Thus, the design ensures that users can complete
+a task with the chosen interaction method from start to finish. </p>
+<p>While designing and implementing applications for touch screen devices
+based on the Symbian platform, consider interactions that benefit the most
+from the touch UI.  </p>
+<p>If you can apply direct manipulation of the UI, for example when moving
+items from one place to another, or scrolling a page, do not confine the user
+with unnecessary scrollbars or have the user resort to options list commands.</p>
+<p>Instead, enable the user to view pages larger than a screen by panning
+them directly, and dragging and dropping items rather than marking them and
+using menu options. </p>
+<ul>
+<li><p>Remember that the most intuitive touch screen interactions that can
+be performed using a finger are tapping, stroking up/down/left/right, and
+the long tap. </p></li>
+<li><p>Utilize strokes that are easily discovered to the users in the given
+context. It should be explicit to the user where strokes can be performed. </p></li>
+<li><p>Design to ensure that users can complete a task with the same interaction
+method from start to finish - touch or hardware keys, stylus, or finger, and
+using one hand or both hands. </p></li>
+<li><p>Aim to optimize system performance and battery consumption to provide
+a fluid and reliable touch user experience. </p></li>
+</ul>
+<p><b>See Also</b>:</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3" xml:lang="en"><title>Handle
-Global Variable Example</title><shortdesc>This example demonstrates: </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>How to handle global variables within the library code </p>
-<p>How to use WSD (Writable Static Data) in dll</p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-11-1-3-3"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.zip" scope="external"> handleglobalvar.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-11-1-3-4"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example.</p> <p><b>Capabilities</b> </p>The
-program capabilities are defined in <filepath>globalvarex.mmp</filepath>:<codeph> CAPABILITY
-NONE</codeph>. Libwsddll library capabilities are defined in<filepath>libwsddll.mmp</filepath> file: <codeph>CAPABILITY
-ALL -TCB</codeph>. <p><b> Application Launching</b> </p>The application can
-be launched by executing globalvarex from eshell. <p><b>libwsd library </b></p>This
-library is used to get/set dll global Data. It demonstrates how to handle
-WSD (Writable Static Data).<p><b>How to handle WSD in dll</b></p>Collect all
-global variables within the structure TWsdData and creat the instance whenever
-it's required. For target release, use global variables and add EPOCALLOWDLLDATA
-in the library mmp file. wsddll.h and wsddll.cpp implement the concept of
-how to handle WSD data in Dll. </section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-11-1-3-5"><title>Building and
-Using</title> To build the handleglobalvar example application, go to the
-handleglobalvar\group directory and build the application.  The definition
-for the whole application can be found in the bld.inf file in the group subdirectory
-of the applications main directory. </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3" xml:lang="en"><title>Handle
+Global Variable Example</title><shortdesc>This example demonstrates: </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>How to handle global variables within the library code </p>
+<p>How to use WSD (Writable Static Data) in dll</p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-10-1-3-3"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.zip" scope="external"> handleglobalvar.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-10-1-3-4"><title>Design and
+Implementation</title> <p>The following sections provide information about
+the implementation of the example.</p> <p><b>Capabilities</b> </p>The
+program capabilities are defined in <filepath>globalvarex.mmp</filepath>:<codeph> CAPABILITY
+NONE</codeph>. Libwsddll library capabilities are defined in<filepath>libwsddll.mmp</filepath> file: <codeph>CAPABILITY
+ALL -TCB</codeph>. <p><b> Application Launching</b> </p>The application can
+be launched by executing globalvarex from eshell. <p><b>libwsd library </b></p>This
+library is used to get/set dll global Data. It demonstrates how to handle
+WSD (Writable Static Data).<p><b>How to handle WSD in dll</b></p>Collect all
+global variables within the structure TWsdData and creat the instance whenever
+it's required. For target release, use global variables and add EPOCALLOWDLLDATA
+in the library mmp file. wsddll.h and wsddll.cpp implement the concept of
+how to handle WSD data in Dll. </section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-10-1-3-5"><title>Building and
+Using</title> To build the handleglobalvar example application, go to the
+handleglobalvar\group directory and build the application.  The definition
+for the whole application can be found in the bld.inf file in the group subdirectory
+of the applications main directory. </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2022F702-9899-5798-8932-D70119C7177D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2022F702-9899-5798-8932-D70119C7177D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2022F702-9899-5798-8932-D70119C7177D" xml:lang="en"><title>Setting
-Up A Log Engine Client </title><shortdesc>This tutorial describes how to set up a Log Engine client. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4EAACF43-7B17-522C-A617-96C15971EBCA"><title>Introduction</title> <p>If
-you are certain that you are coding for a platform with logging functionality
-you create a custom class with some such name as <xref href="GUID-3016DE27-6C94-3119-B174-831B67B09B27.dita"><apiname>CMyLogEngine</apiname></xref>.
-It should have members of the classes <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref>, <xref href="GUID-3A3E6F09-0F78-38E1-95F5-00C743F41073.dita"><apiname>CLogViewEvent</apiname></xref>, <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref> and <xref href="GUID-99144BA6-F79A-3D3C-B1D3-272B3723C42C.dita"><apiname>CLogFilter</apiname></xref> and an observer of some kind. The functions of your
-custom class will use the functionality of these classes by calls to the member
-objects. </p> <p>If you are not certain that your platform will provide logging
-functionality you must use a log wrapper framework. Write a custom class to
-use the log wrapper functionality with some such name as <codeph>myLogWrapper</codeph>.
-It should have two members which own <xref href="GUID-146D719E-BDD6-3F20-80B1-EDE09081A6EA.dita"><apiname>CLogWrapper</apiname></xref> and <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref> objects.
-In the constructor function of <codeph>myLogWrapper</codeph> call the <xref href="GUID-51862DAE-2285-352F-B66E-B2544638E30E.dita"><apiname>ClientAvailable()</apiname></xref> function
-of <xref href="GUID-146D719E-BDD6-3F20-80B1-EDE09081A6EA.dita"><apiname>CLogWrapper</apiname></xref> to determine whether logging functionality
-is present. If so, construct the <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref> member: if
-not, leave. The effect of this is that calls to the log client functionality
-of <codeph>myLogWrapper</codeph> will access an actual log client if the functionality
-is available. However, if the functionality is not available calls to the
-log client functionality will either have no effect or else leave as in this
-example code. </p> </section>
-<section id="GUID-00974547-A3DC-442C-B50C-1C8E7180B8A4"><title>Procedure</title> <ol id="GUID-F8F83C3B-A722-5C79-B286-F48F51019524">
-<li id="GUID-7F2D3FBF-E541-530D-9A56-3C49A1D006E2"><p>Create a custom class <xref href="GUID-3016DE27-6C94-3119-B174-831B67B09B27.dita"><apiname>CMyLogEngine</apiname></xref>  </p> </li>
-<li id="GUID-DFCDEC1F-3B62-5A65-97DB-E63DC68BFEED"><p>Declare the members <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref>, <xref href="GUID-3A3E6F09-0F78-38E1-95F5-00C743F41073.dita"><apiname>CLogViewEvent</apiname></xref>, <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref> and <xref href="GUID-99144BA6-F79A-3D3C-B1D3-272B3723C42C.dita"><apiname>CLogFilter</apiname></xref> in the header
-file of the client application </p> </li>
-<li id="GUID-3471D668-8369-5458-B436-FD8344988065"><p>Declare <xref href="GUID-BD2669C7-AE36-3AA8-AAAE-A2F01A319369.dita"><apiname>ConstrucL()</apiname></xref> function
-in the header file of the client application </p> </li>
-<li id="GUID-5B55236A-F7C8-54FB-B0E9-D3CAC99ADDF0"><p>Implement <xref href="GUID-C8E0575D-5A7F-3D00-9BE5-AD8D6DBCF2F7.dita"><apiname>ConstructL()</apiname></xref> function </p> <ol id="GUID-B6FFC684-372C-5FC3-9035-B7A0FF4B884E">
-<li id="GUID-8FAB2EEA-79D9-5572-B2F2-15057B860366"><p>Establish a connection
-to the Log Engine </p> <p><codeblock id="GUID-CDFA500C-FB18-5713-B4F9-7D355D107122" xml:space="preserve">    iLogClient = CLogClient::NewL(iFs);</codeblock> </p> </li>
-<li id="GUID-E8DFFAD0-506E-5752-B51D-52153AEADD37"><p>get the log events using <codeph>CLogViewEvent</codeph>  </p> <p><codeblock id="GUID-55F3DE8A-FAC5-5C9F-8931-55CA7838A8F2" xml:space="preserve">iLogViewEvent = CLogViewEvent::NewL(*iLogClient);</codeblock> </p> </li>
-<li id="GUID-7CF80109-CA54-549F-A46D-3C950DAC1711"><p>get the log of recent
-events using <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref>  </p> <p><codeblock id="GUID-3406E92A-432B-57E6-B6A2-3D63C4EC0B72" xml:space="preserve">iLogViewRecent = CLogViewRecent::NewL(*iLogClient);</codeblock> </p> </li>
-<li id="GUID-F9DB43F5-F69D-50D1-B287-EFC85DA9828E"><p>add a log filter using <xref href="GUID-F7EB6F45-0FBE-39E7-B146-8E500356B5BE.dita"><apiname>ClogFilter</apiname></xref>  </p> <p><codeblock id="GUID-F90E0B70-AC53-54B9-93B4-26B33A919B33" xml:space="preserve">iLogFilter = CLogFilter::NewL();</codeblock> </p> </li>
-</ol> </li>
-</ol> </section>
-<section id="GUID-BE0D8C52-2FCA-45F2-9BEF-42D5F8CCD4F9"><title>Result</title> <p>The client applications can use the log
-events to be displayed to the user or for other used as a data for further
-processing. </p> </section>
-<example id="GUID-22EAC40F-881C-5AC0-B919-016E502CC7E6"><title>Log engine
-client example</title> <p>Example code for a Log Engine client on a platform
-with logging functionality </p> <codeblock id="GUID-2C393B78-BAA0-5893-9A6A-9DC9D76749B6" xml:space="preserve">void CMyLogEngine::ConstructL()
-    {
-    
-    // Establish connection to log engine
-    iLogClient = CLogClient::NewL(iFs);
- 
-    // Log view and view for recent events with standard priority
-    iLogViewEvent = CLogViewEvent::NewL(*iLogClient);
-    iLogViewRecent = CLogViewRecent::NewL(*iLogClient);
-
-    // Filter for events
-    iLogFilter = CLogFilter::NewL();
-</codeblock> <p>Example code for a Log Engine client using a wrapper framework </p> <codeblock id="GUID-A409E255-3B0B-51C9-9633-010608E07122" xml:space="preserve">void CMyLogWrapper::ConstructL(RFs&amp; aFs)
-     {
-     
-     // create the CLogWrapper to forward requests to.
-     iLogWrapper = CLogWrapper::NewL(aFs);
- 
-     if (iLogWrapper-&gt;ClientAvailable())
-         {
-         iLogClient = static_cast&lt;CLogClient*&gt;(&amp;iLogWrapper-&gt;Log());
-         }
-     else
-         {
-         User::Leave(KErrNotSupported);
-         }
-     }
-
-</codeblock> <p>You can now use <codeph>myLogWrapper</codeph> as if it was
-a log client. </p> </example>
-</conbody><related-links>
-<link href="GUID-E4A950EA-5671-5755-B3EF-5D6B90E19AE6.dita"><linktext>Maintaining
-Log Events</linktext></link>
-<link href="GUID-BE65B3A7-04E8-5406-B46A-09E2608E0F1F.dita"><linktext>Requesting
-Log Engine Notifications</linktext></link>
-<link href="GUID-55ECBCF5-FC29-5A4A-A3C6-1CB1C0D562CE.dita"><linktext>Displaying
-Log Events</linktext></link>
-<link href="GUID-BCB0E50F-B22E-5964-BB68-BEE1870D9C79.dita"><linktext>Configuring
-Log Engine </linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2022F702-9899-5798-8932-D70119C7177D" xml:lang="en"><title>Setting
+Up A Log Engine Client </title><shortdesc>This tutorial describes how to set up a Log Engine client. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4EAACF43-7B17-522C-A617-96C15971EBCA"><title>Introduction</title> <p>If
+you are certain that you are coding for a platform with logging functionality
+you create a custom class with some such name as <xref href="GUID-3016DE27-6C94-3119-B174-831B67B09B27.dita"><apiname>CMyLogEngine</apiname></xref>.
+It should have members of the classes <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref>, <xref href="GUID-3A3E6F09-0F78-38E1-95F5-00C743F41073.dita"><apiname>CLogViewEvent</apiname></xref>, <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref> and <xref href="GUID-99144BA6-F79A-3D3C-B1D3-272B3723C42C.dita"><apiname>CLogFilter</apiname></xref> and an observer of some kind. The functions of your
+custom class will use the functionality of these classes by calls to the member
+objects. </p> <p>If you are not certain that your platform will provide logging
+functionality you must use a log wrapper framework. Write a custom class to
+use the log wrapper functionality with some such name as <codeph>myLogWrapper</codeph>.
+It should have two members which own <xref href="GUID-146D719E-BDD6-3F20-80B1-EDE09081A6EA.dita"><apiname>CLogWrapper</apiname></xref> and <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref> objects.
+In the constructor function of <codeph>myLogWrapper</codeph> call the <xref href="GUID-51862DAE-2285-352F-B66E-B2544638E30E.dita"><apiname>ClientAvailable()</apiname></xref> function
+of <xref href="GUID-146D719E-BDD6-3F20-80B1-EDE09081A6EA.dita"><apiname>CLogWrapper</apiname></xref> to determine whether logging functionality
+is present. If so, construct the <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref> member: if
+not, leave. The effect of this is that calls to the log client functionality
+of <codeph>myLogWrapper</codeph> will access an actual log client if the functionality
+is available. However, if the functionality is not available calls to the
+log client functionality will either have no effect or else leave as in this
+example code. </p> </section>
+<section id="GUID-00974547-A3DC-442C-B50C-1C8E7180B8A4"><title>Procedure</title> <ol id="GUID-F8F83C3B-A722-5C79-B286-F48F51019524">
+<li id="GUID-7F2D3FBF-E541-530D-9A56-3C49A1D006E2"><p>Create a custom class <xref href="GUID-3016DE27-6C94-3119-B174-831B67B09B27.dita"><apiname>CMyLogEngine</apiname></xref>  </p> </li>
+<li id="GUID-DFCDEC1F-3B62-5A65-97DB-E63DC68BFEED"><p>Declare the members <xref href="GUID-51C67545-12BA-326D-BD8F-662B24C68ED2.dita"><apiname>CLogClient</apiname></xref>, <xref href="GUID-3A3E6F09-0F78-38E1-95F5-00C743F41073.dita"><apiname>CLogViewEvent</apiname></xref>, <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref> and <xref href="GUID-99144BA6-F79A-3D3C-B1D3-272B3723C42C.dita"><apiname>CLogFilter</apiname></xref> in the header
+file of the client application </p> </li>
+<li id="GUID-3471D668-8369-5458-B436-FD8344988065"><p>Declare <xref href="GUID-BD2669C7-AE36-3AA8-AAAE-A2F01A319369.dita"><apiname>ConstrucL()</apiname></xref> function
+in the header file of the client application </p> </li>
+<li id="GUID-5B55236A-F7C8-54FB-B0E9-D3CAC99ADDF0"><p>Implement <xref href="GUID-C8E0575D-5A7F-3D00-9BE5-AD8D6DBCF2F7.dita"><apiname>ConstructL()</apiname></xref> function </p> <ol id="GUID-B6FFC684-372C-5FC3-9035-B7A0FF4B884E">
+<li id="GUID-8FAB2EEA-79D9-5572-B2F2-15057B860366"><p>Establish a connection
+to the Log Engine </p> <p><codeblock id="GUID-CDFA500C-FB18-5713-B4F9-7D355D107122" xml:space="preserve">    iLogClient = CLogClient::NewL(iFs);</codeblock> </p> </li>
+<li id="GUID-E8DFFAD0-506E-5752-B51D-52153AEADD37"><p>get the log events using <codeph>CLogViewEvent</codeph>  </p> <p><codeblock id="GUID-55F3DE8A-FAC5-5C9F-8931-55CA7838A8F2" xml:space="preserve">iLogViewEvent = CLogViewEvent::NewL(*iLogClient);</codeblock> </p> </li>
+<li id="GUID-7CF80109-CA54-549F-A46D-3C950DAC1711"><p>get the log of recent
+events using <xref href="GUID-F40F9556-F223-36A5-9812-6EF6FF3F5156.dita"><apiname>CLogViewRecent</apiname></xref>  </p> <p><codeblock id="GUID-3406E92A-432B-57E6-B6A2-3D63C4EC0B72" xml:space="preserve">iLogViewRecent = CLogViewRecent::NewL(*iLogClient);</codeblock> </p> </li>
+<li id="GUID-F9DB43F5-F69D-50D1-B287-EFC85DA9828E"><p>add a log filter using <xref href="GUID-99144BA6-F79A-3D3C-B1D3-272B3723C42C.dita"><apiname>CLogFilter</apiname></xref>  </p> <p><codeblock id="GUID-F90E0B70-AC53-54B9-93B4-26B33A919B33" xml:space="preserve">iLogFilter = CLogFilter::NewL();</codeblock> </p> </li>
+</ol> </li>
+</ol> </section>
+<section id="GUID-BE0D8C52-2FCA-45F2-9BEF-42D5F8CCD4F9"><title>Result</title> <p>The
+client applications can use the log events to be displayed to the user or
+for other used as a data for further processing. </p> </section>
+<example id="GUID-22EAC40F-881C-5AC0-B919-016E502CC7E6"><title>Log engine
+client example</title> <p>Example code for a Log Engine client on a platform
+with logging functionality </p> <codeblock id="GUID-2C393B78-BAA0-5893-9A6A-9DC9D76749B6" xml:space="preserve">void CMyLogEngine::ConstructL()
+    {
+    
+    // Establish connection to log engine
+    iLogClient = CLogClient::NewL(iFs);
+ 
+    // Log view and view for recent events with standard priority
+    iLogViewEvent = CLogViewEvent::NewL(*iLogClient);
+    iLogViewRecent = CLogViewRecent::NewL(*iLogClient);
+
+    // Filter for events
+    iLogFilter = CLogFilter::NewL();
+</codeblock> <p>Example code for a Log Engine client using a wrapper framework </p> <codeblock id="GUID-A409E255-3B0B-51C9-9633-010608E07122" xml:space="preserve">void CMyLogWrapper::ConstructL(RFs&amp; aFs)
+     {
+     
+     // create the CLogWrapper to forward requests to.
+     iLogWrapper = CLogWrapper::NewL(aFs);
+ 
+     if (iLogWrapper-&gt;ClientAvailable())
+         {
+         iLogClient = static_cast&lt;CLogClient*&gt;(&amp;iLogWrapper-&gt;Log());
+         }
+     else
+         {
+         User::Leave(KErrNotSupported);
+         }
+     }
+
+</codeblock> <p>You can now use <codeph>myLogWrapper</codeph> as if it was
+a log client. </p> </example>
+</conbody><related-links>
+<link href="GUID-E4A950EA-5671-5755-B3EF-5D6B90E19AE6.dita"><linktext>Maintaining
+Log Events</linktext></link>
+<link href="GUID-BE65B3A7-04E8-5406-B46A-09E2608E0F1F.dita"><linktext>Requesting
+Log Engine Notifications</linktext></link>
+<link href="GUID-55ECBCF5-FC29-5A4A-A3C6-1CB1C0D562CE.dita"><linktext>Displaying
+Log Events</linktext></link>
+<link href="GUID-BCB0E50F-B22E-5964-BB68-BEE1870D9C79.dita"><linktext>Configuring
+Log Engine </linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24" xml:lang="en"><title>Handling
-user command selection</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#35c34ef4a35ad96d9807406d16606b29" format="application/java-archive"><codeph>HandleControlEventL()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref> to handle events that occur when user
-selects a menu item.</p>
-<p><draft-comment time="2008-05-19T11:19" translate="no">Add sample code on handling user
-command selection here.</draft-comment></p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-20B2C96A-9742-4CB0-A37F-19B65765E826.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-20B2C96A-9742-4CB0-A37F-19B65765E826.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-20B2C96A-9742-4CB0-A37F-19B65765E826" xml:lang="en"><title>Implementing
-the MHTTPDataOptimiser Interface</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To enable support for Web Acceleration, you must implement your own custom
-encoding and decoding mechanisms by implementing the functions of the interface <codeph>MHTTPDataOptimiser</codeph>.
-The following code illustrates the <codeph>MHTTPDataOptimiser</codeph> interface
-that consists of the <codeph>EncodeL()</codeph> and <codeph>DecodeL()</codeph> methods: </p>
-<codeblock id="GUID-E9CE6DD9-B772-5A5E-9B07-538F07C3DEC5" xml:space="preserve">class MHTTPDataOptimiser
-{
-
-public:
-
-virtual void EncodeL(const TDesC8&amp; aHTTPData, HBufC8*&amp; aEncodedData) = 0;
-    
-virtual void DecodeL(const TDesC8&amp; aData, HBufC8*&amp; aHTTPData, TBool&amp;     aTransFail) = 0;
-
-};</codeblock>
-<section id="GUID-6E64E5BA-0FA7-5B9D-987E-09F2D5F53AE8-GENID-1-8-1-13-1-1-3-1-3-1-13-1-4-1-4-1-2-3"> <title>The EncodeL()
-method</title><p>This method converts HTTP request data (to your selected
-network optimisation protocol format) before it is sent across the TCP connection.
-This method has the following parameters: </p><ul>
-<li id="GUID-5B67C5B3-3112-5E1E-9BCD-4665BAE0F013"><p> <b>aHTTPData: </b> Contains
-HTTP request data in standard HTTP format. </p> </li>
-<li id="GUID-2C903A38-1C76-54E0-84A1-01F35C1C9C09"><p> <b>aEncodedData:</b> On
-return contains encoded HTTP request data in a network optimisation protocol
-format. </p> </li>
-</ul><p> <b> Note:</b> It is assumed that you define a custom optimisation
-mechanism to encode the HTTP request data by implementing the <codeph>EncodeL()</codeph> method. </p> </section>
-<section id="GUID-6E64E5BA-0FA7-5B9D-987E-09F2D5F53AE8-GENID-1-8-1-13-1-1-3-1-3-1-13-1-4-1-4-1-2-4"> <title>The DecodeL()
-method</title><p>This method converts the HTTP response data in your selected
-network optimisation protocol format back to the standard HTTP response data
-format. This method has the following parameters: </p><ul>
-<li id="GUID-D07BB5C7-1E33-5DD3-94D3-1FC8C72053DA"><p> <b>aData:</b> Contains
-the raw data in a network optimisation protocol format received over the TCP
-connection. </p> </li>
-<li id="GUID-BFD2C0BC-20E8-5DE7-84F3-D79FADBEAA3B"><p> <b> aHTTPData:</b> On
-return of this method the <codeph>aHTTPData</codeph> parameter contains the
-HTTP response data. </p> </li>
-<li id="GUID-FE67D081-A66E-54A4-BCB3-5EB6E8D5AF57"><p> <b> aTransFail:</b> When
-you set this parameter value to <codeph>ETrue</codeph> it sends the <codeph>KErrHTTPOptimiserFailsTrans</codeph> event
-to the mobile browser application. </p> </li>
-</ul><p> <b>Note:</b> In a scenario where the HTTP response data is split
-across various packets (for example, when the network bandwidth is low), the <codeph>MHTTPDataOptimiser::DecodeL()</codeph> method
-is called for every data packet received. In this scenario, to ensure successful
-parsing of the HTTP response data, the <codeph>aTransFail</codeph> parameter
-must be set to <codeph>EFalse</codeph> for every call made to <codeph>MHTTPDataOptimiser::DecodeL()</codeph>,
-until the final transaction is encountered. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-20B2C96A-9742-4CB0-A37F-19B65765E826" xml:lang="en"><title>Implementing
+the MHTTPDataOptimiser Interface</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To enable support for Web Acceleration, you must implement your own custom
+encoding and decoding mechanisms by implementing the functions of the interface <codeph>MHTTPDataOptimiser</codeph>.
+The following code illustrates the <codeph>MHTTPDataOptimiser</codeph> interface
+that consists of the <codeph>EncodeL()</codeph> and <codeph>DecodeL()</codeph> methods: </p>
+<codeblock id="GUID-E9CE6DD9-B772-5A5E-9B07-538F07C3DEC5" xml:space="preserve">class MHTTPDataOptimiser
+{
+
+public:
+
+virtual void EncodeL(const TDesC8&amp; aHTTPData, HBufC8*&amp; aEncodedData) = 0;
+    
+virtual void DecodeL(const TDesC8&amp; aData, HBufC8*&amp; aHTTPData, TBool&amp;     aTransFail) = 0;
+
+};</codeblock>
+<section id="GUID-6E64E5BA-0FA7-5B9D-987E-09F2D5F53AE8-GENID-1-10-1-13-1-1-3-1-3-1-13-1-4-1-4-1-2-3"> <title>The EncodeL()
+method</title><p>This method converts HTTP request data (to your selected
+network optimisation protocol format) before it is sent across the TCP connection.
+This method has the following parameters: </p><ul>
+<li id="GUID-5B67C5B3-3112-5E1E-9BCD-4665BAE0F013"><p> <b>aHTTPData: </b> Contains
+HTTP request data in standard HTTP format. </p> </li>
+<li id="GUID-2C903A38-1C76-54E0-84A1-01F35C1C9C09"><p> <b>aEncodedData:</b> On
+return contains encoded HTTP request data in a network optimisation protocol
+format. </p> </li>
+</ul><p> <b> Note:</b> It is assumed that you define a custom optimisation
+mechanism to encode the HTTP request data by implementing the <codeph>EncodeL()</codeph> method. </p> </section>
+<section id="GUID-6E64E5BA-0FA7-5B9D-987E-09F2D5F53AE8-GENID-1-10-1-13-1-1-3-1-3-1-13-1-4-1-4-1-2-4"> <title>The DecodeL()
+method</title><p>This method converts the HTTP response data in your selected
+network optimisation protocol format back to the standard HTTP response data
+format. This method has the following parameters: </p><ul>
+<li id="GUID-D07BB5C7-1E33-5DD3-94D3-1FC8C72053DA"><p> <b>aData:</b> Contains
+the raw data in a network optimisation protocol format received over the TCP
+connection. </p> </li>
+<li id="GUID-BFD2C0BC-20E8-5DE7-84F3-D79FADBEAA3B"><p> <b> aHTTPData:</b> On
+return of this method the <codeph>aHTTPData</codeph> parameter contains the
+HTTP response data. </p> </li>
+<li id="GUID-FE67D081-A66E-54A4-BCB3-5EB6E8D5AF57"><p> <b> aTransFail:</b> When
+you set this parameter value to <codeph>ETrue</codeph> it sends the <codeph>KErrHTTPOptimiserFailsTrans</codeph> event
+to the mobile browser application. </p> </li>
+</ul><p> <b>Note:</b> In a scenario where the HTTP response data is split
+across various packets (for example, when the network bandwidth is low), the <codeph>MHTTPDataOptimiser::DecodeL()</codeph> method
+is called for every data packet received. In this scenario, to ensure successful
+parsing of the HTTP response data, the <codeph>aTransFail</codeph> parameter
+must be set to <codeph>EFalse</codeph> for every call made to <codeph>MHTTPDataOptimiser::DecodeL()</codeph>,
+until the final transaction is encountered. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e202333_href.png has changed
Binary file Symbian3/SDK/Source/GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e207341_href.png has changed
Binary file Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e67767_href.png has changed
Binary file Symbian3/SDK/Source/GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e72920_href.png has changed
Binary file Symbian3/SDK/Source/GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e4552_href.png has changed
Binary file Symbian3/SDK/Source/GUID-20FEEF54-23CB-4D30-B846-11B4ACE8E772_d0e5827_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e237328_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e241065_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2161BD64-889B-5EAB-B023-1162FE9619DB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2161BD64-889B-5EAB-B023-1162FE9619DB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,160 +1,160 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2161BD64-889B-5EAB-B023-1162FE9619DB" xml:lang="en"><title>How
-to use multiple active objects</title><shortdesc>This document illustrates how to use one active object to control
-another.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following example code fragments show how to construct a program with
-two active objects, where one controls the initiation and cancellation of
-the other.</p>
-<p>In these examples:</p>
-<p><codeph>CActiveConsole</codeph> is an active object and contains a pointer
-to a <codeph>CConsoleBase</codeph> object which is a service provider. Through
-this service provider, the active object provides the facility to request
-a character from the keyboard.</p>
-<p><codeph>RunL()</codeph> delegates the handling of completed requests to
-the pure virtual function <codeph>ProcessKeyPress()</codeph>, which must be
-provided by a derived class.</p>
-<p><codeph>CMessageKeyProcessor</codeph> is further derived from <codeph>CActiveConsole</codeph> and
-contains a pointer to another active object <codeph>CExampleActiveObject</codeph>,
-which requires input from the keyboard.</p>
-<p>Depending on the input character, the <codeph>CMessageKeyProcessor</codeph> active
-object does one of the following:</p>
-<ul>
-<li id="GUID-9151F698-3D4F-5C3D-A758-194018FC053C"><p>issues a request to
-the <codeph>CExampleActiveObject</codeph> active object</p> </li>
-<li id="GUID-FBF8743F-0147-502B-BBE8-824DB727F791"><p>cancels any outstanding
-request to the <codeph>CExampleActiveObject</codeph> active object</p> </li>
-<li id="GUID-2E714DE6-AAE1-5926-8026-9B6E1C09C5C7"><p>does nothing</p> </li>
-</ul>
-<p>The implementation of the <codeph>CExampleActiveObject</codeph> active
-object is not relevant to the example and is not shown.</p>
-<p>The following diagram shows the relationship between the classes.</p>
-<fig id="GUID-AF998428-D142-56F8-8967-AF66AF9119F8">
-<image href="GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e236747_href.png" placement="inline"/>
-</fig>
-<section id="GUID-5E2A6378-546D-46C5-8081-6425A96FAAFF"><title>Encapsulating the service provider</title> <p>The class <codeph>CActiveConsole</codeph> encapsulates
-the provision of basic keyboard services. Its <codeph>iConsole</codeph> data
-member is a pointer to the service provider, the <codeph>CConsoleBase</codeph> object.</p> <p>The
-active object class is defined as:</p> <codeblock id="GUID-DC98E432-1927-55F5-94A3-68D2493B75E8" xml:space="preserve">class CActiveConsole : public CActive
-    {
-public:
-    CActiveConsole(CConsoleBase* aConsole);
-    void ConstructL();
-    ~CActiveConsole();
-    void RequestCharacter();
-    void RunL();
-    void DoCancel();
-    virtual void ProcessKeyPress(TChar aChar)=0;
-protected:
-    CConsoleBase* iConsole; 
-    };</codeblock> <p>The class constructor takes a pointer to a <codeph>CConsoleBase</codeph> object
-as its single argument and initializes its <codeph>iConsole</codeph> data
-member to this value:</p> <codeblock id="GUID-2C5C49DB-AE88-5F84-82D7-BA5680A286C8" xml:space="preserve">CActiveConsole::CActiveConsole(CConsoleBase* aConsole)
-    : iConsole(aConsole)
-    {}</codeblock> <p>The <codeph>ConstructL()</codeph> function adds the
-active object to the active scheduler:</p> <codeblock id="GUID-CE947B19-9664-5774-ABFB-17E79A112131" xml:space="preserve">void CActiveConsole::ConstructL()
-    {
-    CActiveScheduler::Add(this);
-    }</codeblock> <p>The destructor cancels any outstanding request before
-destroying the active object:</p> <codeblock id="GUID-0120EE92-2BD8-5B2E-841A-DC366B3BED12" xml:space="preserve">CActiveConsole::~CActiveConsole()
-    {
-    Cancel();
-    }</codeblock> <p><codeph>DoCancel()</codeph> is implemented to cancel
-the request to <codeph>iConsole</codeph>.</p> <p>The <codeph>RequestCharacter()</codeph> function
-makes a request for a key press to the service provider by calling <codeph>iConsole-&gt;Read(iStatus)</codeph> and
-setting the active request flag:</p> <codeblock id="GUID-EF731B8D-7001-503F-8167-7A10697D5202" xml:space="preserve">void CActiveConsole::RequestCharacter()
-    {
-    iConsole-&gt;Read(iStatus);
-    SetActive();
-    }</codeblock> <p>The <codeph>RunL()</codeph> function makes a call to
-the <codeph>ProcessKeyPress()</codeph> function. This is a pure virtual function
-that derived classes must implement to handle the key press and to reissue
-the request:</p> <codeblock id="GUID-DF9F07BB-2099-5310-8921-3A290580B4AF" xml:space="preserve">void CActiveConsole::RunL()
-    {
-    ProcessKeyPress(TChar(iConsole-&gt;KeyCode()));
-    }</codeblock> </section>
-<section id="GUID-FFD3321F-3A46-4C40-A779-39C142DC79C3"><title>Further deriving from the active object</title> <p>The class <codeph>CMessageKeyProcessor</codeph> is
-a concrete class, derived from <codeph>CActiveConsole</codeph>. It provides
-an implementation for the<codeph>ProcessKeyPress()</codeph> function and can
-issue or cancel requests to a<codeph>CExampleActiveObject</codeph> active
-object.</p> <p>This active object class is defined as:</p> <codeblock id="GUID-C5F51E0D-517C-523D-BADA-4B3CDCA53073" xml:space="preserve">class CMessageKeyProcessor : public CActiveConsole
-    {
-public:
-    ...
-    CMessageKeyProcessor(CConsoleBase* aConsole, CExampleActiveObject* iExampleObject);
-    void ProcessKeyPress(TChar aChar);
-private:
-    CExampleActiveObject* iExampleObject;
-    };</codeblock> <p><b>Notes</b> </p> <ul>
-<li id="GUID-2341BA65-3806-5354-9F9D-EB1A8FD3FD61"><p>The first constructor
-parameter specifies a <codeph>CConsoleBase</codeph> which will be used to
-provide asynchronous keyboard input.</p> </li>
-<li id="GUID-E9CAAF35-C404-5418-9720-F560C4CED53D"><p>the second constructor
-parameter specifies a <codeph>CExampleActiveObject</codeph> which will be
-controlled by this <codeph>CMessageKeyProcessor</codeph>.</p> </li>
-</ul> <p>The behaviour of the <codeph>ProcessKeyPress()</codeph> function
-depends on the key code value:</p> <codeblock id="GUID-8081A453-4D44-5F2B-BAF3-7A43A1417BEF" xml:space="preserve">void CMessageKeyProcessor::ProcessKeyPress(TChar aChar)
-    {
-    if (aChar == 'm' || aChar == 'M')
-        {
-        iExampleObject-&gt;Cancel();
-        iExampleObject-&gt;IssueRequest();
-        }
-    if (aChar == 'c' || aChar == 'C')
-        {
-        iExampleObject-&gt;Cancel();
-        }
-    if (aChar != EKeyEscape)
-        {
-        RequestCharacter();
-        }
-    else
-        {
-        iExampleObject-&gt;Cancel();
-        CActiveScheduler::Stop();
-        }
-    }</codeblock> </section>
-<section id="GUID-91B9EF85-A595-479D-8D57-40CC427C19E7"><title>Enhanced framework</title> <p>In the code fragment below,
-an active scheduler is created to which both a <codeph>CMessageKeyProcessor</codeph> active
-object and a<codeph>CExampleActiveObject</codeph> active object are added:</p> <codeblock id="GUID-830AA24C-7781-505A-9DD1-4A042040688D" xml:space="preserve">LOCAL_C void doExampleL()
-    {
-    CActiveScheduler* exampleScheduler=new (ELeave) CActiveScheduler;
-    CleanupStack::PushL(exampleScheduler);
-    CActiveScheduler::Install(exampleScheduler);
-
-    CExampleActiveObject* iExampleObject =
-            CExampleActiveObject::NewLC();
-    CMessageKeyProcessor* keyProcessor=
-             CMessageKeyProcessor::NewLC(console, iExampleObject);
-
-    keyProcessor-&gt;RequestCharacter();
-    CActiveScheduler::Start();
-    CleanupStack::PopAndDestroy(3);
-    }</codeblock> <p><b>Notes</b> </p> <ul>
-<li id="GUID-1FB2DB58-C282-5B21-A070-DEC020E98059"><p>An instance of the active
-scheduler, <codeph>exampleScheduler</codeph> is pushed onto the cleanup stack
-and installed as the current active scheduler.</p> </li>
-<li id="GUID-3404475D-4044-5DB4-BEDF-5A308B2521CA"><p>An instance of the <codeph>CExampleActiveObject</codeph> active
-object is created.</p> </li>
-<li id="GUID-F7C3C84D-66E5-5F8D-8213-8DC3864D659D"><p>An instance of the <codeph>CMessageKeyProcessor</codeph> active
-object is created and this is in control.</p> </li>
-<li id="GUID-DA61DFD2-B057-50C9-8FD1-C53E884A4A0E"><p><codeph>keyProcessor-&gt;RequestCharacter()</codeph> issues
-a request for keyboard input.</p> </li>
-<li id="GUID-5BFAEEED-051C-5741-BAA0-96AFC3EA5A02"><p><codeph>CActiveScheduler::Start()</codeph> starts
-the active scheduler. At least one outstanding request is necessary before
-the wait loop is started, otherwise the thread hangs. All further request
-issuing and servicing occurs within this function. The wait loop continues
-until one of the active objects’ <codeph>RunL()</codeph> calls<codeph>CActiveScheduler::Stop()</codeph>.</p> </li>
-<li id="GUID-E3FB7738-DC6C-5472-8CBF-FAAD47C440D5"><p>The active objects and
-the active scheduler are popped from the cleanup stack and destroyed.</p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2161BD64-889B-5EAB-B023-1162FE9619DB" xml:lang="en"><title>How
+to use multiple active objects</title><shortdesc>This document illustrates how to use one active object to control
+another.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following example code fragments show how to construct a program with
+two active objects, where one controls the initiation and cancellation of
+the other.</p>
+<p>In these examples:</p>
+<p><codeph>CActiveConsole</codeph> is an active object and contains a pointer
+to a <codeph>CConsoleBase</codeph> object which is a service provider. Through
+this service provider, the active object provides the facility to request
+a character from the keyboard.</p>
+<p><codeph>RunL()</codeph> delegates the handling of completed requests to
+the pure virtual function <codeph>ProcessKeyPress()</codeph>, which must be
+provided by a derived class.</p>
+<p><codeph>CMessageKeyProcessor</codeph> is further derived from <codeph>CActiveConsole</codeph> and
+contains a pointer to another active object <codeph>CExampleActiveObject</codeph>,
+which requires input from the keyboard.</p>
+<p>Depending on the input character, the <codeph>CMessageKeyProcessor</codeph> active
+object does one of the following:</p>
+<ul>
+<li id="GUID-9151F698-3D4F-5C3D-A758-194018FC053C"><p>issues a request to
+the <codeph>CExampleActiveObject</codeph> active object</p> </li>
+<li id="GUID-FBF8743F-0147-502B-BBE8-824DB727F791"><p>cancels any outstanding
+request to the <codeph>CExampleActiveObject</codeph> active object</p> </li>
+<li id="GUID-2E714DE6-AAE1-5926-8026-9B6E1C09C5C7"><p>does nothing</p> </li>
+</ul>
+<p>The implementation of the <codeph>CExampleActiveObject</codeph> active
+object is not relevant to the example and is not shown.</p>
+<p>The following diagram shows the relationship between the classes.</p>
+<fig id="GUID-AF998428-D142-56F8-8967-AF66AF9119F8">
+<image href="GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e233010_href.png" placement="inline"/>
+</fig>
+<section id="GUID-5E2A6378-546D-46C5-8081-6425A96FAAFF"><title>Encapsulating the service provider</title> <p>The class <codeph>CActiveConsole</codeph> encapsulates
+the provision of basic keyboard services. Its <codeph>iConsole</codeph> data
+member is a pointer to the service provider, the <codeph>CConsoleBase</codeph> object.</p> <p>The
+active object class is defined as:</p> <codeblock id="GUID-DC98E432-1927-55F5-94A3-68D2493B75E8" xml:space="preserve">class CActiveConsole : public CActive
+    {
+public:
+    CActiveConsole(CConsoleBase* aConsole);
+    void ConstructL();
+    ~CActiveConsole();
+    void RequestCharacter();
+    void RunL();
+    void DoCancel();
+    virtual void ProcessKeyPress(TChar aChar)=0;
+protected:
+    CConsoleBase* iConsole; 
+    };</codeblock> <p>The class constructor takes a pointer to a <codeph>CConsoleBase</codeph> object
+as its single argument and initializes its <codeph>iConsole</codeph> data
+member to this value:</p> <codeblock id="GUID-2C5C49DB-AE88-5F84-82D7-BA5680A286C8" xml:space="preserve">CActiveConsole::CActiveConsole(CConsoleBase* aConsole)
+    : iConsole(aConsole)
+    {}</codeblock> <p>The <codeph>ConstructL()</codeph> function adds the
+active object to the active scheduler:</p> <codeblock id="GUID-CE947B19-9664-5774-ABFB-17E79A112131" xml:space="preserve">void CActiveConsole::ConstructL()
+    {
+    CActiveScheduler::Add(this);
+    }</codeblock> <p>The destructor cancels any outstanding request before
+destroying the active object:</p> <codeblock id="GUID-0120EE92-2BD8-5B2E-841A-DC366B3BED12" xml:space="preserve">CActiveConsole::~CActiveConsole()
+    {
+    Cancel();
+    }</codeblock> <p><codeph>DoCancel()</codeph> is implemented to cancel
+the request to <codeph>iConsole</codeph>.</p> <p>The <codeph>RequestCharacter()</codeph> function
+makes a request for a key press to the service provider by calling <codeph>iConsole-&gt;Read(iStatus)</codeph> and
+setting the active request flag:</p> <codeblock id="GUID-EF731B8D-7001-503F-8167-7A10697D5202" xml:space="preserve">void CActiveConsole::RequestCharacter()
+    {
+    iConsole-&gt;Read(iStatus);
+    SetActive();
+    }</codeblock> <p>The <codeph>RunL()</codeph> function makes a call to
+the <codeph>ProcessKeyPress()</codeph> function. This is a pure virtual function
+that derived classes must implement to handle the key press and to reissue
+the request:</p> <codeblock id="GUID-DF9F07BB-2099-5310-8921-3A290580B4AF" xml:space="preserve">void CActiveConsole::RunL()
+    {
+    ProcessKeyPress(TChar(iConsole-&gt;KeyCode()));
+    }</codeblock> </section>
+<section id="GUID-FFD3321F-3A46-4C40-A779-39C142DC79C3"><title>Further deriving from the active object</title> <p>The class <codeph>CMessageKeyProcessor</codeph> is
+a concrete class, derived from <codeph>CActiveConsole</codeph>. It provides
+an implementation for the<codeph>ProcessKeyPress()</codeph> function and can
+issue or cancel requests to a<codeph>CExampleActiveObject</codeph> active
+object.</p> <p>This active object class is defined as:</p> <codeblock id="GUID-C5F51E0D-517C-523D-BADA-4B3CDCA53073" xml:space="preserve">class CMessageKeyProcessor : public CActiveConsole
+    {
+public:
+    ...
+    CMessageKeyProcessor(CConsoleBase* aConsole, CExampleActiveObject* iExampleObject);
+    void ProcessKeyPress(TChar aChar);
+private:
+    CExampleActiveObject* iExampleObject;
+    };</codeblock> <p><b>Notes</b> </p> <ul>
+<li id="GUID-2341BA65-3806-5354-9F9D-EB1A8FD3FD61"><p>The first constructor
+parameter specifies a <codeph>CConsoleBase</codeph> which will be used to
+provide asynchronous keyboard input.</p> </li>
+<li id="GUID-E9CAAF35-C404-5418-9720-F560C4CED53D"><p>the second constructor
+parameter specifies a <codeph>CExampleActiveObject</codeph> which will be
+controlled by this <codeph>CMessageKeyProcessor</codeph>.</p> </li>
+</ul> <p>The behaviour of the <codeph>ProcessKeyPress()</codeph> function
+depends on the key code value:</p> <codeblock id="GUID-8081A453-4D44-5F2B-BAF3-7A43A1417BEF" xml:space="preserve">void CMessageKeyProcessor::ProcessKeyPress(TChar aChar)
+    {
+    if (aChar == 'm' || aChar == 'M')
+        {
+        iExampleObject-&gt;Cancel();
+        iExampleObject-&gt;IssueRequest();
+        }
+    if (aChar == 'c' || aChar == 'C')
+        {
+        iExampleObject-&gt;Cancel();
+        }
+    if (aChar != EKeyEscape)
+        {
+        RequestCharacter();
+        }
+    else
+        {
+        iExampleObject-&gt;Cancel();
+        CActiveScheduler::Stop();
+        }
+    }</codeblock> </section>
+<section id="GUID-91B9EF85-A595-479D-8D57-40CC427C19E7"><title>Enhanced framework</title> <p>In the code fragment below,
+an active scheduler is created to which both a <codeph>CMessageKeyProcessor</codeph> active
+object and a<codeph>CExampleActiveObject</codeph> active object are added:</p> <codeblock id="GUID-830AA24C-7781-505A-9DD1-4A042040688D" xml:space="preserve">LOCAL_C void doExampleL()
+    {
+    CActiveScheduler* exampleScheduler=new (ELeave) CActiveScheduler;
+    CleanupStack::PushL(exampleScheduler);
+    CActiveScheduler::Install(exampleScheduler);
+
+    CExampleActiveObject* iExampleObject =
+            CExampleActiveObject::NewLC();
+    CMessageKeyProcessor* keyProcessor=
+             CMessageKeyProcessor::NewLC(console, iExampleObject);
+
+    keyProcessor-&gt;RequestCharacter();
+    CActiveScheduler::Start();
+    CleanupStack::PopAndDestroy(3);
+    }</codeblock> <p><b>Notes</b> </p> <ul>
+<li id="GUID-1FB2DB58-C282-5B21-A070-DEC020E98059"><p>An instance of the active
+scheduler, <codeph>exampleScheduler</codeph> is pushed onto the cleanup stack
+and installed as the current active scheduler.</p> </li>
+<li id="GUID-3404475D-4044-5DB4-BEDF-5A308B2521CA"><p>An instance of the <codeph>CExampleActiveObject</codeph> active
+object is created.</p> </li>
+<li id="GUID-F7C3C84D-66E5-5F8D-8213-8DC3864D659D"><p>An instance of the <codeph>CMessageKeyProcessor</codeph> active
+object is created and this is in control.</p> </li>
+<li id="GUID-DA61DFD2-B057-50C9-8FD1-C53E884A4A0E"><p><codeph>keyProcessor-&gt;RequestCharacter()</codeph> issues
+a request for keyboard input.</p> </li>
+<li id="GUID-5BFAEEED-051C-5741-BAA0-96AFC3EA5A02"><p><codeph>CActiveScheduler::Start()</codeph> starts
+the active scheduler. At least one outstanding request is necessary before
+the wait loop is started, otherwise the thread hangs. All further request
+issuing and servicing occurs within this function. The wait loop continues
+until one of the active objects’ <codeph>RunL()</codeph> calls<codeph>CActiveScheduler::Stop()</codeph>.</p> </li>
+<li id="GUID-E3FB7738-DC6C-5472-8CBF-FAAD47C440D5"><p>The active objects and
+the active scheduler are popped from the cleanup stack and destroyed.</p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-217C992B-AC56-42A7-9920-DEC891D233A5" xml:lang="en"><title>Allowing
-Optional RAM Allocation</title><shortdesc>This section describes how an application can request from OOM
-Monitor for optional RAM allocation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-8D7EAD4C-3F9D-457C-8162-37FC14E748A6">       <p>An application
-can allocate RAM optionally by calling the <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method.
-For more information on optional RAM, refer to <xref href="GUID-7D727FC9-EF32-49FD-B72E-E1E00315206E.dita">Optional
-RAM Allocation</xref>.</p><p>An application can release the optional RAM allocation
-as soon as it is not needed anymore. An application can also keep the optional
-RAM allocation until OOM Monitor requests to release it.</p> 
-   </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-10-1-1-8-1-5-1-6-1-7-1-3-2">
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-7-1-3-2-1"><cmd>Create an OOM Monitor
-session.</cmd>
-<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
-CleanUpClosePushL(ioomMonitorSession);
-User::LeaveIfError(ioomMonitorSession.Connect());
-</codeblock></info>
-</step>
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-7-1-3-2-2"><cmd>Request for optional
-RAM.</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.RequestOptionalRam(aBytesRequested,aMinimumBytesNeeded,aPluginId,aBytesAvailable);
-</codeblock><p/></info>
-</step>
-<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-8-1-10-1-1-8-1-5-1-6-1-7-1-3-2-3"><cmd>Close the session.</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
-</codeblock></info>
-</step>
-</steps>
-</taskbody><related-links>
-<link href="GUID-DB6F586B-932A-4BDC-BA48-79C7D3FD9931.dita"><linktext>OOM Monitor
-Plug-in</linktext></link>
-<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
-Overview</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-217C992B-AC56-42A7-9920-DEC891D233A5" xml:lang="en"><title>Allowing
+Optional RAM Allocation</title><shortdesc>This section describes how an application can request from OOM
+Monitor for optional RAM allocation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-8D7EAD4C-3F9D-457C-8162-37FC14E748A6">       <p>An application
+can allocate RAM optionally by calling the <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method.
+For more information on optional RAM, refer to <xref href="GUID-7D727FC9-EF32-49FD-B72E-E1E00315206E.dita">Optional
+RAM Allocation</xref>.</p><p>An application can release the optional RAM allocation
+as soon as it is not needed anymore. An application can also keep the optional
+RAM allocation until OOM Monitor requests to release it.</p> 
+   </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-10-1-1-8-1-5-1-6-1-7-1-3-2">
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-7-1-3-2-1"><cmd>Create an OOM Monitor
+session.</cmd>
+<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
+CleanUpClosePushL(ioomMonitorSession);
+User::LeaveIfError(ioomMonitorSession.Connect());
+</codeblock></info>
+</step>
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-7-1-3-2-2"><cmd>Request for optional
+RAM.</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.RequestOptionalRam(aBytesRequested,aMinimumBytesNeeded,aPluginId,aBytesAvailable);
+</codeblock><p/></info>
+</step>
+<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-10-1-10-1-1-8-1-5-1-6-1-7-1-3-2-3"><cmd>Close the session.</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
+</codeblock></info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-DB6F586B-932A-4BDC-BA48-79C7D3FD9931.dita"><linktext>OOM Monitor
+Plug-in</linktext></link>
+<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
+Overview</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e252674_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e256382_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1" xml:lang="en"><title>S60
-Platform: Audio Streaming Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-ED773F7F-7F98-42ED-AE2F-290B980B02FC-GENID-1-8-1-18-1-1-4-1-4-1-2-1"><title>Description</title> <p> This C++ example application demonstrates
-the use of Audio Streaming API, which provides functionality for recording
-audio stream into a buffer, and for playback of the audio buffer. Besides
-playing, recording, and stopping the audio stream, the recorded audio stream
-can be saved into a file, to be played again later. The package includes PCM
-and AMR-NB encoded sample files. Audio Streaming API is part of the Symbian
-Multimedia Framework (MMF). The updated example has been tested to support
-S60 5th Edition and touch UI. Important classes: CMdaAudioInputStream, CMdaAudioOutputStream,
-MMdaAudioInputStreamCallback, MMdaAudioOutputStreamCallback. For more details,
-click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/8bee21ad-d39c-4b84-b0cd-5a54b556a70a/S60_Platform_Audio_Streaming_Example.html" scope="external"> Audio Streaming Example</xref></p> </section>
-<section id="GUID-7FDD920B-524F-5EF4-B87F-EB78A83FB789-GENID-1-8-1-18-1-1-4-1-4-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90b3674d-2812-418b-8f00-74916bca2b55.zip" scope="external"> AudioStreamExample.zip </xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90b3674d-2812-418b-8f00-74916bca2b55.html" scope="peer">browse </xref>to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-5-1-7-1-6-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-5-1-7-1-6-1-3-1" xml:lang="en"><title>S60
-Platform: Audio Streaming Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-ED773F7F-7F98-42ED-AE2F-290B980B02FC-GENID-1-8-1-18-1-1-5-1-7-1-6-1-3-1-2-1"><title>Description</title> <p> This C++ example application demonstrates
-the use of Audio Streaming API, which provides functionality for recording
-audio stream into a buffer, and for playback of the audio buffer. Besides
-playing, recording, and stopping the audio stream, the recorded audio stream
-can be saved into a file, to be played again later. The package includes PCM
-and AMR-NB encoded sample files. Audio Streaming API is part of the Symbian
-Multimedia Framework (MMF). The updated example has been tested to support
-S60 5th Edition and touch UI. Important classes: CMdaAudioInputStream, CMdaAudioOutputStream,
-MMdaAudioInputStreamCallback, MMdaAudioOutputStreamCallback. For more details,
-click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/8bee21ad-d39c-4b84-b0cd-5a54b556a70a/S60_Platform_Audio_Streaming_Example.html" scope="external"> Audio Streaming Example</xref></p> </section>
-<section id="GUID-7FDD920B-524F-5EF4-B87F-EB78A83FB789-GENID-1-8-1-18-1-1-5-1-7-1-6-1-3-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90b3674d-2812-418b-8f00-74916bca2b55.zip" scope="external"> AudioStreamExample.zip </xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90b3674d-2812-418b-8f00-74916bca2b55.html" scope="peer">browse </xref>to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15" xml:lang="en"><title>Audio
+Streaming Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-ED773F7F-7F98-42ED-AE2F-290B980B02FC"><title>Description</title> <p> This
+C++ example application demonstrates the use of Audio Streaming API, which
+provides functionality for recording audio stream into a buffer, and for playback
+of the audio buffer. Besides playing, recording, and stopping the audio stream,
+the recorded audio stream can be saved into a file, to be played again later.
+The package includes PCM and AMR-NB encoded sample files. Audio Streaming
+API is part of the Symbian Multimedia Framework (MMF). </p> </section>
+<section id="GUID-7FDD920B-524F-5EF4-B87F-EB78A83FB789"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90b3674d-2812-418b-8f00-74916bca2b55.zip" scope="external"> AudioStreamExample.zip </xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90b3674d-2812-418b-8f00-74916bca2b55.html" scope="peer">browse </xref>to view the example code. </p> </section>
+<section id="GUID-81249D32-A52F-45FD-A018-A8B10600A9D7"><title>Classes</title> <p><xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref></p><p><xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref></p><p><xref href="GUID-6A1EAD31-95CA-3CAC-8897-791E9D522DF0.dita"><apiname>MMdaAudioInputStreamCallback</apiname></xref></p><p><xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita"><apiname>MMdaAudioOutputStreamCallback</apiname></xref></p></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B" xml:lang="en"><title>Feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Visual feedback is the most important sensory feedback when entering characters
-on screen. Visual feedback can be, for example, button effects, color changes,
-status indicators, touch/release state changes, or clearing the screen when
-transitioning to next screen.</p>
-<p>With audio feedback, lower clicks and tones are preferred over loud beeps,
-though most people turn audio feedback off anyway.</p>
-<p>Vibration is used as tactile feedback for touch screen interaction or input.
-Tactile feedback gives the user an immediate response that the touch event
-has been registered.</p>
-<p>With the Symbian touch UI, tactile feedback is used in the following situations:</p>
-<ul>
-<li><p><b>Sensors: </b>a tap on the device by hand provides tactile feedback
-to the user in case of a successful interaction.</p></li>
-<li><p><b>Touch interaction (touch screen):</b> to indicate to the user that
-an interaction event has been successful. For example, when the user presses
-a button on the touch screen</p></li>
-</ul>
-<p><note>Tactile feedback is included in those common UI components where
-it has been seen as beneficial. When creating new applications and designing
-custom components, tactile feedback is to be included where found useful.
-For example, in any button type of UI component, the tactile feedback is naturally
-beneficial.</note></p>
-<p>For more information, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
-feedback</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B" xml:lang="en"><title>Feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Visual feedback is the most important sensory feedback when entering characters
+on screen. Visual feedback can be, for example, button effects, color changes,
+status indicators, touch/release state changes, or clearing the screen when
+transitioning to next screen.</p>
+<p>With audio feedback, lower clicks and tones are preferred over loud beeps,
+though most people turn audio feedback off anyway.</p>
+<p>Vibration is used as tactile feedback for touch screen interaction or input.
+Tactile feedback gives the user an immediate response that the touch event
+has been registered.</p>
+<p>With the Symbian touch UI, tactile feedback is used in the following situations:</p>
+<ul>
+<li><p><b>Sensors: </b>a tap on the device by hand provides tactile feedback
+to the user in case of a successful interaction.</p></li>
+<li><p><b>Touch interaction (touch screen):</b> to indicate to the user that
+an interaction event has been successful. For example, when the user presses
+a button on the touch screen</p></li>
+</ul>
+<p><note>Tactile feedback is included in those common UI components where
+it has been seen as beneficial. When creating new applications and designing
+custom components, tactile feedback is to be included where found useful.
+For example, in any button type of UI component, the tactile feedback is naturally
+beneficial.</note></p>
+<p>In your application, you can use the following feedback types, defined
+in <codeph>TTouchLogicalFeedback</codeph>:</p>
+<table id="GUID-6FF24F72-C352-4027-AA5D-2D34EBFA00F4">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p><codeph>ETouchFeedbackNone</codeph></p></entry>
+<entry><p>Used for disabling feedback in some areas of the application window
+while using the area registry.</p></entry>
+</row>
+<row>
+<entry><p><codeph>ETouchFeedbackBasic</codeph></p></entry>
+<entry><p>Used as a default feedback for stylus touch down events. For example,
+when the mobile device user taps a button or tab.</p></entry>
+</row>
+<row>
+<entry><p><codeph>ETouchFeedbackSensitive</codeph></p></entry>
+<entry><p>Provides sensitive feedback in situations when:<ul>
+<li><p>the triggering action is not very important (for example, change of
+focus in a list).</p></li>
+<li><p>there can be a large number of feedback instances within a short time
+(for example, text selection which gives feedback on every new selected character).</p></li>
+</ul> It is also used for scrolling and dragging.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>To use vibration or audio feedback in your application:</p>
+<ol>
+<li id="GUID-791E80D6-6935-4202-81E0-BA7392A9E1B3"><p>Include <codeph>touchfeedback.lib</codeph> in
+your <codeph>.mmp</codeph> file.</p></li>
+<li id="GUID-A185188F-F37B-440B-8213-214D77CF3B8B"><p>Include <parmname>touchfeedback.h</parmname>.</p></li>
+<li id="GUID-6455F4C1-AEA6-4C30-8E9B-DF9950558E17"><itemgroup><p>To enable
+tactile feedback for your application, add the following code.</p><codeblock xml:space="preserve">MTouchFeedback* feedback = MTouchFeedback::Instance();
+feedback-&gt;SetFeedbackEnabledForThisApp(ETrue); // enabling feedback is optional  </codeblock><p>Do
+not delete the pointer in the controller destructor.</p></itemgroup></li>
+<li id="GUID-FC1B810B-99F4-44E5-82DC-46686D6D4198"><itemgroup><p>To use tactile
+feedback when a mobile device user points at a control, add the following
+code.</p><codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
+    {
+    // Feedback is always played at pointer down event
+    if(aPointerEvent.iType == TPointerEvent::EButton1Down)
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();  
+        if (feedback) 
+             { 
+             feedback-&gt;InstantFeedback(ETouchFeedbackBasic);  
+             }  
+        }
+   
+    // Your other pointer event handling code here
+</codeblock></itemgroup></li>
+<li id="GUID-A26D8717-1839-4132-98C4-5C09086BB361"><itemgroup><p>To enable
+automatic feedback triggering in a specific area of a UI component, add</p><codeblock xml:space="preserve">feedback-&gt;SetFeedbackArea( this, 
+                           1, // area Id
+                           TRect( 0,0,20,20 ), 
+                           ETouchFeedbackBasic, 
+                           ETouchEventStylusDown );
+</codeblock></itemgroup></li>
+</ol>
+<note><ul>
+<li><p>To use tactile feedback in an application, additional platform security
+capabilities are not required.</p></li>
+<li><p>Applications themselves do not need to generate feedback effects, unless
+they are using custom components. The feedback is generated by components
+that the applications use.</p></li>
+</ul></note>
+<p>For more information, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
+feedback</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e283471_href.png has changed
Binary file Symbian3/SDK/Source/GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e287157_href.png has changed
Binary file Symbian3/SDK/Source/GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e190335_href.png has changed
Binary file Symbian3/SDK/Source/GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e195343_href.png has changed
Binary file Symbian3/SDK/Source/GUID-21F0EE0E-6CC6-44E7-9FED-FB8911E3C3A2-master.jpg has changed
Binary file Symbian3/SDK/Source/GUID-21F0EE0E-6CC6-44E7-9FED-FB8911E3C3A2_d0e211670_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,119 +1,119 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08" xml:lang="en"><title>The
-Window Server Rendering Loop</title><shortdesc>This topic provides a brief introduction to the Window Server's
-rendering loop, which takes place in two stages, known as the upper loop and
-the lower loop. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. <b>Target
-audience</b>: Device creators. </p>
-<p>The following diagram provides a simplified representation of the upper
-and lower loops. </p>
-<fig id="GUID-9CC782B3-568B-56A4-9AF7-0E2D4EABD7A7">
-<title>The Window Server's upper and lower rendering loops</title>
-<image href="GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e201270_href.png" placement="inline"/>
-</fig>
-<p> </p>
-<p>The <b>upper loop</b> is the process by which the Window Server’s scene
-state information is updated based on commands from the client. There are
-two types of scene state updates: window tree updates (such as when a window
-is moved) and redraw store updates (such as when new drawing operations are
-sent for a particular window). </p>
-<p>The <b>lower loop</b> is the process by which updates are made to what
-the user sees on the screen. The lower loop runs after the upper loop. </p>
-<p>The two most important APIs on the client side are: </p>
-<ul>
-<li id="GUID-441D76AB-340A-52E4-ABDE-8093C511694D"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>,
-which is the class through which a client controls a window. Its main functions
-enable a client to create and destroy windows, move and resize them, make
-them visible or invisible, and send them to the foreground or background. </p> </li>
-<li id="GUID-F0F159ED-73A2-57A3-9077-8B56E756A53B"><p> <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>,
-which is the class through which a client issues draw operations. At any given
-time, a <codeph>CWindowGc</codeph> is activated on a particular window. The <codeph>CWindowGc</codeph> functions
-that are used most frequently are <codeph>DrawBitmap()</codeph> and <codeph>BitBlt()</codeph>,
-for drawing a skin bitmap as a background, and <codeph>DrawText()</codeph>. </p> </li>
-</ul>
-<fig id="GUID-7103B894-51DE-5051-899F-F1FF2BD0749E">
-<title>The main participants in the ScreenPlay Window Server rendering loop</title>
-<image href="GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e201332_href.png" placement="inline"/>
-</fig>
-<p>On the client side, <codeph>RWindow</codeph> and <codeph>CWindowGc</codeph> commands
-are converted to opcodes that are stored in a command buffer. When the command
-buffer is full, it is automatically <b>flushed</b>, which means that it is
-transferred across to a corresponding server-side command buffer. The client
-can also explicitly request a flush using <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B83C6F44-1A3E-3959-910C-CBBF66C4A3D4"><apiname>RWsSession::Flush()</apiname></xref>. </p>
-<p>On the server side: </p>
-<ul>
-<li id="GUID-8553F184-A167-5285-91F5-203A8B0D707A"><p>The upper loop processes
-the server-side command buffers. <codeph>RWindow</codeph> commands are processed
-as updates to the <b>window tree</b>. <codeph>CWindowGc</codeph> commands
-are processed as updates to the <b>redraw stores</b>. </p> </li>
-<li id="GUID-894B970D-E8F4-52D4-996C-D72378C48EEF"><p>The lower loop ultimately
-causes the updates to be drawn to the UI surface. However, the updates do
-not go straight to the UI surface. Instead they go through an additional level
-of indirection called <b>render stages</b>. These are replaceable plug-ins
-to the Window Server, which enable the customization of the final stages of
-the rendering pipeline. </p> </li>
-</ul>
-<p>The details of the upper and lower loops vary depending on whether dirty-rectangle
-tracking or change tracking is in use. </p>
-<p><b>Dirty-rectangle tracking mode </b> </p>
-<p>Dirty-rectangle tracking mode is always used in the non-ScreenPlay variant
-and is the default mode in ScreenPlay. </p>
-<p>Updates to both the window tree and the redraw stores typically mean that
-the current contents of the screen become invalid. Therefore, when processing <codeph>RWindow</codeph> or <codeph>CWindowGc</codeph> commands,
-the upper loop adds the affected regions to a list of dirty rectangles that
-need to be redrawn. The list includes transparent windows that are on top
-of other windows and excludes windows that are obscured. The upper loop then
-starts a scheduler, which eventually causes the dirty rectangles to be redrawn. </p>
-<p>Some time later the scheduler runs the lower loop. The task of the lower
-loop is to clean any dirty rectangles by playing (or replaying) the drawing
-operations from the redraw stores into the first render stage. This is done
-for all of the visible windows, starting at the back and working forwards. </p>
-<p><b>Change tracking mode </b> </p>
-<p>Change tracking mode is only available in ScreenPlay. To enable change
-tracking mode, add the <codeph>CHANGETRACKING</codeph> parameter to the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref>. This
-parameter is set on a per-screen basis. </p>
-<p>In change tracking mode, the upper loop keeps a list of all of the windows
-for which there are new or changed drawing operations, regardless whether
-the window is obscured or not. The list does not include transparent windows
-that have not changed and which are on top of other windows. As in dirty-rectangle
-tracking mode, changes cause the upper loop to start the scheduler which eventually
-causes the lower loop to run. This plays the drawing operations for all of
-the windows in the list of changed windows into the first render stage. </p>
-<p>Typically you enable change tracking mode only if you are creating a transition
-effects (TFX) render stage that is building up its own visuals stores. Visual
-stores are replicas of the redraw stores and are often used with a visuals
-tree. A visuals tree is a replica of the Window Server's window tree, into
-which the render stage may add nodes that the Window Server does not "know"
-about. In addition, these render stages typically introduce transition effects
-which may change the visibility of windows that the Window Server does know
-about. For example, the following diagram shows a transition effect in which
-a window slides onto the screen from the top and temporarily obscures an existing
-window on the screen. </p>
-<fig id="GUID-761A5E99-D289-5F58-9747-BBECF0BFB2F2">
-<title> A transition effect temporarily obscures a window on the screen</title>
-<image href="GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e201430_href.png" placement="inline"/>
-</fig>
-<p>In this and similar scenarios, the Window Server does not know whether
-a window is obscured or visible. Therefore dirty-rectangle tracking is not
-effective. </p>
-<p>Each screen on the device has a separate render stage chain.
-Because you set the <codeph>CHANGETRACKING</codeph> parameter on a per-screen
-basis, it is possible to have a sophisticated TFX on one screen and a simple
-display render stage on another screen. </p>
-</conbody><related-links>
-<link href="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita"><linktext>Redraw Stores</linktext>
-</link>
-<link href="GUID-E29CAFA8-523D-57D2-AC1B-D6D01741550B.dita"><linktext>Window Server
-Internals: Concepts</linktext></link>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08" xml:lang="en"><title>The
+Window Server Rendering Loop</title><shortdesc>This topic provides a brief introduction to the Window Server's
+rendering loop, which takes place in two stages, known as the upper loop and
+the lower loop. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. <b>Target
+audience</b>: Device creators. </p>
+<p>The following diagram provides a simplified representation of the upper
+and lower loops. </p>
+<fig id="GUID-9CC782B3-568B-56A4-9AF7-0E2D4EABD7A7">
+<title>The Window Server's upper and lower rendering loops</title>
+<image href="GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e196262_href.png" placement="inline"/>
+</fig>
+<p> </p>
+<p>The <b>upper loop</b> is the process by which the Window Server’s scene
+state information is updated based on commands from the client. There are
+two types of scene state updates: window tree updates (such as when a window
+is moved) and redraw store updates (such as when new drawing operations are
+sent for a particular window). </p>
+<p>The <b>lower loop</b> is the process by which updates are made to what
+the user sees on the screen. The lower loop runs after the upper loop. </p>
+<p>The two most important APIs on the client side are: </p>
+<ul>
+<li id="GUID-441D76AB-340A-52E4-ABDE-8093C511694D"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>,
+which is the class through which a client controls a window. Its main functions
+enable a client to create and destroy windows, move and resize them, make
+them visible or invisible, and send them to the foreground or background. </p> </li>
+<li id="GUID-F0F159ED-73A2-57A3-9077-8B56E756A53B"><p> <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>,
+which is the class through which a client issues draw operations. At any given
+time, a <codeph>CWindowGc</codeph> is activated on a particular window. The <codeph>CWindowGc</codeph> functions
+that are used most frequently are <codeph>DrawBitmap()</codeph> and <codeph>BitBlt()</codeph>,
+for drawing a skin bitmap as a background, and <codeph>DrawText()</codeph>. </p> </li>
+</ul>
+<fig id="GUID-7103B894-51DE-5051-899F-F1FF2BD0749E">
+<title>The main participants in the ScreenPlay Window Server rendering loop</title>
+<image href="GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e196324_href.png" placement="inline"/>
+</fig>
+<p>On the client side, <codeph>RWindow</codeph> and <codeph>CWindowGc</codeph> commands
+are converted to opcodes that are stored in a command buffer. When the command
+buffer is full, it is automatically <b>flushed</b>, which means that it is
+transferred across to a corresponding server-side command buffer. The client
+can also explicitly request a flush using <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B83C6F44-1A3E-3959-910C-CBBF66C4A3D4"><apiname>RWsSession::Flush()</apiname></xref>. </p>
+<p>On the server side: </p>
+<ul>
+<li id="GUID-8553F184-A167-5285-91F5-203A8B0D707A"><p>The upper loop processes
+the server-side command buffers. <codeph>RWindow</codeph> commands are processed
+as updates to the <b>window tree</b>. <codeph>CWindowGc</codeph> commands
+are processed as updates to the <b>redraw stores</b>. </p> </li>
+<li id="GUID-894B970D-E8F4-52D4-996C-D72378C48EEF"><p>The lower loop ultimately
+causes the updates to be drawn to the UI surface. However, the updates do
+not go straight to the UI surface. Instead they go through an additional level
+of indirection called <b>render stages</b>. These are replaceable plug-ins
+to the Window Server, which enable the customization of the final stages of
+the rendering pipeline. </p> </li>
+</ul>
+<p>The details of the upper and lower loops vary depending on whether dirty-rectangle
+tracking or change tracking is in use. </p>
+<p><b>Dirty-rectangle tracking mode </b> </p>
+<p>Dirty-rectangle tracking mode is always used in the non-ScreenPlay variant
+and is the default mode in ScreenPlay. </p>
+<p>Updates to both the window tree and the redraw stores typically mean that
+the current contents of the screen become invalid. Therefore, when processing <codeph>RWindow</codeph> or <codeph>CWindowGc</codeph> commands,
+the upper loop adds the affected regions to a list of dirty rectangles that
+need to be redrawn. The list includes transparent windows that are on top
+of other windows and excludes windows that are obscured. The upper loop then
+starts a scheduler, which eventually causes the dirty rectangles to be redrawn. </p>
+<p>Some time later the scheduler runs the lower loop. The task of the lower
+loop is to clean any dirty rectangles by playing (or replaying) the drawing
+operations from the redraw stores into the first render stage. This is done
+for all of the visible windows, starting at the back and working forwards. </p>
+<p><b>Change tracking mode </b> </p>
+<p>Change tracking mode is only available in ScreenPlay. To enable change
+tracking mode, add the <codeph>CHANGETRACKING</codeph> parameter to the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref>. This
+parameter is set on a per-screen basis. </p>
+<p>In change tracking mode, the upper loop keeps a list of all of the windows
+for which there are new or changed drawing operations, regardless whether
+the window is obscured or not. The list does not include transparent windows
+that have not changed and which are on top of other windows. As in dirty-rectangle
+tracking mode, changes cause the upper loop to start the scheduler which eventually
+causes the lower loop to run. This plays the drawing operations for all of
+the windows in the list of changed windows into the first render stage. </p>
+<p>Typically you enable change tracking mode only if you are creating a transition
+effects (TFX) render stage that is building up its own visuals stores. Visual
+stores are replicas of the redraw stores and are often used with a visuals
+tree. A visuals tree is a replica of the Window Server's window tree, into
+which the render stage may add nodes that the Window Server does not "know"
+about. In addition, these render stages typically introduce transition effects
+which may change the visibility of windows that the Window Server does know
+about. For example, the following diagram shows a transition effect in which
+a window slides onto the screen from the top and temporarily obscures an existing
+window on the screen. </p>
+<fig id="GUID-761A5E99-D289-5F58-9747-BBECF0BFB2F2">
+<title> A transition effect temporarily obscures a window on the screen</title>
+<image href="GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e196422_href.png" placement="inline"/>
+</fig>
+<p>In this and similar scenarios, the Window Server does not know whether
+a window is obscured or visible. Therefore dirty-rectangle tracking is not
+effective. </p>
+<p>Each screen on the device has a separate render stage chain.
+Because you set the <codeph>CHANGETRACKING</codeph> parameter on a per-screen
+basis, it is possible to have a sophisticated TFX on one screen and a simple
+display render stage on another screen. </p>
+</conbody><related-links>
+<link href="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita"><linktext>Redraw Stores</linktext>
+</link>
+<link href="GUID-E29CAFA8-523D-57D2-AC1B-D6D01741550B.dita"><linktext>Window Server
+Internals: Concepts</linktext></link>
+
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e323992_href.png has changed
Binary file Symbian3/SDK/Source/GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e330149_href.png has changed
Binary file Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1-master.png has changed
Binary file Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e36193_href.png has changed
Binary file Symbian3/SDK/Source/GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e41760_href.png has changed
--- a/Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1" xml:lang="en"><title>MmfExSinkSource:
-Multimedia Framework sink/source plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExSinkSource</filepath> demonstrates
-how to implement sink and source plug-ins for the Multimedia Framework. A
-sink is an object that can receive multimedia data; a source is an object
-that can supply it. This example implements a sink and a source as descriptor
-objects. </p> <p>Both the sink and source are implemented in a single class, <codeph>CMMFExDescriptor</codeph>,
-that derives from <codeph>CMMFClip</codeph>. <codeph>CMMFClip</codeph> represents
-a multimedia clip (i.e. not a stream or hardware device), which, in turn,
-derives from the ECom sink interface <codeph>MDataSink</codeph>, and the source
-interface <codeph>MDataSource</codeph>. </p> <p>Both the example source and
-sink are passed on creation a packaged <codeph>TMMFExDescriptorParams</codeph> object,
-which specifies the descriptor to read/write, and the thread to which the
-descriptor belongs. </p> <p>Note that the default audio controller only uses
-the default sink/sources, and returns "not supported" if you attempt to use
-other sink/sources with it. </p> </section>
-<section id="GUID-567F55C9-E20D-57DD-8469-99F3AA9FAEA6-GENID-1-8-1-18-1-1-4-1-11-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.zip" scope="external"> MmfExSinkSource.zip file</xref></p><p>Click:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread </apiname></xref>  <xref href="GUID-815970B5-302C-317E-8CAF-4A6589D25694.dita"><apiname>CMMFClip </apiname></xref>  <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-5-1-7-1-6-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-5-1-7-1-6-1-7-1" xml:lang="en"><title>MmfExSinkSource:
-Multimedia Framework sink/source plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExSinkSource</filepath> demonstrates
-how to implement sink and source plug-ins for the Multimedia Framework. A
-sink is an object that can receive multimedia data; a source is an object
-that can supply it. This example implements a sink and a source as descriptor
-objects. </p> <p>Both the sink and source are implemented in a single class, <codeph>CMMFExDescriptor</codeph>,
-that derives from <codeph>CMMFClip</codeph>. <codeph>CMMFClip</codeph> represents
-a multimedia clip (i.e. not a stream or hardware device), which, in turn,
-derives from the ECom sink interface <codeph>MDataSink</codeph>, and the source
-interface <codeph>MDataSource</codeph>. </p> <p>Both the example source and
-sink are passed on creation a packaged <codeph>TMMFExDescriptorParams</codeph> object,
-which specifies the descriptor to read/write, and the thread to which the
-descriptor belongs. </p> <p>Note that the default audio controller only uses
-the default sink/sources, and returns "not supported" if you attempt to use
-other sink/sources with it. </p> </section>
-<section id="GUID-567F55C9-E20D-57DD-8469-99F3AA9FAEA6-GENID-1-8-1-18-1-1-5-1-7-1-6-1-7-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.zip" scope="external"> MmfExSinkSource.zip file</xref></p><p>Click:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread </apiname></xref>  <xref href="GUID-815970B5-302C-317E-8CAF-4A6589D25694.dita"><apiname>CMMFClip </apiname></xref>  <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9" xml:lang="en"><title>MmfExSinkSource:
+Multimedia Framework sink/source plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p> <filepath>MmfExSinkSource</filepath> demonstrates
+how to implement sink and source plug-ins for the Multimedia Framework. A
+sink is an object that can receive multimedia data; a source is an object
+that can supply it. This example implements a sink and a source as descriptor
+objects. </p> <p>Both the sink and source are implemented in a single class, <codeph>CMMFExDescriptor</codeph>,
+that derives from <codeph>CMMFClip</codeph>. <codeph>CMMFClip</codeph> represents
+a multimedia clip (i.e. not a stream or hardware device), which, in turn,
+derives from the ECom sink interface <codeph>MDataSink</codeph>, and the source
+interface <codeph>MDataSource</codeph>. </p> <p>Both the example source and
+sink are passed on creation a packaged <codeph>TMMFExDescriptorParams</codeph> object,
+which specifies the descriptor to read/write, and the thread to which the
+descriptor belongs. </p> <p>Note that the default audio controller only uses
+the default sink/sources, and returns "not supported" if you attempt to use
+other sink/sources with it. </p> </section>
+<section id="GUID-567F55C9-E20D-57DD-8469-99F3AA9FAEA6"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.zip" scope="external"> MmfExSinkSource.zip file</xref></p><p>Click:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d052924-992d-4dc8-9c32-6360d8ca7ba5.html" scope="peer">browse </xref> to view the example code. </p> </section>
+<section><title>Class summary</title><p> <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread </apiname></xref>  <xref href="GUID-815970B5-302C-317E-8CAF-4A6589D25694.dita"><apiname>CMMFClip </apiname></xref>  <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref>  </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e70545_href.png has changed
Binary file Symbian3/SDK/Source/GUID-22498580-E902-4024-921C-F756A8CD58DF_d0e75600_href.png has changed
Binary file Symbian3/SDK/Source/GUID-22699952-D032-5B69-B38A-43347A40A420_d0e355499_href.png has changed
Binary file Symbian3/SDK/Source/GUID-22699952-D032-5B69-B38A-43347A40A420_d0e361579_href.png has changed
--- a/Symbian3/SDK/Source/GUID-226EDECC-BE24-412C-945D-7EABE566282A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-226EDECC-BE24-412C-945D-7EABE566282A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-226EDECC-BE24-412C-945D-7EABE566282A" xml:lang="en"><title>Editing
-indicators in pop-up windows</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When a pop-up window contains an editor that needs editing indicators,
-it is not feasible to use the Navi pane for the indicators. For this purpose,
-a specific area in the pop-up window, above the editing field, can be used
-for displaying the editing indicators (see <xref href="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita">Editing
-indicators</xref> for an example).</p>
-<section id="GUID-F50EA9FB-7A32-4EAC-8AB5-BE81134B2AFF"><title>Using
-editing indicators in pop-up windows in C++ applications</title><p>The APIs
-to use are the Indicators API and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-226EDECC-BE24-412C-945D-7EABE566282A" xml:lang="en"><title>Editing
+indicators in pop-up windows</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When a pop-up window contains an editor that needs editing indicators,
+it is not feasible to use the Navi pane for the indicators. For this purpose,
+a specific area in the pop-up window, above the editing field, can be used
+for displaying the editing indicators (see <xref href="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita">Editing
+indicators</xref> for an example).</p>
+<section id="GUID-F50EA9FB-7A32-4EAC-8AB5-BE81134B2AFF"><title>Using
+editing indicators in pop-up windows in applications</title><p>The APIs to
+use are the Indicators API and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495" xml:lang="en"><title>EchoClientUI:
+TCP/IP Echo Client UI</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Download</title> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-fdd9dccd-791f-4876-8418-d2c375153da5.zip" scope="external">EchoClient.zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-fdd9dccd-791f-4876-8418-d2c375153da5.html" scope="peer">browse </xref> to view the example code.</p></section>
+<section><title>Description</title> <p>This project provides the user interface
+for the TCP echo client engine example <xref href="GUID-5546C1F6-2110-5031-99BC-66E6958D513B.dita">EchoClientEngine</xref>. </p> </section>
+<section><title>Class summary</title><p> <xref href="GUID-9D2CE20F-ADDD-3CD4-9D24-61113FC919BA.dita"><apiname>CEikConsoleScreen </apiname></xref> <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname> CEikAppUi </apiname></xref>  <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication </apiname></xref> </p><p>standard Uikon application framework classes</p></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-22844C28-AB5B-5A6F-8863-7269464684B4" xml:lang="en"><title>Symbian
-SQL Overview</title><shortdesc>This document introduces you to the Symbian platform implementation
-of the Structured Query Language(SQL). </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-C09F38AF-3ABF-4921-8A7C-269A60BB5201"><title>Purpose</title> <p>SQL is: the syntax for creating, modifying
-and deleting databases and the data they contain; an engine or server that
-understands that syntax; the commands and operations that allow the SQL engine
-to process the syntatical elements. Developers who know one variant of SQL
-can easily work in another. </p> </section>
-<section id="GUID-A1F01FE6-EF37-4778-8A2B-E3F7982057DA"><title>Required background</title> <p>Relational databases, the SQL
-query language, database programming fundamentals. </p> </section>
-<section id="GUID-553C560E-D439-4AE9-8F46-329E54769CDA"><title>Key concepts/terms</title> <p>The SQL component includes these
-key concepts: </p> <ul>
-<li id="GUID-BA38B572-000A-5798-B10E-0E54FB5300DC"><p>Relational database </p> <p>A
-structured collection of data organised as tables (relations). </p> </li>
-<li id="GUID-37E36881-7760-5269-B11A-128C81FE5741"><p>SQL </p> <p>A standard
-language for querying relational databases. </p> </li>
-<li id="GUID-AFC25A9E-C040-548A-9C62-C8D03C5F1055"><p>Security policy </p> <p>A
-specification of user permissions on a database. </p> </li>
-</ul> </section>
-<section id="GUID-0D11B2C7-F34E-4E57-96A9-F1F94B0C220E"><title>Architectural relationships</title> <p>The SQL component is
-a free standing component that can be accessed by any application and from
-anywhere in Symbian platform. </p> <p>It is has a client-server architecture.
-Applications interface with the client API. The server side is an executable
-running in its own process and is not directly accessible to client applications.
-It can only be reached via the client-side interface. </p> <fig id="GUID-79734111-15D9-51E2-A1CE-09A4F72D1B21">
-<title>              This image depicts the client / server nature of Symbian
-SQL            </title>
-<image href="GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e365484_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-47F435F2-2621-4FA8-91BF-9DD5B17FD629"><title>API summary</title> <p>The SQL component client consists of
-three APIs which are used to access, query and secure a database. </p> <p><b>SQL APIs </b> </p> <ul>
-<li id="GUID-74A5E9C2-A9CA-5595-8249-E311054EBFE6"><p>The SQL database API,
-which you use to access a database. </p> </li>
-<li id="GUID-4FE61907-6DBA-5B59-B923-F2AB623BE3B2"><p>The SQL statement API,
-which you use to query a database. </p> </li>
-<li id="GUID-1530DA5D-3E75-5C71-9AA9-72EA342AF3E6"><p>The SQL security policy
-API, which you use to create a secure database. </p> </li>
-</ul> <table id="GUID-89A08BF1-F7CB-594A-9693-42CB5AE4B499">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-4688F6B7-E1B0-37CF-BAA2-C6BD103D4FDF.dita"><apiname>RSqlDatabase</apiname></xref>  </p> </entry>
-<entry><p>The SQL database API </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref>  </p> </entry>
-<entry><p>The SQL statement API </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-56C52D43-C4A9-3B31-B154-CA1E77693F57.dita"><apiname>RSqlSecurityPolicy</apiname></xref>  </p> </entry>
-<entry><p>The SQL security policy API </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-C09E74E9-A9AC-4C7F-9972-C08C78AA0114"><title>Typical uses</title> <p>Relational databases and the SQL query
-language are fundamentals of application development with numerous uses. </p> <p><b>SQL Users </b> </p> <ul>
-<li id="GUID-747924C7-5E24-5EA5-9E11-8FB216822A0B"><p>Application developers
-needing to access databases. </p> </li>
-</ul> <p><b>SQL
-tasks</b> </p> <p>The SQL component is used to: </p> <ul>
-<li id="GUID-79CD646D-0E08-5F17-ADDF-D245D0CEEF74"><p>create, </p> </li>
-<li id="GUID-98666D77-DA2F-58B5-BEAB-3FFC149425EE"><p>delete, </p> </li>
-<li id="GUID-D7D164C6-FF45-5A2B-AB3F-B011F04BCF3F"><p>access, </p> </li>
-<li id="GUID-012D297E-74B7-5B53-98C8-8ECF97C16141"><p>query, and </p> </li>
-<li id="GUID-8CCECFDE-1D8E-5A66-A1CE-DBEB5777EC76"><p>modify relational databases. </p> </li>
-</ul> <p><b>Creating
-and deleting a relational database</b> </p> <p>The SQL component is used to
-create and delete relational databases. They may be secure or insecure. </p> <p><b>Accessing a relational database</b> </p> <p>Use the SQL component to open
-and close databases and to attach a secondary database to a primary one. </p> <p><b>Querying and modifying a relational database</b> </p> <p>Use the SQL component
-to query a database using SQL. Queries can read, write, modify and delete
-data in a database. </p> </section>
-</conbody><related-links>
-<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
-</link>
-<link href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita"><linktext>SQL DB Overview</linktext>
-</link>
-<link href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita"><linktext>SQL Server
-Guide</linktext></link>
-<link href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita"><linktext>Persistent
-Storage</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-22844C28-AB5B-5A6F-8863-7269464684B4" xml:lang="en"><title>Symbian
+SQL Overview</title><shortdesc>This document introduces you to the Symbian platform implementation
+of the Structured Query Language(SQL). </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-C09F38AF-3ABF-4921-8A7C-269A60BB5201"><title>Purpose</title> <p>SQL is: the syntax for creating, modifying
+and deleting databases and the data they contain; an engine or server that
+understands that syntax; the commands and operations that allow the SQL engine
+to process the syntatical elements. Developers who know one variant of SQL
+can easily work in another. </p> </section>
+<section id="GUID-A1F01FE6-EF37-4778-8A2B-E3F7982057DA"><title>Required background</title> <p>Relational databases, the SQL
+query language, database programming fundamentals. </p> </section>
+<section id="GUID-553C560E-D439-4AE9-8F46-329E54769CDA"><title>Key concepts/terms</title> <p>The SQL component includes these
+key concepts: </p> <ul>
+<li id="GUID-BA38B572-000A-5798-B10E-0E54FB5300DC"><p>Relational database </p> <p>A
+structured collection of data organised as tables (relations). </p> </li>
+<li id="GUID-37E36881-7760-5269-B11A-128C81FE5741"><p>SQL </p> <p>A standard
+language for querying relational databases. </p> </li>
+<li id="GUID-AFC25A9E-C040-548A-9C62-C8D03C5F1055"><p>Security policy </p> <p>A
+specification of user permissions on a database. </p> </li>
+</ul> </section>
+<section id="GUID-0D11B2C7-F34E-4E57-96A9-F1F94B0C220E"><title>Architectural relationships</title> <p>The SQL component is
+a free standing component that can be accessed by any application and from
+anywhere in Symbian platform. </p> <p>It is has a client-server architecture.
+Applications interface with the client API. The server side is an executable
+running in its own process and is not directly accessible to client applications.
+It can only be reached via the client-side interface. </p> <fig id="GUID-79734111-15D9-51E2-A1CE-09A4F72D1B21">
+<title>              This image depicts the client / server nature of Symbian
+SQL            </title>
+<image href="GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e359404_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-47F435F2-2621-4FA8-91BF-9DD5B17FD629"><title>API summary</title> <p>The SQL component client consists of
+three APIs which are used to access, query and secure a database. </p> <p><b>SQL APIs </b> </p> <ul>
+<li id="GUID-74A5E9C2-A9CA-5595-8249-E311054EBFE6"><p>The SQL database API,
+which you use to access a database. </p> </li>
+<li id="GUID-4FE61907-6DBA-5B59-B923-F2AB623BE3B2"><p>The SQL statement API,
+which you use to query a database. </p> </li>
+<li id="GUID-1530DA5D-3E75-5C71-9AA9-72EA342AF3E6"><p>The SQL security policy
+API, which you use to create a secure database. </p> </li>
+</ul> <table id="GUID-89A08BF1-F7CB-594A-9693-42CB5AE4B499">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-4688F6B7-E1B0-37CF-BAA2-C6BD103D4FDF.dita"><apiname>RSqlDatabase</apiname></xref>  </p> </entry>
+<entry><p>The SQL database API </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref>  </p> </entry>
+<entry><p>The SQL statement API </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-56C52D43-C4A9-3B31-B154-CA1E77693F57.dita"><apiname>RSqlSecurityPolicy</apiname></xref>  </p> </entry>
+<entry><p>The SQL security policy API </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-C09E74E9-A9AC-4C7F-9972-C08C78AA0114"><title>Typical uses</title> <p>Relational databases and the SQL query
+language are fundamentals of application development with numerous uses. </p> <p><b>SQL Users </b> </p> <ul>
+<li id="GUID-747924C7-5E24-5EA5-9E11-8FB216822A0B"><p>Application developers
+needing to access databases. </p> </li>
+</ul> <p><b>SQL
+tasks</b> </p> <p>The SQL component is used to: </p> <ul>
+<li id="GUID-79CD646D-0E08-5F17-ADDF-D245D0CEEF74"><p>create, </p> </li>
+<li id="GUID-98666D77-DA2F-58B5-BEAB-3FFC149425EE"><p>delete, </p> </li>
+<li id="GUID-D7D164C6-FF45-5A2B-AB3F-B011F04BCF3F"><p>access, </p> </li>
+<li id="GUID-012D297E-74B7-5B53-98C8-8ECF97C16141"><p>query, and </p> </li>
+<li id="GUID-8CCECFDE-1D8E-5A66-A1CE-DBEB5777EC76"><p>modify relational databases. </p> </li>
+</ul> <p><b>Creating
+and deleting a relational database</b> </p> <p>The SQL component is used to
+create and delete relational databases. They may be secure or insecure. </p> <p><b>Accessing a relational database</b> </p> <p>Use the SQL component to open
+and close databases and to attach a secondary database to a primary one. </p> <p><b>Querying and modifying a relational database</b> </p> <p>Use the SQL component
+to query a database using SQL. Queries can read, write, modify and delete
+data in a database. </p> </section>
+</conbody><related-links>
+<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
+</link>
+<link href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita"><linktext>SQL DB Overview</linktext>
+</link>
+<link href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita"><linktext>SQL Server
+Guide</linktext></link>
+<link href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita"><linktext>Persistent
+Storage</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-231840A2-255B-5200-8AD1-1D7667FCB448.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-231840A2-255B-5200-8AD1-1D7667FCB448.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-231840A2-255B-5200-8AD1-1D7667FCB448" xml:lang="en"><title>What
-are records</title><shortdesc>This topic describes the structure of record. A record is an item
-that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A record is a container and an element. A record refers to a set of fields
-in a defined order. A set or records that has the same fields in the same
-order can be called a recordset or a table. Fields in a given position make
-a column. A column is conceptual. The CommsDat API has no C++ item defined
-as a column. </p>
-<p>There are two types of record: </p>
-<ul>
-<li id="GUID-5989B5E3-1995-5E12-8BB6-30136BA7DA09"><p>records defined at system
-compile time - these records have named fields and are defined by Symbian
-platform. </p> </li>
-<li id="GUID-E5B40BE7-13D4-5EE1-B005-1D00EAB0A7BC"><p>records defined by the
-user - these records are defined at run time - they are not known to Symbian
-platform when Symbian platform is built. </p> </li>
-</ul>
-<section id="GUID-6AB91FBD-F293-4563-964C-1A6C7F1459DB"><title>Records defined at system compile time</title> <p> </p> <p>The
-class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDRecordBase</apiname></xref> represents a Symbian
-platform defined record. All Symbian platform defined records inherit from <codeph>CCDRecordBase</codeph>.
-An individual named record is an instance of a class derived from <codeph>CCDRecordBase</codeph>.
-Symbian platform creates an individual named record and assigns a unique numeric
-Id. Symbian platform defines the class and the unique Id before the system
-is built. </p> <p>The class defines a schema for the record. A schema is a
-pattern for the record that all records of this type follow. The class contains
-a set of fields and links to other records. </p> <fig id="GUID-A331560C-9996-55E8-8C64-7BB2D5D0C1C6">
-<image href="GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e86307_href.png" placement="inline"/>
-</fig> <p>For example, Symbian platform defines the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref>.
-The class represents an Internet Access Point (IAP) record. A set of IAP records
-form an IAP table. Symbian platform assigns the unique numeric Id <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDTIdIAPRecord</apiname></xref> to a record of this type. </p> <p>The
-public data members of this class are the fields and links that make the record.
-The following code shows part of the class definition. Some parts are omitted
-- this is not the complete class definition. </p> <codeblock id="GUID-3F6A91C8-BF0E-50E9-B49B-C363816179E5" xml:space="preserve">class CCDIAPRecord : public CCDRecordBase
-    {
-    public:
-        CMDBField&lt;TDesC&gt;                        iServiceType;
-        CMDBRecordLink&lt;CCDServiceRecordBase&gt;    iService;
-        CMDBField&lt;TDesC&gt;                        iBearerType;
-        CMDBRecordLink&lt;CCDBearerRecordBase&gt;     iBearer;
-        CMDBRecordLink&lt;CCDNetworkRecord&gt;        iNetwork;
-        CMDBField&lt;TUint32&gt;                      iNetworkWeighting;
-        CMDBRecordLink&lt;CCDLocationRecord&gt;       iLocation;
-        ...
-    }
- </codeblock> <p>To create an instance of a Symbian platform defined record
-in memory, use the factory function: <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::RecordFactoryL()</apiname></xref>. </p> <p>Tools
-and applications can also create an instance of a Symbian platform defined
-record in memory, and copy it from another record. Use the factory function: <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::CreateCopyRecord()</apiname></xref>. </p> <p>Fields
-are public data members of a Symbian platform defined record. Tools and applications
-access the fields directly. </p> <p>Tools and applications can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByNameL()</apiname></xref> or <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref> functions
-to find fields in a Symbian platform defined record. These methods are <i>not</i> recommended.
-It is more efficient to access the fields directly. </p> </section>
-<section id="GUID-33F78080-476A-462D-B2A3-788C21DCF4D2"><title>Records defined by the user</title> <p>The class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref> represents a user defined record.
-All user defined records inherit from <codeph>CMDBGenericRecord</codeph>.
-User defined records do not have named fields. A tool or application supplies
-a schema at run time. The schema defines the structure of the record. </p> <p>A
-schema is an array of <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>SGenericRecordTypeInfo</apiname></xref> objects.
-Each item in the array defines the fields in the record in order. </p> <p>Tools
-and applications can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBGenericRecord::InitializeL()</apiname></xref> function
-to initialise a record in memory. Tools and Applications can also get use
-the <codeph>LoadL()</codeph> and <codeph>FindL()</codeph> functions to get
-the the table schema from the Comms Database. </p> <fig id="GUID-BCE5A2B5-C328-594A-A213-C4AFB48BBF68">
-<image href="GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e86395_href.png" placement="inline"/>
-</fig> <p> </p> <p>You use the same methods to create, store and access user
-defined records that Symbian platform defined records use. Symbian platform
-backs up user defined data and secures user defined data with Platform Security.
-Symbian platform does not maintain user defined data formats. </p> <p>Tools
-and applications must use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByNameL()</apiname></xref> or <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref> functions
-to find fields in a user defined record. It is more efficient to use <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-231840A2-255B-5200-8AD1-1D7667FCB448" xml:lang="en"><title>What
+are records</title><shortdesc>This topic describes the structure of record. A record is an item
+that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A record is a container and an element. A record refers to a set of fields
+in a defined order. A set or records that has the same fields in the same
+order can be called a recordset or a table. Fields in a given position make
+a column. A column is conceptual. The CommsDat API has no C++ item defined
+as a column. </p>
+<p>There are two types of record: </p>
+<ul>
+<li id="GUID-5989B5E3-1995-5E12-8BB6-30136BA7DA09"><p>records defined at system
+compile time - these records have named fields and are defined by Symbian
+platform. </p> </li>
+<li id="GUID-E5B40BE7-13D4-5EE1-B005-1D00EAB0A7BC"><p>records defined by the
+user - these records are defined at run time - they are not known to Symbian
+platform when Symbian platform is built. </p> </li>
+</ul>
+<section id="GUID-6AB91FBD-F293-4563-964C-1A6C7F1459DB"><title>Records defined at system compile time</title> <p> </p> <p>The
+class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDRecordBase</apiname></xref> represents a Symbian
+platform defined record. All Symbian platform defined records inherit from <codeph>CCDRecordBase</codeph>.
+An individual named record is an instance of a class derived from <codeph>CCDRecordBase</codeph>.
+Symbian platform creates an individual named record and assigns a unique numeric
+Id. Symbian platform defines the class and the unique Id before the system
+is built. </p> <p>The class defines a schema for the record. A schema is a
+pattern for the record that all records of this type follow. The class contains
+a set of fields and links to other records. </p> <fig id="GUID-A331560C-9996-55E8-8C64-7BB2D5D0C1C6">
+<image href="GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e79595_href.png" placement="inline"/>
+</fig> <p>For example, Symbian platform defines the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref>.
+The class represents an Internet Access Point (IAP) record. A set of IAP records
+form an IAP table. Symbian platform assigns the unique numeric Id <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDTIdIAPRecord</apiname></xref> to a record of this type. </p> <p>The
+public data members of this class are the fields and links that make the record.
+The following code shows part of the class definition. Some parts are omitted
+- this is not the complete class definition. </p> <codeblock id="GUID-3F6A91C8-BF0E-50E9-B49B-C363816179E5" xml:space="preserve">class CCDIAPRecord : public CCDRecordBase
+    {
+    public:
+        CMDBField&lt;TDesC&gt;                        iServiceType;
+        CMDBRecordLink&lt;CCDServiceRecordBase&gt;    iService;
+        CMDBField&lt;TDesC&gt;                        iBearerType;
+        CMDBRecordLink&lt;CCDBearerRecordBase&gt;     iBearer;
+        CMDBRecordLink&lt;CCDNetworkRecord&gt;        iNetwork;
+        CMDBField&lt;TUint32&gt;                      iNetworkWeighting;
+        CMDBRecordLink&lt;CCDLocationRecord&gt;       iLocation;
+        ...
+    }
+ </codeblock> <p>To create an instance of a Symbian platform defined record
+in memory, use the factory function: <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::RecordFactoryL()</apiname></xref>. </p> <p>Tools
+and applications can also create an instance of a Symbian platform defined
+record in memory, and copy it from another record. Use the factory function: <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::CreateCopyRecord()</apiname></xref>. </p> <p>Fields
+are public data members of a Symbian platform defined record. Tools and applications
+access the fields directly. </p> <p>Tools and applications can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByNameL()</apiname></xref> or <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref> functions
+to find fields in a Symbian platform defined record. These methods are <i>not</i> recommended.
+It is more efficient to access the fields directly. </p> </section>
+<section id="GUID-33F78080-476A-462D-B2A3-788C21DCF4D2"><title>Records defined by the user</title> <p>The class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref> represents a user defined record.
+All user defined records inherit from <codeph>CMDBGenericRecord</codeph>.
+User defined records do not have named fields. A tool or application supplies
+a schema at run time. The schema defines the structure of the record. </p> <p>A
+schema is an array of <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>SGenericRecordTypeInfo</apiname></xref> objects.
+Each item in the array defines the fields in the record in order. </p> <p>Tools
+and applications can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBGenericRecord::InitializeL()</apiname></xref> function
+to initialise a record in memory. Tools and Applications can also get use
+the <codeph>LoadL()</codeph> and <codeph>FindL()</codeph> functions to get
+the the table schema from the Comms Database. </p> <fig id="GUID-BCE5A2B5-C328-594A-A213-C4AFB48BBF68">
+<image href="GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e79683_href.png" placement="inline"/>
+</fig> <p> </p> <p>You use the same methods to create, store and access user
+defined records that Symbian platform defined records use. Symbian platform
+backs up user defined data and secures user defined data with Platform Security.
+Symbian platform does not maintain user defined data formats. </p> <p>Tools
+and applications must use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByNameL()</apiname></xref> or <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref> functions
+to find fields in a user defined record. It is more efficient to use <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::GetFieldByIdL()</apiname></xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e11032_href.png has changed
Binary file Symbian3/SDK/Source/GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e12307_href.png has changed
--- a/Symbian3/SDK/Source/GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083" xml:lang="en"><title>Client-side
-MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Example Code</title> <p><b>Download</b></p><p>Click on the
-following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files reproduced
-here are the main files contained in the examples directory. Some extra files
-may be needed to run the examples, and these will be found in the appropriate
-examples directory. </p><p> The subproject <filepath> txtc</filepath> demonstrates
-a Client-side MTM. The central class is <codeph>CTextMtmClient</codeph>,</p><p> derived
-from the Client-side MTM base class <codeph>CBaseMtm</codeph>.</p><p><filepath> txtc</filepath> implements
-all mandatory Client-side MTM functionality, and the following optional MTM
-functionality:<ul>
-<li><p> find: this searches the body text of a local entry, or its description
-or details</p></li>
-<li><p>message forwarding: this copies a message to another folder</p></li>
-<li><p> MTM-specific operations: <codeph>txtc</codeph> accepts requests for
-an asynchronous service Refresh operation, and passes such requests to the
-Server-side Text MTM.</p></li>
-</ul></p> </section>
-<section><title> Class Summary</title><p><xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref><xref href="GUID-2058E86A-53E6-3E6C-81E6-F6223E78CDE5.dita"><apiname> CMTMTxtsetings </apiname></xref><xref href="GUID-A78AE62C-A8C8-393D-81CD-126CC5513577.dita"><apiname>TMTMTxtSettings</apiname></xref></p><p> The
-following optional functionality is not implemented: <ul>
-<li><p> address handling: addresses are not relevant to this MTM </p></li>
-<li><p>subject field </p></li>
-<li><p> replying</p></li>
-</ul></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083" xml:lang="en"><title>Client-side MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-33E4E668-44A1-4B8B-9F6B-B55B98492C7F"><title>Example Code</title> <p><b>Download</b></p><p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTMi.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files
+reproduced here are the main files contained in the examples directory.
+Some extra files may be needed to run the examples, and these will
+be found in the appropriate examples directory. </p><p> The subproject <filepath> txtc</filepath> demonstrates a Client-side MTM. The central class
+is <codeph>CTextMtmClient</codeph>,</p><p> derived from the Client-side
+MTM base class <codeph>CBaseMtm</codeph>.</p><p><filepath> txtc</filepath> implements all mandatory Client-side MTM functionality, and the
+following optional MTM functionality:<ul>
+<li><p> find: this searches the body text of a local entry, or its
+description or details</p></li>
+<li><p>message forwarding: this copies a message to another folder</p></li>
+<li><p> MTM-specific operations: <codeph>txtc</codeph> accepts requests
+for an asynchronous service Refresh operation, and passes such requests
+to the Server-side Text MTM.</p></li>
+</ul></p> </section>
+<section id="GUID-CD629712-03AA-450D-A6B9-8DD96112AA8E"><title> Class Summary</title><ul>
+<li><p><xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref></p></li>
+<li><p><xref href="GUID-2058E86A-53E6-3E6C-81E6-F6223E78CDE5.dita"><apiname> CMTMTxtsetings </apiname></xref></p></li>
+<li><p><xref href="GUID-A78AE62C-A8C8-393D-81CD-126CC5513577.dita"><apiname>TMTMTxtSettings</apiname></xref></p></li>
+</ul><p> The following optional functionality is not
+implemented: <ul>
+<li><p> address handling: addresses are not relevant to this MTM </p></li>
+<li><p>subject field </p></li>
+<li><p> replying</p></li>
+</ul></p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e169182_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e175783_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1" xml:lang="en"><title>Detecting
-Changes in the Environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-829626B3-7A91-4A78-8608-9C9F35C96A5F-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-1"><title>Introduction</title> <p>There
-are two classes defined in <filepath>epoc32\include\COEMAIN.H</filepath> that
-enable FEPs to be notified about changes in their environment: <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derives from both of these classes, but does not itself
-implement any of their virtual functions. </p> </section>
-<section id="GUID-357E255E-69AC-4A2C-B098-F1F0353A4F21-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-2"><title>Using the MCoeForegroundObserver
-class</title><p> <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> has two (pure)
-virtual functions whose signatures are as follows: </p> <codeblock id="GUID-123B7768-7C63-5398-9285-5F94436D8924-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-2-3" xml:space="preserve">virtual void HandleGainingForeground()=0;
-virtual void HandleLosingForeground()=0;</codeblock> <p>The purpose of this
-class is to enable notification of when the application (in whose thread the
-client of this class is running) goes into the foreground or background. FEPs
-that have a window owning control should include the following code at the
-start of their implementation of <codeph>HandleGainingForeground()</codeph>: </p> <codeblock id="GUID-994FECF5-2EF2-5F29-A0CE-9C3225311812-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-2-5" xml:space="preserve">DrawableWindow()-&gt;MoveToGroup(iCoeEnv-&gt;WsSession().GetFocusWindowGroup());</codeblock> <p>This
-code switches the FEP to the window group that has gained focus. Doing this
-also enables FEPs to work with applications that have more than one window
-group. The <codeph>HandleGainingForeground()</codeph> and <codeph>HandleLosingForeground()</codeph> virtual
-functions might also be of use to a FEP if, for example, it is required to
-be invisible when the application underneath it is in the background. </p></section>
-<section id="GUID-C24BDB34-DBBE-4E7A-B07C-BC3E225683F3-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-3"><title>Using the MCoeFocusObserver
-class</title><p> <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> has two (pure) virtual
-functions whose signatures are as follows: </p> <codeblock id="GUID-36F6FD47-99F1-57B0-A3E9-4CB866272C09-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-3-3" xml:space="preserve">virtual void HandleChangeInFocus()=0;
-virtual void HandleDestructionOfFocusedItem()=0;</codeblock> <p>The purpose
-of this class is to enable notification of when controls under the FEP gain
-or lose focus. This notification is useful to FEPs that need to know about
-the input capabilities of their target control. See the next section for information
-on input capabilities. </p></section>
-<section id="GUID-5B6859ED-764F-4635-8457-91DDC29FBA7E-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-4"><title>Using the TCoeInputCapabilities
-class</title><p>The public parts of <codeph>TCoeInputCapabilities</codeph> (which
-is defined in <filepath>epoc32\include\COEINPUT.H</filepath>) are as follows: </p> <codeblock id="GUID-CF002ADB-2946-5D3A-9749-796D88D3C718-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-4-3" xml:space="preserve">class TCoeInputCapabilities
-    {
-public:
-    enum
-        {
-        ENone=0,
-        EWesternNumericIntegerPositive=0x00000001,
-        EWesternNumericIntegerNegative=0x00000002,
-        EWesternNumericReal=0x00000004,
-        EWesternAlphabetic=0x00000008,
-        EJapaneseHiragana=0x00000010,
-        EJapaneseKatakanaHalfWidth=0x00000020,
-        EJapaneseKatakanaFullWidth=0x00000040,
-        EDialableCharacters=0x00000080,
-        ESecretText=0x00000100,
-        EAllText=0x01000000,
-        ENavigation=0x02000000
-        };
-    class MCoeFepSpecificExtensions; // to be defined by concrete FEPs, declared here
-public:
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities);
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor, MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep);
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor,  MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep,  TUid aFepUid, MCoeFepSpecificExtensions* aFepSpecificExtensions);
-    IMPORT_C TCoeInputCapabilities(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C TCoeInputCapabilities&amp; operator=(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C TBool operator==(const TCoeInputCapabilities&amp; aAnother) const;
-    IMPORT_C TBool operator!=(const TCoeInputCapabilities&amp; aAnother) const;
-    IMPORT_C void MergeWith(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C void SetCapabilities(TUint aCapabilities);
-    IMPORT_C TUint Capabilities() const;
-    IMPORT_C TBool IsNone() const;
-    IMPORT_C TBool SupportsWesternNumericIntegerPositive() const;
-    IMPORT_C TBool SupportsWesternNumericIntegerNegative() const;
-    IMPORT_C TBool SupportsWesternNumericReal() const;
-    IMPORT_C TBool SupportsWesternAlphabetic() const;
-    IMPORT_C TBool SupportsJapaneseHiragana() const;
-    IMPORT_C TBool SupportsJapaneseKatakanaHalfWidth() const;
-    IMPORT_C TBool SupportsJapaneseKatakanaFullWidth() const;
-    IMPORT_C TBool SupportsDialableCharacters() const;
-    IMPORT_C TBool SupportsSecretText() const;
-    IMPORT_C TBool SupportsAllText() const;
-    IMPORT_C TBool SupportsNavigation() const;
-    IMPORT_C MCoeFepAwareTextEditor* FepAwareTextEditor() const;
-    IMPORT_C MCoeCaptionRetrieverForFep* CaptionRetrieverForFep() const;
-    IMPORT_C MCoeFepSpecificExtensions* FepSpecificExtensions(TUid aFepUid) const;
-    IMPORT_C MObjectProvider* ObjectProvider() const;
-    IMPORT_C void SetObjectProvider(MObjectProvider* aObjectProvider);
-    };</codeblock> <p>The following code initializes <codeph>inputCapabilities</codeph> to
-the merged input capabilities of all the currently focused controls: </p> <codeblock id="GUID-E82A2E62-B8BF-5D8C-B56C-B67CC4B34CCF-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-4-5" xml:space="preserve">TCoeInputCapabilities inputCapabilities(STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;InputCapabilities());</codeblock> <p>The best place for this code is inside the overrides of <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> ’s
-virtual functions. </p> <p>By calling <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>'s
-inquiry functions, the FEP can vary its behaviour according to the input capabilities
-of the target control. The <codeph>Supports</codeph> <i>Xxxxx</i> <codeph>()</codeph> member
-functions indicate what sort of key events should be sent by the FEP to the
-target control. It is important for the FEP to behave appropriately for the
-capabilities of the target control(s). For example, a FEP should not allow
-the user to compose a large amount of text, only to pass it on to a control
-that does not support it. The <codeph>FepAwareTextEditor()</codeph>, <codeph>CaptionRetrieverForFep()</codeph> and <codeph>FepSpecificExtensions()</codeph> member functions return pointers to objects of the interface classes <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>, <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref> and <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> respectively. In each case,
-a NULL return value indicates that the interface is not supported by any of
-the currently focused controls. </p> <p> <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> (which
-is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) is an important
-and complex class, and is discussed in <xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita#GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1/GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-1">Close
-interaction with text editor controls</xref> below. </p> <p> <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref>,
-which is also defined in <filepath>epoc32\include\FEPBASE.H</filepath>, has
-a single member function whose signature is as follows: </p> <codeblock id="GUID-AD620A06-25B2-5E2D-B9F0-AB4D7686F96D-GENID-1-8-1-3-1-1-9-1-4-1-9-1-2-4-10" xml:space="preserve">virtual void GetCaptionForFep(TDes&amp; aCaption) const=0;</codeblock> <p>This sets <codeph>aCaption</codeph> to the caption of the target control.
-An example of a caption is the non-editable prompt displayed alongside each
-item in a dialog. </p> <p> <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> is
-declared in <filepath>epoc32\include\COEINPUT.H</filepath> within the scope
-of the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> class, although it is not
-defined by any component in the Symbian platform. It is to be defined by concrete
-FEPs rather than by the FEP architecture. The intention of this is to allow
-applications to communicate specialized input capabilities with a particular
-FEP that they know about. The concrete FEP would define the class in a public
-header file which then can be used by the relevant applications. Note that
-the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> constructor which takes a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer,
-and also the inquiry function returning a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer
-both require the UID of the FEP defining this class to be passed. This is
-to ensure that the FEP and the application are both assuming the same definition
-of the <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> class. </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1" xml:lang="en"><title>Detecting
-Changes in the Environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-829626B3-7A91-4A78-8608-9C9F35C96A5F-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-1"><title>Introduction</title> <p>There
-are two classes defined in <filepath>epoc32\include\COEMAIN.H</filepath> that
-enable FEPs to be notified about changes in their environment: <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derives from both of these classes, but does not itself
-implement any of their virtual functions. </p> </section>
-<section id="GUID-357E255E-69AC-4A2C-B098-F1F0353A4F21-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-2"><title>Using the MCoeForegroundObserver
-class</title><p> <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> has two (pure)
-virtual functions whose signatures are as follows: </p> <codeblock id="GUID-123B7768-7C63-5398-9285-5F94436D8924-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-2-3" xml:space="preserve">virtual void HandleGainingForeground()=0;
-virtual void HandleLosingForeground()=0;</codeblock> <p>The purpose of this
-class is to enable notification of when the application (in whose thread the
-client of this class is running) goes into the foreground or background. FEPs
-that have a window owning control should include the following code at the
-start of their implementation of <codeph>HandleGainingForeground()</codeph>: </p> <codeblock id="GUID-994FECF5-2EF2-5F29-A0CE-9C3225311812-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-2-5" xml:space="preserve">DrawableWindow()-&gt;MoveToGroup(iCoeEnv-&gt;WsSession().GetFocusWindowGroup());</codeblock> <p>This
-code switches the FEP to the window group that has gained focus. Doing this
-also enables FEPs to work with applications that have more than one window
-group. The <codeph>HandleGainingForeground()</codeph> and <codeph>HandleLosingForeground()</codeph> virtual
-functions might also be of use to a FEP if, for example, it is required to
-be invisible when the application underneath it is in the background. </p></section>
-<section id="GUID-C24BDB34-DBBE-4E7A-B07C-BC3E225683F3-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-3"><title>Using the MCoeFocusObserver
-class</title><p> <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> has two (pure) virtual
-functions whose signatures are as follows: </p> <codeblock id="GUID-36F6FD47-99F1-57B0-A3E9-4CB866272C09-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-3-3" xml:space="preserve">virtual void HandleChangeInFocus()=0;
-virtual void HandleDestructionOfFocusedItem()=0;</codeblock> <p>The purpose
-of this class is to enable notification of when controls under the FEP gain
-or lose focus. This notification is useful to FEPs that need to know about
-the input capabilities of their target control. See the next section for information
-on input capabilities. </p></section>
-<section id="GUID-5B6859ED-764F-4635-8457-91DDC29FBA7E-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-4"><title>Using the TCoeInputCapabilities
-class</title><p>The public parts of <codeph>TCoeInputCapabilities</codeph> (which
-is defined in <filepath>epoc32\include\COEINPUT.H</filepath>) are as follows: </p> <codeblock id="GUID-CF002ADB-2946-5D3A-9749-796D88D3C718-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-4-3" xml:space="preserve">class TCoeInputCapabilities
-    {
-public:
-    enum
-        {
-        ENone=0,
-        EWesternNumericIntegerPositive=0x00000001,
-        EWesternNumericIntegerNegative=0x00000002,
-        EWesternNumericReal=0x00000004,
-        EWesternAlphabetic=0x00000008,
-        EJapaneseHiragana=0x00000010,
-        EJapaneseKatakanaHalfWidth=0x00000020,
-        EJapaneseKatakanaFullWidth=0x00000040,
-        EDialableCharacters=0x00000080,
-        ESecretText=0x00000100,
-        EAllText=0x01000000,
-        ENavigation=0x02000000
-        };
-    class MCoeFepSpecificExtensions; // to be defined by concrete FEPs, declared here
-public:
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities);
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor, MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep);
-    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor,  MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep,  TUid aFepUid, MCoeFepSpecificExtensions* aFepSpecificExtensions);
-    IMPORT_C TCoeInputCapabilities(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C TCoeInputCapabilities&amp; operator=(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C TBool operator==(const TCoeInputCapabilities&amp; aAnother) const;
-    IMPORT_C TBool operator!=(const TCoeInputCapabilities&amp; aAnother) const;
-    IMPORT_C void MergeWith(const TCoeInputCapabilities&amp; aAnother);
-    IMPORT_C void SetCapabilities(TUint aCapabilities);
-    IMPORT_C TUint Capabilities() const;
-    IMPORT_C TBool IsNone() const;
-    IMPORT_C TBool SupportsWesternNumericIntegerPositive() const;
-    IMPORT_C TBool SupportsWesternNumericIntegerNegative() const;
-    IMPORT_C TBool SupportsWesternNumericReal() const;
-    IMPORT_C TBool SupportsWesternAlphabetic() const;
-    IMPORT_C TBool SupportsJapaneseHiragana() const;
-    IMPORT_C TBool SupportsJapaneseKatakanaHalfWidth() const;
-    IMPORT_C TBool SupportsJapaneseKatakanaFullWidth() const;
-    IMPORT_C TBool SupportsDialableCharacters() const;
-    IMPORT_C TBool SupportsSecretText() const;
-    IMPORT_C TBool SupportsAllText() const;
-    IMPORT_C TBool SupportsNavigation() const;
-    IMPORT_C MCoeFepAwareTextEditor* FepAwareTextEditor() const;
-    IMPORT_C MCoeCaptionRetrieverForFep* CaptionRetrieverForFep() const;
-    IMPORT_C MCoeFepSpecificExtensions* FepSpecificExtensions(TUid aFepUid) const;
-    IMPORT_C MObjectProvider* ObjectProvider() const;
-    IMPORT_C void SetObjectProvider(MObjectProvider* aObjectProvider);
-    };</codeblock> <p>The following code initializes <codeph>inputCapabilities</codeph> to
-the merged input capabilities of all the currently focused controls: </p> <codeblock id="GUID-E82A2E62-B8BF-5D8C-B56C-B67CC4B34CCF-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-4-5" xml:space="preserve">TCoeInputCapabilities inputCapabilities(STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;InputCapabilities());</codeblock> <p>The best place for this code is inside the overrides of <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> ’s
-virtual functions. </p> <p>By calling <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>'s
-inquiry functions, the FEP can vary its behaviour according to the input capabilities
-of the target control. The <codeph>Supports</codeph> <i>Xxxxx</i> <codeph>()</codeph> member
-functions indicate what sort of key events should be sent by the FEP to the
-target control. It is important for the FEP to behave appropriately for the
-capabilities of the target control(s). For example, a FEP should not allow
-the user to compose a large amount of text, only to pass it on to a control
-that does not support it. The <codeph>FepAwareTextEditor()</codeph>, <codeph>CaptionRetrieverForFep()</codeph> and <codeph>FepSpecificExtensions()</codeph> member functions return pointers to objects of the interface classes <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>, <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref> and <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> respectively. In each case,
-a NULL return value indicates that the interface is not supported by any of
-the currently focused controls. </p> <p> <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> (which
-is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) is an important
-and complex class, and is discussed in <xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita#GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1/GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-1">Close
-interaction with text editor controls</xref> below. </p> <p> <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref>,
-which is also defined in <filepath>epoc32\include\FEPBASE.H</filepath>, has
-a single member function whose signature is as follows: </p> <codeblock id="GUID-AD620A06-25B2-5E2D-B9F0-AB4D7686F96D-GENID-1-8-1-6-1-1-4-1-8-1-4-1-9-1-2-4-10" xml:space="preserve">virtual void GetCaptionForFep(TDes&amp; aCaption) const=0;</codeblock> <p>This sets <codeph>aCaption</codeph> to the caption of the target control.
-An example of a caption is the non-editable prompt displayed alongside each
-item in a dialog. </p> <p> <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> is
-declared in <filepath>epoc32\include\COEINPUT.H</filepath> within the scope
-of the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> class, although it is not
-defined by any component in the Symbian platform. It is to be defined by concrete
-FEPs rather than by the FEP architecture. The intention of this is to allow
-applications to communicate specialized input capabilities with a particular
-FEP that they know about. The concrete FEP would define the class in a public
-header file which then can be used by the relevant applications. Note that
-the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> constructor which takes a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer,
-and also the inquiry function returning a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer
-both require the UID of the FEP defining this class to be passed. This is
-to ensure that the FEP and the application are both assuming the same definition
-of the <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> class. </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3" xml:lang="en"><title>Detecting
+Changes in the Environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-829626B3-7A91-4A78-8608-9C9F35C96A5F"><title>Introduction</title> <p>There
+are two classes defined in <filepath>epoc32\include\COEMAIN.H</filepath> that
+enable FEPs to be notified about changes in their environment: <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derives from both of these classes, but does not itself
+implement any of their virtual functions. </p> </section>
+<section id="GUID-357E255E-69AC-4A2C-B098-F1F0353A4F21"><title>Using the MCoeForegroundObserver
+class</title><p> <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> has two (pure)
+virtual functions whose signatures are as follows: </p> <codeblock id="GUID-123B7768-7C63-5398-9285-5F94436D8924" xml:space="preserve">virtual void HandleGainingForeground()=0;
+virtual void HandleLosingForeground()=0;</codeblock> <p>The purpose of this
+class is to enable notification of when the application (in whose thread the
+client of this class is running) goes into the foreground or background. FEPs
+that have a window owning control should include the following code at the
+start of their implementation of <codeph>HandleGainingForeground()</codeph>: </p> <codeblock id="GUID-994FECF5-2EF2-5F29-A0CE-9C3225311812" xml:space="preserve">DrawableWindow()-&gt;MoveToGroup(iCoeEnv-&gt;WsSession().GetFocusWindowGroup());</codeblock> <p>This
+code switches the FEP to the window group that has gained focus. Doing this
+also enables FEPs to work with applications that have more than one window
+group. The <codeph>HandleGainingForeground()</codeph> and <codeph>HandleLosingForeground()</codeph> virtual
+functions might also be of use to a FEP if, for example, it is required to
+be invisible when the application underneath it is in the background. </p></section>
+<section id="GUID-C24BDB34-DBBE-4E7A-B07C-BC3E225683F3"><title>Using the MCoeFocusObserver
+class</title><p> <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> has two (pure) virtual
+functions whose signatures are as follows: </p> <codeblock id="GUID-36F6FD47-99F1-57B0-A3E9-4CB866272C09" xml:space="preserve">virtual void HandleChangeInFocus()=0;
+virtual void HandleDestructionOfFocusedItem()=0;</codeblock> <p>The purpose
+of this class is to enable notification of when controls under the FEP gain
+or lose focus. This notification is useful to FEPs that need to know about
+the input capabilities of their target control. See the next section for information
+on input capabilities. </p></section>
+<section id="GUID-5B6859ED-764F-4635-8457-91DDC29FBA7E"><title>Using the TCoeInputCapabilities
+class</title><p>The public parts of <codeph>TCoeInputCapabilities</codeph> (which
+is defined in <filepath>epoc32\include\COEINPUT.H</filepath>) are as follows: </p> <codeblock id="GUID-CF002ADB-2946-5D3A-9749-796D88D3C718" xml:space="preserve">class TCoeInputCapabilities
+    {
+public:
+    enum
+        {
+        ENone=0,
+        EWesternNumericIntegerPositive=0x00000001,
+        EWesternNumericIntegerNegative=0x00000002,
+        EWesternNumericReal=0x00000004,
+        EWesternAlphabetic=0x00000008,
+        EJapaneseHiragana=0x00000010,
+        EJapaneseKatakanaHalfWidth=0x00000020,
+        EJapaneseKatakanaFullWidth=0x00000040,
+        EDialableCharacters=0x00000080,
+        ESecretText=0x00000100,
+        EAllText=0x01000000,
+        ENavigation=0x02000000
+        };
+    class MCoeFepSpecificExtensions; // to be defined by concrete FEPs, declared here
+public:
+    IMPORT_C TCoeInputCapabilities(TUint aCapabilities);
+    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor, MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep);
+    IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor,  MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep,  TUid aFepUid, MCoeFepSpecificExtensions* aFepSpecificExtensions);
+    IMPORT_C TCoeInputCapabilities(const TCoeInputCapabilities&amp; aAnother);
+    IMPORT_C TCoeInputCapabilities&amp; operator=(const TCoeInputCapabilities&amp; aAnother);
+    IMPORT_C TBool operator==(const TCoeInputCapabilities&amp; aAnother) const;
+    IMPORT_C TBool operator!=(const TCoeInputCapabilities&amp; aAnother) const;
+    IMPORT_C void MergeWith(const TCoeInputCapabilities&amp; aAnother);
+    IMPORT_C void SetCapabilities(TUint aCapabilities);
+    IMPORT_C TUint Capabilities() const;
+    IMPORT_C TBool IsNone() const;
+    IMPORT_C TBool SupportsWesternNumericIntegerPositive() const;
+    IMPORT_C TBool SupportsWesternNumericIntegerNegative() const;
+    IMPORT_C TBool SupportsWesternNumericReal() const;
+    IMPORT_C TBool SupportsWesternAlphabetic() const;
+    IMPORT_C TBool SupportsJapaneseHiragana() const;
+    IMPORT_C TBool SupportsJapaneseKatakanaHalfWidth() const;
+    IMPORT_C TBool SupportsJapaneseKatakanaFullWidth() const;
+    IMPORT_C TBool SupportsDialableCharacters() const;
+    IMPORT_C TBool SupportsSecretText() const;
+    IMPORT_C TBool SupportsAllText() const;
+    IMPORT_C TBool SupportsNavigation() const;
+    IMPORT_C MCoeFepAwareTextEditor* FepAwareTextEditor() const;
+    IMPORT_C MCoeCaptionRetrieverForFep* CaptionRetrieverForFep() const;
+    IMPORT_C MCoeFepSpecificExtensions* FepSpecificExtensions(TUid aFepUid) const;
+    IMPORT_C MObjectProvider* ObjectProvider() const;
+    IMPORT_C void SetObjectProvider(MObjectProvider* aObjectProvider);
+    };</codeblock> <p>The following code initializes <codeph>inputCapabilities</codeph> to
+the merged input capabilities of all the currently focused controls: </p> <codeblock id="GUID-E82A2E62-B8BF-5D8C-B56C-B67CC4B34CCF" xml:space="preserve">TCoeInputCapabilities inputCapabilities(STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;InputCapabilities());</codeblock> <p>The best place for this code is inside the overrides of <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref> ’s
+virtual functions. </p> <p>By calling <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>'s
+inquiry functions, the FEP can vary its behaviour according to the input capabilities
+of the target control. The <codeph>Supports</codeph> <i>Xxxxx</i> <codeph>()</codeph> member
+functions indicate what sort of key events should be sent by the FEP to the
+target control. It is important for the FEP to behave appropriately for the
+capabilities of the target control(s). For example, a FEP should not allow
+the user to compose a large amount of text, only to pass it on to a control
+that does not support it. The <codeph>FepAwareTextEditor()</codeph>, <codeph>CaptionRetrieverForFep()</codeph> and <codeph>FepSpecificExtensions()</codeph> member functions return pointers to objects of the interface classes <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>, <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref> and <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> respectively. In each case,
+a NULL return value indicates that the interface is not supported by any of
+the currently focused controls. </p> <p> <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> (which
+is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) is an important
+and complex class, and is discussed in <xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107.dita#GUID-38679CA2-0066-589C-988F-AC14B7E2F107/GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4">Close
+interaction with text editor controls</xref> below. </p> <p> <xref href="GUID-68C16461-68A4-37D2-888E-DD4A6917442A.dita"><apiname>MCoeCaptionRetrieverForFep</apiname></xref>,
+which is also defined in <filepath>epoc32\include\FEPBASE.H</filepath>, has
+a single member function whose signature is as follows: </p> <codeblock id="GUID-AD620A06-25B2-5E2D-B9F0-AB4D7686F96D" xml:space="preserve">virtual void GetCaptionForFep(TDes&amp; aCaption) const=0;</codeblock> <p>This sets <codeph>aCaption</codeph> to the caption of the target control.
+An example of a caption is the non-editable prompt displayed alongside each
+item in a dialog. </p> <p> <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> is
+declared in <filepath>epoc32\include\COEINPUT.H</filepath> within the scope
+of the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> class, although it is not
+defined by any component in the Symbian platform. It is to be defined by concrete
+FEPs rather than by the FEP architecture. The intention of this is to allow
+applications to communicate specialized input capabilities with a particular
+FEP that they know about. The concrete FEP would define the class in a public
+header file which then can be used by the relevant applications. Note that
+the <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref> constructor which takes a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer,
+and also the inquiry function returning a <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> pointer
+both require the UID of the FEP defining this class to be passed. This is
+to ensure that the FEP and the application are both assuming the same definition
+of the <xref href="GUID-03D3A775-F899-30F1-8A4F-25D60439C11E.dita"><apiname>MCoeFepSpecificExtensions</apiname></xref> class. </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e114300_href.png has changed
Binary file Symbian3/SDK/Source/GUID-239B8B32-5816-575E-97B1-FF7B68BC7575_d0e120838_href.png has changed
--- a/Symbian3/SDK/Source/GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87" xml:lang="en"><title>Relationship
-between window controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When a control draws in the window of another control, the position
-is relative to that window. If a control owns a window that is a child of
-another window, that control's position is relative to the parent window;
-however, if that control is a compound control, its child control's coordinates
-are relative to its own parent control window position. Top-level window-owning
-controls are displayed using a position relative to the display. In other
-words, it uses the physical coordinates of the display.</p>
-<p>The following figure illustrates this relationship.</p>
-<fig id="GUID-9D373EB7-096D-4C84-8060-577F33D462EE"><title>Relative positions of three controls where the top-level parent owns
-the window</title><image href="GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e46589_href.png"/></fig>
-<p>Consider three controls, <b>A</b>, <b>B</b>, and <b>C</b> (shown in
-the figure above):</p>
-<ul>
-<li><p><b>A</b> is a top-level control and owns a window</p>
-</li>
-<li><p>Child controls <b>B</b> and <b>C</b> do not create their
-own windows in this example.</p></li>
-<li><p><b>B</b>, a child control of <b>A</b>, does not create a
-window, and it has a child control, <b>C</b>. </p>
-<itemgroup>
-<p><b>B</b>'s window is set calling the <parmname>CCoeControl::SetContainerWindowL(A)</parmname> method
-and <b>C</b>'s window is set with <parmname>CCoeControl::SetContainerWindowL(B)</parmname>.
-Then <b>C</b>'s position (p) is relative to <b>A</b>, since it is the actual
-window owner. <b>A</b>'s position (m) is relative to the display position.</p>
-</itemgroup>
-</li>
-</ul>
-<p>However, if <b>B</b> is a child control of <b>A</b> but also has a window
-of its own, it is a child window of <b>A</b>'s window (as shown in the following
-figure). Then if <b>C</b> is a child of <b>B</b> and sets its window by calling <parmname>CCoeControl::SetContainerWindowL(B)</parmname>,
-the position of <b>C</b> (p') is relative to <b>B</b>'s window.</p>
-<fig id="GUID-5884BDB6-6ED0-4EF6-A64F-3EEAAAEE2FF0"><title>Relative positions of three controls where a child owns a window</title><image href="GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e46692_href.png"/></fig>
-<p>As the example illustrates, a control position depends on the window
-in which it is drawn. Therefore, you need to know the drawing window for each
-control. It is an important issue when designing a UI layout. There are some
-common controls that optionally may have their own window, such as menus,
-dialogs, and scroll bars. The application framework handles drawing these
-controls, as long as the appropriate resources and flags have been set. The <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-8AF77599-1FE4-36C1-AED8-1FB8A053354F"><apiname>CCoeControl::OwnsWindow()</apiname></xref> call
-can be used to detect whether a control owns a window or not.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87" xml:lang="en"><title>Relationship
+between window controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When a control draws in the window of another control, the position
+is relative to that window. If a control owns a window that is a child of
+another window, that control's position is relative to the parent window;
+however, if that control is a compound control, its child control's coordinates
+are relative to its own parent control window position. Top-level window-owning
+controls are displayed using a position relative to the display. In other
+words, it uses the physical coordinates of the display.</p>
+<p>The following figure illustrates this relationship.</p>
+<fig id="GUID-9D373EB7-096D-4C84-8060-577F33D462EE"><title>Relative positions of three controls where the top-level parent owns
+the window</title><image href="GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e41032_href.png"/></fig>
+<p>Consider three controls, <b>A</b>, <b>B</b>, and <b>C</b> (shown in
+the figure above):</p>
+<ul>
+<li><p><b>A</b> is a top-level control and owns a window</p>
+</li>
+<li><p>Child controls <b>B</b> and <b>C</b> do not create their
+own windows in this example.</p></li>
+<li><p><b>B</b>, a child control of <b>A</b>, does not create a
+window, and it has a child control, <b>C</b>. </p>
+<itemgroup>
+<p><b>B</b>'s window is set calling the <parmname>CCoeControl::SetContainerWindowL(A)</parmname> method
+and <b>C</b>'s window is set with <parmname>CCoeControl::SetContainerWindowL(B)</parmname>.
+Then <b>C</b>'s position (p) is relative to <b>A</b>, since it is the actual
+window owner. <b>A</b>'s position (m) is relative to the display position.</p>
+</itemgroup>
+</li>
+</ul>
+<p>However, if <b>B</b> is a child control of <b>A</b> but also has a window
+of its own, it is a child window of <b>A</b>'s window (as shown in the following
+figure). Then if <b>C</b> is a child of <b>B</b> and sets its window by calling <parmname>CCoeControl::SetContainerWindowL(B)</parmname>,
+the position of <b>C</b> (p') is relative to <b>B</b>'s window.</p>
+<fig id="GUID-5884BDB6-6ED0-4EF6-A64F-3EEAAAEE2FF0"><title>Relative positions of three controls where a child owns a window</title><image href="GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e41135_href.png"/></fig>
+<p>As the example illustrates, a control position depends on the window
+in which it is drawn. Therefore, you need to know the drawing window for each
+control. It is an important issue when designing a UI layout. There are some
+common controls that optionally may have their own window, such as menus,
+dialogs, and scroll bars. The application framework handles drawing these
+controls, as long as the appropriate resources and flags have been set. The <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-8AF77599-1FE4-36C1-AED8-1FB8A053354F"><apiname>CCoeControl::OwnsWindow()</apiname></xref> call
+can be used to detect whether a control owns a window or not.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2418E86F-BF82-4F2A-A056-5F1D0682C410.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2418E86F-BF82-4F2A-A056-5F1D0682C410" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Stylus pop-up menu API is an SDK API and first released in S60 5th
-Edition.</p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,87 +1,87 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC" xml:lang="en"><title>Hiding
-item-specific commands in submenus</title><shortdesc>This document describes the changes required to your application's
-code for hiding item-specific commands in submenus.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-5-1-3-1">
-<step id="GUID-8718D32E-27CA-4305-A5EB-4193AE78D630"><cmd>You can hide item-specific
-commands in submenus in either of the following ways:</cmd>
-<choices>
-<choice><p>Add the <codeph>EEikMenuItemSpecific</codeph> flag to submenu resource
-definitions. As a result, the submenu items are displayed in the stylus pop-up
-menu at the same level as main menu items.</p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_calendarapiexample_entries_menu_option
-    {
-    items =
-        {
-        MENU_ITEM 
-            { 
-            command = ECalendarAPIexampleOption;
-            txt = qtn_options_option; 
-            cascade = r_calendarapiexample_entries_menu;
-            // ----Add the following line-----
-            <b>flags = EEikMenuItemSpecific;</b>  
-            //--------------------------------------
-            },
-        MENU_ITEM 
-            { 
-            command = ECalendarAPIexampleDeleteAll;
-            txt = qtn_options_delet_all;  
-            }
-        };
-    }
-RESOURCE MENU_PANE r_calendarapiexample_entries_menu
-    {
-    items =
-        {
-         MENU_ITEM { command = ECalendarAPIexampleCmdDelete; txt = qtn_options_delete;}
-        };
-    }</codeblock><p>For example, the following illustrations show how the
-item-specific submenu item (<uicontrol>Delete</uicontrol>) is hidden in the
-options menu and displayed in the stylus pop-up menu by setting the <codeph>EEikMenuItemSpecific</codeph> flag.</p><fig id="GUID-5B14DC3B-857A-4F79-9B47-4E00786386D8">
-<title> Before setting the EEikMenuItemSpecific flag</title>
-<image href="GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2770_href.png" placement="inline"/>
-</fig><fig id="GUID-87A153E3-2451-4C2E-B998-5ACDB30C627E">
-<title>After setting the EEikMenuItemSpecific flag</title>
-<image href="GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2777_href.png" placement="inline"/>
-</fig></choice>
-<choice><p>Add the <codeph>EEikMenuItemSpecificListQuery</codeph> flag to
-submenu resource definitions. As a result, the submenu items are displayed
-in a list query dialog box within stylus pop-up menus.</p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_calendarapiexample_entries_menu_option
-    {
-    items =
-        {
-        MENU_ITEM 
-            { 
-            command = ECalendarAPIexampleOption;
-            txt = qtn_options_option; 
-            cascade = r_calendarapiexample_entries_menu;
-            //----Add the following line----------
-            <b>flags = EEikMenuItemSpecificListQuery;</b>  
-				 //---------------------------------------
-            },
-        MENU_ITEM 
-            { 
-            command = ECalendarAPIexampleDeleteAll;
-            txt = qtn_options_delet_all;  
-            }
-        };
-    }
-</codeblock><p>For example, the following illustration shows how the <uicontrol>Delete</uicontrol> command
-is displayed in the list query dialog box under <uicontrol>option</uicontrol> by
-setting the <codeph>EEikMenuItemSpecificListQuery</codeph> flag.</p><fig id="GUID-F158E9FA-11A5-485D-A5A1-B2C936FF1ABC">
-<title>After setting the EEikMenuItemSpecificListQuery flag</title>
-<image href="GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2807_href.png" placement="inline"/>
-</fig></choice>
-</choices>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC" xml:lang="en"><title>Hiding
+item-specific commands in submenus</title><shortdesc>This document describes the changes required to your application's
+code for hiding item-specific commands in submenus.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-5-1-3-1">
+<step id="GUID-8718D32E-27CA-4305-A5EB-4193AE78D630"><cmd>You can hide item-specific
+commands in submenus in either of the following ways:</cmd>
+<choices>
+<choice><p>Add the <codeph>EEikMenuItemSpecific</codeph> flag to submenu resource
+definitions. As a result, the submenu items are displayed in the stylus pop-up
+menu at the same level as main menu items.</p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_calendarapiexample_entries_menu_option
+    {
+    items =
+        {
+        MENU_ITEM 
+            { 
+            command = ECalendarAPIexampleOption;
+            txt = qtn_options_option; 
+            cascade = r_calendarapiexample_entries_menu;
+            // ----Add the following line-----
+            <b>flags = EEikMenuItemSpecific;</b>  
+            //--------------------------------------
+            },
+        MENU_ITEM 
+            { 
+            command = ECalendarAPIexampleDeleteAll;
+            txt = qtn_options_delet_all;  
+            }
+        };
+    }
+RESOURCE MENU_PANE r_calendarapiexample_entries_menu
+    {
+    items =
+        {
+         MENU_ITEM { command = ECalendarAPIexampleCmdDelete; txt = qtn_options_delete;}
+        };
+    }</codeblock><p>For example, the following illustrations show how the
+item-specific submenu item (<uicontrol>Delete</uicontrol>) is hidden in the
+options menu and displayed in the stylus pop-up menu by setting the <codeph>EEikMenuItemSpecific</codeph> flag.</p><fig id="GUID-5B14DC3B-857A-4F79-9B47-4E00786386D8">
+<title> Before setting the EEikMenuItemSpecific flag</title>
+<image href="GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2872_href.png" placement="inline"/>
+</fig><fig id="GUID-87A153E3-2451-4C2E-B998-5ACDB30C627E">
+<title>After setting the EEikMenuItemSpecific flag</title>
+<image href="GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2879_href.png" placement="inline"/>
+</fig></choice>
+<choice><p>Add the <codeph>EEikMenuItemSpecificListQuery</codeph> flag to
+submenu resource definitions. As a result, the submenu items are displayed
+in a list query dialog box within stylus pop-up menus.</p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_calendarapiexample_entries_menu_option
+    {
+    items =
+        {
+        MENU_ITEM 
+            { 
+            command = ECalendarAPIexampleOption;
+            txt = qtn_options_option; 
+            cascade = r_calendarapiexample_entries_menu;
+            //----Add the following line----------
+            <b>flags = EEikMenuItemSpecificListQuery;</b>  
+				 //---------------------------------------
+            },
+        MENU_ITEM 
+            { 
+            command = ECalendarAPIexampleDeleteAll;
+            txt = qtn_options_delet_all;  
+            }
+        };
+    }
+</codeblock><p>For example, the following illustration shows how the <uicontrol>Delete</uicontrol> command
+is displayed in the list query dialog box under <uicontrol>option</uicontrol> by
+setting the <codeph>EEikMenuItemSpecificListQuery</codeph> flag.</p><fig id="GUID-F158E9FA-11A5-485D-A5A1-B2C936FF1ABC">
+<title>After setting the EEikMenuItemSpecificListQuery flag</title>
+<image href="GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2909_href.png" placement="inline"/>
+</fig></choice>
+</choices>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0" xml:lang="en"><title>Notification
-Services Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4AA259E4-5A4F-4E4B-A7DB-B27440D12FF9"><title>Purpose</title> <p>Provides miscellaneous low-level
-services for notifying programs of environment changes and of thread deaths,
-and for putting simple messages on screen. </p> </section>
-<section id="GUID-8EE8F255-609E-4050-8DD1-D4BEE036543B"><title>Description</title> <p>The API has three key concepts: change
-notifier, thread-death notifier, and simple screen output service. </p> <p><b>Change
-notifier</b> </p> <p>The change notifier signals the requesting thread's request
-semaphore when a change in the environment occurs, such as a switch in locale,
-or system time being reset. </p> <p>The change notifier interface is provided
-by <xref href="GUID-1D10173D-17C1-3EA3-923E-6C7017F1F56F.dita"><apiname>RChangeNotifier</apiname></xref>. </p> <p>Note that the Environment Change
-Notifier API provides the same service, wrapped in an active object. </p> <p><b>Thread-death notifier</b> </p> <p>The thread-death notifier signals the
-requesting thread's request semaphore when a specified other thread terminates. </p> <p>The
-thread-death notifier interface is provided by <xref href="GUID-71F198F3-DE2D-3A15-B4E8-EE5B52BA0DDE.dita"><apiname>RUndertaker</apiname></xref>. </p> <p><b>Simple screen output service</b> </p> <p>The simple screen output service
-allows either a single line message or a simple dialog box to be displayed
-on the screen. It is typically used for debug messages. </p> <p>The simple
-screen output service interface is provided by <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>,
-which also provides access to the UI-specific plug-in notifiers, via the <xref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita">Extended Notifier Framework</xref>. </p> </section>
-<section id="GUID-671F40D4-4C90-484E-830B-85AB4E61533D"><title>See also</title> <p> <xref href="GUID-AFE6FB6B-E7FC-50A2-8374-B046AA709EB5.dita">Environment
-Change Notifier Overview</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0" xml:lang="en"><title>Notification
+Services Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4AA259E4-5A4F-4E4B-A7DB-B27440D12FF9"><title>Purpose</title> <p>Provides miscellaneous low-level
+services for notifying programs of environment changes and of thread deaths,
+and for putting simple messages on screen. </p> </section>
+<section id="GUID-8EE8F255-609E-4050-8DD1-D4BEE036543B"><title>Description</title> <p>The API has three key concepts: change
+notifier, thread-death notifier, and simple screen output service. </p> <p><b>Change
+notifier</b> </p> <p>The change notifier signals the requesting thread's request
+semaphore when a change in the environment occurs, such as a switch in locale,
+or system time being reset. </p> <p>The change notifier interface is provided
+by <xref href="GUID-1D10173D-17C1-3EA3-923E-6C7017F1F56F.dita"><apiname>RChangeNotifier</apiname></xref>. </p> <p>Note that the Environment Change
+Notifier API provides the same service, wrapped in an active object. </p> <p><b>Thread-death notifier</b> </p> <p>The thread-death notifier signals the
+requesting thread's request semaphore when a specified other thread terminates. </p> <p>The
+thread-death notifier interface is provided by <xref href="GUID-71F198F3-DE2D-3A15-B4E8-EE5B52BA0DDE.dita"><apiname>RUndertaker</apiname></xref>. </p> <p><b>Simple screen output service</b> </p> <p>The simple screen output service
+allows either a single line message or a simple dialog box to be displayed
+on the screen. It is typically used for debug messages. </p> <p>The simple
+screen output service interface is provided by <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>,
+which also provides access to the UI-specific plug-in notifiers, via the <xref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita">Extended Notifier Framework</xref>. </p> </section>
+<section id="GUID-671F40D4-4C90-484E-830B-85AB4E61533D"><title>See also</title> <p> <xref href="GUID-AFE6FB6B-E7FC-50A2-8374-B046AA709EB5.dita">Environment
+Change Notifier Overview</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e220109_href.png has changed
Binary file Symbian3/SDK/Source/GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e223846_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e194954_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e199962_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e215812_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e219549_href.png has changed
--- a/Symbian3/SDK/Source/GUID-24860917-0FE2-5C8F-B436-96928350996E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-24860917-0FE2-5C8F-B436-96928350996E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,150 +1,150 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-24860917-0FE2-5C8F-B436-96928350996E" xml:lang="en"><title>Bearer
-Mobility Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Bearer mobility allows the email Message Type Modules (MTM) to non-seamlessly
-switch between networking bearers, such as, GPRS, WiFi, CDMA, GSM, and so
-on. Switching between network bearers enables destination networks to connect
-without dropping the connection with the remote server. </p>
-<p>The POP3, IMAP4 and SMTP email server MTMs support this functionality. </p>
-<section id="GUID-973000BE-9CE1-526D-ACC4-EA0ECFF3D93E"><title>Description</title> <p>The
-bearer mobility must be enabled in the Networking bearer mobility framework
-to provide bearer mobility functionality in the Messaging Application module. </p> <p>After
-the bearer mobility is set for the email server MTMs at the client-side using
-the <xref href="GUID-7E4A95AA-1614-3058-B08C-B81878C37489.dita"><apiname>SetBearerMobility</apiname></xref> function, the bearer mobility manager
-registers with the bearer mobility framework in the Networking subsystem.
-This informs the bearer mobility manager about any change in the bearers. </p> <p>The
-bearer mobility plug-in gets the notifications about the change in the bearer.
-When the required bearer is available, the server MTMs uses this plug-in to
-get notifications. The following illustration shows the architecture of the
-bearer mobility implementation in the Messaging Application module. </p> <fig id="GUID-3C8EB55A-9740-5249-8E82-1E6CD0B47F01">
-<title>              Architecture of Bearer Mobility            </title>
-<image href="GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e277514_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Settings</title> <p>The email client MTM <xref href="GUID-A7EF08E6-82AF-3577-B942-ABD532EDB7FE.dita"><apiname>CEmailAccounts</apiname></xref> interfaces
-are enhanced to configure the email account settings. These settings modify
-the behaviour of the relevant server MTMs for the following functionality: </p> <p><b>Non-seamless
-bearer mobility</b> </p> <p>The IMAP4, POP3, and SMTP server MTMs are extended
-to allow messaging applications to use the non-seamless network bearer mobility
-when connecting to a destination network using the respective protocols. The
-following functions are added to the <xref href="GUID-3EDD3DFA-AE8A-3941-960A-8BD2733E74C3.dita"><apiname>CImBaseEmailSettings</apiname></xref> (<xref href="GUID-6A7DFCF7-7268-3013-A5B6-5B77B6233329.dita"><apiname>CImPop3Settings</apiname></xref>, <xref href="GUID-55F11633-988C-39D5-ADE7-23C4966FD995.dita"><apiname>CImImap4Settings</apiname></xref>, and <xref href="GUID-DFE18962-0022-3833-A8F0-6E4C969177C0.dita"><apiname>CImSmtpSettings</apiname></xref>) class: </p> <ul>
-<li id="GUID-2ED9D4E8-83F0-5264-88A0-3FC26A2DE9ED"><p> <xref href="GUID-7E4A95AA-1614-3058-B08C-B81878C37489.dita"><apiname>SetBearerMobility</apiname></xref>  </p> </li>
-<li id="GUID-5653C643-85E3-57BD-ABF8-259AC244E52A"><p> <xref href="GUID-D3E8B8A1-1E78-369E-B09A-E4C6CDACED8A.dita"><apiname>BearerMobility()</apiname></xref>  </p> </li>
-</ul> <p id="GUID-CC4028E7-ECD9-5045-9057-5BC687C3DF3A"><b>Per bearer-type
-configuration for IMAP email accounts</b> </p> <p>Specifically for IMAP email
-accounts, the <xref href="GUID-A7EF08E6-82AF-3577-B942-ABD532EDB7FE.dita"><apiname>CEmailAccounts</apiname></xref> class enables the following
-per bearer-type configuration that affect the behaviour of IMAP accounts: </p> <ul>
-<li id="GUID-EA24F6E4-D656-5053-996E-F75D645F318D"><p> <b>Download rules</b>  </p> <p>Download
-rules specify which parts of message to automatically download (according
-to bearer type) when synchronising the contents of an IMAP email account.
-You can configure an IMAP email account for IMAP download rules on each bearer
-type and for each account using the <xref href="GUID-1838902F-9077-36D8-AD22-5E36E0AFD51D.dita"><apiname>CImapSyncDownloadRules</apiname></xref> class. </p> <p>When
-synchronising an IMAP email account you can do the following: </p> <ul>
-<li id="GUID-B69ADD91-E4FC-57F1-8713-E1FD3539C16D"><p>Indicate that a list
-of email download rules for each type of bearer must be used during the email
-account synchronisations. </p> </li>
-<li id="GUID-D5518521-4D23-53A1-A3B0-2925CB6DEC7A"><p>Retrieve emails during
-the synchronisation using the mail options specified in the list for the bearer
-type that is currently in use by the connection to the server. </p> </li>
-</ul> <p>The <xref href="GUID-1838902F-9077-36D8-AD22-5E36E0AFD51D.dita"><apiname>CImapSyncDownloadRules</apiname></xref> class is used to store
-per IMAP account sync download rules. This class describes the download rules
-that provide the ability to automatically get the email content. This is configurable
-on a per account and per bearer-type basis. </p><ul>
-<li id="GUID-65E160D0-F45C-5B98-A11A-3EB1919EBF1B"><p>Different download rules
-can be specified for different bearers. For example, you can specify that
-all text and attachments should be retrieved when connecting through a WiFi
-connection; whereas, only text parts should be retrieved when connecting over
-GPRS connection. </p> </li>
-<li id="GUID-8A4F7179-3E5A-5833-A12D-5E95EE927CA0"><p>Synchronisation is performed
-in two stages: the email header synchronisation is performed first followed
-by the email content retrieval. If the email account settings indicate that
-the per-bearer-type list should not be used, or no per-bearer-type list is
-defined, or the current bearer type is not listed in the per-bearer-type list,
-then during the synchronisation the email headers for inbox and personal folders
-are downloaded. </p> <p> <b>Note:</b> The per-bearer-type list is a set of
-IMAP download and transport buffer size rules defined for each type of bearer. </p> </li>
-<li id="GUID-692023AF-B834-584F-BD2F-78CFEF6A1D98"><p>Messages that are not
-previously populated are retrieved using this method. So a message that has
-been populated according to GPRS settings will not be retrieved again according
-to WiFi settings, if a subsequent connection is made. </p> </li>
-<li id="GUID-DF7A0844-5A4E-5BB0-B5CF-329171E0E185"><p>Messages that arrive
-on the server while IMAP is in the <codeph>IDLE</codeph> state are also automatically
-downloaded according to the Inbox download rules for the connected bearer
-type. </p> </li>
-<li id="GUID-694C4DDD-1579-5142-909B-9AB76BD8BBA9"><p>A single instance of
-a set of download rules is applicable to multiple bearer types. </p> </li>
-</ul> </li>
-<li id="GUID-41D6D5F0-D9AF-5AAB-B45B-F69D62DA8DBA"><p> <b>Transport buffer
-size</b>  </p> <p>Transport buffer size specifies the size of the data transferred
-from server to client to get email body and attachments from an IMAP server
-using a per bearer-type list of transport buffer sizes. You can configure
-an IMAP account for IMAP transport buffer size on each bearer type using the <xref href="GUID-1CB521CD-BD46-37BE-B2BB-4817DFF73D73.dita"><apiname>CImapTransportBufferSizes</apiname></xref> class. </p><note> The
-per-bearer-type list is a set of IMAP download and transport buffer size rules
-defined for each type of bearer. </note> <p>This class allows a client to
-configure transport buffer sizes of IMAP accounts according to the bearer
-type for retrieving large message parts. It is possible to specify in the
-following: </p> <ul>
-<li id="GUID-9A27E24F-53E9-5962-A89E-4913B0BBF1CB"><p>Maximum retrieve size.
-Default is 20480 octets. </p> </li>
-<li id="GUID-751BA805-0E64-5B8A-AEA2-D814CE5355D1"><p>Maximum outstanding
-retrieve requests. Default is two outstanding requests. </p> </li>
-</ul> <p> <b>Important considerations</b>  </p> <ul>
-<li id="GUID-2EDE94E1-8AC0-5AAA-A46A-D0317FF8874F"><p>If there are is no bearer
-type specific list defined, or the current bearer type is not listed in the
-per-bearer-type list of transport buffer sizes, then the maximum retrieve
-request size specified in the email account settings is used. The maximum
-and default number of outstanding retrieve requests is two. </p> </li>
-<li id="GUID-4BBAAD4D-CA00-5E42-922C-D2456DD21212"><p>The transport buffer
-sizes that can be specified are the maximum retrieve request size sent in
-IMAP retrieve requests. </p> </li>
-<li id="GUID-574B5003-E293-5ED2-932E-0F78188F2348"><p>Download email body
-and attachments from an IMAP server using the retrieve request buffer size
-specific to the bearer type that the server connection is using. </p> </li>
-<li id="GUID-DCA1350E-9C6B-56F0-AF70-2A5C91C9149B"><p>Download email body
-and attachments from an IMAP server using the maximum number of outstanding
-retrieve requests specific to the bearer type that the server connection is
-using. </p> </li>
-<li id="GUID-DC672952-3FE1-5D72-8C6B-716FBF000222"><p>A single instance of
-a set of transport buffer sizes is applicable to multiple bearer types. </p> </li>
-</ul> </li>
-</ul> <p><b>Bearer mobility policy plug-in</b> </p> <p>The bearer mobility
-policy plug-in enables you to customise the migration behaviour of email accounts,
-the bearer mobility policy plug-in is provided. It consists of an ECOM interface
-class (<xref href="GUID-D3ED20A6-A16E-368E-98AD-820A469613EE.dita"><apiname>CImMobilityPolicyPlugin</apiname></xref>) and a call-back class (<xref href="GUID-73ABAC20-D43E-31B3-A6CB-95572D3140D2.dita"><apiname>MImMobilityPolicyHandler</apiname></xref>),which
-allows the plug-in to issue policy decisions on an individual mobility events. </p> </section>
-<section id="GUID-24BF7108-9229-5F0D-A3B0-27A8E419ABFF"><title>Important considerations</title> <ul>
-<li id="GUID-F200A31C-6293-586A-AA4B-A9E052520DEE"><p>To enable bearer mobility,
-you must first enable it at the Networking bearer mobility framework. </p> </li>
-<li id="GUID-AF2642E1-8B84-505B-BFCC-C093DDF17ACE"><p>Bearer mobility is possible
-only on the connections that are established using a SNAP preference list. </p> </li>
-<li id="GUID-B9D2EF4B-EA15-5574-8DC1-2892349636D4"><p>To use the bearer mobility,
-you must configure the email account settings to specify the SNAP preference
-when creating the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> notification (events). </p> </li>
-<li id="GUID-84593BD5-376E-5302-8C9D-FBBBCB04BECD"><p>Multiple SNAP preferences
-for each service entry is not supported. </p> </li>
-<li id="GUID-BD5A6C40-B77A-5BBF-BB29-758391652A4B"><p>It is not possible to
-specify both IAPs and a SNAP for a single email account. The API for setting
-a SNAP preference clears any provisioned IAPs. Likewise, the API for setting
-IAPs are updated to clear any SNAP preference that is set. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-EBFE8B29-86AD-5785-8041-BCED2E90472E.dita"><linktext>SNAP Preferences</linktext>
-</link>
-<link href="GUID-786984BD-ADE8-5EF1-A819-F402F5703A80.dita"><linktext>Configuring
-Non-seamless Bearer Mobility</linktext></link>
-<link href="GUID-43CE4DCB-F498-5878-A2EE-7831BBB4D288.dita"><linktext>Configuring
-TLS or SSL Socket</linktext></link>
-<link href="GUID-A602A5BA-6C1F-5D8A-A6E7-50DECA1C64CC.dita"><linktext>SMTP Account
-Override Settings</linktext></link>
-<link href="GUID-75B1B1DF-4EC2-59BC-8BE0-A8AD681798C5.dita"><linktext>IMAP Account
-Settings</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-24860917-0FE2-5C8F-B436-96928350996E" xml:lang="en"><title>Bearer
+Mobility Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Bearer mobility allows the email Message Type Modules (MTM) to non-seamlessly
+switch between networking bearers, such as, GPRS, WiFi, CDMA, GSM, and so
+on. Switching between network bearers enables destination networks to connect
+without dropping the connection with the remote server. </p>
+<p>The POP3, IMAP4 and SMTP email server MTMs support this functionality. </p>
+<section id="GUID-973000BE-9CE1-526D-ACC4-EA0ECFF3D93E"><title>Description</title> <p>The
+bearer mobility must be enabled in the Networking bearer mobility framework
+to provide bearer mobility functionality in the Messaging Application module. </p> <p>After
+the bearer mobility is set for the email server MTMs at the client-side using
+the <xref href="GUID-7E4A95AA-1614-3058-B08C-B81878C37489.dita"><apiname>SetBearerMobility</apiname></xref> function, the bearer mobility manager
+registers with the bearer mobility framework in the Networking subsystem.
+This informs the bearer mobility manager about any change in the bearers. </p> <p>The
+bearer mobility plug-in gets the notifications about the change in the bearer.
+When the required bearer is available, the server MTMs uses this plug-in to
+get notifications. The following illustration shows the architecture of the
+bearer mobility implementation in the Messaging Application module. </p> <fig id="GUID-3C8EB55A-9740-5249-8E82-1E6CD0B47F01">
+<title>              Architecture of Bearer Mobility            </title>
+<image href="GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e273833_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Settings</title> <p>The email client MTM <xref href="GUID-A7EF08E6-82AF-3577-B942-ABD532EDB7FE.dita"><apiname>CEmailAccounts</apiname></xref> interfaces
+are enhanced to configure the email account settings. These settings modify
+the behaviour of the relevant server MTMs for the following functionality: </p> <p><b>Non-seamless
+bearer mobility</b> </p> <p>The IMAP4, POP3, and SMTP server MTMs are extended
+to allow messaging applications to use the non-seamless network bearer mobility
+when connecting to a destination network using the respective protocols. The
+following functions are added to the <xref href="GUID-3EDD3DFA-AE8A-3941-960A-8BD2733E74C3.dita"><apiname>CImBaseEmailSettings</apiname></xref> (<xref href="GUID-6A7DFCF7-7268-3013-A5B6-5B77B6233329.dita"><apiname>CImPop3Settings</apiname></xref>, <xref href="GUID-55F11633-988C-39D5-ADE7-23C4966FD995.dita"><apiname>CImImap4Settings</apiname></xref>, and <xref href="GUID-DFE18962-0022-3833-A8F0-6E4C969177C0.dita"><apiname>CImSmtpSettings</apiname></xref>) class: </p> <ul>
+<li id="GUID-2ED9D4E8-83F0-5264-88A0-3FC26A2DE9ED"><p> <xref href="GUID-7E4A95AA-1614-3058-B08C-B81878C37489.dita"><apiname>SetBearerMobility</apiname></xref>  </p> </li>
+<li id="GUID-5653C643-85E3-57BD-ABF8-259AC244E52A"><p> <xref href="GUID-D3E8B8A1-1E78-369E-B09A-E4C6CDACED8A.dita"><apiname>BearerMobility()</apiname></xref>  </p> </li>
+</ul> <p id="GUID-CC4028E7-ECD9-5045-9057-5BC687C3DF3A"><b>Per bearer-type
+configuration for IMAP email accounts</b> </p> <p>Specifically for IMAP email
+accounts, the <xref href="GUID-A7EF08E6-82AF-3577-B942-ABD532EDB7FE.dita"><apiname>CEmailAccounts</apiname></xref> class enables the following
+per bearer-type configuration that affect the behaviour of IMAP accounts: </p> <ul>
+<li id="GUID-EA24F6E4-D656-5053-996E-F75D645F318D"><p> <b>Download rules</b>  </p> <p>Download
+rules specify which parts of message to automatically download (according
+to bearer type) when synchronising the contents of an IMAP email account.
+You can configure an IMAP email account for IMAP download rules on each bearer
+type and for each account using the <xref href="GUID-1838902F-9077-36D8-AD22-5E36E0AFD51D.dita"><apiname>CImapSyncDownloadRules</apiname></xref> class. </p> <p>When
+synchronising an IMAP email account you can do the following: </p> <ul>
+<li id="GUID-B69ADD91-E4FC-57F1-8713-E1FD3539C16D"><p>Indicate that a list
+of email download rules for each type of bearer must be used during the email
+account synchronisations. </p> </li>
+<li id="GUID-D5518521-4D23-53A1-A3B0-2925CB6DEC7A"><p>Retrieve emails during
+the synchronisation using the mail options specified in the list for the bearer
+type that is currently in use by the connection to the server. </p> </li>
+</ul> <p>The <xref href="GUID-1838902F-9077-36D8-AD22-5E36E0AFD51D.dita"><apiname>CImapSyncDownloadRules</apiname></xref> class is used to store
+per IMAP account sync download rules. This class describes the download rules
+that provide the ability to automatically get the email content. This is configurable
+on a per account and per bearer-type basis. </p><ul>
+<li id="GUID-65E160D0-F45C-5B98-A11A-3EB1919EBF1B"><p>Different download rules
+can be specified for different bearers. For example, you can specify that
+all text and attachments should be retrieved when connecting through a WiFi
+connection; whereas, only text parts should be retrieved when connecting over
+GPRS connection. </p> </li>
+<li id="GUID-8A4F7179-3E5A-5833-A12D-5E95EE927CA0"><p>Synchronisation is performed
+in two stages: the email header synchronisation is performed first followed
+by the email content retrieval. If the email account settings indicate that
+the per-bearer-type list should not be used, or no per-bearer-type list is
+defined, or the current bearer type is not listed in the per-bearer-type list,
+then during the synchronisation the email headers for inbox and personal folders
+are downloaded. </p> <p> <b>Note:</b> The per-bearer-type list is a set of
+IMAP download and transport buffer size rules defined for each type of bearer. </p> </li>
+<li id="GUID-692023AF-B834-584F-BD2F-78CFEF6A1D98"><p>Messages that are not
+previously populated are retrieved using this method. So a message that has
+been populated according to GPRS settings will not be retrieved again according
+to WiFi settings, if a subsequent connection is made. </p> </li>
+<li id="GUID-DF7A0844-5A4E-5BB0-B5CF-329171E0E185"><p>Messages that arrive
+on the server while IMAP is in the <codeph>IDLE</codeph> state are also automatically
+downloaded according to the Inbox download rules for the connected bearer
+type. </p> </li>
+<li id="GUID-694C4DDD-1579-5142-909B-9AB76BD8BBA9"><p>A single instance of
+a set of download rules is applicable to multiple bearer types. </p> </li>
+</ul> </li>
+<li id="GUID-41D6D5F0-D9AF-5AAB-B45B-F69D62DA8DBA"><p> <b>Transport buffer
+size</b>  </p> <p>Transport buffer size specifies the size of the data transferred
+from server to client to get email body and attachments from an IMAP server
+using a per bearer-type list of transport buffer sizes. You can configure
+an IMAP account for IMAP transport buffer size on each bearer type using the <xref href="GUID-1CB521CD-BD46-37BE-B2BB-4817DFF73D73.dita"><apiname>CImapTransportBufferSizes</apiname></xref> class. </p><note> The
+per-bearer-type list is a set of IMAP download and transport buffer size rules
+defined for each type of bearer. </note> <p>This class allows a client to
+configure transport buffer sizes of IMAP accounts according to the bearer
+type for retrieving large message parts. It is possible to specify in the
+following: </p> <ul>
+<li id="GUID-9A27E24F-53E9-5962-A89E-4913B0BBF1CB"><p>Maximum retrieve size.
+Default is 20480 octets. </p> </li>
+<li id="GUID-751BA805-0E64-5B8A-AEA2-D814CE5355D1"><p>Maximum outstanding
+retrieve requests. Default is two outstanding requests. </p> </li>
+</ul> <p> <b>Important considerations</b>  </p> <ul>
+<li id="GUID-2EDE94E1-8AC0-5AAA-A46A-D0317FF8874F"><p>If there are is no bearer
+type specific list defined, or the current bearer type is not listed in the
+per-bearer-type list of transport buffer sizes, then the maximum retrieve
+request size specified in the email account settings is used. The maximum
+and default number of outstanding retrieve requests is two. </p> </li>
+<li id="GUID-4BBAAD4D-CA00-5E42-922C-D2456DD21212"><p>The transport buffer
+sizes that can be specified are the maximum retrieve request size sent in
+IMAP retrieve requests. </p> </li>
+<li id="GUID-574B5003-E293-5ED2-932E-0F78188F2348"><p>Download email body
+and attachments from an IMAP server using the retrieve request buffer size
+specific to the bearer type that the server connection is using. </p> </li>
+<li id="GUID-DCA1350E-9C6B-56F0-AF70-2A5C91C9149B"><p>Download email body
+and attachments from an IMAP server using the maximum number of outstanding
+retrieve requests specific to the bearer type that the server connection is
+using. </p> </li>
+<li id="GUID-DC672952-3FE1-5D72-8C6B-716FBF000222"><p>A single instance of
+a set of transport buffer sizes is applicable to multiple bearer types. </p> </li>
+</ul> </li>
+</ul> <p><b>Bearer mobility policy plug-in</b> </p> <p>The bearer mobility
+policy plug-in enables you to customise the migration behaviour of email accounts,
+the bearer mobility policy plug-in is provided. It consists of an ECOM interface
+class (<xref href="GUID-D3ED20A6-A16E-368E-98AD-820A469613EE.dita"><apiname>CImMobilityPolicyPlugin</apiname></xref>) and a call-back class (<xref href="GUID-73ABAC20-D43E-31B3-A6CB-95572D3140D2.dita"><apiname>MImMobilityPolicyHandler</apiname></xref>),which
+allows the plug-in to issue policy decisions on an individual mobility events. </p> </section>
+<section id="GUID-24BF7108-9229-5F0D-A3B0-27A8E419ABFF"><title>Important considerations</title> <ul>
+<li id="GUID-F200A31C-6293-586A-AA4B-A9E052520DEE"><p>To enable bearer mobility,
+you must first enable it at the Networking bearer mobility framework. </p> </li>
+<li id="GUID-AF2642E1-8B84-505B-BFCC-C093DDF17ACE"><p>Bearer mobility is possible
+only on the connections that are established using a SNAP preference list. </p> </li>
+<li id="GUID-B9D2EF4B-EA15-5574-8DC1-2892349636D4"><p>To use the bearer mobility,
+you must configure the email account settings to specify the SNAP preference
+when creating the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> notification (events). </p> </li>
+<li id="GUID-84593BD5-376E-5302-8C9D-FBBBCB04BECD"><p>Multiple SNAP preferences
+for each service entry is not supported. </p> </li>
+<li id="GUID-BD5A6C40-B77A-5BBF-BB29-758391652A4B"><p>It is not possible to
+specify both IAPs and a SNAP for a single email account. The API for setting
+a SNAP preference clears any provisioned IAPs. Likewise, the API for setting
+IAPs are updated to clear any SNAP preference that is set. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-EBFE8B29-86AD-5785-8041-BCED2E90472E.dita"><linktext>SNAP Preferences</linktext>
+</link>
+<link href="GUID-786984BD-ADE8-5EF1-A819-F402F5703A80.dita"><linktext>Configuring
+Non-seamless Bearer Mobility</linktext></link>
+<link href="GUID-43CE4DCB-F498-5878-A2EE-7831BBB4D288.dita"><linktext>Configuring
+TLS or SSL Socket</linktext></link>
+<link href="GUID-A602A5BA-6C1F-5D8A-A6E7-50DECA1C64CC.dita"><linktext>SMTP Account
+Override Settings</linktext></link>
+<link href="GUID-75B1B1DF-4EC2-59BC-8BE0-A8AD681798C5.dita"><linktext>IMAP Account
+Settings</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e129360_href.png has changed
Binary file Symbian3/SDK/Source/GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e135898_href.png has changed
--- a/Symbian3/SDK/Source/GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431" xml:lang="en"><title>How
-to form links</title><shortdesc>To be an element of a list, each element needs to contain a link
-object.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To form a singly linked list of <codeph>CMyClass</codeph> objects, include
-the link object <codeph>TSglQueLink</codeph> as a component of <codeph>CMyClass</codeph>:</p>
-<codeblock id="GUID-C4ED06AA-9187-5EE6-96C5-39F41C218437" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TSglQueLink iSlink;
-    ...
-    };</codeblock>
-<fig id="GUID-C1BDFB57-AAD9-55A2-8E02-D9277BCCE122">
-<title>Two elements in a linked list</title>
-<image href="GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e218202_href.png" placement="inline"/>
-</fig>
-<p>Although any kind of object can be an element of a linked list, most lists
-consist of elements which are all of the same type.</p>
-<p>An object can participate in more than one list. For example, to allow <codeph>CMyClass</codeph> objects
-to participate in two singly linked lists, include two separate <codeph>TSglQueLink</codeph> objects
-as components of <codeph>CMyClass</codeph>:</p>
-<codeblock id="GUID-A16512BF-ACB8-5E7E-B4B1-FD76208E0FBD" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TSglQueLink iSlink1;
-    ...
-    TSglQueLink iSlink2;
-    };</codeblock>
-<fig id="GUID-AA2CB21D-B848-5ADF-8B0E-7E2928C84DBE">
-<title>An example of two elements, in two lists where they are consecutive
-elements in both lists</title>
-<image href="GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e218228_href.png" placement="inline"/>
-</fig>
-<p>Elements can also be objects constructed from a variety of classes, all
-ultimately derived from the same base class, where that base class includes
-the link object as a component. For example, if <codeph>CBc</codeph> is a
-base class for <codeph>CDc1</codeph> which, in turn, is a base class for <codeph>CDc2</codeph>,
-then the elements of the list can consist of a mix of <codeph>CBc</codeph> or <codeph>CDc1</codeph> or <codeph>CDc2</codeph> objects.</p>
-<codeblock id="GUID-A4624B83-5DF4-5923-A3C4-4C67E6FCF47C" xml:space="preserve">class CBc : public CBase
-    {
-    ...
-    TSglQueLink iSlink;
-    ...
-    };</codeblock>
-<codeblock id="GUID-2139FC00-2ADF-5E70-9293-93D347DAF41A" xml:space="preserve">class CDc1 : public CBclass
-    {
-    ...
-    }
-</codeblock>
-<codeblock id="GUID-4A170483-64BF-559A-B2B1-6F31F8A7F82B" xml:space="preserve">class CDc2 : public CDc1
-    {
-    ...
-    }
-</codeblock>
-<fig id="GUID-408F856C-86C0-5ED2-A61D-2F81B41566DD">
-<title>Example of a linked list of different element types</title>
-<image href="GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e218266_href.png" placement="inline"/>
-</fig>
-<p>Note that the link object is at the same offset in each element in this
-list.</p>
-<p>New link elements can be inserted at the beginning or the end of the list,
-but not into the middle of the list. The functionality for this is provided
-by the header <codeph>TSglQue&lt;class T&gt;</codeph>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431" xml:lang="en"><title>How
+to form links</title><shortdesc>To be an element of a list, each element needs to contain a link
+object.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To form a singly linked list of <codeph>CMyClass</codeph> objects, include
+the link object <codeph>TSglQueLink</codeph> as a component of <codeph>CMyClass</codeph>:</p>
+<codeblock id="GUID-C4ED06AA-9187-5EE6-96C5-39F41C218437" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TSglQueLink iSlink;
+    ...
+    };</codeblock>
+<fig id="GUID-C1BDFB57-AAD9-55A2-8E02-D9277BCCE122">
+<title>Two elements in a linked list</title>
+<image href="GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e214465_href.png" placement="inline"/>
+</fig>
+<p>Although any kind of object can be an element of a linked list, most lists
+consist of elements which are all of the same type.</p>
+<p>An object can participate in more than one list. For example, to allow <codeph>CMyClass</codeph> objects
+to participate in two singly linked lists, include two separate <codeph>TSglQueLink</codeph> objects
+as components of <codeph>CMyClass</codeph>:</p>
+<codeblock id="GUID-A16512BF-ACB8-5E7E-B4B1-FD76208E0FBD" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TSglQueLink iSlink1;
+    ...
+    TSglQueLink iSlink2;
+    };</codeblock>
+<fig id="GUID-AA2CB21D-B848-5ADF-8B0E-7E2928C84DBE">
+<title>An example of two elements, in two lists where they are consecutive
+elements in both lists</title>
+<image href="GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e214491_href.png" placement="inline"/>
+</fig>
+<p>Elements can also be objects constructed from a variety of classes, all
+ultimately derived from the same base class, where that base class includes
+the link object as a component. For example, if <codeph>CBc</codeph> is a
+base class for <codeph>CDc1</codeph> which, in turn, is a base class for <codeph>CDc2</codeph>,
+then the elements of the list can consist of a mix of <codeph>CBc</codeph> or <codeph>CDc1</codeph> or <codeph>CDc2</codeph> objects.</p>
+<codeblock id="GUID-A4624B83-5DF4-5923-A3C4-4C67E6FCF47C" xml:space="preserve">class CBc : public CBase
+    {
+    ...
+    TSglQueLink iSlink;
+    ...
+    };</codeblock>
+<codeblock id="GUID-2139FC00-2ADF-5E70-9293-93D347DAF41A" xml:space="preserve">class CDc1 : public CBclass
+    {
+    ...
+    }
+</codeblock>
+<codeblock id="GUID-4A170483-64BF-559A-B2B1-6F31F8A7F82B" xml:space="preserve">class CDc2 : public CDc1
+    {
+    ...
+    }
+</codeblock>
+<fig id="GUID-408F856C-86C0-5ED2-A61D-2F81B41566DD">
+<title>Example of a linked list of different element types</title>
+<image href="GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e214529_href.png" placement="inline"/>
+</fig>
+<p>Note that the link object is at the same offset in each element in this
+list.</p>
+<p>New link elements can be inserted at the beginning or the end of the list,
+but not into the middle of the list. The functionality for this is provided
+by the header <codeph>TSglQue&lt;class T&gt;</codeph>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,113 +1,114 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C" xml:lang="en"><title>Notes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A note is a feedback component that informs the user about the current
-situation. A note contains a text and possibly a graphical element. The softkey
-labels are typically empty (wait and progress notes are an exception to this).</p>
-<table id="GUID-62CEFB32-E051-489A-BFE9-C1944FACBFEB">
-<tgroup cols="2"><colspec colname="col2"/><colspec colname="COLSPEC0" colwidth="1.00*"/>
-<tbody>
-<row>
-<entry><xref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita">Confirmation
-note</xref></entry>
-<entry><fig id="GUID-22A492DB-C0BA-4824-8CB1-7165CE427FC4">
-<image href="GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64417_href.png" placement="inline"/>
-</fig></entry>
-</row>
-<row>
-<entry><xref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita">Information
-note</xref></entry>
-<entry><fig id="GUID-293B5221-7C7A-427D-9A56-704E6DB4BF3D">
-<image href="GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64430_href.png" scale="33" placement="inline"/>
-</fig></entry>
-</row>
-<row>
-<entry><xref href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita">Warning note</xref></entry>
-<entry/>
-</row>
-<row>
-<entry><xref href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita">Error note</xref></entry>
-<entry><fig id="GUID-EAF28005-BB43-4C88-BD62-3076AC32F758">
-<image href="GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e64452_href.png" scale="33" placement="inline"/>
-</fig></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita">Permanent
-note</xref></p></entry>
-<entry/>
-</row>
-<row>
-<entry><xref href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita">Wait note</xref></entry>
-<entry><fig id="GUID-B8BB63C8-54BD-429E-8887-0E59743FE2F1">
-<image href="GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e64475_href.png" scale="33" placement="inline"/>
-</fig></entry>
-</row>
-<row>
-<entry><xref href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita">Progress note</xref></entry>
-<entry><fig id="GUID-CDA47486-C48A-46D1-BC18-13BD170E974B">
-<image href="GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e64488_href.png" scale="33" placement="inline"/>
-</fig></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-88F93DE1-95C2-4F1A-9652-8B978E883660"><title>Default touch events</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry nameend="col3" namest="col1"><p><b>In Permanent Notes</b></p></entry>
-</row>
-<row>
-<entry>Touch down and release on display</entry>
-<entry>No effect</entry>
-<entry>Tactile: No effect</entry>
-</row>
-<row>
-<entry nameend="col3" namest="col1"/>
-</row>
-<row>
-<entry nameend="col3" namest="col1"><p><b>In Wait or Progress Notes</b></p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on display</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on <codeph>Cancel</codeph> §TEXT_SOFTKEY_CANCEL§</p></entry>
-<entry><p>Cancel or inactivate operation</p></entry>
-<entry><p>Tactile: Basic button effect is provided with touch down and release
-event upon <codeph>Cancel</codeph> §TEXT_SOFTKEY_CANCEL§ .</p></entry>
-</row>
-<row>
-<entry nameend="col3" namest="col1"/>
-</row>
-<row>
-<entry nameend="col3" namest="col1"><p><b>In Non-Interruptible Wait or Progress
-Notes</b></p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on display</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C" xml:lang="en"><title>Notes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A note is a feedback component that informs the user about the current
+situation. A note contains a text and possibly a graphical element. The softkey
+labels are typically empty (wait and progress notes are an exception to this).</p>
+<table id="GUID-62CEFB32-E051-489A-BFE9-C1944FACBFEB">
+<tgroup cols="2"><colspec colname="col2"/><colspec colname="COLSPEC0" colwidth="1.00*"/>
+<tbody>
+<row>
+<entry><xref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita">Confirmation
+note</xref></entry>
+<entry><fig id="GUID-22A492DB-C0BA-4824-8CB1-7165CE427FC4">
+<image href="GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e58870_href.png" placement="inline"/>
+</fig></entry>
+</row>
+<row>
+<entry><xref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita">Information
+note</xref></entry>
+<entry><fig id="GUID-E9136777-16CD-4340-B6D4-0D82EFD162F0">
+<image href="GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e58883_href.png" placement="inline"/>
+</fig></entry>
+</row>
+<row>
+<entry><xref href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita">Warning note</xref></entry>
+<entry/>
+</row>
+<row>
+<entry><xref href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita">Error note</xref></entry>
+<entry><fig id="GUID-5AF63083-6811-4CC0-9070-857F3E85F79A">
+<image href="GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e58905_href.png" placement="inline"/>
+</fig></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita">Permanent
+note</xref></p></entry>
+<entry/>
+</row>
+<row>
+<entry><xref href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita">Wait note</xref></entry>
+<entry><fig id="GUID-45F5F676-8B8C-4272-96D7-934E4E945659">
+<image href="GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e58928_href.png" placement="inline"/>
+</fig></entry>
+</row>
+<row>
+<entry><xref href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita">Progress note</xref></entry>
+<entry><fig id="GUID-C73D8E3E-3937-4571-90A4-4B38149E9BF1">
+<image href="GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e58942_href.png" placement="inline"/>
+</fig></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-88F93DE1-95C2-4F1A-9652-8B978E883660"><title>Default touch
+events</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry nameend="col3" namest="col1"><p><b>In Permanent Notes</b></p></entry>
+</row>
+<row>
+<entry>Touch down and release on display</entry>
+<entry>No effect</entry>
+<entry>Tactile: No effect</entry>
+</row>
+<row>
+<entry nameend="col3" namest="col1"/>
+</row>
+<row>
+<entry nameend="col3" namest="col1"><p><b>In Wait or Progress Notes</b></p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on display</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on <codeph>Cancel</codeph> §TEXT_SOFTKEY_CANCEL§</p></entry>
+<entry><p>Cancel or inactivate operation</p></entry>
+<entry><p>Tactile: Basic button effect is provided with touch down and release
+event upon <codeph>Cancel</codeph> §TEXT_SOFTKEY_CANCEL§ .</p></entry>
+</row>
+<row>
+<entry nameend="col3" namest="col1"/>
+</row>
+<row>
+<entry nameend="col3" namest="col1"><p><b>In Non-Interruptible Wait or Progress
+Notes</b></p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on display</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e266785_href.png has changed
Binary file Symbian3/SDK/Source/GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e270493_href.png has changed
--- a/Symbian3/SDK/Source/GUID-25035286-5134-51F6-A3B6-C0DF0E802719.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-25035286-5134-51F6-A3B6-C0DF0E802719.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-25035286-5134-51F6-A3B6-C0DF0E802719"><title>The Linear DDA</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Linear Digital Differential Analyzers (DDAs) are used by various functions to construct straight lines and to calculate bitmap stretching and compression. </p> <section><title>Line construction </title> <p>The linear DDA constructs a pixel line between the start point and end point, using the straight geometric line between these points. </p> <p>In the example below Line A has a start point (3,10) and end point (22,6). The x-delta is therefore 22-3+1=20. The y-delta is 10-6+1=5. 5 goes into 20 exactly four times, so each step of the pixel line has four pixels in it. </p> <fig id="GUID-7FCC7B03-5EC0-5F5B-852B-2D372B8DABD5"><image href="GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e206436_href.png" placement="inline"/></fig> <p>The distribution of pixels is fairly straightforward if the x-delta is an exact multiple of the y-delta, or vice versa. In this case there are the same number of pixels in each pixel line step (as in the case of line A). When the x-delta is <i>not</i> an exact multiple of the y-delta, (or vice versa) the pixels in the pixel line cannot be distributed evenly so the pixel line steps each have differing numbers of pixels (as in the case of line B). </p> </section> <section><title>Scaling bitmaps </title> <p>When a bitmap is to be displayed it often has to be stretched or compressed to fit the desired display area. </p> <p>The linear DDA constructs an imaginary pixel line between the start point and end point, using the straight geometric line between these points. This is then used to stretch or compress the original bitmap prior to display. </p> <p>The example below uses linear DDA to do a 400% horizontal scaling of a bitmapped "6" character. In most situations two linear DDAs would be needed, one for horizontal and one for vertical scaling. </p> <fig id="GUID-AF1CACFD-09B3-5C0B-9FF0-01A55F543D8E"><image href="GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e206459_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-25035286-5134-51F6-A3B6-C0DF0E802719"><title>The Linear DDA</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Linear Digital Differential Analyzers (DDAs) are used by various functions to construct straight lines and to calculate bitmap stretching and compression. </p> <section><title>Line construction </title> <p>The linear DDA constructs a pixel line between the start point and end point, using the straight geometric line between these points. </p> <p>In the example below Line A has a start point (3,10) and end point (22,6). The x-delta is therefore 22-3+1=20. The y-delta is 10-6+1=5. 5 goes into 20 exactly four times, so each step of the pixel line has four pixels in it. </p> <fig id="GUID-7FCC7B03-5EC0-5F5B-852B-2D372B8DABD5"><image href="GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e201428_href.png" placement="inline"/></fig> <p>The distribution of pixels is fairly straightforward if the x-delta is an exact multiple of the y-delta, or vice versa. In this case there are the same number of pixels in each pixel line step (as in the case of line A). When the x-delta is <i>not</i> an exact multiple of the y-delta, (or vice versa) the pixels in the pixel line cannot be distributed evenly so the pixel line steps each have differing numbers of pixels (as in the case of line B). </p> </section> <section><title>Scaling bitmaps </title> <p>When a bitmap is to be displayed it often has to be stretched or compressed to fit the desired display area. </p> <p>The linear DDA constructs an imaginary pixel line between the start point and end point, using the straight geometric line between these points. This is then used to stretch or compress the original bitmap prior to display. </p> <p>The example below uses linear DDA to do a 400% horizontal scaling of a bitmapped "6" character. In most situations two linear DDAs would be needed, one for horizontal and one for vertical scaling. </p> <fig id="GUID-AF1CACFD-09B3-5C0B-9FF0-01A55F543D8E"><image href="GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e201451_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
                 to a Graphics Context Tutorials</linktext> </link> <link href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"><linktext>Drawing and Graphics Contexts</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-257212F5-A414-4F17-A786-DB3168218139_d0e67378_href.png has changed
Binary file Symbian3/SDK/Source/GUID-257212F5-A414-4F17-A786-DB3168218139_d0e72579_href.png has changed
Binary file Symbian3/SDK/Source/GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e214312_href.png has changed
Binary file Symbian3/SDK/Source/GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e218049_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B"><title>Querying Databases: Basic</title><shortdesc>This tutorial shows you how to create a simple SQL database query. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-BEB231F7-8A23-5650-9933-EC3D030ABA32"><title>Introduction</title> <p>This tutorial shows you how to wrap a SQL query statement into an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object to query a database. </p> <p>This tutorial uses code from the <xref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita">Basic SQL example application</xref>. </p> <p><b>Assumptions </b> </p> <p>You have a database. The database has no tables and therefore no data. </p> <p><b>SQL statements </b> </p> <p>The following SQL statements are used for this example: </p> <p><userinput><cmdname>SELECT</cmdname> <parmname>person</parmname>  <cmdname>FROM</cmdname> <parmname>Pets</parmname>  <cmdname>WHERE</cmdname>  <parmname>cat
-          &gt;= 1</parmname>  </userinput> </p> <p>The (<codeph>SELECT</codeph>) results of the query will be the value in the '<codeph>name</codeph>' column <codeph>FROM</codeph> the '<codeph>countries</codeph>' table <codeph>WHERE</codeph> the value of the '<codeph>population</codeph>' column of the same record is <codeph>&gt;</codeph> the value specified. </p> </section> <section><title>Procedure</title> <ol id="GUID-457AA35E-0A23-5FAE-B69E-10D31F40F153"><li id="GUID-6C096309-F5A5-53AB-81E1-2E319D784FEF"><p>Prepare the statement: </p> <p>The steps to prepare a SQL statement are shown here. </p> <ol id="GUID-6E19F9B5-92DC-50C4-9A93-1DC9E10EFECB"><li id="GUID-F28F700F-1D43-5A44-8C01-A117048A6372"><p>Set up some constants used by the SQL statement object to define the SQL query: </p> <p><codeblock id="GUID-55464913-80C8-57C1-9973-34F11ED2CFF3" xml:space="preserve">_LIT(KSelect1,"SELECT person FROM Pets WHERE cat &gt;= 1;");</codeblock> </p> <p>This defines the query parameters. </p> </li> <li id="GUID-5B15A001-4355-5422-88D5-DF457B3F069C"><p>Instantiate the <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> SQL statement: </p> <p><codeblock id="GUID-B1C94AEC-EF3B-5447-9D75-5C382EB19302" xml:space="preserve">RSqlStatement stmt;</codeblock> </p> </li> <li id="GUID-A8E185AC-0402-5B62-ABDE-7667E7396621"><p>Prepare the statement: </p> <p><codeblock id="GUID-20A9CAD8-5015-5404-864B-4BF471284D44" xml:space="preserve">User::LeaveIfError(stmt.Prepare(iPetDb, aStatement));</codeblock> </p> <p>Creates a parameterised SQL statement executable. </p> </li> <li id="GUID-28D8E6CC-5A85-5422-9F6E-F4EAA5D80491"><p>Define the indices to be used in the search: </p> <p><codeblock id="GUID-ECF6DD48-2E8B-5A70-B712-2465E2132A20" xml:space="preserve">    TInt personIndex = stmt.ColumnIndex(KPerson);</codeblock> </p> </li> </ol> </li> <li id="GUID-7D9C68FB-A9A3-5FBF-A1F4-B2C900680E62"><p>Execute the SQL query: </p> <p>The Symbian SQL statement is executed by <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement::Next()</apiname></xref>. </p> <ol id="GUID-FD6241DB-56D3-5F28-8CA7-ECC8A527F3F8"><li id="GUID-71EC4F86-F462-5C20-82FA-331FF215A25C"><p>Search the records until a match is found: </p> <p><codeblock id="GUID-4617F6D8-D138-5123-8E61-ADC0B9CF1DDA" xml:space="preserve">TInt rc = KErrNone;
-while ((rc = stmt.Next()) == KSqlAtRow)</codeblock> </p> <p> <codeph>Next()</codeph> fires the executable SQL statement and stops at and returns the matched record. </p> </li> </ol> </li> <li id="GUID-D142E6BD-1FF7-514E-A33E-DA87112AABC6"><p>Do something with the results: </p> <p>The query is done and you have the results. In this section we look at a simple way to do something with the results and we close the SQL statement object. </p> <ol id="GUID-19CF868B-5957-5D68-8E7F-352F924C0426"><li id="GUID-21B13AF8-6052-55B1-9CD0-E0BD8783473A"><p>Get and use the results of the search: </p> <p><codeblock id="GUID-8A2DFE0B-78AB-5D90-B175-05DCAD3965D2" xml:space="preserve">...
-{
-TPtrC myData = stmt.ColumnTextL(personIndex);
-iConsole-&gt;Printf(_L("Person=%S\n"), &amp;myData);
-}</codeblock> </p> </li> <li id="GUID-9EECD8B4-F9D2-5D27-A1C3-32C7337AF8E0"><p>Close the SQL search statement: </p> <p><codeblock id="GUID-121F21FE-0D85-5F13-8D57-0D9B84ECA22E" xml:space="preserve">err = myStatement.Close(); </codeblock> </p> <p>When the database search is finished the object should be closed to free up resources. </p> </li> </ol> </li> </ol> </section> <section id="GUID-CDF77F9C-9ACB-529B-B902-0548E91A026E"><title>Results</title> <p>The tutorial has demonstrated how to query a Symbian SQL database. Looking through the example application you can work out how easily the query can be changed to meet specific requirements and how the results can be used in different ways. </p> </section> <example id="GUID-8DB8048D-082A-51C2-882E-6250D5B3B2D0"><title>Querying example</title> <p>The following code snippet is from the basic example application. </p> <codeblock id="GUID-D2EE1100-6199-5313-B8C5-49CA1AC9C2FD" xml:space="preserve">...
-...
-RSqlStatement stmt;
-iConsole-&gt;Printf(_L("Running Query:\n%S\n"), &amp;aStatement);
-user::LeaveIfError(stmt.Prepare(iPetDb, aStatement));
-CleanupClosePushL(stmt);
-TInt personIndex = stmt.ColumnIndex(KPerson);
-TInt rc = KErrNone;
-while ((rc = stmt.Next()) == KSqlAtRow)
-  {
-  // Do something with the results 
-  TPtrC myData = stmt.ColumnTextL(personIndex); // read return data
-  iConsole-&gt;Printf(_L("Person=%S\n"), &amp;myData);
-  }
-if (rc != KSqlAtEnd)
-  {
-  _LIT(KErrSQLError, "Error %d returned from RSqlStatement::Next().");
-  iConsole-&gt;Printf(KErrSQLError, rc);
-  }
-  ...
-  CleanupStack::PopAndDestroy(1);
-}</codeblock> </example> <section id="GUID-8F3A39B6-6514-5A48-BE2E-7893D7625A9C-GENID-1-8-1-21-1-1-6-1-1-9-1-8-1-7-1-3-5"><p>Now that you have performed a basic database query you can start thinking about more advanced querying options. The following will show you how: </p> <ul><li id="GUID-D2CD5BB5-C085-56F0-B834-7515447CD661"><p> <xref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita">Reading to a buffer</xref>  </p> </li> <li id="GUID-B147074E-B791-592E-99C3-474AA5D217F6"><p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading to memory</xref>  </p> </li> <li id="GUID-029878E1-AAD9-5E1A-B696-67BD3C0D905F"><p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading to a data stream</xref>  </p> </li> </ul> </section> </conbody><related-links><link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext> </link> <link href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita"><linktext>Basic SQL Example
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B"><title>Querying Databases: Basic</title><shortdesc>This tutorial shows you how to create a simple SQL database query. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-BEB231F7-8A23-5650-9933-EC3D030ABA32"><title>Introduction</title> <p>This tutorial shows you how to wrap a SQL query statement into an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object to query a database. </p> <p>This tutorial uses code from the <xref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita">Basic SQL example application</xref>. </p> <p><b>Assumptions </b> </p> <p>You have a database. The database has no tables and therefore no data. </p> <p><b>SQL statements </b> </p> <p>The following SQL statements are used for this example: </p> <p><userinput><cmdname>SELECT</cmdname> <parmname>person</parmname>  <cmdname>FROM</cmdname> <parmname>Pets</parmname>  <cmdname>WHERE</cmdname>  <parmname>cat
+          &gt;= 1</parmname>  </userinput> </p> <p>The (<codeph>SELECT</codeph>) results of the query will be the value in the '<codeph>name</codeph>' column <codeph>FROM</codeph> the '<codeph>countries</codeph>' table <codeph>WHERE</codeph> the value of the '<codeph>population</codeph>' column of the same record is <codeph>&gt;</codeph> the value specified. </p> </section> <section><title>Procedure</title> <ol id="GUID-457AA35E-0A23-5FAE-B69E-10D31F40F153"><li id="GUID-6C096309-F5A5-53AB-81E1-2E319D784FEF"><p>Prepare the statement: </p> <p>The steps to prepare a SQL statement are shown here. </p> <ol id="GUID-6E19F9B5-92DC-50C4-9A93-1DC9E10EFECB"><li id="GUID-F28F700F-1D43-5A44-8C01-A117048A6372"><p>Set up some constants used by the SQL statement object to define the SQL query: </p> <p><codeblock id="GUID-55464913-80C8-57C1-9973-34F11ED2CFF3" xml:space="preserve">_LIT(KSelect1,"SELECT person FROM Pets WHERE cat &gt;= 1;");</codeblock> </p> <p>This defines the query parameters. </p> </li> <li id="GUID-5B15A001-4355-5422-88D5-DF457B3F069C"><p>Instantiate the <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> SQL statement: </p> <p><codeblock id="GUID-B1C94AEC-EF3B-5447-9D75-5C382EB19302" xml:space="preserve">RSqlStatement stmt;</codeblock> </p> </li> <li id="GUID-A8E185AC-0402-5B62-ABDE-7667E7396621"><p>Prepare the statement: </p> <p><codeblock id="GUID-20A9CAD8-5015-5404-864B-4BF471284D44" xml:space="preserve">User::LeaveIfError(stmt.Prepare(iPetDb, aStatement));</codeblock> </p> <p>Creates a parameterised SQL statement executable. </p> </li> <li id="GUID-28D8E6CC-5A85-5422-9F6E-F4EAA5D80491"><p>Define the indices to be used in the search: </p> <p><codeblock id="GUID-ECF6DD48-2E8B-5A70-B712-2465E2132A20" xml:space="preserve">    TInt personIndex = stmt.ColumnIndex(KPerson);</codeblock> </p> </li> </ol> </li> <li id="GUID-7D9C68FB-A9A3-5FBF-A1F4-B2C900680E62"><p>Execute the SQL query: </p> <p>The Symbian SQL statement is executed by <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement::Next()</apiname></xref>. </p> <ol id="GUID-FD6241DB-56D3-5F28-8CA7-ECC8A527F3F8"><li id="GUID-71EC4F86-F462-5C20-82FA-331FF215A25C"><p>Search the records until a match is found: </p> <p><codeblock id="GUID-4617F6D8-D138-5123-8E61-ADC0B9CF1DDA" xml:space="preserve">TInt rc = KErrNone;
+while ((rc = stmt.Next()) == KSqlAtRow)</codeblock> </p> <p> <codeph>Next()</codeph> fires the executable SQL statement and stops at and returns the matched record. </p> </li> </ol> </li> <li id="GUID-D142E6BD-1FF7-514E-A33E-DA87112AABC6"><p>Do something with the results: </p> <p>The query is done and you have the results. In this section we look at a simple way to do something with the results and we close the SQL statement object. </p> <ol id="GUID-19CF868B-5957-5D68-8E7F-352F924C0426"><li id="GUID-21B13AF8-6052-55B1-9CD0-E0BD8783473A"><p>Get and use the results of the search: </p> <p><codeblock id="GUID-8A2DFE0B-78AB-5D90-B175-05DCAD3965D2" xml:space="preserve">...
+{
+TPtrC myData = stmt.ColumnTextL(personIndex);
+iConsole-&gt;Printf(_L("Person=%S\n"), &amp;myData);
+}</codeblock> </p> </li> <li id="GUID-9EECD8B4-F9D2-5D27-A1C3-32C7337AF8E0"><p>Close the SQL search statement: </p> <p><codeblock id="GUID-121F21FE-0D85-5F13-8D57-0D9B84ECA22E" xml:space="preserve">err = myStatement.Close(); </codeblock> </p> <p>When the database search is finished the object should be closed to free up resources. </p> </li> </ol> </li> </ol> </section> <section id="GUID-CDF77F9C-9ACB-529B-B902-0548E91A026E"><title>Results</title> <p>The tutorial has demonstrated how to query a Symbian SQL database. Looking through the example application you can work out how easily the query can be changed to meet specific requirements and how the results can be used in different ways. </p> </section> <example id="GUID-8DB8048D-082A-51C2-882E-6250D5B3B2D0"><title>Querying example</title> <p>The following code snippet is from the basic example application. </p> <codeblock id="GUID-D2EE1100-6199-5313-B8C5-49CA1AC9C2FD" xml:space="preserve">...
+...
+RSqlStatement stmt;
+iConsole-&gt;Printf(_L("Running Query:\n%S\n"), &amp;aStatement);
+user::LeaveIfError(stmt.Prepare(iPetDb, aStatement));
+CleanupClosePushL(stmt);
+TInt personIndex = stmt.ColumnIndex(KPerson);
+TInt rc = KErrNone;
+while ((rc = stmt.Next()) == KSqlAtRow)
+  {
+  // Do something with the results 
+  TPtrC myData = stmt.ColumnTextL(personIndex); // read return data
+  iConsole-&gt;Printf(_L("Person=%S\n"), &amp;myData);
+  }
+if (rc != KSqlAtEnd)
+  {
+  _LIT(KErrSQLError, "Error %d returned from RSqlStatement::Next().");
+  iConsole-&gt;Printf(KErrSQLError, rc);
+  }
+  ...
+  CleanupStack::PopAndDestroy(1);
+}</codeblock> </example> <section id="GUID-8F3A39B6-6514-5A48-BE2E-7893D7625A9C-GENID-1-10-1-22-1-1-6-1-1-9-1-8-1-7-1-3-5"><p>Now that you have performed a basic database query you can start thinking about more advanced querying options. The following will show you how: </p> <ul><li id="GUID-D2CD5BB5-C085-56F0-B834-7515447CD661"><p> <xref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita">Reading to a buffer</xref>  </p> </li> <li id="GUID-B147074E-B791-592E-99C3-474AA5D217F6"><p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading to memory</xref>  </p> </li> <li id="GUID-029878E1-AAD9-5E1A-B696-67BD3C0D905F"><p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading to a data stream</xref>  </p> </li> </ul> </section> </conbody><related-links><link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext> </link> <link href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita"><linktext>Basic SQL Example
                 Application</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233" xml:lang="en"><title>Descriptors</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Descriptors are self-describing strings that can be used to store binary
-data and text. Each descriptor object holds the length of the string as well
-as its type which identifies the underlying memory layout of the data it holds.
-For more information on different descriptor classes, see <xref href="GUID-11EEFB3D-0414-5BEB-9D78-56A4B9154008.dita">Using
-Descriptors</xref>.</p>
-<p>There are modifiable and non-modifiable descriptors, the latter type
-is identified by a "C" suffix in the class name. The length of a non-modifiable
-descriptor is defined when compiling an application, and the length of a modifiable
-descriptor can vary within the limits set by <codeph>iMaxLength</codeph>.
-Nonmodifiable descriptors are more secure, as their length is checked during
-compilation. The following figure shows the differences between these types.</p>
-<fig id="GUID-A8F9937F-25A6-4E80-845F-35994B7E13E5"><title>Differences between modifiable, nonmodifiable, and pointer descriptors</title><image href="GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e11254_href.png"/></fig>
-<p>When designing applications, avoid using fixed-length buffers as parameters
-and use base classes (preferably constant base type <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/e32cmn.hGlobals.html#%3a%3aTDesC" format="application/java-archive">TDesC</xref></codeph>)
-instead. Descriptor objects provide a flexible interface for manipulating
-the contained string, including size and length checks. Take advantage of
-these when possible.</p>
-<p>For more information and examples, see the <xref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita">Descriptors
-Overview</xref> topic.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233" xml:lang="en"><title>Descriptors</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Descriptors are self-describing strings that can be used to store binary
+data and text. Each descriptor object holds the length of the string as well
+as its type which identifies the underlying memory layout of the data it holds.
+For more information on different descriptor classes, see <xref href="GUID-11EEFB3D-0414-5BEB-9D78-56A4B9154008.dita">Using
+Descriptors</xref>.</p>
+<p>There are modifiable and non-modifiable descriptors, the latter type
+is identified by a "C" suffix in the class name. The length of a non-modifiable
+descriptor is defined when compiling an application, and the length of a modifiable
+descriptor can vary within the limits set by <codeph>iMaxLength</codeph>.
+Nonmodifiable descriptors are more secure, as their length is checked during
+compilation. The following figure shows the differences between these types.</p>
+<fig id="GUID-A8F9937F-25A6-4E80-845F-35994B7E13E5"><title>Differences between modifiable, nonmodifiable, and pointer descriptors</title><image href="GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e12529_href.png"/></fig>
+<p>When designing applications, avoid using fixed-length buffers as parameters
+and use base classes (preferably constant base type <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/e32cmn.hGlobals.html#%3a%3aTDesC" format="application/java-archive">TDesC</xref></codeph>)
+instead. Descriptor objects provide a flexible interface for manipulating
+the contained string, including size and length checks. Take advantage of
+these when possible.</p>
+<p>For more information and examples, see the <xref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita">Descriptors
+Overview</xref> topic.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-26399981-1E45-5578-851E-D234295F3B05_d0e76153_href.png has changed
Binary file Symbian3/SDK/Source/GUID-26399981-1E45-5578-851E-D234295F3B05_d0e82865_href.png has changed
--- a/Symbian3/SDK/Source/GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6" xml:lang="en"><title>Typical
-functions of the standard keys</title><prolog><metadata><keywords/></metadata></prolog><conbody><table id="GUID-9A18E5F5-2E84-4220-9F8A-50E7007789B5"><title>Standard
-key functions</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Keys</entry>
-<entry>Functions</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Arrow up / Arrow down</p></entry>
-<entry><ul>
-<li><p>Moves the focus one item up/down in lists and grids. </p></li>
-<li><p>Moves the cursor one line up/down in editors. </p></li>
-<li><p>Scrolls the view up/down in viewers. </p></li>
-<li><p>Adjusts the sound volume during calls and sound playback when the device
-does not have dedicated volume keys.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Arrow left / Arrow right</p></entry>
-<entry><ul>
-<li><p>Moves the focus one item to the left/right in grids. </p></li>
-<li><p>Moves the cursor one character to the left/right in editors. </p></li>
-<li><p>Moves to the previous/next view in tabbed views. </p></li>
-<li><p>Moves to the previous/next document or view in certain document viewers. </p></li>
-<li><p>Changes the value in a pop-up field immediately in forms.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><ul>
-<li><p>Opens the focused item (for example, a document or folder) in selection
-lists and grids. </p></li>
-<li><p>Selects an option in menus and lists. </p></li>
-<li><p>Opens the context sensitive Options menu when there is no item to open
-and no option to select (see <xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
-list</xref>).</p></li>
-</ul><p>The Selection key must not directly activate any such function the
-user would not expect in the given situation; the Selection key is strictly
-a Get-in or Accept key. Therefore, the context sensitive <b>Options</b> menu
-will be offered in states where no selectable items exist.</p></entry>
-</row>
-<row>
-<entry><p>Left softkey</p></entry>
-<entry><p>Typically labeled <b>Options</b>. Opens the <b>Options</b> menu.</p><p>Other
-labels and functions: </p><ul>
-<li><p><b>Select</b>. Used in menu lists and grids where further options are
-not available. Selects the focused item; same as the Selection key function. </p></li>
-<li><p><b>OK</b>, <b>Yes</b> and other positive replies; used in confirmation
-queries. </p></li>
-<li><p>In the Idle state, a shortcut to a specific application. Configurable
-by the user, labeled according to the application.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Right softkey</p></entry>
-<entry><p>Typically labeled <b>Back</b>. Returns to the previous state.</p><p>Other
-labels and functions: </p><ul>
-<li><p><b>Exit</b> in applications' main states. </p></li>
-<li><p><b>Cancel</b>. Interrupts a procedure and returns to the previous state;
-used in queries and other temporary states. </p></li>
-<li><p><b>No</b> and other negative replies; used in confirmation queries. </p></li>
-<li><p>In the Idle state, a shortcut to a specific application. Configurable
-by the user, labeled according to the application.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Call creation</p></entry>
-<entry><ul>
-<li><p>Answers the incoming call when the phone rings. </p></li>
-<li><p>Creates an outgoing call when in <b>Phonebook</b> and other states
-where the focus is in a field containing a phone number or a name associated
-with a phone number. </p></li>
-<li><p>Sends a message; used when in a message editor and the <b>To</b> field
-contains a valid address. </p></li>
-<li><p>Functions also as a shortcut for sending files.</p></li>
-</ul><p>During calls: </p><ul>
-<li><p>Puts an active call on hold; activates a held call; swaps active and
-held calls, if both exist. </p></li>
-<li><p>Answers a waiting call (if a call is in progress). </p></li>
-</ul><p>In the Idle state: </p><ul>
-<li><p>Brings up the <b>Last Dialled Calls</b> list for redialing.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Call termination</p></entry>
-<entry><ul>
-<li><p>Rejects an incoming call. </p></li>
-<li><p>Ends an active call.</p></li>
-<li><p>When there is only a held call, ends the held call. </p></li>
-<li><p>When there is both an active call and a held call, ends the active
-call and activates the held call. </p></li>
-<li><p>When there are no calls and an application is active, returns to the
-Idle state. The application is terminated, except for applications that play
-something in the background such as music players or radio. Any unsaved data
-is automatically saved (also in case the user has pressed Exit in the Options
-menu).</p></li>
-</ul><p>And in devices that have a dedicated power key: </p><ul>
-<li><p>A long press closes down all connections (for example GPRS, data call);
-however, this has no effect on IR and Bluetooth </p></li>
-</ul><p>And in devices without a dedicated Power key: </p><ul>
-<li><p>When control is in the Idle state (that is, there are no active calls),
-a short press opens the list of Profiles (the <b>Power key</b> menu) and a
-long press turns the device OFF regardless of whether there are active packet
-data connections in the background or not. </p></li>
-<li><p>When in the Idle state without any packet data connections active in
-the background, a short press opens the <b>Power key</b> menu and a long press
-turns the device off. </p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Home / Menu key</p></entry>
-<entry><ul>
-<li><p>Opens the <xref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita">Menu</xref>,
-allowing application launching and swapping. </p></li>
-<li><p>When within the <uicontrol>Menu</uicontrol>, returns to the home screen.
-Note that there can be device-specific configurations for Home / Menu key
-functionality. </p></li>
-<li><p>A long press of the Home / Menu key opens the task swapping window,
-allowing switching between running applications.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Numeric keypad (0-9, *, #)</p></entry>
-<entry><ul>
-<li><p>Numeric and alphanumeric character entry. </p></li>
-<li><p>Application-specific shortcuts and other functions.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Clear</p></entry>
-<entry><ul>
-<li><p>Clears characters when editing text or numbers. </p></li>
-<li><p>Deletes documents or other entities in lists and viewers (these functions
-always require confirmation from the user).</p></li>
-</ul><p>The Clear key is not used for back stepping or exiting; it is only
-used for deletion.</p></entry>
-</row>
-<row>
-<entry><p>Edit (optional)</p></entry>
-<entry><ul>
-<li><p>Opens the <b>Editing</b> menu in editors; the menu contains functions
-for input mode changing and other editing functions. See <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
-menu </xref>for the contents of the menu.</p></li>
-<li><p>In editors, can be used together with the Arrow keys to select (highlight)
-text, which then enables the Copy and Cut functions. </p></li>
-<li><p>In markable lists, using the Edit key together with the arrow keys
-allows the user to mark several items in the list, then a function can be
-executed on all the marked items as one operation.</p></li>
-</ul><p>The Edit key is handled in a special way; the primary action (the <b>Editing</b> menu)
-is opened from the key release event, not the key down event as usually. This
-is to enable the <b>Mark/Select</b> function where the key is being held down
-as a modifier key (see <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
-menu </xref> and <xref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita">Lists
-and grids</xref> for more detailed descriptions of the <b>Select</b> and <b>Mark</b> functions.)</p></entry>
-</row>
-<row>
-<entry><p>Volume keys</p></entry>
-<entry><p>Adjust the sound volume during calls and sound playback.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7"><title>Message Store on a Phone </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section explains how the UI layer displays a Message Store to a phone user. </p> <p>A message centre application displays the structure of the Message Store to the user. Different UIs map the structure to different views. </p> <p> <b>Note:</b> The presentation of folders is done in the UI layer and not the Messaging API. </p> <section><title>Series 60</title> <p>The following figure shows the top level view of a message centre application on a Series 60 phone: </p> <fig id="GUID-10952493-82DF-53F1-8125-F59CA5C9684A"><title>
-             Series 60 message centre 
-          </title> <image href="GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e283710_href.png" placement="inline"/></fig> <p>In the figure, you can see that the message centre has hidden the local service and shows the standard folders at the same level as the services. Also the SMTP, SMS and MMS services are marked as hidden entries in the Message Store, and so do not appear in the message application. The outbox does not retain copies of sent messages, but are saved in the Sent folder. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7"><title>Message Store on a Phone </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section explains how the UI layer displays a Message Store to a phone user. </p> <p>A message centre application displays the structure of the Message Store to the user. Different UIs map the structure to different views. </p> <p> <b>Note:</b> The presentation of folders is done in the UI layer and not the Messaging API. </p> <section><title>Series 60</title> <p>The following figure shows the top level view of a message centre application on a Series 60 phone: </p> <fig id="GUID-10952493-82DF-53F1-8125-F59CA5C9684A"><title>
+             Series 60 message centre 
+          </title> <image href="GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e280024_href.png" placement="inline"/></fig> <p>In the figure, you can see that the message centre has hidden the local service and shows the standard folders at the same level as the services. Also the SMTP, SMS and MMS services are marked as hidden entries in the Message Store, and so do not appear in the message application. The outbox does not retain copies of sent messages, but are saved in the Sent folder. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121" xml:lang="en"><title>Secure
-Software Install Tools Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <b>Secure Software Install Tools</b> collection contains PC-side tools
-which enable you to generate, sign and preinstall Symbian Installation files
-(SIS files). The collection also includes a set of tools, which enable you
-to extract information from SIS files, SWIcertstore and registry entries for
-analysis. </p>
-<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-8-1-4-1-1-4-1-3-1-2-2"><title>Components</title> <ul>
-<li id="GUID-C7789048-7132-5006-B4BF-A34FCB9935E0"><p><xref href="GUID-3170F958-137A-5DD5-A6DD-D5474ABECD22.dita">MaKeKeys</xref> is
-a stand-alone tool that enables you to create a private key-public key pair
-and generate certificate requests. </p> </li>
-<li id="GUID-65A99BA9-1BA8-5038-A33C-2DA610FE6EFF"><p>The <xref href="GUID-9903E2AB-9D96-5005-8DC5-26653F93616C.dita">SWI
-Analysis Toolkit</xref> provides command-line tools that enable you to: </p> <ul>
-<li id="GUID-531EAE65-F0E2-5840-95DE-57147B49A603"><p>extract information
-from software install registry entries </p> </li>
-<li id="GUID-9F35AF6B-79A3-53AA-A191-2043CB5087E5"><p>extract certificate
-and its corresponding capabilities from SWIcerstore </p> </li>
-<li id="GUID-B250D3E8-3C29-543B-91B0-7AA50A8A8647"><p>validate certificate
-chains and extract capability details associated with a SIS file. </p> </li>
-</ul> </li>
-
-</ul> </section>
-<section id="GUID-31D8B375-90AF-43DF-A45D-F19C9D001056"><title>Using Secure
-Software Install Tools</title> <p>You can use this collection to perform the
-following tasks: </p> <ul>
-<li id="GUID-A2978F13-8D74-5DEF-8A45-8653A1BA8FD3"><p> <b>Create an installation
-file (SIS)</b>  </p> <p>You can create and sign an installation file. For
-more information, see <xref href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita">Creating
-and Signing an Installation File</xref>. </p> </li>
-
-<li id="GUID-FBB5012B-5439-5F4C-ACB2-7EB410328929"><p> <b> Extract certificate
-information from SWIcertstore</b>  </p> <p>You can extract information about
-certificates and their corresponding capabilities. For more information, see <xref href="GUID-49D979C8-C9B5-55A4-A496-9B62FC569D05.dita">DumpSWICertstoreTool</xref>. </p> </li>
-<li id="GUID-C9860F09-7CC7-5C69-89C4-934826C02A5D"><p> <b> Extract information
-from a Software Install Registry Entry</b>  </p> <p>You can extract information
-such as package UID, package name and vendor name from a registry entry. For
-more information, see <xref href="GUID-ABD45929-DEA1-5500-B64A-B32F623B6A06.dita"> DumpSWIRegistryTool </xref>. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita"><linktext>MakeKeys
-Overview</linktext></link>
-<link href="GUID-0554452F-856D-51A1-A1A5-C44EEFF7A3D4.dita"><linktext> SWI Analysis
-Toolkit                 Overview</linktext></link>
-<link href="GUID-AFE0238A-D6A4-5D07-BB99-85E8CF97BD26.dita"><linktext>Secure Software
-Install SIS Tools                 Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121" xml:lang="en"><title>Secure
+Software Install Tools Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <b>Secure Software Install Tools</b> collection contains PC-side tools
+which enable you to generate, sign and preinstall Symbian Installation files
+(SIS files). The collection also includes a set of tools, which enable you
+to extract information from SIS files, SWIcertstore and registry entries for
+analysis. </p>
+<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-10-1-4-1-1-4-1-3-1-2-2"><title>Components</title> <ul>
+<li id="GUID-C7789048-7132-5006-B4BF-A34FCB9935E0"><p><xref href="GUID-3170F958-137A-5DD5-A6DD-D5474ABECD22.dita">MaKeKeys</xref> is
+a stand-alone tool that enables you to create a private key-public key pair
+and generate certificate requests. </p> </li>
+<li id="GUID-65A99BA9-1BA8-5038-A33C-2DA610FE6EFF"><p>The <xref href="GUID-9903E2AB-9D96-5005-8DC5-26653F93616C.dita">SWI
+Analysis Toolkit</xref> provides command-line tools that enable you to: </p> <ul>
+<li id="GUID-531EAE65-F0E2-5840-95DE-57147B49A603"><p>extract information
+from software install registry entries </p> </li>
+<li id="GUID-9F35AF6B-79A3-53AA-A191-2043CB5087E5"><p>extract certificate
+and its corresponding capabilities from SWIcerstore </p> </li>
+<li id="GUID-B250D3E8-3C29-543B-91B0-7AA50A8A8647"><p>validate certificate
+chains and extract capability details associated with a SIS file. </p> </li>
+</ul> </li>
+
+</ul> </section>
+<section id="GUID-31D8B375-90AF-43DF-A45D-F19C9D001056"><title>Using Secure
+Software Install Tools</title> <p>You can use this collection to perform the
+following tasks: </p> <ul>
+<li id="GUID-A2978F13-8D74-5DEF-8A45-8653A1BA8FD3"><p> <b>Create an installation
+file (SIS)</b>  </p> <p>You can create and sign an installation file. For
+more information, see <xref href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita">Creating
+and Signing an Installation File</xref>. </p> </li>
+
+<li id="GUID-FBB5012B-5439-5F4C-ACB2-7EB410328929"><p> <b> Extract certificate
+information from SWIcertstore</b>  </p> <p>You can extract information about
+certificates and their corresponding capabilities. For more information, see <xref href="GUID-49D979C8-C9B5-55A4-A496-9B62FC569D05.dita">DumpSWICertstoreTool</xref>. </p> </li>
+<li id="GUID-C9860F09-7CC7-5C69-89C4-934826C02A5D"><p> <b> Extract information
+from a Software Install Registry Entry</b>  </p> <p>You can extract information
+such as package UID, package name and vendor name from a registry entry. For
+more information, see <xref href="GUID-ABD45929-DEA1-5500-B64A-B32F623B6A06.dita"> DumpSWIRegistryTool </xref>. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita"><linktext>MakeKeys
+Overview</linktext></link>
+<link href="GUID-0554452F-856D-51A1-A1A5-C44EEFF7A3D4.dita"><linktext> SWI Analysis
+Toolkit                 Overview</linktext></link>
+<link href="GUID-AFE0238A-D6A4-5D07-BB99-85E8CF97BD26.dita"><linktext>Secure Software
+Install SIS Tools                 Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2-master.png has changed
Binary file Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e58092_href.png has changed
Binary file Symbian3/SDK/Source/GUID-26778399-0105-413F-A39D-535A3BF5EBE2_d0e61491_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-267D1E20-002E-53C7-8AE5-E063206C1562.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-267D1E20-002E-53C7-8AE5-E063206C1562"><title>Secure stream encryption example support code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Below is the supporting code for the <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita">secure stream example code</xref>. </p> <section id="GUID-77E39C51-FE08-4EEB-B94A-4ECD8104E1ED"><title/><codeblock id="GUID-02ECEC04-E291-51B3-86DF-2FB28347F5AD" xml:space="preserve">
+#include "e32std.h"
+#include "f32file.h"
+#include "s32file.h"
+#include "pbe.h"
+#include "pbedata.h"
+#include "s32crypt.h"
+            </codeblock> <codeblock id="GUID-13A09565-981A-56C0-9AC7-B849FFBE7395" xml:space="preserve">
+/*
+ * Class to demonstrate the use of secure stream encryption APIs.
+ */
+class CSecureStreamExample : public CBase
+         {
+public:
+         static CSecureStreamExample* NewLC();
+         virtual ~CSecureStreamExample();
+         
+         void WriteEncryptedDataL(const TDesC8&amp; aInput, const TDesC&amp; aFilename, const TDesC&amp; aPassword);
+         HBufC8* ReadEncryptedDataLC(const TDesC&amp; aFilename, const TDesC&amp; aPassword);
+private:
+         CSecureStreamExample();
+         void ConstructL();
+private:
+         RFs iFs;
+         };
+            </codeblock> <codeblock id="GUID-B23E19C7-F6AD-5CB4-A944-EFEDC45AB623" xml:space="preserve">
+CSecureStreamExample* CSecureStreamExample::NewLC()
+         {
+         CSecureStreamExample* self = new (ELeave) CSecureStreamExample();
+         CleanupStack::PushL(self);
+         self-&gt;ConstructL();
+         return self;
+         }
+
+CSecureStreamExample::CSecureStreamExample()
+         {
+         }
+
+void CSecureStreamExample::ConstructL()
+         {
+         User::LeaveIfError(iFs.Connect());
+         }
+
+CSecureStreamExample::~CSecureStreamExample()
+         {
+         iFs.Close();
+         }
+            </codeblock> <codeblock id="GUID-11B8C0DD-AD05-53BB-BAD2-6F31457A2DD9" xml:space="preserve">
+LOCAL_D void RunPBEExampleL()
+         {
+         _LIT(KFilename, "c:\\pbe_example_data.dat");
+         _LIT8(KInputData, "This is the data to be encrypted.");
+         _LIT(KPassword, "pa55w0rd");
+
+         CSecureStreamExample* main = CSecureStreamExample::NewLC();
+         main-&gt;WriteEncryptedDataL(KInputData, KFilename, KPassword);
+         HBufC8* outputData = main-&gt;ReadEncryptedDataLC(KFilename, KPassword);
+         ASSERT(*outputData == KInputData);
+         CleanupStack::PopAndDestroy(2, main);
+         }
+            </codeblock> <codeblock id="GUID-0B93114C-6801-5053-85C3-181779A6185F" xml:space="preserve">
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+         __UHEAP_MARK;
+         CTrapCleanup* cleanup = CTrapCleanup::New(); // get clean-up stack
+         TRAPD(error, RunPBEExampleL());
+         __ASSERT_ALWAYS(!error,User::Panic(_L("pbe_example_code"),error));
+         delete cleanup; // destroy clean-up stack
+         __UHEAP_MARKEND;
+         return 0;
+    }
+        </codeblock> </section> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-268E2151-C758-46BF-86EB-F7D6EE44DBCF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-268E2151-C758-46BF-86EB-F7D6EE44DBCF" xml:lang="en"><title>Encrypting and Decrypting Data</title><shortdesc>This section provides detailed information on encrypting
+and decrypting data using Symmetric and Asymmetric algorithms supported
+by Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e335760_href.png has changed
Binary file Symbian3/SDK/Source/GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e341917_href.png has changed
Binary file Symbian3/SDK/Source/GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e36237_href.png has changed
Binary file Symbian3/SDK/Source/GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e41804_href.png has changed
--- a/Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-3-1-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-3-1-1-5-1" xml:lang="en"><title>Bitmap Animation</title><shortdesc>The section explain how to create animations using Bitmap Animation
-framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-6-1-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-6-1-1-4-1-4-1" xml:lang="en"><title>Bitmap Animation</title><shortdesc>The section explain how to create animations using Bitmap Animation
-framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A" xml:lang="en"><title>Bitmap Animation</title><shortdesc>The section explain how to create animations using Bitmap Animation
+framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,834 +1,983 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE" xml:lang="en"><title>Full
-Example Code List</title><shortdesc>This document lists the example code available for each module
-and collection in the platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following tables are grouped by module and collection. In each table,
-the left hand column gives a link to the overview for the example. The overviews
-describe the example's purpose, the APIs it demonstrates, how to build and
-run it, and they provide a link to download the example's source code. </p>
-<p>In most cases, the name in the left hand column is the example's mmp filename.
-If the example has more than one mmp file, the name of its directory is used.
-The right hand column gives a summary of the main purpose of the example. </p>
-<section id="GUID-232B69FE-BA35-4F73-9D02-8AA4AF56BF21"><title>Symbian Platform
-Fundamentals</title> <table id="GUID-E490B3BF-655E-54B4-9BBA-A611CDE71E84">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita">HelloWorld</xref>  </p> </entry>
-<entry><p>Most basic console application. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita">CClasses</xref>  </p> </entry>
-<entry><p>Shows a basic 'C' class and use of the cleanup stack. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita">TAndRClasses</xref>  </p> </entry>
-<entry><p>Shows a typical 'T' and 'R' class. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita">MClasses1-3</xref> </p> </entry>
-<entry><p>Shows the use of 'M' (abstract interface) classes. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita">StaticDLL</xref>  </p> </entry>
-<entry><p>Shows how a statically linked DLL is used. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-C63FEA4F-7990-4B27-8FC2-61E135D2B9F7"><title>Application
-Framework</title> <table id="GUID-DA03E4DB-2487-5830-8260-6E46A2352CC9">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-
-
-
-
-<row>
-<entry><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">BmpAnimGui</xref>  </p> </entry>
-<entry><p>Shows how to create an animation using the Bitmap Animation framework. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita">HelloWorld</xref>  </p> </entry>
-<entry><p>Shows how to create a simple GUI application with a single view. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-
-<section id="GUID-168B118B-60A7-4B3F-8B3C-E5A31C3BB4DD"><title>Communications
-Framework</title>   <p><b>Data Server</b> </p> <table id="GUID-D81EC559-A691-5CAE-B68A-186E9D5327B7">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita">Rconnection</xref>  </p> </entry>
-<entry><p>Shows how to use the RConnection API for connection monitoring and
-management. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-
-<section id="GUID-39EA7ED9-FFAE-49C9-9CA4-D5B9B88F4936"><title>Generic Application
-Support</title> <p><b>Common App Services</b> </p> <table id="GUID-2524D0A4-8C06-56C6-A85F-B817B01E7FBD">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">AlarmServerExample</xref>  </p> </entry>
-<entry><p>Shows the client API to the alarm server. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>   </section>
-<section id="GUID-24F27D44-502A-4E44-B1DC-DAD71E919DBB"><title>Generic OS
-Services</title> <p><b>Compression Libraries</b> </p> <table id="GUID-811B841F-02DA-5C33-B681-8E9E13E66566">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">EzlibExample</xref>  </p> </entry>
-<entry><p>Shows how to use the EZLIB API to do file extraction and compression. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Generic Open Libraries</b> </p> <table id="GUID-20DF4858-3D0D-53C8-8BD8-46E48CF7F4DF">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">FileAccessExample</xref>  </p> </entry>
-<entry><p>Shows accessing the file system using P.I.P.S. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-BE893F87-E7F6-56E5-BD27-328B532F8332.dita">HelloWorldExample</xref>  </p> </entry>
-<entry><p>Creates a simple P.I.P.S. DLL and EXE to demonstrate function lookup
-by name rather than by ordinal. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita">hybridapp</xref>  </p> </entry>
-<entry><p>Shows a P.I.P.S. 'hybrid' application that uses both C and native
-Symbian C++ APIs. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">IPC</xref>  </p> </entry>
-<entry><p>Shows inter-process communication in P.I.P.S. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">LibpThreadExample</xref>  </p> </entry>
-<entry><p>Shows simple multi-threading and synchronisation in P.I.P.S. using <filepath>libpthread.dll</filepath>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita">libmexample</xref>  </p> </entry>
-<entry><p>Shows the P.I.P.S. Standard C maths library, <filepath>libm.dll</filepath>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita">ConsoleApp</xref>  </p> </entry>
-<entry><p>Shows a simple console-based STDLIB (C Standard library) program
-that converts quantities from one unit of measurement into another. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita">GUIApp</xref>  </p> </entry>
-<entry><p>Shows a Techview GUI application whose engine is written using STDLIB. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita">Hello</xref>  </p> </entry>
-<entry><p>The simplest possible STDLIB example. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">posixsignals</xref></p></entry>
-<entry><p>Shows various signal use cases as supported in P.I.P.S. </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Open C</b> </p> <table id="GUID-268FCC9C-5D4E-4154-BCD7-473FF53B015F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.dita">openclibz</xref>  </p> </entry>
-<entry><p>Shows file compression/decompression.  Huffman , filtered data compression,
-run length encoding, compress a string given by user </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-72f72df3-653c-414c-a357-7613ad8bc169.dita">antiword</xref>  </p> </entry>
-<entry><p>converts a MS-word document (i.e. .doc) file in to a plain text(i.e.
-.txt) file.  	</p><p>converts a MS-word document (i.e. .doc) file in to a
-Adobe acrobat(i.e. .pdf) file. </p><p>	converts a MS-word document (i.e. .doc)
-file in to a post-script (i.e. .ps) file. </p><p>	converts a MS-word document
-(i.e. .doc) file in to a xml (i.e. .xml) file </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.dita">handleglobalvar</xref>  </p> </entry>
-<entry><p>How to handle global variables within the library code. </p><p>How
-to solve WSD (Writable Static Data) problem </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.dita">opencmessagequeuelibraryex</xref>  </p> </entry>
-<entry><p>Send/receive messages using message queue, demonstrated using open
-C message queue library </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-b9259541-c444-400a-8f6e-8daaa5381a79.dita">opencproducerconsumerex</xref>  </p> </entry>
-<entry><p>Demonstrates solution for Producer/ Consumer Problem using Open
-C. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-ef84586b-da53-4132-b481-aef6ba5a0994.dita">OpenCStringUtilitiesEx</xref>  </p> </entry>
-<entry><p>Demonstrates string utility using open C libraries </p> </entry>
-</row>
-<row>
-<entry><p><xref href="guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.dita">redirectprintf</xref>  </p> </entry>
-<entry><p>how to redirect stdio to a file. libc library provides freopen API
-to redirect all standard IOs (namely, stderr, stdin, or stdout).  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Generic Services</b> </p> <table id="GUID-7971259C-075D-5D0D-BD52-7ADF5B724CB7">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">exampleRecognizer</xref>  </p> </entry>
-<entry><p>Shows how to write a simple data recognizer. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita">TaskSchedulerExample</xref>  </p> </entry>
-<entry><p>Shows how to schedule and run tasks using the Task Scheduler API. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Low level Libraries and Frameworks</b> </p> <table id="GUID-8E40A60D-C8BE-5C7D-9415-8D8E25F2DD98">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita">Basics</xref>  </p> </entry>
-<entry><p>Shows how to store and restore objects using the clipboard API. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">InterfaceClient</xref>  </p> </entry>
-<entry><p>One of a set of three related ECom examples that provide an interface
-definition, a DLL that contains two implementations of that interface, and
-a client program that uses the interface. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita">InterfaceDefinition</xref>  </p> </entry>
-<entry><p>See InterfaceClient, above. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita">InterfaceImplementation</xref>  </p> </entry>
-<entry><p>See InterfaceClient, above. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita">ReadText</xref>  </p> </entry>
-<entry><p>Most basic resource file example, shows how to read a string resource
-and print it to the console. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita">ReadArray</xref>  </p> </entry>
-<entry><p>Shows how to load data from a resource file into an array. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita">MultiRead1</xref>  </p> </entry>
-<entry><p>Shows how to open a single resource file and read a resource from
-it into a descriptor. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita">MultiRead2</xref>  </p> </entry>
-<entry><p>Shows how to open and read from multiple resource files. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">ReadData</xref>  </p> </entry>
-<entry><p>Shows how to use a resource reader to read data of various types
-from a resource file into the data members of a class. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">EUser High
-Level Library</xref>  </p> </entry>
-<entry><p>Shows how to use EUser High Level library classes and APIs </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">SigCheck</xref>  </p> </entry>
-<entry><p>Shows how the signature of a resource file is checked before use. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>XML</b> </p> <table id="GUID-C96C15A1-43A5-54FD-A915-59E294BEBCD4">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita">XmlExample</xref>  </p> </entry>
-<entry><p>Shows how to use the <xref href="GUID-54A442BD-FCF1-31D3-BEF7-598C1820F473.dita"><apiname>Xml</apiname></xref> framework to parse XML
-and WBXML files. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-FE7F12C1-BC54-497F-8C56-47603FFF7E2B"><title>Graphics</title> <p><b>Font
-and Bitmap Server</b> </p> <table id="GUID-771EBF67-9F0D-51F0-ACBD-25065010D510">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">BitmapsShell</xref>  </p> </entry>
-<entry><p>Shows how to draw and manipulate bitmaps. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>      <p><b>General</b> </p> <table id="GUID-71B3C013-28C3-528A-93D7-2AB2D299FF4D">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita">GraphicsShell</xref>  </p> </entry>
-<entry><p>A TechView application that demonstrates drawing points, lines and
-shapes, and zooming a bitmap and text. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-17DB3D43-7E0D-4D82-92ED-74708A633349"><title>High Level
-Internet Protocols</title> <p><b>Application Layer Protocols</b> </p> <table id="GUID-5B118134-BB1C-505C-929C-EAF014205AEF">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita">httpexampleclient</xref>  </p> </entry>
-<entry><p>A console application that provides a menu-driven interface to demonstrate
-the HTTP API. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>IMS and Streaming</b> </p> <table id="GUID-AF7CEA78-D5CD-5290-859E-44FADE28E529">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita">RTPExample</xref>  </p> </entry>
-<entry><p>Shows RTP packet streaming. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-0EC84F5C-D843-4819-8962-EE17367E63F4"><title>Kernel and
-Hardware Services</title> <p> </p>  <p><b>User Library</b> </p> <table id="GUID-7C3C9842-5B1F-58C7-8FE3-61210C6BFBE5">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">AdvancedClientServerExample</xref>  </p> </entry>
-<entry><p>Shows the use of asynchronous and synchronous client/server APIs
-using a logical device driver (LDD) and a physical device driver (PDD). </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest</xref>  </p> </entry>
-<entry><p>Shows the basic principles of asynchronous programming by issuing
-and waiting for completion of a single request. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref>  </p> </entry>
-<entry><p>Shows how a wait loop can be used to identify and handle a completed
-request. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop</xref>  </p> </entry>
-<entry><p>Shows how the wait loop can deal with multiple asynchronous service
-providers. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463">RunComplete</xref>  </p> </entry>
-<entry><p>Shows how active objects and an active scheduler can be used to
-handle asynchronous events, using a timer. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6">AcceptInput1-2</xref>  </p> </entry>
-<entry><p>Shows how active objects and an active scheduler can be used to
-handle asynchronous events, using keyboard input. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5">AcceptPrintInput</xref>  </p> </entry>
-<entry><p>Shows how active objects and an active scheduler can be used to
-handle accept and print keyboard inputs to a console. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E">Fibonacci1-3</xref>  </p> </entry>
-<entry><p>Shows how active objects and an active scheduler can be used to
-handle asynchronous events and long-running services to maintain system responsiveness. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">circularbuffer</xref>  </p> </entry>
-<entry><p>Shows how to construct and use circular buffers holding different
-types of objects. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-BFDD4BF0-E60A-5996-B83D-4DE3EACA93FD">Simple</xref>  </p> </entry>
-<entry><p>Shows a simple client that has a single session with a server. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-544EE3A6-86A2-57FF-A13B-94658F1DCA16">Complex</xref>  </p> </entry>
-<entry><p>More complex client/server example, where the server supports multiple
-subsessions within a session. </p> </entry>
-</row>
-
-<row>
-<entry><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5">condvarglobal</xref>  </p> </entry>
-<entry><p>Shows the use of the global condition variable IPC mechanism. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943">condvarlocal</xref>  </p> </entry>
-<entry><p>Shows the use of the local condition variable IPC mechanism. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita">Basics</xref>  </p> </entry>
-<entry><p>Shows date and time handling. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-90645A43-313B-55FC-91D0-547C237B680B">BinaryData</xref>  </p> </entry>
-<entry><p>Shows how descriptors can handle general binary data by explicitly
-using the 8 bit descriptor class variants. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-FC2B9B70-F849-5F19-9F3C-25D5FDCC576D">Buffer</xref>  </p> </entry>
-<entry><p>Shows the basic idea of buffer descriptors and how they are used. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5040249B-55ED-5ACD-837B-6B0FD4AF24FE">InFunct</xref>  </p> </entry>
-<entry><p>Shows how to use descriptors as function arguments. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-CE601E1E-AF03-56E8-B7FB-0CDFF4EA4386">HeapBuffer</xref>  </p> </entry>
-<entry><p>Shows how to create and use the heap buffer descriptor <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-C79042EB-4ACF-5972-9F57-E7C0F37DECF6">Modifier</xref>  </p> </entry>
-<entry><p>Shows how to use the modifiable descriptor class <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-927CFF04-C0D1-5BDE-B221-4245113924F7">NonModifier</xref> </p> </entry>
-<entry><p>Shows how to use the non-modifiable descriptor class <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5AEFA6EB-A100-5B96-935D-2537EEFB56F5">Pointer</xref>  </p> </entry>
-<entry><p>Shows how to use pointer descriptors. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-1636C0BB-9B23-5C47-8F26-CF080DBE64EB">WriteToFile</xref>  </p> </entry>
-<entry><p>Basic example that shows how to write text to a file. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">DynamicArrays</xref>  </p> </entry>
-<entry><p>Shows how to construct and use dynamic arrays. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">DynamicBuffers</xref>  </p> </entry>
-<entry><p>Shows how to use the flat and segmented buffer classes. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-960B2F4E-9012-53EE-973A-C3426A7DD48F.dita">DLLs</xref> </p> </entry>
-<entry><p>Implements two polymorphic DLLs and shows how to load and use them. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita">RangeChecking</xref>  </p> </entry>
-<entry><p>Shows how to use the range checking wrapper class for C++ arrays
-(<xref href="GUID-1EC847DC-6858-3BEE-A5B2-F7737F1D50AD.dita"><apiname>TFixedArray</apiname></xref>). </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-7068AB77-5C96-59A3-B975-7923FD843832.dita">hashtableexample</xref>  </p> </entry>
-<entry><p>Shows how to use the hash table APIs. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita">Lexer</xref>  </p> </entry>
-<entry><p>Shows how to use the lexical analyser, <xref href="GUID-C94AB4F0-AE42-3957-A037-77CB145DDBF8.dita"><apiname>TLex</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita">linkedlist</xref>  </p> </entry>
-<entry><p>Shows how to use singly and doubly linked lists and the delta queue
-class. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita">Currency</xref>  </p> </entry>
-<entry><p>Shows locale-specific representation of currency values and symbols. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita">localeupdate</xref>  </p> </entry>
-<entry><p>Shows how to load a locale DLL and read settings from it. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-9CAE0C86-537A-500F-B361-D555DD39954B">ErrorOnFail</xref> </p> </entry>
-<entry><p>Shows use of the <codeph>TRAPD</codeph> macro, the cleanup stack
-and the process of leaving. Returns an error code on failure. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-E80C29CC-0282-5350-8077-BB298B7590C0">LeaveOnFail</xref> </p> </entry>
-<entry><p>As the <codeph>ErrorOnFail</codeph> example except it leaves on
-failure. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-279FBD9A-0E61-50ED-9618-BAB24AC3163C">ELeaveOnFail</xref>  </p></entry>
-<entry><p>As the <codeph>LeaveOnFail</codeph> example except it calls <codeph>new
-(ELeave)</codeph> rather than <codeph>new</codeph>. </p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C7E94BD9-9B77-548C-A3C2-D5A396F20EF0">TrapD</xref>  </p> </entry>
-<entry><p>Shows the use of the <codeph>TRAPD</codeph> macro. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-12F30817-5CE0-5B6E-A850-7179BE915539">PushLAndPop</xref> </p> </entry>
-<entry><p>Shows the use of the cleanup stack and its functions <codeph>PushL()</codeph> and <codeph>Pop()</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-548F79C2-3394-5D86-8E70-B219E49288C7">PushLPopDest</xref>  </p> </entry>
-<entry><p>Shows the use of the cleanup stack and its functions <codeph>PushL()</codeph> and <codeph>PopAndDestroy()</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-5975C52F-726D-5DB1-8CE4-7F52DC202B43">NewL</xref>  </p> </entry>
-<entry><p>Shows use of the <codeph>NewL()</codeph> static function. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-53F042FC-401F-5AD7-8F60-ECD15EB1069F">NewLC</xref>  </p> </entry>
-<entry><p>Shows use of the <codeph>NewLC()</codeph> static function. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-4559C2AC-0DA8-5788-A33C-2E20EFEF6D58">SimpleOOM</xref>  </p> </entry>
-<entry><p>Shows cleanup handling for compound classes. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-2E3E6224-BE1C-5DA1-BEA0-D28CD7DA40E8">MemLeakOOM</xref>  </p> </entry>
-<entry><p>Shows cleanup handling for compound classes, and avoiding memory
-leaks. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-068C17E6-0E3C-571B-92D1-421EEF42E6A0">TwoPhaseOOM</xref>  </p> </entry>
-<entry><p>Shows the two phase construction technique. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-D0A1DF34-2499-5F7E-80D1-0BFF74882EA6">TAnyRObjects1</xref>  </p> </entry>
-<entry><p>Shows how cleanup can be implemented for <codeph>TAny*</codeph> type
-objects and 'R' type (resource type) objects. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C42BF40F-94C4-5845-B449-164AD4578691">TAnyRObjects2</xref>  </p> </entry>
-<entry><p>As <codeph>TAnyRObjects1</codeph> except it calls <codeph>OpenLC()</codeph> to
-open the file and push it onto the cleanup stack in one function call. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C4F81443-E41D-52C6-9305-A1B7E45A1DC5">Utilities</xref>  </p> </entry>
-<entry><p>Shows how to use the cleanup functions <codeph>CleanupDeletePushL()</codeph>, <codeph>CleanupClosePushL()</codeph> and <codeph>CleanupReleasePushL()</codeph>, and <codeph>CleanupArrayDeletePushL()</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">MessageQueueExample</xref>  </p> </entry>
-<entry><p>Shows the use of the message queue in interprocess communication. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita">pubsub</xref>  </p> </entry>
-<entry><p>Shows the Publish and Subscribe IPC mechanism. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">rbufexample</xref>  </p> </entry>
-<entry><p>Shows how to use the resizable buffer descriptor class <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita">SecureServer</xref>  </p> </entry>
-<entry><p>Shows how to use the policy server framework. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita">tcharexample</xref>  </p> </entry>
-<entry><p>Shows how to use the single character class, <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita"><apiname>TChar</apiname></xref>,
-and its derived classes. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita">TLS1</xref> </p> </entry>
-<entry><p>Shows the use of thread local storage (TLS) in a DLL, that is set
-and accessed from a separate executable. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita">ThreadRendezvous</xref>  </p> </entry>
-<entry><p>Shows the principle of synchronisation using the thread rendezvous
-technique. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita#GUID-086939FA-D381-5705-BEE6-6DF2D3624849/GUID-3205DDD3-D057-56BF-8F64-CF1AFF52619B">BasicTimer</xref>  </p> </entry>
-<entry><p>Shows the asynchronous timer class <xref href="GUID-8A423EA2-4264-30C9-9579-0466994E6E88.dita"><apiname>RTimer</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita#GUID-086939FA-D381-5705-BEE6-6DF2D3624849/GUID-0554FACD-5075-5C8D-8634-F60D31D1EDB7">Periodic</xref>  </p> </entry>
-<entry><p>Shows the differences between a periodic and a heartbeat timer. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">resourcemanager</xref>  </p> </entry>
-<entry><p>Shows how to use the Power Resource Manager framework. </p> </entry>
-</row>
-
-<row>
-<entry><p><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">SemaphoreExample</xref></p></entry>
-<entry><p>Shows how to use semaphores for a multithreading application.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-34060D5F-86E7-48CA-B26B-550B45678232"><title>Messaging Middleware</title> <table id="GUID-1DA226AB-62D4-5957-AB83-131545DC9316">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">TextMTM</xref>  </p> </entry>
-<entry><p>Several example projects that show how to use the Messaging APIs. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample</xref>  </p> </entry>
-<entry><p>Shows how to use the enhanced search and sort API for message stores. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">BIOMessageMgr</xref>  </p> </entry>
-<entry><p>Shows BIO messaging and parsing the BIO message. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">SendAs2Example</xref>  </p> </entry>
-<entry><p>Shows how to use the SendAs v2 protocol for sending messages. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-BDABE08F-ACC4-4949-A07A-3D99B2DC29EB"><title>Messaging Applications</title> <table id="GUID-B29214E5-2861-5638-BF15-FB301E67E487">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">smsexample</xref>  </p> </entry>
-<entry><p>Shows how to send and receive SMS messages using the Messaging Framework
-APIs. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita">Pop3Example</xref>  </p> </entry>
-<entry><p>Shows how to create SMTP (Simple Mail Transfer Protocol) and POP
-(Post Office Protocol) accounts to send and receive emails. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">Imap4Example</xref>  </p> </entry>
-<entry><p>Shows how to create SMTP and IMAP (Internet Message Access Protocol)
-accounts to send and receive emails. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-22A35A82-E063-46A7-A0A7-6394759E4D8E"><title>Multimedia</title> <p><b>Multimedia
-APIs and Frameworks</b> </p> <table id="GUID-1C3366A7-3443-55AC-BF5C-CDBC6E8024FC">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1.dita">ICLCodec</xref>  </p> </entry>
-<entry><p>Shows how to implement encoder and decoder plug-ins for the Image
-Converter Library. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">ICLExample</xref>  </p> </entry>
-<entry><p>Shows how to convert still images, stored in files or descriptors,
-to and from bitmap objects using the Image Conversion Library (ICL) API </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita">ImageConv</xref>  </p> </entry>
-<entry><p>Shows how to convert between standard graphics formats to and from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> s,
-and how to rotate, flip, and zoom images. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">CameraExample</xref>  </p> </entry>
-<entry><p>Shows how to use the Camera API to capture and control images. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-0F7A7186-770F-40FC-A982-01D951F1CD61"><title>Multimedia
-Middleware</title> <p><b>Multimedia Middleware Frameworks</b> </p> <table id="GUID-19C93D72-DEA0-502B-8DA7-296B8E232DA4">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">AudioClientEx</xref>  </p> </entry>
-<entry><p>Shows how to use the Multimedia Framework's client audio interfaces
-to play and record audio. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita">MmfExCodec</xref>  </p> </entry>
-<entry><p>Shows how to implement a codec plug-in for the Multimedia Framework
-to convert media data. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita">MmfRAWFormat</xref>  </p> </entry>
-<entry><p>Shows how to implement format encoder and decoder plug-ins for the
-Multimedia Framework. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita">MmfExSinkSource</xref>  </p> </entry>
-<entry><p>Shows how to implement sink and source plug-ins for the Multimedia
-Framework. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita">MmfRec</xref> </p> </entry>
-<entry><p>Shows how to record short audio clips using each format that the
-system supports. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-
-<section id="GUID-66B052D5-ACB3-4F1B-95AF-7DF26B5AB321"><title>PC Tools </title> <p><b>Secure
-Software Install Tools</b> </p> <table id="GUID-26626F66-7CE7-555D-9AC0-5E44A7F1C857">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><xref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita">HelloWorld</xref>  </p> </entry>
-<entry><p>Shows how to create a simple installation file for an application. </p> </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita">HelloWorld</xref>  </p> </entry>
-<entry><p>Shows how to create an installation file for a multilingual application. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-
-
-
-<section id="GUID-2B79AC46-4196-420D-89F5-60765B71E479"><title>System GUI
-Framework</title> <p><b>Look-and-Feel Agnostic UI Foundation</b> </p> <table id="GUID-5DFE048E-1B3F-51F8-9687-8EB439A0B477">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-
-<row>
-<entry><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita">ClockExample</xref>  </p> </entry>
-<entry><p>Shows how to create and display digital and analogue clocks. </p> </entry>
-</row>
-
-
-</tbody>
-</tgroup>
-</table> </section>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE" xml:lang="en"><title>Full Example Code List</title><shortdesc>This document lists the example code available for each
+module and collection in the platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following tables are grouped by module and collection. In each
+table, the left hand column gives a link to the overview for the example.
+The overviews describe the example's purpose, the APIs it demonstrates,
+how to build and run it, and they provide a link to download the example's
+source code. </p>
+<p>In most cases, the name in the left hand column is the example's
+mmp filename. If the example has more than one mmp file, the name
+of its directory is used. The right hand column gives a summary of
+the main purpose of the example. </p>
+<section id="GUID-232B69FE-BA35-4F73-9D02-8AA4AF56BF21"><title>Symbian
+Platform Fundamentals</title> <table id="GUID-E490B3BF-655E-54B4-9BBA-A611CDE71E84">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita">HelloWorld</xref>  </p> </entry>
+<entry><p>Most basic console application. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita">CClasses</xref>  </p> </entry>
+<entry><p>Shows a basic 'C' class and use of the cleanup stack. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita">TAndRClasses</xref>  </p> </entry>
+<entry><p>Shows a typical 'T' and 'R' class. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita">MClasses1-3</xref> </p> </entry>
+<entry><p>Shows the use of 'M' (abstract interface) classes. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita">StaticDLL</xref>  </p> </entry>
+<entry><p>Shows how a statically linked DLL is used. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-C63FEA4F-7990-4B27-8FC2-61E135D2B9F7"><title>Application
+Framework</title> <table id="GUID-DA03E4DB-2487-5830-8260-6E46A2352CC9">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+
+
+
+
+<row>
+<entry><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">BmpAnimGui</xref>  </p> </entry>
+<entry><p>Shows how to create an animation using the Bitmap Animation
+framework. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita">HelloWorld</xref>  </p> </entry>
+<entry><p>Shows how to create a simple GUI application with a single
+view. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+
+<section id="GUID-168B118B-60A7-4B3F-8B3C-E5A31C3BB4DD"><title>Communications
+Framework</title>   <p><b>Data Server</b> </p> <table id="GUID-D81EC559-A691-5CAE-B68A-186E9D5327B7">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita">Rconnection</xref>  </p> </entry>
+<entry><p>Shows how to use the RConnection API for connection monitoring
+and management. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+
+<section id="GUID-39EA7ED9-FFAE-49C9-9CA4-D5B9B88F4936"><title>Generic
+Application Support</title> <p><b>Common App Services</b> </p> <table id="GUID-2524D0A4-8C06-56C6-A85F-B817B01E7FBD">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">AlarmServerExample</xref>  </p> </entry>
+<entry><p>Shows the client API to the alarm server. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>   </section>
+<section id="GUID-24F27D44-502A-4E44-B1DC-DAD71E919DBB"><title>Generic
+OS Services</title> <p><b>Compression Libraries</b> </p> <table id="GUID-811B841F-02DA-5C33-B681-8E9E13E66566">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">EzlibExample</xref>  </p> </entry>
+<entry><p>Shows how to use the EZLIB API to do file extraction and
+compression. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Generic Open Libraries</b> </p> <table id="GUID-20DF4858-3D0D-53C8-8BD8-46E48CF7F4DF">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">FileAccessExample</xref>  </p> </entry>
+<entry><p>Shows accessing the file system using P.I.P.S. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-BE893F87-E7F6-56E5-BD27-328B532F8332.dita">HelloWorldExample</xref>  </p> </entry>
+<entry><p>Creates a simple P.I.P.S. DLL and EXE to demonstrate function
+lookup by name rather than by ordinal. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita">hybridapp</xref>  </p> </entry>
+<entry><p>Shows a P.I.P.S. 'hybrid' application that uses both C and
+native Symbian C++ APIs. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">IPC</xref>  </p> </entry>
+<entry><p>Shows inter-process communication in P.I.P.S. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">LibpThreadExample</xref>  </p> </entry>
+<entry><p>Shows simple multi-threading and synchronisation in P.I.P.S.
+using <filepath>libpthread.dll</filepath>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita">libmexample</xref>  </p> </entry>
+<entry><p>Shows the P.I.P.S. Standard C maths library, <filepath>libm.dll</filepath>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita">ConsoleApp</xref>  </p> </entry>
+<entry><p>Shows a simple console-based STDLIB (C Standard library)
+program that converts quantities from one unit of measurement into
+another. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita">GUIApp</xref>  </p> </entry>
+<entry><p>Shows a Techview GUI application whose engine is written
+using STDLIB. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita">Hello</xref>  </p> </entry>
+<entry><p>The simplest possible STDLIB example. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">posixsignals</xref></p></entry>
+<entry><p>Shows various signal use cases as supported in P.I.P.S. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Open C</b> </p> <table id="GUID-268FCC9C-5D4E-4154-BCD7-473FF53B015F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita">openclibz</xref>  </p> </entry>
+<entry><p>Shows file compression/decompression.  Huffman , filtered
+data compression, run length encoding, compress a string given by
+user </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita">handleglobalvar</xref> </p> </entry>
+<entry><p>How to handle global variables within the library code. </p><p>How to solve WSD (Writable Static Data) problem </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita">opencmessagequeuelibraryex</xref> </p> </entry>
+<entry><p>Send/receive messages using message queue, demonstrated
+using open C message queue library </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita">opencproducerconsumerex</xref> </p> </entry>
+<entry><p>Demonstrates solution for Producer/ Consumer Problem using
+Open C. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita">OpenCStringUtilitiesEx</xref> </p> </entry>
+<entry><p>Demonstrates string utility using open C libraries </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita">redirectprintf</xref> </p> </entry>
+<entry><p>how to redirect stdio to a file. libc library provides freopen
+API to redirect all standard IOs (namely, stderr, stdin, or stdout).
+ </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Generic Services</b> </p> <table id="GUID-7971259C-075D-5D0D-BD52-7ADF5B724CB7">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">exampleRecognizer</xref>  </p> </entry>
+<entry><p>Shows how to write a simple data recognizer. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita">TaskSchedulerExample</xref>  </p> </entry>
+<entry><p>Shows how to schedule and run tasks using the Task Scheduler
+API. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Low level Libraries and Frameworks</b> </p> <table id="GUID-8E40A60D-C8BE-5C7D-9415-8D8E25F2DD98">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita">Basics</xref>  </p> </entry>
+<entry><p>Shows how to store and restore objects using the clipboard
+API. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">InterfaceClient</xref>  </p> </entry>
+<entry><p>One of a set of three related ECom examples that provide
+an interface definition, a DLL that contains two implementations of
+that interface, and a client program that uses the interface. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita">InterfaceDefinition</xref>  </p> </entry>
+<entry><p>See InterfaceClient, above. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita">InterfaceImplementation</xref>  </p> </entry>
+<entry><p>See InterfaceClient, above. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita">ReadText</xref>  </p> </entry>
+<entry><p>Most basic resource file example, shows how to read a string
+resource and print it to the console. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita">ReadArray</xref>  </p> </entry>
+<entry><p>Shows how to load data from a resource file into an array. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita">MultiRead1</xref>  </p> </entry>
+<entry><p>Shows how to open a single resource file and read a resource
+from it into a descriptor. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita">MultiRead2</xref>  </p> </entry>
+<entry><p>Shows how to open and read from multiple resource files. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">ReadData</xref>  </p> </entry>
+<entry><p>Shows how to use a resource reader to read data of various
+types from a resource file into the data members of a class. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">EUser
+High Level Library</xref>  </p> </entry>
+<entry><p>Shows how to use EUser High Level library classes and APIs </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">SigCheck</xref>  </p> </entry>
+<entry><p>Shows how the signature of a resource file is checked before
+use. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>XML</b> </p> <table id="GUID-C96C15A1-43A5-54FD-A915-59E294BEBCD4">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita">XmlExample</xref>  </p> </entry>
+<entry><p>Shows how to use the <xref href="GUID-54A442BD-FCF1-31D3-BEF7-598C1820F473.dita"><apiname>Xml</apiname></xref> framework to
+parse XML and WBXML files. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-FE7F12C1-BC54-497F-8C56-47603FFF7E2B"><title>Graphics</title> <p><b>Font and Bitmap Server</b> </p> <table id="GUID-771EBF67-9F0D-51F0-ACBD-25065010D510">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">BitmapsShell</xref>  </p> </entry>
+<entry><p>Shows how to draw and manipulate bitmaps. </p> </entry>
+</row>
+<row>
+<entry><p>  <xref href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita">CoverflowApp</xref></p> </entry>
+<entry><p>Illustrates how the graphics architecture called ScreenPlay
+creates OpenVG content on a semi-transparent or transparent UI. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>      <p><b>General</b> </p> <table id="GUID-71B3C013-28C3-528A-93D7-2AB2D299FF4D">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita">GraphicsShell</xref>  </p> </entry>
+<entry><p>A TechView application that demonstrates drawing points,
+lines and shapes, and zooming a bitmap and text. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-17DB3D43-7E0D-4D82-92ED-74708A633349"><title>High
+Level Internet Protocols</title> <p><b>Application Layer Protocols</b> </p> <table id="GUID-5B118134-BB1C-505C-929C-EAF014205AEF">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita">httpexampleclient</xref>  </p> </entry>
+<entry><p>A console application that provides a menu-driven interface
+to demonstrate the HTTP API. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>IMS and Streaming</b> </p> <table id="GUID-AF7CEA78-D5CD-5290-859E-44FADE28E529">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita">RTPExample</xref>  </p> </entry>
+<entry><p>Shows RTP packet streaming. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-0EC84F5C-D843-4819-8962-EE17367E63F4"><title>Kernel
+and Hardware Services</title> <p> </p>  <p><b>User Library</b> </p> <table id="GUID-7C3C9842-5B1F-58C7-8FE3-61210C6BFBE5">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">AdvancedClientServerExample</xref>  </p> </entry>
+<entry><p>Shows the use of asynchronous and synchronous client/server
+APIs using a logical device driver (LDD) and a physical device driver
+(PDD). </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest</xref>  </p> </entry>
+<entry><p>Shows the basic principles of asynchronous programming by
+issuing and waiting for completion of a single request. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref>  </p> </entry>
+<entry><p>Shows how a wait loop can be used to identify and handle
+a completed request. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop</xref>  </p> </entry>
+<entry><p>Shows how the wait loop can deal with multiple asynchronous
+service providers. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463">RunComplete</xref>  </p> </entry>
+<entry><p>Shows how active objects and an active scheduler can be
+used to handle asynchronous events, using a timer. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6">AcceptInput1-2</xref>  </p> </entry>
+<entry><p>Shows how active objects and an active scheduler can be
+used to handle asynchronous events, using keyboard input. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5">AcceptPrintInput</xref>  </p> </entry>
+<entry><p>Shows how active objects and an active scheduler can be
+used to handle accept and print keyboard inputs to a console. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E">Fibonacci1-3</xref>  </p> </entry>
+<entry><p>Shows how active objects and an active scheduler can be
+used to handle asynchronous events and long-running services to maintain
+system responsiveness. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">circularbuffer</xref>  </p> </entry>
+<entry><p>Shows how to construct and use circular buffers holding
+different types of objects. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-BFDD4BF0-E60A-5996-B83D-4DE3EACA93FD">Simple</xref>  </p> </entry>
+<entry><p>Shows a simple client that has a single session with a server. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-544EE3A6-86A2-57FF-A13B-94658F1DCA16">Complex</xref>  </p> </entry>
+<entry><p>More complex client/server example, where the server supports
+multiple subsessions within a session. </p> </entry>
+</row>
+
+<row>
+<entry><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5">condvarglobal</xref>  </p> </entry>
+<entry><p>Shows the use of the global condition variable IPC mechanism. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943">condvarlocal</xref>  </p> </entry>
+<entry><p>Shows the use of the local condition variable IPC mechanism. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita">Basics</xref>  </p> </entry>
+<entry><p>Shows date and time handling. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-90645A43-313B-55FC-91D0-547C237B680B">BinaryData</xref>  </p> </entry>
+<entry><p>Shows how descriptors can handle general binary data by
+explicitly using the 8 bit descriptor class variants. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-FC2B9B70-F849-5F19-9F3C-25D5FDCC576D">Buffer</xref>  </p> </entry>
+<entry><p>Shows the basic idea of buffer descriptors and how they
+are used. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5040249B-55ED-5ACD-837B-6B0FD4AF24FE">InFunct</xref>  </p> </entry>
+<entry><p>Shows how to use descriptors as function arguments. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-CE601E1E-AF03-56E8-B7FB-0CDFF4EA4386">HeapBuffer</xref>  </p> </entry>
+<entry><p>Shows how to create and use the heap buffer descriptor <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-C79042EB-4ACF-5972-9F57-E7C0F37DECF6">Modifier</xref>  </p> </entry>
+<entry><p>Shows how to use the modifiable descriptor class <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-927CFF04-C0D1-5BDE-B221-4245113924F7">NonModifier</xref> </p> </entry>
+<entry><p>Shows how to use the non-modifiable descriptor class <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5AEFA6EB-A100-5B96-935D-2537EEFB56F5">Pointer</xref>  </p> </entry>
+<entry><p>Shows how to use pointer descriptors. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-1636C0BB-9B23-5C47-8F26-CF080DBE64EB">WriteToFile</xref>  </p> </entry>
+<entry><p>Basic example that shows how to write text to a file. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">DynamicArrays</xref>  </p> </entry>
+<entry><p>Shows how to construct and use dynamic arrays. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">DynamicBuffers</xref>  </p> </entry>
+<entry><p>Shows how to use the flat and segmented buffer classes. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-960B2F4E-9012-53EE-973A-C3426A7DD48F.dita">DLLs</xref> </p> </entry>
+<entry><p>Implements two polymorphic DLLs and shows how to load and
+use them. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita">RangeChecking</xref>  </p> </entry>
+<entry><p>Shows how to use the range checking wrapper class for C++
+arrays (<xref href="GUID-1EC847DC-6858-3BEE-A5B2-F7737F1D50AD.dita"><apiname>TFixedArray</apiname></xref>). </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7068AB77-5C96-59A3-B975-7923FD843832.dita">hashtableexample</xref>  </p> </entry>
+<entry><p>Shows how to use the hash table APIs. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita">Lexer</xref>  </p> </entry>
+<entry><p>Shows how to use the lexical analyser, <xref href="GUID-C94AB4F0-AE42-3957-A037-77CB145DDBF8.dita"><apiname>TLex</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita">linkedlist</xref>  </p> </entry>
+<entry><p>Shows how to use singly and doubly linked lists and the
+delta queue class. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita">Currency</xref>  </p> </entry>
+<entry><p>Shows locale-specific representation of currency values
+and symbols. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita">localeupdate</xref>  </p> </entry>
+<entry><p>Shows how to load a locale DLL and read settings from it. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-9CAE0C86-537A-500F-B361-D555DD39954B">ErrorOnFail</xref> </p> </entry>
+<entry><p>Shows use of the <codeph>TRAPD</codeph> macro, the cleanup
+stack and the process of leaving. Returns an error code on failure. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-E80C29CC-0282-5350-8077-BB298B7590C0">LeaveOnFail</xref> </p> </entry>
+<entry><p>As the <codeph>ErrorOnFail</codeph> example except it leaves
+on failure. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-279FBD9A-0E61-50ED-9618-BAB24AC3163C">ELeaveOnFail</xref>  </p></entry>
+<entry><p>As the <codeph>LeaveOnFail</codeph> example except it calls <codeph>new (ELeave)</codeph> rather than <codeph>new</codeph>. </p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C7E94BD9-9B77-548C-A3C2-D5A396F20EF0">TrapD</xref>  </p> </entry>
+<entry><p>Shows the use of the <codeph>TRAPD</codeph> macro. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-12F30817-5CE0-5B6E-A850-7179BE915539">PushLAndPop</xref> </p> </entry>
+<entry><p>Shows the use of the cleanup stack and its functions <codeph>PushL()</codeph> and <codeph>Pop()</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-548F79C2-3394-5D86-8E70-B219E49288C7">PushLPopDest</xref>  </p> </entry>
+<entry><p>Shows the use of the cleanup stack and its functions <codeph>PushL()</codeph> and <codeph>PopAndDestroy()</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-5975C52F-726D-5DB1-8CE4-7F52DC202B43">NewL</xref>  </p> </entry>
+<entry><p>Shows use of the <codeph>NewL()</codeph> static function. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-53F042FC-401F-5AD7-8F60-ECD15EB1069F">NewLC</xref>  </p> </entry>
+<entry><p>Shows use of the <codeph>NewLC()</codeph> static function. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-4559C2AC-0DA8-5788-A33C-2E20EFEF6D58">SimpleOOM</xref>  </p> </entry>
+<entry><p>Shows cleanup handling for compound classes. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-2E3E6224-BE1C-5DA1-BEA0-D28CD7DA40E8">MemLeakOOM</xref>  </p> </entry>
+<entry><p>Shows cleanup handling for compound classes, and avoiding
+memory leaks. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-068C17E6-0E3C-571B-92D1-421EEF42E6A0">TwoPhaseOOM</xref>  </p> </entry>
+<entry><p>Shows the two phase construction technique. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-D0A1DF34-2499-5F7E-80D1-0BFF74882EA6">TAnyRObjects1</xref>  </p> </entry>
+<entry><p>Shows how cleanup can be implemented for <codeph>TAny*</codeph> type objects and 'R' type (resource type) objects. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C42BF40F-94C4-5845-B449-164AD4578691">TAnyRObjects2</xref>  </p> </entry>
+<entry><p>As <codeph>TAnyRObjects1</codeph> except it calls <codeph>OpenLC()</codeph> to open the file and push it onto the cleanup stack
+in one function call. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita#GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1/GUID-C4F81443-E41D-52C6-9305-A1B7E45A1DC5">Utilities</xref>  </p> </entry>
+<entry><p>Shows how to use the cleanup functions <codeph>CleanupDeletePushL()</codeph>, <codeph>CleanupClosePushL()</codeph> and <codeph>CleanupReleasePushL()</codeph>, and <codeph>CleanupArrayDeletePushL()</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">MessageQueueExample</xref>  </p> </entry>
+<entry><p>Shows the use of the message queue in interprocess communication. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita">pubsub</xref>  </p> </entry>
+<entry><p>Shows the Publish and Subscribe IPC mechanism. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">rbufexample</xref>  </p> </entry>
+<entry><p>Shows how to use the resizable buffer descriptor class <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita">SecureServer</xref>  </p> </entry>
+<entry><p>Shows how to use the policy server framework. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita">tcharexample</xref>  </p> </entry>
+<entry><p>Shows how to use the single character class, <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita"><apiname>TChar</apiname></xref>, and its derived classes. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita">TLS1</xref> </p> </entry>
+<entry><p>Shows the use of thread local storage (TLS) in a DLL, that
+is set and accessed from a separate executable. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita">ThreadRendezvous</xref>  </p> </entry>
+<entry><p>Shows the principle of synchronisation using the thread
+rendezvous technique. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita#GUID-086939FA-D381-5705-BEE6-6DF2D3624849/GUID-3205DDD3-D057-56BF-8F64-CF1AFF52619B">BasicTimer</xref>  </p> </entry>
+<entry><p>Shows the asynchronous timer class <xref href="GUID-8A423EA2-4264-30C9-9579-0466994E6E88.dita"><apiname>RTimer</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita#GUID-086939FA-D381-5705-BEE6-6DF2D3624849/GUID-0554FACD-5075-5C8D-8634-F60D31D1EDB7">Periodic</xref>  </p> </entry>
+<entry><p>Shows the differences between a periodic and a heartbeat
+timer. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">resourcemanager</xref>  </p> </entry>
+<entry><p>Shows how to use the Power Resource Manager framework. </p> </entry>
+</row>
+
+<row>
+<entry><p><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">SemaphoreExample</xref></p></entry>
+<entry><p>Shows how to use semaphores for a multithreading application.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-34060D5F-86E7-48CA-B26B-550B45678232"><title>Messaging
+Middleware</title> <table id="GUID-1DA226AB-62D4-5957-AB83-131545DC9316">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">TextMTM</xref>  </p> </entry>
+<entry><p>Several example projects that show how to use the Messaging
+APIs. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample</xref>  </p> </entry>
+<entry><p>Shows how to use the enhanced search and sort API for message
+stores. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">BIOMessageMgr</xref>  </p> </entry>
+<entry><p>Shows BIO messaging and parsing the BIO message. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">SendAs2Example</xref>  </p> </entry>
+<entry><p>Shows how to use the SendAs v2 protocol for sending messages. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-BDABE08F-ACC4-4949-A07A-3D99B2DC29EB"><title>Messaging
+Applications</title> <table id="GUID-B29214E5-2861-5638-BF15-FB301E67E487">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">smsexample</xref>  </p> </entry>
+<entry><p>Shows how to send and receive SMS messages using the Messaging
+Framework APIs. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita">Imap4Pop3Example</xref>  </p> </entry>
+<entry><p>Shows how to create SMTP (Simple Mail Transfer Protocol)
+and POP (Post Office Protocol) accounts to send and receive emails. </p><p>Shows how to create SMTP and IMAP (Internet Message Access Protocol)
+accounts to send and receive emails. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-22A35A82-E063-46A7-A0A7-6394759E4D8E"><title>Multimedia</title> <p><b>Multimedia APIs and Frameworks</b> </p> <table id="GUID-1C3366A7-3443-55AC-BF5C-CDBC6E8024FC">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E.dita">ICLCodec</xref>  </p> </entry>
+<entry><p>Shows how to implement encoder and decoder plug-ins for
+the Image Converter Library. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita">ImageConverter</xref> </p> </entry>
+<entry><p>Shows how to convert between standard graphics formats to
+and from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> s, and how to rotate, flip,
+and zoom images. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">CameraExample</xref>  </p> </entry>
+<entry><p>Shows how to use the Camera API to capture and control images. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-0F7A7186-770F-40FC-A982-01D951F1CD61"><title>Multimedia
+Middleware</title> <p><b>Multimedia Middleware Frameworks</b> </p> <table id="GUID-19C93D72-DEA0-502B-8DA7-296B8E232DA4">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">AudioClientEx</xref>  </p> </entry>
+<entry><p>Shows how to use the Multimedia Framework's client audio
+interfaces to play and record audio. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita">MmfExCodec</xref>  </p> </entry>
+<entry><p>Shows how to implement a codec plug-in for the Multimedia
+Framework to convert media data. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita">MmfRAWFormat</xref>  </p> </entry>
+<entry><p>Shows how to implement format encoder and decoder plug-ins
+for the Multimedia Framework. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9.dita">MmfExSinkSource</xref>  </p> </entry>
+<entry><p>Shows how to implement sink and source plug-ins for the
+Multimedia Framework. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-30964647-9D8B-46BD-A9EE-62573804664E"><title>Networking
+Services</title> <p><b>Network Protocols</b> </p> <table id="GUID-734073D2-E396-580B-9607-110A8291A1DE">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-5546C1F6-2110-5031-99BC-66E6958D513B.dita">EchoClientEngine</xref>  </p> </entry>
+<entry><p>The engine for the TCP/IP echo client example. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">EchoClientUI</xref>  </p> </entry>
+<entry><p>The user interface for the TCP/IP echo client example. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Network Security</b> </p> <table id="GUID-04E16EE8-64E0-596C-B489-7A5B8B4B1EE3">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-F3913401-83F6-5A12-BCA8-ABA232C2BF3D.dita">SecureSockets</xref>  </p> </entry>
+<entry><p>Shows how to create and use a secure sockets (SSL/TLS) connection. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-66B052D5-ACB3-4F1B-95AF-7DF26B5AB321"><title>PC
+Tools </title> <p><b>Secure Software Install Tools</b> </p> <table id="GUID-26626F66-7CE7-555D-9AC0-5E44A7F1C857">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita">HelloWorld</xref>  </p> </entry>
+<entry><p>Shows how to create a simple installation file for an application. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita">HelloWorld</xref>  </p> </entry>
+<entry><p>Shows how to create an installation file for a multilingual
+application. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-4BB6F68C-C3E4-4A70-9A89-833DBD2D1818"><title>Persistent
+Data Services</title> <p><b>Persistent Storage</b> </p> <table id="GUID-DC0B3E6C-22D1-5013-918A-BCA98E4A567D">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita">Basics</xref>  </p> </entry>
+<entry><p>Shows how to create and use a database using DBMS. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita">SqlExample</xref>  </p> </entry>
+<entry><p>Shows how to use the SQL API to create and query an SQL
+database. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-AA5DEEB2-0B13-5FA8-8494-EC2F5C654FEF.dita">CentRepExample</xref>  </p> </entry>
+<entry><p>Shows how to use the central repository to store settings
+and request notification of changes. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-8C6125A5-AB9A-5D5D-BED6-7EE040400CA4">WriteDirectFS</xref>  </p> </entry>
+<entry><p>Shows how to persist objects using a direct file store and
+a root stream. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-BB30B109-E407-5253-841F-5BBBA4079A06">WritePermFS1</xref>  </p> </entry>
+<entry><p>Shows how to write a network of objects to a permanent file
+store then read them back in again. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-394D948C-13AB-505F-97E8-5AB3DCAEED45">WritePermFS2</xref>  </p> </entry>
+<entry><p>Shows how to create and use a permanent file store. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita">StreamInStore</xref>  </p> </entry>
+<entry><p>Shows how to externalize objects to a single stream in a
+non-persistent store. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-CFC06048-6EAF-563E-A7BC-7CB4C99AA4C7">WriteToMany</xref> </p> </entry>
+<entry><p>Shows how to write a network of objects to more than one
+stream in a direct file store, and to defer the loading of an object
+from the store into memory. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-8E522D0B-C74C-5B14-9483-827DC79DEF46">WriteToEmbedded</xref>  </p> </entry>
+<entry><p>Shows how an object is externalized to a store embedded
+within a permanent file store. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-4C25485D-7FE0-5699-86E7-F92BEE6BFADA">StoreMap</xref>  </p> </entry>
+<entry><p>Shows how to stream a compound object to multiple streams
+using a store map. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita#GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8/GUID-CAA3834A-2781-5259-A0BC-4D40F39595E4">SimpleClass</xref>  </p> </entry>
+<entry><p>Shows streaming a simple class to and from a single stream. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita#GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8/GUID-F831D318-2C97-571A-B2DB-26172B22288E">CompoundClass</xref>  </p> </entry>
+<entry><p>Shows streaming a compound class to and from a single stream </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita">FeatMngrExample</xref>  </p> </entry>
+<entry><p>Shows the use of Feature Manager APIs for dynamic management
+of features. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-2D3105B6-352E-4EC9-822F-C2F8FE6F3D49"><title>PIM</title> <p><b>PIM Application Services</b> </p> <table id="GUID-C396467A-89BF-5B3D-9328-8F62AA83B2B8">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-F8E4D4AC-878A-52C5-A04D-9E116A0087D5.dita">CalExample</xref>  </p> </entry>
+<entry><p>Shows how to create and use a calendar file. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-A0C0BEBA-1976-5D68-B4EF-C3727DF163A9.dita">ContactViews</xref>  </p> </entry>
+<entry><p>Shows how to use various contact view classes to create
+a view of a contact database. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>PIM Application Support</b> </p> <table id="GUID-2974517A-E214-5A3A-8AFF-6B387447816F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita">CalconExample</xref> </p> </entry>
+<entry><p>Shows how to convert between Gregorian and Chinese dates. </p> </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita">VersitExample</xref>  </p> </entry>
+<entry><p>Shows how to import and export vCards. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+
+<section id="GUID-2B79AC46-4196-420D-89F5-60765B71E479"><title>System
+GUI Framework</title> <p><b>Look-and-Feel Agnostic UI Foundation</b> </p> <table id="GUID-5DFE048E-1B3F-51F8-9687-8EB439A0B477">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+
+<row>
+<entry><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita">ClockExample</xref>  </p> </entry>
+<entry><p>Shows how to create and display digital and analogue clocks. </p> </entry>
+</row>
+
+
+</tbody>
+</tgroup>
+</table> </section>
+
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-27340D18-A31D-512E-920A-B06C784A978A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-27340D18-A31D-512E-920A-B06C784A978A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,188 +1,188 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-27340D18-A31D-512E-920A-B06C784A978A" xml:lang="en"><title>String
-Pools </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Many systems, components and applications deal with pre-defined, well known
-string constants. For example, parsing and manipulating text containing structure
-mostly requires comparisons against standard string constants. </p>
-<p>In a complex system, composed of a large number of objects, there may also
-be a need to pass strings between objects, and to route processing depending
-on the value of some string. The implementation of the HTTP transport framework
-and the XML framework are examples within the Symbian platform where such
-intense string handling is required. </p>
-<p>To improve efficiency, the Symbian platform uses the idea of the string
-pool. </p>
-<p>A string pool is referenced through an <xref href="GUID-4BF6ECD3-5FB3-3A6A-B9CE-98871BD0812B.dita"><apiname>RStringPool</apiname></xref>,
-which is a handle like object. The following diagram illustrates the basic
-idea: </p>
-<fig id="GUID-756DB8BA-1D6F-56AE-9C93-66DD3512B4A7">
-<title>           String pool representation          </title>
-<image href="GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e183943_href.png" placement="inline"/>
-</fig>
-<p>A string pool is a mechanism for storing strings in a particular way that
-makes the comparison of strings a very fast operation. It is particularly
-efficient at handling strings that can be set up at program compile time.
-For example, strings that identify lexical elements in a structured text.
-Typically, they are well known strings that are likely to be used very often
-in a given context. </p>
-<p>Such strings are organised into tables, and each string within a table
-can be referenced by an index value, which can be symbolised by an enum. Such
-tables are referred to as <b>static string tables</b> (See <xref href="GUID-27340D18-A31D-512E-920A-B06C784A978A.dita#GUID-27340D18-A31D-512E-920A-B06C784A978A/GUID-8221E235-15F9-55E9-8C17-4015051F70CD">Static string tables</xref>). The basic algorithm used internally ensures
-that the pool contains only one string of any particular value, and uses a
-reference counting mechanism to keep track of usage. </p>
-<p>The advantages of representing string constants in such a way are: </p>
-<ul>
-<li id="GUID-DE544092-1FA8-5537-8357-62510F42D2EA"><p>avoiding a proliferation
-of duplicate strings throughout a component or an application; typically there
-is one string pool per thread, and one copy of a string </p> </li>
-<li id="GUID-55E5FD27-5E2B-51D6-91AA-435AE1A4421C"><p>allowing string constants
-to be represented by integer values </p> </li>
-<li id="GUID-3C5CA539-11E1-53EB-8A1F-69AEF0D9C1F0"><p>allowing strings to
-be passed between objects by passing integer values, wrapped in a class (any
-one of the <xref href="GUID-C117EB69-0B1E-3D16-88E1-B44349C716DE.dita"><apiname>String</apiname></xref> and <xref href="GUID-B886F0AA-DB9C-356C-9B96-33252820F93E.dita"><apiname>RStringF</apiname></xref> classes) </p> </li>
-<li id="GUID-559BCA58-B426-5919-A948-DC15ED501397"><p>allowing strings to
-be compared by comparing the integer values. </p> </li>
-</ul>
-<p>Internally, a string pool uses hash tables to reference strings. </p>
-<p>Static string tables and string constants can be added dynamically to the
-string pool, for example, at run time. However, there is always a performance
-penalty while adding either a static or a dynamic string to the string pool
-as the hash tables need to be updated. This means that it is better to add
-static string tables at string pool initialisation time, as this is the best
-time to absorb the overhead. </p>
-<section id="GUID-B2F3D713-6BCA-4A47-99E4-EC4886F857EA"><title>Key features of string pool</title> <ul>
-<li id="GUID-39F73513-7F37-57DA-AF7A-D3A7B2B28A76"><p>The string pool as supplied
-by the Symbian platform supports any strings that can be represented
-by a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref> descriptor; this includes ASCII or UTF-8 encoded
-strings. Note that a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref> type can represent any type
-of data , including binary data, and means that a string pool can easily handle
-the extended characters of another encoding. </p> </li>
-<li id="GUID-8F9BA578-B6B5-54FD-8C29-8C2996AED4D0"><p>Within the string pool,
-strings are of two types - case sensitive and case insensitive. This affects
-the way strings are compared. Case insensitivity implies that strings are
-folded for the purpose of comparison. </p> </li>
-<li id="GUID-D958763A-70F8-5452-A556-99F92B2B0246"><p>A string pool can contain
-up to 4,096 static string tables, and each table can represent up 26,2144
-strings. </p> </li>
-</ul> </section>
-<section id="GUID-8221E235-15F9-55E9-8C17-4015051F70CD"><title>Static string
-tables</title> <p>Static string tables are defined and built at compile time.
-They are represented by a <xref href="GUID-91322CD6-6DA0-3868-A5D7-CA561A102074.dita"><apiname>TStringTable</apiname></xref> object. A string
-table can be added to the string pool by passing the string table reference
-to a call to: </p> <codeblock id="GUID-2FAB371D-74A4-5D7E-99F1-B7C02BEDA8D5" xml:space="preserve">void RStringTable::OpenL( const TStringTable&amp; aTable );</codeblock> <p>The following diagram illustrates a general picture. Note that the strings
-in any given string table are deemed to be either case sensitive or case insensitive,
-and this governs how comparisons are made. </p> <fig id="GUID-D7CEA86C-0643-5BDA-A60E-D80B97008BF2">
-<image href="GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e184050_href.png" placement="inline"/>
-</fig> <p>As the name implies, a static string table is declared as a <codeph>const
-          TStringTable</codeph> data member of a class with a user-defined
-name. The class name is defined in a header file while the table itself is
-implemented in a <codeph>.cpp</codeph> C++ source file. Both the header file
-and the C++ source file are normally included in the project definition. Typically,
-a set of enum values are also defined within the scope of the class, and each
-value is associated with the strings in the table; code in other parts of
-the program access the strings in the string pool using these enum values. </p> <p>The
-Perl script, <codeph>stringtable.pl</codeph>, located in <filepath>...\syslibs\bafl\stringtools\</filepath>,
-can be used to generate these <codeph>.cpp</codeph> and <codeph>.h</codeph> files
-from a simple text definition. The text definition file simply lists the strings
-and the enum symbols to be associated with them; the file itself is given
-a <codeph>.st</codeph> file type. </p> <p>Following is a simple example of <codeph>ExampleStringTable.st</codeph> file: </p> <codeblock id="GUID-5D487C02-D710-55E6-BD8D-769BE4C4E754" xml:space="preserve"># Example String Table
-fstringtable ExampleStringTable
-!// Some types of fruit
-# This comment won't appear in the .h file, but the one above will.
-EApple apple
-EOrange orange
-EBanana banana
-# Some animals
-ECat cat
-EDog dog
-</codeblock> <p>The main points to note are: </p> <ul>
-<li id="GUID-8FCB19B1-7033-5120-98DD-08EECA91C65B"><p>the keyword <i>fstringtable</i> is
-used to define the name of the class that contains the string table declaration
-and the enum value symbols. The class name itself follows the keyword. For
-example, <codeph>ExampleStringTable</codeph>. </p> <p>Note that you can include
-underscore characters in the class name. For example, <codeph>Example_StringTable</codeph>. </p> </li>
-<li id="GUID-0E714FA5-859E-597F-9B33-2F0DC3372FCD"><p>the symbols <codeph>EApple</codeph> and <codeph>EOrange</codeph> form
-the enum value symbols that correspond to the strings <codeph>apple</codeph> and <codeph>orange</codeph> respectively. </p> </li>
-<li id="GUID-F9F62AD7-5209-5D01-9F60-413C7E161689"><p>all statements starting
-with a <b>#</b> are comments and are completely ignored. However <b>#</b> characters
-can appear in a string. For example <codeph>ap#ple</codeph> is a valid string
-and is not interpreted as a comment. </p> </li>
-<li id="GUID-F70C2B1A-2029-5B1A-A27D-A65A123A6CA9"><p>all statements starting
-with a <b>!</b> are comments that are inserted into the generated header file. </p> </li>
-</ul> <p>Running the Perl script with <codeph>ExampleStringTable.st</codeph> as
-source generates the header file <codeph>ExampleStringTable.h</codeph> and
-the C++ source file <codeph>ExampleStringTable.cpp</codeph> as illustrated
-below: </p> <codeblock id="GUID-7E0263D1-D4A5-5B0A-B355-C2D958247590" xml:space="preserve">// Autogenerated from epoc32\build\generated\example\ExampleStringTable.st by the stringtable tool - Do not edit
-
-#ifndef STRINGTABLE_ExampleStringTable
-#define STRINGTABLE_ExampleStringTable
-
-#include "StringPool.h"
-
-struct TStringTable;
-
-/** A String table */
-class ExampleStringTable 
-       {
-    public:
-           enum TStrings
-              {
-              // Some types of fruit
-              /** apple */
-              EApple,
-              /** orange */
-              EOrange,
-              /** banana */
-              EBanana,
-              /** cat */
-              ECat,
-              /** dog */
-              EDog
-              };
-       static const TStringTable Table;    
-       };
-
-#endif // STRINGTABLE_ExampleStringTable
-</codeblock> <codeblock id="GUID-6447B06C-00EB-527C-8381-7239F2220D61" xml:space="preserve">// Autogenerated from epoc32\build\generated\example\ExampleStringTable.st by the stringtable tool - Do not edit
-#include &lt;e32std.h&gt;
-#include "StringPool.h"
-#include "StringTableSupport.h"
-#include "ExampleStringTable.h"
-#ifdef _DEBUG
-#undef _DEBUG
-#endif
-
-_STLIT8( K1, "apple" );
-_STLIT8( K2, "orange" );
-_STLIT8( K3, "banana" );
-_STLIT8( K4, "cat" );
-_STLIT8( K5, "dog" );
-
-// Intermediate
-const void * const KStringPointers[] =
-       {
-       ( const void* )&amp;K1,
-       ( const void* )&amp;K2,
-       ( const void* )&amp;K3,
-       ( const void* )&amp;K4,
-       ( const void* )&amp;K5
-       };
-
-const TStringTable ExampleStringTable::Table = {5, KStringPointers, EFalse};
-</codeblock> <p>The table itself is the static data member <codeph>Table</codeph> of
-class <codeph>ExampleStringTable</codeph>. </p> </section>
-</conbody><related-links>
-<link href="GUID-24D509E8-CF46-58D3-85E9-27DA7AB22012.dita"><linktext>Constructing
-a Static                 String Table</linktext></link>
-<link href="GUID-2B6D7221-A23E-562E-9D9C-5EC197F1CB78.dita"><linktext>Using string
-pools</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-27340D18-A31D-512E-920A-B06C784A978A" xml:lang="en"><title>String
+Pools </title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Many systems, components and applications deal with pre-defined, well known
+string constants. For example, parsing and manipulating text containing structure
+mostly requires comparisons against standard string constants. </p>
+<p>In a complex system, composed of a large number of objects, there may also
+be a need to pass strings between objects, and to route processing depending
+on the value of some string. The implementation of the HTTP transport framework
+and the XML framework are examples within the Symbian platform where such
+intense string handling is required. </p>
+<p>To improve efficiency, the Symbian platform uses the idea of the string
+pool. </p>
+<p>A string pool is referenced through an <xref href="GUID-4BF6ECD3-5FB3-3A6A-B9CE-98871BD0812B.dita"><apiname>RStringPool</apiname></xref>,
+which is a handle like object. The following diagram illustrates the basic
+idea: </p>
+<fig id="GUID-756DB8BA-1D6F-56AE-9C93-66DD3512B4A7">
+<title>           String pool representation          </title>
+<image href="GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e177349_href.png" placement="inline"/>
+</fig>
+<p>A string pool is a mechanism for storing strings in a particular way that
+makes the comparison of strings a very fast operation. It is particularly
+efficient at handling strings that can be set up at program compile time.
+For example, strings that identify lexical elements in a structured text.
+Typically, they are well known strings that are likely to be used very often
+in a given context. </p>
+<p>Such strings are organised into tables, and each string within a table
+can be referenced by an index value, which can be symbolised by an enum. Such
+tables are referred to as <b>static string tables</b> (See <xref href="GUID-27340D18-A31D-512E-920A-B06C784A978A.dita#GUID-27340D18-A31D-512E-920A-B06C784A978A/GUID-8221E235-15F9-55E9-8C17-4015051F70CD">Static string tables</xref>). The basic algorithm used internally ensures
+that the pool contains only one string of any particular value, and uses a
+reference counting mechanism to keep track of usage. </p>
+<p>The advantages of representing string constants in such a way are: </p>
+<ul>
+<li id="GUID-DE544092-1FA8-5537-8357-62510F42D2EA"><p>avoiding a proliferation
+of duplicate strings throughout a component or an application; typically there
+is one string pool per thread, and one copy of a string </p> </li>
+<li id="GUID-55E5FD27-5E2B-51D6-91AA-435AE1A4421C"><p>allowing string constants
+to be represented by integer values </p> </li>
+<li id="GUID-3C5CA539-11E1-53EB-8A1F-69AEF0D9C1F0"><p>allowing strings to
+be passed between objects by passing integer values, wrapped in a class (any
+one of the <xref href="GUID-C117EB69-0B1E-3D16-88E1-B44349C716DE.dita"><apiname>String</apiname></xref> and <xref href="GUID-B886F0AA-DB9C-356C-9B96-33252820F93E.dita"><apiname>RStringF</apiname></xref> classes) </p> </li>
+<li id="GUID-559BCA58-B426-5919-A948-DC15ED501397"><p>allowing strings to
+be compared by comparing the integer values. </p> </li>
+</ul>
+<p>Internally, a string pool uses hash tables to reference strings. </p>
+<p>Static string tables and string constants can be added dynamically to the
+string pool, for example, at run time. However, there is always a performance
+penalty while adding either a static or a dynamic string to the string pool
+as the hash tables need to be updated. This means that it is better to add
+static string tables at string pool initialisation time, as this is the best
+time to absorb the overhead. </p>
+<section id="GUID-B2F3D713-6BCA-4A47-99E4-EC4886F857EA"><title>Key features of string pool</title> <ul>
+<li id="GUID-39F73513-7F37-57DA-AF7A-D3A7B2B28A76"><p>The string pool as supplied
+by the Symbian platform supports any strings that can be represented
+by a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref> descriptor; this includes ASCII or UTF-8 encoded
+strings. Note that a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref> type can represent any type
+of data , including binary data, and means that a string pool can easily handle
+the extended characters of another encoding. </p> </li>
+<li id="GUID-8F9BA578-B6B5-54FD-8C29-8C2996AED4D0"><p>Within the string pool,
+strings are of two types - case sensitive and case insensitive. This affects
+the way strings are compared. Case insensitivity implies that strings are
+folded for the purpose of comparison. </p> </li>
+<li id="GUID-D958763A-70F8-5452-A556-99F92B2B0246"><p>A string pool can contain
+up to 4,096 static string tables, and each table can represent up 26,2144
+strings. </p> </li>
+</ul> </section>
+<section id="GUID-8221E235-15F9-55E9-8C17-4015051F70CD"><title>Static string
+tables</title> <p>Static string tables are defined and built at compile time.
+They are represented by a <xref href="GUID-91322CD6-6DA0-3868-A5D7-CA561A102074.dita"><apiname>TStringTable</apiname></xref> object. A string
+table can be added to the string pool by passing the string table reference
+to a call to: </p> <codeblock id="GUID-2FAB371D-74A4-5D7E-99F1-B7C02BEDA8D5" xml:space="preserve">void RStringTable::OpenL( const TStringTable&amp; aTable );</codeblock> <p>The following diagram illustrates a general picture. Note that the strings
+in any given string table are deemed to be either case sensitive or case insensitive,
+and this governs how comparisons are made. </p> <fig id="GUID-D7CEA86C-0643-5BDA-A60E-D80B97008BF2">
+<image href="GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e177456_href.png" placement="inline"/>
+</fig> <p>As the name implies, a static string table is declared as a <codeph>const
+          TStringTable</codeph> data member of a class with a user-defined
+name. The class name is defined in a header file while the table itself is
+implemented in a <codeph>.cpp</codeph> C++ source file. Both the header file
+and the C++ source file are normally included in the project definition. Typically,
+a set of enum values are also defined within the scope of the class, and each
+value is associated with the strings in the table; code in other parts of
+the program access the strings in the string pool using these enum values. </p> <p>The
+Perl script, <codeph>stringtable.pl</codeph>, located in <filepath>...\syslibs\bafl\stringtools\</filepath>,
+can be used to generate these <codeph>.cpp</codeph> and <codeph>.h</codeph> files
+from a simple text definition. The text definition file simply lists the strings
+and the enum symbols to be associated with them; the file itself is given
+a <codeph>.st</codeph> file type. </p> <p>Following is a simple example of <codeph>ExampleStringTable.st</codeph> file: </p> <codeblock id="GUID-5D487C02-D710-55E6-BD8D-769BE4C4E754" xml:space="preserve"># Example String Table
+fstringtable ExampleStringTable
+!// Some types of fruit
+# This comment won't appear in the .h file, but the one above will.
+EApple apple
+EOrange orange
+EBanana banana
+# Some animals
+ECat cat
+EDog dog
+</codeblock> <p>The main points to note are: </p> <ul>
+<li id="GUID-8FCB19B1-7033-5120-98DD-08EECA91C65B"><p>the keyword <i>fstringtable</i> is
+used to define the name of the class that contains the string table declaration
+and the enum value symbols. The class name itself follows the keyword. For
+example, <codeph>ExampleStringTable</codeph>. </p> <p>Note that you can include
+underscore characters in the class name. For example, <codeph>Example_StringTable</codeph>. </p> </li>
+<li id="GUID-0E714FA5-859E-597F-9B33-2F0DC3372FCD"><p>the symbols <codeph>EApple</codeph> and <codeph>EOrange</codeph> form
+the enum value symbols that correspond to the strings <codeph>apple</codeph> and <codeph>orange</codeph> respectively. </p> </li>
+<li id="GUID-F9F62AD7-5209-5D01-9F60-413C7E161689"><p>all statements starting
+with a <b>#</b> are comments and are completely ignored. However <b>#</b> characters
+can appear in a string. For example <codeph>ap#ple</codeph> is a valid string
+and is not interpreted as a comment. </p> </li>
+<li id="GUID-F70C2B1A-2029-5B1A-A27D-A65A123A6CA9"><p>all statements starting
+with a <b>!</b> are comments that are inserted into the generated header file. </p> </li>
+</ul> <p>Running the Perl script with <codeph>ExampleStringTable.st</codeph> as
+source generates the header file <codeph>ExampleStringTable.h</codeph> and
+the C++ source file <codeph>ExampleStringTable.cpp</codeph> as illustrated
+below: </p> <codeblock id="GUID-7E0263D1-D4A5-5B0A-B355-C2D958247590" xml:space="preserve">// Autogenerated from epoc32\build\generated\example\ExampleStringTable.st by the stringtable tool - Do not edit
+
+#ifndef STRINGTABLE_ExampleStringTable
+#define STRINGTABLE_ExampleStringTable
+
+#include "StringPool.h"
+
+struct TStringTable;
+
+/** A String table */
+class ExampleStringTable 
+       {
+    public:
+           enum TStrings
+              {
+              // Some types of fruit
+              /** apple */
+              EApple,
+              /** orange */
+              EOrange,
+              /** banana */
+              EBanana,
+              /** cat */
+              ECat,
+              /** dog */
+              EDog
+              };
+       static const TStringTable Table;    
+       };
+
+#endif // STRINGTABLE_ExampleStringTable
+</codeblock> <codeblock id="GUID-6447B06C-00EB-527C-8381-7239F2220D61" xml:space="preserve">// Autogenerated from epoc32\build\generated\example\ExampleStringTable.st by the stringtable tool - Do not edit
+#include &lt;e32std.h&gt;
+#include "StringPool.h"
+#include "StringTableSupport.h"
+#include "ExampleStringTable.h"
+#ifdef _DEBUG
+#undef _DEBUG
+#endif
+
+_STLIT8( K1, "apple" );
+_STLIT8( K2, "orange" );
+_STLIT8( K3, "banana" );
+_STLIT8( K4, "cat" );
+_STLIT8( K5, "dog" );
+
+// Intermediate
+const void * const KStringPointers[] =
+       {
+       ( const void* )&amp;K1,
+       ( const void* )&amp;K2,
+       ( const void* )&amp;K3,
+       ( const void* )&amp;K4,
+       ( const void* )&amp;K5
+       };
+
+const TStringTable ExampleStringTable::Table = {5, KStringPointers, EFalse};
+</codeblock> <p>The table itself is the static data member <codeph>Table</codeph> of
+class <codeph>ExampleStringTable</codeph>. </p> </section>
+</conbody><related-links>
+<link href="GUID-24D509E8-CF46-58D3-85E9-27DA7AB22012.dita"><linktext>Constructing
+a Static                 String Table</linktext></link>
+<link href="GUID-2B6D7221-A23E-562E-9D9C-5EC197F1CB78.dita"><linktext>Using string
+pools</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e264145_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e267853_href.png has changed
Binary file Symbian3/SDK/Source/GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e299272_href.png has changed
Binary file Symbian3/SDK/Source/GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e305299_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE" xml:lang="en"><title>Heap
-descriptors</title><shortdesc>Describes heap descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A heap descriptor provides a fixed length buffer, allocated on the heap,
-to contain and access data. The data is part of the descriptor object. </p>
-<p>The data contained in a heap descriptor can be accessed, but not changed,
-through this descriptor. The data can, however, be completely replaced using
-the assignment operators. </p>
-<p>A heap descriptor also has the important property that it can be made larger
-or smaller, changing the size of the descriptor's buffer. This is achieved
-by reallocating the descriptor. Unlike the behaviour of dynamic buffers, reallocation
-is not done automatically. </p>
-<p>Data is accessed through functions provided by the base class. </p>
-<p>A heap descriptor is supplied in two variants: </p>
-<ul>
-<li id="GUID-7FE093CF-5C0A-58F4-8C5E-63465F1B1B64"><p>the 16 bit variant,
-a <codeph>HBufC16</codeph>, to contain Unicode strings. </p> </li>
-<li id="GUID-2F6606E5-E985-58A2-86DE-DCC69C137F50"><p>the 8 bit variant, a <codeph>HBufC8</codeph>,
-to contain non-Unicode strings and binary data. </p> </li>
-</ul>
-<p>There is also a build independent type, <codeph>HBufC</codeph>. This is
-the type which is most commonly used in program code; the appropriate variant
-is selected at build time. </p>
-<p>An explicit 8 bit variant is chosen for binary data. An explicit 16 bit
-variant is rarely used. </p>
-<p>The base class, <codeph>TDesC</codeph>, contains a data member which holds
-the length of the data. The following drawing shows the layout of a <codeph>HBufC</codeph> object
-initialised with the string of five characters representing the English word
-"Hello". The descriptor object is allocated on the heap. </p>
-<p>Although it is not possible to change the data in the descriptor directly
-through the descriptor member functions, it <i>is</i> possible to do this
-indirectly by using the <codeph>Des()</codeph> member function of <codeph>HBufC</codeph> to
-first create a modifiable <xref href="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita">pointer
-descriptor</xref>, a <codeph>TPtr</codeph> type, and then to use <i>this</i> descriptor's
-member functions. For this reason, heap descriptors are best suited for data
-that rarely changes. For data that changes frequently, it is much better to
-use the <xref href="GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita">resizable buffer
-descriptor</xref>. </p>
-<fig id="GUID-975888DA-9685-504E-B089-F5F632729921">
-<image href="GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e224523_href.png" placement="inline"/>
-<p>Example of a Heap descriptor</p>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE" xml:lang="en"><title>Heap
+descriptors</title><shortdesc>Describes heap descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A heap descriptor provides a fixed length buffer, allocated on the heap,
+to contain and access data. The data is part of the descriptor object. </p>
+<p>The data contained in a heap descriptor can be accessed, but not changed,
+through this descriptor. The data can, however, be completely replaced using
+the assignment operators. </p>
+<p>A heap descriptor also has the important property that it can be made larger
+or smaller, changing the size of the descriptor's buffer. This is achieved
+by reallocating the descriptor. Unlike the behaviour of dynamic buffers, reallocation
+is not done automatically. </p>
+<p>Data is accessed through functions provided by the base class. </p>
+<p>A heap descriptor is supplied in two variants: </p>
+<ul>
+<li id="GUID-7FE093CF-5C0A-58F4-8C5E-63465F1B1B64"><p>the 16 bit variant,
+a <codeph>HBufC16</codeph>, to contain Unicode strings. </p> </li>
+<li id="GUID-2F6606E5-E985-58A2-86DE-DCC69C137F50"><p>the 8 bit variant, a <codeph>HBufC8</codeph>,
+to contain non-Unicode strings and binary data. </p> </li>
+</ul>
+<p>There is also a build independent type, <codeph>HBufC</codeph>. This is
+the type which is most commonly used in program code; the appropriate variant
+is selected at build time. </p>
+<p>An explicit 8 bit variant is chosen for binary data. An explicit 16 bit
+variant is rarely used. </p>
+<p>The base class, <codeph>TDesC</codeph>, contains a data member which holds
+the length of the data. The following drawing shows the layout of a <codeph>HBufC</codeph> object
+initialised with the string of five characters representing the English word
+"Hello". The descriptor object is allocated on the heap. </p>
+<p>Although it is not possible to change the data in the descriptor directly
+through the descriptor member functions, it <i>is</i> possible to do this
+indirectly by using the <codeph>Des()</codeph> member function of <codeph>HBufC</codeph> to
+first create a modifiable <xref href="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita">pointer
+descriptor</xref>, a <codeph>TPtr</codeph> type, and then to use <i>this</i> descriptor's
+member functions. For this reason, heap descriptors are best suited for data
+that rarely changes. For data that changes frequently, it is much better to
+use the <xref href="GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita">resizable buffer
+descriptor</xref>. </p>
+<fig id="GUID-975888DA-9685-504E-B089-F5F632729921">
+<image href="GUID-10C32642-CF1C-5C60-A81B-9D65F03A45C4_d0e220786_href.png" placement="inline"/>
+<p>Example of a Heap descriptor</p>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e287704_href.png has changed
Binary file Symbian3/SDK/Source/GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e291337_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,101 +1,101 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2922758C-37A4-436E-B0F3-358944F84E2A" xml:lang="en"><title>Pop-up
-windows</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Certain UI components are displayed within pop-up windows. A common characteristic
-for all these components is that they are temporary states  This means that
-typically back stepping from one state to the previous state does not lead
-into pop-up windows; they are skipped.</p>
-<table id="GUID-75280CEE-CE19-48CB-8B23-DB0A0295987B"><title>Pop-up components</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.42*"/><colspec colname="col2" colwidth="1.58*"/>
-<thead>
-<row>
-<entry>Component</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Options menu</p></entry>
-<entry><p>The commands and options that are available in the current context
-can be accessed via the <b>Options</b> menu. It is displayed as a list in
-a pop-up window.</p></entry>
-</row>
-<row>
-<entry><p>Query</p></entry>
-<entry><p>A query is a component where the software requests user input. All
-query components are displayed in pop-up windows. They consist of a prompt
-(possibly containing a graphical element) and some kind of an input component.
-Various types of queries exist: </p><ul>
-<li><p>A Confirmation query has either one or two possible input values, given
-by using the softkeys. </p></li>
-<li><p>A List query has a limited number of possible input values, and the
-user selects one from a list. </p></li>
-<li><p>A multi-selection List query has a limited number of possible input
-values, and the user can select zero, one or more of them in one pass. </p></li>
-<li><p>A Data query contains an input field for a numeric or alphanumeric
-value that the user can edit.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Note</p></entry>
-<entry><p>A note is a feedback component that informs the user about the current
-situation. They contain a text and possibly a graphical element, and their
-layout is similar to a Confirmation query. However, the softkey labels do
-typically not exist, as notes do not require user input and by default they
-disappear within a time-out.</p></entry>
-</row>
-<row>
-<entry><p>Soft notification</p></entry>
-<entry><p>Soft notifications are reminders that inform the user of events
-that have typically occurred during the user's absence. Soft notifications
-can only be seen in the Idle state, and the user can acknowledge them. There
-are two types of soft notifications; the layouts resemble those of Confirmation
-queries and List queries: </p><ul>
-<li><p>A single soft notification contains one notification. </p></li>
-<li><p>A grouped soft notification contains a number of information items
-presented as a list, and a title text common to all of the items.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Call window</p></entry>
-<entry><p>Incoming calls and outgoing calls are presented in pop-up windows.</p></entry>
-</row>
-<row>
-<entry><p>Discreet pop-up</p></entry>
-<entry><p>Discreet pop-up is a temporary pop-up that appears on the upper
-left corner for certain time-out. When discreet pop-up appears, it does not
-dim the background and it does not have the focus. User can navigate in the
-underlying application normally.</p><p>Pop-up can have simple touch functionality.
-It can be used, for example, for the information and confirmation note.</p></entry>
-</row>
-<row>
-<entry><p>Universal indicator pop-up</p></entry>
-<entry><p>Universal indicator pop-up is opened from the universal indicator
-pane. It contains more information of the active status indicators.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>For more information, see <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref></p>
-<section id="GUID-58FB6AAA-5721-41D2-8593-D1117485563D"><title>Using
-pop-up windows in C++ applications</title><p>For implementation information
-on the pop-up window components, see:</p><ul>
-<li><p><xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref></p></li>
-<li><p><xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Query</xref></p></li>
-<li><p><xref href="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita">Note</xref></p></li>
-<li><p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Soft notification</xref></p></li>
-<li><p><xref href="GUID-5B9F25B5-5FE1-4E38-BC8D-A0273F458C36.dita">Discreet pop-up</xref></p></li>
-<li><p><xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal indicator
-pop-up</xref></p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2922758C-37A4-436E-B0F3-358944F84E2A" xml:lang="en"><title>Pop-up
+windows</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Certain UI components are displayed within pop-up windows. A common characteristic
+for all these components is that they are temporary states  This means that
+typically back stepping from one state to the previous state does not lead
+into pop-up windows; they are skipped.</p>
+<table id="GUID-75280CEE-CE19-48CB-8B23-DB0A0295987B"><title>Pop-up components</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.42*"/><colspec colname="col2" colwidth="1.58*"/>
+<thead>
+<row>
+<entry>Component</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Options menu</p></entry>
+<entry><p>The commands and options that are available in the current context
+can be accessed via the <b>Options</b> menu. It is displayed as a list in
+a pop-up window.</p></entry>
+</row>
+<row>
+<entry><p>Query</p></entry>
+<entry><p>A query is a component where the software requests user input. All
+query components are displayed in pop-up windows. They consist of a prompt
+(possibly containing a graphical element) and some kind of an input component.
+Various types of queries exist: </p><ul>
+<li><p>A Confirmation query has either one or two possible input values, given
+by using the softkeys. </p></li>
+<li><p>A List query has a limited number of possible input values, and the
+user selects one from a list. </p></li>
+<li><p>A multi-selection List query has a limited number of possible input
+values, and the user can select zero, one or more of them in one pass. </p></li>
+<li><p>A Data query contains an input field for a numeric or alphanumeric
+value that the user can edit.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Note</p></entry>
+<entry><p>A note is a feedback component that informs the user about the current
+situation. They contain a text and possibly a graphical element, and their
+layout is similar to a Confirmation query. However, the softkey labels do
+typically not exist, as notes do not require user input and by default they
+disappear within a time-out.</p></entry>
+</row>
+<row>
+<entry><p>Soft notification</p></entry>
+<entry><p>Soft notifications are reminders that inform the user of events
+that have typically occurred during the user's absence. Soft notifications
+can only be seen in the home screen, and the user can acknowledge them. There
+are two types of soft notifications; the layouts resemble those of Confirmation
+queries and List queries: </p><ul>
+<li><p>A single soft notification contains one notification. </p></li>
+<li><p>A grouped soft notification contains a number of information items
+presented as a list, and a title text common to all of the items.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Call window</p></entry>
+<entry><p>Incoming calls and outgoing calls are presented in pop-up windows.</p></entry>
+</row>
+<row>
+<entry><p>Discreet pop-up</p></entry>
+<entry><p>Discreet pop-up is a temporary pop-up that appears on the upper
+left corner for certain time-out. When discreet pop-up appears, it does not
+dim the background and it does not have the focus. User can navigate in the
+underlying application normally.</p><p>Pop-up can have simple touch functionality.
+It can be used, for example, for the information and confirmation note.</p></entry>
+</row>
+<row>
+<entry><p>Universal indicator pop-up</p></entry>
+<entry><p>Universal indicator pop-up is opened from the universal indicator
+pane. It contains more information of the active status indicators.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>For more information, see <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref></p>
+<section id="GUID-58FB6AAA-5721-41D2-8593-D1117485563D"><title>Using
+pop-up windows in applications</title><p>For implementation information on
+the pop-up window components, see:</p><ul>
+<li><p><xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref></p></li>
+<li><p><xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Query</xref></p></li>
+<li><p><xref href="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita">Note</xref></p></li>
+<li><p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Soft notification</xref></p></li>
+<li><p><xref href="GUID-5B9F25B5-5FE1-4E38-BC8D-A0273F458C36.dita">Discreet pop-up</xref></p></li>
+<li><p><xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal indicator
+pop-up</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e56908_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e63329_href.png has changed
--- a/Symbian3/SDK/Source/GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC" xml:lang="en"><title>Application
-and UI frameworks</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The section explains how to use the features offered by the
-application and UI frameworks when designing and implementing your application. </p>
-<p>The table below illustrates different areas used in the Hello World Basic
-sample application included in the Symbian Platform and provides information
-on how to implement the different areas in your application using the application
-and UI frameworks.</p>
-<p/>
-<table id="GUID-FF83D005-B63E-4A49-B54F-286A0AA141D2">
-<tgroup cols="3"><colspec colname="col1" colwidth="0.65*"/><colspec colname="col2" colwidth="1.49*"/><colspec colname="col3" colwidth="0.87*"/>
-<thead>
-<row>
-<entry><p>Area</p></entry>
-<entry><p>Example from Hello World Basic sample application</p></entry>
-<entry><p>Implementation information</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Launching the application</p></entry>
-<entry><fig id="GUID-405A8353-76B2-48EA-8A77-5072ABC9092E">
-<image href="GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e41657_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><ul>
-<li><p><xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework requirements
-for GUI applications</xref></p></li>
-<li><p><xref href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita">Implementing
-application framework requirements</xref></p></li>
-<li><p><xref href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita">Registering
-your application</xref></p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Handling left softkey events and launching the <uicontrol>Options</uicontrol> menu</p></entry>
-<entry><fig id="GUID-E6EB3C6C-A310-4378-96A2-8A22F2043DBA">
-<image href="GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e41693_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><ul>
-<li><p><xref href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita">Event handling</xref></p></li>
-<li><p><xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">Handling commands</xref></p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Handling key and pointer events </p></entry>
-<entry><fig id="GUID-553A63B8-45CE-4A1E-87B4-2C83C467A17F">
-<image href="GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e41721_href.png" placement="inline"/>
-</fig><p/><p/><fig id="GUID-3BFD6D28-AE46-4D8A-8D4A-A0AB54AF7CFB">
-<image href="GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41727_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><ul>
-<li><p><xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Handling window
-server events</xref></p></li>
-<li><p><xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">Handling key
-events</xref></p></li>
-<li><p><xref href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita">Handling pointer
-events</xref></p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Rotation</p></entry>
-<entry><fig id="GUID-A3DACC0A-A6F6-49BB-B680-F530D3E97845">
-<image href="GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e41760_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><p><xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">Handling
-layout change events</xref></p></entry>
-</row>
-<row>
-<entry><p>Internationalization</p></entry>
-<entry><fig id="GUID-8EF822C1-FD80-404A-B751-10191C9A9E8F">
-<image href="GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41779_href.png" placement="inline"/>
-</fig><p/><p/><fig id="GUID-BF30B1CA-7911-41DD-A77E-9D28C33E9796">
-<image href="GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e41785_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><p><xref href="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita">Internationalization
-and localization</xref></p></entry>
-</row>
-<row>
-<entry><p>Exiting the application</p></entry>
-<entry><fig id="GUID-622830E1-42D8-4B89-8D3C-41489076C0A8">
-<image href="GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e41804_href.png" placement="inline"/>
-</fig><p/></entry>
-<entry><p><xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
-EEikCmdExit</xref></p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC" xml:lang="en"><title>Application
+and UI frameworks</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The section explains how to use the features offered by the
+application and UI frameworks when designing and implementing your application. </p>
+<p>The table below illustrates different areas used in the Hello World Basic
+sample application included in the Symbian Platform and provides information
+on how to implement the different areas in your application using the application
+and UI frameworks.</p>
+<p/>
+<table id="GUID-FF83D005-B63E-4A49-B54F-286A0AA141D2">
+<tgroup cols="3"><colspec colname="col1" colwidth="0.65*"/><colspec colname="col2" colwidth="1.49*"/><colspec colname="col3" colwidth="0.87*"/>
+<thead>
+<row>
+<entry><p>Area</p></entry>
+<entry><p>Example from Hello World Basic sample application</p></entry>
+<entry><p>Implementation information</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Launching the application</p></entry>
+<entry><fig id="GUID-405A8353-76B2-48EA-8A77-5072ABC9092E">
+<image href="GUID-0CA8B17D-92D7-4293-B611-E0DDA05A6579_d0e36090_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><ul>
+<li><p><xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework requirements
+for GUI applications</xref></p></li>
+<li><p><xref href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita">Implementing
+application framework requirements</xref></p></li>
+<li><p><xref href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita">Registering
+your application</xref></p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Handling left softkey events and launching the <uicontrol>Options</uicontrol> menu</p></entry>
+<entry><fig id="GUID-E6EB3C6C-A310-4378-96A2-8A22F2043DBA">
+<image href="GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e36126_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><ul>
+<li><p><xref href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita">Event handling</xref></p></li>
+<li><p><xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">Handling commands</xref></p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Handling key and pointer events </p></entry>
+<entry><fig id="GUID-553A63B8-45CE-4A1E-87B4-2C83C467A17F">
+<image href="GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e36154_href.png" placement="inline"/>
+</fig><p/><p/><fig id="GUID-3BFD6D28-AE46-4D8A-8D4A-A0AB54AF7CFB">
+<image href="GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36160_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><ul>
+<li><p><xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Handling window
+server events</xref></p></li>
+<li><p><xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">Handling key
+events</xref></p></li>
+<li><p><xref href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita">Handling pointer
+events</xref></p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Rotation</p></entry>
+<entry><fig id="GUID-A3DACC0A-A6F6-49BB-B680-F530D3E97845">
+<image href="GUID-220D7D10-5571-46C4-BA2B-B4FBAE4153F1_d0e36193_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><p><xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">Handling
+layout change events</xref></p></entry>
+</row>
+<row>
+<entry><p>Internationalization</p></entry>
+<entry><fig id="GUID-8EF822C1-FD80-404A-B751-10191C9A9E8F">
+<image href="GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36212_href.png" placement="inline"/>
+</fig><p/><p/><fig id="GUID-BF30B1CA-7911-41DD-A77E-9D28C33E9796">
+<image href="GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e36218_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><p><xref href="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita">Internationalization
+and localization</xref></p></entry>
+</row>
+<row>
+<entry><p>Exiting the application</p></entry>
+<entry><fig id="GUID-622830E1-42D8-4B89-8D3C-41489076C0A8">
+<image href="GUID-26E2294F-871F-45D1-B71C-9F470703A9C8_d0e36237_href.png" placement="inline"/>
+</fig><p/></entry>
+<entry><p><xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
+EEikCmdExit</xref></p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-295341D9-A5FA-4F25-B681-C5B3264165AF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-295341D9-A5FA-4F25-B681-C5B3264165AF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-295341D9-A5FA-4F25-B681-C5B3264165AF" xml:lang="en"><title>Text
-fields</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Stylus usage in text fields is supported. Tapping on a text field moves
-the text cursor to the tapped point. Blocks of text can be selected by moving
-the stylus while holding it down against the screen (horizontal dragging).
-Horizontal dragging can be continued with vertical movement to move content
-upwards and downwards.</p>
-<section id="GUID-7DE6EF4A-862B-420F-8DDD-C7B630284AC2"><title>Using
-text editing in C++ applications</title><p>The API to use for providing text
-editing functionality is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-295341D9-A5FA-4F25-B681-C5B3264165AF" xml:lang="en"><title>Text
+fields</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Stylus usage in text fields is supported. Tapping on a text field moves
+the text cursor to the tapped point. Blocks of text can be selected by moving
+the stylus while holding it down against the screen (horizontal dragging).
+Horizontal dragging can be continued with vertical movement to move content
+upwards and downwards.</p>
+<section id="GUID-7DE6EF4A-862B-420F-8DDD-C7B630284AC2"><title>Using
+text editing in applications</title><p>The API to use for providing
+text editing functionality is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e336710_href.png has changed
Binary file Symbian3/SDK/Source/GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e342907_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2972C100-EE68-5182-927C-3C46E8F5C0DD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-2972C100-EE68-5182-927C-3C46E8F5C0DD_d0e383129_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e220101_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e223838_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29E7942D-A00D-5771-9782-59260965C687_d0e213911_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29E7942D-A00D-5771-9782-59260965C687_d0e217648_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e299287_href.png has changed
Binary file Symbian3/SDK/Source/GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e305314_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e375491_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e381570_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726-master.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e51533_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e57086_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e66217_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e68802_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e71460_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e73947_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e213823_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e217560_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e262336_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e266044_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e42265_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e47820_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2807_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2B820ED0-D0E1-4CF0-9D63-C91806EDB8F6_d0e2909_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232" xml:lang="en"><title>Numbered
-items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Instead of a small graphic, column A (where used separately) may contain
-a number. This can be used to indicate item numbers in lists where necessary.</p>
-<fig id="GUID-851A7651-5278-4B2D-9BFD-BEA79A1CF6BC">
-<title>Numbered list item</title>
-<image href="GUID-84C75561-E082-4EFF-89A7-901361612CCA_d0e61144_href.png" scale="40" placement="inline"/>
-</fig>
-<p>Numbered items should be used only in lists where numbers are meaningful
-and give added value. There is no specific functionality (such as shortcuts)
-that all numbered lists would have.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232" xml:lang="en"><title>Numbered
+items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Instead of a small graphic, column A (where used separately) may contain
+a number. This can be used to indicate item numbers in lists where necessary.</p>
+<fig id="GUID-851A7651-5278-4B2D-9BFD-BEA79A1CF6BC">
+<title>Numbered list item</title>
+<image href="GUID-8526BBD8-CA70-4B3F-B91D-D70AF06440B2_d0e55432_href.png" placement="inline"/>
+</fig>
+<p>Numbered items should be used only in lists where numbers are meaningful
+and give added value. There is no specific functionality (such as shortcuts)
+that all numbered lists would have.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e18317_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e48659_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e54219_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,251 +1,251 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35" xml:lang="en"><title>Window
-Server Component Overview</title><shortdesc>The Window Server manages the use of the screen and input devices
-by applications and controls and co-ordinates access. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4BE363E2-E630-462D-A958-721B3636792E"><title>Architecture</title> <p>The
-architecture of the Window Server varies depending on whether you are using
-the <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay (NGA)</xref> or <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref> variant.
-However, with a few exceptions, the client-side API is the same in both variants.
-Both variants use an improved version of the Window Server, sometimes known
-as <codeph>WSERV2</codeph>, which was introduced in Symbian^2 (Symbian OS
-v9.4). </p> <p>The following diagram provides an overview of the Window Server
-architecture in ScreenPlay. </p> <fig id="GUID-80DA5DEB-019E-5CE3-812E-496A1D713FFB">
-<title>              The Window Server in ScreenPlay            </title>
-<image href="GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e192309_href.png" placement="inline"/>
-</fig> <p>Below we list some of the key features of the Window Server, including
-differences between the two architectures. The term <b>surface</b> is used
-in ScreenPlay for a hardware-independent memory buffer for holding an image
-or part of a scene. The <b>UI surface</b> is a special surface onto which
-the Window Server renders all of the UI content. It is created automatically
-during system start up. An <b>external surface</b> is any other surface—for
-example, a surface that holds a video or to which OpenGL ES content is rendered. </p> <ul>
-<li id="GUID-A56D68E9-99E0-528A-9DDD-977BECE50A45"><p>The Window Server has
-a render stage framework, which enables the last stage of the Window Server
-rendering to be customizable through plug-ins called <b> render stages</b>.
-These can be chained to form a rendering pipeline, which takes the drawing
-operations that are produced by the Window Server and ultimately passes them
-to the UI surface. Render stages can selectively filter, modify, or redirect
-the draw operation stream, as required—for example, to perform transition
-effects (TFX). </p> </li>
-<li id="GUID-A6589F28-B8B5-5FBA-B241-6E526D6A9BF1"><p>In ScreenPlay, composition
-takes place in two stages. First, the render stages render the drawing to
-the UI surface. Then the composition engine combines the UI surface and any
-external surfaces into elements (sometimes called <b>layers</b>) and composes
-them to the screen. This enables the composition to be performed in software
-or hardware accelerator chips. </p> </li>
-<li id="GUID-BA8D10A1-F0CB-56F7-817B-F1425AC1DA56"><p>In the non-ScreenPlay
-variant, the concept of surfaces is not used and the Window Server composes
-directly onto the <b>frame buffer</b> which is then displayed on the screen. </p> </li>
-<li id="GUID-FC88013B-E5A4-5DD6-9906-A526D137CF43"><p>There are differences
-in the plug-in framework APIs in the two architectures. In addition, in ScreenPlay,
-fading effects are implemented by using render stages, whereas when ScreenPlay
-is not enabled they are implemented by using a separate fader plug-in type
-(not shown on the diagram). </p> </li>
-<li id="GUID-86A8FB36-B9DF-50F2-AE0B-798D717899A6"><p>In ScreenPlay, the Window
-Server provides advanced pointer features, such as support for multiple pointers
-and proximity and pressure coordinates. The non-ScreenPlay variant does not
-provide this support. </p> </li>
-<li id="GUID-46123A93-AF91-5FAB-995E-CDEAE9C8B961"><p>ScreenPlay provides
-support for externally connected displays, such as TV-out. The non-ScreenPlay
-variant considers the size of each display to be fixed. However, for High-Definition
-Multimedia Interface (HDMI) and composite video connectors, there are a range
-of resolutions that can change dynamically. ScreenPlay provides an optional
-feature that supports switching between resolutions at runtime and notifications
-to Window Server clients when there are changes to the resolution and connectedness. </p> </li>
-</ul> </section>
-<section id="GUID-2459A480-EC83-4595-97AA-D090331C9A88"><title>Building the
-ScreenPlay and non-ScreenPlay variants</title> <p>To build the ScreenPlay
-version of the Window Server components, declare the following macros in the <filepath>Symbian_OS.hrh</filepath> file. </p><codeblock xml:space="preserve">SYMBIAN_BUILD_GCE
-SYMBIAN_GRAPHICS_BUILD_OPENWF_WSERV
-</codeblock><p>This causes the ScreenPlay versions of the components in the
-Graphics package to be built in addition to the non-ScreenPlay components.
-Specifically the <codeph>SYMBIAN_BUILD_GCE</codeph> macro causes the ScreenPlay
-version of the Window Server to be built. This means that the <filepath>w32_nga.mmp</filepath> and <filepath>wserv_nga.mmp</filepath> files
-are built. These define a second macro, <codeph>SYMBIAN_GRAPHICS_GCE</codeph>,
-which causes the ScreenPlay Window Server classes to be built. </p> <p>To include the ScreenPlay versions when building
-ROM, use the <codeph>SYMBIAN_GRAPHICS_USE_GCE</codeph> flag. </p> </section>
-<section id="GUID-BEBE7D33-06C7-4B07-837E-9E67633EEFBF"><title>Selecting the
-ScreenPlay variant in the emulator</title><p>To select the ScreenPlay version
-of the component in the emulator, add the following line to the <filepath>epoc.ini</filepath> file: </p> <codeblock id="GUID-E0A64D1F-19B8-5002-8031-06E58AAE0055" xml:space="preserve">SYMBIAN_GRAPHICS_USE_GCE ON</codeblock></section>
-<section id="GUID-F13720C7-A6E1-4A3F-ACAF-10BEF6D2229F"><title>Executables</title> <p>This
-section lists the main Window Server executables. For clarity, these are divided
-into three groups. </p> <p><b>Window Server executable and client-side libraries </b> </p> <table id="GUID-E68F0783-FE52-55F3-8140-0FD527E91775">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Executable</entry>
-<entry>LIB</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <filepath>wserv_nga.exe</filepath>  </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>The ScreenPlay version of the Window Server. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>wserv_nonnga.exe</filepath>  </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>The non-ScreenPlay version of the Window Server. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>ws32_nga.dll</filepath>  </p> </entry>
-<entry><p> <filepath>ws32.lib</filepath>  </p> </entry>
-<entry><p>The Window Server client-side API library for the ScreenPlay variant.
-See <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window Server Client-Side
-Library</xref>. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>ws32_nonnga.dll</filepath>  </p> </entry>
-<entry><p> <filepath>ws32.lib</filepath>  </p> </entry>
-<entry><p>The Window Server client-side API library for the non-ScreenPlay
-variant. See <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window
-Server Client-Side Library</xref>. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>wsgraphicdrawer_nga.dll</filepath>  </p> </entry>
-<entry><p> <filepath>wsgraphicdrawer.lib </filepath>  </p> </entry>
-<entry><p>The server-side base classes for Window Server plug-ins in the ScreenPlay
-variant. The plug-ins include graphic drawer plug-ins (which are also known
-as Content Rendering Plug-ins or CRPs) and render stage plug-ins. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>wsgraphicdrawer_nonnga.dll</filepath>  </p> </entry>
-<entry><p> <filepath>wsgraphicdrawer.lib </filepath>  </p> </entry>
-<entry><p>The server-side base classes for Window Server plug-ins in the non-ScreenPlay
-variant. The plug-ins include graphic drawer plug-ins (which are also known
-as Content Rendering Plug-ins or CRPs) and render stage and fader plug-ins. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>remotegc_nga.dll </filepath>  </p> </entry>
-<entry><p> <filepath>remotegc.lib </filepath>  </p> </entry>
-<entry><p>The client-side API library for remote graphic contexts in ScreenPlay.
-Remote graphic contexts store draw operations so that they can be played back
-later. It is "remote" because the draw operations are generally played back
-in a different location from where they are stored. For example, the draw
-operations are frequently stored on the client side and then a transformation
-engine uses them on the server side to make an effect. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>remotegc_nonnga.dll </filepath>  </p> </entry>
-<entry><p> <filepath>remotegc.lib </filepath>  </p> </entry>
-<entry><p>The client-side API library for remote graphic contexts in the non-ScreenPlay
-variant. This has a similar role as in ScreenPlay. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>profilerkeys.dll </filepath>  </p> </entry>
-<entry/>
-<entry><p>Window Server profiling hotkeys library in both ScreenPlay and non-ScreenPlay
-variants. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Logging libraries </b> </p> <table id="GUID-C233B864-B909-5C00-B90A-7C78F3D02AFC">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Executable</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <filepath>dlog.dll </filepath>  </p> </entry>
-<entry><p>On-screen logging library </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>dlogfl.dll </filepath>  </p> </entry>
-<entry><p>File logging library </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>dlogrd.dll </filepath>  </p> </entry>
-<entry/>
-</row>
-<row>
-<entry><p> <filepath>dlogsr.dll </filepath>  </p> </entry>
-<entry><p>Serial logging library </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Plug-ins </b> </p> <table id="GUID-E71B0099-14D9-5C44-99FA-1DDB535EB7BF">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Executable</entry>
-<entry>Variant</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <filepath>10281922.dll</filepath>  </p> </entry>
-<entry><p>Both </p> </entry>
-<entry><p>This is a standard reference CRP. This type of plug-in is called
-a <i>CWsGraphics</i> ECOM plug-in. Device creators can replace this component. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>2001b70b.dll</filepath>  </p> </entry>
-<entry><p>Non-ScreenPlay </p> </entry>
-<entry><p>This is a prototype reference render stage ECOM plug-in for the
-non-ScreenPlay variant. This type of plug-in is called a <i>CWsPlugin</i>. </p> <p>Note:
-The ScreenPlay render stage ECOM plug-in is delivered in the Window Server
-Plugins component. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>10285c4a.dll </filepath>  </p> </entry>
-<entry><p>ScreenPlay </p> </entry>
-<entry><p>This is a reference ScreenPlay surface-based CRP. Device creators
-can replace this component. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>samplegraphicsurface.dll </filepath>  </p> </entry>
-<entry><p>ScreenPlay </p> </entry>
-<entry><p>Sample ScreenPlay CRP (<i>CWsGraphics</i>) that demonstrates placing
-a surface. </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>w32stdgraphic.dll </filepath>  </p> </entry>
-<entry><p>Both </p> </entry>
-<entry><p>Sample CRP (<i>CWsGraphics</i>). </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-439B39AD-4184-4928-BF35-ABAB94A89400"><title>Typical uses</title> <ul>
-<li id="GUID-BF47989B-D205-5ED8-BBCF-44B099E15C97"><p>Application developers
-use the <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">client-side
-library</xref> to control windows in their applications and respond to key
-and pointer events. </p> </li>
-<li id="GUID-51A64C2E-C689-5765-8455-02C6350E4E88"><p>Testers and application
-developers use the <xref href="GUID-6E8807F5-9CC0-5A70-8182-22230D43AA9E.dita">logging
-mechanism</xref> to log Window Server events when developing and testing their
-code. </p> </li>
-<li id="GUID-139581CB-1185-569E-878D-58088230CCE8"><p>Device creators create
-Content Rendering Plug-ins (CRPs) for showing customized content on the screen. </p> </li>
-<li id="GUID-75EE03DE-0F78-5114-BCB9-8DD648A7C3A3"><p>Device creators who
-use ScreenPlay, can create render stage plug-ins. These enable the output
-of the Window Server to be combined with auxiliary software subsystems (such
-as a transition effect engine) and hardware-accelerated drawing (for example,
-using OpenVG). </p> </li>
-<li id="GUID-E712A357-5797-5291-829E-C054463FD286"><p>Device creators use
-the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref> to
-configure the Window Server to suit the specific requirements of the particular
-device. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"><linktext>Window Server
-Component</linktext></link>
-
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35" xml:lang="en"><title>Window
+Server Component Overview</title><shortdesc>The Window Server manages the use of the screen and input devices
+by applications and controls and co-ordinates access. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4BE363E2-E630-462D-A958-721B3636792E"><title>Architecture</title> <p>The
+architecture of the Window Server varies depending on whether you are using
+the <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay (NGA)</xref> or <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref> variant.
+However, with a few exceptions, the client-side API is the same in both variants.
+Both variants use an improved version of the Window Server, sometimes known
+as <codeph>WSERV2</codeph>, which was introduced in Symbian^2 (Symbian OS
+v9.4). </p> <p>The following diagram provides an overview of the Window Server
+architecture in ScreenPlay. </p> <fig id="GUID-80DA5DEB-019E-5CE3-812E-496A1D713FFB">
+<title>              The Window Server in ScreenPlay            </title>
+<image href="GUID-1635E243-BDC9-55D8-8913-0D2DB622B22C_d0e186764_href.png" placement="inline"/>
+</fig> <p>Below we list some of the key features of the Window Server, including
+differences between the two architectures. The term <b>surface</b> is used
+in ScreenPlay for a hardware-independent memory buffer for holding an image
+or part of a scene. The <b>UI surface</b> is a special surface onto which
+the Window Server renders all of the UI content. It is created automatically
+during system start up. An <b>external surface</b> is any other surface—for
+example, a surface that holds a video or to which OpenGL ES content is rendered. </p> <ul>
+<li id="GUID-A56D68E9-99E0-528A-9DDD-977BECE50A45"><p>The Window Server has
+a render stage framework, which enables the last stage of the Window Server
+rendering to be customizable through plug-ins called <b> render stages</b>.
+These can be chained to form a rendering pipeline, which takes the drawing
+operations that are produced by the Window Server and ultimately passes them
+to the UI surface. Render stages can selectively filter, modify, or redirect
+the draw operation stream, as required—for example, to perform transition
+effects (TFX). </p> </li>
+<li id="GUID-A6589F28-B8B5-5FBA-B241-6E526D6A9BF1"><p>In ScreenPlay, composition
+takes place in two stages. First, the render stages render the drawing to
+the UI surface. Then the composition engine combines the UI surface and any
+external surfaces into elements (sometimes called <b>layers</b>) and composes
+them to the screen. This enables the composition to be performed in software
+or hardware accelerator chips. </p> </li>
+<li id="GUID-BA8D10A1-F0CB-56F7-817B-F1425AC1DA56"><p>In the non-ScreenPlay
+variant, the concept of surfaces is not used and the Window Server composes
+directly onto the <b>frame buffer</b> which is then displayed on the screen. </p> </li>
+<li id="GUID-FC88013B-E5A4-5DD6-9906-A526D137CF43"><p>There are differences
+in the plug-in framework APIs in the two architectures. In addition, in ScreenPlay,
+fading effects are implemented by using render stages, whereas when ScreenPlay
+is not enabled they are implemented by using a separate fader plug-in type
+(not shown on the diagram). </p> </li>
+<li id="GUID-86A8FB36-B9DF-50F2-AE0B-798D717899A6"><p>In ScreenPlay, the Window
+Server provides advanced pointer features, such as support for multiple pointers
+and proximity and pressure coordinates. The non-ScreenPlay variant does not
+provide this support. </p> </li>
+<li id="GUID-46123A93-AF91-5FAB-995E-CDEAE9C8B961"><p>ScreenPlay provides
+support for externally connected displays, such as TV-out. The non-ScreenPlay
+variant considers the size of each display to be fixed. However, for High-Definition
+Multimedia Interface (HDMI) and composite video connectors, there are a range
+of resolutions that can change dynamically. ScreenPlay provides an optional
+feature that supports switching between resolutions at runtime and notifications
+to Window Server clients when there are changes to the resolution and connectedness. </p> </li>
+</ul> </section>
+<section id="GUID-2459A480-EC83-4595-97AA-D090331C9A88"><title>Building the
+ScreenPlay and non-ScreenPlay variants</title> <p>To build the ScreenPlay
+version of the Window Server components, declare the following macros in the <filepath>Symbian_OS.hrh</filepath> file. </p><codeblock xml:space="preserve">SYMBIAN_BUILD_GCE
+SYMBIAN_GRAPHICS_BUILD_OPENWF_WSERV
+</codeblock><p>This causes the ScreenPlay versions of the components in the
+Graphics package to be built in addition to the non-ScreenPlay components.
+Specifically the <codeph>SYMBIAN_BUILD_GCE</codeph> macro causes the ScreenPlay
+version of the Window Server to be built. This means that the <filepath>w32_nga.mmp</filepath> and <filepath>wserv_nga.mmp</filepath> files
+are built. These define a second macro, <codeph>SYMBIAN_GRAPHICS_GCE</codeph>,
+which causes the ScreenPlay Window Server classes to be built. </p> <p>To include the ScreenPlay versions when building
+ROM, use the <codeph>SYMBIAN_GRAPHICS_USE_GCE</codeph> flag. </p> </section>
+<section id="GUID-BEBE7D33-06C7-4B07-837E-9E67633EEFBF"><title>Selecting the
+ScreenPlay variant in the emulator</title><p>To select the ScreenPlay version
+of the component in the emulator, add the following line to the <filepath>epoc.ini</filepath> file: </p> <codeblock id="GUID-E0A64D1F-19B8-5002-8031-06E58AAE0055" xml:space="preserve">SYMBIAN_GRAPHICS_USE_GCE ON</codeblock></section>
+<section id="GUID-F13720C7-A6E1-4A3F-ACAF-10BEF6D2229F"><title>Executables</title> <p>This
+section lists the main Window Server executables. For clarity, these are divided
+into three groups. </p> <p><b>Window Server executable and client-side libraries </b> </p> <table id="GUID-E68F0783-FE52-55F3-8140-0FD527E91775">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Executable</entry>
+<entry>LIB</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath>wserv_nga.exe</filepath>  </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>The ScreenPlay version of the Window Server. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>wserv_nonnga.exe</filepath>  </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>The non-ScreenPlay version of the Window Server. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>ws32_nga.dll</filepath>  </p> </entry>
+<entry><p> <filepath>ws32.lib</filepath>  </p> </entry>
+<entry><p>The Window Server client-side API library for the ScreenPlay variant.
+See <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window Server Client-Side
+Library</xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>ws32_nonnga.dll</filepath>  </p> </entry>
+<entry><p> <filepath>ws32.lib</filepath>  </p> </entry>
+<entry><p>The Window Server client-side API library for the non-ScreenPlay
+variant. See <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window
+Server Client-Side Library</xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>wsgraphicdrawer_nga.dll</filepath>  </p> </entry>
+<entry><p> <filepath>wsgraphicdrawer.lib </filepath>  </p> </entry>
+<entry><p>The server-side base classes for Window Server plug-ins in the ScreenPlay
+variant. The plug-ins include graphic drawer plug-ins (which are also known
+as Content Rendering Plug-ins or CRPs) and render stage plug-ins. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>wsgraphicdrawer_nonnga.dll</filepath>  </p> </entry>
+<entry><p> <filepath>wsgraphicdrawer.lib </filepath>  </p> </entry>
+<entry><p>The server-side base classes for Window Server plug-ins in the non-ScreenPlay
+variant. The plug-ins include graphic drawer plug-ins (which are also known
+as Content Rendering Plug-ins or CRPs) and render stage and fader plug-ins. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>remotegc_nga.dll </filepath>  </p> </entry>
+<entry><p> <filepath>remotegc.lib </filepath>  </p> </entry>
+<entry><p>The client-side API library for remote graphic contexts in ScreenPlay.
+Remote graphic contexts store draw operations so that they can be played back
+later. It is "remote" because the draw operations are generally played back
+in a different location from where they are stored. For example, the draw
+operations are frequently stored on the client side and then a transformation
+engine uses them on the server side to make an effect. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>remotegc_nonnga.dll </filepath>  </p> </entry>
+<entry><p> <filepath>remotegc.lib </filepath>  </p> </entry>
+<entry><p>The client-side API library for remote graphic contexts in the non-ScreenPlay
+variant. This has a similar role as in ScreenPlay. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>profilerkeys.dll </filepath>  </p> </entry>
+<entry/>
+<entry><p>Window Server profiling hotkeys library in both ScreenPlay and non-ScreenPlay
+variants. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Logging libraries </b> </p> <table id="GUID-C233B864-B909-5C00-B90A-7C78F3D02AFC">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Executable</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath>dlog.dll </filepath>  </p> </entry>
+<entry><p>On-screen logging library </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>dlogfl.dll </filepath>  </p> </entry>
+<entry><p>File logging library </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>dlogrd.dll </filepath>  </p> </entry>
+<entry/>
+</row>
+<row>
+<entry><p> <filepath>dlogsr.dll </filepath>  </p> </entry>
+<entry><p>Serial logging library </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Plug-ins </b> </p> <table id="GUID-E71B0099-14D9-5C44-99FA-1DDB535EB7BF">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Executable</entry>
+<entry>Variant</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath>10281922.dll</filepath>  </p> </entry>
+<entry><p>Both </p> </entry>
+<entry><p>This is a standard reference CRP. This type of plug-in is called
+a <i>CWsGraphics</i> ECOM plug-in. Device creators can replace this component. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>2001b70b.dll</filepath>  </p> </entry>
+<entry><p>Non-ScreenPlay </p> </entry>
+<entry><p>This is a prototype reference render stage ECOM plug-in for the
+non-ScreenPlay variant. This type of plug-in is called a <i>CWsPlugin</i>. </p> <p>Note:
+The ScreenPlay render stage ECOM plug-in is delivered in the Window Server
+Plugins component. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>10285c4a.dll </filepath>  </p> </entry>
+<entry><p>ScreenPlay </p> </entry>
+<entry><p>This is a reference ScreenPlay surface-based CRP. Device creators
+can replace this component. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>samplegraphicsurface.dll </filepath>  </p> </entry>
+<entry><p>ScreenPlay </p> </entry>
+<entry><p>Sample ScreenPlay CRP (<i>CWsGraphics</i>) that demonstrates placing
+a surface. </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>w32stdgraphic.dll </filepath>  </p> </entry>
+<entry><p>Both </p> </entry>
+<entry><p>Sample CRP (<i>CWsGraphics</i>). </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-439B39AD-4184-4928-BF35-ABAB94A89400"><title>Typical uses</title> <ul>
+<li id="GUID-BF47989B-D205-5ED8-BBCF-44B099E15C97"><p>Application developers
+use the <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">client-side
+library</xref> to control windows in their applications and respond to key
+and pointer events. </p> </li>
+<li id="GUID-51A64C2E-C689-5765-8455-02C6350E4E88"><p>Testers and application
+developers use the <xref href="GUID-6E8807F5-9CC0-5A70-8182-22230D43AA9E.dita">logging
+mechanism</xref> to log Window Server events when developing and testing their
+code. </p> </li>
+<li id="GUID-139581CB-1185-569E-878D-58088230CCE8"><p>Device creators create
+Content Rendering Plug-ins (CRPs) for showing customized content on the screen. </p> </li>
+<li id="GUID-75EE03DE-0F78-5114-BCB9-8DD648A7C3A3"><p>Device creators who
+use ScreenPlay, can create render stage plug-ins. These enable the output
+of the Window Server to be combined with auxiliary software subsystems (such
+as a transition effect engine) and hardware-accelerated drawing (for example,
+using OpenVG). </p> </li>
+<li id="GUID-E712A357-5797-5291-829E-C054463FD286"><p>Device creators use
+the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref> to
+configure the Window Server to suit the specific requirements of the particular
+device. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"><linktext>Window Server
+Component</linktext></link>
+
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,213 +1,213 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797" xml:lang="en"><title>SQLite
-Technology Guide</title><shortdesc>This document provides background information on the internal workings
-of SQLite, the database engine used by Symbian SQL.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-54B0C26F-873B-4FDD-9CB6-163B65789ABF"><title>Purpose</title> <p>SQLite is a fast efficient database engine
-freely available to anyone to use in any way the want. The information in
-this document provides important background information that you will need
-to know in order to make the most of Symbian SQL and SQLite on Symbian platform. </p> </section>
-<section id="GUID-ECAB0622-BF6B-43F8-ACC9-0E64E95A164E"><title>Intended audience:</title> <p>This document is intended to
-be used by Symbian platform developrs and third party application developers. </p> </section>
-<section id="GUID-612B113B-C89E-5870-A586-F163D333A19B"><title>The architecture
-and operation of SQLite</title> <p>The figure below shows the major modules
-within SQLite. SQL statements that are to be processed are sent to the SQL
-Compiler module which does a syntactic and semantic analysis of the SQL statements
-and generates bytecode for carrying out the work of each statement. The generated
-bytecode is then handed over to a Virtual Machine for evaluation. </p> <fig id="GUID-370A849E-D1CC-5510-9211-D732C2D1DF6B">
-<title>              Simplified SQLite Architecture            </title>
-<image href="GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e372605_href.png" placement="inline"/>
-</fig> <p>The Virtual Machine considers the database to be a set of B-Trees,
-one B-Tree for each table and one B-Tree for each index. The logic for creating,
-reading, writing, updating, balancing and destroying B-Trees is contained
-in the B-Tree module. </p> <p>The B-Tree module uses the Pager module to access
-individual pages of the database file. The Pager module abstracts the database
-file into zero or more fixed-sized pages with atomic commit and rollback semantics. </p> <p>All
-interaction with the underlying file system and operating system occurs through
-the OS Adaptation Layer. </p> <p id="GUID-9AEF6B71-B6B6-5A83-9ED2-547BB60A6752"><b>SQL Statements as Computer
-Programs</b> </p> <p>A key to understanding the operation of SQLite, or any
-other SQL relational database engine, is to recognize that each statement
-of SQL is really a small computer program. </p> <p>Users of SQL database engines
-sometimes fail to grasp this simple truth because SQL is a peculiar programming
-language. In most other computer languages the programmer must specify exactly <i>how</i> a
-computation is to take place. But in SQL the programmer specifies <i>what</i> results
-are needed and lets the SQL Compiler worry about how to achieve them. </p> <p>All
-SQL database engines contain a SQL Compiler of some kind. The job of this
-compiler is to convert SQL statements into procedural programs for obtaining
-the desired result. Most SQL database engines translate SQL statements into
-tree structures. The Virtual Machine modules of these databases then walk
-these tree structures to evaluate the SQL statements. A few SQL database engines
-translate SQL statements into native machine code. </p> <p>SQLite takes an
-intermediate approach and translates SQL statements into small programs written
-in a bytecode language. The SQLite bytecode is similar in concept to Java
-bytecode, the parrot bytecode of Perl, or to the p-code of the UCSD Pascal
-implementation. SQLite bytecode consists of operators that work with values
-contained in registers or on a stack. Typical bytecode operators do things
-like: </p> <ul>
-<li id="GUID-75B81AB2-56C8-5D76-AA4C-D2E1CBF3B868"><p>Push a literal value
-onto the stack </p> </li>
-<li id="GUID-4E4C868D-18BD-5B2C-9188-8303EEA062B7"><p>Pop two numbers off
-of the stack, add them together and push the result back onto the stack </p> </li>
-<li id="GUID-1B17CC17-D06C-5883-AC1C-768E87E60BF0"><p>Move the top element
-of the stack into a specific memory register </p> </li>
-<li id="GUID-B475E9E0-FE03-5C1F-9C2E-F35C866D53B3"><p>Jump to a specific instruction
-if the top element of the stack is zero </p> </li>
-</ul> <p>The SQLite bytecode supports about 125 different opcodes. There is
-a remarkable resemblance between SQLite bytecode and assembly language. The
-major difference is that SQLite bytecode contains a few specialized opcodes
-designed to facilitate database operations that commonly occur in SQL. </p> <p>Just
-as you do not need to understand the details of x86 or ARM7 assembly language
-in order to make effective use of C++, so also you do not need to know any
-of the details of SQLite bytecode in order to make the best use of SQLite.
-The reader need only recognize that the bytecode is there and is being used
-behind the scenes. </p> <p>Those who are interested can peruse the definitions
-of the bytecodes in the SQLite documentation. But the details of the various
-bytecodes are not important to making optimal use of SQLite and so no further
-details on the bytecodes will be provided in this document. </p> <p id="GUID-AFB97D35-56B8-5B12-8B6A-0AC6A4DC9088"><b>The B-Tree Module</b> </p> <p>A
-SQLite database file consists of one or more b-trees. Each table and each
-index is a separate b-tree. </p> <p>A b-tree is a data structure discovered
-in 1970 by Rudolf Bayer and Edward McCreight and is widely used in the implementation
-of databases. B-trees provide an efficient means of organizing data stored
-on an external storage device with fixed-sized blocks, such as a disk drive
-or a flash memory card. Each entry in a b-tree has a unique key and arbitrary
-data. The entries are ordered by their key which permits efficient lookup
-using a binary search. The b-tree algorithm guarantees worst-case insert,
-update, and access times of O(log N) where N is the number of entries. </p> <p>In
-SQLite, each table is a separate b-tree and each row of the table is a separate
-entry. The b-tree key is the RowID or INTEGER PRIMARY KEY for the row and
-other columns in the row are stored in the data for the b-tree entry. Tables
-use a variant of the b-tree algorithm call <i>b+trees</i> in which all data
-is stored on the leaves of the tree. </p> <p>Indexes are also stored as b-trees
-with one entry in the b-tree for each row of the table being indexed. The
-b-tree key is composed of the values for the columns being indexed followed
-by the RowID of the corresponding row in the table. Indexes do not use the
-data part of the b-tree entry. Indexes use the original Bayer and McCreight
-b-tree algorithm, not b+trees as tables do. </p> <p>The number of pages in
-a b-tree can grow and shrink as information is inserted and removed. When
-new information is inserted and the b-tree needs to grow, the B-Tree Module
-may reuse pages in the database that have fallen into disuse or it may ask
-the Pager module to allocate new pages at the end of the database file to
-accommodate this growth. When a b-tree shrinks and pages are no longer needed,
-the surplus pages are added to a <i>free-list</i> to be reused by future page
-requests. The B-Tree module takes care of managing this free-list of unused
-pages. </p> <p id="GUID-640FDE57-C615-55AF-9579-79B0D718A78E"><b>The Pager Module</b> </p> <p>The
-Pager module (also called simply “the pager”) manages the reading and writing
-of raw data from the database file such that reads are always consistent and
-isolated and so that writes are atomic. </p> <p>The pager treats the database
-file as a sequence of zero or more fixed-size pages. A typical page size might
-be 1024 bytes. Within a single database all pages are the same size. The first
-page of a database file is called page 1. The second is page 2. There is no
-page 0. SQLite uses a page number of 0 internally to mean “no such page”. </p> <p>When
-the B-Tree module needs a page of data from the database file, it asks for
-the page by number from the pager. The pager then returns a pointer to the
-requested data. The pager keeps a cache of recently accessed database pages
-so in many cases no disk I/O has to occur to fulfil a page request. </p> <p>The
-B-Tree module notifies the pager before making any changes to a page and the
-pager then saves a copy of the original page content in a rollback journal
-file. The rollback journal is used to restore the database to its original
-state if a ROLLBACK occurs. </p> <p>After making changes to one or more pages,
-the B-Tree Module may ask the pager to commit those changes. The pager then
-goes through a carefully designed sequence of steps that ensure that changes
-to the database are atomic. If the update process is interrupted by a program
-crash, a system crash, or even a power failure, the next time the database
-is accessed it will appear that either all the changes were made or else none
-of them. </p> <p id="GUID-3C970D41-7611-5AF6-B5B4-C486B5DA3875"><b>Database File Format Summary</b> </p> <p>A
-SQLite database file consists of one or more fixed-sized pages. The first
-page contains a 100-byte header that identifies the file as a SQLite database
-and which contains operating parameters such as the page size, a file format
-version number, the first page of the free-list, flags indicating whether
-or not autovacuum is enabled, and so forth. </p> <p>The content of the database
-is stored in one or more b-trees. Each b-tree has <i>root </i> page which
-never moves. If the table or index is small enough to fit entirely on the
-root page, then that one page contains everything there is to know about the
-table or index. But most tables and indexes require more space and additional
-pages must be allocated. </p> <p>The root page contains pointers (actually
-page numbers) to the other pages in the b-tree. So given the root page of
-a b-tree that implements a table or index, the B-Tree module is able to follow
-pointers to locate any entry in the b-tree and thus any row in the corresponding
-table or index. </p> <p><note> Auxiliary pages of a b-tree can be allocated
-from anywhere within the database file and so the pages numbers of auxiliary
-pages will change as information is added and removed from the b-tree. But
-the root page never moves. When a new table or index is created, its root
-page is assigned and remains unchanged for the lifetime of the table or index.</note> </p> <p>Every
-SQLite database contains a master table which stores the database schema.
-Each row of the master table holds information about a single table, index,
-view or trigger, including the original <codeph>CREATE</codeph> statement
-that created that table, index, view or trigger. Rows that define tables and
-indexes also record the root page number for the b-tree that stores the table
-or index. The root page of the master table is always page 1 of the database
-file, so SQLite always knows how to locate it. And from the master table it
-can learn the root page of every other table and index in the database and
-thus locate any information in the database. </p> <p id="GUID-72EACB86-5E22-5DF1-A7E6-1233DC647867"><b>An Example of SQLite in
-Operation</b> </p> <p>This is what happens inside SQLite during a typical
-usage scenario: When the SQL server instructs SQLite to open a database, the
-SQLite library allocates a data structure to hold everything it will ever
-need to know about that database connection. It also asks the pager to open
-the database file, but does not immediately try to read anything or even verify
-that the file is a valid database. </p> <p>The first time you actually try
-to access the database, SQLite will look at the 100-byte header of the database
-file to verify that the file is a SQLite database and to extract operating
-parameters such as the database page size. </p> <p>After checking the header
-SQLite opens and reads the entire master table. Recall that the master table
-contains entries for every table, index, view and trigger in the database
-and that each entry includes the complete text of the <codeph>CREATE</codeph> statement
-that originally created the table, index, view or trigger. </p> <p>SQLite
-parses these <codeph>CREATE</codeph> statements in order to rebuild an internal
-symbol table holding the names and properties of all tables, indexes, triggers
-and views in the database schema. </p> <p>Among the values stored in the header
-of the database is a 32-bit <i>schema cookie</i>. The schema cookie is changed
-whenever the database schema is modified by creating or dropping a table,
-index, trigger, or view. </p> <p>When SQLite parses the database schema into
-its internal symbol table, it remembers the schema cookie. Thereafter, whenever
-SQLite goes to access the database file, it first compares the schema cookie
-that it read when it parsed the schema to the current schema cookie value. </p> <p>If
-they match, everything continues normally, but if the schema cookie has changed
-that means that some other thread or process may have modified the database
-schema. When that happens, SQLite has to throw out its internal symbol table
-and reread and re-parse the entire database schema in order to figure out
-what might have changed. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname> RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-DF9C2258-9BAA-38F0-9B11-21CD00316912"><apiname>RSqlStatement::Prepare()</apiname></xref> API
-is used to interface with SQLite’s SQL Compiler. The <codeph>Prepare()</codeph> API
-triggers tokenizing, parsing, and compilation of a SQL statement into the
-internal bytecode representation that is used by the Virtual Machine. The
-generated bytecode is stored in an object returned by SQLite often referred
-to as a <i>prepared statement</i>. </p> <p>After compiling a SQL statement
-into a prepared statement you can pass it to the Virtual Machine to be run.
-This is the job of <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-C8BBAAA8-0468-3330-B601-391443C1C410"><apiname>RSqlStatement::Next()</apiname></xref> and <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-52E3CE72-D495-388F-8829-952E32F0F37D"><apiname>RSqlStatement::Exec()</apiname></xref> APIs.
-These interfaces cause the bytecode contained in the prepared statement to
-be run until it either completes or until it hits a breakpoint. </p> <p>A
-breakpoint is hit whenever a <codeph>SELECT</codeph> statement generates a
-row of result that needs to be returned. When a breakpoint is hit SQLite returns
-control to the caller. </p> <p>The bytecode in a prepared statement object
-is such that whenever a breakpoint occurs, a single row of the result of a
-SELECT statement is contained on the stack of the Virtual Machine. At this
-point column accessor functions can be used to retrieve individual column
-values. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-F4D9F7EC-6FB5-3786-9C37-26ADEC1A6867"><apiname>RSqlStatement::Reset()</apiname></xref> can be called on
-a prepared statement at any time. This rewinds the program counter of the
-Virtual Machine back to the beginning and clears the stack, thus leaving the
-prepared statement in a state where it is ready to start over again from the
-beginning. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname> RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-916A5F7B-9B00-31D9-A945-075353D3915E"><apiname>RSqlStatement::Close()</apiname></xref> API
-is merely a destructor for the prepared statement object. It calls <codeph>Reset()</codeph> to
-clear the virtual machine stack if necessary, deallocates the generated bytecode,
-and frees the container object. </p> <p>Similarly, <xref href="GUID-F3D1D883-6212-3276-9C1F-131A61F2B425.dita"><apiname>RSqlDatabase’</apiname></xref> s <codeph>Close()</codeph> API
-is just a destructor for a server-side object created by SQLite when the database
-was opened. SQLite asks the pager module to close the database file, clears
-the symbol table, and de-allocates all associated memory. </p> </section>
-</conbody><related-links>
-<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
-</link>
-<link href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita"><linktext>SQL DB Overview</linktext>
-</link>
-<link href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita"><linktext>SQL Server
-Guide</linktext></link>
-<link href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita"><linktext>Persistent
-Storage</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797" xml:lang="en"><title>SQLite
+Technology Guide</title><shortdesc>This document provides background information on the internal workings
+of SQLite, the database engine used by Symbian SQL.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-54B0C26F-873B-4FDD-9CB6-163B65789ABF"><title>Purpose</title> <p>SQLite is a fast efficient database engine
+freely available to anyone to use in any way the want. The information in
+this document provides important background information that you will need
+to know in order to make the most of Symbian SQL and SQLite on Symbian platform. </p> </section>
+<section id="GUID-ECAB0622-BF6B-43F8-ACC9-0E64E95A164E"><title>Intended audience:</title> <p>This document is intended to
+be used by Symbian platform developrs and third party application developers. </p> </section>
+<section id="GUID-612B113B-C89E-5870-A586-F163D333A19B"><title>The architecture
+and operation of SQLite</title> <p>The figure below shows the major modules
+within SQLite. SQL statements that are to be processed are sent to the SQL
+Compiler module which does a syntactic and semantic analysis of the SQL statements
+and generates bytecode for carrying out the work of each statement. The generated
+bytecode is then handed over to a Virtual Machine for evaluation. </p> <fig id="GUID-370A849E-D1CC-5510-9211-D732C2D1DF6B">
+<title>              Simplified SQLite Architecture            </title>
+<image href="GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e366524_href.png" placement="inline"/>
+</fig> <p>The Virtual Machine considers the database to be a set of B-Trees,
+one B-Tree for each table and one B-Tree for each index. The logic for creating,
+reading, writing, updating, balancing and destroying B-Trees is contained
+in the B-Tree module. </p> <p>The B-Tree module uses the Pager module to access
+individual pages of the database file. The Pager module abstracts the database
+file into zero or more fixed-sized pages with atomic commit and rollback semantics. </p> <p>All
+interaction with the underlying file system and operating system occurs through
+the OS Adaptation Layer. </p> <p id="GUID-9AEF6B71-B6B6-5A83-9ED2-547BB60A6752"><b>SQL Statements as Computer
+Programs</b> </p> <p>A key to understanding the operation of SQLite, or any
+other SQL relational database engine, is to recognize that each statement
+of SQL is really a small computer program. </p> <p>Users of SQL database engines
+sometimes fail to grasp this simple truth because SQL is a peculiar programming
+language. In most other computer languages the programmer must specify exactly <i>how</i> a
+computation is to take place. But in SQL the programmer specifies <i>what</i> results
+are needed and lets the SQL Compiler worry about how to achieve them. </p> <p>All
+SQL database engines contain a SQL Compiler of some kind. The job of this
+compiler is to convert SQL statements into procedural programs for obtaining
+the desired result. Most SQL database engines translate SQL statements into
+tree structures. The Virtual Machine modules of these databases then walk
+these tree structures to evaluate the SQL statements. A few SQL database engines
+translate SQL statements into native machine code. </p> <p>SQLite takes an
+intermediate approach and translates SQL statements into small programs written
+in a bytecode language. The SQLite bytecode is similar in concept to Java
+bytecode, the parrot bytecode of Perl, or to the p-code of the UCSD Pascal
+implementation. SQLite bytecode consists of operators that work with values
+contained in registers or on a stack. Typical bytecode operators do things
+like: </p> <ul>
+<li id="GUID-75B81AB2-56C8-5D76-AA4C-D2E1CBF3B868"><p>Push a literal value
+onto the stack </p> </li>
+<li id="GUID-4E4C868D-18BD-5B2C-9188-8303EEA062B7"><p>Pop two numbers off
+of the stack, add them together and push the result back onto the stack </p> </li>
+<li id="GUID-1B17CC17-D06C-5883-AC1C-768E87E60BF0"><p>Move the top element
+of the stack into a specific memory register </p> </li>
+<li id="GUID-B475E9E0-FE03-5C1F-9C2E-F35C866D53B3"><p>Jump to a specific instruction
+if the top element of the stack is zero </p> </li>
+</ul> <p>The SQLite bytecode supports about 125 different opcodes. There is
+a remarkable resemblance between SQLite bytecode and assembly language. The
+major difference is that SQLite bytecode contains a few specialized opcodes
+designed to facilitate database operations that commonly occur in SQL. </p> <p>Just
+as you do not need to understand the details of x86 or ARM7 assembly language
+in order to make effective use of C++, so also you do not need to know any
+of the details of SQLite bytecode in order to make the best use of SQLite.
+The reader need only recognize that the bytecode is there and is being used
+behind the scenes. </p> <p>Those who are interested can peruse the definitions
+of the bytecodes in the SQLite documentation. But the details of the various
+bytecodes are not important to making optimal use of SQLite and so no further
+details on the bytecodes will be provided in this document. </p> <p id="GUID-AFB97D35-56B8-5B12-8B6A-0AC6A4DC9088"><b>The B-Tree Module</b> </p> <p>A
+SQLite database file consists of one or more b-trees. Each table and each
+index is a separate b-tree. </p> <p>A b-tree is a data structure discovered
+in 1970 by Rudolf Bayer and Edward McCreight and is widely used in the implementation
+of databases. B-trees provide an efficient means of organizing data stored
+on an external storage device with fixed-sized blocks, such as a disk drive
+or a flash memory card. Each entry in a b-tree has a unique key and arbitrary
+data. The entries are ordered by their key which permits efficient lookup
+using a binary search. The b-tree algorithm guarantees worst-case insert,
+update, and access times of O(log N) where N is the number of entries. </p> <p>In
+SQLite, each table is a separate b-tree and each row of the table is a separate
+entry. The b-tree key is the RowID or INTEGER PRIMARY KEY for the row and
+other columns in the row are stored in the data for the b-tree entry. Tables
+use a variant of the b-tree algorithm call <i>b+trees</i> in which all data
+is stored on the leaves of the tree. </p> <p>Indexes are also stored as b-trees
+with one entry in the b-tree for each row of the table being indexed. The
+b-tree key is composed of the values for the columns being indexed followed
+by the RowID of the corresponding row in the table. Indexes do not use the
+data part of the b-tree entry. Indexes use the original Bayer and McCreight
+b-tree algorithm, not b+trees as tables do. </p> <p>The number of pages in
+a b-tree can grow and shrink as information is inserted and removed. When
+new information is inserted and the b-tree needs to grow, the B-Tree Module
+may reuse pages in the database that have fallen into disuse or it may ask
+the Pager module to allocate new pages at the end of the database file to
+accommodate this growth. When a b-tree shrinks and pages are no longer needed,
+the surplus pages are added to a <i>free-list</i> to be reused by future page
+requests. The B-Tree module takes care of managing this free-list of unused
+pages. </p> <p id="GUID-640FDE57-C615-55AF-9579-79B0D718A78E"><b>The Pager Module</b> </p> <p>The
+Pager module (also called simply “the pager”) manages the reading and writing
+of raw data from the database file such that reads are always consistent and
+isolated and so that writes are atomic. </p> <p>The pager treats the database
+file as a sequence of zero or more fixed-size pages. A typical page size might
+be 1024 bytes. Within a single database all pages are the same size. The first
+page of a database file is called page 1. The second is page 2. There is no
+page 0. SQLite uses a page number of 0 internally to mean “no such page”. </p> <p>When
+the B-Tree module needs a page of data from the database file, it asks for
+the page by number from the pager. The pager then returns a pointer to the
+requested data. The pager keeps a cache of recently accessed database pages
+so in many cases no disk I/O has to occur to fulfil a page request. </p> <p>The
+B-Tree module notifies the pager before making any changes to a page and the
+pager then saves a copy of the original page content in a rollback journal
+file. The rollback journal is used to restore the database to its original
+state if a ROLLBACK occurs. </p> <p>After making changes to one or more pages,
+the B-Tree Module may ask the pager to commit those changes. The pager then
+goes through a carefully designed sequence of steps that ensure that changes
+to the database are atomic. If the update process is interrupted by a program
+crash, a system crash, or even a power failure, the next time the database
+is accessed it will appear that either all the changes were made or else none
+of them. </p> <p id="GUID-3C970D41-7611-5AF6-B5B4-C486B5DA3875"><b>Database File Format Summary</b> </p> <p>A
+SQLite database file consists of one or more fixed-sized pages. The first
+page contains a 100-byte header that identifies the file as a SQLite database
+and which contains operating parameters such as the page size, a file format
+version number, the first page of the free-list, flags indicating whether
+or not autovacuum is enabled, and so forth. </p> <p>The content of the database
+is stored in one or more b-trees. Each b-tree has <i>root </i> page which
+never moves. If the table or index is small enough to fit entirely on the
+root page, then that one page contains everything there is to know about the
+table or index. But most tables and indexes require more space and additional
+pages must be allocated. </p> <p>The root page contains pointers (actually
+page numbers) to the other pages in the b-tree. So given the root page of
+a b-tree that implements a table or index, the B-Tree module is able to follow
+pointers to locate any entry in the b-tree and thus any row in the corresponding
+table or index. </p> <p><note> Auxiliary pages of a b-tree can be allocated
+from anywhere within the database file and so the pages numbers of auxiliary
+pages will change as information is added and removed from the b-tree. But
+the root page never moves. When a new table or index is created, its root
+page is assigned and remains unchanged for the lifetime of the table or index.</note> </p> <p>Every
+SQLite database contains a master table which stores the database schema.
+Each row of the master table holds information about a single table, index,
+view or trigger, including the original <codeph>CREATE</codeph> statement
+that created that table, index, view or trigger. Rows that define tables and
+indexes also record the root page number for the b-tree that stores the table
+or index. The root page of the master table is always page 1 of the database
+file, so SQLite always knows how to locate it. And from the master table it
+can learn the root page of every other table and index in the database and
+thus locate any information in the database. </p> <p id="GUID-72EACB86-5E22-5DF1-A7E6-1233DC647867"><b>An Example of SQLite in
+Operation</b> </p> <p>This is what happens inside SQLite during a typical
+usage scenario: When the SQL server instructs SQLite to open a database, the
+SQLite library allocates a data structure to hold everything it will ever
+need to know about that database connection. It also asks the pager to open
+the database file, but does not immediately try to read anything or even verify
+that the file is a valid database. </p> <p>The first time you actually try
+to access the database, SQLite will look at the 100-byte header of the database
+file to verify that the file is a SQLite database and to extract operating
+parameters such as the database page size. </p> <p>After checking the header
+SQLite opens and reads the entire master table. Recall that the master table
+contains entries for every table, index, view and trigger in the database
+and that each entry includes the complete text of the <codeph>CREATE</codeph> statement
+that originally created the table, index, view or trigger. </p> <p>SQLite
+parses these <codeph>CREATE</codeph> statements in order to rebuild an internal
+symbol table holding the names and properties of all tables, indexes, triggers
+and views in the database schema. </p> <p>Among the values stored in the header
+of the database is a 32-bit <i>schema cookie</i>. The schema cookie is changed
+whenever the database schema is modified by creating or dropping a table,
+index, trigger, or view. </p> <p>When SQLite parses the database schema into
+its internal symbol table, it remembers the schema cookie. Thereafter, whenever
+SQLite goes to access the database file, it first compares the schema cookie
+that it read when it parsed the schema to the current schema cookie value. </p> <p>If
+they match, everything continues normally, but if the schema cookie has changed
+that means that some other thread or process may have modified the database
+schema. When that happens, SQLite has to throw out its internal symbol table
+and reread and re-parse the entire database schema in order to figure out
+what might have changed. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname> RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-DF9C2258-9BAA-38F0-9B11-21CD00316912"><apiname>RSqlStatement::Prepare()</apiname></xref> API
+is used to interface with SQLite’s SQL Compiler. The <codeph>Prepare()</codeph> API
+triggers tokenizing, parsing, and compilation of a SQL statement into the
+internal bytecode representation that is used by the Virtual Machine. The
+generated bytecode is stored in an object returned by SQLite often referred
+to as a <i>prepared statement</i>. </p> <p>After compiling a SQL statement
+into a prepared statement you can pass it to the Virtual Machine to be run.
+This is the job of <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-C8BBAAA8-0468-3330-B601-391443C1C410"><apiname>RSqlStatement::Next()</apiname></xref> and <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-52E3CE72-D495-388F-8829-952E32F0F37D"><apiname>RSqlStatement::Exec()</apiname></xref> APIs.
+These interfaces cause the bytecode contained in the prepared statement to
+be run until it either completes or until it hits a breakpoint. </p> <p>A
+breakpoint is hit whenever a <codeph>SELECT</codeph> statement generates a
+row of result that needs to be returned. When a breakpoint is hit SQLite returns
+control to the caller. </p> <p>The bytecode in a prepared statement object
+is such that whenever a breakpoint occurs, a single row of the result of a
+SELECT statement is contained on the stack of the Virtual Machine. At this
+point column accessor functions can be used to retrieve individual column
+values. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-F4D9F7EC-6FB5-3786-9C37-26ADEC1A6867"><apiname>RSqlStatement::Reset()</apiname></xref> can be called on
+a prepared statement at any time. This rewinds the program counter of the
+Virtual Machine back to the beginning and clears the stack, thus leaving the
+prepared statement in a state where it is ready to start over again from the
+beginning. </p> <p> <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname> RSqlStatement</apiname></xref> ’s <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-916A5F7B-9B00-31D9-A945-075353D3915E"><apiname>RSqlStatement::Close()</apiname></xref> API
+is merely a destructor for the prepared statement object. It calls <codeph>Reset()</codeph> to
+clear the virtual machine stack if necessary, deallocates the generated bytecode,
+and frees the container object. </p> <p>Similarly, <xref href="GUID-F3D1D883-6212-3276-9C1F-131A61F2B425.dita"><apiname>RSqlDatabase’</apiname></xref> s <codeph>Close()</codeph> API
+is just a destructor for a server-side object created by SQLite when the database
+was opened. SQLite asks the pager module to close the database file, clears
+the symbol table, and de-allocates all associated memory. </p> </section>
+</conbody><related-links>
+<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
+</link>
+<link href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita"><linktext>SQL DB Overview</linktext>
+</link>
+<link href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita"><linktext>SQL Server
+Guide</linktext></link>
+<link href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita"><linktext>Persistent
+Storage</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2C74E932-B1CA-434B-AF96-66D52D689620.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2C74E932-B1CA-434B-AF96-66D52D689620.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2C74E932-B1CA-434B-AF96-66D52D689620" xml:lang="en"><title>Optional
-resource file statements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The resource file statements listed in the following are optional; Create
-resource file statements only for the UI components used by the application
-for which the default implementation is not used.</p>
-<p>For more information on resource statements for these components, see:</p>
-<ul>
-<li><p><xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA buttons</xref></p>
-</li>
-<li><p><xref href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita">Menu
-bar resource statements</xref></p></li>
-<li><p><xref href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita">View
-resource statements in the view architecture</xref></p>
-</li>
-<li><p><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI
-components</xref></p>
-<itemgroup>
-<p>Building an AVKON-based application UI is a primary choice for third-party
-add-on applications that do not need advanced customization. Such an approach
-guarantees compatibility across different Series 60 Developer Platform editions,
-but, in turn, puts some limitations on the application UI layout imposed by
-AVKON.  AVKON provides a wide choice of well-designed and versatile components,
-but not all of these are easily modifiable.</p>
-<note>
-<p>AVKON or AVKON-derived components should be favoured over custom <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived controls.  AVKON UI components <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">scale</xref> automatically
-according to screen resolution and orientation.</p>
-</note>
-<ul>
-<li><p><xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html.dita">Dialogs
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html.dita">Editors
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html.dita">Form
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html.dita">Grids
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html.dita">Lists
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html.dita">Notes
-API</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html.dita">Setting
-Pages API</xref></p></li>
-</ul>
-</itemgroup>
-</li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2C74E932-B1CA-434B-AF96-66D52D689620" xml:lang="en"><title>Optional
+resource file statements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The resource file statements listed in the following are optional; Create
+resource file statements only for the UI components used by the application
+for which the default implementation is not used.</p>
+<p>For more information on resource statements for these components, see:</p>
+<ul>
+<li><p><xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA buttons</xref></p>
+</li>
+<li><p><xref href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita">Menu
+bar resource statements</xref></p></li>
+<li><p><xref href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita">View
+resource statements in the view architecture</xref></p>
+</li>
+<li><p><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI components</xref></p>
+<itemgroup>
+<p>Building an AVKON-based application UI is a primary choice for third-party
+add-on applications that do not need advanced customization. Such an approach
+guarantees compatibility across different Series 60 Developer Platform editions,
+but, in turn, puts some limitations on the application UI layout imposed by
+AVKON.  AVKON provides a wide choice of well-designed and versatile components,
+but not all of these are easily modifiable.</p>
+<note>
+<p>AVKON or AVKON-derived components should be favoured over custom <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived controls.  AVKON UI components <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">scale</xref> automatically
+according to screen resolution and orientation.</p>
+</note>
+<ul>
+<li><p><xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html" scope="external">Dialogs
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="external">Editors
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="external">Form
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="external">Grids
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="external">Lists
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="external">Notes
+API</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="external">Setting
+Pages API</xref></p></li>
+</ul>
+</itemgroup>
+</li>
+</ul>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e323436_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-2C8F2C68-5D25-5DB8-973C-E9CA6882A3FB_d0e329593_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e57688_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e63133_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e68374_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e69226_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e74392_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F"><title>Camera Plug-in Overview</title><shortdesc>This document introduces you to the Camera Plug-in component overview. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Camera Plug-in component provides an actual implementation for the Camera Framework component. </p> </section> <section><title>Required background</title> <p>The Camera Plug-in component is implemented with the support of <filepath>EcamPluginSupport.dll</filepath>. It is expected that device creators can replace their own Camera Plug-in implementation. </p> <p> </p> </section> <section><title>Architecture</title> <p>The Camera Plug-in component interacts with the Camera Framework component. </p> <p>The architectural relationship between Camera Plug-in and Camera Framework is shown below: </p> <fig id="GUID-4CF11342-2015-59FC-9DFA-6656077D1869"><title>
-             Camera Plug-in Component Architecture 
-          </title> <image href="GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e327439_href.png" placement="inline"/></fig> </section> <section><title>APIs</title> <p>The Camera Plug-in component consists of the following library: </p> <table id="GUID-E6B4D190-F26D-54DD-9DDD-B927158C5868"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>ecamstubplugin.lib</filepath>  </p> </entry> <entry><p>The Camera Stub Plug-in library is used to support the <filepath>EcamPluginSupport.dll</filepath> which is in the Camera Framework component. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>Camera Plug-in is used as a symbian support implementation for the Camera Framework Ecom plug-ins. </p> </section> </conbody><related-links><link href="GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1.dita"><linktext>Camera Stub Plug-in
-                Overview</linktext> </link> <link href="GUID-B4C8B3D8-0272-577D-A669-C0AE84D035B4.dita"><linktext>Camera Plug-in Support</linktext> </link> <link href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"><linktext>Camera
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F"><title>Camera Plug-in Overview</title><shortdesc>This document introduces you to the Camera Plug-in component overview. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Camera Plug-in component provides an actual implementation for the Camera Framework component. </p> </section> <section><title>Required background</title> <p>The Camera Plug-in component is implemented with the support of <filepath>EcamPluginSupport.dll</filepath>. It is expected that device creators can replace their own Camera Plug-in implementation. </p> <p> </p> </section> <section><title>Architecture</title> <p>The Camera Plug-in component interacts with the Camera Framework component. </p> <p>The architectural relationship between Camera Plug-in and Camera Framework is shown below: </p> <fig id="GUID-4CF11342-2015-59FC-9DFA-6656077D1869"><title>
+             Camera Plug-in Component Architecture 
+          </title> <image href="GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e321282_href.png" placement="inline"/></fig> </section> <section><title>APIs</title> <p>The Camera Plug-in component consists of the following library: </p> <table id="GUID-E6B4D190-F26D-54DD-9DDD-B927158C5868"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>ecamstubplugin.lib</filepath>  </p> </entry> <entry><p>The Camera Stub Plug-in library is used to support the <filepath>EcamPluginSupport.dll</filepath> which is in the Camera Framework component. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>Camera Plug-in is used as a symbian support implementation for the Camera Framework Ecom plug-ins. </p> </section> </conbody><related-links><link href="GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1.dita"><linktext>Camera Stub Plug-in
+                Overview</linktext> </link> <link href="GUID-B4C8B3D8-0272-577D-A669-C0AE84D035B4.dita"><linktext>Camera Plug-in Support</linktext> </link> <link href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"><linktext>Camera
                 Framework Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7"><title>DevSound Overview </title><shortdesc>This document provides an overview of DevSound. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-2BC87F44-853D-5BA3-A9FC-835FFDCBB3D2"><title>Purpose</title> <p>DevSound provides a common API for all audio functionality. </p> </section> <section><title>DevSound library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-A97FC7E6-BE18-5396-94D1-85616B733C40"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>mmfdevsound.dll</filepath>  </p> </entry> <entry><p> <filepath>mmfdevsound.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing DevSound. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural relationship</title> <p>Shown below is a representation of how DevSound interacts with the MMF Controller Framework and other components: </p> <fig id="GUID-3E6084D4-6AAC-5111-BB16-5AAC8C0866C6"><title>
-             DevSound and related components 
-          </title> <image href="GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e333536_href.png" placement="inline"/></fig> <p>DevSound uses the following components: </p> <ul><li id="GUID-3ACA3CEA-E594-5013-A901-46E12B87FEB3"><p>Client - DevSound can be used by the following clients: </p> <ul><li id="GUID-78C197EE-156A-5677-A432-D20031027121"><p>applications </p> </li> <li id="GUID-947D1F4D-1350-5868-AD70-2B0576BB9954"><p>device creator library. </p> </li> </ul> </li> <li id="GUID-C96E468B-0CA8-5A26-9C92-620301AD0CAC"><p>MMF Controller Framework </p> <p>For audio playing, recording, and conversion, the MMF client APIs interact with the lower levels of the MMF, the controller framework. The controller framework helps to manage the interface to DevSound and provides controller plug-ins for playing, recording, and converting audio data. The controller framework has two main classes <xref href="GUID-9DEDFB0F-C963-3FB7-9237-DDDB276C8841.dita"><apiname>RMMFController</apiname></xref> and <xref href="GUID-123B3A78-9E84-3283-AB73-6B4293939A5D.dita"><apiname>CMMFController</apiname></xref>. </p> </li> <li id="GUID-A28BA7E0-DFFA-5149-BC80-5C46728CD1B4"><p>Controller Plug-in </p> <p>Depending on the functionality required by the client, the MMF controller framework loads the appropriate controller plug-ins. The plug-ins perform the required operations by communicating with DevSound and/or DevVideo, codecs and hardware. </p> <p>Custom controller plug-ins can be written to extend the MMF framework. For more information, see <xref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita#GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8/GUID-215B50CF-605A-58BA-8E87-CAB942F11741">How to write a controller plug-in</xref>. </p> </li> <li id="GUID-50F1D619-E6CB-5775-9B5E-181533FCB9BA"><p>Audio Policy </p> <p>The Audio Policy component manages requests to access the audio hardware. For example, if DevSound needs to acquire the hardware for playing audio, it makes a request to the Audio Policy component. Depending on the priority of the request, the Audio Policy component grants or denies access to the hardware. DevSound must obey the Audio Policy. </p> </li> <li id="GUID-F62F289A-10FC-5B23-A2D3-8CFE759C6516"><p>Codecs </p> <p>DevSound uses codecs to convert multimedia data between different encodings. </p> <p>Custom codec plug-ins can be written. For more information, see <xref href="GUID-7261FEC6-5AA6-555C-AB72-2173BD3F1FA5.dita">How to write a codec plug-in</xref>. </p> </li> <li id="GUID-62CC1178-82A9-54F4-BF35-040549782703"><p>Hardware Device API </p> <p>For audio functionality, the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> plug-in class acts as the DevSound interface to the audio processing hardware. </p> </li> </ul> </section> <section><title>Description</title> <p>DevSound provides the interface between the Symbian platform and the audio processing hardware for all audio functionality. DevSound is responsible for providing access to audio resources, configuring audio hardware, and audio playback and recording. </p> </section> <section><title>Key DevSound classes</title> <p>The DevSound API comprises the following classes: </p> <ul><li id="GUID-91A3D022-6579-5B12-B875-0F2C1633AA71"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> is the class which forms the DevSound API. </p> </li> <li id="GUID-6A729721-8110-5080-84F9-8FA3C90D7DB0"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> provides callbacks to users of the DevSound API. It serves as the method of communication between a client and DevSound. For example, <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> handles completion and cancellation requests for audio playing, recording, and conversion. </p> </li> </ul> </section> <section><title>Using DevSound</title> <p>DevSound offers the following main functions which can be used by DevSound clients: </p> <ul><li id="GUID-19A29FFB-C754-5B17-AEE0-1CFF6E001C14"><p>Audio Settings </p> <p>DevSound can be used to initialise and configure hardware devices, for example, set microphone gain and stereo balance. </p> </li> <li id="GUID-9FD9635B-FFB1-5DBD-AFB4-5A99A4C01DEC"><p>Audio Play </p> <p>DevSound can be used to play buffered audio data. </p> </li> <li id="GUID-88977E75-871D-5AB4-A208-DD9D8338962E"><p>Audio Record </p> <p>DevSound can be used to record audio data. </p> </li> <li id="GUID-30AC0EC2-49E8-54EA-B1EC-3122661017AF"><p>Audio Convert </p> <p>DevSound can be used to convert the type, sample rate and format of audio data. </p> </li> <li id="GUID-EBD316B2-FD0E-5737-89F1-2DB806CB2453"><p>Tone Play </p> <p>DevSound can play a single tone, tone sequence or Dual Tone Multi-Frequency (DTMF) string. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"><linktext>Playing audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Recording Audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Playing tones</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7"><title>DevSound Overview </title><shortdesc>This document provides an overview of DevSound. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-2BC87F44-853D-5BA3-A9FC-835FFDCBB3D2"><title>Purpose</title> <p>DevSound provides a common API for all audio functionality. </p> </section> <section><title>DevSound library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-A97FC7E6-BE18-5396-94D1-85616B733C40"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>mmfdevsound.dll</filepath>  </p> </entry> <entry><p> <filepath>mmfdevsound.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing DevSound. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural relationship</title> <p>Shown below is a representation of how DevSound interacts with the MMF Controller Framework and other components: </p> <fig id="GUID-3E6084D4-6AAC-5111-BB16-5AAC8C0866C6"><title>
+             DevSound and related components 
+          </title> <image href="GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e327379_href.png" placement="inline"/></fig> <p>DevSound uses the following components: </p> <ul><li id="GUID-3ACA3CEA-E594-5013-A901-46E12B87FEB3"><p>Client - DevSound can be used by the following clients: </p> <ul><li id="GUID-78C197EE-156A-5677-A432-D20031027121"><p>applications </p> </li> <li id="GUID-947D1F4D-1350-5868-AD70-2B0576BB9954"><p>device creator library. </p> </li> </ul> </li> <li id="GUID-C96E468B-0CA8-5A26-9C92-620301AD0CAC"><p>MMF Controller Framework </p> <p>For audio playing, recording, and conversion, the MMF client APIs interact with the lower levels of the MMF, the controller framework. The controller framework helps to manage the interface to DevSound and provides controller plug-ins for playing, recording, and converting audio data. The controller framework has two main classes <xref href="GUID-9DEDFB0F-C963-3FB7-9237-DDDB276C8841.dita"><apiname>RMMFController</apiname></xref> and <xref href="GUID-123B3A78-9E84-3283-AB73-6B4293939A5D.dita"><apiname>CMMFController</apiname></xref>. </p> </li> <li id="GUID-A28BA7E0-DFFA-5149-BC80-5C46728CD1B4"><p>Controller Plug-in </p> <p>Depending on the functionality required by the client, the MMF controller framework loads the appropriate controller plug-ins. The plug-ins perform the required operations by communicating with DevSound and/or DevVideo, codecs and hardware. </p> <p>Custom controller plug-ins can be written to extend the MMF framework. For more information, see <xref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita#GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8/GUID-215B50CF-605A-58BA-8E87-CAB942F11741">How to write a controller plug-in</xref>. </p> </li> <li id="GUID-50F1D619-E6CB-5775-9B5E-181533FCB9BA"><p>Audio Policy </p> <p>The Audio Policy component manages requests to access the audio hardware. For example, if DevSound needs to acquire the hardware for playing audio, it makes a request to the Audio Policy component. Depending on the priority of the request, the Audio Policy component grants or denies access to the hardware. DevSound must obey the Audio Policy. </p> </li> <li id="GUID-F62F289A-10FC-5B23-A2D3-8CFE759C6516"><p>Codecs </p> <p>DevSound uses codecs to convert multimedia data between different encodings. </p> <p>Custom codec plug-ins can be written. For more information, see <xref href="GUID-7261FEC6-5AA6-555C-AB72-2173BD3F1FA5.dita">How to write a codec plug-in</xref>. </p> </li> <li id="GUID-62CC1178-82A9-54F4-BF35-040549782703"><p>Hardware Device API </p> <p>For audio functionality, the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> plug-in class acts as the DevSound interface to the audio processing hardware. </p> </li> </ul> </section> <section><title>Description</title> <p>DevSound provides the interface between the Symbian platform and the audio processing hardware for all audio functionality. DevSound is responsible for providing access to audio resources, configuring audio hardware, and audio playback and recording. </p> </section> <section><title>Key DevSound classes</title> <p>The DevSound API comprises the following classes: </p> <ul><li id="GUID-91A3D022-6579-5B12-B875-0F2C1633AA71"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> is the class which forms the DevSound API. </p> </li> <li id="GUID-6A729721-8110-5080-84F9-8FA3C90D7DB0"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> provides callbacks to users of the DevSound API. It serves as the method of communication between a client and DevSound. For example, <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> handles completion and cancellation requests for audio playing, recording, and conversion. </p> </li> </ul> </section> <section><title>Using DevSound</title> <p>DevSound offers the following main functions which can be used by DevSound clients: </p> <ul><li id="GUID-19A29FFB-C754-5B17-AEE0-1CFF6E001C14"><p>Audio Settings </p> <p>DevSound can be used to initialise and configure hardware devices, for example, set microphone gain and stereo balance. </p> </li> <li id="GUID-9FD9635B-FFB1-5DBD-AFB4-5A99A4C01DEC"><p>Audio Play </p> <p>DevSound can be used to play buffered audio data. </p> </li> <li id="GUID-88977E75-871D-5AB4-A208-DD9D8338962E"><p>Audio Record </p> <p>DevSound can be used to record audio data. </p> </li> <li id="GUID-30AC0EC2-49E8-54EA-B1EC-3122661017AF"><p>Audio Convert </p> <p>DevSound can be used to convert the type, sample rate and format of audio data. </p> </li> <li id="GUID-EBD316B2-FD0E-5737-89F1-2DB806CB2453"><p>Tone Play </p> <p>DevSound can play a single tone, tone sequence or Dual Tone Multi-Frequency (DTMF) string. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"><linktext>Playing audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Recording Audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Playing tones</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC"><title>Structure of a Message Store</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section provides information about the Message Store entries. </p> <p>Message Framework provides a tree view of entries in a Message Store. The tree is divided into three levels: root entry, service entry, and folder and message entry, which are provided <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref>. The child entries of the root entry must be service entries. A message client application can begin from the root entry, and by successively finding the children of an entry, can traverse the whole entry tree. The parent of each entry is recorded in the index entry's details. </p> <p>The following figure illustrates how services are placed below a root entry. </p> <fig id="GUID-7832A21A-381A-5B5B-96ED-CF238039944F"><title>
-          Message Store 
-        </title> <image href="GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e281557_href.png" placement="inline"/></fig> <ul><li id="GUID-C5AE5A9E-F382-5D56-9EE3-C70C338E2D02"><p> <b>1:</b>  <b>Root entry</b> —This entry is just present to tie the tree structure together. </p> </li> <li id="GUID-F88FF1E1-D679-5413-BEE8-1574C54C9754"><p> <b>2:</b> <b> Service entry</b> —This level used for settings information, usually to set up communication protocols, for example, ISP settings. There is one local service under which local folders and messages are stored, and zero or more remote services. Remote services represent message accounts. </p> <p>There are two types of service entry: </p> <ul><li id="GUID-34454E69-A768-5102-84CD-D2F172C00BBE"><p> <b>Remote Services:</b> These represent message accounts stored on remote stores such as email servers and the SIM store of SMS messages. </p> </li> <li id="GUID-F4284F86-B486-5056-A3D9-681F07407112"><p> <b>Local Services:</b> There is a single local service under which local folders and messages are stored. </p> <p>The Message Server handles changes to local entries. Internally it may delegate changes to remote entries, such as copying and moving messages to and from a remote service, to the server MTM that owns that service. </p> </li> </ul> <fig id="GUID-E2FBA9E3-6AFB-56F4-A2B4-45FE4E41A024"><title>
-                Remote and local entries 
-             </title> <image href="GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e281609_href.png" placement="inline"/></fig> </li> <li id="GUID-035D9E45-6546-5551-91FF-214AE81DCEE7"><p> <b>3: </b> <b> Folder entries and message entries</b> — Folders entries are used to group a number of message entries. For more information on folders, see <xref href="GUID-21C03739-FF80-5874-A32B-F22DED13D18D.dita">Message folders</xref>. Messages store the content of a message. Message entries can have child entries which represent the structure of a message. </p> <p>Folders and messages under the local service represent messages stored on the device. Folders and messages under remote services represent a local copy of messages that are present on a remote server. For example, under a POP3 email service you can have copies of all the messages present on the POP3 email server, and under an SMS service you can have SMS messages that are stored on a SIM. </p> <p>Each message entry also has an associated service ID. The service ID is associated with a service entry whose settings is used in all Messaging operations on that message entry. </p> </li> </ul> <section><title>Validity of the Message Store</title> <p>The structure of the Message store is considered to be valid only if an index entry conforms to the following rules: </p> <ul><li id="GUID-7DB69487-9E0B-5D8F-BD7A-83A62F1BF4D2"><p>A non-service entry cannot be owned by root and must have its service ID field set. </p> </li> <li id="GUID-207256FE-42CB-56D3-9008-DB8B8F3A3171"><p>A service entry must be owned by root and have the service ID of itself. </p> </li> </ul> <p> <b>Important:</b> The Message Server controls access to the entries in the store. It enforces the three levels; therefore, attempts to create message or folder entries directly under the root entry fails. </p> </section> </conbody><related-links><link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server and Store</linktext> </link> <link href="GUID-C290FA5E-8E41-5D19-B8C1-F88491EE6388.dita"><linktext> Messaging Framework</linktext> </link> <link href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita"><linktext>Message Server and Store
-                Concepts</linktext> </link> <link href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita"><linktext>Message Server and Store
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC"><title>Structure of a Message Store</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section provides information about the Message Store entries. </p> <p>Message Framework provides a tree view of entries in a Message Store. The tree is divided into three levels: root entry, service entry, and folder and message entry, which are provided <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref>. The child entries of the root entry must be service entries. A message client application can begin from the root entry, and by successively finding the children of an entry, can traverse the whole entry tree. The parent of each entry is recorded in the index entry's details. </p> <p>The following figure illustrates how services are placed below a root entry. </p> <fig id="GUID-7832A21A-381A-5B5B-96ED-CF238039944F"><title>
+          Message Store 
+        </title> <image href="GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e277871_href.png" placement="inline"/></fig> <ul><li id="GUID-C5AE5A9E-F382-5D56-9EE3-C70C338E2D02"><p> <b>1:</b>  <b>Root entry</b> —This entry is just present to tie the tree structure together. </p> </li> <li id="GUID-F88FF1E1-D679-5413-BEE8-1574C54C9754"><p> <b>2:</b> <b> Service entry</b> —This level used for settings information, usually to set up communication protocols, for example, ISP settings. There is one local service under which local folders and messages are stored, and zero or more remote services. Remote services represent message accounts. </p> <p>There are two types of service entry: </p> <ul><li id="GUID-34454E69-A768-5102-84CD-D2F172C00BBE"><p> <b>Remote Services:</b> These represent message accounts stored on remote stores such as email servers and the SIM store of SMS messages. </p> </li> <li id="GUID-F4284F86-B486-5056-A3D9-681F07407112"><p> <b>Local Services:</b> There is a single local service under which local folders and messages are stored. </p> <p>The Message Server handles changes to local entries. Internally it may delegate changes to remote entries, such as copying and moving messages to and from a remote service, to the server MTM that owns that service. </p> </li> </ul> <fig id="GUID-E2FBA9E3-6AFB-56F4-A2B4-45FE4E41A024"><title>
+                Remote and local entries 
+             </title> <image href="GUID-19B2E0BF-9766-55C6-A37F-188A9EDAFF39_d0e277923_href.png" placement="inline"/></fig> </li> <li id="GUID-035D9E45-6546-5551-91FF-214AE81DCEE7"><p> <b>3: </b> <b> Folder entries and message entries</b> — Folders entries are used to group a number of message entries. For more information on folders, see <xref href="GUID-21C03739-FF80-5874-A32B-F22DED13D18D.dita">Message folders</xref>. Messages store the content of a message. Message entries can have child entries which represent the structure of a message. </p> <p>Folders and messages under the local service represent messages stored on the device. Folders and messages under remote services represent a local copy of messages that are present on a remote server. For example, under a POP3 email service you can have copies of all the messages present on the POP3 email server, and under an SMS service you can have SMS messages that are stored on a SIM. </p> <p>Each message entry also has an associated service ID. The service ID is associated with a service entry whose settings is used in all Messaging operations on that message entry. </p> </li> </ul> <section><title>Validity of the Message Store</title> <p>The structure of the Message store is considered to be valid only if an index entry conforms to the following rules: </p> <ul><li id="GUID-7DB69487-9E0B-5D8F-BD7A-83A62F1BF4D2"><p>A non-service entry cannot be owned by root and must have its service ID field set. </p> </li> <li id="GUID-207256FE-42CB-56D3-9008-DB8B8F3A3171"><p>A service entry must be owned by root and have the service ID of itself. </p> </li> </ul> <p> <b>Important:</b> The Message Server controls access to the entries in the store. It enforces the three levels; therefore, attempts to create message or folder entries directly under the root entry fails. </p> </section> </conbody><related-links><link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server and Store</linktext> </link> <link href="GUID-C290FA5E-8E41-5D19-B8C1-F88491EE6388.dita"><linktext> Messaging Framework</linktext> </link> <link href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita"><linktext>Message Server and Store
+                Concepts</linktext> </link> <link href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita"><linktext>Message Server and Store
                 Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e135601_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e142135_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2D93660B-8206-5D20-85F5-6FFCF4549127.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2D93660B-8206-5D20-85F5-6FFCF4549127.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2D93660B-8206-5D20-85F5-6FFCF4549127" xml:lang="en"><title>Persistent
-stores</title><shortdesc>A store is persistent if you can close it, re-open it, and then
-gain access to the same data.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A persistent store has the concept of a root stream. The root stream is,
-in effect, the starting point from which all others streams within the store
-can be found.</p>
-<p>Before closing a persistent store you have created, you must set the ID
-of the root stream. After you have opened the persistent store, the first
-thing you must do is look up the root stream ID. You can then open the root
-stream and start reading data from the store.</p>
-<p>Persistent stores are represented by the abstract class <codeph>CPersistentStore</codeph>.
-This class, derived from <codeph>CStreamStore</codeph> has the root stream
-ID and expands on the abstract framework provided by <codeph>CStreamStore</codeph>,
-by adding behaviour for setting and retrieving the root stream ID.</p>
-<p>File stores are an example of persistent stores.</p>
-<p>The following diagram shows the idea of a persistent store with a root
-stream:</p>
-<fig id="GUID-8A987703-9602-563A-97D9-6DD6012708C4">
-<title>Persistent store with a root stream</title>
-<image href="GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e361365_href.png" placement="inline"/>
-</fig>
-<section id="GUID-DD8F38F5-503A-46A5-AF28-74A1DE08E867"><title>See also</title> <p><xref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita">File
-stores</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2D93660B-8206-5D20-85F5-6FFCF4549127" xml:lang="en"><title>Persistent
+stores</title><shortdesc>A store is persistent if you can close it, re-open it, and then
+gain access to the same data.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A persistent store has the concept of a root stream. The root stream is,
+in effect, the starting point from which all others streams within the store
+can be found.</p>
+<p>Before closing a persistent store you have created, you must set the ID
+of the root stream. After you have opened the persistent store, the first
+thing you must do is look up the root stream ID. You can then open the root
+stream and start reading data from the store.</p>
+<p>Persistent stores are represented by the abstract class <codeph>CPersistentStore</codeph>.
+This class, derived from <codeph>CStreamStore</codeph> has the root stream
+ID and expands on the abstract framework provided by <codeph>CStreamStore</codeph>,
+by adding behaviour for setting and retrieving the root stream ID.</p>
+<p>File stores are an example of persistent stores.</p>
+<p>The following diagram shows the idea of a persistent store with a root
+stream:</p>
+<fig id="GUID-8A987703-9602-563A-97D9-6DD6012708C4">
+<title>Persistent store with a root stream</title>
+<image href="GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e355285_href.png" placement="inline"/>
+</fig>
+<section id="GUID-DD8F38F5-503A-46A5-AF28-74A1DE08E867"><title>See also</title> <p><xref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita">File
+stores</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,44 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D" xml:lang="en"><title>smsexample:
-SMS example</title><shortdesc>This example code demonstrates how to send and receive SMS messages
-using the Messaging Framework APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-81E46301-8C03-5C36-B601-804D25C7C927"><title>Description</title> <p>This
-updated C++ example demonstrates programmatical handling of SMS messages.
-Messages can be sent from the application and they can be received directly
-into the application (that is, catching incoming messages before the user
-gets any notification). In addition, messages can be deleted, copied, or moved
-to other folders of the message store (inbox, outbox, drafts). The example
-has been updated to be compatible with S60 5th Edition and touch UI. Important
-classes: CMsvSession, CMsvEntry, CMmsClientMtm, CSmsClientMtm, CClientMtmRegistry,
-KMsvMessagePartBody, ESmsMtmCommandScheduleCopy, CSmsSettings, CSmsHeader. For
-more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/04802db9-ea13-48f3-b3e2-6ccf639bcbf7/S60_Platform_SMS_Example.html" scope="external"> sms example</xref></p> </section>
-<section id="GUID-878E4690-1F02-5C15-8B4E-F53E8EA8719D"><title>Download</title> <p>Click
-on the following link to download the example:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-e9c7c7d7-b4a1-4c58-bcbe-37fe6d0f4ce0.zip" scope="external"> smsexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-e9c7c7d7-b4a1-4c58-bcbe-37fe6d0f4ce0.html" scope="peer">browse</xref> to view the example code.</p> </section>
-<section id="GUID-2B5D9B09-1ACF-52E5-9FDF-FF6B03096162"><title>Building and
-configuring</title> <ul>
-<li id="GUID-FD731628-CA35-59F5-ABEB-9F6FC097965B"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-DDDF0872-174C-5C68-9068-282EE28B648D"><p>For the emulator, the
-example builds an executable called <filepath>smsexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita"><linktext>SMS MTM Overview</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D" xml:lang="en"><title>SMS
+example</title><shortdesc>This example code demonstrates how to send and receive SMS messages
+using the Messaging Framework APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-81E46301-8C03-5C36-B601-804D25C7C927"><title>Description</title> <p>This
+updated C++ example demonstrates programmatical handling of SMS messages.
+Messages can be sent from the application and they can be received directly
+into the application (that is, catching incoming messages before the user
+gets any notification). In addition, messages can be deleted, copied, or moved
+to other folders of the message store (inbox, outbox, drafts).</p> </section>
+<section id="GUID-878E4690-1F02-5C15-8B4E-F53E8EA8719D"><title>Download</title> <p>Click
+on the following link to download the example:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-e9c7c7d7-b4a1-4c58-bcbe-37fe6d0f4ce0.zip" scope="external"> smsexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-e9c7c7d7-b4a1-4c58-bcbe-37fe6d0f4ce0.html" scope="peer">browse</xref> to view the example code.</p> </section>
+<section id="GUID-5DB1579A-EA25-47AA-A2D9-31CA691B9014"><title>Classes</title> <p><xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession</apiname></xref></p><p><xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref></p><p><xref href="GUID-26D19946-B930-3E46-9081-8A1CD139EAFF.dita"><apiname>CMmsClientMtm</apiname></xref></p><p><xref href="GUID-C499ABDB-BA30-3D97-A850-D5790FE49634.dita"><apiname>CSmsClientMtm</apiname></xref></p><p><xref href="GUID-A0682D04-9084-3DC3-AA18-5B81A78A1DA8.dita"><apiname>CClientMtmRegistry</apiname></xref></p><p><xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref></p></section>
+<section id="GUID-2B5D9B09-1ACF-52E5-9FDF-FF6B03096162"><title>Building and
+configuring</title> <ul>
+<li id="GUID-FD731628-CA35-59F5-ABEB-9F6FC097965B"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-DDDF0872-174C-5C68-9068-282EE28B648D"><p>For the emulator, the
+example builds an executable called <filepath>smsexample.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita"><linktext>SMS MTM Overview</linktext>
+</link>
 </related-links></reference>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7" xml:lang="en"><title>How
+to create a CryptoSPI plug-in</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-B0B7D886-8759-4806-9BB2-CC378B3A37CC"><title>Introduction</title> <p><b>Note</b>:
+this document is intended for device manufacturers. </p> <p>The purpose of
+a CryptoSPI plug-in is to implement one or more cryptographic algorithms. </p> <p>Symbian
+provides a plug-in called <filepath>softwarecrypto.dll</filepath> that implements
+all algorithms supported by the legacy (pre-Symbian^3) cryptography APIs.
+In Symbian^3, the legacy APIs have all been re-implemented to use this plug-in
+DLL. The source code for <filepath>softwarecrypto.dll</filepath> is located
+under <filepath>src/common/generic/security/cryptospi/source/softwarecrypto/</filepath>. </p> <p>This
+is a summary of the steps involved in creating a plug-in, in no particular
+order. Details of each step are given in the rest of the document. </p> <ul>
+<li id="GUID-9E62C60F-AE68-57D4-939A-43631715D89C"><p> <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita#GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7/GUID-FFA64681-40E3-5DCE-A4EC-3EEC75A35D63">Create the MMP file</xref>. </p> </li>
+<li id="GUID-3726FB61-4B29-5AAF-AB57-A665DB1F6C0A"><p> <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita#GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7/GUID-4B845864-BB8E-5207-8210-A3F608DF6E69">Define the characteristics of the algorithms.</xref>  </p> </li>
+<li id="GUID-66A983CE-8D31-5B73-A326-4601B24F4C6B"><p> <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita#GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7/GUID-CA441465-BDAB-5B7A-B75D-3B877EBE346F">Implement all or a subset of the functions defined in pluginentrydef.h</xref>. </p> </li>
+<li id="GUID-AE856A3F-122C-50AF-BBB4-5A6136CA64B5"><p> <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita#GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7/GUID-6ECA8DAB-37C4-5D83-9DBC-10641AA7B636">Implement the MPlugin-derived objects</xref>. </p> </li>
+<li id="GUID-FE96900F-EBF2-528A-B0C6-2BA32DB65C77"><p> <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita#GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7/GUID-661CE3E1-2FAE-58E1-BBB7-2F72AA8714A2">Update the ROM configuration file</xref>. </p> </li>
+</ul> </section>
+<section id="GUID-FFA64681-40E3-5DCE-A4EC-3EEC75A35D63"><title>How to create
+the MMP file</title> <p>See for instance <filepath>src/common/generic/security/cryptospi/group/softwarecrypto.mmp</filepath>. </p> <codeblock id="GUID-842C71A7-45F4-5BFA-A088-BC4424741296" xml:space="preserve">TARGET softwarecrypto.dll
+TARGETTYPE dll
+
+UID        0x1000008d 0x102835C2
+VENDORID     0x70000001
+
+CAPABILITY    All
+
+DEFFILE        softwarecrypto.def
+
+USERINCLUDE        .
+USERINCLUDE        ..\inc 
+USERINCLUDE        ..\inc\spi
+SYSTEMINCLUDE    \epoc32\include
+SYSTEMINCLUDE    \epoc32\include\cryptospi
+
+SOURCEPATH    ..\source\softwarecrypto
+SOURCE pluginentry.cpp
+SOURCE md2impl.cpp md5impl.cpp sha1impl.cpp hmacimpl.cpp
+SOURCE 3desimpl.cpp desimpl.cpp rc2impl.cpp rijndaelimpl.cpp arc4impl.cpp symmetriccipherimpl.cpp
+SOURCE randomimpl.cpp dsasignerimpl.cpp dsaverifyimpl.cpp rsaimpl.cpp rsafunction.cpp
+SOURCE signerimpl.cpp verifierimpl.cpp asymmetriccipherimpl.cpp
+
+LIBRARY euser.lib cryptospi.lib
+
+// Depends on bigint and padding code
+LIBRARY cryptography.lib
+//Depends on random server for random number generation
+LIBRARY random.lib</codeblock> <p>Key points: </p> <ul>
+<li id="GUID-0C322CF3-197E-5773-A4BB-CDF4943BE588"><p> <codeph>0x1000008d</codeph> identifies
+the DLL as static (not polymorphic or an ECOM plug-in) and <codeph>0x102835C2</codeph> is
+unique to this plug-in, allocated by Symbian Signed. </p> </li>
+<li id="GUID-3D1094C3-A59C-58D0-9873-E5A24935785A"><p>It is recommended that
+plug-ins have <codeph>ALL</codeph> capabilities because this ensures that
+they can be loaded by client applications with any capabilities. </p> </li>
+<li id="GUID-47338BE3-4A8C-5B17-BF37-184F996B0A2C"><p>The project needs to
+link against <filepath>cryptospi.lib</filepath>, the CryptoSPI library. </p> </li>
+<li id="GUID-1A985A73-A776-5AE1-A4BD-4CC3227CE223"><p>The plug-in needs to
+link against <filepath>cryptography.lib</filepath> because big integers (<codeph>RInteger</codeph>)
+are implemented in <filepath>cryptography.dll</filepath>. </p> </li>
+<li id="GUID-7DEC5079-A30D-5D16-B2EC-FA03605691ED"><p> <codeph>SYSTEMINCLUDE
+\epoc32\include\cryptospi</codeph> allows code to <codeph>#include</codeph> the
+CryptoSPI header files, which are all exported to <filepath>epoc32\include\cryptospi\</filepath>. </p> </li>
+</ul> </section>
+<section id="GUID-4B845864-BB8E-5207-8210-A3F608DF6E69"><title>How to define
+the algorithm's characteristics</title> <p>All plug-ins must define the characteristics
+of their algorithm implementations that are fixed at compile time, as constant
+data. Some characteristics are common to all interface types, for instance
+the name and UID of the algorithm implemented, the name of the plug-in vendor,
+whether the plug-in uses hardware acceleration, and whether it is FIPS certified.
+Common characteristics are defined in <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-38201D43-59F9-34A1-9940-14997613998F"><apiname>CryptoSpi::TCommonCharacteristics</apiname></xref>: </p> <codeblock id="GUID-EAEADE27-C875-5713-92DC-050460D22ED5" xml:space="preserve">class TCommonCharacteristics
+    {
+    public:
+      ...
+      TInt32 iInterfaceUID;
+      TInt32 iAlgorithmUID;
+      TInt32 iImplementationUID;
+      const TRomLitC16* iCreatorName;
+      TBool iIsFIPSApproved;
+      TBool iIsHardwareSupported;
+      TUint iMaxConcurrencySupported;
+      const TRomLitC16* iAlgorithmName;
+      TInt iLatency;
+      TInt iThroughput;
+      };
+</codeblock> <p>Other characteristics are specific to a particular interface.
+For each interface type, a T class is defined as an aggregation of a <xref href="GUID-BB5BF1BA-686D-30DC-AB50-9F1F58F78051.dita"><apiname>TCommonCharacteristics</apiname></xref> object
+and some additional characteristics particular to that interface. For instance, <xref href="GUID-F8CF1F2E-E6EC-3ABE-B18A-C4821115E0AD.dita"><apiname>THashCharacteristics</apiname></xref> includes
+a block size, output size and operation mode. (The operation mode can be either <codeph>KHashMode</codeph> or <codeph>KHmacMode</codeph>,
+and indicates whether the hash algorithm is an HMAC or not.) </p> <codeblock id="GUID-628BA925-B38B-54F1-B69A-E630E50BB6BF" xml:space="preserve">class THashCharacteristics
+    {
+    public:
+      IMPORT_C TBool IsOperationModeSupported(TUid aOperationMode) const;        
+        
+    public:
+      TCommonCharacteristics cmn;
+      TUint iBlockSize;
+      TUint iOutputSize;
+      const TInt32* iSupportedOperationModes;
+      TUint iOperationModeNum;
+      };
+</codeblock> <p>All the data types relating to characteristics are defined
+in <filepath>plugincharacteristics.h</filepath>. </p> <p>For an example, see <filepath>src/common/generic/security/cryptospi/source/softwarecrypto/pluginconfig.h</filepath>. </p> </section>
+<section id="GUID-CA441465-BDAB-5B7A-B75D-3B877EBE346F"><title>How to implement
+the framework code</title> <p>Plug-in modules must implement a defined set
+of functions exported at defined ordinals. The function prototypes and the
+ordinals (see <xref href="GUID-8C054BE1-1F0D-362D-A8CD-B868488FAAE2.dita"><apiname>TPluginEntryOrdinal</apiname></xref>) are defined in <filepath>pluginentrydef.h</filepath>.
+When a client requests an algorithm, these functions are used by CryptoSPI
+to query and instantiate algorithm implementations. The simplest way to ensure
+that functions are assigned the correct ordinal is to copy the <filepath>softwarecryptoU.def</filepath> exports
+file, which can be found in the <filepath>EABI</filepath> and <filepath>BWINS</filepath> directories
+in the CryptoSPI source code. </p> <p>Minimally, the plug-in DLL must implement
+the function exported at ordinal 1, whose prototype is: </p> <codeblock id="GUID-A6D535EF-5657-5195-A375-5465B588427E" xml:space="preserve">typedef const TCharacteristics** (*EnumerateCharacteristicsFunc)(TUid, TInt&amp;);</codeblock> <p>and at least one of the algorithm factory functions. See for example
+class <codeph>CCryptoPluginEntry</codeph> (<filepath>pluginentry.h</filepath> / <filepath>pluginentry.cpp</filepath>). </p> <p>If
+the plug-in DLL does not support a particular algorithm, the <codeph>ABSENT</codeph> keyword
+should be used in its <filepath>.def</filepath> file to ensure any subsequent
+exports are at the correct ordinals. </p> <p><b>Querying the characteristics
+of plug-ins</b> </p> <p>CryptoSPI builds up a list of the characteristics
+of all the plug-in DLLs by calling the function exported at ordinal 1 (<codeph>EEnumerateCharacteristicsOrdinal</codeph>)
+for each DLL and for each interface type. Here is an example implementation: </p> <codeblock id="GUID-02B7F687-19A5-527D-922E-09A32FC728C1" xml:space="preserve">EXPORT_C const TCharacteristics** CCryptoPluginEntry::Enumerate(TUid aInterface, TInt&amp; aNumPlugins)
+    {
+    const TCharacteristics** ptr(0);
+    switch (aInterface.iUid)
+        {
+    case KHashInterface:
+        {
+        aNumPlugins=sizeof(KHashCharacteristics)/sizeof(THashCharacteristics*);
+        ptr = (const TCharacteristics**) &amp;KHashCharacteristics[0];
+        }
+        break;
+
+    case KRandomInterface:
+        {
+        aNumPlugins=sizeof(KRandomCharacteristics)/sizeof(TRandomCharacteristics*);
+        ptr= (const TCharacteristics**) &amp;KRandomCharacteristics[0];
+        }
+        break;
+  ...
+  }
+ return ptr;
+ }
+</codeblock> <p>Key points: </p> <ul>
+<li id="GUID-CBAC6B6F-30CC-5B57-BF58-A4B14C94A04A"><p>Every plug-in must implement
+this function. </p> </li>
+<li id="GUID-E263363A-4137-5D7E-8988-4B25E492D39F"><p> <codeph>TUid aInterface</codeph> is
+the interface UID, as defined in <codeph>CryptoSpi::KInterfacesUids</codeph>. </p> </li>
+<li id="GUID-C7A913A0-DD63-599F-8A34-EA2D7466B050"><p> <codeph>TInt&amp; aNumPlugins</codeph> should
+be set to the number of algorithms of that interface type implemented by the
+plug-in. </p> </li>
+</ul> <p><b>Extended characteristics</b> </p> <p>Extended characteristics
+are those which can only be determined at runtime. They are retrieved on demand
+by CryptoSPI or clients can call the plug-in's implementation of <codeph>CryptoSpi::CCryptoBase::GetExtendedCharacteristicsL()</codeph>. </p> <p>The
+function exported at ordinal 2 has this prototype: </p> <codeblock id="GUID-5A10F3D2-DAE9-55F6-BF1A-A0E001637ACE" xml:space="preserve">typedef void (*GetExtendedCharacteristicsFuncL)(TUid, CExtendedCharacteristics*&amp;);</codeblock> <p>Symbian defines 2 extended characteristics: </p> <ul>
+<li id="GUID-DFCA6450-2121-5257-9F26-A11FD8995E5D"><p> <codeph>TInt iAvailableConcurrency;</codeph>  </p> <p>The
+number of available resources for processing the operation for the requested
+plug-in. This could be zero even if no operations are in progress; for instance
+cryptographic acceleration hardware is turned off to save battery power. </p> </li>
+<li id="GUID-FEA9BD5F-B264-5316-9B15-FD5E0E51CAC2"><p> <codeph>TBool iExclusiveUse;</codeph>  </p> <p>Whether
+it is possible for the application to reserve exclusive use of hardware resources
+used by the plug-in. </p> </li>
+</ul> <p>Additional plug-in specific characteristics may be defined. The plug-in
+creator needs to define UIDs for each of these and specify the UID when calling <codeph>CryptoSpi::CExtendedCharacteristics::AddCharacteristicL()</codeph>. </p> <p><b>Algorithm instantiation</b> </p> <p>A plug-in must implement
+one or more factory methods for instantiating algorithms. The functions exported
+at ordinals 3 to 20 have the following declarations. (Note that symmetric
+key generation is not yet implemented by Symbian's software crypto plug-in,
+so the ordinals <codeph>ECreateSymmetricKeyGeneratorOrdinal</codeph> and <codeph>ECreateAsyncSymmetricKeyGeneratorOrdinal</codeph> have
+no corresponding declarations). </p> <codeblock id="GUID-A6330276-FB1A-5C14-A2BF-5BBCD452614B" xml:space="preserve">typedef void (*CreateRandomFuncL)(MRandom*&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateHashFuncL)(MHash*&amp;, TUid, TUid, const CKey*, const CCryptoParams*);
+typedef void (*CreateSymmetricCipherFuncL)(MSymmetricCipher*&amp;, TUid, const CKey&amp;, TUid, TUid, TUid, const CCryptoParams*);
+typedef void (*CreateAsymmetricCipherFuncL)(MAsymmetricCipher*&amp;, TUid, const CKey&amp;, TUid, TUid, const CCryptoParams*);
+typedef void (*CreateSignerFuncL)(MSigner*&amp;, TUid, const CKey&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateVerifierFuncL)(MVerifier*&amp;, TUid, const CKey&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateKeyAgreementFuncL)(MKeyAgreement*&amp;, TUid, const CKey&amp;, const CCryptoParams*);
+typedef void (*CreateKeyPairGeneratorFuncL)(MKeyPairGenerator*&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncRandomFuncL)(MAsyncRandom*&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncHashFuncL)(MAsyncHash*&amp;, TUid, TUid, const CKey*, const CCryptoParams*);
+typedef void (*CreateAsyncSymmetricCipherFuncL)(MAsyncSymmetricCipher*&amp;, TUid, const CKey&amp;, TUid, TUid, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncAsymmetricCipherFuncL)(MAsyncAsymmetricCipher*&amp;, TUid, const CKey&amp;, TUid, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncSignerFuncL)(MAsyncSigner*&amp;, TUid, const CKey&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncVerifierFuncL)(MAsyncVerifier*&amp;, TUid, const CKey&amp;, TUid, const CCryptoParams*);
+typedef void (*CreateAsyncKeyAgreementFuncL)(MAsyncKeyAgreement*&amp;, TUid, const CKey&amp;, const CCryptoParams*);
+typedef void (*CreateAsyncKeyPairGeneratorFuncL)(MAsyncKeyPairGenerator*&amp;, TUid, const CCryptoParams*);</codeblock> <p>Clients
+instantiate algorithms by calling one of the CryptoSPI factory methods, for
+instance <xref href="GUID-FF3CFE33-C90A-328C-BF80-0A03B821AE1C.dita#GUID-FF3CFE33-C90A-328C-BF80-0A03B821AE1C/GUID-D91B2099-C9F4-3B7C-843F-39A654DC0555"><apiname>CHashFactory::CreateHashL()</apiname></xref>. All CryptoSPI factory
+methods take a <xref href="GUID-C3704390-D2DD-3DFF-A1E3-433C5030044B.dita"><apiname>CCryptoParams</apiname></xref> parameter. This class allows
+clients to supply arbitrary, algorithm-specific data to plug-ins, for instance
+the effective key length for RC2, or the number of bytes to discard from the
+keystream for ARC4. </p> <p>The data type of each parameter can be integer
+(<codeph>TInt</codeph>), big integer (<codeph>RInteger</codeph>), or 8/16
+bit descriptor. Additional data types could be added in future, by extending
+the <codeph>TParamType</codeph> enum in <codeph>CCryptoParam</codeph> and
+deriving a class from <codeph>CCryptoParam</codeph>, but this is unlikely
+to be necessary. </p> </section>
+<section id="GUID-6ECA8DAB-37C4-5D83-9DBC-10641AA7B636"><title>How to implement
+the MPlugin-derived class</title> <p>All concrete algorithm classes are derived
+from one of the abstract base classes listed below, which are in turn all
+derived from <codeph>MPlugin</codeph>. </p> <ul>
+<li id="GUID-83E757D2-E70D-51D3-BF46-53A2F8A8A3E9"><p>Random (<xref href="GUID-53D7EA29-2736-3B19-AA69-915FAD2A7130.dita"><apiname>MRandom</apiname></xref> /<xref href="GUID-A19A4B6F-CCF2-3167-B757-F8308B7B7C26.dita"><apiname>MAsyncRandom</apiname></xref>) </p> </li>
+<li id="GUID-ABDD0216-BA34-5DD1-8D07-064B3F1EAB02"><p>Hash (<xref href="GUID-6896A7F0-AE37-369E-AB54-F069A7DE3FDB.dita"><apiname>MHash</apiname></xref> /<xref href="GUID-A4B3807A-82D1-39D3-8D00-D2A1D41EFEA5.dita"><apiname>MAsyncHash</apiname></xref>) </p> </li>
+<li id="GUID-5611F951-0471-5A54-BCFE-4DBDB9FF7B1A"><p>Symmetric cipher (<xref href="GUID-733DAE85-68B3-3211-808A-4FBD9C1E1F05.dita"><apiname>MSymmetricCipher</apiname></xref> /<xref href="GUID-545AE46E-8CF1-3470-8F10-5FCB6D79859E.dita"><apiname>MAsyncSymmetricCipher</apiname></xref>) </p> </li>
+<li id="GUID-C87B0A48-C66F-5E5E-BEA4-BB3F187AA59D"><p>Asymmetric cipher (<xref href="GUID-C044BB6D-6E78-3698-8710-89FFB7A6CDFD.dita"><apiname>MAsymmetricCipher</apiname></xref> /<xref href="GUID-EE7FCCA6-D86F-30E2-BB6A-862BAE111344.dita"><apiname>MAsyncAsymmetricCipher</apiname></xref>) </p> </li>
+<li id="GUID-EE95A2C8-4F9C-5052-8709-AD7C1D2A5E6F"><p>Signer (<xref href="GUID-59F2E24A-5F48-383F-95C6-88A5B432E121.dita"><apiname>MSigner</apiname></xref> /<xref href="GUID-B0EC8744-B525-3599-B1B4-00E4A9C62C7A.dita"><apiname>MAsyncSigner</apiname></xref>) </p> </li>
+<li id="GUID-717313C9-B2A3-5E78-8A61-A4C3093627BF"><p>Verifier (<xref href="GUID-98E08EBD-3758-39D6-A2B1-EC42F66D2F84.dita"><apiname>MVerifier</apiname></xref> /<xref href="GUID-BCCA1F97-B568-3B75-9974-5E70F1ADDEFA.dita"><apiname>MAsyncVerifier</apiname></xref>) </p> </li>
+<li id="GUID-8EA174F1-16A5-5364-9672-5AF6644EC19A"><p>Key agreement (<xref href="GUID-A47EF879-B23E-339A-9EBC-3622668B83FB.dita"><apiname>MKeyAgreement</apiname></xref> /<xref href="GUID-E70B8C8A-384F-39F0-8845-4CE53E86B286.dita"><apiname>MAsyncKeyAgreement</apiname></xref>) </p> </li>
+<li id="GUID-3988580D-047C-5492-9493-0A5365FEFB84"><p>Key pair generator (<xref href="GUID-238EBB3C-0ECC-38A5-848E-28716B75931B.dita"><apiname>MKeyPairGenerator</apiname></xref> /<xref href="GUID-5B2CE80F-536F-3B75-9FD9-3C0C98EE3D09.dita"><apiname>MAsyncKeyPairGenerator</apiname></xref>) </p> </li>
+<li id="GUID-05483361-4043-5FC4-A134-AAEA2E31E872"><p>Key generator (<xref href="GUID-1492AF86-FD98-3219-B46B-543DD7066801.dita"><apiname>MSymmetricKeyGenerator</apiname></xref> /<xref href="GUID-A3F12E4C-51D7-3007-A53E-EC53FAEA3D9C.dita"><apiname>MAsyncSymmetricKeyGenerator</apiname></xref>) </p> </li>
+</ul> <p> <xref href="GUID-6BD89347-671F-3518-9777-55801A090C79.dita"><apiname/></xref><xref href="GUID-47357E35-5781-3093-80FD-052EC7F0DF3F.dita"><apiname>MPlugin</apiname></xref> (<filepath>cryptoplugin.h</filepath>)
+declares the following pure virtual functions: </p> <codeblock id="GUID-6CDA7919-C31E-50EB-8D67-7A142297DBAF" xml:space="preserve">virtual void Close() = 0;
+virtual void Reset() = 0;
+virtual void GetCharacteristicsL(const TCharacteristics*&amp; aPluginCharacteristics) = 0;
+virtual const CExtendedCharacteristics&amp; GetExtendedCharacteristicsL() = 0;
+virtual TAny* GetExtension(TUid aExtensionId) = 0;</codeblock> <p>For example,
+the random number generator plug-in implemented in <filepath>softwarecrypto.dll</filepath> implements
+these functions as follows: </p> <codeblock id="GUID-A18C6FDA-4E3C-570E-B700-7680F91D397D" xml:space="preserve">void CRandomImpl::Close()
+    {
+    delete this;
+    }
+
+void CRandomImpl::Reset()
+    { //Not required
+    }
+
+const CExtendedCharacteristics* CRandomImpl::GetExtendedCharacteristicsL()
+ // All Symbian software plug-ins have unlimited concurrency and cannot be reserved
+    // for exclusive use 
+    {
+    return CExtendedCharacteristics::NewL(KMaxTInt, EFalse);
+    }
+
+//Get the plug-in characteristics (defined at compile time)
+void CRandomImpl::GetCharacteristicsL(const TCharacteristics*&amp; aPluginCharacteristics)
+    {
+ //Find out how many algorithms are implemented by the plug-in
+    TInt randomNum = sizeof(KRandomCharacteristics)/sizeof(TRandomCharacteristics*);
+    for (TInt i = 0; i &lt; randomNum; i++)
+        {
+  //Compare implementation UIDs
+  //ImplementationUid() is a helper function that returns KCryptoPluginRandomUid
+        if (KRandomCharacteristics[i]-&gt;cmn.iImplementationUID == ImplementationUid().iUid)
+            {
+            aPluginCharacteristics = KRandomCharacteristics[i];
+            break;
+            }
+        }
+    }
+
+TAny* CRandomImpl::GetExtension(TUid /*aExtensionId*/)
+    {
+    return NULL;
+    }</codeblock> <p>The main purpose of <codeph>MPlugin::Reset()</codeph> is
+to reset the hardware, so is usually not relevant to a software-only implementation. <codeph>GetExtension()</codeph> is
+intended for internal use, and may be removed from the API in future. </p> <p>These
+functions are called through the client API to CryptoSPI, in other words <codeph>CCryptoBase</codeph> and
+the various classes derived from it, in this case, <codeph>CRandom</codeph>.
+For instance when the client calls <xref href="GUID-ED01CE2C-30E8-344F-B3C9-895FA576D33F.dita#GUID-ED01CE2C-30E8-344F-B3C9-895FA576D33F/GUID-8D93089E-1F97-376B-8CC0-08E0E34158F4"><apiname>CCryptoBase::GetCharacteristicsL()</apiname></xref>,
+this calls <codeph>GetCharacteristicsL()</codeph> in the plug-in, or calling <xref href="GUID-CD88247C-561B-3AB4-BF77-AFD322F860A4.dita#GUID-CD88247C-561B-3AB4-BF77-AFD322F860A4/GUID-F251BF16-E212-3595-9FE8-C7BC754972E1"><apiname>CRandom::GenerateRandomBytesL()</apiname></xref>,
+calls <codeph>GenerateRandomBytesL()</codeph> in the plug-in. </p> </section>
+<section id="GUID-661CE3E1-2FAE-58E1-BBB7-2F72AA8714A2"><title>The configuration
+file</title> <p>The set of available plug-ins is listed in the configuration
+file <filepath>z:\resource\cryptospi\plug-ins.txt</filepath>. Each line in
+the file contains the filename of a single plug-in DLL, without the path.
+The path is not required because the DLLs are assumed to be located in <filepath>z:\sys\bin</filepath>.
+The configuration file must be on the <filepath>Z:</filepath> drive and therefore
+additional plug-ins cannot be installed post-manufacture. Depending on the
+plug-in selector in use, plug-ins may be loaded individually, as required,
+or all at once when CryptoSPI is initialized. The default selector implemented
+by Symbian (<codeph>CLegacySelector</codeph>) loads plug-in DLLs as required. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB" xml:lang="en"><title>Pointer
-descriptors</title><shortdesc>Describes non-modifiable pointer descriptors and modifiable pointer
-descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A pointer descriptor represents data which can live in ROM or RAM and this
-location is separate from the pointer descriptor object itself. </p>
-<p>A pointer descriptor is an instance of a class that encapsulates a pointer
-to the location of the data. </p>
-<p>A pointer descriptor comes in two forms: </p>
-<ul>
-<li id="GUID-A836665F-9AB7-5364-891E-6297D68B291D"><p>a non-modifiable pointer
-descriptor. </p> </li>
-<li id="GUID-C46BB0C8-08ED-5835-9516-D164383D1313"><p>a modifiable pointer
-descriptor. </p> </li>
-</ul>
-<section id="GUID-DE207726-9C75-4DD9-964A-6B7B16226C4A"><title>Non-modifiable pointer descriptor</title> <p>The data represented
-by a non-modifiable pointer descriptor can be accessed, but not changed, through
-this descriptor. </p> <p>Data is accessed through functions provided by the
-base class. </p> <p>A non-modifiable pointer descriptor is supplied in two
-variants: </p> <ul>
-<li id="GUID-CF4D06B5-B5EB-5C4D-BA87-B990053CD15D"><p>the 16 bit variant,
-a <codeph>TPtrC16</codeph>, for representing Unicode strings. </p> </li>
-<li id="GUID-A1005460-2D2A-5DB4-9414-2747056A7DBC"><p>the 8 bit variant, a <codeph>TPtrC8</codeph>,
-for representing non-Unicode strings and binary data. </p> </li>
-</ul> <p>There is also a build independent type, <codeph>TPtrC</codeph>. This
-is the type which is most commonly used in program code; the appropriate variant
-is selected at build time. </p> <p>An explicit 8 bit variant is chosen for
-binary data. The explicit 16 bit variant is rarely used. </p> <p>The base
-class, <codeph>TDesC</codeph>, contains a data member which holds the length
-of the data. The following drawing shows the layout of a <codeph>TPtrC</codeph> object
-for a string of five characters representing the English word "Hello". </p> <fig id="GUID-D3F0600A-D575-5309-8182-CFA98D184E29">
-<image href="GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e224612_href.png" placement="inline"/>
-<p>Non-modifiable pointer descriptor</p>
-</fig> </section>
-<section id="GUID-33072A44-C95A-4688-AB85-019EFDC4F1B2"><title>Modifiable pointer descriptor</title> <p>The data represented
-by a modifiable pointer descriptor can be both accessed and changed through
-this descriptor. </p> <p>The length of the data can vary between zero and
-the maximum length. The maximum length of the descriptor is set by the constructor.
-When the length of the data is less than the maximum, a portion of the data
-area represented by the descriptor is unused. </p> <p>Data is accessed and
-modified through functions provided by the base classes. </p> <p>A modifiable
-pointer descriptor is supplied in two variants: </p> <ul>
-<li id="GUID-2DD694B8-8408-58F8-BE98-1D031666DEC5"><p>the 16 bit variant,
-a <codeph>TPtr16</codeph>, for representing Unicode strings. </p> </li>
-<li id="GUID-5D1EB254-6B9D-576C-9631-3461AC8FFD32"><p>the 8 bit variant, a <codeph>TPtr8</codeph>,
-for representing non-Unicode strings and binary data. </p> </li>
-</ul> <p>There is also a build independent type, <codeph>TPtr</codeph>. This
-is the type which is most commonly used in program code; the appropriate variant
-is selected at build time. </p> <p>An explicit 8 bit variant is chosen for
-binary data. The explicit 16 bit variant is rarely used. </p> <p>The base
-class <codeph>TDesC</codeph>, contains a data member that holds the length
-of the data. The base class <codeph>TDes</codeph>, contains a data member
-that holds the maximum length of the data. The following drawing shows the
-layout of a <codeph>TPtr</codeph> object for a string of five characters representing
-the English word "Hello". The maximum length to be represented by the descriptor
-is 12. </p> <fig id="GUID-B6213E7F-AE00-5854-BBB7-C82BE71CB495">
-<image href="GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e224677_href.png" placement="inline"/>
-<p>Modifiable pointer descriptor</p>
-</fig> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB" xml:lang="en"><title>Pointer
+descriptors</title><shortdesc>Describes non-modifiable pointer descriptors and modifiable pointer
+descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A pointer descriptor represents data which can live in ROM or RAM and this
+location is separate from the pointer descriptor object itself. </p>
+<p>A pointer descriptor is an instance of a class that encapsulates a pointer
+to the location of the data. </p>
+<p>A pointer descriptor comes in two forms: </p>
+<ul>
+<li id="GUID-A836665F-9AB7-5364-891E-6297D68B291D"><p>a non-modifiable pointer
+descriptor. </p> </li>
+<li id="GUID-C46BB0C8-08ED-5835-9516-D164383D1313"><p>a modifiable pointer
+descriptor. </p> </li>
+</ul>
+<section id="GUID-DE207726-9C75-4DD9-964A-6B7B16226C4A"><title>Non-modifiable pointer descriptor</title> <p>The data represented
+by a non-modifiable pointer descriptor can be accessed, but not changed, through
+this descriptor. </p> <p>Data is accessed through functions provided by the
+base class. </p> <p>A non-modifiable pointer descriptor is supplied in two
+variants: </p> <ul>
+<li id="GUID-CF4D06B5-B5EB-5C4D-BA87-B990053CD15D"><p>the 16 bit variant,
+a <codeph>TPtrC16</codeph>, for representing Unicode strings. </p> </li>
+<li id="GUID-A1005460-2D2A-5DB4-9414-2747056A7DBC"><p>the 8 bit variant, a <codeph>TPtrC8</codeph>,
+for representing non-Unicode strings and binary data. </p> </li>
+</ul> <p>There is also a build independent type, <codeph>TPtrC</codeph>. This
+is the type which is most commonly used in program code; the appropriate variant
+is selected at build time. </p> <p>An explicit 8 bit variant is chosen for
+binary data. The explicit 16 bit variant is rarely used. </p> <p>The base
+class, <codeph>TDesC</codeph>, contains a data member which holds the length
+of the data. The following drawing shows the layout of a <codeph>TPtrC</codeph> object
+for a string of five characters representing the English word "Hello". </p> <fig id="GUID-D3F0600A-D575-5309-8182-CFA98D184E29">
+<image href="GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e220875_href.png" placement="inline"/>
+<p>Non-modifiable pointer descriptor</p>
+</fig> </section>
+<section id="GUID-33072A44-C95A-4688-AB85-019EFDC4F1B2"><title>Modifiable pointer descriptor</title> <p>The data represented
+by a modifiable pointer descriptor can be both accessed and changed through
+this descriptor. </p> <p>The length of the data can vary between zero and
+the maximum length. The maximum length of the descriptor is set by the constructor.
+When the length of the data is less than the maximum, a portion of the data
+area represented by the descriptor is unused. </p> <p>Data is accessed and
+modified through functions provided by the base classes. </p> <p>A modifiable
+pointer descriptor is supplied in two variants: </p> <ul>
+<li id="GUID-2DD694B8-8408-58F8-BE98-1D031666DEC5"><p>the 16 bit variant,
+a <codeph>TPtr16</codeph>, for representing Unicode strings. </p> </li>
+<li id="GUID-5D1EB254-6B9D-576C-9631-3461AC8FFD32"><p>the 8 bit variant, a <codeph>TPtr8</codeph>,
+for representing non-Unicode strings and binary data. </p> </li>
+</ul> <p>There is also a build independent type, <codeph>TPtr</codeph>. This
+is the type which is most commonly used in program code; the appropriate variant
+is selected at build time. </p> <p>An explicit 8 bit variant is chosen for
+binary data. The explicit 16 bit variant is rarely used. </p> <p>The base
+class <codeph>TDesC</codeph>, contains a data member that holds the length
+of the data. The base class <codeph>TDes</codeph>, contains a data member
+that holds the maximum length of the data. The following drawing shows the
+layout of a <codeph>TPtr</codeph> object for a string of five characters representing
+the English word "Hello". The maximum length to be represented by the descriptor
+is 12. </p> <fig id="GUID-B6213E7F-AE00-5854-BBB7-C82BE71CB495">
+<image href="GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e220940_href.png" placement="inline"/>
+<p>Modifiable pointer descriptor</p>
+</fig> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,392 +1,392 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9" xml:lang="en"><title>Editing
-menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Users can access editing functions using the editing menu. It is opened
-by a short press of the star (*) key (or by pressing the Edit key on some
-devices) when in a text editor. The editing menu looks and functions like
-the <uicontrol>Options</uicontrol> menu, but it contains only text editing
-functions, whereas other available options remain accessible from the <uicontrol>Options</uicontrol> menu.
-The following table describes the options in the editing menu.</p>
-<note><p>Only items that apply to the editor in use appear in the menu.</p></note>
-<table id="GUID-45970160-E5B3-4C8D-8552-21683CA99EA5"><title>Editing menu
-options</title>
-<tgroup cols="2">
-
-<colspec colname="col1" colwidth="0.49*"/><colspec colname="col2" colwidth="1.51*"/>
-<thead>
-<row>
-<entry><p>Function</p></entry>
-<entry><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Special character row</p></entry>
-<entry><p>One row with the most used special characters and symbols.</p></entry>
-</row>
-<row>
-<entry><p>More symbols</p></entry>
-<entry><p>Opens a full grid of special characters and symbols.</p></entry>
-</row>
-<row>
-<entry><p>Predictive text</p></entry>
-<entry><p>Opens a submenu for the <uicontrol>Predictive text</uicontrol> options.</p><note><p>Some
-devices may offer more advanced text input methods and editing options.</p></note></entry>
-</row>
-<row>
-<entry><p>Matches</p></entry>
-<entry><p>Displays list of matched words when predictive text mode is on and
-a word is active in the editor.</p></entry>
-</row>
-<row>
-<entry><p>Insert word</p></entry>
-<entry><p>Opens a query for inserting a word (no prediction).</p></entry>
-</row>
-<row>
-<entry><p>Edit word</p></entry>
-<entry><p>In prediction mode, opens the active word from the editor in a query
-window for editing.</p></entry>
-</row>
-<row>
-<entry><p>Prediction on/off</p></entry>
-<entry><p>A temporary setting for predictive input.</p></entry>
-</row>
-<row>
-<entry><p>Alpha mode</p></entry>
-<entry><p>Switches to the alpha input mode.</p></entry>
-</row>
-<row>
-<entry><p>Number mode</p></entry>
-<entry><p>Switches to the number input mode.</p></entry>
-</row>
-<row>
-<entry><p>Copy text</p></entry>
-<entry><p>Starts text copying.</p></entry>
-</row>
-<row>
-<entry><p>Cut text</p></entry>
-<entry><p>Starts text cutting.</p></entry>
-</row>
-<row>
-<entry><p>Paste</p></entry>
-<entry><p>Pastes cut or copied text in the cursor position.</p></entry>
-</row>
-<row>
-<entry><p>Writing language</p></entry>
-<entry><p>Affects key mappings and predictive input.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-BA63E34E-A9CC-4A3C-836C-D4FED97A53B8">
-<title>Editing menu</title>
-<image href="GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e70305_href.png" placement="inline"/>
-</fig>
-<table id="GUID-18C61493-9C80-470A-B0C2-A419F55A15EC"><title>Default touch
-events in editor</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.28*"/>
-<colspec colname="col3" colwidth="1.12*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>Cursor is moved to the touch down position in the text field.</p></entry>
-<entry><p>Visual indication of touched down state </p><p>Tactile: Sensitive
-edit effect and audio feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Touch Input window is launched.</p></entry>
-<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and drag</p></entry>
-<entry><ul>
-<li><p>A block of text is selected. Touch down, drag and touch release is
-performed in the text area. </p></li>
-<li><p>The text remains selected after touch release. </p></li>
-<li><p>Touch down a second time cancels the previous text selection and cursor
-is moved to the touch down position.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
-<li><p>Text edit and audio feedback effect is provided while selecting letters. </p></li>
-<li><p>Blank edit effect given while selecting blank space.</p></li>
-<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
-<li><p>Empty line effect is provided while selecting empty line.</p></li>
-<li><p>Pop-up open effect is provided with touch down after selecting.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down and drag outside</p></entry>
-<entry><ul>
-<li><p>Scrolling of text that did not fit in the edit area. </p></li>
-<li><p>A block of text is selected. </p></li>
-<li><p>Touch down and drag to out of the text field if there is text that
-can be scrolled, else no action.</p></li>
-</ul></entry>
-<entry><p>Tactile: Sensitive edit and audio feedback given with touch down
-effect. Specific effect given while selecting, see previous row.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-59AD9052-3167-411D-B8D4-549F6DAD7C69"><title>Default touch
-events in editor with kinetic scrolling when no text is selected</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.27*"/>
-<colspec colname="col3" colwidth="1.13*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Tactile: Sensitive edit effect and audio feedback is provided with
-touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><ul>
-<li><p>Cursor is moved to the touch down position in the text field. </p></li>
-<li><p>Touch Input window is launched.</p></li>
-<li><p>In viewer: Inactive</p></li>
-</ul></entry>
-<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down, move horizontally and release</p></entry>
-<entry><ul>
-<li><p>A block of text is selected. </p></li>
-<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
-<li><p>The text remains selected after touch release. </p></li>
-<li><p>In viewer: Opens stylus pop-up menu with available CCP menu options
-after touch release.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
-<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
-<li><p>Blank edit effect is provided while selecting blank space.</p></li>
-</ul></p></entry>
-</row>
-<row>
-<entry><p>Touch down, move horizontally, then move vertically without lifting
-finger and release</p></entry>
-<entry><ul>
-<li><p>A block of text is selected. </p></li>
-<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
-<li><p>The text remains selected after touch release. </p></li>
-<li><p>In viewer: Opens stylus pop-up menu with available CCP menu options
-after touch release.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
-<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
-<li><p>Blank edit effect is provided while selecting blank space.</p></li>
-<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
-<li><p>Empty line effect is provided while selecting empty line.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down, move horizontally, then release with speed</p></entry>
-<entry><ul>
-<li><p>A block of text is selected. </p></li>
-<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
-<li><p>The text remains selected after touch release. </p></li>
-<li><p>Flick not applicable.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
-<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
-<li><p>Blank edit effect is provided while selecting blank space.</p></li>
-<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
-<li><p>Empty line effect is provided while selecting empty line.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside</p></entry>
-<entry><ul>
-<li><p>Scrolling of text that did not fit in the edit area. </p></li>
-<li><p>A block of text is selected.</p></li>
-<li><p>Touch down and drag to out of the text field. </p></li>
-<li><p>This is if there is text that can be scrolled, otherwise no action.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down effect.</p></li>
-<li><p> Specific effect given while selecting, see previous row.</p></li>
-</ul></p></entry>
-</row>
-<row>
-<entry><p>Touch down, move vertically and release</p></entry>
-<entry><ul>
-<li><p>Scrolling stops on release, no text is selected. </p></li>
-<li><p>Cursor is moved on touch down after a certain threshold. </p></li>
-<li><p>It is not immediately moved to avoid cursor jumping during dragging
-and flicking. </p></li>
-<li><p>No cursor is shown during scrolling. Cursor is not moved on release.</p></li>
-</ul></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Touch down, move vertically and release with speed</p></entry>
-<entry><ul>
-<li><p>Scrolling continues on flick speed and slows down (kinetic).</p></li>
-<li><p>Scrolling is stopped when speed slows down or end of text is reached.</p></li>
-<li><p>Boundary effect is given at the end of text. No text is selected.</p></li>
-</ul><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold and touch release</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-72478E61-B2A4-4A0E-A0E2-50DCDC735ABB"><title>Default touch
-events in editor when text is selected</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.26*"/>
-<colspec colname="col3" colwidth="1.13*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release</p></entry>
-<entry><ul>
-<li><p>When touch down and release out of the selection, highlight disappears
-and cursor stays where it was. </p></li>
-<li><p>In viewers: Highlight disappears.</p></li>
-<li><p>When touch down and release within selected text, opens virtual input,
-highlight stays as it is and can be modified in input editor. </p></li>
-<li><p>In viewers: Inactive.</p></li>
-</ul></entry>
-<entry><p>Tactile: Sensitive edit effect and audio feedback is provided with
-touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move horizontally</p></entry>
-<entry><ul>
-<li><p>When on selected text, the beginning or ending point of the selection
-follows the finger and the selection changes dynamically. </p></li>
-<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
-<li><p>The text remains selected after touch release. </p></li>
-<li><p>When touch down and move horizontally outside the text selection, behavior
-is inactive.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
-<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
-<li><p>Blank edit effect is provided while selecting blank space.</p></li>
-<li><p>Line edit and audio feedback is provided while selecting lines. </p></li>
-<li><p>Empty line effect is provided while selecting empty line.</p></li>
-<li><p>Pop-up open effect given with touch down after selecting.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down, move horizontally and release with speed</p></entry>
-<entry><ul>
-<li><p>When on selected text, the beginning or ending point of the selection
-follows the finger and the selection changes dynamically during the drag. </p></li>
-<li><p>Release with speed is disabled. Touch down, move and touch release
-is performed in the text area. </p></li>
-<li><p>The text remains selected after touch release up to the point of the
-release. </p></li>
-<li><p>When touch down and move horizontally outside the text selection, behavior
-is inactive.</p></li>
-</ul></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Touch down, move vertically and release</p></entry>
-<entry><ul>
-<li><p>When on selected text, the beginning or ending point of the selection
-follows the finger and the selection changes dynamically during the drag. </p></li>
-<li><p>Release with speed is disabled. </p></li>
-<li><p>Touch down, move and touch release is performed in the text area. </p></li>
-<li><p>On touch release the text remains selected. </p></li>
-<li><p>When touch down and move vertically outside selected text, content
-moves with finger. </p></li>
-<li><p>On touch release content movement stops and text remains selected.</p></li>
-</ul></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Touch down and move vertically and release</p></entry>
-<entry><ul>
-<li><p>Content movement stops when dragging was in effect. </p></li>
-<li><p>Text remains selected.</p></li>
-</ul></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Touch down, move vertically and release with speed</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p><p>Text remains selected.</p></entry>
-<entry/>
-</row>
-<row>
-
-<entry><p>Touch down and move outside</p></entry>
-<entry><ul>
-<li><p>Scrolling of text that did not fit in the edit area. </p></li>
-<li><p>A block of text is selected. </p></li>
-<li><p>Touch down and drag to out of the text field if there
-is text that can be scrolled, else no action.</p></li>
-</ul></entry>
-<entry><p>Tactile: <ul>
-<li><p>Sensitive edit and audio feedback is provided with touch down effect.</p></li>
-<li><p>Specific effect given while selecting, see row 3.</p></li>
-</ul> </p></entry>
-</row>
-<row>
-<entry><p>Touch down outside highlighted text and move horizontally</p></entry>
-<entry><p>Editors and viewers: When dragging starts, highlight disappears
-from previous place and starts highlighting new text with the horizontal move.</p></entry>
-<entry/>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9" xml:lang="en"><title>Editing
+menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Users can access editing functions using the editing menu. It is opened
+by a short press of the star (*) key (or by pressing the Edit key on some
+devices) when in a text editor. The editing menu looks and functions like
+the <uicontrol>Options</uicontrol> menu, but it contains only text editing
+functions, whereas other available options remain accessible from the <uicontrol>Options</uicontrol> menu.
+The following table describes the options in the editing menu.</p>
+<note><p>Only items that apply to the editor in use appear in the menu.</p></note>
+<table id="GUID-45970160-E5B3-4C8D-8552-21683CA99EA5"><title>Editing menu
+options</title>
+<tgroup cols="2">
+
+<colspec colname="col1" colwidth="0.49*"/><colspec colname="col2" colwidth="1.51*"/>
+<thead>
+<row>
+<entry><p>Function</p></entry>
+<entry><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Special character row</p></entry>
+<entry><p>One row with the most used special characters and symbols.</p></entry>
+</row>
+<row>
+<entry><p>More symbols</p></entry>
+<entry><p>Opens a full grid of special characters and symbols.</p></entry>
+</row>
+<row>
+<entry><p>Predictive text</p></entry>
+<entry><p>Opens a submenu for the <uicontrol>Predictive text</uicontrol> options.</p><note><p>Some
+devices may offer more advanced text input methods and editing options.</p></note></entry>
+</row>
+<row>
+<entry><p>Matches</p></entry>
+<entry><p>Displays list of matched words when predictive text mode is on and
+a word is active in the editor.</p></entry>
+</row>
+<row>
+<entry><p>Insert word</p></entry>
+<entry><p>Opens a query for inserting a word (no prediction).</p></entry>
+</row>
+<row>
+<entry><p>Edit word</p></entry>
+<entry><p>In prediction mode, opens the active word from the editor in a query
+window for editing.</p></entry>
+</row>
+<row>
+<entry><p>Prediction on/off</p></entry>
+<entry><p>A temporary setting for predictive input.</p></entry>
+</row>
+<row>
+<entry><p>Alpha mode</p></entry>
+<entry><p>Switches to the alpha input mode.</p></entry>
+</row>
+<row>
+<entry><p>Number mode</p></entry>
+<entry><p>Switches to the number input mode.</p></entry>
+</row>
+<row>
+<entry><p>Copy text</p></entry>
+<entry><p>Starts text copying.</p></entry>
+</row>
+<row>
+<entry><p>Cut text</p></entry>
+<entry><p>Starts text cutting.</p></entry>
+</row>
+<row>
+<entry><p>Paste</p></entry>
+<entry><p>Pastes cut or copied text in the cursor position.</p></entry>
+</row>
+<row>
+<entry><p>Writing language</p></entry>
+<entry><p>Affects key mappings and predictive input.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-BA63E34E-A9CC-4A3C-836C-D4FED97A53B8">
+<title>Editing menu</title>
+<image href="GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e65056_href.png" placement="inline"/>
+</fig>
+<table id="GUID-18C61493-9C80-470A-B0C2-A419F55A15EC"><title>Default touch
+events in editor</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.28*"/>
+<colspec colname="col3" colwidth="1.12*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>Cursor is moved to the touch down position in the text field.</p></entry>
+<entry><p>Visual indication of touched down state </p><p>Tactile: Sensitive
+edit effect and audio feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Touch Input window is launched.</p></entry>
+<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and drag</p></entry>
+<entry><ul>
+<li><p>A block of text is selected. Touch down, drag and touch release is
+performed in the text area. </p></li>
+<li><p>The text remains selected after touch release. </p></li>
+<li><p>Touch down a second time cancels the previous text selection and cursor
+is moved to the touch down position.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
+<li><p>Text edit and audio feedback effect is provided while selecting letters. </p></li>
+<li><p>Blank edit effect given while selecting blank space.</p></li>
+<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
+<li><p>Empty line effect is provided while selecting empty line.</p></li>
+<li><p>Pop-up open effect is provided with touch down after selecting.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down and drag outside</p></entry>
+<entry><ul>
+<li><p>Scrolling of text that did not fit in the edit area. </p></li>
+<li><p>A block of text is selected. </p></li>
+<li><p>Touch down and drag to out of the text field if there is text that
+can be scrolled, else no action.</p></li>
+</ul></entry>
+<entry><p>Tactile: Sensitive edit and audio feedback given with touch down
+effect. Specific effect given while selecting, see previous row.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-59AD9052-3167-411D-B8D4-549F6DAD7C69"><title>Default touch
+events in editor with kinetic scrolling when no text is selected</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.27*"/>
+<colspec colname="col3" colwidth="1.13*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Tactile: Sensitive edit effect and audio feedback is provided with
+touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><ul>
+<li><p>Cursor is moved to the touch down position in the text field. </p></li>
+<li><p>Touch Input window is launched.</p></li>
+<li><p>In viewer: Inactive</p></li>
+</ul></entry>
+<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down, move horizontally and release</p></entry>
+<entry><ul>
+<li><p>A block of text is selected. </p></li>
+<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
+<li><p>The text remains selected after touch release. </p></li>
+<li><p>In viewer: Opens stylus pop-up menu with available CCP menu options
+after touch release.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
+<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
+<li><p>Blank edit effect is provided while selecting blank space.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Touch down, move horizontally, then move vertically without lifting
+finger and release</p></entry>
+<entry><ul>
+<li><p>A block of text is selected. </p></li>
+<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
+<li><p>The text remains selected after touch release. </p></li>
+<li><p>In viewer: Opens stylus pop-up menu with available CCP menu options
+after touch release.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
+<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
+<li><p>Blank edit effect is provided while selecting blank space.</p></li>
+<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
+<li><p>Empty line effect is provided while selecting empty line.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down, move horizontally, then release with speed</p></entry>
+<entry><ul>
+<li><p>A block of text is selected. </p></li>
+<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
+<li><p>The text remains selected after touch release. </p></li>
+<li><p>Flick not applicable.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
+<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
+<li><p>Blank edit effect is provided while selecting blank space.</p></li>
+<li><p>Line edit and audio feedback is provided while selecting lines.</p></li>
+<li><p>Empty line effect is provided while selecting empty line.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside</p></entry>
+<entry><ul>
+<li><p>Scrolling of text that did not fit in the edit area. </p></li>
+<li><p>A block of text is selected.</p></li>
+<li><p>Touch down and drag to out of the text field. </p></li>
+<li><p>This is if there is text that can be scrolled, otherwise no action.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down effect.</p></li>
+<li><p> Specific effect given while selecting, see previous row.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Touch down, move vertically and release</p></entry>
+<entry><ul>
+<li><p>Scrolling stops on release, no text is selected. </p></li>
+<li><p>Cursor is moved on touch down after a certain threshold. </p></li>
+<li><p>It is not immediately moved to avoid cursor jumping during dragging
+and flicking. </p></li>
+<li><p>No cursor is shown during scrolling. Cursor is not moved on release.</p></li>
+</ul></entry>
+<entry/>
+</row>
+<row>
+<entry><p>Touch down, move vertically and release with speed</p></entry>
+<entry><ul>
+<li><p>Scrolling continues on flick speed and slows down (kinetic).</p></li>
+<li><p>Scrolling is stopped when speed slows down or end of text is reached.</p></li>
+<li><p>Boundary effect is given at the end of text. No text is selected.</p></li>
+</ul><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold and touch release</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-72478E61-B2A4-4A0E-A0E2-50DCDC735ABB"><title>Default touch
+events in editor when text is selected</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.61*"/><colspec colname="col2" colwidth="1.26*"/>
+<colspec colname="col3" colwidth="1.13*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release</p></entry>
+<entry><ul>
+<li><p>When touch down and release out of the selection, highlight disappears
+and cursor stays where it was. </p></li>
+<li><p>In viewers: Highlight disappears.</p></li>
+<li><p>When touch down and release within selected text, opens virtual input,
+highlight stays as it is and can be modified in input editor. </p></li>
+<li><p>In viewers: Inactive.</p></li>
+</ul></entry>
+<entry><p>Tactile: Sensitive edit effect and audio feedback is provided with
+touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move horizontally</p></entry>
+<entry><ul>
+<li><p>When on selected text, the beginning or ending point of the selection
+follows the finger and the selection changes dynamically. </p></li>
+<li><p>Touch down, drag and touch release is performed in the text area. </p></li>
+<li><p>The text remains selected after touch release. </p></li>
+<li><p>When touch down and move horizontally outside the text selection, behavior
+is inactive.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down event.</p></li>
+<li><p>Text edit and audio feedback effect is provided while selecting letters.</p></li>
+<li><p>Blank edit effect is provided while selecting blank space.</p></li>
+<li><p>Line edit and audio feedback is provided while selecting lines. </p></li>
+<li><p>Empty line effect is provided while selecting empty line.</p></li>
+<li><p>Pop-up open effect given with touch down after selecting.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down, move horizontally and release with speed</p></entry>
+<entry><ul>
+<li><p>When on selected text, the beginning or ending point of the selection
+follows the finger and the selection changes dynamically during the drag. </p></li>
+<li><p>Release with speed is disabled. Touch down, move and touch release
+is performed in the text area. </p></li>
+<li><p>The text remains selected after touch release up to the point of the
+release. </p></li>
+<li><p>When touch down and move horizontally outside the text selection, behavior
+is inactive.</p></li>
+</ul></entry>
+<entry/>
+</row>
+<row>
+<entry><p>Touch down, move vertically and release</p></entry>
+<entry><ul>
+<li><p>When on selected text, the beginning or ending point of the selection
+follows the finger and the selection changes dynamically during the drag. </p></li>
+<li><p>Release with speed is disabled. </p></li>
+<li><p>Touch down, move and touch release is performed in the text area. </p></li>
+<li><p>On touch release the text remains selected. </p></li>
+<li><p>When touch down and move vertically outside selected text, content
+moves with finger. </p></li>
+<li><p>On touch release content movement stops and text remains selected.</p></li>
+</ul></entry>
+<entry/>
+</row>
+<row>
+<entry><p>Touch down and move vertically and release</p></entry>
+<entry><ul>
+<li><p>Content movement stops when dragging was in effect. </p></li>
+<li><p>Text remains selected.</p></li>
+</ul></entry>
+<entry/>
+</row>
+<row>
+<entry><p>Touch down, move vertically and release with speed</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p><p>Text remains selected.</p></entry>
+<entry/>
+</row>
+<row>
+
+<entry><p>Touch down and move outside</p></entry>
+<entry><ul>
+<li><p>Scrolling of text that did not fit in the edit area. </p></li>
+<li><p>A block of text is selected. </p></li>
+<li><p>Touch down and drag to out of the text field if there
+is text that can be scrolled, else no action.</p></li>
+</ul></entry>
+<entry><p>Tactile: <ul>
+<li><p>Sensitive edit and audio feedback is provided with touch down effect.</p></li>
+<li><p>Specific effect given while selecting, see row 3.</p></li>
+</ul> </p></entry>
+</row>
+<row>
+<entry><p>Touch down outside highlighted text and move horizontally</p></entry>
+<entry><p>Editors and viewers: When dragging starts, highlight disappears
+from previous place and starts highlighting new text with the horizontal move.</p></entry>
+<entry/>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2E253B30-2611-546D-AE5B-1752556FC8E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2E253B30-2611-546D-AE5B-1752556FC8E8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2E253B30-2611-546D-AE5B-1752556FC8E8" xml:lang="en"><title>SMTP
-Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section section describes the Simple Mail Transfer Protocol (SMTP)
-and its implementation on Symbian platform. </p>
-<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-8-1-16-1-1-6-1-7-1-4-1-2-2"><title>SMTP protocol</title> <p>SMTP
-is the most widely used protocol for sending emails. It is a text-based and <b>push</b> protocol
-that cannot <b>pull</b> messages from a remote server on demand. </p> <p>One
-or more recipients of a message are specified in a message along with the
-message text and other encoded objects. The message is then transferred to
-a remote server using a procedure of queries and responses between the client
-and server. Either an end-user's email client (Mail User Agent (MUA)) or a
-relaying server's Mail Transport Agents (MTA) can act as an SMTP client. The
-SMTP client initiates a TCP connection to SMTP server on port 25 (unless overridden
-by configuration). </p> <p>SMTP is more suitable for a machine permanently
-connected to the Internet. To retrieve messages only on demand, which is the
-most common requirement on a single-user computer, a mail client must use
-POP3 or IMAP4. POP3 is mostly preferred when single-user computers connected
-to the Internet only intermittently. </p> </section>
-<section><title>Symbian platform implementation of SMTP</title> <p>SMTP is
-a Mail Transfer Agent (MTA) used to transfer emails to a SMTP server which
-then forwards them on to a specified destination. </p> <p>Sending an email
-generally consists of three phases: connect and authorise to server, send
-emails and quit. </p> <p>The SMTP component is responsible for sending email
-messages composed and stored in the Message Server’s Message Store. </p> <ol id="GUID-8FCD7F76-46FD-58E9-9EBA-B178B98F0782">
-<li id="GUID-A8B5A1FA-DE84-51E8-B2B3-B4FCD073E0D2"><p>The SMTP client initiates
-a connection with the SMTP server. Depending on the user’s email settings,
-this may have been initiated over a secure SSL/TLS socket on port 465. </p> </li>
-<li id="GUID-F18E9E52-DF7A-5127-B6DD-FB08663025E0"><p>Depending on how the
-user has configured the email settings and the capabilities of the SMTP server,
-SMTP authentication may also be required. </p> </li>
-<li id="GUID-74561ABB-4B7A-58E7-B79D-5473C3149476"><p>Mail <b>From</b> and
-recipient <b>To</b> are sent. </p> </li>
-<li id="GUID-7ABADE92-CAF1-524A-A8AB-288E9849BED1"><p>The message header fields
-for the email message stored in the Message Store are then transmitted, each
-one separated by a CRLF. </p> </li>
-<li id="GUID-7932B3D6-270F-5983-8521-8AC83C7AA450"><p>The last CRLF is sent
-to indicate the end of the RFC 2822 header. </p> </li>
-<li id="GUID-2A05FF85-4E42-5EEE-A2C5-4763C887E3D2"><p>The message body and
-encoded attachments are sent. </p> <p>The encoding format (uuencode or MIME,
-character sets) depends on the user’s email settings and locale. </p> </li>
-<li id="GUID-7040A4EB-AA7C-5932-B7FF-89595D9256D0"><p>Finally, the body is
-terminated by a CRLF. </p> <p>CRLF sequence, and the email is queued by the
-SMTP server for sending. </p> </li>
-</ol> </section>
-<section><title>SMTP example</title> <p>For more details on implementing the
-IMAP4 MTM functions, see <xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">example
-code</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita"><linktext>SMTP MTM</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2E253B30-2611-546D-AE5B-1752556FC8E8" xml:lang="en"><title>SMTP
+Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section section describes the Simple Mail Transfer Protocol (SMTP)
+and its implementation on Symbian platform. </p>
+<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-10-1-17-1-1-6-1-7-1-4-1-2-2"><title>SMTP protocol</title> <p>SMTP
+is the most widely used protocol for sending emails. It is a text-based and <b>push</b> protocol
+that cannot <b>pull</b> messages from a remote server on demand. </p> <p>One
+or more recipients of a message are specified in a message along with the
+message text and other encoded objects. The message is then transferred to
+a remote server using a procedure of queries and responses between the client
+and server. Either an end-user's email client (Mail User Agent (MUA)) or a
+relaying server's Mail Transport Agents (MTA) can act as an SMTP client. The
+SMTP client initiates a TCP connection to SMTP server on port 25 (unless overridden
+by configuration). </p> <p>SMTP is more suitable for a machine permanently
+connected to the Internet. To retrieve messages only on demand, which is the
+most common requirement on a single-user computer, a mail client must use
+POP3 or IMAP4. POP3 is mostly preferred when single-user computers connected
+to the Internet only intermittently. </p> </section>
+<section><title>Symbian platform implementation of SMTP</title> <p>SMTP is
+a Mail Transfer Agent (MTA) used to transfer emails to a SMTP server which
+then forwards them on to a specified destination. </p> <p>Sending an email
+generally consists of three phases: connect and authorise to server, send
+emails and quit. </p> <p>The SMTP component is responsible for sending email
+messages composed and stored in the Message Server’s Message Store. </p> <ol id="GUID-8FCD7F76-46FD-58E9-9EBA-B178B98F0782">
+<li id="GUID-A8B5A1FA-DE84-51E8-B2B3-B4FCD073E0D2"><p>The SMTP client initiates
+a connection with the SMTP server. Depending on the user’s email settings,
+this may have been initiated over a secure SSL/TLS socket on port 465. </p> </li>
+<li id="GUID-F18E9E52-DF7A-5127-B6DD-FB08663025E0"><p>Depending on how the
+user has configured the email settings and the capabilities of the SMTP server,
+SMTP authentication may also be required. </p> </li>
+<li id="GUID-74561ABB-4B7A-58E7-B79D-5473C3149476"><p>Mail <b>From</b> and
+recipient <b>To</b> are sent. </p> </li>
+<li id="GUID-7ABADE92-CAF1-524A-A8AB-288E9849BED1"><p>The message header fields
+for the email message stored in the Message Store are then transmitted, each
+one separated by a CRLF. </p> </li>
+<li id="GUID-7932B3D6-270F-5983-8521-8AC83C7AA450"><p>The last CRLF is sent
+to indicate the end of the RFC 2822 header. </p> </li>
+<li id="GUID-2A05FF85-4E42-5EEE-A2C5-4763C887E3D2"><p>The message body and
+encoded attachments are sent. </p> <p>The encoding format (uuencode or MIME,
+character sets) depends on the user’s email settings and locale. </p> </li>
+<li id="GUID-7040A4EB-AA7C-5932-B7FF-89595D9256D0"><p>Finally, the body is
+terminated by a CRLF. </p> <p>CRLF sequence, and the email is queued by the
+SMTP server for sending. </p> </li>
+</ol> </section>
+<section><title>SMTP example</title> <p>For more details on implementing the
+IMAP4 MTM functions, see <xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">example
+code</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita"><linktext>SMTP MTM</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e172781_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e179376_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4" xml:lang="en"><title>Plug-ins</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Plug-ins connect to the system using the EPOC Component Object Model
-(ECom). ECom is based on client/server architecture and provides services
-to instantiate, resolve, and destroy instances of plug-ins at run time. For
-more information, see the <xref href="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita">ECom
-Architecture</xref>.</p>
-<fig id="GUID-C5D783F2-8388-4097-8276-BAC6D5B17C2C"><title>ECom framework</title><image href="GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e11032_href.png"/></fig>
-<p>A hostile or malfunctioning plug-in may cause crashes or security leaks,
-even on otherwise well-tested applications. The <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
-security</xref> architecture protects the processes by verifying that the
-plug-in has equal or greater set of capabilities than the process in which
-it is loaded. For more information, see the <xref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita">ECom
-and the Platform Security Architecture</xref>. </p>
-<p>For examples, see <xref href="GUID-E59A469E-A2B5-5DF0-BA7E-C50D4A38CCAA.dita">Plug-in
-Framework (ECom) Examples</xref>.</p>
-<section id="GUID-2268BF28-467F-409F-B68C-5D361E8C5FF0"><title>Communication
-plug-ins</title>
-<p>It is possible to use plug-ins to implement additional functionality
-to serial, socket, and messaging frameworks. These plug-ins are especially
-important for security because they deal with communication.</p>
-<ul>
-<li><p>For serial communication there are serial protocol modules
-(CSY modules ), which are loaded by the Serial Comms Server. For more information
-on serial communication, see <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
-Communications Server</xref>.</p></li>
-<li><p>For socket-based communication there are protocol modules
-(PRT), which are loaded by the Socket Server. For more information on socket-based
-communication, see <xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Socket
-Server</xref>.</p></li>
-<li><p>For messaging there are Message Type Modules (MTM), which
-include both client and server components. MTMs are a set of <codeph>dll</codeph>s
-rather than a single <codeph>dll</codeph>. For more information, see <xref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita">Message Type Module</xref>.</p>
-</li>
-</ul>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4" xml:lang="en"><title>Plug-ins</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Plug-ins connect to the system using the EPOC Component Object Model
+(ECom). ECom is based on client/server architecture and provides services
+to instantiate, resolve, and destroy instances of plug-ins at run time. For
+more information, see the <xref href="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita">ECom
+Architecture</xref>.</p>
+<fig id="GUID-C5D783F2-8388-4097-8276-BAC6D5B17C2C"><title>ECom framework</title><image href="GUID-231E58F2-7935-462A-B048-51729D8245D4_d0e12307_href.png"/></fig>
+<p>A hostile or malfunctioning plug-in may cause crashes or security leaks,
+even on otherwise well-tested applications. The <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
+security</xref> architecture protects the processes by verifying that the
+plug-in has equal or greater set of capabilities than the process in which
+it is loaded. For more information, see the <xref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita">ECom
+and the Platform Security Architecture</xref>. </p>
+<p>For examples, see <xref href="GUID-E59A469E-A2B5-5DF0-BA7E-C50D4A38CCAA.dita">Plug-in
+Framework (ECom) Examples</xref>.</p>
+<section id="GUID-2268BF28-467F-409F-B68C-5D361E8C5FF0"><title>Communication
+plug-ins</title>
+<p>It is possible to use plug-ins to implement additional functionality
+to serial, socket, and messaging frameworks. These plug-ins are especially
+important for security because they deal with communication.</p>
+<ul>
+<li><p>For serial communication there are serial protocol modules
+(CSY modules ), which are loaded by the Serial Comms Server. For more information
+on serial communication, see <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
+Communications Server</xref>.</p></li>
+<li><p>For socket-based communication there are protocol modules
+(PRT), which are loaded by the Socket Server. For more information on socket-based
+communication, see <xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Socket
+Server</xref>.</p></li>
+<li><p>For messaging there are Message Type Modules (MTM), which
+include both client and server components. MTMs are a set of <codeph>dll</codeph>s
+rather than a single <codeph>dll</codeph>. For more information, see <xref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita">Message Type Module</xref>.</p>
+</li>
+</ul>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e202413_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e207421_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393415_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393577_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e221141_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e224878_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E" xml:lang="en"><title>Labeling
-the Selection key</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In the portrait mode, the Selection key takes a textual label to indicate
-the current functionality. The Selection key always functions identically
-in both portrait and landscape orientation. In most cases, the label on the
-middle softkey is the first item in the <b>Options</b> menu (for example,<b>Open</b>, <b>Select</b>, <b>Play</b>,
-and so on). The Selection key functions normally in all landscape modes, but
-it cannot be labelled in the landscape orientation owing to space restrictions.
-Since the middle softkey label is not visible in landscape (nor in Touch UI),
-it is important that the function assigned to the Selection key is as instinctive
-as possible. If there is no obvious, intuitive function available in a given
-situation, the context sensitive <b>Options</b> menu can be used.</p>
-<p>When the Selection key opens the context sensitive <b>Options</b> menu
-or performs the same function as the left softkey, the corresponding icons
-are used. When there is an item in focus that is in itself a function (for
-example, <b>Download images</b> or a button in a player), the middle softkey
-is labelled <b>Select</b>. Otherwise, the middle softkey is labelled with
-an appropriate text. The purpose of using a special icon for the Selection
-key when it repeats the left softkey is to avoid repeating the text label
-and also to promote the use of the Selection key as a quick and convenient
-way of performing some typical tasks.</p>
-<p>In case the Selection key does not perform its primary function in the
-situation (and the related first <b>Options</b> menu item is not available)
-the middle softkey label is not displayed, for example, in case of a locked
-setting item, the label <b>Change</b> is not shown. </p>
-<fig id="GUID-471296E1-5AFC-424B-B9ED-1C944D300840">
-<title>Labeling the Selection key in the control pane: left and right softkeys
-have textual labels, the Selection key has either a textual label or one of
-two icons: the context sensitive Options menu icon (bottom left) or the Select
-icon (bottom right).</title>
-<image href="GUID-B8D630CA-7CED-408E-B570-00FF95BE14ED_d0e82130_href.png" placement="inline"/>
-<image href="GUID-53212F7A-938B-48F6-BC82-30F7494FF8A7_d0e82132_href.png" placement="inline"/>
-</fig>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-3-1-1-7-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-3-1-1-7-1-6-1"><title>UI Control Framework concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Framework is a series of related Object-Oriented base classes with clearly defined responsibilities. UI system and application developers use the framework classes, in particular those representing 'the environment', 'the user interface' and 'the generic control' as the basis for creating concrete classes with the same underlying relationships. Framework functions, virtual functions in the base classes, maintain the relationships and enable the concrete classes to receive messages (events). </p> <p>This page describes the key concepts behind the UI Control Framework. </p> <ul><li id="GUID-87ABE063-A4B2-51D1-8C91-9CAA79343143-GENID-1-8-1-3-1-1-7-1-6-1-2-3-1"><p>to simplify access to the Window Server </p> </li> <li id="GUID-EF3C1D12-284D-587B-BE22-690996B0CBE0-GENID-1-8-1-3-1-1-7-1-6-1-2-3-2"><p>to set a recommended framework for all UI libraries </p> </li> <li id="GUID-1C04861D-667F-561F-A59E-254B63C40980-GENID-1-8-1-3-1-1-7-1-6-1-2-3-3"><p>to do this without imposing a particular user interface look </p> </li> </ul> <section id="GUID-F1C07D3E-AE0A-50BF-9AB9-280C4260A1F2-GENID-1-8-1-3-1-1-7-1-6-1-2-4"><title>Simplified access to the Window Server</title> <p>The Window Server provides a low-level API to the system’s user interface devices — screens, keyboard and pointer. The API is extensive and complex. The UI Control Framework hides much of this complexity and provides a simplified API that meets the requirements of most applications. </p> <p>Any client of the Window Server must create a window server session and an active scheduler framework to handle asynchronous inter-process communication (IPC). Events received from the Window Server must be converted into functions calls and passed to the appropriate controls. These complex tasks, which are similar for most applications, are performed by the Control Environment. </p> </section> <section id="GUID-BB5F1E99-8216-5E21-B407-3312D1938FAD-GENID-1-8-1-3-1-1-7-1-6-1-2-5"><title>Recommended framework for UI libraries</title> <p>In simplifying the Window Server API, the control framework makes a number of design decisions that are optimised for most applications. </p> <p>One is the framework's concept of controls. By allowing controls to represent both whole windows (window owning) and parts of windows (non-window owning) the framework makes applications run much more efficiently. </p> <p>Another is the prioritising of events. User input events, for instance, are given a higher priority than redraw events. </p> <p>A third feature is the support provided for handling key-press events and pointer events. The Window Server passes key events to the foreground application and pointer events to the window containing the point of contact, which maps to a window-owning control. In each case the Framework provides a mechanism for distributing the event to the appropriate control (normally a simple, non-window-owning control) within the application. </p> </section> <section id="GUID-C9FF4460-2D19-5956-A796-53D3D4DFA183-GENID-1-8-1-3-1-1-7-1-6-1-2-6"><title>User Interface policy agnostic</title> <p>Though the Framework provides a substantial amount of any application it imposes very little in the way of user interface policy and no 'Look and Feel' (LAF). It does, however, provide mechanisms for supporting system-wide LAF and for propagating run-time LAF changes. </p> <p>UI policy is provided by the core user interface library, Uikon, and the user interface library provided for a particular UI variant. </p> </section> <section><title>See also</title> <p> <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref>  </p> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-6-1-1-4-1-6-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-6-1-1-4-1-6-1-6-1"><title>UI Control Framework concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Framework is a series of related Object-Oriented base classes with clearly defined responsibilities. UI system and application developers use the framework classes, in particular those representing 'the environment', 'the user interface' and 'the generic control' as the basis for creating concrete classes with the same underlying relationships. Framework functions, virtual functions in the base classes, maintain the relationships and enable the concrete classes to receive messages (events). </p> <p>This page describes the key concepts behind the UI Control Framework. </p> <ul><li id="GUID-87ABE063-A4B2-51D1-8C91-9CAA79343143-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-3-1"><p>to simplify access to the Window Server </p> </li> <li id="GUID-EF3C1D12-284D-587B-BE22-690996B0CBE0-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-3-2"><p>to set a recommended framework for all UI libraries </p> </li> <li id="GUID-1C04861D-667F-561F-A59E-254B63C40980-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-3-3"><p>to do this without imposing a particular user interface look </p> </li> </ul> <section id="GUID-F1C07D3E-AE0A-50BF-9AB9-280C4260A1F2-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-4"><title>Simplified access to the Window Server</title> <p>The Window Server provides a low-level API to the system’s user interface devices — screens, keyboard and pointer. The API is extensive and complex. The UI Control Framework hides much of this complexity and provides a simplified API that meets the requirements of most applications. </p> <p>Any client of the Window Server must create a window server session and an active scheduler framework to handle asynchronous inter-process communication (IPC). Events received from the Window Server must be converted into functions calls and passed to the appropriate controls. These complex tasks, which are similar for most applications, are performed by the Control Environment. </p> </section> <section id="GUID-BB5F1E99-8216-5E21-B407-3312D1938FAD-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-5"><title>Recommended framework for UI libraries</title> <p>In simplifying the Window Server API, the control framework makes a number of design decisions that are optimised for most applications. </p> <p>One is the framework's concept of controls. By allowing controls to represent both whole windows (window owning) and parts of windows (non-window owning) the framework makes applications run much more efficiently. </p> <p>Another is the prioritising of events. User input events, for instance, are given a higher priority than redraw events. </p> <p>A third feature is the support provided for handling key-press events and pointer events. The Window Server passes key events to the foreground application and pointer events to the window containing the point of contact, which maps to a window-owning control. In each case the Framework provides a mechanism for distributing the event to the appropriate control (normally a simple, non-window-owning control) within the application. </p> </section> <section id="GUID-C9FF4460-2D19-5956-A796-53D3D4DFA183-GENID-1-8-1-6-1-1-4-1-6-1-6-1-2-6"><title>User Interface policy agnostic</title> <p>Though the Framework provides a substantial amount of any application it imposes very little in the way of user interface policy and no 'Look and Feel' (LAF). It does, however, provide mechanisms for supporting system-wide LAF and for propagating run-time LAF changes. </p> <p>UI policy is provided by the core user interface library, Uikon, and the user interface library provided for a particular UI variant. </p> </section> <section><title>See also</title> <p> <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref>  </p> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-2F42DC8F-E489-5EA4-8413-784D34965497.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2F42DC8F-E489-5EA4-8413-784D34965497"><title>UI Control Framework concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Framework is a series of related Object-Oriented base classes with clearly defined responsibilities. UI system and application developers use the framework classes, in particular those representing 'the environment', 'the user interface' and 'the generic control' as the basis for creating concrete classes with the same underlying relationships. Framework functions, virtual functions in the base classes, maintain the relationships and enable the concrete classes to receive messages (events). </p> <p>This page describes the key concepts behind the UI Control Framework. </p> <ul><li id="GUID-87ABE063-A4B2-51D1-8C91-9CAA79343143"><p>to simplify access to the Window Server </p> </li> <li id="GUID-EF3C1D12-284D-587B-BE22-690996B0CBE0"><p>to set a recommended framework for all UI libraries </p> </li> <li id="GUID-1C04861D-667F-561F-A59E-254B63C40980"><p>to do this without imposing a particular user interface look </p> </li> </ul> <section id="GUID-F1C07D3E-AE0A-50BF-9AB9-280C4260A1F2"><title>Simplified access to the Window Server</title> <p>The Window Server provides a low-level API to the system’s user interface devices — screens, keyboard and pointer. The API is extensive and complex. The UI Control Framework hides much of this complexity and provides a simplified API that meets the requirements of most applications. </p> <p>Any client of the Window Server must create a window server session and an active scheduler framework to handle asynchronous inter-process communication (IPC). Events received from the Window Server must be converted into functions calls and passed to the appropriate controls. These complex tasks, which are similar for most applications, are performed by the Control Environment. </p> </section> <section id="GUID-BB5F1E99-8216-5E21-B407-3312D1938FAD"><title>Recommended framework for UI libraries</title> <p>In simplifying the Window Server API, the control framework makes a number of design decisions that are optimised for most applications. </p> <p>One is the framework's concept of controls. By allowing controls to represent both whole windows (window owning) and parts of windows (non-window owning) the framework makes applications run much more efficiently. </p> <p>Another is the prioritising of events. User input events, for instance, are given a higher priority than redraw events. </p> <p>A third feature is the support provided for handling key-press events and pointer events. The Window Server passes key events to the foreground application and pointer events to the window containing the point of contact, which maps to a window-owning control. In each case the Framework provides a mechanism for distributing the event to the appropriate control (normally a simple, non-window-owning control) within the application. </p> </section> <section id="GUID-C9FF4460-2D19-5956-A796-53D3D4DFA183"><title>User Interface policy agnostic</title> <p>Though the Framework provides a substantial amount of any application it imposes very little in the way of user interface policy and no 'Look and Feel' (LAF). It does, however, provide mechanisms for supporting system-wide LAF and for propagating run-time LAF changes. </p> <p>UI policy is provided by the core user interface library, Uikon, and the user interface library provided for a particular UI variant. </p> </section> <section><title>See also</title> <p> <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref>  </p> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e243046_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2F6EF388-CA87-5AAD-A4C5-37FC3CE15331_d0e246783_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e276117_href.png has changed
Binary file Symbian3/SDK/Source/GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e279803_href.png has changed
--- a/Symbian3/SDK/Source/GUID-2F987147-1435-55F1-B61C-8413C4AD8424.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2F987147-1435-55F1-B61C-8413C4AD8424.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2F987147-1435-55F1-B61C-8413C4AD8424" xml:lang="en"><title>Direct
-File Store Structure</title><shortdesc>Describes the structure of the file used as a Direct File Store.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The general structure of a direct file store, from the point of view of
-the physical file containing the store, is illustrated below.</p>
-<fig id="GUID-B9A986BB-322A-5432-BB12-92B1934954B6">
-<image href="GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e361003_href.png" placement="inline"/>
-</fig>
-<p>The header is the content of the descriptor returned by the <codeph>Des()</codeph> member
-function of <codeph>TCheckedUid</codeph>; this contains the file store type
-and checksum; the length of the data is the size of a <codeph>TCheckedUid</codeph> object.
-Note that <codeph>TCheckedUid</codeph> is not part of the public API.</p>
-<p>The header is followed by the root stream ID. As the value of a stream
-ID is also the offset of that stream from the start of the host, this gives
-the offset of the root stream.</p>
-<p>The root stream ID is followed by all the streams; the root stream is the
-last stream.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2F987147-1435-55F1-B61C-8413C4AD8424" xml:lang="en"><title>Direct
+File Store Structure</title><shortdesc>Describes the structure of the file used as a Direct File Store.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The general structure of a direct file store, from the point of view of
+the physical file containing the store, is illustrated below.</p>
+<fig id="GUID-B9A986BB-322A-5432-BB12-92B1934954B6">
+<image href="GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e354923_href.png" placement="inline"/>
+</fig>
+<p>The header is the content of the descriptor returned by the <codeph>Des()</codeph> member
+function of <codeph>TCheckedUid</codeph>; this contains the file store type
+and checksum; the length of the data is the size of a <codeph>TCheckedUid</codeph> object.
+Note that <codeph>TCheckedUid</codeph> is not part of the public API.</p>
+<p>The header is followed by the root stream ID. As the value of a stream
+ID is also the offset of that stream from the start of the host, this gives
+the offset of the root stream.</p>
+<p>The root stream ID is followed by all the streams; the root stream is the
+last stream.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706" xml:lang="en"><title>Caching</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In Symbian OS v9.3 and earlier, index entries were stored in a single index
-file in a permanent file store and the entire file was loaded into RAM on
-start up. In Symbian^3 index entries are stored in an SQL database and only
-the most recently used index entries are cached in RAM. </p>
-<p>The following figure shows how a client request is completed using the
-cache functionality in the Message Server. </p>
-<fig id="GUID-43D2AE30-9221-500A-B934-5D3636168273">
-<title>           Caching architecture          </title>
-<image href="GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e284883_href.png" placement="inline"/>
-</fig>
-<section id="GUID-D3F3D019-736E-4527-8099-9BE8883CF37C"><title>Creating and
-maintaining free space in memory</title> <p>Memory allocation to the cache
-is done incrementally, to reduce the Message Server start up time. When the
-Message Server starts, only a percentage of the maximum cache size (<codeph>MsvMaximumCacheSize</codeph>)
-is allocated to cache. The percentage is specified by the <codeph>MsvInitialCacheCreation</codeph> parameter.
-The next iteration of memory allocation is not initiated until the memory
-threshold (set using the <codeph>MsvCacheThreshold</codeph> parameter) is
-reached. The subsequent memory allocation is always done by a low priority
-active object. </p> <p><b>Example</b> </p> <p>The memory allocation strategy
-is illustrated in the following figures, based on the default values (shown
-in the preceding table). </p> <p>When Message Server starts, the cache is
-created with an initial size of 410KB (40 percent of 1024KB). If 70 percent
-of the free space in the cache gets used the server allocates an additional
-205KB (20 percent of 1024). </p> <fig id="GUID-CA4A08C8-C4E8-575F-8F03-F3D1F6579E5F">
-<image href="GUID-B459E37A-BECE-5087-9827-C93310890674_d0e284915_href.png" placement="inline"/>
-</fig> <p>Message Server can make two further 205KB allocations which it does
-as use reaches 70 percent of the memory already allocated. </p> <fig id="GUID-21A40614-046B-56DD-9DDD-34B2F9681B5C">
-<image href="GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e284923_href.png" placement="inline"/>
-</fig> <p>If more than 70 percent of the first two allocated memory chunks
-is used, an additional 20 percent of memory is added to the free space. </p> <fig id="GUID-EBF4FF85-D6D6-518C-9391-C3AFF8821F83">
-<image href="GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e284931_href.png" placement="inline"/>
-</fig> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706" xml:lang="en"><title>Caching</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In Symbian OS v9.3 and earlier, index entries were stored in a single index
+file in a permanent file store and the entire file was loaded into RAM on
+start up. In Symbian^3 index entries are stored in an SQL database and only
+the most recently used index entries are cached in RAM. </p>
+<p>The following figure shows how a client request is completed using the
+cache functionality in the Message Server. </p>
+<fig id="GUID-43D2AE30-9221-500A-B934-5D3636168273">
+<title>           Caching architecture          </title>
+<image href="GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e281197_href.png" placement="inline"/>
+</fig>
+<section id="GUID-D3F3D019-736E-4527-8099-9BE8883CF37C"><title>Creating and
+maintaining free space in memory</title> <p>Memory allocation to the cache
+is done incrementally, to reduce the Message Server start up time. When the
+Message Server starts, only a percentage of the maximum cache size (<codeph>MsvMaximumCacheSize</codeph>)
+is allocated to cache. The percentage is specified by the <codeph>MsvInitialCacheCreation</codeph> parameter.
+The next iteration of memory allocation is not initiated until the memory
+threshold (set using the <codeph>MsvCacheThreshold</codeph> parameter) is
+reached. The subsequent memory allocation is always done by a low priority
+active object. </p> <p><b>Example</b> </p> <p>The memory allocation strategy
+is illustrated in the following figures, based on the default values (shown
+in the preceding table). </p> <p>When Message Server starts, the cache is
+created with an initial size of 410KB (40 percent of 1024KB). If 70 percent
+of the free space in the cache gets used the server allocates an additional
+205KB (20 percent of 1024). </p> <fig id="GUID-CA4A08C8-C4E8-575F-8F03-F3D1F6579E5F">
+<image href="GUID-B459E37A-BECE-5087-9827-C93310890674_d0e281229_href.png" placement="inline"/>
+</fig> <p>Message Server can make two further 205KB allocations which it does
+as use reaches 70 percent of the memory already allocated. </p> <fig id="GUID-21A40614-046B-56DD-9DDD-34B2F9681B5C">
+<image href="GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e281237_href.png" placement="inline"/>
+</fig> <p>If more than 70 percent of the first two allocated memory chunks
+is used, an additional 20 percent of memory is added to the free space. </p> <fig id="GUID-EBF4FF85-D6D6-518C-9391-C3AFF8821F83">
+<image href="GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e281245_href.png" placement="inline"/>
+</fig> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-2FDD1CAE-0FBF-4CC4-9C16-5AE4F538ED85.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-2FDD1CAE-0FBF-4CC4-9C16-5AE4F538ED85" xml:lang="en"><title>Rotation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Whenever the orientation of UI is changed, all applications rotate 90 or
-270 degrees (not only the foreground application). By default, the UI does
-not rotate automatically to any other orientation while opening or closing
-an application, swapping to another application, or in the case of embedded
-applications or seamless task flows. In addition, the UI should not change
-its orientation when another view within an application is opened.</p>
-<p>Applications that support only one orientation, and thus trigger automatic
-orientation switch, do not change the orientation of other applications. That
-is, if the orientation is ’portrait’ before launching a ’landscape-only application’,
-it is portrait even after exiting it. </p>
-<p>An exception to this rule is for the applications that are launched from
-the landscape application itself (for example, the <b>Go to gallery</b> option
-in the Camera application) or embedded within the application (for example,
-the embedded Browser within an image editor when downloading content). In
-these cases, one orientation should remain throughout the task flow, and the
-original orientation should be returned only after exiting the application
-that triggered the rotation.</p>
-<p>No queries or notes are recommended to inform or ask the user about rotation.</p>
-<fig id="GUID-3569FFE6-3CD2-4D6E-9DCA-758425A3592D">
-<image href="GUID-F7C762AA-3961-4739-ADD1-346DBF7CD7F8_d0e82262_href.png" placement="inline"/>
-</fig>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e321282_href.png has changed
Binary file Symbian3/SDK/Source/GUID-300B4AF5-7F6E-542D-886D-335674EDE8FD_d0e327439_href.png has changed
--- a/Symbian3/SDK/Source/GUID-301488F8-B6D8-569A-B05E-19B740FE4C00.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-301488F8-B6D8-569A-B05E-19B740FE4C00.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,61 +1,61 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-301488F8-B6D8-569A-B05E-19B740FE4C00" xml:lang="en"><title>Selecting
-a Remote Device</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Thought should be given to the way in which a remote device will be selected
-for connection before moving on to begin the actual connection. This document
-discusses some of the issues that should be considered. </p>
-<section><title>Methods for selecting a remote device</title> <p> An application
-can determine the remote device to which it should talk in several ways, it
-may be:  </p><ul>
-<li><p> hard-wired,  </p> </li>
-<li><p> a stored preference (application stores a previously selected device
-profile to reuse),  </p> </li>
-<li><p> selected by the user, or  </p> </li>
-<li><p> determined programmatically.  </p> </li>
-</ul><p> Each of these may be appropriate in different situations. In the
-first couple of cases, the address of the remote device is simply retrieved
-from storage. Functionality for the third case is provided by the<xref href="GUID-C49F63A4-BA9D-5C99-8C82-EB3163E30D3E.dita">Bluetooth
-UI</xref> . </p><p> The final case, the program itself determining the remote
-device, could be adopted for the following reasons: </p><ul>
-<li><p> to provide a customised device selection UI to the user  </p> </li>
-<li><p> to select a device based on some other criteria, for example, "use
-the least busy LAN access point"  </p> </li>
-</ul><p> The next page,<xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
- About Remote Devices</xref> , discusses in detail how to go about this.  </p></section>
-<section><title>Where Next?</title> <p>This tutorial set takes you through
-all the steps involved in setting up and communicating over a Bluetooth connection. </p> <ul>
-<li id="GUID-36903ABB-D4DF-5FFC-B334-063144CC56C8-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-3-3-1"><p> <b>Selecting a Remote
-Device</b> - This document </p> </li>
-<li id="GUID-29C87A1A-3F04-5248-85AC-6F6E055B2F83-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-3-3-2"><p> <xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
-About Remote Devices</xref>  </p> </li>
-<li id="GUID-C547A603-E73A-57ED-BB70-B3D4510EDFBB-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-3-3-3"><p> <xref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita">Inquiring
-About Services on a Remote Device</xref>  </p> </li>
-<li id="GUID-6E861019-D849-5D8E-B8ED-FB6D9EDBE1F4-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-3-3-4"><p> <xref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita">Connecting
-and Transferring Data to a Remote Device</xref>  </p> </li>
-<li id="GUID-6760B04D-1117-5691-ABDA-62B99DC9CFF4-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-3-3-5"><p> <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
-security on outgoing sockets</xref>  </p> </li>
-</ul> </section>
-<section><title>Where Next?</title> <p>This tutorial set takes you through
-all the steps involved in setting up and communicating over a Bluetooth connection. </p> <ul>
-<li id="GUID-36903ABB-D4DF-5FFC-B334-063144CC56C8-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-4-3-1"><p> <b>Selecting a Remote
-Device</b> - This document </p> </li>
-<li id="GUID-29C87A1A-3F04-5248-85AC-6F6E055B2F83-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-4-3-2"><p> <xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
-About Remote Devices</xref>  </p> </li>
-<li id="GUID-C547A603-E73A-57ED-BB70-B3D4510EDFBB-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-4-3-3"><p> <xref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita">Inquiring
-About Services on a Remote Device</xref>  </p> </li>
-<li id="GUID-6E861019-D849-5D8E-B8ED-FB6D9EDBE1F4-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-4-3-4"><p> <xref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita">Connecting
-and Transferring Data to a Remote Device</xref>  </p> </li>
-<li id="GUID-6760B04D-1117-5691-ABDA-62B99DC9CFF4-GENID-1-8-1-25-1-1-6-1-8-1-3-1-3-1-2-4-3-5"><p> <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
-security on outgoing sockets</xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-301488F8-B6D8-569A-B05E-19B740FE4C00" xml:lang="en"><title>Selecting
+a Remote Device</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Thought should be given to the way in which a remote device will be selected
+for connection before moving on to begin the actual connection. This document
+discusses some of the issues that should be considered. </p>
+<section><title>Methods for selecting a remote device</title> <p> An application
+can determine the remote device to which it should talk in several ways, it
+may be:  </p><ul>
+<li><p> hard-wired,  </p> </li>
+<li><p> a stored preference (application stores a previously selected device
+profile to reuse),  </p> </li>
+<li><p> selected by the user, or  </p> </li>
+<li><p> determined programmatically.  </p> </li>
+</ul><p> Each of these may be appropriate in different situations. In the
+first couple of cases, the address of the remote device is simply retrieved
+from storage. Functionality for the third case is provided by the<xref href="GUID-C49F63A4-BA9D-5C99-8C82-EB3163E30D3E.dita">Bluetooth
+UI</xref> . </p><p> The final case, the program itself determining the remote
+device, could be adopted for the following reasons: </p><ul>
+<li><p> to provide a customised device selection UI to the user  </p> </li>
+<li><p> to select a device based on some other criteria, for example, "use
+the least busy LAN access point"  </p> </li>
+</ul><p> The next page,<xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
+ About Remote Devices</xref> , discusses in detail how to go about this.  </p></section>
+<section><title>Where Next?</title> <p>This tutorial set takes you through
+all the steps involved in setting up and communicating over a Bluetooth connection. </p> <ul>
+<li id="GUID-36903ABB-D4DF-5FFC-B334-063144CC56C8-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-3-3-1"><p> <b>Selecting a Remote
+Device</b> - This document </p> </li>
+<li id="GUID-29C87A1A-3F04-5248-85AC-6F6E055B2F83-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-3-3-2"><p> <xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
+About Remote Devices</xref>  </p> </li>
+<li id="GUID-C547A603-E73A-57ED-BB70-B3D4510EDFBB-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-3-3-3"><p> <xref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita">Inquiring
+About Services on a Remote Device</xref>  </p> </li>
+<li id="GUID-6E861019-D849-5D8E-B8ED-FB6D9EDBE1F4-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-3-3-4"><p> <xref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita">Connecting
+and Transferring Data to a Remote Device</xref>  </p> </li>
+<li id="GUID-6760B04D-1117-5691-ABDA-62B99DC9CFF4-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-3-3-5"><p> <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
+security on outgoing sockets</xref>  </p> </li>
+</ul> </section>
+<section><title>Where Next?</title> <p>This tutorial set takes you through
+all the steps involved in setting up and communicating over a Bluetooth connection. </p> <ul>
+<li id="GUID-36903ABB-D4DF-5FFC-B334-063144CC56C8-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-4-3-1"><p> <b>Selecting a Remote
+Device</b> - This document </p> </li>
+<li id="GUID-29C87A1A-3F04-5248-85AC-6F6E055B2F83-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-4-3-2"><p> <xref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita">Inquiring
+About Remote Devices</xref>  </p> </li>
+<li id="GUID-C547A603-E73A-57ED-BB70-B3D4510EDFBB-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-4-3-3"><p> <xref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita">Inquiring
+About Services on a Remote Device</xref>  </p> </li>
+<li id="GUID-6E861019-D849-5D8E-B8ED-FB6D9EDBE1F4-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-4-3-4"><p> <xref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita">Connecting
+and Transferring Data to a Remote Device</xref>  </p> </li>
+<li id="GUID-6760B04D-1117-5691-ABDA-62B99DC9CFF4-GENID-1-10-1-26-1-1-6-1-8-1-3-1-3-1-2-4-3-5"><p> <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
+security on outgoing sockets</xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,278 +1,278 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B" xml:lang="en"><title>Symbian
-C++ Quick Start</title><shortdesc>This Quick Start is relevant if you want to create Symbian C++
-applications that run on Symbian devices - i.e. "on top" of the Symbian platform.
-Typically this will include: professional application and games developers,
-professional service companies, hobbyist developers and students. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The tutorial shows you how to get the development tools (e.g. IDE) and
-set up your development environment. It then shows you how to create a skeleton
-application using Carbide.c++ and UI designer, and how to get it up and running
-on both the <xref href="http://developer.symbian.org/wiki/index.php/Symbian_Emulator" scope="external">Symbian Emulator</xref> and on the device; the whole process
-takes just a few minutes! </p>
-<p>Comes with Code: <xref href="http://developer.symbian.org/wiki/index.php/File:HelloSymbianWorld_Example_Code.zip" scope="external">File: HelloSymbianWorld Example Code.zip</xref> </p>
-<section id="GUID-84D52EE3-58BD-4C55-B07C-52D08CEC42D8">       <title>  Set
-up the development environment</title>       <p>Assuming your computer meets
-the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_developer_environment_system_requirements%3F" scope="external">System Requirements</xref> then setting up your PC for Symbian
-C++ development is as simple as downloading and installing (do so in this
-order): </p><ol>
-<li id="GUID-1ADD0E23-A910-4FE5-9CC7-3ABE186CDFFC"><p>Perl. See the <xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As#How_do_I_install_Perl_on_my_C.2B.2B_development_PC.3F" scope="external">Kits Q&amp;As</xref> for notes on the recommended version.</p></li>
-<li id="GUID-91F4D7FD-3E98-498A-9BAE-962466EEF83B"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref>.</p></li>
-<li id="GUID-8630F1D8-E45B-4AF9-8F4E-D8906C71FCD3"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">Software Developer Kit (SDK)</xref>  (full installation)
-.</p></li>
-</ol><p>For help installing the SDK please refer to the <xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p><p>You can now
-create your first application using the Carbide.c++ project wizard, as the
-following sections will describe. </p>     </section>
-<section id="GUID-4B542973-8F52-41B5-884E-273BB222B783"><title>Starting Carbide.c++</title><p>The
-Carbide.c++ IDE is installed as part of the free <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref> (step 2 in the
-section above). It is the only supported/official IDE for Symbian C++ development.
- </p><p>Carbide.c++ is launched from the Windows <b>Start</b> button: <b>All
-Programs | Symbian Foundation ADT v</b><i>&lt;ADTVersion&gt;</i> <b>| Carbide.c++
-| Carbide.++ v</b><i>&lt;CarbideVersion&gt;</i>.</p><p> On start, you will be
-prompted to select a workspace directory. The workspace directory contains
-any projects you’ve already created in the workspace and their common settings
-- such as code-formatting options (you can define multiple workspaces in order
-to separate completely different tasks). If this is the first time you've
-run Carbide.c++ the workspace will be empty.</p><note> Your Symbian projects
-must be on the drive where you installed your SDK. You must also ensure that
-the path name of the workspace does not contain non-alphanumeric characters
-or spaces. This is because the Symbian toolchain uses command line tools that
-cannot read special path names.</note><p>If you installed the SDK to drive <codeph>C:\</codeph>,
-an example of a correct workspace path is: <codeph>C:\Symbian\development\</codeph>. </p><fig id="GUID-8E6698A1-7410-40FA-A109-E92481EE5E9D">
-<image href="GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e3183_href.png" placement="inline"/>
-</fig><p>Once Carbide.c++ has started, close the <i>Welcome tab</i> (by clicking
-the cross shown circled in red below) to see the default workspace.</p><fig id="GUID-F379FA98-BCA3-47BB-851E-8E976A0B194F">
-<image href="GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e3192_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-D06F438D-D17F-4EFD-9CD7-9444472B5676"><title>  Creating
-a Project</title><p>To launch the Carbide.c++ <i>Create New Project Wizard</i> select: <b>File
-| New | Symbian OS C++ Project</b>. </p><p>Choose the <b>GUI Application with
-UI Designer</b> application template (see S60 section). This template creates
-a runnable GUI application with the <i>UI Designer</i> tool enabled (the <i>UI
-Designer</i> allows views to be created "visually" by drag &amp; dropping
-standard UI components). </p><fig id="GUID-2859E9EC-2EAC-4E99-9993-8AC91944A952">
-<image href="GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e3219_href.png" placement="inline"/>
-</fig><p>The <b>Next</b> page of the wizard is "<b>New Symbian OS C++ Project</b>".
-Define the project name - in this case "HelloWorld". Once again, make sure
-the project directory is on the same drive as the SDK and does not contain
-spaces or other special characters.  </p><fig id="GUID-969415CB-A861-4E36-A4A5-504C3580A3ED">
-<image href="GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e3231_href.png" placement="inline"/>
-</fig><p>The <b>Next</b> page of the wizard is "<b>Symbian OS SDKs</b>". Choose
-the SDK(s) you want to use for building the project from among those installed
-to your PC (You can add more SDKs to your project later on). This should include
-a <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">Symbian platform SDK</xref>. At time of writing the only
-C++ Application Development SDK is the Symbian^1 SDK (<b>Note</b>: this is
-a copy of the S60 5th Edition SDK v1.0).  </p><fig id="GUID-0275D0D6-5E8E-4795-A887-F0F21EE509D9">
-<image href="GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e3249_href.png" placement="inline"/>
-</fig><p>By default all build configurations will be selected:      </p><ul>
-<li><p><b>Emulator Debug (WINSCW)</b> builds binaries for the Windows-hosted
-emulator.</p></li>
-<li><p><b>Phone Debug | Release (GCCE)</b> builds binaries for the phone using
-the (free) GCCE compiler that was installed with the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">SDK</xref>.  </p></li>
-<li><p><b>Phone Debug | Release (ARMV5)</b> builds binaries for the phone
-using the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">ARM RealView Compiler (RVCT)</xref>. RVCT produces code that
-is a few percent smaller and faster than the current versions of GCCE supported
-for Symbian C++ development, but must be separately licensed from ARM. RVCT
-is primarily used by phone manufacturers to build binaries for device ROM.</p></li>
-</ul><p>Most developers should simply de-select the ARMV5 options above as
-shown (the Emulator is needed by all developers, and GCCE is sufficient for
-most third-party development).  </p><p>The <b>Next</b> page of the wizard
-sets the "<b>Application properties</b>".  </p><fig id="GUID-3BD8C48E-AFA5-4D34-9E66-9B374E514635">
-<image href="GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e3291_href.png" placement="inline"/>
-</fig><p>Keep the default values. The <b>Baseline SDK</b> defines the common
-compatibility level of your application. For example, if set to the <b>S60
-5th Edition SDK</b>, the UI designer doesn’t let you add elements that are
-only available in later S60 5th Edition, Feature Pack 1+ SDKs and devices.
- </p><p>The <b>Next</b> page of the wizard allows you to choose an S60 UI
-design. Keep the <b>Empty</b> user interface variant.  </p><p>The <b>Next</b> page
-of the wizard "<b>Container Name and Type</b>" has default values that are
-usually acceptable.  </p><note/><p>The <b>Finish</b> button is active
-in this page. The next page is optional but for the purposes of this tutorial
-you should click <b>Next</b>, rather than <b>Finish</b>.  </p><fig id="GUID-0F3EA856-F629-47BF-88ED-76F355EED12F">
-<image href="GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e3331_href.png" placement="inline"/>
-</fig><p>Even though our application will only use one view, it’s usually
-better to check "Support View Switching", in order to make the application
-easier to extend later on.  </p><p>The <b>Next</b> page of the wizard "<b>Basic
-Settings</b>" can be used to customize the project with your name and a copyright
-notice for every human-readable file. It also allows you to specify the application
-unique identifier (<xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)" scope="external">UID</xref>).  </p><fig id="GUID-7D8B9AD4-F90C-4001-8449-DC282774B4E9">
-<image href="GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e3348_href.png" placement="inline"/>
-</fig><p>The UID (actually the <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#What_are_SIDs.3F" scope="external">SID</xref>, but for the moment we can ignore the distinction)
-defines the private area in the file system in which the application can store
-its data. Among other things the UID can also be used to programmatically
-identify and/or <xref href="http://developer.symbian.org/wiki/index.php/How_to_programmatically_start_another_application" scope="external">start the application</xref>.  </p><p>Carbide.c++ generates
-a random UID value for you starting with ‘0xE’, which is the range of UIDs
-reserved for internal development and testing. If you want to release your
-application to the public, you need to get your own unique UID allocated by <xref href="http://www.symbiansigned.com/" scope="external">Symbian Signed</xref>.
- </p><p>As we do not intend to release our Hello World application to the
-public, we’ll simply continue to use the value Carbide.c++ assigned us from
-the development range (you can change the UID later on, although you must
-be careful to change every instance of it found within your project - see <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#How_do_I_change_the_UID_of_my_application.3F" scope="external">How to change your application's UID</xref>).  </p><p>Select <b>Finish</b> to
-close the wizard and create your application (there is no need to go to the <b>Next</b> (last)
-page of the wizard as the default values are always acceptable).  </p><p>That's
-it, your workspace should look similar to the screenshot below. </p><fig id="GUID-4E47F468-590F-4608-9608-D026956B6B23">
-<image href="GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e3380_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-E1F2D586-2546-4EB6-BDD3-518D03698D9B"><title>  Targeting
-the Emulator</title><p>Normally you'll start by building for the emulator;
-you can use the emulator for most of your development work (it is possible
-to access the Internet through the emulator, and even simulate GPS). </p><p/><p><b>Building
-for the Emulator</b></p><ul>
-<li><p>First set the active build configuration. You can do this by clicking
-the <b>Manage configurations for the current project</b> icon <image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3400_href.png" placement="inline">
-</image> in the toolbar or by selecting menu: <b>Project | Build Configurations
-| Set Active</b> and select <b>Emulator Debug</b>. </p></li>
-</ul><fig id="GUID-ABBC9711-3A90-4EC3-9C7F-56D165816A4A">
-<image href="GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e3412_href.png" placement="inline"/>
-</fig><ul>
-<li><p>Then build the current configuration using the <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3422_href.png" placement="inline"/> in the toolbar or
-through the menu: <b>Project | Build Project</b> (You can also select a particular
-configuration to build from the Build icon selector).</p></li>
-</ul><p><i>Warning: If you get an error message similar to "WARNING: EPOCROOT
-does not specify an existing directory", you did not place your workspace/project
-on the same drive as the application development SDK (which is installed by
-default to C:\). Delete the project and start again. The diagram shows how
-this might appear in Carbide.c++:</i> </p><fig id="GUID-724EE45B-5DEF-40D5-8AA0-1D84C6DBD7A7">
-<image href="GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e3434_href.png" placement="inline"/>
-</fig><p/><p><b>Running on the Emulator</b></p><p>If your application built
-successfully, click on the <b>Run</b> button <image href="GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e3445_href.png" placement="inline">
-</image> (Ctrl + F11). Upon the first launch of your project, Carbide.c++
-will ask you which executable you want to launch: </p><fig id="GUID-66C413F8-7482-47FC-A37F-1BFC83A7550E">
-<image href="GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e3450_href.png" placement="inline"/>
-</fig><ul>
-<li><p>If you choose <i>HelloWorld.exe</i>, the emulator will be launched
-and your application started automatically. The emulator will close once you
-exit your application. </p></li>
-<li><p>If you choose <i>Emulator</i> the emulator (epoc.exe) will be launched
-and you will need to navigate to the application and start it by clicking
-on the icon (just as you do when starting an application on a device). We’ll
-explain how to find the application shortly.</p></li>
-</ul><p>It may sound more difficult to choose the second method, but it has
-some advantages. You can leave the emulator running if you are only doing
-small edits in your source code – simply close your application in the emulator,
-recompile and restart your app through the emulator’s menu. You’ll also see
-any error messages that may be shown when you exit the application, because
-the emulator will not shut down instantly after you exit Hello World in the
-emulator. Those error messages are also visible in Carbide.c++’s console window.
- </p><p>When the emulator starts for the first time you might have to wait
-for several minutes before it is completely ready for use. Successive starts
-will be a lot faster, because Windows caches most of the emulator DLLs. </p><fig id="GUID-A0A0A882-BC03-401B-A701-8EBEBC6D7BCE">
-<image href="GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e3474_href.png" placement="inline"/>
-</fig><p><i>If you decide to launch the emulator and navigate to your application:</i> First,
-open the menu through the <b>S60</b> menu symbol on the bottom left of the
-screen. Your own application will be located at the bottom of the <b>Applications</b> folder;
-use your mouse to navigate in the emulator’s menus.  </p><p>When you launch
-your application, the main pane will be empty. As you can see, the example
-application the wizard has created already supports a full user interface
-and handles input from the left and right softkeys at the bottom of the screen. </p><fig id="GUID-B81BC36D-7EA2-4B2A-9610-4A7F12684802">
-<image href="GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e3490_href.png" placement="inline"/>
-</fig><p/><p><b>Debugging on the Emulator</b></p><p>The Emulator is the
-default debug target - you simply click the Debug button <image href="GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e3498_href.png" placement="inline">
-</image>.  </p><p>Debugging on the Emulator is not covered further in this
-tutorial. See <b>Carbide.c++ User Guide &gt; Debugging projects</b> for extensive
-information on debugging using Carbide.c++. </p></section>
-<section id="GUID-8ADA0364-18BF-4392-A448-3C5513B3C49B"><title>Targeting the
-Device</title><p>The emulator can be used for most of your development work.
-However, some situations still require a real device – for example, when you
-want to use the camera or the acceleration sensor.</p><p><i><b>Tip</b>: You
-should test your applications on the phone from time to time, even if it is
-fully supported by the emulator.</i></p><p>When you've finished development,
-you'll also want to build a release version; stripping out debug code and
-symbol information to make your binaries smaller and more efficient. </p><p/><p><b>Building
-for the Device</b></p><p>To tell the IDE that you want to build for the device,
-change the active build configuration to a phone-release configuration for
-GCCE (unless you have the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">RVCT compiler</xref>). As before, use the <b>Manage configurations
-for current project</b> toolbar icon (<image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3531_href.png" placement="inline">
-</image>) to select the active-build configuration.  </p><fig id="GUID-0B5929C0-6DAC-4859-8B2A-BC3225507685">
-<image href="GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e3536_href.png" placement="inline"/>
-</fig><p>Next, choose to build the current configuration using the toolbar <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3543_href.png" placement="inline"/>(or in the menu: <b>Project
-| Build Project</b>).  </p><p>This will automatically compile the project
-using the GCCE compiler and create an installation package – a file called <codeph>HelloWorld.sisx</codeph> in
-your project's <codeph>\HelloWorld\sis\</codeph> directory. You now need to
-transfer this file to your phone to install it. 	</p><p><i><b>Tip</b>: Use
-Carbide.c++ to find the file on your PC. Navigate to the file in the project
-view, then right-click on it and select <b>Show in Explorer</b>.</i>  </p><p>Don’t
-forget to switch back to the <b>Emulator Debug</b> build configuration when
-you continue development! </p><p/><p><b>Installing on the Device</b></p><p> 
-You can use the PC Suite that came with your phone to install the application
-on your device</p><ul>
-<li><p>Ensure that the PC Suite is installed and running</p></li>
-<li><p>Connect your device to the PC via Bluetooth or USB and add the phone
-to the known devices in the PC Suite (if necessary).</p></li>
-<li><p>Double-click the <codeph>.sisx</codeph> file in Windows Explorer or
-the Project Explorer window of Carbide.c++.</p></li>
-</ul><p>If the PC Suite is not installed on your PC, you can send the file
-to the phone via Bluetooth or IrDA (if available):      </p><ul>
-<li><p>Locate the <codeph>.sisx</codeph> file in Windows Explorer</p></li>
-<li><p>Right-click on it and select <b>Send to | Bluetooth device</b>.</p></li>
-</ul><p>You will be prompted to install the application when you open the
-message. 	</p><p/><p><i><b>Warning</b>: If you get a </i><keyword>Certificate
-Error</keyword> <i>message when you try to install the application, then your
-phone has been configured to prevent installation of self-signed sis files.
-To change this behavior, go to <b>Settings - Application manager - Installation
-settings - Software installation</b> and change the setting from <b>Signed
-Only</b> to <b>All</b>. For other errors received upon installation, consult
-the <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device.dita">installation
-error troubleshooting guide</xref>.</i></p><p/><p><b>Debugging on the Device</b></p><p> 
-Debugging on a production phone is covered in the topic: <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>. </p></section>
-<section id="GUID-832FBA52-70D7-47B8-AA09-76CD10F75B15"><title>Building on
-the Command Line</title><p>It is also possible to build your applications
-using the command-line based Symbian toolchain. If you've never done so before
-you will first need to set up the environment using the tool provided:  </p><ul>
-<li><p>Select the windows start button and select: <b>Start | All Programs
-| Symbian Foundation ADT v1.0 | Carbide.c++ | Configure environment for WINSCW
-command line</b></p></li>
-</ul><p>   Open a command prompt in your project's /group/ folder (where the
-bld.inf project file is located) and do:  </p><codeblock xml:space="preserve">bldmake bldfiles 
-abld build</codeblock><p>  The command <codeph>bldmake bldfiles</codeph> creates
-a batch file <codeph>abld.bat</codeph> based on the component-definition file
-(<codeph>bld.inf</codeph>) and the project-definition file(s) (<codeph>.mmp</codeph>).
-The <codeph>abld build</codeph> command uses the batch file to build <i>all</i> the
-default targets (i.e. for gcce and Emulator).  </p><p>You can build just one
-target using  </p><p><codeblock xml:space="preserve">abld build &lt;target&gt;</codeblock></p><p>For
-example, "<codeph>abld build winscw udeb</codeph>" builds just the emulator
-debug variant.  </p><p>You can start the emulator by selecting its executable
-in your file system (it will be located at <codeph>SDK DIRECTORY\epoc32\release\winscw\udeb\epoc.exe</codeph>).
- </p><p>An overview of the commands and the generated outputs is shown below.
-There is also extensive documentation on the build process in the <xref href="http://developer.symbian.org/main/documentation/reference/s%5E3/doc_source/ToolsAndUtilities96/BuildTools/HowtoBuildProcess.guide.html" scope="external">Symbian Developer Library: Symbian OS build process</xref>.</p><fig id="GUID-C3027C70-8C7A-4C0A-BE2F-C257EA462D73">
-<image href="GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e3705_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-1E8CC146-B76A-476D-BF65-DFBB6B31D183"><title>Troubleshooting</title><p> 
-For the vast majority of users the preceding instructions can be followed
-through without issue. If however you have any build issues, then please follow
-the following instructions to check that your <xref href="http://developer.symbian.org/wiki/index.php/How_do_I_test_that_my_development_environment_is_set_up_correctly%3F.dita">environment is set up correctly</xref> and <xref href="http://developer.symbian.org/wiki/index.php/Development_Environment_Troubleshooting_Guide" scope="external">troubleshoot</xref> any problems that may arise.</p></section>
-<section id="GUID-A303EA17-F198-42A2-B41C-5C43B4D88B9E"><title>Summary</title><p>In
-this tutorial you set up your development environment, learned how to create
-a skeleton application using Carbide.c++ <i>UI Designer</i>, and how to get
-it up and running on both the Symbian platform emulator and on the device.
- </p><p>In <xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
-Hello: A Tutorial for Symbian C++ Applications</xref> we will extend the basic
-skeleton to create a small paint application, along the way learning more
-about the application frameworks (e.g. defining menus, how to handle touch-screen
-events, drawing to the screen etc.).</p></section>
-<section id="GUID-478AF935-A7FB-4F58-A1F4-E17FE57DDF72"><title>Related Info</title><p> 
-Further reading: </p><ul>
-<li><p><xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
-Hello: A Tutorial for Symbian C++ Applications</xref> provides a step by step
-guide to creating your first "real application", covering the key elements
-of the application framework. </p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Fundamentals_of_Symbian_C%2B%2B" scope="external">Fundamentals of Symbian C++</xref> provides all the essential
-information you need to understand Symbian C++.</p></li>
-</ul><p>About the Kits:</p><ul>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F.dita">What
-are the Kits?</xref> explains the <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">ADT</xref> and <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">SDK</xref>.</p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As" scope="external">Kits Q&amp;As</xref>.</p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>.</p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Release_Notes" scope="external">Symbian^1 SDK Release Notes</xref>.</p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B" xml:lang="en"><title>Symbian
+C++ Quick Start</title><shortdesc>This Quick Start is relevant if you want to create Symbian C++
+applications that run on Symbian devices - i.e. "on top" of the Symbian platform.
+Typically this will include: professional application and games developers,
+professional service companies, hobbyist developers and students. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The tutorial shows you how to get the development tools (e.g. IDE) and
+set up your development environment. It then shows you how to create a skeleton
+application using Carbide.c++ and UI designer, and how to get it up and running
+on both the <xref href="http://developer.symbian.org/wiki/index.php/Symbian_Emulator" scope="external">Symbian Emulator</xref> and on the device; the whole process
+takes just a few minutes! </p>
+<p>Comes with Code: <xref href="http://developer.symbian.org/wiki/index.php/File:HelloSymbianWorld_Example_Code.zip" scope="external">File: HelloSymbianWorld Example Code.zip</xref> </p>
+<section id="GUID-84D52EE3-58BD-4C55-B07C-52D08CEC42D8">       <title>  Set
+up the development environment</title>       <p>Assuming your computer meets
+the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_developer_environment_system_requirements%3F" scope="external">System Requirements</xref> then setting up your PC for Symbian
+C++ development is as simple as downloading and installing (do so in this
+order): </p><ol>
+<li id="GUID-1ADD0E23-A910-4FE5-9CC7-3ABE186CDFFC"><p>Perl. See the <xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As#How_do_I_install_Perl_on_my_C.2B.2B_development_PC.3F" scope="external">Kits Q&amp;As</xref> for notes on the recommended version.</p></li>
+<li id="GUID-91F4D7FD-3E98-498A-9BAE-962466EEF83B"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref>.</p></li>
+<li id="GUID-8630F1D8-E45B-4AF9-8F4E-D8906C71FCD3"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">Software Developer Kit (SDK)</xref>  (full installation)
+.</p></li>
+</ol><p>For help installing the SDK please refer to the <xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p><p>You can now
+create your first application using the Carbide.c++ project wizard, as the
+following sections will describe. </p>     </section>
+<section id="GUID-4B542973-8F52-41B5-884E-273BB222B783"><title>Starting Carbide.c++</title><p>The
+Carbide.c++ IDE is installed as part of the free <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref> (step 2 in the
+section above). It is the only supported/official IDE for Symbian C++ development.
+ </p><p>Carbide.c++ is launched from the Windows <b>Start</b> button: <b>All
+Programs | Symbian Foundation ADT v</b><i>&lt;ADTVersion&gt;</i> <b>| Carbide.c++
+| Carbide.++ v</b><i>&lt;CarbideVersion&gt;</i>.</p><p> On start, you will be
+prompted to select a workspace directory. The workspace directory contains
+any projects you’ve already created in the workspace and their common settings
+- such as code-formatting options (you can define multiple workspaces in order
+to separate completely different tasks). If this is the first time you've
+run Carbide.c++ the workspace will be empty.</p><note> Your Symbian projects
+must be on the drive where you installed your SDK. You must also ensure that
+the path name of the workspace does not contain non-alphanumeric characters
+or spaces. This is because the Symbian toolchain uses command line tools that
+cannot read special path names.</note><p>If you installed the SDK to drive <codeph>C:\</codeph>,
+an example of a correct workspace path is: <codeph>C:\Symbian\development\</codeph>. </p><fig id="GUID-8E6698A1-7410-40FA-A109-E92481EE5E9D">
+<image href="GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e4458_href.png" placement="inline"/>
+</fig><p>Once Carbide.c++ has started, close the <i>Welcome tab</i> (by clicking
+the cross shown circled in red below) to see the default workspace.</p><fig id="GUID-F379FA98-BCA3-47BB-851E-8E976A0B194F">
+<image href="GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e4467_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-D06F438D-D17F-4EFD-9CD7-9444472B5676"><title>  Creating
+a Project</title><p>To launch the Carbide.c++ <i>Create New Project Wizard</i> select: <b>File
+| New | Symbian OS C++ Project</b>. </p><p>Choose the <b>GUI Application with
+UI Designer</b> application template (see S60 section). This template creates
+a runnable GUI application with the <i>UI Designer</i> tool enabled (the <i>UI
+Designer</i> allows views to be created "visually" by drag &amp; dropping
+standard UI components). </p><fig id="GUID-2859E9EC-2EAC-4E99-9993-8AC91944A952">
+<image href="GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e4494_href.png" placement="inline"/>
+</fig><p>The <b>Next</b> page of the wizard is "<b>New Symbian OS C++ Project</b>".
+Define the project name - in this case "HelloWorld". Once again, make sure
+the project directory is on the same drive as the SDK and does not contain
+spaces or other special characters.  </p><fig id="GUID-969415CB-A861-4E36-A4A5-504C3580A3ED">
+<image href="GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e4506_href.png" placement="inline"/>
+</fig><p>The <b>Next</b> page of the wizard is "<b>Symbian OS SDKs</b>". Choose
+the SDK(s) you want to use for building the project from among those installed
+to your PC (You can add more SDKs to your project later on). This should include
+a <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">Symbian platform SDK</xref>. At time of writing the only
+C++ Application Development SDK is the Symbian^1 SDK (<b>Note</b>: this is
+a copy of the S60 5th Edition SDK v1.0).  </p><fig id="GUID-0275D0D6-5E8E-4795-A887-F0F21EE509D9">
+<image href="GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e4524_href.png" placement="inline"/>
+</fig><p>By default all build configurations will be selected:      </p><ul>
+<li><p><b>Emulator Debug (WINSCW)</b> builds binaries for the Windows-hosted
+emulator.</p></li>
+<li><p><b>Phone Debug | Release (GCCE)</b> builds binaries for the phone using
+the (free) GCCE compiler that was installed with the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">SDK</xref>.  </p></li>
+<li><p><b>Phone Debug | Release (ARMV5)</b> builds binaries for the phone
+using the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">ARM RealView Compiler (RVCT)</xref>. RVCT produces code that
+is a few percent smaller and faster than the current versions of GCCE supported
+for Symbian C++ development, but must be separately licensed from ARM. RVCT
+is primarily used by phone manufacturers to build binaries for device ROM.</p></li>
+</ul><p>Most developers should simply de-select the ARMV5 options above as
+shown (the Emulator is needed by all developers, and GCCE is sufficient for
+most third-party development).  </p><p>The <b>Next</b> page of the wizard
+sets the "<b>Application properties</b>".  </p><fig id="GUID-3BD8C48E-AFA5-4D34-9E66-9B374E514635">
+<image href="GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e4566_href.png" placement="inline"/>
+</fig><p>Keep the default values. The <b>Baseline SDK</b> defines the common
+compatibility level of your application. For example, if set to the <b>S60
+5th Edition SDK</b>, the UI designer doesn’t let you add elements that are
+only available in later S60 5th Edition, Feature Pack 1+ SDKs and devices.
+ </p><p>The <b>Next</b> page of the wizard allows you to choose an S60 UI
+design. Keep the <b>Empty</b> user interface variant.  </p><p>The <b>Next</b> page
+of the wizard "<b>Container Name and Type</b>" has default values that are
+usually acceptable.  </p><note/><p>The <b>Finish</b> button is active
+in this page. The next page is optional but for the purposes of this tutorial
+you should click <b>Next</b>, rather than <b>Finish</b>.  </p><fig id="GUID-0F3EA856-F629-47BF-88ED-76F355EED12F">
+<image href="GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e4606_href.png" placement="inline"/>
+</fig><p>Even though our application will only use one view, it’s usually
+better to check "Support View Switching", in order to make the application
+easier to extend later on.  </p><p>The <b>Next</b> page of the wizard "<b>Basic
+Settings</b>" can be used to customize the project with your name and a copyright
+notice for every human-readable file. It also allows you to specify the application
+unique identifier (<xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)" scope="external">UID</xref>).  </p><fig id="GUID-7D8B9AD4-F90C-4001-8449-DC282774B4E9">
+<image href="GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e4623_href.png" placement="inline"/>
+</fig><p>The UID (actually the <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#What_are_SIDs.3F" scope="external">SID</xref>, but for the moment we can ignore the distinction)
+defines the private area in the file system in which the application can store
+its data. Among other things the UID can also be used to programmatically
+identify and/or <xref href="http://developer.symbian.org/wiki/index.php/How_to_programmatically_start_another_application" scope="external">start the application</xref>.  </p><p>Carbide.c++ generates
+a random UID value for you starting with ‘0xE’, which is the range of UIDs
+reserved for internal development and testing. If you want to release your
+application to the public, you need to get your own unique UID allocated by <xref href="http://www.symbiansigned.com/" scope="external">Symbian Signed</xref>.
+ </p><p>As we do not intend to release our Hello World application to the
+public, we’ll simply continue to use the value Carbide.c++ assigned us from
+the development range (you can change the UID later on, although you must
+be careful to change every instance of it found within your project - see <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#How_do_I_change_the_UID_of_my_application.3F" scope="external">How to change your application's UID</xref>).  </p><p>Select <b>Finish</b> to
+close the wizard and create your application (there is no need to go to the <b>Next</b> (last)
+page of the wizard as the default values are always acceptable).  </p><p>That's
+it, your workspace should look similar to the screenshot below. </p><fig id="GUID-4E47F468-590F-4608-9608-D026956B6B23">
+<image href="GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e4655_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-E1F2D586-2546-4EB6-BDD3-518D03698D9B"><title>  Targeting
+the Emulator</title><p>Normally you'll start by building for the emulator;
+you can use the emulator for most of your development work (it is possible
+to access the Internet through the emulator, and even simulate GPS). </p><p/><p><b>Building
+for the Emulator</b></p><ul>
+<li><p>First set the active build configuration. You can do this by clicking
+the <b>Manage configurations for the current project</b> icon <image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4675_href.png" placement="inline">
+</image> in the toolbar or by selecting menu: <b>Project | Build Configurations
+| Set Active</b> and select <b>Emulator Debug</b>. </p></li>
+</ul><fig id="GUID-ABBC9711-3A90-4EC3-9C7F-56D165816A4A">
+<image href="GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e4687_href.png" placement="inline"/>
+</fig><ul>
+<li><p>Then build the current configuration using the <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4697_href.png" placement="inline"/> in the toolbar or
+through the menu: <b>Project | Build Project</b> (You can also select a particular
+configuration to build from the Build icon selector).</p></li>
+</ul><p><i>Warning: If you get an error message similar to "WARNING: EPOCROOT
+does not specify an existing directory", you did not place your workspace/project
+on the same drive as the application development SDK (which is installed by
+default to C:\). Delete the project and start again. The diagram shows how
+this might appear in Carbide.c++:</i> </p><fig id="GUID-724EE45B-5DEF-40D5-8AA0-1D84C6DBD7A7">
+<image href="GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e4709_href.png" placement="inline"/>
+</fig><p/><p><b>Running on the Emulator</b></p><p>If your application built
+successfully, click on the <b>Run</b> button <image href="GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e4720_href.png" placement="inline">
+</image> (Ctrl + F11). Upon the first launch of your project, Carbide.c++
+will ask you which executable you want to launch: </p><fig id="GUID-66C413F8-7482-47FC-A37F-1BFC83A7550E">
+<image href="GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e4725_href.png" placement="inline"/>
+</fig><ul>
+<li><p>If you choose <i>HelloWorld.exe</i>, the emulator will be launched
+and your application started automatically. The emulator will close once you
+exit your application. </p></li>
+<li><p>If you choose <i>Emulator</i> the emulator (epoc.exe) will be launched
+and you will need to navigate to the application and start it by clicking
+on the icon (just as you do when starting an application on a device). We’ll
+explain how to find the application shortly.</p></li>
+</ul><p>It may sound more difficult to choose the second method, but it has
+some advantages. You can leave the emulator running if you are only doing
+small edits in your source code – simply close your application in the emulator,
+recompile and restart your app through the emulator’s menu. You’ll also see
+any error messages that may be shown when you exit the application, because
+the emulator will not shut down instantly after you exit Hello World in the
+emulator. Those error messages are also visible in Carbide.c++’s console window.
+ </p><p>When the emulator starts for the first time you might have to wait
+for several minutes before it is completely ready for use. Successive starts
+will be a lot faster, because Windows caches most of the emulator DLLs. </p><fig id="GUID-A0A0A882-BC03-401B-A701-8EBEBC6D7BCE">
+<image href="GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e4749_href.png" placement="inline"/>
+</fig><p><i>If you decide to launch the emulator and navigate to your application:</i> First,
+open the menu through the <b>S60</b> menu symbol on the bottom left of the
+screen. Your own application will be located at the bottom of the <b>Applications</b> folder;
+use your mouse to navigate in the emulator’s menus.  </p><p>When you launch
+your application, the main pane will be empty. As you can see, the example
+application the wizard has created already supports a full user interface
+and handles input from the left and right softkeys at the bottom of the screen. </p><fig id="GUID-B81BC36D-7EA2-4B2A-9610-4A7F12684802">
+<image href="GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e4765_href.png" placement="inline"/>
+</fig><p/><p><b>Debugging on the Emulator</b></p><p>The Emulator is the
+default debug target - you simply click the Debug button <image href="GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e4773_href.png" placement="inline">
+</image>.  </p><p>Debugging on the Emulator is not covered further in this
+tutorial. See <b>Carbide.c++ User Guide &gt; Debugging projects</b> for extensive
+information on debugging using Carbide.c++. </p></section>
+<section id="GUID-8ADA0364-18BF-4392-A448-3C5513B3C49B"><title>Targeting the
+Device</title><p>The emulator can be used for most of your development work.
+However, some situations still require a real device – for example, when you
+want to use the camera or the acceleration sensor.</p><p><i><b>Tip</b>: You
+should test your applications on the phone from time to time, even if it is
+fully supported by the emulator.</i></p><p>When you've finished development,
+you'll also want to build a release version; stripping out debug code and
+symbol information to make your binaries smaller and more efficient. </p><p/><p><b>Building
+for the Device</b></p><p>To tell the IDE that you want to build for the device,
+change the active build configuration to a phone-release configuration for
+GCCE (unless you have the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">RVCT compiler</xref>). As before, use the <b>Manage configurations
+for current project</b> toolbar icon (<image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4806_href.png" placement="inline">
+</image>) to select the active-build configuration.  </p><fig id="GUID-0B5929C0-6DAC-4859-8B2A-BC3225507685">
+<image href="GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e4811_href.png" placement="inline"/>
+</fig><p>Next, choose to build the current configuration using the toolbar <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4818_href.png" placement="inline"/>(or in the menu: <b>Project
+| Build Project</b>).  </p><p>This will automatically compile the project
+using the GCCE compiler and create an installation package – a file called <codeph>HelloWorld.sisx</codeph> in
+your project's <codeph>\HelloWorld\sis\</codeph> directory. You now need to
+transfer this file to your phone to install it. 	</p><p><i><b>Tip</b>: Use
+Carbide.c++ to find the file on your PC. Navigate to the file in the project
+view, then right-click on it and select <b>Show in Explorer</b>.</i>  </p><p>Don’t
+forget to switch back to the <b>Emulator Debug</b> build configuration when
+you continue development! </p><p/><p><b>Installing on the Device</b></p><p> 
+You can use the PC Suite that came with your phone to install the application
+on your device</p><ul>
+<li><p>Ensure that the PC Suite is installed and running</p></li>
+<li><p>Connect your device to the PC via Bluetooth or USB and add the phone
+to the known devices in the PC Suite (if necessary).</p></li>
+<li><p>Double-click the <codeph>.sisx</codeph> file in Windows Explorer or
+the Project Explorer window of Carbide.c++.</p></li>
+</ul><p>If the PC Suite is not installed on your PC, you can send the file
+to the phone via Bluetooth or IrDA (if available):      </p><ul>
+<li><p>Locate the <codeph>.sisx</codeph> file in Windows Explorer</p></li>
+<li><p>Right-click on it and select <b>Send to | Bluetooth device</b>.</p></li>
+</ul><p>You will be prompted to install the application when you open the
+message. 	</p><p/><p><i><b>Warning</b>: If you get a </i><keyword>Certificate
+Error</keyword> <i>message when you try to install the application, then your
+phone has been configured to prevent installation of self-signed sis files.
+To change this behavior, go to <b>Settings - Application manager - Installation
+settings - Software installation</b> and change the setting from <b>Signed
+Only</b> to <b>All</b>. For other errors received upon installation, consult
+the <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device.dita">installation
+error troubleshooting guide</xref>.</i></p><p/><p><b>Debugging on the Device</b></p><p> 
+Debugging on a production phone is covered in the topic: <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>. </p></section>
+<section id="GUID-832FBA52-70D7-47B8-AA09-76CD10F75B15"><title>Building on
+the Command Line</title><p>It is also possible to build your applications
+using the command-line based Symbian toolchain. If you've never done so before
+you will first need to set up the environment using the tool provided:  </p><ul>
+<li><p>Select the windows start button and select: <b>Start | All Programs
+| Symbian Foundation ADT v1.0 | Carbide.c++ | Configure environment for WINSCW
+command line</b></p></li>
+</ul><p>   Open a command prompt in your project's /group/ folder (where the
+bld.inf project file is located) and do:  </p><codeblock xml:space="preserve">bldmake bldfiles 
+abld build</codeblock><p>  The command <codeph>bldmake bldfiles</codeph> creates
+a batch file <codeph>abld.bat</codeph> based on the component-definition file
+(<codeph>bld.inf</codeph>) and the project-definition file(s) (<codeph>.mmp</codeph>).
+The <codeph>abld build</codeph> command uses the batch file to build <i>all</i> the
+default targets (i.e. for gcce and Emulator).  </p><p>You can build just one
+target using  </p><p><codeblock xml:space="preserve">abld build &lt;target&gt;</codeblock></p><p>For
+example, "<codeph>abld build winscw udeb</codeph>" builds just the emulator
+debug variant.  </p><p>You can start the emulator by selecting its executable
+in your file system (it will be located at <codeph>SDK DIRECTORY\epoc32\release\winscw\udeb\epoc.exe</codeph>).
+ </p><p>An overview of the commands and the generated outputs is shown below.
+There is also extensive documentation on the build process in the <xref href="http://developer.symbian.org/main/documentation/reference/s%5E3/doc_source/ToolsAndUtilities96/BuildTools/HowtoBuildProcess.guide.html" scope="external">Symbian Developer Library: Symbian OS build process</xref>.</p><fig id="GUID-C3027C70-8C7A-4C0A-BE2F-C257EA462D73">
+<image href="GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e4980_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-1E8CC146-B76A-476D-BF65-DFBB6B31D183"><title>Troubleshooting</title><p> 
+For the vast majority of users the preceding instructions can be followed
+through without issue. If however you have any build issues, then please follow
+the following instructions to check that your <xref href="http://developer.symbian.org/wiki/index.php/How_do_I_test_that_my_development_environment_is_set_up_correctly%3F.dita">environment is set up correctly</xref> and <xref href="http://developer.symbian.org/wiki/index.php/Development_Environment_Troubleshooting_Guide" scope="external">troubleshoot</xref> any problems that may arise.</p></section>
+<section id="GUID-A303EA17-F198-42A2-B41C-5C43B4D88B9E"><title>Summary</title><p>In
+this tutorial you set up your development environment, learned how to create
+a skeleton application using Carbide.c++ <i>UI Designer</i>, and how to get
+it up and running on both the Symbian platform emulator and on the device.
+ </p><p>In <xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
+Hello: A Tutorial for Symbian C++ Applications</xref> we will extend the basic
+skeleton to create a small paint application, along the way learning more
+about the application frameworks (e.g. defining menus, how to handle touch-screen
+events, drawing to the screen etc.).</p></section>
+<section id="GUID-478AF935-A7FB-4F58-A1F4-E17FE57DDF72"><title>Related Info</title><p> 
+Further reading: </p><ul>
+<li><p><xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
+Hello: A Tutorial for Symbian C++ Applications</xref> provides a step by step
+guide to creating your first "real application", covering the key elements
+of the application framework. </p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Fundamentals_of_Symbian_C%2B%2B" scope="external">Fundamentals of Symbian C++</xref> provides all the essential
+information you need to understand Symbian C++.</p></li>
+</ul><p>About the Kits:</p><ul>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F.dita">What
+are the Kits?</xref> explains the <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">ADT</xref> and <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">SDK</xref>.</p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As" scope="external">Kits Q&amp;As</xref>.</p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>.</p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Release_Notes" scope="external">Symbian^1 SDK Release Notes</xref>.</p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D" xml:lang="en"><title>ECom
-Architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In C++, the existence of abstract base classes and virtual functions allows
-the programs to call, or access interfaces without knowing the actual implementation.
-This mechanism gives a flexibility of writing the implementation independent
-of the interface. The implementations are known as Plug-ins. </p>
-<p>When an application wishes to use a plug-in, an object is to be instantiated
-to perform the required processing. The object specifics are not known until
-run-time. The general characteristics of the processing are known, and these
-are presented as an interface API. </p>
-<p>In early versions of Symbian platform, implementations were provided by <xref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita">polymorphic interface DLLs</xref>.
-All the frameworks within the Symbian platform that needed to use plug-ins
-had to provide own mechanisms for the clients to discover and instantiate
-the implementations. The above method resulted in duplication of functionality. </p>
-<p>The Plug-in (ECom) Framework introduces a generic framework that provides
-a single mechanism to: </p>
-<ul>
-<li id="GUID-6460F0E0-26A3-5038-B8C2-0F4706547600"><p>Register and discover
-interface implementations </p> </li>
-<li id="GUID-4045CA55-1286-5ACD-A532-240667125469"><p>Select an appropriate
-implementation </p> </li>
-<li id="GUID-78AE02BB-13BE-5DA0-B2F3-CC376654589B"><p>Provide version control
-for plug-ins </p> </li>
-</ul>
-<section id="GUID-561303EB-F0EA-4BB5-B7BB-3AE31176E79C"><title>Essentials of a Plug-In System</title> <p>A client wishes
-to access an object to perform some processing. The specifics of this object
-are not known until run-time. The general characteristics of the processing
-are known, and are defined in an interface, but several variants of required
-processing could exist, which are provided by implementations that support
-the interface. </p> <p>There are four clearly-defined roles in such a system. </p> <ul>
-<li id="GUID-B77969AC-EE5C-53C1-8906-07CF3B2BD11A"><p>The <b>Client</b> that
-wishes to access services. </p> </li>
-<li id="GUID-2E175B1C-7A50-5A00-BBF6-C54F2FC71FFA"><p>The <b>Interface API</b> that
-defines how to request services. </p> </li>
-<li id="GUID-C8F67E1A-2175-5093-BCFD-06BD90EF59C6"><p>The <b>Interface Implementation </b> that
-provides the required processing. </p> </li>
-<li id="GUID-A6817508-C5D1-5A7A-B50A-667272292362"><p>The <b>Framework</b> that
-provides the clients with the required access to the implementations. </p> </li>
-</ul> <p>The relationships can be represented as follows: </p> <fig id="GUID-185BDADA-4576-5175-B53B-03C2633E9EA0">
-<title>              Plug-in relationships            </title>
-<image href="GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e179619_href.png" placement="inline"/>
-</fig> <p>The instantiation mechanism forms the backbone of such a system,
-and is responsible for providing the services that identify, and load the
-correct interface implementation at run-time. ECom is such a framework. </p> <p>We'll
-now look at the system from the perspectives in turn of each of the interface
-client, interface implementation, and interface definition, before summarising
-the functions of the ECom. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D" xml:lang="en"><title>ECom
+Architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In C++, the existence of abstract base classes and virtual functions allows
+the programs to call, or access interfaces without knowing the actual implementation.
+This mechanism gives a flexibility of writing the implementation independent
+of the interface. The implementations are known as Plug-ins. </p>
+<p>When an application wishes to use a plug-in, an object is to be instantiated
+to perform the required processing. The object specifics are not known until
+run-time. The general characteristics of the processing are known, and these
+are presented as an interface API. </p>
+<p>In early versions of Symbian platform, implementations were provided by <xref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita">polymorphic interface DLLs</xref>.
+All the frameworks within the Symbian platform that needed to use plug-ins
+had to provide own mechanisms for the clients to discover and instantiate
+the implementations. The above method resulted in duplication of functionality. </p>
+<p>The Plug-in (ECom) Framework introduces a generic framework that provides
+a single mechanism to: </p>
+<ul>
+<li id="GUID-6460F0E0-26A3-5038-B8C2-0F4706547600"><p>Register and discover
+interface implementations </p> </li>
+<li id="GUID-4045CA55-1286-5ACD-A532-240667125469"><p>Select an appropriate
+implementation </p> </li>
+<li id="GUID-78AE02BB-13BE-5DA0-B2F3-CC376654589B"><p>Provide version control
+for plug-ins </p> </li>
+</ul>
+<section id="GUID-561303EB-F0EA-4BB5-B7BB-3AE31176E79C"><title>Essentials of a Plug-In System</title> <p>A client wishes
+to access an object to perform some processing. The specifics of this object
+are not known until run-time. The general characteristics of the processing
+are known, and are defined in an interface, but several variants of required
+processing could exist, which are provided by implementations that support
+the interface. </p> <p>There are four clearly-defined roles in such a system. </p> <ul>
+<li id="GUID-B77969AC-EE5C-53C1-8906-07CF3B2BD11A"><p>The <b>Client</b> that
+wishes to access services. </p> </li>
+<li id="GUID-2E175B1C-7A50-5A00-BBF6-C54F2FC71FFA"><p>The <b>Interface API</b> that
+defines how to request services. </p> </li>
+<li id="GUID-C8F67E1A-2175-5093-BCFD-06BD90EF59C6"><p>The <b>Interface Implementation </b> that
+provides the required processing. </p> </li>
+<li id="GUID-A6817508-C5D1-5A7A-B50A-667272292362"><p>The <b>Framework</b> that
+provides the clients with the required access to the implementations. </p> </li>
+</ul> <p>The relationships can be represented as follows: </p> <fig id="GUID-185BDADA-4576-5175-B53B-03C2633E9EA0">
+<title>              Plug-in relationships            </title>
+<image href="GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e173024_href.png" placement="inline"/>
+</fig> <p>The instantiation mechanism forms the backbone of such a system,
+and is responsible for providing the services that identify, and load the
+correct interface implementation at run-time. ECom is such a framework. </p> <p>We'll
+now look at the system from the perspectives in turn of each of the interface
+client, interface implementation, and interface definition, before summarising
+the functions of the ECom. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,50 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-30382EFD-90D5-570C-A6CD-19D34360F329" xml:lang="en"><title>GraphicsShell:
-drawing and zooming</title><shortdesc>A TechView application that demonstrates drawing points, lines
-and shapes, and zooming a bitmap and text. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A512AE19-D921-47B7-86D7-1AE293365BC9"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c01568a1-21f6-4508-8de7-9733ae2737a1.zip" scope="external">GraphicsShell.zip</xref></p>Download some additional files
-required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a92c7d47-fa68-49c6-9e43-c9c2e650f219.zip" scope="external">CommonGraphicsExampleFiles</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c01568a1-21f6-4508-8de7-9733ae2737a1.html" scope="peer">browse</xref> to view the example code. </p>View the additional
-files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a92c7d47-fa68-49c6-9e43-c9c2e650f219.html" scope="peer">browse</xref>.  </section>
-<section id="GUID-12DAE9CC-9E18-40AA-A820-FBC86F179425"><title>Description</title> <p> <filepath>GraphicsShell</filepath> provides
-an application shell, and two concrete controls. </p> <p> <codeph>CGraphicExampleControl</codeph> is
-a control class, derived from <codeph>CCoeControl</codeph>, which links the
-app shell to the particular controls. </p> <p> <codeph>CDrawControl</codeph> illustrates
-the drawing of shapes in a window. The code draws points, lines and shapes;
-this exercises a variety of drawing functions provided by the window graphics
-context such as <codeph>MoveTo()</codeph>, <codeph>DrawLineTo()</codeph>, <codeph>DrawArc()</codeph> etc. </p> <p> <codeph>CZoomControl</codeph> illustrates
-the use of zooming. </p> </section>
-<section id="GUID-1CF95EDF-58AF-4B79-B8AA-635D456F4590"><title>Class Summary</title><p><xref href="GUID-339EC4C5-89DC-3972-9579-6DD38D418317.dita"><apiname>TPoint</apiname></xref></p><p><xref href="GUID-CCD7C54F-C3D6-3F92-B6CC-1B6116170C6C.dita"><apiname>TRectTSize</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p><p><xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname>TRgb</apiname></xref></p><p><xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref></p><p><xref href="GUID-052E4F6B-71C5-304C-B387-07A2F6F9900B.dita"><apiname>TFontSpec</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p><p><xref href="GUID-DDE4C9C0-7218-385E-B239-0DEFDE19FCCC.dita"><apiname>TZoomFactor</apiname></xref></p><p><xref href="GUID-4791F2C1-C351-3824-8784-3161F5B65DCA.dita"><apiname>MGraphicsDeviceMap</apiname></xref></p><p><xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref></p></section>
-<section id="GUID-11F1F1BF-F1DC-4876-B47A-275B07C645E3"><title>Build</title> <p>The source code for this example
-application can be found in the directory: </p> <p> <filepath>examples\Graphics\GraphicsShell</filepath>  </p> <p>This
-source code may be in the directory in which you installed the Symbian platform,
-or it may be in the <filepath>src\common\developerlibrary\</filepath> directory.
-The directory includes the two project files needed for building the example: <filepath>bld.inf</filepath> and
-the <filepath>.mmp</filepath> file.  </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this application. For
-the emulator, an application called <filepath>GraphicsShell.exe</filepath> is
-created in <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath>. </p> </section>
-<section id="GUID-0CB7BF6D-ED18-46CA-8ED1-ADB440508BBC"><title>Usage</title> <ol id="GUID-911BEED5-308F-5700-A32B-C09194AEFBA7">
-<li id="GUID-2E6EB0AA-B311-53DD-B0CA-BE5E4AA04C7B"><p>Launch the emulator: </p> <p> <filepath>\epoc32\release\winscw\&lt;udeb
-or urel&gt;\EPOC.EXE</filepath>. </p> </li>
-<li id="GUID-6ECA1727-FC1E-5659-B805-1AB1EF7C9407"><p>Click on <systemoutput>GRAPHICSSHELL</systemoutput> to
-run the application. If using the <i>TechView</i> emulator, this will be in
-the <i>Extras</i> menu. </p> </li>
-<li id="GUID-F47B863C-2622-5FA7-A19F-61C386763B01"><p>The controls are listed
-on the menu <systemoutput>List of                 Programs</systemoutput>.
-Press the appropriate menu item to select a specific control. </p> </li>
-<li id="GUID-79D02958-B4F8-5635-862E-17B9E0000666"><p>Step through each phase
-of the example by pressing the space bar or by tapping on the window drawn
-by that example. </p> </li>
-</ol> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-30382EFD-90D5-570C-A6CD-19D34360F329" xml:lang="en"><title>GraphicsShell:
+drawing and zooming</title><shortdesc>A TechView application that demonstrates drawing points, lines
+and shapes, and zooming a bitmap and text. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A512AE19-D921-47B7-86D7-1AE293365BC9-GENID-1-10-1-12-1-1-6-1-6-1-3-1"><title>Download</title> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c01568a1-21f6-4508-8de7-9733ae2737a1.zip" scope="external">GraphicsShell.zip</xref></p>Download some additional files
+required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a92c7d47-fa68-49c6-9e43-c9c2e650f219.zip" scope="external">CommonGraphicsExampleFiles</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c01568a1-21f6-4508-8de7-9733ae2737a1.html" scope="peer">browse</xref> to view the example code. </p>View the additional
+files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a92c7d47-fa68-49c6-9e43-c9c2e650f219.html" scope="peer">browse</xref>.  </section>
+<section id="GUID-12DAE9CC-9E18-40AA-A820-FBC86F179425-GENID-1-10-1-12-1-1-6-1-6-1-3-2"><title>Description</title> <p> <filepath>GraphicsShell</filepath> provides
+an application shell, and two concrete controls. </p> <p> <codeph>CGraphicExampleControl</codeph> is
+a control class, derived from <codeph>CCoeControl</codeph>, which links the
+app shell to the particular controls. </p> <p> <codeph>CDrawControl</codeph> illustrates
+the drawing of shapes in a window. The code draws points, lines and shapes;
+this exercises a variety of drawing functions provided by the window graphics
+context such as <codeph>MoveTo()</codeph>, <codeph>DrawLineTo()</codeph>, <codeph>DrawArc()</codeph> etc. </p> <p> <codeph>CZoomControl</codeph> illustrates
+the use of zooming. </p> </section>
+<section id="GUID-1CF95EDF-58AF-4B79-B8AA-635D456F4590"><title>Class Summary</title><p><xref href="GUID-339EC4C5-89DC-3972-9579-6DD38D418317.dita"><apiname>TPoint</apiname></xref></p><p><xref href="GUID-CCD7C54F-C3D6-3F92-B6CC-1B6116170C6C.dita"><apiname>TRectTSize</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p><p><xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname>TRgb</apiname></xref></p><p><xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref></p><p><xref href="GUID-052E4F6B-71C5-304C-B387-07A2F6F9900B.dita"><apiname>TFontSpec</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p><p><xref href="GUID-DDE4C9C0-7218-385E-B239-0DEFDE19FCCC.dita"><apiname>TZoomFactor</apiname></xref></p><p><xref href="GUID-4791F2C1-C351-3824-8784-3161F5B65DCA.dita"><apiname>MGraphicsDeviceMap</apiname></xref></p><p><xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref></p></section>
+<section id="GUID-11F1F1BF-F1DC-4876-B47A-275B07C645E3-GENID-1-10-1-12-1-1-6-1-6-1-3-4"><title>Build</title> <p>The source code for this example
+application can be found in the directory: </p> <p> <filepath>examples\Graphics\GraphicsShell</filepath>  </p> <p>This
+source code may be in the directory in which you installed the Symbian platform,
+or it may be in the <filepath>src\common\developerlibrary\</filepath> directory.
+The directory includes the two project files needed for building the example: <filepath>bld.inf</filepath> and
+the <filepath>.mmp</filepath> file.  </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this application. For
+the emulator, an application called <filepath>GraphicsShell.exe</filepath> is
+created in <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath>. </p> </section>
+<section id="GUID-0CB7BF6D-ED18-46CA-8ED1-ADB440508BBC"><title>Usage</title> <ol id="GUID-911BEED5-308F-5700-A32B-C09194AEFBA7">
+<li id="GUID-2E6EB0AA-B311-53DD-B0CA-BE5E4AA04C7B"><p>Launch the emulator: </p> <p> <filepath>\epoc32\release\winscw\&lt;udeb
+or urel&gt;\EPOC.EXE</filepath>. </p> </li>
+<li id="GUID-6ECA1727-FC1E-5659-B805-1AB1EF7C9407"><p>Click on <systemoutput>GRAPHICSSHELL</systemoutput> to
+run the application. If using the <i>TechView</i> emulator, this will be in
+the <i>Extras</i> menu. </p> </li>
+<li id="GUID-F47B863C-2622-5FA7-A19F-61C386763B01"><p>The controls are listed
+on the menu <systemoutput>List of                 Programs</systemoutput>.
+Press the appropriate menu item to select a specific control. </p> </li>
+<li id="GUID-79D02958-B4F8-5635-862E-17B9E0000666"><p>Step through each phase
+of the example by pressing the space bar or by tapping on the window drawn
+by that example. </p> </li>
+</ol> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-30647807-A0D2-4D96-975A-BF1800749977.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-30647807-A0D2-4D96-975A-BF1800749977.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-30647807-A0D2-4D96-975A-BF1800749977" xml:lang="en"><title>Configuring
-the application’s platform security settings in the emulator</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>You can adjust certain security settings in the emulator. The emulator's
-platform security settings are all enabled by default.</p>
-<p>Typical use cases include: </p>
-<ul>
-<li><p>Turning platform security diagnostics on or off</p></li>
-<li><p>Turning platform security enforcement on or off</p></li>
-<li><p>Disabling a set of capabilities</p></li>
-</ul>
-<p>Important implementation considerations include:</p>
-<ul>
-<li><p>You need to use the emulator to set platform security settings.
-The feature is not available on production mobile devices.</p></li>
-</ul>
-<section id="GUID-25876C58-7EE1-46F3-8800-E0CD398170B6"><title>Configuring the
-settings in the emulator</title>
-<p>You can enable or disable platform security settings in the emulator
-through the <b>Tools &gt; Preferences</b> menu or by editing the <codeph>epoc.ini</codeph> file.
-The following illustration shows the options you have in the <b>Platform security</b> tab
-of the Preferences window.</p>
-<fig id="GUID-F4DDFC46-AF97-45B5-816C-D4F94182BA2C"><title>Preferences window in the emulator</title><image href="GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e13567_href.png"/></fig>
-<p>To set the platform security settings:</p>
-<ol>
-<li id="GUID-6ECF89E5-CCF5-431D-9A38-3A472F3B628F"><p>In the emulator,
-open the <b>Tools &gt; Preferences</b> menu and go to the <b>Platform Security</b> tab.</p>
-<p>Alternatively, open the <codeph>epoc.ini</codeph> file which is located
-in the <codeph>...\Epoc32\Data\</codeph> folder on your computer.</p></li>
-<li id="GUID-26508845-D52B-476F-96AC-BE3AB0F64124"><p>Modify the
-desired settings:</p>
-<ul>
-<li><p>To allow platform security to emit a diagnostics message
-when a check fails, tick the <b>Enable security debug messages</b> checkbox
-in the Platform Security tab. </p><p>To enable this setting in the <codeph>Epoc.ini</codeph> file,
-include the line <codeph>PlatSecDiagnostics ON</codeph>. To disable this setting,
-modify the line to <codeph>PlatSecDiagnostics OFF</codeph>. </p><p>When
-the settings is enabled, the diagnostics messages are logged to <xref format="" href="http://developer.symbian.org/wiki/index.php/Symbian_Emulator/The_Epocwind.out_File" scope="external"><codeph>epocwind.out</codeph></xref> in
-a Windows temporary directory. The following is an example of a diagnostics
-message:</p>
-<codeblock id="GUID-FE9A46AF-D0A4-40D7-847D-9BF67FE1BFBD" xml:space="preserve">153.600	*PlatSec* WARNING - Capability check would have failed - A 
-Message (function number=0x00000000) from Thread 
-Screenshot[20000555]0002::screenshot, sent to Server !MsvServer, was checked by 
-Thread !MsvServer[1000484b]0001::!MsvServer and was found to be missing the 
-capability: ReadUserData.</codeblock>
-</li>
-<li><p>To enable platform security to take action after a check
-fails and a diagnostics message is sent,  tick the <b>Perform capability checks</b> checkbox
-in the Platform Security tab.</p><p>To enable this setting in the <codeph>Epoc.ini</codeph> file,
-include the line <codeph>PlatSecEnforcement ON</codeph>. To disable this setting,
-modify the line to <codeph>PlatSecEnforcement OFF</codeph>.</p></li>
-<li><p>To disable a check for specific capabilities, choose the
-ones you wish to disable in the <b>Granted capabilities for all applications:</b> list
-in the Platform Security tab.</p><p>To disable a check in the <codeph>Epoc.ini</codeph> file,
-include <codeph>PlatSecDisabledCaps</codeph>, followed by the capabilities
-to be disabled. For example, <codeph>PlatSecDisabledCaps ReadUserData+WriteUserData+UserEnvironment</codeph>.</p>
-</li>
-</ul>
-</li>
-</ol>
-</section>
-<section id="GUID-BFB4DE7F-AC98-42AB-8763-FBA6D390D92A"><title>Additional information
-on platform security settings in the emulator</title>
-<p>For information on troubleshooting options, see <xref href="http://wiki.forum.nokia.com/index.php/How_to_troubleshoot_Platform_Security_issues" scope="external">How to troubleshoot Platform Security issues</xref> on Forum Nokia.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-30647807-A0D2-4D96-975A-BF1800749977" xml:lang="en"><title>Configuring
+the application’s platform security settings in the emulator</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>You can adjust certain security settings in the emulator. The emulator's
+platform security settings are all enabled by default.</p>
+<p>Typical use cases include: </p>
+<ul>
+<li><p>Turning platform security diagnostics on or off</p></li>
+<li><p>Turning platform security enforcement on or off</p></li>
+<li><p>Disabling a set of capabilities</p></li>
+</ul>
+<p>Important implementation considerations include:</p>
+<ul>
+<li><p>You need to use the emulator to set platform security settings.
+The feature is not available on production mobile devices.</p></li>
+</ul>
+<section id="GUID-25876C58-7EE1-46F3-8800-E0CD398170B6"><title>Configuring the
+settings in the emulator</title>
+<p>You can enable or disable platform security settings in the emulator
+through the <b>Tools &gt; Preferences</b> menu or by editing the <codeph>epoc.ini</codeph> file.
+The following illustration shows the options you have in the <b>Platform security</b> tab
+of the Preferences window.</p>
+<fig id="GUID-F4DDFC46-AF97-45B5-816C-D4F94182BA2C"><title>Preferences window in the emulator</title><image href="GUID-11E35C60-12DF-4014-AB3F-0314D8536AC0_d0e14831_href.png"/></fig>
+<p>To set the platform security settings:</p>
+<ol>
+<li id="GUID-6ECF89E5-CCF5-431D-9A38-3A472F3B628F"><p>In the emulator,
+open the <b>Tools &gt; Preferences</b> menu and go to the <b>Platform Security</b> tab.</p>
+<p>Alternatively, open the <codeph>epoc.ini</codeph> file which is located
+in the <codeph>...\Epoc32\Data\</codeph> folder on your computer.</p></li>
+<li id="GUID-26508845-D52B-476F-96AC-BE3AB0F64124"><p>Modify the
+desired settings:</p>
+<ul>
+<li><p>To allow platform security to emit a diagnostics message
+when a check fails, tick the <b>Enable security debug messages</b> checkbox
+in the Platform Security tab. </p><p>To enable this setting in the <codeph>Epoc.ini</codeph> file,
+include the line <codeph>PlatSecDiagnostics ON</codeph>. To disable this setting,
+modify the line to <codeph>PlatSecDiagnostics OFF</codeph>. </p><p>When
+the settings is enabled, the diagnostics messages are logged to <xref format="" href="http://developer.symbian.org/wiki/index.php/Symbian_Emulator/The_Epocwind.out_File" scope="external"><codeph>epocwind.out</codeph></xref> in
+a Windows temporary directory. The following is an example of a diagnostics
+message:</p>
+<codeblock id="GUID-FE9A46AF-D0A4-40D7-847D-9BF67FE1BFBD" xml:space="preserve">153.600	*PlatSec* WARNING - Capability check would have failed - A 
+Message (function number=0x00000000) from Thread 
+Screenshot[20000555]0002::screenshot, sent to Server !MsvServer, was checked by 
+Thread !MsvServer[1000484b]0001::!MsvServer and was found to be missing the 
+capability: ReadUserData.</codeblock>
+</li>
+<li><p>To enable platform security to take action after a check
+fails and a diagnostics message is sent,  tick the <b>Perform capability checks</b> checkbox
+in the Platform Security tab.</p><p>To enable this setting in the <codeph>Epoc.ini</codeph> file,
+include the line <codeph>PlatSecEnforcement ON</codeph>. To disable this setting,
+modify the line to <codeph>PlatSecEnforcement OFF</codeph>.</p></li>
+<li><p>To disable a check for specific capabilities, choose the
+ones you wish to disable in the <b>Granted capabilities for all applications:</b> list
+in the Platform Security tab.</p><p>To disable a check in the <codeph>Epoc.ini</codeph> file,
+include <codeph>PlatSecDisabledCaps</codeph>, followed by the capabilities
+to be disabled. For example, <codeph>PlatSecDisabledCaps ReadUserData+WriteUserData+UserEnvironment</codeph>.</p>
+</li>
+</ul>
+</li>
+</ol>
+</section>
+<section id="GUID-BFB4DE7F-AC98-42AB-8763-FBA6D390D92A"><title>Additional information
+on platform security settings in the emulator</title>
+<p>For information on troubleshooting options, see <xref href="http://wiki.forum.nokia.com/index.php/How_to_troubleshoot_Platform_Security_issues" scope="external">How to troubleshoot Platform Security issues</xref> on Forum Nokia.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e107453_href.png has changed
Binary file Symbian3/SDK/Source/GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e113991_href.png has changed
--- a/Symbian3/SDK/Source/GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,79 +1,79 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3" xml:lang="en"><title>Category:
-Send</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Messaging panics from <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>CSendAs</apiname></xref> </p>
-<table id="GUID-50577162-3A73-5FDE-99E3-C119D0FA5EEB">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p>1</p> </entry>
-<entry><p>Out of range index passed to <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>SetMtmL</apiname></xref> or <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>SetService</apiname></xref></p> </entry>
-</row>
-<row>
-<entry><p>2</p> </entry>
-<entry><p>Internal discrepancy in MTM array</p> </entry>
-</row>
-<row>
-<entry><p>3</p> </entry>
-<entry><p>Asked to create zero-length MTM array</p> </entry>
-</row>
-<row>
-<entry><p>4</p> </entry>
-<entry><p><codeph>SetMtmL()</codeph> called when a message has already been
-created</p> </entry>
-</row>
-<row>
-<entry><p>5</p> </entry>
-<entry><p>Asked to create zero-length service array</p> </entry>
-</row>
-<row>
-<entry><p>6</p> </entry>
-<entry><p>MTM not chosen when <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>CreateMessageL</apiname></xref> called</p> </entry>
-</row>
-<row>
-<entry><p>7</p> </entry>
-<entry><p>Message not saved when <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>AbandonMessage</apiname></xref> called</p> </entry>
-</row>
-<row>
-<entry><p>8</p> </entry>
-<entry><p>Message not created when <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>SaveMessageL</apiname></xref> called</p> </entry>
-</row>
-<row>
-<entry><p>9</p> </entry>
-<entry><p><xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>RecipientList</apiname></xref>, <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>RemoveRecipient</apiname></xref>,
-or <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>AddRecipientL</apiname></xref> called without message
-being saved or created</p> </entry>
-</row>
-<row>
-<entry><p>10</p> </entry>
-<entry><p><xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>SetSubjectL</apiname></xref> called without message
-being saved or created</p> </entry>
-</row>
-<row>
-<entry><p>11</p> </entry>
-<entry><p><xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>SetBodyL</apiname></xref> or <xref href="GUID-2211F938-1C99-3370-8181-BC475A2C8073.dita"><apiname>ValidateMessage</apiname></xref> called
-without message being saved or created</p> </entry>
-</row>
-<row>
-<entry><p>12</p> </entry>
-<entry><p><codeph>CSendAs</codeph> active without asynchronous rendering being
-called</p> </entry>
-</row>
-<row>
-<entry><p>13</p> </entry>
-<entry><p><codeph>CSendAs</codeph> cancelled without asynchronous rendering
-being called</p> </entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3" xml:lang="en"><title>Category:
+Send</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Messaging panics from <codeph>CSendAs</codeph> </p>
+<table id="GUID-50577162-3A73-5FDE-99E3-C119D0FA5EEB">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>Out of range index passed to <codeph>SetMtmL()</codeph> or <codeph>SetService()</codeph></p> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Internal discrepancy in MTM array</p> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Asked to create zero-length MTM array</p> </entry>
+</row>
+<row>
+<entry><p>4</p> </entry>
+<entry><p><codeph>SetMtmL()</codeph> called when a message has already been
+created</p> </entry>
+</row>
+<row>
+<entry><p>5</p> </entry>
+<entry><p>Asked to create zero-length service array</p> </entry>
+</row>
+<row>
+<entry><p>6</p> </entry>
+<entry><p>MTM not chosen when <codeph>CreateMessageL()</codeph> called</p> </entry>
+</row>
+<row>
+<entry><p>7</p> </entry>
+<entry><p>Message not saved when<codeph>AbandonMessage()</codeph> called</p> </entry>
+</row>
+<row>
+<entry><p>8</p> </entry>
+<entry><p>Message not created when <codeph>SaveMessageL()</codeph> called</p> </entry>
+</row>
+<row>
+<entry><p>9</p> </entry>
+<entry><p><codeph>RecipientList()</codeph>, <codeph/>RemoveRecipient(),
+or <codeph>AddRecipientL()</codeph> called without message being saved or
+created</p> </entry>
+</row>
+<row>
+<entry><p>10</p> </entry>
+<entry><p><codeph>SetSubjectL()</codeph> called without message being saved
+or created</p> </entry>
+</row>
+<row>
+<entry><p>11</p> </entry>
+<entry><p><codeph>SetBodyL()</codeph> or<codeph>ValidateMessage()</codeph> called
+without message being saved or created</p> </entry>
+</row>
+<row>
+<entry><p>12</p> </entry>
+<entry><p><codeph>CSendAs()</codeph> active without asynchronous rendering
+being called</p> </entry>
+</row>
+<row>
+<entry><p>13</p> </entry>
+<entry><p><codeph>CSendAs()</codeph> cancelled without asynchronous rendering
+being called</p> </entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,26 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5" xml:lang="en"><title>Universal
-indicator pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Universal indicator pane is used for displaying universal status indicators,
-that is, status indicators that need to be visible regardless of the current
-application. There is room for at least three indicators, although depending
-on the resolution, it may be possible to display more than three. The items
-are prioritized according to their importance.</p>
-<fig id="GUID-3BDA33E2-C1C4-4F6C-94F4-1A9E00723DE2">
-<title>Universal indicator pane. Indicators are placed side by side at the
-top (above the clock in the image on the right).</title>
-<image href="GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e72825_href.png" placement="inline"/>
-</fig>
-<p>The universal indicator pane is not
-accessible to applications.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5" xml:lang="en"><title>Universal
+indicator pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Universal indicator pane is used for displaying universal status indicators,
+that is, status indicators that need to be visible regardless of the current
+application. There is room for at least three indicators, although depending
+on the resolution, it may be possible to display more than three. The items
+are prioritized according to their importance.</p>
+<p><note> The universal indicator popup can be opened by tapping the universal
+indicator pane.</note></p>
+<fig id="GUID-3BDA33E2-C1C4-4F6C-94F4-1A9E00723DE2">
+<title>Universal indicator pane. Indicators are placed side by side at the
+top (above the clock in the image on the right).</title>
+<image href="GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e67688_href.png" placement="inline"/>
+</fig>
+<p>The universal indicator pane is not
+accessible to applications.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e10243_href.png has changed
Binary file Symbian3/SDK/Source/GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e11518_href.png has changed
--- a/Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1" xml:lang="en"><title>FEP
-References</title><shortdesc>This topic introduces miscellaneous guidelines to write a FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-7881D352-F261-4064-8684-6CA76A184257-GENID-1-8-1-3-1-1-9-1-4-1-11-1-3-1"><title> Handling the
-start of a transaction</title><p>Although applications do not need to be FEP-aware
-in order to work with FEPs, a situation can occur in some applications in
-which the user interface can be improved by the application making use of
-a FEPBASE API to communicate with the FEP above it, if there is one. </p> <p>If
-no FEP is present, the expected behaviour in some UIs when the user presses
-a key is for the application to do two things: firstly, it moves focus to
-a previously non-focused text editor control (possibly, although not necessarily,
-by launching a dialog), and secondly, it 'seeds' that text editor control
-with the character associated with that key. If there is a FEP, by default
-(in other words, without the application being FEP-aware) the focus change
-would only happen when the FEP outputs text to the application. However, if
-the FEP is designed to allow the user to compose a fairly large block of text
-to send to the application (as would be likely in a Japanese FEP), it would
-be better if the focus change occurred when the user starts composing their
-text in the FEP. In order for this to happen, the application needs to be
-FEP-aware, albeit in a fairly trivial way. The way the FEP notifies the application
-that it is starting a transaction is by calling <codeph>CCoeEnv</codeph> ’s
-member function <codeph>ForEachFepObserverCall()</codeph> (<codeph>CCoeEnv</codeph> is
-defined in <filepath>epoc32\include\COEMAIN.H</filepath>), passing in the
-address of the non-member function <codeph>FepObserverHandleStartOfTransactionL()</codeph> (defined
-in <filepath>epoc32\include\FEPBASE.H</filepath>). It is important to note
-that this function should only be called as the last C++ statement executed
-when handling an event. The reason for this that it may take a considerable
-amount of time to return (for example, it may launch a dialog and only return
-when the dialog has been exited). </p> </section>
-<section id="GUID-C32902E0-39A8-493E-9E7F-D48DEE4717CA-GENID-1-8-1-3-1-1-9-1-4-1-11-1-3-2"><title>Text cursors</title><p>If
-a non-inline-editing FEP has a composition window into which the user types,
-that window should not use a 'real' text cursor (in other words, a cursor
-which is set and unset using <codeph>RWindowGroup</codeph> ’s <codeph>SetTextCursor()</codeph> and <codeph>CancelTextCursor()</codeph> member
-functions). The reason is that the window server only allows a single text
-cursor for the whole system at any one time. If the FEP’s target control is
-a text editor, it should use the window server’s text cursor itself, so the
-FEP should not use it. To solve this problem, the text cursor in the FEP’s
-composition window can be simulated with a sprite. The class <codeph>CTstInsertionPoint</codeph> in
-TFEP1 provides an example of this. </p></section>
-<section id="GUID-5F7D9BFA-F74A-47FE-B589-A4EF49AFB901-GENID-1-8-1-3-1-1-9-1-4-1-11-1-3-3"><title>Shortcut keys</title><p>As
-FEPs get first refusal of all key events, there is a risk that FEPs can intercept
-shortcut keys (if the UI supports them) which are intended for the application
-to handle. To define a convention for FEP shortcut keys is non-trivial as
-different UIs use different modifier keys and have different policies on using
-them. Matters are simplified greatly if a product has a dedicated on/off key
-for FEPs as this may be used in combination with other keys to carry out different
-functions, as well as on its own to turn the FEP on and off. FEP authors should
-consult the documentation for their target UI. </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1" xml:lang="en"><title>FEP
-References</title><shortdesc>This topic introduces miscellaneous guidelines to write a FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-7881D352-F261-4064-8684-6CA76A184257-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1-3-1"><title> Handling the
-start of a transaction</title><p>Although applications do not need to be FEP-aware
-in order to work with FEPs, a situation can occur in some applications in
-which the user interface can be improved by the application making use of
-a FEPBASE API to communicate with the FEP above it, if there is one. </p> <p>If
-no FEP is present, the expected behaviour in some UIs when the user presses
-a key is for the application to do two things: firstly, it moves focus to
-a previously non-focused text editor control (possibly, although not necessarily,
-by launching a dialog), and secondly, it 'seeds' that text editor control
-with the character associated with that key. If there is a FEP, by default
-(in other words, without the application being FEP-aware) the focus change
-would only happen when the FEP outputs text to the application. However, if
-the FEP is designed to allow the user to compose a fairly large block of text
-to send to the application (as would be likely in a Japanese FEP), it would
-be better if the focus change occurred when the user starts composing their
-text in the FEP. In order for this to happen, the application needs to be
-FEP-aware, albeit in a fairly trivial way. The way the FEP notifies the application
-that it is starting a transaction is by calling <codeph>CCoeEnv</codeph> ’s
-member function <codeph>ForEachFepObserverCall()</codeph> (<codeph>CCoeEnv</codeph> is
-defined in <filepath>epoc32\include\COEMAIN.H</filepath>), passing in the
-address of the non-member function <codeph>FepObserverHandleStartOfTransactionL()</codeph> (defined
-in <filepath>epoc32\include\FEPBASE.H</filepath>). It is important to note
-that this function should only be called as the last C++ statement executed
-when handling an event. The reason for this that it may take a considerable
-amount of time to return (for example, it may launch a dialog and only return
-when the dialog has been exited). </p> </section>
-<section id="GUID-C32902E0-39A8-493E-9E7F-D48DEE4717CA-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1-3-2"><title>Text cursors</title><p>If
-a non-inline-editing FEP has a composition window into which the user types,
-that window should not use a 'real' text cursor (in other words, a cursor
-which is set and unset using <codeph>RWindowGroup</codeph> ’s <codeph>SetTextCursor()</codeph> and <codeph>CancelTextCursor()</codeph> member
-functions). The reason is that the window server only allows a single text
-cursor for the whole system at any one time. If the FEP’s target control is
-a text editor, it should use the window server’s text cursor itself, so the
-FEP should not use it. To solve this problem, the text cursor in the FEP’s
-composition window can be simulated with a sprite. The class <codeph>CTstInsertionPoint</codeph> in
-TFEP1 provides an example of this. </p></section>
-<section id="GUID-5F7D9BFA-F74A-47FE-B589-A4EF49AFB901-GENID-1-8-1-6-1-1-4-1-8-1-4-1-11-1-3-3"><title>Shortcut keys</title><p>As
-FEPs get first refusal of all key events, there is a risk that FEPs can intercept
-shortcut keys (if the UI supports them) which are intended for the application
-to handle. To define a convention for FEP shortcut keys is non-trivial as
-different UIs use different modifier keys and have different policies on using
-them. Matters are simplified greatly if a product has a dedicated on/off key
-for FEPs as this may be used in combination with other keys to carry out different
-functions, as well as on its own to turn the FEP on and off. FEP authors should
-consult the documentation for their target UI. </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-31A28040-6C8E-5C65-A697-04B30B441686" xml:lang="en"><title>FEP
+References</title><shortdesc>This topic introduces miscellaneous guidelines to write a FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-7881D352-F261-4064-8684-6CA76A184257"><title> Handling the
+start of a transaction</title><p>Although applications do not need to be FEP-aware
+in order to work with FEPs, a situation can occur in some applications in
+which the user interface can be improved by the application making use of
+a FEPBASE API to communicate with the FEP above it, if there is one. </p> <p>If
+no FEP is present, the expected behaviour in some UIs when the user presses
+a key is for the application to do two things: firstly, it moves focus to
+a previously non-focused text editor control (possibly, although not necessarily,
+by launching a dialog), and secondly, it 'seeds' that text editor control
+with the character associated with that key. If there is a FEP, by default
+(in other words, without the application being FEP-aware) the focus change
+would only happen when the FEP outputs text to the application. However, if
+the FEP is designed to allow the user to compose a fairly large block of text
+to send to the application (as would be likely in a Japanese FEP), it would
+be better if the focus change occurred when the user starts composing their
+text in the FEP. In order for this to happen, the application needs to be
+FEP-aware, albeit in a fairly trivial way. The way the FEP notifies the application
+that it is starting a transaction is by calling <codeph>CCoeEnv</codeph> ’s
+member function <codeph>ForEachFepObserverCall()</codeph> (<codeph>CCoeEnv</codeph> is
+defined in <filepath>epoc32\include\COEMAIN.H</filepath>), passing in the
+address of the non-member function <codeph>FepObserverHandleStartOfTransactionL()</codeph> (defined
+in <filepath>epoc32\include\FEPBASE.H</filepath>). It is important to note
+that this function should only be called as the last C++ statement executed
+when handling an event. The reason for this that it may take a considerable
+amount of time to return (for example, it may launch a dialog and only return
+when the dialog has been exited). </p> </section>
+<section id="GUID-C32902E0-39A8-493E-9E7F-D48DEE4717CA"><title>Text cursors</title><p>If
+a non-inline-editing FEP has a composition window into which the user types,
+that window should not use a 'real' text cursor (in other words, a cursor
+which is set and unset using <codeph>RWindowGroup</codeph> ’s <codeph>SetTextCursor()</codeph> and <codeph>CancelTextCursor()</codeph> member
+functions). The reason is that the window server only allows a single text
+cursor for the whole system at any one time. If the FEP’s target control is
+a text editor, it should use the window server’s text cursor itself, so the
+FEP should not use it. To solve this problem, the text cursor in the FEP’s
+composition window can be simulated with a sprite. The class <codeph>CTstInsertionPoint</codeph> in
+TFEP1 provides an example of this. </p></section>
+<section id="GUID-5F7D9BFA-F74A-47FE-B589-A4EF49AFB901"><title>Shortcut keys</title><p>As
+FEPs get first refusal of all key events, there is a risk that FEPs can intercept
+shortcut keys (if the UI supports them) which are intended for the application
+to handle. To define a convention for FEP shortcut keys is non-trivial as
+different UIs use different modifier keys and have different policies on using
+them. Matters are simplified greatly if a product has a dedicated on/off key
+for FEPs as this may be used in combination with other keys to carry out different
+functions, as well as on its own to turn the FEP on and off. FEP authors should
+consult the documentation for their target UI. </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e76797_href.png has changed
Binary file Symbian3/SDK/Source/GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e83509_href.png has changed
--- a/Symbian3/SDK/Source/GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,584 +1,584 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E" xml:lang="en"><title>Secure
-Simple Pairing (SSP)</title><shortdesc>Describes SSP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-D51EB888-7908-5F75-80B7-06B47994F22B"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-226FB791-0EA7-5756-893F-2839D4178E1E">Introduction</xref>  </p> </li>
-<li id="GUID-F8B04B59-3A9B-54B5-9D64-A64F6A930A9E"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-2891BA26-F6C3-5F3C-A567-34D806A5DAA4">Overview</xref>  </p> </li>
-<li id="GUID-744E1DDF-2908-569D-9C7A-E29223C6C9E1"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-FC295A44-D8D9-5835-A895-BFB85C5CB8B8">Symbian support for SSP</xref>  </p> </li>
-<li id="GUID-2C9207CF-8924-568A-93F9-340AB3F2A1E4"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-E6541D2E-7881-5670-B0CF-F57AA64AC032">Implementing SSP notifiers</xref>  </p> </li>
-<li id="GUID-3703505F-4F60-534C-B492-D83002FA9577"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-E1A7D7D3-891E-5A90-926D-3F946A5448A3">Using the Out of Band API</xref>  </p> </li>
-<li id="GUID-67BC873E-DC42-5208-AE65-2564B1655C41"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-6C20C226-C4CE-5937-93D2-C1A89F00004C">Using the dedicated bonding API</xref>  </p> </li>
-</ul>
-<section id="GUID-226FB791-0EA7-5756-893F-2839D4178E1E"><title>Introduction</title> <p>Secure
-Simple Pairing, introduced into Bluetooth v2.1, simplifies the user experience
-when pairing Bluetooth devices. </p> <p>This document describes the Symbian
-platform implementation of SSP. It describes the tasks that must be performed
-by UI creators to implement SSP and it describes how application developers
-can use Symbian APIs to pair with Bluetooth enabled devices using SSP. </p> <p><b>Scope</b> </p> <p>This document is intended for Symbian partners and developers
-implementing SSP on Symbian platform. It assumes that you are familiar with
-Bluetooth and with developing on Symbian platform. </p> <p><b>Purpose of SSP</b> </p> <p>SSP was introduced to simplify the user experience
-when pairing Bluetooth devices. Specifically: </p> <ul>
-<li id="GUID-63DD983D-4C9B-55A9-BC1E-B5F590576B51"><p>there is no need for
-the user to think of a number </p> </li>
-<li id="GUID-08AFD4B9-4B08-55CD-8A5A-83200F0D75AD"><p>the authentication process
-may differ for different devices and different services </p> </li>
-<li id="GUID-AC68A597-36ED-5FE4-8678-21FB8F4498BE"><p>all data transfer is
-encrypted </p> </li>
-</ul> </section>
-<section id="GUID-2891BA26-F6C3-5F3C-A567-34D806A5DAA4"><title>Overview</title> <p><b>The pairing model</b> </p> <p>Pre-SSP pairing is achieved by the user(s)
-entering a personal identification number (PIN) on one or both devices. Devices
-with no keypads, such as headsets, have their PINs (typically "0000" or "1234")
-hard-wired. This is now referred to as Legacy Paring. </p> <p>Under SSP, devices
-specify their authorisation requirements. The user may have to: </p> <ul>
-<li id="GUID-4B260DAC-E745-5FBE-95D7-3FD721A3F960"><p>press a button in response
-to a simple yes or no query </p> </li>
-<li id="GUID-E73EB3E7-5DBC-5326-9728-E086AA58B05A"><p>compare two automatically
-generated numbers and select 'yes' if they match or 'no' if they do not </p> </li>
-<li id="GUID-C7AE53AC-037A-5171-AED1-62AB0F0A1953"><p>enter a number on one
-or both devices </p> </li>
-<li id="GUID-E4FF8EB0-D0DD-5C39-891E-9732F53B4D7E"><p>do nothing </p> </li>
-</ul> <p>Once the devices have paired the user may be asked to authorise bonding.
-Bonded devices can subsequently pair with no user interaction. </p> <p><b>Key concepts</b> </p> <dl>
-<dlentry>
-<dt> Authentication</dt>
-<dd><p>Verification that a remote device is what it claims to be. Authentication
-may be unnecessary for some pairings (see Just Works), may require user intervention
-(see Man in the Middle) or may be performed through another channel (see Out
-of Band). </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Authorisation</dt>
-<dd><p>In legacy pairing a remote device can be authorised after pairing such
-that it subsequently connects automatically without user intervention. Authorisation
-is on a per-service basis. See <b>bonding</b>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Encryption</dt>
-<dd><p>Transmission of data between devices after SSP is always encrypted.
-Under legacy pairing data transmission is not always encrypted. </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Man In The Middle (MITM) protection</dt>
-<dd><p>Authentication explicitly provided by the user before pairing can take
-place. Under SSP, devices and services have hard-wired authentication requirements
-as follows: MITM required, MITM not required (see Just Works) and MITM desired
-(subject to the user interface capabilities of the devices) </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Just Works</dt>
-<dd><p>For some pairings there is little risk of a security breach so SSP
-provides a mechanism for devices to pair with no explicit user authentication. </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Passkey</dt>
-<dd><p>In the context of a Symbian device, which always has both a display
-and a keypad, passkey authentication is used when pairing with a remote device
-which has a keypad but no display. The Symbian device displays a number which
-the user must enter using the keypad on the remote device </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Out Of Band (OOB)</dt>
-<dd><p>Out of Band authentication is performed using a non-Bluetooth communication
-channel. The data required to open an MITM protected Bluetooth connection
-with a remote device is transmitted by other means. </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Bonding</dt>
-<dd><p>Two devices may bond after athentication such that they can reconnect
-without user intervention. Bonding is achieved on a Symbian device by storing
-a link key. Symbian devices attempt to bond by default. The user or the remote
-device may specify that the devices do not bond. </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Link key</dt>
-<dd><p>When a connection is authenticated a link key is created. The link
-key indicates the strength of authentication (legacy, authenticated or unauthenticated).
-The link key may be stored by the Symbian device and used to bond (the default
-behaviour) or discarded when the connection ends. The link key is not displayed
-to the user. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-FC295A44-D8D9-5835-A895-BFB85C5CB8B8"><title>Symbian support
-for SSP</title> <p><b>Components</b> </p> <p>Most
-of the changes are internal and transparent to system creators and developers.
-However, some new APIs added to the Bluetooth User Library allow application
-developers to use SSP features, and Licensees must implement some SSP specific
-notifiers. </p> <p>The diagram below shows the interfaces and interface classes
-required to implement SSP. </p> <p><b> Dedicated
-Bonding </b> </p> <p>Dedicated bonding is performed by the Bluetooth Pairing
-Server. Applications can use the <xref href="GUID-8E97F127-DA49-3BB6-B274-348138B425DF.dita"><apiname>RBluetoothDedicatedBondingInitiator</apiname></xref> API
-to request bonding with a specified Bluetooth device. </p> <p><b> Out of Band Data</b> </p> <p>Out of Band pairing data can be passed to
-the Bluetooth Pairing Server. The server can use the supplied data to pair
-with the specified device. Applications can also use the <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref> API
-to retrieve OOB data for the local device to be passed to remote devices. </p> <p><b> Numeric Comparison Notifier </b> </p> <p>The Bluetooth sub-system requires
-a Numeric Comparison Notifier to be provided by the UI. The notifier must
-handle <xref href="GUID-D3F5500E-2BCD-3BB9-8B6B-5716C22FAB05.dita"><apiname>TBTNumericComparisonParams</apiname></xref> and return a boolean
-value which indicates the user's decision. </p> <p><b> Passkey Entry Notifier </b> </p> <p>The Bluetooth sub-system requires
-a Passkey Entry Notifier to be provided by the UI. The notifier must handle <xref href="GUID-F4DBF857-2192-3177-B431-8499907E41AF.dita"><apiname>TBTPasskeyDisplayParams</apiname></xref> and <xref href="GUID-EB94B14B-F836-3FA1-88CD-51FC0528D76A.dita"><apiname>TBTPasskeyDisplayUpdateParams</apiname></xref>. </p> <p><b> Data
-Types </b> </p> <p>SSP specific data is stored and manipulated using the following
-types (significant functions and fields shown only). These types are used
-in various device and service related APIs. They are defined in <filepath>bt_sock.h</filepath> and <filepath>btdevice.h</filepath>. </p> <p> <codeph>#include &lt;bt_sock.h&gt; </codeph>  </p> <codeblock id="GUID-3CF4FEFE-96AC-5CF3-A522-397754161A50" xml:space="preserve">
-enum TBluetoothMitmProtection
-    {
-    EMitmNotRequired    = 0x0,   // No Man-in-the-Middle authentication is not required.
-    EMitmDesired        = 0x1,      // Man-in-the-Middle authentication should be used where possible. 
-    EMitmRequired        = 0x2      // Man-in-the-Middle authentication is required. 
-    };
-</codeblock> <p> <xref href="GUID-C0341B1C-E358-3C7B-B673-37103E2AF0A3.dita"><apiname>TBTAccessRequirements</apiname></xref>  </p> <codeblock id="GUID-2EA4EA4A-AFC4-5BB2-851F-0891EC42FF6F" xml:space="preserve">
-class TBTAccessRequirements
-    {
-public:
-       ...
-    IMPORT_C void                      SetAuthentication( TBluetoothMitmProtection aPreference );
-    IMPORT_C TBluetoothMitmProtection  MitmProtection() const;
-                ...
-
-    
-private:
-    enum TBTServiceSecuritySettings
-        {
-        EAuthenticate = 0x01,
-        EAuthorise = 0x02,
-        EEncrypt = 0x04,
-        EDenied = 0x08,
-        EMitm = 0x30,      // 2 bit field for MITM
-        };
-    
-    enum TBTAccessRequirementsMitmProtection
-        {
-        EAccessRequirementsMitmUndefined = 0x00,
-        EAccessRequirementsMitmNotRequired = 0x10,
-        EAccessRequirementsMitmDesired = 0x20,
-        EAccessRequirementsMitmRequired = 0x30
-        };
-    };</codeblock> <p> <xref href="GUID-BC29B643-2CE8-30C1-BF41-4D2B5585DC81.dita"><apiname>TBTServiceSecurity</apiname></xref>  </p> <codeblock id="GUID-28168FA1-2CF7-59BE-B77B-484991491810" xml:space="preserve">
-class TBTServiceSecurity
-    {
-public:
-    ...
-    IMPORT_C void                     SetAuthentication( TBluetoothMitmProtection aPreference );
-    IMPORT_C TBool                    AuthenticationRequired() const;
-    IMPORT_C TBluetoothMitmProtection MitmProtection() const;
-    ...
-    
-private:
-    TBTAccessRequirements iSecurityRequirements;    // Whether the service requires authentication, authorisation, encryption or min passkey len.
-    };
-
-typedef TPckgBuf&lt;TBTServiceSecurity&gt; TBTServiceSecurityPckg;    // Package definition for securty settings
-</codeblock> <p> <codeph>#include &lt;btdevice.h&gt; </codeph>  </p> <p> <xref href="GUID-7E0FA8C7-DEB4-3D86-901E-68DAC99DCA40.dita"><apiname>TBTDeviceSecurity</apiname></xref>  </p> <codeblock id="GUID-DCC63DB6-6D3F-5B32-836D-973E65305B13" xml:space="preserve">
-class TBTDeviceSecurity
-    {
-public:
-
-       // Enumeration to provide select MITM protection required. 
-
-    enum TMitmRequired
-        {
-        EMitmUnspecified,      // No specific MITM protection requirements
-        EMitmRequired          // Require the link is MITM protected 
-        };
-    
-public:
-
-    ...
-    IMPORT_C void          SetNoAuthenticate(TBool aDecision);
-    IMPORT_C void          SetMitmRequirements(TMitmRequired aDecision);
-    ...
-    IMPORT_C TBool         NoAuthenticate() const;
-    IMPORT_C TMitmRequired MitmRequirements() const;
-    ...
-
-public:
-    // Enumeration to assist in parsing of security settings.
-    enum TBTDeviceSecuritySettings
-        {
-        ENoAuthenticate            = 0x01,        // Don't authenticate the link @deprecated
-        ENoAuthorise            = 0x02,           // Don't authorise the connection
-        EEncrypt                = 0x04,              // Encrypt the link
-        EBanned                    = 0x08,              // Don't connect to the device
-        EMitmProtectionRequired    = 0x10,  // Require the link is MITM protected
-        };
-    };
-</codeblock> </section>
-<section id="GUID-E6541D2E-7881-5670-B0CF-F57AA64AC032"><title>Implementing
-SSP notifiers</title> <p><b>Introdution</b> </p> <p>The
-Bluetooth sub-system has no user interface. It uses the Symbian <xref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita">notifier
-framework</xref> for user interaction when pairing. The UI system must provide
-a notifier, in plug-in form, for each user interaction required by SSP. The
-notifier must receive data in a specified format from the Bluetooth sub-system,
-display appropriate controls in a dialog on the screen, respond to the user's
-input and send data back to the Bluetooth sub-system in a specified format. </p> <p>This
-document assumes that you already have Bluetooth notifiers in your system.
-It describes the key aspects of adding notifiers for SSP. The structures,
-types and constants described below are defined in <filepath>BTExtNotifiers.h</filepath>.
-You can add notifiers to an existing plug-in or create a new plug-in. </p> <p>Notifiers
-are typically implemented as sleeping dialogs. A sleeping dialog has its resources
-allocated when its application (in this case the Uikon Server) is started.
-A sleeping dialog can therefore be displayed (roused) safely under low memory
-conditions. </p> <p><b>Notes: </b> </p> <ul>
-<li id="GUID-8F9A2CA6-0481-55EB-8458-076AA869CF1E"><p>This document does not
-describe how to implement an ECOM plug-in or a sleeping dialog. </p> </li>
-<li id="GUID-0BA5CB89-F09C-5150-82C5-2169503FF961"><p>Customisation Kit Licensees
-can find an example notifier implementation here: <filepath>sf/mw/classicui/commonuisupport/uikon/examples/notifier1/</filepath>  </p> </li>
-</ul> <p><b>Numeric
-Comparison Notifier</b> </p> <p>A numeric comparison notifier is required
-for SSP Man in the Middle (MITM) authentication when the remote device is
-capable of displaying a number to the the user and accepting a yes or no response
-from the user. The notifier must display an automatically generated number
-and invite the user to confirm (yes or no) that the number is the same as
-the number displayed on the remote device. The notifier must return the user's
-response. </p> <p>The Bluetooth Security Manager uses the following code to
-ask the notifier framework to display the Numeric Comparison Notifier </p> <codeblock id="GUID-C797A612-4AD7-5DE1-854E-3398945A4957" xml:space="preserve">
-
-// defined in header file(s)
-
-TBTDevAddr                      iDevAddr ;
-RNotifier                       iNotifier ;
-TUint32                         iNumericValue ;
-TBool                           iInternallyInitiated ;
-TBTNumericComparisonParamsPckg  iNumericComparisonParamsPckg ;
-TPckgBuf&lt;TBool&gt;                 iResultPckg ;
-// 
-
-void CBTNumericComparator::DoRequest()
-   {
-   // Start the RNotifier plugin that deals with authorisation.
-
-   ...
-
-   TBTDeviceName deviceName = KNullDesC ;
-
-   iNumericComparisonParamsPckg = TBTNumericComparisonParams( iDevAddr, 
-                                                              deviceName, 
-                                                              iNumericValue, 
-                                                              TBTNumericComparisonParams::ERemoteCanConfirm, 
-                                                              iInternallyInitiated);
-
-   iNotifier.StartNotifierAndGetResponse( iStatus, 
-                                          KBTNumericComparisonNotifierUid, 
-                                          iNumericComparisonParamsPckg, 
-                                          iResultPckg);
-   SetActive();
-   }
-</codeblock> <p>From the code above you can see that the Numeric Comparision
-Notifier is identified by the UID<codeph>KBTNumericComparisonNotifierUid</codeph> and
-that it must handle data in <xref href="GUID-D3F5500E-2BCD-3BB9-8B6B-5716C22FAB05.dita"><apiname>TBTNumericComparisonParams</apiname></xref> (which
-is packaged into <codeph>TBTNumericComparisonParamsPckg</codeph> for inter-process
-transfer). </p> <p>The code fragment below shows how to extract the numeric
-comparison data within a notifier. </p> <p>NOTE: You will need to implement
-all of the virtual functions in <xref href="GUID-4E967403-417B-3340-B168-9FAF6565FEFF.dita"><apiname>MEikSrvNotifierBase2.</apiname></xref>  </p> <codeblock id="GUID-36408990-3292-531C-B15E-E88575CD0578" xml:space="preserve">
-class CNumericComparisonNotifier : public CEikDialog, public MEikSrvNotifierBase2
-    {
-public:
-
-    ...
-
-    // from MEikSrvNotifierBase2
-    void StartL ( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage ) ;
- 
-    ...
-
-    void Complete( TBool aDecision, TInt aReason ) ;
-
-private:
-    TInt                iRepySlot ;
-    TNotifierInfo       iInfo ;
-    RMessage2           iMessage ;
-    TBTNumeriComparisonParamsPckg     iNumericComparisonParamsPckg ;
-    TBTDevAddr          iAddr ;
-    TBTDeviceName       iName ;
-    TUint32             iNumericalValue ;
-
-    } ;
-
-
-
-//--------------------------------
-
-...
-
-void CNumericComparisionNotifier::StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage )
-    {
-
-    iMessage = RMessage2( aMessage ) ;   // keep a copy ofthe message so that it can be completed later.
-    iReplySlot = aReplySlot ;            // copy the reply slot too
-
-    // Extract the comparison parameters from the buffer
-
-    iNumericComparisonParamsPckg.Copy( aBuffer ) ; 
-
-    iAddr           = iNumericComparisonParamsPckg().DeviceAddress() ;
-    iName           = iNumericComparisonParamsPckg().DeviceName() ;
-    iNumericalValue = iNumericComparisonParamsPckg().NumericalValue() ;
-
-    ...
-
-    RouseSleepingDialog() ; 
-
-    }
-        
-</codeblock> <p>Your dialog must display <codeph>iNumericalValue</codeph> and
-ask the user if the number displayed is the same as the number displayed on
-the other Bluetooth device. The user must be able to select 'Yes' or 'No'. </p> <p>The <codeph>StartL()</codeph> function
-above must return quickly so it must not wait for the user's response. Your
-notifier must complete the message (<codeph>iMessage</codeph>) as shown below
-when the user enters a response. </p> <codeblock id="GUID-7C313F8D-F521-541D-8294-686339633F43" xml:space="preserve">
-void CNumericComparisionNotifier::Complete( TBool aDecision, TInt aReason )
-    {
-    if ( aReason == KErrNone )
-        {
-        TInt err = iMessage.Write( iReplySlot, TPckgC&lt;TBool&gt;( aDecision ) ) ;
-        iMessage.Complete( err ) ;
-        }
-     else
-        {
-        iMessage.Complete( aReason ) ;
-        }
-     }
-</codeblock> <p><b>Passkey
-Notifier</b> </p> <p>A passkey notifier is required for SSP MITM authentication
-when the user must type a number on a remote device which has a keypad and
-no display. The notifier displays the number that the user must type. In the
-code below the notifier also displays a '*' character as the user types each
-digit into the remote device. </p> <p>The Bluetooth Security Manager uses
-the following code to ask the Notifier Framework to display the passkey notifier. </p> <codeblock id="GUID-C9F126EB-D3F2-5F08-AF50-64123BB5455F" xml:space="preserve">
-
-// defined in header file(s)
-
-TBTDevAddr                      iDevAddr ;
-RNotifier                       iNotifier ;
-TUint32                         iNumericValue ;   // the passkey number
-TBool                           iInternallyInitiated ;
-TBTPasskeyDisplayParamsPckg     iPasskeyDisplayParamsPckg ;
-TBTDeviceNameUpdateParamsPckg   iDeviceNameUpdateParamsPckg;
-TBuf8&lt;1&gt;                        iResultPckg ;
-
-void CBTPasskeyEntry::DoRequest()
-    {
-    // Start the RNotifier plugin that deals with authorisation.
-
-    ...
-
-    TBTDeviceName deviceName ;    
-    
-    deviceName = KNullDesC ;
-
-    iPasskeyDisplayParamsPckg = TBTPasskeyDisplayParams( iDevAddr, 
-                                                         deviceName, 
-                                                         iNumericValue, 
-                                                         iInternallyInitiated ) ;
-
-    iNotifier.StartNotifierAndGetResponse( iStatus, 
-                                           KBTPasskeyDisplayNotifierUid, 
-                                           iPasskeyDisplayParamsPckg, 
-                                           iResultPckg ) ;
-    SetActive() ;
-
-    }
-
-</codeblock> <p>From the code above you can see that the Passkey Notifier
-is identified by the UID<codeph>KBTPasskeyNotifierUid</codeph> and that it
-must handle data in <xref href="GUID-F4DBF857-2192-3177-B431-8499907E41AF.dita"><apiname>TBTPasskeyDisplayParams</apiname></xref> (which is packaged
-into <codeph>TBTPasskeyDisplayParamsPckg</codeph> for inter-process transfer). </p> <p>As
-the user enters passkey digits into the remote device the Security Manager
-also uses <codeph>RNotifier::UpdateNotifierAndGetResponse()</codeph> to send <xref href="GUID-EB94B14B-F836-3FA1-88CD-51FC0528D76A.dita"><apiname>TBTPasskeyDisplayUpdateParams</apiname></xref> (packaged
-in <xref href="GUID-D6CA0DDB-1CD0-32F1-BBB5-7E280E1C4779.dita"><apiname>TBTPasskeyDisplayUdateParamsPckg</apiname></xref>) to the notifier. Your
-notifier must use this information to reflect the key presses on the remote
-device. </p> <p>The code fragment below shows how to extract the passkey data
-within a notifier. </p> <p>NOTE: You will need to implement all of the virtual
-functions in <xref href="GUID-4E967403-417B-3340-B168-9FAF6565FEFF.dita"><apiname>MEikSrvNotifierBase2.</apiname></xref>  </p> <codeblock id="GUID-B38F7512-B091-5F93-86F1-EA740DAD7509" xml:space="preserve">
-class CPasskeyNotifier : public CEikDialog, public MEikSrvNotifierBase2
-    {
-public:
-
-    ...
-
-    // from MEikSrvNotifierBase2
-    void   StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage ) ;
-    TPtrC8 UpdateL( const TDesC8&amp; aBuffer ) ;  // new information 
-
-    ...
-
-private:
-    TInt                            iRepySlot ;
-    TNotifierInfo                   iInfo ;
-    RMessage2                       iMessage ;
-    TBTPasskeyDisplayParamsPckg     iPasskeyDisplayParamsPckg ;
-    TBTDevAddr                      iAddr ;
-    TBTDeviceName                   iName ;
-    TUint32                         iNumericalValue ;   // the passkey number
-
-    } ;
-
-//--------------------------------
-
-...
-
-void CPasskeyNotifier::StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage )
-    {
-
-    iMessage = RMessage2(aMessage);  // keep a copy ofthe message so that it can be completed later.  
-    iReplySlot = aReplySlot ;  // copy the reply slot too
-
-    // Extract the comparison parameters from the buffer
-
-    iPasskeyDisplayParamsPckg.Copy( aBuffer ) ;
-
-    iAddr           = iPasskeyDisplayParamsPckg().DeviceAddress() ;
-    iName           = iPasskeyDisplayParamsPckg().DeviceName() ;
-    iNumericValue   = iPasskeyDisplayParamsPckg().NumericalValue() ;
-
-
-    ...
-
-    RouseSleepingDialog() ;  // display the passkey 
-
-    ...
-
-    }
-
-void CPasskeyNotifier::UpdateL( const TDesC8&amp; aBuffer )
-    {
-
-    // extract the contents of the buffer
-
-    TBTNotifierUpdateParamsPckg2 pckgRaw ;
-    pckgRaw.Copy( aBuffer.Left( pckgRaw.MaxLength() ) ) ;
-
-    // update the dialog to reflect the keys pressed on the remote device
-
-    if ( pckgRaw().Type() == TBTNotifierUpdateParams2::EPasskeyDisplay )
-        {
-        TBTPasskeyDisplayUpdateParamsPckg pckg ;
-        pckg.Copy( aBuffer ) ;
-        HCIPasskeyEntryNotificationType keypressNotification = pckg().KeypressNotification() ;
-
-        switch (keypressNotification)
-            {
-        case EPasskeyEntryStarted :
-            {
-            break ;
-            }
-        case EPasskeyDigitEntered :
-            {
-            // display '*'
-            break ;
-            }
-        case EPasskeyDigitDeleted :
-            {
-            // remove '*', reposition cursor
-            break ;
-            }
-        case EPasskeyCleared :
-            {
-            // clear display, reposition cursor
-            break ;
-            }
-        case EPasskeyEntryCompleted :
-            {
-            // hide the dialog
-            ExitSleepingDialog() ;
-            break;
-            }
-        default :
-            break ;
-        }
-    else if( pckgRaw().Type() == TBTNotifierUpdateParams2::EDeviceName )
-        {
-        // handle name update
-        }
-    return KNullDesC8() ;
-    }
-
-
-
-</codeblock> </section>
-<section id="GUID-E1A7D7D3-891E-5A90-926D-3F946A5448A3"><title>Out of Band
-(OOB) authentication</title> <p><b>Introduction</b> </p> <p>Out
-of Band authentication is achieved using a communication method other than
-Bluetooth. Once OOB authentication has succeeded an encrypted Bluetooth channel
-is opened between the two devices. </p> <p>The OOB API, <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref>,
-allows an application handling OOB authentication to provide pairing information
-for a remote device. </p> <p> <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref> allows
-an application handling OOB authentication to retrieve pairing information
-for the local device. </p> <p><b>Using
-the OOB API</b> </p> <p>The OOB data API is provided by the Pairing Server
-(part of the Security Manager). </p> <codeblock id="GUID-B474C4DA-7FBE-5ABF-9124-BF1B3A899EE0" xml:space="preserve">
-
-#include &lt;pairing.h&gt;
-
-    RBluetoothPairingServer pairingServer ;
-    RBluetoothOobData       OobData ;
-
-
-    // Connect to the Pairing server 
-
-    TInt err = pairingServer.connect() ;
-
-    // Paring session
-
-    err = OobData.Open( iPairingServer ) ;
-
-
-    // Use the API pass hash and randomizer values to and from the pairing server.
-   
-    ...
-
-
-    // Tidy up
-
-    OobData.Close() ;
-    PairingServer.Close() ;
-
-</codeblock> <p>The API has three primary functions: </p> <p> <codeph>RefreshLocalOobData()</codeph> -
-This function causes the Bluetooth controller to generate new hash and randomizer
-values for the local device. To retrieve the new values call <codeph>ReadLocalOobData()</codeph>  </p> <p> <codeph>ReadLocalOobData()</codeph> -
-This function returns the hash and randomizer values that the Bluetooth controller
-is currently using. </p> <p> <codeph>ProvideRemoteOobData()</codeph> - Use
-this function to pass OOB data about a remote device to the Bluetooth sub-system.
-Three versions of the function are available which take slightly different
-parameters. Information provided using one of these functions can be cleared
-using <codeph>ClearRemoteOobData()</codeph>. </p> </section>
-<section id="GUID-6C20C226-C4CE-5937-93D2-C1A89F00004C"><title>Dedicated bonding</title> <p><b>Introduction</b> </p> <p>Dedicated bonding is intended for applications
-which bond with a specific Bluetooth device. </p> <p><b>Using the dedicated bonding API</b> </p> <codeblock id="GUID-BA1AF395-EFB7-5E12-9E94-D83504876401" xml:space="preserve">
-
-#include &lt;pairing.h&gt;
-
-    RBluetoothPairingServer             pairingServer ;
-    RBluetoothDedicatedBondingInitiator bonder ;
-    TBTDevAddr                          addr ;
-    TRequstStatus                       status ;
-
-
-    // Connect to the Pairing server 
-
-    TInt err = pairingServer.connect() ;
-
-
-    // Use the Bluetooth address of the remote device bonder.Start( pairingServer, addr, status ) ;
-
-
-    // Wait for the request to complete
-
-    User::WaitForRequest(status);
-
-
-    // Close the connection with the bonder (Must be closed before bonding with another device)
-
-    bonder.Close();
-
-    pairingServer.Close() ;
-
-          </codeblock> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E" xml:lang="en"><title>Secure
+Simple Pairing (SSP)</title><shortdesc>Describes SSP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-D51EB888-7908-5F75-80B7-06B47994F22B"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-226FB791-0EA7-5756-893F-2839D4178E1E">Introduction</xref>  </p> </li>
+<li id="GUID-F8B04B59-3A9B-54B5-9D64-A64F6A930A9E"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-2891BA26-F6C3-5F3C-A567-34D806A5DAA4">Overview</xref>  </p> </li>
+<li id="GUID-744E1DDF-2908-569D-9C7A-E29223C6C9E1"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-FC295A44-D8D9-5835-A895-BFB85C5CB8B8">Symbian support for SSP</xref>  </p> </li>
+<li id="GUID-2C9207CF-8924-568A-93F9-340AB3F2A1E4"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-E6541D2E-7881-5670-B0CF-F57AA64AC032">Implementing SSP notifiers</xref>  </p> </li>
+<li id="GUID-3703505F-4F60-534C-B492-D83002FA9577"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-E1A7D7D3-891E-5A90-926D-3F946A5448A3">Using the Out of Band API</xref>  </p> </li>
+<li id="GUID-67BC873E-DC42-5208-AE65-2564B1655C41"><p><xref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita#GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E/GUID-6C20C226-C4CE-5937-93D2-C1A89F00004C">Using the dedicated bonding API</xref>  </p> </li>
+</ul>
+<section id="GUID-226FB791-0EA7-5756-893F-2839D4178E1E"><title>Introduction</title> <p>Secure
+Simple Pairing, introduced into Bluetooth v2.1, simplifies the user experience
+when pairing Bluetooth devices. </p> <p>This document describes the Symbian
+platform implementation of SSP. It describes the tasks that must be performed
+by UI creators to implement SSP and it describes how application developers
+can use Symbian APIs to pair with Bluetooth enabled devices using SSP. </p> <p><b>Scope</b> </p> <p>This document is intended for Symbian partners and developers
+implementing SSP on Symbian platform. It assumes that you are familiar with
+Bluetooth and with developing on Symbian platform. </p> <p><b>Purpose of SSP</b> </p> <p>SSP was introduced to simplify the user experience
+when pairing Bluetooth devices. Specifically: </p> <ul>
+<li id="GUID-63DD983D-4C9B-55A9-BC1E-B5F590576B51"><p>there is no need for
+the user to think of a number </p> </li>
+<li id="GUID-08AFD4B9-4B08-55CD-8A5A-83200F0D75AD"><p>the authentication process
+may differ for different devices and different services </p> </li>
+<li id="GUID-AC68A597-36ED-5FE4-8678-21FB8F4498BE"><p>all data transfer is
+encrypted </p> </li>
+</ul> </section>
+<section id="GUID-2891BA26-F6C3-5F3C-A567-34D806A5DAA4"><title>Overview</title> <p><b>The pairing model</b> </p> <p>Pre-SSP pairing is achieved by the user(s)
+entering a personal identification number (PIN) on one or both devices. Devices
+with no keypads, such as headsets, have their PINs (typically "0000" or "1234")
+hard-wired. This is now referred to as Legacy Paring. </p> <p>Under SSP, devices
+specify their authorisation requirements. The user may have to: </p> <ul>
+<li id="GUID-4B260DAC-E745-5FBE-95D7-3FD721A3F960"><p>press a button in response
+to a simple yes or no query </p> </li>
+<li id="GUID-E73EB3E7-5DBC-5326-9728-E086AA58B05A"><p>compare two automatically
+generated numbers and select 'yes' if they match or 'no' if they do not </p> </li>
+<li id="GUID-C7AE53AC-037A-5171-AED1-62AB0F0A1953"><p>enter a number on one
+or both devices </p> </li>
+<li id="GUID-E4FF8EB0-D0DD-5C39-891E-9732F53B4D7E"><p>do nothing </p> </li>
+</ul> <p>Once the devices have paired the user may be asked to authorise bonding.
+Bonded devices can subsequently pair with no user interaction. </p> <p><b>Key concepts</b> </p> <dl>
+<dlentry>
+<dt> Authentication</dt>
+<dd><p>Verification that a remote device is what it claims to be. Authentication
+may be unnecessary for some pairings (see Just Works), may require user intervention
+(see Man in the Middle) or may be performed through another channel (see Out
+of Band). </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Authorisation</dt>
+<dd><p>In legacy pairing a remote device can be authorised after pairing such
+that it subsequently connects automatically without user intervention. Authorisation
+is on a per-service basis. See <b>bonding</b>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Encryption</dt>
+<dd><p>Transmission of data between devices after SSP is always encrypted.
+Under legacy pairing data transmission is not always encrypted. </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Man In The Middle (MITM) protection</dt>
+<dd><p>Authentication explicitly provided by the user before pairing can take
+place. Under SSP, devices and services have hard-wired authentication requirements
+as follows: MITM required, MITM not required (see Just Works) and MITM desired
+(subject to the user interface capabilities of the devices) </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Just Works</dt>
+<dd><p>For some pairings there is little risk of a security breach so SSP
+provides a mechanism for devices to pair with no explicit user authentication. </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Passkey</dt>
+<dd><p>In the context of a Symbian device, which always has both a display
+and a keypad, passkey authentication is used when pairing with a remote device
+which has a keypad but no display. The Symbian device displays a number which
+the user must enter using the keypad on the remote device </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Out Of Band (OOB)</dt>
+<dd><p>Out of Band authentication is performed using a non-Bluetooth communication
+channel. The data required to open an MITM protected Bluetooth connection
+with a remote device is transmitted by other means. </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Bonding</dt>
+<dd><p>Two devices may bond after athentication such that they can reconnect
+without user intervention. Bonding is achieved on a Symbian device by storing
+a link key. Symbian devices attempt to bond by default. The user or the remote
+device may specify that the devices do not bond. </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Link key</dt>
+<dd><p>When a connection is authenticated a link key is created. The link
+key indicates the strength of authentication (legacy, authenticated or unauthenticated).
+The link key may be stored by the Symbian device and used to bond (the default
+behaviour) or discarded when the connection ends. The link key is not displayed
+to the user. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-FC295A44-D8D9-5835-A895-BFB85C5CB8B8"><title>Symbian support
+for SSP</title> <p><b>Components</b> </p> <p>Most
+of the changes are internal and transparent to system creators and developers.
+However, some new APIs added to the Bluetooth User Library allow application
+developers to use SSP features, and Licensees must implement some SSP specific
+notifiers. </p> <p>The diagram below shows the interfaces and interface classes
+required to implement SSP. </p> <p><b> Dedicated
+Bonding </b> </p> <p>Dedicated bonding is performed by the Bluetooth Pairing
+Server. Applications can use the <xref href="GUID-8E97F127-DA49-3BB6-B274-348138B425DF.dita"><apiname>RBluetoothDedicatedBondingInitiator</apiname></xref> API
+to request bonding with a specified Bluetooth device. </p> <p><b> Out of Band Data</b> </p> <p>Out of Band pairing data can be passed to
+the Bluetooth Pairing Server. The server can use the supplied data to pair
+with the specified device. Applications can also use the <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref> API
+to retrieve OOB data for the local device to be passed to remote devices. </p> <p><b> Numeric Comparison Notifier </b> </p> <p>The Bluetooth sub-system requires
+a Numeric Comparison Notifier to be provided by the UI. The notifier must
+handle <xref href="GUID-D3F5500E-2BCD-3BB9-8B6B-5716C22FAB05.dita"><apiname>TBTNumericComparisonParams</apiname></xref> and return a boolean
+value which indicates the user's decision. </p> <p><b> Passkey Entry Notifier </b> </p> <p>The Bluetooth sub-system requires
+a Passkey Entry Notifier to be provided by the UI. The notifier must handle <xref href="GUID-F4DBF857-2192-3177-B431-8499907E41AF.dita"><apiname>TBTPasskeyDisplayParams</apiname></xref> and <xref href="GUID-EB94B14B-F836-3FA1-88CD-51FC0528D76A.dita"><apiname>TBTPasskeyDisplayUpdateParams</apiname></xref>. </p> <p><b> Data
+Types </b> </p> <p>SSP specific data is stored and manipulated using the following
+types (significant functions and fields shown only). These types are used
+in various device and service related APIs. They are defined in <filepath>bt_sock.h</filepath> and <filepath>btdevice.h</filepath>. </p> <p> <codeph>#include &lt;bt_sock.h&gt; </codeph>  </p> <codeblock id="GUID-3CF4FEFE-96AC-5CF3-A522-397754161A50" xml:space="preserve">
+enum TBluetoothMitmProtection
+    {
+    EMitmNotRequired    = 0x0,   // No Man-in-the-Middle authentication is not required.
+    EMitmDesired        = 0x1,      // Man-in-the-Middle authentication should be used where possible. 
+    EMitmRequired        = 0x2      // Man-in-the-Middle authentication is required. 
+    };
+</codeblock> <p> <xref href="GUID-C0341B1C-E358-3C7B-B673-37103E2AF0A3.dita"><apiname>TBTAccessRequirements</apiname></xref>  </p> <codeblock id="GUID-2EA4EA4A-AFC4-5BB2-851F-0891EC42FF6F" xml:space="preserve">
+class TBTAccessRequirements
+    {
+public:
+       ...
+    IMPORT_C void                      SetAuthentication( TBluetoothMitmProtection aPreference );
+    IMPORT_C TBluetoothMitmProtection  MitmProtection() const;
+                ...
+
+    
+private:
+    enum TBTServiceSecuritySettings
+        {
+        EAuthenticate = 0x01,
+        EAuthorise = 0x02,
+        EEncrypt = 0x04,
+        EDenied = 0x08,
+        EMitm = 0x30,      // 2 bit field for MITM
+        };
+    
+    enum TBTAccessRequirementsMitmProtection
+        {
+        EAccessRequirementsMitmUndefined = 0x00,
+        EAccessRequirementsMitmNotRequired = 0x10,
+        EAccessRequirementsMitmDesired = 0x20,
+        EAccessRequirementsMitmRequired = 0x30
+        };
+    };</codeblock> <p> <xref href="GUID-BC29B643-2CE8-30C1-BF41-4D2B5585DC81.dita"><apiname>TBTServiceSecurity</apiname></xref>  </p> <codeblock id="GUID-28168FA1-2CF7-59BE-B77B-484991491810" xml:space="preserve">
+class TBTServiceSecurity
+    {
+public:
+    ...
+    IMPORT_C void                     SetAuthentication( TBluetoothMitmProtection aPreference );
+    IMPORT_C TBool                    AuthenticationRequired() const;
+    IMPORT_C TBluetoothMitmProtection MitmProtection() const;
+    ...
+    
+private:
+    TBTAccessRequirements iSecurityRequirements;    // Whether the service requires authentication, authorisation, encryption or min passkey len.
+    };
+
+typedef TPckgBuf&lt;TBTServiceSecurity&gt; TBTServiceSecurityPckg;    // Package definition for securty settings
+</codeblock> <p> <codeph>#include &lt;btdevice.h&gt; </codeph>  </p> <p> <xref href="GUID-7E0FA8C7-DEB4-3D86-901E-68DAC99DCA40.dita"><apiname>TBTDeviceSecurity</apiname></xref>  </p> <codeblock id="GUID-DCC63DB6-6D3F-5B32-836D-973E65305B13" xml:space="preserve">
+class TBTDeviceSecurity
+    {
+public:
+
+       // Enumeration to provide select MITM protection required. 
+
+    enum TMitmRequired
+        {
+        EMitmUnspecified,      // No specific MITM protection requirements
+        EMitmRequired          // Require the link is MITM protected 
+        };
+    
+public:
+
+    ...
+    IMPORT_C void          SetNoAuthenticate(TBool aDecision);
+    IMPORT_C void          SetMitmRequirements(TMitmRequired aDecision);
+    ...
+    IMPORT_C TBool         NoAuthenticate() const;
+    IMPORT_C TMitmRequired MitmRequirements() const;
+    ...
+
+public:
+    // Enumeration to assist in parsing of security settings.
+    enum TBTDeviceSecuritySettings
+        {
+        ENoAuthenticate            = 0x01,        // Don't authenticate the link @deprecated
+        ENoAuthorise            = 0x02,           // Don't authorise the connection
+        EEncrypt                = 0x04,              // Encrypt the link
+        EBanned                    = 0x08,              // Don't connect to the device
+        EMitmProtectionRequired    = 0x10,  // Require the link is MITM protected
+        };
+    };
+</codeblock> </section>
+<section id="GUID-E6541D2E-7881-5670-B0CF-F57AA64AC032"><title>Implementing
+SSP notifiers</title> <p><b>Introdution</b> </p> <p>The
+Bluetooth sub-system has no user interface. It uses the Symbian <xref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita">notifier
+framework</xref> for user interaction when pairing. The UI system must provide
+a notifier, in plug-in form, for each user interaction required by SSP. The
+notifier must receive data in a specified format from the Bluetooth sub-system,
+display appropriate controls in a dialog on the screen, respond to the user's
+input and send data back to the Bluetooth sub-system in a specified format. </p> <p>This
+document assumes that you already have Bluetooth notifiers in your system.
+It describes the key aspects of adding notifiers for SSP. The structures,
+types and constants described below are defined in <filepath>BTExtNotifiers.h</filepath>.
+You can add notifiers to an existing plug-in or create a new plug-in. </p> <p>Notifiers
+are typically implemented as sleeping dialogs. A sleeping dialog has its resources
+allocated when its application (in this case the Uikon Server) is started.
+A sleeping dialog can therefore be displayed (roused) safely under low memory
+conditions. </p> <p><b>Notes: </b> </p> <ul>
+<li id="GUID-8F9A2CA6-0481-55EB-8458-076AA869CF1E"><p>This document does not
+describe how to implement an ECOM plug-in or a sleeping dialog. </p> </li>
+<li id="GUID-0BA5CB89-F09C-5150-82C5-2169503FF961"><p>Customisation Kit Licensees
+can find an example notifier implementation here: <filepath>sf/mw/classicui/commonuisupport/uikon/examples/notifier1/</filepath>  </p> </li>
+</ul> <p><b>Numeric
+Comparison Notifier</b> </p> <p>A numeric comparison notifier is required
+for SSP Man in the Middle (MITM) authentication when the remote device is
+capable of displaying a number to the the user and accepting a yes or no response
+from the user. The notifier must display an automatically generated number
+and invite the user to confirm (yes or no) that the number is the same as
+the number displayed on the remote device. The notifier must return the user's
+response. </p> <p>The Bluetooth Security Manager uses the following code to
+ask the notifier framework to display the Numeric Comparison Notifier </p> <codeblock id="GUID-C797A612-4AD7-5DE1-854E-3398945A4957" xml:space="preserve">
+
+// defined in header file(s)
+
+TBTDevAddr                      iDevAddr ;
+RNotifier                       iNotifier ;
+TUint32                         iNumericValue ;
+TBool                           iInternallyInitiated ;
+TBTNumericComparisonParamsPckg  iNumericComparisonParamsPckg ;
+TPckgBuf&lt;TBool&gt;                 iResultPckg ;
+// 
+
+void CBTNumericComparator::DoRequest()
+   {
+   // Start the RNotifier plugin that deals with authorisation.
+
+   ...
+
+   TBTDeviceName deviceName = KNullDesC ;
+
+   iNumericComparisonParamsPckg = TBTNumericComparisonParams( iDevAddr, 
+                                                              deviceName, 
+                                                              iNumericValue, 
+                                                              TBTNumericComparisonParams::ERemoteCanConfirm, 
+                                                              iInternallyInitiated);
+
+   iNotifier.StartNotifierAndGetResponse( iStatus, 
+                                          KBTNumericComparisonNotifierUid, 
+                                          iNumericComparisonParamsPckg, 
+                                          iResultPckg);
+   SetActive();
+   }
+</codeblock> <p>From the code above you can see that the Numeric Comparision
+Notifier is identified by the UID<codeph>KBTNumericComparisonNotifierUid</codeph> and
+that it must handle data in <xref href="GUID-D3F5500E-2BCD-3BB9-8B6B-5716C22FAB05.dita"><apiname>TBTNumericComparisonParams</apiname></xref> (which
+is packaged into <codeph>TBTNumericComparisonParamsPckg</codeph> for inter-process
+transfer). </p> <p>The code fragment below shows how to extract the numeric
+comparison data within a notifier. </p> <p>NOTE: You will need to implement
+all of the virtual functions in <xref href="GUID-4E967403-417B-3340-B168-9FAF6565FEFF.dita"><apiname>MEikSrvNotifierBase2.</apiname></xref>  </p> <codeblock id="GUID-36408990-3292-531C-B15E-E88575CD0578" xml:space="preserve">
+class CNumericComparisonNotifier : public CEikDialog, public MEikSrvNotifierBase2
+    {
+public:
+
+    ...
+
+    // from MEikSrvNotifierBase2
+    void StartL ( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage ) ;
+ 
+    ...
+
+    void Complete( TBool aDecision, TInt aReason ) ;
+
+private:
+    TInt                iRepySlot ;
+    TNotifierInfo       iInfo ;
+    RMessage2           iMessage ;
+    TBTNumeriComparisonParamsPckg     iNumericComparisonParamsPckg ;
+    TBTDevAddr          iAddr ;
+    TBTDeviceName       iName ;
+    TUint32             iNumericalValue ;
+
+    } ;
+
+
+
+//--------------------------------
+
+...
+
+void CNumericComparisionNotifier::StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage )
+    {
+
+    iMessage = RMessage2( aMessage ) ;   // keep a copy ofthe message so that it can be completed later.
+    iReplySlot = aReplySlot ;            // copy the reply slot too
+
+    // Extract the comparison parameters from the buffer
+
+    iNumericComparisonParamsPckg.Copy( aBuffer ) ; 
+
+    iAddr           = iNumericComparisonParamsPckg().DeviceAddress() ;
+    iName           = iNumericComparisonParamsPckg().DeviceName() ;
+    iNumericalValue = iNumericComparisonParamsPckg().NumericalValue() ;
+
+    ...
+
+    RouseSleepingDialog() ; 
+
+    }
+        
+</codeblock> <p>Your dialog must display <codeph>iNumericalValue</codeph> and
+ask the user if the number displayed is the same as the number displayed on
+the other Bluetooth device. The user must be able to select 'Yes' or 'No'. </p> <p>The <codeph>StartL()</codeph> function
+above must return quickly so it must not wait for the user's response. Your
+notifier must complete the message (<codeph>iMessage</codeph>) as shown below
+when the user enters a response. </p> <codeblock id="GUID-7C313F8D-F521-541D-8294-686339633F43" xml:space="preserve">
+void CNumericComparisionNotifier::Complete( TBool aDecision, TInt aReason )
+    {
+    if ( aReason == KErrNone )
+        {
+        TInt err = iMessage.Write( iReplySlot, TPckgC&lt;TBool&gt;( aDecision ) ) ;
+        iMessage.Complete( err ) ;
+        }
+     else
+        {
+        iMessage.Complete( aReason ) ;
+        }
+     }
+</codeblock> <p><b>Passkey
+Notifier</b> </p> <p>A passkey notifier is required for SSP MITM authentication
+when the user must type a number on a remote device which has a keypad and
+no display. The notifier displays the number that the user must type. In the
+code below the notifier also displays a '*' character as the user types each
+digit into the remote device. </p> <p>The Bluetooth Security Manager uses
+the following code to ask the Notifier Framework to display the passkey notifier. </p> <codeblock id="GUID-C9F126EB-D3F2-5F08-AF50-64123BB5455F" xml:space="preserve">
+
+// defined in header file(s)
+
+TBTDevAddr                      iDevAddr ;
+RNotifier                       iNotifier ;
+TUint32                         iNumericValue ;   // the passkey number
+TBool                           iInternallyInitiated ;
+TBTPasskeyDisplayParamsPckg     iPasskeyDisplayParamsPckg ;
+TBTDeviceNameUpdateParamsPckg   iDeviceNameUpdateParamsPckg;
+TBuf8&lt;1&gt;                        iResultPckg ;
+
+void CBTPasskeyEntry::DoRequest()
+    {
+    // Start the RNotifier plugin that deals with authorisation.
+
+    ...
+
+    TBTDeviceName deviceName ;    
+    
+    deviceName = KNullDesC ;
+
+    iPasskeyDisplayParamsPckg = TBTPasskeyDisplayParams( iDevAddr, 
+                                                         deviceName, 
+                                                         iNumericValue, 
+                                                         iInternallyInitiated ) ;
+
+    iNotifier.StartNotifierAndGetResponse( iStatus, 
+                                           KBTPasskeyDisplayNotifierUid, 
+                                           iPasskeyDisplayParamsPckg, 
+                                           iResultPckg ) ;
+    SetActive() ;
+
+    }
+
+</codeblock> <p>From the code above you can see that the Passkey Notifier
+is identified by the UID<codeph>KBTPasskeyNotifierUid</codeph> and that it
+must handle data in <xref href="GUID-F4DBF857-2192-3177-B431-8499907E41AF.dita"><apiname>TBTPasskeyDisplayParams</apiname></xref> (which is packaged
+into <codeph>TBTPasskeyDisplayParamsPckg</codeph> for inter-process transfer). </p> <p>As
+the user enters passkey digits into the remote device the Security Manager
+also uses <codeph>RNotifier::UpdateNotifierAndGetResponse()</codeph> to send <xref href="GUID-EB94B14B-F836-3FA1-88CD-51FC0528D76A.dita"><apiname>TBTPasskeyDisplayUpdateParams</apiname></xref> (packaged
+in <xref href="GUID-D6CA0DDB-1CD0-32F1-BBB5-7E280E1C4779.dita"><apiname>TBTPasskeyDisplayUdateParamsPckg</apiname></xref>) to the notifier. Your
+notifier must use this information to reflect the key presses on the remote
+device. </p> <p>The code fragment below shows how to extract the passkey data
+within a notifier. </p> <p>NOTE: You will need to implement all of the virtual
+functions in <xref href="GUID-4E967403-417B-3340-B168-9FAF6565FEFF.dita"><apiname>MEikSrvNotifierBase2.</apiname></xref>  </p> <codeblock id="GUID-B38F7512-B091-5F93-86F1-EA740DAD7509" xml:space="preserve">
+class CPasskeyNotifier : public CEikDialog, public MEikSrvNotifierBase2
+    {
+public:
+
+    ...
+
+    // from MEikSrvNotifierBase2
+    void   StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage ) ;
+    TPtrC8 UpdateL( const TDesC8&amp; aBuffer ) ;  // new information 
+
+    ...
+
+private:
+    TInt                            iRepySlot ;
+    TNotifierInfo                   iInfo ;
+    RMessage2                       iMessage ;
+    TBTPasskeyDisplayParamsPckg     iPasskeyDisplayParamsPckg ;
+    TBTDevAddr                      iAddr ;
+    TBTDeviceName                   iName ;
+    TUint32                         iNumericalValue ;   // the passkey number
+
+    } ;
+
+//--------------------------------
+
+...
+
+void CPasskeyNotifier::StartL( const TDesC8&amp; aBuffer, TInt aReplySlot, const RMessagePtr2&amp; aMessage )
+    {
+
+    iMessage = RMessage2(aMessage);  // keep a copy ofthe message so that it can be completed later.  
+    iReplySlot = aReplySlot ;  // copy the reply slot too
+
+    // Extract the comparison parameters from the buffer
+
+    iPasskeyDisplayParamsPckg.Copy( aBuffer ) ;
+
+    iAddr           = iPasskeyDisplayParamsPckg().DeviceAddress() ;
+    iName           = iPasskeyDisplayParamsPckg().DeviceName() ;
+    iNumericValue   = iPasskeyDisplayParamsPckg().NumericalValue() ;
+
+
+    ...
+
+    RouseSleepingDialog() ;  // display the passkey 
+
+    ...
+
+    }
+
+void CPasskeyNotifier::UpdateL( const TDesC8&amp; aBuffer )
+    {
+
+    // extract the contents of the buffer
+
+    TBTNotifierUpdateParamsPckg2 pckgRaw ;
+    pckgRaw.Copy( aBuffer.Left( pckgRaw.MaxLength() ) ) ;
+
+    // update the dialog to reflect the keys pressed on the remote device
+
+    if ( pckgRaw().Type() == TBTNotifierUpdateParams2::EPasskeyDisplay )
+        {
+        TBTPasskeyDisplayUpdateParamsPckg pckg ;
+        pckg.Copy( aBuffer ) ;
+        HCIPasskeyEntryNotificationType keypressNotification = pckg().KeypressNotification() ;
+
+        switch (keypressNotification)
+            {
+        case EPasskeyEntryStarted :
+            {
+            break ;
+            }
+        case EPasskeyDigitEntered :
+            {
+            // display '*'
+            break ;
+            }
+        case EPasskeyDigitDeleted :
+            {
+            // remove '*', reposition cursor
+            break ;
+            }
+        case EPasskeyCleared :
+            {
+            // clear display, reposition cursor
+            break ;
+            }
+        case EPasskeyEntryCompleted :
+            {
+            // hide the dialog
+            ExitSleepingDialog() ;
+            break;
+            }
+        default :
+            break ;
+        }
+    else if( pckgRaw().Type() == TBTNotifierUpdateParams2::EDeviceName )
+        {
+        // handle name update
+        }
+    return KNullDesC8() ;
+    }
+
+
+
+</codeblock> </section>
+<section id="GUID-E1A7D7D3-891E-5A90-926D-3F946A5448A3"><title>Out of Band
+(OOB) authentication</title> <p><b>Introduction</b> </p> <p>Out
+of Band authentication is achieved using a communication method other than
+Bluetooth. Once OOB authentication has succeeded an encrypted Bluetooth channel
+is opened between the two devices. </p> <p>The OOB API, <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref>,
+allows an application handling OOB authentication to provide pairing information
+for a remote device. </p> <p> <xref href="GUID-C92BBABD-AE1B-325B-9791-95875272AAAC.dita"><apiname>RBluetoothOobData</apiname></xref> allows
+an application handling OOB authentication to retrieve pairing information
+for the local device. </p> <p><b>Using
+the OOB API</b> </p> <p>The OOB data API is provided by the Pairing Server
+(part of the Security Manager). </p> <codeblock id="GUID-B474C4DA-7FBE-5ABF-9124-BF1B3A899EE0" xml:space="preserve">
+
+#include &lt;pairing.h&gt;
+
+    RBluetoothPairingServer pairingServer ;
+    RBluetoothOobData       OobData ;
+
+
+    // Connect to the Pairing server 
+
+    TInt err = pairingServer.connect() ;
+
+    // Paring session
+
+    err = OobData.Open( iPairingServer ) ;
+
+
+    // Use the API pass hash and randomizer values to and from the pairing server.
+   
+    ...
+
+
+    // Tidy up
+
+    OobData.Close() ;
+    PairingServer.Close() ;
+
+</codeblock> <p>The API has three primary functions: </p> <p> <codeph>RefreshLocalOobData()</codeph> -
+This function causes the Bluetooth controller to generate new hash and randomizer
+values for the local device. To retrieve the new values call <codeph>ReadLocalOobData()</codeph>  </p> <p> <codeph>ReadLocalOobData()</codeph> -
+This function returns the hash and randomizer values that the Bluetooth controller
+is currently using. </p> <p> <codeph>ProvideRemoteOobData()</codeph> - Use
+this function to pass OOB data about a remote device to the Bluetooth sub-system.
+Three versions of the function are available which take slightly different
+parameters. Information provided using one of these functions can be cleared
+using <codeph>ClearRemoteOobData()</codeph>. </p> </section>
+<section id="GUID-6C20C226-C4CE-5937-93D2-C1A89F00004C"><title>Dedicated bonding</title> <p><b>Introduction</b> </p> <p>Dedicated bonding is intended for applications
+which bond with a specific Bluetooth device. </p> <p><b>Using the dedicated bonding API</b> </p> <codeblock id="GUID-BA1AF395-EFB7-5E12-9E94-D83504876401" xml:space="preserve">
+
+#include &lt;pairing.h&gt;
+
+    RBluetoothPairingServer             pairingServer ;
+    RBluetoothDedicatedBondingInitiator bonder ;
+    TBTDevAddr                          addr ;
+    TRequstStatus                       status ;
+
+
+    // Connect to the Pairing server 
+
+    TInt err = pairingServer.connect() ;
+
+
+    // Use the Bluetooth address of the remote device bonder.Start( pairingServer, addr, status ) ;
+
+
+    // Wait for the request to complete
+
+    User::WaitForRequest(status);
+
+
+    // Close the connection with the bonder (Must be closed before bonding with another device)
+
+    bonder.Close();
+
+    pairingServer.Close() ;
+
+          </codeblock> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e287369_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3239641A-2D13-56D7-B18D-6E65B6B24886_d0e291002_href.png has changed
Binary file Symbian3/SDK/Source/GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e3192_href.png has changed
Binary file Symbian3/SDK/Source/GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e4467_href.png has changed
--- a/Symbian3/SDK/Source/GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,239 +1,239 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C" xml:lang="en"><title>Search-Sort
-Introduction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In Symbian OS v9.3 and earlier, when a search or sort query is made by
-a client, Message Server searches in the permanent file store (a proprietary
-formatted file), and returns the result to the client. </p>
-<p>From Symbian^3 onwards Message Server operates with the SQL
-database to store index entries. With the SQL database implementation the
-Message Server makes a query on the SQL index entry table, and returns the
-result to the client. </p>
-<p>The Messaging Middleware module provides an enhanced API for searching
-and sorting messages. This API can be used only when the SQL database is used
-to store the index entries. The API has the following features: </p>
-<ul>
-<li id="GUID-ACA12109-0146-5E75-A966-7BC6BA760A02"><p>Combined search (combination
-of more than one simple search criteria) </p> </li>
-<li id="GUID-945EFB6D-82CC-5E96-9487-37A6F0687C5A"><p>Search based on whole
-and partial words </p> </li>
-<li id="GUID-AA68CB16-94F8-56D4-98A7-2FB7A0372D24"><p>Case sensitive search </p> </li>
-<li id="GUID-FBDF167C-9DFF-5AF6-9352-17750D4649E3"><p>Wildcard search </p> </li>
-<li id="GUID-82B8AF61-5EE5-5DA1-96C8-EF94267D034D"><p>Count of total search
-results </p> </li>
-<li id="GUID-42BFEC5C-0703-51C5-952B-ACA571BDAFBD"><p>Single level sorting
-of search results </p> </li>
-<li id="GUID-ABDF3B62-0EDC-5256-858C-C958D84D00D1"><p>Iterative mechanism
-for clients to access the search and sort results sequentially. </p> </li>
-</ul>
-<p>The following sections include basic information on the search-sort functionality,
-which is important to understand before using the search-sort APIs: </p>
-<ul>
-<li id="GUID-CF2F2278-378A-5CA8-8E0A-5B7300CDCAA6"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-F682B9C3-8D9C-586B-94E5-67A24EB90180">Description</xref>  </p> </li>
-<li id="GUID-28C84BAA-BD23-5A95-9D9F-402754208292"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-98960254-25D6-5F63-9788-255205B6D2BB">Search-sort API summary</xref>  </p> </li>
-<li id="GUID-B928EB9A-8999-5E5F-9C61-C0DFF9EDA401"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-995B61DB-FB68-591E-8810-1DA96C882435">Advantages</xref>  </p> </li>
-<li id="GUID-89A87B95-6A21-5CBD-B682-439E233AB29E"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-014C08BD-7FFC-5D2B-A107-316A70D52D12">Limitations</xref>  </p> </li>
-</ul>
-<section id="GUID-F682B9C3-8D9C-586B-94E5-67A24EB90180"><title>Description</title> <p>The
-search-sort functionality is based on the client-server architecture. The
-Messaging Middleware module provides an advanced search-sort capability if
-the index entries are stored in an SQL database. </p> <p>The client creates
-a search-sort query, and passes it to the Message Server. The Message Server
-searches in the search-sort cache to check whether the query is a repetitive
-query (a query that was already requested in the past and for which a query
-ID is maintained in the search-sort cache) or a new query. </p> <p>If it is
-a repetitive query, the Message Server gets the index entry from the SQL database,
-and provides the search result to the client. </p> <p>If it is a new query,
-the Message Server stores the search query in the cache, and passes the query
-to the SQL database. </p> <p>In both the cases, the Message Server gets the
-index entry from the SQL database, passes the result to the client, and maintains
-the query in the search-sort cache. </p> <p>The iterative method can be used
-for searching and sorting a new or a repetitive search query. </p> <p>The
-following table provides detailed information on the fields supported in the
-search-sort operation: </p> <table id="GUID-0A7F291E-2B4E-5632-9D54-7C83CA8D1CE0">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry>Operation</entry>
-<entry>Header</entry>
-<entry>Body</entry>
-<entry>TMsvEntry</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b> Searching</b>  </p> </entry>
-<entry><p>To, cc, bcc, from, subject </p> </entry>
-<entry><p>Body part, whole and partial word (case sensitive and insensitive,
-whole word, wildcard) </p> </entry>
-<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
-iDescription, iDetails, and date and time. </p> </entry>
-</row>
-<row>
-<entry><p> <b> Searching with explicit sorting</b>  </p> </entry>
-<entry><p>To, cc, bcc, from, subject </p> </entry>
-<entry><p>-</p> </entry>
-<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
-iDescription, iDetails, and date and time. </p> </entry>
-</row>
-<row>
-<entry><p> <b>Sorting</b>  </p> </entry>
-<entry><p>To, cc, bcc, from, subject </p> </entry>
-<entry/>
-<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
-iDescription, iDetails, and date and time. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Key terms</b> </p> <dl>
-<dlentry>
-<dt>Iterator</dt>
-<dd><p>An iterator is a method that allows a client to access the search and
-sort results sequentially. An iterator is useful when a client does not want
-to provide the memory to receive an array of results. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Search-sort cache</dt>
-<dd><p>Search-sort cache contains frequently requested search-sort queries.
-By default, this cache is set to 20 percent of the index entry cache. </p> <p>For
-more information the search-sort cache, see <xref href="GUID-45CA1787-F41F-5AA0-9508-B9D683602D41.dita">Search-Sort
-Cache</xref>. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-98960254-25D6-5F63-9788-255205B6D2BB"><title>Search-sort
-API summary</title> <p>Use the following APIs available in <filepath>msgs.dll</filepath> for
-searching and sorting messages: </p> <fig id="GUID-B16C2CC4-4269-5F23-88C3-33E87F198D88">
-<title>              High level class diagram of new search-sort API     
-      </title>
-<image href="GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e285207_href.png" placement="inline"/>
-</fig> <ul>
-<li id="GUID-9A2D5945-9D5F-5235-BA4F-500CFE5B2CF0"><p> <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref>  </p> <p>The <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class is used in the client application for enhanced search-sort operations
-on the message store. </p> <p>This class can be used for the following: </p> <ul>
-<li id="GUID-7FAD5025-F94D-5824-BFD7-BDFCB83C4F2D"><p>To run a simple or complex
-search-sort request. </p> </li>
-<li id="GUID-94DFA54C-B9B6-5154-BF09-46A45DFCCD1E"><p>To repeat an earlier
-search-sort operation by using the <xref href="GUID-47DEF0FA-908B-31E4-A493-64FE7468F1D1.dita"><apiname>queryId</apiname></xref>. </p> </li>
-<li id="GUID-FBB74619-7822-5EC8-BD69-E7D2F2943896"><p>To receive results either
-in one chunk using an array or one after the other using an iterative method. </p> <note> The
-search-sort results can be received as a list of <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> objects.</note></li>
-</ul> </li>
-<li id="GUID-B757296A-97BD-5816-99BD-7897900CA1F4"><p> <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref>  </p> <p>The <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> class
-is used in the client application to create a search-sort query. It has an
-interface to add or set the query criteria on various message parts. </p> <p>This
-class provides the following search options: </p> <ul>
-<li id="GUID-F6ABCDEC-C50F-53BA-8817-CA88444765E7"><p>Case sensitive search
-(<xref href="GUID-4F6E4BC7-B77B-390D-BF08-58DF5EF2A959.dita"><apiname>SetCaseSensitiveOption</apiname></xref>) </p> <p>By default this option
-is set to false. </p> </li>
-<li id="GUID-C33F20AC-8F74-5CF6-9446-02227F274E59"><p>Whole word search (<xref href="GUID-D95D1E2A-8D0C-3509-8C51-C36DA28E304D.dita"><apiname>SetWholeWord</apiname></xref>) </p> <p>By
-default this option is set to false. </p> </li>
-<li id="GUID-F9BDA832-A1B8-5596-B619-2A54936D48FB"><p>Wildcard search (<xref href="GUID-BB9B7771-194B-3629-937C-0C829A339463.dita"><apiname>SetWildCardSearch</apiname></xref>) </p> <p>Allow
-the use of the asterisk (*) and question mark (?) wildcards. By default this
-option is set to false. </p> </li>
-<li id="GUID-ACAC32F4-9E34-5A47-A5CB-F9B5D2AE1235"><p>Subfolder search (<xref href="GUID-B06EB103-6ECA-39F0-A3F0-B99D7314CF3C.dita"><apiname>SetSubFolderSearch</apiname></xref>) </p> <p>Include
-the entries within the subfolders in the search result. By default this option
-is set to false. </p> <note> The subfolder option is valid only for a search
-query. </note> </li>
-<li id="GUID-AD053845-DB7D-5447-AD38-A348E51B6DE6"><p>Explicit single level
-sort (using the <codeph>TMsvMessagePart                      aMessagePart</codeph> parameter
-in the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D4A0638E-61AE-3F7D-AB84-D3285F2D4539"><apiname>CMsvSearchSortQuery::AddSearchOptionL</apiname></xref> function. </p> <p>Sorting
-on one particular message part. </p> </li>
-</ul> <p>The <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> class is used with the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class
-when requesting a new search-sort operation. </p> <note type="important"> By
-default, the search query results are not sorted. To receive a result in a
-sorted order, you must send a sort request by using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-CE8F4E20-B1A9-32BF-B1FB-6F4E6CB88C2A"><apiname>CMsvSearchSortQuery::AddSortOptionL()</apiname></xref> function.
-Sort options can be used with search options when creating a search-sort query. </note></li>
-<li id="GUID-6DAE4181-212F-5988-AD0E-C1BF20503952"><p> <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref>  </p> <p>The <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> is
-an enumeration type class that contains all parts of the message, including
-index entry and message header. Searching or sorting is done based on the <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> class. </p> </li>
-<li id="GUID-EFEB6199-FD8A-55F4-9524-02E5C4A65488"><p> <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref>  </p> <p>The <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref> is an enumeration class. The client uses <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref> to
-specify if the search and sort results are returned as <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref>. </p> </li>
-<li id="GUID-B07DA71A-4906-5EAB-8A4F-A103EB6F259F"><p> <xref href="GUID-9EC5FF8F-55BF-3D4B-BF1E-6221509E2583.dita"><apiname>TMsvRelationOp</apiname></xref>  </p> <p>The <xref href="GUID-9EC5FF8F-55BF-3D4B-BF1E-6221509E2583.dita"><apiname>TMsvRelationOp</apiname></xref> is
-an enumeration type class that is used to provide relational operations between
-the search criteria value and the value in the message part of a message. </p> <p>For
-example, equal to, greater than, greater than or equal to, less than, and
-less than or equal to. </p> </li>
-<li id="GUID-0DA7A049-9FCA-5F7C-9C69-E357BBD5525D"><p> <xref href="GUID-94A91DF4-2362-3042-A230-79B4B294B2F6.dita"><apiname>TMsvSortOrder</apiname></xref>  </p> <p>The <xref href="GUID-94A91DF4-2362-3042-A230-79B4B294B2F6.dita"><apiname>TMsvSortOrder</apiname></xref> is
-an enumeration type class that is used to provide the sorting options for
-sorting queries. The search or sort results can be sorted in ascending or
-descending order. </p> </li>
-</ul> </section>
-<section id="GUID-995B61DB-FB68-591E-8810-1DA96C882435"><title>Advantages</title> <p>The
-following are the advantages of the enhanced search-sort functionality: </p> <ul>
-<li id="GUID-D6B66EA5-4E18-5065-8502-7FD78C0147C8"><p>Search messages by the
-following fields: </p><note> Most of the following fields are applicable to
-email messages: </note> <ul>
-<li id="GUID-77DB4B4B-DD60-5164-974A-BD892702FD2B"><p>Sender, recipient list
-(cc, to, bcc), subject </p> </li>
-<li id="GUID-C16729FC-8517-59BF-AEE7-CEF4B6929AC9"><p>Mail size and size range </p> </li>
-<li id="GUID-FDA2E776-CE39-55E6-900E-8EBE826EBABC"><p>Date and date range </p> </li>
-<li id="GUID-24535174-207A-5095-ACCB-38F0A2B4704B"><p>Message type (SMS, Email,
-MMS, and BIO message) </p> </li>
-<li id="GUID-C190645B-B338-5C37-B506-BF783144923D"><p>Priority (high, medium,
-and low) </p> </li>
-<li id="GUID-D8804E92-44D5-5730-A09F-BE5EE62FB505"><p>Attachment types (linked
-attachment and file attachment) </p> </li>
-<li id="GUID-68D9C896-B8B1-5FA4-B833-8A7E9E2A09D0"><p>Message status </p> <p>For
-example, New, Read, Unread, and so on. </p> </li>
-</ul> </li>
-<li id="GUID-D381A082-643C-502A-99A9-1813C2FE5B8D"><p>Search messages containing
-a specified string in a specified message part. </p> </li>
-<li id="GUID-CB9D7CD8-41BF-55EA-B867-5C39192FC984"><p>Search within subfolders
-of the parent folder. </p> </li>
-<li id="GUID-194B52B2-B443-51A2-A7CB-4595CEE0101E"><p>Provides combined search
-and sort options to the client. </p> </li>
-<li id="GUID-21C4E9F2-CF3C-552D-8A4E-E2714060DF87"><p>Provides explicit single
-level of sorting with implicit sort by data and time. </p> </li>
-<li id="GUID-2137FD0D-97F5-58DA-BDC0-2E39EFFA750F"><p>Allows client to implement
-more versatile UI views. </p> </li>
-<li id="GUID-CECCA668-AEBD-5A26-AF0A-D591A7128F65"><p>Returns total number
-of search-sort count without sending the resultant data. For example, the
-number of unread messages in the inbox. </p> </li>
-<li id="GUID-308007D7-B0AC-5E6E-8EB9-2CD56214BED1"><p>Provides good RAM performance
-for repetitive search-sort requests, as the Messaging framework maintains
-a search-sort cache for frequently used search-sort requests. </p> </li>
-</ul> </section>
-<section id="GUID-014C08BD-7FFC-5D2B-A107-316A70D52D12"><title>Limitations</title> <p>The
-following are the limitations of the advanced search and sort functionality: </p> <ul>
-<li id="GUID-1361069B-D79B-5F37-B6D2-5730B73152B4"><p>The search-sort operation
-for a specific value in a specific message part is supported, but searching
-for a specific value in all message parts is not supported. </p> </li>
-<li id="GUID-F0E732EC-D4D5-53AE-A2F2-F09ADF134426"><p>Index entry is migrated
-to SQL. The header and body part are yet to be migrated to SQL. So the iterative
-method is supported only if the message parts in the index entry are used
-in creating the search-sort query. </p> </li>
-<li id="GUID-56127926-2AD8-50CE-81F3-E2CC5AE89EB7"><p>The following are not
-supported in the iterative method because the limitations of SQL: </p> <ul>
-<li id="GUID-F61AF937-A39E-5276-AE13-AEA2F48BF0C3"><p>Accessing the next set
-of values, that is, next <b>n</b> values (results). </p> </li>
-<li id="GUID-17F483B6-427F-59CD-8C47-88D5542E765B"><p>Accessing the previous
-value or the previous set of values. </p> </li>
-<li id="GUID-0323A0FD-DED7-5B44-B53E-565727B59E81"><p>Accessing a random value
-or a random set of values. </p> </li>
-</ul> </li>
-<li id="GUID-C567013B-A385-50B4-BC30-325BB2B073DB"><p>Multi level sorting
-is not supported. </p> </li>
-<li id="GUID-B0BB3E72-1C5F-5F44-AA79-170B4BC2CFD2"><p>A search query can use
-a maximum of five message parts as search criteria in a combined search. </p> </li>
-<li id="GUID-AFC8222E-ACF6-5F11-9D2C-773E9149473E"><p>Sorting on message body
-is not supported. </p> </li>
-<li id="GUID-62916475-9920-5196-9DB3-4F9C517F759B"><p>Search-sort operation
-cannot be performed on all the message parts present in index entry. The supported
-list consists of message parts present in message header, message body and
-a partial list of message parts from index entry. See the <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> enumeration
-class for the supported message parts. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-45CA1787-F41F-5AA0-9508-B9D683602D41.dita"><linktext>Search-Sort
-Cache</linktext></link>
-<link href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita"><linktext>Example code</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C" xml:lang="en"><title>Search-Sort
+Introduction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In Symbian OS v9.3 and earlier, when a search or sort query is made by
+a client, Message Server searches in the permanent file store (a proprietary
+formatted file), and returns the result to the client. </p>
+<p>From Symbian^3 onwards Message Server operates with the SQL
+database to store index entries. With the SQL database implementation the
+Message Server makes a query on the SQL index entry table, and returns the
+result to the client. </p>
+<p>The Messaging Middleware module provides an enhanced API for searching
+and sorting messages. This API can be used only when the SQL database is used
+to store the index entries. The API has the following features: </p>
+<ul>
+<li id="GUID-ACA12109-0146-5E75-A966-7BC6BA760A02"><p>Combined search (combination
+of more than one simple search criteria) </p> </li>
+<li id="GUID-945EFB6D-82CC-5E96-9487-37A6F0687C5A"><p>Search based on whole
+and partial words </p> </li>
+<li id="GUID-AA68CB16-94F8-56D4-98A7-2FB7A0372D24"><p>Case sensitive search </p> </li>
+<li id="GUID-FBDF167C-9DFF-5AF6-9352-17750D4649E3"><p>Wildcard search </p> </li>
+<li id="GUID-82B8AF61-5EE5-5DA1-96C8-EF94267D034D"><p>Count of total search
+results </p> </li>
+<li id="GUID-42BFEC5C-0703-51C5-952B-ACA571BDAFBD"><p>Single level sorting
+of search results </p> </li>
+<li id="GUID-ABDF3B62-0EDC-5256-858C-C958D84D00D1"><p>Iterative mechanism
+for clients to access the search and sort results sequentially. </p> </li>
+</ul>
+<p>The following sections include basic information on the search-sort functionality,
+which is important to understand before using the search-sort APIs: </p>
+<ul>
+<li id="GUID-CF2F2278-378A-5CA8-8E0A-5B7300CDCAA6"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-F682B9C3-8D9C-586B-94E5-67A24EB90180">Description</xref>  </p> </li>
+<li id="GUID-28C84BAA-BD23-5A95-9D9F-402754208292"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-98960254-25D6-5F63-9788-255205B6D2BB">Search-sort API summary</xref>  </p> </li>
+<li id="GUID-B928EB9A-8999-5E5F-9C61-C0DFF9EDA401"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-995B61DB-FB68-591E-8810-1DA96C882435">Advantages</xref>  </p> </li>
+<li id="GUID-89A87B95-6A21-5CBD-B682-439E233AB29E"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita#GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C/GUID-014C08BD-7FFC-5D2B-A107-316A70D52D12">Limitations</xref>  </p> </li>
+</ul>
+<section id="GUID-F682B9C3-8D9C-586B-94E5-67A24EB90180"><title>Description</title> <p>The
+search-sort functionality is based on the client-server architecture. The
+Messaging Middleware module provides an advanced search-sort capability if
+the index entries are stored in an SQL database. </p> <p>The client creates
+a search-sort query, and passes it to the Message Server. The Message Server
+searches in the search-sort cache to check whether the query is a repetitive
+query (a query that was already requested in the past and for which a query
+ID is maintained in the search-sort cache) or a new query. </p> <p>If it is
+a repetitive query, the Message Server gets the index entry from the SQL database,
+and provides the search result to the client. </p> <p>If it is a new query,
+the Message Server stores the search query in the cache, and passes the query
+to the SQL database. </p> <p>In both the cases, the Message Server gets the
+index entry from the SQL database, passes the result to the client, and maintains
+the query in the search-sort cache. </p> <p>The iterative method can be used
+for searching and sorting a new or a repetitive search query. </p> <p>The
+following table provides detailed information on the fields supported in the
+search-sort operation: </p> <table id="GUID-0A7F291E-2B4E-5632-9D54-7C83CA8D1CE0">
+<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry>Operation</entry>
+<entry>Header</entry>
+<entry>Body</entry>
+<entry>TMsvEntry</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b> Searching</b>  </p> </entry>
+<entry><p>To, cc, bcc, from, subject </p> </entry>
+<entry><p>Body part, whole and partial word (case sensitive and insensitive,
+whole word, wildcard) </p> </entry>
+<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
+iDescription, iDetails, and date and time. </p> </entry>
+</row>
+<row>
+<entry><p> <b> Searching with explicit sorting</b>  </p> </entry>
+<entry><p>To, cc, bcc, from, subject </p> </entry>
+<entry><p>-</p> </entry>
+<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
+iDescription, iDetails, and date and time. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Sorting</b>  </p> </entry>
+<entry><p>To, cc, bcc, from, subject </p> </entry>
+<entry/>
+<entry><p>Attachment type, read, unread, new flag, priority, size, MTM type,
+iDescription, iDetails, and date and time. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Key terms</b> </p> <dl>
+<dlentry>
+<dt>Iterator</dt>
+<dd><p>An iterator is a method that allows a client to access the search and
+sort results sequentially. An iterator is useful when a client does not want
+to provide the memory to receive an array of results. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Search-sort cache</dt>
+<dd><p>Search-sort cache contains frequently requested search-sort queries.
+By default, this cache is set to 20 percent of the index entry cache. </p> <p>For
+more information the search-sort cache, see <xref href="GUID-45CA1787-F41F-5AA0-9508-B9D683602D41.dita">Search-Sort
+Cache</xref>. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-98960254-25D6-5F63-9788-255205B6D2BB"><title>Search-sort
+API summary</title> <p>Use the following APIs available in <filepath>msgs.dll</filepath> for
+searching and sorting messages: </p> <fig id="GUID-B16C2CC4-4269-5F23-88C3-33E87F198D88">
+<title>              High level class diagram of new search-sort API     
+      </title>
+<image href="GUID-0E91173A-BA80-5817-866A-7A284573EBCE_d0e281521_href.png" placement="inline"/>
+</fig> <ul>
+<li id="GUID-9A2D5945-9D5F-5235-BA4F-500CFE5B2CF0"><p> <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref>  </p> <p>The <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class is used in the client application for enhanced search-sort operations
+on the message store. </p> <p>This class can be used for the following: </p> <ul>
+<li id="GUID-7FAD5025-F94D-5824-BFD7-BDFCB83C4F2D"><p>To run a simple or complex
+search-sort request. </p> </li>
+<li id="GUID-94DFA54C-B9B6-5154-BF09-46A45DFCCD1E"><p>To repeat an earlier
+search-sort operation by using the <xref href="GUID-47DEF0FA-908B-31E4-A493-64FE7468F1D1.dita"><apiname>queryId</apiname></xref>. </p> </li>
+<li id="GUID-FBB74619-7822-5EC8-BD69-E7D2F2943896"><p>To receive results either
+in one chunk using an array or one after the other using an iterative method. </p> <note> The
+search-sort results can be received as a list of <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> objects.</note></li>
+</ul> </li>
+<li id="GUID-B757296A-97BD-5816-99BD-7897900CA1F4"><p> <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref>  </p> <p>The <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> class
+is used in the client application to create a search-sort query. It has an
+interface to add or set the query criteria on various message parts. </p> <p>This
+class provides the following search options: </p> <ul>
+<li id="GUID-F6ABCDEC-C50F-53BA-8817-CA88444765E7"><p>Case sensitive search
+(<xref href="GUID-4F6E4BC7-B77B-390D-BF08-58DF5EF2A959.dita"><apiname>SetCaseSensitiveOption</apiname></xref>) </p> <p>By default this option
+is set to false. </p> </li>
+<li id="GUID-C33F20AC-8F74-5CF6-9446-02227F274E59"><p>Whole word search (<xref href="GUID-D95D1E2A-8D0C-3509-8C51-C36DA28E304D.dita"><apiname>SetWholeWord</apiname></xref>) </p> <p>By
+default this option is set to false. </p> </li>
+<li id="GUID-F9BDA832-A1B8-5596-B619-2A54936D48FB"><p>Wildcard search (<xref href="GUID-BB9B7771-194B-3629-937C-0C829A339463.dita"><apiname>SetWildCardSearch</apiname></xref>) </p> <p>Allow
+the use of the asterisk (*) and question mark (?) wildcards. By default this
+option is set to false. </p> </li>
+<li id="GUID-ACAC32F4-9E34-5A47-A5CB-F9B5D2AE1235"><p>Subfolder search (<xref href="GUID-B06EB103-6ECA-39F0-A3F0-B99D7314CF3C.dita"><apiname>SetSubFolderSearch</apiname></xref>) </p> <p>Include
+the entries within the subfolders in the search result. By default this option
+is set to false. </p> <note> The subfolder option is valid only for a search
+query. </note> </li>
+<li id="GUID-AD053845-DB7D-5447-AD38-A348E51B6DE6"><p>Explicit single level
+sort (using the <codeph>TMsvMessagePart                      aMessagePart</codeph> parameter
+in the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D4A0638E-61AE-3F7D-AB84-D3285F2D4539"><apiname>CMsvSearchSortQuery::AddSearchOptionL</apiname></xref> function. </p> <p>Sorting
+on one particular message part. </p> </li>
+</ul> <p>The <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> class is used with the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class
+when requesting a new search-sort operation. </p> <note type="important"> By
+default, the search query results are not sorted. To receive a result in a
+sorted order, you must send a sort request by using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-CE8F4E20-B1A9-32BF-B1FB-6F4E6CB88C2A"><apiname>CMsvSearchSortQuery::AddSortOptionL()</apiname></xref> function.
+Sort options can be used with search options when creating a search-sort query. </note></li>
+<li id="GUID-6DAE4181-212F-5988-AD0E-C1BF20503952"><p> <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref>  </p> <p>The <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> is
+an enumeration type class that contains all parts of the message, including
+index entry and message header. Searching or sorting is done based on the <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> class. </p> </li>
+<li id="GUID-EFEB6199-FD8A-55F4-9524-02E5C4A65488"><p> <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref>  </p> <p>The <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref> is an enumeration class. The client uses <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname>TMsvSearchSortResultType</apiname></xref> to
+specify if the search and sort results are returned as <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref>. </p> </li>
+<li id="GUID-B07DA71A-4906-5EAB-8A4F-A103EB6F259F"><p> <xref href="GUID-9EC5FF8F-55BF-3D4B-BF1E-6221509E2583.dita"><apiname>TMsvRelationOp</apiname></xref>  </p> <p>The <xref href="GUID-9EC5FF8F-55BF-3D4B-BF1E-6221509E2583.dita"><apiname>TMsvRelationOp</apiname></xref> is
+an enumeration type class that is used to provide relational operations between
+the search criteria value and the value in the message part of a message. </p> <p>For
+example, equal to, greater than, greater than or equal to, less than, and
+less than or equal to. </p> </li>
+<li id="GUID-0DA7A049-9FCA-5F7C-9C69-E357BBD5525D"><p> <xref href="GUID-94A91DF4-2362-3042-A230-79B4B294B2F6.dita"><apiname>TMsvSortOrder</apiname></xref>  </p> <p>The <xref href="GUID-94A91DF4-2362-3042-A230-79B4B294B2F6.dita"><apiname>TMsvSortOrder</apiname></xref> is
+an enumeration type class that is used to provide the sorting options for
+sorting queries. The search or sort results can be sorted in ascending or
+descending order. </p> </li>
+</ul> </section>
+<section id="GUID-995B61DB-FB68-591E-8810-1DA96C882435"><title>Advantages</title> <p>The
+following are the advantages of the enhanced search-sort functionality: </p> <ul>
+<li id="GUID-D6B66EA5-4E18-5065-8502-7FD78C0147C8"><p>Search messages by the
+following fields: </p><note> Most of the following fields are applicable to
+email messages: </note> <ul>
+<li id="GUID-77DB4B4B-DD60-5164-974A-BD892702FD2B"><p>Sender, recipient list
+(cc, to, bcc), subject </p> </li>
+<li id="GUID-C16729FC-8517-59BF-AEE7-CEF4B6929AC9"><p>Mail size and size range </p> </li>
+<li id="GUID-FDA2E776-CE39-55E6-900E-8EBE826EBABC"><p>Date and date range </p> </li>
+<li id="GUID-24535174-207A-5095-ACCB-38F0A2B4704B"><p>Message type (SMS, Email,
+MMS, and BIO message) </p> </li>
+<li id="GUID-C190645B-B338-5C37-B506-BF783144923D"><p>Priority (high, medium,
+and low) </p> </li>
+<li id="GUID-D8804E92-44D5-5730-A09F-BE5EE62FB505"><p>Attachment types (linked
+attachment and file attachment) </p> </li>
+<li id="GUID-68D9C896-B8B1-5FA4-B833-8A7E9E2A09D0"><p>Message status </p> <p>For
+example, New, Read, Unread, and so on. </p> </li>
+</ul> </li>
+<li id="GUID-D381A082-643C-502A-99A9-1813C2FE5B8D"><p>Search messages containing
+a specified string in a specified message part. </p> </li>
+<li id="GUID-CB9D7CD8-41BF-55EA-B867-5C39192FC984"><p>Search within subfolders
+of the parent folder. </p> </li>
+<li id="GUID-194B52B2-B443-51A2-A7CB-4595CEE0101E"><p>Provides combined search
+and sort options to the client. </p> </li>
+<li id="GUID-21C4E9F2-CF3C-552D-8A4E-E2714060DF87"><p>Provides explicit single
+level of sorting with implicit sort by data and time. </p> </li>
+<li id="GUID-2137FD0D-97F5-58DA-BDC0-2E39EFFA750F"><p>Allows client to implement
+more versatile UI views. </p> </li>
+<li id="GUID-CECCA668-AEBD-5A26-AF0A-D591A7128F65"><p>Returns total number
+of search-sort count without sending the resultant data. For example, the
+number of unread messages in the inbox. </p> </li>
+<li id="GUID-308007D7-B0AC-5E6E-8EB9-2CD56214BED1"><p>Provides good RAM performance
+for repetitive search-sort requests, as the Messaging framework maintains
+a search-sort cache for frequently used search-sort requests. </p> </li>
+</ul> </section>
+<section id="GUID-014C08BD-7FFC-5D2B-A107-316A70D52D12"><title>Limitations</title> <p>The
+following are the limitations of the advanced search and sort functionality: </p> <ul>
+<li id="GUID-1361069B-D79B-5F37-B6D2-5730B73152B4"><p>The search-sort operation
+for a specific value in a specific message part is supported, but searching
+for a specific value in all message parts is not supported. </p> </li>
+<li id="GUID-F0E732EC-D4D5-53AE-A2F2-F09ADF134426"><p>Index entry is migrated
+to SQL. The header and body part are yet to be migrated to SQL. So the iterative
+method is supported only if the message parts in the index entry are used
+in creating the search-sort query. </p> </li>
+<li id="GUID-56127926-2AD8-50CE-81F3-E2CC5AE89EB7"><p>The following are not
+supported in the iterative method because the limitations of SQL: </p> <ul>
+<li id="GUID-F61AF937-A39E-5276-AE13-AEA2F48BF0C3"><p>Accessing the next set
+of values, that is, next <b>n</b> values (results). </p> </li>
+<li id="GUID-17F483B6-427F-59CD-8C47-88D5542E765B"><p>Accessing the previous
+value or the previous set of values. </p> </li>
+<li id="GUID-0323A0FD-DED7-5B44-B53E-565727B59E81"><p>Accessing a random value
+or a random set of values. </p> </li>
+</ul> </li>
+<li id="GUID-C567013B-A385-50B4-BC30-325BB2B073DB"><p>Multi level sorting
+is not supported. </p> </li>
+<li id="GUID-B0BB3E72-1C5F-5F44-AA79-170B4BC2CFD2"><p>A search query can use
+a maximum of five message parts as search criteria in a combined search. </p> </li>
+<li id="GUID-AFC8222E-ACF6-5F11-9D2C-773E9149473E"><p>Sorting on message body
+is not supported. </p> </li>
+<li id="GUID-62916475-9920-5196-9DB3-4F9C517F759B"><p>Search-sort operation
+cannot be performed on all the message parts present in index entry. The supported
+list consists of message parts present in message header, message body and
+a partial list of message parts from index entry. See the <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname>TMsvMessagePart</apiname></xref> enumeration
+class for the supported message parts. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-45CA1787-F41F-5AA0-9508-B9D683602D41.dita"><linktext>Search-Sort
+Cache</linktext></link>
+<link href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita"><linktext>Example code</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e107413_href.png has changed
Binary file Symbian3/SDK/Source/GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e113951_href.png has changed
--- a/Symbian3/SDK/Source/GUID-330FBB90-E622-4FD1-A189-64656F68A10D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-330FBB90-E622-4FD1-A189-64656F68A10D" xml:lang="en"><title>Displaying an image
-on the screen</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian Image Converter Library (ICL) supports the decoding of image
-files. You can use the ICL architecture to load an image stored in a file
-or a descriptor and convert it to a <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Font_and_Bitmap_Server/CFbsBitmapClass.html" format="application/java-archive"><codeph>CFbsBitmap</codeph></xref> object.
-Use this bitmap object, for example, to display the image on the screen of
-the mobile device after the capture.</p>
-<p>For a reference example, see <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/567330dd-130f-4f1d-9380-fac5aec5a6a9/S60_Platform_Image_Converter_Example.html" scope="external">S60 Platform: Image Converter Example</xref> on Forum Nokia.</p>
-<section id="GUID-A47A925E-2F99-41E4-93F5-FA4E45A73620"><title>To convert an image to display on the screen</title>
-<ol>
-<li id="GUID-7A3CD3F3-01AC-4A8F-8502-0E92AF85462A"><p>Use the methods
-of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html" format="application/java-archive"><codeph>CImageDecoder</codeph></xref> (or <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CBufferedImageDecoderClass.html" format="application/java-archive"><codeph>CBufferedImageDecoder</codeph></xref>) class to construct your application.</p>
-<ul>
-<li><p>Create a <codeph>CImageDecoder</codeph> object using <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html#%3a%3aCImageDecoder%3a%3aDataNewL%28RFs%20%26amp%3b%2cconst%20TDesC8%20%26amp%3b%2cconst%20TDesC8%20%26amp%3b%2cconst%20TOptions%29" format="application/java-archive"><codeph>CImageDecoder::DataNewL()</codeph></xref> (for descriptor)
-or <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html#%3a%3aCImageDecoder%3a%3aFileNewL%28RFs%20%26amp%3b%2cconst%20TDesC%20%26amp%3b%2cconst%20TDesC8%20%26amp%3b%2cconst%20TOptions%29" format="application/java-archive"><codeph>CImageDecoder::FileNewL()</codeph></xref> (for file) method.</p>
-</li>
-<li><p>Select a suitable plugin for the actual decoding. </p>
-</li>
-<li><p>Request information about the image using, for example, <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html#%3a%3aCImageDecoder%3a%3aFrameInfo%28TInt%29const" format="application/java-archive"><codeph>CImageDecoder::FrameInfo()</codeph></xref> and <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html#%3a%3aCImageDecoder%3a%3aFrameCount%28%29const" format="application/java-archive"><codeph>CImageDecoder::FrameCount()</codeph></xref>.</p></li>
-<li><p>Decode the image using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Imaging_Frameworks/CImageDecoderClass.html#%3a%3aCImageDecoder%3a%3aConvert%28TRequestStatus%20%2a%2cCFbsBitmap%20%26amp%3b%2cCFbsBitmap%20%26amp%3b%2cTInt%29" format="application/java-archive"><codeph>CImageDecoder::Convert()</codeph></xref> method.</p></li>
-</ul>
-</li>
-<li id="GUID-CB579189-BC23-48E1-BE89-6D0D74792ECB"><p>Include <codeph>ImageConversion.h</codeph> and <codeph>Fbs.h</codeph> header
-files in the appropriate class file(s).</p></li>
-<li id="GUID-04864D68-F3FB-44B4-B80F-1FAC900D4404"><p>Make sure
-you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
-set for your application. You need at least the <codeph>ReadUserData</codeph> capability.</p>
-</li>
-<li id="GUID-1526129D-7AE3-4A63-BEB8-13C968AF52C0"><p>Make sure <codeph>imageconversion.lib</codeph>, <codeph>bafl.lib</codeph>, <codeph>fbscli.lib</codeph> and <codeph>efsrv.lib</codeph> are accessible to your
-linker when compiling your application by including them in your <codeph>mmp</codeph> file
-or by editing the project properties in your IDE, depending on your build
-environment.</p></li>
-</ol>
-</section>
-<section id="GUID-F5D43ED0-B142-484D-8139-E4A616C585BF"><title>See also</title>
-<p><xref href="GUID-27220B08-B2E7-5106-9BCC-C86938D3E37D.dita">Image Display
-Library Overview</xref></p>
-</section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3314123F-205D-5E05-9041-DB9836B7812B" xml:lang="en"><title>File
-Access Example: Accessing the File System Using P.I.P.S.</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX on
-the Symbian platform) program, the restrictions on file access that are imposed
-by the Symbian platform Security model. </p>
-<p>It shows that programs can access their own directories, but
-cannot, without platform security capabilities not available to ordinary programs,
-access the directories of other programs, or the system binary directory <filepath>sys/bin</filepath>. </p>
-<p>This example defines an executable file with no platform security capabilities.
-The program first creates its own secure directory that it can write to and
-read from. It then attempts to use a file in a private directory of another
-program, and then in <filepath>sys/bin</filepath>, and shows that these attempts
-are denied. </p>
-<section id="GUID-820F9B58-8877-414B-A18B-B591F6D67158"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.zip" scope="external">FileAccessExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-3EAFEC43-CFDA-4E3D-8ACD-E3AAE48BE97D"><title>Description</title> <p>The
-following sections provide more information about the steps that the example
-performs. </p> <p><b> Create a secure directory</b> </p> <p>The example creates
-an empty secure directory for the program by using the <xref href="GUID-5EA72F64-E826-3B15-9468-902BD57F6AA7.dita"><apiname>mkdir()</apiname></xref> function. </p> <p>This
-empty secure directory is created in <filepath>C:\private\E80000C9</filepath>,
-as 0xE80000C9 is a unique identifier for the program (as specified by the
-third UID in its project file). </p></section>
-<section id="GUID-D9F306FF-D14E-4BCC-BAE6-55804F31CA0D"> <p><b>Write and read
-a file in the private directory </b> </p> <p>The example writes and reads
-a file in the secure directory using the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> and other
-file stream functions. </p> <p><b> Write and read a file in the private directory
-of another program </b> </p> <p>The example attempts to write and read a file
-in the secure directory of another program. </p> <p>The <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
-is expected to return <codeph>NULL</codeph>, indicating that access is not
-possible, as the program has insufficient platform security capabilities. </p><p><b> Write
-and read a file in the sys/bin directory</b> </p> <p>The example attempts
-to write and read a file in the system's <filepath>sys/bin</filepath> directory,
-where program binaries are stored. </p> <p>Again, the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
-is expected to return <codeph>NULL</codeph>, indicating that access is not
-possible, as the program has insufficient platform security capabilities. </p> </section>
-<section id="GUID-EB4F71F2-D55D-43C5-B55F-F211D170056F"><title>Related APIs</title><p><xref href="GUID-5EA72F64-E826-3B15-9468-902BD57F6AA7.dita"><apiname>mkdir()</apiname></xref></p><p><xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref></p></section>
-<section id="GUID-81AA0C7F-5D43-4EFB-9DD0-4A8A79922576"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
-how to build this example application. </p> <p>The example builds an executable
-called <filepath>fileaccessexample.exe</filepath> in the standard locations. </p> <p>To
-run the example, start <filepath>fileaccessexample.exe</filepath> from the
-file system or from your IDE. After launching the executable, depending on
-the emulator you are using, you may need to navigate away from the application
-launcher or shell screen to view the console. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3314123F-205D-5E05-9041-DB9836B7812B" xml:lang="en"><title>File Access Example: Accessing the File System Using P.I.P.S.</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX
+on the Symbian platform) program, the restrictions on file access
+that are imposed by the Symbian platform Security model. </p>
+<p>It shows that programs can access their own directories, but cannot,
+without platform security capabilities not available to ordinary programs,
+access the directories of other programs, or the system binary directory <filepath>sys/bin</filepath>. </p>
+<p>This example defines an executable file with no platform security
+capabilities. The program first creates its own secure directory that
+it can write to and read from. It then attempts to use a file in a
+private directory of another program, and then in <filepath>sys/bin</filepath>, and shows that these attempts are denied. </p>
+<section id="GUID-820F9B58-8877-414B-A18B-B591F6D67158"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.zip" scope="external">FileAccessExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-3EAFEC43-CFDA-4E3D-8ACD-E3AAE48BE97D"><title>Description</title> <p>The following sections provide more information about the steps
+that the example performs. </p> <p><b> Create a secure directory</b> </p> <p>The example creates an empty secure directory for the program
+by using the <xref href="GUID-D034B02C-3B45-3DCC-A7DA-E51227032A87.dita"><apiname>mkdir(const char *,mode_t)</apiname></xref> function. </p> <p>This empty secure directory is created in <filepath>C:\private\E80000C9</filepath>, as 0xE80000C9 is a unique identifier for the program (as specified
+by the third UID in its project file). </p></section>
+<section id="GUID-D9F306FF-D14E-4BCC-BAE6-55804F31CA0D"> <p><b>Write
+and read a file in the private directory </b> </p> <p>The example
+writes and reads a file in the secure directory using the <xref href="GUID-935A007C-D95C-3EEB-B796-603AF3612A97.dita"><apiname>fopen(const char *, const char *)</apiname></xref> and other file stream
+functions. </p> <p><b> Write and read a file in the private directory
+of another program </b> </p> <p>The example attempts to write and
+read a file in the secure directory of another program. </p> <p>The <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function is expected to return <codeph>NULL</codeph>, indicating that access is not possible, as the program has insufficient
+platform security capabilities. </p><p><b> Write and read a file in
+the sys/bin directory</b> </p> <p>The example attempts to write and
+read a file in the system's <filepath>sys/bin</filepath> directory,
+where program binaries are stored. </p> <p>Again, the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function is expected to return <codeph>NULL</codeph>, indicating
+that access is not possible, as the program has insufficient platform
+security capabilities. </p> </section>
+<section id="GUID-EB4F71F2-D55D-43C5-B55F-F211D170056F"><title>Related
+APIs</title><p><xref href="GUID-D034B02C-3B45-3DCC-A7DA-E51227032A87.dita"><apiname>mkdir(const char *,mode_t)</apiname></xref></p><p><xref href="GUID-935A007C-D95C-3EEB-B796-603AF3612A97.dita"><apiname>fopen(const char *, const char *)</apiname></xref></p></section>
+<section id="GUID-81AA0C7F-5D43-4EFB-9DD0-4A8A79922576"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this example application. </p> <p>The example builds an executable called <filepath>fileaccessexample.exe</filepath> in the standard locations. </p> <p>To run the example, start <filepath>fileaccessexample.exe</filepath> from the file system or from your
+IDE. After launching the executable, depending on the emulator you
+are using, you may need to navigate away from the application launcher
+or shell screen to view the console. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,131 +1,131 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09" xml:lang="en"><title>Store
-Overview</title><shortdesc>Provides structured data storage, using networks of streams. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D38A0EFA-4D87-406B-AD87-CF79E61F2A08"><title>Purpose</title> <p>It
-is often necessary to persist a data structure such as an object by writing
-it to memory as a sequence of bytes called a stream. A complex object is persisted
-as multiple streams collectively known as a store. The Store component provides
-access to stores in Symbian platform. </p> </section>
-<section id="GUID-6E2C9766-E106-4A63-81CC-453B64C51DCC"><title>Required background</title> <p>The
-Store component requires no specific background apart from C++ and Symbian
-platform. </p> </section>
-<section id="GUID-597F91DD-2AA3-443C-BC98-C1E8A74BF505"><title>Key concepts
-and terms</title> <p>The API has the following key concepts. </p> <dl>
-<dlentry>
-<dt>stream store</dt>
-<dd><p>a store consisting of streams, implemented by <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref>  </p> </dd>
-</dlentry>
-<dlentry>
-<dt>persistent store</dt>
-<dd><p>a store which persists beyond the lifetime of the application which
-creates it, implemented by <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref>  </p> </dd>
-</dlentry>
-<dlentry>
-<dt>embedded store</dt>
-<dd><p>a store which can itself be stored as a stream in another store, implemented
-by <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref>  </p> </dd>
-</dlentry>
-<dlentry>
-<dt>memory store</dt>
-<dd><p>a store which resides in memory and exists only for the life of the
-store object, implemented by <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref>  </p> </dd>
-</dlentry>
-<dlentry>
-<dt>dictionary store base and streams</dt>
-<dd><p>a sequence of streams accessed by a UID, implemented by <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref>  </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-8B3C967B-ED78-4756-8162-80EB1261433C"><title>Architecture</title> <p>A
-stream is a representation of a data structure (such as an object) as a sequence
-of bytes. Structures as complex as most applications require multiple streams
-to store their state. This is termed a store. Stream types that work with
-stores are provided by the <xref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita">Store
-Streams</xref> API. </p> <p>The Stores API defines both base classes that
-define store abstractions without specifying the storage medium, and some
-concrete store types. </p> <p>The abstract classes are used as the base classes
-of separate APIs which use particular storage media. In particular the <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
-further concrete stores which use file storage. Its base class, <xref href="GUID-9CBA8AB1-5BFC-3719-82AF-22A9BD93C306.dita"><apiname>CFileStore</apiname></xref> extends <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> and
-has its own subclasses such as <xref href="GUID-8B713854-7858-3E02-8A1C-B3E6C1C9EA85.dita"><apiname>CDirectFileStore</apiname></xref>. Concrete
-store types do not have to provide all the stream manipulation functionality
-defined by the base class interfaces: for example, direct file stores do not
-support individual deletion of streams within a store. </p> <p>Dictionary
-stores are accessed by a UID whereas stream stores are accessed by a stream
-ID. Persistent stores persist beyond the lifetime of the application that
-created them: they have a root stream from which the other streams in the
-store can be found. Embedded stores can be stored as streams in other stores:
-once written they cannot be modified. </p> <p>Stores are integrated with the
-application architecture as defined in the Uikon Core API. That expects file-based
-and embedded applications to handle their data storage through stores. </p> <p>Stores
-are also the basis of the relational database provided by <xref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita">DBMS</xref>. </p> <fig id="GUID-39DD7576-D335-5CD2-92A6-E0B81EF2160A">
-<title>Store inheritance diagram</title>
-<image href="GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e360224_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-CBBE7C0F-6999-4FCE-9793-C71B61130C75"><title>APIs</title> <table id="GUID-6D27BADC-7CA7-5E39-8308-29CAA1858CAB">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref>  </p> </entry>
-<entry><p>Provides the core abstract framework for stores allowing streams
-to be created and manipulated </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref>  </p> </entry>
-<entry><p>Persistent store abstract base class </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates an embedded store </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref>  </p> </entry>
-<entry><p>In-memory non-persistent store </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref>  </p> </entry>
-<entry><p>Dictionary store interface </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref>  </p> </entry>
-<entry><p>Supports the opening and manipulation of an existing stream in a
-store </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref>  </p> </entry>
-<entry><p>Supports the writing of a stream to a store </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-418E7956-BE91-39A2-A26D-F1CA88B458AA.dita"><apiname>RFileBuf</apiname></xref>  </p> </entry>
-<entry><p>A stream buffer hosted by a file </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-4B0C731E-F9CB-4406-8DD4-C8C325B08257"><title>Typical uses</title> <p>A
-typical use of stores is to write files to memory without using the file server.
-This is a good thing to do when an application uses embedded documents. </p> </section>
-</conbody><related-links>
-<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
-Storage Overview</linktext></link>
-<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File Stores
-Overview</linktext></link>
-<link href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita"><linktext>Store Streams
-                Overview</linktext></link>
-<link href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita"><linktext>Streaming
-Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09" xml:lang="en"><title>Store
+Overview</title><shortdesc>Provides structured data storage, using networks of streams. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D38A0EFA-4D87-406B-AD87-CF79E61F2A08"><title>Purpose</title> <p>It
+is often necessary to persist a data structure such as an object by writing
+it to memory as a sequence of bytes called a stream. A complex object is persisted
+as multiple streams collectively known as a store. The Store component provides
+access to stores in Symbian platform. </p> </section>
+<section id="GUID-6E2C9766-E106-4A63-81CC-453B64C51DCC"><title>Required background</title> <p>The
+Store component requires no specific background apart from C++ and Symbian
+platform. </p> </section>
+<section id="GUID-597F91DD-2AA3-443C-BC98-C1E8A74BF505"><title>Key concepts
+and terms</title> <p>The API has the following key concepts. </p> <dl>
+<dlentry>
+<dt>stream store</dt>
+<dd><p>a store consisting of streams, implemented by <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref>  </p> </dd>
+</dlentry>
+<dlentry>
+<dt>persistent store</dt>
+<dd><p>a store which persists beyond the lifetime of the application which
+creates it, implemented by <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref>  </p> </dd>
+</dlentry>
+<dlentry>
+<dt>embedded store</dt>
+<dd><p>a store which can itself be stored as a stream in another store, implemented
+by <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref>  </p> </dd>
+</dlentry>
+<dlentry>
+<dt>memory store</dt>
+<dd><p>a store which resides in memory and exists only for the life of the
+store object, implemented by <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref>  </p> </dd>
+</dlentry>
+<dlentry>
+<dt>dictionary store base and streams</dt>
+<dd><p>a sequence of streams accessed by a UID, implemented by <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref>  </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-8B3C967B-ED78-4756-8162-80EB1261433C"><title>Architecture</title> <p>A
+stream is a representation of a data structure (such as an object) as a sequence
+of bytes. Structures as complex as most applications require multiple streams
+to store their state. This is termed a store. Stream types that work with
+stores are provided by the <xref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita">Store
+Streams</xref> API. </p> <p>The Stores API defines both base classes that
+define store abstractions without specifying the storage medium, and some
+concrete store types. </p> <p>The abstract classes are used as the base classes
+of separate APIs which use particular storage media. In particular the <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
+further concrete stores which use file storage. Its base class, <xref href="GUID-9CBA8AB1-5BFC-3719-82AF-22A9BD93C306.dita"><apiname>CFileStore</apiname></xref> extends <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> and
+has its own subclasses such as <xref href="GUID-8B713854-7858-3E02-8A1C-B3E6C1C9EA85.dita"><apiname>CDirectFileStore</apiname></xref>. Concrete
+store types do not have to provide all the stream manipulation functionality
+defined by the base class interfaces: for example, direct file stores do not
+support individual deletion of streams within a store. </p> <p>Dictionary
+stores are accessed by a UID whereas stream stores are accessed by a stream
+ID. Persistent stores persist beyond the lifetime of the application that
+created them: they have a root stream from which the other streams in the
+store can be found. Embedded stores can be stored as streams in other stores:
+once written they cannot be modified. </p> <p>Stores are integrated with the
+application architecture as defined in the Uikon Core API. That expects file-based
+and embedded applications to handle their data storage through stores. </p> <p>Stores
+are also the basis of the relational database provided by <xref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita">DBMS</xref>. </p> <fig id="GUID-39DD7576-D335-5CD2-92A6-E0B81EF2160A">
+<title>Store inheritance diagram</title>
+<image href="GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e354144_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-CBBE7C0F-6999-4FCE-9793-C71B61130C75"><title>APIs</title> <table id="GUID-6D27BADC-7CA7-5E39-8308-29CAA1858CAB">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref>  </p> </entry>
+<entry><p>Provides the core abstract framework for stores allowing streams
+to be created and manipulated </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref>  </p> </entry>
+<entry><p>Persistent store abstract base class </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates an embedded store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref>  </p> </entry>
+<entry><p>In-memory non-persistent store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref>  </p> </entry>
+<entry><p>Dictionary store interface </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref>  </p> </entry>
+<entry><p>Supports the opening and manipulation of an existing stream in a
+store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref>  </p> </entry>
+<entry><p>Supports the writing of a stream to a store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-418E7956-BE91-39A2-A26D-F1CA88B458AA.dita"><apiname>RFileBuf</apiname></xref>  </p> </entry>
+<entry><p>A stream buffer hosted by a file </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-4B0C731E-F9CB-4406-8DD4-C8C325B08257"><title>Typical uses</title> <p>A
+typical use of stores is to write files to memory without using the file server.
+This is a good thing to do when an application uses embedded documents. </p> </section>
+</conbody><related-links>
+<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
+Storage Overview</linktext></link>
+<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File Stores
+Overview</linktext></link>
+<link href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita"><linktext>Store Streams
+                Overview</linktext></link>
+<link href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita"><linktext>Streaming
+Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e76412_href.png has changed
Binary file Symbian3/SDK/Source/GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e83124_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e36608_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e42175_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e51756_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e57359_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e68090_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e69011_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e73223_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e74156_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3385079E-84F4-534F-B937-BD3A568D71BC" xml:lang="en"><title>Password
+Based Encryption (PBE) example code</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example covers: </p>
+<ul>
+<li id="GUID-79A33AFC-B814-586D-93BC-D152C08DC7FD"><p> <xref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita#GUID-3385079E-84F4-534F-B937-BD3A568D71BC/GUID-29272282-2325-55CD-B583-E9E50D344C14">Encrypting some data with a password and writing it to a file</xref>  </p> </li>
+<li id="GUID-72DFC0FF-5E9E-581E-9589-544E349413D1"><p> <xref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita#GUID-3385079E-84F4-534F-B937-BD3A568D71BC/GUID-432A4D99-0AD1-5E1E-8E09-ED47FFC0C353">Reading the data back from the file and decrypting it with the same password.</xref>  </p> </li>
+</ul>
+<p> <i>This example code is for reference only - it would be better to use:</i>  </p>
+<ul>
+<li id="GUID-450F0BEB-EA72-5A93-8722-CB10DF2DD0FC"><p> <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita">Secure
+stream example code</xref>  </p> </li>
+<li id="GUID-95E469DF-F6D4-5F1A-9A6F-A3759DC51308"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita">Secure
+store example code</xref>  </p> </li>
+</ul>
+<section id="GUID-29272282-2325-55CD-B583-E9E50D344C14"><title>Encrypting
+data with a password and writing it to a file</title> <ul>
+<li id="GUID-92C03164-30E8-5B3E-91FA-667D344DC8A6"><p> <xref href="GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C.dita">Supporting
+code for this example</xref>  </p> </li>
+</ul> <codeblock id="GUID-A2587573-A051-57DF-BC36-76585CB14F99" xml:space="preserve">
+void CPBEExample::WriteEncryptedDataL(const TDesC8&amp; aInput, const TDesC&amp; aFilename, const TDesC&amp; aPassword)
+         {
+         // Open a stream to the output file
+         RFileWriteStream writeStream;
+         User::LeaveIfError(writeStream.Replace(iFs, aFilename, EFileShareExclusive | EFileWrite));
+         CleanupClosePushL(writeStream);
+
+         // Create a CPBEncryptElement object, passing details of the encryption we
+         // are using and the user's password
+         CPBEncryptElement* encryption = CPBEncryptElement::NewLC(aPassword, ECipherDES_CBC);
+
+         // This is used to create a CPBEncryptor object
+         CPBEncryptor* encryptor = encryption-&gt;NewEncryptLC();
+
+         // Create a buffer of appropriate size to hold the ciphertext
+         HBufC8* ciphertextTemp = HBufC8::NewLC(encryptor-&gt;MaxFinalOutputLength(aInput.Length()));
+         TPtr8 ciphertext = ciphertextTemp-&gt;Des();         
+
+         // Encrypt the input data into the ciphertext buffer
+         encryptor-&gt;ProcessFinalL(aInput, ciphertext);
+
+         // Store encryption data.  This contains details of the encryption used (e.g.,
+         // cipher, key size) as well as things like the salt.  This must be stored
+         // along with the encrypted data, otherwise it is not possible to decrypt it
+         // again!
+         writeStream &lt;&lt; encryption-&gt;EncryptionData();
+
+         // Store the ciphertext
+         writeStream &lt;&lt; ciphertext;
+
+         // Commit the stream
+         writeStream.CommitL();
+
+         // Free memory (writeStream, encryption, encryptor, ciphertextTemp)
+         CleanupStack::PopAndDestroy(4, &amp;writeStream);
+         }
+            </codeblock> </section>
+<section id="GUID-432A4D99-0AD1-5E1E-8E09-ED47FFC0C353"><title>Reading data
+from a file and decrypting it</title> <ul>
+<li id="GUID-70128A46-1AAB-59E8-9F03-68885091D54B"><p> <xref href="GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C.dita">Supporting
+code for this example</xref>  </p> </li>
+</ul> <codeblock id="GUID-110E47B5-D63D-5041-ADC9-5A8DA1305712" xml:space="preserve">
+HBufC8* CPBEExample::ReadEncryptedDataLC(const TDesC&amp; aFilename, const TDesC&amp; aPassword)
+         {
+         // Open a stream to the input file
+         RFileReadStream readStream;
+         User::LeaveIfError(readStream.Open(iFs, aFilename, EFileRead));
+         CleanupClosePushL(readStream);
+
+         // Read the encryption data from the file
+         CPBEncryptionData* encryptionData = CPBEncryptionData::NewLC(readStream);
+         
+         // Recreate the CPBEncryptElement object, using the encryption data from the
+         // file and the user's password.  This will leave with KErrBadPassphrase if
+         // the password is wrong.
+         CPBEncryptElement* encryption = CPBEncryptElement::NewLC(*encryptionData, aPassword);
+
+         // This is used to create a CPBDecryptor object
+         CPBDecryptor* decryptor = encryption-&gt;NewDecryptLC();
+         
+         // Read the ciphertext
+         HBufC8* ciphertext = HBufC8::NewLC(readStream, KMaxTInt);
+
+         // Allocate a buffer for the plaintext (this will be returned to the caller)
+         HBufC8* plaintextBuf = HBufC8::NewLC(decryptor-&gt;MaxFinalOutputLength(ciphertext-&gt;Length()));
+         TPtr8 plaintext = plaintextBuf-&gt;Des();
+
+         // Decrypt the data
+         decryptor-&gt;ProcessFinalL(*ciphertext, plaintext);
+
+         // Free memory (readStream, encryptionData, encryption, decryptor, ciphertext, plaintext)
+         CleanupStack::Pop(plaintextBuf); // don't free this
+         CleanupStack::PopAndDestroy(5, &amp;readStream);
+         CleanupStack::PushL(plaintextBuf);
+
+         // Return plaintext to the caller
+         return plaintextBuf;
+         }
+        </codeblock> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,113 +1,113 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25" xml:lang="en"><title>Libxml2
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the libxml2 component which is a wrapper for the
-standard libxml2 C library. </p>
-<section id="GUID-F78E0EE2-A612-4AB4-9EBF-09B220780574"><title>Purpose</title> <p>The libxml2 component provides XML processing,
-parsing and validation APIs. You can call its C functions directly or use
-the C++ wrapper. </p> </section>
-<section id="GUID-B4508A67-D97E-4EEA-801A-0AB808B695C8"><title>Required background</title> <p>The libxml2 component is based
-on the standard <xref href="http://xmlsoft.org/" scope="external">libxml2</xref> library. </p> </section>
-<section id="GUID-4B29685C-200B-42F0-8DD1-C93242843C63"><title>Architecture</title> <p>The libxml2 component is the core
-of the XML collection. Two other components rely on it: the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
-Framework</xref> and the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML
-DOM Engine</xref>. </p> <fig id="GUID-4EE5466D-6370-5ED5-9BAA-838F5413AAE5">
-<title>              Package diagram for the libxml2 component            </title>
-<image href="GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429410_href.png" placement="inline"/>
-</fig> <p>The libxml2 sub-component provides direct access to the C API of
-the standard libxml2 library. </p> <p>The Utilities sub-component provides
-object-oriented access to the C functions: it also implements the resource
-management and error handling capabilities of the Symbian Platform. </p> <p>If
-your Symbian Platform build does not include the libxml2 component, the XML
-DOM Engine and the libxml2 SAX parser plug-in are automatically excluded. </p> </section>
-
-<section id="GUID-BB2FC62C-E8AB-42CF-BFC1-FC7CA5EDB9DC"><title>APIs</title> <p>The <xref href="GUID-321A32BB-75B1-38B4-A8F5-BF69D1F041FD.dita"><apiname>XMLEngPushL()</apiname></xref> function
-opens and initializes the libxml2 library parser. The <xref href="GUID-64E53D09-2F54-3188-A1D4-F541BDC40240.dita"><apiname>XMLEngPopAndClose()</apiname></xref> function
-closes the library parser and frees its resources. You must call the <xref href="GUID-321A32BB-75B1-38B4-A8F5-BF69D1F041FD.dita"><apiname>XMLEngPushL()</apiname></xref> function
-before any parsing and serialisation operations, and call the <xref href="GUID-64E53D09-2F54-3188-A1D4-F541BDC40240.dita"><apiname>XMLEngPopAndClose()</apiname></xref> function
-when these operations are completed. </p> <p>The following table lists the
-most relevant wrapper classes of the libxml2 library. High-level classes are
-in the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML DOM Engine</xref> component. </p> <table id="GUID-9A8FA78F-CF35-5897-AD8E-B35B7CFF63D9">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-1DA29392-2F71-36CA-865F-B6616E1506F8.dita"><apiname>xmlGlobalState</apiname></xref>  </p> </entry>
-<entry><p>Global data providing access to most of the libxml2 library: settings,
-function pointers, and so on. Available through TLS </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-2B22200A-55E0-3428-94FE-332224003D68.dita"><apiname>TXmlEngString</apiname></xref>  </p> </entry>
-<entry><p>General-purpose string: pointer-sized object containing a zero-terminated
-UTF-8 string. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-E0D0625F-C100-3B83-A385-D3702D5AD434.dita"><apiname>TXmlEngConstString</apiname></xref>  </p> </entry>
-<entry><p>Read-only version of <codeph>TXmlEngString</codeph>. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following table lists the most relevant C structures of the
-libxml2 library. </p> <table id="GUID-3AE5C214-E832-5331-9243-534265A5DF9F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-5257133A-35CC-3D8D-B56C-E865B45A95D2.dita"><apiname>_xmlDoc</apiname></xref>  </p> </entry>
-<entry><p>Document. Provides access to the tree of nodes. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-870927E4-4D27-3A49-9672-8C336D8817C3.dita"><apiname>_xmlNode</apiname></xref>  </p> </entry>
-<entry><p>Node. Provides access to its children and chain of attributes. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-204C12B5-8D50-3BBB-8CFC-20036F3AB787.dita"><apiname>_xmlAttribute</apiname></xref>  </p> </entry>
-<entry><p>Attribute. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-354C802A-33D5-3E3B-9FAE-C0CD8CE6329C.dita"><apiname>_xmlElement</apiname></xref>  </p> </entry>
-<entry><p>Element. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3A2A7AE7-C1FF-3534-9319-400D3B57EC85.dita#GUID-3A2A7AE7-C1FF-3534-9319-400D3B57EC85/GUID-59610388-E6CA-3A12-8403-63D12A2D741B"><apiname>xmlAttributeType::_xmlElementContent</apiname></xref>  </p> </entry>
-<entry><p>Container for the contents of an element. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-5CF7019B-3D9B-369E-B81C-72D2D2DD1375.dita"><apiname>_xmlSchema</apiname></xref> and <xref href="GUID-2AA3571C-0A78-3C42-8FA2-219E642C2218.dita"><apiname>_xmlDtd</apiname></xref>  </p> </entry>
-<entry><p>Validation trees. These structures have no C++ wrappers. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-50CFFAE0-5B6D-342D-B372-642055EF7367.dita"><apiname>_xmlXPathParserContext</apiname></xref>  </p> </entry>
-<entry><p>XPath evaluation context. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-C302F9A6-7E2C-4CC3-991D-F653C4877C56"><title>Typical uses</title> <p>When porting existing software, use
-the C functions of the standard libxml2 library and refer to the <xref href="http://xmlsoft.org/html/index.html" scope="external">libxml2 Reference Manual</xref> for more information. </p> <p>To
-take advantage of the standard types and exception handling provided by the
-Symbian Platform, use the C++ APIs. </p> </section>
-</conbody><related-links>
-<link href="GUID-77ECD89F-84BB-55F1-9876-382E043F0C0D.dita"><linktext>XML DOM Engine
-error handling</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25" xml:lang="en"><title>Libxml2
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the libxml2 component which is a wrapper for the
+standard libxml2 C library. </p>
+<section id="GUID-F78E0EE2-A612-4AB4-9EBF-09B220780574"><title>Purpose</title> <p>The libxml2 component provides XML processing,
+parsing and validation APIs. You can call its C functions directly or use
+the C++ wrapper. </p> </section>
+<section id="GUID-B4508A67-D97E-4EEA-801A-0AB808B695C8"><title>Required background</title> <p>The libxml2 component is based
+on the standard <xref href="http://xmlsoft.org/" scope="external">libxml2</xref> library. </p> </section>
+<section id="GUID-4B29685C-200B-42F0-8DD1-C93242843C63"><title>Architecture</title> <p>The libxml2 component is the core
+of the XML collection. Two other components rely on it: the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
+Framework</xref> and the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML
+DOM Engine</xref>. </p> <fig id="GUID-4EE5466D-6370-5ED5-9BAA-838F5413AAE5">
+<title>              Package diagram for the libxml2 component            </title>
+<image href="GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429248_href.png" placement="inline"/>
+</fig> <p>The libxml2 sub-component provides direct access to the C API of
+the standard libxml2 library. </p> <p>The Utilities sub-component provides
+object-oriented access to the C functions: it also implements the resource
+management and error handling capabilities of the Symbian Platform. </p> <p>If
+your Symbian Platform build does not include the libxml2 component, the XML
+DOM Engine and the libxml2 SAX parser plug-in are automatically excluded. </p> </section>
+
+<section id="GUID-BB2FC62C-E8AB-42CF-BFC1-FC7CA5EDB9DC"><title>APIs</title> <p>The <xref href="GUID-321A32BB-75B1-38B4-A8F5-BF69D1F041FD.dita"><apiname>XMLEngPushL()</apiname></xref> function
+opens and initializes the libxml2 library parser. The <xref href="GUID-64E53D09-2F54-3188-A1D4-F541BDC40240.dita"><apiname>XMLEngPopAndClose()</apiname></xref> function
+closes the library parser and frees its resources. You must call the <xref href="GUID-321A32BB-75B1-38B4-A8F5-BF69D1F041FD.dita"><apiname>XMLEngPushL()</apiname></xref> function
+before any parsing and serialisation operations, and call the <xref href="GUID-64E53D09-2F54-3188-A1D4-F541BDC40240.dita"><apiname>XMLEngPopAndClose()</apiname></xref> function
+when these operations are completed. </p> <p>The following table lists the
+most relevant wrapper classes of the libxml2 library. High-level classes are
+in the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML DOM Engine</xref> component. </p> <table id="GUID-9A8FA78F-CF35-5897-AD8E-B35B7CFF63D9">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-1DA29392-2F71-36CA-865F-B6616E1506F8.dita"><apiname>xmlGlobalState</apiname></xref>  </p> </entry>
+<entry><p>Global data providing access to most of the libxml2 library: settings,
+function pointers, and so on. Available through TLS </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-2B22200A-55E0-3428-94FE-332224003D68.dita"><apiname>TXmlEngString</apiname></xref>  </p> </entry>
+<entry><p>General-purpose string: pointer-sized object containing a zero-terminated
+UTF-8 string. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-E0D0625F-C100-3B83-A385-D3702D5AD434.dita"><apiname>TXmlEngConstString</apiname></xref>  </p> </entry>
+<entry><p>Read-only version of <codeph>TXmlEngString</codeph>. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following table lists the most relevant C structures of the
+libxml2 library. </p> <table id="GUID-3AE5C214-E832-5331-9243-534265A5DF9F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-5257133A-35CC-3D8D-B56C-E865B45A95D2.dita"><apiname>_xmlDoc</apiname></xref>  </p> </entry>
+<entry><p>Document. Provides access to the tree of nodes. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-870927E4-4D27-3A49-9672-8C336D8817C3.dita"><apiname>_xmlNode</apiname></xref>  </p> </entry>
+<entry><p>Node. Provides access to its children and chain of attributes. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-204C12B5-8D50-3BBB-8CFC-20036F3AB787.dita"><apiname>_xmlAttribute</apiname></xref>  </p> </entry>
+<entry><p>Attribute. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-354C802A-33D5-3E3B-9FAE-C0CD8CE6329C.dita"><apiname>_xmlElement</apiname></xref>  </p> </entry>
+<entry><p>Element. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3A2A7AE7-C1FF-3534-9319-400D3B57EC85.dita#GUID-3A2A7AE7-C1FF-3534-9319-400D3B57EC85/GUID-59610388-E6CA-3A12-8403-63D12A2D741B"><apiname>xmlAttributeType::_xmlElementContent</apiname></xref>  </p> </entry>
+<entry><p>Container for the contents of an element. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-5CF7019B-3D9B-369E-B81C-72D2D2DD1375.dita"><apiname>_xmlSchema</apiname></xref> and <xref href="GUID-2AA3571C-0A78-3C42-8FA2-219E642C2218.dita"><apiname>_xmlDtd</apiname></xref>  </p> </entry>
+<entry><p>Validation trees. These structures have no C++ wrappers. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-50CFFAE0-5B6D-342D-B372-642055EF7367.dita"><apiname>_xmlXPathParserContext</apiname></xref>  </p> </entry>
+<entry><p>XPath evaluation context. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-C302F9A6-7E2C-4CC3-991D-F653C4877C56"><title>Typical uses</title> <p>When porting existing software, use
+the C functions of the standard libxml2 library and refer to the <xref href="http://xmlsoft.org/html/index.html" scope="external">libxml2 Reference Manual</xref> for more information. </p> <p>To
+take advantage of the standard types and exception handling provided by the
+Symbian Platform, use the C++ APIs. </p> </section>
+</conbody><related-links>
+<link href="GUID-77ECD89F-84BB-55F1-9876-382E043F0C0D.dita"><linktext>XML DOM Engine
+error handling</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-33D93E96-98A9-4116-9028-3241D76A1036" xml:lang="en"><title>Enabling
-additional touch events for your application</title><shortdesc>The Symbian platform provides additional touch events to enable
-drag events using <parmname>CCoeControl::EnableDragEvents()</parmname>and
-to specify screen areas for touch events.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>By default, the Symbian platform sends only <parmname>EButton1Up</parmname> and <parmname>EButton1Down</parmname> touch
-events to applications.</p>
-<p>If you want to enable <parmname>EDrag</parmname> touch events, implement <parmname>CCoeControl::EnableDragEvents()</parmname> in
-your container class.</p>
-<p>When the mobile device user drags the stylus on the screen, <codeph>TPointerEvent::EDrag()</codeph> events
-are sent. When dragging stops, the application receives the event <codeph>TPointerEvent::EButton1Up()</codeph>.</p>
-<codeblock xml:space="preserve">void CTableauControl::ConstructL( const TRect&amp; aRect )
-    {
-    // This is parent window
-    CreateWindowL();
-
-    EnableDragEvents();
-
-    //SetRect( aRect );
-    SetExtentToWholeScreen();
-    
-    
-    // Initialize component array
-    InitComponentArrayL();
-    
-    
-	 //Implement your own logic here
-  	 ActivateL();
-    }</codeblock>
-<p>It is enough that the container control set <codeph>EnableDragEvents()</codeph> in
-its construction. <codeph>EnableDragEvents()</codeph> need not be set again
-for the child controls to receive dragging events.</p>
-<section id="GUID-7B30F0D5-1EAE-4F40-B04F-6A3953BCC634"><title>Controlling
-which control receives a touch event</title><p>Particularly when you are receiving
-drag events it may be that an object in the window may be drawn by one control,
-while the pointer is over another control. In cases where you want to ensure
-that pointer events are received by the intended control, implement <parmname>CCoeControl::SetPointerCapture()</parmname>.</p><p>When
-a control receives a <parmname>TPointerEvent::EButton1Down()</parmname> event,
-all events will be sent to this control until the next <parmname>TPointerEvent::EButton1Up()</parmname> event.
-If you want to have events to be sent to another control before the <parmname>TPointerEvent::EButton1Up()</parmname> event,
-call <codeph>SetPointerCapture(ETrue)</codeph> from the new control. </p><p>When
-the new control has received its pointer event and <parmname>TPointerEvent::EButton1Up()</parmname> has
-been received, you have to call <codeph>SetPointerCapture(EFalse)</codeph> from
-the new control to stop events being sent to it indefinitely.</p></section>
-<section id="GUID-8C337F8B-346A-430A-9A7A-A48B53031421"><title>Specifying
-screen areas for touch events</title><p>To specify screen areas (<codeph>TRect</codeph>)
-for touch events, see the example below.</p><codeblock xml:space="preserve">void CTableauControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    // Does the user point exit text on screen? 
-    // iExitRect is rectangle of the text area on screen.
-    if (iExitRect.Contains(aPointerEvent.iPosition))
-        {
-        if (iEikonEnv-&gt;QueryWinL(_L("Klondike"),_L("Exit?")))
-            {
-            // Exit was pointed, then do exit   
-            (static_cast&lt;CKlondikeAppUi*&gt;(iEikonEnv-&gt;AppUi()))-&gt;HandleCommandL(EEikCmdExit);
-            return;
-            }
-        }
-    ...
-    }</codeblock></section>
-<section id="GUID-8B12AF1C-A98A-416D-A586-807CFC2B839D"><title>Ignoring events
-other than pointer up in your control</title><p>In cases where you want to
-make sure your control receives only touch <parmname>EButton1Up</parmname> events
-after receiving a touch <parmname>EButton1Down</parmname> event, implement <parmname>CCoeControl::IgnoreEventsUntilNextPointerUp()</parmname>. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-33D93E96-98A9-4116-9028-3241D76A1036" xml:lang="en"><title>Enabling additional touch events for your application</title><shortdesc>The Symbian platform provides additional touch events to
+enable drag events and to specify screen areas for touch events.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>By default, the Symbian platform sends only <parmname>EButton1Up</parmname> and <parmname>EButton1Down</parmname> touch events to applications.</p>
+<p>If you want to enable <parmname>EDrag</parmname> touch events,
+implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-66B1D0C0-BFBB-36DB-BCC2-5563895251D5"><apiname>CCoeControl::EnableDragEvents()</apiname></xref> in your
+container class.</p>
+<p>When the mobile device user drags the stylus on the screen, <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-5375D595-CF6A-38F6-9D62-E8DDF2D2BCF6"><apiname>TPointerEvent::EDrag()</apiname></xref> events are sent. When dragging stops,
+the application receives the event <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-5BADE607-E845-34B2-9C2D-B6882B7D4288"><apiname>TPointerEvent::EButton1Up()</apiname></xref>.</p>
+<codeblock xml:space="preserve">void CTableauControl::ConstructL( const TRect&amp; aRect )
+    {
+    // This is parent window
+    CreateWindowL();
+
+    EnableDragEvents();
+
+    SetRect( aRect );
+    SetExtentToWholeScreen();
+    
+    
+    // Initialize component array
+    InitComponentArrayL();
+    
+    
+	 //Implement your own logic here
+  	 ActivateL();
+    }</codeblock>
+<p>It is enough that the container control set <codeph>EnableDragEvents()</codeph> in its construction. <codeph>EnableDragEvents()</codeph> need not
+be set again for the child controls to receive dragging events.</p>
+<section id="GUID-7B30F0D5-1EAE-4F40-B04F-6A3953BCC634"><title>Controlling
+which control receives a touch event</title><p>Particularly when you
+are receiving drag events it may be that an object in the window may
+be drawn by one control, while the pointer is over another control.
+In cases where you want to ensure that pointer events are received
+by the intended control, implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-172FDC09-7870-3FD0-9252-340178C58C28"><apiname>CCoeControl::SetPointerCapture()</apiname></xref>.</p><p>When a control receives a <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-26CE2524-04BC-3592-A7E5-7EEC792A466E"><apiname>TPointerEvent::EButton1Down()</apiname></xref> event, all events will be sent to this control until the next <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-5BADE607-E845-34B2-9C2D-B6882B7D4288"><apiname>TPointerEvent::EButton1Up()</apiname></xref> event. If you want to have
+events to be sent to another control before the<xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-5BADE607-E845-34B2-9C2D-B6882B7D4288"><apiname>TPointerEvent::EButton1Up()</apiname></xref> event, call <codeph>SetPointerCapture(ETrue)</codeph> from the new
+control. </p><p>When the new control has received its pointer event
+and <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-5BADE607-E845-34B2-9C2D-B6882B7D4288"><apiname>TPointerEvent::EButton1Up()</apiname></xref> has been received,
+you have to call <codeph>SetPointerCapture(EFalse)</codeph> from the
+new control to stop events being sent to it indefinitely.</p></section>
+<section id="GUID-8C337F8B-346A-430A-9A7A-A48B53031421"><title>Specifying
+screen areas for touch events</title><p>To specify screen areas (<codeph>TRect</codeph>) for touch events, see the example below.</p><codeblock xml:space="preserve">void CTableauControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
+    {
+    // Does the user point exit text on screen? 
+    // iExitRect is rectangle of the text area on screen.
+    if (iExitRect.Contains(aPointerEvent.iPosition))
+        {
+        if (iEikonEnv-&gt;QueryWinL(_L("Klondike"),_L("Exit?")))
+            {
+            // Exit was pointed, then do exit   
+            (static_cast&lt;CKlondikeAppUi*&gt;(iEikonEnv-&gt;AppUi()))-&gt;HandleCommandL(EEikCmdExit);
+            return;
+            }
+        }
+    ...
+    }</codeblock></section>
+<section id="GUID-8B12AF1C-A98A-416D-A586-807CFC2B839D"><title>Ignoring
+events other than pointer up in your control</title><p>In cases where
+you want to make sure your control receives only touch <parmname>EButton1Up</parmname> events after receiving a touch <parmname>EButton1Down</parmname> event, implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-885AF2EB-587A-323B-99B5-019B2E7EBC78"><apiname>CCoeControl::IgnoreEventsUntilNextPointerUp()</apiname></xref>. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-341CE215-056C-45B6-ABE2-C75442605147_d0e62833_href.png has changed
Binary file Symbian3/SDK/Source/GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e131819_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e138353_href.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7" xml:lang="en"><title>Additional
+Connection Preferences</title><shortdesc>Extended Connection Preferences API allows applications to set
+a few additional preferences that customize the connection establishment.
+These preferences, when used with specific SNAP ID, SNAP Type , IAP or connection
+selection dialog enable the applications to have more control on the connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-9A074511-667D-43E5-80D8-3FDAE3321E09"><p>The additional
+connection preferences that can be set using the Extended Connection
+Preferences API are listed below. One or more of the preferences can be set
+based on connection establishment requirements. For more details on the restrictions
+regarding the preferences that can be used jointly, refer <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita"><apiname> TExtendedConnPref </apiname></xref> .</p></context>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-4-1-1-5-1-1-7-1-3-2">
+<step id="GUID-81D0BBB7-82EA-46B5-98A6-1BD426777AA5"><cmd><b>Define Bearer
+Filtering</b></cmd>
+<info><p>Extended Connection Preferences API allows the application to limit
+the used bearers.</p><p>In the below example, only WLAN bearer is allowed.</p><codeblock xml:space="preserve">preferences.SetBearerSet( TExtendedConnPref::EExtendedConnBearerWLAN );
+</codeblock></info>
+</step>
+<step id="GUID-E819B95A-90D2-4E80-89B5-3A3EAF1BCBDB"><cmd><b>Disallow Automatic
+Bearer Switching</b></cmd>
+<info><p>The established connection can be broken by the middleware when a
+better connection is available. For example, when a known WLAN IAP is available,
+the established 3G connection is disconnected. This is also known as Forced
+Roaming. Forced Roaming is enabled by default.</p><p> The sudden disconnection
+can be disabled by the applications prior to connection establishment. </p><codeblock xml:space="preserve">preferences.SetForcedRoaming( EFalse );</codeblock><p>Forced
+roaming applies only on connections made to the Internet SNAP.</p></info>
+</step>
+<step id="GUID-85E14D5A-4F68-49E9-9DBB-1E52EFA09289"><cmd><b>Inform middleware
+that application handles contention</b> </cmd>
+<info><p>When there are multiple active connections and there is a requirement
+for a new connection , the list of active connections are displayed and the
+user selects the connection to be disconnected. This accommodates the new
+connection request to be processed. </p><p>If the Disconnect dialog is disabled,
+the contention situation is not exposed to the user and the application handles
+ the contention by itself.</p><codeblock xml:space="preserve">preferences.SetDisconnectDialog( EFalse );</codeblock></info>
+</step>
+<step id="GUID-0C8D3720-047B-4449-9645-6788ED6E0BE8"><cmd><b>Disable connecting
+soft notes and Queries</b></cmd>
+<info><p>During connection establishment , pop-ups(soft notes) indicate the
+state of the connection providing visibility and cost awareness to the user.
+The application can disable these soft notes using the Extended Connection
+Preferences API. </p><p>The application can start a connection and roam between
+different bearers without any notes about connection state shown to the user.</p><codeblock xml:space="preserve">preferences.SetNoteBehaviour( TExtendedConnPref::ENoteBehaviourConnDisableNotes );</codeblock><p>The application can start a connection and roam between different bearers
+without displaying any queries to the user but inform the user on the events
+with dialogs or notes. The user is able to see the notes about connection
+state. Queries that need user confirmation are not exposed to the user.</p><codeblock xml:space="preserve">preferences.SetNoteBehaviour( TExtendedConnPref::ENoteBehaviourConnDisableQueries ); 
+</codeblock><p>The application can start a connection and roam between different
+bearers without any queries, dialogs or notes. The connection state details
+are not exposed to the user.</p><codeblock xml:space="preserve">preferences.SetNoteBehaviour( TExtendedConnPref::ENoteBehaviourConnSilent );</codeblock></info>
+</step>
+</steps-unordered>
+</taskbody></task>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-34BEF44B-EFBE-41EB-941D-0410FCB6782E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-34BEF44B-EFBE-41EB-941D-0410FCB6782E" xml:lang="en"><title>Extended
+Connection Preferences</title><shortdesc>The Extended Connection Preferences API provides customized control
+over the connection establishment process followed by the applications.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section>    <title>Purpose</title>       <p> The Extended Connection Preferences
+API is used to control and customize the connection establishment behavior
+of applications. The API handles applications with special needs in connectivity
+accordingly. For example, connection to a specific SNAP or connection
+to a specific IAP so on. Many applications do not need a customized connection
+establishment process and hence, usage of this API is not needed by majority
+of applications.</p>     </section>
+<section><title>Required Background</title><p>The extended connection preferences
+are passed to <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-21FFAEE0-EEE9-3DEC-8C74-724906DC55D6"><apiname>RConnection::Start() function </apiname></xref> as part of <xref href="GUID-F306C194-1B5E-35E2-AA36-E1AD797CC26F.dita"><apiname>TConnPrefList</apiname></xref> object. </p><p>The
+user of the API should link against extendedconnpref.lib and  netmeta.lib
+and include the header file, <filepath>extendedconnpref.h.</filepath> </p></section>
+<section><title>API Summary</title><p> The API defines extended connection
+preferences as  a set of parameters. The class that handles the preference
+parameters is described below:</p><table id="GUID-6858178D-3090-4451-A8E5-828F0763A920">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+<row>
+<entry> <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita"><apiname>TExtendedConnPref</apiname></xref></entry>
+<entry><p>Is derived from <xref href="GUID-3C859C5B-951E-3CE7-95F9-C2F246FC6DC3.dita"><apiname>SMetaDataECom</apiname></xref> and defines the
+functions that set the preferences for a customized connection.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section><title>Architectural Relationships</title><fig id="GUID-D55FA7FA-A914-483B-80E4-FCA159B24648">
+<title>Class Relationships for TExtendedConnPref</title>
+<image href="GUID-21F0EE0E-6CC6-44E7-9FED-FB8911E3C3A2_d0e211670_href.jpg" placement="inline"/>
+</fig></section>
+<section><title>Typical Uses</title><p> The API provides the following key
+services: </p><ul>
+<li><p>Open a connection to a specific Service Network Access Point (SNAP)
+(By specifying Type)</p></li>
+<li><p>Open a connection to a specific SNAP (By specifying the SNAP ID)</p></li>
+<li><p>Open a connection to a specific Internet Access Point (IAP) </p></li>
+<li><p>Open a connection by querying the connection method from the user</p></li>
+<li><p>Open a connection without the discreet pop-ups</p></li>
+<li><p>Open a connection without any queries </p></li>
+<li><p>Disallow automatic switch to Wireless Local Area Network (WLAN) </p></li>
+<li><p>Bearer filtering </p></li>
+<li><p>Inform middleware that application handles contention </p></li>
+</ul></section>
+<section><title>See also</title> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED" xml:lang="en"><title>Window
-owning and non-window owning controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A403D2F8-7ED3-4DE6-92E8-4B16CC646CA6"><title>Window-owning
-controls</title>
-<p>Window-owning controls have the same size and position as a window in
-the display. Each window has a one-to-one relationship with the control that
-covers it, and shares its behavior with that control.</p>
-<p>Examples of window-owning controls include:</p>
-<ul>
-<li><p>top-level control in <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
-Symbian platform architecture</xref></p></li>
-<li><p>the sub-panes in the status pane</p></li>
-<li><p>pop-up windows, when a sense of layering is required</p>
-</li>
-</ul>
-<p>The following code snippet is an example of the second phase construction
-of a window-owning control:</p>
-<codeblock id="GUID-234E4AC3-2FC8-4AD9-8B72-0FBA478E1D5A" xml:space="preserve">CMyControl::ConstructL()
-    {
-    CreateWindowL();    // This makes the control window- 
-                        // owning
-    SetRectL(ClientRect()); // This sets the control’s 
-                            // size
-    ActivateL();        // This must be called before
-                        // the control can be drawn
-    }
-</codeblock>
-<p><parmname>CEikAppUi::ClientRect()</parmname> returns the screen area
-available to the application for drawing. This typically does not include
-the space that is reserved for the status/control panes.</p>
-<p>For more information, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref></p>
-</section>
-<section id="GUID-13D754E5-EBCF-4058-B3B3-05505289953B"><title>Non-window-owning
-controls</title>
-<p>Non-window-owning controls typically cover only part of a window on
-the display, and must be contained in window-owning controls. They are faster
-and require fewer resources than window-owning controls.</p>
-<p>Examples of non-window-owning controls include:</p>
-<ul>
-<li><p>command buttons</p></li>
-<li><p>edit windows</p></li>
-<li><p>labels</p></li>
-</ul>
-<p>Non-window-owning controls are assigned to window-owning controls by
-calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-A39BAD7E-BAF2-3A4B-BE4F-2A86718EB190"><apiname>CCoeControl::SetContainerWindowL()</apiname></xref> when the control
-is constructed.</p>
-<p>For more information, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref></p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED" xml:lang="en"><title>Window
+owning and non-window owning controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A403D2F8-7ED3-4DE6-92E8-4B16CC646CA6"><title>Window-owning
+controls</title>
+<p>Window-owning controls have the same size and position as a window in
+the display. Each window has a one-to-one relationship with the control that
+covers it, and shares its behavior with that control.</p>
+<p>Examples of window-owning controls include:</p>
+<ul>
+<li><p>top-level control in <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
+Symbian platform architecture</xref></p></li>
+<li><p>the sub-panes in the status pane</p></li>
+<li><p>pop-up windows, when a sense of layering is required</p>
+</li>
+</ul>
+<p>The following code snippet is an example of the second phase construction
+of a window-owning control:</p>
+<codeblock id="GUID-234E4AC3-2FC8-4AD9-8B72-0FBA478E1D5A" xml:space="preserve">CMyControl::ConstructL()
+    {
+    CreateWindowL();    // This makes the control window- 
+                        // owning
+    SetRectL(ClientRect()); // This sets the control’s 
+                            // size
+    ActivateL();        // This must be called before
+                        // the control can be drawn
+    }
+</codeblock>
+<p><parmname>CEikAppUi::ClientRect()</parmname> returns the screen area
+available to the application for drawing. This typically does not include
+the space that is reserved for the status/control panes.</p>
+<p>For more information, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref></p>
+</section>
+<section id="GUID-13D754E5-EBCF-4058-B3B3-05505289953B"><title>Non-window-owning
+controls</title>
+<p>Non-window-owning controls typically cover only part of a window on
+the display, and must be contained in window-owning controls. They are faster
+and require fewer resources than window-owning controls.</p>
+<p>Examples of non-window-owning controls include:</p>
+<ul>
+<li><p>command buttons</p></li>
+<li><p>edit windows</p></li>
+<li><p>labels</p></li>
+</ul>
+<p>Non-window-owning controls are assigned to window-owning controls by
+calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-A39BAD7E-BAF2-3A4B-BE4F-2A86718EB190"><apiname>CCoeControl::SetContainerWindowL()</apiname></xref> when the control
+is constructed.</p>
+<p>For more information, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref></p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e315024_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3542A39C-8D0F-53A0-A5A2-81F381D3BA7B_d0e321418_href.png has changed
Binary file Symbian3/SDK/Source/GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e192564_href.png has changed
Binary file Symbian3/SDK/Source/GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e197572_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e254247_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e257954_href.png has changed
Binary file Symbian3/SDK/Source/GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e7042_href.png has changed
Binary file Symbian3/SDK/Source/GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e8317_href.png has changed
Binary file Symbian3/SDK/Source/GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e3705_href.png has changed
Binary file Symbian3/SDK/Source/GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e4980_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0" xml:lang="en"><title>Asymmetric
+ciphers -- guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-7D18EC96-7474-5AA8-873A-475B07CCB9C4"><p><xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita#GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0/GUID-0A5993D6-54CC-53AB-ACB5-EB0BA535B83B">What is asymmetric cryptography?</xref> </p> </li>
+<li id="GUID-3F8B68B8-63A3-5D8E-9376-05105EE27E26"><p><xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita#GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0/GUID-D495DA72-27D6-53B1-846E-B8CE4736433C">Types of asymmetric algorithms supported</xref> </p> </li>
+<li id="GUID-CCC7DAF4-1A46-59FB-82EE-B4F2BF19AACE"><p><xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita#GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0/GUID-3BBF7DAE-BBF0-52B7-83D0-9D85D2296D40">Base classes and their derived classes</xref> </p> </li>
+</ul>
+<section id="GUID-0A5993D6-54CC-53AB-ACB5-EB0BA535B83B"><title>What is asymmetric
+cryptography?</title> <p>Asymmetric ciphers, unlike symmetric ciphers, are
+algorithms that involve the use of two keys: a private key and a public key.
+The private key is kept secret, while the public key is made publicly available.
+For schemes which are thought to be secure, it is believed that deriving the
+private key from the public key, or any transformation resulting from the
+public key, is computationally infeasible. </p><p>This type of algorithm generates
+the keys as key pairs. This means that if one key in the pair is used to encrypt
+some data, only the other key can decrypt it, and vice versa. </p> <fig id="GUID-B943398C-3D1A-5400-8D6B-0B5CFAA91426">
+<title>The diagram above shows the encryption and decryption process using:
+an asymmetric algorithm; a plaintext message, M; a private key, K1, and a
+public key, K2 (or vice versa); and the ciphertext, K1(M).            </title>
+<image href="GUID-B172B71E-10DE-5AC6-9F10-A7EC74CE0B7F_d0e382778_href.png" placement="inline"/>
+</fig> <p>Although it varies depending on the specific algorithm, the generation
+of asymmetric keys is much slower than symmetric key generation. </p> <p>There
+are four basic primitives in asymmetric cryptography: encryption and decryption,
+and signing and verification. </p> <p id="GUID-7120B4FA-46C6-5856-AF46-942D959AD34B"><b>Encryption
+schemes</b> </p> <p>In order to encrypt a message with an asymmetric scheme,
+one performs a well-known transformation on the message using the public key
+of the intended recipient. Upon receipt, the receiver can decrypt this message
+using the inverse transformation and the associated private key. Provided
+that only the intended recipient knows the associated private key, it is believed
+that message secrecy between the sender and receiver is achieved. </p> <p id="GUID-3C282457-ED91-5B01-AF81-731D6AEABBF8"><b>Signature schemes</b> </p> <p>Conversely,
+in order to digitally sign a message with an asymmetric scheme, one performs
+another well-known transformation on the message using one's own private key.
+Both the original message and the resulting transformation are sent to the
+intended recipient. Upon receipt, the receiver can verify that the message
+was signed by the associated private key by performing the inverse operation
+with the public key as input, and then comparing the received message with
+the message obtained from the transformation of the signature. </p> </section>
+<section id="GUID-D495DA72-27D6-53B1-846E-B8CE4736433C"><title>Types of asymmetric
+algorithms supported</title> <p>The following asymmetric algorithms are supported: </p> <table id="GUID-8C498BD0-8D70-5024-9329-61AD4927E37C">
+<tgroup cols="3"><colspec colname="col0" colwidth="0.65*"/><colspec colname="col1" colwidth="0.79*"/><colspec colname="col2" colwidth="1.56*"/>
+<thead>
+<row>
+<entry><p>Asymmetric algorithm</p></entry>
+<entry><p>What it's used for</p></entry>
+<entry><p>Specified in:</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>RSA </p> </entry>
+<entry><p>both encryption and digital signatures </p> </entry>
+<entry><p> <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2125" scope="external">PKCS#1</xref> v1.5 </p> </entry>
+</row>
+<row>
+<entry><p>DSA (Digital Signature Algorithm) </p> </entry>
+<entry><p>signing data </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf" scope="external">FIPS 186-2</xref> CR1 </p> </entry>
+</row>
+<row>
+<entry><p>DH (Diffie-Hellman) </p> </entry>
+<entry><p>secure exchange of keys between two parties </p> </entry>
+<entry><p> <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2126" scope="external">PKCS#3</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-12ED48AC-AB99-5C0D-B035-9F86AA99055A"><b>RSA</b> </p> <p>The
+Cryptography library allows support for RSA as specified in <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2125" scope="external">PKCS#1</xref> v1.5. The library does not, in and of itself,
+fulfil all the requirements of PKCS#1 v1.5. This is because the Cryptography
+library’s modular design allows applications utilizing it to provide their
+own mechanisms of certain operations. At minimum, signature input data (be
+prepared in compliance with PKCS#1 v1.5) must be provided by applications
+in order to support PKCS#1 v1.5. </p> <ul>
+<li><p><b>Private Key Encryption and Decryption</b> </p><p>RSA private keys
+provide functionality for encrypting and decrypting data with the private
+key. Encrypting with the private key is typically used in signature generation
+while decrypting would be used for key exchange or confidentiality of other
+small amounts of data. </p><p>The basic mathematics involved in the encryption
+and decryption is identical, the differences lay with the handling of padding;
+encryption adds padding while decryption removes and checks it. </p></li>
+<li><p><b>Padding </b></p><p>For padding the existing PKCS#1 padding mechanism
+is used. However, this interface allows the use of any defined padding mechanism. </p></li>
+<li><p><b>Key Generation </b> </p><p>Before any private keys can be used they
+need to be generated. They can be generated on the device or generated elsewhere. </p> <p>An
+RSA modulus takes the form of the product of a pair of large prime numbers,
+which will be generated randomly and considered prime if they pass a probabilistic
+primality test (where the chance of claiming a non-prime is prime is less
+than 1 in 2<sup>30</sup>). This generation process can be rather long-winded,
+even for relatively small keys. </p> <p>While there is no actually limit on
+RSA modulus sizes, for most applications they range from 512 bits to 4096
+bits. </p></li>
+</ul> <p id="GUID-488F5006-B5CE-5D3C-8A6A-20F7BFCA3E92"><b>DSA</b> </p> <p>The
+Cryptography library allows support for NIST Digital Signature Standard (DSS)
+as specified in <xref href="http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf" scope="external">FIPS 186-2</xref> change request 1. The standard specifies
+DSA as the algorithm for digital signatures and SHA-1 for hashing. At minimum,
+the following items must be provided by applications using the library in
+order to be fully compliant: </p> <ul>
+<li id="GUID-1ABDBEDC-705D-57AC-85A1-C37E3C34FCC7"><p>Signature input data
+must be hashed with SHA-1 as specified in <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS 180-1</xref>. </p> <p> <i>or should it be</i>  </p> <p>Signature
+input data must be hashed with SHA-1 as specified in <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf" scope="external">FIPS 180-2</xref>. </p> </li>
+<li id="GUID-FEC46D5F-0CC7-53F5-9C56-561424AABE2B"><p>A FIPS-186-2 CR 1 compliant
+random number generator must be supplied. The library provides a mechanism
+for using such a random number generator if required. </p> </li>
+<li id="GUID-BEB5CC2B-F25D-5959-A0BA-C0A2EF05EB8A"><p>For backwards compatibility
+reasons, the Cryptography library continues to allow prime moduli of less
+than 1024 bits to be used. If an application wanted to be fully compliant
+with the FIPS 186-2 CR1, it should refuse to submit requests to the Cryptography
+library to sign data with a prime modulus of less than 1024 bits. </p> </li>
+</ul> <p>The following are some important features of DSA:</p><ul>
+<li><p><b>Key Generation</b></p><p>DSA keys have an associated set of parameters,
+these parameters are generally public and used across a community of users.
+If some parameters are supplied the key generation will use those parameters
+or it will generate a set if there are none supplied. </p></li>
+<li><p><b>Parameter Generation</b></p><p>Parameter generation for DSA keys
+is implemented as specified in FIPS-186. </p></li>
+</ul> <p><b>Diffie-Hellman (DH)</b></p><p>The Cryptography library
+supports Diffie-Hellman as specified in <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2126" scope="external">PKCS#3</xref>. Note that due to security concerns and a serious
+lack of interoperable implementations, the library does not support DH parameter
+generation. It is up to the application using the DH implementation to ensure
+that they trust the source of the parameters they intend to use for a DH key
+exchange. </p></section>
+<section id="GUID-3BBF7DAE-BBF0-52B7-83D0-9D85D2296D40"><title>Base classes
+and their derived classes </title> <p>The asymmetric cipher API is used by
+the certman (certitificate management) component for WTLS and X.509 certificate
+support and by appinst for SIS file signature verification. It is also used
+by Networking (TLS/IPSec). </p> <p> <xref href="GUID-BFC47C18-2046-3B2C-8A22-74E0D4E59BFB.dita"><apiname>CRSAParameters</apiname></xref>, <xref href="GUID-76994822-5482-3055-9AF3-82A67845EB68.dita"><apiname>CDSAParameters</apiname></xref>,
+and <xref href="GUID-59DFB240-8360-3C80-959B-CF46F77AC9CC.dita"><apiname>CDHParameters</apiname></xref> are the base classes that allow a client
+to use the supported asymmetric algorithms listed above. The classes hold
+the domain parameters used by the public key algorithms. They are used by
+some of the asymmetric algorithms to define some common mathematical structures
+used by the encryption or signature processes. </p> <p>The diagrams below
+show the main classes used in asymmetric cipher framework. Blue dotted arrows
+indicate that a class is contained or used by another class. The arrows are
+labelled with the variable(s) through which the pointed class is accessible.
+The color of the boxes indicates the type of Symbian class, i.e., <codeph>M</codeph>, <codeph>C</codeph>, <codeph>R</codeph> or <codeph>T</codeph> class. For detailed information on each component see the Cryptography API
+Reference material. </p> <p><b>RSA, padding and associated classes</b> </p> <fig id="GUID-6066E2FF-34DA-57F1-A90A-E126887D34A8">
+<title>The inheritance diagram above shows the <codeph>RInteger</codeph> and <codeph>CRSAParameters</codeph> classes,
+and also the <codeph>CEncryptor</codeph>, <codeph>CDecryptor</codeph> and <codeph>CPadding</codeph> abstract
+classes. Also shown are the following classes from the Cryptography API: <codeph>TInteger</codeph>, <codeph>MCryptoSystem</codeph>, <codeph>CRSAPKCS1v15Decryptor</codeph>, <codeph>CRSAPKCS1v15Encryptor</codeph>, <codeph>CRSAPrivateKey</codeph>, <codeph>CRSAPublicKey</codeph>, <codeph>CRSAPrivateKeyStandard</codeph>, <codeph>CRSAPrivateKeyCRT</codeph>, <codeph>CRSAKeyPair</codeph>, <codeph>CPaddingPKCS7</codeph>, <codeph>CPaddingPKCS1Encryption</codeph>, <codeph>CPaddingNone</codeph>, <codeph>CPaddingPKCS1Signature</codeph>, and <codeph>CPaddingSSLv3</codeph>.
+              </title>
+<image href="GUID-2972C100-EE68-5182-927C-3C46E8F5C0DD_d0e383129_href.png" placement="inline"/>
+</fig> <fig id="GUID-28D2A983-B665-57ED-AB50-C33A9CE12045">
+<title>The inheritance diagram above shows the <codeph>CRSASigner</codeph> and <codeph>CRSAVerifier</codeph> classes.
+Also shown are the following classes from the Cryptography API: <codeph>MSignatureSystem</codeph>, <codeph>CSigner</codeph>, <codeph>CRSAPKCS1v15Signer</codeph>, <codeph>CRSAParameters</codeph>, <codeph>CRSAPrivateKey</codeph>, <codeph>CRSAPublicKey</codeph>, <codeph>CPadding</codeph>, <codeph>CPaddingPKCS1Signature</codeph>, <codeph>CVerifier</codeph>, and <codeph>CRSAPKCS1v15Verifier</codeph>.
+              </title>
+<image href="GUID-860DCACE-4C5A-508F-B94C-12336E96D1C7_d0e383173_href.png" placement="inline"/>
+</fig> <p><b>DSA and associated classes</b> </p> <fig id="GUID-97AB5216-F33B-52B6-83B5-08B6FB623DE4">
+<title>The inheritance diagram above shows the <codeph>CDSAParameters</codeph> class.
+Also shown are the following classes from the Cryptography API: <codeph>MSignatureSystem</codeph>, <codeph>TInteger</codeph>, <codeph>RInteger</codeph>, <codeph>CSigner</codeph>, <codeph>CDSASigner</codeph>, <codeph>CDSASignature</codeph>, <codeph>CDSAPrimeCertificate</codeph>, <codeph>CDSAKeyPair</codeph>, <codeph>CDSAPrivateKey</codeph>, <codeph>CDSAPublicKey</codeph>, <codeph>CVerifier</codeph>,
+and <codeph>CDSAVerifier</codeph>.               </title>
+<image href="GUID-C218732C-E675-5116-96FE-2604495C2C92_d0e383225_href.png" placement="inline"/>
+</fig> <p><b>DH and associated classes</b> </p> <fig id="GUID-0F963BD7-810F-5D1F-99BC-284DD38AAB1D">
+<title> The inheritance diagram above shows the <codeph>CDHParameters</codeph> class.
+Also shown are the following classes from the Cryptography API:  <codeph>TInteger</codeph>, <codeph>RInteger</codeph>, <codeph>CDHPrivateKey</codeph>, <codeph>CDHPublicKey</codeph>, <codeph>CDH</codeph>, and <codeph>CDHKeyPair</codeph>. </title>
+<image href="GUID-A3155AA1-8D42-5855-AD49-089DC510BCB0_d0e383259_href.png" placement="inline"/>
+</fig> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-361BB951-DB74-4D83-ACFC-812383C8129C" xml:lang="en"><title>Activating
-items in a list</title><shortdesc>This document describes the code changes required to activate items
-in a list on single-tap.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-7-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-4-1-1-7-1-4-1-7-1-3-1-1"><cmd>Replace the <codeph>EEventItemDoubleClicked</codeph> event
-with <codeph>EEventItemSingleClicked</codeph>. Remove the <codeph>EEventItemClicked</codeph> processing
-code if any.</cmd>
-<stepxmp><p>The following code snippet illustrates the changes to the event
-handling code of a File Browser application.</p><codeblock xml:space="preserve">// ----------------------------------------------------------------------------
-// CFileBrowseBaseView::HandleListBoxEventL
-//
-// If single-tap is enabled, the touch related events must be handled here
-// ----------------------------------------------------------------------------
-//
-void CFileBrowseBaseView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
- {
-  if(AknLayoutUtils::PenEnabled())
-  {
-    switch (aEventType)
-    {
-<b>		  //case EEventItemDoubleClicked:</b> ----- Remove this code--------------
-      <b>case EEventItemSingleClicked:</b> //------- Include this new event for item activation---
-      {
-        NavigateL(iListBox-&gt;CurrentItemIndex()); // user defined function for navigating to the selected folder
-	     OpenFolderL(); // user defined function for opening the selected folder
-	     break;
-      }
-    }
-  }
-}
-</codeblock></stepxmp>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-361BB951-DB74-4D83-ACFC-812383C8129C" xml:lang="en"><title>Activating
+items in a list</title><shortdesc>This document describes the code changes required to activate items
+in a list on single-tap.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-7-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-6-1-1-4-1-7-1-3-1-1"><cmd>Replace the <codeph>EEventItemDoubleClicked</codeph> event
+with <codeph>EEventItemSingleClicked</codeph>. Remove the <codeph>EEventItemClicked</codeph> processing
+code if any.</cmd>
+<stepxmp><p>The following code snippet illustrates the changes to the event
+handling code of a File Browser application.</p><codeblock xml:space="preserve">// ----------------------------------------------------------------------------
+// CFileBrowseBaseView::HandleListBoxEventL
+//
+// If single-tap is enabled, the touch related events must be handled here
+// ----------------------------------------------------------------------------
+//
+void CFileBrowseBaseView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
+ {
+  if(AknLayoutUtils::PenEnabled())
+  {
+    switch (aEventType)
+    {
+<b>		  //case EEventItemDoubleClicked:</b> ----- Remove this code--------------
+      <b>case EEventItemSingleClicked:</b> //------- Include this new event for item activation---
+      {
+        NavigateL(iListBox-&gt;CurrentItemIndex()); // user defined function for navigating to the selected folder
+	     OpenFolderL(); // user defined function for opening the selected folder
+	     break;
+      }
+    }
+  }
+}
+</codeblock></stepxmp>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-36221068-4E6D-4E03-AF9A-AD9465F1C6B6-master.png has changed
Binary file Symbian3/SDK/Source/GUID-36221068-4E6D-4E03-AF9A-AD9465F1C6B6_d0e63652_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e64475_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e65306_href.png has changed
--- a/Symbian3/SDK/Source/GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,150 +1,159 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-36539894-580E-5774-AA79-7F640E8C59E1" xml:lang="en"><title>Central
-Repository Initialisation Files Guide</title><shortdesc>This topic describes the concepts of initialisation files used
-by the Central Repository. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EAB04F5A-A208-4537-8EEF-6C6BE9F951ED"><title>Initialisation file properties</title> <p>The mechanisms of
-key spaces, capabilities and SIDs are used to write the content of an initialisation
-file. </p> <p><b>Owner </b> </p> <p>The owner of a repository (the application responsible
-for backing it up) is identified by its SID. Example: </p> <codeblock id="GUID-3057056D-64F4-5A3D-9644-9B1417EFDC89" xml:space="preserve">
-[owner]
-0x12345
-</codeblock> <p><b>Metadata </b> </p> <p>Settings of a repository are given values and also
-metadata values. The Default Metadata section of a repository gives the settings
-global default metadata values which may be overridden by individual metadata
-values assigned in the Main section. A metadata value is held as a 32 bit
-integer whose binary digits encode separate items of metadata. The most significant
-eight bits (most significant byte) of the integer are reserved for internal
-purposes. The other 24 bits of the integer have no reserved significance.
-Two of the eight bits are exposed for use by application developers. </p> <ul>
-<li id="GUID-65872DE7-F12A-5F1E-892C-937C81053E48"><p>The least significant
-bit of the most significant byte is set to 1 to indicate that a backup operation
-applies to the setting. </p> </li>
-<li id="GUID-A13A915F-EDBC-5E69-8557-D4FC6789CE23"><p>The second least significant
-bit of the most significant byte is set to 1 to indicate that a restore factory
-settings operation applies to the setting. </p> </li>
-</ul> <p>What is meant by least and most significant? An example may help.
-A hexadecimal number such as 03020100 is stored as a single 32 bit integer.
-The integer can be analysed as a sequence of four bytes: </p> <p>03 02 01
-00 </p> <p>The leftmost byte, 03, is the most significant byte because it
-represents a larger quantity (03000000) than the other three (02000, 0100
-and 00). Each byte consists of eight bits. In binary notation they are </p> <p>00000011
-00000010 00000001 00000000 </p> <p>The rightmost bit of the leftmost byte
-is the least significant bit of the most significant byte because it represents
-a smaller quantity (1) than its neighbour to the left (10) which is the second
-least significant bit of the most significant byte. These are the two exposed
-bits of the metadata value and the hexadecimal integer 03020100 has both of
-them set to 1. The 32 bits are sometimes referred to by number (32 for the
-leftmost down to 1 for the rightmost): thus the exposed bits are also called
-bits 26 and 25. </p> <p>Global default metadata values consist simply of a
-32 bit integer. Default metadata values can also be applied to a range of
-settings by prefixing either a pair of keys representing a continuous range,
-or else a partial key and a key mask prefixed by "mask=". Example: </p> <codeblock id="GUID-EC5F473A-86AB-58CF-878B-7AFD7EE69779" xml:space="preserve">
-[defaultMeta]
-0x00000010
-0x100 0x400 0x00000020
-0x1000 mask = 0x04 0x00000040
-</codeblock> </section>
-<section id="GUID-04903C24-0CEC-4937-BC94-77540BFC3F7D"><title>Access policies </title> <p>An access policy grants read or
-write permissions on a setting or a group of settings to an application or
-a group of applications. Applications are identified by their SID and groups
-of applications by their capability name. </p> <p>Decide which applications
-you want to grant permissions to, and whether you are going to identify them
-by capability or SID. SIDs are unsigned integers which identify an application
-and are assigned by Symbian Signed. Identify the settings and groups of settings
-which are to be written and read: you will need their keys and partial keys.
-Determine which applications need read or write permissions on which settings. </p> <p>You
-create an access policy by combining these elements using the following syntax. </p> <ul>
-<li id="GUID-A3E78BC6-7436-59E6-8C6F-B546B638BABB"><p>A capname is one of
-'<codeph>TCB</codeph>' '<codeph>CommDD</codeph>' etc. A caplist is two or
-three capnames separated by a comma and whitespace. A read caps statement
-is "cap_rd" followed by a capname or a caplist. </p> </li>
-<li id="GUID-5A76E256-BF6B-5CAD-A45C-C07140C4EEEE"><p>A read sid statement
-is "<codeph>sid_rd</codeph> " followed by an SID. </p> </li>
-<li id="GUID-0EE23D2A-2EED-5CEA-BF6D-7B23D11E9935"><p>A read policy is a read
-sid statement or a read caps statement or one of each separated by whitespace.
-A write policy is the same as a read policy with "_wr" instead of "_rd". An
-access policy is a read policy or a write policy or one of each separated
-by whitespace. </p> </li>
-<li id="GUID-EAB2A33E-99C2-5B40-8333-232761A7BC91"><p>Instead of granting
-or denying permissions to specified applications, you can create global permissions
-by using the words 'AlwaysPass' or 'AlwaysFail' in place of an SID. For instance,
-'sid_rd AlwaysPass' grants read permissions to all applications, 'sid_wr AlwaysFail'
-denies write permissions to all applications and so on. </p> </li>
-</ul> <p>An access policy constructed on these lines with no further qualification
-creates permissions on all the settings in a repository (this is called a
-default policy). To create permissions on individual settings (a single policy)
-or a group of settings (a range policy or a mask policy depending on implementation)
-we use the keys of those settings. </p> <ul>
-<li id="GUID-F86D7F23-EB24-5169-B072-EED5BEC5925D"><p>A single policy is a
-default policy prefixed with a key referring to a single setting. </p> </li>
-<li id="GUID-0F83526E-BF07-5914-887B-E128CFC59775"><p>A range policy is a
-default policy prefixed with two keys, the lowerkey and the upperkey. The
-policy assigns permissions on all settings with keys between the lowerkey
-and the upperkey inclusively. </p> </li>
-<li id="GUID-BA19291D-8F06-5D6D-932C-8F0B8554DF51"><p>A mask policy is an
-access policy prefixed with a partial key and then "mask=" and a keymask. </p> </li>
-<li id="GUID-828D372D-0297-5CDF-93E7-10A63516E698"><p>A custom policy is a
-single policy, a range policy or a mask policy. A policy list is a custom
-policy or several custom policies separated by whitespace. </p> </li>
-</ul> <p>We have now defined the structure of the access policy section of
-an initialisation file. It consists of a line reading "[PlatSec]" followed
-by a default policy or a policy list or one of each separated by whitespace.
-Where several policies in a list apply to the same key, the later policy overrides
-the earlier. The read policies, each on a separate line, must precede the
-write policies, each on a separate line. </p> </section>
-<section id="GUID-F2F1838D-D5A7-4720-9D10-3BEFFF64732E"><title> Initial values </title> <p>Initial values are assigned to
-settings in the Main section of an initialisation file. Each line begins with
-a setting identified by an individual key or a group of settings identified
-by a pair of keys representing a range or else a keymask and a partial key.
-Following the key or keys comes the data type of the setting, one of <codeph>int</codeph>, <codeph>real</codeph>,
-string, <codeph>string8</codeph> or <codeph>binary</codeph>. Next comes the
-actual initial value of the setting and finally, as an optional item, the
-metadata value of the setting. Example: </p> <codeblock id="GUID-585347BA-219A-5372-8C62-77E927A5D690" xml:space="preserve">
-[main]
-
-1 int 1 0
-2 real 2.732 0xa
-5 string "test\\\"string\"" 2
-6 int 12 0xf
-8 real 1.5 1
-11 string string 0x305
-12 string8 string 0x305
-
-0x11 real 1.5 12
-0x101 int 100 0
-</codeblock> </section>
-<section id="GUID-12599A2C-BE97-5B18-9BB9-EB833A40536A"><title>Initialisation
-file format</title> <p>You use an initialisation file to register a repository
-by saving it to device memory. Ideally you do this at ROM build time and save
-to the directory <filepath>z:\private\10202BE9\</filepath> (this is the Central
-Repository directory, named after its UID). It is also possible to register
-a repository after build time using the Symbian Software Installer to save
-it to the C drive. This process requires a signed SIS file and is explained
-below. In either case, the file name of the repository is the same as its
-UID. </p> <p>A repository may be saved to memory as a text file. The encoding
-must be UTF-16, no other format being supported. However, you are recommended
-to convert this text file to binary format and save the binary to device memory
-for reasons of performance. Retrieval times are an order of magnitude faster
-using binary files. You convert text to binary with the tool CentRepConv.exe
-as documented in <xref href="id1236097240207" scope="external">CenRep Converter
-Tool Tutorial</xref>. CentRepConv.exe can also be used to convert binary files
-back to text format (in a slightly lossy way due to differences in the specification
-of the two formats). </p> </section>
-</conbody><related-links>
-<link href="GUID-CBC57511-7F28-596A-9763-5674EB41BCAC.dita"><linktext>Central Repository
-                Overview</linktext></link>
-<link href="GUID-E3BE62B2-9625-5F79-84A4-0248A3F36225.dita"><linktext>Central Repository
-Guide</linktext></link>
-<link href="GUID-53E5C9EA-0A38-54A1-AE24-95B71BFFB4B5.dita"><linktext>CenRep Converter
-Tool                 Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-36539894-580E-5774-AA79-7F640E8C59E1" xml:lang="en"><title>Central Repository Initialisation Files Guide</title><shortdesc>This topic describes the concepts of initialisation files
+used by the Central Repository. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-EAB04F5A-A208-4537-8EEF-6C6BE9F951ED"><title>Initialisation
+file properties</title> <p>The mechanisms of key spaces, capabilities
+and SIDs are used to write the content of an initialisation file. </p> <p><b>Owner </b> </p> <p>The owner of a repository (the application
+responsible for backing it up) is identified by its SID. Example: </p> <codeblock id="GUID-3057056D-64F4-5A3D-9644-9B1417EFDC89" xml:space="preserve">
+[owner]
+0x12345
+</codeblock> <p><b>Metadata </b> </p> <p>Settings of a repository are given values
+and also metadata values. The Default Metadata section of a repository
+gives the settings global default metadata values which may be overridden
+by individual metadata values assigned in the Main section. A metadata
+value is held as a 32 bit integer whose binary digits encode separate
+items of metadata. The most significant eight bits (most significant
+byte) of the integer are reserved for internal purposes. The other
+24 bits of the integer have no reserved significance. Two of the eight
+bits are exposed for use by application developers. </p> <ul>
+<li id="GUID-65872DE7-F12A-5F1E-892C-937C81053E48"><p>The least significant
+bit of the most significant byte is set to 1 to indicate that a backup
+operation applies to the setting. </p> </li>
+<li id="GUID-A13A915F-EDBC-5E69-8557-D4FC6789CE23"><p>The second least
+significant bit of the most significant byte is set to 1 to indicate
+that a restore factory settings operation applies to the setting. </p> </li>
+</ul> <p>What is meant by least and most significant? An example may
+help. A hexadecimal number such as 03020100 is stored as a single
+32 bit integer. The integer can be analysed as a sequence of four
+bytes: </p> <p>03 02 01 00 </p> <p>The leftmost byte, 03, is the most
+significant byte because it represents a larger quantity (03000000)
+than the other three (02000, 0100 and 00). Each byte consists of eight
+bits. In binary notation they are </p> <p>00000011 00000010 00000001
+00000000 </p> <p>The rightmost bit of the leftmost byte is the least
+significant bit of the most significant byte because it represents
+a smaller quantity (1) than its neighbour to the left (10) which is
+the second least significant bit of the most significant byte. These
+are the two exposed bits of the metadata value and the hexadecimal
+integer 03020100 has both of them set to 1. The 32 bits are sometimes
+referred to by number (32 for the leftmost down to 1 for the rightmost):
+thus the exposed bits are also called bits 26 and 25. </p> <p>Global
+default metadata values consist simply of a 32 bit integer. Default
+metadata values can also be applied to a range of settings by prefixing
+either a pair of keys representing a continuous range, or else a partial
+key and a key mask prefixed by "mask=". Example: </p> <codeblock id="GUID-EC5F473A-86AB-58CF-878B-7AFD7EE69779" xml:space="preserve">
+[defaultMeta]
+0x00000010
+0x100 0x400 0x00000020
+0x1000 mask = 0x04 0x00000040
+</codeblock> </section>
+<section id="GUID-04903C24-0CEC-4937-BC94-77540BFC3F7D"><title>Access
+policies </title> <p>An access policy grants read or write permissions
+on a setting or a group of settings to an application or a group of
+applications. Applications are identified by their SID and groups
+of applications by their capability name. </p> <p>Decide which applications
+you want to grant permissions to, and whether you are going to identify
+them by capability or SID. SIDs are unsigned integers which identify
+an application and are assigned by Symbian Signed. Identify the settings
+and groups of settings which are to be written and read: you will
+need their keys and partial keys. Determine which applications need
+read or write permissions on which settings. </p> <p>You create an
+access policy by combining these elements using the following syntax. </p> <ul>
+<li id="GUID-A3E78BC6-7436-59E6-8C6F-B546B638BABB"><p>A capname is
+one of '<codeph>TCB</codeph>' '<codeph>CommDD</codeph>' etc. A caplist
+is two or three capnames separated by a comma and whitespace. A read
+caps statement is "cap_rd" followed by a capname or a caplist. </p> </li>
+<li id="GUID-5A76E256-BF6B-5CAD-A45C-C07140C4EEEE"><p>A read sid statement
+is "<codeph>sid_rd</codeph> " followed by an SID. </p> </li>
+<li id="GUID-0EE23D2A-2EED-5CEA-BF6D-7B23D11E9935"><p>A read policy
+is a read sid statement or a read caps statement or one of each separated
+by whitespace. A write policy is the same as a read policy with "_wr"
+instead of "_rd". An access policy is a read policy or a write policy
+or one of each separated by whitespace. </p> </li>
+<li id="GUID-EAB2A33E-99C2-5B40-8333-232761A7BC91"><p>Instead of granting
+or denying permissions to specified applications, you can create global
+permissions by using the words 'AlwaysPass' or 'AlwaysFail' in place
+of an SID. For instance, 'sid_rd AlwaysPass' grants read permissions
+to all applications, 'sid_wr AlwaysFail' denies write permissions
+to all applications and so on. </p> </li>
+</ul> <p>An access policy constructed on these lines with no further
+qualification creates permissions on all the settings in a repository
+(this is called a default policy). To create permissions on individual
+settings (a single policy) or a group of settings (a range policy
+or a mask policy depending on implementation) we use the keys of those
+settings. </p> <ul>
+<li id="GUID-F86D7F23-EB24-5169-B072-EED5BEC5925D"><p>A single policy
+is a default policy prefixed with a key referring to a single setting. </p> </li>
+<li id="GUID-0F83526E-BF07-5914-887B-E128CFC59775"><p>A range policy
+is a default policy prefixed with two keys, the lowerkey and the upperkey.
+The policy assigns permissions on all settings with keys between the
+lowerkey and the upperkey inclusively. </p> </li>
+<li id="GUID-BA19291D-8F06-5D6D-932C-8F0B8554DF51"><p>A mask policy
+is an access policy prefixed with a partial key and then "mask=" and
+a keymask. </p> </li>
+<li id="GUID-828D372D-0297-5CDF-93E7-10A63516E698"><p>A custom policy
+is a single policy, a range policy or a mask policy. A policy list
+is a custom policy or several custom policies separated by whitespace. </p> </li>
+</ul> <p>We have now defined the structure of the access policy section
+of an initialisation file. It consists of a line reading "[PlatSec]"
+followed by a default policy or a policy list or one of each separated
+by whitespace. Where several policies in a list apply to the same
+key, the later policy overrides the earlier. The read policies, each
+on a separate line, must precede the write policies, each on a separate
+line. </p> </section>
+<section id="GUID-F2F1838D-D5A7-4720-9D10-3BEFFF64732E"><title> Initial
+values </title> <p>Initial values are assigned to settings in the
+Main section of an initialisation file. Each line begins with a setting
+identified by an individual key or a group of settings identified
+by a pair of keys representing a range or else a keymask and a partial
+key. Following the key or keys comes the data type of the setting,
+one of <codeph>int</codeph>, <codeph>real</codeph>, string, <codeph>string8</codeph> or <codeph>binary</codeph>. Next comes the actual
+initial value of the setting and finally, as an optional item, the
+metadata value of the setting. Example: </p> <codeblock id="GUID-585347BA-219A-5372-8C62-77E927A5D690" xml:space="preserve">
+[main]
+
+1 int 1 0
+2 real 2.732 0xa
+5 string "test\\\"string\"" 2
+6 int 12 0xf
+8 real 1.5 1
+11 string string 0x305
+12 string8 string 0x305
+
+0x11 real 1.5 12
+0x101 int 100 0
+</codeblock> </section>
+<section id="GUID-12599A2C-BE97-5B18-9BB9-EB833A40536A"><title>Initialisation
+file format</title> <p>You use an initialisation file to register
+a repository by saving it to device memory. Ideally you do this at
+ROM build time and save to the directory <filepath>z:\private\10202BE9\</filepath> (this is the Central Repository directory, named after its UID).
+It is also possible to register a repository after build time using
+the Symbian Software Installer to save it to the C drive. This process
+requires a signed SIS file and is explained below. In either case,
+the file name of the repository is the same as its UID. </p> <p>A
+repository may be saved to memory as a text file. The encoding must
+be UTF-16, no other format being supported. However, you are recommended
+to convert this text file to binary format and save the binary to
+device memory for reasons of performance. Retrieval times are an order
+of magnitude faster using binary files. You convert text to binary
+with the tool CentRepConv.exe as documented in <xref href="GUID-53E5C9EA-0A38-54A1-AE24-95B71BFFB4B5.dita">CenRep Converter
+Tool Tutorial</xref>. CentRepConv.exe can also be used to convert
+binary files back to text format (in a slightly lossy way due to differences
+in the specification of the two formats). </p> </section>
+</conbody><related-links>
+<link href="GUID-CBC57511-7F28-596A-9763-5674EB41BCAC.dita"><linktext>Central
+Repository                 Overview</linktext></link>
+<link href="GUID-E3BE62B2-9625-5F79-84A4-0248A3F36225.dita"><linktext>Central
+Repository Guide</linktext></link>
+<link href="GUID-53E5C9EA-0A38-54A1-AE24-95B71BFFB4B5.dita"><linktext>CenRep
+Converter Tool                 Tutorial</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e36549_href.png has changed
Binary file Symbian3/SDK/Source/GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e42116_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636"><title>Secure store encryption example code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This example covers: </p> <ul><li id="GUID-C08CC80E-FDF5-54FB-A289-2D1C4B4AD982"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-3CE75F7F-B812-5010-99E6-50416C207B41">Creating and opening a new secure store protected by the supplied password</xref>  </p> </li> <li id="GUID-67FA0BEE-6BC5-5F49-9CD8-9B81CD25894C"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-58FD2C9E-80E8-5F88-AF83-DC0022FE92E7">Opening an existing secure store</xref>  </p> </li> <li id="GUID-F3D2DF1D-A547-594C-BCB8-8BADD69D980D"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-6C8BF1E2-E824-539D-A57F-DED436C24C88">Writing some data to a new stream in the currently opened store, and returning the ID of the stream</xref>  </p> </li> <li id="GUID-1B9A3CB6-6ADB-508F-8563-03E17BD7BB02"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-A6AF8D9B-6A03-5CA4-BC0E-0296FBC10EDD">Reading the data in a given stream from the currently opened store</xref>  </p> </li> <li id="GUID-51A035CA-16CD-5547-828A-049E3FD20D5B"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-2C2E3C02-8F9D-5FA6-8ACA-1CDBA8EA11A9">Closing the currently opened store</xref>  </p> </li> <li id="GUID-1E71B260-5C38-51C7-B535-4A3C6EE210AF"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita#GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636/GUID-4ABE3513-0B3D-5F17-8F1B-CDA12C5DE370">Changing the password for the currently opened store.</xref>  </p> </li> </ul> <p>Also, see: </p> <ul><li id="GUID-96A01360-DFA8-5FC3-97CD-6B2013756CBC"><p> <xref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita">PBE example code</xref>  </p> </li> <li id="GUID-2E08A91C-C02C-5DF6-8051-7209E48FDA02"><p> <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita">Secure stream example code</xref>  </p> </li> </ul> <section id="GUID-3CE75F7F-B812-5010-99E6-50416C207B41"><title>Creating and opening a new secure store protected by the supplied password</title> <ul><li id="GUID-913C5F07-E786-546A-90F6-D26019A52C96"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-0BBC7516-B37F-5A01-9853-DFD7B490C931" xml:space="preserve">
+void CSecureStoreExample::CreateNewStoreL(const TDesC&amp; aPassword)
+         {
+         // Check store is not already open
+         ASSERT(!iEncryptSet &amp;&amp; !iSecureStore &amp;&amp; !iFileStore);
+
+         // Create a standard file store
+         iFileStore = CPermanentFileStore::ReplaceL(iFs, iFilename, EFileRead | EFileWrite | EFileShareExclusive);
+         iFileStore-&gt;SetTypeL(KPermanentFileStoreLayoutUid);
+         
+         // Create a CPBEncryptSet object (because a store is comprised of multiple
+         // independent objects)
+         TPBPassword password(aPassword);
+         iEncryptSet = CPBEncryptSet::NewL(password, ECipherDES_CBC);
+
+         // Write encryption data and encrypted master key to the root stream of the
+         // store.  We need to store both of these pieces of information to be able
+         // to access the secure store at a later time.
+         RStoreWriteStream writeStream;
+         TStreamId rootId = writeStream.CreateLC(*iFileStore);
+         writeStream &lt;&lt; iEncryptSet-&gt;EncryptionData();
+         writeStream &lt;&lt; iEncryptSet-&gt;EncryptedMasterKey();
+         writeStream.CommitL();
+         CleanupStack::PopAndDestroy(&amp;writeStream);
+         iFileStore-&gt;SetRootL(rootId);
+         iFileStore-&gt;CommitL();
+
+         // Create the secure store - this wraps the file store providing transparent
+         // encryption/decryption of streams.
+         iSecureStore = CSecureStore::NewL(*iFileStore, *iEncryptSet);
+         }
+            </codeblock> </section> <section id="GUID-58FD2C9E-80E8-5F88-AF83-DC0022FE92E7"><title>Opening an existing secure store</title> <ul><li id="GUID-9B07EB34-D2C1-53FF-8338-3F18A235ADC5"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-6EDC3451-A2DF-537F-BF71-1A4925462790" xml:space="preserve">
+// Leaves with KErrBadPassphrase if the password is 
+// not the same as the one used when creating the store.
+void CSecureStoreExample::OpenExistingStoreL(const TDesC&amp; aPassword)
+         {
+         // Check store is not already open
+         ASSERT(!iEncryptSet &amp;&amp; !iSecureStore &amp;&amp; !iFileStore);
+
+         // Open a standard file store
+         iFileStore = CPermanentFileStore::OpenL(iFs, iFilename, EFileRead | EFileWrite | EFileShareExclusive);
+         
+         // Read the encryption data and encrypted master key from the root stream
+         TStreamId rootId = iFileStore-&gt;Root();
+         RStoreReadStream readStream;
+         readStream.OpenLC(*iFileStore, rootId);
+         CPBEncryptionData* encryptionData = CPBEncryptionData::NewLC(readStream);
+         HBufC8* encryptedMasterKey = HBufC8::NewLC(readStream, KMaxTInt);
+
+         // Use these to recreate the CPBEncryptSet object (this leaves if
+         // aPassword is wrong)
+         iEncryptSet = CPBEncryptSet::NewL(*encryptionData, *encryptedMasterKey, aPassword);
+
+         // Create the secure store
+         iSecureStore = CSecureStore::NewL(*iFileStore, *iEncryptSet);
+
+         // Free memory
+         CleanupStack::PopAndDestroy(3, &amp;readStream);
+         }
+            </codeblock> </section> <section id="GUID-6C8BF1E2-E824-539D-A57F-DED436C24C88"><title>Writing some data to a new stream in the currently opened store, and returning the ID of the stream</title> <ul><li id="GUID-1FF9BA5F-296F-5AF7-9737-A95B9059061E"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-F8539B5E-197A-5FAF-B908-4EAD26BA2A6A" xml:space="preserve">
+TStreamId CSecureStoreExample::WriteEncryptedDataL(const TDesC8&amp; aInput)
+         {
+         // Check store is open
+         ASSERT(iEncryptSet &amp;&amp; iSecureStore &amp;&amp; iFileStore);
+
+         // Create a new stream in the store 
+         RStoreWriteStream writeStream;
+         TStreamId newStreamId = writeStream.CreateLC(*iSecureStore);
+
+         // Write data - this is automatically encrypted
+         writeStream &lt;&lt; aInput;
+         writeStream.CommitL();
+         iSecureStore-&gt;CommitL();
+
+         CleanupStack::PopAndDestroy(&amp;writeStream);
+         return newStreamId;
+         }
+            </codeblock> </section> <section id="GUID-A6AF8D9B-6A03-5CA4-BC0E-0296FBC10EDD"><title>Reading the data in a given stream from the currently opened store</title> <ul><li id="GUID-8F696865-A038-5649-ACCF-030A482C5C3A"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-DC1CABBD-2D1A-5A94-B28E-73C9F94A579E" xml:space="preserve">
+HBufC8* CSecureStoreExample::ReadEncryptedDataLC(TStreamId aStreamId)
+         {
+         // Check store is open
+         ASSERT(iEncryptSet &amp;&amp; iSecureStore &amp;&amp; iFileStore);
+
+         // Open an existing stream in the store
+         RStoreReadStream readStream;
+         readStream.OpenLC(*iSecureStore, aStreamId);
+
+         // Read data - this is automatically decrypted
+         HBufC8* output = HBufC8::NewL(readStream, KMaxTInt);
+
+         CleanupStack::PopAndDestroy(&amp;readStream);
+         CleanupStack::PushL(output);
+         return output;
+         }
+            </codeblock> </section> <section id="GUID-2C2E3C02-8F9D-5FA6-8ACA-1CDBA8EA11A9"><title>Closing the currently opened store</title> <ul><li id="GUID-6C2360BE-435D-5350-8149-AAF679A441D7"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-253A7771-4030-5393-83B9-10D4538A0CC6" xml:space="preserve">
+void CSecureStoreExample::CloseStore()
+         {
+         delete iSecureStore;
+         iSecureStore = NULL;
+         delete iEncryptSet;
+         iEncryptSet = NULL;
+         delete iFileStore;
+         iFileStore = NULL;
+         }
+            </codeblock> </section> <section id="GUID-4ABE3513-0B3D-5F17-8F1B-CDA12C5DE370"><title>Changing the password for the currently opened store</title> <ul><li id="GUID-DFBC3396-7564-5647-8B6C-525F46FA6512"><p> <xref href="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-D7A38D85-EAC1-579F-8ECB-F7420A21E519" xml:space="preserve">
+void CSecureStoreExample::ChangePasswordL(const TDesC&amp; aNewPassword)
+         {
+         // Check store is open
+         ASSERT(iEncryptSet &amp;&amp; iSecureStore &amp;&amp; iFileStore);
+
+         // Change password on encrypt set object
+         iEncryptSet-&gt;ChangePasswordL(aNewPassword);
+
+         // Must now rewrite data in root stream
+         TStreamId rootId = iFileStore-&gt;Root();
+         RStoreWriteStream writeStream;
+         writeStream.ReplaceLC(*iFileStore, rootId);
+         writeStream &lt;&lt; iEncryptSet-&gt;EncryptionData();
+         writeStream &lt;&lt; iEncryptSet-&gt;EncryptedMasterKey();
+         writeStream.CommitL();
+         iFileStore-&gt;CommitL();
+         
+         CleanupStack::PopAndDestroy(&amp;writeStream);
+         }
+            </codeblock> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,94 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-36BD6059-6547-5754-8BE0-F8051A838C14"><title>Using Time-Nudge-Capture Drive Mode </title><shortdesc>This topic describes how to capture an image using Time-Nudge-Capture drive mode in the Ecam API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><prereq id="GUID-B36A21C3-041E-5DBE-A019-705F64A9DCFA"><p>Before you start you should understand the following topics: </p> <ul><li id="GUID-618221F4-A6E6-5F4E-97F7-8528F010887E"><p><xref href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita">Capturing Image</xref>. </p> </li> <li id="GUID-C875638C-B10A-511A-B7DF-8BB6ED543B0E"><p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced Camera Settings Overview</xref>. </p> </li> </ul> </prereq> <context><p>The <codeph>EDriveModeTimeNudgeCapture</codeph> mode allows you to specify the amount of images to be captured both before and after the capture button key press. The numbers of pre- or post-capture images to be captured are set by the <codeph>TDriveModeDependentAttributes</codeph> values, with the total number of images being calculated as follows: </p> <p> <codeph>Total number of captured images = iParam1 + 1 + iParam2 </codeph> where <codeph>iParam1</codeph> and <codeph>iParam2</codeph> represent pre and post capture images respectively, and 1 represents the present image. </p> </context> <steps id="GUID-C600E75D-1C96-5D04-8F72-9EC4DCD406C6"><step id="GUID-10359A66-1222-5C8A-87E6-7E7E1CAD8847"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C5A323D2-322D-3784-9546-A066B50C4DE1"><apiname>CCamera::New2L(MCameraObserver2
-                &amp;,TInt,TInt)</apiname></xref> to create an instance of <codeph>CCamera</codeph>. </info> </step> <step id="GUID-7AAE2DB9-0A64-55E6-814F-B6204F19BCF1"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58"><apiname>CCamera::CCameraPreImageCaptureControl</apiname></xref> to create an image capture object. </info> </step> <step id="GUID-7686E078-40F5-56E2-B35F-09CC248994AD"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-6446E75C-134A-311D-8724-71F0C962BABB"><apiname>CCamera::PrepareImageCapture(const
-                TPrepareImageParameter&amp;, MCaptureImageObserver&amp;)</apiname></xref> to prepare for capturing the image. <codeph>TPrepareImageParameter</codeph> uses <codeph>TDriveModeDependentAttributes</codeph> to set the number of images before and after the camera capture key press event. The <codeph>iDriveMode</codeph> value in <codeph>TPrepareImageParameter</codeph> should be replaced into the <codeph>EDriveModeTimeNudgeCapture</codeph> value, to support the time-nudge-capture drive mode. </info> <info>If an <codeph>aErrorCode</codeph> occurs while preparing an image, you have to call <xref href="GUID-5B7C6507-040F-3825-9037-7A23A25B26A8.dita#GUID-5B7C6507-040F-3825-9037-7A23A25B26A8/GUID-81907BC4-585A-3199-8210-1E57837CADBD"><apiname>CCamera::PrepareImageComplete(CCamera::CCameraImageCapture*,
-                TInt)</apiname></xref>. </info> <info>Note: The <codeph>PrepareImageComplete()</codeph> callback is deferred until the implementation is ready with the pre-image data saved in the buffer so that you can press the capture key at any time. Meanwhile the implementation continues saving the latest pre-capture images until the <codeph>CaptureImage()</codeph> function is called. </info> </step> <step id="GUID-016FF403-E087-53CA-9EC7-223496A7AE60"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-2BE39D44-2E72-3756-B0DF-9EDEDCEF2FC2"><apiname>CCamera::CaptureImage(CCameraCapture*)</apiname></xref> to capture an image. </info> <info>Note: You can call the <codeph>CaptureImage()</codeph> function to capture the current image exposed to the sensor plus the required number of post-image capture images. </info> </step> <step id="GUID-912DC8A8-51F5-5912-9474-1CE28C51715D"><cmd/><info>Call the <xref href="GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386.dita#GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386/GUID-F8E63880-7E40-37B1-BDDD-A546FF9A1595"><apiname>MCaptureImageObserver::IndividualImageControlHandle(CCamera::CCameraImageCapture&amp;,
-                TPostCaptureControlId)</apiname></xref> function for each captured image to pass the individual id of each image to the client. </info> </step> <step id="GUID-38DBA9EA-0267-5C31-8D82-E81111636198"><cmd/><info>Call <xref href="GUID-1F521E2D-420C-35AB-865F-29B85AABDABC.dita#GUID-1F521E2D-420C-35AB-865F-29B85AABDABC/GUID-C47D6991-D2BB-382D-B8E1-D4583F9761BB"><apiname>MCaptureImageObserver::ImageCaptureComplete(CCamera::CCameraImageCapture&amp;,
-                TInt) and
-                [a11]CCamera::HandleEvent(KUidECamEventReadyForNextCapture)</apiname></xref> to notify the client that the current capture operation has finished. </info> <info>Note: This must only occur once the implementation has saved another set of pre-image capture images. This is so that the implementation is ready to receive further <codeph>CaptureImage()</codeph> calls. </info> </step> <step id="GUID-94BF1548-C4B1-5BBE-AB08-E0A7521BF0CF"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-3EC050AE-3512-3477-9B89-C98F66234D9F"><apiname>CCamera::CCameraPostImageCaptureControl(TUid,
-                TPostCaptureControlUid)</apiname></xref> to control the post image capture after capturing the desired image. </info> </step> <step id="GUID-CCD9A5F2-0447-5154-ACC5-950CC0EC2512"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-53D971FF-6ECE-3C7D-ABF7-E318D500C5D7"><apiname>CCamera::HandleEvent(KUidECamEventReadyForNextPrepare)</apiname></xref> function when you have deleted the current <codeph>CCameraImageCapture</codeph> object. </info> <info>Note: In this drive mode, only one instance of <codeph>CCameraImageCapture</codeph> can be created at any one time, i.e. <codeph>PrepareImageCapture()</codeph> can only be called once. In order to successfully call <codeph>PrepareImageCapture()</codeph> again and create a new <codeph>CCameraImageCapture</codeph> object, clients must first destroy the previous one. Therefore, the implementation should only issue this callback once the client has deleted the object. </info> </step> </steps> </taskbody><related-links><link href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita"><linktext> Controlling Pre-Image Capture</linktext> </link> <link href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita"><linktext> Controlling Still-Image
-                Capture</linktext> </link> <link href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita"><linktext> Controlling Captured Image</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-36BD6059-6547-5754-8BE0-F8051A838C14" xml:lang="en"><title>Using
+Time-Nudge-Capture Drive Mode </title><shortdesc>This topic describes how to capture an image using Time-Nudge-Capture
+drive mode in the Ecam API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-B36A21C3-041E-5DBE-A019-705F64A9DCFA"><p>Before you start
+you should understand the following topics: </p> <ul>
+<li><p><xref href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita">Capturing Still
+Images</xref></p></li>
+<li id="GUID-C875638C-B10A-511A-B7DF-8BB6ED543B0E"><p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced
+Camera Settings Overview</xref>. </p> </li>
+</ul> </prereq>
+<context id="GUID-C666890D-A6ED-4ABB-982A-CEC3E9881652"><p>The <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-552E8197-2AD8-377D-A15A-7EB14C836C86"><apiname>CCamera::CCameraAdvancedSettings::EDriveModeTimeNudgeCapture</apiname></xref> mode
+allows you to specify the amount of images to be captured both before and
+after the capture button key press. The numbers of pre- or post-capture images
+to be captured are set by the <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-AED9AF83-72F6-3A5A-8693-81690A58789E"><apiname>CCamera::CCameraPreImageCaptureControl::TDriveModeDependentAttributes</apiname></xref> values,
+with the total number of images being calculated as follows: </p> <p> <codeph>Total
+number of captured images = iParam1 + 1 + iParam2 </codeph> where <codeph>iParam1</codeph> and <codeph>iParam2</codeph> represent
+pre and post capture images respectively, and 1 represents the present image. </p> </context>
+<steps id="GUID-C600E75D-1C96-5D04-8F72-9EC4DCD406C6">
+<step id="GUID-10359A66-1222-5C8A-87E6-7E7E1CAD8847"><cmd/>
+<info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C5A323D2-322D-3784-9546-A066B50C4DE1"><apiname>CCamera::New2L(MCameraObserver2 &amp;,TInt,TInt)</apiname></xref> to
+create an instance of <codeph>CCamera</codeph>. </info>
+</step>
+<step id="GUID-7AAE2DB9-0A64-55E6-814F-B6204F19BCF1"><cmd/>
+<info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58"><apiname>CCamera::CCameraPreImageCaptureControl</apiname></xref> to create
+an image capture object. </info>
+</step>
+<step id="GUID-7686E078-40F5-56E2-B35F-09CC248994AD"><cmd/>
+<info>Call <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-784D7379-183B-3A3E-81A4-CD78DE68F78A"><apiname>CCamera::CCameraPreImageCaptureControl::PrepareImageCapture(const
+TPrepareImageParameters &amp;,MCaptureImageObserver &amp;)</apiname></xref> to prepare
+for capturing the image. <codeph>TPrepareImageParameter</codeph> uses <codeph>TDriveModeDependentAttributes</codeph> to
+set the number of images before and after the camera capture key press event.
+The <codeph>iDriveMode</codeph> value in <codeph>TPrepareImageParameter</codeph> should
+be replaced into the <codeph>EDriveModeTimeNudgeCapture</codeph> value, to
+support the time-nudge-capture drive mode. </info>
+<info>If an <codeph>aErrorCode</codeph> occurs while preparing an image, you
+have to call <codeph>CCamera::PrepareImageComplete(CCamera::CCameraImageCapture*,
+TInt)</codeph>. </info>
+<info>Note: The <codeph>PrepareImageComplete()</codeph> callback is deferred
+until the implementation is ready with the pre-image data saved in the buffer
+so that you can press the capture key at any time. Meanwhile the implementation
+continues saving the latest pre-capture images until the <codeph>CaptureImage()</codeph> function
+is called. </info>
+</step>
+<step id="GUID-016FF403-E087-53CA-9EC7-223496A7AE60"><cmd/>
+<info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-0536FECC-1BD8-3726-8BBE-B1231739F23E"><apiname>CCamera::CaptureImage()</apiname></xref> to capture an image. </info>
+<info>Note: You can call the <codeph>CaptureImage()</codeph> function to capture
+the current image exposed to the sensor plus the required number of post-image
+capture images. </info>
+</step>
+<step id="GUID-912DC8A8-51F5-5912-9474-1CE28C51715D"><cmd/>
+<info>Call the <xref href="GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386.dita#GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386/GUID-8EF6EC5F-91F4-3E9C-BF63-B4849974AEB1"><apiname>MCaptureImageObserver::IndividualImageControlHandle(CCamera::CCameraImageCapture
+&amp;,TPostCaptureControlId)</apiname></xref> function for each captured image to
+pass the individual id of each image to the client. </info>
+</step>
+<step id="GUID-38DBA9EA-0267-5C31-8D82-E81111636198"><cmd/>
+<info>Call <xref href="GUID-6DA94579-7A7C-3790-B36A-1D76A84237B9.dita#GUID-6DA94579-7A7C-3790-B36A-1D76A84237B9/GUID-F5C9E1C6-FBA7-3278-8753-BF217CA7D788"><apiname>MCaptureImageObserver::ImageCaptureComplete(CCamera::CCameraImageCapture
+&amp;,TInt)</apiname></xref> and <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-92A1BB39-F8AC-388D-93FC-32CEC1EB839F"><apiname>MCameraObserver2::HandleEvent(const TECAMEvent
+&amp;)</apiname></xref> to notify the client that the current capture operation has
+finished. </info>
+<info>Note: This must only occur once the implementation has saved another
+set of pre-image capture images. This is so that the implementation is ready
+to receive further <codeph>CaptureImage()</codeph> calls. </info>
+</step>
+<step id="GUID-94BF1548-C4B1-5BBE-AB08-E0A7521BF0CF"><cmd/>
+<info>Call <xref href="GUID-4B9D0D47-B1E4-3A0C-9AB0-C27E7BAFB99C.dita#GUID-4B9D0D47-B1E4-3A0C-9AB0-C27E7BAFB99C/GUID-1E0AAFB9-61BB-3629-B9B8-E5C1190093EB"><apiname>CCamera::CCameraPostImageCaptureControl::CCameraPostImageCaptureControl(CCamera::CCameraImageCapture
+*,TPostCaptureControlId)</apiname></xref> to control the post image capture after
+capturing the desired image. </info>
+</step>
+<step id="GUID-CCD9A5F2-0447-5154-ACC5-950CC0EC2512"><cmd/>
+<info>Call the <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-92A1BB39-F8AC-388D-93FC-32CEC1EB839F"><apiname>MCameraObserver2::HandleEvent(const TECAMEvent &amp;)</apiname></xref> function
+when you have deleted the current <codeph>CCameraImageCapture</codeph> object. </info>
+<info>Note: In this drive mode, only one instance of <codeph>CCameraImageCapture</codeph> can
+be created at any one time, that is, <codeph>PrepareImageCapture()</codeph> can
+only be called once. In order to successfully call <codeph>PrepareImageCapture()</codeph> again
+and create a new <codeph>CCameraImageCapture</codeph> object, clients must
+first destroy the previous one. Therefore, the implementation should only
+issue this callback once the client has deleted the object. </info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita"><linktext>Camera Library</linktext>
+</link>
+</related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,105 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section provides an overview of the Camera Framework. </p> <section><title>Purpose</title> <p>The ECam component supplies a header file (<filepath>.h</filepath>) and library definition files (<filepath>.def</filepath>). These specify the API and binary interfaces that device creators can implement. They provide an interface for cross-platform, compatible camera clients to access the camera on any given device. The Camera Framework supports any concrete ECam implementation only as a ECom plug-in. The ROM plug-in with the highest version number is selected at instantiation phase. The Symbian version of ECam is a stub for easy replacement by an alternate implementation. </p> </section> <section><title>Required background</title> <p>ECam is a component of the Multimedia subsystem. </p> </section> <section><title>Architectural relationships</title> <p>Clients have specific priorities and may pre-empt others in their interactions with the camera. When a camera client needs to share the camera with another client, it creates a handle to the camera and passes this handle to the component. Clients that share with each other are called collaborative clients. </p> <p>Platform security requires that applications have the <codeph>UserEnvironment</codeph> capability to create a Camera object. Clients with the <codeph>MultimediaDD</codeph> capability are given a higher priority. </p> <p> <b>Note</b>: The process by which a client passes a handle to another client is beyond the scope of this Camera Framework guide. </p> <p>Application developers and device creators implement the ECam API for the camera hardware on their phone. All cameras are ECom plug-ins sub-classed from the <xref href="GUID-487CF3A9-6B4B-3140-8A09-70DBEC1B15E2.dita"><apiname>CCameraplugin</apiname></xref> class. </p> </section> <section><title>API summary</title> <p>The Camera Framework includes the following APIs. </p> <p><b>ECam APIs </b> </p> <ul><li id="GUID-A35FED19-B5AE-5134-8EB6-A00F0B7A53C9"><p>Camera </p> <p>This provides functionality to control a digital camera and to request and receive specific image data from it. </p> <p>See also <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita#GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D/GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB">Key Onboard ECam API Classes</xref>  </p> </li> <li id="GUID-5327CE4E-6BA6-5602-8D17-0ADFDFBEA5DA"><p>Advanced Settings </p> <p>This provides domain specific getters and setters for well known camera hardware settings. This is used to query the camera for the list of supported and currently active hardware settings. For a specific setting, clients can query the camera for the list of supported values. </p> </li> <li id="GUID-646EBF1D-FF4F-5C2E-8D87-DD1CE9072A00"><p>Camera Viewfinder </p> <p>This provides the support for both direct and client viewfinder. It also provides information regarding the current state of that direct viewfinder. The different possible states are active, paused and inactive. </p> <p>See also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita#GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D/GUID-FD016694-527F-5009-81FC-B5D8AD1A3A05">Key Viewfinder Classes</xref>  </p> <p> <b>Note</b>: The direct viewfinder is applicable only for viewfinders that use Ccamera viewfinder methods. </p> </li> <li id="GUID-F63B7492-08A2-5129-B89B-06CCC459EF04"><p>Camera Histogram </p> <p>This gets the histogram data in a specified format for an image (for example, luminance based histogram, average colour value histogram and so on). </p> </li> <li id="GUID-EC209FE8-B8B2-59E0-80DA-13801366F03B"><p>Camera Overlay </p> <p>This overlays an image onto the viewfinder, snapshots, still images and video. A client can create multiple overlays, each one with different properties. </p> </li> <li id="GUID-05130CA9-EFCD-59EA-871E-923E89122234"><p>Camera plug-in Support </p> <p>All cameras are ECom plug-ins sub-classed from <xref href="GUID-6C1CF515-15D2-3E7D-8826-CD944352BD91.dita"><apiname>Ccameraplugin</apiname></xref> class and register support for the interface <xref href="GUID-BFD9F9DE-6FFD-342C-BCDD-F30F1FCF39BB.dita"><apiname>KuidOnboardCameraplugin</apiname></xref> in their resource file. Symbian introduced plug-in support for ECam from v9.1 onwards. Before that, device creators were supposed to re-implement ECam, which was effectively reference code. </p> </li> <li id="GUID-EB2D5447-2D4F-5413-B0A8-17AA86982B0A"><p>Camera Snap Shot </p> <p>Clients can use snapshots to show captured images on the display almost instantly (while in the background the image may be processed by using some compression algorithm before storing the data). The client can specify the properties of the snapshot, such as size, background colour and position to be used if the snapshot has been scaled and so on. Snapshot object can be created specifically for still images and video APIs. </p> </li> </ul> </section> <section><title>Typical uses</title> <p><b>Camera Component Users </b> </p> <ul><li id="GUID-D2AD15FD-E2DE-5137-BE77-650CCD5DE9A6"><p>Camera plug-ins </p> </li> <li id="GUID-77873CF0-7319-59D6-9EA6-0B922E7E3A3F"><p>Multimedia Framework plug-ins </p> </li> </ul> <p><b>Camera Component tasks</b> </p> <p>The camera component is used for the following: </p> <ul><li id="GUID-4A7DF7A6-4E35-53DB-9F56-A5D0E2685FBA"><p>Onboard Camera </p> </li> <li id="GUID-DF4050DA-AEC1-5C91-9466-FC685B21EBCC"><p>Camera plug-in Support </p> </li> <li id="GUID-4D9B817A-666C-5A15-B285-5B292C209C5A"><p>Advanced Settings </p> </li> <li id="GUID-E187EEC6-C048-5AB0-944B-BCBFC2CFD986"><p>Camera plug-in </p> </li> <li id="GUID-DD4EB3CF-EEAC-5208-989D-1B9A94320CCF"><p>Histogram </p> </li> <li id="GUID-4F24A091-31CE-592E-9447-A5424FA814C5"><p>Overlay </p> </li> <li id="GUID-7F01D2E4-49E3-53C9-AE0A-D40BB6C8304E"><p>Snapshot </p> </li> <li id="GUID-EBD1D801-E9FE-561D-A656-AE4095B878E4"><p>Viewfinder </p> </li> </ul> <p><b> Onboard Camera </b> </p> <p>The Onboard Camera provides functionality to control a digital camera and to request and receive specific image data from it. </p> <p><b> Advanced Settings </b> </p> <p>The Advanced Settings gets or sets individual setting value as well as retrieve their current ranges. </p> <p><b> Camera plug-in</b> </p> <p>This API, an ECom plug-in, is introduced as an alternative to static linking. This allows the partners to replace the camera implementation more easily. </p> <p><b> Histogram</b> </p> <p>The Histogram provides the functionality needed to work with histogram data in a specified format for an image. </p> <p><b> Overlay</b> </p> <p>The Overlay is used to overlay an image onto the viewfinder, snapshots, still images and video. </p> <p><b> Snapshot</b> </p> <p>The Snapshot allows the client to request snapshot data in a specified image format for both still images and video. </p> <p><b> Viewfinder</b> </p> <p>The Viewfinder enables to pause and resume the direct viewfinder which is currently active and has been started using Ccamera methods. </p> </section> <section><title>See also</title> <p><xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref>  </p> <p><xref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita">Camera Plug-in Support Overview</xref>  </p> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced Camera Settings Overview</xref>  </p> <p><xref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita">Histogram Overview</xref>  </p> <p><xref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita">Overlay API Overview</xref>  </p> <p><xref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita">Snapshot API Overview</xref>  </p> <p><xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder API Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224" xml:lang="en"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section provides an overview of the Camera Framework. </p>
+<section id="GUID-E7594254-F6E9-4462-B34B-0955939BAECC"><title>Purpose</title> <p>The ECam component supplies a header file
+(<filepath>.h</filepath>) and library definition files (<filepath>.def</filepath>).
+These specify the API and binary interfaces that device creators can implement.
+They provide an interface for cross-platform, compatible camera clients to
+access the camera on any given device. The Camera Framework supports any concrete
+ECam implementation only as a ECom plug-in. The ROM plug-in with the highest
+version number is selected at instantiation phase. The Symbian version of
+ECam is a stub for easy replacement by an alternate implementation. </p> </section>
+<section id="GUID-D5088EB7-2014-4D34-84DD-DE88188F9F31"><title>Required background</title> <p>ECam is a component of the
+Multimedia subsystem. </p> </section>
+<section id="GUID-F6CD9CCA-4508-42BE-A3DE-5F0A74CD1D20"><title>Architectural relationships</title> <p>Clients have specific
+priorities and may pre-empt others in their interactions with the camera.
+When a camera client needs to share the camera with another client, it creates
+a handle to the camera and passes this handle to the component. Clients that
+share with each other are called collaborative clients. </p> <p>Platform security
+requires that applications have the <codeph>UserEnvironment</codeph> capability
+to create a Camera object. Clients with the <codeph>MultimediaDD</codeph> capability
+are given a higher priority. </p> <p> <b>Note</b>: The process by which a
+client passes a handle to another client is beyond the scope of this Camera
+Framework guide. </p> <p>Application developers and device creators implement
+the ECam API for the camera hardware on their phone. All cameras are ECom
+plug-ins sub-classed from the <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class. </p> </section>
+<section id="GUID-C8B479FA-6806-43D0-84D2-1F1627CBBE07"><title>API summary</title> <p>The Camera Framework includes the following
+APIs. </p> <p><b>ECam APIs </b> </p> <ul>
+<li id="GUID-A35FED19-B5AE-5134-8EB6-A00F0B7A53C9"><p>Camera </p> <p>This
+provides functionality to control a digital camera and to request and receive
+specific image data from it. </p> <p>See also <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita#GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D/GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB">Key
+Onboard ECam API Classes</xref>  </p> </li>
+<li id="GUID-5327CE4E-6BA6-5602-8D17-0ADFDFBEA5DA"><p>Advanced Settings </p> <p>This
+provides domain specific getters and setters for well known camera hardware
+settings. This is used to query the camera for the list of supported and currently
+active hardware settings. For a specific setting, clients can query the camera
+for the list of supported values. </p> </li>
+<li id="GUID-646EBF1D-FF4F-5C2E-8D87-DD1CE9072A00"><p>Camera Viewfinder </p> <p>This
+provides the support for both direct and client viewfinder. It also provides
+information regarding the current state of that direct viewfinder. The different
+possible states are active, paused and inactive. </p> <p>See also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita#GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D/GUID-FD016694-527F-5009-81FC-B5D8AD1A3A05">Key Viewfinder Classes</xref>  </p> <p> <b>Note</b>: The direct viewfinder
+is applicable only for viewfinders that use Ccamera viewfinder methods. </p> </li>
+<li id="GUID-F63B7492-08A2-5129-B89B-06CCC459EF04"><p>Camera Histogram </p> <p>This
+gets the histogram data in a specified format for an image (for example, luminance
+based histogram, average colour value histogram and so on). </p> </li>
+<li id="GUID-EC209FE8-B8B2-59E0-80DA-13801366F03B"><p>Camera Overlay </p> <p>This
+overlays an image onto the viewfinder, snapshots, still images and video.
+A client can create multiple overlays, each one with different properties. </p> </li>
+<li id="GUID-05130CA9-EFCD-59EA-871E-923E89122234"><p>Camera plug-in Support </p> <p>All
+cameras are ECom plug-ins sub-classed from <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class
+and register support for the interface <xref href="GUID-ED2C5C88-0EBF-3793-A451-91C5F9030467.dita"><apiname>KUidOnboardCameraPlugin</apiname></xref> in
+their resource file. Symbian introduced plug-in support for ECam from v9.1
+onwards. Before that, device creators were supposed to re-implement ECam,
+which was effectively reference code. </p> </li>
+<li id="GUID-EB2D5447-2D4F-5413-B0A8-17AA86982B0A"><p>Camera Snap Shot </p> <p>Clients
+can use snapshots to show captured images on the display almost instantly
+(while in the background the image may be processed by using some compression
+algorithm before storing the data). The client can specify the properties
+of the snapshot, such as size, background colour and position to be used if
+the snapshot has been scaled and so on. Snapshot object can be created specifically
+for still images and video APIs. </p> </li>
+</ul> </section>
+<section id="GUID-1DA7183B-01F5-468B-8F59-1A817DDA0DC4"><title>Typical uses</title> <p><b>Camera Component Users </b> </p> <ul>
+<li id="GUID-D2AD15FD-E2DE-5137-BE77-650CCD5DE9A6"><p>Camera plug-ins </p> </li>
+<li id="GUID-77873CF0-7319-59D6-9EA6-0B922E7E3A3F"><p>Multimedia Framework
+plug-ins </p> </li>
+</ul> <p><b>Camera
+Component tasks</b> </p> <p>The camera component is used for the following: </p> <ul>
+<li id="GUID-4A7DF7A6-4E35-53DB-9F56-A5D0E2685FBA"><p>Onboard Camera </p> </li>
+<li id="GUID-DF4050DA-AEC1-5C91-9466-FC685B21EBCC"><p>Camera plug-in Support </p> </li>
+<li id="GUID-4D9B817A-666C-5A15-B285-5B292C209C5A"><p>Advanced Settings </p> </li>
+<li id="GUID-E187EEC6-C048-5AB0-944B-BCBFC2CFD986"><p>Camera plug-in </p> </li>
+<li id="GUID-DD4EB3CF-EEAC-5208-989D-1B9A94320CCF"><p>Histogram </p> </li>
+<li id="GUID-4F24A091-31CE-592E-9447-A5424FA814C5"><p>Overlay </p> </li>
+<li id="GUID-7F01D2E4-49E3-53C9-AE0A-D40BB6C8304E"><p>Snapshot </p> </li>
+<li id="GUID-EBD1D801-E9FE-561D-A656-AE4095B878E4"><p>Viewfinder </p> </li>
+</ul> <p><b> Onboard
+Camera </b> </p> <p>The Onboard Camera provides functionality to control a
+digital camera and to request and receive specific image data from it. </p> <p><b> Advanced Settings </b> </p> <p>The Advanced Settings gets or sets individual
+setting value as well as retrieve their current ranges. </p> <p><b> Camera plug-in</b> </p> <p>This API, an ECom plug-in, is introduced as
+an alternative to static linking. This allows the partners to replace the
+camera implementation more easily. </p> <p><b> Histogram</b> </p> <p>The Histogram provides the functionality needed to work with histogram
+data in a specified format for an image. </p> <p><b> Overlay</b> </p> <p>The Overlay is used to overlay an image onto the
+viewfinder, snapshots, still images and video. </p> <p><b> Snapshot</b> </p> <p>The Snapshot allows the client to request snapshot
+data in a specified image format for both still images and video. </p> <p><b> Viewfinder</b> </p> <p>The Viewfinder enables to pause and resume the
+direct viewfinder which is currently active and has been started using Ccamera
+methods. </p> </section>
+<section id="GUID-47470D3B-FFA2-495C-BBCC-2267EFA839A7"><title>See also</title> <p><xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
+Camera Overview</xref>  </p> <p><xref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita">Camera
+Plug-in Support Overview</xref>  </p> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced
+Camera Settings Overview</xref>  </p> <p><xref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita">Histogram
+Overview</xref>  </p> <p><xref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita">Overlay
+API Overview</xref>  </p> <p><xref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita">Snapshot
+API Overview</xref>  </p> <p><xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder
+API Overview</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e233427_href.png has changed
Binary file Symbian3/SDK/Source/GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e237164_href.png has changed
--- a/Symbian3/SDK/Source/GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418"><title>Contact Items Management</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Contact Item is an element in a Contact Database. Contact Items can be added, read, edited and removed from the database. As the diagram below shows, a Contact Item can be: </p> <ul><li id="GUID-39BF4108-CFC9-54CD-BC88-81C41984601E"><p>a contact card - either generic cards (<xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita"><apiname>CContactCard</apiname></xref>) or the device owner's card (<xref href="GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40.dita"><apiname>CContactOwnCard</apiname></xref>) </p> </li> <li id="GUID-06168476-8C2F-5944-A5FD-B37BB2ABB032"><p>a template card (<xref href="GUID-D144F6EE-B50D-3EC8-BAD7-A0E7590CD512.dita"><apiname>CContactTemplate</apiname></xref>) - a card that sets the initial fields for other Contact Items </p> </li> <li id="GUID-7C15AAFE-A236-5036-9C55-E647B6DF46C6"><p>a collection of Contact Items (<xref href="GUID-98A3BF93-A1EF-32C3-B98C-680A515D9985.dita"><apiname>CContactItemPlusGroup</apiname></xref>) - a group that holds a set of associated Contact Item IDs </p> </li> <li id="GUID-21FAB277-889F-52F7-941C-06F803983319"><p>a contact which maps to the device's ICC (<xref href="GUID-BEC62AFD-2CDA-387D-A290-2221D88FD2B8.dita"><apiname>CContactICCEntry</apiname></xref>) or SIM (<xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita"><apiname>CContactCard</apiname></xref>). </p> </li> </ul> <p>Each Contact Item is uniquely identified in the database by a Contact Item ID (<xref href="GUID-B1F75A76-9F02-3D88-B76F-1489319B7108.dita"><apiname>TContactItemId</apiname></xref>). More than one Contact Item ID is referred to using a Contact Item ID array (<xref href="GUID-7CACA76F-00E5-3A69-966E-1D40E64F0E27.dita"><apiname>CContactIdArray</apiname></xref>). </p> <fig id="GUID-10046728-05A3-5A02-B9C0-A3AAF33AD8D5"><title>
-          CONTACT ITEM HIERARCHY 
-        </title> <image href="GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e377914_href.png" placement="inline"/></fig> <p>Contact Items have an access count and attributes ('hidden', for example). The access count is a record of the number of objects referencing a Contact Item. A Contact Item cannot be fully deleted until its access count is zero. </p> <p>Note: Fields in a Contact Item also have attributes. Attribute values specified in the Contact Item override those in the contained fields. </p> <p>Contact Items are accessed through the <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> class. Opening a Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-05A0BF3B-6F83-300C-A70D-3FEB069A3964"><apiname>CContactDatabase::OpenContactL()</apiname></xref>) locks it so that it cannot be edited by another client. Closing the Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-0D90CADE-D766-3A39-9928-F4E8936B52FB"><apiname>CContactDatabase::CloseContactL()</apiname></xref>) releases the lock on the item without saving any changes made to it. Committing the Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-35AD302C-659C-3705-961A-3730F2975B25"><apiname>CContactDatabase::CommitContactL()</apiname></xref>) releases the lock and saves any changes made to it. </p> <section id="GUID-D41E051D-CA35-559C-803B-811008FD4089"><title>Contact Item Fields</title> <p>Each Contact Item contains a number of fields (<xref href="GUID-8ECF9E69-5102-37C6-BF4F-E4C543026304.dita"><apiname>CContactItemFieldSet</apiname></xref>). Each field (<xref href="GUID-6466EF81-CAFC-3098-8E2F-D55AB77F2B99.dita"><apiname>CContactItemField</apiname></xref>) in <xref href="GUID-8ECF9E69-5102-37C6-BF4F-E4C543026304.dita"><apiname>CContactItemFieldSet</apiname></xref> has a content type, (<xref href="GUID-96249829-E053-3DB5-ABEC-77C9C8A0BB69.dita"><apiname>CContentType</apiname></xref>), and a storage type, (<xref href="GUID-35235317-4E31-3ED4-9798-1B2621F89265.dita"><apiname>TStorageType</apiname></xref>) and the field data (<xref href="GUID-429B1D62-189C-3DE1-AABD-C162B0593992.dita"><apiname>CContactTextField</apiname></xref>, <xref href="GUID-C44B4C53-417E-330F-A651-FEB97B3FE75F.dita"><apiname>CContactStoreField</apiname></xref>, <xref href="GUID-ABBBE7AC-F837-3039-B2A3-6A7B4E11F82D.dita"><apiname>CContactAgentField</apiname></xref> or <xref href="GUID-F7BC1DB1-C8AA-371A-B930-1DB9B7360949.dita"><apiname>CContactDateField</apiname></xref>). </p> <p>A content type contains at least one UID, using <xref href="GUID-84023E98-6C2C-31CE-9DDC-15D92650AC23.dita"><apiname>TFieldType</apiname></xref>. A storage type identifies the type of data (text, binary, contact agent ID, date/time) stored in a Contact Item field. As numeric field data is not supported all numbers are stored as text. </p> <p>Each field can also have a label which identifies the field to a user, for example, first name, last name. Fields can have attributes assigned to them such as hidden, disabled, synchronised, read only, user added, template and speed dial. </p> </section> <section id="GUID-C8B3F417-57B3-548B-8247-9171ABAECED9"><title>Contact Groups</title> <p>A Contact Group (<xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita"><apiname>CContactGroup</apiname></xref> class) is a Contact Item which holds a set of associated Contact Item IDs. The members of the group may be contact cards, own cards, or even other groups. The group has a label which identifies the group such as 'family', or 'colleagues' to users. The type of a Contact Group is <xref href="GUID-7770D130-465B-3360-8BB4-0870F81EC8C9.dita"><apiname>KUidContactGroup</apiname></xref>, as returned by <xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita#GUID-F823D586-386F-300B-82D2-8365695BA7A0/GUID-BE8C8EBC-4402-3E04-ADD4-7843B65AB8A6"><apiname>CContactGroup::Type()</apiname></xref>. </p> <p>It is possible to construct a group using <xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita#GUID-F823D586-386F-300B-82D2-8365695BA7A0/GUID-61DCBD98-BF07-3DB0-A02B-603A99C7DA58"><apiname>CContactGroup::CreateContactGroupL()</apiname></xref>. These functions create the group, optionally with a label, add it to the database, and return a pointer to it. To create an association between a card and a group, use <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-38EEDF68-F1F8-3286-8525-24822B75FEBC"><apiname>CContactDatabase::AddContactToGroupL()</apiname></xref>. To remove the association, use <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-981C88EC-2089-3CE0-8DDF-03F228EC75F7"><apiname>CContactDatabase::RemoveContactFromGroupL()</apiname></xref>. To find out which groups a card belongs to, use <xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita#GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164/GUID-C67AAC3C-6925-3CE4-9F4D-C7B955A95A9A"><apiname>CContactCard::GroupsJoinedLC()</apiname></xref> or <xref href="GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40.dita#GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40/GUID-4162EB84-E4D1-387B-B92D-DFD4738C5734"><apiname>CContactOwnCard::GroupsJoinedLC()</apiname></xref>. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418"><title>Contact Items Management</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Contact Item is an element in a Contact Database. Contact Items can be added, read, edited and removed from the database. As the diagram below shows, a Contact Item can be: </p> <ul><li id="GUID-39BF4108-CFC9-54CD-BC88-81C41984601E"><p>a contact card - either generic cards (<xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita"><apiname>CContactCard</apiname></xref>) or the device owner's card (<xref href="GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40.dita"><apiname>CContactOwnCard</apiname></xref>) </p> </li> <li id="GUID-06168476-8C2F-5944-A5FD-B37BB2ABB032"><p>a template card (<xref href="GUID-D144F6EE-B50D-3EC8-BAD7-A0E7590CD512.dita"><apiname>CContactTemplate</apiname></xref>) - a card that sets the initial fields for other Contact Items </p> </li> <li id="GUID-7C15AAFE-A236-5036-9C55-E647B6DF46C6"><p>a collection of Contact Items (<xref href="GUID-98A3BF93-A1EF-32C3-B98C-680A515D9985.dita"><apiname>CContactItemPlusGroup</apiname></xref>) - a group that holds a set of associated Contact Item IDs </p> </li> <li id="GUID-21FAB277-889F-52F7-941C-06F803983319"><p>a contact which maps to the device's ICC (<xref href="GUID-BEC62AFD-2CDA-387D-A290-2221D88FD2B8.dita"><apiname>CContactICCEntry</apiname></xref>) or SIM (<xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita"><apiname>CContactCard</apiname></xref>). </p> </li> </ul> <p>Each Contact Item is uniquely identified in the database by a Contact Item ID (<xref href="GUID-B1F75A76-9F02-3D88-B76F-1489319B7108.dita"><apiname>TContactItemId</apiname></xref>). More than one Contact Item ID is referred to using a Contact Item ID array (<xref href="GUID-7CACA76F-00E5-3A69-966E-1D40E64F0E27.dita"><apiname>CContactIdArray</apiname></xref>). </p> <fig id="GUID-10046728-05A3-5A02-B9C0-A3AAF33AD8D5"><title>
+          CONTACT ITEM HIERARCHY 
+        </title> <image href="GUID-16C323DC-B43F-5621-B617-C31FBB25379B_d0e371844_href.png" placement="inline"/></fig> <p>Contact Items have an access count and attributes ('hidden', for example). The access count is a record of the number of objects referencing a Contact Item. A Contact Item cannot be fully deleted until its access count is zero. </p> <p>Note: Fields in a Contact Item also have attributes. Attribute values specified in the Contact Item override those in the contained fields. </p> <p>Contact Items are accessed through the <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> class. Opening a Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-05A0BF3B-6F83-300C-A70D-3FEB069A3964"><apiname>CContactDatabase::OpenContactL()</apiname></xref>) locks it so that it cannot be edited by another client. Closing the Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-0D90CADE-D766-3A39-9928-F4E8936B52FB"><apiname>CContactDatabase::CloseContactL()</apiname></xref>) releases the lock on the item without saving any changes made to it. Committing the Contact Item (using <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-35AD302C-659C-3705-961A-3730F2975B25"><apiname>CContactDatabase::CommitContactL()</apiname></xref>) releases the lock and saves any changes made to it. </p> <section id="GUID-D41E051D-CA35-559C-803B-811008FD4089"><title>Contact Item Fields</title> <p>Each Contact Item contains a number of fields (<xref href="GUID-8ECF9E69-5102-37C6-BF4F-E4C543026304.dita"><apiname>CContactItemFieldSet</apiname></xref>). Each field (<xref href="GUID-6466EF81-CAFC-3098-8E2F-D55AB77F2B99.dita"><apiname>CContactItemField</apiname></xref>) in <xref href="GUID-8ECF9E69-5102-37C6-BF4F-E4C543026304.dita"><apiname>CContactItemFieldSet</apiname></xref> has a content type, (<xref href="GUID-96249829-E053-3DB5-ABEC-77C9C8A0BB69.dita"><apiname>CContentType</apiname></xref>), and a storage type, (<xref href="GUID-35235317-4E31-3ED4-9798-1B2621F89265.dita"><apiname>TStorageType</apiname></xref>) and the field data (<xref href="GUID-429B1D62-189C-3DE1-AABD-C162B0593992.dita"><apiname>CContactTextField</apiname></xref>, <xref href="GUID-C44B4C53-417E-330F-A651-FEB97B3FE75F.dita"><apiname>CContactStoreField</apiname></xref>, <xref href="GUID-ABBBE7AC-F837-3039-B2A3-6A7B4E11F82D.dita"><apiname>CContactAgentField</apiname></xref> or <xref href="GUID-F7BC1DB1-C8AA-371A-B930-1DB9B7360949.dita"><apiname>CContactDateField</apiname></xref>). </p> <p>A content type contains at least one UID, using <xref href="GUID-84023E98-6C2C-31CE-9DDC-15D92650AC23.dita"><apiname>TFieldType</apiname></xref>. A storage type identifies the type of data (text, binary, contact agent ID, date/time) stored in a Contact Item field. As numeric field data is not supported all numbers are stored as text. </p> <p>Each field can also have a label which identifies the field to a user, for example, first name, last name. Fields can have attributes assigned to them such as hidden, disabled, synchronised, read only, user added, template and speed dial. </p> </section> <section id="GUID-C8B3F417-57B3-548B-8247-9171ABAECED9"><title>Contact Groups</title> <p>A Contact Group (<xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita"><apiname>CContactGroup</apiname></xref> class) is a Contact Item which holds a set of associated Contact Item IDs. The members of the group may be contact cards, own cards, or even other groups. The group has a label which identifies the group such as 'family', or 'colleagues' to users. The type of a Contact Group is <xref href="GUID-7770D130-465B-3360-8BB4-0870F81EC8C9.dita"><apiname>KUidContactGroup</apiname></xref>, as returned by <xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita#GUID-F823D586-386F-300B-82D2-8365695BA7A0/GUID-BE8C8EBC-4402-3E04-ADD4-7843B65AB8A6"><apiname>CContactGroup::Type()</apiname></xref>. </p> <p>It is possible to construct a group using <xref href="GUID-F823D586-386F-300B-82D2-8365695BA7A0.dita#GUID-F823D586-386F-300B-82D2-8365695BA7A0/GUID-61DCBD98-BF07-3DB0-A02B-603A99C7DA58"><apiname>CContactGroup::CreateContactGroupL()</apiname></xref>. These functions create the group, optionally with a label, add it to the database, and return a pointer to it. To create an association between a card and a group, use <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-38EEDF68-F1F8-3286-8525-24822B75FEBC"><apiname>CContactDatabase::AddContactToGroupL()</apiname></xref>. To remove the association, use <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-981C88EC-2089-3CE0-8DDF-03F228EC75F7"><apiname>CContactDatabase::RemoveContactFromGroupL()</apiname></xref>. To find out which groups a card belongs to, use <xref href="GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164.dita#GUID-CCE5DB7C-AD68-3F8C-8720-14CD1FC3D164/GUID-C67AAC3C-6925-3CE4-9F4D-C7B955A95A9A"><apiname>CContactCard::GroupsJoinedLC()</apiname></xref> or <xref href="GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40.dita#GUID-942BB679-256F-3DD3-A027-6A40E1DE9C40/GUID-4162EB84-E4D1-387B-B92D-DFD4738C5734"><apiname>CContactOwnCard::GroupsJoinedLC()</apiname></xref>. </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e3183_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e4458_href.png has changed
Binary file Symbian3/SDK/Source/GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e10475_href.png has changed
Binary file Symbian3/SDK/Source/GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e9200_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e299302_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e305329_href.png has changed
Binary file Symbian3/SDK/Source/GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e3412_href.png has changed
Binary file Symbian3/SDK/Source/GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e4687_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e324269_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e330426_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e220875_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37D2EFAE-FB55-5015-90CE-1361144C411E_d0e224612_href.png has changed
Binary file Symbian3/SDK/Source/GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e323490_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-37DCD20D-E123-5B62-976D-F91AD99A765D_d0e329647_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1" xml:lang="en"><title>UI
-Control Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4DB4AA3B-1CC9-4829-9146-B07BBDDEBAC5-GENID-1-8-1-3-1-1-7-1-3-1-2-1"><title>Architectural
-relationships</title> <p>The control framework provides an abstract middle
-layer between the low-level windowing functionality, provided by the Window
-Server, and concrete user interface classes provided by UIKON and UI variant-specific
-libraries. </p> <p>Application developers use the API directly to create their
-own controls and indirectly through derived classes provided by UIKON and
-AVKON. </p> <fig id="GUID-DD81BA7E-07D0-53C7-9B42-7BE263CC82D3-GENID-1-8-1-3-1-1-7-1-3-1-2-1-4">
-<title>              Cone architectural relationships            </title>
-<image href="GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e15172_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9A9F72A2-0CA0-488A-91DE-35FD0A88B6CD-GENID-1-8-1-3-1-1-7-1-3-1-2-2"><title>Description</title> <p><b>Controls</b> </p> <p>A
-control is a rectangular area of a window that may respond to user input.
-Controls have a number of properties that determine their behavior and their
-relationships to other controls and windows. </p> <p>A control is represented
-by the class <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. </p> <p>A <b>simple control</b> is
-one which contains no other controls. </p> <p>A <b>container control</b> is
-one which contains one or more controls. A container control is also referred
-to as a <b>compound control</b>. The contained controls may themselves be
-container controls. When a control is contained in a container control it
-is called a <b>component control</b>. A component control is always redrawn
-when its container control is redrawn. </p> <p>The following diagram shows
-simple controls in orange and container controls in grey. </p> <fig id="GUID-771A429A-B61E-5C45-83A9-4B9F76C40FB9-GENID-1-8-1-3-1-1-7-1-3-1-2-2-8">
-<title>                 Simple and compound controls               </title>
-<image href="GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e15221_href.png" placement="inline"/>
-</fig> <p><b>Controls and Windows </b> </p> <p>A window may be considered
-as a transparent layer. Windows are managed by the Window Server and described <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">elsewhere</xref>. A control
-provides a means of access to a window - it can be drawn onto the window and
-can receive input. </p> <p>Each window has a one-to-one relationship with
-a single control that covers it precisely. This control is referred to as
-a <b>window-owning control</b>. A window-owning control shares the behavior
-of its window, in particular the parent-child window relationships which govern
-the window's position and overlapping behavior. </p> <p>A <b>non-window-owning
-control</b> typically covers only part of a window. It cannot be moved around
-on the screen independently of its window, cannot draw outside its window
-and is always a component control. </p> <p>You might think of a window-owning
-control as a piece of glass and a non-window-owning control as a sticker on
-a window-owning control. </p> <p><b>Application User Interface (AppUi) framework</b> </p> <p>The
-application user interface framework provides support for the distribution
-of key events to an application's controls. It maintains a control stack to
-which an application must add all the top-level container controls that it
-wishes to handle key events, setting a priority for each. When a key event
-occurs, the framework offers it to each control on the stack in priority order
-until it is consumed. </p> <p>The application user interface framework is
-provided by the base class <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. UIKON and UI variants
-specialize <codeph>CCoeAppUi</codeph> further. Applications derive from the
-variant AppUi. </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides a simplified
-interface to the <xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View
-Server</xref> which enables seamless switching between different views across
-various applications. </p> <p><b>Control Environment (CoeEnv)</b> </p> <p>The
-Control Environment simplifies the interface to the Window Server and provides
-an environment for creating controls. It is a single instance (a singleton)
-of the class <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> which encapsulates an active scheduler
-and active objects for communicating with the window server. <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> is
-created automatically by the framework and a pointer stored in Thread Local
-Storage (TLS). It is available through <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-BB8AF6C8-F7C8-3478-858A-4E2C68DF1B7A"><apiname>CCoeControl::CoeEnv()</apiname></xref>, <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita#GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90/GUID-6D8B3C54-087B-36C6-81A4-E07E92AA9D72"><apiname>CCoeAppUi::CoeEnv()</apiname></xref> and
-through its own static function, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita#GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40/GUID-7A9CB8EE-520A-30E2-BA54-5BEFBB56717F"><apiname>CCoeEnv::Static()</apiname></xref>, which
-is less efficient. </p> <p>The control environment also provides simplified
-access to drawing functions, fonts, and resource files which are used by most
-applications. </p> </section>
-<section id="GUID-060D338D-BADE-46A6-B7B1-DB28F07B39D3-GENID-1-8-1-3-1-1-7-1-3-1-2-3"><title>See also</title> <ul>
-<li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li>
-<li><p><xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View Server
-Overview</xref></p></li>
-<li><p><xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window Server</xref></p></li>
-<li><p><xref href="GUID-EEAB5A2F-AD1F-57B9-98AA-20DEEA23C3C2.dita">Asynchronous
-Programming (active scheduler &amp; active objects)</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-6-1-1-4-1-6-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-6-1-1-4-1-6-1-3-1" xml:lang="en"><title>UI
-Control Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4DB4AA3B-1CC9-4829-9146-B07BBDDEBAC5-GENID-1-8-1-6-1-1-4-1-6-1-3-1-2-1"><title>Architectural
-relationships</title> <p>The control framework provides an abstract middle
-layer between the low-level windowing functionality, provided by the Window
-Server, and concrete user interface classes provided by UIKON and UI variant-specific
-libraries. </p> <p>Application developers use the API directly to create their
-own controls and indirectly through derived classes provided by UIKON and
-AVKON. </p> <fig id="GUID-DD81BA7E-07D0-53C7-9B42-7BE263CC82D3-GENID-1-8-1-6-1-1-4-1-6-1-3-1-2-1-4">
-<title>              Cone architectural relationships            </title>
-<image href="GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e51074_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9A9F72A2-0CA0-488A-91DE-35FD0A88B6CD-GENID-1-8-1-6-1-1-4-1-6-1-3-1-2-2"><title>Description</title> <p><b>Controls</b> </p> <p>A
-control is a rectangular area of a window that may respond to user input.
-Controls have a number of properties that determine their behavior and their
-relationships to other controls and windows. </p> <p>A control is represented
-by the class <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. </p> <p>A <b>simple control</b> is
-one which contains no other controls. </p> <p>A <b>container control</b> is
-one which contains one or more controls. A container control is also referred
-to as a <b>compound control</b>. The contained controls may themselves be
-container controls. When a control is contained in a container control it
-is called a <b>component control</b>. A component control is always redrawn
-when its container control is redrawn. </p> <p>The following diagram shows
-simple controls in orange and container controls in grey. </p> <fig id="GUID-771A429A-B61E-5C45-83A9-4B9F76C40FB9-GENID-1-8-1-6-1-1-4-1-6-1-3-1-2-2-8">
-<title>                 Simple and compound controls               </title>
-<image href="GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e51123_href.png" placement="inline"/>
-</fig> <p><b>Controls and Windows </b> </p> <p>A window may be considered
-as a transparent layer. Windows are managed by the Window Server and described <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">elsewhere</xref>. A control
-provides a means of access to a window - it can be drawn onto the window and
-can receive input. </p> <p>Each window has a one-to-one relationship with
-a single control that covers it precisely. This control is referred to as
-a <b>window-owning control</b>. A window-owning control shares the behavior
-of its window, in particular the parent-child window relationships which govern
-the window's position and overlapping behavior. </p> <p>A <b>non-window-owning
-control</b> typically covers only part of a window. It cannot be moved around
-on the screen independently of its window, cannot draw outside its window
-and is always a component control. </p> <p>You might think of a window-owning
-control as a piece of glass and a non-window-owning control as a sticker on
-a window-owning control. </p> <p><b>Application User Interface (AppUi) framework</b> </p> <p>The
-application user interface framework provides support for the distribution
-of key events to an application's controls. It maintains a control stack to
-which an application must add all the top-level container controls that it
-wishes to handle key events, setting a priority for each. When a key event
-occurs, the framework offers it to each control on the stack in priority order
-until it is consumed. </p> <p>The application user interface framework is
-provided by the base class <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. UIKON and UI variants
-specialize <codeph>CCoeAppUi</codeph> further. Applications derive from the
-variant AppUi. </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides a simplified
-interface to the <xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View
-Server</xref> which enables seamless switching between different views across
-various applications. </p> <p><b>Control Environment (CoeEnv)</b> </p> <p>The
-Control Environment simplifies the interface to the Window Server and provides
-an environment for creating controls. It is a single instance (a singleton)
-of the class <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> which encapsulates an active scheduler
-and active objects for communicating with the window server. <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> is
-created automatically by the framework and a pointer stored in Thread Local
-Storage (TLS). It is available through <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-BB8AF6C8-F7C8-3478-858A-4E2C68DF1B7A"><apiname>CCoeControl::CoeEnv()</apiname></xref>, <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita#GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90/GUID-6D8B3C54-087B-36C6-81A4-E07E92AA9D72"><apiname>CCoeAppUi::CoeEnv()</apiname></xref> and
-through its own static function, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita#GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40/GUID-7A9CB8EE-520A-30E2-BA54-5BEFBB56717F"><apiname>CCoeEnv::Static()</apiname></xref>, which
-is less efficient. </p> <p>The control environment also provides simplified
-access to drawing functions, fonts, and resource files which are used by most
-applications. </p> </section>
-<section id="GUID-060D338D-BADE-46A6-B7B1-DB28F07B39D3-GENID-1-8-1-6-1-1-4-1-6-1-3-1-2-3"><title>See also</title> <ul>
-<li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li>
-<li><p><xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View Server
-Overview</xref></p></li>
-<li><p><xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window Server</xref></p></li>
-<li><p><xref href="GUID-EEAB5A2F-AD1F-57B9-98AA-20DEEA23C3C2.dita">Asynchronous
-Programming (active scheduler &amp; active objects)</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6" xml:lang="en"><title>UI
+Control Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4DB4AA3B-1CC9-4829-9146-B07BBDDEBAC5"><title>Architectural
+relationships</title> <p>The control framework provides an abstract middle
+layer between the low-level windowing functionality, provided by the Window
+Server, and concrete user interface classes provided by UIKON and UI variant-specific
+libraries. </p> <p>Application developers use the API directly to create their
+own controls and indirectly through derived classes provided by UIKON and
+AVKON. </p> <fig id="GUID-DD81BA7E-07D0-53C7-9B42-7BE263CC82D3">
+<title>              Cone architectural relationships            </title>
+<image href="GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e45518_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-9A9F72A2-0CA0-488A-91DE-35FD0A88B6CD"><title>Description</title> <p><b>Controls</b> </p> <p>A
+control is a rectangular area of a window that may respond to user input.
+Controls have a number of properties that determine their behavior and their
+relationships to other controls and windows. </p> <p>A control is represented
+by the class <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. </p> <p>A <b>simple control</b> is
+one which contains no other controls. </p> <p>A <b>container control</b> is
+one which contains one or more controls. A container control is also referred
+to as a <b>compound control</b>. The contained controls may themselves be
+container controls. When a control is contained in a container control it
+is called a <b>component control</b>. A component control is always redrawn
+when its container control is redrawn. </p> <p>The following diagram shows
+simple controls in orange and container controls in grey. </p> <fig id="GUID-771A429A-B61E-5C45-83A9-4B9F76C40FB9">
+<title>                 Simple and compound controls               </title>
+<image href="GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e45567_href.png" placement="inline"/>
+</fig> <p><b>Controls and Windows </b> </p> <p>A window may be considered
+as a transparent layer. Windows are managed by the Window Server and described <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">elsewhere</xref>. A control
+provides a means of access to a window - it can be drawn onto the window and
+can receive input. </p> <p>Each window has a one-to-one relationship with
+a single control that covers it precisely. This control is referred to as
+a <b>window-owning control</b>. A window-owning control shares the behavior
+of its window, in particular the parent-child window relationships which govern
+the window's position and overlapping behavior. </p> <p>A <b>non-window-owning
+control</b> typically covers only part of a window. It cannot be moved around
+on the screen independently of its window, cannot draw outside its window
+and is always a component control. </p> <p>You might think of a window-owning
+control as a piece of glass and a non-window-owning control as a sticker on
+a window-owning control. </p> <p><b>Application User Interface (AppUi) framework</b> </p> <p>The
+application user interface framework provides support for the distribution
+of key events to an application's controls. It maintains a control stack to
+which an application must add all the top-level container controls that it
+wishes to handle key events, setting a priority for each. When a key event
+occurs, the framework offers it to each control on the stack in priority order
+until it is consumed. </p> <p>The application user interface framework is
+provided by the base class <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. UIKON and UI variants
+specialize <codeph>CCoeAppUi</codeph> further. Applications derive from the
+variant AppUi. </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides a simplified
+interface to the <xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View
+Server</xref> which enables seamless switching between different views across
+various applications. </p> <p><b>Control Environment (CoeEnv)</b> </p> <p>The
+Control Environment simplifies the interface to the Window Server and provides
+an environment for creating controls. It is a single instance (a singleton)
+of the class <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> which encapsulates an active scheduler
+and active objects for communicating with the window server. <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> is
+created automatically by the framework and a pointer stored in Thread Local
+Storage (TLS). It is available through <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-BB8AF6C8-F7C8-3478-858A-4E2C68DF1B7A"><apiname>CCoeControl::CoeEnv()</apiname></xref>, <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita#GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90/GUID-6D8B3C54-087B-36C6-81A4-E07E92AA9D72"><apiname>CCoeAppUi::CoeEnv()</apiname></xref> and
+through its own static function, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita#GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40/GUID-7A9CB8EE-520A-30E2-BA54-5BEFBB56717F"><apiname>CCoeEnv::Static()</apiname></xref>, which
+is less efficient. </p> <p>The control environment also provides simplified
+access to drawing functions, fonts, and resource files which are used by most
+applications. </p> </section>
+<section id="GUID-060D338D-BADE-46A6-B7B1-DB28F07B39D3"><title>See also</title> <ul>
+<li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li>
+<li><p><xref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita">View Server
+Overview</xref></p></li>
+<li><p><xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window Server</xref></p></li>
+<li><p><xref href="GUID-EEAB5A2F-AD1F-57B9-98AA-20DEEA23C3C2.dita">Asynchronous
+Programming (active scheduler &amp; active objects)</xref></p></li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e280262_href.png has changed
Binary file Symbian3/SDK/Source/GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e283948_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF" xml:lang="en"><title>Local
-and global handles</title><shortdesc>This document explains the distinction between local and global
-handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This is the issue of Kernel side object visibility.</p>
-<p>Handles are said to be local or global.</p>
-<p>A handle is <i>local</i>, if the Kernel object which that handle represents
-is only visible to the thread that created it; no other thread can open a
-handle to the same Kernel object.</p>
-<p>Typically, code constructs the appropriate <codeph>RHandleBase</codeph> derived
-object, e.g. an <codeph>RMutex</codeph>, and calls its <codeph>Create()</codeph>, <codeph>CreateLocal()</codeph> or
-equivalent function to create the corresponding Kernel object.</p>
-<p>A handle is <i>global</i>, if the Kernel object which that handle represents
-is visible to all threads across all processes; any thread in any process
-can open a handle to that same Kernel object. Typically, such a Kernel object
-is intended for sharing.</p>
-<p>For a global handle. the corresponding Kernel object is assigned a name.
-The name gives that Kernel object an identity and is the key property which
-allows other threads to open a handle onto that same object. It is usual to
-use a <codeph>TFindHandleBase</codeph>  <i>derived</i> class to locate a global
-Kernel object. The following diagram shows the general idea.</p>
-<fig id="GUID-01C60CFA-8CA7-51CC-904E-158EC02959DE">
-<image href="GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e234441_href.png" placement="inline"/>
-</fig>
-<p>See also:</p>
-<ul>
-<li id="GUID-56D39619-C90C-51DF-9475-3B75FB189258"><p><xref href="GUID-FC639517-F138-5E84-B57A-6347F5A47B88.dita">Names
-and fullnames</xref> in reference counting objects.</p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF" xml:lang="en"><title>Local
+and global handles</title><shortdesc>This document explains the distinction between local and global
+handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This is the issue of Kernel side object visibility.</p>
+<p>Handles are said to be local or global.</p>
+<p>A handle is <i>local</i>, if the Kernel object which that handle represents
+is only visible to the thread that created it; no other thread can open a
+handle to the same Kernel object.</p>
+<p>Typically, code constructs the appropriate <codeph>RHandleBase</codeph> derived
+object, e.g. an <codeph>RMutex</codeph>, and calls its <codeph>Create()</codeph>, <codeph>CreateLocal()</codeph> or
+equivalent function to create the corresponding Kernel object.</p>
+<p>A handle is <i>global</i>, if the Kernel object which that handle represents
+is visible to all threads across all processes; any thread in any process
+can open a handle to that same Kernel object. Typically, such a Kernel object
+is intended for sharing.</p>
+<p>For a global handle. the corresponding Kernel object is assigned a name.
+The name gives that Kernel object an identity and is the key property which
+allows other threads to open a handle onto that same object. It is usual to
+use a <codeph>TFindHandleBase</codeph>  <i>derived</i> class to locate a global
+Kernel object. The following diagram shows the general idea.</p>
+<fig id="GUID-01C60CFA-8CA7-51CC-904E-158EC02959DE">
+<image href="GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e230704_href.png" placement="inline"/>
+</fig>
+<p>See also:</p>
+<ul>
+<li id="GUID-56D39619-C90C-51DF-9475-3B75FB189258"><p><xref href="GUID-FC639517-F138-5E84-B57A-6347F5A47B88.dita">Names
+and fullnames</xref> in reference counting objects.</p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,78 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662" xml:lang="en"><title>SendAs
-v2.0</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-9D54D47A-37D9-5229-92D5-B80B442E8B0D"><title>Description</title> <p>The
-application establishes a session with the SendAs server, sets
-a message entry, creates a message, sets its body text, adds a recipient,
-sends the message and closes the session. The sequence of events is detailed
-in the following list: </p> <ul>
-<li id="GUID-ADE16BD9-7B38-5B35-8E72-77E968D1CED2"><p>Create a session with
-the SendAs server using <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita#GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B/GUID-423E2320-FB34-3249-80D9-9AA62C9DDF60"><apiname>CMsvSession::OpenSyncL()</apiname></xref> function. </p> </li>
-<li id="GUID-E1BF3D0E-C278-57F6-9359-4EDC426034BD"><p>Set the message entry
-using the <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita#GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49/GUID-139272C1-EF75-3BD9-AB67-3573C5C2D68C"><apiname>CMsvEntry::SetEntryL()</apiname></xref> function. </p> </li>
-<li id="GUID-C89C044C-B1DF-5541-8F0E-81DBA222E126"><p>After setting the entry,
-the application gets a selection containing the IDs of all the context children,
-using the <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita#GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49/GUID-80D240A0-5896-35A3-AADD-830046776D35"><apiname>CMsvEntry::ChildrenL()</apiname></xref> function. </p> </li>
-<li id="GUID-B2B5D96F-68F3-5000-B615-3AE7DA32E3A3"><p>The connection to the
-server is made using the default number of message slots available to a session,
-which is 4, (<xref href="GUID-C248C8F6-46F2-39AB-A202-CB2D98FCF760.dita"><apiname>KSendAsDefaultMessageSlots</apiname></xref>). </p> </li>
-<li id="GUID-5469B019-40CD-5864-BF4B-43DEC2FDF34F"><p>The draft folder is
-emptied, before creating a new message. </p> </li>
-<li id="GUID-A1D2D778-42D2-51DA-817C-65E350BABB9C"><p>Fetch the names and
-UIDs for the filtered list of message types using the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita#GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3/GUID-B94FAE68-3EB9-3E01-97B7-3A77CE5A4740"><apiname>RSendAs::FilteredMessageTypesL()</apiname></xref> function
-to create a SendAs message. Then the UID based on the message type is returned,
-and with the entry set on the drafts folder a SendAs message is created by
-calling the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-2B52A16E-FD71-3E9E-89A1-E154F01F5A59"><apiname>RSendAsMessage::CreateL()</apiname></xref> function. </p> </li>
-<li id="GUID-8CE79BC4-4240-5E94-851B-2E13DFB3B271"><p>Set a body text for
-the message and specify the recipients. In this example, the body text is
-set using an option, which is read from the user. Option given to the user
-are '1' for 8-bit encoding, '2' for 16-bit encoding and '0' or by default
-its unicode type of encoding. The encoded descriptor is set as the message's
-body text using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-6823DF51-D9D6-384C-9FE3-C00D30D3B232"><apiname>RSendAsMessage::SetBodyTextL()</apiname></xref>function. </p></li>
-<li><p>The recipients are added using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-9F433FF9-0276-34B0-ADF3-F332E90A9248"><apiname>RSendAsMessage::AddRecipientL()</apiname></xref> function.
-The recipient's address is held in a descriptor. The alias is the displayed
-recipient name.</p></li>
-<li id="GUID-EB161170-E53F-5892-B7A6-6DF4529C924D"><p>The recipient type is
-one of the <xref href="GUID-3DFEC3A5-1DDB-3BF0-871A-91B96F06EC42.dita"><apiname>TSendAsRecipientType</apiname></xref> enumeration values, that
-is, one of the following: </p> <ul>
-<li id="GUID-7D3CA067-B14A-5694-9C80-3FA740E1D3AA"><p> <xref href="GUID-D8B673F7-1367-3228-813A-D74138533BC2.dita"><apiname>ESendAsRecipientTo</apiname></xref> -
-The recipient goes in the 'To' field. </p> </li>
-<li id="GUID-6E67C22D-4C3F-5F77-8454-AF35290C31A6"><p> <xref href="GUID-A990E3D5-E20A-3CDA-9417-15C234E85F57.dita"><apiname>ESendAsRecipientCc</apiname></xref> -
-The recipient goes in the 'Cc' field </p> </li>
-<li id="GUID-0D5D7039-1970-579C-8629-5C41C3B3538D"><p> <xref href="GUID-EF736A4B-685E-3E77-B4A1-E1B06EAD2523.dita"><apiname>ESendAsRecipientBcc</apiname></xref> -
-The recipient goes in the 'Bcc' field </p> </li>
-</ul> <p>If the 'Cc' field is not supported, the recipient will instead be
-added to the 'To' field since these are functionally equivalent. </p> <p>If
-the 'Bcc' field is not supported, this function will return <xref href="GUID-F89DA3F0-2A48-3F9B-8F08-29350E92D0E4.dita"><apiname>KErrNotSupported</apiname></xref>. </p> </li>
-</ul> <p>The example also displays the names of the accounts present in the
-list. </p> <p>To demonstrate this, 3 new accounts are appended and they are
-displayed in a for-loop by calling <xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita#GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4/GUID-1FB61663-625D-3294-84BA-D811044D1235"><apiname>CSendAsAccounts::AccountNames().MdcaPoint(i)</apiname></xref>,
-where the <xref href="GUID-7D6D682B-4ACD-312E-B0BE-D182930182D0.dita"><apiname>MdcaPoint()</apiname></xref> function takes in the integer value
-of the current iteration in the for-loop and indexes into a descriptor array. </p> <p>The
-example also demonstrates how to refine the available message types of the
-connected session using the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita#GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3/GUID-C87673B0-714F-31C0-9F9E-C095669007AF"><apiname>RSendAs::FilterAgainstCapability()</apiname></xref> function. </p> <p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-28EE1E22-8892-388C-990D-BC0E1F18D88E"><apiname>RSendAsMessage::SendMessage()</apiname></xref> function is used asynchronously to send the message. Finally the <xref href="GUID-2A8E907A-B3AE-3D83-882C-ED0A98B5D39A.dita#GUID-2A8E907A-B3AE-3D83-882C-ED0A98B5D39A/GUID-1EDE87E5-3F1C-34E2-9172-72990783E7E7"><apiname>RsendAs::Close()</apiname></xref> function
-is used to end the session with SendAs server. </p> </section>
-<section id="GUID-5D17C0D4-1D8E-5E85-AEFD-7083A748C728"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90c56a55-33bb-4ab7-a6b8-8932ba181dc8.zip" scope="external">sendAs.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90c56a55-33bb-4ab7-a6b8-8932ba181dc8.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section id="GUID-3AE6EA98-02BC-41BD-AC4E-157A6700A12A"><title>Class summary</title><p> The SendAs v2 example application
-uses the following classes:</p><p><xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry </apiname></xref><xref href="GUID-B36289AC-769F-3A83-BADB-AE0568E97581.dita"><apiname>MMsvEntryObserver </apiname></xref><xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession </apiname></xref><xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs </apiname></xref><xref href="GUID-CB2BB982-F91D-3E06-8D66-56731AA60EB8.dita"><apiname>CSendAsMessageTypes </apiname></xref><xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts </apiname></xref> <xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts </apiname></xref> <xref href="GUID-1FDBA8F6-D1CC-3AE5-AF48-1256D50C5A4F.dita"><apiname>CMsvOperationWait </apiname></xref><xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname> RSendAsMessage </apiname></xref></p></section>
-<section id="GUID-13FDF5EE-00C2-54D4-AF6C-41E3DBDC2B93"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
-how to build an application. </p> <p>The SendAs example builds an executable
-called <filepath>SendAs2Example.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
-CodeWarrior). After launching the executable, depending on the emulator you
-are using, you may need to task away from the app launcher/shell screen to
-view the console. </p> </section>
-<section id="GUID-E9152EC2-A404-549C-B7CA-25CAC97BA686"><title>See also</title> <p>To
-create advanced applications using the SendAs API refer to the complete <xref href="GUID-F7598A84-9736-5310-AAA4-5BCC4BE46C16.dita"> SendAs </xref> API reference
-documentation, which details all the features of the API. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662" xml:lang="en"><title>SendAs v2.0</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-9D54D47A-37D9-5229-92D5-B80B442E8B0D"><title>Description</title> <p>The application establishes a session with the SendAs server,
+sets a message entry, creates a message, sets its body text, adds
+a recipient, sends the message and closes the session. The sequence
+of events is detailed in the following list: </p> <ul>
+<li id="GUID-ADE16BD9-7B38-5B35-8E72-77E968D1CED2"><p>Create a session
+with the SendAs server using <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita#GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B/GUID-1B5B3FA7-403E-354A-8CF3-C04FF58CF293"><apiname>CMsvSession::OpenSyncL(MMsvSessionObserver
+&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-E1BF3D0E-C278-57F6-9359-4EDC426034BD"><p>Set the message
+entry using the <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita#GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49/GUID-6048C7BC-8D3E-34C5-81C1-317521218029"><apiname>CMsvEntry::SetEntryL(TMsvId)</apiname></xref> function. </p> </li>
+<li id="GUID-C89C044C-B1DF-5541-8F0E-81DBA222E126"><p>After setting
+the entry, the application gets a selection containing the IDs of
+all the context children, using the <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita#GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49/GUID-7058F4C4-7EE9-36C3-ACE9-632345D7FF44"><apiname>CMsvEntry::ChildrenL()const</apiname></xref> function. </p> </li>
+<li id="GUID-B2B5D96F-68F3-5000-B615-3AE7DA32E3A3"><p>The connection
+to the server is made using the default number of message slots available
+to a session, which is 4, (<xref href="GUID-C248C8F6-46F2-39AB-A202-CB2D98FCF760.dita"><apiname>KSendAsDefaultMessageSlots</apiname></xref>). </p> </li>
+<li id="GUID-5469B019-40CD-5864-BF4B-43DEC2FDF34F"><p>The draft folder
+is emptied, before creating a new message. </p> </li>
+<li id="GUID-A1D2D778-42D2-51DA-817C-65E350BABB9C"><p>Fetch the names
+and UIDs for the filtered list of message types using the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita#GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3/GUID-B94FAE68-3EB9-3E01-97B7-3A77CE5A4740"><apiname>RSendAs::FilteredMessageTypesL()</apiname></xref> function to create a SendAs
+message. Then the UID based on the message type is returned, and with
+the entry set on the drafts folder a SendAs message is created by
+calling the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-F5C5023D-0066-3DD7-BFFA-CCA8E0DD1C76"><apiname>RSendAsMessage::CreateL(RSendAs &amp;,TSendAsAccount)</apiname></xref> function. </p> </li>
+<li id="GUID-8CE79BC4-4240-5E94-851B-2E13DFB3B271"><p>Set a body text
+for the message and specify the recipients. In this example, the body
+text is set using an option, which is read from the user. Option given
+to the user are '1' for 8-bit encoding, '2' for 16-bit encoding and
+'0' or by default its unicode type of encoding. The encoded descriptor
+is set as the message's body text using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-22E37DB6-35A2-3B01-A785-189B92A7E8D4"><apiname>RSendAsMessage::SetBodyTextL(const
+CRichText &amp;)</apiname></xref>function. </p></li>
+<li><p>The recipients are added using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-106A7A1C-023B-33EB-8925-859E2088FF24"><apiname>RSendAsMessage::AddRecipientL(const
+TDesC &amp;,TSendAsRecipientType)</apiname></xref> function. The recipient's
+address is held in a descriptor. The alias is the displayed recipient
+name.</p></li>
+<li id="GUID-EB161170-E53F-5892-B7A6-6DF4529C924D"><p>The recipient
+type is one of the <xref href="GUID-3DFEC3A5-1DDB-3BF0-871A-91B96F06EC42.dita"><apiname>TSendAsRecipientType</apiname></xref> enumeration
+values, that is, one of the following: </p> <ul>
+<li id="GUID-7D3CA067-B14A-5694-9C80-3FA740E1D3AA"><p> <xref href="GUID-D8B673F7-1367-3228-813A-D74138533BC2.dita"><apiname>ESendAsRecipientTo</apiname></xref> - The recipient goes in the 'To' field. </p> </li>
+<li id="GUID-6E67C22D-4C3F-5F77-8454-AF35290C31A6"><p> <xref href="GUID-A990E3D5-E20A-3CDA-9417-15C234E85F57.dita"><apiname>ESendAsRecipientCc</apiname></xref> - The recipient goes in the 'Cc' field </p> </li>
+<li id="GUID-0D5D7039-1970-579C-8629-5C41C3B3538D"><p> <xref href="GUID-EF736A4B-685E-3E77-B4A1-E1B06EAD2523.dita"><apiname>ESendAsRecipientBcc</apiname></xref> - The recipient goes in the 'Bcc' field </p> </li>
+</ul> <p>If the 'Cc' field is not supported, the recipient will instead
+be added to the 'To' field since these are functionally equivalent. </p> <p>If the 'Bcc' field is not supported, this function will return <xref href="GUID-F89DA3F0-2A48-3F9B-8F08-29350E92D0E4.dita"><apiname>KErrNotSupported</apiname></xref>. </p> </li>
+</ul> <p>The example also displays the names of the accounts present
+in the list. </p> <p>To demonstrate this, 3 new accounts are appended
+and they are displayed in a for-loop by calling <xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita#GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4/GUID-1FB61663-625D-3294-84BA-D811044D1235"><apiname>CSendAsAccounts::AccountNames().MdcaPoint(i)</apiname></xref>, where the <xref href="GUID-7D6D682B-4ACD-312E-B0BE-D182930182D0.dita"><apiname>MdcaPoint()</apiname></xref> function takes in the
+integer value of the current iteration in the for-loop and indexes
+into a descriptor array. </p> <p>The example also demonstrates how
+to refine the available message types of the connected session using
+the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita#GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3/GUID-C87673B0-714F-31C0-9F9E-C095669007AF"><apiname>RSendAs::FilterAgainstCapability()</apiname></xref> function. </p> <p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-28EE1E22-8892-388C-990D-BC0E1F18D88E"><apiname>RSendAsMessage::SendMessage()</apiname></xref> function
+is used asynchronously to send the message. Finally the <xref href="GUID-2A8E907A-B3AE-3D83-882C-ED0A98B5D39A.dita#GUID-2A8E907A-B3AE-3D83-882C-ED0A98B5D39A/GUID-1EDE87E5-3F1C-34E2-9172-72990783E7E7"><apiname>RsendAs::Close()</apiname></xref> function is used to end the session with SendAs server. </p> </section>
+<section id="GUID-5D17C0D4-1D8E-5E85-AEFD-7083A748C728"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90c56a55-33bb-4ab7-a6b8-8932ba181dc8.zip" scope="external">sendAs.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90c56a55-33bb-4ab7-a6b8-8932ba181dc8.html" scope="peer">browse </xref> to view the example code. </p> </section>
+<section id="GUID-3AE6EA98-02BC-41BD-AC4E-157A6700A12A"><title>Class
+summary</title><p> The SendAs v2 example application uses the following
+classes:</p><ul>
+<li><p><xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry </apiname></xref></p></li>
+<li><p><xref href="GUID-B36289AC-769F-3A83-BADB-AE0568E97581.dita"><apiname>MMsvEntryObserver </apiname></xref></p></li>
+<li><p><xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession </apiname></xref></p></li>
+<li><p><xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs </apiname></xref></p></li>
+<li><p><xref href="GUID-CB2BB982-F91D-3E06-8D66-56731AA60EB8.dita"><apiname>CSendAsMessageTypes </apiname></xref></p></li>
+<li><p><xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts </apiname></xref></p></li>
+<li><p><xref href="GUID-90C4FDEE-3E4D-32B3-85E1-52C157AC4AC4.dita"><apiname>CSendAsAccounts </apiname></xref></p></li>
+<li><p><xref href="GUID-1FDBA8F6-D1CC-3AE5-AF48-1256D50C5A4F.dita"><apiname>CMsvOperationWait </apiname></xref></p></li>
+<li><p><xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage </apiname></xref></p></li>
+</ul></section>
+<section id="GUID-13FDF5EE-00C2-54D4-AF6C-41E3DBDC2B93"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build an application. </p> <p>The SendAs example builds an executable called <filepath>SendAs2Example.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for CodeWarrior). After launching the
+executable, depending on the emulator you are using, you may need
+to task away from the app launcher/shell screen to view the console. </p> </section>
+<section id="GUID-E9152EC2-A404-549C-B7CA-25CAC97BA686"><title>See
+also</title> <p>To create advanced applications using the SendAs API
+refer to the complete <xref href="GUID-F7598A84-9736-5310-AAA4-5BCC4BE46C16.dita"> SendAs </xref> API
+reference documentation, which details all the features of the API. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-383A96FD-99C3-593C-B7A2-58153F4050DE-master.png has changed
Binary file Symbian3/SDK/Source/GUID-383A96FD-99C3-593C-B7A2-58153F4050DE_d0e383779_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e176377_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e182971_href.png has changed
--- a/Symbian3/SDK/Source/GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,57 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9" xml:lang="en"><title>User
-Interface MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Note:</b> This example is designed to work with Techview and there
-is no guarantee that it will work on other interfaces </p>
-<section id="GUID-F60E6B58-C75C-4C28-954B-770EE756E397"><title>Example Code</title> <p>Click on the following link to download
-the example:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">.TextMTM.zip</xref> </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files reproduced
-here are the main files contained in the examples directory. Some extra files
-may be needed to run the examples, and these will be found in the appropriate
-examples directory. </p> </section>
-<section id="GUID-EC764B46-F419-46B4-B99B-96EA0935277F"><title>Class summary</title><p> <xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref>  <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname> TMsvId</apiname></xref>  <xref href="GUID-AF724192-6580-3DE3-9287-3A005C0AA932.dita"><apiname> CMsvOperation</apiname></xref>  <xref href="GUID-ED81FC3E-2BDA-390D-A866-9651DF8CE51D.dita"><apiname> CEikFileSaveAsDialog </apiname></xref>  <xref href="GUID-DC21E927-18B3-3BBF-9B67-496F2D158B03.dita"><apiname>CEikDialog</apiname></xref>   </p></section>
-<section id="GUID-5FB87906-A38C-4BAB-92B3-75FF497E9E24"><title>Description</title> <p>The <filepath>txtu</filepath> project
-demonstrates a User Interface MTM. The central class is <codeph>CTextMtmUi</codeph>,
-derived from the User Interface MTM base class <codeph>CBaseMtmUi</codeph>. </p> <p>Note
-that the <filepath>txtu</filepath> project has dependencies on some GUI components
-that might not be present on all SDKs. </p> <p> <filepath>txtu</filepath> implements
-the following MTM functionality: </p> </section>
-<section id="GUID-8F7FD0AC-86BE-486B-B999-43EC6914A457"><title>Basic functions for messages</title> <p> <codeph>Create()</codeph>:
-this creates a new local message in the <systemoutput>Draft</systemoutput> folder,
-with description field set to "New Text", and then invokes edit. </p> <p> <codeph>Edit()</codeph>:
-no UI for editing and viewing text messages is implemented. A simple stub
-is provided that simply appends the text "Edited document" to the message
-and puts up an information message. </p> <p>If an edit command is invoked
-on a remote message entry (an entry under a Text service entry), the MTM offers
-to copy it to the local Inbox first. This is performed by class <codeph>CEditRemoteOperation</codeph>.
-and dialog resource <codeph>r_dialog_refuse_edit_remote_message</codeph>. </p> <p> <codeph>Open()</codeph> and <codeph>View()</codeph>:
-these functions for a message context simply calls the edit function. </p> <p> <codeph>CopyToL()</codeph>, <codeph>MoveToL()</codeph>, <codeph>CopyFromL()</codeph>, <codeph>MoveFromL()</codeph> and <codeph>DeleteL()</codeph>: simple implementations
-of these functions are provided that use the <codeph>CMsvEntry</codeph> copy,
-move and delete functions. These commands are passed to the Message Server,
-which then passes them on to the Server-side Text MTM. </p> <p> <codeph>ReplyL()</codeph> and <codeph>ForwardL()</codeph>:
-there is no UI support for message replies and forwarding. </p> </section>
-<section id="GUID-F1566C1D-A866-46F1-AE7B-34280C7A6FBB"><title>Basic functions for services</title> <p> <codeph>Create()</codeph> and <codeph>Edit()</codeph>:
-when requested to create a new Text service entry, a dialog pops up allowing
-the user to specify the folder associated with the service. This is performed
-by class <codeph>CTextMtmEditServiceDialog</codeph> and resource <codeph>r_dialog_service_settings</codeph>.
-The service entry can then be edited later on, to change the folder. </p> <p>After
-the service entry is created or changed, an automatic refresh will be triggered. </p> </section>
-<section id="GUID-1084490D-DA56-4F06-BCA2-BD4698CE633E"><title>MTM-specific operations</title> <p>The following MTM-specific
-operations are accepted: </p> <ul>
-<li id="GUID-94BF89D8-80D9-53CD-B3C3-40150B16EF6A"><p>Refresh: this command
-refreshes the currently highlighted service entry. It calls the MTM-specific
-operations provided by the Client-side MTM to do this. </p> </li>
-<li id="GUID-65E9CE09-3968-5CA0-90E4-5421B608080C"><p>Export text to file:
-exports the text contained in a text message to a file. This is performed
-by <codeph>DoExportTextFromMessageL()</codeph>. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9" xml:lang="en"><title>User Interface MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Note:</b> This example is designed to work with Techview and
+there is no guarantee that it will work on other interfaces </p>
+<section id="GUID-F60E6B58-C75C-4C28-954B-770EE756E397"><title>Example
+Code</title> <p>Click on the following link to download the example:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">.TextMTM.zip</xref> </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files
+reproduced here are the main files contained in the examples directory.
+Some extra files may be needed to run the examples, and these will
+be found in the appropriate examples directory. </p> </section>
+<section id="GUID-EC764B46-F419-46B4-B99B-96EA0935277F"><title>Class
+summary</title><ul>
+<li><p><xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref></p></li>
+<li><p><xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref></p></li>
+<li><p><xref href="GUID-AF724192-6580-3DE3-9287-3A005C0AA932.dita"><apiname>CMsvOperation</apiname></xref></p></li>
+<li><p><xref href="GUID-ED81FC3E-2BDA-390D-A866-9651DF8CE51D.dita"><apiname>CEikFileSaveAsDialog </apiname></xref></p></li>
+<li><p><xref href="GUID-DC21E927-18B3-3BBF-9B67-496F2D158B03.dita"><apiname>CEikDialog</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-5FB87906-A38C-4BAB-92B3-75FF497E9E24"><title>Description</title> <p>The <filepath>txtu</filepath> project demonstrates a User Interface
+MTM. The central class is <codeph>CTextMtmUi</codeph>, derived from
+the User Interface MTM base class <codeph>CBaseMtmUi</codeph>. </p> <p>Note that the <filepath>txtu</filepath> project has dependencies
+on some GUI components that might not be present on all SDKs. </p> <p> <filepath>txtu</filepath> implements the following MTM functionality: </p> </section>
+<section id="GUID-8F7FD0AC-86BE-486B-B999-43EC6914A457"><title>Basic
+functions for messages</title> <p> <codeph>Create()</codeph>: this
+creates a new local message in the <systemoutput>Draft</systemoutput> folder, with description field set to "New Text", and then invokes
+edit. </p> <p> <codeph>Edit()</codeph>: no UI for editing and viewing
+text messages is implemented. A simple stub is provided that simply
+appends the text "Edited document" to the message and puts up an information
+message. </p> <p>If an edit command is invoked on a remote message
+entry (an entry under a Text service entry), the MTM offers to copy
+it to the local Inbox first. This is performed by class <codeph>CEditRemoteOperation</codeph>. and dialog resource <codeph>r_dialog_refuse_edit_remote_message</codeph>. </p> <p> <codeph>Open()</codeph> and <codeph>View()</codeph>: these
+functions for a message context simply calls the edit function. </p> <p> <codeph>CopyToL()</codeph>, <codeph>MoveToL()</codeph>, <codeph>CopyFromL()</codeph>, <codeph>MoveFromL()</codeph> and <codeph>DeleteL()</codeph>: simple implementations of these functions are provided that use
+the <codeph>CMsvEntry</codeph> copy, move and delete functions. These
+commands are passed to the Message Server, which then passes them
+on to the Server-side Text MTM. </p> <p> <codeph>ReplyL()</codeph> and <codeph>ForwardL()</codeph>: there is no UI support for message
+replies and forwarding. </p> </section>
+<section id="GUID-F1566C1D-A866-46F1-AE7B-34280C7A6FBB"><title>Basic
+functions for services</title> <p> <codeph>Create()</codeph> and <codeph>Edit()</codeph>: when requested to create a new Text service entry,
+a dialog pops up allowing the user to specify the folder associated
+with the service. This is performed by class <codeph>CTextMtmEditServiceDialog</codeph> and resource <codeph>r_dialog_service_settings</codeph>. The service
+entry can then be edited later on, to change the folder. </p> <p>After
+the service entry is created or changed, an automatic refresh will
+be triggered. </p> </section>
+<section id="GUID-1084490D-DA56-4F06-BCA2-BD4698CE633E"><title>MTM-specific
+operations</title> <p>The following MTM-specific operations are accepted: </p> <ul>
+<li id="GUID-94BF89D8-80D9-53CD-B3C3-40150B16EF6A"><p>Refresh: this
+command refreshes the currently highlighted service entry. It calls
+the MTM-specific operations provided by the Client-side MTM to do
+this. </p> </li>
+<li id="GUID-65E9CE09-3968-5CA0-90E4-5421B608080C"><p>Export text
+to file: exports the text contained in a text message to a file. This
+is performed by <codeph>DoExportTextFromMessageL()</codeph>. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1" xml:lang="en"><title>Interacting
-with text editor controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-1"><title>Introduction </title> <p>The
-public parts of the <codeph>MCoeFepAwareTextEditor</codeph> class (which is
-defined in <filepath>epoc32\include\FEPBASE.H</filepath>) are as follows: </p> <codeblock id="GUID-52B6C9B8-1F43-5CBA-85D9-0D472F4F4396-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-1-3" xml:space="preserve">class MCoeFepAwareTextEditor
-    {
-public:
-    virtual void StartFepInlineEditL(const TDesC&amp; aInitialInlineText, TInt aPositionOfInsertionPointInInlineText, TBool aCursorVisibility, const MFormCustomDraw*, MFepInlineTextFormatRetriever&amp;, MFepPointerEventHandlerDuringInlineEdit&amp;)=0;
-    virtual void UpdateFepInlineTextL(const TDesC&amp; aNewInlineText, TInt aPositionOfInsertionPointInInlineText)=0;
-    virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)=0;
-    IMPORT_C void CommitFepInlineEditL(CCoeEnv&amp; aConeEnvironment);
-    virtual void CancelFepInlineEdit()=0;
-    virtual TInt DocumentLengthForFep() const=0;
-    virtual TInt DocumentMaximumLengthForFep() const=0;
-    virtual void SetCursorSelectionForFepL(const TCursorSelection&amp; aCursorSelection)=0;
-    virtual void GetCursorSelectionForFep(TCursorSelection&amp; aCursorSelection) const=0;
-    virtual void GetEditorContentForFep(TDes&amp; aEditorContent, TInt aDocumentPosition, TInt aLengthToRetrieve) const=0;
-    virtual void GetFormatForFep(TCharFormat&amp; aFormat, TInt aDocumentPosition) const=0;
-    virtual void GetScreenCoordinatesForFepL(TPoint&amp; aLeftSideOfBaseLine, TInt&amp; aHeight, TInt&amp; aAscent, TInt aDocumentPosition) const=0;
-    IMPORT_C MCoeFepAwareTextEditor_Extension1* Extension1();
-private:
-    virtual void DoCommitFepInlineEditL()=0;
-    IMPORT_C virtual MCoeFepAwareTextEditor_Extension1* Extension1(TBool&amp; aSetToTrue);
-    };</codeblock> <p>An implementation of this interface is provided by TechView’s <codeph>CEikEdwin</codeph> class
-(<codeph>CEikEdwin</codeph> was part of Uikon until Symbian OS v7.0s). <codeph>MCoeFepAwareTextEditor</codeph> member
-functions can be divided into two categories: <ul>
-<li><p>Functions for inline editing.</p></li>
-<li><p>Other functions that can broadly be categorized under the title 'context
-awareness'.</p></li>
-</ul></p> </section>
-<section id="GUID-1CE89EC8-5BE8-4F4B-8B39-57ACF40109DB-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2"><title>Inline editing</title><p>Inline
-editing means the text to be sent to the application is composed inside the
-target text editing control, rather than in the FEP’s floating window. This
-requires the cooperation of the target text editing control which must implement
-the <codeph>MCoeFepAwareTextEditor</codeph> interface. An inline editing transaction
-consists of the following sequence: </p> <ul>
-<li id="GUID-817D5DC0-5C98-5BD2-A3C3-832D4220C970-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-3-1"><p>a call to <codeph>StartFepInlineEditL()</codeph>, </p> </li>
-<li id="GUID-961F900F-946A-5053-8063-D6ED8ECBDF7D-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-3-2"><p>zero, one or more calls
-to <codeph>UpdateFepInlineTextL()</codeph>, </p> </li>
-<li id="GUID-6C5F14D2-CA78-5194-8B7D-57FD4DA48DD4-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-3-3"><p>finally, a call to either <codeph>CommitFepInlineEditL()</codeph> or <codeph>CancelFepInlineEdit()</codeph>. (Note that <codeph>CCoeFep::SimulateKeyEventsL()</codeph> is not used at
-all in inline editing: the text is sent to the application via an entirely
-different mechanism.) </p> </li>
-</ul> <p>The second parameter (<codeph>TInt           aPositionOfInsertionPointInInlineText</codeph>)
-to <codeph>StartFepInlineEditL()</codeph> and <codeph>UpdateFepInlineTextL()</codeph> indicates
-where, in the inline text (which is passed as the first parameter), the insertion
-point, or cursor, is to appear. Note that the first parameter to <codeph>UpdateFepInlineTextL()</codeph> must
-be used to pass the <i>entire</i> inline text, not merely any new text to
-be combined with the old inline text. The third parameter (<codeph>TBool aCursorVisibility</codeph>)
-controls whether the insertion point is visible or not. As the types of the
-fourth, fifth and sixth parameters are abstract base classes, the FEP must
-create objects derived from these classes (<xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref>, <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> and <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref>) and pass references. These object(s) must remain in existence for the entire
-duration of the inline editing transaction. </p> <p>Note that <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> pointer
-may NULL. <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> belongs to the FORM component
-and is not described here. It enables the FEP to do advanced formatting of
-the inline text. The details of the other two interface classes used in inline
-editing are discussed next. </p> <p> <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> (defined
-in <filepath>epoc32\include\FEPITFR.H</filepath>) has a single (pure) virtual
-function whose signature is as follows: </p> <codeblock id="GUID-06D8A567-223B-5352-B695-6DC3BF1C804A-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-7" xml:space="preserve">virtual void GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const=0;</codeblock> <p>The first parameter is to be set by the function to the format of the
-inline text. For example, TFEP1plugin’s implementation of this function sets
-this parameter to red, underlined text. <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> provides
-a member function for finding out the ambient <codeph>TCharFormat</codeph> of
-the text editor: <codeph>GetFormatForFep()</codeph>. This can be called inside
-the FEP’s implementation of <codeph>GetFormatOfFepInlineText()</codeph> to
-make any necessary adjustments to the format of the inline text to ensure
-that it differentiates itself from the surrounding text. </p> <p>The second
-and third parameters to <codeph>GetFormatOfFepInlineText()</codeph> enable
-different parts of the inline text to have different formats. Their use is
-best illustrated by an example (albeit an artificial one). Suppose the FEP
-requires the first four characters of the inline text to be red, the next
-two characters (if there are any) to be green, and any subsequent characters
-to be blue, the <codeph>GetFormatOfFepInlineText()</codeph> function would
-look as follows: </p> <codeblock id="GUID-F4A7F35F-5EA1-5D6E-9570-44ADBC9D7AB5-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-10" xml:space="preserve">void Xxxxx::GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const
-    {
-    const TInt lengthOfRemainderOfInlineText=iBuffer.Length()-aPositionOfCharacter;
-    aFormat=iBaseFormatForInlineText;
-    aFormat.iFontPresentation.iTextColor.SetRed(0);
-    aFormat.iFontPresentation.iTextColor.SetGreen(0);
-    aFormat.iFontPresentation.iTextColor.SetBlue(0);
-    if (aPositionOfCharacter==0)
-        {
-        // first four characters are red
-        aFormat.iFontPresentation.iTextColor.SetRed(255);
-        aNumberOfCharactersWithSameFormat=Min(4, lengthOfRemainderOfInlineText);
-        }
-    else if (aPositionOfCharacter==4)
-        {
-        // next two characters are green
-        aFormat.iFontPresentation.iTextColor.SetGreen(255);
-        aNumberOfCharactersWithSameFormat=Min(2, lengthOfRemainderOfInlineText);
-        }
-    else if (aPositionOfCharacter==6)
-        {
-        // any subsequent characters are blue
-        aFormat.iFontPresentation.iTextColor.SetBlue(255);
-        aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
-        }
-    }</codeblock> <p> <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref> (which
-is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) gives the FEP
-the opportunity to handle pointer events which occur in the area on the screen
-occupied by the inline text. It has a single (pure) virtual function whose
-signature is as follows: </p> <codeblock id="GUID-3AF75EEB-2FDA-57FD-AC09-7FAE30ACB1FE-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-2-12" xml:space="preserve">virtual void HandlePointerEventInInlineTextL(TPointerEvent::TType aType, TUint aModifiers, TInt aPositionInInlineText)=0;</codeblock> <p>The parameters indicate to the FEP the event’s type (for instance pointer
-down, pointer drag or pointer up), the keyboard modifiers (for instance caps
-lock and shift) and the logical position of the event in the inline text. </p></section>
-<section id="GUID-0BEE5B61-5ACC-4847-996E-E659D518646E-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-3"><title>Context awareness</title><p>As
-well as providing support for inline editing, the <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> interface
-class enables the FEP to find out information about the text editor control
-with focus. <codeph>DocumentLengthForFep()</codeph> returns the length of
-the text held in the text editor. <codeph>DocumentMaximumLengthForFep()</codeph> returns
-the upper limit (if any) on the length of text that the text editor can hold. <codeph>SetCursorSelectionForFepL()</codeph> selects
-the specified text range in the text editor, and <codeph>GetCursorSelectionForFep()</codeph> sets
-its parameter to the selected text range in the text editor. <codeph>GetEditorContentForFep()</codeph> allows
-the FEP to retrieve any segment of the text held in the text editor. <codeph>GetFormatForFep()</codeph> sets
-its first parameter according to the character format at the position in the
-text editor specified by the second parameter. <codeph>GetScreenCoordinatesForFepL()</codeph> sets
-the first parameter to the screen coordinates of the left end of the baseline
-of the character glyph whose position in the text editor is specified by the
-last parameter. The second and third parameters are set, respectively, to
-the height and ascent of the font used at that document position. This function
-can be used, for example, to position a FEP window as close as possible to
-the text editor’s insertion point (in other words, the cursor position). </p> <p>The <codeph>Extension1()</codeph> member
-function of <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> returns a pointer to
-an object of the interface class <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1
-          </apiname></xref> (defined in <filepath>epoc32\include\FEPBASE.H</filepath>).
-This class has two public (pure) virtual functions whose signatures are as
-follows: </p> <codeblock id="GUID-3E87C57E-AF43-5268-BC0A-AC34B62C8BAA-GENID-1-8-1-3-1-1-9-1-4-1-10-1-2-3-4" xml:space="preserve">virtual void SetStateTransferingOwnershipL(CState* aState, TUid aTypeSafetyUid)=0;
-virtual CState* State(TUid aTypeSafetyUid)=0;</codeblock> <p>The <codeph>CState</codeph> class
-is defined within the scope of the <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1</apiname></xref> class.
-The purpose of the UIDs in the two functions above is to enable the FEP to
-safely downcast the <codeph>CState</codeph> pointer returned by the <codeph>State()</codeph> function
-to a pointer to a derived class known about by the FEP. The <codeph>CState</codeph> class
-is provided to enable FEPs to store state information inside text editor controls,
-where that state information is only of interest to the FEP. </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1" xml:lang="en"><title>Interacting
-with text editor controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-1"><title>Introduction </title> <p>The
-public parts of the <codeph>MCoeFepAwareTextEditor</codeph> class (which is
-defined in <filepath>epoc32\include\FEPBASE.H</filepath>) are as follows: </p> <codeblock id="GUID-52B6C9B8-1F43-5CBA-85D9-0D472F4F4396-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-1-3" xml:space="preserve">class MCoeFepAwareTextEditor
-    {
-public:
-    virtual void StartFepInlineEditL(const TDesC&amp; aInitialInlineText, TInt aPositionOfInsertionPointInInlineText, TBool aCursorVisibility, const MFormCustomDraw*, MFepInlineTextFormatRetriever&amp;, MFepPointerEventHandlerDuringInlineEdit&amp;)=0;
-    virtual void UpdateFepInlineTextL(const TDesC&amp; aNewInlineText, TInt aPositionOfInsertionPointInInlineText)=0;
-    virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)=0;
-    IMPORT_C void CommitFepInlineEditL(CCoeEnv&amp; aConeEnvironment);
-    virtual void CancelFepInlineEdit()=0;
-    virtual TInt DocumentLengthForFep() const=0;
-    virtual TInt DocumentMaximumLengthForFep() const=0;
-    virtual void SetCursorSelectionForFepL(const TCursorSelection&amp; aCursorSelection)=0;
-    virtual void GetCursorSelectionForFep(TCursorSelection&amp; aCursorSelection) const=0;
-    virtual void GetEditorContentForFep(TDes&amp; aEditorContent, TInt aDocumentPosition, TInt aLengthToRetrieve) const=0;
-    virtual void GetFormatForFep(TCharFormat&amp; aFormat, TInt aDocumentPosition) const=0;
-    virtual void GetScreenCoordinatesForFepL(TPoint&amp; aLeftSideOfBaseLine, TInt&amp; aHeight, TInt&amp; aAscent, TInt aDocumentPosition) const=0;
-    IMPORT_C MCoeFepAwareTextEditor_Extension1* Extension1();
-private:
-    virtual void DoCommitFepInlineEditL()=0;
-    IMPORT_C virtual MCoeFepAwareTextEditor_Extension1* Extension1(TBool&amp; aSetToTrue);
-    };</codeblock> <p>An implementation of this interface is provided by TechView’s <codeph>CEikEdwin</codeph> class
-(<codeph>CEikEdwin</codeph> was part of Uikon until Symbian OS v7.0s). <codeph>MCoeFepAwareTextEditor</codeph> member
-functions can be divided into two categories: <ul>
-<li><p>Functions for inline editing.</p></li>
-<li><p>Other functions that can broadly be categorized under the title 'context
-awareness'.</p></li>
-</ul></p> </section>
-<section id="GUID-1CE89EC8-5BE8-4F4B-8B39-57ACF40109DB-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2"><title>Inline editing</title><p>Inline
-editing means the text to be sent to the application is composed inside the
-target text editing control, rather than in the FEP’s floating window. This
-requires the cooperation of the target text editing control which must implement
-the <codeph>MCoeFepAwareTextEditor</codeph> interface. An inline editing transaction
-consists of the following sequence: </p> <ul>
-<li id="GUID-817D5DC0-5C98-5BD2-A3C3-832D4220C970-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-3-1"><p>a call to <codeph>StartFepInlineEditL()</codeph>, </p> </li>
-<li id="GUID-961F900F-946A-5053-8063-D6ED8ECBDF7D-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-3-2"><p>zero, one or more calls
-to <codeph>UpdateFepInlineTextL()</codeph>, </p> </li>
-<li id="GUID-6C5F14D2-CA78-5194-8B7D-57FD4DA48DD4-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-3-3"><p>finally, a call to either <codeph>CommitFepInlineEditL()</codeph> or <codeph>CancelFepInlineEdit()</codeph>. (Note that <codeph>CCoeFep::SimulateKeyEventsL()</codeph> is not used at
-all in inline editing: the text is sent to the application via an entirely
-different mechanism.) </p> </li>
-</ul> <p>The second parameter (<codeph>TInt           aPositionOfInsertionPointInInlineText</codeph>)
-to <codeph>StartFepInlineEditL()</codeph> and <codeph>UpdateFepInlineTextL()</codeph> indicates
-where, in the inline text (which is passed as the first parameter), the insertion
-point, or cursor, is to appear. Note that the first parameter to <codeph>UpdateFepInlineTextL()</codeph> must
-be used to pass the <i>entire</i> inline text, not merely any new text to
-be combined with the old inline text. The third parameter (<codeph>TBool aCursorVisibility</codeph>)
-controls whether the insertion point is visible or not. As the types of the
-fourth, fifth and sixth parameters are abstract base classes, the FEP must
-create objects derived from these classes (<xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref>, <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> and <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref>) and pass references. These object(s) must remain in existence for the entire
-duration of the inline editing transaction. </p> <p>Note that <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> pointer
-may NULL. <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> belongs to the FORM component
-and is not described here. It enables the FEP to do advanced formatting of
-the inline text. The details of the other two interface classes used in inline
-editing are discussed next. </p> <p> <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> (defined
-in <filepath>epoc32\include\FEPITFR.H</filepath>) has a single (pure) virtual
-function whose signature is as follows: </p> <codeblock id="GUID-06D8A567-223B-5352-B695-6DC3BF1C804A-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-7" xml:space="preserve">virtual void GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const=0;</codeblock> <p>The first parameter is to be set by the function to the format of the
-inline text. For example, TFEP1plugin’s implementation of this function sets
-this parameter to red, underlined text. <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> provides
-a member function for finding out the ambient <codeph>TCharFormat</codeph> of
-the text editor: <codeph>GetFormatForFep()</codeph>. This can be called inside
-the FEP’s implementation of <codeph>GetFormatOfFepInlineText()</codeph> to
-make any necessary adjustments to the format of the inline text to ensure
-that it differentiates itself from the surrounding text. </p> <p>The second
-and third parameters to <codeph>GetFormatOfFepInlineText()</codeph> enable
-different parts of the inline text to have different formats. Their use is
-best illustrated by an example (albeit an artificial one). Suppose the FEP
-requires the first four characters of the inline text to be red, the next
-two characters (if there are any) to be green, and any subsequent characters
-to be blue, the <codeph>GetFormatOfFepInlineText()</codeph> function would
-look as follows: </p> <codeblock id="GUID-F4A7F35F-5EA1-5D6E-9570-44ADBC9D7AB5-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-10" xml:space="preserve">void Xxxxx::GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const
-    {
-    const TInt lengthOfRemainderOfInlineText=iBuffer.Length()-aPositionOfCharacter;
-    aFormat=iBaseFormatForInlineText;
-    aFormat.iFontPresentation.iTextColor.SetRed(0);
-    aFormat.iFontPresentation.iTextColor.SetGreen(0);
-    aFormat.iFontPresentation.iTextColor.SetBlue(0);
-    if (aPositionOfCharacter==0)
-        {
-        // first four characters are red
-        aFormat.iFontPresentation.iTextColor.SetRed(255);
-        aNumberOfCharactersWithSameFormat=Min(4, lengthOfRemainderOfInlineText);
-        }
-    else if (aPositionOfCharacter==4)
-        {
-        // next two characters are green
-        aFormat.iFontPresentation.iTextColor.SetGreen(255);
-        aNumberOfCharactersWithSameFormat=Min(2, lengthOfRemainderOfInlineText);
-        }
-    else if (aPositionOfCharacter==6)
-        {
-        // any subsequent characters are blue
-        aFormat.iFontPresentation.iTextColor.SetBlue(255);
-        aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
-        }
-    }</codeblock> <p> <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref> (which
-is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) gives the FEP
-the opportunity to handle pointer events which occur in the area on the screen
-occupied by the inline text. It has a single (pure) virtual function whose
-signature is as follows: </p> <codeblock id="GUID-3AF75EEB-2FDA-57FD-AC09-7FAE30ACB1FE-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-2-12" xml:space="preserve">virtual void HandlePointerEventInInlineTextL(TPointerEvent::TType aType, TUint aModifiers, TInt aPositionInInlineText)=0;</codeblock> <p>The parameters indicate to the FEP the event’s type (for instance pointer
-down, pointer drag or pointer up), the keyboard modifiers (for instance caps
-lock and shift) and the logical position of the event in the inline text. </p></section>
-<section id="GUID-0BEE5B61-5ACC-4847-996E-E659D518646E-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-3"><title>Context awareness</title><p>As
-well as providing support for inline editing, the <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> interface
-class enables the FEP to find out information about the text editor control
-with focus. <codeph>DocumentLengthForFep()</codeph> returns the length of
-the text held in the text editor. <codeph>DocumentMaximumLengthForFep()</codeph> returns
-the upper limit (if any) on the length of text that the text editor can hold. <codeph>SetCursorSelectionForFepL()</codeph> selects
-the specified text range in the text editor, and <codeph>GetCursorSelectionForFep()</codeph> sets
-its parameter to the selected text range in the text editor. <codeph>GetEditorContentForFep()</codeph> allows
-the FEP to retrieve any segment of the text held in the text editor. <codeph>GetFormatForFep()</codeph> sets
-its first parameter according to the character format at the position in the
-text editor specified by the second parameter. <codeph>GetScreenCoordinatesForFepL()</codeph> sets
-the first parameter to the screen coordinates of the left end of the baseline
-of the character glyph whose position in the text editor is specified by the
-last parameter. The second and third parameters are set, respectively, to
-the height and ascent of the font used at that document position. This function
-can be used, for example, to position a FEP window as close as possible to
-the text editor’s insertion point (in other words, the cursor position). </p> <p>The <codeph>Extension1()</codeph> member
-function of <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> returns a pointer to
-an object of the interface class <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1
-          </apiname></xref> (defined in <filepath>epoc32\include\FEPBASE.H</filepath>).
-This class has two public (pure) virtual functions whose signatures are as
-follows: </p> <codeblock id="GUID-3E87C57E-AF43-5268-BC0A-AC34B62C8BAA-GENID-1-8-1-6-1-1-4-1-8-1-4-1-10-1-2-3-4" xml:space="preserve">virtual void SetStateTransferingOwnershipL(CState* aState, TUid aTypeSafetyUid)=0;
-virtual CState* State(TUid aTypeSafetyUid)=0;</codeblock> <p>The <codeph>CState</codeph> class
-is defined within the scope of the <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1</apiname></xref> class.
-The purpose of the UIDs in the two functions above is to enable the FEP to
-safely downcast the <codeph>CState</codeph> pointer returned by the <codeph>State()</codeph> function
-to a pointer to a derived class known about by the FEP. The <codeph>CState</codeph> class
-is provided to enable FEPs to store state information inside text editor controls,
-where that state information is only of interest to the FEP. </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-38679CA2-0066-589C-988F-AC14B7E2F107.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-38679CA2-0066-589C-988F-AC14B7E2F107" xml:lang="en"><title>Interacting
+with text editor controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-9C16757D-DC75-5223-A555-550B8D3C1DB4"><title>Introduction </title> <p>The
+public parts of the <codeph>MCoeFepAwareTextEditor</codeph> class (which is
+defined in <filepath>epoc32\include\FEPBASE.H</filepath>) are as follows: </p> <codeblock id="GUID-52B6C9B8-1F43-5CBA-85D9-0D472F4F4396" xml:space="preserve">class MCoeFepAwareTextEditor
+    {
+public:
+    virtual void StartFepInlineEditL(const TDesC&amp; aInitialInlineText, TInt aPositionOfInsertionPointInInlineText, TBool aCursorVisibility, const MFormCustomDraw*, MFepInlineTextFormatRetriever&amp;, MFepPointerEventHandlerDuringInlineEdit&amp;)=0;
+    virtual void UpdateFepInlineTextL(const TDesC&amp; aNewInlineText, TInt aPositionOfInsertionPointInInlineText)=0;
+    virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)=0;
+    IMPORT_C void CommitFepInlineEditL(CCoeEnv&amp; aConeEnvironment);
+    virtual void CancelFepInlineEdit()=0;
+    virtual TInt DocumentLengthForFep() const=0;
+    virtual TInt DocumentMaximumLengthForFep() const=0;
+    virtual void SetCursorSelectionForFepL(const TCursorSelection&amp; aCursorSelection)=0;
+    virtual void GetCursorSelectionForFep(TCursorSelection&amp; aCursorSelection) const=0;
+    virtual void GetEditorContentForFep(TDes&amp; aEditorContent, TInt aDocumentPosition, TInt aLengthToRetrieve) const=0;
+    virtual void GetFormatForFep(TCharFormat&amp; aFormat, TInt aDocumentPosition) const=0;
+    virtual void GetScreenCoordinatesForFepL(TPoint&amp; aLeftSideOfBaseLine, TInt&amp; aHeight, TInt&amp; aAscent, TInt aDocumentPosition) const=0;
+    IMPORT_C MCoeFepAwareTextEditor_Extension1* Extension1();
+private:
+    virtual void DoCommitFepInlineEditL()=0;
+    IMPORT_C virtual MCoeFepAwareTextEditor_Extension1* Extension1(TBool&amp; aSetToTrue);
+    };</codeblock> <p>An implementation of this interface is provided by TechView’s <codeph>CEikEdwin</codeph> class
+(<codeph>CEikEdwin</codeph> was part of Uikon until Symbian OS v7.0s). <codeph>MCoeFepAwareTextEditor</codeph> member
+functions can be divided into two categories: <ul>
+<li><p>Functions for inline editing.</p></li>
+<li><p>Other functions that can broadly be categorized under the title 'context
+awareness'.</p></li>
+</ul></p> </section>
+<section id="GUID-1CE89EC8-5BE8-4F4B-8B39-57ACF40109DB"><title>Inline editing</title><p>Inline
+editing means the text to be sent to the application is composed inside the
+target text editing control, rather than in the FEP’s floating window. This
+requires the cooperation of the target text editing control which must implement
+the <codeph>MCoeFepAwareTextEditor</codeph> interface. An inline editing transaction
+consists of the following sequence: </p> <ul>
+<li id="GUID-817D5DC0-5C98-5BD2-A3C3-832D4220C970"><p>a call to <codeph>StartFepInlineEditL()</codeph>, </p> </li>
+<li id="GUID-961F900F-946A-5053-8063-D6ED8ECBDF7D"><p>zero, one or more calls
+to <codeph>UpdateFepInlineTextL()</codeph>, </p> </li>
+<li id="GUID-6C5F14D2-CA78-5194-8B7D-57FD4DA48DD4"><p>finally, a call to either <codeph>CommitFepInlineEditL()</codeph> or <codeph>CancelFepInlineEdit()</codeph>. (Note that <codeph>CCoeFep::SimulateKeyEventsL()</codeph> is not used at
+all in inline editing: the text is sent to the application via an entirely
+different mechanism.) </p> </li>
+</ul> <p>The second parameter (<codeph>TInt           aPositionOfInsertionPointInInlineText</codeph>)
+to <codeph>StartFepInlineEditL()</codeph> and <codeph>UpdateFepInlineTextL()</codeph> indicates
+where, in the inline text (which is passed as the first parameter), the insertion
+point, or cursor, is to appear. Note that the first parameter to <codeph>UpdateFepInlineTextL()</codeph> must
+be used to pass the <i>entire</i> inline text, not merely any new text to
+be combined with the old inline text. The third parameter (<codeph>TBool aCursorVisibility</codeph>)
+controls whether the insertion point is visible or not. As the types of the
+fourth, fifth and sixth parameters are abstract base classes, the FEP must
+create objects derived from these classes (<xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref>, <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> and <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref>) and pass references. These object(s) must remain in existence for the entire
+duration of the inline editing transaction. </p> <p>Note that <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> pointer
+may NULL. <xref href="GUID-AF2B465F-EFC3-3205-A6D8-2EE19E738385.dita"><apiname>MFormCustomDraw</apiname></xref> belongs to the FORM component
+and is not described here. It enables the FEP to do advanced formatting of
+the inline text. The details of the other two interface classes used in inline
+editing are discussed next. </p> <p> <xref href="GUID-91C8D439-F28E-3417-87B3-4698BE8571DE.dita"><apiname>MFepInlineTextFormatRetriever</apiname></xref> (defined
+in <filepath>epoc32\include\FEPITFR.H</filepath>) has a single (pure) virtual
+function whose signature is as follows: </p> <codeblock id="GUID-06D8A567-223B-5352-B695-6DC3BF1C804A" xml:space="preserve">virtual void GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const=0;</codeblock> <p>The first parameter is to be set by the function to the format of the
+inline text. For example, TFEP1plugin’s implementation of this function sets
+this parameter to red, underlined text. <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> provides
+a member function for finding out the ambient <codeph>TCharFormat</codeph> of
+the text editor: <codeph>GetFormatForFep()</codeph>. This can be called inside
+the FEP’s implementation of <codeph>GetFormatOfFepInlineText()</codeph> to
+make any necessary adjustments to the format of the inline text to ensure
+that it differentiates itself from the surrounding text. </p> <p>The second
+and third parameters to <codeph>GetFormatOfFepInlineText()</codeph> enable
+different parts of the inline text to have different formats. Their use is
+best illustrated by an example (albeit an artificial one). Suppose the FEP
+requires the first four characters of the inline text to be red, the next
+two characters (if there are any) to be green, and any subsequent characters
+to be blue, the <codeph>GetFormatOfFepInlineText()</codeph> function would
+look as follows: </p> <codeblock id="GUID-F4A7F35F-5EA1-5D6E-9570-44ADBC9D7AB5" xml:space="preserve">void Xxxxx::GetFormatOfFepInlineText(TCharFormat&amp; aFormat, TInt&amp; aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const
+    {
+    const TInt lengthOfRemainderOfInlineText=iBuffer.Length()-aPositionOfCharacter;
+    aFormat=iBaseFormatForInlineText;
+    aFormat.iFontPresentation.iTextColor.SetRed(0);
+    aFormat.iFontPresentation.iTextColor.SetGreen(0);
+    aFormat.iFontPresentation.iTextColor.SetBlue(0);
+    if (aPositionOfCharacter==0)
+        {
+        // first four characters are red
+        aFormat.iFontPresentation.iTextColor.SetRed(255);
+        aNumberOfCharactersWithSameFormat=Min(4, lengthOfRemainderOfInlineText);
+        }
+    else if (aPositionOfCharacter==4)
+        {
+        // next two characters are green
+        aFormat.iFontPresentation.iTextColor.SetGreen(255);
+        aNumberOfCharactersWithSameFormat=Min(2, lengthOfRemainderOfInlineText);
+        }
+    else if (aPositionOfCharacter==6)
+        {
+        // any subsequent characters are blue
+        aFormat.iFontPresentation.iTextColor.SetBlue(255);
+        aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
+        }
+    }</codeblock> <p> <xref href="GUID-E7E10DF8-B419-329B-BB9D-D277E1631B0D.dita"><apiname>MFepPointerEventHandlerDuringInlineEdit</apiname></xref> (which
+is defined in <filepath>epoc32\include\FEPBASE.H</filepath>) gives the FEP
+the opportunity to handle pointer events which occur in the area on the screen
+occupied by the inline text. It has a single (pure) virtual function whose
+signature is as follows: </p> <codeblock id="GUID-3AF75EEB-2FDA-57FD-AC09-7FAE30ACB1FE" xml:space="preserve">virtual void HandlePointerEventInInlineTextL(TPointerEvent::TType aType, TUint aModifiers, TInt aPositionInInlineText)=0;</codeblock> <p>The parameters indicate to the FEP the event’s type (for instance pointer
+down, pointer drag or pointer up), the keyboard modifiers (for instance caps
+lock and shift) and the logical position of the event in the inline text. </p></section>
+<section id="GUID-0BEE5B61-5ACC-4847-996E-E659D518646E"><title>Context awareness</title><p>As
+well as providing support for inline editing, the <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> interface
+class enables the FEP to find out information about the text editor control
+with focus. <codeph>DocumentLengthForFep()</codeph> returns the length of
+the text held in the text editor. <codeph>DocumentMaximumLengthForFep()</codeph> returns
+the upper limit (if any) on the length of text that the text editor can hold. <codeph>SetCursorSelectionForFepL()</codeph> selects
+the specified text range in the text editor, and <codeph>GetCursorSelectionForFep()</codeph> sets
+its parameter to the selected text range in the text editor. <codeph>GetEditorContentForFep()</codeph> allows
+the FEP to retrieve any segment of the text held in the text editor. <codeph>GetFormatForFep()</codeph> sets
+its first parameter according to the character format at the position in the
+text editor specified by the second parameter. <codeph>GetScreenCoordinatesForFepL()</codeph> sets
+the first parameter to the screen coordinates of the left end of the baseline
+of the character glyph whose position in the text editor is specified by the
+last parameter. The second and third parameters are set, respectively, to
+the height and ascent of the font used at that document position. This function
+can be used, for example, to position a FEP window as close as possible to
+the text editor’s insertion point (in other words, the cursor position). </p> <p>The <codeph>Extension1()</codeph> member
+function of <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref> returns a pointer to
+an object of the interface class <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1
+          </apiname></xref> (defined in <filepath>epoc32\include\FEPBASE.H</filepath>).
+This class has two public (pure) virtual functions whose signatures are as
+follows: </p> <codeblock id="GUID-3E87C57E-AF43-5268-BC0A-AC34B62C8BAA" xml:space="preserve">virtual void SetStateTransferingOwnershipL(CState* aState, TUid aTypeSafetyUid)=0;
+virtual CState* State(TUid aTypeSafetyUid)=0;</codeblock> <p>The <codeph>CState</codeph> class
+is defined within the scope of the <xref href="GUID-C8F42D8B-D03B-3559-9E7C-BBE94C4E7F66.dita"><apiname>MCoeFepAwareTextEditor_Extension1</apiname></xref> class.
+The purpose of the UIDs in the two functions above is to enable the FEP to
+safely downcast the <codeph>CState</codeph> pointer returned by the <codeph>State()</codeph> function
+to a pointer to a derived class known about by the FEP. The <codeph>CState</codeph> class
+is provided to enable FEPs to store state information inside text editor controls,
+where that state information is only of interest to the FEP. </p></section>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-38C8F8B0-C259-5B03-A13E-10DBED4071F2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-38C8F8B0-C259-5B03-A13E-10DBED4071F2" xml:lang="en"><title>Signing
+and verification</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following example demonstrates signing and verifying with DSA keys.
+It generates a DSA key pair from the factory, signs some randomly generated
+data using the private key and then verifies the signature using the public
+key. </p>
+<codeblock id="GUID-BFCAC8B2-D97E-59BC-8855-E5A030B9E26B" xml:space="preserve">#include &lt;legacyselector.h&gt;
+#include &lt;cryptosignatureapi.h&gt;
+#include &lt;cryptokeypairgeneratorapi.h&gt;
+#include &lt;random.h&gt;
+#include &lt;keypair.h&gt;
+
+using namespace CryptoSpi;
+
+//Get a DSA key pair generator
+CKeyPairGenerator* keyPairGeneratorImpl = NULL;
+
+TRAPD(err,CKeyPairGeneratorFactory::CreateKeyPairGeneratorL
+        (keyPairGeneratorImpl,
+        KDSAKeyPairGeneratorAlgorithmUid,
+        NULL));
+
+if(keyPairGeneratorImpl &amp;&amp; (err == KErrNone))
+    {
+    CleanupStack::PushL(keyPairGeneratorImpl);
+    CCryptoParams* keyParameters = CCryptoParams::NewLC();
+
+    //Create a DSA key pair
+    CKeyPair* keyPair = NULL;
+                
+    //Hardcode the keybit to 512
+    TRAP(err,keyPairGeneratorImpl-&gt;GenerateKeyPairL
+        (512,
+        *keyParameters,
+        keyPair));
+            
+    if(keyPair &amp;&amp; (err == KErrNone))
+        {
+        CleanupStack::PushL(keyPair);
+                
+        //Create a pointer for the signing implementation object
+        CSigner* signerImpl = NULL;
+                
+        //Create a signer implementation object using the private key
+        const CKey&amp; privateKey = keyPair-&gt;PrivateKey();
+        TRAP(err,CSignatureFactory::CreateSignerL(
+             signerImpl,
+             KDsaSignerUid,
+             privateKey,
+             KPaddingModeNoneUid,
+             NULL));
+                
+        if(!signerImpl || (err != KErrNone))
+            {
+            User::Panic(_L("Signer/Verifier"),err);
+            }
+        else
+            {
+            CleanupStack::PushL(signerImpl);
+                
+            //Create the object to hold the signature
+            CCryptoParams* signature = CCryptoParams::NewLC();
+
+            //Generate random data; 128 bytes max length and 128 bytes long
+            TBuf8&lt;128&gt; message(128); 
+            TRandom::RandomL(message);
+
+            //Sign the random data
+            //On return, second parameter contains the signature
+            TRAP(err,signerImpl-&gt;SignL(message, *signature));
+            
+            if(err != KErrNone)
+                {
+                User::Panic(_L("Signature using private key"),err);
+                }
+
+            //Now verify the signature using the public key
+            CVerifier* verifierImpl = NULL;
+                    
+            const CKey&amp; publicKey = keyPair-&gt;PublicKey();
+
+            // Create a verification object from the factory
+            TRAP(err,CSignatureFactory::CreateVerifierL(verifierImpl,
+                 KDsaVerifierUid,
+                 publicKey,
+                 KPaddingModeNoneUid,
+                 NULL));
+                        
+            if (!verifierImpl || (err != KErrNone))
+                {
+                User::Panic(_L("Signer/Verifier"),err);
+                }
+            else
+                {
+                CleanupStack::PushL(verifierImpl);
+
+                TBool verifyResult = EFalse;    
+                        
+                //Verify the signature using the public key
+                verifierImpl-&gt;VerifyL(message, *signature, verifyResult);
+
+                if (verifyResult == EFalse)
+                    {
+                    User::Panic(_L("Signer/Verifier"),err);
+                    }
+                            
+                CleanupStack::PopAndDestroy(verifierImpl);
+                }
+                        
+            CleanupStack::PopAndDestroy(signature);
+            CleanupStack::PopAndDestroy(signerImpl);
+            }
+                    
+        CleanupStack::PopAndDestroy(keyPair);                    
+        }
+            
+    CleanupStack::PopAndDestroy(keyParameters);    
+    CleanupStack::PopAndDestroy(keyPairGeneratorImpl);    
+    }</codeblock>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e213777_href.png has changed
Binary file Symbian3/SDK/Source/GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e217514_href.png has changed
--- a/Symbian3/SDK/Source/GUID-39186342-960A-46A4-BC35-851F53665FA8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-39186342-960A-46A4-BC35-851F53665FA8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,112 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-39186342-960A-46A4-BC35-851F53665FA8" xml:lang="en"><title>Writing
-the Version 3 Registration Resource File</title><shortdesc>The version 3 registration resource file is an evolution of the
-version 2 . This version is evolved to accommodate extended interfaces. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-8-1-4-1-5-1-4-1-5-1-6-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-8-1-4-1-5-1-4-1-5-1-6-1-3-1-1"><cmd>Set Info_format
-to the type of info record that is, <codeph>IMPLEMENTATION_INFO</codeph> or <codeph>BINARY_IMPLEMENTATION_INFO</codeph>.
- </cmd>
-</step>
-<step id="GUID-BCDAAECA-1C25-4D09-A495-97949B5EF2C8"><cmd><codeph>default_data</codeph>:
-The data identifier field used by the resolver to determine if the implementation
-matches a client request.</cmd>
-<info><p>In <codeph>IMPLEMENTATION_INFO</codeph> structure, the data type
-is changed to accommodate maximum 2 strings with 255 bytes each. </p><p>In <codeph>BINARY_IMPLEMENTATION_INFO</codeph>,
-the data type is changed to accommodate a maximum 512 bytes.  </p></info>
-</step>
-<step id="GUID-7892DD48-0E0A-4209-B463-5DDA71F8021D"><cmd><codeph>opaque_data</codeph>:
-A binary data field that can contain additional data. This additional data
-can be used by the custom resolvers.  </cmd>
-<info><p>In <codeph>IMPLEMENTATION_INFO</codeph> structure, the data type
-is changed to accommodate maximum 2 strings with 255 bytes each. </p><p>In <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structure,
-the data type is changed to accommodate a maximum 512 bytes.  </p></info>
-</step>
-<step id="GUID-3A4E66EE-31A6-4717-A6A6-14C4881E962C"><cmd><codeph>extended_interfaces</codeph> a
-maximum 8 UID's extended interfaces for both <codeph>IMPLEMENTATION_INFO</codeph> structure
-and <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structure.  </cmd>
-</step>
-<step id="GUID-76A1CE8A-169C-43A2-9231-B310FDF8EEC2"><cmd><codeph>FLAG_ROM_ONLY</codeph> changed
-from bool data type to bit flag.  </cmd>
-<info><p><codeph>rom_only</codeph> set to 1 indicates the ROM-only implementation
-must be used.  </p><p><codeph>rom_only</codeph> set to 0 indicates the ROM-only
-implementation can be overidden.</p></info>
-</step>
-<step id="GUID-AF2EFD83-7116-472A-A1AE-4043236EA238"><cmd>In <codeph>REGISTRY_INFO</codeph> structure,
-the resource_format_version must be <codeph>RESOURCE_FORMAT_VERSION_3</codeph> .
- </cmd>
-</step>
-<step id="GUID-668E4137-3339-4C40-8721-9F9109C936A1"><cmd>In I<codeph>NTERFACE_INFOstructure</codeph>,
-the <codeph>interface_uid</codeph> is renamed to <codeph>instantiation_interface_uid</codeph>. </cmd>
-</step>
-<step id="GUID-C4B7C81E-0472-4401-8CA2-EC46D5E48EC5"><cmd>In <codeph>REGISTRY_INFO</codeph> structure,
-the <codeph>resource_format_version</codeph> must be <codeph>RESOURCE_FORMAT_VERSION_3</codeph>.
- </cmd>
-</step>
-</steps>
-<example><codeblock xml:space="preserve">#define IMPLEMENTATION_INFO_RECORD_TYPE1 1
-STRUCT IMPLEMENTATION_INFO
-	{
-	BYTE		info_format;		// = IMPLEMENTATION_INFO_RECORD_TYPE1
-	LONG   		implementation_uid;
-	BYTE   		version_no;
-	LTEXT  		display_name;
-	LEN BYTE LTEXT8  default_data[];		// maximum 2 strings with 255 bytes each	
-	LEN BYTE LTEXT8  opaque_data[];		// maximum 2 strings with 255 bytes each
-	LONG   		extended_interfaces[]; 	// maximum 8 extended interfaces 
-	BYTE		flags;			
-	}
-
-#define IMPLEMENTATION_INFO_RECORD_TYPE2 2
-STRUCT BINARY_IMPLEMENTATION_INFO
-	{
-	BYTE	  info_format;		        // = IMPLEMENTATION_INFO_RECORD_TYPE2
-	LONG	  implementation_uid;
-	BYTE	  version_no;
-	LTEXT	  display_name;
-	BYTE      default_data[];			// maximum 512 bytes
-	BYTE 	  opaque_data[];			// maximum 512 bytes
-	LONG	  extended_interfaces[];		// maximum 8 extended interfaces 
-	BYTE	  flags;			
-	}
-
-STRUCT INTERFACE_INFO
-	{
-	LONG	instantiation_interface_uid;
-	STRUCT	implementations[];		// maximum 8 implementations for each interface
-	}
-
-STRUCT REGISTRY_INFO
-	{
-	LONG	resource_format_version;    	// Use RESOURCE_FORMAT_VERSION_3
-	LONG	dll_uid;
-	STRUCT	interfaces[];			// maximum 4 interfaces
-	} </codeblock></example>
-<postreq><p><ul>
-<li><p>Maximum of four<codeph>INTERFACE_INFO</codeph> structures can be defined
-in one resource file.  </p></li>
-<li><p>Maximum of eight <codeph>IMPLEMENTATION_INFO</codeph> or <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structures
-in each <codeph>INTERFACE_INFO</codeph> . Totally eight structures can be
-defined.  </p></li>
-<li><p>Maximum eight extended interfaces in each<codeph> IMPLEMENTATION_INFO</codeph> record. </p></li>
-<li><p>In a <codeph>IMPLEMENTATION_INFO</codeph> record a maximum of two strings
-with 255 bytes each can be used for <codeph>default_data</codeph> or<codeph>opaque_data</codeph> definitions. </p></li>
-<li><p>In a <codeph>BINARY_IMPLEMENTATION_INFO</codeph> record, a maximum
-of 512 bytes each for <codeph>default_data</codeph> or <codeph>opaque_data</codeph> definitions.
- </p></li>
-</ul></p></postreq>
-</taskbody><related-links>
-<link href="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita"><linktext>Writing a
-Standard Registration Resource File</linktext></link>
-<link href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita"><linktext>Writing the
-Version 2 Registration Resource File</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-39186342-960A-46A4-BC35-851F53665FA8" xml:lang="en"><title>Writing
+the Version 3 Registration Resource File</title><shortdesc>The version 3 registration resource file is an evolution of the
+version 2 . This version is evolved to accommodate extended interfaces. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-8-1-4-1-5-1-4-1-5-1-6-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-8-1-4-1-5-1-4-1-5-1-6-1-3-1-1"><cmd>Set Info_format
+to the type of info record that is, <codeph>IMPLEMENTATION_INFO</codeph> or <codeph>BINARY_IMPLEMENTATION_INFO</codeph>.
+ </cmd>
+</step>
+<step id="GUID-BCDAAECA-1C25-4D09-A495-97949B5EF2C8"><cmd><codeph>default_data</codeph>:
+The data identifier field used by the resolver to determine if the implementation
+matches a client request.</cmd>
+<info><p>In <codeph>IMPLEMENTATION_INFO</codeph> structure, the data type
+is changed to accommodate maximum 2 strings with 255 bytes each. </p><p>In <codeph>BINARY_IMPLEMENTATION_INFO</codeph>,
+the data type is changed to accommodate a maximum 512 bytes.  </p></info>
+</step>
+<step id="GUID-7892DD48-0E0A-4209-B463-5DDA71F8021D"><cmd><codeph>opaque_data</codeph>:
+A binary data field that can contain additional data. This additional data
+can be used by the custom resolvers.  </cmd>
+<info><p>In <codeph>IMPLEMENTATION_INFO</codeph> structure, the data type
+is changed to accommodate maximum 2 strings with 255 bytes each. </p><p>In <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structure,
+the data type is changed to accommodate a maximum 512 bytes.  </p></info>
+</step>
+<step id="GUID-3A4E66EE-31A6-4717-A6A6-14C4881E962C"><cmd><codeph>extended_interfaces</codeph> a
+maximum 8 UID's extended interfaces for both <codeph>IMPLEMENTATION_INFO</codeph> structure
+and <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structure.  </cmd>
+</step>
+<step id="GUID-76A1CE8A-169C-43A2-9231-B310FDF8EEC2"><cmd><codeph>FLAG_ROM_ONLY</codeph> changed
+from bool data type to bit flag.  </cmd>
+<info><p><codeph>rom_only</codeph> set to 1 indicates the ROM-only implementation
+must be used.  </p><p><codeph>rom_only</codeph> set to 0 indicates the ROM-only
+implementation can be overidden.</p></info>
+</step>
+<step id="GUID-AF2EFD83-7116-472A-A1AE-4043236EA238"><cmd>In <codeph>REGISTRY_INFO</codeph> structure,
+the resource_format_version must be <codeph>RESOURCE_FORMAT_VERSION_3</codeph> .
+ </cmd>
+</step>
+<step id="GUID-668E4137-3339-4C40-8721-9F9109C936A1"><cmd>In I<codeph>NTERFACE_INFOstructure</codeph>,
+the <codeph>interface_uid</codeph> is renamed to <codeph>instantiation_interface_uid</codeph>. </cmd>
+</step>
+<step id="GUID-C4B7C81E-0472-4401-8CA2-EC46D5E48EC5"><cmd>In <codeph>REGISTRY_INFO</codeph> structure,
+the <codeph>resource_format_version</codeph> must be <codeph>RESOURCE_FORMAT_VERSION_3</codeph>.
+ </cmd>
+</step>
+</steps>
+<example><codeblock xml:space="preserve">#define IMPLEMENTATION_INFO_RECORD_TYPE1 1
+STRUCT IMPLEMENTATION_INFO
+	{
+	BYTE		info_format;		// = IMPLEMENTATION_INFO_RECORD_TYPE1
+	LONG   		implementation_uid;
+	BYTE   		version_no;
+	LTEXT  		display_name;
+	LEN BYTE LTEXT8  default_data[];		// maximum 2 strings with 255 bytes each	
+	LEN BYTE LTEXT8  opaque_data[];		// maximum 2 strings with 255 bytes each
+	LONG   		extended_interfaces[]; 	// maximum 8 extended interfaces 
+	BYTE		flags;			
+	}
+
+#define IMPLEMENTATION_INFO_RECORD_TYPE2 2
+STRUCT BINARY_IMPLEMENTATION_INFO
+	{
+	BYTE	  info_format;		        // = IMPLEMENTATION_INFO_RECORD_TYPE2
+	LONG	  implementation_uid;
+	BYTE	  version_no;
+	LTEXT	  display_name;
+	BYTE      default_data[];			// maximum 512 bytes
+	BYTE 	  opaque_data[];			// maximum 512 bytes
+	LONG	  extended_interfaces[];		// maximum 8 extended interfaces 
+	BYTE	  flags;			
+	}
+
+STRUCT INTERFACE_INFO
+	{
+	LONG	instantiation_interface_uid;
+	STRUCT	implementations[];		// maximum 8 implementations for each interface
+	}
+
+STRUCT REGISTRY_INFO
+	{
+	LONG	resource_format_version;    	// Use RESOURCE_FORMAT_VERSION_3
+	LONG	dll_uid;
+	STRUCT	interfaces[];			// maximum 4 interfaces
+	} </codeblock></example>
+<postreq><p><ul>
+<li><p>Maximum of four<codeph>INTERFACE_INFO</codeph> structures can be defined
+in one resource file.  </p></li>
+<li><p>Maximum of eight <codeph>IMPLEMENTATION_INFO</codeph> or <codeph>BINARY_IMPLEMENTATION_INFO</codeph> structures
+in each <codeph>INTERFACE_INFO</codeph> . Totally eight structures can be
+defined.  </p></li>
+<li><p>Maximum eight extended interfaces in each<codeph> IMPLEMENTATION_INFO</codeph> record. </p></li>
+<li><p>In a <codeph>IMPLEMENTATION_INFO</codeph> record a maximum of two strings
+with 255 bytes each can be used for <codeph>default_data</codeph> or<codeph>opaque_data</codeph> definitions. </p></li>
+<li><p>In a <codeph>BINARY_IMPLEMENTATION_INFO</codeph> record, a maximum
+of 512 bytes each for <codeph>default_data</codeph> or <codeph>opaque_data</codeph> definitions.
+ </p></li>
+</ul></p></postreq>
+</taskbody><related-links>
+<link href="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita"><linktext>Writing a
+Standard Registration Resource File</linktext></link>
+<link href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita"><linktext>Writing the
+Version 2 Registration Resource File</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e376424_href.png has changed
Binary file Symbian3/SDK/Source/GUID-395C240D-6487-5832-B5F6-FC92991001FE_d0e382491_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3978E21E-9B7A-4BEA-9B0A-10C247F6451B_d0e65859_href.png has changed
Binary file Symbian3/SDK/Source/GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e299332_href.png has changed
Binary file Symbian3/SDK/Source/GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e305359_href.png has changed
--- a/Symbian3/SDK/Source/GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,129 +1,129 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46" xml:lang="en"><title>OOM
-Monitor Overview</title><shortdesc>This section provides an overview of the functionality and the
-architecture of the OOM Monitor component.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-1"><title>Purpose</title><p>The
-OOM Monitor Client API monitors the memory situations and handles out of memory
-situations. OOM monitor is responsible to maintain good memory level in the
-device. In case of low memory situation, OOM Monitor releases memory by closing
-applications based on the priority defined. For information on priority, refer
-to <xref href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita">OOM Monitor Priority</xref>.</p> 
-  </section>
-<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-2"><title>Key concepts</title><dl>
-<dlentry>
-<dt>LOW_RAM_THRESHOLD</dt>
-<dd><p>It is the minimum amount of free RAM that is specified for the device.
-This value must be specified in the monitor configuration file. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>GOOD_RAM_THRESHOLD</dt>
-<dd><p>It is the required amount of free RAM that is specified for the device.
-This value must be specified in the monitor configuration file.</p> </dd>
-</dlentry>
-<dlentry>
-<dt>Normal RAM rotation</dt>
-<dd><p>Whenever the amount of free RAM decreases below LOW_RAM_THRESHOLD the
-OOM Monitor releases RAM by closing applications based on the priorities.
-This process is called as normal RAM rotation.</p> </dd>
-</dlentry>
-</dl><p>For information on OOM Monitor Priority and Optional RAM allocation,
-refer to <xref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita">OOM Monitor
-Concepts</xref></p>  </section>
-<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-3"><title>Architecture</title>  <p>The
-basic function of the OOM Monitor is to monitor the amount of free RAM in
-the mobile device. Whenever the amount of free RAM decreases below a defined <keyword>LOW_RAM_THRESHOLD</keyword> threshold
-value, the OOM Monitor is triggered. The OOM Monitor then releases RAM by
-closing applications running on background in order to raise the amount of
-free RAM above the defined GOOD_RAM_THRESHOLD value.</p><fig id="GUID-1DD9B22F-1060-4AC9-899B-EC2D91E7B948">
-<image href="GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e149615_href.png" placement="inline"/>
-</fig><fig id="GUID-573E838C-50CD-4CE7-B608-6BBD18B29088">
-<image href="GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e149619_href.png" scale="100" placement="inline"/>
-</fig>  </section>
-<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-4"><title>APIs</title><p>The
-OOM Monitor Client API consists of <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita"><apiname>ROomMonitorSession</apiname></xref> class.
-The main functions of this class are:</p><table id="GUID-CF94290C-7BE9-418F-9CF0-93DE74814097-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-4-3">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.70*"/><colspec colname="col2" colwidth="1.30*"/>
-<tbody>
-<row>
-<entry><p><b>Function</b></p></entry>
-<entry><p><b>Description</b></p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-1F51447A-B975-3767-8ED9-5E1B98E8A672.dita"><apiname>RequestFreeMemory()</apiname></xref></p></entry>
-<entry><p>Requests the OOM monitor to allocate RAM.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-C8FA6C1A-AE06-3E4D-9884-FAAA93239D13.dita"><apiname>SetOomPriority()</apiname></xref></p></entry>
-<entry><p>Sets the priority for an application as high, busy or normal. The
-application priorities must be defined in <codeph>TOomPriority</codeph> variable.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-2B246C7F-8A7F-3AA7-8150-657A45CF8F57.dita"><apiname>RequestOptionalRam()</apiname></xref></p></entry>
-<entry><p>Requests the OOM monitor to allocate optional RAM.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>The OOM Monitor Client API also consists of <xref href="GUID-ACE03F26-555A-363E-B220-44FCA7E8EACB.dita"><apiname>COomMonitorPlugin</apiname></xref> class.
-The main functions of this plug-in class are:</p><table id="GUID-CF94290C-7BE9-418F-9CF0-93DE74814097-GENID-1-8-1-10-1-1-8-1-5-1-4-1-3-4-5">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.70*"/><colspec colname="col2" colwidth="1.30*"/>
-<tbody>
-<row>
-<entry><p><b>Function</b></p></entry>
-<entry><p><b>Description</b></p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E51E399F-AB9D-3587-9985-5E5016F49587.dita"><apiname>FreeRam()</apiname></xref></p></entry>
-<entry><p>Requests to release RAM when the system RAM level becomes low.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-6D853E56-6EE6-398A-B9BF-BB35C4D5729D.dita"><apiname>MemoryGood()</apiname></xref></p></entry>
-<entry><p>Called when the system RAM level improves to good from low RAM situation.
-Once the memory level is good, the OOM plug-in can again start allocating
-optional RAM.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-<section id="GUID-1D0FDADB-ACAC-4507-BF63-E78A7F322133"><title>Typical Uses</title><p>Applications
-can use the following functionality provided by the OOM Monitor component
-to:  </p><ul>
-<li><p>Safely allocate large amount of RAM. For more information, refer to <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Requesting for Large Memory
-Allocation</xref>.</p></li>
-<li><p>Change its priority in order to protect itself from being closed by
-the OOM Monitor. For more information, refer to <xref href="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita">Changing
-the Priority</xref>.</p></li>
-<li><p>Allocate optional RAM to applications when additional RAM is requested.
-For more information, refer to <xref href="GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita">Requesting
-for Optional RAM Allocation</xref>.</p></li>
-<li><p>Prevent OOM errors from happening by monitoring the amount of free
-RAM in the system. When the amount of free RAM drops below the specified threshold
-value, OOM Monitor automatically closes applications that are staying idle
-in the background in order to give more RAM to the applications that are active.
-For more information, refer to <xref href="GUID-0371FD21-D988-4560-891F-2840C36AB2E2.dita">Out
-of Memory Error</xref>.</p></li>
-<li><p>Assign priority for each action that can be used to release RAM (i.e.
-closing an application or calling an OOM plug-in). When releasing RAM, OOM
-Monitor uses the priorities to determine the order of closing applications
-and calling plug-ins. As a result RAM is always released by minimizing the
-negative impact to the user, provided the priorities are correctly configured
-for the device. For more information, refer to <xref href="GUID-178488C1-5453-490F-B168-9D73DB5BAE47.dita">Priority
-Configuration</xref>.</p></li>
-</ul></section>
-<section id="GUID-23F8161E-5057-4ADD-BD2F-BC87F45B4B2E"><title>Related information</title><ul>
-<li><p><xref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita">OOM Monitor
-Concepts</xref></p></li>
-<li><p><xref href="GUID-C7AA92A9-9595-439A-A3E7-769E36D61FEE.dita">Using OOM Monitor</xref></p></li>
-<li><p><xref href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita">OOM Monitor
-Reference</xref></p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46" xml:lang="en"><title>OOM
+Monitor Overview</title><shortdesc>This section provides an overview of the functionality and the
+architecture of the OOM Monitor component.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-1"><title>Purpose</title><p>The
+OOM Monitor Client API monitors the memory situations and handles out of memory
+situations. OOM monitor is responsible to maintain good memory level in the
+device. In case of low memory situation, OOM Monitor releases memory by closing
+applications based on the priority defined. For information on priority, refer
+to <xref href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita">OOM Monitor Priority</xref>.</p> 
+  </section>
+<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-2"><title>Key concepts</title><dl>
+<dlentry>
+<dt>LOW_RAM_THRESHOLD</dt>
+<dd><p>It is the minimum amount of free RAM that is specified for the device.
+This value must be specified in the monitor configuration file. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>GOOD_RAM_THRESHOLD</dt>
+<dd><p>It is the required amount of free RAM that is specified for the device.
+This value must be specified in the monitor configuration file.</p> </dd>
+</dlentry>
+<dlentry>
+<dt>Normal RAM rotation</dt>
+<dd><p>Whenever the amount of free RAM decreases below LOW_RAM_THRESHOLD the
+OOM Monitor releases RAM by closing applications based on the priorities.
+This process is called as normal RAM rotation.</p> </dd>
+</dlentry>
+</dl><p>For information on OOM Monitor Priority and Optional RAM allocation,
+refer to <xref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita">OOM Monitor
+Concepts</xref></p>  </section>
+<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-3"><title>Architecture</title>  <p>The
+basic function of the OOM Monitor is to monitor the amount of free RAM in
+the mobile device. Whenever the amount of free RAM decreases below a defined <keyword>LOW_RAM_THRESHOLD</keyword> threshold
+value, the OOM Monitor is triggered. The OOM Monitor then releases RAM by
+closing applications running on background in order to raise the amount of
+free RAM above the defined GOOD_RAM_THRESHOLD value.</p><fig id="GUID-1DD9B22F-1060-4AC9-899B-EC2D91E7B948">
+<image href="GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e143081_href.png" placement="inline"/>
+</fig><fig id="GUID-573E838C-50CD-4CE7-B608-6BBD18B29088">
+<image href="GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e143085_href.png" scale="100" placement="inline"/>
+</fig>  </section>
+<section id="GUID-84DFAB24-BC7F-45B2-813D-6CD05EBCF34F-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-4"><title>APIs</title><p>The
+OOM Monitor Client API consists of <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita"><apiname>ROomMonitorSession</apiname></xref> class.
+The main functions of this class are:</p><table id="GUID-CF94290C-7BE9-418F-9CF0-93DE74814097-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-4-3">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.70*"/><colspec colname="col2" colwidth="1.30*"/>
+<tbody>
+<row>
+<entry><p><b>Function</b></p></entry>
+<entry><p><b>Description</b></p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1F51447A-B975-3767-8ED9-5E1B98E8A672.dita"><apiname>RequestFreeMemory()</apiname></xref></p></entry>
+<entry><p>Requests the OOM monitor to allocate RAM.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-C8FA6C1A-AE06-3E4D-9884-FAAA93239D13.dita"><apiname>SetOomPriority()</apiname></xref></p></entry>
+<entry><p>Sets the priority for an application as high, busy or normal. The
+application priorities must be defined in <codeph>TOomPriority</codeph> variable.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-2B246C7F-8A7F-3AA7-8150-657A45CF8F57.dita"><apiname>RequestOptionalRam()</apiname></xref></p></entry>
+<entry><p>Requests the OOM monitor to allocate optional RAM.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table><p>The OOM Monitor Client API also consists of <xref href="GUID-ACE03F26-555A-363E-B220-44FCA7E8EACB.dita"><apiname>COomMonitorPlugin</apiname></xref> class.
+The main functions of this plug-in class are:</p><table id="GUID-CF94290C-7BE9-418F-9CF0-93DE74814097-GENID-1-10-1-10-1-1-8-1-5-1-4-1-3-4-5">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.70*"/><colspec colname="col2" colwidth="1.30*"/>
+<tbody>
+<row>
+<entry><p><b>Function</b></p></entry>
+<entry><p><b>Description</b></p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E51E399F-AB9D-3587-9985-5E5016F49587.dita"><apiname>FreeRam()</apiname></xref></p></entry>
+<entry><p>Requests to release RAM when the system RAM level becomes low.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-6D853E56-6EE6-398A-B9BF-BB35C4D5729D.dita"><apiname>MemoryGood()</apiname></xref></p></entry>
+<entry><p>Called when the system RAM level improves to good from low RAM situation.
+Once the memory level is good, the OOM plug-in can again start allocating
+optional RAM.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section id="GUID-1D0FDADB-ACAC-4507-BF63-E78A7F322133"><title>Typical Uses</title><p>Applications
+can use the following functionality provided by the OOM Monitor component
+to:  </p><ul>
+<li><p>Safely allocate large amount of RAM. For more information, refer to <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Requesting for Large Memory
+Allocation</xref>.</p></li>
+<li><p>Change its priority in order to protect itself from being closed by
+the OOM Monitor. For more information, refer to <xref href="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita">Changing
+the Priority</xref>.</p></li>
+<li><p>Allocate optional RAM to applications when additional RAM is requested.
+For more information, refer to <xref href="GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita">Requesting
+for Optional RAM Allocation</xref>.</p></li>
+<li><p>Prevent OOM errors from happening by monitoring the amount of free
+RAM in the system. When the amount of free RAM drops below the specified threshold
+value, OOM Monitor automatically closes applications that are staying idle
+in the background in order to give more RAM to the applications that are active.
+For more information, refer to <xref href="GUID-0371FD21-D988-4560-891F-2840C36AB2E2.dita">Out
+of Memory Error</xref>.</p></li>
+<li><p>Assign priority for each action that can be used to release RAM (i.e.
+closing an application or calling an OOM plug-in). When releasing RAM, OOM
+Monitor uses the priorities to determine the order of closing applications
+and calling plug-ins. As a result RAM is always released by minimizing the
+negative impact to the user, provided the priorities are correctly configured
+for the device. For more information, refer to <xref href="GUID-178488C1-5453-490F-B168-9D73DB5BAE47.dita">Priority
+Configuration</xref>.</p></li>
+</ul></section>
+<section id="GUID-23F8161E-5057-4ADD-BD2F-BC87F45B4B2E"><title>Related information</title><ul>
+<li><p><xref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita">OOM Monitor
+Concepts</xref></p></li>
+<li><p><xref href="GUID-C7AA92A9-9595-439A-A3E7-769E36D61FEE.dita">Using OOM Monitor</xref></p></li>
+<li><p><xref href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita">OOM Monitor
+Reference</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-39A995DC-F047-4B41-A60D-27063CE329BE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-39A995DC-F047-4B41-A60D-27063CE329BE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,77 +1,77 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-39A995DC-F047-4B41-A60D-27063CE329BE" xml:lang="en"><title>Planning
-system and software security</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Devices based on the Symbian platform are capable of joining both public
-and private networks and often have the functionality of a normal desktop
-computer. However, the average user does not perceive the device as a computer,
-but rather as a regular phone that is safe from security threats. This creates
-an opportunity for hostile attackers to infiltrate the device and wreak severe
-direct or indirect damage (for example, by penetrating into the corporate
-intranet).</p>
-<p>It is, however, possible to anticipate these kinds of threats, and protect
-applications by using the security features offered by the Symbian platform,
-and by expanding <i>security policies</i> to cover mobile devices and services.</p>
-<p>To develop system or software security, repeat the following steps:</p>
-<ol>
-<li id="GUID-98856624-2B55-44FC-9DD9-69850C2B22D9"><p>Define and
-evaluate all critical assets (resources, information).</p></li>
-<li id="GUID-4FE98A61-A0B8-4249-936E-DF319804AA2D"><p>Identify all
-possible threats, vulnerabilities, and potential attacks, and estimate the
-extent of possible damage.</p><p>Areas to examine in the Symbian platform
-are system resources, removable media, and communication between components.</p>
-</li>
-<li id="GUID-43B87274-297C-4AA8-B2A1-872E2BA83F30"><p>Prioritize
-high-risk vulnerabilities, and select and implement corresponding security
-features. If risks are sufficiently low, protective measures may be unnecessary.</p>
-</li>
-<li id="GUID-3D7F3A95-635E-4D9C-9883-BBD36263401D"><p>Repeat these
-steps until the necessary level of protection is achieved.</p></li>
-</ol>
-<p/>
-<fig id="GUID-A41ADA16-6D0B-4EA4-BBF2-67C2CFED68F3"><title>Security development process</title><image href="GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e10243_href.png"/></fig>
-<p>The security development process is guided by <i>cost</i>, <i>efficiency,</i> and <i>usability</i>.
-If security is too tight, this may be expensive and affect both performance
-and the user's experience of the system or software. On the other hand, if
-security is too slack, this may result in severe damage and, in the long run,
-be even more costly.</p>
-<section id="GUID-39A995DC-F047-4B41-A60D-27063CE329BF"><title>Security methods</title>
-<p>The list below contains the most common and important security methods
-used in the mobile world:</p>
-<ul>
-<li><p><i>Ciphering</i> enables confidentiality. Information is
-accessible only by authorized parties. With ciphering it is also possible
-to maintain integrity.</p></li>
-<li><p><i>Hash</i> function (<i>checksum</i>) can be used to verify
-integrity and detect information tampering.</p></li>
-<li><p><i>Signing</i> allows attaching of information to a certain
-source.</p></li>
-<li><p><i>Authentication</i> ensures that the object is what it
-claims to be.</p></li>
-<li><p><i>Access control</i> restricts unauthorized access to resources.</p>
-</li>
-<li><p><i>Authorization</i> is permission to perform tasks on behalf
-of somebody else.</p></li>
-<li><p><i>Certification</i> is provided usually by a third party
-to prove information validity.</p></li>
-<li><p><i>Recovery mechanisms</i> are usually implemented as redundancy
-(duplication of information or routes).</p></li>
-<li><p>In communication it is possible to use, for example, <i>error
-correction</i> to repair transmission failures, <i>random traffic generation</i> to
-keep the line occupied, and <i>packet uniforming</i> to blend important packets
-into traffic.</p></li>
-</ul>
-<p>Some of the methods above are interconnected (for example, certification
-requires that the information is signed) and not all of them are of equal
-importance, since some basic methods form a base for more complicated methods.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-39A995DC-F047-4B41-A60D-27063CE329BE" xml:lang="en"><title>Planning
+system and software security</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Devices based on the Symbian platform are capable of joining both public
+and private networks and often have the functionality of a normal desktop
+computer. However, the average user does not perceive the device as a computer,
+but rather as a regular phone that is safe from security threats. This creates
+an opportunity for hostile attackers to infiltrate the device and wreak severe
+direct or indirect damage (for example, by penetrating into the corporate
+intranet).</p>
+<p>It is, however, possible to anticipate these kinds of threats, and protect
+applications by using the security features offered by the Symbian platform,
+and by expanding <i>security policies</i> to cover mobile devices and services.</p>
+<p>To develop system or software security, repeat the following steps:</p>
+<ol>
+<li id="GUID-98856624-2B55-44FC-9DD9-69850C2B22D9"><p>Define and
+evaluate all critical assets (resources, information).</p></li>
+<li id="GUID-4FE98A61-A0B8-4249-936E-DF319804AA2D"><p>Identify all
+possible threats, vulnerabilities, and potential attacks, and estimate the
+extent of possible damage.</p><p>Areas to examine in the Symbian platform
+are system resources, removable media, and communication between components.</p>
+</li>
+<li id="GUID-43B87274-297C-4AA8-B2A1-872E2BA83F30"><p>Prioritize
+high-risk vulnerabilities, and select and implement corresponding security
+features. If risks are sufficiently low, protective measures may be unnecessary.</p>
+</li>
+<li id="GUID-3D7F3A95-635E-4D9C-9883-BBD36263401D"><p>Repeat these
+steps until the necessary level of protection is achieved.</p></li>
+</ol>
+<p/>
+<fig id="GUID-A41ADA16-6D0B-4EA4-BBF2-67C2CFED68F3"><title>Security development process</title><image href="GUID-316D7B85-F827-4479-B5EE-81F210614236_d0e11518_href.png"/></fig>
+<p>The security development process is guided by <i>cost</i>, <i>efficiency,</i> and <i>usability</i>.
+If security is too tight, this may be expensive and affect both performance
+and the user's experience of the system or software. On the other hand, if
+security is too slack, this may result in severe damage and, in the long run,
+be even more costly.</p>
+<section id="GUID-39A995DC-F047-4B41-A60D-27063CE329BF"><title>Security methods</title>
+<p>The list below contains the most common and important security methods
+used in the mobile world:</p>
+<ul>
+<li><p><i>Ciphering</i> enables confidentiality. Information is
+accessible only by authorized parties. With ciphering it is also possible
+to maintain integrity.</p></li>
+<li><p><i>Hash</i> function (<i>checksum</i>) can be used to verify
+integrity and detect information tampering.</p></li>
+<li><p><i>Signing</i> allows attaching of information to a certain
+source.</p></li>
+<li><p><i>Authentication</i> ensures that the object is what it
+claims to be.</p></li>
+<li><p><i>Access control</i> restricts unauthorized access to resources.</p>
+</li>
+<li><p><i>Authorization</i> is permission to perform tasks on behalf
+of somebody else.</p></li>
+<li><p><i>Certification</i> is provided usually by a third party
+to prove information validity.</p></li>
+<li><p><i>Recovery mechanisms</i> are usually implemented as redundancy
+(duplication of information or routes).</p></li>
+<li><p>In communication it is possible to use, for example, <i>error
+correction</i> to repair transmission failures, <i>random traffic generation</i> to
+keep the line occupied, and <i>packet uniforming</i> to blend important packets
+into traffic.</p></li>
+</ul>
+<p>Some of the methods above are interconnected (for example, certification
+requires that the information is signed) and not all of them are of equal
+importance, since some basic methods form a base for more complicated methods.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e244607_href.png has changed
Binary file Symbian3/SDK/Source/GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e248344_href.png has changed
--- a/Symbian3/SDK/Source/GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,106 +1,106 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6" xml:lang="en"><title>Audio
-Component Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document provides an overview of the Audio Component Framework (ACF)
-API. </p>
-<section><title>Purpose</title> <p>In the Advanced Audio Adaptation Framework
-(A3F) architecture, the client defines the required audio functionality by
-grouping several audio processing units together. Audio processing units are
-logical entities, not directly related to any specific audio hardware, that
-represent basic audio functions. Examples of audio processing units include: </p> <ul>
-<li id="GUID-847A0149-C870-58CD-8E13-E5072E12A3E4"><p>Source - a source of
-multimedia data. </p> </li>
-<li id="GUID-E22F1EEC-4E5F-51BD-89FC-D066485CA144"><p>CODEC - an encoder or
-decoder of multimedia data. </p> </li>
-<li id="GUID-782A83BA-A95A-55B7-955C-9F0440698D67"><p>Sink - a consumer of
-multimedia data. </p> </li>
-</ul> <p>ACF provides a collective notion for the audio processing units being
-grouped together so that they can be considered as a single entity. Audio
-processing units are grouped into audio streams. An audio stream consists
-of at least a source, a codec and a sink. The audio stream allows control
-of the audio processing units connected to the stream, for example, starting
-or pausing, and also provides information about the state of the audio processing
-units connected to it, for example, uninitialized or active. </p> <p>Furthermore,
-one or more audio streams can be grouped into a logical unit called a context.
-The following diagram shows a context which contains two audio streams: </p> <fig id="GUID-3E0CDA7E-7B25-5407-9276-8397C4FFEAFE">
-<title>              Audio streams in a context            </title>
-<image href="GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e331113_href.png" placement="inline"/>
-</fig> <p>Using a context means that, for the purposes of pre-emption, all
-audio streams in the context can be controlled as a single unit. For example,
-if an audio stream needs to be stopped because it uses a resource that is
-required by another higher priority audio stream, then all the other audio
-streams in the context can be stopped at the same time. </p></section>
-<section><title>Audio Component Framework API Library Details</title><p>The
-DLL that provides the functionality and the library to which your code must
-link is identified below. </p><table id="GUID-254DCB0A-F62E-558C-97D2-1A9141AA4AB6">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>DLL</entry>
-<entry>LIB</entry>
-<entry>Short Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <filepath> audiocontextfactory.dll</filepath>  </p> </entry>
-<entry><p> <filepath> audiocontextfactory.lib</filepath>  </p> </entry>
-<entry><p>These files are used for implementing the ACF API. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-<section><title>Architectural Relationship</title> <p>This API is part of
-the Advanced Audio Adaptation Framework (A3F). A3F provides a new standardised
-implementation of DevSound which is configured by default from Symbian OS
-v9.5 onwards. A3F interacts with a specially customised DevSound (configured
-as optional) through the <xref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita">Audio
-Component Library (ACL) API</xref> and the ACF API. </p> </section>
-<section><title>Description</title> <p>ACF is responsible for delivering transactional
-behaviour. This means ensuring that when a change is applied to one audio
-processing unit in a context, the same change is applied to all the audio
-processing units in the context and if any fail then no change is made. </p> <p>In
-order to apply changes to the audio processing units in a context, the client
-must call the asynchronous <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>Commit()</apiname></xref> method.
-On success, event callbacks are sent to the client to state that the <codeph>Commit()</codeph> was
-properly received and processed. If the <codeph>Commit()</codeph> fails, then
-the implementation is "rolled-back". Alternatively, the client may receive
-an event callback stating that audio resources were lost due to pre-emption
-by a higher priority audio client. </p> </section>
-<section><title>Key Audio Component Framework API Classes</title> <p>ACF comprises
-the following key classes: </p> <ul>
-<li id="GUID-4A037A0A-A46D-518F-99B3-AE3D92BCC871"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioSource</apiname></xref> -
-generic interface for different types of audio sources. </p> </li>
-<li id="GUID-8C469302-B029-52BB-A1F0-F1E1923DBE47"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioCodec</apiname></xref> -
-the generic abstract interface for codecs. </p> </li>
-<li id="GUID-2D73E73F-F3F4-5E5E-9A0D-ACEDD7B2572A"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname> MAudioSink</apiname></xref> -
-generic interface for different types of audio sinks. </p> </li>
-<li id="GUID-40072A7A-5964-5117-8664-866B03A31B90"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioStream</apiname></xref> -
-the main control interface for the state of an audio stream. </p> </li>
-<li id="GUID-253D92F4-5280-5A3A-8836-F4DA90394901"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref> -
-the interface to an audio context. The client can use <codeph>MAudioContext</codeph> to
-manage the audio streams and audio processing units contained in a context. </p> </li>
-</ul> </section>
-<section><title>Using Audio Component Framework API</title> <p>ACF can be
-used to: </p> <ul>
-<li id="GUID-1A8CAC71-EB84-5DA6-8A0E-070207721372"><p>Apply changes made to
-the audio processing units in a context. </p> <p>Pending changes are applied
-using the asynchronous <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>Commit()</apiname></xref> call.
-When a <codeph>Commit()</codeph> has been completed, the client is informed
-by the appropriate <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>ContextEvent()</apiname></xref> callback
-of <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContextObserver</apiname></xref>. </p> </li>
-</ul> </section>
-<section><title>See Also</title> <p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita">Audio
-Component Framework Tutorial</xref>  </p> <p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita">Audio
-Processing Tutorial</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6" xml:lang="en"><title>Audio
+Component Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document provides an overview of the Audio Component Framework (ACF)
+API. </p>
+<section><title>Purpose</title> <p>In the Advanced Audio Adaptation Framework
+(A3F) architecture, the client defines the required audio functionality by
+grouping several audio processing units together. Audio processing units are
+logical entities, not directly related to any specific audio hardware, that
+represent basic audio functions. Examples of audio processing units include: </p> <ul>
+<li id="GUID-847A0149-C870-58CD-8E13-E5072E12A3E4"><p>Source - a source of
+multimedia data. </p> </li>
+<li id="GUID-E22F1EEC-4E5F-51BD-89FC-D066485CA144"><p>CODEC - an encoder or
+decoder of multimedia data. </p> </li>
+<li id="GUID-782A83BA-A95A-55B7-955C-9F0440698D67"><p>Sink - a consumer of
+multimedia data. </p> </li>
+</ul> <p>ACF provides a collective notion for the audio processing units being
+grouped together so that they can be considered as a single entity. Audio
+processing units are grouped into audio streams. An audio stream consists
+of at least a source, a codec and a sink. The audio stream allows control
+of the audio processing units connected to the stream, for example, starting
+or pausing, and also provides information about the state of the audio processing
+units connected to it, for example, uninitialized or active. </p> <p>Furthermore,
+one or more audio streams can be grouped into a logical unit called a context.
+The following diagram shows a context which contains two audio streams: </p> <fig id="GUID-3E0CDA7E-7B25-5407-9276-8397C4FFEAFE">
+<title>              Audio streams in a context            </title>
+<image href="GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e324956_href.png" placement="inline"/>
+</fig> <p>Using a context means that, for the purposes of pre-emption, all
+audio streams in the context can be controlled as a single unit. For example,
+if an audio stream needs to be stopped because it uses a resource that is
+required by another higher priority audio stream, then all the other audio
+streams in the context can be stopped at the same time. </p></section>
+<section><title>Audio Component Framework API Library Details</title><p>The
+DLL that provides the functionality and the library to which your code must
+link is identified below. </p><table id="GUID-254DCB0A-F62E-558C-97D2-1A9141AA4AB6">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath> audiocontextfactory.dll</filepath>  </p> </entry>
+<entry><p> <filepath> audiocontextfactory.lib</filepath>  </p> </entry>
+<entry><p>These files are used for implementing the ACF API. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section><title>Architectural Relationship</title> <p>This API is part of
+the Advanced Audio Adaptation Framework (A3F). A3F provides a new standardised
+implementation of DevSound which is configured by default from Symbian OS
+v9.5 onwards. A3F interacts with a specially customised DevSound (configured
+as optional) through the <xref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita">Audio
+Component Library (ACL) API</xref> and the ACF API. </p> </section>
+<section><title>Description</title> <p>ACF is responsible for delivering transactional
+behaviour. This means ensuring that when a change is applied to one audio
+processing unit in a context, the same change is applied to all the audio
+processing units in the context and if any fail then no change is made. </p> <p>In
+order to apply changes to the audio processing units in a context, the client
+must call the asynchronous <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>Commit()</apiname></xref> method.
+On success, event callbacks are sent to the client to state that the <codeph>Commit()</codeph> was
+properly received and processed. If the <codeph>Commit()</codeph> fails, then
+the implementation is "rolled-back". Alternatively, the client may receive
+an event callback stating that audio resources were lost due to pre-emption
+by a higher priority audio client. </p> </section>
+<section><title>Key Audio Component Framework API Classes</title> <p>ACF comprises
+the following key classes: </p> <ul>
+<li id="GUID-4A037A0A-A46D-518F-99B3-AE3D92BCC871"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioSource</apiname></xref> -
+generic interface for different types of audio sources. </p> </li>
+<li id="GUID-8C469302-B029-52BB-A1F0-F1E1923DBE47"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioCodec</apiname></xref> -
+the generic abstract interface for codecs. </p> </li>
+<li id="GUID-2D73E73F-F3F4-5E5E-9A0D-ACEDD7B2572A"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname> MAudioSink</apiname></xref> -
+generic interface for different types of audio sinks. </p> </li>
+<li id="GUID-40072A7A-5964-5117-8664-866B03A31B90"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioStream</apiname></xref> -
+the main control interface for the state of an audio stream. </p> </li>
+<li id="GUID-253D92F4-5280-5A3A-8836-F4DA90394901"><p> <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref> -
+the interface to an audio context. The client can use <codeph>MAudioContext</codeph> to
+manage the audio streams and audio processing units contained in a context. </p> </li>
+</ul> </section>
+<section><title>Using Audio Component Framework API</title> <p>ACF can be
+used to: </p> <ul>
+<li id="GUID-1A8CAC71-EB84-5DA6-8A0E-070207721372"><p>Apply changes made to
+the audio processing units in a context. </p> <p>Pending changes are applied
+using the asynchronous <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>Commit()</apiname></xref> call.
+When a <codeph>Commit()</codeph> has been completed, the client is informed
+by the appropriate <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>ContextEvent()</apiname></xref> callback
+of <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContextObserver</apiname></xref>. </p> </li>
+</ul> </section>
+<section><title>See Also</title> <p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita">Audio
+Component Framework Tutorial</xref>  </p> <p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita">Audio
+Processing Tutorial</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e41135_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3A506E2A-2999-458B-BBA2-DCC4D2EA5492_d0e46692_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,78 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A" xml:lang="en"><title>Calendar
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Calendar component provides access to calendar stores, with functionality
-to fetch, update, save and delete calendar entries. </p>
-<section id="GUID-E6396A88-AAA2-489F-AFDF-5E07229C1690"><title>Purpose and scope </title> <p>Calendar provides access to
-calendar stores, with functionality to fetch, update, save and delete calendar
-entries. This functionality is as the standard RFC 2445, which defines a common
-format for openly exchanging calendar and scheduling information across the
-internet. New functionality includes: attachment support, defining geographic
-locations, logging, expanded search capabilities and support for removable
-media. </p> </section>
-<section id="GUID-9821DA75-4245-411B-AADF-AB7AB98E1D07"><title>Architectural relationship</title> <p>The Calendar component
-uses the Alarm server and TZ (time zone converter) components and merges CalInterimApi
-and AgnModel. </p> <p>Calendar is a single component that contains: Agenda
-Server, AgnModel and CalInterimAPI. CalInterimAPI contains classes that hold
-information about calendar entries. AgnModel is a DLL which is shared across
-the client and the server. Agenda Server provides calendar file management
-on behalf of all clients. </p> <p>Calendar's implementation of import and
-export behaviour is done using the AgnVersit2 plug-in. </p> <fig id="GUID-EFB35AEC-41B2-5DD4-B029-D4BDC8A682DF">
-<title>              Calendar dependencies            </title>
-<image href="GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e374591_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-1E37BF6E-B69F-49AB-BA6A-F60463FACC5A"><title>Description</title> <p>This document describes the following
-key areas: </p> <p id="GUID-BFCC991A-B456-5662-AFDE-5B86AAC6056F"><b>The Calendar Server</b> </p> <p>The
-Calendar Server manipulates calendar files and connects to the
-client when single or multiple sessions (<xref href="GUID-609318A7-43F1-3FC1-952B-146B1EA8115D.dita"><apiname>CCalSession</apiname></xref>) are
-instantiated. </p> <p id="GUID-69F4F826-D9BC-50D1-A6DA-8CB82891BEB8"><b>Calendar entries</b> </p> <p>A <xref href="GUID-9B428B4E-83B7-5EE3-8D63-E2B0602D1D91.dita">calendar entry</xref>, class <xref href="GUID-725D11A2-8805-3466-98DB-EF5CDEAF2801.dita"><apiname>CCalEntry</apiname></xref>,
-can be an appointment, a to-do item, an event, a reminder, or an anniversary.
-It contains repeat definition and synchronisation information as well as group
-scheduling data. </p> <p id="GUID-21C9AB08-D5E0-5E2C-91CE-2C8218EF8514"><b>Calendar views</b> </p> <p>The
-API provides the following <xref href="GUID-CD8A3420-6C9B-5774-86FA-85CFE062C400.dita">views</xref> for
-accessing the calendar: </p> <p><b>Entry view </b> </p> <p> <xref href="GUID-D2835D4E-F0A8-3EDE-BC13-B45E52170556.dita"><apiname>CCalEntryView</apiname></xref> allows accessing
-and manipulating calendar entries. For example, you can add, delete update
-and search for a calendar entry, </p> <p><b>Instance view </b> </p> <p> <xref href="GUID-58BA8611-A364-3E30-B5F0-E5787E19C48C.dita"><apiname>CCalInstanceView</apiname></xref> allows
-individual instance(s) that are generated from an entry to be accessed and
-deleted. </p> <p id="GUID-20ACA14A-954F-58FC-B422-E42B5B19B04E"><b>Calendar user</b> </p> <p> <xref href="GUID-FBFE40BE-BF1A-3A12-A3B6-D2BDB5B6406D.dita"><apiname>CCalUser</apiname></xref> represents
-a <xref href="GUID-62195532-3FD0-5A3B-90E6-D624C4A60594.dita">calendar user</xref>,
-such as a meeting participant. The class provides attributes and methods that
-are common to all the calendar users, including the user’s email address,
-sent-by and common name fields. </p> <p><b>Setting
-the Repeat Rule</b> </p> <p><xref href="GUID-131A9070-AF80-5BC5-91D2-0F1C7019ABF2.dita">Setting
-the repeat rule</xref> allows events to occur regularly at specified intervals. </p> <p><b>Setting the alarm</b> </p> <p>Within a calendar entry <xref href="GUID-211D3640-9862-3F78-98FC-9793578117A9.dita"><apiname>CCalAlarm</apiname></xref> allows
-you to <xref href="GUID-7BB38C3E-BEA9-545B-AEC2-5E9078D0B8A2.dita">set an alarm</xref> of
-a specific type. </p> <p><b>Categorising
-an entry</b> </p> <p><xref href="GUID-710FADA2-7A6C-5D60-BCE5-8772071F2BD4.dita">Categorisation</xref> of
-calendar entries can be done using built-in or user-defined types. </p> <p><b>Importing and Exporting Entries</b> </p> <p>This API enables calendar
-entries to be <xref href="GUID-0F1D1BC4-C8FB-55BE-83FE-DD604C4A9CA3.dita">exported
-and imported</xref> to and from a specific data format. </p> <p id="GUID-EDE3A38D-8B6B-56B6-B301-B6D64BF69181"><b>Callback interfaces</b> </p> <p>The
-API uses two types of <xref href="GUID-3987D040-27F7-5226-96AC-D578ECA4C0A2.dita">callback
-interfaces</xref>: change notifications, and progress/completion notifications.
-Change notifications monitor changes to calendar entries. Progress/completion
-notifications monitor the progress and completion of asynchronous tasks. </p> <p id="GUID-2FED42C3-251E-5713-8A75-AAC6393175EF"><b>Attachment support</b> </p> <p>Calendar
-provides the ability to associate an object with a calendar entry. An <xref href="GUID-32F8114A-B7EF-5B0B-BD9B-0D3C5F09D7E6.dita">attachment</xref> can be
-a URI reference, a file or binary data. </p> <p id="GUID-87AC8BD1-2F12-5A51-9498-9A5BBE5C306A"><b>Removable media support</b> </p> <p>Creates,
-modifies and deletes calendar files on <xref href="GUID-DA0F4990-DDC4-5B0A-A446-A3C8672DA95A.dita">removable
-media</xref>. </p> <p id="GUID-EB0BABDA-2949-5C5D-8F6E-83E9075A236C"><b>GEO property</b> </p> <p>The <xref href="GUID-01299529-4390-5C16-8459-1D9C1B6F3EF3.dita">GEO property</xref> represents
-the geographical location of a calendar entry. </p> <p id="GUID-2C4FA107-1C56-5C44-9B78-AF567ED936B1"><b>TRANSP property</b> </p> <p>The <xref href="GUID-6D29FF23-B034-5FE9-90C3-A62CD54D67D3.dita">TRANSP property</xref> indicates
-whether an entry 'blocks' a calendar busy view. </p> <p><b>iCalendar and vCalendar properties</b> </p> <p>Lists the <xref href="GUID-7811C33D-96D3-5001-B4D3-92BF44F39B2C.dita">properties</xref> in
-iCalendar and vCalendar that Calendar supports using the AgnVersit2 plug-in.
-Also details the import and export of time properties. </p> <p id="GUID-E680C30C-BD55-5F1B-9B68-DB07BCA79D05"><b>Expanded search capabilities</b> </p> <p>These
-offer the ability to <xref href="GUID-20DDA21D-B5DE-5D24-9E75-69C68EAF1782.dita">search</xref> all
-text fields, to search entries within a given time frame, and to return results
-in an iterator class. </p> <p id="GUID-4084C15D-CC3C-57F3-8605-10CF62CEDD27"><b>Adding a user-defined 32-bit
-field</b> </p> <p>Calendar entries now allows for creation of a <xref href="GUID-0A66A882-09C8-5BB6-89A2-87133BD63338.dita">user-defined
-32-bit field</xref>. The value of the field is defined by the vendor. Field
-creation, storage and access are carried out by APIs within the <xref href="GUID-725D11A2-8805-3466-98DB-EF5CDEAF2801.dita"><apiname>CCalEntry</apiname></xref> class. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A" xml:lang="en"><title>Calendar
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Calendar component provides access to calendar stores, with functionality
+to fetch, update, save and delete calendar entries. </p>
+<section id="GUID-E6396A88-AAA2-489F-AFDF-5E07229C1690"><title>Purpose and scope </title> <p>Calendar provides access to
+calendar stores, with functionality to fetch, update, save and delete calendar
+entries. This functionality is as the standard RFC 2445, which defines a common
+format for openly exchanging calendar and scheduling information across the
+internet. New functionality includes: attachment support, defining geographic
+locations, logging, expanded search capabilities and support for removable
+media. </p> </section>
+<section id="GUID-9821DA75-4245-411B-AADF-AB7AB98E1D07"><title>Architectural relationship</title> <p>The Calendar component
+uses the Alarm server and TZ (time zone converter) components and merges CalInterimApi
+and AgnModel. </p> <p>Calendar is a single component that contains: Agenda
+Server, AgnModel and CalInterimAPI. CalInterimAPI contains classes that hold
+information about calendar entries. AgnModel is a DLL which is shared across
+the client and the server. Agenda Server provides calendar file management
+on behalf of all clients. </p> <p>Calendar's implementation of import and
+export behaviour is done using the AgnVersit2 plug-in. </p> <fig id="GUID-EFB35AEC-41B2-5DD4-B029-D4BDC8A682DF">
+<title>              Calendar dependencies            </title>
+<image href="GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e368521_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-1E37BF6E-B69F-49AB-BA6A-F60463FACC5A"><title>Description</title> <p>This document describes the following
+key areas: </p> <p id="GUID-BFCC991A-B456-5662-AFDE-5B86AAC6056F"><b>The Calendar Server</b> </p> <p>The
+Calendar Server manipulates calendar files and connects to the
+client when single or multiple sessions (<xref href="GUID-609318A7-43F1-3FC1-952B-146B1EA8115D.dita"><apiname>CCalSession</apiname></xref>) are
+instantiated. </p> <p id="GUID-69F4F826-D9BC-50D1-A6DA-8CB82891BEB8"><b>Calendar entries</b> </p> <p>A <xref href="GUID-9B428B4E-83B7-5EE3-8D63-E2B0602D1D91.dita">calendar entry</xref>, class <xref href="GUID-725D11A2-8805-3466-98DB-EF5CDEAF2801.dita"><apiname>CCalEntry</apiname></xref>,
+can be an appointment, a to-do item, an event, a reminder, or an anniversary.
+It contains repeat definition and synchronisation information as well as group
+scheduling data. </p> <p id="GUID-21C9AB08-D5E0-5E2C-91CE-2C8218EF8514"><b>Calendar views</b> </p> <p>The
+API provides the following <xref href="GUID-CD8A3420-6C9B-5774-86FA-85CFE062C400.dita">views</xref> for
+accessing the calendar: </p> <p><b>Entry view </b> </p> <p> <xref href="GUID-D2835D4E-F0A8-3EDE-BC13-B45E52170556.dita"><apiname>CCalEntryView</apiname></xref> allows accessing
+and manipulating calendar entries. For example, you can add, delete update
+and search for a calendar entry, </p> <p><b>Instance view </b> </p> <p> <xref href="GUID-58BA8611-A364-3E30-B5F0-E5787E19C48C.dita"><apiname>CCalInstanceView</apiname></xref> allows
+individual instance(s) that are generated from an entry to be accessed and
+deleted. </p> <p id="GUID-20ACA14A-954F-58FC-B422-E42B5B19B04E"><b>Calendar user</b> </p> <p> <xref href="GUID-FBFE40BE-BF1A-3A12-A3B6-D2BDB5B6406D.dita"><apiname>CCalUser</apiname></xref> represents
+a <xref href="GUID-62195532-3FD0-5A3B-90E6-D624C4A60594.dita">calendar user</xref>,
+such as a meeting participant. The class provides attributes and methods that
+are common to all the calendar users, including the user’s email address,
+sent-by and common name fields. </p> <p><b>Setting
+the Repeat Rule</b> </p> <p><xref href="GUID-131A9070-AF80-5BC5-91D2-0F1C7019ABF2.dita">Setting
+the repeat rule</xref> allows events to occur regularly at specified intervals. </p> <p><b>Setting the alarm</b> </p> <p>Within a calendar entry <xref href="GUID-211D3640-9862-3F78-98FC-9793578117A9.dita"><apiname>CCalAlarm</apiname></xref> allows
+you to <xref href="GUID-7BB38C3E-BEA9-545B-AEC2-5E9078D0B8A2.dita">set an alarm</xref> of
+a specific type. </p> <p><b>Categorising
+an entry</b> </p> <p><xref href="GUID-710FADA2-7A6C-5D60-BCE5-8772071F2BD4.dita">Categorisation</xref> of
+calendar entries can be done using built-in or user-defined types. </p> <p><b>Importing and Exporting Entries</b> </p> <p>This API enables calendar
+entries to be <xref href="GUID-0F1D1BC4-C8FB-55BE-83FE-DD604C4A9CA3.dita">exported
+and imported</xref> to and from a specific data format. </p> <p id="GUID-EDE3A38D-8B6B-56B6-B301-B6D64BF69181"><b>Callback interfaces</b> </p> <p>The
+API uses two types of <xref href="GUID-3987D040-27F7-5226-96AC-D578ECA4C0A2.dita">callback
+interfaces</xref>: change notifications, and progress/completion notifications.
+Change notifications monitor changes to calendar entries. Progress/completion
+notifications monitor the progress and completion of asynchronous tasks. </p> <p id="GUID-2FED42C3-251E-5713-8A75-AAC6393175EF"><b>Attachment support</b> </p> <p>Calendar
+provides the ability to associate an object with a calendar entry. An <xref href="GUID-32F8114A-B7EF-5B0B-BD9B-0D3C5F09D7E6.dita">attachment</xref> can be
+a URI reference, a file or binary data. </p> <p id="GUID-87AC8BD1-2F12-5A51-9498-9A5BBE5C306A"><b>Removable media support</b> </p> <p>Creates,
+modifies and deletes calendar files on <xref href="GUID-DA0F4990-DDC4-5B0A-A446-A3C8672DA95A.dita">removable
+media</xref>. </p> <p id="GUID-EB0BABDA-2949-5C5D-8F6E-83E9075A236C"><b>GEO property</b> </p> <p>The <xref href="GUID-01299529-4390-5C16-8459-1D9C1B6F3EF3.dita">GEO property</xref> represents
+the geographical location of a calendar entry. </p> <p id="GUID-2C4FA107-1C56-5C44-9B78-AF567ED936B1"><b>TRANSP property</b> </p> <p>The <xref href="GUID-6D29FF23-B034-5FE9-90C3-A62CD54D67D3.dita">TRANSP property</xref> indicates
+whether an entry 'blocks' a calendar busy view. </p> <p><b>iCalendar and vCalendar properties</b> </p> <p>Lists the <xref href="GUID-7811C33D-96D3-5001-B4D3-92BF44F39B2C.dita">properties</xref> in
+iCalendar and vCalendar that Calendar supports using the AgnVersit2 plug-in.
+Also details the import and export of time properties. </p> <p id="GUID-E680C30C-BD55-5F1B-9B68-DB07BCA79D05"><b>Expanded search capabilities</b> </p> <p>These
+offer the ability to <xref href="GUID-20DDA21D-B5DE-5D24-9E75-69C68EAF1782.dita">search</xref> all
+text fields, to search entries within a given time frame, and to return results
+in an iterator class. </p> <p id="GUID-4084C15D-CC3C-57F3-8605-10CF62CEDD27"><b>Adding a user-defined 32-bit
+field</b> </p> <p>Calendar entries now allows for creation of a <xref href="GUID-0A66A882-09C8-5BB6-89A2-87133BD63338.dita">user-defined
+32-bit field</xref>. The value of the field is defined by the vendor. Field
+creation, storage and access are carried out by APIs within the <xref href="GUID-725D11A2-8805-3466-98DB-EF5CDEAF2801.dita"><apiname>CCalEntry</apiname></xref> class. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e52689_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3A8755A9-139E-4845-9B52-13AEECF9EBBD_d0e58816_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51732_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51813_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57314_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57418_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57765_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e58473_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62127_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62495_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e68976_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e69055_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74118_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74200_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,163 +1,163 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775" xml:lang="en"><title>Resource
-Files </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Resource files contain data separated from executable code. The purpose
-of using resource files are to define user interface components and store
-localisable data. </p>
-<p>The application framework defined by the Uikon Core expects features of
-the application UI, such as menus, to be supplied in a resource file. The
-framework reads these resources itself. Other user interface components, such
-as dialogs, can also be easily created from resources, without the application
-needing to use this API itself. </p>
-<p>The API has two key concepts - resource file reader and resource component
-reader. </p>
-<section><title>Resource file reader</title> <p>Resource files contain data
-in numbered resources. The resource file reader allows such files to be opened
-and closed, and individual resources within them, as identified by symbolic
-identifiers, to be read into binary descriptors. Data items are then extracted
-from these descriptors using the resource component reader. </p> <p>The resource
-file can be read using <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref>. </p> </section>
-<section><title>Resource component reader</title> <p>A resource is defined
-as a struct. Struct members can be simple, such as integers and strings, or
-complex, such as other structs, or arrays of structs. The resource component
-reader is used to read these struct members from a binary descriptor holding
-the resource into C++ variables. The application must ensure that it places
-the struct members into variables of appropriate types. </p> <p>The resource
-component header information can be accessed using <xref href="GUID-B375D32E-1F91-30FA-8605-A2E163111F9A.dita"><apiname>TResourceReader</apiname></xref>. </p> </section>
-<section id="GUID-EA9C30E1-AB21-5042-9417-CFDE320C519D"><title>Basic resource
-file use</title> <p>The basic concepts involved with using resource files
-are as follows: </p> <ul>
-<li id="GUID-67FFC98D-2829-5146-B4B6-5DEB3A4966BA"><p>In a resource file,
-define structs or use appropriate pre-defined structs and then define resources
-that use those structs. </p> </li>
-<li id="GUID-C57BD780-2B6F-547F-B008-FAD1F51B565F"><p>Run the resource compiler
-to produce both a generated header file and a resource file. The generated
-header file defines the symbols which a program uses to refer to the resources. </p> </li>
-</ul> <p>A program which requires a resource file then performs the following: </p> <ul>
-<li id="GUID-6E6F8010-F264-5F28-A540-D122530C98ED"><p>Includes the generated
-header file in the appropriate source file to get symbolic access to the IDs
-of the resources contained within the file. </p> </li>
-<li id="GUID-8E1FFF9C-6D4A-5926-AE9E-703E2B224F23"><p>Opens a <codeph>RResourceFile</codeph> object,
-specifying the generated resource file name. </p> </li>
-<li id="GUID-AB22B5E3-1C8E-5994-B4E4-28CCD62297BD"><p>Reads any resource that
-is required. The resource is identified by a symbolic ID which has been <codeph>#define</codeph> d
-as a number; the content of the resource is read into a binary descriptor,
-derived from <codeph>TDesC8</codeph>. </p> </li>
-<li id="GUID-E743799B-77A2-51F6-AC73-1D8A9325FD5E"><p>Converts the binary
-descriptor into whatever target format is appropriate for the data in the
-resource file. </p> </li>
-<li id="GUID-83832E00-F8A1-5F42-80A7-AA29C11D1CFD"><p>Discards the descriptor,
-if appropriate, when the binary descriptor has been fully converted into its
-target format. </p> </li>
-<li id="GUID-8E5F9573-7180-5E44-ABAD-53D4F9608E33"><p>Closes the <codeph>RResourceFile</codeph> when
-all operations on the resource file are complete. </p> </li>
-</ul> <p>The resource text can be changed and the resources recompiled without
-altering or recompiling the C++ program. For example, to alter the language
-used by text strings. </p> </section>
-<section><title>Resource File Interface</title><p>Resource files contain data
-in numbered resources. A resource file has the following format:</p><fig id="GUID-9CFB3B14-9C09-42E2-A87E-ED07BD2E7E36">
-<image href="GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e183692_href.png" placement="inline"/>
-</fig><p>A resource file is generated from text input using the resource compiler.
-The index can be used to efficiently find a resource given its numeric ID.
-There can be 1 to 4095 resources in a resource file. Each resource contains
-binary data whose length is determined by subtracting the start position of
-the resource from the start of the next resource (or from the start of the
-index, for the last resource in the file). </p><p> Functions for handling
-resources in a resource file are encapsulated in the <codeph>RResourceFile</codeph> class.
-This class provides functions for: </p><p><ul>
-<li><p>opening and closing the file</p></li>
-<li><p>reading resources</p></li>
-<li><p>support for using multiple resource files</p></li>
-</ul></p><p>Generally, the process for reading a resource is to read it into
-a buffer of sufficient length, analyse it and place its data into C++ classes.
-Then, if appropriate, release the buffer.   </p><p>The <codeph>TResourceReader</codeph> class
-must be used to simplify the process of resource data analysis.  </p> </section>
-<section id="GUID-3E43B598-5857-5660-B9F0-432FD9AC56AA"><title>File types
-in resource file usage</title> <p>The file types involved in resource file
-usage are defined in the following diagram: </p> <fig id="GUID-4C93BFC7-89BD-5E88-BA68-D6273F13BB8D">
-<title>              File types            </title>
-<image href="GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e183738_href.png" placement="inline"/>
-</fig> <p>These files work together as follows: </p> <ul>
-<li id="GUID-CA9BB1F1-0535-5F18-9CD2-AC2C02DACE8D"><p>the C++ compiler and
-linker, together, take <filepath>.cpp</filepath> source files and produce <filepath>.exe</filepath> output
-(or <filepath>.dll</filepath>, or <filepath>.app</filepath>, or another such
-extension). </p> </li>
-<li id="GUID-D1E44783-4179-5E25-9C2A-715E167E8177"><p>the resource compiler
-takes a <filepath>.rss</filepath> source file containing <codeph>RESOURCE</codeph> statements
-and converts it into a <filepath>.rsc</filepath> resource file which contains
-the resources the executable program will use. It also produces a <filepath>.rsg</filepath> generated
-header file, which contains the symbolic IDs of these resources. </p> </li>
-<li id="GUID-5E468821-D48B-5633-9801-F3ACFA96024C"><p>the <filepath>.rsg</filepath> file
-is <codeph>#include</codeph> d by the <filepath>.cpp</filepath> file, so that
-the C++ compiler has access to the symbolic IDs of the resources that will
-be used. </p> </li>
-<li id="GUID-99F5E649-D5E6-59F0-A6F0-C51A52756FA7"><p>C++ class definitions
-are specified in a <filepath>.h</filepath> file; a typical application will
-include several system header files and usually one or more of its own. </p> </li>
-<li id="GUID-84ED8144-AEBD-51CD-A9CE-240D143A773A"><p>resource structs are
-specified in a <filepath>.rh</filepath> file. A typical application will use
-system-provided resource headers, which define standard controls etc. Only
-if the application requires its own structs, will it include its own <filepath>.rh</filepath> file. </p> </li>
-<li id="GUID-BDDFAD1C-48FD-52F0-85A0-553CB2BAC5AA"><p>flag values are <codeph>#define</codeph> d
-in a file which must be available to both the C++ compiler and the resource
-compiler: the <filepath>.hrh</filepath> extension is used for this and <filepath>.hrh</filepath> files
-are typically <codeph>#include</codeph> d into the <filepath>.h</filepath> file
-that defines the classes (for C++) and the <filepath>.rh</filepath> file that
-defines the structs (for the resource compiler). </p> </li>
-</ul> </section>
-<section id="GUID-41C5ABE7-C081-5259-9814-0436844C85AD"><title>Type safety
-issues</title> <p>Software systems implemented in C++ are designed to be type-safe.
-Proper use of header files, make utilities, type declarations, classes and
-templates makes it difficult to pass data of the wrong type to functions,
-to assign data of the wrong type to variables, or to construct a program whose
-modules are inconsistent with one another. Thus a major source of programming
-errors is detected while the program is being built, before running it. </p> <p>A
-program which uses resources must have a resource file which matches that
-program's requirements. However, the resource file and the executable program
-are only loosely bound together. A variety of errors are possible while dealing
-with resources, which cannot be detected during the build process. Programmers
-should be aware of these and take appropriate measures to avoid them. </p> <p>Additional
-sources of error include: </p> <ul>
-<li id="GUID-C08B03AF-E50C-577A-90F7-1462B223E9D0"><p>Having a program and
-resource file which do not correspond. </p> <p>This can arise because the
-resource file formats were updated, or the program was updated, but the resource
-file was not updated. When the program is run, the resources it loads are
-in the wrong format. </p> </li>
-<li id="GUID-81AB0840-8122-5C34-9DE9-A10DCB02E39D"><p>The structures in the
-resource file may be of a different format from that expected by the C++ program. </p> <p>If
-the C++ program expects a <codeph>LONG</codeph> while a <codeph>WORD</codeph> is
-present in the resource file, then the C++ program will read two extra bytes
-from the data item in the resource file. Any subsequent data read from that
-resource will be an error. </p> <p>This kind of error can only be avoided
-by C++ programs knowing which structs they are dealing with, knowing the data
-layouts of those structs in a resource file and writing code which works in
-that context. </p> </li>
-<li id="GUID-E61214E6-9FC8-5A6E-8EEC-452FF135A89C"><p>Having resources of
-unexpected type. </p> <p>The most likely reason for this to arise is because
-there is no type safety in the resource compiler. Thus, it is possible for
-a programmer to wrongly guess what kind of struct a particular resource must
-use. Appropriate comments in the <filepath>.rh</filepath> files and the documentation
-of the resource file, will help to reduce this kind of error. </p> </li>
-</ul> <p>The resource compiler does provide some elementary safety features: </p> <ul>
-<li id="GUID-736C2471-93C2-5AD6-8E73-CBA30DF5C6C0"><p>All resources are represented
-by a symbolic ID. This ensures that the resource IDs used by the C++ program
-and those expected by the compiler match, if the recommended build procedures
-are followed. </p> </li>
-<li id="GUID-8DE5ABAE-2504-5DC9-BDCC-70C8ABF806AA"><p>Flag values, maximum
-length constants and some other values, may be defined in a <filepath>.hrh</filepath> file.
-This ensures that C++ programs uses correct resource. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita"><linktext>Reading a
-string resource</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775" xml:lang="en"><title>Resource
+Files </title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Resource files contain data separated from executable code. The purpose
+of using resource files are to define user interface components and store
+localisable data. </p>
+<p>The application framework defined by the Uikon Core expects features of
+the application UI, such as menus, to be supplied in a resource file. The
+framework reads these resources itself. Other user interface components, such
+as dialogs, can also be easily created from resources, without the application
+needing to use this API itself. </p>
+<p>The API has two key concepts - resource file reader and resource component
+reader. </p>
+<section><title>Resource file reader</title> <p>Resource files contain data
+in numbered resources. The resource file reader allows such files to be opened
+and closed, and individual resources within them, as identified by symbolic
+identifiers, to be read into binary descriptors. Data items are then extracted
+from these descriptors using the resource component reader. </p> <p>The resource
+file can be read using <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref>. </p> </section>
+<section><title>Resource component reader</title> <p>A resource is defined
+as a struct. Struct members can be simple, such as integers and strings, or
+complex, such as other structs, or arrays of structs. The resource component
+reader is used to read these struct members from a binary descriptor holding
+the resource into C++ variables. The application must ensure that it places
+the struct members into variables of appropriate types. </p> <p>The resource
+component header information can be accessed using <xref href="GUID-B375D32E-1F91-30FA-8605-A2E163111F9A.dita"><apiname>TResourceReader</apiname></xref>. </p> </section>
+<section id="GUID-EA9C30E1-AB21-5042-9417-CFDE320C519D"><title>Basic resource
+file use</title> <p>The basic concepts involved with using resource files
+are as follows: </p> <ul>
+<li id="GUID-67FFC98D-2829-5146-B4B6-5DEB3A4966BA"><p>In a resource file,
+define structs or use appropriate pre-defined structs and then define resources
+that use those structs. </p> </li>
+<li id="GUID-C57BD780-2B6F-547F-B008-FAD1F51B565F"><p>Run the resource compiler
+to produce both a generated header file and a resource file. The generated
+header file defines the symbols which a program uses to refer to the resources. </p> </li>
+</ul> <p>A program which requires a resource file then performs the following: </p> <ul>
+<li id="GUID-6E6F8010-F264-5F28-A540-D122530C98ED"><p>Includes the generated
+header file in the appropriate source file to get symbolic access to the IDs
+of the resources contained within the file. </p> </li>
+<li id="GUID-8E1FFF9C-6D4A-5926-AE9E-703E2B224F23"><p>Opens a <codeph>RResourceFile</codeph> object,
+specifying the generated resource file name. </p> </li>
+<li id="GUID-AB22B5E3-1C8E-5994-B4E4-28CCD62297BD"><p>Reads any resource that
+is required. The resource is identified by a symbolic ID which has been <codeph>#define</codeph> d
+as a number; the content of the resource is read into a binary descriptor,
+derived from <codeph>TDesC8</codeph>. </p> </li>
+<li id="GUID-E743799B-77A2-51F6-AC73-1D8A9325FD5E"><p>Converts the binary
+descriptor into whatever target format is appropriate for the data in the
+resource file. </p> </li>
+<li id="GUID-83832E00-F8A1-5F42-80A7-AA29C11D1CFD"><p>Discards the descriptor,
+if appropriate, when the binary descriptor has been fully converted into its
+target format. </p> </li>
+<li id="GUID-8E5F9573-7180-5E44-ABAD-53D4F9608E33"><p>Closes the <codeph>RResourceFile</codeph> when
+all operations on the resource file are complete. </p> </li>
+</ul> <p>The resource text can be changed and the resources recompiled without
+altering or recompiling the C++ program. For example, to alter the language
+used by text strings. </p> </section>
+<section><title>Resource File Interface</title><p>Resource files contain data
+in numbered resources. A resource file has the following format:</p><fig id="GUID-9CFB3B14-9C09-42E2-A87E-ED07BD2E7E36">
+<image href="GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e177098_href.png" placement="inline"/>
+</fig><p>A resource file is generated from text input using the resource compiler.
+The index can be used to efficiently find a resource given its numeric ID.
+There can be 1 to 4095 resources in a resource file. Each resource contains
+binary data whose length is determined by subtracting the start position of
+the resource from the start of the next resource (or from the start of the
+index, for the last resource in the file). </p><p> Functions for handling
+resources in a resource file are encapsulated in the <codeph>RResourceFile</codeph> class.
+This class provides functions for: </p><p><ul>
+<li><p>opening and closing the file</p></li>
+<li><p>reading resources</p></li>
+<li><p>support for using multiple resource files</p></li>
+</ul></p><p>Generally, the process for reading a resource is to read it into
+a buffer of sufficient length, analyse it and place its data into C++ classes.
+Then, if appropriate, release the buffer.   </p><p>The <codeph>TResourceReader</codeph> class
+must be used to simplify the process of resource data analysis.  </p> </section>
+<section id="GUID-3E43B598-5857-5660-B9F0-432FD9AC56AA"><title>File types
+in resource file usage</title> <p>The file types involved in resource file
+usage are defined in the following diagram: </p> <fig id="GUID-4C93BFC7-89BD-5E88-BA68-D6273F13BB8D">
+<title>              File types            </title>
+<image href="GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e177144_href.png" placement="inline"/>
+</fig> <p>These files work together as follows: </p> <ul>
+<li id="GUID-CA9BB1F1-0535-5F18-9CD2-AC2C02DACE8D"><p>the C++ compiler and
+linker, together, take <filepath>.cpp</filepath> source files and produce <filepath>.exe</filepath> output
+(or <filepath>.dll</filepath>, or <filepath>.app</filepath>, or another such
+extension). </p> </li>
+<li id="GUID-D1E44783-4179-5E25-9C2A-715E167E8177"><p>the resource compiler
+takes a <filepath>.rss</filepath> source file containing <codeph>RESOURCE</codeph> statements
+and converts it into a <filepath>.rsc</filepath> resource file which contains
+the resources the executable program will use. It also produces a <filepath>.rsg</filepath> generated
+header file, which contains the symbolic IDs of these resources. </p> </li>
+<li id="GUID-5E468821-D48B-5633-9801-F3ACFA96024C"><p>the <filepath>.rsg</filepath> file
+is <codeph>#include</codeph> d by the <filepath>.cpp</filepath> file, so that
+the C++ compiler has access to the symbolic IDs of the resources that will
+be used. </p> </li>
+<li id="GUID-99F5E649-D5E6-59F0-A6F0-C51A52756FA7"><p>C++ class definitions
+are specified in a <filepath>.h</filepath> file; a typical application will
+include several system header files and usually one or more of its own. </p> </li>
+<li id="GUID-84ED8144-AEBD-51CD-A9CE-240D143A773A"><p>resource structs are
+specified in a <filepath>.rh</filepath> file. A typical application will use
+system-provided resource headers, which define standard controls etc. Only
+if the application requires its own structs, will it include its own <filepath>.rh</filepath> file. </p> </li>
+<li id="GUID-BDDFAD1C-48FD-52F0-85A0-553CB2BAC5AA"><p>flag values are <codeph>#define</codeph> d
+in a file which must be available to both the C++ compiler and the resource
+compiler: the <filepath>.hrh</filepath> extension is used for this and <filepath>.hrh</filepath> files
+are typically <codeph>#include</codeph> d into the <filepath>.h</filepath> file
+that defines the classes (for C++) and the <filepath>.rh</filepath> file that
+defines the structs (for the resource compiler). </p> </li>
+</ul> </section>
+<section id="GUID-41C5ABE7-C081-5259-9814-0436844C85AD"><title>Type safety
+issues</title> <p>Software systems implemented in C++ are designed to be type-safe.
+Proper use of header files, make utilities, type declarations, classes and
+templates makes it difficult to pass data of the wrong type to functions,
+to assign data of the wrong type to variables, or to construct a program whose
+modules are inconsistent with one another. Thus a major source of programming
+errors is detected while the program is being built, before running it. </p> <p>A
+program which uses resources must have a resource file which matches that
+program's requirements. However, the resource file and the executable program
+are only loosely bound together. A variety of errors are possible while dealing
+with resources, which cannot be detected during the build process. Programmers
+should be aware of these and take appropriate measures to avoid them. </p> <p>Additional
+sources of error include: </p> <ul>
+<li id="GUID-C08B03AF-E50C-577A-90F7-1462B223E9D0"><p>Having a program and
+resource file which do not correspond. </p> <p>This can arise because the
+resource file formats were updated, or the program was updated, but the resource
+file was not updated. When the program is run, the resources it loads are
+in the wrong format. </p> </li>
+<li id="GUID-81AB0840-8122-5C34-9DE9-A10DCB02E39D"><p>The structures in the
+resource file may be of a different format from that expected by the C++ program. </p> <p>If
+the C++ program expects a <codeph>LONG</codeph> while a <codeph>WORD</codeph> is
+present in the resource file, then the C++ program will read two extra bytes
+from the data item in the resource file. Any subsequent data read from that
+resource will be an error. </p> <p>This kind of error can only be avoided
+by C++ programs knowing which structs they are dealing with, knowing the data
+layouts of those structs in a resource file and writing code which works in
+that context. </p> </li>
+<li id="GUID-E61214E6-9FC8-5A6E-8EEC-452FF135A89C"><p>Having resources of
+unexpected type. </p> <p>The most likely reason for this to arise is because
+there is no type safety in the resource compiler. Thus, it is possible for
+a programmer to wrongly guess what kind of struct a particular resource must
+use. Appropriate comments in the <filepath>.rh</filepath> files and the documentation
+of the resource file, will help to reduce this kind of error. </p> </li>
+</ul> <p>The resource compiler does provide some elementary safety features: </p> <ul>
+<li id="GUID-736C2471-93C2-5AD6-8E73-CBA30DF5C6C0"><p>All resources are represented
+by a symbolic ID. This ensures that the resource IDs used by the C++ program
+and those expected by the compiler match, if the recommended build procedures
+are followed. </p> </li>
+<li id="GUID-8DE5ABAE-2504-5DC9-BDCC-70C8ABF806AA"><p>Flag values, maximum
+length constants and some other values, may be defined in a <filepath>.hrh</filepath> file.
+This ensures that C++ programs uses correct resource. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita"><linktext>Reading a
+string resource</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-3B0602F1-4294-43C4-9E7A-B1A33291C22F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-3B0602F1-4294-43C4-9E7A-B1A33291C22F" xml:lang="en"><title>Establishing
+a connection with destination networks</title><shortdesc>Destination networks, also known as Service Network Access Points
+(SNAPs) avoid the connectivity problems that are related to the access point
+being fixed for the duration of the data connection.  With the availability
+of WLAN and other data bearers, the number of access points has grown considerably.
+ With WLAN, the availability of an access point can change frequently.  A
+fixed access point in selection often leads to a poor access point choice.
+Because the network environment is now more dynamic, you can have either a
+safe but slow connection, or a fast but unreliable connection. In practice
+this means that the application is either stuck with using GPRS or the user
+must continuously change the settings to point to the WLAN access point that
+happens to be available.  A fixed access point leads to non-optimal usage
+of available connections, especially with applications that use long-lasting
+data connections.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-9A30000D-83AF-40B7-B0DD-E9AFFD1B7019">       <p>Applications
+should monitor the connection state by using platform services (such as Connection
+Monitor Server API) and avoid polling and keep-alives. If the application
+protocol mandates the use of timers, they should be tuned so that the control
+data over the air is minimized. </p>     </prereq>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-7-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-7-1-3-2-1"><cmd><xref href="GUID-E2E2FACF-5D4F-43E8-8B53-B268252CF572.dita">Defining
+Connection Management Items</xref></cmd>
+</step>
+<step id="GUID-725900FE-86E4-4A8F-A896-1F1661B4C1BB"><cmd><xref href="GUID-A2F691C8-9525-4028-BF82-70E9D50630C6.dita">Prompting
+the user to select a destination network</xref></cmd>
+</step>
+<step id="GUID-96317261-F1CC-423C-815E-70CD4F0A3AD7"><cmd><xref href="GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2.dita">Starting
+the Connection through the Destination Network</xref></cmd>
+</step>
+</steps>
+</taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e266338_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e270046_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e65995_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e71245_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3BB539EF-E1DE-4EB4-A9F0-BB31430DD64A-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3BB539EF-E1DE-4EB4-A9F0-BB31430DD64A_d0e63738_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e58883_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e59473_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883"><title>Controlling Captured Image</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document explains you how to control captured images. </p> <section><title>Purpose</title> <p>This document provides a detailed explanation on the use of <b>Post ImageCapture Control </b> API. </p> <p><b>Introduction</b> </p> <p>This classes provide necessary framework to retrieve the image data from individual images and also to apply control on the captured images individually. </p> </section> <section><title>Using Post ImageCapture Control </title> <p>The following tasks are covered on Post ImageCapture Control implementation: </p> <ol id="GUID-6EEFB87A-E8FF-5EC9-96EB-9F3CE37B87A6"><li id="GUID-7A4FA862-EA26-5D02-8C12-2E1D700AC5A1"><p>Provide concrete implementation of <xref href="GUID-65D8585F-4841-3AF4-9A9D-5EAB188C6754.dita"><apiname>McameraImageCapture</apiname></xref> class to create <xref href="GUID-3ECFEF01-EC6F-35E4-A544-39A345E3D8F2.dita"><apiname>CcameraPostImageCaptureControl</apiname></xref> facade class. </p> </li> <li id="GUID-53BFDBDA-BD18-5E69-AA8D-4A33269668E7"><p>Create object of class <xref href="GUID-752D3B52-5BAD-3551-B832-16D0C47CD4EB.dita"><apiname>CCameraPostImageCaptureControl</apiname></xref> to control each captured still image. </p> </li> <li id="GUID-3AEF9A47-6FEA-5911-87B0-84C2D58C3569"><p>Pass a pointer to <xref href="GUID-ED5F1027-BD98-3DEA-BF1B-0EB1A17B6F43.dita"><apiname>McameraPostImageCaptureControl</apiname></xref> object to the <xref href="GUID-3ECFEF01-EC6F-35E4-A544-39A345E3D8F2.dita"><apiname>CcameraPostImageCaptureControl</apiname></xref> object. </p> </li> <li id="GUID-53EBC94E-A630-5EF0-BAAF-70F2F5BCD49A"><p>Call <xref href="GUID-65D8585F-4841-3AF4-9A9D-5EAB188C6754.dita#GUID-65D8585F-4841-3AF4-9A9D-5EAB188C6754/GUID-065F8E55-564B-33BE-BE9D-C629553AB133"><apiname>McameraImageCapture::
-                CreatePostImageCaptureControlImpl</apiname></xref> method with UID value <xref href="GUID-6EBFCB30-8CDE-3E3F-A552-BC722F4F5B93.dita"><apiname>KECamMCameraPostImageCaptureControlUid</apiname></xref> to get the interface pointer. </p> <p>This creates a newly created interface to represent the individual image. </p> </li> <li id="GUID-D712DE6E-7FB2-56FE-A8D3-1FD66A48471C"><p>Use <xref href="GUID-6EBFCB30-8CDE-3E3F-A552-BC722F4F5B93.dita"><apiname>KECamMCameraPostImageCaptureControlUid</apiname></xref> ID to map the individual image with the <xref href="GUID-752D3B52-5BAD-3551-B832-16D0C47CD4EB.dita"><apiname>CCameraPostImageCaptureControl</apiname></xref> instance. </p> </li> <li id="GUID-D61383B7-DFAE-54C0-AA89-CFA93684C50E"><p>Use <xref href="GUID-752D3B52-5BAD-3551-B832-16D0C47CD4EB.dita"><apiname>CCameraPostImageCaptureControl</apiname></xref> class to control each captured still image. </p> </li> </ol> <p>Use <xref href="GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765.dita#GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765/GUID-7735D08D-6514-3D39-B5D4-08D735BADC9A"><apiname>CCameraImageProcessing::TRelativeFlipping</apiname></xref> to describe the various relative flipping of an image. The image can be flipped horizontally or vertically. </p> <p>Note: </p> <ul><li id="GUID-62442474-2A4A-5D86-963E-371CEF544815"><p> <xref href="GUID-752D3B52-5BAD-3551-B832-16D0C47CD4EB.dita"><apiname>CCameraPostImageCaptureControl</apiname></xref> objects will become unavailable if a new image capture request is issued, while the previous request is still not completed. </p> </li> <li id="GUID-009888BE-88FA-5DF9-A03F-868C84BDF18F"><p>Make sure you destroy <xref href="GUID-752D3B52-5BAD-3551-B832-16D0C47CD4EB.dita"><apiname>CCameraPostImageCaptureControl</apiname></xref> object when individual image cancellation is completed and/or individual image is saved. </p> </li> </ul> <p>The following example code snippets illustrates the use of <b>Post ImageCapture Control </b> classes. </p> <codeblock id="GUID-56F70751-E2CA-5EFC-B109-11E26180FC8B" xml:space="preserve">class MCameraImageCapture
-{
-...
-...
-TAny* CCamImageCapture::CreatePostImageCaptureControlImpl(TUid aInterface, TPostCaptureControlId aPostCaptureControlId)
-...
-}
-
-CCamera::CCameraPostImageCaptureControl* postImageCaptureControl;
-
-CCamPostImageCaptureControl* camPostImageCaptureControl;
-static_cast&lt;MCameraPostImageCaptureControl*&gt;(camPostImageCaptureControl);
-
-if(aInterface.iUid == KECamMCameraPostImageCaptureControlUidValue)
-    camPostImageCaptureControl = CCamPostImageCaptureControl::NewL(const_cast&lt;CCamImageCapture&amp;&gt;(*this));
-
-//Use of CCameraPostImageCaptureControl for Image Capture
-    CCamera::CCameraPostImageCaptureControl* postImgCapt = NULL;</codeblock> <p>Post ImageCapture Control implementation lets you do the following tasks: </p> <ul><li id="GUID-0A6C9D31-6515-5325-B44E-46D8950910AF"><p>retrieve the image data for individual images </p> </li> <li id="GUID-24D3C749-70A4-50E3-8E5D-A556EDC48518"><p>retrieve the post image capture identity for this class object </p> </li> <li id="GUID-23A14BED-AA67-56C1-A237-6B14B6642F27"><p>retrieve the sequence number of the individual image </p> </li> <li id="GUID-30A0DAB3-6018-5A1B-A946-C85306848B23"><p>pause or resume the background processing associated with this individual image </p> </li> <li id="GUID-37D5B6B2-B1A1-5B0A-A5E4-76C3885A999D"><p>retrieve information about the current state of the individual image and/or the current state of the image buffer. </p> </li> <li id="GUID-B6427AFE-2D9D-5E4A-8123-22C0E214BA8E"><p>retrieve the image buffer after notifying the availability of the individual image through associated call-backs. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita"> Controlling Pre-Image Capture</xref>  </p> <p><xref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita">Controlling Still-image Capture</xref> </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC-master.png has changed
Binary file Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e58928_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e59856_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e322219_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e328376_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3CA039D8-A74D-4C9E-B4F5-6E153C7F65A1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3CA039D8-A74D-4C9E-B4F5-6E153C7F65A1" xml:lang="en"><title>Finger
-vs. stylus </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section> <p>Consider the use cases of the application when deciding whether
-to use finger or stylus control, or possibly hardware keys. Eliminate the
-need to switch from using a finger or stylus on the touch screen, to using
-any of the hardware keys. Design should enable completing a task with the
-same interaction method as it was started with.</p><note>If your application
-is intended to be used with the stylus, rather than a finger, try to present
-this clearly to the users from the top level. It can be frustrating to start
-using an application with finger touch, then switching to stylus, for example,
-if the components on screen suddenly get smaller. </note><p>Decide whether
-the application is to be used with a single hand, or two hands. Make sure
-users are able to use at least the most important functions with only one
-hand, even though the application is designed to be used mainly with two hands.
- With touch screen devices, this means that the users should be able to perform
-most basic actions with their thumb.</p> <p>Applications that require the
-use of both hands include:</p><ul>
-<li><p>Applications that require the use of stylus</p></li>
-<li><p>Applications that are intended for landscape mode</p></li>
-<li><p>Applications that require data input </p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B"><title>Speech Recognition Controller Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the Speech Recognition Controller (SRC) component. </p> <section><title>Purpose</title> <p>The Speech Recognition Controller component provides speech recognition services for clients requiring speech recognition functionality. The SRC component comprises a client utility, a data handler and a custom commands library. </p> </section> <section><title>Required background</title> <p>Automatic Speech Recognition (ASR) is a technology that enables users to use speech to interact with devices. ASR works by converting speech into a machine-readable form. Voice activated dialling is an example of an ASR application. </p> </section> <section><title>Architectural relationships</title> <p>The ASR Client Utility is dependent on the Multimedia Framework. The MMF acts as the interface between the ASR Client Utility and the low level DevASR. A Speech Recognition Services (SRS) controller plugin is responsible for transporting speech recognition requests from the MMF to the DevASR. For playback, the DevASR implementation uses DevSound to play the recorded speech. </p> <p>The relationship between the SRC component and other multimedia components is shown below. </p> <fig id="GUID-7A60FFE5-51FB-5379-8C78-8EA81C46F91D"><title>
-             SRC component architectural relationship 
-          </title> <image href="GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e322407_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <p>The SRC component includes the following APIs: </p> <table id="GUID-A7626951-7BF0-5876-B799-F50B3F2DF587"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <b>Automatic Speech Recognition Client Utility</b>  </p> </entry> <entry><p>Client side interface for ASR. </p> <p>For more information, see <xref href="GUID-B454C08F-0531-5789-ABFA-171D3C2319D9.dita">Automatic Speech Recognition Client Utility Overview</xref>. </p> </entry> </row> <row><entry><p> <b>Automatic Speech Recognition Custom Commands</b>  </p> </entry> <entry><p>Custom commands for ASR. </p> <p>For more information, see <xref href="GUID-DC4BF172-CDD3-5351-BBA1-550DEC1706BD.dita">Automatic Speech Recognition Custom Commands Overview</xref>. </p> </entry> </row> <row><entry><p> <b>Automatic Speech Recognition Data Handling</b>  </p> </entry> <entry><p>Recognition data handling for ASR. </p> <p>For more information, see <xref href="GUID-F684F363-B361-5868-9195-41305428AB2D.dita">Automatic Speech Recognition Data Handling Overview</xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The SRC component is used for the following: </p> <ul><li id="GUID-9B393CDD-1BF6-5107-98E5-97D2A820A992"><p>Recognising spoken input. </p> </li> <li id="GUID-903CDDE8-CBA3-5ACE-A32E-F15EA3FC68F8"><p>Training a new model. </p> </li> <li id="GUID-C82BD979-3704-5B29-ADB0-BAA26A79B447"><p>Manipulating grammars, lexicons and models. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B"><title>Speech Recognition Controller Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the Speech Recognition Controller (SRC) component. </p> <section><title>Purpose</title> <p>The Speech Recognition Controller component provides speech recognition services for clients requiring speech recognition functionality. The SRC component comprises a client utility, a data handler and a custom commands library. </p> </section> <section><title>Required background</title> <p>Automatic Speech Recognition (ASR) is a technology that enables users to use speech to interact with devices. ASR works by converting speech into a machine-readable form. Voice activated dialling is an example of an ASR application. </p> </section> <section><title>Architectural relationships</title> <p>The ASR Client Utility is dependent on the Multimedia Framework. The MMF acts as the interface between the ASR Client Utility and the low level DevASR. A Speech Recognition Services (SRS) controller plugin is responsible for transporting speech recognition requests from the MMF to the DevASR. For playback, the DevASR implementation uses DevSound to play the recorded speech. </p> <p>The relationship between the SRC component and other multimedia components is shown below. </p> <fig id="GUID-7A60FFE5-51FB-5379-8C78-8EA81C46F91D"><title>
+             SRC component architectural relationship 
+          </title> <image href="GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e316250_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <p>The SRC component includes the following APIs: </p> <table id="GUID-A7626951-7BF0-5876-B799-F50B3F2DF587"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <b>Automatic Speech Recognition Client Utility</b>  </p> </entry> <entry><p>Client side interface for ASR. </p> <p>For more information, see <xref href="GUID-B454C08F-0531-5789-ABFA-171D3C2319D9.dita">Automatic Speech Recognition Client Utility Overview</xref>. </p> </entry> </row> <row><entry><p> <b>Automatic Speech Recognition Custom Commands</b>  </p> </entry> <entry><p>Custom commands for ASR. </p> <p>For more information, see <xref href="GUID-DC4BF172-CDD3-5351-BBA1-550DEC1706BD.dita">Automatic Speech Recognition Custom Commands Overview</xref>. </p> </entry> </row> <row><entry><p> <b>Automatic Speech Recognition Data Handling</b>  </p> </entry> <entry><p>Recognition data handling for ASR. </p> <p>For more information, see <xref href="GUID-F684F363-B361-5868-9195-41305428AB2D.dita">Automatic Speech Recognition Data Handling Overview</xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The SRC component is used for the following: </p> <ul><li id="GUID-9B393CDD-1BF6-5107-98E5-97D2A820A992"><p>Recognising spoken input. </p> </li> <li id="GUID-903CDDE8-CBA3-5ACE-A32E-F15EA3FC68F8"><p>Training a new model. </p> </li> <li id="GUID-C82BD979-3704-5B29-ADB0-BAA26A79B447"><p>Manipulating grammars, lexicons and models. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e196324_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3D110AD3-C5C7-533C-8E57-C4E3D032A229_d0e201332_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e76331_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e83043_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930"><title>Image Conversion Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Image Conversion functionality. </p> <section id="GUID-5BECDECD-C1EC-5579-BE91-8F8004CD0DC4"><title>Purpose</title> <p>Image Conversion functionality supports many features like encoding, decoding, scaling, rotating, producing mirror image, flipping and cropping images. </p> <p><b>Image Conversion Library Details</b> </p> <p>To use Image Conversion, you must obtain necessary binaries in the form of DLL file to implement the image encoding and the image decoding functions. </p> <table id="GUID-0F5A5EF5-1839-5A5A-9DCC-3A58CB33A62F"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>imageconversion.dll</filepath>  </p> </entry> <entry><p> <filepath>imageconversion.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing image conversion operation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>Image Conversion is primarily used for Image Encoding and Image Decoding. The following diagram shows how the Image Encoding and the Image Decoding interacts with other components. </p> <fig id="GUID-D7706AA7-F1A9-5D87-B9D6-760FB7D7E906"><title>
-             Image Conversion system diagram 
-          </title> <image href="GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e306996_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Image conversion provides several features to enable the conversion and basic manipulation of images. Conversions can be made from images stored in files or descriptors to <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects, or from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and <xref href="GUID-27B63129-ABD9-3B6C-882B-6F4501AF8E15.dita"><apiname>CFrameImageData</apiname></xref> objects to files or descriptors. Features of the image conversion function include: </p> <ul><li id="GUID-EA49D943-5B10-56C0-9AE3-5F73283CEB8E"><p>Standard decoders that can decode single or multiframe images, images with bitmasks, images with in-image or in-frame comments. </p> </li> <li id="GUID-80C4DB9F-6273-5656-8A6A-221528128D9C"><p>Support for progressive decoding. </p> </li> <li id="GUID-033F1133-1DFA-5460-9FE8-E95DB53CF38C"><p>Functions to decode images stored in files or descriptors. </p> </li> <li id="GUID-D99568AB-50DB-5B49-892E-A83FD4F4FABC"><p>Standard encoder that can encode single frame images and images with in image comments. </p> </li> <li id="GUID-85F702CC-60C0-5913-890C-08F8F6CAEFF2"><p>Functions to manipulate image properties such as scale, rotation, dithering and progressive decoding. </p> </li> <li id="GUID-94FF0822-C220-5D0C-AF65-16D2A09E7072"><p>Advanced thread control for encoder and decoders. </p> </li> </ul> </section> <section><title>Key Image Conversion Classes</title> <p>The key classes are </p> <dl><dlentry><dt>Image Encoding</dt> <dd><p>Image encoding is the process of taking a bitmap stored in a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>, converting it to a specified format and writing the output to a file or descriptor. Typical sources of bitmap data are cameras and paint applications. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref> object is created specifying the source image and encoder plugin as parameters. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita#GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8/GUID-E1CADEBF-E502-3F7E-85D1-C6AA63E497FE"><apiname>CImageEncoder::Convert()</apiname></xref> function then encodes the image using the methods provided by the plugin. The results of the conversion are then saved to a file or descriptor. </p> </dd> </dlentry> <dlentry><dt>Image Decoding</dt> <dd><p>Image decoding is the process of taking an image stored in a file or descriptor, converting it from a specified format and writing the output to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object is created specifying the source image and decoder plugin as parameters. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref> function then decodes the image using the methods provided by the plugin. The results of the conversion are then saved to a <codeph>CFbsBitmap</codeph>. </p> </dd> </dlentry> <dlentry><dt>Image Processor</dt> <dd><p>Image Processor is an interface to process the decoded image using the <xref href="GUID-E57B96D4-87E2-3BD7-ADA1-B9448A6DFFF6.dita"><apiname>CImageProcessor</apiname></xref> class. </p> </dd> </dlentry> </dl> </section> <section><title>Using Image Conversion</title> <p>The Image Conversion functionality is used for the following: </p> <ul><li id="GUID-1A5A0DC1-EA29-535C-A5BB-5D8EF0F24A5C"><p>Rotate, crop, mirror and flip an image frame during decode operation. </p> </li> <li id="GUID-0F53E15D-1D95-587E-8B4B-2B7E6CBEF2BF"><p>Scaling with reduction factor of an image during decode operation. </p> </li> <li id="GUID-55A5A2CD-ED87-56E7-8A36-8F783454184C"><p>Decode an image by requesting pixel data block by block. </p> </li> <li id="GUID-84E17F61-98DF-5782-8DFF-EE946F61E8DF"><p>Decode an image from a descriptor or a file. </p> </li> <li id="GUID-67885D9D-BA8C-53A4-B5E5-6B57B0ED00A8"><p>Decode an image using a mask for the image with transparency. </p> </li> <li id="GUID-10DF77DC-D6B5-54E7-A8B1-728DA0970558"><p>Decode an image using separate thread. </p> </li> <li id="GUID-A4FA39C1-2965-582D-B9EC-E2FB57646274"><p>Decode a JPEG image thumbnail. </p> </li> <li id="GUID-7D98BCC3-18EF-5EF3-8B1A-99AE0DB2F809"><p>Decode a GIF multi-frame image. </p> </li> <li id="GUID-3710C58E-45F1-5FFC-8DAA-28B5FD4A2A76"><p>Decode an image that supports YUV format into an image frame. </p> </li> <li id="GUID-F25602E2-9EA2-5C08-A445-11911DC1C47F"><p>Turning OFF and ON dithering during decode operation of the image. </p> </li> <li id="GUID-43824E57-1608-5798-BE2B-A28EE0C1670E"><p>Encode a bitmap or an image frame into a descriptor or a file. </p> </li> <li id="GUID-F56A325A-3272-5E0A-99A1-60D29E5EBE50"><p>Encode an image frame by passing pixel data block by block. </p> </li> <li id="GUID-8C57D275-981D-5D70-8D60-3F7FD5DCE2F7"><p>Rotate, mirror and flip an image during encode functionality. </p> </li> <li id="GUID-6D5ACBD5-2471-50BF-AAB5-B71D98F9DF39"><p>Rotate a bitmap image. </p> </li> <li id="GUID-2CE27CA7-4D48-5E04-B307-B5C934918AAE"><p>Scaling a bitmap image with or without a mask. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks Overview</linktext> </link> <link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion Overview</linktext> </link> <link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding Tutorial</linktext> </link> <link href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita"><linktext>Image Decoding Tutorial</linktext> </link> <link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to Symbian supplied Codecs</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930"><title>Image Conversion Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Image Conversion functionality. </p> <section id="GUID-5BECDECD-C1EC-5579-BE91-8F8004CD0DC4"><title>Purpose</title> <p>Image Conversion functionality supports many features like encoding, decoding, scaling, rotating, producing mirror image, flipping and cropping images. </p> <p><b>Image Conversion Library Details</b> </p> <p>To use Image Conversion, you must obtain necessary binaries in the form of DLL file to implement the image encoding and the image decoding functions. </p> <table id="GUID-0F5A5EF5-1839-5A5A-9DCC-3A58CB33A62F"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>imageconversion.dll</filepath>  </p> </entry> <entry><p> <filepath>imageconversion.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing image conversion operation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>Image Conversion is primarily used for Image Encoding and Image Decoding. The following diagram shows how the Image Encoding and the Image Decoding interacts with other components. </p> <fig id="GUID-D7706AA7-F1A9-5D87-B9D6-760FB7D7E906"><title>
+             Image Conversion system diagram 
+          </title> <image href="GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e300969_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Image conversion provides several features to enable the conversion and basic manipulation of images. Conversions can be made from images stored in files or descriptors to <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects, or from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and <xref href="GUID-27B63129-ABD9-3B6C-882B-6F4501AF8E15.dita"><apiname>CFrameImageData</apiname></xref> objects to files or descriptors. Features of the image conversion function include: </p> <ul><li id="GUID-EA49D943-5B10-56C0-9AE3-5F73283CEB8E"><p>Standard decoders that can decode single or multiframe images, images with bitmasks, images with in-image or in-frame comments. </p> </li> <li id="GUID-80C4DB9F-6273-5656-8A6A-221528128D9C"><p>Support for progressive decoding. </p> </li> <li id="GUID-033F1133-1DFA-5460-9FE8-E95DB53CF38C"><p>Functions to decode images stored in files or descriptors. </p> </li> <li id="GUID-D99568AB-50DB-5B49-892E-A83FD4F4FABC"><p>Standard encoder that can encode single frame images and images with in image comments. </p> </li> <li id="GUID-85F702CC-60C0-5913-890C-08F8F6CAEFF2"><p>Functions to manipulate image properties such as scale, rotation, dithering and progressive decoding. </p> </li> <li id="GUID-94FF0822-C220-5D0C-AF65-16D2A09E7072"><p>Advanced thread control for encoder and decoders. </p> </li> </ul> </section> <section><title>Key Image Conversion Classes</title> <p>The key classes are </p> <dl><dlentry><dt>Image Encoding</dt> <dd><p>Image encoding is the process of taking a bitmap stored in a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>, converting it to a specified format and writing the output to a file or descriptor. Typical sources of bitmap data are cameras and paint applications. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref> object is created specifying the source image and encoder plugin as parameters. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita#GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8/GUID-E1CADEBF-E502-3F7E-85D1-C6AA63E497FE"><apiname>CImageEncoder::Convert()</apiname></xref> function then encodes the image using the methods provided by the plugin. The results of the conversion are then saved to a file or descriptor. </p> </dd> </dlentry> <dlentry><dt>Image Decoding</dt> <dd><p>Image decoding is the process of taking an image stored in a file or descriptor, converting it from a specified format and writing the output to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object is created specifying the source image and decoder plugin as parameters. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref> function then decodes the image using the methods provided by the plugin. The results of the conversion are then saved to a <codeph>CFbsBitmap</codeph>. </p> </dd> </dlentry> <dlentry><dt>Image Processor</dt> <dd><p>Image Processor is an interface to process the decoded image using the <xref href="GUID-E57B96D4-87E2-3BD7-ADA1-B9448A6DFFF6.dita"><apiname>CImageProcessor</apiname></xref> class. </p> </dd> </dlentry> </dl> </section> <section><title>Using Image Conversion</title> <p>The Image Conversion functionality is used for the following: </p> <ul><li id="GUID-1A5A0DC1-EA29-535C-A5BB-5D8EF0F24A5C"><p>Rotate, crop, mirror and flip an image frame during decode operation. </p> </li> <li id="GUID-0F53E15D-1D95-587E-8B4B-2B7E6CBEF2BF"><p>Scaling with reduction factor of an image during decode operation. </p> </li> <li id="GUID-55A5A2CD-ED87-56E7-8A36-8F783454184C"><p>Decode an image by requesting pixel data block by block. </p> </li> <li id="GUID-84E17F61-98DF-5782-8DFF-EE946F61E8DF"><p>Decode an image from a descriptor or a file. </p> </li> <li id="GUID-67885D9D-BA8C-53A4-B5E5-6B57B0ED00A8"><p>Decode an image using a mask for the image with transparency. </p> </li> <li id="GUID-10DF77DC-D6B5-54E7-A8B1-728DA0970558"><p>Decode an image using separate thread. </p> </li> <li id="GUID-A4FA39C1-2965-582D-B9EC-E2FB57646274"><p>Decode a JPEG image thumbnail. </p> </li> <li id="GUID-7D98BCC3-18EF-5EF3-8B1A-99AE0DB2F809"><p>Decode a GIF multi-frame image. </p> </li> <li id="GUID-3710C58E-45F1-5FFC-8DAA-28B5FD4A2A76"><p>Decode an image that supports YUV format into an image frame. </p> </li> <li id="GUID-F25602E2-9EA2-5C08-A445-11911DC1C47F"><p>Turning OFF and ON dithering during decode operation of the image. </p> </li> <li id="GUID-43824E57-1608-5798-BE2B-A28EE0C1670E"><p>Encode a bitmap or an image frame into a descriptor or a file. </p> </li> <li id="GUID-F56A325A-3272-5E0A-99A1-60D29E5EBE50"><p>Encode an image frame by passing pixel data block by block. </p> </li> <li id="GUID-8C57D275-981D-5D70-8D60-3F7FD5DCE2F7"><p>Rotate, mirror and flip an image during encode functionality. </p> </li> <li id="GUID-6D5ACBD5-2471-50BF-AAB5-B71D98F9DF39"><p>Rotate a bitmap image. </p> </li> <li id="GUID-2CE27CA7-4D48-5E04-B307-B5C934918AAE"><p>Scaling a bitmap image with or without a mask. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks Overview</linktext> </link> <link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion Overview</linktext> </link> <link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding Tutorial</linktext> </link> <link href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita"><linktext>Image Decoding Tutorial</linktext> </link> <link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to Symbian supplied Codecs</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e184580_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e191176_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572" xml:lang="en"><title>Inter-thread
-Data Transfer</title><shortdesc>The mechanism for copying data between threads is called inter-thread
-data transfer and is handled by the four functions provided by the <codeph>RThread</codeph> handle.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Data can be passed between threads. The threads can be in the same process
-or in different processes. The functions provides by the <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> class
-are:</p>
-<ul>
-<li id="GUID-416730EC-5719-5633-A51A-50B0E3AAD8F4"><p><codeph>ReadL()</codeph> </p> </li>
-<li id="GUID-B4EF1893-D469-541A-898E-AEC8DBF1BD3A"><p><codeph>WriteL()</codeph> </p> </li>
-<li id="GUID-7550CBE4-FEBF-51E5-AB0D-80729D7CAC95"><p><codeph>GetDesLength()</codeph> </p> </li>
-<li id="GUID-0B8127FB-9FE1-5EAA-9B8B-3F0BC9F4AAF5"><p><codeph>GetDesMaxLength()</codeph> </p> </li>
-</ul>
-<p>The functions are used in the implementation of the <codeph>RMessage</codeph> class
-which, in turn, is used for passing information between clients and servers.</p>
-<p>The <codeph>ReadL()</codeph> and <codeph>WriteL()</codeph> functions, which
-transfer data, assume that both source and target data are descriptors.</p>
-<p>Typically, code executing in the current thread will have a handle to another
-thread. The code in the <i>current</i> thread copies data <i>from</i> the <i>other</i> thread,
-represented by an <codeph>RThread</codeph> handle, by calling its <codeph>ReadL()</codeph> function.
-Copying data <i>to</i> the <i>other</i> thread is similar, but is done using
-the <codeph>WriteL()</codeph> function. The following diagram illustrates
-this:</p>
-<fig id="GUID-7A4E3725-E6DA-566D-86E0-2941A8D96ACE">
-<image href="GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e251682_href.png" placement="inline"/>
-</fig>
-<p>The source or target location in the <i>other</i> thread is identified
-by pointer. The pointer only has meaning within the context of that thread;
-attempting to reference the pointer directly from within the <i>current</i> thread
-is meaningless and may cause an exception.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572" xml:lang="en"><title>Inter-thread
+Data Transfer</title><shortdesc>The mechanism for copying data between threads is called inter-thread
+data transfer and is handled by the four functions provided by the <codeph>RThread</codeph> handle.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Data can be passed between threads. The threads can be in the same process
+or in different processes. The functions provides by the <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> class
+are:</p>
+<ul>
+<li id="GUID-416730EC-5719-5633-A51A-50B0E3AAD8F4"><p><codeph>ReadL()</codeph> </p> </li>
+<li id="GUID-B4EF1893-D469-541A-898E-AEC8DBF1BD3A"><p><codeph>WriteL()</codeph> </p> </li>
+<li id="GUID-7550CBE4-FEBF-51E5-AB0D-80729D7CAC95"><p><codeph>GetDesLength()</codeph> </p> </li>
+<li id="GUID-0B8127FB-9FE1-5EAA-9B8B-3F0BC9F4AAF5"><p><codeph>GetDesMaxLength()</codeph> </p> </li>
+</ul>
+<p>The functions are used in the implementation of the <codeph>RMessage</codeph> class
+which, in turn, is used for passing information between clients and servers.</p>
+<p>The <codeph>ReadL()</codeph> and <codeph>WriteL()</codeph> functions, which
+transfer data, assume that both source and target data are descriptors.</p>
+<p>Typically, code executing in the current thread will have a handle to another
+thread. The code in the <i>current</i> thread copies data <i>from</i> the <i>other</i> thread,
+represented by an <codeph>RThread</codeph> handle, by calling its <codeph>ReadL()</codeph> function.
+Copying data <i>to</i> the <i>other</i> thread is similar, but is done using
+the <codeph>WriteL()</codeph> function. The following diagram illustrates
+this:</p>
+<fig id="GUID-7A4E3725-E6DA-566D-86E0-2941A8D96ACE">
+<image href="GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e247945_href.png" placement="inline"/>
+</fig>
+<p>The source or target location in the <i>other</i> thread is identified
+by pointer. The pointer only has meaning within the context of that thread;
+attempting to reference the pointer directly from within the <i>current</i> thread
+is meaningless and may cause an exception.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431356_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431518_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e213809_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e217546_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e133201_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e139735_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e194049_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e199057_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,102 +1,102 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A" xml:lang="en"><title>Communications
-Framework Quick Start</title><shortdesc>This topic describes the activities that users can do to make use
-of the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-8-1-8-1-1-5-1-3-1"><title>Getting started
-with Communications Framework</title> <ul>
-<li id="GUID-2EF077BD-0194-5C6B-B4B6-A226A09DBA5D"><p>To manage communications
-connections and transfer data, use the client interfaces provided by the Sockets
-Server, together with additional interfaces that are provided by implementations
-of specific communications protocols. For example, to communicate over the
-TCP protocol, use the Sockets Server together with the Internet Sockets libraries
-provided by Networking Services. </p> </li>
-<li id="GUID-D57F54F9-8006-54E8-991B-C6180D53F00C"><p>To implement new communications
-protocols, implement plug-ins that conform to the Comms Architecture. </p> </li>
-<li id="GUID-7AC9CA5C-7138-5526-8CAE-B42B852B2F8C"><p>To configure the communications
-set up of a phone, use the Comms Database. </p> </li>
-<li id="GUID-CE7D99C4-7F70-58D1-8221-66BC71403C49"><p>To communicate over
-a serial port, such as RS232, and to access other communications protocols
-that can be used in a similar way, use the Serial Communications Server. </p> </li>
-</ul> </section>
-<section id="GUID-C0D0A389-FAEE-4077-9584-FE7A85E9572E"><title>Architecture</title> <p>The Communications Framework enables
-communication in mobile devices. It allows the devices to connect to networks,
-create and store network settings, manage memory used for communications,
-and send and receive data. </p> <p>The Communications Framework comprises
-the following collections: </p> <ul>
-<li id="GUID-E9C6BC79-01AD-53E4-8885-486D7B3E0CDB"><p> <b>Communications Process
-and Settings</b>  </p> <p>This collection contains the Comms Root Server and
-Comms Root Server Configurator components. For more information see <xref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita">Root Server</xref>. </p> </li>
-<li id="GUID-08F51E77-4EE3-580C-922D-16D366ADD559"><p> <b>Communications Configuration</b>  </p> <p>This
-collection contains the Comms Database. The Comms Database contains data about
-all of the settings in the communication framework. For more information about
-the Comms Database, see <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms
-Database</xref>. </p> </li>
-<li id="GUID-E19E0A03-7B46-51FE-BDFC-0EB0F73F2896"><p> <b>Data Communications
-Server </b>  </p> <p>This collection contains the ESock Server and ESock Server
-Configurator components. For more information, see <xref href="GUID-2139B04C-6ED6-599B-A018-D92451B8353E.dita">Data
-Communications Server</xref>. </p> </li>
-<li id="GUID-2865D60A-BA76-5937-8A28-09316F5DF699"><p> <b>Communications Framework
-Utilities </b>  </p> <p>This collection contains the Comms framework, Comms
-Elements and MBuf Manager. For more information, see <xref href="GUID-12D1F61B-6BC6-5215-A832-E84C0F480765.dita">Communications
-Framework Utilities</xref>. </p> </li>
-<li id="GUID-23E59E44-9AC6-5EB4-886A-86549AD875BF"><p> <b>Serial Server and
-Serial Comms Server Plug-ins </b>  </p> <p>These collections contain the C32
-Serial Server and the C32 Serial Server and the Serial Port CSY. For more
-information, see <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
-Communications Server</xref>. </p> </li>
-</ul> <p>The following diagram outlines the Communication Framework collections
-and the components associated with each collection. </p> <fig id="GUID-201CB2BD-3398-57FA-B5D7-B38D1FFE77FD">
-<image href="GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e82591_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-47666C49-F51E-4297-9222-6ABDD2FF32B8"><title>Technologies</title> <p>The Comms Framework defines the structure
-and operations of the communications protocol stack in Symbian platform,
-and allows applications to use the stack through a sockets type API. It defines
-the concepts, roles, and rules that govern the function of the stack, but
-does not itself implement specific protocols, such as TCP/IP, in that stack. </p> <p>This
-section describes the key features and technologies implemented by the Communications
-Framework. </p> <ul>
-<li id="GUID-2141A1D6-D3F8-5AA8-AE2A-1E6EAC715E04"><p> <b>Comms Database</b>  </p> <p>The
-Comms database comprises a series of tables which are used to store communications
-settings. Each table is made up of a set of records. These records are in
-turn made up of a series of fields. A field is the basic unit of information
-in the Comms Database. For more information, see <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms
-Database</xref>. </p> </li>
-<li id="GUID-64F701EE-FDC3-54EE-A1CB-19B9448F2DA0"><p> <b>Root Server</b>  </p> <p>Root
-Server manages the process in which all Communications Servers are loaded.
-The process is called <i>C32exe</i> and is also known as <i>C32</i>. For more
-information, see <xref href="GUID-236D3822-13C3-5AD8-B0FB-C28732E17CF7.dita">What
-is Root Server and the C32exe Process?</xref>. </p> </li>
-<li id="GUID-9299C35C-4EBD-534F-9B72-813D7D6EF981"><p> <b>ESock Server</b>  </p> <p>ESock
-Server provides a generic interface to communications protocols through communication
-end points known as sockets. They provide a generic interface to network level
-communications protocols for common operations involved in network computing.
-These include sending data, receiving data, establishing connections, and
-configuring network protocols. </p> </li>
-<li id="GUID-B2449768-EC88-5FFE-9AA2-017FDCBACF50"><p> <b>Network Interface
-Manager</b>  </p> <p>The Network Interface Manager (NifMan) creates and manages
-network interfaces. The Network interfaces enable the devices to connect to
-networks. For more information about NifMan, see <xref href="GUID-31371091-A28D-5203-BE6A-0F182F99582D.dita">Network
-Interface Manager (NifMan)</xref>. </p> </li>
-<li id="GUID-3E3E2DFC-12A2-5E56-B5AC-D1A7B4C73DC1"><p> <b>MBufManager</b>  </p> <p>An
-MBuf is part of the implementation of a buffer in the Comms Architecture and
-represents a section of memory. The Communications framework creates a MBufs
-when the device starts. The MBufManager provides memory management for the
-Comms processes. For more information about buffers and MBufs, see <xref href="GUID-A248C2C0-5F64-5484-85B2-57C86E3499E1.dita">Memory
-Management</xref>. </p> </li>
-<li id="GUID-C359C51A-2A1A-596C-9492-490FD97A4D91"><p> <b>C32 Serial Server</b>  </p> <p>The
-Serial Communications Server provides a public API to access the serial ports
-of the device. It provides functionality such as timeouts and port sharing
-for all Serial Protocol Modules. For more information, see the <xref href="GUID-6C7B7778-9B2E-5D8C-B2D8-74AC1DEEDF61.dita">Serial
-Communications Server</xref>. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A" xml:lang="en"><title>Communications
+Framework Quick Start</title><shortdesc>This topic describes the activities that users can do to make use
+of the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-10-1-8-1-1-5-1-3-1"><title>Getting started
+with Communications Framework</title> <ul>
+<li id="GUID-2EF077BD-0194-5C6B-B4B6-A226A09DBA5D"><p>To manage communications
+connections and transfer data, use the client interfaces provided by the Sockets
+Server, together with additional interfaces that are provided by implementations
+of specific communications protocols. For example, to communicate over the
+TCP protocol, use the Sockets Server together with the Internet Sockets libraries
+provided by Networking Services. </p> </li>
+<li id="GUID-D57F54F9-8006-54E8-991B-C6180D53F00C"><p>To implement new communications
+protocols, implement plug-ins that conform to the Comms Architecture. </p> </li>
+<li id="GUID-7AC9CA5C-7138-5526-8CAE-B42B852B2F8C"><p>To configure the communications
+set up of a phone, use the Comms Database. </p> </li>
+<li id="GUID-CE7D99C4-7F70-58D1-8221-66BC71403C49"><p>To communicate over
+a serial port, such as RS232, and to access other communications protocols
+that can be used in a similar way, use the Serial Communications Server. </p> </li>
+</ul> </section>
+<section id="GUID-C0D0A389-FAEE-4077-9584-FE7A85E9572E"><title>Architecture</title> <p>The Communications Framework enables
+communication in mobile devices. It allows the devices to connect to networks,
+create and store network settings, manage memory used for communications,
+and send and receive data. </p> <p>The Communications Framework comprises
+the following collections: </p> <ul>
+<li id="GUID-E9C6BC79-01AD-53E4-8885-486D7B3E0CDB"><p> <b>Communications Process
+and Settings</b>  </p> <p>This collection contains the Comms Root Server and
+Comms Root Server Configurator components. For more information see <xref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita">Root Server</xref>. </p> </li>
+<li id="GUID-08F51E77-4EE3-580C-922D-16D366ADD559"><p> <b>Communications Configuration</b>  </p> <p>This
+collection contains the Comms Database. The Comms Database contains data about
+all of the settings in the communication framework. For more information about
+the Comms Database, see <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms
+Database</xref>. </p> </li>
+<li id="GUID-E19E0A03-7B46-51FE-BDFC-0EB0F73F2896"><p> <b>Data Communications
+Server </b>  </p> <p>This collection contains the ESock Server and ESock Server
+Configurator components. For more information, see <xref href="GUID-2139B04C-6ED6-599B-A018-D92451B8353E.dita">Data
+Communications Server</xref>. </p> </li>
+<li id="GUID-2865D60A-BA76-5937-8A28-09316F5DF699"><p> <b>Communications Framework
+Utilities </b>  </p> <p>This collection contains the Comms framework, Comms
+Elements and MBuf Manager. For more information, see <xref href="GUID-12D1F61B-6BC6-5215-A832-E84C0F480765.dita">Communications
+Framework Utilities</xref>. </p> </li>
+<li id="GUID-23E59E44-9AC6-5EB4-886A-86549AD875BF"><p> <b>Serial Server and
+Serial Comms Server Plug-ins </b>  </p> <p>These collections contain the C32
+Serial Server and the C32 Serial Server and the Serial Port CSY. For more
+information, see <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
+Communications Server</xref>. </p> </li>
+</ul> <p>The following diagram outlines the Communication Framework collections
+and the components associated with each collection. </p> <fig id="GUID-201CB2BD-3398-57FA-B5D7-B38D1FFE77FD">
+<image href="GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e75879_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-47666C49-F51E-4297-9222-6ABDD2FF32B8"><title>Technologies</title> <p>The Comms Framework defines the structure
+and operations of the communications protocol stack in Symbian platform,
+and allows applications to use the stack through a sockets type API. It defines
+the concepts, roles, and rules that govern the function of the stack, but
+does not itself implement specific protocols, such as TCP/IP, in that stack. </p> <p>This
+section describes the key features and technologies implemented by the Communications
+Framework. </p> <ul>
+<li id="GUID-2141A1D6-D3F8-5AA8-AE2A-1E6EAC715E04"><p> <b>Comms Database</b>  </p> <p>The
+Comms database comprises a series of tables which are used to store communications
+settings. Each table is made up of a set of records. These records are in
+turn made up of a series of fields. A field is the basic unit of information
+in the Comms Database. For more information, see <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms
+Database</xref>. </p> </li>
+<li id="GUID-64F701EE-FDC3-54EE-A1CB-19B9448F2DA0"><p> <b>Root Server</b>  </p> <p>Root
+Server manages the process in which all Communications Servers are loaded.
+The process is called <i>C32exe</i> and is also known as <i>C32</i>. For more
+information, see <xref href="GUID-236D3822-13C3-5AD8-B0FB-C28732E17CF7.dita">What
+is Root Server and the C32exe Process?</xref>. </p> </li>
+<li id="GUID-9299C35C-4EBD-534F-9B72-813D7D6EF981"><p> <b>ESock Server</b>  </p> <p>ESock
+Server provides a generic interface to communications protocols through communication
+end points known as sockets. They provide a generic interface to network level
+communications protocols for common operations involved in network computing.
+These include sending data, receiving data, establishing connections, and
+configuring network protocols. </p> </li>
+<li id="GUID-B2449768-EC88-5FFE-9AA2-017FDCBACF50"><p> <b>Network Interface
+Manager</b>  </p> <p>The Network Interface Manager (NifMan) creates and manages
+network interfaces. The Network interfaces enable the devices to connect to
+networks. For more information about NifMan, see <xref href="GUID-31371091-A28D-5203-BE6A-0F182F99582D.dita">Network
+Interface Manager (NifMan)</xref>. </p> </li>
+<li id="GUID-3E3E2DFC-12A2-5E56-B5AC-D1A7B4C73DC1"><p> <b>MBufManager</b>  </p> <p>An
+MBuf is part of the implementation of a buffer in the Comms Architecture and
+represents a section of memory. The Communications framework creates a MBufs
+when the device starts. The MBufManager provides memory management for the
+Comms processes. For more information about buffers and MBufs, see <xref href="GUID-A248C2C0-5F64-5484-85B2-57C86E3499E1.dita">Memory
+Management</xref>. </p> </li>
+<li id="GUID-C359C51A-2A1A-596C-9492-490FD97A4D91"><p> <b>C32 Serial Server</b>  </p> <p>The
+Serial Communications Server provides a public API to access the serial ports
+of the device. It provides functionality such as timeouts and port sharing
+for all Serial Protocol Modules. For more information, see the <xref href="GUID-6C7B7778-9B2E-5D8C-B2D8-74AC1DEEDF61.dita">Serial
+Communications Server</xref>. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e124947_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3F0789DE-8455-5BA6-850C-45C60C581F18_d0e131485_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e260274_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e263982_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e64488_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e65436_href.png has changed
--- a/Symbian3/SDK/Source/GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C" xml:lang="en"><title>Color
-selection grid</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Color selection grid consists of grid and may include None button.</p>
-<p>Color selection grid pop-up works similar to regular pop-ups, except for
-that dragging and flicking are disabled. The None field is not a part of the
-color grid but a separate button. There is no initial focus in the color selection
-grid.</p>
-<fig id="GUID-580E5952-9BAD-41FF-AE8B-6F4F1FA804E7">
-<title>Example of color selection grid</title>
-<image href="GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e58775_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C" xml:lang="en"><title>Color
+selection grid</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Color selection grid consists of grid and may include None button.</p>
+<p>Color selection grid pop-up works similar to regular pop-ups, except for
+that dragging and flicking are disabled. Note that the grid can also have
+a None field but as a separate button. There is no initial focus in the color
+selection grid.</p>
+<fig id="GUID-580E5952-9BAD-41FF-AE8B-6F4F1FA804E7">
+<title>Example of color selection grid</title>
+<image href="GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e53053_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,186 +1,186 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C" xml:lang="en"><title>New
-Search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This tutorial provides the steps to perform new search on messages (mainly,
-on email messages). </p>
-<section><title>Introduction</title> <p>You can perform the following types
-of search on messages (mainly, on email messages): </p> <ul>
-<li id="GUID-5851CB02-D769-546E-B748-E6C1E0C1EB8C"><p> <b>Simple search</b>  </p> <p>In
-a simple search, you use only one message field as a search criteria in a
-search request. The single message field can be: to, from, cc, size, time,
-message type, message status, priority, attachment type or message body. For
-example, search for all emails sent to <i>Sam</i>. </p> </li>
-<li id="GUID-3F4B645D-3A6A-5ED8-AF07-41F02D20F551"><p> <b>Combined search</b>  </p> <p>In
-a combined search, you use more than one message field as a search criteria
-in a search request. The message fields can be a combination of: to, from,
-cc, size, time, message type, message status, priority, attachment type, and
-message body. </p> <p> <b>Note:</b> You can use maximum of five message parts
-as a search criteria in a combined search. </p> <p>For a combined search,
-the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D5AC69E9-75E0-3179-B12B-1D9521684D4D"><apiname>CMsvSearchSortQuery::AddSearchOptionL()</apiname></xref> function can
-be called more than once depending on the message fields you use in the search
-query. For example, if you have to search all messages from sender <i>Albert</i>,
-with <b>subject</b>  <i>Invitation</i>, then you must call the <xref href="GUID-E49C2AFE-5793-37A6-9A08-2A1DD5CCA160.dita"><apiname>AddSearchQueryOptions</apiname></xref> function
-twice. </p> <p>However, you can use any functions of the <xref href="GUID-F2882FAD-A108-342E-8E35-039C83EFEF55.dita"><apiname>TMsvSearchSortQuery</apiname></xref> class
-only once in each combined search query. </p> </li>
-</ul> <p><b>Iterative method</b> </p> <p>You can enable an iterative method
-in simple and combined searches: </p> <ul>
-<li id="GUID-855C5460-41A4-5946-9973-67624AFFE3D6"><p> <b>Iterative</b>  </p> <p>The
-iterative method allows a client to access the search-sort results sequentially
-one at a time. It is useful when a client cannot, or does not want to provide
-the memory to receive an array of results. </p> </li>
-<li id="GUID-0EA3F74E-E3AA-5DCE-A400-B8D1DA8E998B"><p> <b> Non-iterative</b>  </p> <p>This
-method retrieves the complete results of the query in a single array. It requires
-sufficient RAM on the client-side. This is particularly useful for queries
-that return small subset of results. </p> </li>
-</ul><note> You specify the method with the <codeph>TInt aIterator</codeph> parameter
-when the client sends a query to the Message Server. By default, the value
-is zero (<codeph>0</codeph>) which indicates the non-iterative method. You
-must set it to <codeph>1</codeph> to get specify the iterative method.</note> <fig id="GUID-B440387E-2A93-5DF0-9E81-79FCA72AB5C8">
-<title>                 New search-sort request process               </title>
-<image href="GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e287157_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Simple search</title> <ol id="GUID-40D841C8-004A-5E15-AB18-DD1E3D9C0164">
-<li id="GUID-90D2E877-B63F-57C5-9601-47CC2AE67325"><p>Create a search-sort
-query using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B39D5F47-158A-38C8-8552-B3B5581554F7"><apiname>CMsvSearchSortQuery::NewL()</apiname></xref> function. </p> </li>
-<li id="GUID-F140F72C-3314-5F79-8F00-5E518CE2A2CF"><p>Configure the query
-by setting parameters, such as the directory to search in, the format for
-the results, whether to search for whole or part words, whether to use wild
-cards, the case sensitivity, the values and fields to search and the sorting
-options. </p> </li>
-<li id="GUID-5DBE5827-C1C4-5F38-9F43-76DEFD7FA70E"><p>Add the search-sort
-operation using the search query as a parameter using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D5AC69E9-75E0-3179-B12B-1D9521684D4D"><apiname>CMsvSearchSortQuery::AddSearchOptionL()</apiname></xref> function.
-There are three versions of the <xref href="GUID-99504AB6-680F-3D96-BA10-CF04D8C23554.dita"><apiname>AddSearchOptionL()</apiname></xref> function,
-each of which takes a different parameter type: </p> <ol id="GUID-9E468043-DDA7-53D3-A859-1EA1588ABFB5">
-<li id="GUID-B73CCE8B-B404-553A-AE55-F16BAE3BDCC6"><p>Descriptor: For searching
-on sender, recipient list (cc, to, bcc), subject, date and date range. </p> </li>
-<li id="GUID-3A0E35A3-FE7A-5853-94FA-7247F92DBBB5"><p>Integer: For searching
-message size and size range. </p> </li>
-<li id="GUID-B026C578-BC3F-51C8-AA60-F1EE42B58E10"><p>Boolean: For searching
-on priority (high, medium and low), attachment types, message status. </p> </li>
-</ol> <p> Note: If necessary, enable sorting of search result in ascending
-or descending order on the message part added in the query. </p> </li>
-<li id="GUID-79E1C31B-D45A-5F24-8761-A789005A77A0"><p>Create a session with
-the Messaging server using the <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession</apiname></xref> class. </p> </li>
-<li id="GUID-1159ADC2-1226-575E-BA82-3ECE7010630A"><p>Create a search-sort
-operation using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class. </p> </li>
-<li id="GUID-0FC467F8-F7F1-5FEA-9CBC-5EF7E756834C"><p>Start the search-sort
-operation by calling the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref> function
-and passing the query as a parameter. Do not include an iterator parameter.
-It will default to zero (non-iterative). </p> </li>
-<li id="GUID-5C94A9EF-88F1-5B71-9D7A-2EF7C69D77AB"><p>Wait for the Messaging
-Server to perform the search. </p> </li>
-<li id="GUID-D2EAE048-D5CA-5728-967E-4830873E11DE"><p>Create an array for
-storing the results of the search. </p> </li>
-<li id="GUID-8258A7BA-DF95-59B9-B9C9-AEDE61EFEEA7"><p>Retrieve the results
-from the search into the array using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1D6974D1-FF31-3B7C-A726-47A8510E9819"><apiname>CMsvSearchSortOperation::GetResultsL()</apiname></xref> function. </p> </li>
-<li id="GUID-0B0C26C5-6FA7-5CFA-8C5B-9CEB5C7BC5C0"><p>Get the query ID of
-the search from the Messaging server, if necessary, for later use using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-989B6F32-DE88-373B-9CA4-5474BB6858CD"><apiname>CMsvSearchSortOperation::GetQueryId()</apiname></xref> function. </p> </li>
-</ol> <codeblock xml:space="preserve">/**
-Simple Seachsort request without iterator.
-*/ 
-void CSearchsortExample::SeachSortRequestWithoutIteratorL()
-    {
-    //1. Create an instance of CMsvSearchSortQuery to create a
-    //search-sort query
-    CMsvSearchSortQuery* searchQuery = CMsvSearchSortQuery::NewL();
-    CleanupStack::PushL(searchQuery);
-
-    //2. Configure the query.
-    //Search-sort operation is performed on a specified folder.
-    //(e.g, on INBOX, SENT ITEMS, 
-    //DRAFT, OUTBOX or any user created folder). Needs to set the value of the folder entry.
-    searchQuery-&gt;SetParentId(KMsvRootIndexEntryIdValue);
-    //Set the type of result expected out of the search-sort operation. 
-    searchQuery-&gt;SetResultType(EMsvResultAsTMsvId);
-    searchQuery-&gt;SetWholeWord(ETrue);
-    searchQuery-&gt;SetCaseSensitiveOption(ETrue);
-    searchQuery-&gt;SetWildCardSearch(EFalse);
-    
-    //3. Add search option
-    _LIT( KMsgTo, “david@nokia.com”) ;
-    searchQuery-&gt;AddSearchOptionL(EMsvTo, KMsgTo, EMsvEqual);
-    // Add sort option
-    searchQuery-&gt;AddSortOptionL(EMsvSize, EMsvSortAscending);   
-    
-    //4. Create a session with message server
-    // NOTE: CMsvSession::OpenSyncL requires a &amp;MMsvObserver parameter.  This example assumes that 
-    // CSearchSortExample implements MMsvObserver.
-    CMsvSession* session = CMsvSession::OpenSyncL(*this);
-    CleanupStack::PushL(session);
-
-    //5. Create an instance of CMsvSearchSortOperation to perform a 
-    //search-sort operation    
-    CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session);
-    CleanupStack::PushL(search);
-            
-    //6. Start the search operation using the query as a parameter
-    TRequestStatus aStatus;
-    CleanupStack::Pop(searchQuery);
-    // ownership of searchQuery is passed to SearchSortOperation
-    search-&gt;RequestL(searchQuery, ETrue, aStatus);
-
-    //7. Wait for the result
-    User::WaitForRequest(aStatus);
-
-    //8. Create an array to hold Search-sort results
-    RArray&lt;TMsvId&gt; resultArray;
-
-    //9. Retrieve the results of the search. The format for the results should be the same as
-    // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest
-    // error
-    TInt err =  search-&gt;GetResultsL(resultArray);
-    if(ret == KErrNone)
-        {
-        TInt count = resultArray.Count();
-        }
-
-    //10. Get the query ID. This ID can be used in repetitive search queries.
-    iQueryId = search-&gt;GetQueryIdL();
-    
-    CleanupStack::PopAndDestroy(2); //search, session  
-    }	</codeblock></section>
-<section id="GUID-AE684DF2-5BF3-5B87-8C10-6F69C87622CA"><title>Combined search</title> <p>To
-create a combined search, add an additional search options in step 3. </p> <codeblock id="GUID-E85BCF64-B96D-5B2C-A4B4-E55B3B4AC83B" xml:space="preserve">    //3. Add search option
-    _LIT( KMsgTo, “david@nokia.com”) ;
-    searchQuery-&gt;AddSearchOptionL(EMsvTo, KMsgTo, EMsvEqual);
-    //Add additional option(s) for combined search.
-    TInt size = 100;
-    searchQuery-&gt;AddSearchOptionL(EMsvSize, size, EMsvGreaterThanOrEqual); // Integer value search
-    searchQuery-&gt;AddSearchOptionL(EMsvAttachment, ETrue); // boolean value search
-     </codeblock> </section>
-<section id="GUID-0553ACB4-0ABD-5EC8-B7BC-D3217373064B"><title>Iterative search</title> <p>To
-create an iterative search, specify an iterative parameter at step 6. </p> <codeblock id="GUID-130C7E2A-157A-5D2E-97D9-DCF7CBBD0301" xml:space="preserve">     // 6. Start the search operation using the query as a parameter
-     // Specify the iterative method 
-    const TInt KIterativeSearch = 1 ;
-    TRequestStatus aStatus;
-    CleanupStack::Pop(searchQuery);
-    // ownership of searchQuery is passed to SearchSortOperation
-    search-&gt;RequestL(searchQuery, ETrue, aStatus, KIterativeSearch);
-     
-    // 9. The results of an iterative search must be retrieved from the message server one at a time
-    
-    // Retrieve the results of the search one at a time
-    
-     TMsvId result;
-    //GetNextResultL returns the number of results remaining in the search. 
-    while( search-&gt;GetNextResultL( result ) )
-        {
-        // process result
-        }
-</codeblock> </section>
-<example><title>Search-sort example</title> <p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample:
-Enhanced Search and Sort for Message Store </xref>  </p> </example>
-<section><title>See also</title> <p>For conceptual information on search-sort
-APIs, see <xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Searching
-and Sorting Messages</xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C" xml:lang="en"><title>New
+Search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This tutorial provides the steps to perform new search on messages (mainly,
+on email messages). </p>
+<section><title>Introduction</title> <p>You can perform the following types
+of search on messages (mainly, on email messages): </p> <ul>
+<li id="GUID-5851CB02-D769-546E-B748-E6C1E0C1EB8C"><p> <b>Simple search</b>  </p> <p>In
+a simple search, you use only one message field as a search criteria in a
+search request. The single message field can be: to, from, cc, size, time,
+message type, message status, priority, attachment type or message body. For
+example, search for all emails sent to <i>Sam</i>. </p> </li>
+<li id="GUID-3F4B645D-3A6A-5ED8-AF07-41F02D20F551"><p> <b>Combined search</b>  </p> <p>In
+a combined search, you use more than one message field as a search criteria
+in a search request. The message fields can be a combination of: to, from,
+cc, size, time, message type, message status, priority, attachment type, and
+message body. </p> <p> <b>Note:</b> You can use maximum of five message parts
+as a search criteria in a combined search. </p> <p>For a combined search,
+the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D5AC69E9-75E0-3179-B12B-1D9521684D4D"><apiname>CMsvSearchSortQuery::AddSearchOptionL()</apiname></xref> function can
+be called more than once depending on the message fields you use in the search
+query. For example, if you have to search all messages from sender <i>Albert</i>,
+with <b>subject</b>  <i>Invitation</i>, then you must call the <xref href="GUID-E49C2AFE-5793-37A6-9A08-2A1DD5CCA160.dita"><apiname>AddSearchQueryOptions</apiname></xref> function
+twice. </p> <p>However, you can use any functions of the <xref href="GUID-F2882FAD-A108-342E-8E35-039C83EFEF55.dita"><apiname>TMsvSearchSortQuery</apiname></xref> class
+only once in each combined search query. </p> </li>
+</ul> <p><b>Iterative method</b> </p> <p>You can enable an iterative method
+in simple and combined searches: </p> <ul>
+<li id="GUID-855C5460-41A4-5946-9973-67624AFFE3D6"><p> <b>Iterative</b>  </p> <p>The
+iterative method allows a client to access the search-sort results sequentially
+one at a time. It is useful when a client cannot, or does not want to provide
+the memory to receive an array of results. </p> </li>
+<li id="GUID-0EA3F74E-E3AA-5DCE-A400-B8D1DA8E998B"><p> <b> Non-iterative</b>  </p> <p>This
+method retrieves the complete results of the query in a single array. It requires
+sufficient RAM on the client-side. This is particularly useful for queries
+that return small subset of results. </p> </li>
+</ul><note> You specify the method with the <codeph>TInt aIterator</codeph> parameter
+when the client sends a query to the Message Server. By default, the value
+is zero (<codeph>0</codeph>) which indicates the non-iterative method. You
+must set it to <codeph>1</codeph> to get specify the iterative method.</note> <fig id="GUID-B440387E-2A93-5DF0-9E81-79FCA72AB5C8">
+<title>                 New search-sort request process               </title>
+<image href="GUID-21E43B0E-85C7-536E-83A5-E829820775BF_d0e283471_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Simple search</title> <ol id="GUID-40D841C8-004A-5E15-AB18-DD1E3D9C0164">
+<li id="GUID-90D2E877-B63F-57C5-9601-47CC2AE67325"><p>Create a search-sort
+query using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B39D5F47-158A-38C8-8552-B3B5581554F7"><apiname>CMsvSearchSortQuery::NewL()</apiname></xref> function. </p> </li>
+<li id="GUID-F140F72C-3314-5F79-8F00-5E518CE2A2CF"><p>Configure the query
+by setting parameters, such as the directory to search in, the format for
+the results, whether to search for whole or part words, whether to use wild
+cards, the case sensitivity, the values and fields to search and the sorting
+options. </p> </li>
+<li id="GUID-5DBE5827-C1C4-5F38-9F43-76DEFD7FA70E"><p>Add the search-sort
+operation using the search query as a parameter using the <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-D5AC69E9-75E0-3179-B12B-1D9521684D4D"><apiname>CMsvSearchSortQuery::AddSearchOptionL()</apiname></xref> function.
+There are three versions of the <xref href="GUID-99504AB6-680F-3D96-BA10-CF04D8C23554.dita"><apiname>AddSearchOptionL()</apiname></xref> function,
+each of which takes a different parameter type: </p> <ol id="GUID-9E468043-DDA7-53D3-A859-1EA1588ABFB5">
+<li id="GUID-B73CCE8B-B404-553A-AE55-F16BAE3BDCC6"><p>Descriptor: For searching
+on sender, recipient list (cc, to, bcc), subject, date and date range. </p> </li>
+<li id="GUID-3A0E35A3-FE7A-5853-94FA-7247F92DBBB5"><p>Integer: For searching
+message size and size range. </p> </li>
+<li id="GUID-B026C578-BC3F-51C8-AA60-F1EE42B58E10"><p>Boolean: For searching
+on priority (high, medium and low), attachment types, message status. </p> </li>
+</ol> <p> Note: If necessary, enable sorting of search result in ascending
+or descending order on the message part added in the query. </p> </li>
+<li id="GUID-79E1C31B-D45A-5F24-8761-A789005A77A0"><p>Create a session with
+the Messaging server using the <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession</apiname></xref> class. </p> </li>
+<li id="GUID-1159ADC2-1226-575E-BA82-3ECE7010630A"><p>Create a search-sort
+operation using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> class. </p> </li>
+<li id="GUID-0FC467F8-F7F1-5FEA-9CBC-5EF7E756834C"><p>Start the search-sort
+operation by calling the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref> function
+and passing the query as a parameter. Do not include an iterator parameter.
+It will default to zero (non-iterative). </p> </li>
+<li id="GUID-5C94A9EF-88F1-5B71-9D7A-2EF7C69D77AB"><p>Wait for the Messaging
+Server to perform the search. </p> </li>
+<li id="GUID-D2EAE048-D5CA-5728-967E-4830873E11DE"><p>Create an array for
+storing the results of the search. </p> </li>
+<li id="GUID-8258A7BA-DF95-59B9-B9C9-AEDE61EFEEA7"><p>Retrieve the results
+from the search into the array using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1D6974D1-FF31-3B7C-A726-47A8510E9819"><apiname>CMsvSearchSortOperation::GetResultsL()</apiname></xref> function. </p> </li>
+<li id="GUID-0B0C26C5-6FA7-5CFA-8C5B-9CEB5C7BC5C0"><p>Get the query ID of
+the search from the Messaging server, if necessary, for later use using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-989B6F32-DE88-373B-9CA4-5474BB6858CD"><apiname>CMsvSearchSortOperation::GetQueryId()</apiname></xref> function. </p> </li>
+</ol> <codeblock xml:space="preserve">/**
+Simple Seachsort request without iterator.
+*/ 
+void CSearchsortExample::SeachSortRequestWithoutIteratorL()
+    {
+    //1. Create an instance of CMsvSearchSortQuery to create a
+    //search-sort query
+    CMsvSearchSortQuery* searchQuery = CMsvSearchSortQuery::NewL();
+    CleanupStack::PushL(searchQuery);
+
+    //2. Configure the query.
+    //Search-sort operation is performed on a specified folder.
+    //(e.g, on INBOX, SENT ITEMS, 
+    //DRAFT, OUTBOX or any user created folder). Needs to set the value of the folder entry.
+    searchQuery-&gt;SetParentId(KMsvRootIndexEntryIdValue);
+    //Set the type of result expected out of the search-sort operation. 
+    searchQuery-&gt;SetResultType(EMsvResultAsTMsvId);
+    searchQuery-&gt;SetWholeWord(ETrue);
+    searchQuery-&gt;SetCaseSensitiveOption(ETrue);
+    searchQuery-&gt;SetWildCardSearch(EFalse);
+    
+    //3. Add search option
+    _LIT( KMsgTo, “david@nokia.com”) ;
+    searchQuery-&gt;AddSearchOptionL(EMsvTo, KMsgTo, EMsvEqual);
+    // Add sort option
+    searchQuery-&gt;AddSortOptionL(EMsvSize, EMsvSortAscending);   
+    
+    //4. Create a session with message server
+    // NOTE: CMsvSession::OpenSyncL requires a &amp;MMsvObserver parameter.  This example assumes that 
+    // CSearchSortExample implements MMsvObserver.
+    CMsvSession* session = CMsvSession::OpenSyncL(*this);
+    CleanupStack::PushL(session);
+
+    //5. Create an instance of CMsvSearchSortOperation to perform a 
+    //search-sort operation    
+    CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session);
+    CleanupStack::PushL(search);
+            
+    //6. Start the search operation using the query as a parameter
+    TRequestStatus aStatus;
+    CleanupStack::Pop(searchQuery);
+    // ownership of searchQuery is passed to SearchSortOperation
+    search-&gt;RequestL(searchQuery, ETrue, aStatus);
+
+    //7. Wait for the result
+    User::WaitForRequest(aStatus);
+
+    //8. Create an array to hold Search-sort results
+    RArray&lt;TMsvId&gt; resultArray;
+
+    //9. Retrieve the results of the search. The format for the results should be the same as
+    // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest
+    // error
+    TInt err =  search-&gt;GetResultsL(resultArray);
+    if(ret == KErrNone)
+        {
+        TInt count = resultArray.Count();
+        }
+
+    //10. Get the query ID. This ID can be used in repetitive search queries.
+    iQueryId = search-&gt;GetQueryIdL();
+    
+    CleanupStack::PopAndDestroy(2); //search, session  
+    }	</codeblock></section>
+<section id="GUID-AE684DF2-5BF3-5B87-8C10-6F69C87622CA"><title>Combined search</title> <p>To
+create a combined search, add an additional search options in step 3. </p> <codeblock id="GUID-E85BCF64-B96D-5B2C-A4B4-E55B3B4AC83B" xml:space="preserve">    //3. Add search option
+    _LIT( KMsgTo, “david@nokia.com”) ;
+    searchQuery-&gt;AddSearchOptionL(EMsvTo, KMsgTo, EMsvEqual);
+    //Add additional option(s) for combined search.
+    TInt size = 100;
+    searchQuery-&gt;AddSearchOptionL(EMsvSize, size, EMsvGreaterThanOrEqual); // Integer value search
+    searchQuery-&gt;AddSearchOptionL(EMsvAttachment, ETrue); // boolean value search
+     </codeblock> </section>
+<section id="GUID-0553ACB4-0ABD-5EC8-B7BC-D3217373064B"><title>Iterative search</title> <p>To
+create an iterative search, specify an iterative parameter at step 6. </p> <codeblock id="GUID-130C7E2A-157A-5D2E-97D9-DCF7CBBD0301" xml:space="preserve">     // 6. Start the search operation using the query as a parameter
+     // Specify the iterative method 
+    const TInt KIterativeSearch = 1 ;
+    TRequestStatus aStatus;
+    CleanupStack::Pop(searchQuery);
+    // ownership of searchQuery is passed to SearchSortOperation
+    search-&gt;RequestL(searchQuery, ETrue, aStatus, KIterativeSearch);
+     
+    // 9. The results of an iterative search must be retrieved from the message server one at a time
+    
+    // Retrieve the results of the search one at a time
+    
+     TMsvId result;
+    //GetNextResultL returns the number of results remaining in the search. 
+    while( search-&gt;GetNextResultL( result ) )
+        {
+        // process result
+        }
+</codeblock> </section>
+<example><title>Search-sort example</title> <p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample:
+Enhanced Search and Sort for Message Store </xref>  </p> </example>
+<section><title>See also</title> <p>For conceptual information on search-sort
+APIs, see <xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Searching
+and Sorting Messages</xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A"><title>Feature Manager Client Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Provides the APIs required to communicate with the feature management server. </p> <section><title>Purpose</title> <p>Provides the complete set of functionality required for feature management. </p> </section> <section><title>Required background</title> <p>A familiarity with the client/server framework is necessary because feature management uses the standard client/server architecture; the feature manager server actually does the work, the feature manager library provides the APIs to implement a client to that server. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-46A8976E-3C88-54C5-90DB-721F10FD62E6"><title>
-             Architecture of the feature management system 
-          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352078_href.png" placement="inline"/></fig> </section> <section id="GUID-3CF8D502-1181-511C-9F14-A256ACD4EF6B"><title>APIs</title> <p>This component provides one set of APIs that can be used to communicate with the feature management server. </p> <p>This dll file holds the APIs that are @publishedPartner. </p> <table id="GUID-2152DCD5-2797-505C-A906-BD1EB378D3EB"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-F8232FA0-6D5C-3B40-8AFC-5359E91689BD.dita"><apiname>RFeatMgrClient</apiname></xref>  </p> </entry> <entry><p>Base class of the client-side communication with the feature manager server. </p> </entry> </row> <row><entry><p> <xref href="GUID-F6AAAC24-4A62-383A-86C6-2E46335C3FD4.dita"><apiname>RFeatureControl</apiname></xref>  </p> </entry> <entry><p>Contains the full functionality of the feature manager. </p> </entry> </row> <row><entry><p> <xref href="GUID-623C4183-00F0-36B0-AE1F-5C5EDCAF1B3D.dita"><apiname>MFeatureObserver</apiname></xref>  </p> </entry> <entry><p>Provides a callback interface for handling feature change notifications. </p> </entry> </row> <row><entry><p> <xref href="GUID-CA12C6F7-E997-33B8-9463-B326BC1832C5.dita"><apiname>CFeatureNotifier</apiname></xref>  </p> </entry> <entry><p>This is the active object for obtaining the notification of changes in features. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <ul><li id="GUID-56FA99FF-152D-50AB-99F8-00A2533A978C"><p>Connect to the feature management server. </p> </li> <li id="GUID-EFE0D43B-C1F0-573B-8837-01863115EB57"><p>Produce a list of the features that are present. </p> </li> <li id="GUID-7C2EA017-7FF3-5B2C-8A47-C4AA7D026A3C"><p>Check to see if a feature is supported. </p> </li> <li id="GUID-E7680CAD-CF68-5F60-8694-39601EBACE24"><p>Delete a feature. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita"><linktext>Feature Discovery Overview</linktext> </link> <link href="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita"><linktext>Feature Manager Server Guide</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A"><title>Feature Manager Client Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Provides the APIs required to communicate with the feature management server. </p> <section><title>Purpose</title> <p>Provides the complete set of functionality required for feature management. </p> </section> <section><title>Required background</title> <p>A familiarity with the client/server framework is necessary because feature management uses the standard client/server architecture; the feature manager server actually does the work, the feature manager library provides the APIs to implement a client to that server. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-46A8976E-3C88-54C5-90DB-721F10FD62E6"><title>
+             Architecture of the feature management system 
+          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345997_href.png" placement="inline"/></fig> </section> <section id="GUID-3CF8D502-1181-511C-9F14-A256ACD4EF6B"><title>APIs</title> <p>This component provides one set of APIs that can be used to communicate with the feature management server. </p> <p>This dll file holds the APIs that are @publishedPartner. </p> <table id="GUID-2152DCD5-2797-505C-A906-BD1EB378D3EB"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-F8232FA0-6D5C-3B40-8AFC-5359E91689BD.dita"><apiname>RFeatMgrClient</apiname></xref>  </p> </entry> <entry><p>Base class of the client-side communication with the feature manager server. </p> </entry> </row> <row><entry><p> <xref href="GUID-F6AAAC24-4A62-383A-86C6-2E46335C3FD4.dita"><apiname>RFeatureControl</apiname></xref>  </p> </entry> <entry><p>Contains the full functionality of the feature manager. </p> </entry> </row> <row><entry><p> <xref href="GUID-623C4183-00F0-36B0-AE1F-5C5EDCAF1B3D.dita"><apiname>MFeatureObserver</apiname></xref>  </p> </entry> <entry><p>Provides a callback interface for handling feature change notifications. </p> </entry> </row> <row><entry><p> <xref href="GUID-CA12C6F7-E997-33B8-9463-B326BC1832C5.dita"><apiname>CFeatureNotifier</apiname></xref>  </p> </entry> <entry><p>This is the active object for obtaining the notification of changes in features. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <ul><li id="GUID-56FA99FF-152D-50AB-99F8-00A2533A978C"><p>Connect to the feature management server. </p> </li> <li id="GUID-EFE0D43B-C1F0-573B-8837-01863115EB57"><p>Produce a list of the features that are present. </p> </li> <li id="GUID-7C2EA017-7FF3-5B2C-8A47-C4AA7D026A3C"><p>Check to see if a feature is supported. </p> </li> <li id="GUID-E7680CAD-CF68-5F60-8694-39601EBACE24"><p>Delete a feature. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita"><linktext>Feature Discovery Overview</linktext> </link> <link href="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita"><linktext>Feature Manager Server Guide</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3FB8AC96-209B-5B1E-8139-BA2D858CBF2F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3FB8AC96-209B-5B1E-8139-BA2D858CBF2F" xml:lang="en"><title>CryptoSPI
-Overview (weak build)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>This is an overview of the weak CryptoSPI
-APIs. An overview and other documents for the strong CryptoSPI APIs are available
-in the Security Supplement, which is delivered to device creators with the
-CBR. </p> </section>
-<section><title>Introduction</title> <p>CryptoSPI (<filepath>cryptospi.dll</filepath>)
-is a framework for implementing cryptographic algorithms, hash algorithms
-and random number generation. It allows alternative implementations to be
-added by Symbian platform device creators as plug-in DLLs. </p> <p><b>Weak
-and strong builds</b> </p> <p>The cryptography APIs are subject to export
-control regulations. The export of cryptography refers to the transfer from
-one country to another of technology related to cryptography. Export control
-regulations are for national security considerations. </p> <p>Export control
-applies to key sizes that are greater than a size specified by the UK Government.
-Currently, symmetric algorithms with keys greater than 56 bits and asymmetric
-algorithms with keys greater than 512 bits are export controlled. To comply
-with government export control rules, the Cryptography library is delivered
-in two builds: </p> <ul>
-<li id="GUID-B6D2DA99-B26C-563C-AB89-12B55BEA3F86"><p>A weak build </p> <p>The
-weak build (weak_cryptography.dll) includes cryptography algorithms that are
-not export controlled. The weak build rejects requests to apply an encryption
-scheme with key sizes greater than 56 bits for symmetric algorithms and 512
-bits for asymmetric algorithms. </p> </li>
-<li id="GUID-8C455A29-794A-50F4-8503-FCFBF55A731B"><p>A strong build </p> <p>The
-strong build (strong_cryptography.dll) includes cryptography algorithms that
-are export controlled. </p> </li>
-</ul> <p> <b> Note:</b> The API guide and other documentation for cryptography
-is broken up in the same way as the cryptography library. This document provides
-information on the weak build. It also gives a brief summary of the algorithms
-provided in the strong build. The strong cryptography API guide and other
-documentation is not available from the Symbian Developer Library. It is delivered
-to device creators with the CBR. </p> </section>
-<section><title>Architectural relationships</title> <p>Before the introduction
-of CryptoSPI, features such as cryptographic algorithms, hash algorithms and
-random number generation were provided by the Symbian platform in <filepath>cryptography.dll</filepath>, <filepath>hash.dll</filepath> and <filepath>random.dll</filepath>. </p> <p> <filepath>softwarecrypto.dll</filepath> is
-a plug-in module (implemented in the Symbian platform) that provides software-based
-implementations of all the cryptographic algorithms that were previously implemented
-by the legacy components (<filepath>cryptography.dll</filepath>, <filepath>hash.dll</filepath> and <filepath>random.dll</filepath>).
-The legacy APIs have been re-implemented internally to use the new framework
-via shim classes. <filepath>hardwarecrypto.dll</filepath> is an arbitrary
-name used in the diagram to represent a plug-in module provided by device
-creators. The plug-ins and <filepath>cryptospi.dll</filepath> have a dependency
-on <filepath>cryptography.dll</filepath> because it implements big integers. </p> <fig id="GUID-F3B5470E-25D5-5BDD-8F47-480D39C4CDB5">
-<title>              CryptoSPI dependencies            </title>
-<image href="GUID-708FC2C8-19BB-5EFC-A8CD-B0E9E96A5409_d0e387120_href.png" placement="inline"/>
-</fig> </section>
-<section><title>API summary</title> <p>The <codeph>CryptoSpi</codeph> namespace
-is defined for all CryptoSPI classes to differentiate them from the legacy
-APIs with the same names. </p> <p><b>CryptoSPI scope</b> </p><p>CryptoSPI
-provides equivalent implementations of all algorithms supported by the legacy
-APIs, including hashing and random number generation. The following algorithms
-are implemented in <filepath>softwarecrypto.dll</filepath>: </p><p>This
-section includes summary details of the following (For more information on
-the strong APIs, see the Security Supplement, which is delivered to device
-creators with the CBR): </p><ul>
-<li><p>cryptographic algorithms </p></li>
-<li><p>hash algorithms </p></li>
-<li><p>random number generator</p></li>
-</ul> <p id="GUID-19D541E1-1868-527A-A376-3ED1D0F428D8"><b>Cryptographic algorithms</b> </p> <p>Cryptographic
-algorithms allow data to be encrypted and decrypted. They include: </p> <ul>
-<li id="GUID-C68FBFD7-EE10-5CDD-835B-62D770D7E9E5"><p> <b>Symmetric ciphers</b> —
-algorithms that require communicating parties to hold a shared secret. They
-are fast and are used for the transmission of bulk data. </p> </li>
-<li id="GUID-D7ADFE85-C48D-5E2B-BAF0-CBF68B676C3E"><p> <b>Asymmetric ciphers</b> —
-algorithms which have two keys, one private to the keys' owner and one which
-can be published. They are slow compared to symmetric ciphers and are used
-to exchange a symmetric key before transmission of data encrypted using that
-key. </p> </li>
-</ul> <p>The Cryptography algorithms are part of the strong build. To access
-details of how to implement them you need to access the Security Supplement,
-which is delivered to device creators with the CBR. </p> <p id="GUID-1C869199-DF50-5DCA-AD0D-5EA31EADA384"><b>Hash
-algorithms</b> </p> <p><xref href="GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3.dita">Hash
-algorithms</xref> compact a message down to a short series of bytes from which
-it is impossible to regenerate the message. They are used with an asymmetric
-cipher to generate signatures. </p> <p>The following hash algorithms are supported: </p> <table id="GUID-2ECEAC82-2DEA-5907-9443-ED023DAD2653">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Hash algorithms</entry>
-<entry>Specified in</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>MD2 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC
-1319 </xref>  </p> </entry>
-</row>
-<row>
-<entry><p>MD4 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
-1320</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>MD5 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
-1321</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>SHA1 </p> </entry>
-<entry><p> <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
-180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
-3174</xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><i>Hashes in HMAC mode</i> </p> <ul>
-<li id="GUID-551F9056-7110-5002-8495-D31BAFDCFEA8"><p>MD2 </p> </li>
-<li id="GUID-4C0AB778-90A5-5EA8-9C26-29248FA9DF63"><p>MD4 </p> </li>
-<li id="GUID-CC9931AA-B0F4-5832-8C9E-78FBE95F7AEB"><p>MD5 </p> </li>
-<li id="GUID-6307D557-0AA8-5CC0-88D4-464C31FF1960"><p>SHA1 </p> </li>
-<li id="GUID-CD13BA31-4543-5E95-8DB4-F9F790F7816D"><p>SHA-224 </p> </li>
-<li id="GUID-1A2A7EAA-85F5-5516-9590-A2DBA7BBE7FC"><p>SHA-256 </p> </li>
-<li id="GUID-AACCA093-2CD3-55ED-9D80-298DAB45BBFC"><p>SHA-384 </p> </li>
-<li id="GUID-7A6E01DF-635C-5EEA-BD53-3CD47CF50160"><p>SHA-512 </p> </li>
-</ul> <p>HMAC mode is specified in <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC 2104</xref>. </p> <p id="GUID-58FB3D9C-A557-59C7-9AA8-37C77FE9002E"><b>Random
-Number Generator (RNG)</b> </p> <p><xref href="GUID-0B2245C5-766B-5CF1-8A0C-DD98CEEEBB05.dita">RNG</xref> is
-the basis for the cryptographic key generation. It uses the RANROT algorithm
-seeded by random data available on the target hardware (for example free running
-counters available on ARM processers). </p> <p id="GUID-CE692E1B-A0FF-5CF1-8D22-50BC0D12B83A"><b>Supporting
-APIs</b> </p> <ul>
-<li id="GUID-A314831E-84E2-5F33-AF4F-6187020FEB88"><p> <b>Password Based Encryption
-(PBE)</b> — provides an API to encrypt and decrypt data with a user-supplied
-password </p> </li>
-<li id="GUID-FE498ED5-276A-53D1-9283-A4406001B532"><p> <b>Padding</b> — is
-extra bits concatenated with a key, password, or plaintext to make their length
-equal to the block size. It defines the way blocks are filled with data when
-the data to be encrypted is smaller than the block size. Padding is added
-at encryption and checked on decryption. </p> </li>
-<li id="GUID-A8A99555-C8BF-5466-8610-67F55A2B36D5"><p> <b>Big integers</b> —
-arbitrarily large integers. </p> <p>Note that although some functions are
-exported, the intent is that big integers are only for use by the Cryptography
-library and not by application code. Big integers are implemented in <filepath>cryptography.dll</filepath>. </p> </li>
-</ul> <p><b>Implementing CryptoSPI algorithms</b> </p> <p>The guide to CryptoSPI
-is not publicly available, but the following documents show how to use CryptoSPI
-to generate random numbers and create a hash: </p> <ul>
-<li id="GUID-6C8E6AEC-5E02-5608-A9D5-392138EB2538"><p><xref href="GUID-0CD273A2-434C-52E0-B840-CCF24B2853B8.dita">Generating
-random bytes</xref>  </p> </li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8"><title>Recording Audio</title><shortdesc>This tutorial describes how to start, pause and resume, stop and retrieve the audio samples for audio recording. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><prereq id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-8-1-18-1-1-11-1-5-1-4-1-5-1-6-1-4-1-3-1"><p>Before you start, you must: </p> <ul><li id="GUID-17398FD3-6EE4-5439-96D3-1E896488AA40"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to which the DevSound library belongs. </p> </li> <li id="GUID-895B2B05-ADAC-5B15-8117-0536295BD460"><p>Understand the architectural relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. </p> </li> </ul> </prereq> <context id="GUID-1BDA6C77-3A07-5E9D-9550-DA6D48DC17C1"><p>You can perform various functionality in DevSound audio recording that are listed in the below section. </p> </context> <steps id="GUID-19C32465-E50D-585B-8271-4F43F640253D"><step id="GUID-63886A2F-644A-5254-863F-E6321E45E883"><cmd/><info><xref href="GUID-769CD1E7-8545-5223-A195-43E72AAF5DDC.dita">Starting Audio Record</xref>  </info> </step> <step id="GUID-37C5AC22-4CC5-5857-B77A-A7940BDE03F0"><cmd/><info><xref href="GUID-96B8657D-FC07-5D5C-8ADE-3B2167A9229E.dita">Pausing and Resuming Audio Record</xref>  </info> </step> <step id="GUID-58C9B223-FE59-5718-AD70-E1EF0DEB00D1"><cmd/><info><xref href="GUID-D67D6147-ECE1-576C-A64C-120F32AE2AA2.dita">Stopping Audio Record</xref>  </info> </step> <step id="GUID-FAE90C07-5AD0-538A-9EBD-8971E503512A"><cmd/><info><xref href="GUID-D0CD890F-36DB-5265-B2C1-8D632EAF736B.dita">Retrieving Audio Record Samples</xref>  </info> </step> </steps> </taskbody><related-links><link href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"><linktext>Playing Audio</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task xml:lang="en" id="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8"><title>Recording Audio</title><shortdesc>This tutorial describes how to start, pause and resume, stop and retrieve the audio samples for audio recording. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><prereq id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-10-1-19-1-1-12-1-5-1-4-1-5-1-6-1-4-1-3-1"><p>Before you start, you must: </p> <ul><li id="GUID-17398FD3-6EE4-5439-96D3-1E896488AA40"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to which the DevSound library belongs. </p> </li> <li id="GUID-895B2B05-ADAC-5B15-8117-0536295BD460"><p>Understand the architectural relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. </p> </li> </ul> </prereq> <context id="GUID-1BDA6C77-3A07-5E9D-9550-DA6D48DC17C1"><p>You can perform various functionality in DevSound audio recording that are listed in the below section. </p> </context> <steps id="GUID-19C32465-E50D-585B-8271-4F43F640253D"><step id="GUID-63886A2F-644A-5254-863F-E6321E45E883"><cmd/><info><xref href="GUID-769CD1E7-8545-5223-A195-43E72AAF5DDC.dita">Starting Audio Record</xref>  </info> </step> <step id="GUID-37C5AC22-4CC5-5857-B77A-A7940BDE03F0"><cmd/><info><xref href="GUID-96B8657D-FC07-5D5C-8ADE-3B2167A9229E.dita">Pausing and Resuming Audio Record</xref>  </info> </step> <step id="GUID-58C9B223-FE59-5718-AD70-E1EF0DEB00D1"><cmd/><info><xref href="GUID-D67D6147-ECE1-576C-A64C-120F32AE2AA2.dita">Stopping Audio Record</xref>  </info> </step> <step id="GUID-FAE90C07-5AD0-538A-9EBD-8971E503512A"><cmd/><info><xref href="GUID-D0CD890F-36DB-5265-B2C1-8D632EAF736B.dita">Retrieving Audio Record Samples</xref>  </info> </step> </steps> </taskbody><related-links><link href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"><linktext>Playing Audio</linktext> </link> </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-3-1-1-7-1-7-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-3-1-1-7-1-7-1-3-1" xml:lang="en"><title>Window-owning
-controls and non-window-owning controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Controls are similar to windows in the Window Server in that they are both
-bounded areas of the screen and both user interface elements. They are not
-synonymous, however, as a control may take up the whole of a window’s area
-or only part of it. For this reason controls are divided into two types: window-owning
-controls and non-window-owning controls. </p>
-<section id="GUID-A9A8EEB4-2E5D-4926-97C7-33A1A0CF67CB-GENID-1-8-1-3-1-1-7-1-7-1-3-1-2-2"><title>Window-owning controls</title> <p>A window-owning control
-has the same size and position as a window in the Window Server. Window-owning
-controls may overlap each other and may be moved around the screen within
-the bounds of their parent window. Dialogs, menus, toolbars and <keyword>top-level
-controls</keyword> are typically window-owning controls. </p> </section>
-<section id="GUID-E0C33F8A-9A4A-4953-A57C-E96921290086-GENID-1-8-1-3-1-1-7-1-7-1-3-1-2-3"><title>Non-window-owning controls (lodger controls)</title> <p>The
-majority of controls are non-window-owning. A non-window-owning control’s <keyword>extent</keyword> typically
-covers only part of a window on the screen: usually it is one of a number
-of controls within a larger <keyword>compound control</keyword> which acts
-as a container. </p> <p>Examples of non-window-owning controls include command
-buttons, text boxes and labels. </p> <p>Non-window-owning controls give greater
-efficiency as they require fewer resources in the Window Server and fewer
-process switches. They can also result in faster intialisation and redrawing
-because a compound control and all its non-window-owning components can be
-drawn with a single flush to the window server. </p> </section>
-<section id="GUID-22B830AC-D43C-4FB6-9C5D-1F89AD65EF8F-GENID-1-8-1-3-1-1-7-1-7-1-3-1-2-4"><title>Associated windows</title> <p>All controls have an <keyword>associated
-window</keyword>, whether they are window-owning or not. For a window-owning
-control the associated window is the window it owns. For a non-window-owning
-control the associated window is the window owned by the nearest window-owning
-control above it in the control hierarchy. </p> </section>
-<section id="GUID-C62985F2-84D3-44C5-BB1E-9576227FBC74-GENID-1-8-1-3-1-1-7-1-7-1-3-1-2-5"><title>See also</title> <ul>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control
-hierarchy</xref></p></li>
-<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write
-controls</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1" xml:lang="en"><title>Window-owning
-controls and non-window-owning controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Controls are similar to windows in the Window Server in that they are both
-bounded areas of the screen and both user interface elements. They are not
-synonymous, however, as a control may take up the whole of a window’s area
-or only part of it. For this reason controls are divided into two types: window-owning
-controls and non-window-owning controls. </p>
-<section id="GUID-A9A8EEB4-2E5D-4926-97C7-33A1A0CF67CB-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1-2-2"><title>Window-owning controls</title> <p>A window-owning control
-has the same size and position as a window in the Window Server. Window-owning
-controls may overlap each other and may be moved around the screen within
-the bounds of their parent window. Dialogs, menus, toolbars and <keyword>top-level
-controls</keyword> are typically window-owning controls. </p> </section>
-<section id="GUID-E0C33F8A-9A4A-4953-A57C-E96921290086-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1-2-3"><title>Non-window-owning controls (lodger controls)</title> <p>The
-majority of controls are non-window-owning. A non-window-owning control’s <keyword>extent</keyword> typically
-covers only part of a window on the screen: usually it is one of a number
-of controls within a larger <keyword>compound control</keyword> which acts
-as a container. </p> <p>Examples of non-window-owning controls include command
-buttons, text boxes and labels. </p> <p>Non-window-owning controls give greater
-efficiency as they require fewer resources in the Window Server and fewer
-process switches. They can also result in faster intialisation and redrawing
-because a compound control and all its non-window-owning components can be
-drawn with a single flush to the window server. </p> </section>
-<section id="GUID-22B830AC-D43C-4FB6-9C5D-1F89AD65EF8F-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1-2-4"><title>Associated windows</title> <p>All controls have an <keyword>associated
-window</keyword>, whether they are window-owning or not. For a window-owning
-control the associated window is the window it owns. For a non-window-owning
-control the associated window is the window owned by the nearest window-owning
-control above it in the control hierarchy. </p> </section>
-<section id="GUID-C62985F2-84D3-44C5-BB1E-9576227FBC74-GENID-1-8-1-6-1-1-4-1-6-1-7-1-3-1-2-5"><title>See also</title> <ul>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control
-hierarchy</xref></p></li>
-<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write
-controls</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81" xml:lang="en"><title>Window-owning
+controls and non-window-owning controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Controls are similar to windows in the Window Server in that they are both
+bounded areas of the screen and both user interface elements. They are not
+synonymous, however, as a control may take up the whole of a window’s area
+or only part of it. For this reason controls are divided into two types: window-owning
+controls and non-window-owning controls. </p>
+<section id="GUID-A9A8EEB4-2E5D-4926-97C7-33A1A0CF67CB"><title>Window-owning controls</title> <p>A window-owning control
+has the same size and position as a window in the Window Server. Window-owning
+controls may overlap each other and may be moved around the screen within
+the bounds of their parent window. Dialogs, menus, toolbars and <keyword>top-level
+controls</keyword> are typically window-owning controls. </p> </section>
+<section id="GUID-E0C33F8A-9A4A-4953-A57C-E96921290086"><title>Non-window-owning controls (lodger controls)</title> <p>The
+majority of controls are non-window-owning. A non-window-owning control’s <keyword>extent</keyword> typically
+covers only part of a window on the screen: usually it is one of a number
+of controls within a larger <keyword>compound control</keyword> which acts
+as a container. </p> <p>Examples of non-window-owning controls include command
+buttons, text boxes and labels. </p> <p>Non-window-owning controls give greater
+efficiency as they require fewer resources in the Window Server and fewer
+process switches. They can also result in faster intialisation and redrawing
+because a compound control and all its non-window-owning components can be
+drawn with a single flush to the window server. </p> </section>
+<section id="GUID-22B830AC-D43C-4FB6-9C5D-1F89AD65EF8F"><title>Associated windows</title> <p>All controls have an <keyword>associated
+window</keyword>, whether they are window-owning or not. For a window-owning
+control the associated window is the window it owns. For a non-window-owning
+control the associated window is the window owned by the nearest window-owning
+control above it in the control hierarchy. </p> </section>
+<section id="GUID-C62985F2-84D3-44C5-BB1E-9576227FBC74"><title>See also</title> <ul>
+<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
+<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">Run-time control
+hierarchy</xref></p></li>
+<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita">How to write
+controls</xref></p></li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e3474_href.png has changed
Binary file Symbian3/SDK/Source/GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e4749_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e357820_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e363900_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e196473_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40437D9A-7503-5087-851A-D1269F0AF9A9_d0e201481_href.png has changed
--- a/Symbian3/SDK/Source/GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE" xml:lang="en"><title>Handling
-stylus pop-up menu events and commands</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>At the construction phase, <codeph>CAknStylusPopUpMenu</codeph> is given
-a <codeph>MEikMenuObserver</codeph> object, which is usually a pointer to
-the application’s UI (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknAppUi.html" format="application/java-archive"><codeph>CAknAppUi</codeph></xref>)
-or another class that implements the interface. The stylus pop up menu will
-grab the stylus event when one of its items is tapped on and it will then
-report the item’s command ID to the menu observer. It is then up to the application
-to handle the command in the implementation of <codeph>MEikMenuObserver::HandleCommandL()</codeph>. </p>
-<p>When an item is  tapped, the menu calls its observer's (iMenuObserver)
-ProcessCommandL. Typically the observer is application's AppUi. It is then
-the observer's responsibility to handle the command appropriately. The observer
-is informed with KErrCancel if the menu is closed without making a selection.</p>
-<p><draft-comment time="2008-05-15T15:38" translate="no">Add sample code on event and command
-handling here.</draft-comment></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE" xml:lang="en"><title>Handling stylus pop-up menu events and commands</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>At the construction phase, <codeph>CAknStylusPopUpMenu</codeph> is given a <codeph>MEikMenuObserver</codeph> object, which is usually
+a pointer to the application’s UI (<xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>) or
+another class that implements the interface. The stylus pop up menu
+will grab the stylus event when one of its items is tapped on and
+it will then report the item’s command ID to the menu observer. It
+is then up to the application to handle the command in the implementation
+of <xref href="GUID-CDB32ABA-F567-395D-9A00-2AC518BD5F3B.dita#GUID-CDB32ABA-F567-395D-9A00-2AC518BD5F3B/GUID-5A200511-9E99-3E2F-8E1B-B4A724BD2704"><apiname>MEikMenuObserver::HandleCommandL()</apiname></xref>. </p>
+<p>When an item is  tapped, the menu calls its observer's (<codeph>iMenuObserver</codeph>) <codeph>ProcessCommandL()</codeph> using:<codeblock xml:space="preserve">void ProcessCommandL(TInt aCommandId);</codeblock> where, <codeph>aCommandID</codeph> parameter is the command number recorded in 
+the resource file. You can also add it using <codeph>AddMenuItemL()</codeph> function as shown in the following code snippet:<codeblock xml:space="preserve">void AddMenuItemL( const TDesC&amp; aItem, const TInt aCommandId );</codeblock></p>
+<p>The following code snippet illustrates how to handle the command:<codeblock xml:space="preserve">switch( aCommandId )
+		{
+		case StylusMenuCommand1:
+			break;
+		case StylusMenuCommand2:
+			break;
+		case StylusMenuCommand3:
+			break;
+		case StylusMenuCommand4:
+			break;
+		case KErrCancel:
+			break;
+		default:
+			break;
+		}
+</codeblock> </p>
+<p>Typically the observer is application's AppUi. It is then the observer's
+responsibility to handle the command appropriately. The observer is
+informed with <codeph>KErrCancel</codeph> if the menu is closed without
+making a selection.</p>
+<p>Use the <xref href="GUID-FB7D03CC-6FE6-3B2E-997F-A220A92BF5E8.dita#GUID-FB7D03CC-6FE6-3B2E-997F-A220A92BF5E8/GUID-100C0AE9-D134-3409-8620-7343033DF5BA"><apiname>CAknStylusPopUpMenu::HandleControlEventL()</apiname></xref> method to handle events that occur when user selects a menu item.</p>
+<codeblock xml:space="preserve"/>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e11254_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40619192-8C2F-4267-BFCA-F53E10BF5A31_d0e12529_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4067B0E6-9431-4325-95F7-78B143EED326.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4067B0E6-9431-4325-95F7-78B143EED326" xml:lang="en"><title>Softkeys
-and basic softkey configuration</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform supports two softkeys and labels the Selection key
-in the middle of the Control pane. This, in effect, looks like a "middle softkey".
-Touch UI does not have the middle softkey label visible, refer to <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for common UI components</xref>. The softkey labels are placed in
-the control pane (the bottom area of the screen). The left and right softkeys
-always have textual labels, but the Selection key can also have two icons
-in certain situations.</p>
-<p>The three softkey configurations supported in the Symbian UI style are
-the following:</p>
-<ul>
-<li><p>Basic Symbian portrait-oriented UI with softkeys immediately below
-the screen (the middle softkey label is visible) </p></li>
-<li><p>Symbian UI with side softkeys in landscape (both left and right rotation
-possible, middle softkey label not possible) </p></li>
-<li><p>Symbian UI with bottom softkeys in landscape (middle softkey label
-not possible). Not available for Touch UI.</p></li>
-</ul>
-<p>For more details on the functions assigned to softkeys, see <xref href="GUID-959AB527-12A7-4BDB-B01F-F0868E60D237.dita">Where
-the Symbian user interface belongs </xref>and <xref href="GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6.dita">Typical
-functions of the standard keys</xref>. </p>
-<section id="GUID-821EA4E9-F6D3-48A4-8D69-DDEBFD6E90F0"><title>Using
-softkeys in C++ applications</title><p>The API to use for softkeys is the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref>. For implementation information, see <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html#Buttons_API_Specification.topic3" scope="peer">Using the Buttons API</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e189180_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e194242_href.png has changed
--- a/Symbian3/SDK/Source/GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14"><title>Feature Discovery Overview</title><shortdesc>Provides a set of APIs that are used to initate a feature discovery operation. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>Feature discovery provides a set of APIs to discover if a feature or feature set is supported and available. </p> </section> <section><title>Required background</title> <p>The feature management system uses the standard client server architecture that is the feature manager server does the work associated with the feature management functionality. Communication between the application and the server is undertaken by two dlls which contain the required API. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-FAFC39CE-B585-5C3F-A6DA-DE4BFEB8CE31"><title>
-             Architecture of the feature management system 
-          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352251_href.png" placement="inline"/></fig> </section> <section id="GUID-044747C8-90DF-5C93-B0E1-310F283E8894"><title>APIs</title> <p>This component provides one set of APIs that can be used to communicate with the feature management server. </p> <table id="GUID-C141A34B-4F52-5520-B107-E05271DDF614"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-7C19450F-41CF-3293-B8BF-4A4D6F795155.dita"><apiname>TFeatureSet</apiname></xref>  </p> </entry> <entry><p>Used to determine if multiple features are supported. </p> </entry> </row> <row><entry><p> <xref href="GUID-2C9E6E72-2858-37A1-9D43-4E8086569520.dita"><apiname>CFeatureDiscovery</apiname></xref>  </p> </entry> <entry><p>Used to determine if a feature is supported. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The APIs provided by this dll are for use by third parties </p> <ul><li id="GUID-DBC7434D-75B2-5186-BBBE-308B037F513D"><p>A third party app wants to find out if the device can execute it : there is no point installing an application needing a camera, if one is not present on the device. </p> </li> <li id="GUID-E9646304-09F3-5F28-84AA-A462DA630A97"><p>For the above, they would use the API provided by featmgr.dll. </p> </li> <li id="GUID-2A691994-0025-5039-A704-1573F2D13418"><p>Would be used to check if the required feature (and assumed framework) is present. </p> </li> </ul> <p>Use cases: </p> <ul><li id="GUID-691330F6-5CE0-536E-B796-F5EF7D281FCC"><p>Query a single feature. </p> </li> <li id="GUID-15001873-E802-5A0C-AC11-FB3FC3B30F67"><p>Query multiple features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita"><linktext>Feature Manager Client
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14"><title>Feature Discovery Overview</title><shortdesc>Provides a set of APIs that are used to initate a feature discovery operation. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>Feature discovery provides a set of APIs to discover if a feature or feature set is supported and available. </p> </section> <section><title>Required background</title> <p>The feature management system uses the standard client server architecture that is the feature manager server does the work associated with the feature management functionality. Communication between the application and the server is undertaken by two dlls which contain the required API. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-FAFC39CE-B585-5C3F-A6DA-DE4BFEB8CE31"><title>
+             Architecture of the feature management system 
+          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e346170_href.png" placement="inline"/></fig> </section> <section id="GUID-044747C8-90DF-5C93-B0E1-310F283E8894"><title>APIs</title> <p>This component provides one set of APIs that can be used to communicate with the feature management server. </p> <table id="GUID-C141A34B-4F52-5520-B107-E05271DDF614"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-7C19450F-41CF-3293-B8BF-4A4D6F795155.dita"><apiname>TFeatureSet</apiname></xref>  </p> </entry> <entry><p>Used to determine if multiple features are supported. </p> </entry> </row> <row><entry><p> <xref href="GUID-2C9E6E72-2858-37A1-9D43-4E8086569520.dita"><apiname>CFeatureDiscovery</apiname></xref>  </p> </entry> <entry><p>Used to determine if a feature is supported. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The APIs provided by this dll are for use by third parties </p> <ul><li id="GUID-DBC7434D-75B2-5186-BBBE-308B037F513D"><p>A third party app wants to find out if the device can execute it : there is no point installing an application needing a camera, if one is not present on the device. </p> </li> <li id="GUID-E9646304-09F3-5F28-84AA-A462DA630A97"><p>For the above, they would use the API provided by featmgr.dll. </p> </li> <li id="GUID-2A691994-0025-5039-A704-1573F2D13418"><p>Would be used to check if the required feature (and assumed framework) is present. </p> </li> </ul> <p>Use cases: </p> <ul><li id="GUID-691330F6-5CE0-536E-B796-F5EF7D281FCC"><p>Query a single feature. </p> </li> <li id="GUID-15001873-E802-5A0C-AC11-FB3FC3B30F67"><p>Query multiple features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita"><linktext>Feature Manager Client
                 Overview</linktext> </link> <link href="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita"><linktext>Feature Manager Server Guide</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e196422_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40BE9805-6CEC-557F-BAAC-4D328E181AC3_d0e201430_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e247945_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40C995CA-9906-59D8-A5E7-08F592031AEE_d0e251682_href.png has changed
--- a/Symbian3/SDK/Source/GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-40E64445-CBA3-59E4-A777-937609B311C9" xml:lang="en"><title>Contacts
-Model Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-C4F81B43-D09B-45AE-A616-B77398345918"><title>Purpose</title> <p>The purpose of this document is to give
-guidelines on how to use the Contacts Model API most efficiently for a range
-of typical operations. The Contacts Model is an engine component that provides
-access to contact information stored on a device. Just like a real-world address
-book it stores and organises names, telephone numbers, addresses and other
-details of individuals and companies. It can be used to add, delete and edit
-data as well as providing information to clients, and sorting and searching
-contacts. </p> </section>
-<section id="GUID-FE10E5CD-4F10-400D-AFDC-A00DDC22F6C7"><title>Architectural Relationships</title> <p>The Contacts Model
-is primarily used by messaging, telephony, synchronisation and vCard viewer
-clients on a device. </p> <fig id="GUID-79192704-415D-530B-8FEB-F73A5C93D0C2">
-<title>              CONTACTS MODEL CLIENTS            </title>
-<image href="GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e377700_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-DF37BEEF-CF1D-42B4-A5E2-B3C8F69B33BD"><title>Description</title> <p>The <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> class
-allows clients access to the contact data stored on the device and has the
-following functionality: </p> <p><b>Contact database management </b> </p> <p>More than one Contact Database
-can exist on a phone, but a default Contact Database is used if no other is
-specified. Clients can open, close, alter and delete the Contact Database.
-Extra databases can be added as required. The Contact Database can be moved
-between drives, and can be compressed in order to save space. </p> <p><b>Contact items management </b> </p> <p>Contact Items are made up of Contact
-Fields and can be added to and removed from the database. Items in the database
-can be opened, read, sorted and deleted. An item must be opened before it
-can be edited. Editing an item often means altering data in one or more fields,
-such as name or telephone number. To provide different sorting views Contact
-Items can be grouped in categories such as ‘colleagues’ or ‘family’. </p> <p><b>Searching the database </b> </p> <p>Searching <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> implements
-searching and sorting and also provides separate phone number matching functions.
-These provide a fast way of indexing and looking up phone numbers, for example,
-for looking up caller IDs on incoming calls. </p> <p><b>Speed dial functionality </b> </p> <p>The database owns speed dial information.
-This is a mapping between a single digit integer and a telephone number. There
-may be up to nine speed dial telephone numbers. If a Contact Item is deleted,
-its speed dial mapping is removed. </p> <p><b>Notification of changes </b> </p> <p>The database needs to be informed
-of data changes made to it. Sometimes a UI-level application may need to respond
-to updates made by other clients. The Contacts Model provides an observer
-to transmit this information between <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> instances. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-40E64445-CBA3-59E4-A777-937609B311C9" xml:lang="en"><title>Contacts
+Model Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-C4F81B43-D09B-45AE-A616-B77398345918"><title>Purpose</title> <p>The purpose of this document is to give
+guidelines on how to use the Contacts Model API most efficiently for a range
+of typical operations. The Contacts Model is an engine component that provides
+access to contact information stored on a device. Just like a real-world address
+book it stores and organises names, telephone numbers, addresses and other
+details of individuals and companies. It can be used to add, delete and edit
+data as well as providing information to clients, and sorting and searching
+contacts. </p> </section>
+<section id="GUID-FE10E5CD-4F10-400D-AFDC-A00DDC22F6C7"><title>Architectural Relationships</title> <p>The Contacts Model
+is primarily used by messaging, telephony, synchronisation and vCard viewer
+clients on a device. </p> <fig id="GUID-79192704-415D-530B-8FEB-F73A5C93D0C2">
+<title>              CONTACTS MODEL CLIENTS            </title>
+<image href="GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e371630_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-DF37BEEF-CF1D-42B4-A5E2-B3C8F69B33BD"><title>Description</title> <p>The <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> class
+allows clients access to the contact data stored on the device and has the
+following functionality: </p> <p><b>Contact database management </b> </p> <p>More than one Contact Database
+can exist on a phone, but a default Contact Database is used if no other is
+specified. Clients can open, close, alter and delete the Contact Database.
+Extra databases can be added as required. The Contact Database can be moved
+between drives, and can be compressed in order to save space. </p> <p><b>Contact items management </b> </p> <p>Contact Items are made up of Contact
+Fields and can be added to and removed from the database. Items in the database
+can be opened, read, sorted and deleted. An item must be opened before it
+can be edited. Editing an item often means altering data in one or more fields,
+such as name or telephone number. To provide different sorting views Contact
+Items can be grouped in categories such as ‘colleagues’ or ‘family’. </p> <p><b>Searching the database </b> </p> <p>Searching <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> implements
+searching and sorting and also provides separate phone number matching functions.
+These provide a fast way of indexing and looking up phone numbers, for example,
+for looking up caller IDs on incoming calls. </p> <p><b>Speed dial functionality </b> </p> <p>The database owns speed dial information.
+This is a mapping between a single digit integer and a telephone number. There
+may be up to nine speed dial telephone numbers. If a Contact Item is deleted,
+its speed dial mapping is removed. </p> <p><b>Notification of changes </b> </p> <p>The database needs to be informed
+of data changes made to it. Sometimes a UI-level application may need to respond
+to updates made by other clients. The Contacts Model provides an observer
+to transmit this information between <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita"><apiname>CContactDatabase</apiname></xref> instances. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e244714_href.png has changed
Binary file Symbian3/SDK/Source/GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e248451_href.png has changed
--- a/Symbian3/SDK/Source/GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,140 +1,137 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D" xml:lang="en"><title>Soft
-notifications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Soft notifications are reminders that inform the user of events that have
-occurred in the user's absence, or while the mobile device user was busy with
-some application. Text and graphics, can be used to communicate the message
-to the user. Soft notifications are displayed in pop-up windows in the Idle
-state.</p>
-<p>The user can respond to the soft notification by using the softkeys. The
-left softkey is used for activating a function, for example opening a message
-that has arrived. The right softkey is used to discard the notification without
-taking any further action. In touch layout, the softkeys are placed inside
-the pop-up component</p>
-<fig id="GUID-604BE550-E472-4FAC-87CF-28A2928DC1E9">
-<title>Soft notification indicating new messages</title>
-<image href="GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e69665_href.png" placement="inline"/>
-</fig>
-<p>Soft notifications are displayed only in the Idle state. If an event that
-causes a soft notification (for example, a missed call) occurs when an application
-is active, it may cause other kinds of UI events to notify the user, but if
-the user does not react to these, the soft notification appears only after
-the phone is put in the Idle state if the event still requires it.</p>
-<p>The application that launched a soft notification can control it and also
-discard it. It is possible to use the S60 key during a soft notification;
-in that case, the soft notification disappears, but reappears when the user
-returns to the Idle state, unless the application responsible for the notification
-has discarded it.</p>
-<p>Soft notifications can be displayed for the user in two different appearances:</p>
-<ul>
-<li><p><b>Ungrouped soft notification:</b> These notifications contain one
-piece of information each. The appearance of the notification window is the
-same as that of a note. The example in the figure below is an ungrouped soft
-notification. </p></li>
-<li><p><b>Grouped soft notification:</b> Many different items of information
-can be combined into one soft notification where the items are displayed as
-a list. The user can pick up one of the items at a time and react to it. The
-appearance of this soft notification type is the same as the appearance of
-a List query (see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>).</p></li>
-</ul>
-<fig id="GUID-66315EEC-23D9-4484-AB66-37F2E8F43566">
-<title>Grouped soft notification. The height of the window is dynamic and
-depends on the number of lines in the list.</title>
-<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e69700_href.png" placement="inline"/>
-</fig>
-<p/>
-<table id="GUID-88A600AF-311A-486E-BE34-6D2C846C33F7"><title>Default touch
-events for ungrouped soft notification</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release on <codeph>SK1</codeph> §KEY_SK1_SOFTKEY§</p></entry>
-<entry><p>Confirms the operation. </p><p>Attached application is activated,
-and displayed notification disappears completely.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on <codeph>SK2</codeph> §KEY_SK2_SOFTKEY§</p></entry>
-<entry><p>Discards operation. </p><p>Attached application is discarded and
-displayed notification disappears completely</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on notification</p></entry>
-<entry><p>Confirms operation.</p><p>Attached application is activated, and
-displayed notification disappears completely.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside notification</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-8-1-6-1-1-5-1-19-1-1-2-12"><title>Default touch
-events for grouped soft notification</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release on <codeph>SK2</codeph> §KEY_SK2_SOFTKEY§</p></entry>
-<entry><p>Discards the operation.</p><p>Grouped soft notification is discarded</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on list item</p></entry>
-<entry><p>Confirms the operation. </p><p>Attached application is activated,
-and selected choice item is removed from the soft notification list. The user
-can return to the grouped soft notification list by returning to idle state.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside notification</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move on list item</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-27C82CB3-9B88-4DD1-9B94-F5A948971B73"><title>Using
-soft notifications in C++ applications</title><p>The API to use for soft notifications
-is the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3" scope="peer">Using the Notifiers API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D" xml:lang="en"><title>Soft notifications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Soft notifications are reminders that inform the user of events that have
+occurred in the user's absence, or while the mobile device user was busy with
+some application. Text and graphics, can be used to communicate the message
+to the user. Soft notifications are displayed in pop-up windows in the home
+screen.</p>
+<p>The user can respond to the soft notification by using the softkeys. The
+left softkey is used for activating a function, for example opening a message
+that has arrived. The right softkey is used to discard the notification without
+taking any further action. In touch layout, the softkeys are placed inside
+the pop-up component</p>
+<p>Soft notifications are displayed only in the home screen. If an event that
+causes a soft notification (for example, a missed call) occurs when an application
+is active, it may cause other kinds of UI events to notify the user, but if
+the user does not react to these, the soft notification appears only after
+the phone is put in the home screen if the event still requires it.</p>
+<p>The application that launched a soft notification can control it and also
+discard it. It is possible to use the Menu key during a soft notification;
+in that case, the soft notification disappears, but reappears when the user
+returns to the home screen, unless the application responsible for the notification
+has discarded it.</p>
+<p>Soft notifications can be displayed for the user in two different appearances:</p>
+<ul>
+<li><p><b>Ungrouped soft notification:</b> These notifications contain one
+piece of information each. The appearance of the notification window is the
+same as that of a note. The example in the figure below is an ungrouped soft
+notification. </p><fig id="GUID-604BE550-E472-4FAC-87CF-28A2928DC1E9">
+<title>Soft notification indicating a new message</title>
+<image href="GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e64446_href.png" placement="inline"/>
+</fig></li>
+<li><p><b>Grouped soft notification:</b> Many different items of information
+can be combined into one soft notification where the items are displayed as
+a list. The user can pick up one of the items at a time and react to it. The
+appearance of this soft notification type is the same as the appearance of
+a List query (see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>).</p><fig id="GUID-66315EEC-23D9-4484-AB66-37F2E8F43566">
+<title>Grouped soft notification. The height of the window is dynamic and
+depends on the number of lines in the list.</title>
+<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e64462_href.png" placement="inline"/>
+</fig></li>
+</ul>
+<p/>
+<table id="GUID-88A600AF-311A-486E-BE34-6D2C846C33F7"><title>Default touch
+events for ungrouped soft notification</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release on left softkey.</p></entry>
+<entry><p>Confirms the operation. </p><p>Attached application is activated,
+and displayed notification disappears completely.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on right softkey.</p></entry>
+<entry><p>Discards operation. </p><p>Attached application is discarded and
+displayed notification disappears completely</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on notification</p></entry>
+<entry><p>Confirms operation.</p><p>Attached application is activated, and
+displayed notification disappears completely.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside notification</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-10-1-6-1-1-5-1-16-1-1-2-10"><title>Default touch
+events for grouped soft notification</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release on right softkey.</p></entry>
+<entry><p>Discards the operation.</p><p>Grouped soft notification is discarded</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on list item</p></entry>
+<entry><p>Confirms the operation. </p><p>Attached application is activated,
+and selected choice item is removed from the soft notification list. The user
+can return to the grouped soft notification list by returning to home screen.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside notification</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move on list item</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-27C82CB3-9B88-4DD1-9B94-F5A948971B73"><title>Using
+soft notifications in applications</title><p>The API to use for soft notifications
+is the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3" scope="peer">Using the Notifiers API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e107311_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e113849_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,268 +1,268 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09" xml:lang="en"><title>SIP
-High Level API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP High Level API encapsulates the SIP call flows inside the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs. The following SIP functionality is supported using <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs: </p>
-<ul>
-<li id="GUID-0A13EB92-CD3F-5F33-AE9F-3333BDFB5B03"><p>REGISTER - An application
-that wants to start a SIP session must register to the SIP server. For more
-information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-02CBB3C7-9B7C-5B49-8F29-56F235FF320E">Registration</xref>. </p> </li>
-<li id="GUID-63D5BA93-28C1-5CE6-A1AD-78AD21EF5C6F"><p>INVITE - An invite session
-is created for activities such as setting up a voice call, and a game session.
-For more information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Session
-initiation</xref>. </p> </li>
-<li id="GUID-40206112-EC3B-57EF-B316-F7C938EB2118"><p>SUBSCRIBE - SIP supports
-subscription to events for example, message waiting, notifying the subscriber
-about the current state of the event and any changes to its state. For more
-information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-BF804D44-35A2-5997-9706-B48C2C30F2BE">Initiating
-a session using SUBSCRIBE</xref>. </p> </li>
-</ul>
-<p>The <codeph>INVITE</codeph> and <codeph>SUBSCRIBE</codeph> methods must
-be registered. <xref href="GUID-A412D2E5-C4BE-33F7-A610-ECBD1BD6BBF9.dita"><apiname>CSubConSIPInviteParamSet</apiname></xref> and <xref href="GUID-8ABE119B-CF5D-3FED-A26F-E889AE6B7663.dita"><apiname>CSubConSIPSubscribeParamSet</apiname></xref> classes
-provide the parameters. </p>
-<p> <b>Note</b>: SIP High Level API is included in the Symbian OS v9.2 onwards. </p>
-<section id="GUID-02CBB3C7-9B7C-5B49-8F29-56F235FF320E"><title>Registration</title> <p>An
-endpoint, for example a SIP enabled phone, that wants to start a SIP session
-must use <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> to register with the SIP registrar.
-For more information about RConnection, see<xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection
-Management</xref> . <xref href="GUID-506C0ECB-9424-3579-877E-1435F76B2594.dita"><apiname>ESOCK</apiname></xref> provides an interface for the
-user to access the SIP high level API. <xref href="GUID-506C0ECB-9424-3579-877E-1435F76B2594.dita"><apiname>ESOCK</apiname></xref> interacts
-with the SIP high level API through the <codeph>Connection</codeph> and <codeph>SubConnection</codeph> providers.
-Connection and SubConnection providers are <codeph>ESOCK</codeph> server side
-components that are loaded and called when <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs
-are used. </p> <p>The following figure shows the architectural layer where
-the application interacts with SIP connection providers using SIPPARAMS. The
-second layer comprising <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>, <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>,
-and <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> constitute the SIPPARAMS. </p> <fig id="GUID-57FDC30F-E5AD-5C9D-8D80-71B35CB905D4">
-<title>              Interface of Connection and Sub Connection.         
-  </title>
-<image href="GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e344437_href.png" placement="inline"/>
-</fig> <p>The SIP high level API models the SIP with Connection and SubConnection
-providers and makes it stackable against the unified comms-infras architecture.
-This enables the future connection convergence. </p> <p><b> Initial setup</b> </p> <p>A
-profile data store is required to get registered with the SIP Registrar. A
-SIP registration profile is a data store containing the information required
-for registration such as AOR which is the IP address of registrar. The data
-profile must contain the following fields: </p> <ul>
-<li id="GUID-9419A4E2-40DB-52E4-9B70-89DEF5594CF6"><p>data profile type: Internet,
-IMS, others </p> </li>
-<li id="GUID-36207215-4ECE-5D08-AEFB-6D801DBA0902"><p>profile name IETF, IMS,
-others </p> </li>
-<li id="GUID-FF904FF9-9D4B-5B34-986F-8F565BDE8E41"><p>IAP name </p> </li>
-<li id="GUID-C66C0664-B9A8-59C8-8C44-88634D7D2E94"><p>profile AOR list (IP
-address) </p> </li>
-<li id="GUID-D85CF1F0-98CA-5947-90EB-0C4D0B96EBCC"><p>autoregistration </p> </li>
-<li id="GUID-FC499704-39DC-55E1-80EC-3A3F8F0A8C53"><p>private ID </p> </li>
-<li id="GUID-ED9C3D8E-A8CC-5D65-B381-81EC51264980"><p>security negotiation </p> </li>
-<li id="GUID-B400C58A-E180-54B7-A536-7B7103CD4274"><p>sigcomp </p> </li>
-<li id="GUID-AB1D459F-CCEA-5D20-8FCE-02939F716093"><p>server (IP address of
-registrar, outbound proxy) </p> </li>
-<li id="GUID-999CAACE-4E8F-5EDA-877E-2A46580D9BA9"><p>server param (username,
-realm, pwd) </p> </li>
-<li id="GUID-B4AAE1EE-1A67-5FBE-8F75-9BCB01E2ECE2"><p>default </p> </li>
-</ul> <p>Manual registration by specifying parameters is not possible. If
-connection details are not available, the connection is set up using the default <filepath>profile.flag</filepath> file. </p> <p id="GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D"><b>Creating an RConnection</b> </p> <p>Create
-an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> to register to the SIP Registrar using the
-following steps. <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> must be opened on an existing
-socket server session, <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>. </p> <codeblock id="GUID-AC8B369E-1DC8-5868-95E2-B09FCFE4987E" xml:space="preserve">RSocketServ    socketServer;        // Create a client interface object to the socket server
-RConnection    con;                        // Create an RConnection object
-TRequestStatus status = KErrNone;                // object to hold the request completion status
-
-// Establish the connection to the Socket server
-
-User::LeaveIfError(socketServer.Connect());        // Returns KErrorNone if the connection is successful
-CleanupClosePushL(socketServer);
-
-TUint KAFSip = 0x10000;             //SIP protocol family id
-TInt err = con.Open (socketServer,KAFSip);            //open the connection
-TInt err1 = con.Start();                    // Start Rconnection to initiate the registration
-</codeblock> <p>When registration to the SIP registrar is successful, <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is
-used to establish the SIP Invite or SIP Subscribe session. The <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> that
-is established and opened are used for either inviting a call session or subscribing
-for the message status. </p> </section>
-<section id="GUID-565742FA-20AB-57A8-AB81-19664F9B2BC8"><title>Session initiation</title> <p><b>SIP
-Params</b> </p> <p>SIPPARAMS is used to simplify the interaction with the
-SIP stack by abstracting the SIP functionality using the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs.  It
-supports the basic SIP functionality. The complete SIP functionality is made
-available through the SIP stack APIs. </p> <p id="GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C"><b>Initiating
-a session using INVITE</b> </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is used
-to establish a SIP Invite session. A SIP invitation starts when an endpoint
-such as a VoIP Softphone or VoIP Hardware tries to establish a session with
-a remote compliant endpoint. A successful SIP invitation consists of an INVITE-OK-ACK
-triplet message exchange. The calling endpoint tries to start a session with
-SIP INVITE. This is followed by OK from the called endpoint, and by ACK from
-the calling endpoint that finally establishes the SIP session. </p> <p>A SIP
-session can be terminated by using BYE-200OK message exchange. Either the
-calling or the called party can initiate the termination. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> establishes
-the SIP session using the three way communication of INVITE-OK-ACK and terminates
-the call using BYE-200OK. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> when
-used on behalf of the calling endpoint, handles the message exchange independently
-and provides the status whether the session is established, denied or not
-reachable. The calling endpoint must fill the necessary SIP session parameters
-that are used to determine the target. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> when
-used on behalf of the called endpoint alerts the user of an incoming call
-such as a SIP invitation. The incoming call can be either accepted or rejected
-using <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. The application is notified about
-the outcome. The information about the calling endpoint is provided in a set
-of specific parameters. </p> <p>The SIP parameters for an outgoing call is
-set using <xref href="GUID-A412D2E5-C4BE-33F7-A610-ECBD1BD6BBF9.dita"><apiname>CSubConSIPInviteParamSet</apiname></xref> class. The following
-code shows how to initiate a call. It is assumed that you have already registered
-with the SIP registrar by creating an <codeph>RConnection</codeph> object
-and called <codeph>Open()</codeph>. For more information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D">Creating an RConnection</xref>. </p> <codeblock id="GUID-0DCB4778-33E7-5604-A7C4-ED534B48FA33" xml:space="preserve">RSubConnection    subCon;    // Create an RSubConnection object
-err=subCon.Open(socketServer,RSubConnection::ECreateNew,con); // Open subconnection onto the Rconnection
-</codeblock> <p>Set the SIP Invite parameters. The following code shows how
-to set the SIP Invite parameters. </p> <codeblock id="GUID-904E8A67-646D-5589-9144-60D4C2598A62" xml:space="preserve">RSubConParameterBundle     sipBundle;            // create parameter bundle
-
-// create SIP parameter set family
-CSubConParameterFamily * family = CSubConParameterFamily::NewL(sipBundle,KSubConnCallDescrParamsFamily);
-
-// create invite parameter set object
-CSubConSIPInviteParamSet* sip = CSubConSIPInviteParamSet::NewL(*family,CSubConParameterFamily::ERequested);</codeblock> <p>Set
-the SIP header values to the parameter set. The following code shows how to
-set the SIP header values to the parameter set. </p> <codeblock id="GUID-E298FDDC-28CE-506D-A301-B5F04DC7D7AD" xml:space="preserve">_LIT8(KTo,"Sip:user@10.112.165.91");        //'To' header, SIP URI of called endpoint
-TPtrC8 ptrTo(KTo());
-sip-&gt;SetToL(ptrTo);         //Set'To', the target SIP URI to the SIP parameter set
-
-_LIT8(KFrom, "Sip:user@10.112.165.62");        //'From' header, SIP URI of the calling endPoint
-TPtrC8 ptrFrom(KFrom());
-sip-&gt;SetFromL(ptrFrom);                //Set the 'From' header field to the SIP parameter set
-
-_LIT8(KContact,"Sip:user@10.112.165.62");            //'Contact' header, the actual location of the calling endpoint
-TPtrC8 ptrContact (KContact());
-sip-&gt;SetContactL(ptrContact);                //Set the 'Contact' to the SIP parameter set 
-
-_LIT8(KRequestUri, "Sip:user@10.112.165.91");    //Request URI, the actual Next hop or the Target
-TPtrC8 ptrRequestUri(KRequestUri());
-sip-&gt;SetRequestUriL(ptrRequestUri);             //Set the 'RequestUri' to the SIP parameter set</codeblock> <codeblock id="GUID-916B4C73-B97B-5EC0-A70E-EFDD0FB51210" xml:space="preserve">TInt err = SubCon.SetParameters(sipBundle);         //Set The SIP parameters in the SubConnection
-sipBundle.Close();                    //close the parameter bundle</codeblock> <p id="GUID-8676EB5B-FA5D-51EC-9FAD-C36BB29A6392"><b>Establishing the INVITE
-session</b> </p> <p>To establish the SIP Invite session, use <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> to
-start the subconnection. This initiates the Invite request. </p> <codeblock id="GUID-4A8E0FB2-7096-583F-9DF6-D0B2255F618A" xml:space="preserve">//Start the subconnection, effectively sending an Invite
-TInt subConRet = subCon.Start(); 
-// Session is established</codeblock> <p id="GUID-BF804D44-35A2-5997-9706-B48C2C30F2BE"><b>Initiating
-a session using SUBSCRIBE</b> </p> <p>An endpoint subscribes to a specific
-service using a SIP SUBSCRIBE-200OK message exchange. The end point is notified
-by means of a NOTIFY-200OK message exchange. To send the subscription and
-receive notifications use <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is
-also used to unsubscribe, which stops any further notifications. </p> <p>The
-following code shows how you subscribe to a session and receive notifications.
-It assumes that you have already registered with the SIP registrar by creating
-an <codeph>RConnection</codeph> object and calling <codeph>Open()</codeph> on
-it as explained in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D">Creating
-an RConnection</xref> section. </p> <codeblock id="GUID-B68FF753-0D48-54C2-8DE1-282658CE96BA" xml:space="preserve">RSubConnection    subCon;// Create an RSubConnection object
-// Open subconnection onto the Rconnection
-err=subCon.Open(socketServer,RSubConnection::ECreateNew,con);
-</codeblock> <p>Set the SIP Subscribe parameters using <xref href="GUID-8ABE119B-CF5D-3FED-A26F-E889AE6B7663.dita"><apiname>CSubConSIPSubscribeParamSet</apiname></xref>.
-This class provides the SIP subscribe parameters that are passed through the
-subconnection to the SIP stack. </p> <codeblock id="GUID-3512DB0A-EE9E-5B59-92D5-46F65CB9F4B4" xml:space="preserve">RSubConParameterBundle     sipBundle;                 //    create parameter bundle
-
-//create SIP parameter set family
-CSubConParameterFamily * family = CSubConParameterFamily::NewL(sipBundle,KSubConnCallDescrParamsFamily);
-
-// create subscribe parameter set object
-CSubConSIPSubscribeParamSet* sip = CSubConSIPSubscribeParamSet::NewL(*family,CSubConParameterFamily::ERequested);</codeblock> <p>Set <codeph>the
-required information that is, to</codeph>, <codeph>from</codeph>, <codeph>contact,</codeph> and <codeph>reqURI</codeph> header
-values to the SIP subscribe parameter set as explained in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Initiating a session using INVITE</xref> section. </p> <codeblock id="GUID-11671200-F24E-5278-9408-EE75399B25C2" xml:space="preserve">// Set the required information
-_LIT8(KEventType, "messagewaiting");    // subscription event type
-TPtrC8 ptrEventType (KEventType());
-sip-&gt;SetEventTypeL(ptrEventType);     //Set the subscription event type to 'messagewaiting'
-
-_LIT8(KAcceptType,  "application");    //accept type
-TPtrC8 ptrAcceptType(KAcceptType());
-sip-&gt;SetAcceptTypeL(ptrAcceptType); //set the accept type field to 'application'
-
-_LIT8(KAcceptSubType,   "indication"); //accept subtype
-TPtrC8 ptrAcceptSubType(KAcceptSubType());
-sip-&gt;SetAcceptSubTypeL(ptrAcceptSubType);    //set the accept subtype
-
-sip-&gt;SetExpires(3600);    // set the subscription Refresh timings
-
-sip-&gt;SetAutoRefresh(ETrue); // set Auto Refresh to 'on' 
-
-// pass SIP subscribe parameters through the subconnection
-Tint err = subCon.SetParameters(sipBundle);
-sipBundle.Close(); //close the parameter bundle
-
-subCon.Start();    // Start the subscription
-</codeblock> <p>To receive notifications to the subscribed events, <xref href="GUID-106A74C7-9B70-3397-973C-E317C1F40C58.dita"><apiname>CSubConSIPNotificationEvent</apiname></xref> class
-is used. </p> <codeblock id="GUID-4D3A9189-1AA5-5275-A5B6-425085006A25" xml:space="preserve">// Wait and receive notifications to events
-while(ETrue)
-{
-TNotificationEventBuf evtBuf;         // Sub-connection event notification object
-
-    TRequestStatus reqStatus;             // request status object
-
-    User::WaitForRequest(reqStatus);
-    TInt eventId = evtBuf.Id();                     // get sub-type id
-    TInt groupId = evtBuf.GroupId();         // get group id of the event
-
-if (eventId == KSubConSIPNotificationEventType &amp;&amp; groupId == KSubConSIPEventsUid)
-        {
-                CSubConSIPNotificationEvent * evtRes = (CSubConSIPNotificationEvent*)CSubConNotificationEvent::NewL(evtBuf);
-                CleanupStack::PushL(evtRes);    
-                ....................
-                ....................
-                CleanupStack::PopAndDestroy(evtRes);    
-
-            // Since We do not want to receive more notifications in this stage, break from the loop.
-
-                break;
-        }
-
-// we can wait again for another notification
-subCon.EventNotification( evtBuf,EFalse, reqStatus);  //request for notification
-}</codeblock> <p>Unsubscribe to events and unregister, refer to steps in the <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4">Terminating
-the session</xref> section. </p> <p><b>Setting authentication parameters</b> </p> <p>A
-remote party or a server may require authentication before it allows an endpoint
-to establish a session with another endpoint. <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> provides
-an authentication mechanism where the authentication information such as realm,
-username and password must be provided while initiating the call. If a challenge
-is received then <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> provides the realm and
-initiates a new session with authentication parameters. </p> <p>Authentication
-parameters are set in a subconnection parameter bundle as shown in the following
-code fragment. Set the SIP authenticate parameter set using <xref href="GUID-155DBCFD-76A4-3852-855E-0E0E8F1EC775.dita"><apiname>CSubConSIPAuthenticateParamSet</apiname></xref>.
-This class provides the SIP authenticate parameter values that are passed
-through the subconnection to the SIP stack. </p> <codeblock id="GUID-BE7DB575-79EE-5D13-B3CB-041579DD5D57" xml:space="preserve">RSubConParameterBundle     sipBundle;                         //    create parameter bundle
-// Add authorisation parameters as new family
-CSubConParameterFamily * family1 = CSubConParameterFamily::NewL(sipBundle,KSubConAuthorisationFamily );
-
-// create authenticate parameter set object
-CSubConSIPAuthenticateParamSet * authParam = CSubConSIPAuthenticateParamSet::NewL(*family1,CSubConParameterFamily::ERequested);
-</codeblock> <p>Set <codeph>the required information that is, to</codeph>, <codeph>from</codeph>, <codeph>contact</codeph>, <codeph>reqURI</codeph> header field values to the SIP authenticate parameter set, similar to that
-in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Initiating
-a session using INVITE</xref> section. </p> <codeblock id="GUID-55C1E9B8-B6CB-565D-9163-31421965C01A" xml:space="preserve">_LIT8(KRealm, "SFTF");
-_LIT8(KUserName, "MyUserName");
-_LIT8(KPwd, "pass123");
-
-authParam-&gt;SetRealmL(KRealm);    //set the Realm parameter
-authParam-&gt;SetUserNameL(KUserName);    // set the username
-authParam-&gt;SetPasswordL(KPwd);                    //set the password
-
-TInt err = subCon.SetParameters(sipBundle); //set the Authenticate parameters to the subconnection
-sipBundle.Close();                    //close the parameter bundle</codeblock> <p>To
-terminate the call session or unsubscribe to events and unregister, follow
-the steps in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4">Terminating
-the session</xref> section. </p> </section>
-<section id="GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4"><title>Terminating
-the session</title> <p>To terminate the SIP INVITE or SUBSCRIBE session: </p> <ul>
-<li id="GUID-E1DABB93-F761-554F-82F9-78CAF0116A2C"><p>send BYE message by
-closing the <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> session </p> </li>
-<li id="GUID-D8757702-DB58-5F75-A00A-9251B3975CFF"><p>unregister with the
-SIP registrar by closing the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> session. </p> </li>
-</ul> <codeblock id="GUID-F5281FE3-651C-5DAD-9569-5A7C967233F0" xml:space="preserve">Int ret = subCon.Stop();    // Terminate the session, send BYE message
-
-subCon.Close();        // close the subconnection
-
-con.Stop();      // Terminate the connection
-
-con.Close();        // Close the connection </codeblock> </section>
-<section id="GUID-B6F7F947-1E4B-4DFD-80B4-70E5E890685A"><title>See also</title> <p> <xref href="GUID-FA4F1E9F-8775-51E4-99DD-D334E73319C5.dita">Socket Server Protocols Overview</xref>  </p> <p> <xref href="GUID-6BB74A83-C6EA-5BC2-B60F-8186CC896725.dita">Sockets Client Overview</xref>  </p> <p><xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection Management</xref></p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09" xml:lang="en"><title>SIP
+High Level API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP High Level API encapsulates the SIP call flows inside the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs. The following SIP functionality is supported using <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs: </p>
+<ul>
+<li id="GUID-0A13EB92-CD3F-5F33-AE9F-3333BDFB5B03"><p>REGISTER - An application
+that wants to start a SIP session must register to the SIP server. For more
+information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-02CBB3C7-9B7C-5B49-8F29-56F235FF320E">Registration</xref>. </p> </li>
+<li id="GUID-63D5BA93-28C1-5CE6-A1AD-78AD21EF5C6F"><p>INVITE - An invite session
+is created for activities such as setting up a voice call, and a game session.
+For more information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Session
+initiation</xref>. </p> </li>
+<li id="GUID-40206112-EC3B-57EF-B316-F7C938EB2118"><p>SUBSCRIBE - SIP supports
+subscription to events for example, message waiting, notifying the subscriber
+about the current state of the event and any changes to its state. For more
+information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-BF804D44-35A2-5997-9706-B48C2C30F2BE">Initiating
+a session using SUBSCRIBE</xref>. </p> </li>
+</ul>
+<p>The <codeph>INVITE</codeph> and <codeph>SUBSCRIBE</codeph> methods must
+be registered. <xref href="GUID-A412D2E5-C4BE-33F7-A610-ECBD1BD6BBF9.dita"><apiname>CSubConSIPInviteParamSet</apiname></xref> and <xref href="GUID-8ABE119B-CF5D-3FED-A26F-E889AE6B7663.dita"><apiname>CSubConSIPSubscribeParamSet</apiname></xref> classes
+provide the parameters. </p>
+<p> <b>Note</b>: SIP High Level API is included in the Symbian OS v9.2 onwards. </p>
+<section id="GUID-02CBB3C7-9B7C-5B49-8F29-56F235FF320E"><title>Registration</title> <p>An
+endpoint, for example a SIP enabled phone, that wants to start a SIP session
+must use <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> to register with the SIP registrar.
+For more information about RConnection, see<xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection
+Management</xref> . <xref href="GUID-506C0ECB-9424-3579-877E-1435F76B2594.dita"><apiname>ESOCK</apiname></xref> provides an interface for the
+user to access the SIP high level API. <xref href="GUID-506C0ECB-9424-3579-877E-1435F76B2594.dita"><apiname>ESOCK</apiname></xref> interacts
+with the SIP high level API through the <codeph>Connection</codeph> and <codeph>SubConnection</codeph> providers.
+Connection and SubConnection providers are <codeph>ESOCK</codeph> server side
+components that are loaded and called when <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs
+are used. </p> <p>The following figure shows the architectural layer where
+the application interacts with SIP connection providers using SIPPARAMS. The
+second layer comprising <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>, <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>,
+and <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> constitute the SIPPARAMS. </p> <fig id="GUID-57FDC30F-E5AD-5C9D-8D80-71B35CB905D4">
+<title>              Interface of Connection and Sub Connection.         
+  </title>
+<image href="GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e338240_href.png" placement="inline"/>
+</fig> <p>The SIP high level API models the SIP with Connection and SubConnection
+providers and makes it stackable against the unified comms-infras architecture.
+This enables the future connection convergence. </p> <p><b> Initial setup</b> </p> <p>A
+profile data store is required to get registered with the SIP Registrar. A
+SIP registration profile is a data store containing the information required
+for registration such as AOR which is the IP address of registrar. The data
+profile must contain the following fields: </p> <ul>
+<li id="GUID-9419A4E2-40DB-52E4-9B70-89DEF5594CF6"><p>data profile type: Internet,
+IMS, others </p> </li>
+<li id="GUID-36207215-4ECE-5D08-AEFB-6D801DBA0902"><p>profile name IETF, IMS,
+others </p> </li>
+<li id="GUID-FF904FF9-9D4B-5B34-986F-8F565BDE8E41"><p>IAP name </p> </li>
+<li id="GUID-C66C0664-B9A8-59C8-8C44-88634D7D2E94"><p>profile AOR list (IP
+address) </p> </li>
+<li id="GUID-D85CF1F0-98CA-5947-90EB-0C4D0B96EBCC"><p>autoregistration </p> </li>
+<li id="GUID-FC499704-39DC-55E1-80EC-3A3F8F0A8C53"><p>private ID </p> </li>
+<li id="GUID-ED9C3D8E-A8CC-5D65-B381-81EC51264980"><p>security negotiation </p> </li>
+<li id="GUID-B400C58A-E180-54B7-A536-7B7103CD4274"><p>sigcomp </p> </li>
+<li id="GUID-AB1D459F-CCEA-5D20-8FCE-02939F716093"><p>server (IP address of
+registrar, outbound proxy) </p> </li>
+<li id="GUID-999CAACE-4E8F-5EDA-877E-2A46580D9BA9"><p>server param (username,
+realm, pwd) </p> </li>
+<li id="GUID-B4AAE1EE-1A67-5FBE-8F75-9BCB01E2ECE2"><p>default </p> </li>
+</ul> <p>Manual registration by specifying parameters is not possible. If
+connection details are not available, the connection is set up using the default <filepath>profile.flag</filepath> file. </p> <p id="GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D"><b>Creating an RConnection</b> </p> <p>Create
+an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> to register to the SIP Registrar using the
+following steps. <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> must be opened on an existing
+socket server session, <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>. </p> <codeblock id="GUID-AC8B369E-1DC8-5868-95E2-B09FCFE4987E" xml:space="preserve">RSocketServ    socketServer;        // Create a client interface object to the socket server
+RConnection    con;                        // Create an RConnection object
+TRequestStatus status = KErrNone;                // object to hold the request completion status
+
+// Establish the connection to the Socket server
+
+User::LeaveIfError(socketServer.Connect());        // Returns KErrorNone if the connection is successful
+CleanupClosePushL(socketServer);
+
+TUint KAFSip = 0x10000;             //SIP protocol family id
+TInt err = con.Open (socketServer,KAFSip);            //open the connection
+TInt err1 = con.Start();                    // Start Rconnection to initiate the registration
+</codeblock> <p>When registration to the SIP registrar is successful, <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is
+used to establish the SIP Invite or SIP Subscribe session. The <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> that
+is established and opened are used for either inviting a call session or subscribing
+for the message status. </p> </section>
+<section id="GUID-565742FA-20AB-57A8-AB81-19664F9B2BC8"><title>Session initiation</title> <p><b>SIP
+Params</b> </p> <p>SIPPARAMS is used to simplify the interaction with the
+SIP stack by abstracting the SIP functionality using the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> APIs.  It
+supports the basic SIP functionality. The complete SIP functionality is made
+available through the SIP stack APIs. </p> <p id="GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C"><b>Initiating
+a session using INVITE</b> </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is used
+to establish a SIP Invite session. A SIP invitation starts when an endpoint
+such as a VoIP Softphone or VoIP Hardware tries to establish a session with
+a remote compliant endpoint. A successful SIP invitation consists of an INVITE-OK-ACK
+triplet message exchange. The calling endpoint tries to start a session with
+SIP INVITE. This is followed by OK from the called endpoint, and by ACK from
+the calling endpoint that finally establishes the SIP session. </p> <p>A SIP
+session can be terminated by using BYE-200OK message exchange. Either the
+calling or the called party can initiate the termination. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> establishes
+the SIP session using the three way communication of INVITE-OK-ACK and terminates
+the call using BYE-200OK. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> when
+used on behalf of the calling endpoint, handles the message exchange independently
+and provides the status whether the session is established, denied or not
+reachable. The calling endpoint must fill the necessary SIP session parameters
+that are used to determine the target. </p> <p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> when
+used on behalf of the called endpoint alerts the user of an incoming call
+such as a SIP invitation. The incoming call can be either accepted or rejected
+using <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. The application is notified about
+the outcome. The information about the calling endpoint is provided in a set
+of specific parameters. </p> <p>The SIP parameters for an outgoing call is
+set using <xref href="GUID-A412D2E5-C4BE-33F7-A610-ECBD1BD6BBF9.dita"><apiname>CSubConSIPInviteParamSet</apiname></xref> class. The following
+code shows how to initiate a call. It is assumed that you have already registered
+with the SIP registrar by creating an <codeph>RConnection</codeph> object
+and called <codeph>Open()</codeph>. For more information, see <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D">Creating an RConnection</xref>. </p> <codeblock id="GUID-0DCB4778-33E7-5604-A7C4-ED534B48FA33" xml:space="preserve">RSubConnection    subCon;    // Create an RSubConnection object
+err=subCon.Open(socketServer,RSubConnection::ECreateNew,con); // Open subconnection onto the Rconnection
+</codeblock> <p>Set the SIP Invite parameters. The following code shows how
+to set the SIP Invite parameters. </p> <codeblock id="GUID-904E8A67-646D-5589-9144-60D4C2598A62" xml:space="preserve">RSubConParameterBundle     sipBundle;            // create parameter bundle
+
+// create SIP parameter set family
+CSubConParameterFamily * family = CSubConParameterFamily::NewL(sipBundle,KSubConnCallDescrParamsFamily);
+
+// create invite parameter set object
+CSubConSIPInviteParamSet* sip = CSubConSIPInviteParamSet::NewL(*family,CSubConParameterFamily::ERequested);</codeblock> <p>Set
+the SIP header values to the parameter set. The following code shows how to
+set the SIP header values to the parameter set. </p> <codeblock id="GUID-E298FDDC-28CE-506D-A301-B5F04DC7D7AD" xml:space="preserve">_LIT8(KTo,"Sip:user@10.112.165.91");        //'To' header, SIP URI of called endpoint
+TPtrC8 ptrTo(KTo());
+sip-&gt;SetToL(ptrTo);         //Set'To', the target SIP URI to the SIP parameter set
+
+_LIT8(KFrom, "Sip:user@10.112.165.62");        //'From' header, SIP URI of the calling endPoint
+TPtrC8 ptrFrom(KFrom());
+sip-&gt;SetFromL(ptrFrom);                //Set the 'From' header field to the SIP parameter set
+
+_LIT8(KContact,"Sip:user@10.112.165.62");            //'Contact' header, the actual location of the calling endpoint
+TPtrC8 ptrContact (KContact());
+sip-&gt;SetContactL(ptrContact);                //Set the 'Contact' to the SIP parameter set 
+
+_LIT8(KRequestUri, "Sip:user@10.112.165.91");    //Request URI, the actual Next hop or the Target
+TPtrC8 ptrRequestUri(KRequestUri());
+sip-&gt;SetRequestUriL(ptrRequestUri);             //Set the 'RequestUri' to the SIP parameter set</codeblock> <codeblock id="GUID-916B4C73-B97B-5EC0-A70E-EFDD0FB51210" xml:space="preserve">TInt err = SubCon.SetParameters(sipBundle);         //Set The SIP parameters in the SubConnection
+sipBundle.Close();                    //close the parameter bundle</codeblock> <p id="GUID-8676EB5B-FA5D-51EC-9FAD-C36BB29A6392"><b>Establishing the INVITE
+session</b> </p> <p>To establish the SIP Invite session, use <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> to
+start the subconnection. This initiates the Invite request. </p> <codeblock id="GUID-4A8E0FB2-7096-583F-9DF6-D0B2255F618A" xml:space="preserve">//Start the subconnection, effectively sending an Invite
+TInt subConRet = subCon.Start(); 
+// Session is established</codeblock> <p id="GUID-BF804D44-35A2-5997-9706-B48C2C30F2BE"><b>Initiating
+a session using SUBSCRIBE</b> </p> <p>An endpoint subscribes to a specific
+service using a SIP SUBSCRIBE-200OK message exchange. The end point is notified
+by means of a NOTIFY-200OK message exchange. To send the subscription and
+receive notifications use <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> is
+also used to unsubscribe, which stops any further notifications. </p> <p>The
+following code shows how you subscribe to a session and receive notifications.
+It assumes that you have already registered with the SIP registrar by creating
+an <codeph>RConnection</codeph> object and calling <codeph>Open()</codeph> on
+it as explained in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-D17BC438-09C2-58E9-ABE8-F18B8A285B4D">Creating
+an RConnection</xref> section. </p> <codeblock id="GUID-B68FF753-0D48-54C2-8DE1-282658CE96BA" xml:space="preserve">RSubConnection    subCon;// Create an RSubConnection object
+// Open subconnection onto the Rconnection
+err=subCon.Open(socketServer,RSubConnection::ECreateNew,con);
+</codeblock> <p>Set the SIP Subscribe parameters using <xref href="GUID-8ABE119B-CF5D-3FED-A26F-E889AE6B7663.dita"><apiname>CSubConSIPSubscribeParamSet</apiname></xref>.
+This class provides the SIP subscribe parameters that are passed through the
+subconnection to the SIP stack. </p> <codeblock id="GUID-3512DB0A-EE9E-5B59-92D5-46F65CB9F4B4" xml:space="preserve">RSubConParameterBundle     sipBundle;                 //    create parameter bundle
+
+//create SIP parameter set family
+CSubConParameterFamily * family = CSubConParameterFamily::NewL(sipBundle,KSubConnCallDescrParamsFamily);
+
+// create subscribe parameter set object
+CSubConSIPSubscribeParamSet* sip = CSubConSIPSubscribeParamSet::NewL(*family,CSubConParameterFamily::ERequested);</codeblock> <p>Set <codeph>the
+required information that is, to</codeph>, <codeph>from</codeph>, <codeph>contact,</codeph> and <codeph>reqURI</codeph> header
+values to the SIP subscribe parameter set as explained in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Initiating a session using INVITE</xref> section. </p> <codeblock id="GUID-11671200-F24E-5278-9408-EE75399B25C2" xml:space="preserve">// Set the required information
+_LIT8(KEventType, "messagewaiting");    // subscription event type
+TPtrC8 ptrEventType (KEventType());
+sip-&gt;SetEventTypeL(ptrEventType);     //Set the subscription event type to 'messagewaiting'
+
+_LIT8(KAcceptType,  "application");    //accept type
+TPtrC8 ptrAcceptType(KAcceptType());
+sip-&gt;SetAcceptTypeL(ptrAcceptType); //set the accept type field to 'application'
+
+_LIT8(KAcceptSubType,   "indication"); //accept subtype
+TPtrC8 ptrAcceptSubType(KAcceptSubType());
+sip-&gt;SetAcceptSubTypeL(ptrAcceptSubType);    //set the accept subtype
+
+sip-&gt;SetExpires(3600);    // set the subscription Refresh timings
+
+sip-&gt;SetAutoRefresh(ETrue); // set Auto Refresh to 'on' 
+
+// pass SIP subscribe parameters through the subconnection
+Tint err = subCon.SetParameters(sipBundle);
+sipBundle.Close(); //close the parameter bundle
+
+subCon.Start();    // Start the subscription
+</codeblock> <p>To receive notifications to the subscribed events, <xref href="GUID-106A74C7-9B70-3397-973C-E317C1F40C58.dita"><apiname>CSubConSIPNotificationEvent</apiname></xref> class
+is used. </p> <codeblock id="GUID-4D3A9189-1AA5-5275-A5B6-425085006A25" xml:space="preserve">// Wait and receive notifications to events
+while(ETrue)
+{
+TNotificationEventBuf evtBuf;         // Sub-connection event notification object
+
+    TRequestStatus reqStatus;             // request status object
+
+    User::WaitForRequest(reqStatus);
+    TInt eventId = evtBuf.Id();                     // get sub-type id
+    TInt groupId = evtBuf.GroupId();         // get group id of the event
+
+if (eventId == KSubConSIPNotificationEventType &amp;&amp; groupId == KSubConSIPEventsUid)
+        {
+                CSubConSIPNotificationEvent * evtRes = (CSubConSIPNotificationEvent*)CSubConNotificationEvent::NewL(evtBuf);
+                CleanupStack::PushL(evtRes);    
+                ....................
+                ....................
+                CleanupStack::PopAndDestroy(evtRes);    
+
+            // Since We do not want to receive more notifications in this stage, break from the loop.
+
+                break;
+        }
+
+// we can wait again for another notification
+subCon.EventNotification( evtBuf,EFalse, reqStatus);  //request for notification
+}</codeblock> <p>Unsubscribe to events and unregister, refer to steps in the <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4">Terminating
+the session</xref> section. </p> <p><b>Setting authentication parameters</b> </p> <p>A
+remote party or a server may require authentication before it allows an endpoint
+to establish a session with another endpoint. <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> provides
+an authentication mechanism where the authentication information such as realm,
+username and password must be provided while initiating the call. If a challenge
+is received then <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> provides the realm and
+initiates a new session with authentication parameters. </p> <p>Authentication
+parameters are set in a subconnection parameter bundle as shown in the following
+code fragment. Set the SIP authenticate parameter set using <xref href="GUID-155DBCFD-76A4-3852-855E-0E0E8F1EC775.dita"><apiname>CSubConSIPAuthenticateParamSet</apiname></xref>.
+This class provides the SIP authenticate parameter values that are passed
+through the subconnection to the SIP stack. </p> <codeblock id="GUID-BE7DB575-79EE-5D13-B3CB-041579DD5D57" xml:space="preserve">RSubConParameterBundle     sipBundle;                         //    create parameter bundle
+// Add authorisation parameters as new family
+CSubConParameterFamily * family1 = CSubConParameterFamily::NewL(sipBundle,KSubConAuthorisationFamily );
+
+// create authenticate parameter set object
+CSubConSIPAuthenticateParamSet * authParam = CSubConSIPAuthenticateParamSet::NewL(*family1,CSubConParameterFamily::ERequested);
+</codeblock> <p>Set <codeph>the required information that is, to</codeph>, <codeph>from</codeph>, <codeph>contact</codeph>, <codeph>reqURI</codeph> header field values to the SIP authenticate parameter set, similar to that
+in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-EE044B0B-4664-57DA-BAE1-F9A3B99C453C">Initiating
+a session using INVITE</xref> section. </p> <codeblock id="GUID-55C1E9B8-B6CB-565D-9163-31421965C01A" xml:space="preserve">_LIT8(KRealm, "SFTF");
+_LIT8(KUserName, "MyUserName");
+_LIT8(KPwd, "pass123");
+
+authParam-&gt;SetRealmL(KRealm);    //set the Realm parameter
+authParam-&gt;SetUserNameL(KUserName);    // set the username
+authParam-&gt;SetPasswordL(KPwd);                    //set the password
+
+TInt err = subCon.SetParameters(sipBundle); //set the Authenticate parameters to the subconnection
+sipBundle.Close();                    //close the parameter bundle</codeblock> <p>To
+terminate the call session or unsubscribe to events and unregister, follow
+the steps in <xref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita#GUID-4120651F-E0B9-5927-96B9-2662C51F5A09/GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4">Terminating
+the session</xref> section. </p> </section>
+<section id="GUID-FB267A38-FFB3-5360-9DC8-3E42C5C546A4"><title>Terminating
+the session</title> <p>To terminate the SIP INVITE or SUBSCRIBE session: </p> <ul>
+<li id="GUID-E1DABB93-F761-554F-82F9-78CAF0116A2C"><p>send BYE message by
+closing the <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> session </p> </li>
+<li id="GUID-D8757702-DB58-5F75-A00A-9251B3975CFF"><p>unregister with the
+SIP registrar by closing the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> session. </p> </li>
+</ul> <codeblock id="GUID-F5281FE3-651C-5DAD-9569-5A7C967233F0" xml:space="preserve">Int ret = subCon.Stop();    // Terminate the session, send BYE message
+
+subCon.Close();        // close the subconnection
+
+con.Stop();      // Terminate the connection
+
+con.Close();        // Close the connection </codeblock> </section>
+<section id="GUID-B6F7F947-1E4B-4DFD-80B4-70E5E890685A"><title>See also</title> <p> <xref href="GUID-FA4F1E9F-8775-51E4-99DD-D334E73319C5.dita">Socket Server Protocols Overview</xref>  </p> <p> <xref href="GUID-6BB74A83-C6EA-5BC2-B60F-8186CC896725.dita">Sockets Client Overview</xref>  </p> <p><xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection Management</xref></p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502"><title>Font Store Component Overview</title><shortdesc>The Font Store contains all of the fonts and typefaces on a phone. It is encapsulated by the Font and Bitmap server which provides a client-side class that applications use to find which fonts are available and to find fonts to match their requirements. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Font Store component is sometimes called the <b>Open Font System</b> or <b>Open Font Framework</b>. </p> <section><title>Required background</title> <ul><li id="GUID-5081B96C-4FC7-5881-8D4C-F09B9A843D99"><p>You require no background knowledge or experience use the Font Store using the Font and Bitmap Server interfaces. </p> </li> <li id="GUID-AFE1A3F5-E64C-52F5-AADF-7DF2ECEABF4F"><p>You require no background knowledge or experience to add new font files to the Font Store. You must simply copy the files to the appropriate location. </p> </li> <li id="GUID-A67D26EC-93E2-55F7-9277-24DDAAC1E04B"><p>To create a font file or a font rasterizer, you require an in-depth knowledge of fonts and Symbian programming. </p> </li> </ul> </section> <section><title>Key concepts and terms</title> <p>See <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita#GUID-90644B52-69D7-595C-95E3-D6F7A30C060D/GUID-9F33DD34-F5E5-5EA0-8559-7A933D230129">Concepts and Terms</xref> in the <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita">Font and Text Services Collection Overview</xref>. </p> </section> <section><title>Architectural relationships</title> <p>The Font Store can contain three types of font: bitmap fonts, which are stored as fixed-size pixel definitions; open fonts, which may be stored in any format; and linked fonts, which use characters from two or more other fonts. Open fonts must be converted into bitmaps (rasterized) before they can be used so the Font Store must also contain a font rasterizer for each format of open font. </p> <p>Fonts are stored on Symbian phones as files. The Font Store maintains a list of font files along with specifications for each font that the file contains. When an application requests a font the Font Store searches its list for the best match. If the font is a bitmap font the Font Store loads it into the Font and Bitmap Server's shared heap (unless the font is in eXecute In Place (XIP) ROM, in which case it is accessed directly from ROM). If the font is an open font the Font Store uses the associated open font rasterizer to rasterize glyphs into the heap as they are required. Font rasterizers are ECOM plugins. </p> <fig id="GUID-E823CA77-1B9E-5E0A-BBC3-D99F29D22BBD"><title>
-             Font Store relationships 
-          </title> <image href="GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403167_href.png" placement="inline"/></fig> </section> <section><title>Font Store API summary</title> <p>The Font Store contains APIs for specifying and selecting fonts and for rasterizing open fonts. </p> <table id="GUID-2F133AAE-E960-58A0-84C8-C0807D79FA24"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref>  </p> </entry> <entry><p>Bitmap-based font object </p> </entry> </row> <row><entry><p> <xref href="GUID-54E7330D-F794-39EC-8A59-72669ED5F5CF.dita"><apiname>CFontStore</apiname></xref>  </p> </entry> <entry><p>Central font storage class </p> </entry> </row> <row><entry><p> <xref href="GUID-623C40B5-A8FB-3FEE-9F92-254CAB580C5B.dita"><apiname>CLinkedTypefaceGroup</apiname></xref>  </p> </entry> <entry><p>Linked fonts typeface group </p> </entry> </row> <row><entry><p> <xref href="GUID-6BE49D00-7174-3FEC-A944-FE4A5228C13E.dita"><apiname>CLinkedTypefaceSpecification</apiname></xref>  </p> </entry> <entry><p>Linked font creation </p> </entry> </row> <row><entry><p> <xref href="GUID-DDFD0FCB-8413-3FF2-A8D7-A052C30592C9.dita"><apiname>CLinkedTypefaceElementSpec</apiname></xref>  </p> </entry> <entry><p>Linked font typeface element spec </p> </entry> </row> <row><entry><p> <xref href="GUID-039375D3-AFD9-3E31-9C1C-ACEDC10E27CE.dita"><apiname>COpenFont</apiname></xref>  </p> </entry> <entry><p>Generic outline font object </p> </entry> </row> <row><entry><p> <xref href="GUID-FC62EDD7-A3F7-3611-A899-CA5F17BB2EEE.dita"><apiname>COpenFontFile</apiname></xref>  </p> </entry> <entry><p>Open font file </p> </entry> </row> <row><entry><p> <xref href="GUID-CA16238D-478A-302A-9671-97B62B0E738A.dita"><apiname>COpenFontRasterizer</apiname></xref>  </p> </entry> <entry><p>Open font rasterizer </p> </entry> </row> <row><entry><p> <xref href="GUID-20F3E896-46D2-3385-99E5-2EB19F9D301F.dita"><apiname>COpenFontRasterizerContext</apiname></xref>  </p> </entry> <entry><p>Open font rasterizer context </p> </entry> </row> <row><entry><p> <xref href="GUID-06F847E3-B60B-3159-87FE-66F1F75A36B2.dita"><apiname>TAlgStyle</apiname></xref>  </p> </entry> <entry><p>Algorithmic style attributes </p> </entry> </row> <row><entry><p> <xref href="GUID-56CFD361-6DD7-3C21-81A6-D538FA10EAE7.dita"><apiname>TCharacterMetrics</apiname></xref>  </p> </entry> <entry><p>Character information </p> </entry> </row> <row><entry><p> <xref href="GUID-53F6508E-8911-3363-BC07-A0E7BCE29199.dita"><apiname>TLinkedTypeface</apiname></xref>  </p> </entry> <entry><p>Linked fonts </p> </entry> </row> <row><entry><p> <xref href="GUID-BECBB72B-9FA1-317D-A413-B94AB1DCBE90.dita"><apiname>TOpenFontAttachment</apiname></xref>  </p> </entry> <entry><p>Diacritic attachment point information </p> </entry> </row> <row><entry><p> <xref href="GUID-493119E1-65DF-3517-98A4-55E874023BBB.dita"><apiname>TOpenFontCharMetrics</apiname></xref>  </p> </entry> <entry><p>Open font character metrics </p> </entry> </row> <row><entry><p> <xref href="GUID-2408A284-3F1A-325C-BDCB-5B1B12CDA0C9.dita"><apiname>TOpenFontFaceAttrib</apiname></xref>  </p> </entry> <entry><p>Open font typeface information </p> </entry> </row> <row><entry><p> <xref href="GUID-76FDED57-C10E-3B09-B9C5-0FA1118A2774.dita"><apiname>TOpenFontFaceAttribBase</apiname></xref>  </p> </entry> <entry><p>Basic open font typeface information </p> </entry> </row> <row><entry><p> <xref href="GUID-AAE1F96F-03A8-36CD-9D3D-AD106B873663.dita"><apiname>TOpenFontGlyphData</apiname></xref>  </p> </entry> <entry><p>Open font glyph information </p> </entry> </row> <row><entry><p> <xref href="GUID-00FAE7BA-3E49-3DF4-923F-DC35A879900C.dita"><apiname>TOpenFontMetrics</apiname></xref>  </p> </entry> <entry><p>Open font information </p> </entry> </row> <row><entry><p> <xref href="GUID-3E94D613-029F-3A6F-B979-C756C745C828.dita"><apiname>TOpenFontSpec</apiname></xref>  </p> </entry> <entry><p>Open font specification </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Font Store tasks</title> <p>The following functionality is provided by the <codeph>fntstore</codeph> subsystem component: </p> <ul><li id="GUID-E851A049-1C7F-513F-8CA8-DDE4A1D5069B"><p> <b>Font loading </b>  </p> <p>Font file loading using plug-in font rasterizers if required. </p> </li> </ul> <ul><li id="GUID-684260D8-4FF2-5099-BF22-FF0A6A56A7A1"><p> <b>Font request matching</b>  </p> <p>Closest-fit matching of font requests. </p> </li> </ul> <ul><li id="GUID-E4C5B016-EF51-5E1F-A3F8-CF455EF5840D"><p> <b> Font linking</b>  </p> <p>The creation and use of <xref href="GUID-5042997F-4B8C-538D-B1E0-DD82F5283BB6.dita">Linked Fonts</xref> – virtual fonts that are made out of one or (usually) more physical fonts. These can be used to: </p> <ul><li id="GUID-693DA237-AFBF-5294-A4A5-854124B2DEA0"><p>Combine multiple character ranges from individual fonts into a single font. </p> </li> <li id="GUID-33B69D75-24FC-567C-AAE6-71222823458A"><p>Allow an existing font containing a particular script to be customized to use regional variant characters. </p> </li> <li id="GUID-4A331581-B834-54C8-82C6-84DC8AD09337"><p>Allow a comprehensive range of scripts to be built into a device ROM and multiple possible subsets to be defined and used by software configuration. </p> </li> </ul> <p>Linked fonts are primarily used for system fonts. The fact that a font is a linked font is invisible to the user. </p> </li> </ul> </section> <section><title>Platform security information</title> <p>Font data files are installed in the read-only folder <codeph>\resource\fonts</codeph>. </p> </section> </conbody><related-links><link href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita"><linktext> Font and Text Services Collection
-                Overview</linktext> </link> <link href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita"><linktext> Font and Bitmap Server Component Overview
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502"><title>Font Store Component Overview</title><shortdesc>The Font Store contains all of the fonts and typefaces on a phone. It is encapsulated by the Font and Bitmap server which provides a client-side class that applications use to find which fonts are available and to find fonts to match their requirements. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Font Store component is sometimes called the <b>Open Font System</b> or <b>Open Font Framework</b>. </p> <section><title>Required background</title> <ul><li id="GUID-5081B96C-4FC7-5881-8D4C-F09B9A843D99"><p>You require no background knowledge or experience use the Font Store using the Font and Bitmap Server interfaces. </p> </li> <li id="GUID-AFE1A3F5-E64C-52F5-AADF-7DF2ECEABF4F"><p>You require no background knowledge or experience to add new font files to the Font Store. You must simply copy the files to the appropriate location. </p> </li> <li id="GUID-A67D26EC-93E2-55F7-9277-24DDAAC1E04B"><p>To create a font file or a font rasterizer, you require an in-depth knowledge of fonts and Symbian programming. </p> </li> </ul> </section> <section><title>Key concepts and terms</title> <p>See <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita#GUID-90644B52-69D7-595C-95E3-D6F7A30C060D/GUID-9F33DD34-F5E5-5EA0-8559-7A933D230129">Concepts and Terms</xref> in the <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita">Font and Text Services Collection Overview</xref>. </p> </section> <section><title>Architectural relationships</title> <p>The Font Store can contain three types of font: bitmap fonts, which are stored as fixed-size pixel definitions; open fonts, which may be stored in any format; and linked fonts, which use characters from two or more other fonts. Open fonts must be converted into bitmaps (rasterized) before they can be used so the Font Store must also contain a font rasterizer for each format of open font. </p> <p>Fonts are stored on Symbian phones as files. The Font Store maintains a list of font files along with specifications for each font that the file contains. When an application requests a font the Font Store searches its list for the best match. If the font is a bitmap font the Font Store loads it into the Font and Bitmap Server's shared heap (unless the font is in eXecute In Place (XIP) ROM, in which case it is accessed directly from ROM). If the font is an open font the Font Store uses the associated open font rasterizer to rasterize glyphs into the heap as they are required. Font rasterizers are ECOM plugins. </p> <fig id="GUID-E823CA77-1B9E-5E0A-BBC3-D99F29D22BBD"><title>
+             Font Store relationships 
+          </title> <image href="GUID-184E301D-78BF-5324-98F6-AD583A875D6E_d0e403005_href.png" placement="inline"/></fig> </section> <section><title>Font Store API summary</title> <p>The Font Store contains APIs for specifying and selecting fonts and for rasterizing open fonts. </p> <table id="GUID-2F133AAE-E960-58A0-84C8-C0807D79FA24"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref>  </p> </entry> <entry><p>Bitmap-based font object </p> </entry> </row> <row><entry><p> <xref href="GUID-54E7330D-F794-39EC-8A59-72669ED5F5CF.dita"><apiname>CFontStore</apiname></xref>  </p> </entry> <entry><p>Central font storage class </p> </entry> </row> <row><entry><p> <xref href="GUID-623C40B5-A8FB-3FEE-9F92-254CAB580C5B.dita"><apiname>CLinkedTypefaceGroup</apiname></xref>  </p> </entry> <entry><p>Linked fonts typeface group </p> </entry> </row> <row><entry><p> <xref href="GUID-6BE49D00-7174-3FEC-A944-FE4A5228C13E.dita"><apiname>CLinkedTypefaceSpecification</apiname></xref>  </p> </entry> <entry><p>Linked font creation </p> </entry> </row> <row><entry><p> <xref href="GUID-DDFD0FCB-8413-3FF2-A8D7-A052C30592C9.dita"><apiname>CLinkedTypefaceElementSpec</apiname></xref>  </p> </entry> <entry><p>Linked font typeface element spec </p> </entry> </row> <row><entry><p> <xref href="GUID-039375D3-AFD9-3E31-9C1C-ACEDC10E27CE.dita"><apiname>COpenFont</apiname></xref>  </p> </entry> <entry><p>Generic outline font object </p> </entry> </row> <row><entry><p> <xref href="GUID-FC62EDD7-A3F7-3611-A899-CA5F17BB2EEE.dita"><apiname>COpenFontFile</apiname></xref>  </p> </entry> <entry><p>Open font file </p> </entry> </row> <row><entry><p> <xref href="GUID-CA16238D-478A-302A-9671-97B62B0E738A.dita"><apiname>COpenFontRasterizer</apiname></xref>  </p> </entry> <entry><p>Open font rasterizer </p> </entry> </row> <row><entry><p> <xref href="GUID-20F3E896-46D2-3385-99E5-2EB19F9D301F.dita"><apiname>COpenFontRasterizerContext</apiname></xref>  </p> </entry> <entry><p>Open font rasterizer context </p> </entry> </row> <row><entry><p> <xref href="GUID-06F847E3-B60B-3159-87FE-66F1F75A36B2.dita"><apiname>TAlgStyle</apiname></xref>  </p> </entry> <entry><p>Algorithmic style attributes </p> </entry> </row> <row><entry><p> <xref href="GUID-56CFD361-6DD7-3C21-81A6-D538FA10EAE7.dita"><apiname>TCharacterMetrics</apiname></xref>  </p> </entry> <entry><p>Character information </p> </entry> </row> <row><entry><p> <xref href="GUID-53F6508E-8911-3363-BC07-A0E7BCE29199.dita"><apiname>TLinkedTypeface</apiname></xref>  </p> </entry> <entry><p>Linked fonts </p> </entry> </row> <row><entry><p> <xref href="GUID-BECBB72B-9FA1-317D-A413-B94AB1DCBE90.dita"><apiname>TOpenFontAttachment</apiname></xref>  </p> </entry> <entry><p>Diacritic attachment point information </p> </entry> </row> <row><entry><p> <xref href="GUID-493119E1-65DF-3517-98A4-55E874023BBB.dita"><apiname>TOpenFontCharMetrics</apiname></xref>  </p> </entry> <entry><p>Open font character metrics </p> </entry> </row> <row><entry><p> <xref href="GUID-2408A284-3F1A-325C-BDCB-5B1B12CDA0C9.dita"><apiname>TOpenFontFaceAttrib</apiname></xref>  </p> </entry> <entry><p>Open font typeface information </p> </entry> </row> <row><entry><p> <xref href="GUID-76FDED57-C10E-3B09-B9C5-0FA1118A2774.dita"><apiname>TOpenFontFaceAttribBase</apiname></xref>  </p> </entry> <entry><p>Basic open font typeface information </p> </entry> </row> <row><entry><p> <xref href="GUID-AAE1F96F-03A8-36CD-9D3D-AD106B873663.dita"><apiname>TOpenFontGlyphData</apiname></xref>  </p> </entry> <entry><p>Open font glyph information </p> </entry> </row> <row><entry><p> <xref href="GUID-00FAE7BA-3E49-3DF4-923F-DC35A879900C.dita"><apiname>TOpenFontMetrics</apiname></xref>  </p> </entry> <entry><p>Open font information </p> </entry> </row> <row><entry><p> <xref href="GUID-3E94D613-029F-3A6F-B979-C756C745C828.dita"><apiname>TOpenFontSpec</apiname></xref>  </p> </entry> <entry><p>Open font specification </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Font Store tasks</title> <p>The following functionality is provided by the <codeph>fntstore</codeph> subsystem component: </p> <ul><li id="GUID-E851A049-1C7F-513F-8CA8-DDE4A1D5069B"><p> <b>Font loading </b>  </p> <p>Font file loading using plug-in font rasterizers if required. </p> </li> </ul> <ul><li id="GUID-684260D8-4FF2-5099-BF22-FF0A6A56A7A1"><p> <b>Font request matching</b>  </p> <p>Closest-fit matching of font requests. </p> </li> </ul> <ul><li id="GUID-E4C5B016-EF51-5E1F-A3F8-CF455EF5840D"><p> <b> Font linking</b>  </p> <p>The creation and use of <xref href="GUID-5042997F-4B8C-538D-B1E0-DD82F5283BB6.dita">Linked Fonts</xref> – virtual fonts that are made out of one or (usually) more physical fonts. These can be used to: </p> <ul><li id="GUID-693DA237-AFBF-5294-A4A5-854124B2DEA0"><p>Combine multiple character ranges from individual fonts into a single font. </p> </li> <li id="GUID-33B69D75-24FC-567C-AAE6-71222823458A"><p>Allow an existing font containing a particular script to be customized to use regional variant characters. </p> </li> <li id="GUID-4A331581-B834-54C8-82C6-84DC8AD09337"><p>Allow a comprehensive range of scripts to be built into a device ROM and multiple possible subsets to be defined and used by software configuration. </p> </li> </ul> <p>Linked fonts are primarily used for system fonts. The fact that a font is a linked font is invisible to the user. </p> </li> </ul> </section> <section><title>Platform security information</title> <p>Font data files are installed in the read-only folder <codeph>\resource\fonts</codeph>. </p> </section> </conbody><related-links><link href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita"><linktext> Font and Text Services Collection
+                Overview</linktext> </link> <link href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita"><linktext> Font and Bitmap Server Component Overview
                 </linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF"><title>Recording media files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can use the MVS to record audio or video signals to media files. To record an audio signal, first connect a microphone; to record a video signal, connect a camera. </p> <p>To record a media file, choosing the plugin controller: </p> <ol id="GUID-21FF8CB3-6ABF-57EA-9438-F67C05C0F267"><li id="GUID-E630FEB5-CB97-5D45-A86B-38F9517810AA"><p>In the <i>File</i> menu, click <i>Open for Record</i>. The <i>Choose a plugin</i> dialog box is displayed. </p> <fig id="GUID-AA9201C4-D27E-55F3-886E-1DD6434ED74A"><title>
-                Choosing a format when recording audio 
-             </title> <image href="GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e329126_href.jpg" placement="inline"/></fig> <p> <b>Note:</b> If you don't want to choose a plugin controller manually, click <i>Cancel</i> in the <i>Choose a plugin</i> dialog box: the <i>Save as</i> dialog box is displayed. In the <i>Save as</i> dialog box, enter the target file name <b>including</b> its extension; the controller appropriate to the extension is loaded automatically. If there is no appropriate controller, a <systemoutput>Not Supported</systemoutput> message is displayed. </p> </li> <li id="GUID-DB6C4923-F8E3-5A1B-8DDF-AE2F7340F16F"><p>Select the <i>Media Type</i> to record by clicking either the <i>Audio</i> or <i>Video</i> option button. </p> </li> <li id="GUID-2816B901-71F7-5312-987B-71663C56F21D"><p>Select the <i>Supported Format</i> from the drop-down list. The corresponding plugin <i>Controller</i> is selected automatically. </p> <p> <i>Note</i>: To check which controllers are supported by the system: </p> <ul><li id="GUID-3B711334-11F3-5897-BF48-3797B037F1FA"><p>In the <i>File</i> menu, click <i>System Info</i>. The controllers are listed: </p> </li> </ul> <fig id="GUID-1EA1C9FF-9418-5A0F-B6BD-10823AB02782"><image href="GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e329197_href.jpg" placement="inline"/></fig> </li> <li id="GUID-2686BEA7-6C48-5947-A973-20D2C08C6F0A"><p>Click <i>Next</i>. The <i>Save as</i> dialog box is displayed. </p> </li> <li id="GUID-AD83CA64-2516-5B01-BEAC-1214E3186A47"><p>In the dialog box, enter the names of the disk drive and folder to contain the file, or select them from the lists. </p> </li> <li id="GUID-4C9BB013-9929-52FF-8745-9AA8CF2798CF"><p>In the dialog box, enter the name of the file, without an extension, to contain the recorded audio or video. </p> </li> <li id="GUID-1D722345-887C-5452-B92B-A1A5B7A444AE"><p>Click <i>OK</i> to save the file. </p> </li> </ol> <p>The next steps depend on whether you are <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita#GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF/GUID-0D57579C-C574-5949-BBE4-CCFEC4CD9895">Recording an audio file</xref> or <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita#GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF/GUID-9DBC71E1-7258-5ED7-A281-DBB693B7EBF3">Recording a video file</xref>. </p> <section id="GUID-0D57579C-C574-5949-BBE4-CCFEC4CD9895"><title>Recording an audio file</title> <p>If you are recording an audio file, the <i>Configure Audio Format</i> dialog box is displayed. </p> <fig id="GUID-C0681190-3134-50E1-BDAD-D3B1CC47DDDC"><image href="GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e329250_href.jpg" placement="inline"/></fig> <ol id="GUID-2FACE122-52A6-5949-8045-2E507A56825D"><li id="GUID-82109DB5-6DBF-5B6D-8648-BA67E54456BE"><p>In the dialog box, select: </p> <ul><li id="GUID-D05A0ECE-31DE-5956-BE66-7A038DC2521B"><p>the codec </p> </li> <li id="GUID-F0FA4CF0-D170-5C30-989C-DBE687FCB84F"><p>the bit rate </p> </li> <li id="GUID-6CFA67A1-8382-5923-8C43-3D8B0205E50A"><p>the number of channels (1 = mono, 2 = stereo) </p> </li> <li id="GUID-7F1240FF-095B-5797-B58D-A59016B2A4DE"><p>the sample rate in bits per second. </p> </li> </ul> </li> <li id="GUID-47E557A2-EBA9-5D1B-95AE-CC526D0E2E27"><p>If required, click the <i>Restore Settings</i> check box to restore the previous settings or - if there are none - the default settings. </p> </li> <li id="GUID-7B1E1951-8BB7-5FDE-A42C-EB4F5EA0B3F7"><p>Click <i>OK</i> to save the settings. </p> </li> <li id="GUID-8D27C825-F2A0-565D-A8CF-5574E409C25A"><p>To start recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> </li> </ol> </section> <section id="GUID-9DBC71E1-7258-5ED7-A281-DBB693B7EBF3"><title>Recording a video file</title> <p>If you are recording a video file, the <i>Standard Video Record format</i> dialog box is displayed. </p> <fig id="GUID-932B7767-3A96-52EF-A7E5-AADAEAB689C9"><image href="GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e329323_href.jpg" placement="inline"/></fig> <ol id="GUID-5C816EB4-24E7-5698-B43C-9DDF6A535283"><li id="GUID-993FDFAD-5BD8-57C9-AD67-ED66C0CB8A8C"><p>In the dialog box, select: </p> <ul><li id="GUID-957F8EC1-905D-5BBB-96CD-A27E928C75C6"><p>the video mime type </p> </li> <li id="GUID-A57D4FDA-FC81-5551-9FED-3199E16315A0"><p>the video frame rate </p> </li> <li id="GUID-24B2A5F5-7C3B-5F5A-B4CE-C4899F3B527C"><p>the video frame size in pixels (width, height). </p> </li> </ul> </li> <li id="GUID-31F7C6FD-9084-5345-8D6C-E87BE0D180E7"><p>To record audio with the video signal, click the <i>Enable Audio</i> check box. </p> </li> <li id="GUID-6E508C9D-2451-59EA-80FE-F6B2678BC702"><p>If required, click the <i>Restore Settings</i> check box to restore the previous settings or - if there are none - the default settings. </p> </li> <li id="GUID-A55FBF03-BE08-51E6-9D8C-830C863505B1"><p>Click <i>OK</i> to save the settings. </p> </li> <li id="GUID-4020A3B4-7357-59E8-A03F-15664C68BA8E"><p>To start recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> <ul><li id="GUID-E9165BDC-0EF6-5B72-A3C6-2F8E12933613"><p>To pause recording, click the tool bar <i>Pause</i> button, or in the <i>Controls</i> menu, click <i>Pause</i>. To un-pause the file and resume recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> </li> <li id="GUID-4C1D6B0F-F080-5329-9F66-AB03010BA7A7"><p>To stop recording, click the tool bar <i>Stop</i> button, or in the <i>Controls</i> menu, click <i>Stop</i>. </p> </li> </ul> </li> </ol> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF"><title>Recording media files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can use the MVS to record audio or video signals to media files. To record an audio signal, first connect a microphone; to record a video signal, connect a camera. </p> <p>To record a media file, choosing the plugin controller: </p> <ol id="GUID-21FF8CB3-6ABF-57EA-9438-F67C05C0F267"><li id="GUID-E630FEB5-CB97-5D45-A86B-38F9517810AA"><p>In the <i>File</i> menu, click <i>Open for Record</i>. The <i>Choose a plugin</i> dialog box is displayed. </p> <fig id="GUID-AA9201C4-D27E-55F3-886E-1DD6434ED74A"><title>
+                Choosing a format when recording audio 
+             </title> <image href="GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e322969_href.jpg" placement="inline"/></fig> <p> <b>Note:</b> If you don't want to choose a plugin controller manually, click <i>Cancel</i> in the <i>Choose a plugin</i> dialog box: the <i>Save as</i> dialog box is displayed. In the <i>Save as</i> dialog box, enter the target file name <b>including</b> its extension; the controller appropriate to the extension is loaded automatically. If there is no appropriate controller, a <systemoutput>Not Supported</systemoutput> message is displayed. </p> </li> <li id="GUID-DB6C4923-F8E3-5A1B-8DDF-AE2F7340F16F"><p>Select the <i>Media Type</i> to record by clicking either the <i>Audio</i> or <i>Video</i> option button. </p> </li> <li id="GUID-2816B901-71F7-5312-987B-71663C56F21D"><p>Select the <i>Supported Format</i> from the drop-down list. The corresponding plugin <i>Controller</i> is selected automatically. </p> <p> <i>Note</i>: To check which controllers are supported by the system: </p> <ul><li id="GUID-3B711334-11F3-5897-BF48-3797B037F1FA"><p>In the <i>File</i> menu, click <i>System Info</i>. The controllers are listed: </p> </li> </ul> <fig id="GUID-1EA1C9FF-9418-5A0F-B6BD-10823AB02782"><image href="GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e323040_href.jpg" placement="inline"/></fig> </li> <li id="GUID-2686BEA7-6C48-5947-A973-20D2C08C6F0A"><p>Click <i>Next</i>. The <i>Save as</i> dialog box is displayed. </p> </li> <li id="GUID-AD83CA64-2516-5B01-BEAC-1214E3186A47"><p>In the dialog box, enter the names of the disk drive and folder to contain the file, or select them from the lists. </p> </li> <li id="GUID-4C9BB013-9929-52FF-8745-9AA8CF2798CF"><p>In the dialog box, enter the name of the file, without an extension, to contain the recorded audio or video. </p> </li> <li id="GUID-1D722345-887C-5452-B92B-A1A5B7A444AE"><p>Click <i>OK</i> to save the file. </p> </li> </ol> <p>The next steps depend on whether you are <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita#GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF/GUID-0D57579C-C574-5949-BBE4-CCFEC4CD9895">Recording an audio file</xref> or <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita#GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF/GUID-9DBC71E1-7258-5ED7-A281-DBB693B7EBF3">Recording a video file</xref>. </p> <section id="GUID-0D57579C-C574-5949-BBE4-CCFEC4CD9895"><title>Recording an audio file</title> <p>If you are recording an audio file, the <i>Configure Audio Format</i> dialog box is displayed. </p> <fig id="GUID-C0681190-3134-50E1-BDAD-D3B1CC47DDDC"><image href="GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e323093_href.jpg" placement="inline"/></fig> <ol id="GUID-2FACE122-52A6-5949-8045-2E507A56825D"><li id="GUID-82109DB5-6DBF-5B6D-8648-BA67E54456BE"><p>In the dialog box, select: </p> <ul><li id="GUID-D05A0ECE-31DE-5956-BE66-7A038DC2521B"><p>the codec </p> </li> <li id="GUID-F0FA4CF0-D170-5C30-989C-DBE687FCB84F"><p>the bit rate </p> </li> <li id="GUID-6CFA67A1-8382-5923-8C43-3D8B0205E50A"><p>the number of channels (1 = mono, 2 = stereo) </p> </li> <li id="GUID-7F1240FF-095B-5797-B58D-A59016B2A4DE"><p>the sample rate in bits per second. </p> </li> </ul> </li> <li id="GUID-47E557A2-EBA9-5D1B-95AE-CC526D0E2E27"><p>If required, click the <i>Restore Settings</i> check box to restore the previous settings or - if there are none - the default settings. </p> </li> <li id="GUID-7B1E1951-8BB7-5FDE-A42C-EB4F5EA0B3F7"><p>Click <i>OK</i> to save the settings. </p> </li> <li id="GUID-8D27C825-F2A0-565D-A8CF-5574E409C25A"><p>To start recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> </li> </ol> </section> <section id="GUID-9DBC71E1-7258-5ED7-A281-DBB693B7EBF3"><title>Recording a video file</title> <p>If you are recording a video file, the <i>Standard Video Record format</i> dialog box is displayed. </p> <fig id="GUID-932B7767-3A96-52EF-A7E5-AADAEAB689C9"><image href="GUID-07B6D7EE-575A-5E8E-A2BB-8893F84F7F6D_d0e323166_href.jpg" placement="inline"/></fig> <ol id="GUID-5C816EB4-24E7-5698-B43C-9DDF6A535283"><li id="GUID-993FDFAD-5BD8-57C9-AD67-ED66C0CB8A8C"><p>In the dialog box, select: </p> <ul><li id="GUID-957F8EC1-905D-5BBB-96CD-A27E928C75C6"><p>the video mime type </p> </li> <li id="GUID-A57D4FDA-FC81-5551-9FED-3199E16315A0"><p>the video frame rate </p> </li> <li id="GUID-24B2A5F5-7C3B-5F5A-B4CE-C4899F3B527C"><p>the video frame size in pixels (width, height). </p> </li> </ul> </li> <li id="GUID-31F7C6FD-9084-5345-8D6C-E87BE0D180E7"><p>To record audio with the video signal, click the <i>Enable Audio</i> check box. </p> </li> <li id="GUID-6E508C9D-2451-59EA-80FE-F6B2678BC702"><p>If required, click the <i>Restore Settings</i> check box to restore the previous settings or - if there are none - the default settings. </p> </li> <li id="GUID-A55FBF03-BE08-51E6-9D8C-830C863505B1"><p>Click <i>OK</i> to save the settings. </p> </li> <li id="GUID-4020A3B4-7357-59E8-A03F-15664C68BA8E"><p>To start recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> <ul><li id="GUID-E9165BDC-0EF6-5B72-A3C6-2F8E12933613"><p>To pause recording, click the tool bar <i>Pause</i> button, or in the <i>Controls</i> menu, click <i>Pause</i>. To un-pause the file and resume recording, click the tool bar <i>Record</i> button, or in the <i>Controls</i> menu, click <i>Record</i>. </p> </li> <li id="GUID-4C1D6B0F-F080-5329-9F66-AB03010BA7A7"><p>To stop recording, click the tool bar <i>Stop</i> button, or in the <i>Controls</i> menu, click <i>Stop</i>. </p> </li> </ul> </li> </ol> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2777_href.png has changed
Binary file Symbian3/SDK/Source/GUID-41A53C1F-E9BF-420F-A967-83906299FE8B_d0e2879_href.png has changed
Binary file Symbian3/SDK/Source/GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e300969_href.png has changed
Binary file Symbian3/SDK/Source/GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e306996_href.png has changed
--- a/Symbian3/SDK/Source/GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,79 +1,79 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6" xml:lang="en"><title>Listening
-for scrollbar touch events</title><shortdesc>If your custom control contains a scrollbar, you need to listen
-for touch events in the scrollbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>For custom controls that override <codeph>CCoeControl::HandleScrollEventL()</codeph>,
-you must also call the base class implementation of the function.</p>
-<fig id="GUID-ECD9B9C0-0134-4D8A-B350-A797A5C1BE0F">
-<title>Scrollbar</title>
-<image href="GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e43877_href.png" scale="40" placement="inline"/>
-</fig>
-<p>For an implementation example, see below.</p>
-<codeblock xml:space="preserve">void CMyContainerControl::HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType )
-    {
-    if( !aScrollBar )
-        {
-        return;
-        }
-
-    TInt newPosition = aScrollBar-&gt;ThumbPosition();
-    
-    switch( aEventType )
-        {
-        case EEikScrollUp: // Moving up one step
-            {
-            MoveFocusUpL();
-            break;
-            }
-        case EEikScrollDown: // Moving down one step
-            {
-            MoveFocusDownL();
-            break;
-            }
-        case EEikScrollThumbDragVert: // Drag started
-        case EEikScrollThumbReleaseVert: // Drag released
-            {
-            if( newPosition &lt; iFocusedIndex )
-                {
-                MoveFocusUpL();
-                }
-            else if( newPosition &gt; iFocusedIndex )
-                {
-                MoveFocusDownL();
-                }
-            break;
-            }
-        case EEikScrollPageUp:
-            {
-            while( newPosition &lt; iFocusedIndex )
-                {
-                MoveFocusUpL();
-                }
-            break;
-            }
-        case EEikScrollPageDown:
-            {
-            while( newPosition &gt; iFocusedIndex )
-                {
-                MoveFocusDownL();
-                }
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    DrawNow();
-    }</codeblock>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6" xml:lang="en"><title>Listening
+for scrollbar touch events</title><shortdesc>If your custom control contains a scrollbar, you need to listen
+for touch events in the scrollbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>For custom controls that override <codeph>CCoeControl::HandleScrollEventL()</codeph>,
+you must also call the base class implementation of the function.</p>
+<fig id="GUID-ECD9B9C0-0134-4D8A-B350-A797A5C1BE0F">
+<title>Scrollbar</title>
+<image href="GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e38310_href.png" scale="40" placement="inline"/>
+</fig>
+<p>For an implementation example, see below.</p>
+<codeblock xml:space="preserve">void CMyContainerControl::HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType )
+    {
+    if( !aScrollBar )
+        {
+        return;
+        }
+
+    TInt newPosition = aScrollBar-&gt;ThumbPosition();
+    
+    switch( aEventType )
+        {
+        case EEikScrollUp: // Moving up one step
+            {
+            MoveFocusUpL();
+            break;
+            }
+        case EEikScrollDown: // Moving down one step
+            {
+            MoveFocusDownL();
+            break;
+            }
+        case EEikScrollThumbDragVert: // Drag started
+        case EEikScrollThumbReleaseVert: // Drag released
+            {
+            if( newPosition &lt; iFocusedIndex )
+                {
+                MoveFocusUpL();
+                }
+            else if( newPosition &gt; iFocusedIndex )
+                {
+                MoveFocusDownL();
+                }
+            break;
+            }
+        case EEikScrollPageUp:
+            {
+            while( newPosition &lt; iFocusedIndex )
+                {
+                MoveFocusUpL();
+                }
+            break;
+            }
+        case EEikScrollPageDown:
+            {
+            while( newPosition &gt; iFocusedIndex )
+                {
+                MoveFocusDownL();
+                }
+            break;
+            }
+        default:
+            {
+            break;
+            }
+        }
+    DrawNow();
+    }</codeblock>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e287092_href.png has changed
Binary file Symbian3/SDK/Source/GUID-42609A21-CEDC-58E8-864C-0CF8458F6798_d0e290725_href.png has changed
--- a/Symbian3/SDK/Source/GUID-42833109-F8C2-57FC-9995-0461698A19FF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-42833109-F8C2-57FC-9995-0461698A19FF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-42833109-F8C2-57FC-9995-0461698A19FF" xml:lang="en"><title>IMAP4
-Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the Internet Message Access Protocol (IMAP4) and
-its implementation on the Symbian platform. </p>
-<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-8-1-16-1-1-6-1-5-1-4-1-2-2"><title>IMAP4 protocol</title> <p>IMAP4
-is one of the most common Internet standard protocols for retrieving emails.
-It is an application layer Internet protocol operating on port 143 that allows
-a local client to access email on a remote server. </p> <p>The current version,
-IMAP version 4 revision 1 (IMAP4rev1), is defined by RFC 3501. Eariler, IMAP4
-was called Internet Mail Access Protocol, Interactive Mail Access Protocol
-(RFC 1064), and Interim Mail Access Protocol. </p> <p>The default port for
-IMAP4 to download messages is 143, but if a client establishes a secure connection
-(over SSL or TLS) for IMAP4 to download message, the port is 993. </p> <p>Most
-email clients support either POP3 or IMAP to retrieve messages; however, few
-Internet Service Providers (ISPs) support IMAP. IMAP4 supports access to the
-mail store in both modes of operation—connected (online) and disconnected
-(offline). </p> <p>Emails are generally sent to an email server that stores
-received messages in the recipient's email mailbox. The user later retrieves
-these messages with either a web browser or an email client that uses one
-of a number of email retrieval protocols. </p> <p>Email clients using IMAP4
-generally stores messages on the server until the user explicitly deletes
-them. This allows multiple clients to access the same mailbox. However, the
-client may store local copies of the messages, but these are considered to
-be a temporary cache; the server's store is authoritative. </p> </section>
-<section id="GUID-6162DB96-ED81-4AA4-B737-8298DC0A94D1"><title>Symbian platform implementation of IMAP4</title> <p>The Messaging
-Application module has implemented all the functionality of standard IMAP4
-and conforms to RFC3501. </p> </section>
-<section id="GUID-572840C2-0ECC-4925-A42D-093E0043E07F"><title>IMAP4 example</title> <p>For more details on implementing
-the IMAP4 MTM functions, see <xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">example
-code</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita"><linktext>IMAP4 MTM</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-42833109-F8C2-57FC-9995-0461698A19FF" xml:lang="en"><title>IMAP4
+Concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the Internet Message Access Protocol (IMAP4) and
+its implementation on the Symbian platform. </p>
+<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-10-1-17-1-1-6-1-5-1-4-1-2-2"><title>IMAP4 protocol</title> <p>IMAP4
+is one of the most common Internet standard protocols for retrieving emails.
+It is an application layer Internet protocol operating on port 143 that allows
+a local client to access email on a remote server. </p> <p>The current version,
+IMAP version 4 revision 1 (IMAP4rev1), is defined by RFC 3501. Eariler, IMAP4
+was called Internet Mail Access Protocol, Interactive Mail Access Protocol
+(RFC 1064), and Interim Mail Access Protocol. </p> <p>The default port for
+IMAP4 to download messages is 143, but if a client establishes a secure connection
+(over SSL or TLS) for IMAP4 to download message, the port is 993. </p> <p>Most
+email clients support either POP3 or IMAP to retrieve messages; however, few
+Internet Service Providers (ISPs) support IMAP. IMAP4 supports access to the
+mail store in both modes of operation—connected (online) and disconnected
+(offline). </p> <p>Emails are generally sent to an email server that stores
+received messages in the recipient's email mailbox. The user later retrieves
+these messages with either a web browser or an email client that uses one
+of a number of email retrieval protocols. </p> <p>Email clients using IMAP4
+generally stores messages on the server until the user explicitly deletes
+them. This allows multiple clients to access the same mailbox. However, the
+client may store local copies of the messages, but these are considered to
+be a temporary cache; the server's store is authoritative. </p> </section>
+<section id="GUID-6162DB96-ED81-4AA4-B737-8298DC0A94D1"><title>Symbian platform implementation of IMAP4</title> <p>The Messaging
+Application module has implemented all the functionality of standard IMAP4
+and conforms to RFC3501. </p> </section>
+<section id="GUID-572840C2-0ECC-4925-A42D-093E0043E07F"><title>IMAP4 example</title> <p>For more details on implementing
+the IMAP4 MTM functions, see <xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">example
+code</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita"><linktext>IMAP4 MTM</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e15936_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e46282_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e51838_href.png has changed
Binary file Symbian3/SDK/Source/GUID-431119D1-1B55-4503-905E-6E290FA241CE-master.png has changed
Binary file Symbian3/SDK/Source/GUID-431119D1-1B55-4503-905E-6E290FA241CE_d0e63537_href.png has changed
Binary file Symbian3/SDK/Source/GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e303218_href.png has changed
Binary file Symbian3/SDK/Source/GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e309233_href.png has changed
--- a/Symbian3/SDK/Source/GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6" xml:lang="en"><title>Grid
-query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Instead of a list, a grid can be used in a query. The Grid query function
-is otherwise identical to a <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita"> List
-query</xref>.</p>
-<fig id="GUID-1C82CBB6-B24C-483D-8F04-3FC90BF219C1">
-<title>Grid query</title>
-<image href="GUID-08937880-C381-4C8B-AC17-7162C1243E23_d0e68807_href.png" scale="40" placement="inline"/>
-</fig>
-<section><title>Using grid queries in
-C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6" xml:lang="en"><title>Grid
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Instead of a list, a grid can be used in a query. The Grid query function
+is otherwise identical to a <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita"> List
+query</xref>.</p>
+<fig id="GUID-1C82CBB6-B24C-483D-8F04-3FC90BF219C1">
+<title>Grid query</title>
+<image href="GUID-BE66CF87-E750-40BE-A5EB-18A43E927257_d0e63571_href.png" placement="inline"/>
+</fig>
+<section id="GUID-A63A7EDC-659E-4A86-B4B5-CCA0FCECBDE6"><title>Using
+grid queries in applications</title><p>For implementation information,
+see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4352F2A7-2498-40AA-A335-4A8407497976.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4352F2A7-2498-40AA-A335-4A8407497976" xml:lang="en"><title>Basic
-interaction style</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The basic interaction principles of the Symbian platform in the bottom
-softkey style remain similar to the legacy Symbian UI style. This applies
-to keypad functions, typical functions of the keys, navigation (both in terms
-of hierarchies, and the scroll and select behavior), and so on.</p>
-<p>As in the legacy UI style, the scrolling in the software follows the visual
-direction of the respective scroll keys.</p>
-<p>Similarly, other visual UI controls of scroll keys rotate together with
-the UI. For example, this applies to the Volume Control component which is
-vertical also in landscape mode.</p>
-<note><p>In some product concepts, using the Numeric keys and some of the
-navigation keys may be disabled while in the bottom softkey mode. This may
-mean that some applications or features (such as editing) are not usable at
-all in one of the modes.</p></note>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e332416_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e338573_href.png has changed
Binary file Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36160_href.png has changed
Binary file Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e36212_href.png has changed
Binary file Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41727_href.png has changed
Binary file Symbian3/SDK/Source/GUID-43A701DC-24FF-44F7-850B-AA6A79235B56_d0e41779_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2" xml:lang="en"><title>CEikListBox</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><codeph>CEikListBox</codeph> provides flags that have to
-be set for every list or grid that requires specific touch-related functionality.</p>
-<table id="GUID-D747F87E-DB3C-4ECE-890C-D3B342FCD8E2"><title>Touch-related
-flags in CEikListBox</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.73*"/><colspec colname="col2" colwidth="1.27*"/>
-<thead>
-<row>
-<entry valign="top"> <p>Flag</p> </entry>
-<entry valign="top"> <p>Functionality</p> </entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry> <p><codeph>EAknListBoxStylusMultiselectionList</codeph></p> </entry>
-<entry> <p>It enables touch for multi-selection lists.</p> </entry>
-</row>
-<row>
-<entry> <p><codeph>EAknListBoxStylusMarkableList</codeph></p> </entry>
-<entry> <p>It enables touch for markable lists or markable grids (<codeph>CAknGrid</codeph>).</p> </entry>
-</row>
-<row>
-<entry> <p><codeph>EAknListBoxItemSpecificMenuDisabled </codeph></p> </entry>
-<entry> <p>This flag has been introduced for single-click. It disables item-specific
-menu for single-click.</p> </entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2" xml:lang="en"><title>Touch support in lists</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><codeph>CEikListBox</codeph> provides flags that have to be set
+for every list or grid that requires specific touch-related functionality.</p>
+<table id="GUID-D747F87E-DB3C-4ECE-890C-D3B342FCD8E2"><title>Touch-related
+flags in CEikListBox</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.73*"/><colspec colname="col2" colwidth="1.27*"/>
+<thead>
+<row>
+<entry valign="top"> <p>Flag</p> </entry>
+<entry valign="top"> <p>Functionality</p> </entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry> <p><codeph>EAknListBoxStylusMultiselectionList</codeph></p> </entry>
+<entry> <p>It enables touch for multi-selection lists.</p> </entry>
+</row>
+<row>
+<entry> <p><codeph>EAknListBoxStylusMarkableList</codeph></p> </entry>
+<entry> <p>It enables touch for markable lists or markable grids (<codeph>CAknGrid</codeph>).</p> </entry>
+</row>
+<row>
+<entry> <p><codeph>EAknListBoxItemSpecificMenuDisabled </codeph></p> </entry>
+<entry> <p>This flag has been introduced for single tap. It disables
+item-specific menu for single tap.</p> </entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e244320_href.png has changed
Binary file Symbian3/SDK/Source/GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e248057_href.png has changed
Binary file Symbian3/SDK/Source/GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406701_href.png has changed
Binary file Symbian3/SDK/Source/GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406863_href.png has changed
Binary file Symbian3/SDK/Source/GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e115760_href.png has changed
Binary file Symbian3/SDK/Source/GUID-44ADB485-69C2-5557-AB95-3B6D20870F73_d0e122298_href.png has changed
--- a/Symbian3/SDK/Source/GUID-44B0C58F-B938-4F69-B80A-1EB632EFD434.ditamap	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6561 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Arbortext, Inc., 1988-2004, v.4002-->
-<!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN"
- "bookmap.dtd">
-<!-- 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" 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: 
--->
-<bookmap id="GUID-44B0C58F-B938-4F69-B80A-1EB632EFD434">
-<booktitle><mainbooktitle>Symbian Developer Library for Application Developers</mainbooktitle>
-<booktitlealt>Symbian Developer Library for Application Developers</booktitlealt>
-</booktitle>
-<frontmatter id="GUID-DA857913-F826-4CF7-A135-93F2AEB48353">
-<topicref href="GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB.dita" id="GUID-F0EE97CA-CB6C-4D9D-82CE-08588C340A02"
-print="no" toc="no" type="cover"></topicref>
-<notices href="GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D.dita" id="GUID-4E816009-AE0E-4F68-B5AB-0A2DDD1D335D"
-type="legal"></notices>
-</frontmatter>
-<chapter href="GUID-00113601-193D-5214-9DFB-1C67456B7039.dita" id="GUID-55E75BAA-C082-4567-89F3-EC7C9C27851A">
-<topicref href="GUID-A24491E4-867F-4006-9798-07281553EA51.dita" id="GUID-90F54E87-EDE2-4EC5-915B-2123857BF83E">
-</topicref>
-<topicref href="GUID-2DC89F9D-30E8-5260-8850-53E4152EE3CF.dita" id="GUID-03988776-D184-4A09-BC8B-9946C3874380">
-</topicref>
-<topicref href="GUID-BF990E15-8B41-5C34-8CE0-04660A475043.dita" id="GUID-BF9EAAE4-B4EA-41AF-A029-F6E39473823B">
-<topicref href="GUID-5F822B8B-3440-5AA3-998E-B15E929F7A70.dita" id="GUID-833FB279-04D5-42D9-B936-3555907AB515">
-</topicref>
-<topicref href="GUID-6FA036F6-F4C7-50CA-B08F-7D5F8B7FB6B5.dita" id="GUID-D469D893-B087-4124-A62D-6513E21E0BA5">
-</topicref>
-</topicref>
-<topicref href="GUID-F18823F8-288A-4163-985E-6E22CC2CFD60.dita" id="GUID-DAD064B7-B412-4887-ADF9-01F61816F6B6">
-</topicref>
-</chapter>
-<chapter href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita" id="GUID-81BFA723-D773-44C5-AFD3-6FD7C8A3B78F">
-<topicref href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita" id="GUID-F1B62A11-207A-4D99-98F6-6D8C8CA8D573">
-</topicref>
-<topicref href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita" id="GUID-B8DCC2A3-A9E6-46C6-A69C-FED8BE99DD3F">
-</topicref>
-<topicref href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita" id="GUID-36A90676-D414-4B66-8141-1FCA3C5897CE">
-</topicref>
-<topicref href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita" id="GUID-5E5A8131-98F8-451A-BFC9-B0427CF76479">
-<topicref href="GUID-165EE4DD-C9CA-430B-8377-068A4194716E.dita" id="GUID-BC20A326-DCE1-41C3-A9DA-C792CB63925F">
-<topicref href="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita" id="GUID-27267635-B1B0-42CF-BE44-E4EE5095FB7B">
-</topicref>
-<topicref href="GUID-244631CF-03F9-4C48-9802-682A76E9ECCC.dita" id="GUID-4F81AA84-0FD5-44C6-A57C-F039B4765F01">
-</topicref>
-<topicref href="GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita" id="GUID-7BC7BEA4-B1B6-4675-94ED-6A7345115D5E">
-</topicref>
-<topicref href="GUID-361BB951-DB74-4D83-ACFC-812383C8129C.dita" id="GUID-7B72E898-8322-4BAC-8EC3-5478ECC239DB">
-</topicref>
-<topicref href="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita" id="GUID-1676A159-3ACF-4842-B9E7-309FE034C32E">
-</topicref>
-<topicref href="GUID-2131E679-779D-427D-BD41-47D9949A8749.dita" id="GUID-E3DD1591-B217-4CDC-AAE1-032C5B12F40E">
-<topicref href="GUID-D7E279EE-05F5-4E82-AF25-1E10FF50FABA.dita" id="GUID-90FF09BE-DB9D-4898-9926-BE9F09EB8B2F">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-CFC21A23-0299-4420-BB60-584D10C8913A.dita" id="GUID-3513DAF4-E4D6-4363-A2B8-1860D95BFB4E">
-</topicref>
-</topicref>
-</chapter>
-<chapter href="GUID-AFAD9FAE-D09B-4778-8981-47A8073BC044.dita" id="GUID-50125E2C-3375-4610-9B4C-FB3351493F33">
-<topicref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita" id="GUID-56EB59EA-0711-4112-8860-D041BF02B7E5">
-</topicref>
-<topicref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita" id="GUID-1081AD19-4ABF-4EC1-A4D8-1AFDE793EA30">
-</topicref>
-</chapter>
-<chapter href="GUID-35D7EEFC-B2E4-5444-8875-2A24790E08C2.dita" id="GUID-1658EF0B-62F9-4024-B129-623340940759">
-<topicref href="GUID-9BADA8E9-15AA-5867-BF14-DB8C4D9B40A6.dita" id="GUID-C05FE964-699A-43FF-A6A0-357CF7A5DBF1">
-</topicref>
-<topicref href="GUID-79E8BE3D-9EF7-5275-A245-3CF689E58DE9.dita" id="GUID-6E1B107A-1BE7-4A37-8E1D-BB1BACDAA36F">
-</topicref>
-<topicref href="GUID-2458916B-55B2-5E08-A825-4EBDB3503E67.dita" id="GUID-6ABFCD37-BF7D-43BA-B996-24651D905CB6">
-</topicref>
-<topicref href="GUID-8675AC01-E2D8-425C-899F-12BE99345AA9.dita" id="GUID-B94070EF-8121-4209-A0B3-B88741FC1EB1">
-</topicref>
-<topicref href="GUID-348E8B54-88D9-5D66-AD11-09131EC387F9.dita" id="GUID-8832066D-1BE3-4871-9785-81787A87B41D">
-</topicref>
-<topicref href="GUID-1FFE4ED5-7B2E-58A0-9D08-A096F53F37AB.dita" id="GUID-F4A4FCB2-F003-48D2-BD47-CDCD9A756A20">
-</topicref>
-<topicref href="GUID-9E0DCB19-5775-5E23-B758-163D747A71C9.dita" id="GUID-5ACFC35E-8E10-411A-A334-EDC07B29999F">
-</topicref>
-<topicref href="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita" id="GUID-5292CB9A-FAFA-498B-9FC1-848FB77D4984">
-</topicref>
-<topicref href="GUID-497930CE-4D61-50EE-A63B-3656158EE29C.dita" id="GUID-1CA6A124-EDE6-4F18-86FB-3BAE48709D28">
-</topicref>
-<topicref href="GUID-12FF05BE-F06E-58F0-909D-05CB6F7FA03E.dita" id="GUID-AD2D939C-C1E3-4C3D-9354-233B3BBF4E02">
-</topicref>
-<topicref href="GUID-D5FD665E-333B-50FF-A46F-6B22C0877285.dita" id="GUID-5E831A4E-BD5E-4B58-9305-B2E9F3462F7B">
-</topicref>
-<topicref href="GUID-5BDE6462-E6CA-5738-A587-C7D875574789.dita" id="GUID-79B35CA3-03EA-4116-A3E8-1F053BF83544">
-</topicref>
-<topicref href="GUID-93086866-F6E1-5715-A3BE-EEACF8A760DB.dita" id="GUID-AAA5A68D-699B-4424-9B34-39703900A8BB">
-</topicref>
-<topicref href="GUID-7767640D-5DD0-563B-8EE7-5C3EAEDBF859.dita" id="GUID-CEB04C37-032E-4C70-B66B-03D781FDCB01">
-</topicref>
-<topicref href="GUID-16A1C613-288D-471C-8551-51B61290E28F.dita" id="GUID-695E311D-ED7B-4A8B-9B18-B7826D887F52">
-</topicref>
-<topicref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita" id="GUID-8A1040BE-0C2F-4B34-A893-01B4FF7CCB36">
-</topicref>
-<topicref href="GUID-AC39AA12-4F39-58DB-BE67-C624C0A96DE2.dita" id="GUID-0C6B7782-1C84-4F47-9B7C-F638BE3B27FE">
-<topicref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita" id="GUID-A33BABF8-6A89-45BE-8F3C-AB391060A8FD">
-</topicref>
-<topicref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita" id="GUID-2A04BCFF-1093-4CFC-9422-6051C5A1FACC">
-</topicref>
-<topicref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita" id="GUID-87CD6E1A-C3FE-4D9B-BE83-84109DB15A40">
-</topicref>
-<topicref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita" id="GUID-B4A7E4C7-8E82-4EB1-89EE-E14C0CDAC2A2">
-</topicref>
-<topicref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita" id="GUID-01158E5C-7FDC-427F-A1DB-6F60608D7463">
-</topicref>
-</topicref>
-</chapter>
-<chapter chunk="by-topic" href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita"
-id="GUID-AD2C37AD-CFB1-4D20-A6DA-FA90C59BF910">
-<topicref chunk="by-topic" href="GUID-39A995DC-F047-4B41-A60D-27063CE329BE.dita"
-id="GUID-C111BF5C-9798-4165-9AE2-ED691E282076">
-<topicref chunk="by-topic" href="GUID-98F104F6-8850-4417-907E-113F2166EBD9.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-CC8EA664-FF2E-40FB-BC1C-89FB1255A9C9.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8.dita"
-id="GUID-883ED085-582F-466C-9194-67555072CA74">
-<topicref chunk="by-topic" href="GUID-9058F379-C495-4B22-B270-FF6A80E450B8.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-EEC50FC0-46D5-4ED7-AD95-67430D5EC651.dita"
-id="GUID-3C1E8906-9BD1-4357-89D5-0E5CE55BB0EF">
-<topicref chunk="by-topic" href="GUID-50BE8F1A-513A-433C-B045-66658FC226D7.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-3B6E25F7-C1A8-461F-97F7-421DB559BC98.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-2E986A81-F094-4F1D-9ECB-6A325CFA5BB4.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-8255A186-C1AC-44DA-844C-1FEA029C73BC.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-B088B74A-9A6D-4C72-9069-391ECAD38514.dita"
-id="GUID-3B317F8F-2BA9-4F5B-898A-5F75C6745496">
-<topicref chunk="by-topic" href="GUID-C37790B3-967C-489C-8753-0434938CBE2B.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-21F92FAD-1EF1-4E36-9157-9214E7C6BB01.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8.dita">
-</topicref>
-</topicref>
-<topicref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita" id="GUID-6F0C610C-0FA8-4948-A860-9B255F580CFE">
-<topicref chunk="by-topic" href="GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E.dita"
-id="GUID-17191DEB-DF4E-450B-B76F-1000A1286FDE">
-<topicref chunk="by-topic" href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-ACDED56F-38FE-491D-B019-BE2C53A75D28.dita">
-</topicref>
-</topicref>
-<topicref href="GUID-1E7AA950-06C2-599C-BCC2-12BB99306E1B.dita" id="GUID-41D63393-50AF-472B-A06B-70560EBF79CC">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-97FFA8D2-4515-448B-8107-61151F252048.dita"
-id="GUID-79315258-C162-4810-A9DF-0E69C95BC5A6">
-<topicref chunk="by-topic" href="GUID-E9E5556C-101B-48F2-B9AA-9DBEF5D85D5E.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-A1ED2377-E196-423F-A5A2-1889C1CC3E05.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-30647807-A0D2-4D96-975A-BF1800749977.dita"
-id="GUID-0198770C-6DA5-483D-AD8B-E1860508DE1A"></topicref>
-</chapter>
-<chapter href="GUID-32E29020-1956-461A-B79A-1492E06049E7.dita" id="GUID-6D0B6AD1-1678-4C04-8E47-E211F0029A1B">
-<topicgroup id="GUID-7C52D98D-16F8-4DE7-9946-8A303EEA8E0E">
-<topicref href="GUID-97CCEF05-8F3D-5802-A33A-ED349084D524.dita" id="GUID-C3603501-AC56-4CB5-AFC2-A836B7BCF436">
-<topicref href="GUID-1ECCCAA0-2E27-5E46-968D-4EBC4E5CE259.dita" id="GUID-661D00F4-AB74-4C63-969C-3477E4A7B38B">
-<topicref href="GUID-87BEA6F9-B236-50CF-9DB3-36234A6EB797.dita" id="GUID-115ABA2B-9776-4332-AA98-56EDBD35DA05">
-<topicref href="GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-3-1-1-3-1-3-1-3-1.dita"
-id="GUID-D467E357-8D23-4D58-9A2D-12DAB30DBE9F-GENID-1-8-1-3-1-1-3-1-3-1-3">
-<topicref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita"
-id="GUID-0FBE8424-C60E-46B1-965D-4DEA0E73AFF0-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1.dita"
-id="GUID-A6007079-AF83-458B-8E74-3C59E4372AFA">
-<topicref href="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita"
-id="GUID-B81CCCE4-FF39-49F7-9AC1-4260140DBFDF"></topicref>
-<topicref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita"
-id="GUID-E58B6925-31CC-47C9-B279-2C512ED6230B"></topicref>
-</topicref>
-<topicref href="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-3-1-1-5-1.dita"
-id="GUID-4998B75F-0A77-436D-8635-BAD2A592B374">
-<topicref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita"
-id="GUID-AD08A884-67CA-43F4-92FE-CE74480B16C7"></topicref>
-</topicref>
-<topicref href="GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-3-1-1-6-1.dita"
-id="GUID-A95A00DB-D468-49E8-AC56-CD6DA46BB2D7">
-<topicref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita"
-id="GUID-C454BA00-9A3A-4B67-9EE6-7A1BCD2DEE7A"></topicref>
-<topicref href="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-3-1-1-6-1-4-1.dita"
-id="GUID-91EFF9E1-7D6C-4921-BF6E-F13D4598BE18"></topicref>
-</topicref>
-<topicref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita"
-id="GUID-27F01B18-FB27-475F-940B-2547BFF547B0">
-<topicref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita"
-id="GUID-C0C63A5F-7BED-432C-98B3-E7EEE3EA0FF1"></topicref>
-<topicref href="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-3-1-1-7-1-4-1.dita"
-id="GUID-12B81070-EEF0-41E6-91C5-045BCA164E5F"></topicref>
-<topicref href="GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1.dita"
-id="GUID-FAEA9EEC-DED6-4DF5-85F6-96BAE34ADA65"></topicref>
-<topicref href="GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-3-1-1-7-1-6-1.dita"
-id="GUID-1CC1EADB-1563-4EFC-9269-4DDE1C485D91"></topicref>
-<topicref href="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-3-1-1-7-1-7-1.dita"
-id="GUID-366B1482-99FA-4424-90C9-4B2F3D17D182">
-<topicref href="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-3-1-1-7-1-7-1-3-1.dita"
-id="GUID-EB9D4A22-B540-4196-8DC3-0A1874C4145A"></topicref>
-<topicref href="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1.dita"
-id="GUID-5BFD1A1A-E321-4A52-BDC5-C292D9357E07"></topicref>
-<topicref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita"
-id="GUID-9AC1CDC4-DB50-4EDA-B8AA-4935F6F9AA7A"></topicref>
-<topicref href="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-3-1-1-7-1-7-1-6-1.dita"
-id="GUID-EE98AEF9-61B3-4A86-8626-536E7AF89EA3"></topicref>
-<topicref href="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-3-1-1-7-1-7-1-7-1.dita"
-id="GUID-09F73A21-EEE8-445D-87A9-2405EF95F791"></topicref>
-<topicref href="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-3-1-1-7-1-7-1-8-1.dita"
-id="GUID-E9D2DF56-FCA5-45B0-87A5-72EF1480E4E8"></topicref>
-<topicref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita"
-id="GUID-1C4B3076-56CE-4709-8457-E1FDBF16D711"></topicref>
-<topicref href="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-3-1-1-7-1-7-1-10-1.dita"
-id="GUID-9D3E459E-A4DB-4601-BFBF-55F009E4ECB0"></topicref>
-<topicref href="GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-3-1-1-7-1-7-1-11-1.dita"
-id="GUID-A9BAB529-8F57-45AF-B2A9-4FBBF109FA83"></topicref>
-</topicref>
-<topicref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita"
-id="GUID-3706BC38-8F16-42C9-A122-C1B02288BD47">
-<topicref href="GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-3-1-1-7-1-8-1-3-1.dita"
-id="GUID-F1774010-EA04-43A9-B7BE-D09B18F229C1"></topicref>
-<topicref href="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-3-1-1-7-1-8-1-4-1.dita"
-id="GUID-B1F05A86-7D69-49FD-8431-0BB3A9005991"></topicref>
-</topicref>
-<topicref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita"
-id="GUID-99629631-C9FD-4985-8ED8-BECD2980D672"></topicref>
-<topicref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita"
-id="GUID-DA1CAA8A-CE6C-4754-8E18-FF3F578C6B61"></topicref>
-<topicref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita"
-id="GUID-C3F6BB45-307F-439E-9499-B972683CADED"></topicref>
-</topicref>
-<topicref href="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-3-1-1-8-1.dita"
-id="GUID-1DA4D054-16BD-46A8-8371-8855003B004C">
-<topicref href="GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1.dita"
-id="GUID-19CFAA71-397F-41E2-A040-00A99A530B89"></topicref>
-<topicref href="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-3-1-1-8-1-4-1.dita"
-id="GUID-02341CAB-0292-449A-B5D4-46713F658EC3"></topicref>
-<topicref href="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-3-1-1-8-1-5-1.dita"
-id="GUID-19C61AC1-923A-4D7B-B2DE-F0502EF4D721"></topicref>
-<topicref href="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-3-1-1-8-1-6-1.dita"
-id="GUID-79070B2D-883E-45C2-9C61-53AD0FE1953E"></topicref>
-<topicref href="GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-3-1-1-8-1-7-1.dita"
-id="GUID-0F9231B0-A515-4C13-8D82-83FBA1DDD95C"></topicref>
-</topicref>
-<topicref href="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-3-1-1-9-1.dita"
-id="GUID-4A0F0AAA-BF4D-4579-8D95-E4E63094ED36">
-<topicref href="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1.dita"
-id="GUID-39CB5423-7D64-4A3B-92EF-B659A3E824E0"></topicref>
-<topicref href="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-3-1-1-9-1-4-1.dita"
-id="GUID-AE7241B1-CC74-4256-996E-4AB60A543B6C">
-<topicref href="GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-3-1-1-9-1-4-1-3-1.dita"
-id="GUID-01BA6AF1-4676-42A7-8EAF-332DCC95386D"></topicref>
-<topicref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita"
-id="GUID-E851FDF3-9013-4E7B-BEED-D29F00140696"></topicref>
-<topicref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita"
-id="GUID-3D74A06F-FC70-46C1-9B60-1933826B5DEF"></topicref>
-<topicref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita"
-id="GUID-05D65889-B0F8-4959-8917-07B23E524EFB"></topicref>
-<topicref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita"
-id="GUID-9A5D1913-8E79-43A5-B3C2-50295435AA7C"></topicref>
-<topicref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita"
-id="GUID-A1AE9033-50B6-4DC2-B0AE-D8FCD10654E5"></topicref>
-<topicref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita"
-id="GUID-6E0EFDB0-EE6F-4CAE-90DA-A75CF8BC430F"></topicref>
-<topicref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita"
-id="GUID-676AB0CE-5A39-4593-86BF-DC1F75D8FE44"></topicref>
-<topicref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita"
-id="GUID-609C72B9-96DD-46B2-A7CA-387C625F73B1"></topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-AF30D941-BFD8-5260-9588-C5DA6983F558.dita" id="GUID-1E678D32-14C3-4401-BAFD-AEBD3198DB9B">
-<topicref href="GUID-A3449F37-89BB-5208-8FD5-F4DF73F7E71A.dita" id="GUID-C33C04C3-5267-4A01-B74F-4BC29CE7B396">
-</topicref>
-<topicref href="GUID-57F38146-1DA3-5657-ADF4-76DF740363C5.dita" id="GUID-3FCC8008-F234-4106-BF64-1B4AF3CC9897">
-</topicref>
-<topicref href="GUID-4E195F2A-78AE-5664-A115-AD65BF457AB1.dita" id="GUID-0D6CE78E-77EF-468E-B9D1-3572AF6E445E">
-</topicref>
-<topicref href="GUID-B386CA7A-F527-5584-9455-371E623DCF76.dita" id="GUID-635FF1F0-5E09-4A2D-9170-EA253319AAE3">
-</topicref>
-</topicref>
-<topicref href="GUID-FC2F5CDE-D140-5893-894D-D9B93AF6BDC2.dita" id="GUID-46FA3254-AF9A-4F2B-B0DD-D28797D4870F">
-<topicref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita" id="GUID-40D8572D-628B-40A4-AA78-6049455DD308">
-</topicref>
-<topicref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita"
-id="GUID-0A8EC89E-4BE0-4308-99C0-04D0319FF969"></topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-23F2454C-DB6C-47E0-92F1-68027F30F7EF">
-<topicref href="GUID-0AF47934-0A16-51A2-9254-992D7C6B322B.dita" id="GUID-24DE1D17-ADA8-476D-B8DF-A4E4B24E5979">
-<topicref href="GUID-772F9CC3-71B3-53F0-9307-91D35B133810.dita" id="GUID-41082D6A-3209-4599-88A1-D592D5AB6104">
-</topicref>
-<topicref href="GUID-8E160B29-18C4-574B-9259-9A8E958CDA91.dita" id="GUID-2F2F1950-9B76-4D53-A98A-8F4A84D311E3">
-<topicref href="GUID-2676BA6B-4BEB-5E2A-AD18-D2199465B121.dita" id="GUID-AF879555-E8B9-43A5-A6DB-871AFE40421E">
-</topicref>
-<topicref href="GUID-3170F958-137A-5DD5-A6DD-D5474ABECD22.dita" id="GUID-F0C23CF8-2937-4BFC-907B-C2D9F66CFAE1">
-<topicref href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita" id="GUID-5D0B564B-D5FE-4473-AB6F-B80406504ED0">
-</topicref>
-<topicref href="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita" id="GUID-849A2013-651B-459B-8FE8-F55043567006">
-<topicref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita" id="GUID-F7FBBEC0-132C-41B3-A1D0-31CDBEAF5E0E">
-</topicref>
-<topicref href="GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita" id="GUID-11510F90-951F-4E59-B7A4-C5C2A3E6A78D">
-</topicref>
-<topicref href="GUID-6CC45734-E497-40A7-AB23-37A24EBAF339.dita" id="GUID-8E7CCD02-19C0-4578-9709-F02E686C21BC">
-</topicref>
-</topicref>
-<topicref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita" id="GUID-BFD78898-6221-4DEC-80CD-448DB14247F6">
-</topicref>
-</topicref>
-<topicref href="GUID-9903E2AB-9D96-5005-8DC5-26653F93616C.dita" id="GUID-9811D801-8907-4890-B9BF-82B1CB3D2EFF">
-<topicref href="GUID-0554452F-856D-51A1-A1A5-C44EEFF7A3D4.dita" id="GUID-B5176D49-C256-448C-B5B6-16A358DEBB25">
-</topicref>
-<topicref href="GUID-1C7F6DBA-7113-5542-AEF1-179FDD980443.dita" id="GUID-4C16575A-88F0-4A0E-A970-6D5E20E88820">
-<topicref href="GUID-F370FDA8-6DB7-531A-A057-B773F1729C46.dita" id="GUID-95C0AF64-F25A-4534-B2F1-4885446A390E">
-</topicref>
-<topicref href="GUID-6A8A4910-681B-5E5A-AEA9-FD8BDBD84EDD.dita" id="GUID-A667C098-8967-44AB-916A-EAF78747C0F4">
-</topicref>
-<topicref href="GUID-ABD45929-DEA1-5500-B64A-B32F623B6A06.dita" id="GUID-FCFEA46E-A502-4C62-B175-58356B0DA027">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-ED2D5BEA-AD2A-51CE-8CBC-8B5E33DD6356.dita" id="GUID-4674A27D-0EF8-4DC1-9116-65B6D9439EED">
-<topicref href="GUID-AFE0238A-D6A4-5D07-BB99-85E8CF97BD26.dita" id="GUID-EFD66C5F-DE62-4F35-B049-A3E3B592F564">
-</topicref>
-<topicref href="GUID-C55D1D74-B764-5DD1-8C43-5A5138578EAC.dita" id="GUID-D0713AD8-837E-497B-93E6-713BC7FD88E2">
-<topicref href="GUID-AFBD4ED6-9588-531C-8EDF-566DB1D03088.dita" id="GUID-B4B01609-6A22-454F-B86B-43A841860FD4">
-</topicref>
-<topicref href="GUID-9DCD2076-0F73-5BB7-85BF-580567E0AB53.dita" id="GUID-13E91532-F961-43F6-9CC6-E5993F22A6D4">
-<topicref href="GUID-7FD72D9F-D65E-5248-A296-F2196F1DF5CF.dita" id="GUID-313C97D6-DE31-47E6-B291-9513AA329CB1">
-</topicref>
-</topicref>
-<topicref href="GUID-F8A26275-883A-5299-9C37-9DDCC2F62108.dita" id="GUID-2F051410-F5E3-4BAB-976E-DEBB40C22FB2">
-</topicref>
-<topicref href="GUID-A6CF0AD2-BDE4-548C-A165-581FCD019D7C.dita" id="GUID-6200CF28-7921-442C-BFB0-AE19E88A04A6">
-</topicref>
-<topicref href="GUID-7A7254E3-A03A-5B38-B2B5-FFEEE70F5E93.dita" id="GUID-55FF9BBA-D842-4C82-80E8-80AD19D03CA6">
-</topicref>
-</topicref>
-<topicref href="GUID-A4C26317-9F76-587E-A4B6-D94892ACF11B.dita" id="GUID-EEFABE24-736B-4E6D-9683-E00078686F00">
-<topicref href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita" id="GUID-B6280F64-0638-46E6-B158-94B356AB0AB2">
-</topicref>
-<topicref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita" id="GUID-C467F6DF-4A11-4146-88AD-CCC8AD6D487B">
-</topicref>
-</topicref>
-<topicref href="GUID-100F41B4-67BE-5978-99DA-C9B6DE8760F7.dita" id="GUID-C638ACC1-163F-4E29-8BCB-003D067B07DF">
-<topicref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita" id="GUID-026A8C70-3146-4E44-A81B-E23CE9A8C132">
-</topicref>
-<topicref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita" id="GUID-381C764D-6F7F-48CC-B51B-EB6BD4FC6EAE">
-</topicref>
-<topicref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita" id="GUID-CEA4E6C6-2706-4EFB-BFBF-611F284A6A89">
-</topicref>
-<topicref href="GUID-42CF6D55-CAD2-5049-A1B6-35479404C273.dita" id="GUID-B9185120-D948-4350-ACAF-B3FAA054BF5F">
-</topicref>
-<topicref href="GUID-6D6C54E2-66DA-5626-A75D-5597469D5BE0.dita" id="GUID-215EB8C4-FD95-44A2-8C95-69E1E0ECF1A5">
-<topicref href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita" id="GUID-B91BBB20-2FBE-40DD-91C4-A21F9418F6B8">
-<topicref href="GUID-0BE71FC3-4759-50FC-A74F-C3DD42C9FCED.dita" id="GUID-49AEA3D8-331E-443C-9513-FAFD21ADD9FA">
-</topicref>
-<topicref href="GUID-31C133DE-F245-5992-9A41-20A99291E72A.dita" id="GUID-D6246DED-05A0-4D65-A0CE-053A9FA8F648">
-</topicref>
-<topicref href="GUID-D9D20EE0-AC86-512A-91C0-EA0ACF3912A7.dita" id="GUID-B277E423-AFC6-46E5-9734-A6F49E888E0E">
-</topicref>
-<topicref href="GUID-7664A4D4-C24B-5225-9E0B-7A021DA6A3AF.dita" id="GUID-8580DEB5-4A9C-45FF-9419-7A89548965C5">
-</topicref>
-<topicref href="GUID-F87A1381-3E71-5723-B8B6-3F4E0FF368CE.dita" id="GUID-D68B2F04-83CC-4C52-A410-810B38E2F4AB">
-</topicref>
-<topicref href="GUID-72C2E618-C33D-5770-908D-E1A99E5D1B1D.dita" id="GUID-8812ABE5-27EC-436C-93EC-7111E3E083A5">
-<topicref href="GUID-130D7E96-2AEF-559B-B5F1-D4B6754519C9.dita" id="GUID-89DE95A4-B41D-46CC-8716-597EA4D058B6">
-</topicref>
-<topicref href="GUID-C32D14AD-CC99-59D6-BA22-321F705418AF.dita" id="GUID-7A8D1CB1-5EF5-43D5-99DD-B5A40A029E35">
-<topicref href="GUID-D201143F-2B35-5633-8572-C5CAE556FC75.dita" id="GUID-10D3AEDD-83F9-4370-AC8B-537EDB9A0993">
-</topicref>
-<topicref href="GUID-71909C6D-297C-50A9-99BB-FEBC67389954.dita" id="GUID-D27C3FA1-37A3-4169-904D-88ABC8A17977">
-</topicref>
-<topicref href="GUID-C5F9AAD3-5183-57E5-A33B-032DE3C063AE.dita" id="GUID-77E06530-4436-497F-8DE1-BAC9B2B1C191">
-</topicref>
-</topicref>
-<topicref href="GUID-FF82B80D-18CA-5333-83EB-3AB94F696016.dita" id="GUID-548B33EA-9C55-44AD-A742-73496AE02885">
-</topicref>
-<topicref href="GUID-FF39192E-9C93-593F-8F47-DB18DB876F6F.dita" id="GUID-44C9B7A7-72B5-4794-8177-9748E15E2690">
-<topicref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita" id="GUID-2E12F4A6-5219-43DA-9EDE-2C39F1CB454C">
-</topicref>
-<topicref href="GUID-9D5F3B5E-37FB-5156-808B-F92519412A7F.dita" id="GUID-4D8504BA-BB28-4E24-AECA-0202DDDE0177">
-</topicref>
-</topicref>
-<topicref href="GUID-255653B8-DACF-552C-8F33-7F6552824F4F.dita" id="GUID-78BBEE47-C08F-4848-9027-D51F5C96397D">
-</topicref>
-</topicref>
-<topicref href="GUID-DB220677-5998-529C-BE35-0D66F588E057.dita" id="GUID-DECB898C-F8E5-4C5F-A337-09C520F2A84D">
-</topicref>
-<topicref href="GUID-DA09248E-E299-596E-9860-B709F7C6529A.dita" id="GUID-E4ABFFE9-7481-465F-B8E2-7B436D27C64C">
-</topicref>
-<topicref href="GUID-6E385BCC-8AD8-5CCD-9378-86127443B407.dita" id="GUID-5D73D888-651C-49E8-B7D7-BF8B0EF7A8BE">
-<topicref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita" id="GUID-A0683A94-307A-4728-9C9B-6F13F8B0CA79">
-</topicref>
-<topicref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita" id="GUID-0C0A20EC-B43C-4D1C-B1B5-9E48B2BFAC92">
-</topicref>
-<topicref href="GUID-AF26E3D3-D0CD-4715-B9F6-FBB1BCF2DDE2.dita" id="GUID-D7283B51-1FE2-4196-9B45-F486434F61B2">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-E375D3C0-707D-4A44-B731-398302A434E8">
-<topicref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita" id="GUID-1A3BED1A-9C38-4A32-8809-0B79E3D1C7E1">
-<topicref href="GUID-0F647342-E069-5444-9370-58520375543A.dita" id="GUID-46783D6E-CC98-49B8-8DEC-0E043A69A8D6">
-<topicref href="GUID-7C197DC1-43CA-5146-B81D-36B685A1D0C9.dita" id="GUID-9052F948-A78B-40DD-B01A-28432704271A">
-<topicref href="GUID-EA7C8C95-A4D5-5E90-B0B8-C35D8C7423F1.dita" id="GUID-F1754595-6E22-47E0-9CB7-6042686B4AA1">
-<topicref href="GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3.dita" id="GUID-7E2458FF-A67F-49F6-BB76-0D2EBE112AEB">
-</topicref>
-<topicref href="GUID-83676985-070A-5CE9-BF36-D7C56C5025F9.dita" id="GUID-DFD30B8A-8F7C-42AF-B656-0E96F1CF039C">
-</topicref>
-<topicref href="GUID-520F620F-03CE-5C4E-9783-745D2740F648.dita" id="GUID-292F19CA-A6BB-4DC0-AFCA-84A499A81200">
-</topicref>
-</topicref>
-<topicref href="GUID-844C335C-E8FD-5DF8-8E05-7DB1DF4C3360.dita" id="GUID-C5A94BF5-C1E8-49A1-BFFD-FEA89B391727">
-<topicref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita" id="GUID-09B2B894-943C-4D25-BA56-75F698929771">
-</topicref>
-<topicref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita" id="GUID-F2C939A2-9B17-4453-A676-F1033888414B">
-</topicref>
-<topicref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita" id="GUID-0CCB4A5C-A58E-4D02-9ACA-5A815A3A8C04">
-</topicref>
-<topicref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita" id="GUID-EE87B788-4589-4A08-93C5-D937E5C9A546">
-</topicref>
-<topicref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita" id="GUID-2794059E-2805-46F6-9435-C7094A82D8B1">
-</topicref>
-<topicref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita" id="GUID-3B1D7536-7C90-4BDD-A100-8D832E52EE01">
-</topicref>
-<topicref href="GUID-E2D4973C-FE93-5DE7-B04E-19B7701621C3.dita" id="GUID-95418C5D-D38B-4356-98C7-D19EB9E58442">
-</topicref>
-<topicref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita" id="GUID-A714822B-9A13-4B84-BA5F-3E4F3E665BBB">
-</topicref>
-</topicref>
-<topicref href="GUID-F4163874-3F97-506B-AC93-EA2321D3BEC1.dita" id="GUID-7284994B-E86E-47A3-A0B6-9D09956C915E">
-<topicref href="GUID-5E10D5B7-C407-51E0-8C16-466A8BC89106.dita" id="GUID-72FC5CE0-7E99-4B98-84D5-6C9A1BE8743F">
-</topicref>
-<topicref href="GUID-CC5A1C8D-55AA-5FAE-A446-4CBF949C9003.dita" id="GUID-E34E670E-27EF-4B6C-ADD3-449A446EE537">
-</topicref>
-<topicref href="GUID-99F36ADE-EBBF-5EE7-B4C9-A540D4CA1776.dita" id="GUID-C807678D-1E9D-4741-BEBB-23961434EEDE">
-</topicref>
-<topicref href="GUID-79CFCC01-7418-5ECA-AF65-1DCAD97AA7A6.dita" id="GUID-14928F12-35D9-42EF-AFB0-648CED4EE7EE">
-</topicref>
-<topicref href="GUID-511A0F2D-AD60-56C5-808C-8F8570C19C3A.dita" id="GUID-4DA1B01E-B491-4A3C-AEAE-7C7F60D39822">
-</topicref>
-<topicref href="GUID-FDD42A61-9FFE-53F5-A0B3-D8087270C7F6.dita" id="GUID-EA101F64-1E3E-4E91-B9FA-6717B6ED8397">
-</topicref>
-</topicref>
-<topicref href="GUID-5E95D090-582E-536A-AE93-8C5312618E76.dita" id="GUID-123B604E-3B77-4D4B-9A5C-B37B42B5E158">
-<topicref href="GUID-2DC4EAD5-98D3-5B17-AEBD-6ADE481CBD94.dita" id="GUID-73F3705B-F518-4AF7-8BCC-830647652BBD">
-</topicref>
-<topicref href="GUID-EE79D90C-CC71-5C2B-8715-A9764A48F40D.dita" id="GUID-BDB9F7B6-98FE-474C-B349-B2B8D0FC5C75">
-</topicref>
-<topicref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita" id="GUID-5B4A50EF-BE5B-4AE7-9330-4AFD0D7215FC">
-</topicref>
-</topicref>
-<topicref href="GUID-E9C896AE-62B4-54DC-9958-913D19D14DC6.dita" id="GUID-4E62536F-B064-4EE7-A93F-43B6F6720443">
-<topicref href="GUID-9EE405E2-2D58-525B-8C33-B1EAC0C5A71A.dita" id="GUID-CAFCD588-2FA4-46F1-B7C8-89C1E17CAF72">
-</topicref>
-<topicref href="GUID-AC5665B4-8E33-58A3-824B-6CC40E13160A.dita" id="GUID-DAD00974-2015-457E-A2B1-641483D12E4A">
-</topicref>
-<topicref href="GUID-7EA8047F-BD30-5100-9284-9A684500BFE6.dita" id="GUID-A7E41325-BE8C-4ABC-863D-A85A832DA9B1">
-</topicref>
-<topicref href="GUID-C48890DD-BBFD-53FA-95D6-7F39D9C3C263.dita" id="GUID-483830E5-96C1-4632-A9AD-A03D894CAD37">
-</topicref>
-</topicref>
-<topicref href="GUID-87CD8C58-F6B9-5D6B-9D7B-862979DE3B6F.dita" id="GUID-DC988A19-461F-4356-9B41-54447BD957F8">
-</topicref>
-<topicref href="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita" id="GUID-EC75459C-AA1C-4137-89AE-101F80D349B5">
-</topicref>
-<topicref href="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita" id="GUID-1D233EB1-D06B-45D2-87DC-EECD4C23C060">
-</topicref>
-<topicref href="GUID-8BE1690A-F331-5AD0-BC22-3122CA4C4E01.dita" id="GUID-E07C6EF9-212D-4B75-86C5-75822AABD855">
-<topicref href="GUID-2332AFD7-30F2-5B4D-BBA9-3EA36D8F5E81.dita" id="GUID-8B4FDB23-7F45-4E30-848E-04F1FBF2B5EB">
-</topicref>
-<topicref href="GUID-8FC2BA94-2374-5BFE-B4CF-624A6B0056BC.dita" id="GUID-8C0221D4-EB01-4F4F-B082-86B94F617741">
-</topicref>
-<topicref href="GUID-4B885E13-AC1E-5208-9F07-E6219E214626.dita" id="GUID-88C62B47-110B-419E-9D44-20FAFBEDD594">
-</topicref>
-<topicref href="GUID-B66323BB-7AC0-5303-BC3A-DD577D28CF16.dita" id="GUID-9B982E68-948A-48EB-A54D-549958F9D10A">
-</topicref>
-</topicref>
-<topicref href="GUID-D5AA9C67-CCE3-53BE-A50E-FAE73699E68F.dita" id="GUID-FC62D7C5-0664-4825-AC08-9349E44C36F9">
-<topicref href="GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita" id="GUID-5F240874-7C1E-42E8-8509-FCA4AA1DE1C1">
-</topicref>
-</topicref>
-<topicref href="GUID-97EC9722-242B-5DF4-99E9-B63AC4BA97DA.dita" id="GUID-550DA947-6602-47B7-BAC0-8804E63259A3">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-EFF846DB-D84B-4893-82DD-BC3D01DB9D48">
-<topicref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita" id="GUID-BC813F90-5B2D-4502-A28E-35AEFB968102">
-<topicref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita" id="GUID-BD0D5FA5-D097-4BE3-9371-50EEE74F5A2A">
-<topicref chunk="by-topic" href="GUID-0F8D0399-58CD-4EB6-82DF-75D6BE5B0A84.dita"
-id="GUID-94A3D457-C6AD-4F13-ACBB-1431337D91EA">
-<topicref chunk="by-topic" href="GUID-5F749184-C804-41FC-BA81-038783BDC967.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-FE9017F4-4197-472F-A3E7-267169A51ABD.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita"
-id="GUID-E1A1892A-16EB-42F0-A560-784CDB3FE80B">
-<topicref chunk="by-topic" href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita"
-id="GUID-56553305-D267-4192-B71B-8BFD1B5798AF">
-<topicref chunk="by-topic" href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">
-<topicref chunk="by-topic" href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">
-<topicref chunk="by-topic" href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">
-<topicref chunk="by-topic" href="GUID-542550FA-F9F1-46D6-8182-6E7FAA013572.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-1614B24F-5DB2-43AA-9A18-723BD61B8B4C.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-4D2AA522-82AB-4D1E-9F1E-5C6A35DEF195.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-95DD1440-01C9-4997-8DD4-FFD33D7DEAFF.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-3729C075-4958-4874-9DD7-02A68D17E043.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-5A292526-5B71-4076-9DBD-1385CD1FFD37.dita">
-<topicref chunk="by-topic" href="GUID-B4218FA6-5BE0-4000-BC85-3078892EDADA.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-51CD4B23-F4C1-4CD2-8CDB-6335365CE44B.dita">
-<topicref chunk="by-topic" href="GUID-6A2160F0-6062-4E77-ABA3-B829AF9689FA.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-6457E7C4-1203-47B6-8AD3-A6998798943B.dita">
-</topicref>
-</topicref>
-<topicref href="GUID-26A4F760-C85A-4030-8910-15D239323E9D.dita" id="GUID-776F31AE-683A-4087-BDD3-A52026799845">
-<topicref href="GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82.dita" id="GUID-74F2A5DA-D2EF-4E0A-9288-ED63B2FDA711">
-</topicref>
-<topicref href="GUID-170EDC68-77C7-4FD9-A81E-C9F75698F7A3.dita" id="GUID-4C3339B7-015C-4A06-9F7C-58EC1C9399D4">
-</topicref>
-<topicref href="GUID-422F37DF-F93F-443F-86EA-6A696A53E1E6.dita" id="GUID-4A3AD4B6-597D-499D-8DE3-1C0D4331BFAC">
-</topicref>
-<topicref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita" id="GUID-EAFB3082-334C-465E-8D0C-9E6103BF9E0A">
-</topicref>
-<topicref href="GUID-DB2E0959-C24E-4E6E-BC6D-064B91BDE662.dita" id="GUID-47C3C741-851D-4975-A26A-9972615DFA01">
-</topicref>
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-0FB60233-993A-4BF2-9E8C-E03AD092359B.dita"
-id="GUID-11E4E9FD-A9FB-4990-9B0A-F22032C1E3CE">
-<topicref chunk="by-topic" href="GUID-2B7F7484-3A44-4A96-9B5D-79DF8A09115A.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-EC49B54F-7724-433B-BD7F-201DE3B7DAA6.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-CBB00F6A-CBA7-4872-B0A1-A86A863725F5.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-23A60DE7-B72D-41BD-9F1E-882D31A7E3C7.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-2C74E932-B1CA-434B-AF96-66D52D689620.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-94C64AC2-5680-4DED-8CCB-55CD5C25F1E5.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-BF1AAA0D-DF2F-4E1D-A0D2-F419BD32F97A.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-9F90A2F0-9C76-4871-A766-D1AE0FC42C08.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-411ACFE6-0324-4330-ABCD-97A925759A3C.dita"
-id="GUID-C74314E4-F7BA-4C34-A687-6D7820659986">
-<topicref chunk="by-topic" href="GUID-6AD1DA34-EA3D-4EC9-A667-390507B4D6CB.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-C99BA704-4E9F-482C-942F-1B4D7F385BD8.dita">
-</topicref>
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita"
-id="GUID-1953408B-E725-4FFD-B359-EEAF52205744">
-<topicref chunk="by-topic" href="GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita">
-<topicref chunk="by-topic" href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">
-<topicref chunk="by-topic" href="GUID-24039DCE-B5C4-46CB-9E02-AB421C64FB87.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-40CA47C0-76F9-42FE-AF9D-0B1BF42ACCB7.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-F3262DF6-39CA-4E96-AD0E-C1FFDE9B0A61.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-E50EC0B4-A434-4C30-A1A9-1A976185FF28.dita"
-id="GUID-32CF182A-1767-4E89-84E8-B79220E20CE2">
-<topicref chunk="by-topic" href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">
-<topicref chunk="by-topic" href="GUID-215935B4-8AA8-4A87-B70F-E43ADB70B1D2.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-A29FB4CA-2161-4407-BA69-48FBF5D7543F.dita">
-<topicref chunk="by-topic" href="GUID-BE871265-147B-45F3-8772-A4E091223EDB.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-97486385-88F7-4AF1-B880-D9A8AA4D7094.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-FC63E2D1-697C-4890-9B70-0DC0AAE7597C.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">
-<topicref chunk="by-topic" href="GUID-89B12BB4-877E-4157-9BD1-81AD02EE3543.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-BCC6F8D1-9F6C-41C4-A2FB-AB7528B03F8D.dita">
-<topicref chunk="by-topic" href="GUID-A3BCC33F-D11B-4F98-BCC3-9A06381A02E7.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-DFDDF0C5-0E66-4394-A746-7FE35EEA4E6A.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-95C188D0-EDB2-46D0-ACDE-19AAD524C9F4.dita">
-<topicref chunk="by-topic" href="GUID-1A26BD9E-5B8E-4E6D-904E-B8354B14E111.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-57CA8A13-05C6-4AFE-9804-E2EA2453143A.dita">
-</topicref>
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">
-<topicref chunk="by-topic" href="GUID-546FD573-8136-4C58-878B-C2F643B333AA.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-B2737D23-936F-4968-99DE-7FAB28968AA9.dita">
-<topicref chunk="by-topic" href="GUID-5578DF32-65ED-47F9-8A10-7538206AC473.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-2BD20EF8-B6B8-4A1B-8B0D-3326B839FD37.dita">
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-57A73F9C-5E72-4445-BF2C-9D44A3EC88B5.dita">
-<topicref chunk="by-topic" href="GUID-D78B510E-3F5C-4B5D-B53F-917F2DAF6C6A.dita">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref chunk="by-topic" href="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita"
-id="GUID-59F3891D-466E-4224-BC4E-65AD0AF02F02">
-<topicref chunk="by-topic" href="GUID-457CC544-EC3B-4863-A5C4-DC7046614929.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-9EA7B72B-8394-48B8-A0CC-4BB34CBDB01C.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-88917386-AD48-4C76-A1C7-46F0B1E85A18.dita">
-</topicref>
-</topicref>
-<topicref href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita"
-id="GUID-17BA7CC3-219D-4E67-AE0B-689E358F6DB0"></topicref>
-</topicref>
-<topicref href="GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4.dita" id="GUID-4F52806A-95D7-4B29-8271-60041B71F679">
-<topicref href="GUID-16E7CF5D-4364-5F42-94FF-9F79BB52523D-GENID-1-8-1-3-1-1-4-1.dita"
-id="GUID-9271CA28-D03B-44C0-ACD5-2C9A0AAC95D9">
-<topicref href="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita"
-id="GUID-84969540-5926-4010-B869-7A1D4A2C390D"></topicref>
-<topicref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita"
-id="GUID-4512C63A-0BEA-4A92-B44A-3DB4E1CED787"></topicref>
-</topicref>
-<topicref href="GUID-26FC16BB-47D8-5DF6-9ABE-07526286597A-GENID-1-8-1-3-1-1-5-1.dita"
-id="GUID-99CEF00A-7268-469D-8682-3C20473F5BB3">
-<topicref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita"
-id="GUID-B9212FD1-B243-45C7-957F-4881324F9F8F"></topicref>
-</topicref>
-<topicref href="GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-3-1-1-6-1.dita"
-id="GUID-9E5731F5-B32B-411B-A186-4A57FE4DBF27">
-<topicref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita"
-id="GUID-766E5E86-0C6F-4501-B563-ABFC0AD8F951"></topicref>
-<topicref href="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-3-1-1-6-1-4-1.dita"
-id="GUID-996815CF-19DE-4059-B3CA-C44FF78C6BE5"></topicref>
-</topicref>
-<topicref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita"
-id="GUID-778481A2-C9A6-4955-8CE2-819410B93863">
-<topicref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita"
-id="GUID-A1C0A2B7-D338-4F87-9DF3-51B54BD6947B"></topicref>
-<topicref href="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-3-1-1-7-1-4-1.dita"
-id="GUID-8E5AB09B-DA68-421A-838C-0B0EABB55F37"></topicref>
-<topicref href="GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1.dita"
-id="GUID-A452C46F-F527-4980-A399-40B296F319A6"></topicref>
-<topicref href="GUID-2F42DC8F-E489-5EA4-8413-784D34965497-GENID-1-8-1-3-1-1-7-1-6-1.dita"
-id="GUID-AE31B650-12E8-4B6D-8D94-84D54F45796B"></topicref>
-<topicref href="GUID-1BB546C1-2795-55D9-97B6-AC3F6AB79389-GENID-1-8-1-3-1-1-7-1-7-1.dita"
-id="GUID-705A1562-F6B2-49B5-B6CA-9DBF6E459BA6">
-<topicref href="GUID-3FE54688-2CDE-5359-9ABB-B83BFA025A81-GENID-1-8-1-3-1-1-7-1-7-1-3-1.dita"
-id="GUID-F1DDA119-FC4C-457D-8816-EB7D83400D23"></topicref>
-<topicref href="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1.dita"
-id="GUID-A75E33CE-6B2D-4DE9-92BD-2C6C067B7B04"></topicref>
-<topicref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita"
-id="GUID-4A7A9099-EE50-4C59-8DEF-0F9125A2F3E8"></topicref>
-<topicref href="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-3-1-1-7-1-7-1-6-1.dita"
-id="GUID-7EC0A5AA-0F6D-4F3E-B0CA-DB0C0A99CEC8"></topicref>
-<topicref href="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-3-1-1-7-1-7-1-7-1.dita"
-id="GUID-E82787BA-02D9-4A10-9446-306C1E492D8A"></topicref>
-<topicref href="GUID-19CF4B7B-EA55-566D-B68C-0A25DCADCA6C-GENID-1-8-1-3-1-1-7-1-7-1-8-1.dita"
-id="GUID-BD9C80C9-6329-49B9-9620-E0B8315376EE"></topicref>
-<topicref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita"
-id="GUID-5EA31AC5-3D8A-42B3-B004-CCC4B593018D"></topicref>
-<topicref href="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-3-1-1-7-1-7-1-10-1.dita"
-id="GUID-731B3EDD-653E-48A2-AB53-988217D8BA91"></topicref>
-<topicref href="GUID-0387B02E-9B81-5E61-A33E-D644251424A2-GENID-1-8-1-3-1-1-7-1-7-1-11-1.dita"
-id="GUID-2901AC56-32E8-4F95-9263-911EA861829E"></topicref>
-</topicref>
-<topicref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita"
-id="GUID-DBC2CEED-1597-4FD8-AE36-F0311431F850">
-<topicref href="GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-3-1-1-7-1-8-1-3-1.dita"
-id="GUID-F6403BDE-AD7B-4ADA-B48D-2912094620E8"></topicref>
-<topicref href="GUID-06676D89-FDE7-58FD-9D2E-3C984CD24BAC-GENID-1-8-1-3-1-1-7-1-8-1-4-1.dita"
-id="GUID-BBD57FF6-05DF-4F55-BCC6-A0AED1335D50"></topicref>
-</topicref>
-<topicref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita"
-id="GUID-17755416-A4D7-4224-B716-2F5A0A5F9798"></topicref>
-<topicref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita"
-id="GUID-26735D58-2ECF-4C34-8713-8C6F8BE7EBB8"></topicref>
-<topicref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita"
-id="GUID-0D73A3EB-D1E6-4520-9E32-C9425C4FD999"></topicref>
-</topicref>
-<topicref href="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-3-1-1-8-1.dita"
-id="GUID-F88A1F5E-13BD-4C66-BB42-41E54E91701F">
-<topicref href="GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1.dita"
-id="GUID-AF5C56FA-A544-4232-9A7F-20D393882B6B"></topicref>
-<topicref href="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-3-1-1-8-1-4-1.dita"
-id="GUID-C8334F4C-D0B7-4239-A9F1-876B07DF2E5D"></topicref>
-<topicref href="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-3-1-1-8-1-5-1.dita"
-id="GUID-031EDCDD-6712-4347-9726-1EF1B52559D5"></topicref>
-<topicref href="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-3-1-1-8-1-6-1.dita"
-id="GUID-4026FCBF-5FBE-47CE-94B5-77AA2219E4C8"></topicref>
-<topicref href="GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-3-1-1-8-1-7-1.dita"
-id="GUID-9EA8E5BA-55BC-457B-B716-6385D74211F8"></topicref>
-</topicref>
-<topicref href="GUID-0C6CCACF-84B2-5715-BCF3-12330E6F05D4-GENID-1-8-1-3-1-1-9-1.dita"
-id="GUID-B5B5C5A2-AD38-43F2-A8BC-932B888DF590">
-<topicref href="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1.dita"
-id="GUID-FA8FE4DA-C7E9-404C-8857-CA4B703737D4"></topicref>
-<topicref href="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-3-1-1-9-1-4-1.dita"
-id="GUID-BF75AF5C-7363-41C8-87C5-3C4E90297446">
-<topicref href="GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-3-1-1-9-1-4-1-3-1.dita"
-id="GUID-69B74B42-D7A1-4A19-8C45-A2E18920AC69"></topicref>
-<topicref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita"
-id="GUID-DBEF9D49-21B0-4202-ABCC-2DF6C4875700"></topicref>
-<topicref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita"
-id="GUID-2FBECC29-8577-4414-B7DE-971282C34E7D"></topicref>
-<topicref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita"
-id="GUID-511F52AD-2A0A-42A7-A4A6-C0B2052F041E"></topicref>
-<topicref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita"
-id="GUID-C3D07865-7379-4F9D-97F3-777847FEB445"></topicref>
-<topicref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita"
-id="GUID-A3E1A020-623C-43EA-A81A-8A161642B58A"></topicref>
-<topicref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita"
-id="GUID-43254797-6A35-4C65-8E39-8732DAC5B929"></topicref>
-<topicref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita"
-id="GUID-6641BA97-852A-440C-97FF-6CBB22A5BC67"></topicref>
-<topicref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita"
-id="GUID-0B4B94AA-F48F-4A16-AF33-A632ABE00882"></topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-3-1-1-3-1-3-1-3-1.dita"
-id="GUID-D467E357-8D23-4D58-9A2D-12DAB30DBE9F-GENID-1-8-1-6-1-1-4-1-9">
-<topicref href="GUID-1AF99DF6-C5BE-5713-940D-5E9FBD43F123.dita" id="GUID-CB68CB10-92AC-45CF-8C72-8C385879F4B8">
-</topicref>
-<topicref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita"
-id="GUID-0FBE8424-C60E-46B1-965D-4DEA0E73AFF0-GENID-1-8-1-6-1-1-4-1-9-1-4">
-</topicref>
-<topicref href="GUID-1E87CA7A-9733-58A1-A747-F5F3DE9B64D7.dita" id="GUID-8CB7378E-B559-4907-9269-7FDEC5478957">
-</topicref>
-<topicref href="GUID-8C134C72-0552-59FE-AA19-F72250A8A947.dita" id="GUID-E6ABA953-CAE5-4D26-9A78-F696626377CA">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita" id="GUID-0645E265-26F8-4F3F-BAD8-3548D543BCB1"
-locktitle="yes">
-<topicref href="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita" id="GUID-A55D5346-D056-43A7-9C62-C278A1705441">
-</topicref>
-<topicref href="GUID-308A3F78-3DD6-443A-B021-B8E2C2DFEE4D.dita" id="GUID-E0ECE054-35BA-4CF2-B856-FA88E2C9A8C5">
-</topicref>
-<topicref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita" id="GUID-CB60436C-B504-49A0-8D74-9FBAB76AD220">
-</topicref>
-<topicref href="GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita" id="GUID-833DFB7C-760F-4DF5-A8DE-6EB737E51483">
-</topicref>
-<topicref href="GUID-1955F591-2D2C-42EE-AF03-7BBBEE1A4005.dita" id="GUID-1E1A38A8-C8FA-4902-8AEE-DAEC081EF8D9">
-</topicref>
-<topicgroup id="GUID-D71314CE-C6FF-49FC-9421-7D8D87E5760D">
-<topicref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita" id="GUID-B4D0D08F-9BA3-4458-845C-B728258510F8">
-<topicref href="GUID-07A42662-87A1-4537-89B9-F87DFC8481E8.dita" id="GUID-30805B71-4F66-4DAB-B34C-DAFA3CC8C042">
-</topicref>
-<topicref href="GUID-0348B62D-1AE0-45F5-B06E-9EE2D83326E8.dita" id="GUID-1EEFAFFD-9070-48CB-A447-0329512B362F">
-</topicref>
-<topicref href="GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1.dita" id="GUID-5629E63F-B2A7-4315-BBF1-3AA4F7709155">
-</topicref>
-<topicref href="GUID-226EDECC-BE24-412C-945D-7EABE566282A.dita" id="GUID-0A339538-5016-4251-9264-F9B7D629ABB3">
-</topicref>
-<topicref href="GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E.dita" id="GUID-3446D8FF-B3AD-4F28-85E7-30D37EA9A033">
-</topicref>
-<topicref href="GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06.dita" id="GUID-3B2CF6FA-5550-4330-AD9D-B83C3F997BF3">
-</topicref>
-<topicref href="GUID-788BC010-536D-4089-9B12-4A43A9C1C82B.dita" id="GUID-AE67C353-0750-45F5-B5A8-5B4ED171BBA8">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-36BB2E12-6C7A-4AE1-87D0-65D618B9F455">
-<topicref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita" id="GUID-172A4FC6-BA1B-49FF-8C85-AD122E7E0363">
-<topicref href="GUID-3F7DA54D-28D5-4099-B4EF-728489DCEF2C.dita" id="GUID-61909988-501E-4190-A274-0F439F082DE3">
-</topicref>
-<topicref href="GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576.dita" id="GUID-596D84E2-50D9-43B2-96F7-831C813F94BC">
-</topicref>
-<topicref href="GUID-16D0854D-55EF-4E22-B7D2-72603699BC59.dita" id="GUID-16B83CF3-5552-4647-A33B-D2FF884CFB8A">
-</topicref>
-<topicref href="GUID-32756B46-DAB7-44FA-B710-33EC36E1409F.dita" id="GUID-71A1C677-7818-4095-946D-41A734133FC1">
-</topicref>
-<topicref href="GUID-FE922294-380D-447D-AC46-A46EFAD79168.dita" id="GUID-C2BCE4C9-DA2D-4697-B528-53A3FFC93D98">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-D1E74090-DF50-48D4-8C27-542685C09F03">
-<topicref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita" id="GUID-BD3F5CDA-D923-428B-B461-A68B5BB05B5D">
-<topicref href="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita" id="GUID-5B23E520-6530-4B2A-AF10-BF657E70E296">
-</topicref>
-<topicref href="GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF.dita" id="GUID-45D280F2-D9D3-49C9-835F-637FD1049B96">
-</topicref>
-<topicref href="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita" id="GUID-DFB9F0B8-9535-474E-AD14-897B0E28F7FE">
-</topicref>
-<topicref href="GUID-10CF321F-3298-4527-BFF5-0351085C7C8C.dita" id="GUID-AF2F6783-8ABE-4DFE-9E66-21E12FFA3280">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-825B45D2-6561-4694-8603-06F017CC6C9C">
-<topicref href="GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita" id="GUID-AEFEE7A9-73A5-40BF-8714-D62320CD0492">
-<topicref href="GUID-6B50C0B9-C3CB-4524-909D-7FD096A3F894.dita" id="GUID-0CE179F5-CF65-4C30-835E-2849764131C9">
-</topicref>
-<topicref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita" id="GUID-B6412B20-E203-4115-870B-271762193D8C">
-</topicref>
-<topicref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita" id="GUID-E9AD7953-9DA3-4D7C-BCDE-8AAD1DFEDE0B">
-</topicref>
-<topicref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita" id="GUID-475B158A-E559-4D8C-9957-8CE7E01C14E5">
-</topicref>
-<topicref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita" id="GUID-2EFB966C-197C-4A30-AAB7-F77D71BFC9A8">
-</topicref>
-<topicref href="GUID-16950F22-F5DE-4D52-8414-544105BA3200.dita" id="GUID-2CA49DA0-B351-4684-8880-9CEDA94A421F">
-</topicref>
-<topicref href="GUID-85058500-87C5-457A-9567-ECAB29708759.dita" id="GUID-5771566A-65F1-4F3C-8907-CD8D7F9EA8CA">
-</topicref>
-<topicref href="GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254.dita" id="GUID-391DF6EC-A933-4732-B80C-CD41641238E3">
-</topicref>
-<topicref href="GUID-DAF35D49-9630-4186-A350-E8483693D50D.dita" id="GUID-DFB464F9-A599-46EC-B3CD-1FA8E8F1CDAB">
-</topicref>
-<topicref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita" id="GUID-522057DE-FF09-4EC6-8F82-C4AF6AF1ACB8">
-<topicref href="GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C.dita" id="GUID-D8EB490E-2229-474C-9D24-B76588006219">
-</topicref>
-<topicref href="GUID-03DE8DB5-BF37-4E02-BFB7-D14BD8B3E1BA.dita" id="GUID-5F5E5016-DDB6-4216-A1D2-1730D09E2479">
-</topicref>
-<topicref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita" id="GUID-D9C936F1-BAC3-4668-911F-AEAD92046111">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita" id="GUID-421C1703-271D-446C-84DB-77FC9FF03ADA">
-</topicref>
-<topicgroup id="GUID-BBAC6448-000A-4BD2-8007-0CBC80F9DE10">
-<topicref href="GUID-24D51B0B-7EBE-49AE-84CF-098096BE0A1C.dita" id="GUID-8C4A05AF-0DEE-470D-B132-E2505814409F">
-<topicref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita" id="GUID-F5DEABF3-476D-42B4-9969-C556DDFF0407">
-</topicref>
-<topicref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita" id="GUID-81ECBBAB-E8B0-4992-ACAA-26BDFC171331">
-</topicref>
-<topicref href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita" id="GUID-C0296E10-73FB-4E09-9BF5-88BD6E0A044B">
-</topicref>
-<topicref href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita" id="GUID-861472CE-FE37-4652-86AB-EF241174B5AD">
-</topicref>
-<topicref href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita" id="GUID-3B5D7E5A-A9D0-4741-B299-B0568E2BB8DB">
-</topicref>
-<topicref href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita" id="GUID-D1861B04-CF5C-44FC-BC86-8BC5FA0E95C6">
-</topicref>
-<topicref href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita" id="GUID-5BBD8736-A573-481C-BC94-EF99E253A9C4">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-9C04C2C1-5CFC-4AD1-84B8-730CF5D4BC18">
-<topicref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita" id="GUID-C684A768-B8E7-48F5-806C-6FF6515A9D1A">
-<topicref href="GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita" id="GUID-A80983DC-E20F-44B1-8BFE-743971E7F829">
-</topicref>
-<topicref href="GUID-B3760707-2810-4CD9-82C7-6A40DE638D36.dita" id="GUID-D6BA564F-6022-4526-9F5D-8BD17C2BB4CF">
-</topicref>
-<topicref href="GUID-6690CEFF-AE08-4881-AF52-70C097EB2871.dita" id="GUID-D458CF13-0BE3-4C00-974A-1E2DA7FE6030">
-</topicref>
-<topicref href="GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C.dita" id="GUID-070A0551-590C-4194-BD34-09D137FC5152">
-</topicref>
-<topicref href="GUID-03708BB2-68CF-4EFB-BE2F-C92DAD59F7F2.dita" id="GUID-341F9146-34AB-4A52-AA28-87639BFF6E53">
-</topicref>
-<topicref chunk="by-topic" href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita"
-id="GUID-9CDD8556-713A-45CE-A11D-E404C80AEB60">
-<topicref chunk="by-topic" href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-48363190-6FFB-4230-84B4-2E521EA51365.dita">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9.dita" id="GUID-D3E3D564-B5D6-4410-AA15-3586AB2802A7">
-</topicref>
-<topicref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita" id="GUID-1F66A730-EC3C-47E8-9681-996E5D3F7967">
-<topicref href="GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0.dita" id="GUID-F451A8F2-D766-4B10-864A-3DBBE1E95C1E">
-</topicref>
-<topicref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita" id="GUID-C9C01396-7DAB-4C6B-8F6E-3A585592D032">
-</topicref>
-<topicref href="GUID-1B64E1D9-33AB-4C28-A471-22D4C51FEC43.dita" id="GUID-29EF1E37-11A7-4B64-9025-F57F79929CA5">
-</topicref>
-<topicref href="GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF.dita" id="GUID-F2F974E3-B8FF-4EAA-8C26-F865D18F6A05">
-</topicref>
-<topicgroup id="GUID-846615EC-1D15-41D3-9056-40791434BDD5">
-<topicref href="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita" id="GUID-B3C9FFF8-27ED-4992-AA90-603DBC2A77C8">
-<topicref href="GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita" id="GUID-763BD4B0-7A92-4FD7-91EE-88B6949CB9B2">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita" id="GUID-14467F13-0456-4E72-A62C-57A33300FB27">
-<topicref href="GUID-567718E7-0267-4641-A9E3-538D893362D2.dita" id="GUID-96C09D34-DCF9-46A2-908A-5369BAA976D8">
-</topicref>
-</topicref>
-<topicref href="GUID-0A5BF022-48C0-4B3D-8368-A9C9F1D9F550.dita" id="GUID-14277826-E90F-413A-8F9C-17B86E97B9F5">
-</topicref>
-<topicref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita" id="GUID-F651EEDA-BB6F-4ABA-A95A-161755A99756">
-</topicref>
-</topicref>
-<topicgroup id="GUID-72FE6A60-C9D2-4768-94B1-1B957900C837">
-<topicref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita" id="GUID-8C0AD1D6-3F21-4671-AF6E-DCF0A227C641">
-<topicref href="GUID-48482288-B60B-477A-8E28-132F7CBE2C94.dita" id="GUID-9EF22563-D5C5-46E2-B7EE-6070A0A38C12">
-</topicref>
-<topicref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita" id="GUID-07639ADC-29D2-4DF8-81C2-5EAF0072830B">
-</topicref>
-<topicref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita" id="GUID-4F83B28A-F17F-4FEC-8997-00D3D3A6762B">
-</topicref>
-<topicref href="GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A.dita" id="GUID-F796238B-A1B3-49D4-B97F-B1FC59936C29">
-</topicref>
-<topicref href="GUID-F77CC49A-904D-486B-8D16-972525EC34D5.dita" id="GUID-745651C4-895E-4041-B016-29C62F7FC962">
-<topicref href="GUID-010627ED-7BCD-4AF1-BECB-661E21015E6E.dita" id="GUID-608D3C00-CBF8-422A-8551-CF2674CFD003">
-</topicref>
-<topicref href="GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE.dita" id="GUID-C9BB81E3-BEC5-4E86-91B9-1914F18E6EBE">
-</topicref>
-</topicref>
-<topicref href="GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF.dita" id="GUID-A68E01B1-5422-4C80-B5EB-250165F2F3D9">
-</topicref>
-<topicref href="GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0.dita" id="GUID-C6E8419E-D326-4CC9-8DD3-82AA16BFD0BA">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-48A2AF36-F39E-45C6-BC89-7DB40716E345.dita" id="GUID-5D80A6DF-932C-4C86-B9C7-C7CA429C79F2">
-<topicref href="GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22.dita" id="GUID-F2DA0F84-D3DE-4D93-B550-718063C900FF">
-</topicref>
-<topicref href="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita" id="GUID-CE177AEE-D1E6-4A38-9416-7829ED4FA50C">
-</topicref>
-<topicref href="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita" id="GUID-9B11F7AD-1204-4BBE-A8FE-6A14573CFFED">
-</topicref>
-<topicref href="GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747.dita" id="GUID-9BEAB37C-A7BD-4D96-A06D-3CC9F775829D">
-</topicref>
-</topicref>
-<topicgroup id="GUID-98C9FDFD-665C-4F6A-B244-028C7A7956AE">
-<topicref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita" id="GUID-A35C266C-9FC8-4DAB-BCEB-79BC1268A381">
-<topicref href="GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3.dita" id="GUID-2409B778-F711-4A5D-9002-202A067D9AF0">
-</topicref>
-<topicref href="GUID-02200D23-E8ED-432A-9D71-694A4558BD20.dita" id="GUID-B797D47B-204B-49CC-9620-33726015CE97">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-12B5BFEB-FAF8-43EE-AC40-0C8AD424164E">
-<topicref href="GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita" id="GUID-0EAE462F-B555-4F77-A30C-DA16F92AE426">
-<topicref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita" id="GUID-41F19B3E-61B5-4624-A38C-7CE618BE9C1D">
-</topicref>
-<topicref href="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita" id="GUID-1BD2791B-2CBF-4821-A9E6-6DB31025CAB4">
-</topicref>
-<topicref href="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita" id="GUID-05A11EBB-367B-4D18-9B0E-01DE15DA5FCE">
-</topicref>
-<topicref href="GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59.dita" id="GUID-62E12F57-12E6-444A-B5E5-5AD5169993A5">
-</topicref>
-<topicref href="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita" id="GUID-6DAD9BAD-26BE-49B6-B016-DE37A217C411">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita" id="GUID-9626B0E3-593C-4D20-AECB-2995F2880F41">
-</topicref>
-<topicref href="GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C.dita" id="GUID-304FCDB0-2B30-4019-86F6-B89A056DEABE">
-</topicref>
-<topicref href="GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8.dita" id="GUID-FC34AB9A-F1D8-4B80-9E6B-AFDEC7D70758">
-</topicref>
-<topicgroup id="GUID-B436BDB7-E088-439B-813E-8E3AA9544F29">
-<topicref href="GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579.dita" id="GUID-658B728F-32CA-4EE6-9922-4E35F1B060A0">
-<topicref href="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita" id="GUID-B1D1FC7B-6CEF-4127-B47C-796A9BA53C82">
-</topicref>
-<topicref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita" id="GUID-1A54421D-3A02-41B6-BADA-8A38D2F50180">
-<topicref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita" id="GUID-873423FC-8F18-4B1C-8486-526B95D2E7AE">
-</topicref>
-<topicref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita" id="GUID-CDCFFF50-2720-4F5A-81B9-E3136F6A5DC6">
-</topicref>
-<topicref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita" id="GUID-FFD24FEA-AB50-4FE5-957A-FDC386664D92">
-</topicref>
-<topicref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita" id="GUID-B0792733-0F71-4D70-868D-10C360BCF8A1">
-</topicref>
-<topicref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita" id="GUID-128DD6A2-904F-4CB9-9013-E80912ABAC29">
-</topicref>
-</topicref>
-<topicref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita" id="GUID-13C0D06D-BF18-4204-85C8-74B9C611A160">
-<topicref href="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita" id="GUID-B9EC7C23-3213-4645-AFC3-D6DE3F48E8D8">
-</topicref>
-<topicref chunk="by-topic" href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita"
-id="GUID-52C5A3B7-E19E-4614-A7F9-A7F9FD110007">
-<topicref chunk="by-topic" href="GUID-A3AF142B-F9DF-43FD-9D3F-788A74D0C575.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-5B26AB8E-E20A-4C15-B4F8-812ED9A4A96C.dita">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita" id="GUID-0DA7C5CB-8A2A-438C-AFD8-A17E3E250D20">
-</topicref>
-<topicref href="GUID-8E2FA5CC-C582-4321-88BB-C5CE3AA047FE.dita" id="GUID-284CC357-1D44-4A95-B56D-EEDDEE6576DC">
-</topicref>
-<topicref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita" id="GUID-DEB0BB06-C624-401C-A26D-C5DA25941C7F">
-</topicref>
-<topicref href="GUID-6ED556AF-080F-4CA8-9A95-F7B6DA34B0CC.dita" id="GUID-F4B8DF9D-A00A-454A-93EE-E5C1D637597A">
-<topicref href="GUID-F25C17AC-BA88-4965-BAE8-AEF0E2EA66EC.dita" id="GUID-ED77C7DB-7766-485B-9D4E-575E24017A47">
-</topicref>
-<topicref href="GUID-AD932CA2-80F3-4478-BFC4-73E501F4FF9F.dita" id="GUID-69F4BD79-27C5-4EC6-B99C-A2F1F9273472">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-</topicref>
-<topichead id="GUID-8C40E993-C9A0-423D-979D-7BB11CE091C1" navtitle="Touch UI support">
-<topicmeta><linktext>Touch UI support</linktext>
-<shortdesc>From S60 5th Edition, all GUI applications must work with devices
-that have touch screens. This section describes how to use UI components with
-touch support, and how applications can receive touch related events.</shortdesc>
-</topicmeta>
-<topicref href="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita" id="GUID-7D06954D-AAE5-45FD-BE63-7B8A364CF0A2">
-<topicref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita" id="GUID-4601D5D2-B205-45CF-99AB-501D7F09A798">
-</topicref>
-<topicref href="GUID-F3CB6985-A9AA-4E01-B157-5AB8DDC7951B.dita" id="GUID-4A89B6DF-D377-4E56-9402-43BC0776725C">
-</topicref>
-<topicgroup id="GUID-B167D7BB-09AE-43BB-B5E4-9E69C29A5C87">
-<topicref href="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita" id="GUID-414FF4D2-1B0B-4139-9A4D-D8C18F2BC5C5">
-<topicgroup id="GUID-C03FD94B-E295-4E6F-83CB-8A25FE02CB6A">
-<topicref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita" id="GUID-24014BF3-7F9F-44B0-A7AD-F00B94F92209">
-<topicref href="GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita" id="GUID-A59D1756-DEB3-4C33-B911-8F2037D93A35">
-</topicref>
-<topicref href="GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3.dita" id="GUID-509CB8CE-99A9-4504-BF4B-4BA227614CD2">
-</topicref>
-</topicref>
-<topicref href="GUID-056165A7-E8A1-4868-8051-9EC58C5A3342.dita" id="GUID-8C348325-A36B-4528-9F42-F5055A1354D5">
-<topicref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita" id="GUID-1AEFA8E7-00E6-46D8-8DAE-25C14322FA65">
-</topicref>
-<topicref href="GUID-3CA039D8-A74D-4C9E-B4F5-6E153C7F65A1.dita" id="GUID-7AEA27ED-4F18-409B-AEAA-09EE18EA7F80">
-</topicref>
-<topicref href="GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF.dita" id="GUID-E5880497-8B22-4911-9785-BEA88B409D20">
-</topicref>
-<topicref href="GUID-7BFEEDF7-3DB8-42FF-9D7A-F98E536F7686.dita" id="GUID-67C0A024-F61A-485B-836A-57ACF3F29B90">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE.dita" id="GUID-06C840B1-0BF6-4329-80EF-C27B6FE25098">
-</topicref>
-<topicref href="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita" id="GUID-9A7A1902-8166-4728-A853-943939E00191">
-</topicref>
-<topicref href="GUID-28A0E021-C702-4AAF-9C64-B60B09B40176.dita" id="GUID-D74751BC-FCE5-41F8-AB07-EFF1AF0017D8">
-</topicref>
-<topicref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita" id="GUID-C4E06E1C-CE04-404B-BE45-508220AABF89">
-</topicref>
-<topicref href="GUID-E764B4A3-4CEE-461D-B555-C8969A62130A.dita" id="GUID-7330A508-64E9-4D32-8064-9F39E1735406">
-</topicref>
-<topicref href="GUID-0504B740-FB22-4399-B16D-BE6030B512B3.dita" id="GUID-62C83F41-2461-4A47-98A2-169F559504F4">
-</topicref>
-<topicref href="GUID-295341D9-A5FA-4F25-B681-C5B3264165AF.dita" id="GUID-454DD631-4714-41DD-A7F1-A0C2B0B76A2C">
-</topicref>
-<topicref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita" id="GUID-D46A49B3-5159-4BBA-B3C3-C80C6D1402E3">
-</topicref>
-<topicref href="GUID-D9F25AAD-18A1-43AC-B59B-82396DAA68F9.dita" id="GUID-9A5A6FF4-6165-430F-8C44-E36C83879EFD">
-</topicref>
-<topicref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita" id="GUID-897D769C-0B4F-46F3-9D89-F1F6AB126A51">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-4407F7CA-6D08-4B9C-A0CE-37AFC8BB20B2.dita" id="GUID-46A6B7D9-EAC8-4907-BDA0-73CEFFF516F6">
-</topicref>
-<topicref href="GUID-A97250DA-A80C-4971-97DA-1C3E6520A44E.dita" id="GUID-76B1C555-D60E-4527-B3F9-72EC9AF6E33C">
-</topicref>
-</topicref>
-<topicref href="GUID-0C19D3F1-CF60-4760-8A77-242E14647738.dita" id="GUID-44887D83-0E8E-4571-9912-FEDEFCA4C585"
-locktitle="yes"></topicref>
-<topicref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita" id="GUID-59FDBD5A-EA97-4500-8A57-5A6C21E9C4B1">
-</topicref>
-<topichead id="GUID-FA9679A1-6FD7-4FB6-883A-D5719388A2B6" locktitle="yes"
-navtitle="API specifications">
-<topicmeta><linktext>API specifications</linktext>
-<shortdesc>This section provides information on using the touch UI component
-and tactile feedback APIs.</shortdesc>
-</topicmeta>
-<topicgroup id="GUID-236394C8-1EAD-4805-A29F-A052932FA1EC">
-<topicref href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita" id="GUID-E78F9E64-E602-4324-999A-4DA8A18FC592">
-<topicref href="GUID-FDD68915-5B6F-4091-A99A-64F91D508B3E.dita" id="GUID-AD8E7913-C724-494B-9A09-7AC27BDB8E47">
-</topicref>
-<topicref href="GUID-1E446762-AFE2-4198-8CD7-8C4466392543.dita" id="GUID-1D1DB3C4-675F-454F-9392-9F00C3C5EBEF">
-</topicref>
-<topicref href="GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita" id="GUID-B80586DC-617E-4A66-AEC1-AB24A8FC937D">
-<topicref href="GUID-462239D1-4B40-4342-92DA-32AB0AF0D2F2.dita" id="GUID-BB10B807-6C3D-4EFF-A986-C8AA5559F456">
-</topicref>
-<topicref href="GUID-17F3FFF4-00B8-492F-95BD-11AFF02CAAB2.dita" id="GUID-4CD7427B-9C30-4572-9D76-0C9C5BD11AF8">
-</topicref>
-<topicref href="GUID-F2397B5A-0700-46D5-8E07-CBB9F769DA01.dita" id="GUID-64A25E9E-28BF-446D-AA2E-D4DB14615FB9">
-</topicref>
-<topicref href="GUID-A84EDC63-0A74-4B93-BED2-7BE273A6DDB3.dita" id="GUID-BF885943-153A-4EFE-9BD5-E80DB911B5E6">
-</topicref>
-<topicref href="GUID-E332F544-0759-4C10-B29C-14AA5EAEBD49.dita" id="GUID-CF522C47-06CD-44F1-9ED8-718B41050E25">
-</topicref>
-<topicref href="GUID-73DD8A9B-6F7A-4BF5-87A1-5D86662B30D3.dita" id="GUID-AC4D076D-6DC4-47DE-BB93-A76087EEF197">
-</topicref>
-<topicref href="GUID-210606BE-A36C-4B65-B083-93F71024196C.dita" id="GUID-17170037-2CB2-49AA-8A91-3F5F4DC42155">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-BAC296CD-495D-43B1-A321-EE4AE064A474">
-<topicref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita" id="GUID-CFF9E4FA-02DC-4618-A478-81FD96E5CF20">
-<topicref href="GUID-730E1E2B-BB8B-4C66-8A70-0FBCE7680B66.dita" id="GUID-BEC861E9-16D4-4D1F-9305-0BA2ED3BC4CA">
-</topicref>
-<topicref href="GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita" id="GUID-04158E96-F346-4BAA-8502-98C997E9D0C2">
-<topicref href="GUID-CDBBD44F-C5F6-4D51-B4BA-23DA9BB58D69.dita" id="GUID-F0EF9677-B3E9-4FA9-8D7F-97AD23EA23BB">
-</topicref>
-<topicref href="GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita" id="GUID-2F5C570A-B520-49A0-A3DD-A19596945DCD">
-</topicref>
-<topicref href="GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita" id="GUID-5354D349-44EB-4EBB-A35C-9D5E40B7B51E">
-</topicref>
-<topicref href="GUID-089FE9FA-44C8-48D5-A473-9486BF763283.dita" id="GUID-218C6406-E3AA-4188-A296-6FB65DFDE2DB">
-</topicref>
-<topicref href="GUID-E1A2872E-6E8D-4C02-B3C0-23213FD56106.dita" id="GUID-CBF33FB4-1AEB-44F3-AD2A-A7475B757941">
-</topicref>
-<topicref href="GUID-62DF565C-8121-429F-99D0-B5FBDE634AA9.dita" id="GUID-CD7679CC-BDF1-4C5E-9006-DB7171C8F608">
-</topicref>
-<topicref href="GUID-79B4468A-2CF6-45E2-BC05-064CA300C12C.dita" id="GUID-D3C3B5FE-0350-4D11-9773-27B0FC2D8633">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-8B246A68-83D3-425B-863E-4F0997A88FF6">
-<topicref href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita" id="GUID-8605CB18-40CC-48A7-A819-38FD34C27984">
-<topicref href="GUID-2418E86F-BF82-4F2A-A056-5F1D0682C410.dita" id="GUID-38237D27-2066-4453-9998-1D0EA10EDC65">
-</topicref>
-<topicref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita" id="GUID-25F164A7-9F37-472C-AF6E-1EE5B5ADDDB2">
-<topicref href="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita" id="GUID-0EB5B82D-D469-4853-AC33-DEDF9059B276">
-</topicref>
-<topicref href="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita" id="GUID-40B54F5C-10FA-4113-BC8B-085B1C911CDA">
-</topicref>
-<topicref href="GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24.dita" id="GUID-135FDFAD-8657-4B5E-A6B4-55147A80E7E0">
-</topicref>
-<topicref href="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita" id="GUID-4D68820C-CD6C-49FD-BB05-A63C8A822962">
-</topicref>
-<topicref href="GUID-7B863846-7666-4FBF-90B2-52F847710C45.dita" id="GUID-9515D6ED-75DF-446E-B1CD-77CA2585977B">
-</topicref>
-<topicref href="GUID-D932955F-30AA-40C7-9653-63E48C38BECB.dita" id="GUID-3C3AB949-9CAA-4DE6-AE2B-38C25A25C0BB">
-</topicref>
-<topicref href="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita" id="GUID-5DDACAE5-2EA1-4ECB-BE54-F04EA5A61991">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-748C772D-953D-4A1D-9A21-F6E751109D66">
-<topicref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita" id="GUID-27FB835E-D7F8-4D81-A742-C7F6E8693F91">
-<topicref href="GUID-C9F4AF3A-158C-4438-930D-9E351B89280C.dita" id="GUID-96CFF11E-F604-44B2-A0BE-86C56601DA14">
-</topicref>
-<topicref href="GUID-B8C3E562-EE45-47F2-BC00-F6C10ADD3026.dita" id="GUID-1D16F631-E6CE-40F3-8B1B-F25580A634CC">
-</topicref>
-<topicref href="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita" id="GUID-B3458D57-1F39-449D-9AFE-0A2E749EC9DC">
-<topicref href="GUID-27897E0D-D9D6-4007-A45E-62C366F1267C.dita" id="GUID-8B0976E7-A155-42C9-AA40-AD4CC447E909">
-</topicref>
-<topicref href="GUID-10A03A8E-E967-4F9C-B911-2F06031C6ADC.dita" id="GUID-B9C41FFF-4681-41FA-991F-31FBF7D2012F">
-</topicref>
-<topicref href="GUID-129FCE62-5498-4717-864B-7DC6A5C5944D.dita" id="GUID-208E395A-5CB3-4868-A0D1-DEF6C0AF0967">
-</topicref>
-<topicref href="GUID-842D8557-076B-4A6E-B823-81164368FD86.dita" id="GUID-49BA6818-0B30-4836-9AD9-2C9F358004F5">
-</topicref>
-<topicref href="GUID-BF6ECC83-C7A0-4183-B835-6299CC2114AF.dita" id="GUID-4FE13322-CC93-4320-9CCD-6D88049D418C">
-</topicref>
-<topicref href="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita" id="GUID-2BC1B3D9-F95A-449E-A818-C9EADE1B7B5A">
-</topicref>
-<topicref href="GUID-2BF409EA-82BF-407C-B048-DA0973B7F61D.dita" id="GUID-D19A47D1-D866-4B2E-A2C8-6906C9BDB924">
-</topicref>
-<topicref href="GUID-2632A013-AA87-485E-855D-C50E211057D6.dita" id="GUID-7F30FEB3-2EC6-4EDF-A661-3968BA222372">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-2527B02A-E623-4042-80E9-76A9CC0EF552">
-<topicref href="GUID-B876D548-FD40-4369-B328-7427002B4851.dita" id="GUID-6816E4CA-21EC-465F-A61E-04D402D0C250">
-<topicref href="GUID-DA37516F-874F-49B0-A176-73277BB86FD3.dita" id="GUID-1766BCEA-B354-41A3-8225-AB6AD9CCA2EA">
-</topicref>
-<topicref href="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita" id="GUID-B58D61FB-928E-43C8-A13E-27DE6608AC57">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-2F59C5CE-FDE7-4ED2-B37F-87559A0A87EA">
-<topicref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita" id="GUID-C618F5AE-4635-4879-9CA6-BB462F6A66AC">
-<topicref href="GUID-D9F8B338-5CFA-472F-8A16-B5251B1B5A81.dita" id="GUID-81C81FA2-ABE7-49E7-9685-C44018AD2AB1">
-</topicref>
-<topicref href="GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF.dita" id="GUID-F41D99A7-8618-4956-BA78-8BB82C827472">
-</topicref>
-<topicref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita" id="GUID-DBC33539-74A2-4F31-B115-AED4795A051E">
-<topicref href="GUID-402C3EE7-8852-49B6-BE62-8588753FAC8F.dita" id="GUID-AECCFCD7-21D4-4442-8524-744984FF34D6">
-</topicref>
-<topicref href="GUID-58318BAB-2EC4-4C9E-A7CA-580E701EE54F.dita" id="GUID-1DF62E68-CA63-4B07-9E25-66F72D8C8B6E">
-</topicref>
-<topicref href="GUID-BC3207BF-9E9F-4BA0-8F01-B72228110A61.dita" id="GUID-09E00CD7-067B-4324-A61C-AB7B4B2CE6E9">
-</topicref>
-<topicref href="GUID-3FE04A31-C35F-47E2-B615-6C1202FB8485.dita" id="GUID-38C16196-8E3E-4CA3-B5E2-6116BEB90223">
-</topicref>
-<topicref href="GUID-7AE34C8A-50C6-49BA-9E43-AE76873B5E12.dita" id="GUID-F0CB070B-4DC0-4120-895F-59D6DAFC7A28">
-</topicref>
-<topicref href="GUID-81424A53-F598-4E25-BA0A-E2FFA8BCDF2B.dita" id="GUID-28CE2C05-3E39-40D4-92D5-9D89476300D0">
-</topicref>
-<topicref href="GUID-8845AFD6-F238-43FF-BD7B-902CD8CD3973.dita" id="GUID-E10B3E1B-C083-46D8-BD09-4304E9381D20">
-</topicref>
-<topicref href="GUID-A32FFE7A-A531-48D4-AD23-1CC13CB7F4B7.dita" id="GUID-7016E7A0-F357-4801-AFDC-2640232405B4">
-</topicref>
-<topicref href="GUID-A4D8326E-E72F-443D-9CA5-7835D6AE171F.dita" id="GUID-AEA1524A-A902-45AD-A9C8-39281DBBBFB2">
-</topicref>
-<topicref href="GUID-2D390781-4467-403D-8FFC-8ED5B2319993.dita" id="GUID-81830A70-988F-498A-BAE4-E8EAD8381A0A">
-</topicref>
-<topicref href="GUID-6113CC3B-F994-4AA8-81E9-50433A3266E2.dita" id="GUID-0D54C348-338C-4E64-9969-8409C4B33DE6">
-</topicref>
-<topicref href="GUID-A168E5EB-4CF7-4B74-B67C-EDFD5378C5BF.dita" id="GUID-4105B1E1-A88F-46C6-8F4D-32D2D463227F">
-</topicref>
-<topicref href="GUID-270FC83E-1D47-4CF9-A560-FB5DDA53111E.dita" id="GUID-C4E01CC6-C3F7-4037-9797-296B211D6564">
-</topicref>
-<topicref href="GUID-8F2D8656-B7F4-4BDA-81CB-8440A2FDDD82.dita" id="GUID-DF781209-26D3-4B9C-BF30-B4A3948B2C6B">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-17AD7BD1-350D-4897-B347-83569FFE40AB">
-<topicref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita" id="GUID-792BA40C-BCE4-4E42-B8F7-F5A55B502B86">
-<topicref href="GUID-0C85D5DE-D78D-4DDB-BA00-6278690C1047.dita" id="GUID-B537ECE0-E49D-436C-939E-D9E5A07AAF4B">
-</topicref>
-<topicref href="GUID-E0C21636-657A-413F-A905-A08608B60768.dita" id="GUID-74411132-B422-4806-AFB5-A700E12B76B8">
-</topicref>
-<topicref href="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita" id="GUID-D45B0314-5F27-48D5-92D8-DAF13354A734">
-<topicref href="GUID-4102F39E-6215-44AD-9E30-6D8E86114D7D.dita" id="GUID-AD96A558-BE0C-48D1-B22D-9F1F23913845">
-</topicref>
-<topicref href="GUID-C0C93B8A-C63C-424E-9C30-5D69C1578660.dita" id="GUID-4A005732-2BC2-4FB7-8254-72264CCFA094">
-</topicref>
-<topicref href="GUID-96228425-F2C8-4767-95AD-520C655B73C5.dita" id="GUID-8117BE28-22A8-45CC-99F2-308185819C5B">
-</topicref>
-<topicref href="GUID-92281C52-4F2E-4D9A-9D5A-E0C5F0433339.dita" id="GUID-4CAEE0D5-A6BA-427C-B056-D590D890F856">
-</topicref>
-<topicref href="GUID-BEA5E4F1-B355-47A1-99DC-8E8EDB7B1CB3.dita" id="GUID-4D2439FC-EA74-48F7-8114-AA7D354BB30C">
-</topicref>
-<topicref href="GUID-BF3767E9-054E-4894-9216-00866FC9C3D8.dita" id="GUID-7BF5C602-FEEC-4E9E-8E96-5781D91B08D8">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-</topichead>
-</topichead>
-<topicref href="GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF.dita" id="GUID-9A297D81-2483-4307-A0B4-DEF9D9C3C775">
-<topicgroup id="GUID-796DFD35-6BE3-48FB-8CFF-FD613483EE6E">
-<topicref href="GUID-6EF9F8EA-AD61-4AEA-9457-FE645EED2E4D.dita" id="GUID-5C797E9E-84EB-446B-89E8-F4A5808009D6">
-<topicref href="GUID-6067DF61-D32F-4029-ADCD-9E69CA564212.dita" id="GUID-64C958E5-E76B-445E-A2AE-9144314B9242">
-</topicref>
-<topicref href="GUID-04B044E7-5F10-47BC-B95F-27B62C2870E8.dita" id="GUID-18A5CB05-4BFB-4731-9A1E-9C0A37D7DF1E">
-</topicref>
-<topicref href="GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6.dita" id="GUID-B51CA5B3-3677-4254-8345-28A622693D50">
-</topicref>
-<topicref href="GUID-6146A5BB-1AC1-48D4-9EB8-7FA4EC35BFF2.dita" id="GUID-6EB84ABC-DA1D-42AA-8BC0-D982D50DF3E0">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-F5371A59-A637-4623-A2C0-9A8B8E5F3CFB.dita" id="GUID-78C6B864-7B72-4243-B599-E1A89D728F9E">
-</topicref>
-<topicgroup id="GUID-A095757E-E39E-4A03-833A-B793BF0591EB">
-<topicref href="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita" id="GUID-EBDDDF1A-4920-463B-A923-E0DD5A9591BD">
-<topicref href="GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589.dita" id="GUID-FE48E146-F5F8-46D8-8A26-A605119E2F8F">
-</topicref>
-<topicref href="GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C.dita" id="GUID-9C21A75C-7C7A-4485-B5A0-9E8398F6FBD4">
-</topicref>
-<topicref href="GUID-ACF69260-D643-4709-8DAB-33FD92940F86.dita" id="GUID-17059B9C-E2BB-41EA-8A3E-66B3AE99DAC7">
-</topicref>
-<topicref href="GUID-D458A54E-0D19-479C-B628-001C704E1CB3.dita" id="GUID-69DF74CA-81BB-4FF5-AA4E-81B9BFA17F18">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-644810EC-7D5E-4569-834B-C207447B88A3.dita" id="GUID-A38E7B52-9B9D-49DA-AC66-DF45E4A93D5F">
-</topicref>
-<topicgroup id="GUID-F4681B8E-B1C6-4BDC-A6CB-B793A3FEC78C">
-<topicref href="GUID-4067B0E6-9431-4325-95F7-78B143EED326.dita" id="GUID-8D780712-F018-4EC1-ACCA-56C9F8ABF6E1">
-<topicref href="GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E.dita" id="GUID-AC3A71E4-2BF8-4410-9DC3-0182A986D0D5">
-</topicref>
-</topicref>
-</topicgroup>
-<topicref href="GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6.dita" id="GUID-04304A6A-23BB-411F-B30D-A8C01737D49F">
-</topicref>
-<topicref href="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita" id="GUID-63588E70-F592-4632-990D-34684513FCFC">
-<topicref href="GUID-E8B0BDC7-714E-48EF-89F3-D8B7B34552ED.dita" id="GUID-6C0A5B35-8C70-4B9B-AF0A-03661FB7FD6A">
-<topicref href="GUID-2FDD1CAE-0FBF-4CC4-9C16-5AE4F538ED85.dita" id="GUID-478D4855-4DBB-43D1-B580-CD66B4F46FD3">
-</topicref>
-<topicref href="GUID-4352F2A7-2498-40AA-A335-4A8407497976.dita" id="GUID-46C4B86B-5613-4E07-BBF4-7482AC949322">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-FD23218F-D4A8-41BE-8A41-B2BE783F5B60">
-<topicref href="GUID-620CD3E3-61C4-4643-8922-48DEA9EF0A6E.dita" id="GUID-CB4CCCB2-2886-4B5C-9DB9-D50C16285E10">
-<topicref href="GUID-38FBB22E-828E-43C9-8E18-A05AFF47D76B.dita" id="GUID-F8A40744-AD02-49A9-9386-BB0398EBEA36">
-<topicref href="GUID-7BB755B3-B34F-4F09-AE83-336D4F5556D0.dita" id="GUID-1C842476-04BC-4D42-8077-057A3D70A09A">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-E41EF1A0-AD55-4C7F-B9CD-97910D251F34">
-<topicref href="GUID-8F2D6AC8-8357-55C7-970B-CD2684BA9B04.dita" id="GUID-A6F49F89-18A4-4DBE-A9D8-78B5CA461AA9">
-<topicref href="GUID-3EF88A1D-CCB6-5DE5-9CA6-F6E785A6898A.dita" id="GUID-41D60A6D-085B-4568-BFC9-5A5B039AA71F">
-</topicref>
-<topicref href="GUID-8905A627-1D13-5066-ABC4-7E0AF07D96A5.dita" id="GUID-9B803205-E779-46CE-B8D2-294652308D90">
-<topicref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita" id="GUID-2A99FB5C-7330-42EA-A16B-4A15D73E1EBD">
-</topicref>
-<topicref href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita" id="GUID-4BFCC50A-C2F4-4BB7-89A7-5E5D81096E72">
-</topicref>
-<topicref href="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita" id="GUID-3EB81B99-6929-4702-A792-7495075016CF">
-</topicref>
-<topicref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita" id="GUID-B882EFE9-F6C8-4E78-9267-BE154D111522">
-</topicref>
-<topicref href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita" id="GUID-01F7864B-2B6E-45C5-8463-CC4096DF4292">
-<topicref href="GUID-5580195F-3DE7-55FA-B2C1-91A950A39C6E.dita" id="GUID-4AB09EEE-0365-485E-911D-2AE7390B996B">
-</topicref>
-<topicref href="GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita" id="GUID-2C24F0AC-1D9F-46A9-9144-21BCBB3AEB82">
-</topicref>
-<topicref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita" id="GUID-DD38D86D-9E71-49D3-8AEE-58BF4476FFB7">
-</topicref>
-</topicref>
-<topicref href="GUID-75132B6C-2305-57B1-B969-B4F639B29852.dita" id="GUID-A6E29F2E-1B3E-4E45-B075-E817506F9C1D">
-</topicref>
-<topicref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita" id="GUID-2915C98F-48B5-40D5-9257-B41899834A40">
-</topicref>
-<topicref href="GUID-F8069628-BD32-535C-963A-A1CF8172E275.dita" id="GUID-9424A99D-85EC-46EE-8172-83E80230A1BA">
-</topicref>
-<topicref href="GUID-EDC16636-B24E-598B-9084-EAE782A4A213.dita" id="GUID-0E55767C-7D6C-486D-B3B5-76F24DC38101">
-</topicref>
-<topicref href="GUID-B93D6BAE-B9B9-5118-92DF-5E566E5BE8EB.dita" id="GUID-EB9ABA25-927F-4D41-A156-8C33499BAF60">
-<topicref href="GUID-83E4F989-0B73-5E83-8547-AB3070492CBF.dita" id="GUID-9BE316E7-9CDA-45BA-A798-C88819F63FBF">
-</topicref>
-<topicref href="GUID-FEB6F717-C86C-54A5-B8D1-B2D882C5AC55.dita" id="GUID-D366206B-473D-43B7-AE0E-A3A422E70E39">
-</topicref>
-<topicref href="GUID-282CE322-923F-58F6-804D-E125ABACB025.dita" id="GUID-CE4E1AC6-FB27-4B7C-ACCC-2A45B656012F">
-</topicref>
-<topicref href="GUID-35AF5E92-7103-5A86-A3CC-B2CED7E9793B.dita" id="GUID-F98DD418-C686-40E9-A485-23E5CE23E673">
-</topicref>
-<topicref href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita" id="GUID-972B060F-6669-4E1A-98DC-D6A780A35DD0">
-</topicref>
-<topicref href="GUID-F49A5630-0BDE-5214-99F9-E4DAC9C5B548.dita" id="GUID-FD92888B-5A1D-4892-AE28-08B7367E34DB">
-</topicref>
-<topicref href="GUID-1DE160DB-8054-5522-95F7-4CE5D8FFBF2E.dita" id="GUID-E7692386-3C6D-4AB5-8364-A092C3574318">
-</topicref>
-<topicref href="GUID-08CCCF43-A742-547B-A0E0-F5F6176DABCE.dita" id="GUID-C78BB6D0-47A5-4915-9663-EFBC1AE9285A">
-</topicref>
-<topicref href="GUID-6BDF4599-B89B-5C4B-9795-B4C5C5F5CB5B.dita" id="GUID-699BA787-D539-4A03-8F52-9718DECB8FAD">
-</topicref>
-</topicref>
-<topicref href="GUID-FD8AD44E-271D-514C-A52A-513E7C8AD207.dita" id="GUID-EEE48931-8569-4884-8F1E-F1A23914D6D3">
-<topicref href="GUID-0AC0CBBA-87AD-5F94-8F0D-D13654ABB631.dita" id="GUID-53A06DFC-63B2-4E06-A0D8-DA1A382AC265">
-</topicref>
-<topicref href="GUID-0EF25CCA-1E6B-5B62-8E77-9A670986C5EF.dita" id="GUID-A83DDC1D-3FE0-410D-9B6A-1FF12CBF4352">
-</topicref>
-<topicref href="GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita" id="GUID-FA5CCA77-732F-489E-BE51-D20CDA873EA2">
-</topicref>
-<topicref href="GUID-84C20E6E-C5DF-5346-84A3-2D8C701303C8.dita" id="GUID-A9F00E5D-58EF-47C7-A868-35919B87A103">
-</topicref>
-<topicref href="GUID-935DF48C-F014-5E2A-8BE6-29B00C4FD31D.dita" id="GUID-4E1EFE48-63E1-49E6-9A9D-382E19A945A8">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C3018CEE-865B-595A-A735-40E11665E50A.dita" id="GUID-A036BB9C-68F1-4B77-BEF7-14664A94DBF2">
-<topicref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita" id="GUID-358E5F8E-5D40-4C38-BE20-F4CEE91A1C9E">
-<topicref href="GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita" id="GUID-001FF52D-425E-4D27-8A13-D71B890F962F">
-<topicref href="GUID-9665C072-EA52-54B8-87A3-A7F818940DCD.dita" id="GUID-23AEB39D-9042-4BEE-BA6C-3D904FA1D5D7">
-</topicref>
-<topicref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita" id="GUID-AA4F9080-9B88-4EBA-99AA-304910532F33">
-</topicref>
-<topicref href="GUID-B85CA4E7-3DF5-5D5C-BF7B-5D0DDCD468AE.dita" id="GUID-8DFD68D0-2F07-4274-87D9-BC912F734919">
-</topicref>
-<topicref href="GUID-0D1E30D8-D900-5FD9-BD1F-1B93BAD8AEF5.dita" id="GUID-E0A6385B-54D3-4392-943D-29E670190B30">
-</topicref>
-<topicref href="GUID-231840A2-255B-5200-8AD1-1D7667FCB448.dita" id="GUID-76E8276F-2878-499D-8275-8EEC96735799">
-</topicref>
-<topicref href="GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08.dita" id="GUID-BD902741-8512-4EB1-8B21-06F82BD746A8">
-</topicref>
-<topicref href="GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08.dita" id="GUID-12B36D32-631C-4E3E-8216-538F573CD821">
-</topicref>
-<topicref href="GUID-4C35C86A-D57F-503B-8E55-5D235E0D6DA0.dita" id="GUID-8AE305EB-8C69-4118-B103-49873DFF1BCC">
-</topicref>
-<topicref href="GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9.dita" id="GUID-BDD6C08A-02FF-4482-8A2B-56358F91F89A">
-</topicref>
-<topicref href="GUID-1D836FB1-9BCA-53B5-8334-08CD59064227.dita" id="GUID-30943964-D45D-427D-A77E-298ED97CBD8D">
-</topicref>
-<topicref href="GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC.dita" id="GUID-0FB72F1B-E964-45BE-A8C7-476543A44634">
-</topicref>
-<topicref href="GUID-5D712F4A-E956-543D-BCC0-91107C6E4717.dita" id="GUID-F6D7FA2E-04D4-4BC7-A7F5-07901F17FB5E">
-</topicref>
-<topicref href="GUID-B89D2828-0FEE-5206-97D2-C7D4BBD35799.dita" id="GUID-029B2A19-DA5B-4C9E-BDB3-5C21B15EB97C">
-</topicref>
-</topicref>
-<topicref href="GUID-0CDA8FCA-AABE-5988-9467-30AA1AECCC90.dita" id="GUID-C0EBE095-54E7-4F1C-8562-23197B8DFE47">
-</topicref>
-<topicref href="GUID-5F641F7A-AEAA-5C3E-9179-C3707F10E6DC.dita" id="GUID-1AE9C488-06F1-4D4D-8D17-C800461A986F">
-</topicref>
-<topicref href="GUID-CE011029-0F2B-50D4-B793-A24C7ECFC21E.dita" id="GUID-07673129-E9CE-4FBB-A75C-9330BB6D8F88">
-</topicref>
-<topicref href="GUID-ACE7D63F-9544-56DB-A72D-FFB0A35661EC.dita" id="GUID-5B1AE236-0F33-49C6-9D4E-571D8B452954">
-</topicref>
-<topicref href="GUID-E4874B22-474B-56D0-8A8A-C60411D3CBCB.dita" id="GUID-FFF080C6-4327-4BEC-AD86-A418447C6733">
-</topicref>
-<topicref href="GUID-9D56FF77-A20B-5BFB-8DE6-19CC4535DFED.dita" id="GUID-2C43E06F-52FC-4C5F-A4D4-429003761B8F">
-</topicref>
-<topicref href="GUID-A96ABD2C-A338-58E5-A674-E840B1F53670.dita" id="GUID-63C4F134-9AEC-4043-BADC-4584230461C9">
-</topicref>
-<topicref href="GUID-F48CC072-66A0-5DBA-99A2-2F3BABF83BEB.dita" id="GUID-7920F94F-99DD-4A6A-90C2-4E48CBD3EF8C">
-</topicref>
-<topicref href="GUID-A19A1F43-E42B-5FC2-AE58-A7BC67B6733A.dita" id="GUID-C1DBEB8A-5665-426E-9E77-2CF481440929">
-</topicref>
-<topicref href="GUID-58089281-9DD0-502D-8DFD-831E7BAA931E.dita" id="GUID-349AEF40-4B66-4BE8-9F9D-59C9860000D6">
-<topicref href="GUID-4E4C842F-1AF6-505D-B378-2043FDD8985C.dita" id="GUID-5190EDD9-349F-42A3-BAAF-FCE07D0FC4D9">
-</topicref>
-<topicref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita" id="GUID-95BD9152-9F59-43C9-A0EE-8A072CFB8EA5">
-</topicref>
-<topicref href="GUID-FD0779D4-7B98-50A9-A2ED-2F3CA5EE51C1.dita" id="GUID-E3186A2C-D923-4C58-AA24-B475B300CA37">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-12D1F61B-6BC6-5215-A832-E84C0F480765.dita" id="GUID-342F5BA7-2A80-4057-BE0E-C6329C0F9701">
-<topicref href="GUID-A248C2C0-5F64-5484-85B2-57C86E3499E1.dita" id="GUID-8BE46DC9-F1C9-4CE5-8684-CA94AF5573B4">
-<topicref href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita" id="GUID-209A09D0-17BA-425E-9779-359289F5191C">
-</topicref>
-<topicref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita" id="GUID-223A8E6A-E313-46EE-9D3D-FA7AF071AA07">
-</topicref>
-<topicref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita" id="GUID-34AD2E2C-7A5A-41FA-8049-A79E7B8330D2">
-</topicref>
-<topicref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita" id="GUID-FD22F918-10B3-4F75-8554-E15700FF87CE">
-</topicref>
-<topicref href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita" id="GUID-40348BE9-105E-4C3D-A26A-927734328EEA">
-</topicref>
-<topicref href="GUID-F0891698-F714-55AA-A089-790BB0B07AE4.dita" id="GUID-D6D6A0DF-DF2B-4EF5-83FF-182BE374CBBB">
-</topicref>
-<topicref href="GUID-E4D47AED-5FCA-535B-9B8B-3267A4CD01C2.dita" id="GUID-B91BA656-0F0C-4BDB-96D5-21B9D321B75C">
-</topicref>
-<topicref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita" id="GUID-0195B9C8-946D-41D5-A02F-3E507023136D">
-</topicref>
-<topicref href="GUID-0995EBF6-D203-57B3-9F53-972AEB8F3D3C.dita" id="GUID-0618C5EA-AA76-4EA2-A82C-43A99ADADD2F">
-</topicref>
-<topicref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita" id="GUID-CB3C5D81-D81B-49D2-B12D-2A13FC2A5E04">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C7213C52-F867-574E-B99A-93BA92A1FE2F.dita" id="GUID-84CEB456-DA46-489C-A0FC-D29E6C369920">
-<topicref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita" id="GUID-092D7805-0723-434D-AE45-2B78C83B891B">
-<topicref href="GUID-A4726E90-4F72-5986-947A-D948A8029240.dita" id="GUID-8FF89F77-722B-4118-8C87-E09761749BBE">
-<topicref href="GUID-236D3822-13C3-5AD8-B0FB-C28732E17CF7.dita" id="GUID-FE541C41-9C44-4D4C-876E-352FB86F647F">
-</topicref>
-<topicref href="GUID-521837E2-583C-5C7D-85F7-D936C77AA84C.dita" id="GUID-C2394895-DC88-444F-AE93-CFE0B6F7F3D0">
-</topicref>
-<topicref href="GUID-EAE7819B-45C6-579F-BC01-82CB70294153.dita" id="GUID-5AAF6FB3-1E3E-4ABE-BC8F-F042D8022576">
-</topicref>
-<topicref href="GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2.dita" id="GUID-1286E7B1-7DBB-4769-A3EE-71593BAF4338">
-</topicref>
-</topicref>
-<topicref href="GUID-9142B2F6-8D93-5366-9B3A-4932D2C7988E.dita" id="GUID-1CE38A5E-4272-410B-9F1F-FC9B6CD518D3">
-</topicref>
-</topicref>
-<topicref href="GUID-31C265DA-5B54-5E6B-98E4-EE90A2AAF4D5.dita" id="GUID-4F55ED20-9E6F-474B-8973-25125D825E59">
-<topicref href="GUID-7324A06C-981B-568D-BDFA-EFE21049431C.dita" id="GUID-10FB30B7-AEDB-4F2A-B0C3-FF70860C75BD">
-<topicref href="GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC.dita" id="GUID-12C6279E-1338-4469-A60C-9C155B9DDC26">
-</topicref>
-</topicref>
-<topicref href="GUID-FF48E99A-551E-58E2-84C4-1985B557CCA4.dita" id="GUID-9C23E521-1AC0-44AD-80C5-82B246F0B909">
-<topicref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita" id="GUID-5C77BD71-B448-42A1-8038-BCF8A217A2F8">
-</topicref>
-<topicref href="GUID-35DE6C87-0C47-5D06-AC8E-3C39DC463F0C.dita" id="GUID-74A1BE29-B74B-4902-B6F5-7DD73BC50E98">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-2139B04C-6ED6-599B-A018-D92451B8353E.dita" id="GUID-E3DA26A7-8A08-4A30-B08A-69375A0E60D3">
-<topicref href="GUID-695B292F-114C-528F-9F71-1D03801D2203.dita" id="GUID-33665E56-4C01-4239-9E75-DB3B36BF5587">
-</topicref>
-<topicref href="GUID-31371091-A28D-5203-BE6A-0F182F99582D.dita" id="GUID-EFEDC558-D68C-4EDA-98CF-DC32EF332485">
-<topicref href="GUID-A51FE292-3E9D-52FE-B751-246C64F30BBC.dita" id="GUID-254A59B3-299F-40FA-9346-F18AB2201450">
-<topicref href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita" id="GUID-8874FFB1-207B-4B7C-8869-A9C84EAC7F7A">
-</topicref>
-<topicref href="GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita" id="GUID-15FC979C-07CF-48EB-96C9-CA0E60961205">
-</topicref>
-<topicref href="GUID-B380482B-CF42-50BF-B09C-F4B3BDAA1679.dita" id="GUID-C1DBB043-9D4A-4857-9F18-88DBC17C2196">
-</topicref>
-</topicref>
-<topicref href="GUID-82499F0B-2791-59B6-9BAE-F9F87234FBF1.dita" id="GUID-71FD4AD3-E79C-4B90-A302-AC4CC198B6C4">
-</topicref>
-<topicref href="GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita" id="GUID-0CA4A1C0-D49E-4BAE-B708-E71E6A48B276">
-</topicref>
-</topicref>
-<topicref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita" id="GUID-A5ABD986-F9B4-47FA-BB56-90A465742162">
-<topicref href="GUID-A80ED7B2-4A58-570A-A671-4F4B1BB9FDAF.dita" id="GUID-A340D3F5-99B0-41E4-9024-DC3A9A3CAFF3">
-<topicref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita" id="GUID-82DEE705-0309-4BD6-9426-1D2EDB69DE82">
-</topicref>
-<topicref href="GUID-D1BCE2D9-04B5-5C39-A50B-C5BBDAAFEFED.dita" id="GUID-89C9B770-0CE6-4FD9-907A-E2D816ADCF1F">
-</topicref>
-<topicref href="GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2.dita" id="GUID-38882E7C-E861-427C-BECC-C39CDECEFCA0">
-</topicref>
-<topicref href="GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8.dita" id="GUID-C76ED3CB-63A6-4282-A8CB-6E2801861E75">
-</topicref>
-<topicref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita" id="GUID-E80BE21E-ECCD-4F66-B0B0-983721A02314">
-</topicref>
-<topicref href="GUID-06CE943B-3D6A-50D1-97C3-CCFE4D4F5864.dita" id="GUID-2B618852-F1DA-4734-8FBE-BA96DF033FEF">
-</topicref>
-<topicref href="GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD.dita" id="GUID-1BF20209-BAC0-43A1-81A6-AF824E9AB653">
-</topicref>
-</topicref>
-<topicref href="GUID-E9E2783E-44A0-5BA6-BBF3-D13C8D67B53E.dita" id="GUID-8305F0C2-FD9E-4D0A-B9D3-914BB5F90281">
-<topicref href="GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B.dita" id="GUID-2BA537EB-BAF8-4C7E-AB00-4D19E7078467">
-</topicref>
-<topicref href="GUID-722180B8-0032-5C3F-AEB2-A9B1261450D8.dita" id="GUID-55F45255-C043-4F07-B16D-41036B41E13F">
-</topicref>
-<topicref href="GUID-782AA56A-D3CF-5239-AB62-9AE6741964E8.dita" id="GUID-38D0EFBF-5585-45B6-9D10-6B7787C106AC">
-</topicref>
-<topicref href="GUID-FCCE497D-1DA8-544B-A973-831E97DB5569.dita" id="GUID-EBC40C5E-58A7-49B7-BC5A-6BA6A575FE1F">
-</topicref>
-<topicref href="GUID-05E3ED3B-41F8-5FC2-87A2-627BD5E6BB04.dita" id="GUID-A32A5C42-E89B-42D0-86AD-0ECA71697BC2">
-</topicref>
-<topicref href="GUID-3AB8E95D-4270-5CDE-994E-404BCBEC57B6.dita" id="GUID-A563D1FB-00EE-4425-A57E-67C5C4C9DE14">
-</topicref>
-<topicref href="GUID-0116F567-D005-5480-AB37-9799398C0E6F.dita" id="GUID-EAD652AF-7A7A-473B-859F-9E9200914F1B">
-</topicref>
-<topicref href="GUID-7FAE6FE0-D5CB-55D4-94B0-ADD545577CA7.dita" id="GUID-3F1D3E28-B291-4F3F-B5B1-697A0B8AE85C">
-</topicref>
-<topicref href="GUID-E3E19113-AAEE-55C2-8016-11D492123762.dita" id="GUID-4C54F7FE-8D03-4514-B138-8102993F7062">
-</topicref>
-<topicref href="GUID-F67F8930-7F8A-5497-AAD9-D7789B437478.dita" id="GUID-AB23E29E-9773-4BA5-89AD-BF5280A4F825">
-</topicref>
-<topicref href="GUID-4C7ABD1C-B42C-590A-AD24-7FA6C3A8D18C.dita" id="GUID-7D9A13C5-2535-49C0-994B-6EB1B6FB494B">
-</topicref>
-<topicref href="GUID-E34D0F11-4B34-575C-BE78-8EAD13E9CD64.dita" id="GUID-DFD13E7B-128E-4B0C-95B5-282AED8C14A6">
-</topicref>
-<topicref href="GUID-AE31B2A5-40BA-5FD4-9CCA-2CDF5B00DFDC.dita" id="GUID-8C98BD38-1931-4E27-AF90-129DC07DB333">
-</topicref>
-<topicref href="GUID-3101392C-A9FF-5F56-8872-5A03D053565E.dita" id="GUID-51D0BDE1-F172-4DEA-85FC-87BB0233C2AF">
-</topicref>
-<topicref href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita" id="GUID-A1A5C3BD-4029-4E30-B5D9-5EB59E69CED6">
-</topicref>
-<topicref href="GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita" id="GUID-253801A8-2C89-45AC-93DC-22289415534F">
-</topicref>
-</topicref>
-<topicref href="GUID-69B5906E-63F5-59C6-A82C-DA4386B20F9F.dita" id="GUID-4212C42E-A465-42AB-BD04-AD02E10F2BC0">
-<topicref href="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita" id="GUID-25CD20B8-985C-4157-8799-55677A38B090">
-</topicref>
-<topicref href="GUID-9CA1C115-2DA3-59A8-AAE7-E99928B889BE.dita" id="GUID-DE7BB224-5F55-46E3-A340-ED5C9E7993B6">
-</topicref>
-<topicref href="GUID-5CFC075C-8F53-5E1B-A111-C6F4567DFD1E.dita" id="GUID-16A2BB6B-1E0A-4E25-9DF0-293989423D5A">
-</topicref>
-</topicref>
-<topicref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita" id="GUID-05AEAAFE-0B1A-4556-8A1B-57128722C3B2">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita" id="GUID-64C4195E-F5E1-4084-A0DE-70230A935D88">
-<topicref href="GUID-6C7B7778-9B2E-5D8C-B2D8-74AC1DEEDF61.dita" id="GUID-0F4965C2-E679-4D9C-A2F5-2B952E3914A0">
-<topicref href="GUID-107AE89E-901E-535F-8D1A-EE347D7822B1.dita" id="GUID-B1BD4678-B212-4135-BB03-85D921E18C7C">
-</topicref>
-<topicref href="GUID-D99D9DA3-AB82-5513-85C3-FFF254CB9B0B.dita" id="GUID-097DFF93-5363-4E82-9AF6-DF086BB9493B">
-</topicref>
-<topicref href="GUID-C7E37B5D-C7AA-5624-B34F-B3CA44516E1D.dita" id="GUID-B229F9A6-E960-46EE-9872-F7C14637672F">
-</topicref>
-<topicref href="GUID-9D9A67E0-CA0D-51B9-BD0D-3F474E90808D.dita" id="GUID-DAAA4A2F-9AA6-4A89-ABF5-6C3CA85246EF">
-</topicref>
-<topicref href="GUID-399AE85E-9A5F-5748-864E-51C3F417D45B.dita" id="GUID-E488B68C-23D7-4ACF-8F5D-E7F2872FD46D">
-</topicref>
-<topicref href="GUID-97E8BB93-DFEC-558F-BF7A-0F5FF0D16F06.dita" id="GUID-69FDC2E0-2C03-40CE-A24A-63F693890BE5">
-</topicref>
-<topicref href="GUID-768E599C-3EDA-5AC9-8D27-7C6240B0CC63.dita" id="GUID-2F345781-5645-495A-88DE-062E99F0A3C2">
-</topicref>
-<topicref href="GUID-C258D231-4B08-51C4-BA09-8C61239666E0.dita" id="GUID-ECFC0E2A-8E16-4062-8BF3-568A2A9C3432">
-</topicref>
-</topicref>
-<topicref href="GUID-EA83150B-8076-5EA5-BE78-962FB450E848.dita" id="GUID-3667A6A7-BD47-4E2A-AD36-57F66C3FF098">
-</topicref>
-<topicref href="GUID-468EDD07-3868-550B-B1C9-E79FD728F9B9.dita" id="GUID-AB5CCFF0-262C-4AC7-8A20-BDB715867302">
-</topicref>
-<topicref href="GUID-699E6012-92E0-56A2-943A-B6282E6A86B5.dita" id="GUID-70526871-36C5-4F7E-8C35-1E8BF30FC308">
-</topicref>
-<topicref href="GUID-D30B09D1-6537-58B4-B94E-13EAD5A28EE0.dita" id="GUID-0E2E0F96-6CD8-4B87-B6C9-D943EF28EFB2">
-</topicref>
-<topicref href="GUID-0A61CB48-B8EA-5516-B24E-65898CDF2566.dita" id="GUID-A19012A6-DD82-4E44-BA40-D887FA43E7F7">
-</topicref>
-<topicref href="GUID-922442FC-D9E0-53BD-B8AD-011A724C96FF.dita" id="GUID-E459AEA0-8DCD-4A90-A673-3710C6C1504E">
-</topicref>
-<topicref href="GUID-57A909F3-EAEA-5FE2-B620-E21204794497.dita" id="GUID-6785A1F6-13BA-4F41-9A41-C3E6C9F8ED8C">
-</topicref>
-<topicref href="GUID-5D47DBF8-3DFE-5D0B-95B2-63302E91C423.dita" id="GUID-C8EBA877-6DD7-410C-BD1A-FD0F90234303">
-</topicref>
-<topicref href="GUID-397239F9-7EE8-52CF-9B37-328AE307BAA0.dita" id="GUID-E978D9E2-9015-4822-A295-CB236BA54AF0">
-</topicref>
-<topicref href="GUID-934AEB9C-77EA-5F50-BB84-2446DDD432C8.dita" id="GUID-80106314-71B2-41DC-9ECE-A5CBE7B58EB6">
-</topicref>
-<topicref href="GUID-31E9F790-8A47-588C-A515-D2C8CD367ADE.dita" id="GUID-4A31D0B2-7C7D-4014-AB50-7C4329336017">
-</topicref>
-<topicref href="GUID-294EF1C3-E7EC-5B93-B4F4-ECA50DD6993F.dita" id="GUID-3D0448B8-D6E0-4630-8061-99879481F83E">
-</topicref>
-<topicref href="GUID-BD9CBBE8-9389-50F9-98B1-0A07F7E2891C.dita" id="GUID-2BA77133-E145-4B66-9C42-5A0F111E7226">
-</topicref>
-<topicref href="GUID-ED2F48EA-8C31-5729-B312-E925B7EC3B24.dita" id="GUID-D66F9478-0554-4453-B347-9AE7C9EB2BFF">
-<topicref href="GUID-DB6AF6D3-38B6-51EF-A830-388961A3BF04.dita" id="GUID-38DB1499-F552-44A6-B52C-5910C69EAE89">
-</topicref>
-</topicref>
-<topicref href="GUID-00B82F15-0ACC-59A9-AB9C-E4342ABE64D3.dita" id="GUID-C404159E-5A3A-4613-845A-AAD8FE2CB4AE">
-<topicref href="GUID-35D49549-1F4D-583F-A45D-9B557A207DD2.dita" id="GUID-1C118CB8-C663-4AED-AEA4-8204F89EF7F9">
-</topicref>
-<topicref href="GUID-2751DBB8-D882-5803-9881-1C1F7B4FE413.dita" id="GUID-11284743-4E4D-411D-B600-EF7AC4417FC5">
-</topicref>
-</topicref>
-<topicref href="GUID-152B5CE8-B689-5E99-885F-79FB0654B7D6.dita" id="GUID-063743CF-6D37-4921-ABCD-1C43FABA039B">
-<topicref href="GUID-7FA9E730-DBE6-52DD-87FE-B2D01EFAAE12.dita" id="GUID-29675040-1DF2-403B-8B66-37764B3BC20A">
-</topicref>
-<topicref href="GUID-21C4398F-0519-5107-A735-A7137A1595E0.dita" id="GUID-F51ADF30-4FFF-49F0-8099-429924F48592">
-</topicref>
-<topicref href="GUID-5B451D6F-1F3D-5B54-BBC4-212D04F9977F.dita" id="GUID-C75B3F65-CD84-45DB-B77E-9FD903BADBDD">
-</topicref>
-<topicref href="GUID-0E6C7017-E430-51C0-A5D6-1798B0DCC6BC.dita" id="GUID-6B26F04C-43F3-4FF6-81F7-5D35D8AE0288">
-</topicref>
-<topicref href="GUID-7651FA57-4C0E-5EB6-8DB1-AAF23D39CD7C.dita" id="GUID-EE2BE5F0-764B-4C63-BA32-8F37F445BCEF">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-36AF783B-A56A-5C16-A055-9075ED4396C5.dita" id="GUID-B06C48D4-1855-406F-868B-BEFE46A7DB53">
-<topicref href="GUID-810043A5-62FF-55D3-A908-973FFB72DA4A.dita" id="GUID-5C2727D2-0B0C-4262-BEFA-0B84D3FFA4F0">
-</topicref>
-</topicref>
-<topicref href="GUID-E1EF7223-02EA-5875-84E6-6415E7081F6E.dita" id="GUID-D4157C59-C202-41EE-BE4C-28F1527E4E8B">
-<topicref href="GUID-4A21335F-7752-5134-98C5-D21D4657E094.dita" id="GUID-E303D31B-8D57-4A7E-B328-49ACB232D15C">
-<topicref href="GUID-FF62C847-B887-573B-804B-C82335DA2FE7.dita" id="GUID-5A8D0EE0-271C-49D6-9EAA-096C628F8293">
-</topicref>
-<topicref href="GUID-E8BD8844-3297-5848-BDF0-F6D595367145.dita" id="GUID-AD8ABCAF-793E-45FB-9CF7-22C04DD6CF48">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-C2011C8F-A1F4-4DD4-A89D-613D3F810F7B">
-<topicref href="GUID-F8C8CE42-E7C9-5AFC-86BC-B78F677F1B05.dita" id="GUID-0944EF05-7348-43C9-9805-664E373ECA78">
-<topicref href="GUID-9BAEF0E8-5414-597C-B0B7-5F6E02DBF3C5.dita" id="GUID-660DE7BF-49D0-4F2B-A727-2E5C5D0136AF">
-<topicref href="GUID-8C8B97BF-E769-5C7B-A6E0-B8CA7F12071C.dita" id="GUID-010CD523-B9CB-46ED-9470-A2CF69081D9F">
-<topicref href="GUID-95493C3D-58C6-5EBF-85E1-167D58E68658.dita" id="GUID-2BDDD951-2E04-47FB-987E-72D40D23C988">
-</topicref>
-<topicref href="GUID-D009C6A6-3388-554F-BCB5-4F438E7F9E99.dita" id="GUID-881ED2E1-A1E9-4558-B0EE-474E6DAD7DF7">
-<topicref href="GUID-C4A072E1-4385-5C98-98C1-56F297132F11.dita" id="GUID-7A4CFF11-7E6E-44F4-B4E0-E7779B2E9C07">
-</topicref>
-<topicref href="GUID-E25A5C1E-83D7-51D5-8F11-9C44C6CEEDCE.dita" id="GUID-4B4F74B6-B1D8-4FE8-B847-7E530E6676AC">
-</topicref>
-<topicref href="GUID-8E25E84C-E8F3-50B2-82E5-0611A341ED27.dita" id="GUID-35F97D93-7CFC-480B-9A44-53985B9B53D1">
-</topicref>
-<topicref href="GUID-7DDF477A-1744-589A-82CB-3CB32D56D7CE.dita" id="GUID-C0DA469F-EF39-41EB-A4DD-65E65C3385AA">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-DC011D9C-6C39-5BB9-A7CC-4447AB97A2D2.dita" id="GUID-3859C639-D4B8-43FB-8E2C-B54DBB9C3A77">
-<topicref href="GUID-4F004877-DFDD-5282-B8B6-7F36D892B122.dita" id="GUID-62387F3F-1FE2-4823-BF0A-67A987DFC7B9">
-</topicref>
-<topicref href="GUID-F2289115-B1F0-595D-AA1C-3E01F08911CA.dita" id="GUID-9982ADB2-DED6-464E-A5FB-EE2F23B6702A">
-<topicref href="GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066.dita" id="GUID-03F18488-8C74-4713-A879-A95CF72E25AB">
-</topicref>
-<topicref href="GUID-25A005BF-731B-58DB-8EF7-AB7840DA563F.dita" id="GUID-1D02A5B5-8D6A-4540-A728-22E81CF1460E">
-<topicref href="GUID-1969956D-CDA0-5DA0-ACF8-69AFBBEC1408.dita" id="GUID-2D3BF353-43BE-4BD9-8564-19C4284FAD36">
-</topicref>
-<topicref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita" id="GUID-5C63812C-86C6-4B7B-AFE2-BB6CBACD0B46">
-</topicref>
-<topicref href="GUID-1E55DD3C-D699-5062-88C1-C826F06CD48C.dita" id="GUID-BAE50B59-5B2D-4E59-9D18-74CB4C3E6EAD">
-</topicref>
-<topicref href="GUID-16A42EB3-4F45-5623-9981-1DEE3234471E.dita" id="GUID-F88215B3-DDDD-4B1B-AB91-7770936B7338">
-</topicref>
-</topicref>
-<topicref href="GUID-2E3BE23C-B9DC-5B5D-A56A-1DB819EFC9A6.dita" id="GUID-A0B9D97E-D9E7-4B5D-9B3F-45D5AA7BEB5B">
-<topicref href="GUID-D4E06508-4346-5294-995A-64B403467EC5.dita" id="GUID-28B2428C-6357-447E-B5EA-E46A093F642C">
-<topicref href="GUID-CD87FAF6-A11D-4260-9472-CABA18BF86B1.dita" id="GUID-9A697F7B-F3F3-4DA4-9511-F437D1D99AB4">
-</topicref>
-<topicref href="GUID-4860A4E6-1641-47D9-8243-C03779276C6D.dita" id="GUID-DAB2B745-993E-4049-8A44-8E0FD58B5417">
-</topicref>
-<topicref href="GUID-D21191CC-965A-4F92-9792-4B34D54114DA.dita" id="GUID-D1D43E1D-C62A-4A84-915A-B51AC82C8C16">
-</topicref>
-<topicref href="GUID-6DA81F01-FBD7-4167-B722-832888DEC0AD.dita" id="GUID-EB130026-F8B5-422C-8A08-FF5160196CAA">
-</topicref>
-<topicref href="GUID-4FE4B515-EE2B-47DB-BECE-E390E4EB2C3E.dita" id="GUID-D51ADDDC-2975-4F01-AFE5-9D7D237D09D6">
-</topicref>
-<topicref href="GUID-056736E0-3DF0-49FE-A44D-1A8E47FE45A0.dita" id="GUID-46762AAE-1632-420A-973F-F330A8736B5B">
-</topicref>
-<topicref href="GUID-3715E8EE-FF0A-4344-90F1-1609D54C166B.dita" id="GUID-7119497D-65AC-4C19-8706-55DA6B185116">
-</topicref>
-<topicref href="GUID-CF6C76A5-AC87-4EBD-AECF-35B456219B94.dita" id="GUID-84D7F192-17CC-48CA-A6BA-92AB07C96A03">
-</topicref>
-<topicref href="GUID-2382F758-35CF-4378-A5D5-183121E3BF6A.dita" id="GUID-80024D1F-ECD3-47F8-BDA7-A2020D292BFB">
-</topicref>
-</topicref>
-<topicref href="GUID-D78DCB72-7CEE-5075-A6FA-58D57AB5BA73.dita" id="GUID-5DC5E9DE-6718-47B0-82DA-3A4A03223BE0">
-<topicref href="GUID-623CA1EE-4D25-495A-BD2F-BA7BF95D6D9C.dita" id="GUID-6317D9C4-074A-4256-9C58-4280FF7BF701">
-</topicref>
-<topicref href="GUID-D89D1809-0A64-4331-BA5C-2B82187BEFB6.dita" id="GUID-51C1B493-4DC8-4DA2-A799-1B2CBCD331BF">
-</topicref>
-<topicref href="GUID-AE5432AE-C699-4403-BCFC-474515C9BEC8.dita" id="GUID-D15074A4-9F84-4223-A903-451C8CCD9316">
-</topicref>
-<topicref href="GUID-F575F364-4BCA-42C7-BE00-7B31D8B55AE1.dita" id="GUID-C6B4A5BA-FC4C-4033-8979-05DE61525304">
-</topicref>
-<topicref href="GUID-B57857D6-F00B-458A-8194-42CACA0BF131.dita" id="GUID-A21FC3FB-A01A-4E1F-A0CE-EF046920C906">
-</topicref>
-<topicref href="GUID-B80ADD0D-2834-4478-A4AD-1FEBC0112A43.dita" id="GUID-80BFF756-84B3-4D32-BE1F-A6FBA23CE3DB">
-</topicref>
-<topicref href="GUID-A0122085-369E-46EF-9CA1-0269982A5284.dita" id="GUID-040091D5-A34A-4519-847F-8F86AC19754B">
-</topicref>
-<topicref href="GUID-2D8A7DCE-47A2-4326-BF2F-B4901F1723A0.dita" id="GUID-AB5DCD39-8068-4DA2-A90A-A144E64471E9">
-</topicref>
-<topicref href="GUID-D157C4D3-FC2F-47DD-BD33-F8BA6156833D.dita" id="GUID-7C708A27-82ED-4C3C-8352-6F6DB2E6A68D">
-</topicref>
-</topicref>
-<topicref href="GUID-03494D84-7E6D-5128-A8CF-2F6E25543591.dita" id="GUID-676944D5-6AF3-4812-92C3-3AECE409AAE8">
-</topicref>
-<topicref href="GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6.dita" id="GUID-9A82B8F0-E6C0-415D-AD64-122BFF5037DA">
-<topicref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita" id="GUID-88457FE8-21B7-464E-ADEA-74734D5E821A">
-</topicref>
-<topicref href="GUID-BC627588-E8C7-4DDB-8313-7C57E0CCD93B.dita" id="GUID-E49798B9-C3D9-443F-848C-556DE4F8F10D">
-</topicref>
-<topicref href="GUID-7CF7D29B-14A4-432E-BBB2-E3AF283E45E3.dita" id="GUID-428CCDCE-F394-4581-89BE-467863E38F77">
-</topicref>
-<topicref href="GUID-FC7F8CFE-F9AD-4442-9289-CCEFEC62DF68.dita" id="GUID-AFE7861C-EC04-48FF-89F8-DA8D3F3EAD50">
-</topicref>
-<topicref href="GUID-6A0D353D-A9B0-46EA-8FDC-1FBBD4A20CFB.dita" id="GUID-EAD4AEEA-B880-40C4-BCCF-B00895CBE301">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E3ADCC42-ACFC-49FC-88FF-8196CE61014B.dita" id="GUID-5EA45326-FFB6-4DB1-9522-616CB4DEDDB5">
-<topicref href="GUID-0F784804-8452-4C92-ABB3-56B81BAED744.dita" id="GUID-FDB93F11-C38C-4389-9996-60DECA19DAE0">
-</topicref>
-<topicref href="GUID-9102DB10-3B93-4E79-9125-25791CEEBEFB.dita" id="GUID-5DBC9086-1293-4DB5-9F3C-05B602043A96">
-<topicref href="GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27.dita" id="GUID-338B00F5-C445-44E7-871D-C0118CB5A305">
-</topicref>
-<topicref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita" id="GUID-BE8B746C-D4C5-4B47-8D7D-5DAA272B1433">
-<topicref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita" id="GUID-68E682C4-6E9A-44C3-B44D-ABD5509B21C7">
-</topicref>
-<topicref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita" id="GUID-1F831306-5758-4767-8BCA-5C3434E7882A">
-</topicref>
-<topicref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita" id="GUID-1B03AC04-83F2-475D-83EB-124A1EE3EC51">
-</topicref>
-<topicref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita" id="GUID-30D309B1-68CA-43C7-A1B0-8237B5C2CE71">
-</topicref>
-<topicref href="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita" id="GUID-C919B9B5-5886-4DD7-AAF2-F21F6887F6DF">
-</topicref>
-<topicref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita" id="GUID-CDBB5B15-5652-4F6A-A149-AD9AD4CFE980">
-</topicref>
-<topicref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita" id="GUID-421B4F84-A2AD-4DDF-868C-D6D8D1E6341E">
-</topicref>
-</topicref>
-<topicref href="GUID-4DBE9AD9-2942-450B-B43C-3F2B47777357.dita" id="GUID-0CABF0AF-2E52-41CA-BB7E-92191E99CF07">
-</topicref>
-</topicref>
-<topicref href="GUID-7FB1B44E-B3FF-4765-88E3-A7FDB4FA8413.dita" id="GUID-A2724541-5D30-4791-B4EF-D41DD7668582">
-<topicref href="GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692.dita" id="GUID-A4EE8E73-4C62-445B-945F-D9552969BB73">
-</topicref>
-<topicref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita" id="GUID-D256F5A6-3AF5-4978-976C-4E0C5686754C">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-EC97E835-2A08-40DC-BEF8-5DABA95C520A">
-<topicref href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita" id="GUID-76B8A735-7107-466C-B08E-9B18454869B7">
-<topicref href="GUID-58CA15F8-D984-5D07-8C00-161FA16A8FD3.dita" id="GUID-EE18D17B-B934-4692-95C6-BE9C74CE5F06">
-<topicref href="GUID-C38E6D35-43DF-54E6-809B-A7B871258944.dita" id="GUID-29D6055E-AADD-4981-AA0C-E56CBC540E2D">
-</topicref>
-<topicref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita" id="GUID-C2B8AA19-05CA-4454-9553-61D04AC689EB">
-<topicref href="GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita" id="GUID-387DE239-C3D5-4697-98B7-D2F89D69B2C8">
-</topicref>
-<topicref href="GUID-D2E19490-4179-548F-9DA8-9AE637FAC9E2.dita" id="GUID-6959A098-5F4B-4591-8DD6-143D13747370">
-<topicref href="GUID-C4CC3CA3-8C02-5F73-A482-4F849DD08111.dita" id="GUID-905EE182-39C5-495A-96B6-022698777013">
-<topicref href="GUID-3CAD7211-2164-5F93-9EA7-7167E1C14012.dita" id="GUID-FFF37C24-7D04-4426-AD39-814BCC50D516">
-<topicref href="GUID-BD7C45B2-11BF-5162-9F9B-B84E51C5C6D4.dita" id="GUID-ED83033A-1182-4D37-8E5E-1A024067D715">
-</topicref>
-<topicref href="GUID-A3320A1E-E85E-508D-A47E-E35824C947A3.dita" id="GUID-077DB33D-F45F-416D-AC39-E0597533B701">
-</topicref>
-</topicref>
-<topicref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita" id="GUID-E22FB347-9F72-4457-82BD-F99086F01FAB">
-</topicref>
-<topicref href="GUID-B5F98445-3CFF-5067-B89A-AC80F56C40C3.dita" id="GUID-3136A621-2B12-4216-B73E-DC35458B8675">
-</topicref>
-<topicref href="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita" id="GUID-B7117D80-8E89-460E-95BE-B587EC172B8C">
-</topicref>
-</topicref>
-<topicref href="GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99.dita" id="GUID-BB3D4795-9B90-49BB-8742-D31EE1587CF0">
-</topicref>
-</topicref>
-<topicref href="GUID-737ADA8D-5B7E-5408-9929-3EB9A3B4FCB1.dita" id="GUID-6CD5511B-AE86-4B38-91EA-FC44C5A89DA4">
-<topicref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita" id="GUID-D4BB5AB5-8234-44A6-BF72-953F4CF3C20B">
-</topicref>
-<topicref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita" id="GUID-68209A0A-A97E-44BC-9432-A02266D06AB6">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-D468BDDD-FC61-5571-A4E2-334B6BB9C1E3.dita" id="GUID-CA1CC888-E8F2-4BB4-A6B9-EED9DBE690CA">
-<topicref href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita" id="GUID-4E7041C6-37FB-4783-90B7-DF6229DED33B">
-</topicref>
-<topicref href="GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6.dita" id="GUID-B841B565-97A2-413D-A3DF-0EC054FFAE97">
-<topicref href="GUID-2D6689C2-F17D-48A8-8EC9-3D83BCAA3681.dita" id="GUID-BC81563A-3B52-4B23-B8B0-CE73BD209859">
-</topicref>
-<topicref href="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita" id="GUID-FD7EE15B-0115-4EC7-8E77-6A3451C772EA">
-</topicref>
-<topicref href="GUID-4ADDDAFE-0941-4787-B07B-F5B7D8D5B1AA.dita" id="GUID-31ADF479-CA9F-44A0-9CDC-C32A879EECA8">
-</topicref>
-<topicref href="GUID-A399508A-DE6A-490D-9BFB-4FCF56FF9D4C.dita" id="GUID-D8172F24-C1C4-4E38-A22F-380B53B295A5">
-</topicref>
-<topicref href="GUID-13D2B45C-3A2A-497A-8D6A-87BE34D1DE69.dita" id="GUID-B8BFBE01-015D-4F00-96B0-CD9313C7BD53">
-</topicref>
-<topicref href="GUID-940E3C48-D0ED-419A-9172-E4856C6CA809.dita" id="GUID-4E0CF6AA-0265-4D58-AD1F-E9D6E0F0B600">
-</topicref>
-<topicref href="GUID-210A181E-5EB6-4626-9E7E-8761A2272D79.dita" id="GUID-00435298-E984-4A0A-8FF6-7167B19790B2">
-</topicref>
-<topicref href="GUID-AC6FCBB0-E4FD-4D30-B000-1F652B2EE96A.dita" id="GUID-A75A1D17-7D87-4AFC-A9D5-2F229E1E84A6">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1FB321DE-4A02-5468-9AF1-F3786EB678CF.dita" id="GUID-0B60672E-ED65-4EC5-B999-C9CA26742726">
-<topicref href="GUID-CFE3A216-E637-51C1-B258-2ADF4E0F4150.dita" id="GUID-EA5EF987-DDF9-4736-AA02-1CB887627F4D">
-<topicref href="GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6.dita" id="GUID-C49F89D4-2C0C-435E-9AEB-C0C04C84DE6D">
-</topicref>
-<topicref href="GUID-E6788741-EF34-57B7-B4D4-8AAC21B25774.dita" id="GUID-FAA8A348-BA9D-47D5-B249-9FC7DBD0AE39">
-<topicref href="GUID-27009193-6170-42B4-A258-E7B694EEC8EB.dita" id="GUID-FF4DA7F2-47AD-4BF1-8B6B-8C7B57CCD59F">
-</topicref>
-<topicref href="GUID-51F43258-B3D8-5EC9-85EF-67F09499C253.dita" id="GUID-9494B1A0-93F1-47ED-B1F3-25CCCEB18EBA">
-</topicref>
-<topicref href="GUID-FE2E8E58-6656-534E-A052-095AF559A482.dita" id="GUID-A1406192-4612-4339-80CA-3CB6C44DD44A">
-</topicref>
-<topicref href="GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita" id="GUID-CBDB9FA6-1FD4-4ED6-AD25-C3D7A95B2FEB">
-</topicref>
-<topicref href="GUID-9BE3DEBE-A1CE-5A2F-9746-1E6F2B5B050E.dita" id="GUID-9C811EF9-BFB9-4C7D-8459-9A6EB4347B2E">
-</topicref>
-</topicref>
-<topicref href="GUID-63730EBD-E5C1-5BA9-AB71-8FF668ECEF00.dita" id="GUID-319BCB40-CA68-4FEC-9DC4-F243C4536062">
-<topicref href="GUID-078492C7-7E25-5D6E-B6BE-3A5DAA4522DA.dita" id="GUID-12D91254-4424-4823-A747-6D5F47FD92C0">
-<topicref href="GUID-70CD9D74-8592-45F2-A91F-AD34ED93CB3D.dita" id="GUID-905A5BD5-9894-4826-BBFE-E8DA8F202149">
-</topicref>
-<topicref href="GUID-F4B61436-5496-4913-A769-794318C6B964.dita" id="GUID-FE10ED40-BFAB-42FB-BBE4-5C7B383F0F5B">
-</topicref>
-<topicref href="GUID-41F1AED1-7BE6-42CF-BC4A-E913A6F2D5E6.dita" id="GUID-FBA2D7F9-CDC9-4B07-9BC9-55C5AD2CAC24">
-</topicref>
-<topicref href="GUID-A8EE55C2-0636-44E2-8B2B-05EA8D4A96A4.dita" id="GUID-83410A83-C3B9-45BD-A2D5-E28832926987">
-</topicref>
-<topicref href="GUID-E173DF0D-DBE3-45DE-8763-453940DF3E5B.dita" id="GUID-1EDC3DCE-D8C5-4830-9FB5-D21DE335BF36">
-</topicref>
-<topicref href="GUID-D158746C-6043-4ED4-833B-85C82831A66B.dita" id="GUID-96D15869-796F-4243-9D0F-854802F319D4">
-</topicref>
-<topicref href="GUID-7440BE0A-6E4A-493D-8105-80DDABD6F3EB.dita" id="GUID-A8EF81B8-941D-457E-B62F-B4DC8A69A8AD">
-</topicref>
-</topicref>
-<topicref href="GUID-59D2B677-63D7-5FE7-98F4-549D9C235E56.dita" id="GUID-8E1D6136-22F5-468D-94EB-1AE7F6B7CCC0">
-</topicref>
-<topicref href="GUID-387DB01C-EA48-5A10-A960-9706F3D2D0B1.dita" id="GUID-924ABB70-5EEA-4207-9E74-4222FAEBEF64">
-</topicref>
-</topicref>
-<topicref href="GUID-7BCA8B7A-E250-5452-9837-26C60F71F14F.dita" id="GUID-6711F98D-F871-4087-9417-2789F6FB9904">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-CFFA84F1-2A5E-5E73-B168-C79C2E4DC75D.dita" id="GUID-2F70B264-808E-4AA2-BF58-EBA327016585">
-<topicref href="GUID-33BFC72A-2246-5366-81D7-72AB5B730F8F.dita" id="GUID-51EAC122-7EB9-4B34-8CCD-88922727B7E7">
-<topicref href="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita" id="GUID-BA62AB9E-95CF-4B5B-8E17-7ED992A0A48A">
-</topicref>
-<topicref href="GUID-99ACBD00-2F61-5984-BE77-91D5EF547289.dita" id="GUID-A4637348-4030-4F8F-8437-24EA5A788671">
-<topicref href="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita" id="GUID-DF89FA1B-4C09-4BAB-BF98-3C6EA6D7DEB4">
-<topicref href="GUID-49C93C36-D86B-4EEE-A8AB-4279312DF4BC.dita" id="GUID-78CB3752-1E54-40A2-B321-886708072C56">
-</topicref>
-<topicref href="GUID-008F9006-8548-443D-A7ED-4A8233E051C6.dita" id="GUID-17BE50F9-BCF0-4469-A33F-09289771AC52">
-</topicref>
-<topicref href="GUID-436B6DFE-D279-44BF-B099-B2547D50610A.dita" id="GUID-845CB7D3-7478-4DC6-AC71-CBF9B1146A4F">
-</topicref>
-<topicref href="GUID-22F4D9EA-9912-466E-B729-7706BC17BDA1.dita" id="GUID-C10942AC-9AEF-428A-B089-A7A9599615DC">
-</topicref>
-</topicref>
-<topicref href="GUID-C1C0E7DF-6519-5648-AE5E-6D149AF1A89A.dita" id="GUID-F2488028-19B1-4DC5-AFA2-8B964E7F4689">
-<topicref href="GUID-A7DFDC4F-56C2-46B3-8B76-A6488BE4ABE0.dita" id="GUID-62306088-F692-4FA4-B519-39A28E59D543">
-</topicref>
-<topicref href="GUID-5E7A1041-B0E1-47E3-A3BF-6C9AE221B98F.dita" id="GUID-D54BF97B-E095-4C13-B05D-FBDC0F39BD33">
-</topicref>
-<topicref href="GUID-FC46AA09-3E04-426B-BAC0-A992EA1AE0B6.dita" id="GUID-F271978F-6335-4D67-B6F2-5874B0ABD09B">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-9B8655A7-2F6D-53E0-8855-78D88BB84643.dita" id="GUID-1D46280E-D7B3-480E-9F96-FC845A8B74CB">
-<topicref href="GUID-0C0A85D1-BC15-502F-9DD1-A48C0A908CED.dita" id="GUID-29962AA4-F244-4377-AFEC-FC08E310666B">
-<topicref href="GUID-65282D5B-E911-5C7E-8571-0FCDCD1C1713.dita" id="GUID-C994AC1C-3EBE-435C-A931-EAE5AF87F038">
-</topicref>
-<topicref href="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita" id="GUID-C32A620F-CC76-42C0-96F8-7CB1C6E5D26A">
-</topicref>
-<topicref href="GUID-DE099071-8401-5DD0-B72A-672B307463A2.dita" id="GUID-15FF47E3-FF92-4977-80FA-BBF3DFD512A8">
-</topicref>
-<topicref href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita" id="GUID-9AB73114-A0AB-4211-A8B3-42896826BC4C">
-<topicref href="GUID-DA204619-9F02-5854-80BE-0AC6BB80D730.dita" id="GUID-DDFBBC8C-7487-4AD8-9E55-E33CC85C4845">
-</topicref>
-</topicref>
-<topicref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita" id="GUID-F10B7B8B-DC5D-4517-AB9C-FC0C9E8851D5">
-</topicref>
-<topicref href="GUID-643BECA3-FC08-58D0-8E1B-D3ECAEB25CB5.dita" id="GUID-385AEA99-CB86-4E91-9841-22B86495C0F6">
-<topicref href="GUID-B5696711-C79B-5239-B587-33507BF2B3BE.dita" id="GUID-E2DE92F7-36AE-4119-B142-004DAAE0E89E">
-</topicref>
-<topicref href="GUID-3F577531-9798-537F-8F8B-7CAB0257560C.dita" id="GUID-DF6E09BA-DF11-4F5D-BEF8-5D414DBBFB99">
-<topicref href="GUID-69CFCFF4-68C7-5345-ADF6-449E9E98297D.dita" id="GUID-9F56C7DA-ADAF-487B-8C7B-D2493E927DDA">
-</topicref>
-<topicref href="GUID-4C31BFCC-BC2A-55B1-8D3B-3355032E2062.dita" id="GUID-3EC57562-27B0-4422-8C54-9D10C0B1CFEB">
-</topicref>
-<topicref href="GUID-9EBF45BC-79C3-56B3-B52A-A4C3D615602C.dita" id="GUID-BFA7F64B-5877-4E07-A740-527AD0042488">
-</topicref>
-<topicref href="GUID-729289F7-D0CD-5B50-AA8D-A86C35034076.dita" id="GUID-A8C79F36-A481-48EC-8CD5-398F62759CCC">
-</topicref>
-<topicref href="GUID-4576A9FC-10EF-5D3A-9AFC-3BF9CE10EE2F.dita" id="GUID-E54550F0-93B5-466B-9A1E-04E8F86885DC">
-</topicref>
-<topicref href="GUID-89E0E8FE-6575-5A30-B25F-A873F5C5F389.dita" id="GUID-9190443B-DAFB-4765-941B-48E7383E2AE8">
-</topicref>
-<topicref href="GUID-22D7E6E9-D47D-52F0-A9DF-C69075DBEEC8.dita" id="GUID-007144DA-C7BB-4684-A615-2531C964D31E">
-</topicref>
-<topicref href="GUID-12E2AFC9-0010-5ACE-9635-6EBC4036E36A.dita" id="GUID-3EA5DE88-2D38-4026-93BC-0C2C6FB7C40D">
-</topicref>
-<topicref href="GUID-0EAB8D75-AA27-5548-8D0B-FC394AC79358.dita" id="GUID-EF533C50-9BF4-45A5-9A52-A0F1960B7FEE">
-</topicref>
-<topicref href="GUID-E1634502-483A-51F3-9F5D-C863C8C9465A.dita" id="GUID-7FC6D88B-36F7-4AED-A92B-1537CBCDB640">
-</topicref>
-<topicref href="GUID-3F1FA838-4B65-5692-8B73-AFB9896E5F10.dita" id="GUID-2336E6E5-3C51-4CA4-8499-8D7B37EC0F1F">
-</topicref>
-<topicref href="GUID-728F278B-30C8-5FA8-AD03-4C759690416E.dita" id="GUID-F45F334D-40E2-46DB-9A86-8400398CBF3F">
-</topicref>
-<topicref href="GUID-7C645FF2-4785-5716-9674-B3A224F6C0D9.dita" id="GUID-E46ACE89-447A-4277-93BD-3D7E20C7295D">
-</topicref>
-<topicref href="GUID-E23D699C-D087-5ADA-BD46-BA5D68DD0047.dita" id="GUID-B81102EC-48A9-4ADE-99E6-8CD87BAE9A01">
-</topicref>
-<topicref href="GUID-4CE611C7-1FD8-5DAA-AA04-5B80804D6DD7.dita" id="GUID-39F86824-568E-4BD9-9CDF-6B84F3BDD2C6">
-</topicref>
-<topicref href="GUID-10F30EB2-1431-5219-B1F8-95895FD5A448.dita" id="GUID-EB78B34B-982B-4A39-AC47-1828A7BF5946">
-</topicref>
-<topicref href="GUID-B6101F63-280D-5CF7-92EC-337FEDF5E148.dita" id="GUID-DD53EF3A-DCCD-4E74-842F-6EAE5E195D38">
-</topicref>
-<topicref href="GUID-7E2891DB-372F-517C-95A4-D706EF1DB8B3.dita" id="GUID-7CCE83C1-FD7D-46BF-BEB4-D9108B5EA40A">
-</topicref>
-<topicref href="GUID-215D2BD2-1757-5869-A589-98BE332EB4E2.dita" id="GUID-681A3EAE-FD04-43B0-AF36-7B2375033E85">
-</topicref>
-<topicref href="GUID-18CB4763-5EEE-5D0C-A293-D84563F06DB1.dita" id="GUID-26715A95-7942-4844-9326-116AE984A445">
-</topicref>
-<topicref href="GUID-B76CF2DF-8705-5C44-BBE5-29706957578D.dita" id="GUID-7CA10EE0-3A98-44F3-B006-6CE2CE390ECC">
-</topicref>
-<topicref href="GUID-54D1B7E1-39A5-5BB9-BC33-1047FDE941D9.dita" id="GUID-408E8070-B533-470D-B79B-4EE6E8F6FE90">
-</topicref>
-<topicref href="GUID-026164D5-6A32-5688-9D28-926DC0A61F35.dita" id="GUID-00D0C9B0-23F1-4E95-A056-9DEDA7CC19D4">
-</topicref>
-<topicref href="GUID-A6B5CB55-9928-580E-AE62-6017211457B8.dita" id="GUID-5DDAF98A-1B5B-448C-B15E-5E6F9FC14B4E">
-</topicref>
-<topicref href="GUID-B8E16769-0B82-57BB-8DA0-FEB4E181FA84.dita" id="GUID-480B186E-9A6E-4B36-A70B-D13CE1649CCC">
-</topicref>
-<topicref href="GUID-DC890B80-18F4-5D4A-8476-DBEB5FA20842.dita" id="GUID-6701FCE1-3205-4748-9102-234FA340AA7A">
-</topicref>
-<topicref href="GUID-519AEE28-D3A8-5430-88CA-178CA338D592.dita" id="GUID-DB83B8C7-CED6-4405-A8B1-0291E72227EA">
-</topicref>
-<topicref href="GUID-E632CCD2-EE53-5546-9603-E9A01A65614A.dita" id="GUID-65170F14-ADCD-4962-BCE2-049546A2F6DC">
-</topicref>
-<topicref href="GUID-8D7E5566-E297-5418-AC65-2FCA50FD1908.dita" id="GUID-5AB62E48-0419-40D3-A227-53DFCEAFF021">
-</topicref>
-<topicref href="GUID-DB51983B-9991-57F3-85E6-F770C35A9023.dita" id="GUID-A9B0FB78-8AC4-4164-BDFF-29975ADC645C">
-</topicref>
-<topicref href="GUID-0B97A12D-4EA8-5B08-9D59-4A3C892D01D4.dita" id="GUID-F72C5AD2-153B-4717-B736-1F0966B4EE4C">
-</topicref>
-<topicref href="GUID-208B15EA-ACDF-5305-A38C-D18AD79576A2.dita" id="GUID-623740B0-4EFB-40E7-9ECE-348E85A5BE09">
-</topicref>
-<topicref href="GUID-4911D998-5B1A-53E1-B1A7-920748489CD0.dita" id="GUID-3C1A45F9-4CD9-4D65-8DEB-883F2AE5CC13">
-</topicref>
-<topicref href="GUID-6D59E35B-6572-519A-8CFD-CB7781DDE631.dita" id="GUID-C7F9F86F-FE3D-40DB-B5B4-4333DC1F7A8D">
-</topicref>
-<topicref href="GUID-2822DEF4-F7E2-5795-BD67-14BF77C1EB85.dita" id="GUID-2DF18283-64B0-4F04-B8A6-19D85FEDF758">
-</topicref>
-<topicref href="GUID-4E45570C-A0EF-522C-BD67-FC31E4092740.dita" id="GUID-A7D2836D-49EE-4039-979B-A024678ADCFD">
-</topicref>
-<topicref href="GUID-A658690F-8F46-56F7-8CF6-06757C550A9A.dita" id="GUID-0579316E-8BBA-4197-870E-874DCE9E1C03">
-</topicref>
-<topicref href="GUID-EAFDBBC4-0F65-5BA9-9967-EE8D50BBCCB6.dita" id="GUID-3AA7160F-2C5E-49EC-8834-039B55DFF7A9">
-</topicref>
-<topicref href="GUID-1F809632-82B0-5B4C-92DB-9C4D1316AF03.dita" id="GUID-A551DF8D-AC90-4360-BA8C-C087E6A93124">
-</topicref>
-<topicref href="GUID-D01CC090-60D1-5D1D-AF87-C77D5DE46BAC.dita" id="GUID-B0160545-92B6-4540-BB02-DAB25326C9A3">
-</topicref>
-<topicref href="GUID-03194FB8-CC3F-5B8D-8719-3756FAC88102.dita" id="GUID-3CC2E5CB-5457-460F-B0CA-2824DF9760A4">
-</topicref>
-<topicref href="GUID-0FE4CC82-F638-5CDC-AC3F-096A05807480.dita" id="GUID-5FA934C3-E310-4C3D-AB7E-0CD1DD703A8C">
-</topicref>
-<topicref href="GUID-CE18D940-FEB9-5678-A3CC-AA8A979AD4DA.dita" id="GUID-B0390270-40A7-40F0-8688-5AD1D0E8AD12">
-</topicref>
-<topicref format="" href="GUID-9660B072-9BD6-5A84-B45A-636F0D06D467.dita"
-id="GUID-5533560A-CB9C-4C8A-8FC5-717772BF2631"></topicref>
-<topicref href="GUID-F06A89D5-EBC5-59BF-BE92-CE5C5076C3C9.dita" id="GUID-208E3515-A917-4CE3-BFDB-8BDA801FFB3E">
-</topicref>
-<topicref href="GUID-34A5AEFE-B785-58B0-9A75-5898EDFD6834.dita" id="GUID-B4896AED-6D02-4D9C-BD2D-88AC292C2E7D">
-</topicref>
-<topicref href="GUID-06DD6077-2ABD-5268-878E-9B26A3C4BE20.dita" id="GUID-309EB811-C7BD-4017-A585-7BCDD0266067">
-</topicref>
-<topicref href="GUID-D87C96CE-3F23-552D-927C-B6A1D61691BF.dita" id="GUID-C30A9B7D-F217-442E-87DF-6D71FAA4868C">
-</topicref>
-<topicref href="GUID-F620A451-9135-5CFD-9F76-F02AE830E094.dita" id="GUID-27006FB9-7DF5-42DC-83CD-1245C943B19D">
-</topicref>
-<topicref href="GUID-7A1B0CAC-BA12-512A-98B0-86CD317E4B24.dita" id="GUID-92C1E487-A443-40A6-87D1-BA57B6E6C71F">
-</topicref>
-<topicref href="GUID-C2A203B1-3D30-5CC0-BAF8-0624E9A8B2A9.dita" id="GUID-4FB6055C-ED5E-4CF7-AE9A-0A688A72377A">
-</topicref>
-<topicref href="GUID-78865979-D519-5476-91FE-9EF3386AC8F5.dita" id="GUID-59AA55DA-E3FA-4ADC-838E-E0DEA791C73D">
-</topicref>
-<topicref href="GUID-B82829FB-1F3D-53C9-8E3B-E9F8E3820E24.dita" id="GUID-096E9F32-E870-4673-AEBF-4B6672F4D590">
-</topicref>
-<topicref href="GUID-4CF02F12-7030-5E49-B0CC-593F02EF6FA7.dita" id="GUID-737F676B-072A-4D58-A803-07F38DDE7462">
-</topicref>
-<topicref href="GUID-0368678A-6963-5558-8DC2-0E618B927538.dita" id="GUID-5123D183-9B4F-4FCE-93C7-D1C46C934D95">
-</topicref>
-<topicref href="GUID-A4761D73-E2EA-512A-863B-D19F8698C69A.dita" id="GUID-4427085C-A024-4B23-83B0-1E36D274982B">
-</topicref>
-<topicref href="GUID-A09EAA46-47B4-5E3B-85F9-F6256B8B10CF.dita" id="GUID-8496AA28-513B-4C9E-8A54-36FDF95CDA29">
-</topicref>
-<topicref href="GUID-CD516F8E-EC7B-5949-BD03-713637CC866D.dita" id="GUID-E6312796-9091-4EEA-8FC3-61036CA4F96C">
-</topicref>
-</topicref>
-<topicref href="GUID-00FFF2B3-F8E4-5CBF-B031-240D98BB2111.dita" id="GUID-B03DA670-D8C2-47F6-8320-CD9109D890F4">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-4FCF605D-52D9-5B2D-80CF-80C940F680CA.dita" id="GUID-20FB2AB8-1C26-44AB-8703-F376D7F55724">
-</topicref>
-<topicref href="GUID-C3919681-BB41-4CFA-812F-2D7989E952DC.dita" id="GUID-D7A5F52B-5E2A-46D8-80D7-56D8D7BEB457">
-<topicref href="GUID-A9D8F93F-BB46-453C-939E-7C65976A9BDA.dita" id="GUID-872239C1-9FC2-4EB6-90B5-17C9456756C2">
-</topicref>
-<topicref href="GUID-F746C61E-BE8A-4F3B-B8F7-92964B36B298.dita" id="GUID-2D306437-2850-4260-B152-81E7C463F835">
-<topicref href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita" id="GUID-7192C2CA-B8EB-444C-8EFE-0AC5952DB50C">
-</topicref>
-<topicref href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita" id="GUID-921858E2-CB35-4990-841B-5B63A9971B2F">
-<topicref href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita" id="GUID-272EA4C3-49F7-43E5-B96E-0FB463F0F06A">
-</topicref>
-<topicref href="GUID-54D5CBD5-0A1F-4835-B5F3-492728B9F51E.dita" id="GUID-99CA62FE-62B7-48DE-8C45-36B79DF3BC8A">
-</topicref>
-<topicref href="GUID-7D727FC9-EF32-49FD-B72E-E1E00315206E.dita" id="GUID-ED3D65D8-F9CD-4095-BF97-11924BAF310D">
-</topicref>
-<topicref href="GUID-DB6F586B-932A-4BDC-BA48-79C7D3FD9931.dita" id="GUID-60CC4E27-BF20-4047-92EB-95DF858F4D4E">
-</topicref>
-</topicref>
-<topicref href="GUID-C7AA92A9-9595-439A-A3E7-769E36D61FEE.dita" id="GUID-7A2596EE-9E45-4200-A6D6-5CCE16550372">
-<topicref href="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita" id="GUID-16708D4B-38AC-4670-A769-C411AF965A4D">
-</topicref>
-<topicref href="GUID-1E4FFC56-8473-4E0A-B2E2-4E8DE8B1D00F.dita" id="GUID-497B0C95-57F9-41C1-B71D-D9E332099F39">
-</topicref>
-<topicref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita" id="GUID-357F177D-8F86-4CF2-92C6-57EAC0B38251">
-<topicref href="GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F.dita" id="GUID-AF3E3014-BE9C-4EB9-A6A8-7799DC3DE230">
-</topicref>
-<topicref href="GUID-0185D5DC-5142-42C3-8FFB-8EB76D49AB06.dita" id="GUID-8FA4D233-11FF-4D7E-88D0-2083D97A9B73">
-</topicref>
-</topicref>
-<topicref href="GUID-217C992B-AC56-42A7-9920-DEC891D233A5.dita" id="GUID-0FE52A50-C9AE-4F78-B7FC-633F4254E19C">
-</topicref>
-</topicref>
-<topicref href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita" id="GUID-9380C8A7-3102-4619-B218-51E75D45701A">
-<topicref href="GUID-178488C1-5453-490F-B168-9D73DB5BAE47.dita" id="GUID-D11AC3C1-1B97-42A6-B287-14822B1AD3C0">
-</topicref>
-<topicref href="GUID-0371FD21-D988-4560-891F-2840C36AB2E2.dita" id="GUID-7830433E-BB46-42F2-8F22-5731EA1DC388">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-7B76C459-2018-4B3C-9311-B45D5AD4AB37">
-<topicref href="GUID-5072BE46-B1B4-5C3A-BF55-BEA7443E7657.dita" id="GUID-4007CEA3-3CD8-4F97-A6F9-9D0A7D18BD13">
-<topicref href="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita" id="GUID-452B9A6B-18ED-4A1F-AF0C-13491A982830">
-</topicref>
-<topicref href="GUID-9208E03A-CC7A-57A9-84BD-778B99040842.dita" id="GUID-25E51BB9-4482-4F7F-97A3-AB8BEF0E0EE1">
-<topicref href="GUID-5D14ADEC-ED83-5FA4-B551-C57CAE4F79BE.dita" id="GUID-53185367-EA6D-4F7B-9049-C5B16F16A08B">
-<topicref href="GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023.dita" id="GUID-DE6EE121-E6A4-4992-BDBD-3D1C9FA2D0D4">
-</topicref>
-<topicref href="GUID-7AAAC6EA-784D-51E6-AD6B-521C9F5C4DBD.dita" id="GUID-56E62F22-29DC-45C2-AC65-CE6D3AC9172B">
-<topicref href="GUID-84922B27-FDCF-56FD-91ED-5E0BFE3ED0E4.dita" id="GUID-2CDE94CD-0B27-4094-A293-0B8C07101A93">
-</topicref>
-<topicref href="GUID-548CC331-8E38-5627-A925-EA386BE90258.dita" id="GUID-BA7A9DED-2129-45AE-AFA6-E04180977F23">
-</topicref>
-<topicref href="GUID-C3086910-D7B4-5549-BF65-374C8B602E8F.dita" id="GUID-438136B5-19E9-44C5-BB45-A35D74EBA8BB">
-</topicref>
-<topicref href="GUID-FDDAF8E9-4CAB-5489-B578-A5362E2140C1.dita" id="GUID-4ADCB5B6-91F0-4404-BA91-52EC0654F05C">
-</topicref>
-</topicref>
-<topicref href="GUID-017A0B4C-3FC2-5CFD-9D81-6A5ABF982D98.dita" id="GUID-4EEDB609-F58A-4194-A4BD-3AE406887263">
-</topicref>
-<topicref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita" id="GUID-B9C4372D-0B72-4C68-92A7-0FC8D0497DA8">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E2DE2C6F-E071-5E88-96F1-D71DDED84609.dita" id="GUID-9992D789-5E87-4B9E-AA8A-9375C0B36816">
-<topicref href="GUID-D79380CF-22B5-5865-9366-44118E8ECA2E.dita" id="GUID-9624D846-FFA6-425E-A64C-263951AD2FB3">
-<topicref href="GUID-4A4951D6-92A9-596D-B84C-B95E78CE8AA8.dita" id="GUID-700D8730-1DE5-4599-9670-DCE49DC0109D">
-</topicref>
-<topicref href="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita" id="GUID-F5B42F64-2326-43F7-B5CB-4AACB7E332A1">
-</topicref>
-<topicref href="GUID-85372267-C352-4389-8FC9-32B8E1622BC9.dita" id="GUID-8D229C67-A79E-4D89-A40F-35501C444CE1">
-<topicref href="GUID-6F78B032-00EC-4638-8B65-88CA99075B4F.dita" id="GUID-E31357CC-895E-4212-9E83-263E277512CD">
-</topicref>
-<topicref href="GUID-788031A5-75C1-420E-9E2B-71E09FF08ADF.dita" id="GUID-E023D4D3-6964-4A9B-AA7B-74AF9DD815BF">
-</topicref>
-<topicref href="GUID-C8674786-6C09-45C2-BA5D-4F69EBD8E42F.dita" id="GUID-4A5A868D-7997-49B8-A098-A4AAA5BF5BDA">
-</topicref>
-<topicref href="GUID-BB149ADF-3F4C-426C-8852-78FF4C144AD5.dita" id="GUID-16A61973-D751-406C-BF1F-3948313C0ECE">
-<topicref href="GUID-96CE7427-83DB-47DE-83FB-A65920EE0319.dita" id="GUID-72722481-F0D0-4723-8A60-60356D65A76C">
-</topicref>
-<topicref href="GUID-FF6846AA-7E8B-40DC-B6EC-32A8550F4942.dita" id="GUID-F9F9ED57-522F-41C3-B927-16D7387BF79A">
-</topicref>
-<topicref href="GUID-189DA86A-BA77-4314-9597-E3C92B3C82D9.dita" id="GUID-E0020B84-89A0-4306-B521-2F964BE11270">
-</topicref>
-</topicref>
-<topicref href="GUID-C7589C93-B517-4251-ACFB-B03E07993242.dita" id="GUID-A18BF955-9A87-4B38-A253-B83C5C568E7F">
-</topicref>
-</topicref>
-<topicref href="GUID-2016EF4B-F001-5EB2-8095-6048582511D6.dita" id="GUID-9EF54517-99CA-4C86-A0E3-C2074CDB5A70">
-<topicref href="GUID-CF6014E9-FB59-4715-B245-5826090DDF28.dita" id="GUID-41DF6D9C-AA90-41A4-813E-CD96D8D2596F">
-</topicref>
-<topicref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita" id="GUID-904083F9-6DD1-4961-B1A2-6958F4A6D35B">
-</topicref>
-<topicref href="GUID-38BE7105-309E-5372-98EE-BCA0ADD0ACBA.dita" id="GUID-B7D3A03A-6A25-4DE4-B296-D99D21DBB596">
-</topicref>
-<topicref href="GUID-5777D16D-71FA-5929-9557-4C532C59ECBF.dita" id="GUID-ED698BAE-D431-48E5-9BD6-DCBE4C1B6322">
-</topicref>
-<topicref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita" id="GUID-5640B7F9-38FD-4B4A-A650-7338BDF97439">
-</topicref>
-<topicref href="GUID-BBC49BE2-5147-5988-93FD-9CECF90BB223.dita" id="GUID-EA452B15-B8A5-4A17-8780-C7670302D999">
-</topicref>
-<topicref href="GUID-6590B534-D976-5305-BE95-48DD05120DFB.dita" id="GUID-F50B1C01-3465-4612-83FC-8377B2CD004D">
-</topicref>
-<topicref href="GUID-86086CA3-9A2E-4024-BE80-1763614A5079.dita" id="GUID-24601C5E-124D-46D7-8683-70F2622030DE">
-</topicref>
-</topicref>
-<topicref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita" id="GUID-D7BE438B-F0C2-403A-ACA7-5A51C79A00AA">
-<topicref href="GUID-4008963F-F4DF-4628-97D4-5B005D699E4B.dita" id="GUID-2EE5EA67-813B-4021-8C5D-A6FA53898502">
-<topicref href="GUID-FE76E172-6B94-47CC-9551-6DD62C04368D.dita" id="GUID-D1965428-E6A8-4C11-A14F-68BE8EA6D41B">
-</topicref>
-<topicref href="GUID-0C02D927-0B06-49BD-8738-149DCDDB23FC.dita" id="GUID-25977E53-161E-41FD-A0EC-2C77B52546ED">
-</topicref>
-<topicref href="GUID-B51EA0DA-5BCE-4A8C-A7A7-1FE096F7FF27.dita" id="GUID-EA258902-2C3E-454D-983F-23833183BB26">
-</topicref>
-</topicref>
-<topicref href="GUID-3B7D05F9-2BCA-4B53-AE9F-99B0B3B7C4A2.dita" id="GUID-150F18F5-7B9E-471B-8587-026455CBEF11">
-<topicref href="GUID-006C503D-1E52-450D-A4DA-8C19B141E09F.dita" id="GUID-B647DAAC-2E91-4BD3-82AD-A5127508BB6E">
-</topicref>
-<topicref href="GUID-E2B67F14-EC4E-41B6-9F8E-AB58B9E8D7B6.dita" id="GUID-7750E992-D9D1-4ACD-B95E-E6F30CFA51E7">
-</topicref>
-</topicref>
-<topicref href="GUID-89C83394-5F37-4AE5-AC5F-6006D2DD47DA.dita" id="GUID-2806BBE4-B3AB-4FCD-84CF-2E21E17957B6">
-</topicref>
-<topicref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita" id="GUID-B936E090-B611-484C-8AF9-2218EF89E0CC">
-<topicref href="GUID-ADB9AD91-37A2-4FE6-B378-C43CD0A7B513.dita" id="GUID-A2D97B61-6133-483E-A6D0-AB4557BBF13A">
-<topicref href="GUID-209F3620-2361-4AED-9F7A-02E72F9EE8FE.dita" id="GUID-5A4EA51A-4C9E-417D-AA0B-5E63839ACA36">
-</topicref>
-<topicref href="GUID-AA49FB68-22A1-417F-AB57-9C22CE016B21.dita" id="GUID-83C425CA-7BE0-456C-9F52-5A6DD64C58E9">
-</topicref>
-<topicref href="GUID-383C128C-15EB-4C64-9A1F-F1EA826323D0.dita" id="GUID-07B9A319-02FB-4B81-92F4-33893E5C8B54">
-</topicref>
-</topicref>
-<topicref href="GUID-545DA961-217E-49CA-A90E-7A41E2C03A99.dita" id="GUID-02379F57-D8AA-46BC-9E29-9D38FB46B134">
-</topicref>
-<topicref href="GUID-B58D282E-E6EC-4AE1-96DB-30A5FB850563.dita" id="GUID-6D2C983C-D967-4049-BBAC-1A3F11346BD5">
-</topicref>
-</topicref>
-<topicref href="GUID-41F33130-7968-5016-9ACE-9E9F906118DB.dita" id="GUID-B3E7A72D-6D16-47E1-999E-F82A5FE2DC48">
-<topicref href="GUID-66C1493D-5B85-558A-9A39-454E6EBA307B.dita" id="GUID-DC348EF0-8B1E-4EC9-989E-5A498A27075B">
-</topicref>
-<topicref href="GUID-E65D91AE-482F-5592-B83C-0F29126C2EFA.dita" id="GUID-B9244314-056F-456F-81B8-6BE6EACA3DD3">
-</topicref>
-<topicref href="GUID-186B9876-2A08-5F23-BB49-49EC34C51507.dita" id="GUID-A75EB8E4-AC1D-4779-B0F8-247F516EBA69">
-</topicref>
-<topicref href="GUID-6CF8A41B-C2DD-5D57-A71D-6405CE08A06B.dita" id="GUID-C0ADB441-0B45-473C-A767-19EABED015A5">
-</topicref>
-</topicref>
-<topicref href="GUID-539C4AA4-FF3F-4D6B-90A5-677092DBE54E.dita" id="GUID-BBB8B2C3-7F07-4D95-AC9D-66E953C0E053">
-</topicref>
-<topicref href="GUID-457628C5-2972-4432-A03F-CD8CC0E1B60A.dita" id="GUID-51BCA309-11F5-48AE-9158-9F2C13231FA9">
-</topicref>
-<topicref href="GUID-80F2DEC8-152F-4681-A9D0-8EB776131313.dita" id="GUID-4DA9C2FB-FBA2-4AFB-B373-DA9479CEFABF">
-</topicref>
-<topicref href="GUID-B7B7F611-BCA0-498F-BEC1-16B276F680D5.dita" id="GUID-03FD4B96-95CA-49FF-BE8C-D1E9086A390E">
-</topicref>
-<topicref href="GUID-9D278187-8B5E-581D-9869-EE8861048F93.dita" id="GUID-1F5BEE93-1E79-4BCA-8B74-FBDA76384415">
-</topicref>
-<topicref href="GUID-E7C41361-C0B9-5341-A864-B59770FB7C9B.dita" id="GUID-3FEB9140-2333-45C6-828C-B561152D21D3">
-</topicref>
-</topicref>
-<topicref href="GUID-C585871E-BE82-49EF-A4B9-4340A7154264.dita" id="GUID-1327B0CF-D518-4D69-A4F6-24D699ED789C">
-</topicref>
-<topicref href="GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341.dita" id="GUID-2DBCCA7C-4422-4802-B1C6-B9A966C8F2AC">
-</topicref>
-<topicref href="GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E.dita" id="GUID-6EB9B68E-FCD8-41AA-B3BF-BDB093F35CD4">
-</topicref>
-<topicref href="GUID-3EB1C34E-584E-595D-A339-DE170A96AEBC.dita" id="GUID-1478054B-DCBA-49F3-8A9B-01C24F6A672A">
-<topicref href="GUID-BE893F87-E7F6-56E5-BD27-328B532F8332.dita" id="GUID-CC6ABFBA-02F1-4E82-BCAB-CD7FDDD619FD">
-</topicref>
-<topicref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita" id="GUID-A96C44B7-948C-45B0-A516-28ED0D8BEFCA">
-</topicref>
-<topicref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita" id="GUID-11688315-71EA-4A22-B56A-34E2EAAD2A9E">
-</topicref>
-<topicref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita" id="GUID-C112B77F-395C-4EF6-A37C-E12A893C0887">
-</topicref>
-<topicref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita" id="GUID-5891E25D-985B-47D3-9AD0-571B6595BE3C">
-</topicref>
-<topicref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita" id="GUID-F935A321-84B5-466F-866D-55560A5B546E">
-</topicref>
-<topicref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita" id="GUID-586E85B1-1FED-4623-8035-2BAC871D37B6">
-</topicref>
-<topicref href="GUID-BF040EF4-E34C-40A3-AD15-F49426F56AA2.dita" id="GUID-1FA15357-82EA-4E9C-A907-95F93A820C72">
-</topicref>
-<topicref href="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita" id="GUID-A41F846E-02E3-4529-BFDC-3E34B9B914F8">
-</topicref>
-<topicref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita" id="GUID-D9871403-3AEC-4554-875F-01EB8890881A">
-</topicref>
-<topicref href="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita" id="GUID-70B39C70-9034-46AE-BC30-22E4718C256E">
-</topicref>
-<topicref href="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita" id="GUID-A222E47E-6290-491F-B6F6-7DAB5FF28B09">
-</topicref>
-<topicref href="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita" id="GUID-D051CFE7-402C-4A19-919C-C007DF4457C1">
-</topicref>
-<topicref href="GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita" id="GUID-32F55B4C-B4B6-463B-98F0-8DCE3FC26E0F">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-2C5B58F2-6BD2-5C2B-8E1B-CFB3D7EB6ED9.dita" id="GUID-415DAF8A-DEEF-411F-B529-25C59E1131F2">
-<topicref href="GUID-D6BEAF0D-844D-51F4-8DB7-FB1D60E17FE3.dita" id="GUID-F00640EC-55C6-4660-8BFD-9D0FF12D3AC6">
-</topicref>
-<topicref href="GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16.dita" id="GUID-39A5AAC8-BE59-4917-9BAB-5B601A2869BB">
-</topicref>
-<topicref href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita" id="GUID-528EC858-97E6-485C-97D2-BF1D33B3C726">
-</topicref>
-<topicref href="GUID-4492D5C1-C64E-5561-8A3F-8D887603B6FB.dita" id="GUID-06B737AB-90EF-462C-B65F-CD7A948CE5F0">
-<topicref href="GUID-CDE8CD85-8467-5B36-A0AC-41D1D98151CA.dita" id="GUID-B18D3DD0-518A-4620-A1A2-0FAE59C3A636">
-<topicref href="GUID-1ACD01D1-2055-581A-9478-2C0D7D1CF9E6.dita" id="GUID-F68B8EBB-F80E-41BA-981D-8D5642E872BA">
-</topicref>
-<topicref href="GUID-C9D4D586-58BF-5676-A53F-9C3A51101430.dita" id="GUID-464286E5-20CC-4A5E-AF3D-DF6182C0AACC">
-</topicref>
-<topicref href="GUID-AF2CE612-F12E-5A18-81A5-C303992D2D46.dita" id="GUID-489EC5E8-D858-4C95-AC90-6EEE6F0D2960">
-</topicref>
-</topicref>
-<topicref href="GUID-E331B72B-84AF-558A-9B8F-73E5E50B58C7.dita" id="GUID-1E2BB9C5-EFCB-40BB-9076-200F53E4370A">
-</topicref>
-</topicref>
-<topicref href="GUID-5B3F5296-D6D0-5D25-8362-141DF5927E52.dita" id="GUID-F5C37AE2-942A-4AAD-AF03-2FE2AD3C457A">
-</topicref>
-<topicref href="GUID-D32E52C9-F05C-5F1E-8B49-243D555C353C.dita" id="GUID-962EF538-A21B-490E-B2DA-09818FC84AA7">
-</topicref>
-<topicref href="GUID-1910C54E-44E0-4D36-820A-BCD5FFCDA719.dita" id="GUID-5A56EF76-307F-4D50-AF36-3D9BDFE50B6B">
-</topicref>
-</topicref>
-<topicref href="GUID-E21287EF-7211-590B-A1E3-E0B37069FCB2.dita" id="GUID-DD935600-943B-4DD3-BA0C-A9E2983A4393">
-<topicref href="GUID-6565B222-4036-5C3D-8319-4CDDA3F2098D.dita" id="GUID-A925010C-7A40-4418-8C2A-00E7F2F2F132">
-<topicref href="GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9.dita" id="GUID-FF656A49-1C77-4F1A-B480-5E4BFDEE2CBC">
-</topicref>
-<topicref href="GUID-8B37D53D-77E1-58C6-9A44-3376A450228B.dita" id="GUID-065A16D1-ED4B-499C-9683-2E692A96C9C0">
-<topicref href="GUID-BE70DCBF-366A-5054-B0F1-7FCEF45FC735.dita" id="GUID-7AB76C13-E1E2-4642-B0DB-2D84E59285B4">
-</topicref>
-<topicref href="GUID-A4ECB450-02DA-5E85-91AC-4C8BDE0B9B58.dita" id="GUID-21AEDA55-670B-4676-B979-C2AE62058906">
-</topicref>
-<topicref href="GUID-8F6D6934-8FF0-5045-8AB1-74384BE792EA.dita" id="GUID-9CCAB090-254A-4AB2-9ED7-319095BF5928">
-</topicref>
-</topicref>
-<topicref href="GUID-66402932-5C44-556B-A7AC-1C2D245C8B05.dita" id="GUID-8F90D05A-1977-4BB0-A8F6-28C044B7EF31">
-<topicref href="GUID-29AE56A8-DA08-5FB3-89F1-26B4308336BC.dita" id="GUID-182CB3E0-29A8-4EDB-80D7-FD681F32BE49">
-</topicref>
-<topicref href="GUID-21740D07-5F49-5D9C-9FEA-92958AF3805B.dita" id="GUID-DB9CDE57-0EBF-4E64-9AAF-D5885293EC45">
-</topicref>
-<topicref href="GUID-B4039418-6499-555D-AC24-9B49161299F2.dita" id="GUID-884FC18E-E56B-4933-9591-A59D37931DC4">
-</topicref>
-</topicref>
-<topicref href="GUID-04F076C4-AFFF-571C-8B73-B8589B58EC56.dita" id="GUID-CD16AFFA-127C-4148-8964-79C15C195354">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-440FDF7D-B9A0-5767-9FF8-412803C0D2A9.dita" id="GUID-01062172-7AD9-4B28-A8D9-732FEE61897A">
-<topicref href="GUID-08CEB0E8-7E94-545F-AA0C-E27CED08C167.dita" id="GUID-BF6EE0B3-2B82-4A2D-9FB3-B84F85833A07">
-</topicref>
-<topicref href="GUID-6FCB023F-E9E0-5C3D-A8BA-92B1B4733258.dita" id="GUID-DD7B19D5-3BB7-4EBF-AB09-CAB9410EDE3F">
-</topicref>
-<topicref href="GUID-39FA0ECE-D403-5F02-AC5D-7BC8E1669E8E.dita" id="GUID-79E29AA4-8B5D-4104-A589-750929C0376F">
-<topicref href="GUID-B661DFBC-9779-597D-A1DA-4FE085DAA61A.dita" id="GUID-1499EA6E-FA5B-404A-80A6-054C8D90A6C6">
-</topicref>
-<topicref href="GUID-44927609-CFD1-5D09-BA78-7A5AB981DD2E.dita" id="GUID-5FCA6B82-80E7-4F65-9991-5BEE66B235E8">
-</topicref>
-<topicref href="GUID-3BC54F46-5F81-5F2D-ACF8-E8E0A0D5A345.dita" id="GUID-D00A2495-BC6B-494F-A6B7-AD121980D110">
-</topicref>
-<topicref href="GUID-1261F3A3-6F27-5A85-81FF-A6858F03F711.dita" id="GUID-A3DF1B7F-1C7D-49CA-A6F6-FC2F88E589FB">
-</topicref>
-<topicref href="GUID-95954813-A4BC-5557-9E42-EB1AB1A6F381.dita" id="GUID-9E8FFEF3-C4A3-4AE9-AA9D-3EBF943D7C4C">
-</topicref>
-<topicref href="GUID-2AC1C0B6-0405-5F1D-A813-39DA35808182.dita" id="GUID-07775CE3-3C9D-40EE-B2BD-02A26DC0EF2C">
-</topicref>
-</topicref>
-<topicref href="GUID-F7C9824F-0598-56A1-AC2B-24904E997588.dita" id="GUID-D1705B0F-A32D-48F7-982B-5B8315E9137B">
-<topicref href="GUID-F51062B0-90BB-5659-9F23-2FF25116D78A.dita" id="GUID-F0CD86FB-12CD-4360-ABDD-4A047591895B">
-<topicref href="GUID-78175610-72F4-5CAF-B1E9-9A761347C9DB.dita" id="GUID-D0278C91-EBAF-4B0D-B29A-536DAAA72777">
-</topicref>
-<topicref href="GUID-C90FE253-B88B-5F01-AC8B-E89249083C93.dita" id="GUID-B57DAC1C-F1B5-400D-B524-36B0ECB0A373">
-</topicref>
-<topicref href="GUID-BB39DE14-B314-59CB-A8EC-BBD2A5C1BCD9.dita" id="GUID-13EE7B9A-40D7-4DE9-907B-0BAEB3BCC663">
-</topicref>
-</topicref>
-<topicref href="GUID-3C2E0C1A-DC7A-55F7-8005-39CEE71CD0A0.dita" id="GUID-4FA1DE86-19DD-4CA2-AF15-F634D5D19140">
-</topicref>
-</topicref>
-<topicref href="GUID-7EFA2113-3C4A-5C52-AC28-BBD512466302.dita" id="GUID-FDE214A5-4046-4951-BDF5-610896E94063">
-<topicref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita" id="GUID-7BDCC81A-1909-4755-911F-B1E6FFD5492D">
-</topicref>
-<topicref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita" id="GUID-50FD3C2B-D8C2-492E-A3D2-9F866E3C78E4">
-</topicref>
-<topicref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita" id="GUID-34E0B0EF-C730-457F-894D-E53C90E1216D">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-94215E49-605B-51BA-B215-10BDA1A0C013.dita" id="GUID-58A550A2-FDD8-4901-97D8-724910B4251D">
-<topicref href="GUID-651DA4DA-F8DF-5412-970C-86F45C877FDC.dita" id="GUID-914701B4-7CCA-4AB9-BC5F-CD74ACC8C69E">
-</topicref>
-<topicref href="GUID-743D2832-E73A-5184-A85D-306B2A6FFACC.dita" id="GUID-A61AB00F-4288-48B5-AA34-00C44026273A">
-<topicref href="GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827.dita" id="GUID-AAB24505-2D86-4A65-974A-2C60273C64BB">
-</topicref>
-<topicref href="GUID-DFF9DFC5-1BE0-5CA2-A2B9-27FA2DECFF59.dita" id="GUID-D3879DCB-959D-4AB0-AB03-D059FA0EF927">
-</topicref>
-</topicref>
-<topicref href="GUID-A602E35E-69BE-5F8C-A7E6-4B98E67BF382.dita" id="GUID-04308B7E-8433-40CC-99DD-AE9DCFC93321">
-<topicref href="GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita" id="GUID-D9D6A4B8-A55A-4419-AEE8-1245DB15D419">
-</topicref>
-<topicref href="GUID-F46CDF2C-DA64-5F30-B4C8-CC4B02CE67B9.dita" id="GUID-2D6AB8A0-0D49-4BC0-8430-0129928803CF">
-<topicref href="GUID-E0DC9706-AAC5-5950-86E8-D667A7AFCD49.dita" id="GUID-195BC4C8-42E2-44B0-87DE-A4EEF4A2DBF7">
-</topicref>
-<topicref href="GUID-38B65AAC-3CFA-5C9B-AD6F-36823B6C2C0E.dita" id="GUID-059C6F22-BFB3-4077-A272-428AB977CF1B">
-</topicref>
-</topicref>
-<topicref href="GUID-96837414-3041-5E1E-A2E9-C18EECCF86D9.dita" id="GUID-16E40068-1A0F-4ED9-AD7E-446C2FEEE7DC">
-<topicref href="GUID-5D4616AC-42AB-52C3-9092-4463C3687E58.dita" id="GUID-6428B7A4-7484-446B-9A8D-7BA04565D8BC">
-<topicref href="GUID-4D32A29F-6573-5233-8982-BDEEDDB4F0FF.dita" id="GUID-D83ABDFC-C6CD-40E0-AA3A-785AC802DD10">
-</topicref>
-<topicref href="GUID-4B7352BF-4BF8-5FF2-8835-F146BB7D4EAC.dita" id="GUID-D6BE2807-AD0C-40E4-B555-8E816FE0A909">
-</topicref>
-<topicref href="GUID-D535D51E-EAF5-581A-929B-5B1EF179A273.dita" id="GUID-B72CA6DC-A54E-4049-8F5B-26762A7ED5CF">
-</topicref>
-<topicref href="GUID-8E3BD71D-D372-5315-B282-F87FA60A1D5A.dita" id="GUID-0C9DB6C2-2492-43AC-9256-44FF04DC60CB">
-</topicref>
-<topicref href="GUID-098106AC-0A5A-5C7D-B432-492EADFE7EA3.dita" id="GUID-410D7326-CDE7-4CD5-A384-45F9986C34D1">
-</topicref>
-<topicref href="GUID-8F5BC47B-0551-5245-A1ED-629380111B43.dita" id="GUID-172974F6-CF07-4438-8B39-D8A98C1F7AB4">
-</topicref>
-<topicref href="GUID-A8F13E5A-56F2-5C72-AF81-5AC062B94C6C.dita" id="GUID-1FA8BA6E-322C-4FBD-854D-928FCA47F829">
-</topicref>
-</topicref>
-<topicref href="GUID-0E8206E9-4F1D-5DF5-8A69-9B0831061CFF.dita" id="GUID-725788C2-7C6C-471E-AF84-9D893D4EBFB3">
-</topicref>
-<topicref href="GUID-834F5FC8-EBE4-4076-B1E3-38DDFF89D700.dita" id="GUID-E812E7BD-6240-4004-B091-27466386B07C">
-</topicref>
-<topicref href="GUID-42F0F282-58D6-4878-B53D-EAEEF86A3D7D.dita" id="GUID-604CCFB3-062C-44BB-9847-FBFEDA4272B7">
-</topicref>
-<topicref href="GUID-853BFDC0-1993-5EFC-AA68-C9EA496EEF3F.dita" id="GUID-2EC1D978-E1BB-411B-B123-FA3D749A3319">
-</topicref>
-<topicref href="GUID-3F7142D6-261B-5FB9-888A-1A9BB51B67E5.dita" id="GUID-5A404A6F-3523-4D47-ACC7-1810B873AE7D">
-</topicref>
-<topicref href="GUID-0BE9F825-9FF8-55A1-AF7C-A380A0C64735.dita" id="GUID-6779EF19-AD19-4D81-A1F5-C98D556F39CD">
-<topicref href="GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A.dita" id="GUID-02D66992-9936-4062-AE67-6F72D2FD9A59">
-</topicref>
-<topicref href="GUID-5FEA4AF7-5837-4D9A-9022-92A746BED0C4.dita" id="GUID-9CF00FEC-A62E-4458-B0C8-9494BC384788">
-</topicref>
-<topicref href="GUID-101A11B5-E9A2-4E6D-9D81-9BF76312521D.dita" id="GUID-2E7BD8F2-59F4-4DEB-8B9F-7D334719C97A">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita" id="GUID-E6A0A6FD-D1A1-4CC7-B257-CEF606E067CF">
-</topicref>
-</topicref>
-<topicref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita" id="GUID-CC73BD28-9398-479B-B0CB-2376391301E0">
-<topicref href="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita" id="GUID-0DDF09D9-A8C7-4119-97B1-751E005A9F6A">
-</topicref>
-<topicref href="GUID-863AD171-B40B-5056-96B1-A7B995DB3524.dita" id="GUID-BE97F163-235B-4EF6-A11C-A0C15278BE9B">
-<topicref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita" id="GUID-B3B59E9D-48F6-4D30-ABCC-55707972F22A">
-</topicref>
-<topicref href="GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E.dita" id="GUID-51772D7A-2C45-4CBB-B8A4-9B2EE2B4FB47">
-</topicref>
-</topicref>
-<topicref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita" id="GUID-84493B86-8F95-443C-A576-0E0617FCAEAB">
-</topicref>
-</topicref>
-<topicref href="GUID-D049392D-2DA4-5E9C-8E3E-FEDF79BC5086.dita" id="GUID-B27AC8E3-34F8-413A-8550-64CEFF8226B5">
-<topicref href="GUID-3CDCE4E0-E29D-5782-8053-B386A9E34BCC.dita" id="GUID-BB9F3DAA-A5D9-42C3-8A96-369197CAFA12">
-</topicref>
-<topicref href="GUID-74C1C345-823C-5CD5-8FC5-214A55734E94.dita" id="GUID-445D1557-9FFF-4162-978E-C0C04B452FE3">
-</topicref>
-<topicref href="GUID-00363030-AAE2-5231-8407-AC609DA0F496.dita" id="GUID-F3960D5E-A208-4AA5-9CC9-9316E4122849">
-</topicref>
-<topicref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita" id="GUID-58BFD6EC-9B1E-44B6-9D37-24583DF027D0">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-94D67092-5EB3-4D83-A164-CA628F2E2DB0.dita" id="GUID-F89D03AC-E834-41FF-B6C4-7EF15ED7C9BB">
-<topicref href="GUID-1AC942E2-58C7-45C1-A122-3D07407A07D9.dita" id="GUID-00AAD562-9864-4526-8B40-B6FAD6F2048F">
-</topicref>
-<topicref href="GUID-66CF3E59-DA9C-4287-8A49-5655E83E2F84.dita" id="GUID-95A17C62-4C23-4D71-8527-2799621B5839">
-</topicref>
-<topicref href="GUID-9057474B-1ADB-4761-879B-6A03B61E6E00.dita" id="GUID-1833D388-51C5-4736-BDD3-86B0BF761E12">
-<topicref href="GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276.dita" id="GUID-CA34D4B0-591D-4789-B427-7501B1A46865">
-</topicref>
-<topicref href="GUID-7FD05006-09C1-4EF4-A2EB-AD98C2FA8866.dita" id="GUID-FC032260-0E7E-4853-815C-0264B10A714C">
-</topicref>
-<topicref href="GUID-01E7AE98-024C-4119-87D0-5BB9D53DA119.dita" id="GUID-7B5962D7-E57E-4AAD-AFBC-80210B06851B">
-</topicref>
-<topicref href="GUID-BEC25BA5-A994-48B6-B781-26900B04C8BE.dita" id="GUID-E6E58642-561B-4F17-8AD0-7AE36C80DAE2">
-</topicref>
-<topicref href="GUID-3D10DAFD-BE83-4892-B5E0-2ED7CF047788.dita" id="GUID-4F18E991-9E1D-40CB-9465-CE7EA7F4FD15">
-</topicref>
-</topicref>
-<topicref href="GUID-51FF9F99-8005-4480-9645-64476B953C57.dita" id="GUID-68B8CB65-E8E7-4C4F-A1FD-F1443F52CA0F">
-<topicref href="GUID-A9A8C0C1-4B89-40FE-917E-7D4F7387DDA9.dita" id="GUID-478B86DC-3CB0-4A34-B863-8ACA0EE8951E">
-</topicref>
-<topicref href="GUID-817C43E8-9169-4750-818B-B431D138D71A.dita" id="GUID-7C656ABC-1E9B-40CB-A1B8-4DFFB0A9EFFF">
-</topicref>
-<topicref href="GUID-D8D30C70-C6ED-4E4C-9815-BF7993262ABF.dita" id="GUID-E8A992CD-363B-4CA0-B2F2-98ADE9FC1D21">
-</topicref>
-<topicref href="GUID-09D1DB3C-DA2D-4E16-8EEB-2195F765BE22.dita" id="GUID-DE1F0D7F-9494-413E-9D12-29D59F9A3A01">
-</topicref>
-<topicref href="GUID-5329C067-60B8-4E0E-A2B3-9423B75E189D.dita" id="GUID-3D2AECE7-8107-4F23-85F9-0D1794AFEA17">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-324107D1-6E0B-56DD-BDC0-7296F688A9CF.dita" id="GUID-50E94166-B01D-441F-A17D-437959F15A83">
-<topicref href="GUID-62E8D3DF-7DF8-5FCA-8D7D-AA30EB0B8962.dita" id="GUID-C50D4CC5-C890-491E-A8BA-1A9A10F619D0">
-</topicref>
-<topicref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita" id="GUID-C25AF5A5-A63A-4DA7-B264-9D0F0313B409">
-<topicref href="GUID-8A7B837D-4069-5364-A596-686EEBAE351D.dita" id="GUID-AB86D305-94B8-4F60-9DD6-5D0B956B5AD3">
-</topicref>
-<topicref href="GUID-5E6B86D0-8C9D-58E9-83EC-F76DC2A8E7B6.dita" id="GUID-0B64B9C4-34F1-4AF0-938E-C907EB5A993B">
-<topicref href="GUID-30201A05-C6CE-5D34-9BDF-CDA4EE44878D.dita" id="GUID-4240E234-F3E0-4076-9C92-21ED3817C716">
-</topicref>
-<topicref href="GUID-9E0CBB66-A573-5BBE-9788-95B313325C7E.dita" id="GUID-B2406A16-69DA-4EA0-9ABE-FC458CDD8B01">
-</topicref>
-<topicref href="GUID-5DC419C8-FD1B-534F-B33D-0D4EBBC6B506.dita" id="GUID-B93322D8-CD2C-425A-B724-BB183075E3C4">
-</topicref>
-<topicref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita" id="GUID-AA93DE9E-37AF-4D71-84A1-B57DBAED4EBD">
-</topicref>
-</topicref>
-<topicref href="GUID-110A0151-5719-51BC-8506-C18BE57FB400.dita" id="GUID-0B3EE3ED-28C3-44B9-BBD1-554921CC4D41">
-<topicref href="GUID-41D80358-473F-5B50-A09A-4F5601EAC4A9.dita" id="GUID-7A6B9831-51B7-4E12-BBBC-827BE88EAA8E">
-<topicref href="GUID-FF410602-8408-555E-B918-C0CF484535E7.dita" id="GUID-3659C91F-CEE8-4DC6-B876-E93179813006">
-</topicref>
-<topicref href="GUID-7F4692A0-1801-5D91-8F28-06075AC45DE2.dita" id="GUID-A1FD34FE-1582-4A35-9929-5F18D6069CCD">
-</topicref>
-<topicref href="GUID-E10A3336-9C4C-59A5-B94F-6CECA92FFB9F.dita" id="GUID-59E044EE-9AA1-4045-9109-A8B7AB52F161">
-</topicref>
-<topicref href="GUID-08007041-CE18-5B1C-9AE6-042EBBFD1AB6.dita" id="GUID-3A8F2112-D8CE-4357-A758-94CC41C4C913">
-</topicref>
-<topicref href="GUID-93F53961-9DA3-5D01-A881-D28E0EBF8B3C.dita" id="GUID-D78BE8E5-2B0D-4FEB-AA7D-A654972DD3B7">
-</topicref>
-</topicref>
-<topicref href="GUID-57F29787-B425-53EA-9DB4-372B77543584.dita" id="GUID-40FC3DE6-0500-4A05-B611-0C3E1C1EC7EE">
-<topicref href="GUID-F94CEC6D-C602-550F-9B12-856493F3C509.dita" id="GUID-2D7625A8-80B9-4442-9CEB-52AFE6EB8CC5">
-</topicref>
-<topicref href="GUID-895A685E-83E8-51A3-A823-3A0E07B1E609.dita" id="GUID-CA0C721E-B4C8-46C3-A93E-6B4131DCE143">
-</topicref>
-<topicref href="GUID-9A9103E4-27B0-5CF3-855A-DCD44795A5C0.dita" id="GUID-E8D05415-1C7F-4DB3-9E35-1EB06D738349">
-<topicref href="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita" id="GUID-56C69A6F-102C-49DF-BB37-300D6F279578">
-</topicref>
-<topicref href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita" id="GUID-B79FC5FE-AD58-49B4-B00C-CC7230AFF0FA">
-</topicref>
-<topicref href="GUID-39186342-960A-46A4-BC35-851F53665FA8.dita" id="GUID-FEA163D6-C2ED-4A9D-ADDE-7B1998E9DF96">
-</topicref>
-</topicref>
-<topicref href="GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita" id="GUID-69044203-0C94-4544-A5E3-035FAB2D5A54">
-</topicref>
-</topicref>
-<topicref href="GUID-DE9CB4F7-5129-5450-A6D6-9B0BA253FC81.dita" id="GUID-C27B1CDC-3093-49BA-A4F1-F1498287BF72">
-<topicref href="GUID-6E144992-AF5B-5CA3-9CC1-CFB5941103A9.dita" id="GUID-F5F75942-8844-404B-9B9C-2D25DF2A1933">
-</topicref>
-<topicref href="GUID-E3A80D62-09A5-502D-AB55-6AB2A5623465.dita" id="GUID-200A8BF7-E638-472A-BDB6-2113304223E0">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C7786266-FCE7-5A96-AA92-9A71486D3B6C.dita" id="GUID-063A7355-418D-4930-BF08-879F8BF7A73B">
-</topicref>
-<topicref href="GUID-E59A469E-A2B5-5DF0-BA7E-C50D4A38CCAA.dita" id="GUID-B16BBBC7-FAD5-4C91-B1C6-6F53509294DA">
-<topicref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita" id="GUID-7014AC54-674C-44EF-8DE9-579341871C29">
-</topicref>
-<topicref href="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita" id="GUID-9EBEE0CB-1ECC-4C32-8011-9F220A641E72">
-</topicref>
-<topicref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita" id="GUID-1B73FC3F-48CF-46CF-BF71-6A04AB2BBC1D">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-D02B5AF1-B1C3-560D-9654-971A5CC1A904.dita" id="GUID-0872B240-806E-4897-B74A-196630520E5A">
-<topicref href="GUID-D80D6D46-27B7-500E-A83C-63EF038606BF.dita" id="GUID-966CBF91-5E8C-477E-8AA4-8F5659BDCF0E">
-</topicref>
-<topicref href="GUID-C8BD333E-8384-534B-822B-F61B2F7C8B9F.dita" id="GUID-28364793-39C2-4254-B772-BB721279DF57">
-<topicref href="GUID-8B57B733-C418-5623-AFAD-34935FED1743.dita" id="GUID-4BF5DB69-3A42-4F2A-B2DE-EB4B59DC2DDD">
-</topicref>
-<topicref href="GUID-F61D1710-2D52-5B9B-A25F-6DFA606DAC0F.dita" id="GUID-03643266-7AF6-475E-B3B5-6D8F06DADAC9">
-<topicref href="GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140.dita" id="GUID-593960FB-469E-4855-975A-6AC3FF5B4A14">
-</topicref>
-<topicref href="GUID-9D871368-ADB9-5588-A1F3-39A432F4F32E.dita" id="GUID-2E747FC3-3E7B-4D65-B552-255B26D1E82D">
-</topicref>
-<topicref href="GUID-E8266924-FA52-5171-BD73-423A46227A74.dita" id="GUID-CB24D409-183C-4B73-9ADA-3859768F13C8">
-</topicref>
-<topicref href="GUID-0D2456BA-0737-5AB4-9C5E-F8CD70F4DCF6.dita" id="GUID-75C14091-5B04-48BA-9504-F7D61539C7B1">
-</topicref>
-<topicref href="GUID-D8900275-FCD4-5296-A27A-75A1C5744D7F.dita" id="GUID-AF606E44-8C46-4FBA-8F5A-277C69660D54">
-</topicref>
-<topicref href="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita" id="GUID-C7B00373-4C91-4298-BA6E-1467043E1699">
-</topicref>
-<topicref href="GUID-27340D18-A31D-512E-920A-B06C784A978A.dita" id="GUID-A0128BDF-55D6-48F0-BC7B-76E75D983180">
-</topicref>
-<topicref href="GUID-E6AD5C21-493F-59ED-9617-B348013BDCE5.dita" id="GUID-9CBB5426-CEA6-47C7-A805-13B79D7E5033">
-</topicref>
-</topicref>
-<topicref href="GUID-85AA0FD4-3BD1-50A7-B241-AE3908ACCF30.dita" id="GUID-5A88A4C9-B9B5-4498-B622-B08613945F52">
-<topicref href="GUID-8C94EE15-82EA-4A95-9044-C3404F95BD51.dita" id="GUID-13D96727-70E8-4CAC-B5B6-269EFFC37B85">
-</topicref>
-<topicref href="GUID-685CF352-372F-5393-97AF-1FA17DC57BA8.dita" id="GUID-B6EFD428-A6F8-4C09-BE1B-A2EA4DE74FB3">
-</topicref>
-<topicref href="GUID-7C6D3479-2159-5A9B-9970-0B3E625442A6.dita" id="GUID-AD1ADBC4-B172-4FBE-939A-A2702D2C50CA">
-</topicref>
-<topicref href="GUID-24D509E8-CF46-58D3-85E9-27DA7AB22012.dita" id="GUID-0B04B137-4F3A-4A03-8A11-A5BBA6002DA0">
-</topicref>
-<topicref href="GUID-FC929B37-20E1-5DA7-91A7-CBBED2E69A6E.dita" id="GUID-DA987C72-97EC-4FA5-8A1E-48D7992FE483">
-<topicref href="GUID-A6A6BC5B-4988-45B4-863D-0E3733B77EA2.dita" id="GUID-016F7F76-4B64-41E1-BFF7-A74C1B79FE58">
-</topicref>
-<topicref href="GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB.dita" id="GUID-86E5BA2E-4859-451D-85DD-9A7617DE2D30">
-</topicref>
-</topicref>
-<topicref href="GUID-2B6D7221-A23E-562E-9D9C-5EC197F1CB78.dita" id="GUID-D5679D47-0BC7-471F-A3BD-91D8F457C882">
-</topicref>
-<topicref href="GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita" id="GUID-8C7387B5-C14D-470B-86BC-53AEA94AA345">
-</topicref>
-</topicref>
-<topicref href="GUID-7953ECE8-3935-57E1-86C2-D53132930B71.dita" id="GUID-16443216-A93C-4B41-9B00-C5BFED8F917B">
-<topicref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita" id="GUID-0C8DECC7-4C00-43FF-BB55-A7927A48E261">
-</topicref>
-<topicref href="GUID-98903A01-CD04-5345-84AE-2E440CE06E11.dita" id="GUID-F6FE2208-FAA1-4ABE-8C72-483DC47BC7F8">
-<topicref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita" id="GUID-7268C7E8-0381-434C-AB76-5DFB6075B48E">
-</topicref>
-<topicref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita" id="GUID-F1E712AD-4A7E-4475-A807-36FB8F92344F">
-</topicref>
-<topicref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita" id="GUID-9B97EC44-86F1-44B4-92E7-EB180DE68468">
-</topicref>
-<topicref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita" id="GUID-77A90C1D-A86A-4DC1-8FD7-1D51C9E27392">
-</topicref>
-<topicref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita" id="GUID-32D508CA-3C7E-4466-9CE8-2B2CED48C436">
-</topicref>
-<topicref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita" id="GUID-BBEF4F83-B8C4-4454-BF89-255FBFA5798A">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-10A50B7C-63DB-599B-86C1-17989595CBD2.dita" id="GUID-F409C5E6-6DE7-4EFE-810B-0742AB168134">
-</topicref>
-</topicref>
-<topicref href="GUID-D98E984D-69A5-5BA8-89E7-A7CC9FD0C584.dita" id="GUID-7ACCD80A-9E2F-4CA1-ABB9-ECDF605D1228">
-<topicref href="GUID-42C94E3D-93DE-543E-A0D2-8B705C668BE0.dita" id="GUID-853CA862-3BCE-4E6F-81A0-0F29022A0B5C">
-</topicref>
-<topicref href="GUID-3B2FB34B-B4FC-5273-AE35-DADA2FA4C419.dita" id="GUID-BFF6DF9E-31E6-4CDF-8651-57C29C27A87B">
-</topicref>
-</topicref>
-<topicref href="GUID-4B8AEE55-1601-5CF8-9DD1-492DAE18F0F8.dita" id="GUID-AF585C59-6647-42D9-8C96-7C375A4B8669">
-<topicref href="GUID-ED6ED5E6-5A95-54F2-B5B2-6145A10F44BE.dita" id="GUID-E0DA1D6E-4A50-4DD5-9A05-DC749D987132">
-</topicref>
-<topicref href="GUID-634F4945-D92C-58D6-BF68-B8A770B2EF17.dita" id="GUID-B6D5BFD5-013F-458F-B29E-E8817D593041">
-<topicref href="GUID-79370E26-4549-5F31-99A3-8D0341F58F08.dita" id="GUID-13E02D95-1412-40D7-B68D-F968256351C6">
-</topicref>
-<topicref href="GUID-3AFA592E-ED32-5AC6-B331-E7191CF2D5E2.dita" id="GUID-B3E32A7E-61A3-48BF-A0F3-4869832004A7">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-28AD51DC-C101-5E6E-9EC3-C2B61400D8CD.dita" id="GUID-BC8F28E8-B00D-48D6-A280-47C627604356">
-<topicref href="GUID-D60B55FA-D8C1-559A-9D99-48845BE32A6C.dita" id="GUID-732401D5-1D3A-4D7A-9A41-08A6BE770AF8">
-<topicref href="GUID-B007634D-4D55-528A-8B85-6120C633AC8B.dita" id="GUID-E54D0A21-CE4B-49F4-9F11-6F65D6CD3CBF">
-</topicref>
-<topicref href="GUID-ECE93783-F571-51DA-AB92-EDDA8618A85C.dita" id="GUID-FC314CCA-F48D-4990-8E90-645BE8B29DB7">
-<topicref href="GUID-B1D5B680-00E3-5702-985A-94256180E2D8.dita" id="GUID-696975D2-78E9-4CFC-B12A-0C0C53772260">
-</topicref>
-<topicref href="GUID-A18153C0-230C-51FB-9384-A48BB4E42F03.dita" id="GUID-0A0578ED-7DE3-46FF-BF26-7E8DFB779070">
-</topicref>
-<topicref href="GUID-01677FF9-8FA1-5F0D-8223-46EDD20E3075.dita" id="GUID-12F6D0A5-4742-4EE9-8D5A-355A6495CCBC">
-</topicref>
-<topicref href="GUID-FC24C65C-0DCB-5E07-9A68-9001D34664DD.dita" id="GUID-263FCAF4-58F3-4F5F-9140-8775DC94C9D9">
-</topicref>
-<topicref href="GUID-96AB1D5A-932E-55BE-A025-F01608546B99.dita" id="GUID-D2E9FB5D-84D9-401E-9E40-417A119C7135">
-</topicref>
-<topicref href="GUID-38C37BA5-B972-5C8B-B8DE-B2FECF2A3C3C.dita" id="GUID-7B73ED0B-F5C1-4035-908C-128DC7C865DA">
-</topicref>
-</topicref>
-<topicref href="GUID-D33EB877-CCCB-527B-8AFC-4A8385C55E78.dita" id="GUID-F400491F-9F2F-44F4-AD13-AD6457EBAFF0">
-<topicref href="GUID-B419D99E-8312-5336-9693-3ED8DFCD0559.dita" id="GUID-E3832880-D51C-41CA-9DA8-F0E87948499E">
-</topicref>
-<topicref href="GUID-69D916D3-ED05-58DA-BA42-CE4D7E4F6482.dita" id="GUID-08655BE8-8E87-497C-B78C-6E49BA0A3BC5">
-</topicref>
-<topicref href="GUID-3799F0DA-B99C-55BB-B44F-63B971DF1865.dita" id="GUID-D32C7BC1-20E6-47E3-A796-B016FAD1B015">
-</topicref>
-<topicref href="GUID-7984F8F7-DC7B-56E0-A5DA-071A3D87714A.dita" id="GUID-1B0077A9-9E18-4BBC-9228-54C1DD90ED27">
-</topicref>
-<topicref href="GUID-5872329F-2B52-5F52-83C1-205F2F933877.dita" id="GUID-472EFC3C-08BD-4B3F-9BED-6C0B65949AF4">
-</topicref>
-<topicref href="GUID-B9F07057-4B31-5FE8-BE4C-98CC8151CD29.dita" id="GUID-589A5E1C-161E-4DC9-8AEF-078FC6D53E1A">
-</topicref>
-</topicref>
-<topicref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita" id="GUID-54AABA27-605B-4E31-966E-1464F3E5A3FA">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C5103B39-6F67-47E3-938A-32933E75F98E.dita" id="GUID-2106C302-CC60-488A-9322-D9EEE789E9D5">
-<topicref href="GUID-05DE2202-C0A4-4612-8EA0-7DA8B3DEA331.dita" id="GUID-779E85B3-2CA2-4ADB-99BE-BA99DA9A340F">
-</topicref>
-<topicref href="GUID-A2031A61-3319-4FBA-BC71-AC1327182053.dita" id="GUID-EF9EC978-AEDF-4475-84F0-60A3BEA272A9">
-</topicref>
-<topicref href="GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E.dita" id="GUID-4B95E342-5522-4078-86A0-4CF4B2BD94A4">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-D89215E3-2762-460E-8EA4-0B190B9E39AE">
-<topicref href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita" id="GUID-17CFBB4E-0DCE-4B46-B6F7-F3ABE6BFE940">
-<topicref href="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita" id="GUID-A21939AE-1007-4B6A-A46A-46E9BE20F9D2">
-</topicref>
-<topicref href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita" id="GUID-C7AFC90B-187E-4C3F-8D08-420EB175C38E">
-</topicref>
-<topicref href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita" id="GUID-F4D2C398-2D26-472E-97BF-18909B0A038C">
-<topicref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita" id="GUID-4F9FD7C1-07BD-4669-9D18-565738B1E496">
-</topicref>
-<topicref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita" id="GUID-2D758D24-E616-4619-8196-D363EAA5F5BC">
-</topicref>
-<topicref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita" id="GUID-6E19C595-A644-4C0E-9660-C5D4423C17D7">
-</topicref>
-<topicref href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita" id="GUID-841AC5A7-76A5-4441-A416-65128B70740F">
-</topicref>
-<topicref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita" id="GUID-B11DA7C7-54D9-464A-86B5-478035D6D98E">
-</topicref>
-<topicref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita" id="GUID-1804375C-673E-4F74-9A41-DFF34E1198BC">
-</topicref>
-</topicref>
-<topicref href="GUID-47851718-8DCA-57F5-8520-7044048A5852.dita" id="GUID-E7ABC07D-DB97-421F-8C75-FDDECCBE60D8">
-<topicref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita" id="GUID-D5EBE5CC-9A41-4C82-9A95-A4CAB3332A9C">
-</topicref>
-</topicref>
-<topicref href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita" id="GUID-794F76DE-0BA0-40A9-975B-99ED31EC8034">
-<topicref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita" id="GUID-67D466EE-4F8B-46E6-A196-587B76C15414">
-<topicref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita" id="GUID-CA95299F-C6CD-43B7-8867-F467AC79F276">
-</topicref>
-<topicref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita" id="GUID-AD07BADC-1657-45B1-A4FB-E1FEB3D4EA3F">
-<topicref href="GUID-29272C8D-A0F6-4861-90FB-D1637D0D8CD8.dita" id="GUID-C61C3F9D-2D6F-489D-B27C-6051289905DC">
-</topicref>
-<topicref href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita" id="GUID-313029DA-C91F-4BC9-A12E-308127A7EF40">
-<topicref href="GUID-0174CE72-AEF6-5DA9-A9C5-074781BD544F.dita" id="GUID-DC54AEB0-6076-4C55-938D-0A2A58845EE4">
-</topicref>
-<topicref href="GUID-E5CDDA05-CD86-5C44-B9DA-3249D9C14396.dita" id="GUID-7E0EA02F-8E40-4A42-8631-960868790468">
-</topicref>
-<topicref href="GUID-53E1EBAB-758B-58DF-9568-8CC682C0F74F.dita" id="GUID-3BD4C09F-1CC8-493C-B4F8-67A6291FB954">
-</topicref>
-<topicref href="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita" id="GUID-87CCF995-135D-465A-BC38-0CD3C7B72E0F">
-</topicref>
-<topicref href="GUID-9189A3F5-3016-5AF5-9D84-4E066A62D8DD.dita" id="GUID-B2B07891-B3E5-42AB-B650-CC1B18745A57">
-</topicref>
-</topicref>
-<topicref href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita" id="GUID-5DBBDB60-AE31-4AE2-8CB2-8B97D4FEB9AE">
-<topicref href="GUID-40113BA1-FFDD-535C-B487-8C9F569E2BC7.dita" id="GUID-D53F632B-1A08-49B2-AA1C-A8050A657294">
-</topicref>
-<topicref href="GUID-D68E0A64-0E8A-5C52-9C5B-93BA3B80C200.dita" id="GUID-B795DD0C-F44E-4654-BCFF-603395621893">
-</topicref>
-<topicref href="GUID-08A6A034-5609-58B0-8EA7-943B2A937B40.dita" id="GUID-27AAB492-7DD5-47C1-AC10-930A6ABB0E9A">
-</topicref>
-<topicref href="GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205.dita" id="GUID-0F13113E-7EA7-47CD-BA53-4BB946FAECB4">
-</topicref>
-<topicref href="GUID-CE7CF024-4898-551A-841B-38EC57A3EC82.dita" id="GUID-28D7FA0B-5658-4E55-962B-944A9868C2D4">
-</topicref>
-<topicref href="GUID-7AE4913D-18CE-5F17-A6B1-6E3F6975A178.dita" id="GUID-82F1E809-7B58-4FA6-94E8-2BF39765F448">
-</topicref>
-<topicref href="GUID-91874A4A-57A4-54F9-966C-7D65D3782220.dita" id="GUID-971FE3A2-FFAA-4708-8D6B-3DA068830BAA">
-</topicref>
-<topicref href="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita" id="GUID-18D7E475-3F52-4045-9D2E-D1F076600B24">
-</topicref>
-</topicref>
-<topicref href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita" id="GUID-12905854-AF7A-4056-A440-4D775CC4A0C1">
-<topicref href="GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C.dita" id="GUID-A8EC2066-17E3-4B4D-AD59-6589CA0012B6">
-</topicref>
-<topicref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita" id="GUID-D29A4BDF-1EEA-4C35-9A85-CF7228E3C36F">
-</topicref>
-<topicref href="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita" id="GUID-8DA69DAC-7272-45B9-89E0-34103270076F">
-</topicref>
-<topicref href="GUID-E8DF12FC-DCA9-57EA-833A-C1E8D6DAF405.dita" id="GUID-44796B87-2170-45FA-8F50-A7462EAC4A39">
-</topicref>
-</topicref>
-<topicref href="GUID-08427065-B8E5-5194-B095-3B5213836BED.dita" id="GUID-362EB068-9B3E-4887-A2DA-E80978BC8012">
-<topicref href="GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5.dita" id="GUID-50F5E99C-DD94-4DC6-90D6-6C712D310B4B">
-</topicref>
-<topicref href="GUID-7AC3477E-09C1-519A-9079-DA969B9FC4D7.dita" id="GUID-714414EC-21DB-473C-A674-740F060E8F45">
-</topicref>
-<topicref href="GUID-7750D4BE-9FBA-5D29-806D-B80911170ECD.dita" id="GUID-22BAAF8C-F2D6-4A2A-8F19-302FD9E2C45B">
-</topicref>
-<topicref href="GUID-EF87F8F8-1521-5C50-85A9-94038A99021C.dita" id="GUID-0A4CCF01-3BBC-460C-AC36-E5DE95638E21">
-</topicref>
-<topicref href="GUID-CD550DE7-D013-527B-BADE-5CB122C352C8.dita" id="GUID-FABF044C-7368-4FD2-96C6-1FEED10C9608">
-</topicref>
-<topicref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita" id="GUID-91D4A1C7-948A-4EF0-9B24-33C3251527EC">
-<topicref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita" id="GUID-6F122974-BDB8-4D22-84D0-797D18599FD1">
-</topicref>
-<topicref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita" id="GUID-7A1DF802-DAE0-4C0E-848D-F32E72370C1C">
-</topicref>
-<topicref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita" id="GUID-8A4E5B0C-74AC-4F99-A515-080056A38FF9">
-</topicref>
-<topicref href="GUID-3E7A9A92-F217-4BD1-82CE-227931CFB8ED.dita" id="GUID-46CCA7BF-E726-46B9-9BCD-A89F240FBA35">
-<topicref href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita" id="GUID-73B8557E-C6BB-413A-BC65-F014C6DCB60E">
-</topicref>
-<topicref href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita" id="GUID-C7AE12D4-025F-4DF7-BDB6-187FFB18A4A1">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B7FF0B9C-3A17-5AAA-A986-7BA4F44DBD41.dita" id="GUID-030E6C84-CC8D-4ECE-8D3C-8A570AD8F75F">
-</topicref>
-<topicref href="GUID-B830A1F7-9220-5879-80BE-C494A4CD155B.dita" id="GUID-FD98DE97-30B9-4A2B-A868-C076B03C4398">
-</topicref>
-<topicref href="GUID-A51D3749-442A-54E8-8EB5-BF907694CD8C.dita" id="GUID-1BB75933-D571-4E71-A062-4288507A9407">
-</topicref>
-<topicref href="GUID-E1E11C95-3400-548B-AEEE-577DA8FB9ECB.dita" id="GUID-097D1201-0DA1-45ED-AD11-1920CE93715C">
-</topicref>
-<topicref href="GUID-930A3ABD-84FB-5D76-938C-79383273DAE6.dita" id="GUID-9D377737-D55C-4732-992C-3CF460FBB24D">
-</topicref>
-</topicref>
-<topicref href="GUID-1C025957-258C-54C0-94A5-AD60C14E6D76.dita" id="GUID-EAF216F0-52B0-4F10-9A43-77124739C9A0">
-<topicref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita" id="GUID-FF0A1AB0-23F4-4121-A66C-86417185B581">
-</topicref>
-<topicref href="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita" id="GUID-5BA6829A-E906-4FEB-92A3-B009B390B6EC">
-</topicref>
-</topicref>
-<topicref href="GUID-567DFA14-A7AA-56F5-9741-CB1F28BCD39F.dita" id="GUID-52DAC3B4-BDB5-4CA1-BB36-EC767B5EAA2D">
-<topicref href="GUID-365BB311-8FC8-5DA5-B80D-C22D4AB35AEE.dita" id="GUID-86F09BA2-0A4C-4A0D-8EF1-B9D7C954078B">
-</topicref>
-<topicref href="GUID-2C17B7CA-39A3-5E2B-9B8E-239158A94F5C.dita" id="GUID-91CE20DC-40E3-4BD6-8616-298C316EFAF3">
-</topicref>
-<topicref href="GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF.dita" id="GUID-7FB1810D-D2DD-4CA0-9163-3FF6B521C87D">
-</topicref>
-</topicref>
-<topicref href="GUID-FAF1B60A-A4B5-5E45-B9B9-84DA982F2E2B.dita" id="GUID-8B2BC58B-D7F0-4AC0-AB5A-96EEEC733747">
-<topicref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita" id="GUID-6EC83A2B-1C86-4560-839E-EE0A5DCC370A">
-</topicref>
-<topicref href="GUID-37CB6D0C-41F0-5C52-A925-978FAC30D311.dita" id="GUID-FA17E6F1-6098-4252-8D20-33F9130E9A43">
-</topicref>
-<topicref href="GUID-FD622CE6-42D0-534D-9D0E-7AED5453F35A.dita" id="GUID-117C1EB0-3E7A-4010-AA88-7B22C48D1AEA">
-</topicref>
-<topicref href="GUID-EB82A2C8-EF92-5276-B503-687DEBF82EA4.dita" id="GUID-A01FC9CD-9911-4F67-9BCF-AA6E49ED8A42">
-</topicref>
-<topicref href="GUID-04C294A2-C63B-55A7-82DE-379BBFA05EF9.dita" id="GUID-63DF322F-C49D-4CCE-A4CD-6ADEE63161E1">
-</topicref>
-<topicref href="GUID-ECE9B461-B473-5B7B-B5EB-FAA60479848C.dita" id="GUID-35227F9C-2C20-4628-AED1-B708F37B5DA4">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-862D3B3B-3369-5FF4-B81A-ED5BE415B035.dita" id="GUID-99986B1C-206E-4E6A-97F1-825B5993351F">
-<topicref href="GUID-E29CAFA8-523D-57D2-AC1B-D6D01741550B.dita" id="GUID-7449337A-1CAD-49E6-B3E5-32496D6EB83E">
-<topicref href="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita" id="GUID-5513E601-D6CE-4203-814A-D784E0A3111D">
-</topicref>
-<topicref href="GUID-0AD34BA6-D0C5-5AD7-B8E1-F737BB5FC0AC.dita" id="GUID-3ED7FF66-BD64-4521-B3E5-D3D06D02B2ED">
-</topicref>
-</topicref>
-<topicref href="GUID-85E1E45B-DD05-5B7D-84E7-9911E0A3E3CC.dita" id="GUID-12579CA7-4C67-4943-8262-E43CC98A7C8A">
-<topicref href="GUID-AA02BFA9-E62E-56FC-BF22-8FE092ABD9DA.dita" id="GUID-BCC0827D-E7E1-4678-A217-76C2B5E64714">
-</topicref>
-<topicref href="GUID-6E8807F5-9CC0-5A70-8182-22230D43AA9E.dita" id="GUID-B33DD6F7-4AF8-4306-9B2F-75D21A557D5C">
-</topicref>
-<topicref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita" id="GUID-BE68B6E9-70A2-4AA7-BE70-A99E3F4CE4FF">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita" id="GUID-96D864DC-4EE2-4012-AFB5-6B0860A90312">
-<topicref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita" id="GUID-DDB1916E-FF20-4BCC-A976-0CCD73691CCF">
-</topicref>
-<topicref href="GUID-1C3888E3-33D4-5057-8819-CB6D97398031.dita" id="GUID-9A205768-297D-41FE-AF27-BEFF38F4A6CE">
-<topicref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita" id="GUID-A3DEE520-D6C0-4365-AE4C-82BBE71B6A10">
-</topicref>
-</topicref>
-<topicref href="GUID-30CAE438-6CC7-5532-8727-781B8E83574A.dita" id="GUID-35D3DF90-375B-4F1A-8E28-8E6532C51188">
-</topicref>
-</topicref>
-<topicref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita" id="GUID-1C6B7980-7817-44EE-94D8-29F51F16F1E5">
-<topicref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita" id="GUID-F7A39DC8-781E-42C8-9548-FBB0E7D4D5C6">
-</topicref>
-<topicref href="GUID-1C3455BE-2082-504D-9157-88D8C72B1B80.dita" id="GUID-F5270BD7-B4D9-49DB-8189-364115B53090">
-<topicref href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita" id="GUID-E50810DD-31FE-4E92-9F5A-3BAAC72B4C91">
-<topicref href="GUID-30066989-4A0F-5000-9488-AA7E50E2B871.dita" id="GUID-BD06C760-5167-4729-899E-1F24F2973450">
-</topicref>
-<topicref href="GUID-A3B5381F-7D81-52D5-97DE-CCF56C2A49A9.dita" id="GUID-56F10436-B54C-4C19-8058-E47BA5CB743D">
-</topicref>
-<topicref href="GUID-33180489-18DE-5705-A2DF-E44148C3A820.dita" id="GUID-688E9BA3-54FF-40C6-8536-5212373A2B45">
-</topicref>
-<topicref href="GUID-46C56A16-E548-59B1-88DF-3DAF3FF68751.dita" id="GUID-2B685E1F-3527-4879-9788-783866D1AD78">
-</topicref>
-<topicref href="GUID-2BC2A35E-634D-5F70-8279-C1822C0E4F3F.dita" id="GUID-ABDAFF9D-3A33-43C6-B346-492F89284149">
-</topicref>
-<topicref href="GUID-248D480D-2406-5FFD-8E3B-09CA67D1BE69.dita" id="GUID-DA0EB9E9-B8D5-44AE-B095-06E474C289DC">
-</topicref>
-<topicref href="GUID-25035286-5134-51F6-A3B6-C0DF0E802719.dita" id="GUID-D1239C71-6840-4A4D-9366-983EF341A692">
-</topicref>
-</topicref>
-<topicref href="GUID-5CEE36FC-C5A9-5C4E-9DBC-9C7B5B44EA2F.dita" id="GUID-A8A1C72D-B3FF-4F20-A940-684327CE7941">
-<topicref href="GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF.dita" id="GUID-58560B39-205F-4587-ABF9-53BEA89B615F">
-</topicref>
-<topicref href="GUID-F5DC1A03-6F07-5E60-B912-429DDC820875.dita" id="GUID-03468D80-0492-4005-BFB9-E2874648D449">
-</topicref>
-</topicref>
-<topicref href="GUID-8CEB9CF3-2F33-58E3-B948-565B61A37BC3.dita" id="GUID-5A838AC4-EC2F-4346-8F14-81E1089B7F5D">
-<topicref href="GUID-067BC702-4F66-5CAF-952D-7CFA35F5EB1E.dita" id="GUID-C2C9DEA8-2D17-4CD9-8FA2-4C91661B2BC4">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1E68A78A-52E5-5DF7-B540-85C7194E4617.dita" id="GUID-46B8ABE7-6CBF-424F-9C51-6615822AD1BC">
-<topicref href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita" id="GUID-DB596A41-288C-4179-A5CA-A9F3F9EA5D05">
-<topicref href="GUID-1903F18A-F095-5494-AF32-423AE7F27252.dita" id="GUID-F5578861-8A86-4D8E-A82A-DF4F5046EC0E">
-</topicref>
-<topicref href="GUID-BD463EF4-2538-51AF-8946-BFEC902A2DD0.dita" id="GUID-67AF6355-D1D4-4F2B-B593-B8DB664DFA76">
-</topicref>
-<topicref href="GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD.dita" id="GUID-A4FA019A-1553-4E7C-A782-5D1D9A521F82">
-</topicref>
-<topicref href="GUID-D38C47AD-ED05-5693-A734-498788B9B85B.dita" id="GUID-2CE5E690-9CF7-459C-ACE2-1D04A44086C1">
-</topicref>
-<topicref href="GUID-A5693758-495B-598E-A514-24C48D459BB6.dita" id="GUID-0A26C9A6-3047-4870-8045-FDB01D88043A">
-</topicref>
-<topicref href="GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF.dita" id="GUID-1BFF33FF-EC60-471A-B6D6-6F8313F5D145">
-</topicref>
-<topicref href="GUID-0DD1EBC4-6068-5FE7-B649-CABA57E86195.dita" id="GUID-52FB5D33-4AC5-4EC9-BB28-6DD3F908AA3D">
-</topicref>
-<topicref href="GUID-EF49C43F-E9ED-5B4D-B9C4-376B9A4E3FA6.dita" id="GUID-D0526A44-1837-460E-B237-382760B0290B">
-</topicref>
-</topicref>
-<topicref href="GUID-520AC2F0-009E-51F3-A661-3B6E949F1423.dita" id="GUID-31622DDB-5BF0-41B8-8549-B8B11ED37D4F">
-<topicref href="GUID-9E6822BE-BDF0-5710-9E60-A8DB14622C55.dita" id="GUID-E8694090-B05E-4910-8931-318CE08293D4">
-</topicref>
-<topicref href="GUID-F9471A5D-D239-5B24-A116-2B5B2C1F5C61.dita" id="GUID-DDB278F8-0380-4830-8B76-7C234D58557D">
-</topicref>
-</topicref>
-<topicref href="GUID-9BF04EB2-7050-51D2-9559-66BC47ECC5B1.dita" id="GUID-8866B6A3-9D88-4C48-9B0C-7DF88406F1B9">
-<topicref href="GUID-6AE2F937-69BB-5330-A2B5-44D37FA1DE16.dita" id="GUID-DF807474-F6B5-4A51-8793-2B683F13D4BA">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B6D4AEE9-5C17-51D9-BBDE-7CCB5218279D.dita" id="GUID-7765BD0C-4C60-4C73-B703-0CF602E5DF16">
-<topicref href="GUID-0AB9B221-38AE-576E-AC5A-C4C106E3D93B.dita" id="GUID-A575FC4D-72D0-41BA-B22D-5BB66DA83438">
-</topicref>
-</topicref>
-<topicref href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita" id="GUID-86A4E8AD-5BC3-4033-8286-41FB7B08749E">
-<topicref href="GUID-E9FF94D2-AFFD-54A4-A6C2-00929BC70DB0.dita" id="GUID-90361D7C-AB3D-46A6-9D53-28A790289987">
-<topicref href="GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D.dita" id="GUID-86FBAAD0-6FF6-4059-95FD-851111552420">
-</topicref>
-<topicref href="GUID-75B0B7C7-37B7-57D1-8EAA-8303A915A9DD.dita" id="GUID-8122BFE4-B0B7-4E3C-A56C-F2DF7A9D1D7D">
-</topicref>
-</topicref>
-<topicref href="GUID-AFE8A9CC-E026-5396-8E0C-616338B5F5C3.dita" id="GUID-BE980C96-6EBA-4563-BDC2-DC727A067416">
-<topicref href="GUID-3584C6F0-0B9E-5490-9CDB-86FA218A2E26.dita" id="GUID-9C0BEF18-A23B-43E9-A213-97840E9630F5">
-</topicref>
-<topicref href="GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674.dita" id="GUID-8774D1EC-AA62-4816-9EB3-427C3AAC2BEB">
-</topicref>
-<topicref href="GUID-4BB03B97-9AD0-50D0-AAE5-B7AB2415716E.dita" id="GUID-D72A67E8-12D6-485D-BC85-5E3A5F5F8DF9">
-</topicref>
-<topicref href="GUID-294E84BB-65D0-5275-848E-1960B201A371.dita" id="GUID-201A40B4-5D71-4E61-A7CA-13DD2A76AB95">
-</topicref>
-<topicref href="GUID-E1FFE8AB-9C4C-51DB-AC08-F0A18C33D735.dita" id="GUID-2E24CB91-46C6-418C-BA74-6EE67ABD4902">
-</topicref>
-<topicref href="GUID-C3FC557E-72B4-5714-AE21-930F421204D6.dita" id="GUID-D19CD617-C456-4C49-9058-098C61F29972">
-</topicref>
-<topicref href="GUID-0ECBFCA7-D398-53CE-BAF4-86CFB0124A0E.dita" id="GUID-7FC69884-610C-4349-A3B0-2314B287B55C">
-</topicref>
-<topicref href="GUID-9BF78E98-E376-5EE4-9350-C77BF9F540E6.dita" id="GUID-574C7B4E-D481-4D9B-8977-145AC72145F0">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E82FABA9-9CCC-548F-99DB-EF2B9036B405.dita" id="GUID-C5B14700-819C-4C79-93CF-11F996E367B2">
-</topicref>
-</topicref>
-<topicref href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita" id="GUID-1DE8EB0B-A721-4E58-B593-F78158147E6C">
-<topicref href="GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita" id="GUID-19DF4DC7-E36D-4041-A928-BF208427A43A">
-</topicref>
-<topicref href="GUID-CBC43846-22BB-5AAF-89FE-3CF4F11B76F6.dita" id="GUID-178C85CF-8929-4D90-BA26-1E95274E0A8C">
-<topicref href="GUID-12D5C140-DFDA-549B-9CCF-EF7488B832AE.dita" id="GUID-FFE8D9EF-4448-4210-83CF-0F9F5B6A7BD3">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita" id="GUID-F68CDF4A-FA98-4D9F-BA02-3253A5564335">
-<topicref href="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita" id="GUID-B2C36C83-9630-4B2A-A1B3-5BD9D20DE33F">
-</topicref>
-<topicref href="GUID-C2E24953-3D83-59FB-8B7A-C850474406DB.dita" id="GUID-8E687CE1-8F5B-41CF-85FD-0A8F357A2092">
-<topicref href="GUID-7EFBEEAD-3E74-5165-B305-313F7DE4BEB4.dita" id="GUID-90037DDA-E1A3-495B-8908-39BA3BCFFACC">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita" id="GUID-BBF29462-03DD-454D-8196-AB8A00CF9756">
-<topicref href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita" id="GUID-41941790-F1B6-4A81-976A-9D21C9862BCE">
-</topicref>
-<topicref href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita" id="GUID-2BD90A19-9A3A-4AF0-A66F-4CCF8EE429C8">
-<topicref href="GUID-A5914CFF-6F86-53E8-9928-36D3379835B1.dita" id="GUID-E34C8B0A-9393-4DD9-B72E-D988B0F0FC8C">
-</topicref>
-<topicref href="GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita" id="GUID-2960B77D-F18B-4851-A340-FE06579E2796">
-</topicref>
-<topicref href="GUID-2923A42C-1C0E-553D-8563-7B9FC51F153F.dita" id="GUID-02D8E727-1FB0-4A89-8538-7456552E8A22">
-</topicref>
-<topicref href="GUID-46813F51-370B-5853-917C-6916925A347D.dita" id="GUID-3B216687-C3B1-4265-B842-B285D1A9D30F">
-</topicref>
-</topicref>
-<topicref href="GUID-FFA5956E-0632-42F5-A2F9-0503888EF72B.dita" id="GUID-DBD9A61C-CD7A-4F68-B0DF-D654434FB573">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-9FEA179D-0B4C-4618-97C8-A74B691A8953">
-<topicref href="GUID-C0D38954-2FC5-4E8B-BC11-229464DCF16C.dita" id="GUID-40684C06-DB06-4374-A3E8-B00CB9A83478">
-<topicref href="GUID-1E8904E3-43AC-5332-A2EF-F11F5728DBE8.dita" id="GUID-D9029AE9-1C64-479E-A8CF-78E6078A36BA">
-<topicref href="GUID-B4A54501-4AA4-5ACB-96D7-4427C7752639.dita" id="GUID-DEE4D094-5C46-43A1-8D66-E6DADF33B902">
-<topicref href="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita" id="GUID-DF3086D6-7211-45BA-9F35-D7C2E094D6B4">
-</topicref>
-<topicref href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita" id="GUID-00067C9D-13F5-4D13-A35B-140712B5AC48">
-</topicref>
-<topicref href="GUID-81253CA0-2B57-5A3E-9ACD-469D4B922047.dita" id="GUID-7197BA15-9D7C-437E-BCE5-779FD49BE27D">
-</topicref>
-<topicref href="GUID-D9EE6C26-B0F0-58B9-BC17-4E18136187F8.dita" id="GUID-B3CBED71-DCEB-4924-B501-22E54DC7663A">
-</topicref>
-<topicref href="GUID-F9184A82-A467-5022-B02F-2FDF52258618.dita" id="GUID-FF76FA17-BBCA-4F03-B549-C1C2DFCD6A37">
-<topicref href="GUID-E50FC36D-949A-42E0-97A6-64D336DF8057.dita" id="GUID-1418830E-C48B-4C9E-957D-E3214CF989BC">
-</topicref>
-<topicref href="GUID-AD6A057D-D514-4145-B7A6-E43959543E92.dita" id="GUID-4AC2E740-3862-495E-A727-E717A81C3CE4">
-</topicref>
-<topicref href="GUID-5A9CBB5B-DE6A-42D6-9244-3F151B79BDCD.dita" id="GUID-77C10FC9-6089-44E0-8EBA-3EFD256077EC">
-</topicref>
-<topicref href="GUID-C3D309CB-EA9E-4D8D-8C88-3EBC5695385F.dita" id="GUID-DCAC2B9E-573E-4CF0-AA48-2F75A0631D4D">
-</topicref>
-<topicref href="GUID-00552575-AB10-4CB3-A37B-D83AE5975811.dita" id="GUID-3C88229E-9F3C-4D85-A434-D540FC8C8EEA">
-<topicref href="GUID-F411736E-09FE-4F46-8185-DF013E950069.dita" id="GUID-5E9874F0-71E4-4789-AD7A-E4E57FD18C51">
-</topicref>
-<topicref href="GUID-EA9C4CF0-F39B-4FBB-924D-F78320E08F2C.dita" id="GUID-14AA10DF-1A73-4390-9B75-F83B109D3782">
-</topicref>
-<topicref href="GUID-CDF9F944-814E-47EF-A6B5-E75300C228DD.dita" id="GUID-45D15814-7B59-43D0-903E-0325B7ECF8E4">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-A88F4A4E-49D7-4F92-8047-CA287C54B964.dita" id="GUID-8CF69858-9C17-4AD5-8040-6B07B7E4FA28">
-</topicref>
-<topicref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita" id="GUID-57062DFC-D058-4008-BD45-6B5112CC67AB">
-</topicref>
-<topicref href="GUID-F6CF2920-9095-568B-B332-D5F4A05BD23A.dita" id="GUID-F7ECD36E-4BA1-4899-856A-5BBAA78F2E1E">
-<topicref href="GUID-625FFD05-5660-4A8B-A543-BABB5E7A5503.dita" id="GUID-A5504C93-FDC3-4349-BD96-69A43A1EA4DF">
-</topicref>
-<topicref href="GUID-675D02F1-E7B1-4869-9213-8D0C2E0CC50D.dita" id="GUID-710914E2-5A98-421B-BD2A-06F5FF4299B0">
-</topicref>
-<topicref href="GUID-B432A48B-46CE-4FD4-880E-DA15AA304CAA.dita" id="GUID-63F31DF3-22E4-40C7-9850-798ED1CDBC17">
-</topicref>
-<topicref href="GUID-7800A00C-5BD3-46FA-9D0A-9DF29A5C057E.dita" id="GUID-8D6D1A4B-4B37-42C2-A818-EDFAC6A7548D">
-</topicref>
-</topicref>
-<topicref href="GUID-487F5A5B-E2D1-5138-8063-82940879D3D0.dita" id="GUID-BBFDAA96-1B69-46CB-9411-ABF1206EAD18">
-</topicref>
-<topicref href="GUID-E14C1D1E-B7E5-5244-8BE7-386C542AAB58.dita" id="GUID-ED9EC398-E4D1-43F7-852E-D3F1D87137B9">
-</topicref>
-<topicref href="GUID-F066FEA3-94E7-5D79-B427-E247A2D1EBB8.dita" id="GUID-061D7B39-D5F8-49DB-A24B-3E57332D6CE2">
-<topicref href="GUID-4ACEA6B0-CA7C-5751-A1B6-283287552A31.dita" id="GUID-82C82CD0-F240-4416-8293-DDB5EF380F8A">
-</topicref>
-<topicref href="GUID-F0ABCDE5-F818-526A-81EB-E2D4D87E3231.dita" id="GUID-1A517A43-7CD0-4513-9419-D9726BD3FC18">
-<topicref href="GUID-20B2C96A-9742-4CB0-A37F-19B65765E826.dita" id="GUID-1402EF73-42FD-417D-871B-D2513CF15C3E">
-</topicref>
-<topicref href="GUID-0E785F9A-F349-4941-B0B1-CFEE8A961464.dita" id="GUID-9BEE046B-039C-4257-8CA3-73692903A888">
-<topicref href="GUID-765A6D87-5C2C-4E79-9EA5-9F8930062ED0.dita" id="GUID-869C6E23-2AA2-4BC1-A651-3D6FB85C3FF9">
-</topicref>
-<topicref href="GUID-1D9EA46B-CF0B-4779-97F9-5BECA3622777.dita" id="GUID-71B00777-8866-46DD-A829-DFA8774C3896">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-8C5A65E6-D753-472F-B885-FD0409589036.dita" id="GUID-96AF18A1-20D3-4FAA-888A-7B7919EA11C8">
-</topicref>
-</topicref>
-<topicref href="GUID-1A28F76D-ACEF-51A3-96DF-9DFF2F5C2ACF.dita" id="GUID-D73AD6D1-248A-48EB-B8AB-1E1A72AB7E92">
-<topicref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita" id="GUID-22A829FE-2AD0-4AE0-B4D2-E2E97B49C6AB">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-939C0EE6-0931-4898-842B-9D0C9D61DD2F.dita" id="GUID-70E38AB7-652A-429E-AD1E-470EAD6B07CD">
-<topicref href="GUID-C0E7CBC4-C525-4CA8-8D21-E7E2ABE396CE.dita" id="GUID-59BAD668-3900-492A-9865-E9A10C46DC13">
-<topicref href="GUID-956E7DD6-C7FA-5F0A-9C86-D7FE58373A25.dita" id="GUID-067C64D7-5EB5-48A6-9C7A-CA6F97232588">
-<topicref href="GUID-EAD6B365-DCB9-51AD-AF21-0B8262B468A2.dita" id="GUID-D63820BE-8F19-415D-A31D-1F3F4F96DBA5">
-</topicref>
-<topicref href="GUID-F8159093-6349-516B-8301-C50BD2AC9F2C.dita" id="GUID-A0ECBA19-A462-4F78-8664-EA6D84E150B0">
-</topicref>
-<topicref href="GUID-402B5633-1E3A-5F24-8C4F-DA5F04D2557C.dita" id="GUID-055672EA-DF5E-4CB1-BA2B-5CA28D2754CD">
-</topicref>
-<topicref href="GUID-B36F47DC-0A62-5B8F-A761-2717B921A339.dita" id="GUID-DB8FD704-D44B-473D-9526-8DCC6C019604">
-<topicref href="GUID-7514DD31-E82B-49FD-916F-A9DF12D97204.dita" id="GUID-C549AB26-38A7-48B1-8D34-05C95BC316CD">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-945FAA13-A302-55F5-917C-EAD2C9D960E9.dita" id="GUID-6E332AEE-061F-4891-898D-2619D9FC48E4">
-<topicref href="GUID-EDA831F7-7248-5C00-B6BE-B7F44097C9B6.dita" id="GUID-9E6F172B-FA3F-4EEF-876C-BE8E1834C2BB">
-</topicref>
-<topicref href="GUID-AC4C18D1-D6A3-5988-AB10-5A5025183950.dita" id="GUID-0EFF40C8-C565-47F3-9CE7-0F9A7BA31FB7">
-</topicref>
-<topicref href="GUID-E97C2A7E-8E8F-58E6-99D4-288589385B44.dita" id="GUID-D59EF965-AF34-46F0-858B-42AFF24F1BDC">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-A2F8BAE0-A829-4966-9410-ECFB913629D6">
-<topicref href="GUID-E3D2A6ED-8192-563D-8966-DD96B3AF1783.dita" id="GUID-BEEDC56D-65E6-4A0E-B0BB-0FC61C0158AD">
-<topicref href="GUID-0DF9E318-BE97-531E-AB39-A7B5E8787C87.dita" id="GUID-FC07B074-5550-4086-A938-6CAC8B6A32FC">
-<topicref href="GUID-A63025D1-7FD4-5120-8A1F-537D6B70103D.dita" id="GUID-F3064AF3-2C68-4B2F-B2C4-79A35561B162">
-<topicref href="GUID-2E085BAD-AAD7-5D1A-89A7-287EE42D1069.dita" id="GUID-5CBB69F9-A7C9-4D69-9211-237DDA8A7D8E">
-<topicref href="GUID-F6F9B2AC-A47E-5B0B-A1E2-EE2B31B59F2A.dita" id="GUID-BB42D8C5-DD96-4770-82DD-AEB3325C3226">
-</topicref>
-<topicref href="GUID-B1BDF68C-F989-56BD-AED4-727595D7355C.dita" id="GUID-09177199-BEA9-4F56-9159-15AD55026FBD">
-</topicref>
-<topicref href="GUID-8B28B8BB-6935-5332-B4D3-4183FDA3D202.dita" id="GUID-D75E45C4-1AF4-4353-A4C1-9AFD6515E78A">
-</topicref>
-<topicref href="GUID-56EE13F0-CAEE-5E1C-99CD-2FEC8C3BCA6B.dita" id="GUID-D12C89B2-6811-4E8F-9BBF-4DD9A3F7E0ED">
-</topicref>
-<topicref href="GUID-C302BD91-12AB-5888-98AC-33EB7A146312.dita" id="GUID-4045504D-0D82-40C5-B26C-A4C28DED7984">
-</topicref>
-<topicref href="GUID-BC32CC7C-99BA-59E8-A268-42F411CF336F.dita" id="GUID-50153701-E9B9-452E-B92B-A1094E853398">
-</topicref>
-<topicref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita" id="GUID-A78015FC-0041-489D-A5F1-98AEBA9B4C56">
-<topicref href="GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F.dita" id="GUID-1B74B04F-38F8-451B-82DD-793758278D99">
-</topicref>
-<topicref href="GUID-6FED83FE-1360-5468-B938-0BDFF7D62C43.dita" id="GUID-3C717E7B-7491-4FA8-B4B7-38D783C0F107">
-</topicref>
-<topicref href="GUID-591552AB-D708-5CB5-9597-A0AF3D303178.dita" id="GUID-6108B5B6-7305-4632-8A4C-9F1ED9325EE4">
-</topicref>
-<topicref href="GUID-4FB4CAD4-52BD-5DC1-9B20-34DA77F70A9D.dita" id="GUID-5372B9E9-0574-4ED9-BA76-36DF8EA2C093">
-</topicref>
-<topicref href="GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90.dita" id="GUID-A8C0655C-BF4A-4E6E-ACEA-179CD4A80593">
-</topicref>
-<topicref href="GUID-6163197B-7983-5FB7-9B92-02E490A900FB.dita" id="GUID-483EE44B-3365-49BB-92A3-A156AF3FF73C">
-</topicref>
-<topicref href="GUID-B0492A3A-A7F6-5F41-AE5C-4B31AC85769B.dita" id="GUID-B443370B-6B56-4F01-91E6-DC9EC3E49C43">
-</topicref>
-<topicref href="GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03.dita" id="GUID-EAC98612-78DB-497E-BB14-1DCEE81FB89C">
-</topicref>
-</topicref>
-<topicref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita" id="GUID-A38D1387-F66C-4741-AEBF-E38C694BAFC5">
-<topicref href="GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72.dita" id="GUID-F47CF45D-B4B3-4209-877F-9846C40904D2">
-</topicref>
-<topicref href="GUID-07045409-4714-5800-89EF-73590D4F0F37.dita" id="GUID-B789D2CC-6C0A-48FC-B6FF-744E83D3FF88">
-</topicref>
-<topicref href="GUID-2364CAB0-E19E-5EBB-837F-F6484642C2E4.dita" id="GUID-6BFF3904-14A7-4CBD-8C93-FBBFCAA1B783">
-</topicref>
-<topicref href="GUID-82C53275-6F7C-5B3D-9A07-FA4801D42403.dita" id="GUID-D25FA182-726B-4BBD-8303-3338B17DF2DC">
-</topicref>
-<topicref href="GUID-24D16BF8-7BF1-5FF2-BCA8-E5200A9E8431.dita" id="GUID-9E77D025-C8A7-45B3-A0E2-3C5596F2FAAB">
-</topicref>
-<topicref href="GUID-59ED6D14-0976-58AE-8DDC-73F051866406.dita" id="GUID-7FD9BD3F-257D-473B-968A-B2C576C671CC">
-</topicref>
-<topicref href="GUID-8C1DF426-C85B-5124-970D-96119491926F.dita" id="GUID-5FCE899F-5C42-48C1-B899-E827E4899EB9">
-</topicref>
-<topicref href="GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B.dita" id="GUID-282327FA-4940-401A-BC3A-C7FF726DD828">
-</topicref>
-</topicref>
-<topicref href="GUID-E3F403EE-717B-5EA6-BC4E-6840097CAC10.dita" id="GUID-F64766AC-7BE7-4507-A7D1-CC0503DD3C7D">
-<topicref href="GUID-2F64B579-73D3-548A-9104-16483AF77BCB.dita" id="GUID-A926CFA1-2572-4B86-96C2-F2B74AF05E53">
-<topicref href="GUID-6180B291-1862-5F1F-AF05-85E42B37B172.dita" id="GUID-84319761-9B74-4117-934C-070388A6A268">
-</topicref>
-<topicref href="GUID-DE17BEA2-C821-50B8-9128-9C4D35D95599.dita" id="GUID-3BBCCBDE-84CE-490E-A952-7D9AEC29C70B">
-</topicref>
-<topicref href="GUID-9452D60C-CD3E-570D-885F-F329264AB6F4.dita" id="GUID-702FA6CB-7E52-4D5B-A4B1-5C356480F090">
-</topicref>
-<topicref href="GUID-763A2636-D448-5353-9E31-F61FE7EB39DA.dita" id="GUID-1105E58F-06E0-4C0D-9280-00CD93002E23">
-</topicref>
-<topicref href="GUID-74C7B8E1-0A02-5242-A8C9-5CDD410102CC.dita" id="GUID-B773E7DC-A333-4B30-81D3-143C99134557">
-</topicref>
-<topicref href="GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3.dita" id="GUID-F642EA40-6F1F-4AD9-AD9E-1CC44D0C3103">
-</topicref>
-<topicref href="GUID-577F42BA-299E-5071-8C7A-FA0CBADCECAE.dita" id="GUID-A912F76E-EF15-46C0-8C92-091E17C86C9A">
-</topicref>
-<topicref href="GUID-63C60154-2A50-5A39-A188-515A607F498B.dita" id="GUID-824DE92C-BA12-43AA-9C91-6E28D84093CC">
-</topicref>
-<topicref href="GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697.dita" id="GUID-06DEEC83-E704-4C6A-9C1B-6F37E92D1816">
-</topicref>
-<topicref href="GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita" id="GUID-88ED2285-9F19-4E83-AD9B-6043E9C690B1">
-</topicref>
-<topicref href="GUID-E1410365-7254-5326-B3F7-D7100D31E59F.dita" id="GUID-93A0EA57-A5CF-4EC3-BF64-8E3AF3AAE89C">
-</topicref>
-<topicref href="GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041.dita" id="GUID-B33F5706-1783-4C34-98EF-17A4A2942E0D">
-</topicref>
-<topicref href="GUID-F50003D0-402A-59E1-8F6F-8C999DC81735.dita" id="GUID-05E865C7-DFC7-4A6C-B88B-246B98BA6D3F">
-</topicref>
-</topicref>
-<topicref href="GUID-59DB0115-053A-5D23-8C40-E2428C096BBC.dita" id="GUID-4C61BD8E-3397-4C36-9B1D-C7D6A861B6C3">
-<topicref href="GUID-27C933F7-4634-57C8-B3D2-45C5563FECA4.dita" id="GUID-71804319-E7BB-48D2-B070-F694B49E5EB6">
-</topicref>
-<topicref href="GUID-5B2D6FE7-A09A-5DB1-A0B6-D1A1397D845F.dita" id="GUID-3C32477B-A44D-40E1-B6A8-B1F1F9E61DBA">
-</topicref>
-<topicref href="GUID-02E674F7-86F1-5A9C-8189-F4CEE80D9FBD.dita" id="GUID-569E8D3D-0D96-44CA-AAEA-19327C5C7058">
-</topicref>
-<topicref href="GUID-DE9E76F8-AE17-5962-A2BB-5006C6AB5C82.dita" id="GUID-325D5400-9DBD-4F97-831A-C91F7A98BA5C">
-</topicref>
-<topicref href="GUID-DD3411FE-D95B-5153-8C90-442618920E20.dita" id="GUID-A0B975A3-11BD-401F-ACC3-503FEC7791B9">
-</topicref>
-<topicref href="GUID-0AF14EE0-D4FD-53EA-B7E5-10724E3FA0DF.dita" id="GUID-4D5ACAF1-3A37-48D8-AA09-B91B54C7DE4B">
-</topicref>
-<topicref href="GUID-07FA8EC8-151F-574A-89F2-34C4AE2D1F0B.dita" id="GUID-64A9DAFE-8E0B-4F72-A779-DE6FC904427E">
-</topicref>
-<topicref href="GUID-059326DB-E7A4-5CB8-BCA7-FF0C71D9D1C7.dita" id="GUID-30B021BF-4B49-4FB4-A8F0-DA31D9F9AB30">
-</topicref>
-<topicref href="GUID-D664843A-0741-5E38-88D0-D8BEC9C732EB.dita" id="GUID-B3F52D8C-64BA-4793-B0AA-431F5F65FD4D">
-</topicref>
-<topicref href="GUID-1A94AA49-3954-581B-92EE-C9BDA253508F.dita" id="GUID-F8B844AB-6B49-4BEB-9D1F-5B6584506CC5">
-</topicref>
-<topicref href="GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60.dita" id="GUID-F8022622-E1A2-4E2C-8D49-E05A4B8B1952">
-</topicref>
-<topicref href="GUID-D1ADAF9A-62BD-5B68-980F-524FF440FEE1.dita" id="GUID-EF13EAD7-9488-4359-A7A2-B258DD8D8EDA">
-</topicref>
-<topicref href="GUID-5875C752-12A9-5819-90D9-CAAE48F1A5C5.dita" id="GUID-6F9AC6EF-E95C-46CC-92EC-31E6D0ABD414">
-</topicref>
-<topicref href="GUID-0446FD98-E0A0-5E6A-B056-AF54172B7453.dita" id="GUID-08B07016-8C77-427B-BEAF-619BFA692D70">
-</topicref>
-<topicref href="GUID-FF0330E8-81CA-52F3-AD60-89360B74B25D.dita" id="GUID-6D158D9E-CC35-4551-92F7-0D1BDEB3F28D">
-</topicref>
-<topicref href="GUID-82074583-C3A3-5168-8225-C60D52F403F0.dita" id="GUID-6768B080-D90D-4E93-9860-0DFB87CE0118">
-</topicref>
-<topicref href="GUID-B70E22E6-CF28-58A0-9D1E-C9A12D1FBC72.dita" id="GUID-F31BB81C-6BB8-4D12-A421-E46F56B3D9E9">
-</topicref>
-<topicref href="GUID-4F8B0675-AC8D-529A-903D-DA31C8236A98.dita" id="GUID-DCC4BFB0-F6D8-4141-B0D8-115516B0662E">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E41C4E77-C48B-548E-A2F5-14FA5CC68982.dita" id="GUID-C85E2377-C747-4B74-96C2-4563F850B5AD">
-<topicref href="GUID-978DFDB1-4B20-5302-A9E4-9C7404A7CB16.dita" id="GUID-A05294E9-E1DB-4C9E-B9B9-E04A23CA3ACC">
-</topicref>
-<topicref href="GUID-0EECEF02-EC6A-53D5-8B27-C0732DA0160A.dita" id="GUID-E7D43357-D305-4AFF-990A-8DDD55D0CA37">
-</topicref>
-<topicref href="GUID-FD5C6057-C6D3-5C1A-888C-7B7A3C89CD67.dita" id="GUID-DA43E93B-D240-4AF6-B4AA-F90966FE6AFD">
-</topicref>
-</topicref>
-<topicref href="GUID-E18584A9-4F16-51D0-89CB-96275A588F54.dita" id="GUID-D68A23D3-A4F9-4C69-A16E-4442E0C43552">
-<topicref href="GUID-9309D482-8931-58FC-9B34-D0E5E942E404.dita" id="GUID-14A2A48A-A6A6-43DF-AB2F-C6FC0A7D74CC">
-</topicref>
-<topicref href="GUID-426BADE5-64CF-525A-B4E3-21C40D7B4AB2.dita" id="GUID-AA46F225-AB2E-46EF-8BCA-E7085D608834">
-</topicref>
-<topicref href="GUID-6C07F513-66D5-5901-94A6-9ADA16987225.dita" id="GUID-D6469D2A-192D-4F77-BAE2-3DD99B54A4D8">
-</topicref>
-<topicref href="GUID-7536307B-10B7-5866-8A21-9DA352DF1928.dita" id="GUID-02B9B871-991D-4CD9-9A20-0A234BE7D7E4">
-</topicref>
-<topicref href="GUID-4F5E644B-B2DD-5CD3-B763-E134F1916E62.dita" id="GUID-9B1065CB-7A93-4F24-87E7-78C3747072B1">
-</topicref>
-<topicref href="GUID-947F448A-34D1-570F-9017-ED7B70674FBC.dita" id="GUID-55FDF4D7-94EA-4504-97B2-4C0A8F343B82">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-829D80B6-7F14-5006-94C5-2609565D7BCB.dita" id="GUID-9B3D0028-F2CE-47B2-8398-10C685F310E6">
-<topicref href="GUID-FBE448A4-4728-5EE5-84F2-4790735857B3.dita" id="GUID-BC43B318-CE8E-4773-8722-4D1BFB577CA5">
-</topicref>
-<topicref href="GUID-E525E177-1FE5-5845-9BF8-B76D434B838D.dita" id="GUID-3603DB32-02D0-44D0-8F57-D2C978CDCB50">
-</topicref>
-<topicref href="GUID-A9A49E91-B4EC-5D92-A021-7D08F4ED094C.dita" id="GUID-1271751B-06A6-4E4A-9EFF-3E7823B315F3">
-</topicref>
-<topicref href="GUID-189FBB0E-0A47-5CCC-9209-DC69E76DE6B3.dita" id="GUID-3BC0F5EC-9A03-418C-9A95-28E1A6DDB737">
-</topicref>
-<topicref href="GUID-1A9B3BB8-9F68-5C71-9534-A59638BBCD1E.dita" id="GUID-739651A0-D07D-49C9-84CC-99700B2885FB">
-</topicref>
-<topicref href="GUID-B22DC2FB-FA5C-5F62-8F01-A975EAA24E7F.dita" id="GUID-10FD1BE6-F737-46D7-A168-41F1DA321331">
-</topicref>
-<topicref href="GUID-F9FCE3FC-42E4-5E9E-9AFC-A9B02E2612A2.dita" id="GUID-1DB31CDD-8FFF-4C0B-BFF3-B6EBA2DD5B63">
-</topicref>
-</topicref>
-<topicref href="GUID-DBF88873-21B1-5493-8EBF-C9071D314A09.dita" id="GUID-AACA078F-F05C-41F8-B5A1-29B5B4617E6C">
-<topicref href="GUID-A668C70B-1AFF-5D58-9527-8530E2472227.dita" id="GUID-23DC3DA0-A6A6-4C9B-894C-DB86C47FC9C9">
-</topicref>
-<topicref href="GUID-21C04887-9F9C-5066-AA1D-B30C433CC0AE.dita" id="GUID-E4F452C0-3D16-477E-AEFC-CC352D364F4B">
-</topicref>
-<topicref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita" id="GUID-1FA56A2F-960F-4B4A-AB4A-848436C8EF41">
-</topicref>
-<topicref href="GUID-C15F56E3-753C-55CA-B3EF-63B2D139BCE4.dita" id="GUID-B7233F2F-B8AE-4B65-99DA-8AD00B0EB522">
-</topicref>
-<topicref href="GUID-2E22CB5B-E648-5760-AB74-8947C7EDE2CF.dita" id="GUID-99ACE707-CC6B-47A5-88BC-47036F65B3B5">
-</topicref>
-<topicref href="GUID-106B5A31-012E-503D-A972-A745ECADC1E7.dita" id="GUID-738A2F5C-C6C2-43B2-9EBD-F4957C150149">
-</topicref>
-<topicref href="GUID-E189B0C0-AAB5-5472-996B-91043DE0B6D4.dita" id="GUID-89BDC12F-0785-4D29-9C76-C2EBCC04028C">
-</topicref>
-<topicref href="GUID-506642C2-A14F-55F2-9377-43DDB14F4053.dita" id="GUID-185AA709-9FCF-48A9-89DC-482019CA615F">
-</topicref>
-<topicref href="GUID-D43BBBF3-841E-51A7-A2B2-0695594C821A.dita" id="GUID-CBE07ABE-4DFF-4AA1-936B-29A6F09E642E">
-<topicref href="GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226.dita" id="GUID-4A11845F-46BA-4C41-8998-2BCCAE393686">
-</topicref>
-<topicref href="GUID-F3090A98-267F-5310-83F4-93FD5CB760D6.dita" id="GUID-9EBCF4EA-3FE2-4521-8421-8ED2CC0937FF">
-</topicref>
-<topicref href="GUID-37D7019C-E3EF-5841-8691-5A865A2B5FD2.dita" id="GUID-330EA479-22F0-4743-898A-6313080F9B33">
-</topicref>
-</topicref>
-<topicref href="GUID-11EEFB3D-0414-5BEB-9D78-56A4B9154008.dita" id="GUID-E5DBEB31-1201-411B-8789-F93FF097C88B">
-<topicref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita" id="GUID-CF7A580C-26DA-4D41-8741-0860013CFD96">
-<topicref href="GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47.dita" id="GUID-6EF017CF-3E4C-455B-86E0-6DF04DA274FD">
-</topicref>
-<topicref href="GUID-A60BFFE4-E527-547C-AF4D-30BB7A1C0D07.dita" id="GUID-AE832908-A511-466E-BA5E-3042D8B700DD">
-</topicref>
-<topicref href="GUID-05785721-C090-50C6-BE5E-46EF14222FFF.dita" id="GUID-C01CC076-C084-49A8-82C3-ADBDE9DF5C82">
-</topicref>
-<topicref href="GUID-6D1A830E-F0F1-5C0F-8EEB-70922C0EF6B8.dita" id="GUID-E89EC2D2-12D5-4D61-80F9-2C8270E14406">
-</topicref>
-<topicref href="GUID-C501E703-E39D-598C-B962-7A32AC9091DD.dita" id="GUID-4A7C5CBE-EAD9-4863-BE62-15B7D965E8E7">
-</topicref>
-<topicref href="GUID-2C7AF56F-F741-5C9B-83B9-46C175330ED1.dita" id="GUID-70CD7ABF-CE90-4198-B183-550923D2B348">
-</topicref>
-</topicref>
-<topicref href="GUID-4C4B6098-38B4-5BD0-8E58-712511EBE074.dita" id="GUID-668BF3F8-B888-4682-A2A0-CE2F34EC51DB">
-<topicref href="GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B.dita" id="GUID-1BDC4D32-D1BA-4993-8E8F-1EC0CA667206">
-</topicref>
-<topicref href="GUID-2762FDF6-F76D-5268-AE2D-4ABA807CFFEE.dita" id="GUID-3FE43FA5-C34F-4C1C-B214-50AF6705401B">
-</topicref>
-<topicref href="GUID-2DDAAD1C-D9EB-5741-B6AE-2383646E0EDB.dita" id="GUID-4460BFE2-BAD8-4CBE-983A-55F5B3401292">
-</topicref>
-<topicref href="GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita" id="GUID-4DF2DDF3-7A80-47D1-8B7A-73BBD035FF5F">
-</topicref>
-<topicref href="GUID-C85B4EA2-0184-52AF-B097-152E4A023CEF.dita" id="GUID-1C3F40F8-DF1C-4180-AA15-2504A942D4D3">
-</topicref>
-<topicref href="GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita" id="GUID-7192FE81-433C-4CC8-90D1-FD900EC47665">
-</topicref>
-</topicref>
-<topicref href="GUID-E8BEE049-6814-543B-8A88-889E434A5D92.dita" id="GUID-9EF108E1-AFD9-43CD-85B2-8F36752DBD31">
-<topicref href="GUID-BD649ABC-4DBC-5E37-B80D-2BB86F94F26A.dita" id="GUID-2B8301AF-3A72-4381-9DDC-56DD20CFF06E">
-</topicref>
-<topicref href="GUID-E81D72B2-BA77-5F4E-8742-3812A60A4DAC.dita" id="GUID-A00490B2-BD00-4F3B-A150-F8E9D1BB33D0">
-</topicref>
-<topicref href="GUID-4C1F3DB3-039C-57D6-987F-4A26E1E056E6.dita" id="GUID-362EA06B-5C45-4D20-81BC-B01BC6C3B36A">
-</topicref>
-<topicref href="GUID-F46D5A5B-EC44-53B0-9A11-886735B28610.dita" id="GUID-051088B6-BE50-41C6-B0EA-6A1BA9C41D50">
-</topicref>
-<topicref href="GUID-9F82E4D3-DDD4-50A5-AB12-50B216B73368.dita" id="GUID-D9E206CB-29F7-4719-8C16-C5125F2F0BB7">
-</topicref>
-<topicref href="GUID-4AC3CC42-6E8D-584A-AA39-84B5E0F3C16A.dita" id="GUID-B5C3ACEA-3230-4102-ADA2-45F9FB1C6399">
-</topicref>
-<topicref href="GUID-E8F8A9BE-4DCE-5CB9-BFC7-9BC00A7845F7.dita" id="GUID-3A838AB5-551B-4E19-AC5F-762F431136E2">
-</topicref>
-<topicref href="GUID-A7D95E53-67DA-54C7-B093-995CA9CC39B5.dita" id="GUID-3872E29D-2EA5-42B0-B030-ECA2A8CCF416">
-</topicref>
-<topicref href="GUID-93AB9273-08A5-52CD-AFF7-8B92D72067BF.dita" id="GUID-0623149D-7E4A-4707-9ADF-5DB1B43B320A">
-</topicref>
-<topicref href="GUID-0B6C97D3-0E2D-5BBE-B8AC-985902715160.dita" id="GUID-366DA172-7A13-4DE4-8546-746550749B13">
-</topicref>
-<topicref href="GUID-3D73DD8F-8D23-5D47-A4F7-3673C993EF8F.dita" id="GUID-57FA9F90-95BA-486A-BC90-FAEE932FBF92">
-</topicref>
-<topicref href="GUID-B71F0B0C-CFEB-583F-841D-07340DD6B9CE.dita" id="GUID-02532C12-30D2-4000-B65E-4385F28124BB">
-</topicref>
-<topicref href="GUID-7830BAAB-40DD-5E55-84B5-8DCA888E68E7.dita" id="GUID-A055327A-9E55-4EDA-B235-9C84FD27C462">
-</topicref>
-<topicref href="GUID-5B1A7CBF-40DE-56F9-B145-948C6F72B647.dita" id="GUID-013DE055-5BAD-46B8-AB44-EAAD04A77911">
-</topicref>
-<topicref href="GUID-FD273259-2282-5353-847D-853D483C37BC.dita" id="GUID-C2297F4F-D6D6-4E44-93E5-D9F21C52C089">
-</topicref>
-<topicref href="GUID-EC21A1A2-FD5A-5764-A69A-18D74090BA92.dita" id="GUID-622367E2-D926-4173-818F-CD928DA27DF1">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita" id="GUID-BDDB91E3-C0B1-4527-A827-6A996017C2AB">
-<topicref href="GUID-6468F3CB-7828-5746-A868-AD525EB7D6BD.dita" id="GUID-B27B8217-7CA6-4C1C-AD62-2AFE35B3D96E">
-</topicref>
-<topicref href="GUID-C642BA79-0E9B-5C62-9DC7-C64759830CD4.dita" id="GUID-7BCAD2E1-6082-4BEB-B931-73D434226703">
-</topicref>
-<topicref href="GUID-59FFCA8F-5F2C-55F9-B864-AFA1CC18722D.dita" id="GUID-FC1778D5-AA79-4E9C-B546-26BC9F56CB84">
-</topicref>
-<topicref href="GUID-E3DD768F-752F-5414-9E9A-86E046806903.dita" id="GUID-34BFA2A7-6251-4327-B866-CA1E91D13AFE">
-</topicref>
-<topicref href="GUID-82862A69-5E86-5924-BFF0-F7655FCBFAF0.dita" id="GUID-0DE9CF17-8E3A-4E7E-9F71-BDBB23B1701F">
-</topicref>
-<topicref href="GUID-596ADF23-FC69-5415-AAC6-EF565F75D0B1.dita" id="GUID-5EF77288-7933-441E-AD11-DD1CB86F01FD">
-</topicref>
-<topicref href="GUID-807B5CEE-CC1E-5A40-911F-3C5D5FA3633A.dita" id="GUID-55CBC3E7-5BD5-43D0-861D-A9AB8EF887A7">
-</topicref>
-<topicref href="GUID-1F1A6FCD-DA06-5F8B-8F2C-0BAA08DE0041.dita" id="GUID-BFCC1252-B36C-4A18-BF27-5226BCB5C2DF">
-</topicref>
-<topicref href="GUID-81C1F6BE-B2CE-5A2B-A6D4-DC1ABBBED0DE.dita" id="GUID-BB3AD3C4-0F24-484E-A1E6-8F3CF2AEC48F">
-</topicref>
-</topicref>
-<topicref href="GUID-D4A78D68-0812-532C-9AF9-85F1483EF3EA.dita" id="GUID-D45756CE-A901-41E0-9242-FEB86534BA5B">
-<topicref href="GUID-FE888721-C479-5D8A-810F-1A79575A1D58.dita" id="GUID-0B22FEBD-66BB-48BB-BD55-C9ABA1BEB48B">
-</topicref>
-<topicref href="GUID-D86B83B5-298E-510A-B984-7307CCA1AE1C.dita" id="GUID-CCC17DFB-D62F-4EDE-AA37-03C73646408D">
-</topicref>
-<topicref href="GUID-0C8389B8-91DF-58A1-A2A1-945A18CCBB10.dita" id="GUID-A52B5B7A-9E4D-4918-A7EB-315F1CE12B3B">
-</topicref>
-</topicref>
-<topicref href="GUID-7CB11EAD-260E-551A-85F1-FEAC975FE722.dita" id="GUID-F5AB6645-183B-45BF-B5CF-5FFA38F0F944">
-<topicref href="GUID-7A9FBE3A-D75E-59FC-9ACD-196670F0F9C8.dita" id="GUID-3DC65A67-D767-4B85-BFFE-BEA94C312033">
-</topicref>
-<topicref href="GUID-6C1E4B3D-0FBF-5CEA-9A30-B4C5CB4CAC3E.dita" id="GUID-6A11C172-AE54-4F84-B422-E7B64B1F9F66">
-</topicref>
-<topicref href="GUID-8A58670C-D805-5E97-9B88-70C40CD011D4.dita" id="GUID-FF653BED-5EF8-4A1B-BDA6-A3AF27DDF953">
-</topicref>
-<topicref href="GUID-4F2F254A-1A81-507A-B364-BE4088D3B3AE.dita" id="GUID-C0B6C6FA-A4DD-450B-BCCB-585BD892E0AB">
-</topicref>
-</topicref>
-<topicref href="GUID-565386C7-A6D4-59E2-A9CF-89F424750476.dita" id="GUID-D576C0BA-7E43-4A0D-8DE2-0E12EB797EDE">
-<topicref href="GUID-772DFFA1-4BBC-516F-909D-47CB773760F5.dita" id="GUID-870A3A36-D8F2-4D31-A54D-5F50C285C681">
-</topicref>
-<topicref href="GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC.dita" id="GUID-17E9BD27-EBF9-41FA-8ECA-270C03CB2286">
-</topicref>
-<topicref href="GUID-C8C2645A-F5A4-53F0-8F43-485FC0B472DC.dita" id="GUID-A83CDEE0-3945-471E-A2D6-A90C5CD47251">
-</topicref>
-<topicref href="GUID-4F882837-0DA1-5243-BA7B-696B418A160E.dita" id="GUID-2B0A3742-55F7-4DA7-B59B-B0F482D1C7A7">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-7AB66E79-1B75-50FE-ADA2-07B92B11D478.dita" id="GUID-1D51A8FD-BF52-45D7-A177-962997108338">
-<topicref href="GUID-CD506806-FC59-547A-B5CD-03314DF847F7.dita" id="GUID-5A340F82-0E2F-4937-94C2-74680A2BEFC5">
-</topicref>
-<topicref href="GUID-B1DD21A3-674A-5193-95CF-F533FDBBD319.dita" id="GUID-EC0A2588-2348-4F6A-B638-C331F1C49393">
-</topicref>
-<topicref href="GUID-61376760-C576-51E0-85F2-34718F8DC321.dita" id="GUID-587221E5-E525-49B4-81F6-9B4C3F29BD35">
-</topicref>
-<topicref href="GUID-4DC2D055-E522-51C4-8BF9-1361089F0E4A.dita" id="GUID-C5D071C7-40B9-4B7D-AA6F-7AAEB6524F61">
-</topicref>
-</topicref>
-<topicref href="GUID-4A56B285-790E-5171-88F3-8C40B2AA9699.dita" id="GUID-6584BA84-1172-4F0B-9582-B1CC2877C145">
-<topicref href="GUID-260C7ACD-0024-59DE-B1C6-0C852E44C457.dita" id="GUID-6A3A55F2-32B1-4EE1-9ABE-B73596B0D17A">
-</topicref>
-<topicref href="GUID-38CF8A8E-4778-5374-8AC6-5F9486A2B7FB.dita" id="GUID-7131D52F-3142-42B7-B081-A36D15ADFE2D">
-</topicref>
-<topicref href="GUID-C135B8D8-DA5A-5852-9C2D-18622404FE99.dita" id="GUID-6B7F7880-B2C7-488C-B47D-24AC3F8C89B8">
-</topicref>
-<topicref href="GUID-7572B1F0-66CD-53B8-A479-4A078C9CB28A.dita" id="GUID-47852D7F-0B15-4F4C-B639-08F807569896">
-</topicref>
-<topicref href="GUID-4FFA793B-9E57-5D59-B9A7-528F11C4852E.dita" id="GUID-04CE746B-A184-4FC5-881B-FAA3A8E9D4D4">
-</topicref>
-<topicref href="GUID-6D6DFC3A-8940-531A-A319-922317D19B51.dita" id="GUID-51461A29-B3AB-4C4F-84E2-6A2D6614E51D">
-</topicref>
-<topicref href="GUID-301193C2-666C-5A57-B898-A04EBB63E533.dita" id="GUID-E7FFE041-7ACB-4299-904A-ED4255590AC3">
-</topicref>
-<topicref href="GUID-FC043A7B-8990-52C8-85F5-10FF1B8EA36D.dita" id="GUID-1AC7BEA8-E2DE-4431-8479-A9446D4CBBFD">
-</topicref>
-<topicref href="GUID-6A37628A-C732-5765-9DC5-3AC691C2CD50.dita" id="GUID-0DFBA557-94B9-4F45-B950-2BA99CFDF6EA">
-</topicref>
-</topicref>
-<topicref href="GUID-2EAAE194-FAE1-5545-A678-72973E9B72A7.dita" id="GUID-40B690FF-755D-4137-B57B-DF5BD8DB1C21">
-<topicref href="GUID-485B1284-9DB0-5AF7-906A-89A830B9FE44.dita" id="GUID-1A287B77-7EFE-4E77-B8FA-80AB61B3B9EB">
-</topicref>
-<topicref href="GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017.dita" id="GUID-0031F231-FA23-4AC6-A31E-55675A1A0152">
-</topicref>
-<topicref href="GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E.dita" id="GUID-E9569A0F-42BB-4A60-9B57-FA029D257BA8">
-</topicref>
-<topicref href="GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C.dita" id="GUID-0294F137-AC96-4102-AABB-FE920CBE3A2D">
-</topicref>
-<topicref href="GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita" id="GUID-65B074EB-C713-44A2-8C2B-48D036A54192">
-</topicref>
-<topicref href="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita" id="GUID-586DF937-4E53-4222-82E2-574BEB89ADD1">
-</topicref>
-<topicref href="GUID-4C406E49-7726-5620-AAAA-84C33DADAF4B.dita" id="GUID-5CF91F24-AF6F-4622-AFBE-86D589619EAE">
-</topicref>
-<topicref href="GUID-C668AEF1-B7E2-53BB-A7EF-B92CA253DE2F.dita" id="GUID-A956A33F-D41E-47F0-9417-65D1A61C60F2">
-</topicref>
-</topicref>
-<topicref href="GUID-3786D8E6-17A9-52E4-A8DF-CFCDC3039854.dita" id="GUID-DD863B8E-174A-46B3-8A63-A9A8F8065E1B">
-<topicref href="GUID-E530CBB9-C20D-5426-89AA-DC0281C05381.dita" id="GUID-53C54F14-9B09-4B78-9D37-9BB39D3F9A7D">
-</topicref>
-<topicref href="GUID-1294F540-FDA7-5050-BAFB-3C9888491B98.dita" id="GUID-5C003DD9-133C-4D62-A306-603A299C4C8A">
-</topicref>
-<topicref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita" id="GUID-1D3C6E96-967A-49E3-A436-90DD779FA13F">
-</topicref>
-<topicref href="GUID-24508C2D-31B9-5CC2-9EB8-F00AD39D8AA0.dita" id="GUID-4C7DE43F-9CC8-4ADA-8D79-D760FAEFB429">
-</topicref>
-<topicref href="GUID-B507490F-6BD3-5DF5-97E4-EFDFEA2B4EDD.dita" id="GUID-B0D3B737-3362-4400-8B09-E6C49AAB1445">
-<topicref href="GUID-EEAB5A2F-AD1F-57B9-98AA-20DEEA23C3C2.dita" id="GUID-1A68E48F-CDAB-4740-9742-68DCDBED9466">
-<topicref href="GUID-AAA2ABA4-5555-5E4B-AEFF-3DF61462B170.dita" id="GUID-9BF52726-2FEE-4660-8F38-693969D4F930">
-</topicref>
-<topicref href="GUID-FE14D954-4712-5DCE-998E-A39D79500ABF.dita" id="GUID-D3C2F936-C18C-4B51-8142-D38BFAEA65C4">
-</topicref>
-</topicref>
-<topicref href="GUID-C0C19F93-D804-5AED-90E4-A814FA6A3732.dita" id="GUID-5B7849CB-BF2A-4840-B65C-5C991743D176">
-<topicref href="GUID-C3AC4F95-67E9-5F1D-8CF0-F6B209319EC0.dita" id="GUID-F658B8A5-109D-4809-93A7-C248106B0355">
-</topicref>
-<topicref href="GUID-E6D9F8CA-F293-5CE6-93C4-5FEC5EBCB2E9.dita" id="GUID-4324A7C8-B2F2-4696-944E-0CA8781EB734">
-</topicref>
-<topicref href="GUID-CCCEC352-3A49-534C-9551-A4CAE1A3475E.dita" id="GUID-75041745-10A5-4CDA-B141-F36DA543C486">
-</topicref>
-<topicref href="GUID-B11304D7-284A-5165-9565-F9CC4405E258.dita" id="GUID-654A05D6-30DD-4B58-B8C0-28AC3BFB1153">
-</topicref>
-<topicref href="GUID-3A4947BD-1BEB-521C-BEDF-738064E83FE6.dita" id="GUID-3C157072-5EC0-4F56-AAFB-C31416F4D950">
-</topicref>
-</topicref>
-<topicref href="GUID-C2608BF5-CDA7-530A-B67A-0414C7FA585D.dita" id="GUID-51055D0B-600B-40F5-8659-A67FC6EACB85">
-<topicref href="GUID-2B8D3611-5B97-50E7-A9DD-23626A8EFB45.dita" id="GUID-5E025678-1B76-42A3-9D22-784898752C59">
-</topicref>
-<topicref href="GUID-890F06C6-DE32-5EB1-BF0F-D41794F47AE1.dita" id="GUID-6B5386F8-4595-485A-9A82-C2D5C04E874B">
-</topicref>
-<topicref href="GUID-2C5D53A3-0211-5C14-BD7F-E89EB27BAD2A.dita" id="GUID-8AFFD5DA-ED89-4ECE-AA35-E7E00428BE97">
-</topicref>
-<topicref href="GUID-220E5E6A-B55D-57BB-AC1A-CE06EB01F661.dita" id="GUID-7894DA11-7174-452E-AC5A-5B019E9F3744">
-</topicref>
-<topicref href="GUID-1D6DD213-1EEC-58D2-8311-7A1AF77960C1.dita" id="GUID-2AB947BB-6510-456B-A1F9-069F37806FF8">
-</topicref>
-<topicref href="GUID-0A9D11FB-6A24-5115-A39C-23FDE864DF6A.dita" id="GUID-67326936-D8B8-4162-966D-B1290B95F116">
-</topicref>
-<topicref href="GUID-B67DB652-A489-55C7-A3A2-D00C43BE161E.dita" id="GUID-0922A5DF-CC75-4D56-9A3F-F46A7D06D3F8">
-</topicref>
-<topicref href="GUID-1BD987D8-B018-51B7-80B2-4E1988841BC2.dita" id="GUID-94CB7DC0-617E-4534-8E2D-327AFA67C2F0">
-</topicref>
-<topicref href="GUID-56841E07-1A4A-5572-BF3F-F80069FD5D59.dita" id="GUID-50F2AE79-2274-4466-81FC-BCCA3DB64031">
-</topicref>
-<topicref href="GUID-9C36CF76-6ED2-5674-908F-A3DF8930CEB0.dita" id="GUID-AD7DEAAB-09CF-4117-934B-1F827FB65F2E">
-</topicref>
-<topicref href="GUID-2161BD64-889B-5EAB-B023-1162FE9619DB.dita" id="GUID-76EE2D5B-EEF1-4FAE-B221-31E262F9B8F0">
-</topicref>
-<topicref href="GUID-8BD6B29C-D905-5D2B-992A-A04AAD9ABBE3.dita" id="GUID-51E993E3-1A11-4064-A50A-B8B2D63C7273">
-</topicref>
-<topicref href="GUID-8EAB97D5-267A-58CC-BC3E-5CB1D72CB7ED.dita" id="GUID-4BA7A433-07B6-48A1-9743-072513B705FC">
-</topicref>
-<topicref href="GUID-7809407D-EDC0-5907-B932-0D5726A7ECA2.dita" id="GUID-48431283-6B89-4227-9172-842A3DD4D4D3">
-</topicref>
-<topicref href="GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2.dita" id="GUID-09FB32EE-EF29-4840-A68A-78E49EE84B5B">
-</topicref>
-<topicref href="GUID-BF796290-E9BC-5A18-AC59-9848823FBE34.dita" id="GUID-718DF0B1-C5D1-4878-ABD5-14A242BF4912">
-</topicref>
-<topicref href="GUID-837EF355-9154-506B-AE4F-4290FC9DBDC9.dita" id="GUID-68CBDF9E-A4D5-4975-8AF4-3E3E9FE55A23">
-</topicref>
-<topicref href="GUID-162A4409-1ABB-51A1-B7F1-75A31A5DEA63.dita" id="GUID-C06C0BDD-089A-4BBD-A5CF-ABF9B3F6F3C6">
-</topicref>
-<topicref href="GUID-C73318E7-44E2-5F42-BDB0-AAE9BD72BF5C.dita" id="GUID-D4164565-C509-4CD8-A1F2-A79080433715">
-</topicref>
-<topicref href="GUID-E72E2602-0492-58F9-A01F-D72BCC3FFFD5.dita" id="GUID-E914C0F6-02F2-433E-BF6F-BEA905FC3364">
-</topicref>
-</topicref>
-<topicref href="GUID-E1CF82AA-D1CB-59A6-96B6-17235278E2F9.dita" id="GUID-8229E47E-C3EC-4F34-B29D-AD53C8AA668B">
-<topicref href="GUID-C08CE95C-E1D4-5C43-93FB-21B6E86F4565.dita" id="GUID-3A5D8BEC-F47B-423A-9DBA-B39C62EA1748">
-</topicref>
-<topicref href="GUID-3631971E-424B-5B10-B44C-98FB7C265843.dita" id="GUID-CDC752D2-28B2-462C-8ADA-13E7205C53A0">
-</topicref>
-<topicref href="GUID-59BBEA98-6501-5415-A4B5-3AE8E33957D3.dita" id="GUID-24F3AA55-132A-4DD0-B449-C8BF335AA32E">
-</topicref>
-<topicref href="GUID-9BB736AD-1224-587B-AC8C-355E7C8AEDC6.dita" id="GUID-316F8301-F19E-4BED-9C5A-23EFF27CFDDE">
-</topicref>
-<topicref href="GUID-204B4155-AE35-5C53-867B-299AF7E5D16A.dita" id="GUID-39CC0846-014C-4403-80F0-4B7421404495">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita" id="GUID-B4DBAAE4-6F1E-4B5C-AD85-56D834A3ED66">
-<topicref href="GUID-D4C7A714-F7BB-5A8D-A875-4796395B9B6C.dita" id="GUID-02CBC2C2-209E-4550-B28D-6D93A1C5EB65">
-</topicref>
-<topicref href="GUID-67718111-07FB-59CC-A9C2-86593F868C2C.dita" id="GUID-5846F02D-6927-40FD-8ABA-3F530335714B">
-</topicref>
-<topicref href="GUID-0A332D6E-E712-5186-8CD0-D5022FA54052.dita" id="GUID-04F4391C-92FD-4793-A85F-1733BA7BD0D1">
-</topicref>
-<topicref href="GUID-9169062F-3B6D-544C-847C-BA859DAB33B9.dita" id="GUID-7962BC67-C436-4AF9-815C-BCDB7AB6022F">
-</topicref>
-<topicref href="GUID-975F53E5-1C13-5063-B817-795F2623737B.dita" id="GUID-91E3D522-7030-4D10-81C0-0535CEBBFACF">
-</topicref>
-<topicref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita" id="GUID-C5B10B07-7A94-4C6E-923E-2AFDD9070FA4">
-</topicref>
-<topicref href="GUID-ADF4BBBC-E771-5A12-A246-B5EA8EEE8D79.dita" id="GUID-47F0D54B-F93F-4057-AA9A-5AD2DB195986">
-</topicref>
-<topicref href="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita" id="GUID-E46E3FD7-9E87-4EDF-AA81-39B7006A2C06">
-</topicref>
-<topicref href="GUID-579D7C32-B6C8-5C77-88A5-B3078729E1BA.dita" id="GUID-67D4846C-ABE0-4705-B4AC-6E102715D801">
-</topicref>
-<topicref href="GUID-51621C76-17B5-5829-B4EC-86B453442CDC.dita" id="GUID-EE5605C9-5198-4435-9873-88DAD3D58847">
-</topicref>
-<topicref href="GUID-A30C1204-F130-501E-BD2D-1EE1537BEFC3.dita" id="GUID-127527EA-9527-40B9-B082-30507C0CDF93">
-</topicref>
-<topicref href="GUID-FAE3F35C-04C1-5CF4-8090-9DF58AD1C02A.dita" id="GUID-9E0B7D98-A9E9-45A0-9726-8B1854414F79">
-</topicref>
-<topicref href="GUID-C1612638-4C5A-5C37-AF1A-16F9EBEF09FD.dita" id="GUID-75C34FE4-8EE6-4C50-BB0E-C666F5F38B4E">
-</topicref>
-</topicref>
-<topicref href="GUID-F77578A2-3B11-5C29-9D00-43B971561876.dita" id="GUID-30846D8E-D6BB-471C-A7A3-B4537D02EB88">
-<topicref href="GUID-3313A7E0-B10A-5CDE-8DA3-FB9C48FC80CA.dita" id="GUID-8CCB34BA-C08B-4948-9698-EACDED9E513B">
-</topicref>
-<topicref href="GUID-C79B3D8C-499C-58B8-9DF4-B2D41CC82186.dita" id="GUID-EA4C043F-DEF4-4AB2-AC32-9838C13884BC">
-</topicref>
-<topicref href="GUID-CABA0B4D-11E4-5659-B949-C4277FB63804.dita" id="GUID-0F502399-3D72-4BF7-AC9D-5FEE3F666531">
-</topicref>
-<topicref href="GUID-508DD478-1876-5DE2-9271-BDD99F51F579.dita" id="GUID-1C3239D0-7BFA-4D5F-8F90-109AA09C89EB">
-</topicref>
-<topicref href="GUID-6408C26A-2736-59A9-B785-6B119143619B.dita" id="GUID-E3772073-B712-482A-BD22-15D12FAFE878">
-</topicref>
-<topicref href="GUID-B57ECD51-85EF-50EA-B3EE-62A85CD9C382.dita" id="GUID-641E96DA-D95D-4798-AAB8-7F70AAC540C2">
-</topicref>
-<topicref href="GUID-52D2B0A4-1535-5D41-BF4C-06745C0588F6.dita" id="GUID-4D8BF011-B57D-4F24-B73E-BEB02E1956FE">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6A6D5DC5-3B5C-5A26-8D7F-C280AA4D5F18.dita" id="GUID-8911F3F5-4E01-4FB7-ACFF-C58E6C76CD0B">
-</topicref>
-<topicref href="GUID-9AA99D27-D646-54D0-92B9-204FDA1F3162.dita" id="GUID-112AB6D6-ED75-4189-8A8B-97645B72CAD2">
-<topicref href="GUID-07A31FD0-304A-57CA-8FFE-4DAD8EE9B30F.dita" id="GUID-C4070685-4400-410F-A6EA-E29EF9E14DF1">
-</topicref>
-<topicref href="GUID-EA98D77C-743B-5BA5-B131-A327B12A099C.dita" id="GUID-CBB69039-0925-4661-8134-E527B813573F">
-</topicref>
-<topicref href="GUID-CDDF6758-C995-5FC8-AC8C-63298B65BBDE.dita" id="GUID-B2156A0C-CC6D-494D-9FB6-DC38CA5A22FD">
-</topicref>
-<topicref href="GUID-486981A0-1F0E-5935-8E9A-9C6D4CCF34A7.dita" id="GUID-E59F020B-A007-4E31-AAAA-041D99FFE3B1">
-<topicref href="GUID-AC99E9ED-2C02-561A-ABA4-DCDD415E8653.dita" id="GUID-3BC77D0C-69F4-46D7-BFD7-C7B94D4B62BC">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-9636A30F-39EB-54E6-8125-4487D4002FE0.dita" id="GUID-F843A311-FA6D-4C91-B86D-5A889F57468A">
-<topicref href="GUID-54417A4F-710D-5257-BF49-13D9F28C92B9.dita" id="GUID-84924534-3CEB-4726-B087-ADE2DBA081D7">
-</topicref>
-<topicref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita" id="GUID-878AE774-C012-4772-8B8A-57D7E8C1B247">
-</topicref>
-<topicref href="GUID-6D8460DF-8B0F-5249-B236-92ABE0E67A14.dita" id="GUID-AEE87E12-6D2B-4533-BFC0-A573AF0163DC">
-</topicref>
-<topicref href="GUID-BFEBCD57-3C83-56D7-B7A3-B8A361725645.dita" id="GUID-055701ED-917C-47AA-A75B-F34AB5229AD7">
-<topicref href="GUID-D557CC2C-C045-5818-B2F7-9BD8BC39257D.dita" id="GUID-A0B53C82-4D25-4F89-9F3A-57B9570D0B56">
-</topicref>
-<topicref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita" id="GUID-7F06DF25-81C9-461B-BA9D-4F0EB07CED43">
-</topicref>
-<topicref href="GUID-911CD800-2D1B-5D7B-A67C-66E01F91062C.dita" id="GUID-5285569F-7D66-4D79-BF3E-BE9F02B651C4">
-</topicref>
-<topicref href="GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51.dita" id="GUID-2E514447-1D33-4573-87B5-DC2B8BCC7C5C">
-</topicref>
-<topicref href="GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241.dita" id="GUID-1DBA1458-B011-440B-8EB6-AD6A0083E6AF">
-</topicref>
-<topicref href="GUID-5FBA9BB1-94A2-470C-9932-C4255E3774C0.dita" id="GUID-45D556FD-F32B-4181-AC33-D67BB251DCB8">
-</topicref>
-</topicref>
-<topicref href="GUID-A1BD83F8-C6DB-5737-8052-7B710B19147F.dita" id="GUID-D7C23CB1-0F9E-4D48-A178-728CB327C80C">
-<topicref href="GUID-CFA21FBA-593F-58DB-AADA-C9D6D676AEEE.dita" id="GUID-E7865EB7-8533-41EB-984E-B7B71438289C">
-</topicref>
-<topicref href="GUID-239AA6F5-30CE-5FF0-9C36-93D39FECE1DD.dita" id="GUID-BB47D2DF-09BC-406D-9E95-5B34F7AEAA5B">
-</topicref>
-<topicref href="GUID-8E363123-A85E-521C-BC10-96C59130E45C.dita" id="GUID-ECD7C8E4-F843-465F-8E5D-CA0FECC25A60">
-</topicref>
-</topicref>
-<topicref href="GUID-61DEE78D-4E78-5367-BC8A-F99D3B4E9D5A.dita" id="GUID-298C4433-E9C0-4FA1-9324-0262701B7C85">
-<topicref href="GUID-26D7BC6E-509C-51C5-9B86-437F3AEEB2EA.dita" id="GUID-06C73C2E-71B4-47C4-B9AA-E33A8E5F40ED">
-<topicref href="GUID-40671EEC-DACC-5F0B-978C-2794FB206E62.dita" id="GUID-BA140A2C-1EA1-463A-9BD1-532DC4F9EBD7">
-</topicref>
-<topicref href="GUID-EA71F52C-DB4C-500D-9051-31BEF29E171D.dita" id="GUID-A1124BA3-6215-4178-AB07-C8D8D3BED915">
-</topicref>
-<topicref href="GUID-8DF1C625-7963-55E9-BEEC-C9E37936F8CF.dita" id="GUID-1459AE8B-DA49-4691-AD3E-86909DA7AC42">
-</topicref>
-<topicref href="GUID-3AD20E0C-F364-533F-9FBC-227478CA9982.dita" id="GUID-68B427D3-9D00-47A2-A30F-D8993063C5A9">
-</topicref>
-<topicref href="GUID-7E967B81-2DBF-5A89-B74B-93FEA5515685.dita" id="GUID-5A77628D-CDED-4C54-BB47-8251E63EF0C6">
-</topicref>
-<topicref href="GUID-1171C47F-D7F3-5A49-B191-DB6CB7C84DC8.dita" id="GUID-E78BCDAA-DBBB-4FCB-96B0-3FA1C7E13B88">
-</topicref>
-<topicref href="GUID-F686965A-13E5-5C0A-AED1-55EC91C79433.dita" id="GUID-9EE201BE-3708-4E1E-ADB4-3A1BC4C978C2">
-</topicref>
-</topicref>
-<topicref href="GUID-E7D29464-05E1-5039-8A02-62CB27B5FF21.dita" id="GUID-9F478608-2548-4436-B038-9F40A2F99308">
-<topicref href="GUID-E93E577A-0BDF-5472-B79F-DA60841C30CC.dita" id="GUID-C556C65B-5E4A-4866-A824-72A44A31F04B">
-</topicref>
-<topicref href="GUID-14BBFDA8-7765-5939-9E47-36E299841F50.dita" id="GUID-E0BCF164-319C-4F69-B7FC-0A3A79842982">
-</topicref>
-<topicref href="GUID-72E1F91B-173B-5F45-B9FF-42FD5F45438C.dita" id="GUID-5F9FE241-428D-4659-832D-439DED4B1C1B">
-</topicref>
-<topicref href="GUID-27AAD3D5-AEC0-5A33-B14A-2E8B8D21CDAA.dita" id="GUID-7014A533-7779-4952-8356-8F9AB84AC5D3">
-</topicref>
-<topicref href="GUID-FE138F1A-1F52-5E9A-8EB2-5A8945A9CF30.dita" id="GUID-794DBA8B-8C1B-4A2A-9F6E-A176D5A89672">
-</topicref>
-<topicref href="GUID-18182059-859D-51CF-A940-D230D9F9CF8C.dita" id="GUID-35E94611-65F5-47A5-AC1F-E7D67E270053">
-</topicref>
-<topicref href="GUID-7A71CD0B-84C7-5A77-B573-C61F67C382DA.dita" id="GUID-94D0C327-B933-4612-B2A1-B2328C13A45A">
-</topicref>
-</topicref>
-<topicref href="GUID-5EBA3C03-2E4E-5DBA-BB5B-0D40DAB3C39B.dita" id="GUID-451F1D29-1F77-4DB2-B21F-27AAC85FAA5C">
-<topicref href="GUID-5829247E-2E8E-502F-9051-A59DA8EE71B0.dita" id="GUID-F3A82DDC-7F8B-421D-9A52-A1957E7B7D17">
-</topicref>
-<topicref href="GUID-60BF8840-CB87-5A39-A46E-76F8D4EDB50C.dita" id="GUID-35611EA7-2F3C-4EBD-B7A0-ACD133EA2473">
-</topicref>
-<topicref href="GUID-1FC0156C-7BDB-5D5B-9860-837DAB431D24.dita" id="GUID-BB0B14DC-8766-4930-9168-D06003DA3A00">
-</topicref>
-<topicref href="GUID-96C7CBD4-4B25-5AA1-A54F-1764B54FDC7E.dita" id="GUID-77919329-4734-4E7A-A5F0-2EC5267686F9">
-</topicref>
-</topicref>
-<topicref href="GUID-7366AE99-DE25-5DE0-BF9A-58E7742DA952.dita" id="GUID-E2A54C48-31E3-4A48-8889-CB1FF26F349B">
-<topicref href="GUID-C6AB2B3A-BBFC-5B57-BECB-F46C96250502.dita" id="GUID-A980EDC9-C17E-4536-8196-01CF9A8B07F9">
-</topicref>
-<topicref href="GUID-18EF9CFA-5080-5F89-89EC-C64897612D6B.dita" id="GUID-D3D5F2F2-C893-44F6-AECC-3327BCA263FD">
-</topicref>
-<topicref href="GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A.dita" id="GUID-EC527DAA-DE47-4204-85DC-0CC071CFFD38">
-</topicref>
-<topicref href="GUID-011D0974-CC37-5335-A8EB-7ECF4FC30F93.dita" id="GUID-5B1EAF01-C2FC-4A88-A92A-07142EFA70EB">
-</topicref>
-<topicref href="GUID-D51600DD-B79A-5A4D-B2D1-36C0A9F9D115.dita" id="GUID-9458974B-5836-4E5C-826B-E299A1D38CFD">
-</topicref>
-<topicref href="GUID-76D1438E-445E-5864-BA9D-27BC61D72C1B.dita" id="GUID-3355F33B-81D8-425F-B14A-7EEC2E8EA944">
-</topicref>
-<topicref href="GUID-0970A970-6E56-556C-B032-B7EAF8ABBBA6.dita" id="GUID-7275D7D0-0E64-45F0-8003-9FD342ACD6F2">
-</topicref>
-<topicref href="GUID-0715E8B9-8F43-5C7B-BDC6-4E8FA5352714.dita" id="GUID-D1F41AF7-EE50-41BE-9979-4CFC4A7822B8">
-</topicref>
-<topicref href="GUID-52151070-626D-5F14-B53F-7B46BCBD633E.dita" id="GUID-2F4A4BEC-59BE-4617-A50B-4D3118A300E8">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-24FD00A1-CD09-5845-ACD5-4E4FF25084B3.dita" id="GUID-73F1E559-09A0-48E0-AD7F-5FFF529252AB">
-</topicref>
-</topicref>
-<topicref href="GUID-806298E8-3196-5A1B-A392-7D5A903C3F57.dita" id="GUID-96A1D206-1091-4C26-A495-2E15FE476270">
-<topicref href="GUID-000ACB11-EDD0-5160-BC5E-4593F1BAF293.dita" id="GUID-6D5EC853-1D02-442A-8E5C-E650F956BFA6">
-</topicref>
-<topicref href="GUID-2F4B2A69-9B92-52BE-9A1A-FDA501579CE5.dita" id="GUID-E2D6298A-18D1-4DE2-BD89-85665F8CE64E">
-</topicref>
-</topicref>
-<topicref href="GUID-A81C65CF-CF4E-571C-8080-9D387F46AAD6.dita" id="GUID-B941FE22-09C1-4DE8-95BD-DC2BEDD7F67F">
-<topicref href="GUID-C705B0D5-055A-5DAA-9C6E-2FC3519FA50C.dita" id="GUID-203D644C-EF35-45E5-BACB-8D4768F97AA5">
-</topicref>
-<topicref href="GUID-D9EA2B10-B789-5CC1-9BD0-23B4FA7E0821.dita" id="GUID-1E7EFE38-C53F-4339-BFC7-083C948D684E">
-</topicref>
-<topicref href="GUID-FE910347-7CC1-5241-B443-88AD3F5A96EF.dita" id="GUID-F7A565C0-399C-4CD9-82CC-3861FCFDFCC7">
-</topicref>
-<topicref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita" id="GUID-0CCAF724-24CE-40BE-96EE-07C2E6251668">
-</topicref>
-</topicref>
-<topicref href="GUID-E634E701-0DA2-572E-852B-8A1F88F05E5A.dita" id="GUID-3D02E4C3-C46D-43BA-A0C3-EFB8A21AAC55">
-</topicref>
-<topicref href="GUID-A52E8853-9A8A-5B66-A2B0-F943B32AA5C6.dita" id="GUID-A8F74095-15A7-478C-A54E-AD3824CF54E6">
-<topicref href="GUID-BE0C94BE-94F0-54B3-8674-366C09261E5D.dita" id="GUID-C3C071F9-A960-4DA5-9E15-8F6D3D8EAEDA">
-</topicref>
-<topicref href="GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830.dita" id="GUID-260EAD45-2F20-4E08-B251-C226BC0BC587">
-</topicref>
-<topicref href="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita" id="GUID-455706F6-59B1-4754-9584-7CF750613DA9">
-</topicref>
-<topicref href="GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E.dita" id="GUID-0869026B-42EE-4660-AB3B-D0A11B89A032">
-</topicref>
-<topicref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita" id="GUID-44CF75EF-3359-4C5A-847D-3FD925F0799D">
-</topicref>
-<topicref href="GUID-BA9A7DF9-258A-5822-9115-E1102D609749.dita" id="GUID-921B64EC-9F90-4D5A-AA29-86D4CD343A47">
-</topicref>
-<topicref href="GUID-D4668FE9-52BF-581A-B403-CEC69D5219D9.dita" id="GUID-FB7ECE34-AB02-4B5E-821F-51605E7EB204">
-</topicref>
-<topicref href="GUID-FC639517-F138-5E84-B57A-6347F5A47B88.dita" id="GUID-43B31B8B-17E5-4121-93F7-3B5D3A3BB0ED">
-</topicref>
-<topicref href="GUID-EA0A4F6E-CA82-59A4-ABCB-70632CDC2714.dita" id="GUID-18943901-4273-4B6E-B6B3-6404C84E5EE2">
-</topicref>
-<topicref href="GUID-2A6C43A6-D5D3-5DC1-871C-C1428D2DB2E6.dita" id="GUID-EC9F0D2B-13A6-4A09-B2C1-394D9A936902">
-</topicref>
-<topicref href="GUID-8C4EB8E0-78F0-553D-91AE-EC070A47B0EE.dita" id="GUID-E181C878-8201-4E8E-BBAC-1798B41376AA">
-</topicref>
-</topicref>
-<topicref href="GUID-EE8ABE8F-A25D-509E-8B0C-9101F61F998D.dita" id="GUID-A0B78CD5-56A3-42ED-9F49-ECF3591DBDF8">
-<topicref href="GUID-255B6815-8CC8-5E4A-9999-9BC083BCCD83.dita" id="GUID-A2349D43-31CE-48B7-8477-F7968D54E78F">
-</topicref>
-<topicref href="GUID-5AA3E9E4-9727-5B54-81CB-DADA73DEC51E.dita" id="GUID-16C075C1-990D-4FBE-AD40-368AE6E0B7FF">
-</topicref>
-<topicref href="GUID-1D9376CD-3160-5CD8-A138-B94C5F7A50F8.dita" id="GUID-B038C4B7-783F-435C-AC10-0243557D71DF">
-</topicref>
-</topicref>
-<topicref href="GUID-FF8F5D97-7D37-5F6B-84A3-C064E2FD53E0.dita" id="GUID-608ECDCC-1B59-400F-8597-4DD5CDDE3BBF">
-</topicref>
-<topicref href="GUID-44F4089F-7184-5F73-A01E-E0F639D32EA1.dita" id="GUID-2F6D9313-7C19-4A11-8669-597EDBD70AEF">
-</topicref>
-<topicref href="GUID-BBBFC0AF-2E35-5F5C-A3A5-57C4196A6CDA.dita" id="GUID-B5039D77-F718-46F8-B913-C1A66BE8B569">
-<topicref href="GUID-5D4B86D3-20C4-5D87-A6C1-225018D32347.dita" id="GUID-10D751FC-E821-4783-B9AC-5E34BC9BD2BA">
-</topicref>
-<topicref href="GUID-B1C0C5E2-DC8D-5230-8D4B-338DF619F1D2.dita" id="GUID-1D773F09-F3EF-4757-BD66-EAC1BA33F1C5">
-</topicref>
-<topicref href="GUID-BA89F4DF-E2F6-5E0B-BF20-F8898FC5D5F8.dita" id="GUID-8210FB23-C89F-4406-B9B9-11C2280FDC82">
-</topicref>
-<topicref href="GUID-E865E677-1219-500C-89CF-0A2835B91834.dita" id="GUID-D1AF6F42-24D6-42D9-95FF-B321FEF20657">
-</topicref>
-<topicref href="GUID-547CF71C-6A62-57C0-A9BE-E76B4286C6D6.dita" id="GUID-5E6BC8A6-5F00-45B7-806F-4E182629E819">
-</topicref>
-<topicref href="GUID-088DC096-0CC7-5510-8D71-7DAF5961A681.dita" id="GUID-368576BA-B097-45EC-9102-2385F842DDE5">
-</topicref>
-<topicref href="GUID-FA120B3F-4EC4-5A0A-8A36-D5CD032CF1B0.dita" id="GUID-772822D9-20FA-4B0D-A589-6CBC00C6DD18">
-</topicref>
-<topicref href="GUID-9D00655C-AFBA-5DF7-B11B-6B2355BDF08D.dita" id="GUID-86C3E48F-A03D-40F7-9605-FC3DF461C36B">
-</topicref>
-<topicref href="GUID-91EBB6E0-932D-506D-B041-7FB8A531EFDD.dita" id="GUID-9B38E025-9C4E-4BB7-9D99-C6FCA828302B">
-<topicref href="GUID-21A43565-FC69-553E-9617-4832AB776004.dita" id="GUID-74AE110F-89D2-4DB9-9B65-B23B7C6B1106">
-</topicref>
-<topicref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita" id="GUID-400FEC71-269A-4AC7-8DB9-BC5C4754DA68">
-</topicref>
-<topicref href="GUID-A3EE649B-FF95-539F-8037-54706E4702D5.dita" id="GUID-235E5F07-0B63-4D15-A192-FD82E51D28F0">
-</topicref>
-<topicref href="GUID-25F853BF-BA95-5348-809E-670C04734AB7.dita" id="GUID-29DF3733-200B-4D27-A8BC-A3A22838B231">
-</topicref>
-<topicref href="GUID-1EDE641E-EF8C-542D-A7B3-7C496D41EF3D.dita" id="GUID-B43D4C26-E053-4AA2-A919-5CA7700210A6">
-</topicref>
-<topicref href="GUID-0B94F027-6524-54D1-9A5C-3849DA41FCB7.dita" id="GUID-EB13AEFC-4E25-430E-B643-59BF892AA9D1">
-</topicref>
-<topicref href="GUID-A16508C2-2743-5E36-BCFB-C509ACCD372F.dita" id="GUID-AA54A1CC-C011-4AA1-9F2B-5C39DAFFB2E8">
-</topicref>
-<topicref href="GUID-D542B24D-5A17-516C-85B0-66A5E8A97946.dita" id="GUID-C5A86D61-13E3-43A6-809E-D419580477EA">
-</topicref>
-<topicref href="GUID-EB286BFD-6A84-5F12-8CC5-1A347685634A.dita" id="GUID-9C29333B-9027-448E-A70C-DB265162EE91">
-</topicref>
-<topicref href="GUID-3DE276E8-D2C7-5297-AF3B-40B0B8733572.dita" id="GUID-1C7D4D73-76F0-4E10-B3DD-BD15513B21E1">
-</topicref>
-<topicref href="GUID-24477051-265A-5FE5-B479-ACB3EE27B825.dita" id="GUID-D717DE95-C215-49D0-B1A1-8AEDDA85DFBD">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1C7A0C22-90C6-5F54-8B43-342EE460C055.dita" id="GUID-34C7E33E-994A-47CD-8595-FEE0973C6128">
-<topicref href="GUID-27F345DA-7969-5B3B-B2BD-285CD168CF72.dita" id="GUID-EA2F2B75-6E56-4E6E-8598-95CC4B56AEF0">
-</topicref>
-<topicref href="GUID-1FBC290C-74C3-5618-A2B7-52181CDFE0F0.dita" id="GUID-ACE2E709-6DB2-4BE0-B823-1F169AB721F1">
-<topicref href="GUID-5219F0F7-4BFA-5B1B-999C-FBE4E2228588.dita" id="GUID-D9E612D2-4F7A-4AFA-A9CA-F95A31AD2778">
-</topicref>
-<topicref href="GUID-0422EDC4-E17C-5E58-BB37-03CCA79ED3E9.dita" id="GUID-A41A2755-5C30-41A0-95B9-10669249CFF8">
-</topicref>
-<topicref href="GUID-EA6965FB-5BB6-5110-9A16-B5403E1983D4.dita" id="GUID-EB76FA41-C10E-44CE-986E-EF030A80245A">
-</topicref>
-<topicref href="GUID-517F4D7A-5959-57E6-9C5C-3584FBA4EA42.dita" id="GUID-39E6365B-8E2F-4DD6-8C52-E6023310D0EC">
-</topicref>
-<topicref href="GUID-2D8093D7-58A8-59CD-96EF-5B0AAE029478.dita" id="GUID-5F19E620-6182-4C76-A579-AE42377C5ED6">
-</topicref>
-</topicref>
-<topicref href="GUID-926EFFB3-B0E0-5627-87C5-20F8B4A56028.dita" id="GUID-366DCEF7-1F0B-4FF1-87BC-31D6A97A4738">
-<topicref href="GUID-E5B5C3CA-B256-5B29-AB90-590676444C85.dita" id="GUID-82303849-362C-4442-B279-8B1F3EAAF136">
-</topicref>
-<topicref href="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1.dita"
-id="GUID-57914096-DFC4-493F-9679-1014672D7206"></topicref>
-</topicref>
-<topicref href="GUID-B659AD98-FB73-5C3C-8E13-D2CDBD2B84A2.dita" id="GUID-59874B43-2D51-4621-B657-67236C3D53D5">
-<topicref href="GUID-078E6232-31FA-5582-84B8-F5E3E4B14A05.dita" id="GUID-882F02C3-FB19-4884-A6B9-ACC40E53A57E">
-</topicref>
-<topicref href="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1.dita"
-id="GUID-AF9FBE99-86B3-44FB-8E2A-066252CE5144"></topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-95DF676F-F9BA-56E0-A4DE-E68B42C06932.dita" id="GUID-208C6C1D-4D7C-4CBF-A775-B8850B36F7AE">
-<topicref href="GUID-AB705D21-87A3-5F32-A4B9-17B7593DD5C3.dita" id="GUID-4DE09AA9-7A1D-4AD4-87BE-9D3C77C3EB11">
-</topicref>
-<topicref href="GUID-4D5B0B16-329F-5932-995D-DB43E6641EF9.dita" id="GUID-EFACE534-9A8B-4C5B-A6E9-EB52C2CA7391">
-</topicref>
-<topicref href="GUID-6CD0F7B8-3DB2-5332-A206-BD7A1C840614.dita" id="GUID-4F18DB3D-2D29-4B05-ACD7-B8A848A1BA69">
-</topicref>
-</topicref>
-<topicref href="GUID-C61A6E8E-F295-53B4-ACC6-CFE1D9117895.dita" id="GUID-E0C7708B-F61A-47D2-B8A1-CDDDE1484D99">
-</topicref>
-<topicref href="GUID-0D61EBFF-F513-5911-B234-09F36E5E3DC8.dita" id="GUID-4BB6F229-FF39-444E-BC2C-1028BEA557E5">
-<topicref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita" id="GUID-83008203-CBB1-4015-A88A-648AB612F0F3">
-</topicref>
-<topicref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita" id="GUID-0166D443-FDCD-4132-B136-A863C94F6F4D">
-</topicref>
-<topicref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita" id="GUID-84B6E79B-C272-4207-87ED-96EDAACEC440">
-</topicref>
-<topicref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita" id="GUID-A8E8D5A2-EBDA-4FEA-A4FD-A63141959531">
-</topicref>
-<topicref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita" id="GUID-DA4CFA9E-D893-4CDB-9905-1D9E4231207A">
-</topicref>
-<topicref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita" id="GUID-309370C0-25FC-49BC-B07F-D1FEF405248A">
-</topicref>
-<topicref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita" id="GUID-C08DD39C-F810-46C5-9D20-155566016DC1">
-</topicref>
-<topicref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita" id="GUID-EB5D8F2A-03D7-4A13-BC9F-6062D93D2948">
-</topicref>
-<topicref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita" id="GUID-AB2A2CD0-EB1F-4D6D-BBDA-5966618887BB">
-</topicref>
-<topicref href="GUID-960B2F4E-9012-53EE-973A-C3426A7DD48F.dita" id="GUID-C9802C91-6BB6-4462-B3E9-121A24AB2F76">
-</topicref>
-<topicref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita" id="GUID-CB9C9B88-2CB0-4093-8638-79DBACC98B0E">
-</topicref>
-<topicref href="GUID-7068AB77-5C96-59A3-B975-7923FD843832.dita" id="GUID-73816830-E763-401A-A95F-9E77CE67CD96">
-</topicref>
-<topicref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita" id="GUID-B835138D-7391-4E10-9BC7-63824580D7F3">
-</topicref>
-<topicref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita" id="GUID-5815B57A-23FD-4C06-A154-5702E9C64285">
-</topicref>
-<topicref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita" id="GUID-6B6CFF21-6A41-4A9E-B6E0-AA78FC5BD6F2">
-</topicref>
-<topicref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita" id="GUID-A87D889A-3881-455E-B6BB-9C79AE775CFC">
-</topicref>
-<topicref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita" id="GUID-5B399C9F-388C-4CFF-9B3A-2DFA7D3CC3D5">
-</topicref>
-<topicref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita" id="GUID-F14C7E13-30A2-4B9E-9DD7-A7B4A2DAD241">
-</topicref>
-<topicref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita" id="GUID-46D95819-6B57-4A29-B97C-C161A6CDB385">
-</topicref>
-<topicref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita" id="GUID-22D56912-9B9C-4FE2-B4EB-3EF3304EEA25">
-</topicref>
-<topicref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita" id="GUID-8FC9D660-B44D-4281-A3C2-81327FA93DAA">
-</topicref>
-<topicref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita" id="GUID-7C9A95A6-8523-4CC0-9F41-707E753543FA">
-</topicref>
-<topicref href="GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita" id="GUID-5F3E8C05-1E8E-4C06-8205-A8F003087E6A">
-</topicref>
-<topicref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita" id="GUID-526F8732-46F2-40E7-8690-56B97E9F4094">
-</topicref>
-<topicref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita" id="GUID-4F2D23FA-C8D8-4D0D-A835-7632229FCBD0">
-</topicref>
-<topicref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita" id="GUID-04A25E10-DC2F-47C8-B857-CF297E58C9DC">
-</topicref>
-<topicref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita" id="GUID-17AFAFF7-730F-4837-8A44-4742144A0E47">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-BB9760B4-4F3F-5326-81FB-B644C82F0E65.dita" id="GUID-137052D1-6A4B-4AD6-B020-7C594FB2488C">
-<topicref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita" id="GUID-DD8CF14B-6844-4585-806F-7C6F086B349E">
-</topicref>
-<topicref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita" id="GUID-7D2949C0-22E2-4DFF-8AAD-779242F424FD">
-<topicref href="GUID-B69FE02E-3A78-5438-BA7C-F7BB4CD3EB76.dita" id="GUID-4D3D41C5-0250-497B-8D9B-12CB653B6A00">
-</topicref>
-<topicref href="GUID-D3DD5F07-A383-5285-8C68-9F6C1C3E715B.dita" id="GUID-0BFF4DA5-B22E-44CB-8875-E6100BEA718F">
-<topicref href="GUID-8105D1FC-DFFE-59F0-A664-3DA44F002F47.dita" id="GUID-12A4D3BB-D5D8-4DF7-B086-18AF27BE3AC0">
-</topicref>
-</topicref>
-<topicref href="GUID-F0D5C8DB-3AD0-53F1-8301-C0F69A4F13C1.dita" id="GUID-97728F84-18FB-40D2-954A-50D787BA7562">
-<topicref href="GUID-843B3C4E-153D-5673-95EA-88322D689297.dita" id="GUID-88A56377-8C0B-4E53-8A18-9D4E9A960748">
-</topicref>
-<topicref href="GUID-7C7DC797-3600-5EF8-A3E4-B44A7BCEE373.dita" id="GUID-4421B0DA-0AA2-4463-8F31-B805723909A7">
-</topicref>
-<topicref href="GUID-06031510-2089-55A1-98A2-9045D1D07E4E.dita" id="GUID-D201FE9E-9636-4AFF-8B5A-5BAB94ABFFDA">
-</topicref>
-<topicref href="GUID-AF65EC50-0922-57DD-809B-DB8970C8E4C6.dita" id="GUID-092D992C-6B7A-4BFE-A186-D3DC73D73269">
-</topicref>
-<topicref href="GUID-1C0CA7AD-0F04-5346-AA51-4F9EB852FD38.dita" id="GUID-D93C44D9-FF0A-4460-BD6E-7CCC2AE6D698">
-</topicref>
-<topicref href="GUID-47A4949C-61B3-5B91-9845-F40A9BC157C4.dita" id="GUID-9791F13E-811B-4F4F-9C58-88CDD6D1F7FD">
-</topicref>
-<topicref href="GUID-E4A76562-E030-51A5-BD14-C734457443CA.dita" id="GUID-BBA44EB4-2B45-4F18-A1AF-A550CFC144E8">
-</topicref>
-<topicref href="GUID-5B50E929-5C29-5920-965E-24F6CB616AC9.dita" id="GUID-EA7BCDB2-23D0-4564-BD99-0D8FC8D2AEE6">
-</topicref>
-</topicref>
-<topicref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita" id="GUID-B4AE6219-C012-45B4-BEE6-32EC39037327">
-<topicref href="GUID-C72CF928-F32E-55CF-A4B0-B51CD7D14F8A.dita" id="GUID-38F5B914-7F4C-4D11-8D27-5AC3DC85859E">
-</topicref>
-<topicref href="GUID-E93D3767-0F74-5335-8233-8236908F70AF.dita" id="GUID-6F7122A8-22B3-4656-A3DC-8400133DC07F">
-</topicref>
-<topicref href="GUID-F4BD69B6-008E-51DB-ABFF-1E17E10B053F.dita" id="GUID-C9F6B1C6-CD2A-44AA-99CA-6098A0A08A7A">
-</topicref>
-<topicref href="GUID-EAEE54D0-4580-5BE7-AA16-4ABC216B4EB0.dita" id="GUID-65CD3BB8-3681-45A7-A708-D7D28DBA8488">
-</topicref>
-<topicref href="GUID-EF4423F9-05A5-5DD5-BDB6-C7D8F7901396.dita" id="GUID-17B3300F-13D4-48F5-8937-20AF270FD7CD">
-</topicref>
-<topicref href="GUID-D5B8DC2A-E2BA-54FE-A359-1496356AF93F.dita" id="GUID-E5EAFAFC-1185-4B5F-A947-6CDE397EF692">
-</topicref>
-<topicref href="GUID-F86CFD79-88B1-55E0-AF81-4666D97B7AF5.dita" id="GUID-6B0F3FE6-9E68-4076-AC01-A835153FEB08">
-</topicref>
-<topicref href="GUID-FA6E3270-C20A-5B05-9FFC-F3D4D8B35999.dita" id="GUID-52EA6FA6-566B-44A0-8B1F-2D948BB7B6D4">
-</topicref>
-<topicref href="GUID-6F938BDA-15CB-566E-88E0-6DF9278F8304.dita" id="GUID-54900CD0-4B1D-4CCB-B1F6-D71C39E0337E">
-</topicref>
-<topicref href="GUID-00DE7E90-4C6B-577A-85E1-76698CA2AB69.dita" id="GUID-25605DBE-7E56-4B1F-A957-C298EE61D682">
-</topicref>
-<topicref href="GUID-00025EAD-C4B6-5408-96A3-FFDBBBDC7CAB.dita" id="GUID-994B1764-393F-401F-8571-CE0955AB6CA6">
-</topicref>
-<topicref href="GUID-57DD8365-E60F-55C6-BB24-8D215A31A8AF.dita" id="GUID-959E158F-62CF-4688-B080-5F1CDC2D4CCE">
-</topicref>
-<topicref href="GUID-D91DC379-947A-52CB-A154-7922AF334527.dita" id="GUID-BBD64F82-622E-4B1C-B7EB-BCCB60591F67">
-</topicref>
-<topicref href="GUID-EC567597-093B-50C8-90FF-300A439A99A5.dita" id="GUID-90E23C8C-70AE-4D55-B719-9F1441863529">
-</topicref>
-<topicref href="GUID-F3520C6E-1B3A-5CB2-95F8-AB430D4BA327.dita" id="GUID-7DF6EEAB-6CC9-4696-8B18-5BF9F61BA6BE">
-</topicref>
-<topicref href="GUID-218DB978-929C-5701-869F-8415FF6CE62D.dita" id="GUID-472A9E0C-7834-4203-8BD6-657F6BEF46C6">
-</topicref>
-<topicref href="GUID-BAAB73D8-EF7F-5F62-B819-25EB2F5CCE3E.dita" id="GUID-C20CF35D-A810-4960-BDE0-ECBB7EDF6C9E">
-</topicref>
-</topicref>
-<topicref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita" id="GUID-4C018E64-E2C7-4670-8A24-E8BEE5CB0C05">
-<topicref href="GUID-204627D4-3818-5DE7-8969-C335DBA5B153.dita" id="GUID-9DC55AAE-A360-4D34-AF18-FD7711D1F0A6">
-</topicref>
-<topicref href="GUID-CA35A708-C6D9-51D7-873B-A79606FFAF66.dita" id="GUID-7CD52D50-4FD4-4B91-BD2F-BD4CFDD7EB4A">
-</topicref>
-<topicref href="GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863.dita" id="GUID-752926DE-2DEC-42E3-A041-03533003E813">
-</topicref>
-</topicref>
-<topicref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita" id="GUID-63A1A0F1-9DBC-4AAC-82E0-007EBBF564DA">
-<topicref href="GUID-3CE3D01D-3EA1-5D44-B9DE-350F9E88F9C9.dita" id="GUID-E291E60F-062D-47FD-A871-786832DEE634">
-</topicref>
-<topicref href="GUID-89F383B6-3730-51DF-8C41-CF2564B4D003.dita" id="GUID-8F26B821-5BB5-4EB8-AF60-B8962D2BBEE9">
-</topicref>
-<topicref href="GUID-2CE8544C-470C-5693-8ED6-27B01DD9548B.dita" id="GUID-A2887D5F-6704-48D5-AD1B-1F2DB038A772">
-</topicref>
-</topicref>
-<topicref href="GUID-22746579-EB41-5C76-96D0-606C132E824A.dita" id="GUID-D258F774-674C-42AF-BEAE-48D01A5D1276">
-<topicref href="GUID-54E62386-E4DB-55C3-BA9A-FFB7BFE6703E.dita" id="GUID-F7960276-6CCC-4BC5-B65E-9BD4A2751F43">
-</topicref>
-<topicref href="GUID-B0C99FFF-DAF8-5E0D-9EE0-60CBAEF6E8D7.dita" id="GUID-FA356292-49EA-4FFD-9503-0CC84A70A988">
-</topicref>
-<topicref href="GUID-B29D55DC-D2EE-5F05-A0BF-7C7C30615479.dita" id="GUID-63E46000-16E9-4824-9B97-522BE977796A">
-</topicref>
-</topicref>
-<topicref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita" id="GUID-7338469A-9BD9-4F8C-94AB-5298C7B48FDA">
-</topicref>
-<topicref href="GUID-3FEEFC4D-19B5-502A-8310-40646B9C34BC.dita" id="GUID-D7AF7FEB-744D-4BF8-9AA1-E15768A8BDA4">
-</topicref>
-</topicref>
-<topicref href="GUID-E23CC708-1DD1-5DFC-992A-997AA107A616.dita" id="GUID-6CF679E4-4A8B-4679-940D-532D3DED7282">
-<topicref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita" id="GUID-56121C4C-7F32-469B-8C6A-8CA23913A5A3">
-</topicref>
-<topicref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita" id="GUID-D7CB55D9-663E-4FD2-8333-12FA891CDDC9">
-</topicref>
-</topicref>
-<topicref href="GUID-B24F1029-39FE-539F-847E-1296A1574F95.dita" id="GUID-E918728F-AB10-4289-BD87-2C8844828F7B">
-<topicref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita" id="GUID-58F461FB-D1A6-49EF-8B83-4B75A62B5448">
-</topicref>
-<topicref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita" id="GUID-9EA6B024-CFB7-4994-952F-0CA559D9C6F9">
-</topicref>
-<topicref href="GUID-D358120E-6755-5D0F-8754-DAB4E2A52E00.dita" id="GUID-5C1CB6A4-0457-40CC-945B-0DF48CE90D7F">
-</topicref>
-</topicref>
-<topicref href="GUID-F50AC398-5184-5C65-8594-9E2859C3C47E.dita" id="GUID-3110F74C-2F9F-4E26-8DC6-A029A0B3AC5A">
-<topicref href="GUID-5ABEF28F-ADB2-5BA8-A946-FFA1F678F28E.dita" id="GUID-5B9290EA-6C95-4184-8C16-F1368A8E5908">
-</topicref>
-<topicref href="GUID-E8492B87-481E-56FA-8503-FF93DFE122F5.dita" id="GUID-80E3A3E7-95E0-427A-B19B-12CEF16C72C0">
-</topicref>
-<topicref href="GUID-576C8098-85C5-597B-8497-187E39A26E55.dita" id="GUID-974F4FB0-4916-4D5E-91B0-B79D03C5602C">
-</topicref>
-<topicref href="GUID-55A2D518-CDC7-5B96-84AB-9E16FFF4AE57.dita" id="GUID-036B61C9-EA47-41AE-A9DF-C980E453B956">
-</topicref>
-<topicref href="GUID-05E27705-47E5-5B27-849A-D2A6BA4F40E5.dita" id="GUID-54BB25E0-485F-434B-B612-FB1735BC1AA4">
-</topicref>
-<topicref href="GUID-24C80C7D-F330-5ADA-A8C8-AB882E2C57C2.dita" id="GUID-66CE72D9-8DAD-46B2-A6D9-85B317DF25B4">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-A3015BE2-0B29-4161-9EC0-79AD40B4FB01">
-<topicref href="GUID-7F476137-5E7F-5288-9F4A-6C20F0A1AD9B.dita" id="GUID-EB740C72-C0FE-4036-96A9-B9F8A6C1C26C">
-<topicref href="GUID-BA49FDC0-808B-5E05-81AC-98637214F304.dita" id="GUID-3EECEFC5-1BA5-44F4-AF56-71666F748E47">
-</topicref>
-<topicref href="GUID-1E158DE6-33F5-4B45-8923-28117EBAB68A.dita" id="GUID-639202A4-6AF8-4D8E-8964-64B95B99A552">
-<topicref chunk="by-topic" href="GUID-A996FAAF-DB18-4F78-A8DA-873ACD771560.dita"
-id="GUID-A11543B8-766F-4FDE-B738-9175927ED67C"></topicref>
-<topicref chunk="by-topic" href="GUID-DF756D6C-1E03-4EC0-B074-09611D122359.dita"
-id="GUID-1BA938E5-D02F-418F-BA5B-9FC7463B60BC"></topicref>
-</topicref>
-<topicref href="GUID-D0318BB6-0B9F-5A1C-AB0B-61BA22D28661.dita" id="GUID-A5337151-826A-487F-B071-E7196F7DC806">
-<topicref href="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita" id="GUID-98F5758C-8AD6-4FCB-B219-06B7EBF44FC1">
-</topicref>
-<topicref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita" id="GUID-9DE89BD5-E969-4849-B8FA-1D6F786EA648">
-</topicref>
-<topicref href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita" id="GUID-C22395DC-9DD1-48A1-AA0F-190894512C38">
-</topicref>
-<topicref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita" id="GUID-ED5E24D0-4EB0-488D-880B-68301680335F">
-</topicref>
-<topicref href="GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita" id="GUID-F36FF19F-F5B9-48A0-BD2D-D67C545154E7">
-</topicref>
-<topicref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita" id="GUID-F48A4546-3D03-4334-8B97-11D99FE24175">
-</topicref>
-<topicref href="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita" id="GUID-DA50BBC5-4E40-4815-BBC1-80B577261C5D">
-</topicref>
-<topicref href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita" id="GUID-035ACB6D-6855-4167-A181-6A3F3FDB3943">
-</topicref>
-<topicref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita" id="GUID-3333F589-CFF4-4946-A779-D5580BDD3509">
-</topicref>
-<topicref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita" id="GUID-71035D8A-0F10-4703-A2C5-C4243263F6FC">
-</topicref>
-<topicref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita" id="GUID-A319B881-2982-4468-92EE-403959DFF4C6">
-</topicref>
-<topicref href="GUID-0D5692FB-305E-58B2-B105-B309BB9AE38D.dita" id="GUID-E8ADEC7A-8EDE-42D5-9A5C-BA3D5E4441FC">
-</topicref>
-</topicref>
-<topicref href="GUID-05931546-C3C9-4085-8D5F-6B6C3F21D24C.dita" id="GUID-FF02D5A1-0C2A-41C5-80B5-B1C32C5BE229">
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-2F1C5CA3-4020-4784-B016-E77470EDF273">
-<topicref href="GUID-1A43A45B-80AE-56A0-A94C-64BA75519C67.dita" id="GUID-510D4522-2DF9-4F3A-B74C-4D8614D9E998">
-<topicref href="GUID-DA6BB8BB-DD92-57A7-AD1B-F9CFF8CD433F.dita" id="GUID-CCE86C63-FC5D-4C2B-94E3-F5B5BBD19286">
-<topicref href="GUID-33C7EEEB-88B8-5587-916D-2C5D122F6010.dita" id="GUID-F72DFD8A-8B14-4C03-BEDD-1AA2A3E25133">
-<topicref href="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita" id="GUID-AAA79257-3C38-4078-999A-0DA40A61D256">
-</topicref>
-<topicref href="GUID-69438F28-E2E9-5BFA-B644-08FB59D50A39.dita" id="GUID-5987F1A6-EDB7-486F-A6FE-45D48FCE7052">
-<topicref href="GUID-CBFDD753-BAE3-5C40-B947-EB8CDA11CD23.dita" id="GUID-3E452A72-6AF0-4805-BE0C-9640B5E23740">
-</topicref>
-<topicref href="GUID-24414E32-94DC-5870-847B-A797C495F756.dita" id="GUID-97D5252C-000A-4686-A6CF-9F0C53CD677A">
-</topicref>
-</topicref>
-<topicref href="GUID-33B590F4-CAE8-58B2-92A9-53123BD42579.dita" id="GUID-A1C875B6-F4AE-469D-B8A1-E603929891C9">
-</topicref>
-<topicref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita" id="GUID-327A7386-C625-44EC-B574-BEC6719E8747">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B641E030-E605-5A51-9C95-D9A23A38AF20.dita" id="GUID-1E0D49AF-515D-41E9-A2B5-8FFFD2319343">
-<topicref href="GUID-27A2AE45-AFAC-5325-A9A9-4A8C69921EE3.dita" id="GUID-C5E0E88E-724F-4044-AF8D-8372049FD66E">
-<topicref href="GUID-0EDFDB1E-B851-5871-B235-453A2B2F6BFB.dita" id="GUID-B819DF63-B79D-4DB5-B008-23E0E834219E">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-4384066E-158A-5F63-A823-7793DAE680BF.dita" id="GUID-196AEAF6-DAD0-48AD-85E5-83461CC7CA27">
-<topicref href="GUID-9BB849A2-8F69-580D-8A52-C7002D919521.dita" id="GUID-3F567E56-F593-4E19-8D82-6A6FFB486F67">
-</topicref>
-<topicref href="GUID-401A07E7-97CF-57BD-B37D-F6412762BBCB.dita" id="GUID-AD0FE723-F00F-4E76-8FAD-BB31AAF1C611">
-<topicref href="GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F.dita" id="GUID-BD1D39AA-5331-4433-9E6E-2D21CC46E93D">
-</topicref>
-<topicref href="GUID-386A94C7-BCB4-55B5-843E-E4AC03A2E230.dita" id="GUID-7FAC3E52-7378-4378-BDB9-C48A57D99E27">
-</topicref>
-<topicref href="GUID-931F2B0C-0F7D-5819-83AF-8EC2C8988538.dita" id="GUID-B6703385-F9C2-4B5D-922C-8E07188CC0AA">
-</topicref>
-<topicref href="GUID-AD6587AD-A5B2-5369-9217-D752A37490C4.dita" id="GUID-0C90AF5A-00B5-4B04-BF53-343FD5F63DAC">
-<topicref href="GUID-24860917-0FE2-5C8F-B436-96928350996E.dita" id="GUID-04F0673C-2B95-46E5-A041-1F0DA087D126">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita" id="GUID-BF39B4D8-83AC-4C72-A6EE-A543E22161FD">
-<topicref href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita" id="GUID-AFADDBEE-86F5-4DBA-9837-EE48B48096CF">
-</topicref>
-<topicref href="GUID-42833109-F8C2-57FC-9995-0461698A19FF.dita" id="GUID-4D5ECE0E-B5B4-4806-9417-C3F577642253">
-</topicref>
-<topicref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita" id="GUID-6B93463A-838C-47B0-B282-D910CA1E6E6F">
-</topicref>
-</topicref>
-<topicref href="GUID-EADCDE6F-127E-528C-B2E0-F13E5C7FD4EF.dita" id="GUID-B11EF615-2225-43F4-B75A-E1564EFC509F">
-<topicref href="GUID-5B43ED43-21B4-54C6-8637-76554769E6FE.dita" id="GUID-EBCC0A39-F3DA-446D-AAE5-71054F82A176">
-</topicref>
-<topicref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita" id="GUID-9A949634-F368-4D8A-85D2-46565178FDCF">
-</topicref>
-</topicref>
-<topicref href="GUID-3988C2DE-3FC5-5AF8-BB9F-499E7082F7D5.dita" id="GUID-AC9C5357-EB5D-4901-88DD-4CBD743A9C70">
-<topicref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita" id="GUID-889069EF-FCC4-4378-A5D8-9CC72C4CB5CF">
-</topicref>
-<topicref href="GUID-2E253B30-2611-546D-AE5B-1752556FC8E8.dita" id="GUID-31590D2F-313E-44EC-A98B-C12F3910E98E">
-</topicref>
-</topicref>
-<topicref href="GUID-8832AED4-6B9F-5B35-8211-0C6661CD6DCA.dita" id="GUID-0695353F-151B-438F-9286-B68874C13D69">
-<topicref href="GUID-43CE4DCB-F498-5878-A2EE-7831BBB4D288.dita" id="GUID-D5F8946F-7DAB-40D7-AD32-BFC6696FEF71">
-<topicref href="GUID-FD733414-DDB2-5748-A193-6758FADEFEC1.dita" id="GUID-CAC70ED5-4DBF-43F6-9AC0-A83FC77E3113">
-</topicref>
-<topicref href="GUID-88FDEE3B-83DF-5635-92FC-CF291D1D6C2D.dita" id="GUID-E1FDACDB-EA5F-47A8-A8B1-5CDC16C81B0C">
-</topicref>
-</topicref>
-<topicref href="GUID-7965B998-0D1A-50F8-B2F9-D2A71744DF86.dita" id="GUID-B177D993-1D75-4BF4-B854-638306E52479">
-<topicref href="GUID-EBFE8B29-86AD-5785-8041-BCED2E90472E.dita" id="GUID-F6D3E642-4CDC-4D66-9129-5CB9BB66043D">
-<topicref href="GUID-ADAD07E4-3539-52DC-B117-7078B3045B74.dita" id="GUID-3E3C5B0E-B54E-46F7-AE72-FEAB3C36351F">
-</topicref>
-<topicref href="GUID-36C5768D-896B-521C-B4D2-C41C0AD85F3C.dita" id="GUID-DFD60B5A-4315-44ED-AF64-1146A7BE4B49">
-</topicref>
-<topicref href="GUID-A9DBE9E4-8239-526C-9D57-447DA628EE59.dita" id="GUID-AC493E1F-2514-42E3-86FB-B91A295D3F96">
-</topicref>
-</topicref>
-<topicref href="GUID-786984BD-ADE8-5EF1-A819-F402F5703A80.dita" id="GUID-89574EB4-017A-4861-96B9-6118CDDFA538">
-<topicref href="GUID-BB6C60B4-9D34-5AC0-A4FD-3B604A35B8BD.dita" id="GUID-98CC8438-16ED-4725-AA96-4C645F0FCB63">
-</topicref>
-<topicref href="GUID-D1303B75-607C-5C75-B8DB-39571E182C7F.dita" id="GUID-C85051FC-A9EA-44E2-B266-E2B7E99AF9F0">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-CF0A4B91-B438-4F7C-AA51-042CCED41015">
-<topicref href="GUID-5DD1010C-1648-5086-BA80-BC25F3C7A2C4.dita" id="GUID-4EEA3CC4-6970-4930-8EB9-940CEEB5B306">
-<topicref href="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita" id="GUID-84B26508-39FB-4647-93A4-75EC52F8D11C">
-</topicref>
-<topicref href="GUID-C1F71368-E35A-512D-A9DF-F81491F35E62.dita" id="GUID-C29BD074-DC1A-48F6-BA6D-F64C21E36B2D">
-<topicref href="GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115.dita" id="GUID-7C6DE61C-C2DC-4668-B2DF-2A0C040793AC">
-</topicref>
-<topicref href="GUID-9A5D0303-6C22-53A1-86DA-0431F726010B.dita" id="GUID-D992CE3D-AFBA-4003-A98A-7DC87150EC74">
-</topicref>
-<topicref href="GUID-036FCEAE-8137-5764-A512-DA1EE06DFCB8.dita" id="GUID-6B77965D-438E-4FAF-BF6D-A61219D269E7">
-</topicref>
-<topicref href="GUID-D4AA635F-DF24-541A-A452-192DDBEE4142.dita" id="GUID-393BE637-3489-46B0-A0DB-508AD2855416">
-</topicref>
-</topicref>
-<topicref href="GUID-C290FA5E-8E41-5D19-B8C1-F88491EE6388.dita" id="GUID-9A29E93F-ADE8-44F1-99D3-29DC98CA0D92">
-<topicref href="GUID-54AB166A-8B24-5065-92AD-5FC1BF3ED89C.dita" id="GUID-1D546B8A-1348-4AEB-9750-06727808E84A">
-</topicref>
-<topicref href="GUID-CADAABB4-C957-502E-BA4D-E9614C0D3878.dita" id="GUID-7F041966-0F61-4653-91B0-B959A09F5DA7">
-<topicref href="GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A.dita" id="GUID-3A36C497-8130-4947-8DBF-659C1683A001">
-</topicref>
-<topicref href="GUID-AA978F65-C25B-59DC-82BC-6892228EA3F9.dita" id="GUID-69DA21BB-3695-42F8-B62E-B8C0C1CF78B7">
-</topicref>
-</topicref>
-<topicref href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita" id="GUID-7F2F2F4A-C4B0-4AAF-8D93-77607B4780D0">
-<topicref href="GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita" id="GUID-D646933D-9261-4997-8D85-69CF9BE63021">
-</topicref>
-<topicref href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita" id="GUID-B7C45C33-3C3A-4BBB-9F6D-E2B9ABBB2825">
-<topicref href="GUID-2D74594C-AFEB-550E-AD69-1C4A0455C5AC.dita" id="GUID-3EA74256-3FAC-4B7F-8C3A-6AEC868B9055">
-</topicref>
-<topicref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita" id="GUID-83D93D9C-6225-45F7-8B0B-12A4163CBEBF">
-<topicref href="GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita" id="GUID-22347765-517D-4D4C-8FE1-B4B90B4CD63D">
-</topicref>
-<topicref href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita" id="GUID-81B802F6-71F7-44CE-9086-D709B406B122">
-<topicref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita" id="GUID-4B2D1C16-82A0-4F3C-A47D-7FD1DB996E84">
-</topicref>
-<topicref href="GUID-D7600D93-CFB8-565D-8200-7082B2CF1791.dita" id="GUID-C3D6041E-F75D-486F-A727-E05632917151">
-</topicref>
-<topicref href="GUID-EB76BA4B-D6A2-5651-A310-647E1D2CDEBC.dita" id="GUID-9F010C48-74AF-4BD7-BF67-1FB7A0B7CB85">
-</topicref>
-<topicref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita" id="GUID-078D3B17-CD90-4971-BB12-CF52E1F5B15A">
-</topicref>
-</topicref>
-<topicref href="GUID-BAD138D5-2914-5C6E-9FA4-F7A3CCB85E6D.dita" id="GUID-0E799B6C-2B10-44CA-844A-7408B840AFBC">
-</topicref>
-<topicref href="GUID-92D6CC11-C597-5D00-AAE5-866289B7462F.dita" id="GUID-5EFDE2F7-0526-4693-AA2B-3C7C8514714A">
-</topicref>
-<topicref href="GUID-E96D8052-0CB2-53A6-915F-133D3058DCF9.dita" id="GUID-56BEA4AE-45EF-4EA0-BE6D-2B62145711F6">
-</topicref>
-</topicref>
-<topicref href="GUID-2645AE91-8087-5423-95A7-8BC6EFD271E7.dita" id="GUID-FFA4E44B-AC8A-4EB9-95C3-8D726425B436">
-</topicref>
-<topicref href="GUID-5CFA3F21-3E42-5B53-8EC1-BC0F7F0E8136.dita" id="GUID-94D2D697-494C-4769-9B80-900D91B924C0">
-<topicref href="GUID-D099551B-6E99-5210-B44A-693012A29DD1.dita" id="GUID-B60F9F56-C1F9-43F5-86B6-D0E9BC1FD7DB">
-</topicref>
-<topicref href="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita" id="GUID-77F931BD-C5AB-48F2-961D-AF658EC23456">
-</topicref>
-<topicref href="GUID-5E522208-E8ED-5E95-946C-5D87CF303F1D.dita" id="GUID-1AD062AF-9FDF-4352-B1A4-D8380221E915">
-</topicref>
-<topicref href="GUID-7BB6C3A0-7FCF-5614-9940-B3630E5FC114.dita" id="GUID-926724B8-7A12-4E29-993F-804CAF0603D5">
-</topicref>
-<topicref href="GUID-21C03739-FF80-5874-A32B-F22DED13D18D.dita" id="GUID-674AEA2E-D75B-4B70-A16D-0F6073BE6D3F">
-</topicref>
-<topicref href="GUID-15A686A8-942E-54F8-BFD4-402323979C5A.dita" id="GUID-411A25A9-1AFF-4DD4-8578-2FFCB69BBDDC">
-</topicref>
-</topicref>
-<topicref href="GUID-F854D45A-A8CD-5B9F-9A59-C30A87F0955A.dita" id="GUID-302569B4-054F-444F-BC69-18B44592720E">
-<topicref href="GUID-2E96D6CC-1C1F-5C30-A315-9729D07D1605.dita" id="GUID-CB753014-C65D-4178-8066-01423C475AC3">
-</topicref>
-<topicref href="GUID-45B7FE73-2AB2-54CA-89D7-FFCAFD3B7915.dita" id="GUID-CB307AEA-209C-4C24-92F6-4B7EC7AE7290">
-</topicref>
-<topicref href="GUID-CC686E6C-FECB-548E-984A-15F7B9742DCB.dita" id="GUID-D8847AF4-34B4-4AAA-A96C-E20DEC97F54A">
-</topicref>
-<topicref href="GUID-5AAE8371-E146-562B-B8AF-149FF981693C.dita" id="GUID-B7041B7F-723D-40A8-B382-3CC5DA58CAC6">
-</topicref>
-</topicref>
-<topicref href="GUID-4CD6C5CC-A91B-56BE-825F-5B10B63627DA.dita" id="GUID-E41F1DA5-C667-4210-8CF4-611D65EF4048">
-</topicref>
-<topicref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita" id="GUID-81C46670-3BB8-47B8-BD9C-E4BB20AC75A8">
-</topicref>
-<topicref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita" id="GUID-0F743FA8-61EE-497F-BFEA-46648693C823">
-</topicref>
-<topicref href="GUID-2C8653F9-8873-59E8-9FD2-4215F6877ABC.dita" id="GUID-2124A721-B3A9-4FEC-98F8-9C40F4026225">
-</topicref>
-</topicref>
-<topicref href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita" id="GUID-87D2B63B-AE8C-4EEE-A6F2-9242F89E169E">
-<topicref href="GUID-7FCDAC24-BFEF-590B-B569-04AA262EBF06.dita" id="GUID-76B98DC8-E2C6-4E76-8A6E-EEEFC591A966">
-<topicref href="GUID-1E2DB50A-D8D7-595D-8448-77F057655E82.dita" id="GUID-AE249FC7-3CCD-47FD-824C-819746B04A7B">
-</topicref>
-<topicref href="GUID-AAE39139-B377-5122-A2B0-98708EA00614.dita" id="GUID-EE3B6247-F513-4620-925E-34F8CC29E0D0">
-</topicref>
-<topicref href="GUID-133999E8-0ACB-5929-949E-82BB16F8E267.dita" id="GUID-86F52B6F-798F-44B7-8A3A-27B637EB1BFB">
-</topicref>
-<topicref href="GUID-5D5BF7E5-4105-572E-81B5-0E61E1AA443E.dita" id="GUID-0D2BD9D4-9257-4BE8-BA26-E43206233547">
-</topicref>
-<topicref href="GUID-B79B6DD2-40C5-591B-AF56-5ACD167C66F5.dita" id="GUID-E82F86FD-FADE-4D7E-A846-5C5FDFF7082B">
-</topicref>
-</topicref>
-<topicref href="GUID-3FD2EADD-DC46-516D-B88D-DA523F51C5E3.dita" id="GUID-28F05CDA-EC5B-4699-A6B8-8F516372B868">
-<topicref href="GUID-91ED5F9C-216D-539D-B4D0-E6F2E087773E.dita" id="GUID-73FC6AFA-CD1F-4C43-886F-35DA0112D11E">
-</topicref>
-<topicref href="GUID-A09AFA5C-7B2A-503C-A218-987F2F9BF7B8.dita" id="GUID-6C4E369B-8039-4520-A285-F01DAAAB32E7">
-</topicref>
-<topicref href="GUID-D8D698FF-08CD-56B4-A6BF-E185A25F6988.dita" id="GUID-6AA8B102-1E2C-47A5-92A6-9CC057A168B8">
-</topicref>
-<topicref href="GUID-1B363B7B-35E9-5CD9-BC44-A19D94DA1D21.dita" id="GUID-A9EE5380-07CF-4B63-96D3-3D9FE1EFE49D">
-</topicref>
-</topicref>
-<topicref href="GUID-2F9BCBC4-A657-5B16-824E-5E96DA22AD00.dita" id="GUID-13D35A0C-6219-4957-8775-8F89940D138B">
-<topicref href="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita" id="GUID-73E6E7E1-BDA1-4D1D-80D9-45177D7B9EE4">
-</topicref>
-<topicref href="GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita" id="GUID-D9B2E00D-2B5B-4417-AA4A-4942CD61B08C">
-</topicref>
-</topicref>
-<topicref href="GUID-179099DA-1CD9-5912-B41B-363C132C7A86.dita" id="GUID-1137000C-64B5-4129-825B-EA051A05FEBD">
-<topicref href="GUID-6FE94423-9563-5F31-95EB-504479144B05.dita" id="GUID-EA4B4AAC-5BC7-4A3B-B845-D38338D29556">
-<topicref href="GUID-3FD5C609-3727-53B6-900F-ACBE59F62E4A.dita" id="GUID-31BA4AE4-AD28-4DE0-9074-E59413D89578">
-</topicref>
-<topicref href="GUID-62166BC9-D0BC-5070-BC57-2A1F4948BAFE.dita" id="GUID-BF7804C1-7FCA-450B-8863-E1089C7EB44F">
-</topicref>
-</topicref>
-<topicref href="GUID-9A3E0279-4F87-594D-A987-66DC77F408A0.dita" id="GUID-C2920730-2A6E-4B6B-B758-D2832F617F1F">
-<topicref href="GUID-FB185094-9868-5CBB-9CDE-51D7AB029450.dita" id="GUID-B415B654-0363-474D-87CE-24AF908ED8CA">
-</topicref>
-<topicref href="GUID-F9F45DE7-6688-5C31-90F0-0BEA72E74034.dita" id="GUID-1E5C9170-0468-4804-A387-B926FF041AE7">
-</topicref>
-<topicref href="GUID-0B95131E-6B7E-57A0-98B1-0B405207E0C4.dita" id="GUID-3CA1EDF2-C67F-4FC6-A1D8-3F01CC336C08">
-</topicref>
-<topicref href="GUID-653A92FB-F752-5210-8C98-9F107D74DC67.dita" id="GUID-547443E0-2600-4E2F-A1A6-ACFD20DF600D">
-</topicref>
-<topicref href="GUID-CBBE4BF7-B6E7-5607-95DC-F1C7D3711BD0.dita" id="GUID-FEDE9A08-72A0-4EB2-96EC-19D504CB7514">
-</topicref>
-<topicref href="GUID-E76DBFC7-E15E-5AB6-AE8D-72CA1808DBA2.dita" id="GUID-4D2341A2-EF51-4DD5-B24C-E1D818482696">
-</topicref>
-<topicref href="GUID-0DA1FA9A-0F61-580D-922F-02B33CEA09D6.dita" id="GUID-D8CDDA54-662E-4CC4-BFCB-814ADDC54B8F">
-</topicref>
-<topicref href="GUID-4263CC05-EF13-5A2C-875C-72F3C2F6AB57.dita" id="GUID-E4B9952B-A587-4440-B622-299437FF9E88">
-</topicref>
-<topicref href="GUID-DF4C1226-E4D1-5701-BA55-8701754129D1.dita" id="GUID-9031857F-501E-4AC1-AA74-255F07367B37">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1DF2D6EC-C445-5A0C-80C4-9C46AAA6EE44.dita" id="GUID-83309CD0-717E-4E5C-8219-F4DD209FF189">
-<topicref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita" id="GUID-6499589A-760B-4E94-A120-94C4C3EBA685">
-<topicref href="GUID-21909CF6-B810-599A-A486-01BA1BF21F35.dita" id="GUID-48D2EFA0-FD03-49A3-B94B-3584127D8636">
-</topicref>
-<topicref href="GUID-6C8F9EF9-F323-5423-B73E-4E26BCD2737E.dita" id="GUID-BADF2358-A5F4-4BF4-9D27-A31CB945F9CB">
-</topicref>
-<topicref href="GUID-232E2D33-8BC1-5CC3-A4DF-2C99900E1083.dita" id="GUID-30FA1CBD-DC08-4E02-B804-947BA1546580">
-</topicref>
-<topicref href="GUID-70B9796F-8CF3-5DC4-93B4-0B1FED936169.dita" id="GUID-9BCDFB52-B734-4739-A04D-C967A1628B1C">
-</topicref>
-<topicref href="GUID-385BB488-5C32-58A7-8401-F3F0A0707DD9.dita" id="GUID-B20C0FE9-162B-455B-B260-7440D25EED1B">
-</topicref>
-<topicref href="GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita" id="GUID-789D68FA-83BE-4D0B-94EC-C0FC12E81168">
-</topicref>
-<topicref href="GUID-0C71B9C6-0782-5667-932A-07D770748DCE.dita" id="GUID-688060ED-A778-4781-9CC6-8AAA8A4331AE">
-</topicref>
-</topicref>
-<topicref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita" id="GUID-ECF0F553-D848-4D6C-A9BE-807D9D14FA02">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E7BB0B0F-FC27-5428-81C0-1AB9CA426571.dita" id="GUID-4C1F0B14-4BAC-475D-993B-4A26762FF71A">
-<topicref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita" id="GUID-06EA6506-2FF7-4018-AC37-739895312572">
-</topicref>
-<topicref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita" id="GUID-57B47F0F-3838-454F-8D14-9BA62B3FC095">
-</topicref>
-</topicref>
-<topicref href="GUID-63816E09-46C7-503A-ADA0-E350C7ACF3C4.dita" id="GUID-3B777C30-4E0D-4479-99BF-EA21D7E0CD83">
-<topicref href="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita" id="GUID-318CD0CA-2572-4B5A-BE15-54C4A7873D43">
-</topicref>
-<topicref href="GUID-91F971B6-CA7A-5FE4-B10A-6CADC935C3B4.dita" id="GUID-FB82B7BE-980D-48EF-9686-4D6D4503B987">
-<topicref href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita" id="GUID-CCEEE71B-2F88-4C8A-8C11-A8281422B721">
-</topicref>
-</topicref>
-<topicref href="GUID-F7598A84-9736-5310-AAA4-5BCC4BE46C16.dita" id="GUID-2EF1F69D-A865-457B-A59F-128713A50320">
-</topicref>
-<topicref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita" id="GUID-A9111649-A720-4D23-B614-A1655DFE0656">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-BE8931C9-15E8-4F70-B238-C644EFC5BE9A">
-<topicref href="GUID-1DE5CDAD-8D71-5384-9E98-5665D5A4C792.dita" id="GUID-3B581533-5C58-450A-B3DD-AF5487478BFB">
-<topicref href="GUID-E2252589-DCFB-5272-8FB3-701712D7F417.dita" id="GUID-F13B1737-9CA9-423B-9B38-856EF278E424">
-</topicref>
-<topicref href="GUID-288C200C-760D-52A2-8FC7-E179E5FB1A2A.dita" id="GUID-237D609C-E11F-4BE9-BF14-2F0303FDFAD1">
-<topicref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita"
-id="GUID-A3F77752-F334-486D-8BCF-E3BF2A1FF184"></topicref>
-<topicref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita"
-id="GUID-29008AD2-2BED-43E7-9EF5-C610C7E33D2D"></topicref>
-<topicref href="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1.dita"
-id="GUID-DBBA870F-C64E-46F8-9B55-954561223493"></topicref>
-<topicref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita"
-id="GUID-DBC6A32D-89A8-4E09-ABD2-9E6696256533"></topicref>
-<topicref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita"
-id="GUID-457F3033-F0FB-4ECE-A824-CA4717484C47"></topicref>
-<topicref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita"
-id="GUID-658B7316-8D37-4BD1-8F8B-03DE5BDC26A5"></topicref>
-<topicref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita"
-id="GUID-4CF3E6CF-47C2-44B4-B04E-B928B3DFEC7A"></topicref>
-<topicref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita"
-id="GUID-37939CEE-86EB-4CE9-B83B-D87A04452B62"></topicref>
-<topicref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita"
-id="GUID-4E7FA76D-0EA0-44D2-9A9B-9BDDE069141C"></topicref>
-</topicref>
-<topicref href="GUID-3E341F9F-2635-589B-A59A-B999FE7DF9BE.dita" id="GUID-7C96BEDC-23C0-4C9B-B5E3-57D95E3EE77E">
-<topicref href="GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3.dita" id="GUID-2C25BEC9-7B7C-4F0A-A238-CE612B7DF539">
-</topicref>
-<topicref href="GUID-98499337-5CB4-5A9C-907A-95FF57775983.dita" id="GUID-ED44FAAA-D7B7-48FD-85B2-2A4DC3E8CEB8">
-<topicref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita" id="GUID-60443376-86C8-4DD4-A8A5-81B8AF24FD02">
-</topicref>
-<topicref href="GUID-9E00A9B2-9656-5569-B164-B7EFD2B2A9F6.dita" id="GUID-6D21E663-4F30-4E5A-B63B-4A393745AE09">
-<topicref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita"
-id="GUID-701AEE06-E043-4A68-AAD8-FBAD0B4D485D"></topicref>
-</topicref>
-<topicref href="GUID-95EA435B-918A-4B68-8983-1D22B7840BA7.dita" id="GUID-9E1C0CC6-8C15-4C20-B93E-C59C6A0E51F5">
-<topicref href="GUID-B57D7C53-DFDB-4590-8227-EA251D1ABBC7.dita" id="GUID-3300E404-7F3C-4A0C-A902-2DB71EF5EFE5">
-</topicref>
-<topicref chunk="by-topic" href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita"
-id="GUID-1B66B4FA-278C-4A59-94FA-0F9EA8206253"></topicref>
-<topicref href="GUID-E9B97347-D703-4758-A5CE-423A6CB4E474.dita" id="GUID-41585ABF-4EF6-4DA7-B65F-44D2D5DEC3D3">
-</topicref>
-<topicref chunk="by-topic" href="GUID-330FBB90-E622-4FD1-A189-64656F68A10D.dita"
-id="GUID-6A9B7062-8508-49F0-96B1-928E20113708"></topicref>
-<topicref chunk="by-topic" href="GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita"
-id="GUID-212FD485-CF2D-4A66-A86F-77D9F92BA175"></topicref>
-<topicref chunk="by-topic" href="GUID-B340078C-9EFC-4017-8F43-B0BBCE4935DC.dita"
-id="GUID-FAD4B410-0BC8-4C97-87B7-4F219B4FDDEB"></topicref>
-<topicref chunk="by-topic" href="GUID-795ED4C0-7C82-41DE-AD5B-AC69A426E2A5.dita"
-id="GUID-53FDADBF-D958-41A5-8592-8F324EAB1033"></topicref>
-<topicref chunk="by-topic" href="GUID-A257C677-7155-413A-AC5C-1DDF71DF1187.dita"
-id="GUID-4673B0B0-F2F6-4272-98D9-76F385A34503"></topicref>
-</topicref>
-<topicref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita" id="GUID-E7312963-637B-4773-A855-75B709BC3231">
-<topicref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita" id="GUID-63A6E7A7-A8DA-4005-AFC2-A050DB41A21B">
-</topicref>
-<topicref href="GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita" id="GUID-0D53D685-FDA6-4AF5-88CE-78338F6C64AA">
-<topicref href="GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita" id="GUID-F848A8B3-C652-4165-8FD4-F37C43DC4BBD">
-</topicref>
-<topicref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita" id="GUID-B2C87B3B-8742-4BF5-AC50-0919C81CD6AD">
-</topicref>
-<topicref href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita" id="GUID-136BB87E-CD20-432A-AA5C-783D7E825EEC">
-</topicref>
-<topicref href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita" id="GUID-73F349E1-620F-4AE1-A81A-EAECAE21C351">
-</topicref>
-<topicref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita" id="GUID-B02DBE2C-1BCA-48C4-83E4-D4CF9D24306C">
-</topicref>
-<topicref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita" id="GUID-1E07BF50-9479-4552-B0B4-26DAFF6027F6">
-</topicref>
-<topicref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita" id="GUID-60F71422-67E3-4E4D-90BA-D4BC1E611BAB">
-</topicref>
-<topicref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita" id="GUID-6F63747C-C009-4DF5-9D0E-4AF567D7D161">
-</topicref>
-<topicref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita" id="GUID-26DC3CC2-CE23-4A25-81EF-B2E5B41C4C50">
-</topicref>
-<topicref href="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita" id="GUID-BFB7A52E-3FDB-4DB0-BF12-1A645772D5BA">
-</topicref>
-<topicref href="GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884.dita" id="GUID-3F39087F-1F0C-4CF2-9AFF-C31500D93DC6">
-</topicref>
-<topicref href="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita" id="GUID-0AC38E4F-18CB-40D5-BC46-03FB53F55E9E">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-13574CBC-893F-5756-825F-1E14A85E9C90.dita" id="GUID-BBC57BDC-BA17-44D5-91F7-8FBA742570E9">
-<topicref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita" id="GUID-BD994E5C-EACB-4DA0-8660-3972AE13FD2A">
-</topicref>
-<topicref href="GUID-C82A6822-DDC5-5372-A830-6BCF517F1526.dita" id="GUID-D5F2A4DC-60A4-4FCA-9D63-B7BD07E696F1">
-<topicref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita" id="GUID-9E2BD77A-5D50-42E0-BE51-BF3AD5667FF7">
-</topicref>
-<topicref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita" id="GUID-79FB569B-207C-489F-8618-47AC05EE240C">
-</topicref>
-<topicref href="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita" id="GUID-44736007-424A-41E5-8599-DF5EDCC4592D">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita" id="GUID-534FFE4E-713E-4725-AB85-DBEA57FEF099">
-<topicref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita" id="GUID-6E877265-FCCA-4471-8B70-8318B0A220BF">
-</topicref>
-<topicref href="GUID-39958349-2761-5532-A87F-EABB9EB68D10.dita" id="GUID-CFE50AD3-3809-4690-BC0C-79993A802C6F">
-<topicref href="GUID-2CC30ECA-053D-57FF-8E9D-8FA733A031C9.dita" id="GUID-EC8A6790-6FDF-4F4B-B7AD-EF731B5EEA5C">
-</topicref>
-<topicref href="GUID-BFE8B989-8B73-5D3E-B5F4-13AC016C122C.dita" id="GUID-3B2627E0-1B88-46F4-B36C-589B7AA6F9B3">
-</topicref>
-<topicref href="GUID-2A6AAD9C-BB99-5145-B4A2-FCEF6BECCFD4.dita" id="GUID-9F245A55-213E-425C-826C-E1C0B6BE7FB7">
-</topicref>
-<topicref href="GUID-AAA27EE5-E323-5822-A339-690316C2D9B4.dita" id="GUID-0BCEE44C-1AC3-4BAD-9776-A3CF8F09DCA1">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-5C678281-46F3-53C8-8D5A-93E51EC9E3CF.dita" id="GUID-F635D780-FAA9-4C15-89EC-4F8A76FEEEAD">
-<topicref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita" id="GUID-BE405139-B185-4AAF-A6E8-EC253EE0ACA8">
-</topicref>
-<topicref href="GUID-988CE67F-F5EB-52DB-95B8-A0AB48307EE0.dita" id="GUID-087EBA52-A004-4D01-8FC5-B49E747C8608">
-<topicref href="GUID-C519E523-E908-5185-949C-C1FAC0BAF0D9.dita" id="GUID-0F5171DF-69F5-45E3-A725-110516575CB4">
-</topicref>
-<topicref href="GUID-5A5DDB8C-1E70-5B63-96F1-7ABBFA568866.dita" id="GUID-4F7C0326-EFA7-4FFF-BEB5-485B64C12E96">
-</topicref>
-<topicref href="GUID-7022455A-E738-574E-897E-33243482D69A.dita" id="GUID-9693F0A2-9F74-43E7-8303-2D04C1FA2D81">
-</topicref>
-<topicref href="GUID-7F6A463C-2D33-5B6D-9394-DCB55FEEB5A3.dita" id="GUID-298AC3DC-519B-45DA-8A20-6D7031E8F128">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-9331EE17-1831-5D9F-A090-438E3D6D1375.dita" id="GUID-608058C0-9D70-4ED6-A472-FAE1FFAE1758">
-<topicref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita" id="GUID-7F78AAF2-5005-4554-A30F-7E378C3AA281">
-</topicref>
-<topicref href="GUID-28604BBC-1C43-56F3-8667-DAF869F38BDB.dita" id="GUID-5AC0E577-0AE9-4E81-B634-0C543006BD29">
-<topicref href="GUID-10E19876-85CA-5D45-854B-1F2C5A45A333.dita" id="GUID-E71F0BC6-7D15-46C6-B69A-440B42D06BF4">
-</topicref>
-<topicref href="GUID-8B7ABDB0-B016-5106-824E-D823F1D2959F.dita" id="GUID-0961162E-1E1F-44CA-AB38-E739B9CEA736">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C87EED5E-8000-5F73-875D-5C82117339A2.dita" id="GUID-BB435A13-122C-46D7-A13C-7B3560B1719D">
-<topicref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita" id="GUID-80FCAA6F-3830-4F7B-9E82-852C02AEB5AB">
-</topicref>
-<topicref href="GUID-33488ED1-32F6-5D39-B264-5CDE3FEDFD2B.dita" id="GUID-F22AE227-15D0-439B-98BB-620AD547FCD8">
-<topicref href="GUID-FD530B98-B17D-54CD-A86E-B6FFF701D19C.dita" id="GUID-1EFB8713-42F3-4AF6-86C4-20D7A3542CEA">
-</topicref>
-<topicref href="GUID-F89F92BA-763D-5531-BF74-C6BF36A589CD.dita" id="GUID-3BC2CD43-A6AD-4807-A7BB-534BDAAE1716">
-</topicref>
-<topicref href="GUID-1C0707F8-9E2A-58C6-997B-23B57C7EFA93.dita" id="GUID-CEED2BEE-147C-4EED-99AC-0FB7802C72DE">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B4C8B3D8-0272-577D-A669-C0AE84D035B4.dita" id="GUID-41742A44-DEFB-427F-9A3C-082FF5F2883D">
-<topicref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita" id="GUID-BB9BA57F-89FF-4FBE-864B-A9BC3460DA66">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-7DB86BF1-0485-5CBA-9554-4C474B0EC1FB.dita" id="GUID-3EE1462D-A1C5-44AE-B650-35AE3509D95F">
-<topicref href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita" id="GUID-5B4A0710-3F35-40E6-8ACE-8BD9D504CE5D">
-</topicref>
-<topicref href="GUID-74D3B534-B209-5884-B38F-DEDFB23B64CF.dita" id="GUID-A7B9FD45-E7E9-453A-9081-0F75DE8CB6FF">
-<topicref href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita" id="GUID-0804D04D-54DF-4EEF-833D-7706187CCC25">
-</topicref>
-</topicref>
-<topicref href="GUID-ABD741AE-7F66-564C-895C-6E4682308CEA.dita" id="GUID-FCFEC131-6178-48CF-B793-69116FC1E7D3">
-<topicref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita"
-id="GUID-DA61C106-34D4-47DD-B416-EDCC1A1C9DE2"></topicref>
-<topicref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita"
-id="GUID-7FEAA87C-A0C2-4191-AA9F-9DAFB6410B37"></topicref>
-<topicref href="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1.dita"
-id="GUID-6F905712-F6B5-494D-A682-D3602A889B29"></topicref>
-</topicref>
-<topicref href="GUID-9DFB1340-FA1E-530E-9372-DB6509CECA2B.dita" id="GUID-1F888C05-54B6-47A2-8C5E-8AC23E2A70E2">
-<topicref href="GUID-C0B39D73-0A3C-5289-A774-7BE590037404.dita" id="GUID-ED1EB0E7-4841-49D2-B055-C619BE9423EB">
-</topicref>
-<topicref href="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita" id="GUID-DE1B8444-3300-4741-8C81-FC6D977CE51D">
-</topicref>
-<topicref href="GUID-E6692CDA-9E24-57AE-9BC2-14D68D6480C3.dita" id="GUID-520A8F80-CBD8-4F77-88D8-393A496B4F82">
-</topicref>
-</topicref>
-<topicref href="GUID-9C371845-9F5D-56BB-BE16-ED60139D02AF.dita" id="GUID-916475C5-E4DC-4D09-BAC5-7214A0F804F4">
-<topicref href="GUID-49882982-0DA2-5021-BAC8-7DC77BDFD27C.dita" id="GUID-DC86F80F-F4A9-4A44-BFC4-C660A6F00D39">
-</topicref>
-</topicref>
-<topicref href="GUID-B5509C73-9A72-5E4D-B9BB-733B10EF842E.dita" id="GUID-D3149BE8-5463-474D-BBA3-5EDF4680483C">
-<topicref href="GUID-FCEE832C-5D8D-5177-A86A-E10015EF77DC.dita" id="GUID-9028462B-F11F-45A0-B346-73BBAE0F42E2">
-</topicref>
-<topicref href="GUID-1FC88405-616F-5ED1-A136-9FE1E9226F0E.dita" id="GUID-35F7A54E-25F1-41E9-BF49-3F598C62AC74">
-</topicref>
-</topicref>
-<topicref href="GUID-BC9001F9-BA41-5916-B2B2-175E37D6F880.dita" id="GUID-C3FBF988-85B9-4935-920A-0F4CABD7EC8F">
-<topicref href="GUID-257E223F-1612-5978-982A-38DE8E08211C.dita" id="GUID-98F4BB50-D351-4FDB-AF78-81D412C71C01">
-</topicref>
-</topicref>
-<topicref href="GUID-A68D1F27-FE7E-503E-B5B6-7BD555B88558.dita" id="GUID-149BA023-FEEA-4B7B-91C1-70EEB00CDE61">
-<topicref href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita" id="GUID-6BDC4850-F14E-4C8E-A2CC-58060E6970AD">
-</topicref>
-<topicref href="GUID-786A8188-AB4D-5C65-8BEF-50E45FDBE9A5.dita" id="GUID-11C861C9-E27D-4134-9B12-5088956C9AD2">
-<topicref href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita" id="GUID-2657A7B4-3A19-4182-9B60-A133CFF5AC15">
-</topicref>
-<topicref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita" id="GUID-023F3498-2D8E-462B-9A2B-B9D19C4E60A7">
-</topicref>
-<topicref href="GUID-A578ECBB-28C5-51C6-A040-4AE65AD38C07.dita" id="GUID-727D3D33-0D52-45F6-B41B-156439B57A10">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C11D2D1A-F901-5439-BEAF-37E4BDE13EF7.dita" id="GUID-D4964E6B-3FD5-4777-8A08-F3B8BDC98FF8">
-<topicref href="GUID-27220B08-B2E7-5106-9BCC-C86938D3E37D.dita" id="GUID-DB5C648B-ECC7-4CA9-9285-3E6E74EE3AB7">
-</topicref>
-</topicref>
-<topicref href="GUID-042868E6-88BF-5797-BB53-8E34283DCF16.dita" id="GUID-1833E10C-CFAC-4318-B917-62EE0DBF6504">
-<topicref href="GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C.dita" id="GUID-83D4FC75-D926-4E4D-A8F5-8E8A93F8AB55">
-</topicref>
-<topicref href="GUID-AD6CF225-CFF9-5F76-AA00-3535EA7D6FF1.dita" id="GUID-8BF52E9A-8EBA-4AA4-820F-1D640F6AB422">
-<topicref href="GUID-03866ADB-5916-5B31-BCF0-44F94E12B740.dita" id="GUID-E64190A6-6957-44C2-9278-C48B6C5D9B66">
-<topicref href="GUID-07CBDD99-CA8F-5CF9-B957-933C36D47195.dita" id="GUID-AF71B400-05F6-4D2C-BA89-11961636D821">
-<topicref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita" id="GUID-AAC58E90-EFCB-47C5-94D3-9FC4DA853F4D">
-</topicref>
-</topicref>
-<topicref href="GUID-AFAB4B17-1E9B-562D-AC36-48C4B0FFDD50.dita" id="GUID-8759BBA3-762F-45BB-AC3A-33C8D1D6B9FF">
-<topicref href="GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE.dita" id="GUID-6B32FBBB-C703-4FF4-9010-162FEEFED18C">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-F221B15F-B5DE-516F-8FB0-75C1971DB3AF.dita" id="GUID-3DA314AF-1CA6-4EAD-BD2F-FDEC36856D31">
-</topicref>
-</topicref>
-<topicref href="GUID-26FD66B4-A291-5DAD-991D-40AB5316F30C.dita" id="GUID-45D23EAF-15A4-4A17-8542-E690385B42C4">
-</topicref>
-</topicref>
-<topicref href="GUID-53C0A250-287E-57E1-80BC-F66F9F9DD478.dita" id="GUID-8358C525-1B9C-42C4-B95A-EBF1852BB6CE">
-<topicref href="GUID-6914EA3D-6FAB-52DD-A159-990F4ED892A2.dita" id="GUID-FDE892AD-2799-4C28-B0F7-608DFC748BB5">
-</topicref>
-</topicref>
-<topicref href="GUID-419BD5DC-6264-59FB-8EF4-E5652440A060.dita" id="GUID-8F9A100C-00E9-4022-9B50-5D5FA695F128">
-<topicref href="GUID-636879DE-0D1B-5CB7-9552-5F38A89B3143.dita" id="GUID-250F3D27-66E1-40DE-8DDF-B5ABD2F2AD84">
-</topicref>
-</topicref>
-<topicref href="GUID-1708D9F8-1277-59B9-8130-BBEFFFF1F481.dita" id="GUID-BA5CE647-5559-4D93-A3A0-95BD7C21FF11">
-<topicref href="GUID-08304A3F-4331-5936-984E-74A1F35905B8.dita" id="GUID-AC6246A2-9618-4D2E-A68D-0F18610FDE13">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita" id="GUID-1F8A7B31-FC7E-487E-AFD9-2CC79E09C92E">
-<topicref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita" id="GUID-43BDF23F-FC5B-4813-BB63-469ECBEDC870">
-</topicref>
-<topicref href="GUID-923C50A1-813A-5B51-A630-FACFB8B35B3B.dita" id="GUID-021C767C-3CEC-47F6-8BC6-B7E0E8005D9F">
-<topicref href="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita" id="GUID-A77EE1D3-07C9-4386-AEFB-00F5C402B28A">
-</topicref>
-</topicref>
-<topicref href="GUID-48ED7013-B1B7-5E86-AC09-599C4499191D.dita" id="GUID-0F2250B0-12E1-4978-82D1-8561B9EA266D">
-<topicref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita"
-id="GUID-59EEC773-D0D0-4B38-9A2E-17490CC32B69"></topicref>
-<topicref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita"
-id="GUID-3F2C6ECC-4A01-4737-8AA9-7D7CD100F48D"></topicref>
-<topicref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita"
-id="GUID-5FD5B677-FB2A-4E4A-A88D-E0D53D48136D"></topicref>
-<topicref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita"
-id="GUID-F4516103-3C5B-4CEB-B4B4-7B5FF22D4226"></topicref>
-<topicref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita"
-id="GUID-C6C295E4-D622-4B50-BC71-6D1717966054"></topicref>
-</topicref>
-<topicref href="GUID-6CEFD500-F00F-40AD-AE38-BCAA7FF394A3.dita" id="GUID-C60D4B7A-CD4B-402D-AAFF-475B22528168">
-<topicref href="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita" id="GUID-A35D7015-BEBC-41F9-ABE3-39084E60BCA2">
-</topicref>
-</topicref>
-<topicref href="GUID-EB15EC74-BCCE-591D-8308-210C22CDDDDA.dita" id="GUID-238CD65A-CC76-4A40-A04B-6333F5FF240B">
-<topicref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita" id="GUID-E919ECD1-6A6A-4BF2-92E3-F2F8559EAA00">
-</topicref>
-<topicref href="GUID-03D132BE-5B90-50E1-88D3-D66289C02444.dita" id="GUID-FA17AAB7-80B8-44DC-8654-1FC7CE689CF0">
-<topicref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita" id="GUID-04DD80D3-8F85-41D5-B5EC-DA6A6FB32A05">
-</topicref>
-<topicref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita" id="GUID-880874A5-452A-4C8A-9C9B-3F05866DC3F7">
-</topicref>
-<topicref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita" id="GUID-C4D0CDB1-810D-4BAE-B8B9-5BCDE3EA2FA4">
-</topicref>
-<topicref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita" id="GUID-A1C555C8-8D62-4DD5-B8D2-C2FC272DFCAB">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C6E3A784-EE17-5A3C-9D81-9662114FD923.dita" id="GUID-8D1A9C7A-1B81-445B-8873-135D05CBF0B5">
-<topicref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita" id="GUID-1C662EEF-B976-4D65-ADDA-ACE386780EFC">
-</topicref>
-<topicref href="GUID-C2BF3044-CC37-554D-9496-C7B18AE94561.dita" id="GUID-4426B14B-5696-4B49-9F09-04AA9248F59F">
-<topicref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita" id="GUID-028315CB-53EC-4106-A92E-60B7D0445264">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-46E12D78-5F1F-55B8-B7E8-1B4862CC70E8.dita" id="GUID-D03A82F7-CFB1-49D8-A661-4E3113C1855B">
-<topicref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita" id="GUID-423B7C5A-65AF-49FA-A42E-BCFBE8C7193D">
-</topicref>
-<topicref href="GUID-4D94A4B8-392D-5657-BD71-F1EA54318C47.dita" id="GUID-7C58CD8E-8C08-43CA-98B1-BA322E584369">
-<topicref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita" id="GUID-F5FC03E3-1C9A-499D-BCC1-E904423C4F12">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-DCA8273C-84EC-503B-9776-F141113B5CA7.dita" id="GUID-1725A80F-F588-4A3D-9727-3C38B6247612">
-<topicref href="GUID-ED109E7B-EFCA-59B9-92D9-EBFBC0F8BF21.dita" id="GUID-CE37A7E6-3773-4320-ABA8-9052BC98DE3D">
-</topicref>
-</topicref>
-<topicref href="GUID-D6BED357-F10B-5C00-9F8E-2CA3A584C4E1.dita" id="GUID-0B8767CE-61EF-4542-B995-990B271F23D1">
-<topicref href="GUID-E92BEA67-CF92-5E0E-8B0D-F918178CE9E8.dita" id="GUID-F25AB57F-4646-404B-BB5B-9F32B394F57A">
-</topicref>
-</topicref>
-<topicref href="GUID-74FB4D67-ECCC-51DE-9F9F-6D3B43E01179.dita" id="GUID-2F1BD2EF-0179-4A93-9FD3-F5C91349546F">
-<topicref href="GUID-61E219A3-7D9D-5AAA-B6B3-61F0749E12B3.dita" id="GUID-DECAF23A-2BD3-4B31-A383-94B6ABE303D2">
-</topicref>
-<topicref href="GUID-5EC09CBB-9EDC-549C-9C4D-036261BE8A4B.dita" id="GUID-6D85D1E9-6E6E-4B7F-8745-A42787C890B9">
-<topicref href="GUID-A9AAADAF-12B1-5D0C-B8B3-6E7FDB9823DC.dita" id="GUID-123A5AF2-76E9-4847-9C09-190EF59DC224">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita" id="GUID-992A9BF4-9F00-44AC-9767-DE060D134511">
-<topicref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita" id="GUID-F1CDA4F4-048A-462E-9DD1-8F2C86F7F3FC">
-</topicref>
-<topicref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita" id="GUID-425BEF3F-29EE-4F96-8576-963EB25727B8">
-<topicref href="GUID-3F0856D9-7B58-5519-9B26-97F1A035E21D.dita" id="GUID-02D68205-DE05-4A42-865F-FA8E018556FB">
-<topicref href="GUID-172F46C1-6066-57FA-A815-5AC23ACE159D.dita" id="GUID-14AED479-D7C8-45EA-9E39-672605639F3C">
-</topicref>
-<topicref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita" id="GUID-C0D0CF44-2889-4B10-AD3C-BA26FCF26019">
-</topicref>
-<topicref href="GUID-733B9695-0C7C-5637-9025-6CE3BAA1A23E.dita" id="GUID-3F183426-1ACE-4500-8378-DE0E1B161983">
-</topicref>
-<topicref href="GUID-FE7DE542-3FD4-56D2-B281-C670EF1C4FEB.dita" id="GUID-6C8659D5-53EC-41BC-9DF8-2807EFB74E8E">
-</topicref>
-<topicref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita" id="GUID-6644A007-D684-4902-8DC7-CB541A7DA2A7">
-</topicref>
-<topicref href="GUID-70B3881F-9532-5F1D-B210-99A15DB93FC2.dita" id="GUID-844F5068-9D74-49CA-9C9D-79DE00F8B567">
-</topicref>
-<topicref href="GUID-469377FB-AAE8-5245-A8E1-469C65AFE5C5.dita" id="GUID-800D54D0-B2DE-47A1-BAAB-BD8EEB8C58C8">
-</topicref>
-<topicref href="GUID-F13C7D36-E4AB-57F1-87A1-EB83AA2258DF.dita" id="GUID-9B992DEE-8C2A-4225-A47F-B28F4DC263C7">
-</topicref>
-</topicref>
-<topicref href="GUID-B54E84A4-2F81-57C2-BEDC-48C6B3F6A023.dita" id="GUID-3930C922-80C7-413A-B0B9-8D1FDFB60B8A">
-<topicref href="GUID-D38456FB-BAA2-5473-B669-F44D5627155B.dita" id="GUID-51606780-2BDD-4AD3-92F7-E1CFFE0EF7BC">
-</topicref>
-</topicref>
-<topicref href="GUID-37934768-50D0-52A8-B594-B47D5E27722B.dita" id="GUID-EBC470BA-A180-4769-AEA0-9B4DA986326E">
-<topicref href="GUID-688C515E-3D1B-51BB-A776-A246FA232061.dita" id="GUID-7A7484B5-95DB-4C59-87B6-47A3A3DE7899">
-</topicref>
-<topicref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita" id="GUID-447AA75E-5410-463C-B6FE-57BC8D829A26">
-</topicref>
-<topicref href="GUID-ED700A4A-3BBF-5048-92CB-E3677A0FD09F.dita" id="GUID-0D43A399-C00E-4C4F-B2BF-A93E4B520837">
-</topicref>
-<topicref href="GUID-C08BBBAD-3605-53E3-A94F-ECCFFB80E1DD.dita" id="GUID-B6E5575A-9406-4ACB-96B9-B9FB7B5C1190">
-</topicref>
-<topicref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita" id="GUID-54654540-7067-4A4F-9CC9-FA69631B0B68">
-</topicref>
-<topicref href="GUID-2D20B6DF-BE02-50CF-8E9F-14E3402EF952.dita" id="GUID-926B6876-17C7-4D63-8377-BB4421383D6F">
-</topicref>
-<topicref href="GUID-44EDB476-33E2-5D91-8CC2-A04369AACCA4.dita" id="GUID-EA29073D-FC6E-4E3D-ABC1-AEC5AEB7FA55">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-17273087-B962-5E8A-8715-055C8BF34A5D.dita" id="GUID-7DA8AF9B-9888-433E-85A1-CABFF6259C5D">
-<topicref href="GUID-02659624-4C27-573C-BE2E-0250D860BEA3.dita" id="GUID-0285620A-50CF-4EE8-9110-D24E42DE576D">
-</topicref>
-<topicref href="GUID-152BF5C3-CE32-5174-A043-1B2D5D8168C3.dita" id="GUID-BFEC55BD-F7BF-4A0A-A329-06907372C258">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-1AFD6B2D-C6CD-5BBF-A968-F68CCDFDA927.dita" id="GUID-D290B917-E49B-4B5E-8D0A-6794C8D1D850">
-<topicref href="GUID-DDF4EA2E-59D6-5FE0-9C61-C5A9CBD8D4FE.dita" id="GUID-BA7EBE25-33F3-4816-9F61-8AA229400CA3">
-</topicref>
-<topicref href="GUID-B60A4401-56C0-5C70-BAA9-020321FEDCBB.dita" id="GUID-59D5F92B-10A3-4087-9BD7-ECAC658E3081">
-<topicref href="GUID-AAAC7887-93A8-5F8D-98D4-44FAD26C228A.dita" id="GUID-742BFBC1-75AA-4307-964B-3A127AD3C477">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-01103A66-532B-54ED-9D4D-39B81327E783.dita" id="GUID-FDAEEA67-DBDD-43F3-913D-19A59158D522">
-<topicref href="GUID-9782BF84-B91C-5D7C-BFAD-6B7E6A9ADD02.dita" id="GUID-0D418FC6-806D-4FA0-BC64-9916C7F97FA4">
-</topicref>
-<topicref href="GUID-B0F7EFB9-3502-50F7-BBE1-FD0DD7A360F8.dita" id="GUID-8215A5D6-2559-4457-8452-B66DDF5D3B6E">
-<topicref href="GUID-3CA473CB-E79C-5B32-8B5B-F222B3DDEF3B.dita" id="GUID-E302A683-5D86-4D41-A340-5F49DAFDEE3D">
-</topicref>
-<topicref href="GUID-3AD215CA-AF7D-561C-9D9E-FAFB50F1E37F.dita" id="GUID-B84CBD91-199B-4269-AA8E-DB50EFDCE80F">
-<topicref href="GUID-B454C08F-0531-5789-ABFA-171D3C2319D9.dita" id="GUID-DCD6FD1E-33AE-4265-A8CB-4C017EEC024B">
-</topicref>
-</topicref>
-<topicref href="GUID-9C251352-B5CD-5BD2-B420-E14E40E137B1.dita" id="GUID-6923FDD6-D8CE-4A8E-A2B2-2EFD8C8952A1">
-<topicref href="GUID-DC4BF172-CDD3-5351-BBA1-550DEC1706BD.dita" id="GUID-B0C3C6CF-40E8-48B2-93A1-A63AFAD22244">
-</topicref>
-</topicref>
-<topicref href="GUID-EC861957-FF3A-5C3E-8713-145DD505996F.dita" id="GUID-9972DAE9-BDDD-4134-863A-C63A88FFA5F0">
-<topicref href="GUID-F684F363-B361-5868-9195-41305428AB2D.dita" id="GUID-5E17CC21-41EA-4003-BEF0-64ED46C49959">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-33FEE8F8-CD21-52EA-8EE2-502B12B3C463.dita" id="GUID-28DC3F5D-9CE4-45B3-8E68-5AC2410643C2">
-<topicref href="GUID-CC96F41D-5AC9-5D11-BD4D-073548EA5CC8.dita" id="GUID-1688BE18-0114-4405-81A7-0936EED8CBE2">
-</topicref>
-<topicref href="GUID-842D8124-554F-5D89-9E20-8B48EA539D2F.dita" id="GUID-6E78A965-89A3-4C66-992D-24479A32DC09">
-<topicref href="GUID-D9D2A600-89C6-5D82-8BC0-2C60D8F6517A.dita" id="GUID-38FEB302-83BD-4FD1-B464-9EEB293D9D6D">
-</topicref>
-<topicref href="GUID-FB2E1BFB-A06C-58D8-B175-1E7B10BCCB72.dita" id="GUID-3B3C5AF6-5FE7-47C0-BD07-9A38C3150A13">
-<topicref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita" id="GUID-0CEF1B1D-5EC5-4ACA-B9B4-F3A24214FB68">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-97F83011-BE3C-512C-9599-028CBB92BD51.dita" id="GUID-73B60703-65EA-4E2B-9025-77483CBD9F50">
-<topicref href="GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438.dita" id="GUID-D68192D5-9EED-4D51-BD77-DA1EACB275F1">
-</topicref>
-<topicref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita" id="GUID-C0C7711A-8039-4B2F-B961-8A625ECC41AE">
-<topicref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita" id="GUID-519916BF-F5CD-45FF-A0B7-6E6D3D25E1C8">
-</topicref>
-<topicref href="GUID-7261FEC6-5AA6-555C-AB72-2173BD3F1FA5.dita" id="GUID-520CD795-E5FC-45A6-8B6F-F0556B82051C">
-</topicref>
-<topicref href="GUID-BDC081CA-FB0D-5F56-8C1B-F7AC9DD6875D.dita" id="GUID-CDFDBA92-37FA-45EA-B322-F8C751FDA3B7">
-</topicref>
-<topicref href="GUID-55B9AF74-DF38-5490-BD3C-908A2FE362E6.dita" id="GUID-1A3FA466-2DCA-4920-9D59-D780D0B87193">
-</topicref>
-<topicref href="GUID-30FDDA7A-FF46-51A5-B73A-277C9FF69FFD.dita" id="GUID-DD8ADA52-3326-4262-BA58-B0F5B8BD58A3">
-</topicref>
-<topicref href="GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98.dita" id="GUID-93419275-E01F-4017-B4FA-6A77271FD162">
-</topicref>
-<topicref href="GUID-B998B8FC-3DC3-57B5-A4E6-C4D903B4ACF9.dita" id="GUID-450F6897-397E-42AB-91E7-8C821834E168">
-</topicref>
-<topicref href="GUID-21E26B07-7E4D-50E0-97BE-C05CCD88B89F.dita" id="GUID-8CECA2FC-67C5-4A8E-AF87-40A41CEEAA9E">
-</topicref>
-</topicref>
-<topicref href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita" id="GUID-D7799F62-6251-4FE0-B72F-4FE0E73E5F25">
-<topicref href="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita" id="GUID-125B5CFA-BAE9-47C8-8DAC-7D32741682DF">
-</topicref>
-<topicref href="GUID-354240A8-2DDD-5181-9A36-9A054D239B62.dita" id="GUID-F6988327-4202-4632-8876-FAF9B2A2E1FE">
-</topicref>
-<topicref href="GUID-87C81097-A892-5E45-A3CC-BE2C65A2FA70.dita" id="GUID-12205ED7-1B2F-4D6D-86D1-B16E7F550943">
-<topicref href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita" id="GUID-E6F46CCF-1653-43FC-B199-DEB76B444608">
-</topicref>
-<topicref href="GUID-A4354C8C-2A00-50C1-8DC6-6CE748BC01EB.dita" id="GUID-4502C08E-95F1-4E45-84CC-D49630D3CB0D">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6F6B6C23-D5CF-5BE7-A001-EE87BC76A65D.dita" id="GUID-6C994864-7772-41E1-A049-0AF0DA50F21E">
-<topicref href="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita" id="GUID-22685447-DFD2-4F85-8FD8-6E90064E67EA">
-</topicref>
-<topicref href="GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1.dita" id="GUID-1EF04F4B-6EA9-4306-9EDC-402E8230C14B">
-</topicref>
-</topicref>
-<topicref href="GUID-B61F5B98-E76E-52BF-ACB6-0C68314F190E.dita" id="GUID-F5669ECE-84A5-423F-A575-32DE3AF2E808">
-<topicref href="GUID-7226DB6E-93E9-57E6-B7AB-043E1C5E2A7F.dita" id="GUID-6F4EA048-20E9-4533-ABD0-EAB277157432">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-3291A4CF-3CCD-53BD-BBB5-4F2389765B08.dita" id="GUID-C32D51AE-D6DF-458F-8A0B-5A80F5BEB860">
-<topicref href="GUID-98FBEA7E-78BA-5A64-90D6-4641418003B4.dita" id="GUID-F58548A6-EC8E-4BD2-A300-B3DDA4FF1266">
-<topicref href="GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5.dita" id="GUID-834A9636-B30F-4DE4-96EA-8BA593971779">
-</topicref>
-<topicref href="GUID-752E6C04-D4AC-556C-84D5-E3D9D4BB6CB4.dita" id="GUID-CC4BED18-64A6-465A-B07D-6B032B1AB719">
-<topicref href="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita" id="GUID-03EDD806-691B-465E-AE97-7EC347FA5582">
-</topicref>
-<topicref href="GUID-6021BE18-3416-55DF-A628-0071024D7586.dita" id="GUID-029752EE-FD26-4AB8-929D-59CBF0F48999">
-</topicref>
-</topicref>
-<topicref href="GUID-7636F898-8390-5C32-964D-66CEA62A60F4.dita" id="GUID-B655C512-6C6D-4496-93FD-A5C90F8BF63A">
-<topicref href="GUID-AFD7E241-7DC5-5C7B-A7FB-D0B6DCF95ECD.dita" id="GUID-00575617-8A94-419E-AD85-8E5079A54C2F">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-803ABB5A-2E34-5F71-A5A9-0D475041185B.dita" id="GUID-90BA50F1-7FBF-4906-B9CC-6257C8D868ED">
-<topicref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita" id="GUID-F0A3030E-71F0-4EF2-A2B2-CD85005877F7">
-</topicref>
-<topicref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita" id="GUID-9F9B1BAA-EC66-4E5C-B9D7-99A02190FADA">
-</topicref>
-<topicref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita" id="GUID-A1764C02-295B-4F5E-B2F3-80FB130CD091">
-</topicref>
-<topicref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita" id="GUID-8B649CA0-A6D8-4718-AEBE-4F264E734163">
-</topicref>
-<topicref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita" id="GUID-8BBCE6F9-669A-49F4-B242-2B703D606857">
-</topicref>
-<topicref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita" id="GUID-3E59680A-5FA1-4872-870E-DFD8A3AC88EB">
-</topicref>
-</topicref>
-<topicref href="GUID-EC4CE675-3EE7-58F7-A872-E72548B0C9A5.dita" id="GUID-12BCF09C-133B-4159-9C7F-BC65728CD2FD">
-<topicref href="GUID-174D98FF-6782-564E-9FDF-1AE32F770591.dita" id="GUID-CC0E461B-9C65-4BAF-A333-1AE5D10F1BE4">
-</topicref>
-<topicref href="GUID-567AB683-5D92-533D-B4D8-813E70316DA3.dita" id="GUID-3C5F8173-94F9-43CB-8B73-BB8430C91705">
-<topicref href="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita" id="GUID-64B12647-9D18-4745-A97E-214C23EE6EDF">
-</topicref>
-<topicref href="GUID-DC704CA7-401C-54D5-85DA-B5EBF4362806.dita" id="GUID-E379C796-42D8-49DA-841D-A55020A95879">
-<topicref href="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita" id="GUID-A6499FA8-5A71-4357-9890-9EC99428214C">
-</topicref>
-</topicref>
-<topicref href="GUID-DDBE3874-60B0-5CAB-A782-294A32412C0B.dita" id="GUID-52D2E040-1307-42CD-A12C-5959BDAAF7F2">
-<topicref href="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita" id="GUID-CA56AE17-0ECC-4B7C-B967-D19F579286F2">
-</topicref>
-<topicref href="GUID-C25DEDBC-83B8-5502-BD2A-9561F81551A0.dita" id="GUID-8B70D3B0-41FD-4996-998B-C11DDCB84EE5">
-<topicref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita" id="GUID-0A88A4F8-E63E-4A40-81B0-88EDEDBA7876">
-</topicref>
-<topicref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita" id="GUID-E1507F36-4190-4937-ABF4-91A5DABB515C">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6EF91E47-F931-5AB3-9050-C545D9225E03.dita" id="GUID-25384D5F-0583-4F89-A460-86412AB0B87D">
-<topicref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita" id="GUID-ACEC5D8C-0A7F-43D4-A0AA-B046807EFF22">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita" id="GUID-3C3DEA09-22FF-4CAD-9D89-A1ADE57A9C5F">
-<topicref href="GUID-C05374FC-CF33-58C2-9442-B9EE78C81A4F.dita" id="GUID-9FCAE7E6-4397-459F-9952-94546CA360DF">
-<topicref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita" id="GUID-B3C882DF-812E-4F03-8867-F5A00CCBE5D9">
-</topicref>
-<topicref href="GUID-89EDF464-8DC5-5A2A-9135-3FE82EF40FF4.dita" id="GUID-7D4EC2E1-D8B3-4A9F-8F30-E3DE2B1E0922">
-<topicref href="GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074.dita" id="GUID-4A383F0C-A76A-4386-A6FD-022734C7AEC6">
-</topicref>
-<topicref href="GUID-71F41FAA-E549-55EF-B9F7-5F349EE96D63.dita" id="GUID-2208D541-E738-4F55-B78A-ACA1DBFA48A6">
-<topicref href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita" id="GUID-DFE02B8B-5043-4C44-AA80-DA57B72CA60D">
-</topicref>
-<topicref href="GUID-8CCA6352-DC3D-5BFE-9AAF-B70173DF2558.dita" id="GUID-DB79F261-AB0D-4B7F-A463-7E17A29E60A6">
-</topicref>
-<topicref href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita" id="GUID-E07121AD-5299-4006-A582-27468B837683">
-</topicref>
-<topicref href="GUID-A5B74E5C-A26F-5699-8885-3C7F3121FAD6.dita" id="GUID-7EED09A8-C2D6-42DD-9557-CD37BFD86AF6">
-</topicref>
-<topicref href="GUID-57412030-6B02-592A-81D5-54D2767ED131.dita" id="GUID-309D33FB-F999-42AA-9211-594BCEE19CEE">
-</topicref>
-</topicref>
-<topicref href="GUID-A7498DE3-E9A1-5921-9867-4254685CAC18.dita" id="GUID-F7457C2C-8000-451D-82B2-A87C2846E928">
-<topicref href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita" id="GUID-2092AA11-FC42-4CD5-8192-E4106355D66D">
-</topicref>
-<topicref href="GUID-769CD1E7-8545-5223-A195-43E72AAF5DDC.dita" id="GUID-B313E147-B45F-4A9B-9345-612C6596A5DE">
-</topicref>
-<topicref href="GUID-96B8657D-FC07-5D5C-8ADE-3B2167A9229E.dita" id="GUID-4E96E38E-99C7-4E01-A7B7-E0F04B0FF277">
-</topicref>
-<topicref href="GUID-D67D6147-ECE1-576C-A64C-120F32AE2AA2.dita" id="GUID-DAF7BE52-83F7-43E8-BDF7-0B02DCAFCB4F">
-</topicref>
-<topicref href="GUID-D0CD890F-36DB-5265-B2C1-8D632EAF736B.dita" id="GUID-8BD37A3D-25B5-471A-9571-8A6F058D551E">
-</topicref>
-</topicref>
-<topicref href="GUID-C1A5C1C5-2D97-516E-9B0F-CCE02C33B47D.dita" id="GUID-8981B418-18A6-4E4C-A062-FC50AECBDE8A">
-<topicref href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita" id="GUID-91AD7B6B-DF54-471E-931D-125900FBCE25">
-</topicref>
-<topicref href="GUID-A748041F-5925-54F8-AA21-C1CE8E0473AA.dita" id="GUID-BDE34E67-8C09-44DC-8D0E-BEA4F835D7BD">
-</topicref>
-<topicref href="GUID-3AB05112-0580-5FD2-AD61-5721090062F8.dita" id="GUID-BD189444-0EB8-4815-AA47-67ECB0761359">
-</topicref>
-<topicref href="GUID-12A754EE-7D90-56C8-BDA7-3293F34BE456.dita" id="GUID-61AF3BAE-6E67-401D-B551-8C44CC2926B7">
-</topicref>
-<topicref href="GUID-93EF4862-2395-5ED7-8446-A7FDA60535B1.dita" id="GUID-4CC0B947-CB2E-403F-80A8-A420DD285DEB">
-</topicref>
-<topicref href="GUID-DD8BFFF1-15C7-59B0-A107-C5CC90DBF4CC.dita" id="GUID-8BA07F85-2D11-4B96-BF00-653A7DFF8A8E">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-FE6C2663-31F3-45C7-A778-A4F074589E27">
-<topicref href="GUID-6425B722-4095-56E3-9198-70BA3E06C617.dita" id="GUID-2A1AE126-7E9B-45B3-9430-3D3F27DFF89B">
-<topicref href="GUID-C467E6CD-6656-55F6-BDDF-BFA4F187B14F.dita" id="GUID-A58538E9-F512-41FC-8BA3-C54774E6431B">
-<topicref href="GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD.dita" id="GUID-48F121F1-609A-444C-9880-47A86602AEE0">
-</topicref>
-<topicref href="GUID-5287A403-1094-5682-A443-A6C2A04A1F23.dita" id="GUID-BCBB6C94-955C-491C-941F-CAFED8E001D0">
-</topicref>
-<topicref href="GUID-9652782C-D5A7-584F-A61C-1340D49478A2.dita" id="GUID-C8137DA4-16D6-4A28-8653-A63A18EC5B41">
-</topicref>
-<topicref href="GUID-FBA52F3B-0A7A-5FE3-82CD-72F88788D432.dita" id="GUID-6D7649C3-5DD9-4C32-BEC2-16044F6750CF">
-</topicref>
-<topicref href="GUID-D7A8E007-CCCD-5E4F-A7DE-4D474C864104.dita" id="GUID-5FC912C0-F1CC-41DC-98C6-49054F27F0BA">
-</topicref>
-<topicref href="GUID-46047253-4471-502D-B48E-E1990E7F7962.dita" id="GUID-00A2C8E4-1F85-4361-A9FB-B524503331DC">
-</topicref>
-<topicref href="GUID-A81854C9-25F1-5C3B-AF3F-ECB7CFA26677.dita" id="GUID-5C53941A-2348-487E-A009-58F87BC8AA85">
-</topicref>
-<topicref href="GUID-765F43E2-39E8-53F5-881F-593F379623CA.dita" id="GUID-C7A7125B-7739-4056-92B1-4792D320BB9B">
-</topicref>
-<topicref href="GUID-0ACAFB87-0D45-5BAA-B40A-9A7DC1646B01.dita" id="GUID-2D3559F7-0D7A-4E71-B37C-F7D0C8AE348D">
-</topicref>
-<topicref href="GUID-D5F57D81-6B59-5C7E-A2C8-A5E29873346B.dita" id="GUID-72715114-1F22-4255-BC66-D5A8580F7333">
-</topicref>
-<topicref href="GUID-7D1E2DBD-004B-5047-BDA5-21CD55D0A95C.dita" id="GUID-18E9B819-C549-4D8F-BF19-13CEB9CF4D55">
-</topicref>
-<topicref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita" id="GUID-EA8838D2-4306-4CCF-9167-2592D92FCE3A">
-</topicref>
-</topicref>
-<topicref href="GUID-057F1F82-56AF-5696-853E-79196A3D567E.dita" id="GUID-00F68E47-4371-4CE2-9A8B-5B83676E83C8">
-<topicref href="GUID-093516F2-9076-5A96-9BEF-F5A77F75239C.dita" id="GUID-BC2F03AA-24C7-4580-BB1B-A32D51E8FBDD">
-</topicref>
-<topicref href="GUID-E339A683-94E2-54E8-BB2B-286B11B0FCE3.dita" id="GUID-0700B7FB-F6C6-4CDE-9544-37EFBC2BDEBF">
-<topicref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita" id="GUID-7879A4B9-5ED9-4AEA-A4E8-33D62745B165">
-</topicref>
-<topicref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita" id="GUID-BB644A76-E570-40DA-8DDA-2CF16C33CCBA">
-</topicref>
-<topicref href="GUID-38BA60AA-074D-59CC-9B16-F7E5B10248FD.dita" id="GUID-032A843F-0732-4043-BAB0-E72CC8B69DA5">
-</topicref>
-<topicref href="GUID-128F20B1-4293-59C5-99B5-83BF43CA2F01.dita" id="GUID-EF2040ED-FA18-44F1-B073-6C211389F487">
-</topicref>
-<topicref href="GUID-77E02E43-A72A-52DC-A22B-31FABE5B658D.dita" id="GUID-F7C116E9-2A45-4A45-9A24-535ACFA4FE45">
-</topicref>
-<topicref href="GUID-83A4D862-368E-5DCC-998E-90144BE18A22.dita" id="GUID-A43E4B92-0995-41CD-8ACF-4C2296333ACC">
-</topicref>
-</topicref>
-<topicref href="GUID-CD0EF6F2-9515-5884-B979-C3C391B7DA07.dita" id="GUID-7863EFD1-1A19-4647-A5C6-C9E024DF191C">
-<topicref href="GUID-85CA1089-3F58-5E82-86A4-4674C893B25F.dita" id="GUID-16EFA312-3513-4E7A-8D39-643D2C47BA20">
-</topicref>
-<topicref href="GUID-0A932926-281D-5465-9F38-E5FA8AA7EBD4.dita" id="GUID-17ADCA61-89C0-40CB-A756-D66DF6093E0F">
-</topicref>
-<topicref href="GUID-67ADD402-0741-5FFC-BF53-B6172C438E88.dita" id="GUID-3F275BAC-6939-436A-9F36-529140AD5A8B">
-</topicref>
-<topicref href="GUID-243CF1A9-F3CF-5562-8746-1CB392CDB73A.dita" id="GUID-6EC37E54-7B84-4EDA-BA99-32B3E15B6B6F">
-</topicref>
-<topicref href="GUID-1B3D9B3D-D507-5D78-9E90-060C26D3F971.dita" id="GUID-8DD245BC-1053-4F32-BC37-B83E30CD532D">
-</topicref>
-</topicref>
-<topicref href="GUID-399EAC59-643D-5DED-AB67-9F021CA5687A.dita" id="GUID-96E76BAC-4420-4CF8-8782-625C93C11C85">
-<topicref href="GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D.dita" id="GUID-2A42C4D0-788F-4349-90A1-47811F27312E">
-</topicref>
-<topicref href="GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67.dita" id="GUID-9E38E51D-6C9C-4D14-B6FF-F87AB9C37082">
-</topicref>
-<topicref href="GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7.dita" id="GUID-217E2406-F654-49D8-9B92-DDAC6F295236">
-</topicref>
-<topicref href="GUID-68BA05D8-BC78-583A-9958-553424EE3C9B.dita" id="GUID-BD80C980-CF8B-4F74-85FB-63B15923C384">
-</topicref>
-<topicref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita" id="GUID-7D31095F-2E2D-4B19-883F-83DE54598198">
-</topicref>
-<topicref href="GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45.dita" id="GUID-18B97EA5-D1EE-41D1-B448-0EE9B8D7D2AD">
-</topicref>
-<topicref href="GUID-770EF3C4-15D3-5A0F-B5DF-A95B27A0DB05.dita" id="GUID-0D1EF399-0F7A-4C27-A1DC-CDFC8F578360">
-</topicref>
-</topicref>
-<topicref href="GUID-28636BB0-2C25-5D6C-9777-41AA4F3D8F31.dita" id="GUID-DC79AE6E-9160-4B84-B15F-AF8143C6F271">
-<topicref href="GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16.dita" id="GUID-A3AFE90C-6BD1-491D-8CE3-0033BC1281A9">
-</topicref>
-<topicref href="GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C.dita" id="GUID-1862B544-28AC-42AF-8263-8B6334B2FBF2">
-</topicref>
-<topicref href="GUID-85CE1EC7-E791-57B6-99BA-720699ABC880.dita" id="GUID-6F31799C-8EB2-4307-BC0B-FF6ED70868E3">
-</topicref>
-<topicref href="GUID-2992031D-E176-5BC8-8B89-A5DC2A4B35AA.dita" id="GUID-5EF45316-BBE8-4DD8-A685-D76E6396B67D">
-</topicref>
-<topicref href="GUID-7690509A-C5EA-5835-9298-11E22F49FC2F.dita" id="GUID-96B180F7-E880-4297-B0AB-760B7E76598A">
-</topicref>
-<topicref href="GUID-6F40A921-83A9-5268-A9A6-80750CD5823D.dita" id="GUID-BBB371D1-1DE0-47EE-89B4-D00068D2ABC2">
-</topicref>
-</topicref>
-<topicref href="GUID-A3D1684D-1DF1-5CAF-A0BB-A32685528596.dita" id="GUID-9C5648A0-E5FD-4100-9CFB-DD88DBF9B391">
-<topicref href="GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE.dita" id="GUID-09A55058-AE16-4602-B1A1-10C091DEF579">
-</topicref>
-<topicref href="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita" id="GUID-E08AE047-5573-42DD-93DC-E1971F147BAF">
-</topicref>
-<topicref href="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita" id="GUID-6C7899FF-390A-45BD-B510-84951F06BF6A">
-</topicref>
-<topicref href="GUID-E211C047-FCF9-5B48-B9D9-97C3D093E19B.dita" id="GUID-D8C788F7-5155-441F-AFB9-DF7B5E60E5E5">
-</topicref>
-<topicref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita" id="GUID-4490730B-97CA-405A-A820-473E91C7482D">
-</topicref>
-</topicref>
-<topicref href="GUID-4120651F-E0B9-5927-96B9-2662C51F5A09.dita" id="GUID-42BA5F4A-691F-48CD-BBD4-E4DD9B0D54C9">
-</topicref>
-<topicref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita" id="GUID-0569111A-1038-4119-886B-DF64B2A238DD">
-</topicref>
-<topicref href="GUID-4C47ADC7-3624-5C39-B632-F227452C420A.dita" id="GUID-3CCBC2CB-62A5-4A17-89C2-0D0D3BCB2663">
-<topicref href="GUID-27F39152-0AF2-577A-A367-BCEE9060902E.dita" id="GUID-F4B2C107-331B-439B-9C66-19D02C9F8356">
-</topicref>
-<topicref href="GUID-82ABFD08-D354-5955-8F95-9F22859FCE2A.dita" id="GUID-67363266-FB66-49BE-94CC-839A1721A7DF">
-<topicref href="GUID-A1598248-EE3D-5ED5-A431-02DCEBEDF472.dita" id="GUID-80967DEA-D6BA-4A56-B4E1-0682375700D7">
-</topicref>
-<topicref href="GUID-7F8F830A-990C-5DDF-9D8F-28C89BFA755A.dita" id="GUID-A49DC820-837F-4F9A-9F81-88151D37B5CF">
-</topicref>
-<topicref href="GUID-53017B71-9399-548B-BD1D-C68FC535A543.dita" id="GUID-5D49BB25-C68B-4819-8028-68C0DE60F0E8">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-742647FA-4356-436C-BE56-76DE727DC7FA">
-<topicref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita" id="GUID-1FE2B88D-1939-4626-A4CA-620E83A2AAB0">
-<topicref href="GUID-82438A0F-819C-5CDC-81DC-A8BFE3AA4A6A.dita" id="GUID-E943B81D-0550-47C9-AE3B-BB7A2E41267A">
-<topicref href="GUID-7821C498-70A2-5D3C-989A-58CEBAE9162B.dita" id="GUID-721FA7AF-9E61-4821-A985-60E530B9BD9F">
-<topicref href="GUID-5F1E5D73-27B5-5C08-848D-361AC2F15B96.dita" id="GUID-B2015255-FDB2-40B9-AA5F-8E07D63F88DF">
-<topicref href="GUID-A9640739-462C-5D95-8DCC-D273CD8439AE.dita" id="GUID-0D2CDCB7-C091-472A-8A08-6D369259996F">
-</topicref>
-<topicref href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita" id="GUID-F93A0D9C-336A-41D9-91C8-0F2E48511D93">
-</topicref>
-<topicref href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita" id="GUID-A00F01B2-88E9-4397-A129-459685E4E398">
-</topicref>
-<topicref href="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita" id="GUID-41F25C2C-85EB-4045-A989-D6CDE155B6A2">
-</topicref>
-</topicref>
-<topicref href="GUID-3A14EB6E-2F28-51F6-9D80-1AFCFFBDDF9D.dita" id="GUID-C9CFCA47-AA62-465F-8F78-7082D3A856FE">
-<topicref href="GUID-B8DEA3EE-7BA7-5A29-9A27-B87EE0EB254F.dita" id="GUID-5A13EEFA-0DDB-4655-AE63-B1AD19C0773E">
-</topicref>
-<topicref href="GUID-182A7A60-80BD-5E54-917A-8F4C26BB94CB.dita" id="GUID-16F4DCEA-465C-4F14-A7F8-F434BBE74E0D">
-</topicref>
-<topicref href="GUID-3AAE78A4-75C5-5607-8775-43DFB43DCFE8.dita" id="GUID-ACA751CF-4B02-4D0D-844D-D8B694ACBFB7">
-</topicref>
-<topicref href="GUID-7EE80A94-DAB3-5A5C-B3AE-146501592736.dita" id="GUID-AE0DF956-CD88-4D70-93E9-7DE2EADCAD7B">
-</topicref>
-<topicref href="GUID-95C166C3-2A25-55FB-88BD-62B7EFED2F8E.dita" id="GUID-B86BCA93-9F77-4957-B8AC-750B730A6C20">
-</topicref>
-<topicref href="GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita" id="GUID-C209ADB7-4F56-4B3A-BF37-6B2A2410A64E">
-</topicref>
-</topicref>
-<topicref href="GUID-229C2057-F187-5019-AE21-AAA5803DD0ED.dita" id="GUID-2E36F0F5-AE57-4E43-B20A-F43B100A8713">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-DBD4964D-7728-5E57-8BBA-824F98D0CCF8.dita" id="GUID-DC5ED0AB-CFD8-4BBB-B289-DA2ED933841A">
-<topicref href="GUID-7510C121-A23F-50E0-8130-16AF552BC497.dita" id="GUID-227D90D4-203E-4580-B77C-A2EBB6EC0D48">
-<topicref href="GUID-69B46D92-8D07-5B42-B603-3F725977AA4A.dita" id="GUID-7BF14E16-259C-4C87-A7A6-371FFE956709">
-</topicref>
-<topicref href="GUID-45E1953A-DEFB-5E48-AC96-443A3234F913.dita" id="GUID-52D9A931-CB78-4EDC-8503-807A0142CC4F">
-</topicref>
-<topicref href="GUID-0B5DB521-831C-5016-BD38-EC7E86F41513.dita" id="GUID-C1712F8C-603D-4927-9C58-B9BD56FC8308">
-</topicref>
-</topicref>
-<topicref href="GUID-B01427FA-B857-532B-B2F3-BD90CA042233.dita" id="GUID-5C381BF6-D5CE-43F9-98FA-294DBBDCD892">
-<topicref href="GUID-F532D96F-7CB0-5CC7-9382-0CF44F7C0234.dita" id="GUID-5ED66C2B-8C91-464E-B125-DDDC40A8CAD3">
-</topicref>
-</topicref>
-<topicref href="GUID-2B026328-010F-5245-B3A1-6E8C97BA4BAE.dita" id="GUID-82F422B5-A95A-42A5-B8E0-984F7F20E34D">
-<topicref href="GUID-6A78F618-09A9-56A7-8C58-98C353BF0788.dita" id="GUID-0D64ACCA-757E-4DB2-85A4-BBB745D7266F">
-</topicref>
-<topicref href="GUID-9EF1B1D2-7048-5198-8BC2-3FC960F073E4.dita" id="GUID-113AE69B-D40A-46F2-B55C-2AC17E1263BB">
-<topicref href="GUID-6F6AEFB5-4D0E-5324-A3CD-1E533002DB45.dita" id="GUID-10CE84BD-28E3-4E8B-8BCF-6BEC0C8FD096">
-</topicref>
-<topicref href="GUID-19450648-4400-57A3-95FB-FC8AE73CD0A8.dita" id="GUID-62FA5F13-F352-48B3-9E77-36F893191DFF">
-</topicref>
-</topicref>
-<topicref href="GUID-3A42464E-CAA2-5A8C-B52F-2A6B1D095544.dita" id="GUID-87FF4D87-2C6D-4D06-9C54-B9D80672F3E5">
-<topicref href="GUID-28D13F63-9D72-5D70-BE81-3B4E54B3A8C1.dita" id="GUID-5057F8ED-358D-4F5D-90E3-7CB751B687B6">
-</topicref>
-<topicref href="GUID-81BE3473-E3E4-55F1-897F-635A197AF1DF.dita" id="GUID-39A0F2E3-8482-4FE4-8F51-D64E358B818B">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-D5987006-A871-5F4E-AEA0-5A3B092D996A.dita" id="GUID-D6AAB104-9E4A-4A93-AE32-E015C6620934">
-<topicref href="GUID-8A678AE5-A133-58EA-A4DD-B5BFC94D3AEA.dita" id="GUID-8E93B127-E36C-4201-A2FF-74E5722C5944">
-</topicref>
-<topicref href="GUID-6822E7FA-D055-5693-8872-8D0E8554A734.dita" id="GUID-4C2BBC43-838D-4C29-AAB0-E46A918CC1A3">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-A6B37B2E-FCB3-4692-81F4-AE3CD97E2682">
-<topicref href="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita" id="GUID-E990AC74-C34B-4572-B1CE-742EDE9C8CD4">
-<topicgroup id="GUID-DE6234C5-06B7-4BA8-ACDA-957AEAC5EAB5">
-<topicref href="GUID-7495B1C8-38B5-5A09-8231-25B3BBC09F51.dita" id="GUID-F1DEE648-991F-420A-A823-A2FD54F0FEE9">
-<topicref href="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-3-1.dita"
-id="GUID-85BBB98A-5950-470A-900E-5A6D27BBE7BA"></topicref>
-<topicref href="GUID-0CA63AEB-9A80-51C6-AE7F-E747D6B3B789.dita" id="GUID-1319B317-8B81-4D4C-A9B7-D2FC003C9419">
-<topicref href="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-3-1.dita"
-id="GUID-478D4DF2-37D0-40B0-9355-193B34DD078A"></topicref>
-<topicref href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita" id="GUID-2D144B62-DE91-4506-BACD-B427A6381DD0">
-</topicref>
-<topicref href="GUID-1568493D-0384-5FBD-816B-60A4817CEF0C.dita" id="GUID-31055F33-53CB-4255-AF68-17005263F63D">
-</topicref>
-<topicref href="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita" id="GUID-F6E6FDB6-DB24-457F-A70E-B9E1AD45AAC0">
-</topicref>
-<topicref href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita" id="GUID-FA55041B-E2C2-40B3-85E5-700B627B9641">
-</topicref>
-<topicref href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita" id="GUID-7612D31F-689B-4250-8600-6F3F05E33A5B">
-</topicref>
-<topicref href="GUID-27C3F32C-4B66-539A-8561-EF442E0F0A77.dita" id="GUID-A2856F64-5AF7-4C8B-BA90-D056F3D9EC8F">
-</topicref>
-<topicref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita" id="GUID-DE828EC5-A315-4B0D-8773-37B91CFA4998">
-</topicref>
-<topicref href="GUID-6F716E31-490E-5CA1-871A-D8D1661E3078.dita" id="GUID-512E4BF7-B4B6-4AD0-B14E-CE2922D1F488">
-</topicref>
-<topicref href="GUID-D01C4682-619E-501E-8992-9F7FA35D7682.dita" id="GUID-787934DC-8532-48EC-8239-C342E5C632E2">
-</topicref>
-<topicref href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita" id="GUID-749940A4-3D5A-4672-89DE-3174CCEE612D">
-</topicref>
-<topicref href="GUID-910780A3-D6AB-5EE2-966A-5F228AC5804F.dita" id="GUID-A3DBB4BA-B968-4FB9-B762-E9E88009CFED">
-</topicref>
-<topicref href="GUID-F2489DE2-18E2-5C5B-A174-49B5B7A64A7C.dita" id="GUID-975BAF65-9A0F-47F0-91F4-E59D0E1E684D">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-B8908163-3539-4602-AAD8-3E1AD46D2ACD">
-<topicref href="GUID-45A03C42-652C-59BD-9A21-6346A96310DB.dita" id="GUID-1ED8B559-96BF-40EC-B22E-D122BF8152BA">
-<topicref href="GUID-5B63D14D-007D-566F-A065-1A25FE4B97A3.dita" id="GUID-F420591E-C1A9-43E7-A360-C747290739CB">
-<topicref href="GUID-D14CD452-BFCE-5EBA-B73B-61AA045D23E4.dita" id="GUID-76FE6C65-5611-4761-9B9C-0FB06E4BD2D2">
-</topicref>
-<topicref href="GUID-B0D76734-1DB7-5465-91AE-BB3521599A75.dita" id="GUID-00B6B501-A92B-4C20-8329-6B7ED0B300F2">
-</topicref>
-<topicref href="GUID-132DBA2F-B913-5565-9720-015777630C22.dita" id="GUID-B219F55D-5934-4EDA-AA44-B6E9A79E8588">
-<topicref href="GUID-BCB0E50F-B22E-5964-BB68-BEE1870D9C79.dita" id="GUID-44A37BA3-0798-44CC-B69F-CA50DEF49F65">
-</topicref>
-<topicref href="GUID-2022F702-9899-5798-8932-D70119C7177D.dita" id="GUID-21F2D380-D475-400D-85BD-D86AF511B0A5">
-</topicref>
-<topicref href="GUID-E4A950EA-5671-5755-B3EF-5D6B90E19AE6.dita" id="GUID-3CC51F83-2F51-441C-8FB1-4D98BC156758">
-</topicref>
-<topicref href="GUID-BE65B3A7-04E8-5406-B46A-09E2608E0F1F.dita" id="GUID-0B5F958D-3E36-4FBB-A48E-CE3D435013FD">
-</topicref>
-<topicref href="GUID-55ECBCF5-FC29-5A4A-A3C6-1CB1C0D562CE.dita" id="GUID-64F0FE1E-D052-4D79-82C6-71C3F9BC1A7E">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-4E4E4BED-6DCE-4835-8CAC-08AAECF4A5C7">
-<topicref href="GUID-F8824165-4B33-50D1-9706-BD2438B5A2EE.dita" id="GUID-52272566-7A27-44CA-B3FA-051000F13398">
-<topicref href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita" id="GUID-0CE5A078-EE99-4402-A6A0-2B9BB11A714E">
-</topicref>
-<topicref href="GUID-30BB4435-C95C-5016-A86B-4E98311F9FE2.dita" id="GUID-BD9390B5-BF22-4973-8432-D5EC03F86A98">
-<topicref href="GUID-C9A1CC1E-2398-5887-8C64-7B8EE0B22022.dita" id="GUID-3E182CE9-DBB4-47CA-B14A-75AE953A4811">
-</topicref>
-</topicref>
-<topicref href="GUID-50BA6AEB-E968-5CCA-8F5D-A65969263D90.dita" id="GUID-A240D5EC-AC70-4D4E-AF2B-6119A5260815">
-<topicref href="GUID-CBC57511-7F28-596A-9763-5674EB41BCAC.dita" id="GUID-B0E9D363-6A3D-408E-932F-94126CE9824D">
-</topicref>
-<topicref href="GUID-53E5C9EA-0A38-54A1-AE24-95B71BFFB4B5.dita" id="GUID-A2F65F83-F286-49CE-896B-0945AF3FDF34">
-</topicref>
-<topicref href="GUID-E3BE62B2-9625-5F79-84A4-0248A3F36225.dita" id="GUID-4E9DAFB3-74F8-48F8-8A8F-AB7969A771E2">
-</topicref>
-<topicref href="GUID-1C683226-C142-5C7B-BD20-060058352B08.dita" id="GUID-557CC79A-53A6-49FE-979A-D47469094CC1">
-</topicref>
-<topicref href="GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita" id="GUID-A6FBB504-F1D6-40CD-8101-EFD467ED562B">
-</topicref>
-<topicref href="GUID-998DCA78-2488-5D6D-B5B3-D86C52F32823.dita" id="GUID-57B62170-A169-4B09-964F-FA1B6742D0ED">
-</topicref>
-<topicref href="GUID-E87018CD-01B4-5886-87FC-CD25EE90587D.dita" id="GUID-A5FC532E-BF9B-43FA-AFCF-59654DB257A2">
-</topicref>
-<topicref href="GUID-277BD68B-70CF-5798-A77D-E2B901FA613B.dita" id="GUID-8AC308F7-1064-4DF0-A608-CA9CAE68C413">
-</topicref>
-</topicref>
-<topicref href="GUID-C0414BDC-06FD-5E3C-93F7-DD3467CAA75E.dita" id="GUID-25DEDEF9-1ACE-4B4E-8602-1C06CC941CA4">
-<topicref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita" id="GUID-8454EA55-5CC6-4650-9CFB-C932EE082C99">
-</topicref>
-<topicref href="GUID-EACA05F0-7291-535C-82BC-16DF3AAA417E.dita" id="GUID-079C20C1-F72B-4039-A7D5-981D54486D2A">
-</topicref>
-<topicref href="GUID-B10B6363-9FB9-562C-8DCA-42FEF8D5413B.dita" id="GUID-DBB5276B-E470-43C0-B4CA-11B0D392E118">
-<topicref href="GUID-B3248893-9944-5544-84EA-0F4D40992152.dita" id="GUID-36B186B2-689F-4354-9D6E-DD6841E19F38">
-</topicref>
-<topicref href="GUID-8579426F-C443-558B-9380-FED79D4BA8F4.dita" id="GUID-3C72FE5E-E35D-4233-854A-48C1CFD7104E">
-</topicref>
-<topicref href="GUID-F5B0FE6A-6DE6-56B5-89A5-684CD2602B40.dita" id="GUID-373ADFAB-0905-4F1D-89F4-E46C06329DCC">
-</topicref>
-<topicref href="GUID-785B2F0B-E7E6-5DAE-98F1-6C32BED25964.dita" id="GUID-107585FA-275E-468B-B1A5-0918CE92D238">
-</topicref>
-<topicref href="GUID-898FF7CE-969C-5FE1-9346-34BCBE637A57.dita" id="GUID-B145D0DA-75A1-4DA4-9E31-3461234D5068">
-</topicref>
-<topicref href="GUID-0747B7D8-86B4-51DE-BC71-7FACE61EB5E2.dita" id="GUID-35821839-96B5-4C8A-9528-A0A691E344DE">
-</topicref>
-<topicref href="GUID-84921F68-9449-564A-8527-203FA84AF2AF.dita" id="GUID-44BDB7EF-9CE5-46CD-BF3E-18A4B8F8F423">
-</topicref>
-<topicref href="GUID-24A149FA-B82A-53A2-83E6-4F625D7041D7.dita" id="GUID-0AF3044E-1BC3-45C5-A209-6184ECA3CB5E">
-</topicref>
-<topicref href="GUID-A278C1A2-0724-5800-B353-46809C44C142.dita" id="GUID-72942C08-31C1-4EFD-9382-7B75970B2C0A">
-</topicref>
-<topicref href="GUID-79B699F5-5EDE-5561-A385-19ED02248398.dita" id="GUID-90123358-72A5-483E-8EA0-29AAD1114183">
-</topicref>
-</topicref>
-<topicref href="GUID-4F4B97FD-B0C7-5FDD-AC50-9611B240A11E.dita" id="GUID-2C2CA81D-7CF9-40A0-AA83-9A21B40E5ED2">
-<topicref href="GUID-7BE83158-B818-57E4-9A8C-43E5D2C84687.dita" id="GUID-9E856632-8E81-434F-8E37-1C6C2D18D0C7">
-</topicref>
-<topicref href="GUID-FCBEE38E-FA6D-5C09-8B17-F18EF3E2E826.dita" id="GUID-F745716A-650D-4762-9A14-2D820856CE21">
-</topicref>
-<topicref href="GUID-47419CFB-163D-5A4E-8A00-C73773353BDF.dita" id="GUID-A77A240F-7961-48C2-94F8-5ABA915AE675">
-</topicref>
-<topicref href="GUID-580471E3-7DFD-5325-A8B9-B3E7FABF872D.dita" id="GUID-D19819BA-8CDB-4A44-BA3E-EE74D9B1F7F4">
-</topicref>
-</topicref>
-<topicref href="GUID-FACE863C-8667-5726-B668-C39AA0FBFC68.dita" id="GUID-2FF4D061-DA70-4584-9503-ADC72723A659">
-<topicref href="GUID-12CB6E0E-69CD-51A6-8966-3621CB26E1CD.dita" id="GUID-A949B284-9DAD-4D3B-B8BD-8D3868498603">
-</topicref>
-<topicref href="GUID-118C8F84-2BB3-5F60-B6AB-22F0F1B3349E.dita" id="GUID-AFE37B1C-8178-4763-8DF8-27B38058A98A">
-</topicref>
-<topicref href="GUID-2052461A-DF29-5DD0-A7D2-B46A50EAD762.dita" id="GUID-731CD5A6-1468-4E2A-B2EB-EE7F0589F1F7">
-</topicref>
-<topicref href="GUID-39897348-B27A-5C02-B65C-C26D122BCAE4.dita" id="GUID-A3A31BD6-7DC5-4F02-B333-9335CC7AF6CE">
-</topicref>
-<topicref href="GUID-05DA872F-F70E-5085-8AA9-12B6A0B71917.dita" id="GUID-334313A0-CE99-40DE-8910-8982DE5043A5">
-</topicref>
-</topicref>
-<topicref href="GUID-5544728C-A53D-57F0-B8D8-F7B694C8B5CA.dita" id="GUID-5E304084-2551-4E5B-B85B-F2129C395003">
-<topicref href="GUID-120163D6-2E49-5D91-A746-2C8C4C944461.dita" id="GUID-267A36F1-A527-4415-AF13-0B0A5CBF27BE">
-</topicref>
-<topicref href="GUID-F40E34F4-5B8B-523E-82B6-7717D8FD26AB.dita" id="GUID-11488629-86DB-40D8-B560-21AFB2AB41EE">
-</topicref>
-<topicref href="GUID-BDC03973-45B0-54BD-99D1-298F4F59DB95.dita" id="GUID-F1620BA9-298E-43F4-AACD-3DB3F26EFEA4">
-</topicref>
-</topicref>
-<topicref href="GUID-766F8505-4536-57A6-A788-EFCD8CCF875F.dita" id="GUID-57858F8E-94FE-4823-9EBA-0C899299AB39">
-<topicref href="GUID-C61B979A-921A-5756-8D7E-691C3DDD3437.dita" id="GUID-9D8C228A-54C4-443F-AEB8-A2D54A169CDF">
-</topicref>
-<topicref href="GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D.dita" id="GUID-05AA7473-67AB-4FEF-BE39-000B574685EA">
-</topicref>
-<topicref href="GUID-EFA822E0-BE80-5EB8-82E5-1659BDB1BDD9.dita" id="GUID-5DA7C291-D03A-4F55-88AB-AACE282BF81E">
-</topicref>
-<topicref href="GUID-05FDC28B-F033-5FDC-8F41-71BD212C27E2.dita" id="GUID-954F8E00-DCB6-4035-8ABF-472BF1AE4AF3">
-</topicref>
-<topicref href="GUID-FF28B015-DFC5-5656-9066-FBCCBA2818AF.dita" id="GUID-7921D43C-7D81-4FF6-839C-95CC790321BF">
-</topicref>
-<topicref href="GUID-71F33868-0C59-5CE8-95BD-304066DB8946.dita" id="GUID-41E177FD-71EF-4F6A-B569-5B3BE9362B7F">
-</topicref>
-<topicref href="GUID-5F3B814F-30B2-5325-A83F-A48ACCF095EB.dita" id="GUID-4745320D-2F46-41C9-A120-2D86061EB61D">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-3FAB9077-3EC3-5539-B391-D11456362513.dita" id="GUID-6D5059C8-CF48-40CE-8803-6F3CBED2E07E">
-<topicref href="GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita" id="GUID-1A569ECB-B785-4968-A67A-E943BC4358EC">
-</topicref>
-<topicref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita" id="GUID-37C128EC-61B1-4522-9D79-AE5840B59A4D">
-<topicref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita" id="GUID-6166A431-A6A8-49F5-BE48-4733C481F014">
-</topicref>
-<topicref href="GUID-576BA55E-3CD3-5867-B55D-60CE137595F2.dita" id="GUID-52694B17-BE99-44E4-8770-3635065678DE">
-</topicref>
-<topicref href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita" id="GUID-4DC4C093-591A-4684-AF23-547CBCF164E3">
-</topicref>
-<topicref href="GUID-C7FB54C4-43C9-562A-A18C-2818AF624774.dita" id="GUID-293A7B7C-0E87-4C50-9AEE-A4AAEED245BA">
-</topicref>
-<topicref href="GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita" id="GUID-35472DA3-10CD-450C-A92D-51AA505ED8CF">
-</topicref>
-<topicref href="GUID-A9EA16CE-2F80-5344-827D-0C2ED5812788.dita" id="GUID-4CB10FB3-5525-4F11-AE0E-471BDDA30D7A">
-</topicref>
-<topicref href="GUID-2F987147-1435-55F1-B61C-8413C4AD8424.dita" id="GUID-6857343A-33E7-4103-89C3-03D486C78A32">
-</topicref>
-<topicref href="GUID-1A8B20B3-CA6D-58A6-9DA0-8EB3965EDE7A.dita" id="GUID-D1620DD4-B107-4E81-879A-DDB1973EC55F">
-</topicref>
-</topicref>
-<topicref href="GUID-E9C608C0-AC22-5267-BEC4-207C9758F968.dita" id="GUID-208575FB-D83F-4C92-B3F8-6A59309FE3B9">
-<topicref href="GUID-5EAED550-5FFC-54A6-BB4A-720975B127B8.dita" id="GUID-D69727BE-1CC1-4D61-9694-9893D3AF8158">
-</topicref>
-<topicref href="GUID-D8CC5B36-41DA-5989-8FA8-3F56306146A3.dita" id="GUID-08FF22A9-3A15-4B45-935B-37173732CB77">
-</topicref>
-<topicref href="GUID-A0E75BD9-E3C6-5D28-B53C-B76260F63B89.dita" id="GUID-BB0E1DC4-924F-4FFC-883E-E2DCCB2849D3">
-<topicref href="GUID-B0F9CDEC-A953-51D0-B7A3-8B341A7C784A.dita" id="GUID-2BF24C0F-FC03-4F02-A6F2-A257987C2189">
-</topicref>
-<topicref href="GUID-2D93660B-8206-5D20-85F5-6FFCF4549127.dita" id="GUID-F16707C2-9112-4D5E-942E-7F2E1FD266F5">
-</topicref>
-<topicref href="GUID-DF1C3E6D-9133-530B-B318-66F0E6CDB3AD.dita" id="GUID-E0306DFE-1300-4F2B-B067-52E5AE3B00FD">
-</topicref>
-</topicref>
-<topicref href="GUID-A0F56EA1-49BA-5306-9ADC-A0647270F720.dita" id="GUID-6CEB31AA-71AB-4AAF-B447-EDFEAC07413C">
-<topicref href="GUID-983C5DB9-85EF-541E-B494-19E3E617914A.dita" id="GUID-2B9DEFE1-EC72-4E1D-A425-D0CD04B3AB7E">
-</topicref>
-<topicref href="GUID-95448841-5E5B-54C4-85A7-DCE6D078E036.dita" id="GUID-FE6FF271-F533-4F27-A8B3-8508678AC763">
-</topicref>
-</topicref>
-<topicref href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita" id="GUID-39ACB4B4-B018-45C1-A1C3-7979BCF4D353">
-<topicref href="GUID-053FFF2B-6FB1-5065-B9D1-047477F3DE01.dita" id="GUID-92236966-0423-4102-AC1C-1636A97A462A">
-</topicref>
-<topicref href="GUID-22F74DA4-2CAB-5CA9-877C-0FC2F891E259.dita" id="GUID-CB0EA3C4-7F09-4279-9E56-6B09D73401E0">
-</topicref>
-<topicref href="GUID-9C6D94B2-8F03-5A4D-9AEC-7C3FEA0E1ACA.dita" id="GUID-6E4077FB-BC35-41E1-9A1F-F164A334D035">
-</topicref>
-</topicref>
-<topicref href="GUID-EEA5F7C6-8916-5FB9-8367-002F41A576D4.dita" id="GUID-08D0013E-C53A-4C31-ADB9-7FB666EE76A6">
-</topicref>
-<topicref href="GUID-6EE0CB66-A759-5E0C-884D-90895F35F267.dita" id="GUID-415C64A0-D665-4D03-879D-7B1370267411">
-<topicref href="GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B.dita" id="GUID-D2A2C54B-8F94-41F9-A16A-238FCCA15F49">
-</topicref>
-<topicref href="GUID-442F2E69-87B5-54E7-B62A-70B742432372.dita" id="GUID-B76ECD04-436D-4AD2-9CDE-8DB959A2868A">
-</topicref>
-</topicref>
-<topicref href="GUID-F8D12BC4-82C6-59CD-93C9-506FF872C622.dita" id="GUID-E0CDE87E-5F53-4EED-B3E0-3C3753DFCD53">
-<topicref href="GUID-1824B323-AAA8-5403-A4CF-D1F530CBDAF5.dita" id="GUID-99743823-03EA-4D3D-AD2E-0941C6EC3A3B">
-</topicref>
-<topicref href="GUID-34E19A27-F61D-5190-8709-151523CB0BE1.dita" id="GUID-6F5D1554-0C9E-458C-8219-C27C312E808D">
-</topicref>
-<topicref href="GUID-FDF3546D-1A16-5F71-B9E4-8DA0F02CC7A3.dita" id="GUID-95958538-D34A-4E14-920A-4F52D9F4A318">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-D7211372-9411-5A18-88F0-615F4983A2E0.dita" id="GUID-BD0348F1-94D1-49A8-9424-3EFB379E6634">
-<topicref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita" id="GUID-3B09794D-3C47-4A7F-83B0-6A1B50A1B32F">
-</topicref>
-<topicref href="GUID-5B6BF7FA-21D2-5A63-8217-6D36F6B8C033.dita" id="GUID-0AF5527E-923A-47A4-AFCE-C11DB70A12BD">
-<topicref href="GUID-74CBD580-01F8-5C68-A5FD-6331AAE7DF62.dita" id="GUID-DAE26C16-444C-4550-AC3A-79FECCC8FD7B">
-</topicref>
-<topicref href="GUID-A928E956-9800-5277-B0D3-34BBB2707AE1.dita" id="GUID-6CC1D950-0E35-42CE-982C-020DF5336E3B">
-</topicref>
-<topicref href="GUID-1F68D172-1090-5930-BD7B-AE7276667104.dita" id="GUID-D716E7BD-B32A-4FD7-A19A-67FF6AFCE62C">
-</topicref>
-<topicref href="GUID-E79D47D6-3FF2-5858-B092-29D39A1CA2B6.dita" id="GUID-D191CA3C-C86B-493E-9620-AB5CE6B13CB0">
-</topicref>
-<topicref href="GUID-88E610C1-6662-5A12-B950-B695A7EB776C.dita" id="GUID-892780B7-93AE-493D-A32D-538E124C1675">
-</topicref>
-<topicref href="GUID-F535B464-3125-549B-9130-E59B64C4B865.dita" id="GUID-C60C99E5-4C4E-40CB-A4C6-8F587BD03155">
-</topicref>
-</topicref>
-<topicref href="GUID-79CE15C5-B595-5336-AE87-DE92990F6D47.dita" id="GUID-9A12E1AF-4BCA-4DBE-94DC-4CD1FBC70723">
-<topicref href="GUID-18D92465-3F62-55CF-8229-EE811FD5F568.dita" id="GUID-4F850C20-C83C-404E-967F-5BB2B02C8C69">
-</topicref>
-<topicref href="GUID-3ABE9420-2668-507E-B857-E62DC50654BD.dita" id="GUID-DD5BE78A-B66B-482E-8ACF-C39EA7691260">
-</topicref>
-<topicref href="GUID-2C767F68-2150-55C1-B801-AB6EB58FD97C.dita" id="GUID-75CAB7FE-1F77-4F35-9707-CA65FC36F30B">
-</topicref>
-<topicref href="GUID-3B0BF8FF-88AB-5BF4-9F04-5F82A3998699.dita" id="GUID-C841A434-C8AF-458B-AB60-4214C2017928">
-</topicref>
-<topicref href="GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1.dita" id="GUID-7A969D76-BE5F-49DC-BEEC-6C8E01527E45">
-</topicref>
-<topicref href="GUID-38A656D3-F830-5E26-8167-3638B6BC5DF6.dita" id="GUID-9EFC26D7-909E-4FD5-A1C8-6DA014536F37">
-</topicref>
-<topicref href="GUID-A8EADD99-561C-5077-834F-DFC2CC4AE6E2.dita" id="GUID-CE2FDA18-6ED1-473E-B352-ED35A22C48D6">
-</topicref>
-</topicref>
-<topicref href="GUID-53112730-5871-5920-8861-D2F6BF1595BC.dita" id="GUID-689CFA6D-9AC4-4C20-887E-DF89CEFC19A3">
-<topicref href="GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E.dita" id="GUID-A1B2FC2C-FE4A-49D4-8E0F-5258F06AC2EA">
-</topicref>
-<topicref href="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita" id="GUID-29D7DD81-4131-4689-88E1-6272E4501D0F">
-</topicref>
-<topicref href="GUID-535954FD-2501-5C80-AD86-AC73A86B18B5.dita" id="GUID-9B007B0A-6AFF-4B36-9F18-245E6523D79C">
-</topicref>
-<topicref href="GUID-386FD0B9-D502-577C-BED2-5F31D9CA67CC.dita" id="GUID-FFF2DB67-BFE9-4ABB-A91D-9DA3F893623D">
-</topicref>
-</topicref>
-<topicref href="GUID-C1AA34CB-D63D-57E3-87F6-28AD22537D21.dita" id="GUID-D2F7282E-F554-43EB-9A24-E0D6371C9564">
-<topicref href="GUID-50196C0E-39AF-5E94-888B-9901C934CCE7.dita" id="GUID-9EA90FD1-C4E3-45FB-8CB1-E42D5C73BC82">
-</topicref>
-<topicref href="GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5.dita" id="GUID-A85387A6-0F9D-4305-A439-854FF3FF76A8">
-</topicref>
-<topicref href="GUID-38B11AE2-DB91-517F-BFE4-E72ACE96EDF5.dita" id="GUID-77A2F6A8-19A3-41A8-8FD2-B7B003FA3B39">
-</topicref>
-<topicref href="GUID-36718217-C9F7-5ACF-8DE7-7D83FBF435DB.dita" id="GUID-770DB5C8-6604-4F32-9FFD-25285BC39825">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6BF09365-09D7-5596-B802-1BE1757F51F6.dita" id="GUID-1B37633C-E313-41F2-BEFE-67428B10AD69">
-<topicref href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita" id="GUID-6833DD1B-F7FA-48B3-8BCB-6CF6E7558D10">
-</topicref>
-<topicref href="GUID-3C552587-B983-5725-898D-81CC31458DE8.dita" id="GUID-5D86D987-65CA-4A22-B348-1583267EBB01">
-</topicref>
-<topicref href="GUID-72151EF7-52C0-5DF4-AC69-07087F31D9E8.dita" id="GUID-F3F8B4B9-EDCE-4365-9DBC-58746385E283">
-</topicref>
-<topicref href="GUID-5CF5B8D6-C477-55D2-A036-2C090FA41D33.dita" id="GUID-C3813E19-E7A8-4872-9D23-5FAB430D1111">
-</topicref>
-<topicref href="GUID-2488FA07-BCAB-55DC-8724-C1C3C0DEC0AD.dita" id="GUID-A895D62E-F77B-40E0-B771-3F3D5B41AE3D">
-</topicref>
-<topicref href="GUID-E3210353-EEC2-56CB-AD75-309E5DCDEDD1.dita" id="GUID-340DE573-D1CB-4B7B-9BEC-01736AB55A2D">
-</topicref>
-<topicref href="GUID-3690B530-BFFC-554E-9692-3D7C4C0BC803.dita" id="GUID-039B765C-6032-4FE5-891B-A5F749AED8CC">
-</topicref>
-<topicref href="GUID-7CE86E8C-0187-5679-B87D-71ABDE479048.dita" id="GUID-1A4F1D4C-F6EC-4BDC-8F61-1F0FF42C897B">
-</topicref>
-<topicref href="GUID-8A2029C7-1258-5B12-B217-DE3EE4340B72.dita" id="GUID-C15CDE89-CEF2-454C-9952-F13677EE9A49">
-</topicref>
-<topicref href="GUID-DA4160B0-7B63-5C84-B3C6-190100530EDE.dita" id="GUID-12D5C650-474C-434F-A871-AE1DBE3F9C99">
-</topicref>
-<topicref href="GUID-31EB55B1-5A52-5ED1-92D3-C4B0222749B3.dita" id="GUID-6C10E339-6982-4241-9693-30D62B326798">
-</topicref>
-<topicref href="GUID-2277BB1C-C04D-56C8-9B9B-FBC2EDCA9B07.dita" id="GUID-3AB514EE-078A-46FA-B2CC-60BEC02F3170">
-</topicref>
-<topicref href="GUID-EB6A14CF-05DA-5EAD-AB68-F6511907DF05.dita" id="GUID-47B7C982-721E-4F80-9DA0-A9CA6C6F38D1">
-</topicref>
-<topicref href="GUID-C1BCBA03-4E64-5188-8D33-25B4121C1582.dita" id="GUID-E2262D17-4D74-415A-B958-CAD116B0948A">
-</topicref>
-<topicref href="GUID-82762D6D-7EF5-5061-9393-BBDCCC7212CD.dita" id="GUID-60F4893E-EEFC-464F-A34D-90E02CAAA7C4">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-868D5B32-1CC4-506E-9C49-C86428B9A50F.dita" id="GUID-B90FFE6A-9602-4B22-991B-18CB6C20AF61">
-<topicref href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita" id="GUID-1E0488D1-969F-4702-B737-8FDF7B08AB3E">
-</topicref>
-<topicref href="GUID-25C3CDBE-8D53-5F1A-A4CA-993E1151AD93.dita" id="GUID-D22BA71F-B8E8-49A8-81DE-DD0DB384DA67">
-<topicref href="GUID-1F12E3F5-45B2-55EC-B021-00338277C608.dita" id="GUID-EF5D3C30-274A-4342-9A41-D272F375B558">
-</topicref>
-</topicref>
-<topicref href="GUID-78773BCA-ADF6-53E6-AC80-5CB2AE1F8BCC.dita" id="GUID-B0247654-672C-4B82-8BFF-ECA50E756548">
-</topicref>
-<topicref href="GUID-C6D3827F-8F73-593E-A339-B510EEB9771F.dita" id="GUID-911C3AE6-937B-458C-9252-C12DB05CC7D5">
-<topicref href="GUID-A64625D4-F101-5DB7-896B-F91A21BABE01.dita" id="GUID-FB9F3EE2-46A9-42D0-B752-59D1906B6F7B">
-</topicref>
-<topicref href="GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74.dita" id="GUID-412E39C5-A6F8-4BE2-84A8-3B6A65C4E262">
-</topicref>
-<topicref href="GUID-831F9AA3-0209-53DC-96C4-04157F22870C.dita" id="GUID-46DE94B6-7F4C-431A-8B6E-85F09721E022">
-<topicref href="GUID-0D093559-793F-5CDC-BB66-8FE1C8A3850E.dita" id="GUID-9438AF63-6C28-4A53-9541-871D3EF0876E">
-</topicref>
-<topicref href="GUID-43CA02E7-0101-5824-B91B-E15EE20C829A.dita" id="GUID-20A486B6-9E5C-48A1-81AF-D07063A631C8">
-</topicref>
-<topicref href="GUID-49A3419F-D20A-5C5D-B2FF-51724EF37704.dita" id="GUID-C7284EDA-EF79-4211-906B-D02448661D6B">
-</topicref>
-<topicref href="GUID-C2FAEBB2-4A1A-5BB0-9670-4801525CBC6A.dita" id="GUID-CA5D5859-365D-41B3-A93C-EC2D754A525F">
-</topicref>
-<topicref href="GUID-B994E6F7-228A-5433-B87F-91857C5D93D6.dita" id="GUID-0EC25BAD-FC68-46B4-874C-F62BAF0F9945">
-</topicref>
-<topicref href="GUID-4FC23DB7-4758-5DA4-81FF-0DAB169E2757.dita" id="GUID-A71615E7-D596-4BDF-BF09-9A1656923DD1">
-</topicref>
-<topicref href="GUID-2A2920E0-5D40-5358-BC0C-8572CEFE078C.dita" id="GUID-1D4BFA29-221A-4C55-A25E-139546DE6028">
-</topicref>
-<topicref href="GUID-126FCCCC-0E7D-59AE-959A-2F94A7319C4B.dita" id="GUID-44A13F5A-85E0-4890-B8A1-2722EB7009CA">
-</topicref>
-<topicref href="GUID-ACCCB148-DAF9-59EC-B585-8EF632B9BF04.dita" id="GUID-545F34CE-BA74-45A2-98EB-7B637CAE9176">
-</topicref>
-<topicref href="GUID-B7E978C1-45CA-554C-8028-D901B97BA2E0.dita" id="GUID-FC4AFF4A-78A0-4867-8F6A-D1A7DB5AE0EB">
-</topicref>
-<topicref href="GUID-AF5A75D7-0687-546C-87B2-0B7DF7D33217.dita" id="GUID-EEDE0ED3-F64F-49C5-8983-491804AA5132">
-</topicref>
-</topicref>
-<topicref href="GUID-481D4689-C4DA-50FB-9529-081EB9BD7901.dita" id="GUID-1553A073-3E8E-46F9-91AE-2FD3E366B156">
-<topicref href="GUID-EC33FF66-F15E-5316-8828-C6CFD57DB9E5.dita" id="GUID-D28A4F92-2009-4744-A028-213577D38C56">
-</topicref>
-<topicref href="GUID-321F406B-2C77-5F2B-9FDA-F25726188CE2.dita" id="GUID-6B8FE02E-7E3E-41CF-80A6-33D76665A22D">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-582CAA4A-1240-5138-983D-D9C6EEAF5566.dita" id="GUID-414A3A4F-E3EA-42BC-B1B2-782D6C602910">
-<topicref href="GUID-200647EF-B9CA-5EEA-8760-71A9C1B063CE.dita" id="GUID-666DC280-DE07-42DE-A68C-ACD42813ED84">
-</topicref>
-<topicref href="GUID-B38EBDBA-2A30-5595-9639-6AE58C530DCB.dita" id="GUID-E88D29EB-2BB5-4FD1-8F78-B04DFF19E3C0">
-</topicref>
-<topicref href="GUID-1D35F788-A470-5269-93E0-7C33A0013489.dita" id="GUID-232CFFE4-33C8-4656-B8ED-135CE8330E8E">
-</topicref>
-<topicref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita" id="GUID-41737FC8-92AD-4B59-B4D5-6FE84D264610">
-</topicref>
-<topicref href="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita" id="GUID-FA0CB62C-6A4F-4F04-976D-11C31DC1DB63">
-</topicref>
-<topicref href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita" id="GUID-1660D897-B700-4A1C-A4AB-7FC3B31569BB">
-</topicref>
-<topicref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita" id="GUID-783793C8-15EF-45A1-B07C-7B8FA910F8BE">
-</topicref>
-<topicref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita" id="GUID-84442FF7-087A-43F2-9CCD-069477074F69">
-</topicref>
-<topicref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita" id="GUID-F20E39D0-A8B3-4F7D-B988-8925F95AFE9D">
-</topicref>
-<topicref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita" id="GUID-4600EFED-E079-4DBD-ACF3-76B21BE55DC3">
-</topicref>
-<topicref href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita" id="GUID-E35B0D82-C7DA-423D-AC67-E0912C20A651">
-</topicref>
-<topicref href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita" id="GUID-98ACA9D6-A1B7-4466-ABCA-9B90D8B45E7A">
-</topicref>
-</topicref>
-<topicref href="GUID-C2FCE726-FD87-52BF-8AF8-7F54FB6D6CB1.dita" id="GUID-306162A4-8D3A-490A-AE4A-ED50E16A8768">
-<topicref href="GUID-E0D622CE-5D10-5C6E-9998-545C016575F0.dita" id="GUID-6E364461-8A49-4762-A9D1-BE07DC343273">
-</topicref>
-<topicref href="GUID-5FB2141F-8B2F-5DAE-8FDF-58D7351C5848.dita" id="GUID-7F0C7DAC-C5CC-4D1B-AEE3-E81B1CEC234C">
-</topicref>
-<topicref href="GUID-22B535FA-6C8A-5B39-9CD7-6E85A86B7C2C.dita" id="GUID-A8312005-12AC-428A-BE30-692302CAE282">
-</topicref>
-<topicref href="GUID-C67A7554-256C-5392-8309-A0138CC4EBF2.dita" id="GUID-9A947160-EE45-488E-B2D3-C4F86AAF0BE7">
-</topicref>
-<topicref href="GUID-189DCEF1-EBCD-5971-9D7C-109F0C910802.dita" id="GUID-EE14321B-4DD3-4208-B827-BD9D61DCBB39">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-02C9C31A-6563-59E4-BF46-129F4ED95087.dita" id="GUID-440D5603-5967-4F07-B240-265AF734D426">
-<topicref href="GUID-5CA62D99-15E2-5556-966F-CFC3FCE3B246.dita" id="GUID-971F6E3D-6F2C-40FA-9BD2-039B48C94D0E">
-</topicref>
-<topicref href="GUID-22A4F33C-4F93-572E-91CD-E93CD0B69B09.dita" id="GUID-E7DC1A06-10AE-479E-83A3-B31E01AFE28B">
-<topicref href="GUID-84AD87E9-B21A-52FC-B1E1-7287BA8A30D4.dita" id="GUID-A15394CB-6191-4412-BC65-5CBD54C97635">
-</topicref>
-</topicref>
-<topicref href="GUID-2C60C1C3-82B5-5ED3-98DF-E787193E8797.dita" id="GUID-5B9446F7-7574-47C6-946E-8894B087A3EE">
-</topicref>
-</topicref>
-<topicref href="GUID-6D28A0C6-7D1A-5C71-B61C-EE3F9E29DC5D.dita" id="GUID-63B8D796-D731-4F4E-8D4E-373D04D6BB3A">
-<topicref href="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita" id="GUID-B7179B40-75D4-473D-B826-6639409E5297">
-</topicref>
-<topicref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita" id="GUID-8BFD2E49-B70D-4284-965E-72313BE48E42">
-</topicref>
-<topicref href="GUID-AA5DEEB2-0B13-5FA8-8494-EC2F5C654FEF.dita" id="GUID-686D9464-3A4E-4096-A911-716A27F80AE1">
-</topicref>
-<topicref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita" id="GUID-C9EADAE2-7A97-43E3-AF2E-BE811F0A7099">
-</topicref>
-<topicref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita" id="GUID-6A96548F-5332-42FA-A305-8DB9B5DBB184">
-</topicref>
-<topicref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita" id="GUID-B8919844-063F-4D16-9A25-C509A1A69328">
-</topicref>
-<topicref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita" id="GUID-E4B32D87-7528-433F-BC98-CE46C10E40C3">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-1152B0FB-38B3-49E9-9001-F849A8AB4B02">
-<topicref href="GUID-BE3B53A8-B06D-53C4-8FC0-85B3BA4F39EF.dita" id="GUID-F55AD901-E673-4C5A-9FB2-66B74C1517FD">
-<topicref href="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita" id="GUID-0384B59B-0EAF-41E4-8106-DC3BE7798330">
-<topicref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita" id="GUID-53731E85-F541-4D23-99B3-87495AB22303">
-</topicref>
-<topicref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita" id="GUID-68FB3FAD-E018-4C7D-AB87-B51E17E7A127">
-</topicref>
-</topicref>
-<topicref href="GUID-00631ED2-1B7F-5FC4-9E81-4B6DF7946631.dita" id="GUID-70B17D27-0AE8-4065-B666-95923154C359">
-<topicref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita" id="GUID-458D528A-4800-4791-9B5C-97FA83F6969E">
-</topicref>
-<topicref href="GUID-B82FBA26-6B34-4387-A5BC-758B74F37E5F.dita" id="GUID-842E7B84-465A-457C-BE65-70492BF7A9EC">
-<topicref href="GUID-335A4B77-20C4-52B9-88AA-58540269E321.dita" id="GUID-FA5D93F9-0CDE-4267-B9C4-5A2D03227B1A">
-</topicref>
-<topicref href="GUID-9B428B4E-83B7-5EE3-8D63-E2B0602D1D91.dita" id="GUID-A60D3F41-B0D0-4ED3-BA90-990D90B034DB">
-</topicref>
-<topicref href="GUID-CD8A3420-6C9B-5774-86FA-85CFE062C400.dita" id="GUID-E28C5263-07FC-4E9F-9B2F-F57146ED96BF">
-</topicref>
-<topicref href="GUID-62195532-3FD0-5A3B-90E6-D624C4A60594.dita" id="GUID-0451FEB7-D5B1-4FBB-91E9-9C2673EE14C2">
-</topicref>
-<topicref href="GUID-3987D040-27F7-5226-96AC-D578ECA4C0A2.dita" id="GUID-736B9C9E-6359-4959-95DA-ACB60DF1F758">
-</topicref>
-<topicref href="GUID-DA0F4990-DDC4-5B0A-A446-A3C8672DA95A.dita" id="GUID-F72F8F44-DC77-4DB6-9EB4-5795D8C571E3">
-</topicref>
-<topicref href="GUID-7811C33D-96D3-5001-B4D3-92BF44F39B2C.dita" id="GUID-9CD9EFC3-4D4F-48FF-B94B-DC254391F9A0">
-</topicref>
-<topicref href="GUID-20DDA21D-B5DE-5D24-9E75-69C68EAF1782.dita" id="GUID-3D3AD723-E44F-4586-A000-FCC250D1A154">
-</topicref>
-</topicref>
-<topicref href="GUID-A60C4549-9FAA-496A-B743-D395A461B61F.dita" id="GUID-DD3A2B4E-704B-4C65-B27F-806B37F13452">
-<topicref href="GUID-7BB38C3E-BEA9-545B-AEC2-5E9078D0B8A2.dita" id="GUID-3B37F9F3-F768-45A2-8E0D-3404D877D1AF">
-</topicref>
-<topicref href="GUID-8FDCABBB-AD6D-513D-9FBF-631DC1846D20.dita" id="GUID-A49A9A27-3839-4633-8C31-5DEE05C0047C">
-</topicref>
-<topicref href="GUID-710FADA2-7A6C-5D60-BCE5-8772071F2BD4.dita" id="GUID-1ECCA3BE-7A70-4FCF-AEEB-C9F5DE3F4B88">
-</topicref>
-<topicref href="GUID-3BDF7402-8AD6-57C7-849A-145E08EC7E86.dita" id="GUID-FA7A221F-2305-49E2-ABD3-58888F2B383F">
-</topicref>
-<topicref href="GUID-0F1D1BC4-C8FB-55BE-83FE-DD604C4A9CA3.dita" id="GUID-302D0879-2CDA-4523-B45A-371D6029D8D8">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-3AF6CE70-DDBE-53F3-ABB6-7E78A300F14B.dita" id="GUID-0365E3EA-4974-43A4-A824-EF689E0A9B8C">
-<topicref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita" id="GUID-FAD24B62-5EE8-495A-A3B2-58E0DA4ACF5D">
-</topicref>
-<topicref href="GUID-12D1EE2F-AF1E-4C53-ADC8-D8BC205BD063.dita" id="GUID-9FAC7774-8025-4EA4-BD75-62561B867F3F">
-<topicref href="GUID-CF34D34E-FF17-5395-A1CD-768414E0B014.dita" id="GUID-ADA779A4-CF81-4692-935A-3906F72ED0CD">
-</topicref>
-<topicref href="GUID-36FD1F9A-FA1C-5822-A95F-720600E8F418.dita" id="GUID-2B962216-4FEA-4953-A44C-27A72C89BE31">
-</topicref>
-<topicref href="GUID-1361A508-D3DB-53F8-B1A1-34646F777B88.dita" id="GUID-981FA912-C65A-4AC2-B895-617D5C0CDEF3">
-</topicref>
-<topicref href="GUID-58ACE248-BF26-57BB-B5D2-C772FC046222.dita" id="GUID-CF6C70B5-AF81-4B0F-BE88-1687DA662711">
-</topicref>
-<topicref href="GUID-DCFD4CA0-6FB2-5339-BCFF-5B48E3E7E455.dita" id="GUID-EC080E73-7862-4887-81CD-DFF7D84CD610">
-</topicref>
-<topicref href="GUID-200BA7B9-70A1-5D15-8CFF-FBD18930757D.dita" id="GUID-D7454A11-C454-43BF-85F8-130169C5D29B">
-</topicref>
-<topicref href="GUID-0E226657-1A19-5601-B392-4E9A0BDB4014.dita" id="GUID-457A9CA7-619E-41B8-A920-9A2BA95AB0A0">
-</topicref>
-<topicref href="GUID-92156269-0645-54AB-9075-EE7708D333F4.dita" id="GUID-D42E845F-D47C-43D2-8E79-AA1CA1CB2BE5">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-34B36F04-D707-5357-8073-3B9FF7B95B22.dita" id="GUID-9C71A396-3599-4961-A7E5-349D2BB11660">
-<topicref href="GUID-06730728-30C5-51FD-BD37-FB62F2958D28.dita" id="GUID-D3ED738B-2D63-4C16-A468-DC91E5E10C54">
-</topicref>
-</topicref>
-<topicref href="GUID-6061361C-01F7-5BB1-87E1-46CBF9CCC44C.dita" id="GUID-AA85FFB0-57B2-4786-A0B5-2B70FC999EB3">
-<topicref href="GUID-49363088-CE0B-558D-8E86-48400E4F7C2F.dita" id="GUID-F7B959D6-C63F-48D3-9C1B-17F05A9E30AE">
-</topicref>
-</topicref>
-<topicref href="GUID-27E38FBB-F417-56C8-BFCF-B32215668902.dita" id="GUID-3AA59722-FFD9-4477-82A5-A05C797D3212">
-<topicref href="GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495.dita" id="GUID-CE184513-F926-4CB1-8B8A-AB00D2145868">
-</topicref>
-<topicref href="GUID-2A39CCBD-CADB-56B7-872A-1EC617AC7D93.dita" id="GUID-160B9981-F817-43DB-BE4B-FC28F8B3FC2B">
-</topicref>
-<topicref href="GUID-082E47B3-8AAB-51B7-93F9-3C528B97D0A9.dita" id="GUID-A029A8F3-DCDA-4DCA-9B6B-185E7BC3B4E9">
-</topicref>
-</topicref>
-<topicref href="GUID-F6BC696F-0279-5902-B945-AEF7257D3EEB.dita" id="GUID-803CACF1-22C6-4CAC-8B91-1F9132A83611">
-<topicref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita" id="GUID-A7FC96A3-0B1D-4E30-956B-02C834C3CF5E">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-0DF3B851-ED46-49F0-AAF7-A4AE157E3A9D">
-<topicref href="GUID-315452C2-A1E2-5888-A694-6D2DE73A3F5E.dita" id="GUID-81FE6296-A5EF-4069-BFC1-5ADD85AB48FB">
-<topicref href="GUID-BC191AA8-696F-51A2-801F-B3F952037F54.dita" id="GUID-8700FE0E-8762-44D0-AA4B-5365C740A2F4">
-</topicref>
-<topicref href="GUID-6F73ED8C-E259-5717-AB84-0C2933A866DA.dita" id="GUID-03A19A75-0451-47BE-85CB-EB97B4964AD7">
-<topicref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita" id="GUID-179A4E83-AC80-4508-B069-0DD22C906407">
-</topicref>
-<topicref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita" id="GUID-74CADC8D-2CFE-47A2-9EF3-714460475F06">
-</topicref>
-<topicref href="GUID-5C58F7D1-D672-5B6D-AD48-863EC68F7446.dita" id="GUID-BFD81FDB-B035-43D6-9D05-0A9F4698BA3A">
-</topicref>
-</topicref>
-<topicref href="GUID-BA362536-C9C9-5BA4-BEE3-0E1AD7FA45F1.dita" id="GUID-A28EE2E1-FEA3-4165-B85D-E13F0A63F897">
-<topicref href="GUID-5329AE68-39E0-55E7-9878-2D8FF9E29B21.dita" id="GUID-95A7A17B-FCEA-4E2B-B097-305272068CA5">
-<topicref href="GUID-1A5C7320-B017-5CD9-B3EA-1301CC08A762.dita" id="GUID-BC0AAD69-BF55-40FD-B59E-ADD2CDCB0D68">
-</topicref>
-<topicref href="GUID-66022FF4-3044-51E6-88CE-FE3B1283C0CB.dita" id="GUID-631EDBEE-E446-4D64-B9F8-625C3B8CCE04">
-<topicref href="GUID-6BE03135-6192-5520-AE8F-80BDB3187259.dita" id="GUID-DF806A31-D614-45C8-9FCA-09F068DC3F58">
-</topicref>
-<topicref href="GUID-4E838A77-C7B5-5B1F-93F5-F3577901914B.dita" id="GUID-4734154E-C745-407D-BC54-275CD0AD1FEE">
-</topicref>
-</topicref>
-<topicref href="GUID-B2089965-546C-5FF2-8596-13A2221E02E6.dita" id="GUID-4C38BE3E-0AF3-4FD2-A6A6-EF25682A6879">
-<topicref href="GUID-43080A86-72D3-5422-953E-A5EF79961D7B.dita" id="GUID-B8D8AC14-CE7F-4A75-988D-57FFA9291BBA">
-</topicref>
-<topicref href="GUID-A8130D83-E684-5B6C-BDFE-EB6EE3CD49E8.dita" id="GUID-4512D3AC-EB32-431D-8138-BE8E4D774BFC">
-</topicref>
-<topicref href="GUID-DB827750-6057-537E-8FE1-8F68BF2E9F99.dita" id="GUID-2A307384-62F7-4776-AFE2-2FAB39D03054">
-</topicref>
-<topicref href="GUID-85D9878E-4FEF-5E45-9F87-53634CD171E0.dita" id="GUID-D38B8430-A4C2-435F-8ECC-1F3053778ED3">
-</topicref>
-<topicref href="GUID-CCD3B91F-9E7F-5CE2-8AFC-4ABF787E5614.dita" id="GUID-151600CE-663F-480F-874E-645AEE1FE813">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-A40376B6-8B2B-551A-B72F-CFCADBC84BE7.dita" id="GUID-BD331CE9-8083-435D-BD8A-400663B825DE">
-<topicref href="GUID-8933D7D5-F84D-5BF2-BF2A-832DA183E26B.dita" id="GUID-71404B23-2AAE-4F1D-80C3-5B739FFBE0E8">
-<topicref href="GUID-2BB17FB4-07A9-52E3-A650-570A16FA771D.dita" id="GUID-CD230DF1-2F5F-47DC-A7CA-14B08D65273B">
-</topicref>
-<topicref href="GUID-9CB10936-3201-546D-BC81-B53293EE1933.dita" id="GUID-E242CC45-255E-4885-A657-05DAD6026877">
-<topicref href="GUID-6FCAB5DC-D3E9-5406-8B9E-E1B1CF18C73F.dita" id="GUID-0B4E50C5-E802-4EFA-875E-95EA98B15743">
-</topicref>
-<topicref href="GUID-6849E256-6719-5788-BCB2-7557F09AAAD0.dita" id="GUID-D83BBCCE-45DE-4637-A195-77B313CA83F2">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-4B03733F-D84D-5A28-B772-2E256D86ABC7.dita" id="GUID-BD938D78-4DEE-4978-BE52-B9C83F1A1200">
-<topicref href="GUID-04FB9E08-DDFE-53B1-B8E1-687A1AEC4286.dita" id="GUID-DB00D96E-34D2-4A16-A8FB-C2D68AC3C31E">
-</topicref>
-<topicref href="GUID-B1B3C5E6-9F38-5A55-A30E-4C7591B446CC.dita" id="GUID-9A6198B9-DDCF-4CDA-BFCD-1DD148BF41A0">
-</topicref>
-<topicref href="GUID-7C96B363-7891-50D3-A40F-92B9CBC4624C.dita" id="GUID-5BB27E4A-87B0-468C-82FF-2B44B87CA0B8">
-<topicref href="GUID-9473F793-29ED-42ED-933B-A995E56E71CB.dita" id="GUID-37B238E4-B966-4336-A50F-C41C995F9835">
-</topicref>
-<topicref href="GUID-13BDBFA4-49FE-4D62-8B5F-BE3DF3ABAF3E.dita" id="GUID-A0F2777C-A4F6-4C2E-82F5-54231CB5C56C">
-</topicref>
-<topicref href="GUID-D8A18789-3A3E-4E4A-9D34-35F83BF71449.dita" id="GUID-A1026EC8-97AC-4994-8159-CF143550DF52">
-</topicref>
-</topicref>
-<topicref href="GUID-C119A79A-D705-50B3-B174-70F517947BBD.dita" id="GUID-BFFEC8C1-D62F-4B38-8ED4-4F2EB974C913">
-</topicref>
-<topicref href="GUID-6BD23C4F-CBF7-584D-81D9-EB8D14DC3081.dita" id="GUID-53B91569-D9D6-4DF7-A409-4CA13444C8B3">
-<topicref href="GUID-C83D7112-0CF4-588D-8A0C-D27AB387F4D3.dita" id="GUID-1CBF0E66-846A-4793-86B1-9EAA9BBC8D3E">
-</topicref>
-<topicref href="GUID-46D6DF29-38F7-5842-9FDD-82754AE8D9A0.dita" id="GUID-C05DC20B-2EB9-4A71-AD50-3CFEB1CFD2D6">
-</topicref>
-<topicref href="GUID-FF6F26C7-0037-5117-9232-6FAFFA152F0C.dita" id="GUID-72D9725E-B051-4162-A7FD-4FAE74F7C4EE">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-C00FBDE4-EF59-5FED-BA92-625414AF45AE.dita" id="GUID-C191CF05-80C9-4CDE-9222-64CAAE873AF2">
-<topicref href="GUID-16BA7B80-DC75-512C-AAEC-F571B5B73F09.dita" id="GUID-1D60D3EF-9BA3-4B99-93A8-09BEC0553B5E">
-<topicref href="GUID-3FB8AC96-209B-5B1E-8139-BA2D858CBF2F.dita" id="GUID-2492ECA9-C156-4B82-9C6A-D5E4C172DF9B">
-</topicref>
-<topicref href="GUID-058D9E7F-5F4B-5656-BA49-16ED2D1451AE.dita" id="GUID-9321BA73-64C0-4506-8E4A-3448A5870A31">
-</topicref>
-<topicref href="GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3.dita" id="GUID-2A23B1E2-C8D0-4F2B-A17C-90E7330EFA40">
-<topicref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita" id="GUID-AA29B9B2-BB01-4543-BD84-BDA1826B35FB">
-</topicref>
-<topicref href="GUID-D88AA184-6E22-5069-A249-5AD83F548C56.dita" id="GUID-B39104A5-2141-451A-A238-ADBFC893A8FA">
-</topicref>
-</topicref>
-<topicref href="GUID-0B2245C5-766B-5CF1-8A0C-DD98CEEEBB05.dita" id="GUID-8D87CB20-D7FE-4BA7-8CFB-DE8FCDBC7E52">
-<topicref href="GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE.dita" id="GUID-934E12E8-FF94-43EC-9A6E-CD69BC9F652A">
-</topicref>
-<topicref href="GUID-0CD273A2-434C-52E0-B840-CCF24B2853B8.dita" id="GUID-EB168FB2-5875-4870-A6DF-B1EFE4322790">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-2663ED06-8C97-5867-B7F6-6167EBFEA223.dita" id="GUID-E97BFE2A-0608-471D-B812-EE5E4A15E60B">
-<topicref href="GUID-C3846503-BEFE-5539-B7ED-FD1915D38380.dita" id="GUID-A8DD14DB-3BC3-43A5-9D4D-82036F530DB0">
-</topicref>
-<topicref href="GUID-314992D7-F6E1-5335-9EDA-DE89E67CDF57.dita" id="GUID-8696FEBE-B0FC-406E-92C5-115114A470A1">
-<topicref href="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita" id="GUID-C2A7BBB2-E976-41A7-AB11-D2DFDBA60297">
-</topicref>
-</topicref>
-<topicref href="GUID-C3290344-486B-554D-97FC-42DF48E150AA.dita" id="GUID-8B64EF1E-C4B8-4AB0-9A43-47AA9B66B336">
-<topicref href="GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5.dita" id="GUID-8B6A4AF0-E001-42CC-8F67-E3332C094071">
-</topicref>
-<topicref href="GUID-69B005F8-9038-546F-8ADF-8499984A18E1.dita" id="GUID-2A400DE0-D2EF-41FC-BF88-E639CAB8F1A7">
-<topicref href="GUID-E326C00B-6E07-5902-AB19-F00D1761795C.dita" id="GUID-019B3E04-FAD8-4FEA-A551-420082AE96F5">
-</topicref>
-<topicref href="GUID-C93D021E-D99A-5839-AB54-3D8D7620214A.dita" id="GUID-B480F1BF-8AA0-48FE-ACD3-906E48E73A64">
-</topicref>
-<topicref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita" id="GUID-C764BB21-D45F-4341-B1B3-EC4B591187BF">
-</topicref>
-<topicref href="GUID-A636C1B3-8AB2-52D7-BB19-4CC93F4BDD97.dita" id="GUID-5966D456-718E-4EDD-A23E-0DD09CFC6A45">
-</topicref>
-<topicref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita" id="GUID-48871D91-F0E9-48B9-AAD6-16C30A441545">
-</topicref>
-<topicref href="GUID-116AB921-B063-5CC2-962F-A74562F20EAE.dita" id="GUID-FC851EF5-3EF3-4C1F-9F89-8A72DB9D2986">
-</topicref>
-</topicref>
-<topicref href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita" id="GUID-5AAF05A8-C6A6-4C89-BFB8-BF15BAAC4C2D">
-<topicref href="GUID-0F4DE9E0-4A98-5914-9AB1-DD6CE1A5A1F3.dita" id="GUID-CA61706B-4880-4342-97A8-606BC42020DB">
-</topicref>
-<topicref href="GUID-0010EB39-8C23-5453-BE96-4EFC520B6F81.dita" id="GUID-B6AB3D64-9307-47B7-BC1B-B331DAEFC217">
-<topicref href="GUID-037225BC-AC45-540E-A899-1B8AB9112D6E.dita" id="GUID-12F5AE98-89AC-4E32-AED7-20E40FE24CCF">
-</topicref>
-<topicref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita" id="GUID-2D90018F-6231-4543-9C87-0DCF64E5550A">
-</topicref>
-</topicref>
-<topicref href="GUID-695FCEB8-EA04-5C1C-A197-648275BA0281.dita" id="GUID-B4B84B1D-A5BC-479E-844A-09DBAB1C76ED">
-<topicref href="GUID-C4389D60-2A8D-532D-9D92-E57B0CCD14CF.dita" id="GUID-918AB8C6-D7AD-4D97-985D-85294105E999">
-</topicref>
-<topicref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita" id="GUID-C9F4B3E4-8114-4DF3-9EAA-3CE83AAEA302">
-<topicref href="GUID-A56D550A-BF08-5D9C-A64C-67E8654F449B.dita" id="GUID-0582C3A5-8250-4690-8514-71C5C50BBA2D">
-</topicref>
-<topicref href="GUID-384A25D6-EC89-576E-857F-D8D26292FED9.dita" id="GUID-F69D8DE0-9737-47EA-8842-82CA007F71A1">
-</topicref>
-<topicref href="GUID-389F1390-5752-5F2E-B2F6-724F9543BB35.dita" id="GUID-410DB305-54BE-41A9-8F42-3CFFD1636EB4">
-<topicref href="GUID-F6625E22-BFB2-5367-A1A8-916252999B78.dita" id="GUID-E76ABC24-DFB6-44C5-8954-353F7BCEDA68">
-</topicref>
-<topicref href="GUID-93069514-BC40-5E53-B126-F5C5C43C3D83.dita" id="GUID-4DEB13D3-28E8-4D5D-B73B-9D907E139128">
-</topicref>
-</topicref>
-<topicref href="GUID-6A770434-EF8A-5ECC-BB74-2E7FC4A9E360.dita" id="GUID-11CB09AB-8533-4783-B945-6F7584390C55">
-</topicref>
-<topicref href="GUID-98B0A83B-0064-598E-BE88-84305CA6A4F1.dita" id="GUID-7142807B-32AD-4324-8B6C-4F7CE3C675C6">
-</topicref>
-<topicref href="GUID-85EAD2EA-6ADB-5866-9784-5E2B30E661AF.dita" id="GUID-A51917A9-FE0E-4B35-8400-FB0CB68A70D7">
-</topicref>
-<topicref href="GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita" id="GUID-E1272611-FC7B-461C-A1C6-1AB29D68188C">
-</topicref>
-<topicref href="GUID-F446E658-B717-5257-9C5C-442B07B19565.dita" id="GUID-90A21C12-FB47-4706-8651-124C302697AB">
-</topicref>
-<topicref href="GUID-60141F31-6061-5C65-809D-FE7A4F8414F7.dita" id="GUID-8BDA5F0D-282F-46F6-B841-837112E9A96C">
-</topicref>
-<topicref href="GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8.dita" id="GUID-E34BD5D1-F8A9-434A-867B-E9188AD983E3">
-</topicref>
-<topicref href="GUID-1733B4E1-3264-58DF-957B-F5C0AE1E0644.dita" id="GUID-69EB2719-800B-4583-8C31-A21E44314D10">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-92025FE2-16B1-59FE-9967-6972F6E7D4CA.dita" id="GUID-E6062833-7DEC-49CE-9319-DD65BFAF8423">
-<topicref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita" id="GUID-C8AA553B-D6E8-4821-B75E-4E2300072F1F">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-96FCFD9C-E6EB-4B07-B42D-1B2B2BA58DDF">
-<topicref href="GUID-4CF8E6BC-3E2A-5773-A296-6321573B967E.dita" id="GUID-28DD95A1-22A3-469E-82B9-AF61299AA137">
-<topicref href="GUID-0F875AD4-F3A1-5AAA-81D3-E60436472443.dita" id="GUID-CAFD6CF6-C005-4CDA-89AD-DCCFF13A1F1F">
-<topicref href="GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita" id="GUID-D3326F92-7282-493E-BC1A-75C5C1DACFE5">
-</topicref>
-<topicref href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita" id="GUID-07D043E7-9C1B-4A8E-A08E-E24EEF0B4857">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-0D081EFC-54DE-4EAA-BF1B-AF2AC12863AB">
-<topicref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita" id="GUID-67ED2AD3-D732-42A2-91A3-8F672143FAC8">
-<topicref href="GUID-071A1E59-FE77-5D4D-B4D1-E6ECDF68BB03.dita" id="GUID-250600ED-689D-4875-92E8-1883BD1FB4F9">
-<topicref href="GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF.dita" id="GUID-5E7D0D15-2158-4D75-85C4-6D9639273C0E">
-</topicref>
-<topicref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita" id="GUID-6A642E5D-EC1A-4546-B79A-37B6DA872FA5">
-<topicref href="GUID-8451102A-8E68-5C86-9E40-D53183E32261.dita" id="GUID-BB30E472-B4E2-4A32-B1DE-A0EA77FBD514">
-</topicref>
-<topicref href="GUID-756D831F-F302-594C-8116-144358DD8442.dita" id="GUID-E86A277F-15E5-4C25-BA95-5812CFC99AA3">
-<topicref href="GUID-E5893C4A-024A-53A7-805F-68989382DC3F.dita" id="GUID-27170F08-6E67-4ADF-AC37-5C0BC5FBADB9">
-</topicref>
-<topicref href="GUID-B75BD3DE-9C2E-5429-B55B-891462B92795.dita" id="GUID-7C0031D2-8EE9-42E2-A579-78C2D43E4C97">
-</topicref>
-<topicref href="GUID-E2A2FA2A-5D9A-56FE-B7E5-69CCBC656BB9.dita" id="GUID-CF1F742F-21EF-447C-8227-C07BBD027A9D">
-</topicref>
-<topicref href="GUID-2373A158-C18A-51B5-BE9A-6B8F7FC63A35.dita" id="GUID-46536247-8903-417B-A49A-43EDC7DC5451">
-</topicref>
-<topicref href="GUID-33210C48-3198-51BC-9970-8B29F711A8E2.dita" id="GUID-DA7667F7-5407-4199-9E58-CA910A106332">
-</topicref>
-<topicref href="GUID-ED342E6B-A4A3-576B-8934-7E7C049837F0.dita" id="GUID-BAABCE77-6145-411A-9BE2-21008824EB0F">
-</topicref>
-</topicref>
-<topicref href="GUID-8D5E17DA-8EF1-52B4-9706-9836B8D6CE43.dita" id="GUID-2D3EFCB5-54E4-4995-AD8E-1A381C4CECE4">
-<topicref href="GUID-2F1C6B4C-2C23-5A35-A0D2-223EC6238F7D.dita" id="GUID-D5478B8C-932D-45A6-9A39-709FE540FF48">
-</topicref>
-<topicref href="GUID-275D7892-EEBD-5DBD-A9D7-F6A715B79659.dita" id="GUID-5645F884-F8B2-4B80-B595-14C41A4874EF">
-</topicref>
-<topicref href="GUID-1EA7B3A5-7A94-5E8F-A0A8-9CA417E14032.dita" id="GUID-55AD9E0D-1D13-4592-B30C-0D152985613B">
-</topicref>
-<topicref href="GUID-65F8675F-FF08-5707-BA5B-BF3B4B779393.dita" id="GUID-C4964C6A-AAB2-40D9-9EFF-63BAEFDC6E18">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-EA15E87C-6A24-50B1-9FAC-9ACE8911ABD5.dita" id="GUID-5EFECCAB-BD66-42B2-90ED-737C876BF11C">
-<topicref href="GUID-AB0A3E87-6725-5E83-B462-1219CE205187.dita" id="GUID-6DBD7610-0E20-4CBB-8BE8-8BAD4093DEBF">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-ACB3786B-38EB-58F4-87B6-6A46A390B154.dita" id="GUID-75EF3A6F-C6AE-4776-AC21-A023C7933F65">
-<topicref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita" id="GUID-83512EFB-A19F-40FB-B599-178E6BA29EF4">
-</topicref>
-<topicref href="GUID-0F3E543D-CFEE-5CD8-8BAB-19B3A993388F.dita" id="GUID-62318BD7-8215-4286-91CA-1E133251A613">
-<topicref href="GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902.dita" id="GUID-531D4114-6B3E-49B2-8D66-724A7486F46E">
-</topicref>
-<topicref href="GUID-308A481C-2280-59CE-AE85-83047B11BBE4.dita" id="GUID-F2DE364E-F03C-46D8-A1B1-3E26AAA7F558">
-<topicref href="GUID-91C4F00B-E241-57DC-8520-8C16A302C983.dita" id="GUID-429BA256-73AA-482C-9EF4-0E45F9C03321">
-</topicref>
-<topicref href="GUID-685AD682-10DC-553B-9C3A-04D0376138C4.dita" id="GUID-38B774F6-7AC0-41A2-826C-2ED7E9E627D8">
-</topicref>
-<topicref href="GUID-197648C4-A42C-5769-82B7-F8BA510631D9.dita" id="GUID-DD4C5176-678A-4A0D-9673-62BF0CEB16D2">
-</topicref>
-<topicref href="GUID-50CDF6E0-C352-5771-8686-B551267C6BE6.dita" id="GUID-18B49608-1B3D-4743-825E-F4E1850A51AC">
-</topicref>
-</topicref>
-<topicref href="GUID-0DBB2379-6FCB-5D1D-AE5A-2DC7C498F479.dita" id="GUID-5D1DEB78-9EDF-4005-9F57-FCBE450D1684">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-6CE12919-FF81-5254-BA12-385F589FEA44.dita" id="GUID-BE6B1B37-049D-4E4A-B5F3-4356AF18EB8C">
-<topicref href="GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF.dita" id="GUID-EDE36566-FEEC-4F80-9D95-518E3FC36982">
-</topicref>
-<topicref href="GUID-7F2C1C45-43FA-5F19-81E3-4DBC0328E4A7.dita" id="GUID-186A9914-DA41-4FCE-9FF3-6B082C1EB137">
-</topicref>
-<topicref href="GUID-11E05C4A-CC94-5A0E-9D07-1863FB03747F.dita" id="GUID-A09E31D8-6832-47AF-B1B7-F3CFF53D5A2F">
-<topicref href="GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0.dita" id="GUID-8F74C24F-0755-4454-87C8-220C9D230C2D">
-</topicref>
-<topicref href="GUID-9668ADA2-7170-57AC-A5D7-1350894413FF.dita" id="GUID-3375F1F5-A1D8-4146-82BB-74129795E784">
-<topicref href="GUID-C49F63A4-BA9D-5C99-8C82-EB3163E30D3E.dita" id="GUID-88E735F7-B0D1-4519-AD4E-718EA64DFB39">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-8411E1C9-C6CC-5B0A-BEBA-74D0B8AABF35.dita" id="GUID-43307B63-B7D3-4118-9F1F-2A0E80A23D72">
-<topicref href="GUID-5E1C24CA-2F82-5E30-8981-0F343FF2BD89.dita" id="GUID-44947C7D-4E03-428E-B4CB-51BDF79C1F4D">
-</topicref>
-<topicref href="GUID-F2A793F1-A5B5-526B-B147-771D440B13A2.dita" id="GUID-032C706D-5346-4CBE-A37B-769960F05FE5">
-</topicref>
-<topicref href="GUID-783D0B50-0E8A-5199-A07E-749D4A71E671.dita" id="GUID-125A7970-CE51-49B5-9AFF-4C8C32FB447E">
-</topicref>
-</topicref>
-<topicref href="GUID-5FE7D4DB-B853-57C4-8A90-16DF92F6231A.dita" id="GUID-ACD03142-9119-4C68-8019-74B73DFD5F0D">
-<topicref href="GUID-58F65411-CF08-5F46-8222-3FDB9E571FCC.dita" id="GUID-1FED5784-54F6-4480-9813-A8EF2ECA57A6">
-<topicref href="GUID-301488F8-B6D8-569A-B05E-19B740FE4C00.dita" id="GUID-E29C2DDE-8331-471B-945B-6CE02940971A">
-</topicref>
-<topicref href="GUID-CED041C8-D68D-55D1-957E-1A48EEFFF851.dita" id="GUID-8194F37F-E7F3-458E-822F-B74683CD8B69">
-</topicref>
-<topicref href="GUID-A13494B9-C1E4-506A-B236-8AE0A6D6D557.dita" id="GUID-ED718732-110E-444F-9602-C51090907760">
-</topicref>
-<topicref href="GUID-A24D2CEF-88C9-5C63-A14D-85EFFBEF3C92.dita" id="GUID-546A42D5-1970-4EEF-A56B-D4C5421ADAAD">
-</topicref>
-<topicref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita" id="GUID-5911612C-0076-420A-B3A1-E0DFEC1DDAC8">
-</topicref>
-</topicref>
-<topicref href="GUID-70339E6A-63CD-5A74-846C-50771FDAC763.dita" id="GUID-5E7CE12D-902C-4E73-8871-5727A12EE5E5">
-</topicref>
-<topicref href="GUID-834BD3BB-B39C-5EE9-8A62-9DC435930F95.dita" id="GUID-9C01DDFC-1B63-43D7-AEEE-B244E474D00D">
-</topicref>
-<topicref href="GUID-FDA7B932-B9C6-502D-8699-C18C8D86BCC6.dita" id="GUID-F061E79C-A760-4FD1-B9C5-BB284CEBDCF5">
-</topicref>
-<topicref href="GUID-5C63EF5C-826D-5838-BB7E-12FF4EA1DFCE.dita" id="GUID-2159BAED-6804-4410-B7F3-EFFA8CBEF9D1">
-</topicref>
-<topicref href="GUID-01A0682A-50B1-57AB-9939-6CC8FCCD782D.dita" id="GUID-2515943B-A01A-4762-93DC-A08BD6B3F716">
-</topicref>
-</topicref>
-<topicref href="GUID-A035B592-F423-5980-8E7E-E726CF24CF3E.dita" id="GUID-5CF0CA4D-560A-4341-90D9-9EB64870974C">
-<topicref href="GUID-C670D31C-82A7-519C-8506-3C4B99294B21.dita" id="GUID-9BADFB20-D2C7-4044-A283-B336E27140E8">
-</topicref>
-<topicref href="GUID-322A932E-5DC8-5CBB-BD3C-02F5CEDB060E.dita" id="GUID-7FA5C403-22E5-4068-A460-488A4AA80C6A">
-</topicref>
-<topicref href="GUID-39C9DD69-504A-529C-ABD3-A73DCAD3F8E9.dita" id="GUID-83E9B4C8-40ED-43B9-828A-841608011821">
-</topicref>
-<topicref href="GUID-A2793EFD-F765-5392-8471-C8A0C2FFC163.dita" id="GUID-960D353F-EB87-4A3E-9882-8B97A31F4FCD">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-A0849293-6F0F-4434-A571-BF7315E91E39">
-<topicref href="GUID-1DCA2F4D-ABE6-52A0-AC4E-5AAC1AB5909D.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1">
-<topicref href="GUID-762A665F-43D0-53ED-B698-0CBD3AC46391.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1-1-3">
-<topicref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita" id="GUID-BAC14B45-7C18-4709-86F8-765D8BF8CA72">
-</topicref>
-<topicref href="GUID-98B85D7F-7BD9-5056-A99F-0BC99D921B87.dita" id="GUID-DB2DECE2-39DC-4B5D-98C2-E1A627E2A539">
-<topicref href="GUID-78FB26E2-AA60-5531-B2FE-4FA6C88F2D47.dita" id="GUID-153B4AF8-340C-457C-975F-C1834F7C09DA">
-<topicref href="GUID-72986B3C-047C-5411-8F15-BC9C65C3289C.dita" id="GUID-B1AFADD1-F800-4E91-819B-1F9797EFF120">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1-1-3-1-7">
-<topicref href="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita" id="GUID-A23E9571-BA80-40D9-BEAD-B1EF681A0024">
-</topicref>
-<topicref href="GUID-89AD2E29-DF29-5B2B-9894-B7ECD62854F4.dita" id="GUID-A518779C-8C8F-4ACF-A6EF-6FA6486647C5">
-<topicref href="GUID-D76D4788-E65A-59A8-8DD9-7A8096E115D5.dita" id="GUID-D97B1A7D-1838-418C-9930-1353EFA6AB8C">
-</topicref>
-<topicref href="GUID-92A4F66E-252D-5C90-AE59-1B1991002D7B.dita" id="GUID-AB4E35FB-E159-4B06-99D9-D4D80E09A02B">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-DB453F9B-55B6-50C7-984D-7154F1E84AE6.dita" id="GUID-FB72C724-3BB5-412A-95F0-2863933B428B">
-</topicref>
-<topicref href="GUID-75C5A614-CEC1-5832-ACEA-E3C31B8A0DE8.dita" id="GUID-7632331B-C698-4641-8E85-3A0A1B3C6DC5">
-</topicref>
-</topicref>
-<topicref href="GUID-F3406651-0B57-50FD-81CA-A3D4000D5625.dita" id="GUID-5562D8CC-E89C-4551-9A5A-A675EC73ADC8">
-<topicref href="GUID-C71311A7-F747-57EB-B31F-6E634D5976A3.dita" id="GUID-FF6DB147-C7D0-431C-9A18-ECE9B58A2493">
-</topicref>
-<topicref href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita" id="GUID-2C18D42B-B958-4E2D-9710-1B19057F01A3">
-</topicref>
-<topicref href="GUID-E64C06D7-B138-5BCC-A814-3F9E2C517404.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1-1-4-1-5">
-<topicref href="GUID-6F2BFFD4-9A2A-5EEC-87A2-3B60CB7F9CD5.dita" id="GUID-41E7E132-0329-4ED9-872D-EF79AF36D876">
-</topicref>
-<topicref href="GUID-5BE31242-78A2-584B-BF00-B7805C219E40.dita" id="GUID-1E89537D-5B49-464F-91E1-702C757451ED">
-<topicref href="GUID-325D8E31-584B-5B10-902C-F004641A614D.dita" id="GUID-986936C6-CED7-43E4-AB9E-691207BF339A">
-</topicref>
-<topicref href="GUID-3FAECE72-FCC6-5C58-B724-C9A9DE485788.dita" id="GUID-73A5D0C3-59AC-495C-9375-1D8D2C324D9C">
-</topicref>
-<topicref href="GUID-77AC5975-D36F-585F-BC0B-DC1C2357BBF2.dita" id="GUID-0ADC8ECF-7D7D-4897-835F-119957288063">
-</topicref>
-<topicref href="GUID-5373B575-F284-5774-9C73-2A18C4A912A2.dita" id="GUID-0F1AAF86-907F-4199-B036-2FAAB45FE39D">
-</topicref>
-<topicref href="GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8.dita" id="GUID-860D9289-F038-4FDB-BF0E-9271ED3BE5E3">
-</topicref>
-</topicref>
-<topicref href="GUID-BD11A724-2364-5D40-A9D1-2774993BA4A4.dita" id="GUID-978946A3-3203-4170-9FBA-5CB00CF25632">
-<topicref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita" id="GUID-07C3C8AF-E4BC-4692-AF36-8052496AECA0">
-</topicref>
-<topicref href="GUID-2624060D-A5E7-590A-9FA0-471AE42A9BE9.dita" id="GUID-A78AE720-30BF-44F7-B75F-1A56829E57D7">
-</topicref>
-<topicref href="GUID-CD3B2B7D-BAE5-5F99-A5F5-74AFC678D986.dita" id="GUID-6D081A99-076A-421A-9818-2C37D5D7F2A0">
-</topicref>
-<topicref href="GUID-214A7085-185B-5D40-A613-E82E68968AAB.dita" id="GUID-28C3BE08-329B-4769-A2F7-C6EE4EFBC10B">
-</topicref>
-<topicref href="GUID-01F6E612-B151-5FC3-B08A-E17A7987F029.dita" id="GUID-DF9C94EC-D599-4302-9CA3-A133A8A8C7E7">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-E7ACEC20-27C9-5124-A46E-2812A64E3E4B.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1-1-4-1-6">
-<topicref href="GUID-001F6216-48AE-57D4-8985-65CF77B26F19.dita" id="GUID-16D03442-BF28-4BF6-98CF-ABAF89CE5A2F">
-</topicref>
-<topicref href="GUID-93491DAE-4D2D-5F5F-97E7-91B265E9951E.dita" id="GUID-C33E5113-A02B-4D30-AB40-B6B39D8AA5F8">
-<topicref href="GUID-F5F981E4-6910-5440-AE8E-2EFAB2D01EE9.dita" id="GUID-FE850A98-A275-4B29-8C98-DE520D31404A">
-<topicref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita" id="GUID-99E7339A-64CF-41B8-9224-BF9C580969EE">
-</topicref>
-<topicref href="GUID-FE94596E-B5BB-51FE-BE38-069840323915.dita" id="GUID-ECAEDAA8-F8C7-48D0-A487-AA6000F854B2">
-</topicref>
-<topicref href="GUID-0CD18555-07EB-545D-9D47-D69A6BE6D2C8.dita" id="GUID-08EB3EB9-D4EB-47DA-93EC-E9C836230E87">
-</topicref>
-<topicref href="GUID-B1254526-3C72-59E7-88C0-667FC051379F.dita" id="GUID-6FCE8F50-993B-4911-93B2-1A2C3F14D1B1">
-</topicref>
-<topicref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita" id="GUID-19A38E3C-C423-41B6-8C47-719E068DF1D3">
-</topicref>
-<topicref href="GUID-C524C3E8-D151-5AB2-8791-1342C297FFBB.dita" id="GUID-7995BF3F-7440-48CF-BC6E-843C9EDF3284">
-</topicref>
-<topicref href="GUID-4A9053C2-80ED-5FB7-B07D-E1DC5D965213.dita" id="GUID-1D243082-552F-498A-B5A8-6F7FAFD17E6A">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-0584846D-D4D9-5093-8FE5-764CCFBA813F.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-26-1-1-4-1-7">
-<topicref href="GUID-66231EA2-BDEF-582D-A4B9-F356B590038D.dita" id="GUID-E5427493-BA6C-4CB3-A42F-93DFAACC87D4">
-</topicref>
-<topicref href="GUID-F4320746-68DF-50B6-817A-24E46DFBF77B.dita" id="GUID-7344DB7E-DA2D-4D19-8444-3ACAE4D37026">
-<topicref href="GUID-026E865E-12FA-59A9-B923-309B65790E23.dita" id="GUID-6B7A5DAD-C567-43BE-B19A-FD03846EA05B">
-</topicref>
-<topicref href="GUID-2068DA42-AE77-5213-B3CF-C3AB7F2188BE.dita" id="GUID-030194FD-FDEE-4073-97CB-AE125532B191">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-4F901F56-7F0E-4869-85CA-6109ED0AF5B7.dita" id="GUID-3C17741C-78A1-437D-AC31-68BDE89E4762">
-<topicref href="GUID-533EC918-BF5B-5D0B-8860-1E8746A05EE3.dita" id="GUID-A54906C5-D466-457C-9E7D-FFBC22FFA443">
-<topicref href="GUID-0AA6186C-DD10-5811-940F-D26A7D34C66F.dita" id="GUID-DE6B1559-0650-419A-83EA-674EF7A44FBB">
-</topicref>
-<topicref href="GUID-60E8185C-04EC-5541-8392-5457808B9774.dita" id="GUID-E1A22C1E-6130-4D95-87B2-B8E7F0D2F5C3">
-<topicref href="GUID-6A5FAD55-DE84-569D-B5EB-1474DD2AF392.dita" id="GUID-52C77F0E-7D46-44B8-AF25-1DD36711434D">
-</topicref>
-<topicref href="GUID-BE26CD1E-C566-572D-9B2D-B6CFCA647C72.dita" id="GUID-E888FB03-D316-4532-81F9-BE7DF0A47347">
-</topicref>
-<topicref href="GUID-86E704A2-FB15-5D78-BFD2-0E7117360342.dita" id="GUID-A9032458-8F27-4225-904D-4EA89CFF7CD9">
-</topicref>
-<topicref href="GUID-56EA1BD6-DE61-5541-993A-2B60D1DE41AC.dita" id="GUID-8D9B1C3D-3465-4092-AB89-11A46F7748D0">
-</topicref>
-<topicref href="GUID-2999C8D1-5C95-5474-BB02-11182CC3A407.dita" id="GUID-54286EB5-27E1-4CA1-95CE-1F54C25595C5">
-</topicref>
-<topicref href="GUID-426DECE8-311A-5720-88BB-F2A4805648D6.dita" id="GUID-5F09A318-A8A3-4C1A-928B-C50C99659D9A">
-</topicref>
-<topicref href="GUID-CCFF2755-02EC-510B-A052-33ABA318B922.dita" id="GUID-608D7E59-8551-4232-BB25-C4594A11A565">
-</topicref>
-</topicref>
-<topicref href="GUID-2DDEF473-B804-51DF-874F-ADF46CB03ABA.dita" id="GUID-3C3063E0-F7F8-4371-836E-1BDF4CA01474">
-<topicref href="GUID-837333EB-8BD1-551A-BFB4-05BE2056E2DA.dita" id="GUID-CC428E14-788B-44D9-9EE2-50FB9BEA2050">
-</topicref>
-<topicref href="GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271.dita" id="GUID-48159105-6EF2-4871-A73E-D82A6A4A93B6">
-</topicref>
-<topicref href="GUID-E0D10091-1F66-428A-919C-BE8C95DEACD1.dita" id="GUID-E634B5DB-1C8F-49F8-987C-540643C96AE6">
-</topicref>
-<topicref href="GUID-157445C2-BFF7-5733-B87C-CC249D8506CD.dita" id="GUID-FCF4AD87-D48B-4326-B3EA-E3FA32EA488B">
-</topicref>
-<topicref href="GUID-80F83F9C-2B58-5238-AE38-1193BAE72CB0.dita" id="GUID-FC357812-8601-40D7-B0C2-9C3278E17C06">
-</topicref>
-<topicref href="GUID-74E69324-7BCC-591F-B2A9-2932A3790966.dita" id="GUID-EB5DD57A-ADE3-4C45-900F-9E4D5564AD21">
-</topicref>
-<topicref href="GUID-9761C39D-30E9-5BFA-ABF0-2C2377E3EADB.dita" id="GUID-445CF211-21BD-426E-ACCE-8C49940C4221">
-</topicref>
-<topicref href="GUID-AF408E56-D2CB-557C-9D04-C6F7CE1A5424.dita" id="GUID-C184CD46-2ECB-4816-A35A-B2599D2B9ED4">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-4CBFA2E3-0EFC-5E10-A960-57A8FF9A6025.dita" id="GUID-5A18F535-4BFC-4E4A-AA87-313637B9331A">
-<topicref href="GUID-3E7193C2-143E-58EF-B21F-9C0E1C65226F.dita" id="GUID-1671EEF5-8FFC-4E3D-8180-EEBD3688DC01">
-</topicref>
-<topicref href="GUID-F6C2C8D4-D3B0-5441-BF2D-6F42489198D6.dita" id="GUID-8810C414-874C-46D9-B539-3126FE0CAA7D">
-<topicref href="GUID-ED373BF9-A555-50E9-974C-82522206EFE6.dita" id="GUID-8F18956B-F28A-4617-944C-E68E08149DF5">
-</topicref>
-<topicref href="GUID-5C79E34A-4048-57C4-A7CF-2D56DC9702FB.dita" id="GUID-721D72BE-1366-477B-B4E1-1312C869F458">
-</topicref>
-<topicref href="GUID-51C6E337-9E68-542A-B785-670417A55CEF.dita" id="GUID-30325BCF-C405-430D-AD59-DCFE3E0AB19F">
-</topicref>
-<topicref href="GUID-EDAF2886-5296-53BD-B847-0E0D9B5FBF7E.dita" id="GUID-D67F7156-7ACB-41B2-8709-DBEEFD53DF21">
-</topicref>
-</topicref>
-<topicref href="GUID-136540F0-108A-5794-A0FE-D95260F4E59B.dita" id="GUID-FBBE3945-8A61-4046-86CF-9881426C20E7">
-<topicref href="GUID-55165C57-0F32-5363-A2EC-E37B5B36B6E1.dita" id="GUID-A3688089-B2B0-47C9-838B-D8CA58E5F015">
-</topicref>
-<topicref href="GUID-E9E26499-1102-578E-93F6-A8E14181A25C.dita" id="GUID-F004E8E3-5063-4019-BDE0-BD0E03A41BD6">
-</topicref>
-<topicref href="GUID-530DBEB3-2379-5567-BB10-45D21D6FF80A.dita" id="GUID-1AF91FF8-FFA3-4ADB-AFBE-C192E6E163BE">
-</topicref>
-<topicref href="GUID-DC0E3782-82EF-5104-937C-41F24DF1E1CA.dita" id="GUID-D4D3538E-AB46-4612-81AD-218C83D4ECC7">
-</topicref>
-<topicref href="GUID-1B58FBA8-4E2C-5A99-A4B7-D7475E1B8F96.dita" id="GUID-911F1BE4-96A9-4D2B-93FE-EFA97389692A">
-</topicref>
-<topicref href="GUID-1501D056-D068-5DE4-9408-17B530D75FC3.dita" id="GUID-BE8CC43D-4241-42AD-B615-D5815B825C6C">
-</topicref>
-<topicref href="GUID-74A4A88D-768E-51B9-B50B-81CF35D5D692.dita" id="GUID-2F25AB3D-6C03-422F-B7CD-A2F0FCB6F115">
-</topicref>
-<topicref href="GUID-23E18D4B-FB09-5BA9-9D31-E4875A0F8955.dita" id="GUID-5EE863AF-E3B5-4AE8-AC2E-8A9F3D99EF84">
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-609E77A1-30AB-4ABB-BE33-6C8B169819BB">
-<topicref href="GUID-82AF5F49-EE25-54C7-AEE9-D1F41BD5190F.dita" id="GUID-6E749BEC-C92E-463D-B97A-1CFCDEBDEF85">
-<topicref href="GUID-A25E730C-F34D-5464-BE78-650B3DEA4A88.dita" id="GUID-4EA3767E-BC4E-4CFC-A371-BC1CC73AD6E9-GENID-1-8-1-27-1-1-3">
-<topicref href="GUID-0129AE17-B171-5CD5-8542-1DB738CBAB8B.dita" id="GUID-56006F41-8489-4AA0-802C-5C87E31A1C09">
-<topicref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita" id="GUID-004E14A0-EF73-4D01-80E7-CB336FCC8EEE">
-</topicref>
-</topicref>
-<topicref href="GUID-05A3E75B-25F9-54AC-8AF8-3E97F832E626.dita" id="GUID-27F1444D-382D-4D70-B8B5-A6697EC9FCAC">
-<topicref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita" id="GUID-DD699656-9313-4A88-9533-6CCD1F124D87">
-</topicref>
-<topicref href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita" id="GUID-291F4C8F-BB14-4427-9788-8CA73192C317">
-</topicref>
-<topicref href="GUID-74E3A687-18BD-5255-9CB9-F4B01878A1E1.dita" id="GUID-1B5B2D99-27F7-4580-B28A-F25252725A6B">
-<topicref href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita" id="GUID-32016C75-E615-4166-AA1D-43E66249200E">
-</topicref>
-<topicref href="GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC.dita" id="GUID-9D2B63B0-B414-402D-AEB3-14FD57569282">
-</topicref>
-<topicref href="GUID-E20C2C98-A294-551B-99CF-BE1DAA6F597E.dita" id="GUID-44D71103-F3FD-4CEE-A17B-C592DF5DDE36">
-</topicref>
-<topicref href="GUID-92C2317A-57B8-558E-984B-B10FD0404981.dita" id="GUID-CC77E42A-E1A4-407F-BDD4-8A54CF7006B0">
-</topicref>
-<topicref href="GUID-49A7E8FD-72DA-5D56-86BE-74AA9AAF7C02.dita" id="GUID-DCC06C59-F47B-4AF1-AD35-B4CFC602EFD7">
-</topicref>
-</topicref>
-<topicref href="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita" id="GUID-9CF36E35-6525-427B-ABBB-161C05208E05">
-</topicref>
-</topicref>
-<topicref href="GUID-AF28D930-6BD1-5DC5-9BE5-7512241E90CD.dita" id="GUID-A617E228-F4F7-4D4B-9AB1-7A1BDB718C44">
-<topicref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita" id="GUID-75912659-75D8-4CBA-B7DF-CD4CFB2EAC71">
-</topicref>
-<topicref href="GUID-0D16866C-F46B-5A2B-B974-324278588A1B.dita" id="GUID-A908B890-31B3-4E9F-88CC-7A75DA9A0A31">
-</topicref>
-<topicref href="GUID-4A9255D1-42A4-57FA-A4B4-42C552964047.dita" id="GUID-8401926A-CA7F-47F5-976A-54B36DD9BA22">
-<topicref href="GUID-CB568D14-1B0C-568F-B9CA-DDD15C53EEF3.dita" id="GUID-7C852666-A6A0-4489-8B05-813D777BA1D1">
-</topicref>
-<topicref href="GUID-E16070E5-379A-5818-81CC-B00059A40084.dita" id="GUID-0268D616-E865-4E72-81E1-77212149984B">
-</topicref>
-<topicref href="GUID-F4099885-55A0-5ACF-A73B-9C647B02B142.dita" id="GUID-AEB9445E-4112-49F1-BD6A-47D8B14288D2">
-</topicref>
-<topicref href="GUID-E6B3E575-80E3-58E3-9950-E0A5F6798861.dita" id="GUID-C28795BD-D95F-45C1-9563-3E6958A17B00">
-</topicref>
-<topicref href="GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808.dita" id="GUID-73FF3B32-B5CA-492B-A9A3-13AF0509D80D">
-</topicref>
-<topicref href="GUID-23014C8A-2A0B-5F6A-9BB2-6642E1EC0462.dita" id="GUID-5552D35F-8776-4392-888F-09A8DBFAB69D">
-</topicref>
-</topicref>
-<topicref href="GUID-5DACAB53-6D32-5250-9BC2-3E8597C3E2B2.dita" id="GUID-256CB959-806F-4636-AC14-76794551CF98">
-</topicref>
-<topicref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita" id="GUID-632BF0DD-4CB9-4B3B-AD8A-B4298F556D98">
-</topicref>
-</topicref>
-<topicref href="GUID-77ECD89F-84BB-55F1-9876-382E043F0C0D.dita" id="GUID-05E081CE-E4DD-4B21-8439-15DB87CD2F20">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-<topicgroup id="GUID-EA3774CD-3515-432A-AA54-304DA20DD72D">
-<topicref href="GUID-F9F53050-AAFA-4685-8C62-033E585F061B.dita" id="GUID-490E52DA-6F7A-4654-8128-1598314FF925">
-<topicref chunk="by-topic" href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita"
-id="GUID-4CD4EE3F-59D8-4C7E-BA5E-B75AECFE655F">
-<topicref chunk="by-topic" href="GUID-D730D796-F640-4100-BD41-32515EF086F1.dita">
-</topicref>
-<topicref chunk="by-topic" href="GUID-9D6E0EB4-CBF8-48BC-A76F-FE6366D4D96E.dita">
-</topicref>
-</topicref>
-</topicref>
-</topicgroup>
-</chapter>
-<chapter format="html" href="specs/guides/index.html" id="GUID-BB0A01F8-7698-498A-9083-C8EE2753F027"
-print="no">
-<topicmeta><linktext>API Specifications</linktext></topicmeta>
-</chapter>
-<chapter href="GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita" id="GUID-D1BC02D8-6A39-4189-BAA0-5E473B9AAB22">
-<topicgroup id="GUID-4E2277E1-0F1F-4BC8-B1B6-663D757CE7D0">
-<topicref href="GUID-A294084E-B5BB-54C6-A622-49F20E8C927B.dita" id="GUID-414C7955-9738-4692-B942-BF293A4433FA">
-<topicref href="GUID-D9AEB0C8-D219-5DC6-B3D9-6D029F190902.dita" id="GUID-BB6BF6EA-D3E9-421A-B4F4-AAD6CC8E4F1A">
-</topicref>
-<topicref href="GUID-37EF6DE5-0684-5C6C-8DBB-2BB03677A6FE.dita" id="GUID-843C25EB-6680-4FF3-BC83-6F4EFDB92579">
-</topicref>
-<topicref href="GUID-E5B657E4-C11F-5D9C-8505-95B7153074CD.dita" id="GUID-CD401AA7-FC3C-4CBC-9AAA-46B460B31C66">
-</topicref>
-<topicref href="GUID-CDF09E59-E085-5D77-9074-2809318FDFC3.dita" id="GUID-EAB2E68D-8FBE-49A4-A5E1-48AE072E09FB">
-</topicref>
-<topicref href="GUID-7833630F-1AD8-505F-8318-4712E124F5FF.dita" id="GUID-E723E3C6-A50B-4EA0-9C6D-31ED2FB3A3B3">
-</topicref>
-<topicref href="GUID-759B520A-0211-59C4-9901-154ED4E4530B.dita" id="GUID-E007FFA2-DEEA-4175-AC7A-7BA014179464">
-</topicref>
-<topicref href="GUID-1A9F7EFF-BAAA-5F89-9A1A-EFB859ECD00D.dita" id="GUID-D8994F62-D27B-40A4-9452-469658B2F200">
-</topicref>
-<topicref href="GUID-38EA1AE0-EA25-530C-8594-20AFCE3AD087.dita" id="GUID-58B7D66F-A39F-4C95-BFC8-3C3DE1E6ACCE">
-</topicref>
-<topicref href="GUID-8FE15DE1-9A15-5DCF-BA01-4272579B2BA6.dita" id="GUID-326085C7-4547-4551-B2EA-ED1E31CC774C">
-</topicref>
-<topicref href="GUID-82761635-4361-5C93-B159-C4B729187CB5.dita" id="GUID-0BD840D4-66A7-4EBE-9219-658931E02CDA">
-</topicref>
-<topicref href="GUID-AB62AA91-98DE-5750-842B-BB8700B90C21.dita" id="GUID-B256E895-BB58-4AFF-9B15-8EC548C9922D">
-</topicref>
-<topicref href="GUID-29D7CD15-9556-54B4-BA3B-C187ACC904C3.dita" id="GUID-1D0F4A10-3AB0-4EA6-B2F2-B9B4BE5F930E">
-</topicref>
-<topicref href="GUID-75A0D688-D586-589A-A24F-1D79E1FE6398.dita" id="GUID-26C786CF-D962-4532-8DA0-95C1FA3C8391">
-</topicref>
-<topicref href="GUID-679CD3E4-9CED-5C30-AE63-7405CF0ED412.dita" id="GUID-EA322D4E-453F-4E6C-A045-C7066BF59BF1">
-</topicref>
-<topicref href="GUID-B4ECB1BE-F591-500C-B165-AF1940963F0B.dita" id="GUID-4E841092-81DF-4F95-A8A3-495A8968E778">
-</topicref>
-<topicref href="GUID-09366A52-5A75-544C-B323-888A3B3B9043.dita" id="GUID-E650A88F-B247-42F6-BF73-5337A1E0186D">
-</topicref>
-<topicref href="GUID-42815858-78B4-5F86-8804-C5141371F70A.dita" id="GUID-0617D1B9-C532-4EB3-8D5C-81DE07EA02F9">
-</topicref>
-<topicref href="GUID-E61DA881-7362-5C80-AC14-15914919AE6C.dita" id="GUID-C83D95F7-76DF-4CCB-9C48-CD3D180271CB">
-</topicref>
-<topicref href="GUID-71580DD7-22D3-5C22-9E8E-2039BB649106.dita" id="GUID-311EC9D4-D0A0-4DB9-B13D-F12A009F82B9">
-</topicref>
-<topicref href="GUID-0A7ADA78-D575-5A07-A52A-F8A3ACBC2746.dita" id="GUID-64C3BA5E-9A08-4F7B-9985-6590874AF99A">
-</topicref>
-<topicref href="GUID-626D2500-7E0E-5A93-9202-03C13EA8C0C7.dita" id="GUID-29D8CDFD-9374-4B18-B9F4-8D3631164FEA">
-</topicref>
-<topicref href="GUID-656F8D90-09BE-5192-AB27-693B0171E85C.dita" id="GUID-974FEF07-5E50-4051-97CB-989CD1DF2F58">
-</topicref>
-<topicref href="GUID-2B6DF036-F127-533C-A7A6-CD27BD3C5FED.dita" id="GUID-AA95FFF3-9BF2-407D-A7F5-5DFA5CD22829">
-</topicref>
-<topicref href="GUID-C298632E-3E91-5A92-B5BD-1335CBC6882A.dita" id="GUID-7E15E347-BCFF-41C7-B6F5-80746927A54E">
-</topicref>
-<topicref href="GUID-1D25050A-4CC2-5017-BBE8-7AC380BAC027.dita" id="GUID-A44CBB2F-646E-4E77-99A3-232EA5C960FC">
-</topicref>
-<topicref href="GUID-092C5C46-7B19-5B73-B0A6-E5C153C1FB8F.dita" id="GUID-2489D6A2-CF3B-4522-8898-8E77BC8696A3">
-</topicref>
-<topicref href="GUID-1C26DA65-D763-5C52-9E07-EA8B9652A172.dita" id="GUID-09A9EE0C-F603-46BF-AF82-EFAD1AE1FB68">
-</topicref>
-<topicref href="GUID-DFD13812-E9AB-5B95-B46D-91C68A0B976D.dita" id="GUID-0BE5E71B-BCC9-4975-87E6-72D5C0897008">
-</topicref>
-<topicref href="GUID-A7DBF4A6-0D2F-5998-977D-A305623F6C67.dita" id="GUID-BA001A1D-8909-49B0-AF46-AE902F5FA732">
-</topicref>
-<topicref href="GUID-7A37251B-E0B0-5DFB-89E1-E7277122226F.dita" id="GUID-52D94D9D-5634-4F6F-A4FB-FD3C06947FE2">
-</topicref>
-<topicref href="GUID-F71D440B-215A-5831-A988-2B2123E805F8.dita" id="GUID-CB9CB32D-7C02-4D22-9E13-845D6F80E760">
-</topicref>
-<topicref href="GUID-9C46DE8B-222D-5E24-AB0D-37BDC8BC0AFB.dita" id="GUID-39890ED4-1422-44F4-8335-0D3EEED2ABCC">
-</topicref>
-<topicref href="GUID-0A4B1E12-5DC8-5D56-9B3D-4069CCC989F2.dita" id="GUID-E64F8BA1-FDB6-4F30-8CBE-5183B27CC11E">
-</topicref>
-<topicref href="GUID-7DE155F1-B89F-51B6-B7EC-C161402007A6.dita" id="GUID-6BE6A502-88CB-4F86-8C86-3D074A987E52">
-</topicref>
-<topicref href="GUID-076CA26D-BA1F-534E-9AE0-3A673190179D.dita" id="GUID-9BAB74BD-4F9E-4D70-8A63-63A48ED6E652">
-</topicref>
-<topicref href="GUID-686359E3-9C4C-507A-909B-91C32469ECDE.dita" id="GUID-FFE4F909-3379-41CF-9A3A-ECC9A04B19B2">
-</topicref>
-<topicref href="GUID-8C91182B-A54B-5622-B6D6-F13483586084.dita" id="GUID-C4B267DF-BD47-475B-BA36-B8219858FF20">
-</topicref>
-<topicref href="GUID-2C85F286-822B-5830-B819-D4C55D830CBE.dita" id="GUID-6377B635-1CE6-464F-B289-34743DB92CAD">
-</topicref>
-<topicref href="GUID-74E24DCD-79E8-5591-93A6-50288E9EBD6B.dita" id="GUID-DF2ADE48-44D7-4047-AA67-48E0527C29B0">
-</topicref>
-<topicref href="GUID-D5A1F9AE-4455-5993-8779-C94E985F12D5.dita" id="GUID-8C7BEC2F-445D-402B-8815-7109059AA298">
-</topicref>
-<topicref href="GUID-1AA1466C-707A-5A28-8B35-E9F4BBD69ABA.dita" id="GUID-AB588DC7-206B-4B16-B7A7-679267D5FA8C">
-</topicref>
-<topicref href="GUID-9920FF2F-DF64-55DD-B824-2BEE6215EFF2.dita" id="GUID-CBF86A64-53D7-46D9-889C-B8084198BC94">
-</topicref>
-<topicref href="GUID-311BD5B5-46F6-5154-96B7-CB77EB28C1E3.dita" id="GUID-1E7EC108-8DEB-46DA-9B13-0B7E2365DF91">
-</topicref>
-<topicref href="GUID-73B12E66-A01D-5ABC-BEFF-73558DBAB9E7.dita" id="GUID-D171E33E-D70E-45C7-A47F-697103F915A1">
-</topicref>
-<topicref href="GUID-82EF851B-9154-5C12-A18F-355D1BB07F40.dita" id="GUID-735DFC4E-5D2A-4C0E-BD16-771A3FF00376">
-</topicref>
-<topicref href="GUID-108956E7-718F-5839-A59B-7AE56D59CE74.dita" id="GUID-1DEA90CA-29CC-4429-9206-CCF935BF4CE1">
-</topicref>
-<topicref href="GUID-A35B7FD6-AAD5-53AC-A1B2-594D9CB78929.dita" id="GUID-64731F57-C977-49C0-AD6C-E858EC08DDE6">
-</topicref>
-<topicref href="GUID-B1A546D6-8158-5ACA-A41A-7CC2935A5411.dita" id="GUID-BF4243D5-4309-4E09-81C7-449EF94C5D44">
-</topicref>
-<topicref href="GUID-7F04A8FF-7D3B-53DA-95D1-7BBB9C2949CD.dita" id="GUID-08B4B7AF-E8BB-440F-88D6-5B5022336EB4">
-</topicref>
-<topicref href="GUID-DCC98EAD-7BA7-5018-B7D4-F7E768159F2A.dita" id="GUID-86441AD0-6744-4C8F-B564-A293CF82679C">
-</topicref>
-<topicref href="GUID-7EDA0ED7-D560-5E6B-BF11-F4154EAC0587.dita" id="GUID-535A0203-C764-42CD-85AA-88E847ECB9DD">
-</topicref>
-<topicref href="GUID-D71DBD74-EC70-5A04-AF68-C4A310AE1AED.dita" id="GUID-F25A9416-9BBD-45E3-A910-0EFE2330513F">
-</topicref>
-<topicref href="GUID-0E12D791-D9AC-5F7E-9AB7-363D706BC516.dita" id="GUID-51399A5A-20EF-4CC6-A13B-D296E2A96EFB">
-</topicref>
-</topicref>
-</topicgroup>
-</chapter>
-<chapter href="GUID-A837D8F6-B9D3-5119-8C63-51772B388999.dita" id="GUID-9CD95C3D-A4B3-49C3-9791-EE286997845D">
-<topicref href="GUID-AFF0B669-E0D8-5533-A105-0F5EBC6AF5E1.dita" id="GUID-0C97FFBE-7CA1-41DB-B880-BA5E9E995DFC">
-</topicref>
-<topicref href="GUID-617A7B7E-DF91-5757-B473-D2E0B665F5E4.dita" id="GUID-8F6FA5A4-DCA3-441B-AD61-E6D60BB8EF7E">
-<topicref href="GUID-28227926-2D5A-500C-B2BC-0EE6CC077DBE.dita" id="GUID-23F491F9-667D-486B-9A40-EEC16B38EA7F">
-</topicref>
-<topicref href="GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita" id="GUID-593CF9D4-47ED-461A-AE5E-B3D79E0EAE23">
-</topicref>
-<topicref href="GUID-F35C5336-907C-5B2A-92C6-F8883D49996E.dita" id="GUID-923ACCC0-A099-4AAA-B578-DA80718F5CB9">
-</topicref>
-<topicref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita" id="GUID-FF34C5BF-1E9C-430D-9ED9-02CBD4FF31DD">
-<topicref href="GUID-1BEA00A2-7934-5CF6-A838-44CCA4A28F35.dita" id="GUID-1F0869ED-476A-4530-BDEE-0E95A21F8EF5">
-</topicref>
-<topicref href="GUID-3F880EFC-E891-5C71-8360-1BBB54367AFA.dita" id="GUID-76E692D9-14AC-4BC4-B9A8-0E448625D6E7">
-</topicref>
-<topicref href="GUID-A6116E8B-9C4A-5B9E-AA8A-BE031408AA2F.dita" id="GUID-D7FF30D4-CE05-4967-9310-A21175739BF0">
-</topicref>
-<topicref href="GUID-188F9462-F805-522A-84FF-770EAB045504.dita" id="GUID-BA1527F7-2791-4451-A5AC-24E79D1967BA">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-687AFC9D-ADB7-5190-A535-C54B835825DD.dita" id="GUID-5DD895F9-8E4E-4CCB-94A3-A11D655BEF33">
-<topicref href="GUID-5FFBC0B0-FC6E-5D60-868B-064DBEB632E0.dita" id="GUID-C2AEB0E6-AEAE-4A9B-B275-16E55378DD25">
-</topicref>
-<topicref href="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1.dita"
-id="GUID-0A3958EC-287D-4770-A064-333E09F31156"></topicref>
-<topicref href="GUID-07C031C2-7FFC-5B0E-9691-E6E678E65C4B.dita" id="GUID-05CFBC8C-8F8B-41C1-AD0E-545110611B51">
-<topicref href="GUID-E80AA33B-E5E0-5F4B-9A7F-65B357F7161C.dita" id="GUID-706A0550-DF15-410F-B14A-B06513D05E9E">
-</topicref>
-<topicref href="GUID-C39CA508-86F7-5B99-9390-56980DD0EFFB.dita" id="GUID-12F5F8CD-CE2C-4AD9-B71A-054101C9387C">
-</topicref>
-<topicref href="GUID-10F1D390-2CB6-584B-B760-E6A6E1D8FDDA.dita" id="GUID-32C6B2D2-E718-416C-B937-1475CE2333F6">
-</topicref>
-<topicref href="GUID-F9605837-2209-500D-AB62-48A433489C5E.dita" id="GUID-6591B7B9-C2DC-423B-9EA8-2AE8B5978399">
-</topicref>
-<topicref href="GUID-383A617C-474B-509D-BA37-3515BCC5F1D1.dita" id="GUID-5DDCCD20-6CDD-4C3E-A96B-5B42201A966C">
-</topicref>
-<topicref href="GUID-11BF98BD-814A-5CB8-B83E-6D14F38F1783.dita" id="GUID-EB11187D-AE54-4C12-B987-AABBAAE8CF0F">
-</topicref>
-<topicref href="GUID-AECDAEBF-777A-579B-92F8-560FD7FF86E7.dita" id="GUID-5B82098D-C88E-404B-ADA2-59906768A92C">
-</topicref>
-<topicref href="GUID-32F00078-6084-5288-9D3F-9F8D70514799.dita" id="GUID-C9CA311F-22CA-4118-8B8A-A8CA1F95417E">
-</topicref>
-<topicref href="GUID-E932B20C-5155-530F-9669-6F5BB1F1AD41.dita" id="GUID-12160735-9644-41C4-9CBC-2E8CC74AA801">
-</topicref>
-<topicref href="GUID-89ADFC64-AF9F-51B1-AC5F-493897226270.dita" id="GUID-CDB4DAD9-AB9D-42CB-A835-8D007BDD70A0">
-</topicref>
-<topicref href="GUID-37057FD5-7ED0-5B18-9C28-39F6816D7627.dita" id="GUID-5762C0E1-A3DE-4485-85D6-2ABD81D00598">
-</topicref>
-<topicref href="GUID-914DD950-4332-5F23-B725-F4D330DB19EB.dita" id="GUID-CEF11941-BE6A-4964-9B2B-EEFEF8183F54">
-</topicref>
-</topicref>
-<topicref href="GUID-141633B8-A3D4-5BBB-97C5-3D928746ECE7.dita" id="GUID-464891BC-BC27-428D-86C8-AB37D6749AB1">
-</topicref>
-<topicref href="GUID-50FD71BF-2DDA-5E80-9904-82DC90FCE6DD.dita" id="GUID-CFC494E0-14DB-4A16-B6C8-368C15DD3B3B">
-<topicref href="GUID-0D619063-F2DB-53FC-A5E6-BC09AD915FA4.dita" id="GUID-26ABA92C-1FC2-4217-95CD-2148D765CF2F">
-</topicref>
-<topicref href="GUID-B6088C0A-20AE-5108-A28C-9CA884205493.dita" id="GUID-CDB7CE11-C55C-4C6E-AF9C-EEF955F9A77B">
-</topicref>
-<topicref href="GUID-7F9F0EB3-8F0E-55BB-9864-C80FE6FC1528.dita" id="GUID-94B65FE4-5786-411D-913D-7FD7391854E5">
-</topicref>
-<topicref href="GUID-36743EC8-5A64-5FF5-8632-56CBBD04EC12.dita" id="GUID-7DA9B977-276D-43E3-82FA-57C98CA0175E">
-</topicref>
-<topicref href="GUID-97C0A5B1-99AE-5F71-9092-A6976E54AEA7.dita" id="GUID-64622117-E4C6-4268-8454-80580FDAF8A3">
-</topicref>
-<topicref href="GUID-0142B290-DA6C-5574-83D7-7555D804D9B5.dita" id="GUID-F7146146-D056-4A4F-A93D-B7F8171FBA7E">
-</topicref>
-<topicref href="GUID-FFD56DA3-9301-5679-9209-A70CE63A34A2.dita" id="GUID-FB17596C-54BE-44E7-9286-4D77DD806CD1">
-</topicref>
-</topicref>
-<topicref href="GUID-F6780E5A-26DA-5453-B9BE-11039CFA4FFB.dita" id="GUID-9DFEE386-B31B-4D89-BA15-5BD0A51F54FA">
-<topicref href="GUID-66470976-7B8B-582B-B32B-4010C95052FF.dita" id="GUID-29B72B47-0794-4913-8D54-770A5AF26E5F">
-</topicref>
-<topicref href="GUID-9574041E-183D-5C3F-8429-A62323B97739.dita" id="GUID-EDB3D510-A85E-46A4-B70D-3D4EA4A912B5">
-</topicref>
-<topicref href="GUID-A4B391F0-058F-5B51-8D28-6A7B5C4A1BB9.dita" id="GUID-2E90F23E-4A0C-45FA-BB3B-9E55350402A4">
-</topicref>
-<topicref href="GUID-9444E57C-1C2F-5EAC-B162-25FC27BB9516.dita" id="GUID-A9B781A6-3ED9-4FAA-B66A-CA6B0928862C">
-</topicref>
-</topicref>
-</topicref>
-<topicref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita" id="GUID-D535371B-A642-4B9E-AA02-0B9380F94C91">
-<topicref href="GUID-0BF25E2A-99B9-5558-B805-019430409518.dita" id="GUID-D38807AA-B44F-4D61-B1E2-40A81885B60A">
-</topicref>
-<topicref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita" id="GUID-C4C8F244-41A9-479C-B9FE-0F5D5CD1E5DA">
-</topicref>
-<topicref href="GUID-E08F6BA9-F1A9-50D5-8CBE-8304BBA24D1F.dita" id="GUID-13880765-CF2C-4422-8B29-55FE70CDF90D">
-<topicref href="GUID-FCE138BF-A471-5864-AE4C-8D89EF5F2BB9.dita" id="GUID-D213BE36-7813-4707-A9B2-A3CC9EF3A0BB">
-</topicref>
-<topicref href="GUID-B5576E47-CBB6-5E50-91BD-1CA1425EACE8.dita" id="GUID-380CAF93-A49B-4012-AB28-33E99C27595A">
-</topicref>
-<topicref href="GUID-049A089E-FF08-5706-8485-8C9A5A0BCF6F.dita" id="GUID-5911B66D-C8B6-499D-B8D8-A9C3C8F8B3F1">
-</topicref>
-<topicref href="GUID-2AD64552-440B-5439-885B-BE71DE0E8F1F.dita" id="GUID-F1786AA7-A9F5-4A4A-8A60-89419347C057">
-</topicref>
-<topicref href="GUID-30EB4252-4CBA-5174-9133-E79AC9AEAEBF.dita" id="GUID-5F88956A-FF4C-44D1-B7B7-A95723FEE9D4">
-</topicref>
-<topicref href="GUID-FA18838A-F0C6-5241-8913-BFB46571D908.dita" id="GUID-A2F21D7F-3667-45CE-97CA-40E84B8E766A">
-</topicref>
-<topicref href="GUID-D37576D8-1BD6-520B-9C69-60F2F89E4452.dita" id="GUID-1A55D5AF-9A70-440D-B408-77329C138710">
-</topicref>
-</topicref>
-<topicref href="GUID-763DCEF4-C960-58A2-99DC-7FFD3187BFD4.dita" id="GUID-6113FFE8-FAA0-4ACF-A8ED-0C384D085012">
-<topicref href="GUID-1BA6BC6E-0B77-5B8A-AEF6-9E5DBAB36254.dita" id="GUID-C82C0EF0-3B03-4C3F-8028-8176C03E9AAD">
-</topicref>
-<topicref href="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita" id="GUID-D15A0830-183A-4340-B64A-35C57FD93763">
-</topicref>
-<topicref href="GUID-D0C1493F-BA2F-517B-9D96-073DCF3D7923.dita" id="GUID-F0F53682-7E65-495F-A61E-13303AF5DAA9">
-</topicref>
-<topicref href="GUID-915A1B7D-10BB-5B4A-8C5E-99AD28375AD7.dita" id="GUID-9D883FA8-70D2-46C8-8D10-0693643205F5">
-</topicref>
-<topicref href="GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita" id="GUID-7F16A95F-C7A7-42D6-89FB-E89FD4FBA006">
-</topicref>
-<topicref href="GUID-D173BE00-1DE7-53D0-BBEF-CBF7CACB0193.dita" id="GUID-EEBCE412-333D-42D0-9B54-CB8BF3664338">
-</topicref>
-<topicref href="GUID-5B442231-6E71-5F35-A27E-B14AEC2FC105.dita" id="GUID-618CB2EC-B50D-4217-84CA-712605697F63">
-</topicref>
-<topicref href="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita" id="GUID-0EFFA7F4-6CD4-4C63-A096-1BB3DFCC08ED">
-</topicref>
-<topicref href="GUID-33716081-180C-5DDB-A5D2-0EC61357250D.dita" id="GUID-CB3A8C55-6DD6-4550-9A2A-7844796433B4">
-</topicref>
-<topicref href="GUID-75AFF4B9-1F95-585E-9354-EAA6271251FA.dita" id="GUID-CC36747D-6D71-468D-AFD3-55F3C9A4A307">
-</topicref>
-<topicref href="GUID-E0284006-9173-5BC5-A899-E0873CA1AE1F.dita" id="GUID-D44BB8E1-000F-4B2A-B8FF-26AF45EA0DD7">
-</topicref>
-<topicref href="GUID-8061E4C1-4E63-53F6-9863-D0D7BB8A2E5D.dita" id="GUID-87498047-1038-432A-8C34-7D3FD466E9E7">
-</topicref>
-<topicref href="GUID-0E3E2FAD-FC85-5995-8B5C-8F1C1A4186D0.dita" id="GUID-C922F189-790F-47F3-8493-29127E22BA42">
-</topicref>
-</topicref>
-<topicref href="GUID-81835322-5EF7-5839-9DC1-9A3FD396BD36.dita" id="GUID-95315A47-CFC8-46B2-8FD9-5AA31A301C03">
-<topicref href="GUID-ADDF9C0F-32D3-5CB1-B3B5-2FAD3A4EC278.dita" id="GUID-B4F05A1E-7FBE-4075-AEE2-3C329268AF2A">
-</topicref>
-<topicref href="GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43.dita" id="GUID-1F3A418F-06FD-413B-B979-4F345F3433E6">
-</topicref>
-<topicref href="GUID-4406BDE0-8256-5F97-9FC5-BBFD11D9C4A3.dita" id="GUID-00C2EAAF-F434-4721-8A48-5868DCDF8DF3">
-</topicref>
-</topicref>
-<topicref href="GUID-594488FF-02C9-5066-85DB-5F88A754AE18.dita" id="GUID-529D036F-5648-4FBD-BE20-15E5644DBFB6">
-<topicref href="GUID-C762E5B4-A7E3-5CAD-B639-A31F5D1899D3.dita" id="GUID-CC98BDD2-4F34-4F29-A471-C4A1D93C34A6">
-</topicref>
-<topicref href="GUID-FF312AAD-E40B-5238-A31C-B34AFD892D5A.dita" id="GUID-0E3B646A-4623-48AB-9E84-525A94C32978">
-</topicref>
-<topicref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita" id="GUID-3D78D4E4-4C44-4218-8ED9-C6B9D649A13C">
-</topicref>
-<topicref href="GUID-A27A05A2-B161-54D2-92E0-8620B01BFD44.dita" id="GUID-448B014F-F311-486F-92D9-202CC2256351">
-</topicref>
-<topicref href="GUID-CF8287B9-2063-5316-A1BF-7DFC58FCDE30.dita" id="GUID-B384D25B-7E5F-41B6-B548-B5C62E6AB477">
-</topicref>
-</topicref>
-<topicref href="GUID-12D8C373-5199-5B89-9910-00F769AC164A.dita" id="GUID-1779B512-DFE4-44FF-AB75-7A7E6B6BC78F">
-</topicref>
-<topicref href="GUID-917413FC-0AC0-5768-B5AD-36BD2EDCB1FF.dita" id="GUID-34E52B35-D3B9-4F2B-8F68-72C8AD06B962">
-</topicref>
-<topicref href="GUID-7FF363B0-B05F-5490-8D9C-59061B905381.dita" id="GUID-0C3DF695-192B-4A54-A540-18697060D88B">
-</topicref>
-<topicref href="GUID-61459132-3AC2-55D3-AC28-D6FA689409E6.dita" id="GUID-C7B3FDC2-FBD1-4289-B41E-AA1BF7A1E103">
-</topicref>
-<topicref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita" id="GUID-6E3B160A-59DD-4F3D-8A5B-63AF086A59CD">
-</topicref>
-<topicref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita" id="GUID-98D1B711-B911-4C20-853C-0990338078AF">
-</topicref>
-<topicref href="GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita" id="GUID-A05327D2-3C75-4443-8201-6DA855DFF228">
-</topicref>
-<topicref href="GUID-C07B506E-A1C8-537C-A7BF-DD7F449DF8A5.dita" id="GUID-3916AFBE-BB62-4EC3-B0E4-228D70D861E4">
-</topicref>
-<topicref href="GUID-201E6D4C-5F0F-5AA2-BC79-91E3C62C8971.dita" id="GUID-04BA9C83-E56A-4DA4-9016-18D434A678C6">
-</topicref>
-<topicref href="GUID-F9455FE8-5247-58D5-ACEF-52753B88444F.dita" id="GUID-7B8CA9E1-011D-4EC9-A3BE-76018A324972">
-</topicref>
-<topicref href="GUID-380A8C4F-3EB6-5E1C-BCFB-ED5B866136D9.dita" id="GUID-006C18C5-7751-46F7-AAA6-3F1CF3CAD92F">
-</topicref>
-<topicref href="GUID-D525B9A9-6B32-535B-A282-60C85A48D3FB.dita" id="GUID-A40F9B5E-57BC-4D5D-A1E0-A01FEB841AF1">
-</topicref>
-<topicref href="GUID-AE3BE603-21ED-5DEA-B1E9-0F1ADBED06D0.dita" id="GUID-D14AE4DF-D3FF-449C-9D0B-5235C8290A75">
-</topicref>
-<topicref href="GUID-2C1DB75C-FB12-520C-85B1-57F1EDB61E3B.dita" id="GUID-8B88B4D2-806C-4641-ABD9-6658DDE81EA4">
-</topicref>
-<topicref href="GUID-F5D49215-B34A-5FCC-A7E1-0AF3275694B3.dita" id="GUID-49E89483-706A-4941-8C9C-81B6B2DB192C">
-</topicref>
-<topicref href="GUID-6025A68F-625B-570A-87D7-2C11E66044D4.dita" id="GUID-2256E4AF-E870-4E0C-AE64-85B000006637">
-</topicref>
-</topicref>
-<topicref href="GUID-49397CFD-955A-5DF6-9251-368C44224966.dita" id="GUID-389F7E83-C387-47DC-B3AC-424524807268">
-<topicref href="GUID-28B9B737-AA79-5595-8DDE-7DD52402C0B9.dita" id="GUID-A80F5C8A-E813-47B6-A5CA-6B5674B17A14">
-</topicref>
-<topicref href="GUID-B1800856-3516-5D22-B1C5-556866CDDF46.dita" id="GUID-6D79C5F5-194F-4B33-AA70-1CA561ECC80B">
-</topicref>
-<topicref href="GUID-038747F2-E5A2-5739-BFF5-69B6BD0DCEB2.dita" id="GUID-44643F07-36AF-4D96-A539-FC4B9C152CF1">
-<topicref href="GUID-5A3A3EA0-6C03-56F2-B277-B61A27ABFF9E.dita" id="GUID-E0888BCE-275A-40B6-9A0B-C47F37109F87">
-</topicref>
-<topicref href="GUID-3BCA55F8-3867-579B-8D81-C540A32A8462.dita" id="GUID-C813C1E4-BBDE-4D55-AC15-6C5D3756AA2B">
-</topicref>
-<topicref href="GUID-14A0FC93-2AD9-5B33-B423-2CCAD3C96B5F.dita" id="GUID-38A5508C-2705-4814-BE92-4563962D3FFE">
-</topicref>
-<topicref href="GUID-C2709212-FD91-5245-9A1D-0E8114D7B202.dita" id="GUID-630ECD4A-97A7-437E-B7FD-79F50E3F38A5">
-</topicref>
-<topicref href="GUID-DA793067-32DD-5D4D-A0E6-E05DF9047529.dita" id="GUID-1B8B6571-16CA-4DF0-9DF2-EDFEE71A253D">
-</topicref>
-<topicref href="GUID-8E7CCFD7-F820-596E-BACB-AE43878C6CD8.dita" id="GUID-E0AFA1E5-BAB2-4945-994F-74BAE7F019C5">
-</topicref>
-<topicref href="GUID-2AE024D5-B34B-5E7E-BC7E-8C45E80173C5.dita" id="GUID-C2CCF7D7-C7A6-45FF-91CB-56E5E50C1D2E">
-</topicref>
-<topicref href="GUID-4D4CB4DC-9B9A-5256-B949-C5E9F369D9C6.dita" id="GUID-DA980A49-28B4-46ED-967C-38E5043F999F">
-</topicref>
-<topicref href="GUID-DD7D33BD-0DDB-584C-9362-AEECFA1EA9A7.dita" id="GUID-01AF0C63-B27D-47EA-9C5D-6B102276AD38">
-</topicref>
-<topicref href="GUID-F13D4492-4E0C-5D7A-A30D-9E79F092CF72.dita" id="GUID-8BDDAC98-9EF6-4F4C-8AE1-368A381EF3CD">
-</topicref>
-<topicref href="GUID-6CB40FC5-5CBF-592C-B27D-29922C3815DC.dita" id="GUID-43FD2368-D9CC-4524-A4A8-1AC7BBEB9457">
-</topicref>
-<topicref href="GUID-3F1FF06E-4190-5AC7-86C6-6732B632BA1A.dita" id="GUID-8E827A06-A70D-44CD-AC67-21E488535411">
-</topicref>
-<topicref href="GUID-C5F4CF0F-EC1B-595D-8C95-41891CB5930D.dita" id="GUID-6767BCF9-9CF3-4548-ACAB-6034CB9688D3">
-</topicref>
-<topicref href="GUID-F9E10A82-88E9-57AA-AFEE-3C1A21BF05BC.dita" id="GUID-B8C3CF6C-D2DC-4094-B128-63F85327316D">
-</topicref>
-<topicref href="GUID-F4C3DDE1-F7D3-5256-BABD-34759DCA57BF.dita" id="GUID-A4DEB860-CB91-4EC9-B43E-9F645504A5E1">
-</topicref>
-<topicref href="GUID-F0923110-D5D9-56D7-8CBC-82CAE062BC1A.dita" id="GUID-75731C9E-71BE-48D5-9916-7A51BB3C40E4">
-</topicref>
-<topicref href="GUID-7971886A-8ED0-5924-9BC0-A163BA499888.dita" id="GUID-02A10985-A977-4A36-9230-3926E77412CF">
-</topicref>
-<topicref href="GUID-139E7235-4F23-5F0E-A969-6D7165AE5298.dita" id="GUID-EE0C39EA-9FF5-4878-8A5D-96A4113C6E72">
-</topicref>
-<topicref href="GUID-7A22FBD7-F306-578C-BD54-BCF74B7343CF.dita" id="GUID-636390E4-FBE0-4654-9EDE-ED8B0481C0D9">
-</topicref>
-<topicref href="GUID-8FF4D117-920A-5AFA-ABB3-C0101EE2B7AA.dita" id="GUID-90EAFBBE-DFE0-4E62-AEF3-B26EC3594806">
-</topicref>
-<topicref href="GUID-DDE06BD5-2515-59FD-B91F-4C78A768533D.dita" id="GUID-A85CF5D3-4AE4-4734-A7A4-F7BCF2F9DE30">
-</topicref>
-<topicref href="GUID-AD5C89AC-51CD-5CC0-961C-62F38E9BEA33.dita" id="GUID-526CFF72-253D-4A5B-BFE6-AC241BF6EA59">
-</topicref>
-<topicref href="GUID-2273C35F-C8FD-5321-BAE8-4995C5B374E5.dita" id="GUID-151E903B-AA41-45D5-B116-8E56D3E90B68">
-</topicref>
-<topicref href="GUID-023268BB-8C52-51A1-9E3B-4C7E265DFDAB.dita" id="GUID-C3745A37-2DEB-4765-9879-F93D9ED34611">
-</topicref>
-</topicref>
-<topicref href="GUID-7D3B5008-CB40-504D-90A8-92DE482977CA.dita" id="GUID-738C2604-8EFD-48BD-8DA1-A2CAF4F0938F">
-<topicref href="GUID-EDCBBB5E-FAAD-50A5-9EE4-B4F399B77CE9.dita" id="GUID-74D1F22C-271D-43C6-B7AD-B946CD055D7D">
-</topicref>
-<topicref href="GUID-3A05CD69-0AB6-5549-B18A-842F49C06874.dita" id="GUID-DF58D8FE-46FB-46E4-AC67-E23503B26385">
-</topicref>
-<topicref href="GUID-2910AB26-CA7C-50B9-A187-0C8406C1ED1F.dita" id="GUID-EB199791-90C6-46B9-A8E3-C0A7E704B418">
-</topicref>
-<topicref href="GUID-5AF0B573-4351-5735-92A1-4F29BCF9A164.dita" id="GUID-F81D3432-200E-49A8-B95D-8F795558C3C0">
-</topicref>
-<topicref href="GUID-A12A6C54-7E9E-5ECD-A0BF-8F980160A0D2.dita" id="GUID-6FEDCFF6-BDA5-424F-B420-7FDBC043D98A">
-</topicref>
-<topicref href="GUID-B1C79738-0449-5C26-BA8A-4612C6BF652F.dita" id="GUID-01C8BD0C-ED2B-4AD0-8B73-86264A009829">
-</topicref>
-<topicref href="GUID-7FA5898D-8898-53CE-875E-1DE97BE02C81.dita" id="GUID-6690FDC7-0E71-4F8E-9C2C-A19C2C9DA7C3">
-</topicref>
-<topicref href="GUID-2C68AC8D-6767-5865-B684-CB627C20C6DC.dita" id="GUID-9D189C9E-855D-4BD8-B98C-1F530BABD93F">
-</topicref>
-<topicref href="GUID-60B98AFE-6DE6-5086-B70C-F377562E60D9.dita" id="GUID-308D98D5-3195-492D-8F13-BED849CB7800">
-</topicref>
-<topicref href="GUID-7A52BD40-E1C1-5C67-AAA0-1B79A34CF24C.dita" id="GUID-9C5F1486-339C-42E6-A116-7BAFFEF366CF">
-</topicref>
-<topicref href="GUID-E6CB4891-AFC8-50BB-A2C8-057DB1269DA9.dita" id="GUID-8A6E962B-07CA-439A-9E14-0A7AB599E85A">
-</topicref>
-</topicref>
-<topicref href="GUID-CAC07A47-1475-5152-83AA-E59FD3AFF321.dita" id="GUID-DB22F14A-973A-47B4-B5F6-050BBA7FA10A">
-</topicref>
-<topicref href="GUID-50F216D0-242A-5796-BDCC-7AAB28535458.dita" id="GUID-5ABACDE9-3B24-419A-8AED-5C99D0586C0D">
-</topicref>
-<topicref href="GUID-5986717C-C777-590D-8487-CB8ED488E975.dita" id="GUID-8FABA914-CF67-4188-AF0B-D7CAEF0B5708">
-</topicref>
-<topicref href="GUID-BBBB5000-90A2-503A-9521-2FC6DEC69DC8.dita" id="GUID-CE4D579D-5D83-4245-877D-02C6655E710C">
-<topicref href="GUID-B68FF699-923B-530E-A877-86507B1D42F1.dita" id="GUID-71FDFB26-714C-468E-BE49-70F647B72F76">
-</topicref>
-<topicref href="GUID-619A607D-CA89-5A98-887D-5B1D2A5F921C.dita" id="GUID-AA9AF5B8-79FF-48B0-9C15-22F890BBCD9E">
-</topicref>
-<topicref href="GUID-48BD628F-F47F-535B-B148-7425A6704FC2.dita" id="GUID-F400CED9-B0D6-47E1-8B44-70431A3E28BC">
-</topicref>
-<topicref href="GUID-947317B7-7E12-509B-9A16-F0604D7F8BA2.dita" id="GUID-355FE231-C519-4097-87C8-23910F28EC46">
-</topicref>
-<topicref href="GUID-E63AAE78-335F-5BD3-BECA-1709C3C7FB3F.dita" id="GUID-DD9CCA9B-6585-463C-9254-123407C35065">
-</topicref>
-<topicref href="GUID-A668442E-0768-5AF1-829B-A80864756A0B.dita" id="GUID-50CE2815-D367-4F74-8B56-3BABC42AD2CE">
-</topicref>
-<topicref href="GUID-96C007D1-9AA0-57DC-A6DC-8B6E5A2DF644.dita" id="GUID-91B6436A-154B-40CD-95FD-CD8EEDF2B10E">
-</topicref>
-<topicref href="GUID-46B5E7B1-F0C2-5C1E-972A-C339E7515225.dita" id="GUID-BCD31B22-4D66-45F5-A2FC-B8AC08F15629">
-</topicref>
-<topicref href="GUID-5822CE94-C8AF-5F81-AB3F-E95B44265065.dita" id="GUID-E8CB7C24-0DD5-4608-8490-B4FB69A2FC56">
-</topicref>
-<topicref href="GUID-66C1F45B-FA94-5724-AD8F-371EAE92B7E9.dita" id="GUID-81A14573-35B6-4501-93F7-5BCB2C4BB8C2">
-</topicref>
-<topicref href="GUID-AF8280C0-20B2-5D68-BFF5-7D9D1CE989DD.dita" id="GUID-B0E11B8B-5B57-4792-83F3-552F01AFFF1F">
-</topicref>
-<topicref href="GUID-3BB6E558-017D-584A-BCB7-AB1DD80C5A90.dita" id="GUID-E1B9D4B9-B4FA-4EF5-8DC5-64CED1AD7BB4">
-</topicref>
-<topicref href="GUID-E71D8907-236E-5948-9594-E14E34A31DC8.dita" id="GUID-D665C587-661E-4B13-B6AC-9B2A9724BFFC">
-</topicref>
-<topicref href="GUID-6C1D941B-ADD1-5BD3-9045-53B66253316B.dita" id="GUID-7B980F77-3D62-428C-AFD6-4AF79A46F4A4">
-</topicref>
-<topicref href="GUID-432FF981-010F-540B-834F-FF924238AA2A.dita" id="GUID-5C8742D4-874D-4AE9-8CDD-AAF53D82290A">
-</topicref>
-<topicref href="GUID-BB0C4204-3C31-57D1-B1C5-6D2FCF571931.dita" id="GUID-AC2BEB6C-6EC3-49F8-A272-6E6978E32251">
-</topicref>
-<topicref href="GUID-A8ECAA53-9094-5C0A-8893-2757559C15F0.dita" id="GUID-0CBF02A5-6B4E-4FA6-A836-A6532A89E7BF">
-</topicref>
-<topicref href="GUID-74E94DC3-88C7-51BE-9354-C49B3A7A8B03.dita" id="GUID-42AA4EC1-D518-47E3-AB54-21F7EEB84E62">
-</topicref>
-<topicref href="GUID-9F22E663-8BC4-5502-879F-E6B790465E74.dita" id="GUID-F5363BB6-A261-4857-A2B7-E3C393BA6EA5">
-</topicref>
-<topicref href="GUID-6A783365-3CC3-5D7E-9F1C-D3585C4AE66C.dita" id="GUID-D3D0BCE9-9055-4751-A73A-1D53834EC1E2">
-</topicref>
-<topicref href="GUID-A1F037FE-0D88-5108-B96E-4ADE6B3A4A3E.dita" id="GUID-22546FEC-07FB-479C-9066-81DB7E708FF3">
-</topicref>
-<topicref href="GUID-7C4A8920-359F-5328-8D28-2AFBA25A6A9E.dita" id="GUID-1C881D1C-4F11-47A0-90CF-C70600D7375F">
-</topicref>
-<topicref href="GUID-36AA53D2-A117-5D80-A5B4-67EF865DC40E.dita" id="GUID-2B2B355F-85F2-48EC-99B4-3A37CE08C492">
-</topicref>
-<topicref href="GUID-567D36A2-1097-5D44-B1B2-896F0F812A32.dita" id="GUID-3C967120-1F66-43EC-B100-8DAD9042729F">
-</topicref>
-<topicref href="GUID-34DB27CB-9010-5B7F-A51E-0CA794147CAE.dita" id="GUID-B7D6EA1F-F8DE-4424-98F7-3F056478F2DE">
-</topicref>
-<topicref href="GUID-1879BEEB-9945-55F4-817E-8D6117055B1D.dita" id="GUID-07DEF2C9-32EB-450E-879B-11874756A5C3">
-</topicref>
-<topicref href="GUID-A05F0124-AE28-5088-8AFE-22956D1549AD.dita" id="GUID-7B5FA4F9-2931-4E3F-96A2-9A5CEC393D78">
-</topicref>
-<topicref href="GUID-D553D41C-D724-510A-A239-66CC158D6984.dita" id="GUID-187A6B34-8311-4D0C-92BA-821726CFD36A">
-</topicref>
-<topicref href="GUID-7226154E-2387-5D14-A009-2A1A60617970.dita" id="GUID-8C282E4E-5139-4F01-BF20-0BD098F608C1">
-</topicref>
-<topicref href="GUID-2393237A-E60F-5556-8657-B0AA6470225C.dita" id="GUID-6187FBD9-3B8F-43B7-8314-9EB47C7E29C9">
-</topicref>
-<topicref href="GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B.dita" id="GUID-EC486938-AC62-469B-B6D5-17E7B56EE39F">
-</topicref>
-<topicref href="GUID-E4BF80BE-17E9-5622-9E10-43C96EAC9754.dita" id="GUID-C6F22F4F-8C97-46E0-9645-CA8D0C8CDF04">
-</topicref>
-<topicref href="GUID-5512B80D-77E8-5DFB-BD97-EBC1C4360E90.dita" id="GUID-02B7FD1D-DE2D-4F85-9AA1-3CEFE0642D2F">
-</topicref>
-<topicref href="GUID-2FCB4609-1568-5B5F-AD9D-5A531B17A68F.dita" id="GUID-23B07069-CB38-4A7D-934D-C486FD3C38BD">
-</topicref>
-<topicref href="GUID-A98F7AA2-A908-527E-9AEC-54DDD10A49C1.dita" id="GUID-36B93D9D-0D9E-4B67-AF11-89A474A1FCCD">
-</topicref>
-<topicref href="GUID-F03A323A-2FCC-5247-909F-4AB2701B1C45.dita" id="GUID-0D6C951B-DF10-4365-A056-5E9E01F8993E">
-</topicref>
-<topicref href="GUID-A3301ED7-8FD5-580B-B365-4BE12FF2F3AA.dita" id="GUID-AA7002D4-7E2F-4D23-BCE3-B8863D2A7A2E">
-</topicref>
-<topicref href="GUID-565074B2-53E2-54CD-A06B-7E044E66EBE8.dita" id="GUID-FF9ED03F-A148-4A5F-9C78-3CA3FA4321CD">
-</topicref>
-<topicref href="GUID-13AA46F9-7D5E-5BBE-8021-C9326121E605.dita" id="GUID-54E81EE9-6AAC-42BB-99C2-B36B2B5936D6">
-</topicref>
-<topicref href="GUID-B707887A-E0FA-5DF6-A906-A91E31E17321.dita" id="GUID-F0FEC023-09A4-48CF-8726-6AA1EFF57C4E">
-</topicref>
-<topicref href="GUID-E4A23972-CC2F-5773-B1A4-6123333D1F5E.dita" id="GUID-065CBA41-AC1F-44CA-95CA-A62F16D8C1FB">
-</topicref>
-<topicref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita" id="GUID-0EECF866-476D-4192-9066-3839B3D65043">
-</topicref>
-<topicref href="GUID-6D7F3D5C-BC1C-5657-993A-4D7E5712CAF5.dita" id="GUID-DF0ABD26-E86B-4CC2-9C19-5D15B79C974E">
-</topicref>
-<topicref href="GUID-16781448-75CB-5C11-B9E6-288BA3C0B43E.dita" id="GUID-A5854BBB-5EDA-4D5B-AE16-6776286A83E3">
-</topicref>
-<topicref href="GUID-809D428D-5BF6-57FF-952D-2FDF88E50833.dita" id="GUID-C0490FC3-3857-4AF8-BA9B-BEB8F4F6F76B">
-</topicref>
-<topicref href="GUID-B58D93D7-597C-5200-82ED-F434B297CAC9.dita" id="GUID-C6915FDB-DCA5-4D0A-A1F6-B3FBC410BD6D">
-</topicref>
-<topicref href="GUID-495C619C-1223-59C1-9B31-0F4031BAE4A9.dita" id="GUID-E873B114-B045-47BE-9A59-8D5F45572C0E">
-</topicref>
-<topicref href="GUID-AA9611C0-9AFC-530B-9B50-0D6E600C8D3E.dita" id="GUID-C83B6CD2-2FF6-4017-97AD-D6065D1DF55C">
-</topicref>
-<topicref href="GUID-5D4DA7CA-DAB8-51E6-B597-4E8B0AB56477.dita" id="GUID-75113D0A-5106-48F0-BA41-2F105CF698AA">
-</topicref>
-<topicref href="GUID-7681734D-1291-59A3-B226-BC58403FA8A0.dita" id="GUID-344F9630-D104-45D8-B820-6C3DD049933F">
-</topicref>
-<topicref href="GUID-9535CF67-7541-554E-BE5C-9FDDFDB58EA5.dita" id="GUID-CDD90E9B-968B-4451-B1EC-763CFFBB27DB">
-</topicref>
-<topicref href="GUID-BFCFD93E-D591-50D2-8263-D13D08DD9F15.dita" id="GUID-D668F5B5-3BA4-4B73-B5D6-8600C65A613C">
-</topicref>
-<topicref href="GUID-751F057B-BF6D-5B28-A47A-3E99B25731CF.dita" id="GUID-C0651852-E6D3-41F2-97DB-45077706D1DE">
-</topicref>
-<topicref href="GUID-FAFDBFC2-BFFF-536C-A96D-8404C389DD0C.dita" id="GUID-5C4464B9-42C2-408C-8B54-F88E60B1312E">
-</topicref>
-<topicref href="GUID-52B2DFDD-063A-5ED4-9A0B-FB3346301482.dita" id="GUID-EBA9A4B9-D4CD-4BF6-9A3B-CAD40B7A0E8F">
-</topicref>
-<topicref href="GUID-50941508-B999-5FCC-B2B9-F29F5F2CA4C1.dita" id="GUID-BEF3D78E-DC77-4943-A9B2-7011F080B029">
-</topicref>
-<topicref href="GUID-535793F2-08F1-5B4E-AD32-783985C53124.dita" id="GUID-633BA0E3-2CF8-415D-ABB3-D58D0EA9C804">
-</topicref>
-<topicref href="GUID-35532303-1316-58CA-90C8-FAB56EE3C1F5.dita" id="GUID-B59C1137-CD61-496E-976C-74399CB141D7">
-</topicref>
-<topicref href="GUID-D5358527-5E6F-5158-8BCB-F9D74DB9B354.dita" id="GUID-BA7C85D8-2C55-44DF-8DD9-F4E08A2C5C7A">
-</topicref>
-<topicref href="GUID-1A3E282E-ACC0-5F88-A759-3ED6106B02B4.dita" id="GUID-3683C81E-94D9-4185-AF81-2DFF0144D150">
-</topicref>
-</topicref>
-<topicref href="GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8.dita" id="GUID-76D1B2B6-19A8-4988-813E-4B303D71DC86">
-</topicref>
-</topicref>
-</chapter>
-<chapter href="GUID-1D0E418B-09D4-5A6E-A1A8-A46F9F9CF371.dita" id="GUID-C9AFCBA2-6169-42F1-981C-BAC65D00E535">
-<topicref href="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita" id="GUID-D0BC7389-CCAC-4B6E-B2DF-ED04AF69B44C">
-</topicref>
-<topicref href="GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2.dita" id="GUID-01BA3966-A5C4-4829-846F-0D4FF01D72A6">
-</topicref>
-</chapter><?Pub Caret1?>
-</bookmap>
-<?Pub *0000402377?>
--- a/Symbian3/SDK/Source/GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93" xml:lang="en"><title>Querying
-for Sensor Channels</title><shortdesc>You can retrieve a list of sensor channels that are available for
-a particular sensor type. Once you get the list of sensor channels that are
-active, you can perform any required operations such as configuring sensor
-channel properties, controlling sensor channels and so on.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-4-1-3-1">
-<step id="GUID-EE1655E2-D4C4-4593-A0E1-BD1DFACB0351"><cmd>Create an instance
-of <codeph>TSensrvChannelInfo</codeph> and set the required channel type as
-the search criteria. For example, to query for all double tapping channels
-provided by accelerometer sensor, set the channel type as <codeph>KSensrvChannelTypeIdAccelerometerDoubleTappingData</codeph>.</cmd>
-<stepxmp><codeblock xml:space="preserve">TSensrvChannelInfo channelInfo;
-channelInfo.iChannelType = KSensrvChannelTypeIdAccelerometerDoubleTappingData;</codeblock></stepxmp>
-</step>
-<step id="GUID-176936C5-17FE-49A6-A0A7-0E76EB69C5E8"><cmd>Create an instance
-of <codeph>CSensrvChannelFinder</codeph> class and use the <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-E58BAF1B-57AA-3E85-A4F9-8C6C29043FBD"><apiname>CSensrvChannelFinder::FindChannelsL()</apiname></xref> function
-to query for available sensor channels.</cmd>
-<stepxmp><codeblock xml:space="preserve">CSensrvChannelFinder* finder = CSensrvChannelFinder::NewL();
-finder-&gt;FindChannelsL(channelList, searchParameters);</codeblock></stepxmp>
-</step>
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-4-1-3-1-3"><cmd>Create an instance
-of <codeph>RSensrvChannelInfoList</codeph> to store the list of sensor channels.</cmd>
-<stepxmp><codeblock xml:space="preserve">RSensrvChannelInfoList channelInfoList;</codeblock></stepxmp>
-</step>
-</steps>
-<result id="GUID-F26EFE38-DF01-4531-89AD-191049E31F36">       <p>The <parmname>channelInfoList</parmname> contains
-all the double tapping channels that are found. If several matching channels
-are found, you can select the required channel by examining the content of
-channel information objects inside <parmname>channelInfoList</parmname>.</p> 
-   </result>
-<example><p>This following code shows how to find double tapping channels
-for accelerometer sensor:</p><codeblock xml:space="preserve">.....
-......
-/Construct a channel finder.
-    CSensrvChannelFinder* channelFinder;
-    channelFinder = CSensrvChannelFinder::NewL();
-    CleanupStack::PushL( channelFinder );
-    
-    // to store list of found channels.
-    RSensrvChannelInfoList channelInfoList;
-
-    //Create and fill channel search criteria.
-    //In this example double tapping channel is searched.
-    TSensrvChannelInfo channelInfo;
-    channelInfo.iChannelType = KSensrvChannelTypeIdAccelerometerDoubleTappingData;
-
-    //Find the double tapping channel
-    channelFinder-&gt;FindChannelsL( channelInfoList, channelInfo );
-
-    CleanupStack::PopAndDestroy( channelFinder ); // finder not needed any more
-
-    if( channelInfoList.Count() != 1 )
-        {
-        //The device does not support double tapping channel or
-        //there are several double tapping channels.
-        }
-    else
-        {
-        //double tapping channel found 
-        }
-.....
-....
-</codeblock></example>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93" xml:lang="en"><title>Querying
+for Sensor Channels</title><shortdesc>You can retrieve a list of sensor channels that are available for
+a particular sensor type. Once you get the list of sensor channels that are
+active, you can perform any required operations such as configuring sensor
+channel properties, controlling sensor channels and so on.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-4-1-3-1">
+<step id="GUID-EE1655E2-D4C4-4593-A0E1-BD1DFACB0351"><cmd>Create an instance
+of <codeph>TSensrvChannelInfo</codeph> and set the required channel type as
+the search criteria. For example, to query for all double tapping channels
+provided by accelerometer sensor, set the channel type as <codeph>KSensrvChannelTypeIdAccelerometerDoubleTappingData</codeph>.</cmd>
+<stepxmp><codeblock xml:space="preserve">TSensrvChannelInfo channelInfo;
+channelInfo.iChannelType = KSensrvChannelTypeIdAccelerometerDoubleTappingData;</codeblock></stepxmp>
+</step>
+<step id="GUID-176936C5-17FE-49A6-A0A7-0E76EB69C5E8"><cmd>Create an instance
+of <codeph>CSensrvChannelFinder</codeph> class and use the <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-E58BAF1B-57AA-3E85-A4F9-8C6C29043FBD"><apiname>CSensrvChannelFinder::FindChannelsL()</apiname></xref> function
+to query for available sensor channels.</cmd>
+<stepxmp><codeblock xml:space="preserve">CSensrvChannelFinder* finder = CSensrvChannelFinder::NewL();
+finder-&gt;FindChannelsL(channelList, searchParameters);</codeblock></stepxmp>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-4-1-3-1-3"><cmd>Create an instance
+of <codeph>RSensrvChannelInfoList</codeph> to store the list of sensor channels.</cmd>
+<stepxmp><codeblock xml:space="preserve">RSensrvChannelInfoList channelInfoList;</codeblock></stepxmp>
+</step>
+</steps>
+<result id="GUID-F26EFE38-DF01-4531-89AD-191049E31F36">       <p>The <parmname>channelInfoList</parmname> contains
+all the double tapping channels that are found. If several matching channels
+are found, you can select the required channel by examining the content of
+channel information objects inside <parmname>channelInfoList</parmname>.</p> 
+   </result>
+<example><p>This following code shows how to find double tapping channels
+for accelerometer sensor:</p><codeblock xml:space="preserve">.....
+......
+/Construct a channel finder.
+    CSensrvChannelFinder* channelFinder;
+    channelFinder = CSensrvChannelFinder::NewL();
+    CleanupStack::PushL( channelFinder );
+    
+    // to store list of found channels.
+    RSensrvChannelInfoList channelInfoList;
+
+    //Create and fill channel search criteria.
+    //In this example double tapping channel is searched.
+    TSensrvChannelInfo channelInfo;
+    channelInfo.iChannelType = KSensrvChannelTypeIdAccelerometerDoubleTappingData;
+
+    //Find the double tapping channel
+    channelFinder-&gt;FindChannelsL( channelInfoList, channelInfo );
+
+    CleanupStack::PopAndDestroy( channelFinder ); // finder not needed any more
+
+    if( channelInfoList.Count() != 1 )
+        {
+        //The device does not support double tapping channel or
+        //there are several double tapping channels.
+        }
+    else
+        {
+        //double tapping channel found 
+        }
+.....
+....
+</codeblock></example>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64430_href.png has changed
Binary file Symbian3/SDK/Source/GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64836_href.png has changed
Binary file Symbian3/SDK/Source/GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e115768_href.png has changed
Binary file Symbian3/SDK/Source/GUID-45DD08DB-FCB3-5546-91B4-25868C8ABAE4_d0e122306_href.png has changed
Binary file Symbian3/SDK/Source/GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e41397_href.png has changed
Binary file Symbian3/SDK/Source/GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e46954_href.png has changed
--- a/Symbian3/SDK/Source/GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF" xml:lang="en"><title>Writing
-a Converter</title><shortdesc>File Converter Framework specifies a plug-in interface for file
-format converters. Clients can convert from one data type to another using
-file format converters, for example, HTML files to Word documents. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-
-<section><title>Introduction</title> <p>The File Converter Framework provides
-the following: </p> <ul>
-<li id="GUID-75C46CFD-2B82-5500-AADA-E9E86CE8E894"><p>An abstract interface
-which all converters must implement. </p> </li>
-<li id="GUID-657490ED-CACA-5C43-BE75-5FBB954F2625"><p>APIs to list and search
-for converters. </p> </li>
-<li id="GUID-97761F64-2821-5845-86AD-1912B6E551F8"><p>APIs to determine the
-MIME types supported by the available converters. </p> </li>
-<li id="GUID-4D4812BA-9B84-5022-81B5-784F80FF5C75"><p>An observer interface
-through which the progress and success or failure of the conversion can be
-reported. </p> </li>
-</ul> <p>Converters are implemented as <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECom
-plug-ins</xref>, each of which can implement one or more converters. Like
-all binaries, the plug-ins are installed in the <filepath>\sys\bin\</filepath> directory.
-Each plug-in must provide two resource files: one contains a <codeph>CONARC_RESOURCE_FILE</codeph> resource
-to describe the converters implemented in the DLL, and the other is a registration
-resource file required by the ECom framework. </p> <p>The following UML diagram
-shows the key elements of the converter architecture, including an example
-client and an example converter DLL that provides two converters, <codeph>myConverter1</codeph> and <codeph>myConverter2</codeph>. </p> <fig id="GUID-6E58825A-CBE2-52B8-B7BD-6D263A0751F4">
-<title>              File Converter architecture            </title>
-<image href="GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e141070_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Procedure</title> <ol id="GUID-1E4BFC84-4F0F-5DB1-A6D5-617E23617AB4">
-<li id="GUID-2132AE6E-DB10-53BE-B9F4-0E8F9C305BCA"><p><xref href="GUID-49C93C36-D86B-4EEE-A8AB-4279312DF4BC.dita">Write
-an interface implementation for a converter</xref>. </p> </li>
-<li id="GUID-B7BABC73-46D1-58EC-9251-2C4728017FB4"><p><xref href="GUID-008F9006-8548-443D-A7ED-4A8233E051C6.dita">Implement
-the ECom framework code</xref>. </p> </li>
-<li id="GUID-4A30B127-FC7A-5751-9F1A-3D8DE591B455"><p><xref href="GUID-436B6DFE-D279-44BF-B099-B2547D50610A.dita">Write
-a resource file</xref>. </p> </li>
-<li id="GUID-14F0D5B7-C909-5EF5-95DB-01E56CA5FFB0"><p><xref href="GUID-22F4D9EA-9912-466E-B729-7706BC17BDA1.dita">Write
-a converter DLL project file</xref>. </p> </li>
-</ol> </section>
-</conbody><related-links>
-<link href="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita"><linktext>File Converter
-Framework Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF" xml:lang="en"><title>Writing
+a Converter</title><shortdesc>File Converter Framework specifies a plug-in interface for file
+format converters. Clients can convert from one data type to another using
+file format converters, for example, HTML files to Word documents. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+
+<section><title>Introduction</title> <p>The File Converter Framework provides
+the following: </p> <ul>
+<li id="GUID-75C46CFD-2B82-5500-AADA-E9E86CE8E894"><p>An abstract interface
+which all converters must implement. </p> </li>
+<li id="GUID-657490ED-CACA-5C43-BE75-5FBB954F2625"><p>APIs to list and search
+for converters. </p> </li>
+<li id="GUID-97761F64-2821-5845-86AD-1912B6E551F8"><p>APIs to determine the
+MIME types supported by the available converters. </p> </li>
+<li id="GUID-4D4812BA-9B84-5022-81B5-784F80FF5C75"><p>An observer interface
+through which the progress and success or failure of the conversion can be
+reported. </p> </li>
+</ul> <p>Converters are implemented as <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECom
+plug-ins</xref>, each of which can implement one or more converters. Like
+all binaries, the plug-ins are installed in the <filepath>\sys\bin\</filepath> directory.
+Each plug-in must provide two resource files: one contains a <codeph>CONARC_RESOURCE_FILE</codeph> resource
+to describe the converters implemented in the DLL, and the other is a registration
+resource file required by the ECom framework. </p> <p>The following UML diagram
+shows the key elements of the converter architecture, including an example
+client and an example converter DLL that provides two converters, <codeph>myConverter1</codeph> and <codeph>myConverter2</codeph>. </p> <fig id="GUID-6E58825A-CBE2-52B8-B7BD-6D263A0751F4">
+<title>              File Converter architecture            </title>
+<image href="GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e134536_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Procedure</title> <ol id="GUID-1E4BFC84-4F0F-5DB1-A6D5-617E23617AB4">
+<li id="GUID-2132AE6E-DB10-53BE-B9F4-0E8F9C305BCA"><p><xref href="GUID-49C93C36-D86B-4EEE-A8AB-4279312DF4BC.dita">Write
+an interface implementation for a converter</xref>. </p> </li>
+<li id="GUID-B7BABC73-46D1-58EC-9251-2C4728017FB4"><p><xref href="GUID-008F9006-8548-443D-A7ED-4A8233E051C6.dita">Implement
+the ECom framework code</xref>. </p> </li>
+<li id="GUID-4A30B127-FC7A-5751-9F1A-3D8DE591B455"><p><xref href="GUID-436B6DFE-D279-44BF-B099-B2547D50610A.dita">Write
+a resource file</xref>. </p> </li>
+<li id="GUID-14F0D5B7-C909-5EF5-95DB-01E56CA5FFB0"><p><xref href="GUID-22F4D9EA-9912-466E-B729-7706BC17BDA1.dita">Write
+a converter DLL project file</xref>. </p> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita"><linktext>File Converter
+Framework Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e184851_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e191447_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-465F0DEF-935F-46D6-B711-A4D362DAD619.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-465F0DEF-935F-46D6-B711-A4D362DAD619" xml:lang="en"><title>Bearer
+Management</title><shortdesc>The Bearer Management collection offers logic for
+selection and re-selection (roaming) of an IP connection, functional implementation
+of Mobility API,  Contention management and error management related to IP
+connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e79385_href.png has changed
Binary file Symbian3/SDK/Source/GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e86097_href.png has changed
Binary file Symbian3/SDK/Source/GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e336132_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e342329_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e341486_href.png has changed
Binary file Symbian3/SDK/Source/GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e347683_href.png has changed
Binary file Symbian3/SDK/Source/GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e304255_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e310270_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e230623_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e234360_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e201499_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e206507_href.png has changed
--- a/Symbian3/SDK/Source/GUID-47851718-8DCA-57F5-8520-7044048A5852.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-47851718-8DCA-57F5-8520-7044048A5852.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-47851718-8DCA-57F5-8520-7044048A5852" xml:lang="en"><title>Graphics Example Code</title><shortdesc>Example code for the Graphics package. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/><related-links><link href="GUID-1C3888E3-33D4-5057-8819-CB6D97398031.dita"><linktext>Font and Bitmap Server example code</linktext> </link> <link href="GUID-C5A0D920-EB2A-5C06-B8F3-F3EAA6BB6BB9.dita"><linktext>Graphics Device Interface example code</linktext> </link> <link href="GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5.dita"><linktext>Windowing example
-  code</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-47851718-8DCA-57F5-8520-7044048A5852" xml:lang="en"><title>Graphics Example
+Code</title><shortdesc>Example code for the Graphics package. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+
+</conbody><related-links>
+<link href="GUID-1C3888E3-33D4-5057-8819-CB6D97398031.dita"><linktext>Font and
+Bitmap Server example code</linktext></link>
+<link href="GUID-C5A0D920-EB2A-5C06-B8F3-F3EAA6BB6BB9.dita"><linktext>Graphics
+Device Interface example code</linktext></link>
+<link href="GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5.dita"><linktext>Windowing
+example   code</linktext></link>
+<link href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita"><linktext>Coverflow
+Example code</linktext></link>
+</related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e76227_href.png has changed
Binary file Symbian3/SDK/Source/GUID-479133EB-1154-554E-8CEA-C61EDA747B69_d0e82939_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e70851_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e75884_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e76342_href.png has changed
Binary file Symbian3/SDK/Source/GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e83054_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4820CA37-982D-57BC-8829-498192801B1E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4820CA37-982D-57BC-8829-498192801B1E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,26 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4820CA37-982D-57BC-8829-498192801B1E" xml:lang="en"><title>ReadData:
-Reading from a Resource File</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-98ed2cf0-25b9-49e1-bfa3-ff26c6b4bbf4.zip" scope="external">ReadData.zip</xref></p>Download some additional files required
-by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework.zip</xref> and <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7c88b173-b677-457c-9f87-ef28897de1d7.zip" scope="external">CommonFile.zip</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-98ed2cf0-25b9-49e1-bfa3-ff26c6b4bbf4.html" scope="peer">browse</xref> to view the example code. </p>View the additional
-files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse CommonFramework</xref> and <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7c88b173-b677-457c-9f87-ef28897de1d7.html" scope="peer">browse CommonFile</xref></section>
-<section><title>Description</title> <p> <filepath>ReadData</filepath> is an
-example of how to load data from resource files into a class. It loads the
-resource identified as resource FIRST from the resource file. This is a simple
-resource of type DATA. The example constructs a <codeph>CResData</codeph> object
-to hold the individual items corresponding to the items in a DATA structure. </p> <p>The <codeph>CResData</codeph> object
-can also display the individual items at the test console. All WORD, BYTE
-and LONG data is interpreted as signed values. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref> </p><p><xref href="GUID-2C40E1EC-15EE-3055-8B7D-2D0FBA4CB535.dita"><apiname>TTResourceReader</apiname></xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4820CA37-982D-57BC-8829-498192801B1E" xml:lang="en"><title>ReadData: Reading from a Resource File</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-00597CB6-C08D-4C33-B964-5861EFDF9882"><title>Download</title> <p>Click on the following link to
+download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-98ed2cf0-25b9-49e1-bfa3-ff26c6b4bbf4.zip" scope="external">ReadData.zip</xref></p>Download some additional files
+required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework.zip</xref> and <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7c88b173-b677-457c-9f87-ef28897de1d7.zip" scope="external">CommonFile.zip</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-98ed2cf0-25b9-49e1-bfa3-ff26c6b4bbf4.html" scope="peer">browse</xref> to view the example code. </p>View the
+additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse CommonFramework</xref> and <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7c88b173-b677-457c-9f87-ef28897de1d7.html" scope="peer">browse CommonFile</xref></section>
+<section id="GUID-6C549B10-6EE2-47EA-AAF2-E6CB7F187633"><title>Description</title> <p> <filepath>ReadData</filepath> is an example of how to load data from resource files into a class.
+It loads the resource identified as resource FIRST from the resource
+file. This is a simple resource of type DATA. The example constructs
+a <codeph>CResData</codeph> object to hold the individual items corresponding
+to the items in a DATA structure. </p> <p>The <codeph>CResData</codeph> object can also display the individual items at the test console.
+All WORD, BYTE and LONG data is interpreted as signed values. </p> </section>
+<section id="GUID-D1D509FE-E739-460B-BDB2-648760CFDA7B"><title>Class Summary</title><p><xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref> </p><p><codeph>TTResourceReader</codeph></p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-48363190-6FFB-4230-84B4-2E521EA51365.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-48363190-6FFB-4230-84B4-2E521EA51365.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,112 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-48363190-6FFB-4230-84B4-2E521EA51365" xml:lang="en"><title>Using
-menu sections in menu bar resource statements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-4EAE2293-314B-4FFB-BF37-FAF75DDC0135"><title>Menu sections in an Options menu</title><image href="GUID-4D6C478A-33BA-4D74-9B82-7133ABFFB0D2_d0e67039_href.png"/></fig>
-<p>The use of menu sections provides a means of combining menu bar resource
-declarations in <b>Options</b> menus. One example of how this could be used
-would be an application with two views. Three <parmname>MENU_BAR</parmname> resources
-could be defined as follows:</p>
-<ul>
-<li><p>an application menu section, which would be common to both
-views</p></li>
-<li><p>a menu section for view 1, which would contain options items
-unique to this view</p></li>
-<li><p>a menu section for view 2, which would contain options items
-unique to this view</p></li>
-</ul>
-<section id="GUID-84E33CCD-1D3D-4A79-BE71-FE96B3D61C22"><title>Combining menu
-sections</title>
-<p>The menu sections that are combined for an <b>Options</b> menu are defined
-in the <parmname>MENU_BAR</parmname> resource. This resource lists all the
-sections that will be combined to form the menu. The menu sections are combined
-from bottom to top (for example, system sections such as 'Edit' go at the
-bottom of the menu while context sections such as 'Open' go at the top of
-the menu). A menu bar is defined as follows:</p>
-<codeblock id="GUID-7E4BF634-13E9-4343-BB80-ACAFCF8D3A86" xml:space="preserve">
-RESOURCE MENU_BAR r_menuapp_menu_bar
-    {
-    titles =
-        {
-        MENU_TITLE { menu_pane = r_system_menu; },
-        MENU_TITLE { menu_pane = r_app_menu; },
-        MENU_TITLE { menu_pane = r_view1_options_menu; },
-        MENU_TITLE { menu_pane = r_context1_menu; }
-        };
-    }
-</codeblock>
-<p>The default <parmname>MENU_BAR</parmname> resource is declared in <xref href="GUID-23A60DE7-B72D-41BD-9F1E-882D31A7E3C7.dita"><parmname>EIK_APP_INFO</parmname></xref> or <xref href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita"><parmname>AVKON_VIEW</parmname></xref></p>
-</section>
-<section id="GUID-4527D821-6960-4E18-B880-FC19BE5320F3"><title>Changing menu
-sections</title>
-<p>You can use the following method to change the <parmname>MENU_BAR</parmname> resource
-that is used by the application to change the menu sections at any time within
-the application: </p>
-<codeblock id="GUID-17796D02-EF20-40EB-80C1-365B58FDC1C3" xml:space="preserve">iEikonEnv-&gt;AppUiFactory()-&gt;MenuBar()-&gt;
-   SetMenuTitleResourceId(MENU_BAR_RESOURCE_ID);
-</codeblock>
-<p>This sets the whole menu bar and should be performed every time one
-of the sections needs to change its contents. Therefore, you should define
-as many <parmname>MENU_BAR</parmname> resources as there are possible combinations
-of menu sections. That is, a menu bar should be defined for each combination
-of view and context options. Note also that if view architecture is used,
-and the view’s own menu system is in use, it is this menu bar’s contents that
-need switching, as follows: </p>
-<codeblock id="GUID-C2F22032-2AF7-41CB-872A-7388DDA23F94" xml:space="preserve">iMyView-&gt;MenuBar()-&gt;
-     SetMenuTitleResourceId(MENU_BAR_RESOURCE_ID);
-</codeblock>
-</section>
-<section id="GUID-73295F48-5E72-48E9-9F0E-5091A8C73B12"><title>Changing menu
-items in menu sections</title>
-<p>Individual menu items in a menu section may be changed whenever the
-menu is displayed. This allows the application to show and hide (or remove
-and add) menu items in response to the application state. In the <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
-Symbian OS UI architecture</xref>, you should override <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/UIKON/MEikAutoMenuObserverClass.html#%3a%3aMEikAutoMenuObserver%3a%3aDynInitMenuPaneL%28%29" format="application/java-archive"><parmname>MEikAutoMenuObserver::DynInitMenuPaneL()</parmname></xref> in the UI
-controller. In the <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
-architecture</xref>, you should override <parmname>MEikAutoMenuObserver::DynInitMenuPaneL()</parmname> in
-the view controller. An example of such an override is as follows:</p>
-<codeblock id="GUID-D8991DA2-0FE2-4904-A202-8254EF294D50" xml:space="preserve">void CMyAppUi::DynInitMenuPaneL(TInt aResourceId, 
-    CEikMenuPane* aMenuPane)
-    {
-    if(aResourceId != R_SYSTEM_MENU_PANE)
-        return; // in this example only interest in system
-                // pane
-
-    // First hide all
-    aMenuPane-&gt;SetItemDimmed(ECmdCut, ETrue);
-    aMenuPane-&gt;SetItemDimmed(ECmdCopy, ETrue);
-    aMenuPane-&gt;SetItemDimmed(ECmdPaste, ETrue);
-
-    // Show according to application state
-    if(...)
-        {
-        aMenuPane-&gt;SetItemDimmed(ECmdCut, EFalse);
-        aMenuPane-&gt;SetItemDimmed(ECmdCopy, EFalse);    
-        }
-    else
-        {
-        aMenuPane-&gt;SetItemDimmed(ECmdPaste, EFalse);
-        }
-    } 
-</codeblock>
-<p>This method is called by the framework after each of the sections has
-been added to the menu, and is called with the resource ID of the section
-that has just been added and the menu pane object that is being built.</p>
-<p>You can also override <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/UIKON/MEikAutoMenuObserverClass.html#%3a%3aMEikAutoMenuObserver%3a%3aDynInitMenuBarL%28%29" format="application/java-archive"><parmname>MEikAutoMenuObserver::DynInitMenuBarL(TInt aResourceId, CEikMenuBar* aMenuBar)</parmname></xref> in
-the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita#GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC/GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC">UI
-controller</xref> or <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita#GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7/GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7">view
-controller</xref>, depending on your UI architecture. This gets called before
-any sections are added to the menu, and can be used to dynamically change
-the sections that will be added to the menu. This could be used to change
-the resource ID of the context menu section for a certain application state. </p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-48363190-6FFB-4230-84B4-2E521EA51365" xml:lang="en"><title>Using
+menu sections in menu bar resource statements</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-4EAE2293-314B-4FFB-BF37-FAF75DDC0135"><title>Menu sections in an Options menu</title><image href="GUID-F96D14A5-58BB-4F1A-A6FB-5D13DCB84B33_d0e61999_href.png"/></fig>
+<p>The use of menu sections provides a means of combining menu bar resource
+declarations in <b>Options</b> menus. One example of how this could be used
+would be an application with two views. Three <parmname>MENU_BAR</parmname> resources
+could be defined as follows:</p>
+<ul>
+<li><p>an application menu section, which would be common to both
+views</p></li>
+<li><p>a menu section for view 1, which would contain options items
+unique to this view</p></li>
+<li><p>a menu section for view 2, which would contain options items
+unique to this view</p></li>
+</ul>
+<section id="GUID-84E33CCD-1D3D-4A79-BE71-FE96B3D61C22"><title>Combining menu
+sections</title>
+<p>The menu sections that are combined for an <b>Options</b> menu are defined
+in the <parmname>MENU_BAR</parmname> resource. This resource lists all the
+sections that will be combined to form the menu. The menu sections are combined
+from bottom to top (for example, system sections such as 'Edit' go at the
+bottom of the menu while context sections such as 'Open' go at the top of
+the menu). A menu bar is defined as follows:</p>
+<codeblock id="GUID-7E4BF634-13E9-4343-BB80-ACAFCF8D3A86" xml:space="preserve">
+RESOURCE MENU_BAR r_menuapp_menu_bar
+    {
+    titles =
+        {
+        MENU_TITLE { menu_pane = r_system_menu; },
+        MENU_TITLE { menu_pane = r_app_menu; },
+        MENU_TITLE { menu_pane = r_view1_options_menu; },
+        MENU_TITLE { menu_pane = r_context1_menu; }
+        };
+    }
+</codeblock>
+<p>The default <parmname>MENU_BAR</parmname> resource is declared in <xref href="GUID-23A60DE7-B72D-41BD-9F1E-882D31A7E3C7.dita"><parmname>EIK_APP_INFO</parmname></xref> or <xref href="GUID-B238952B-1691-49F4-B8B9-9F755011A7DD.dita"><parmname>AVKON_VIEW</parmname></xref></p>
+</section>
+<section id="GUID-4527D821-6960-4E18-B880-FC19BE5320F3"><title>Changing menu
+sections</title>
+<p>You can use the following method to change the <parmname>MENU_BAR</parmname> resource
+that is used by the application to change the menu sections at any time within
+the application: </p>
+<codeblock id="GUID-17796D02-EF20-40EB-80C1-365B58FDC1C3" xml:space="preserve">iEikonEnv-&gt;AppUiFactory()-&gt;MenuBar()-&gt;
+   SetMenuTitleResourceId(MENU_BAR_RESOURCE_ID);
+</codeblock>
+<p>This sets the whole menu bar and should be performed every time one
+of the sections needs to change its contents. Therefore, you should define
+as many <parmname>MENU_BAR</parmname> resources as there are possible combinations
+of menu sections. That is, a menu bar should be defined for each combination
+of view and context options. Note also that if view architecture is used,
+and the view’s own menu system is in use, it is this menu bar’s contents that
+need switching, as follows: </p>
+<codeblock id="GUID-C2F22032-2AF7-41CB-872A-7388DDA23F94" xml:space="preserve">iMyView-&gt;MenuBar()-&gt;
+     SetMenuTitleResourceId(MENU_BAR_RESOURCE_ID);
+</codeblock>
+</section>
+<section id="GUID-73295F48-5E72-48E9-9F0E-5091A8C73B12"><title>Changing menu
+items in menu sections</title>
+<p>Individual menu items in a menu section may be changed whenever the
+menu is displayed. This allows the application to show and hide (or remove
+and add) menu items in response to the application state. In the <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
+Symbian OS UI architecture</xref>, you should override <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/UIKON/MEikAutoMenuObserverClass.html#%3a%3aMEikAutoMenuObserver%3a%3aDynInitMenuPaneL%28%29" format="application/java-archive"><parmname>MEikAutoMenuObserver::DynInitMenuPaneL()</parmname></xref> in the UI
+controller. In the <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
+architecture</xref>, you should override <parmname>MEikAutoMenuObserver::DynInitMenuPaneL()</parmname> in
+the view controller. An example of such an override is as follows:</p>
+<codeblock id="GUID-D8991DA2-0FE2-4904-A202-8254EF294D50" xml:space="preserve">void CMyAppUi::DynInitMenuPaneL(TInt aResourceId, 
+    CEikMenuPane* aMenuPane)
+    {
+    if(aResourceId != R_SYSTEM_MENU_PANE)
+        return; // in this example only interest in system
+                // pane
+
+    // First hide all
+    aMenuPane-&gt;SetItemDimmed(ECmdCut, ETrue);
+    aMenuPane-&gt;SetItemDimmed(ECmdCopy, ETrue);
+    aMenuPane-&gt;SetItemDimmed(ECmdPaste, ETrue);
+
+    // Show according to application state
+    if(...)
+        {
+        aMenuPane-&gt;SetItemDimmed(ECmdCut, EFalse);
+        aMenuPane-&gt;SetItemDimmed(ECmdCopy, EFalse);    
+        }
+    else
+        {
+        aMenuPane-&gt;SetItemDimmed(ECmdPaste, EFalse);
+        }
+    } 
+</codeblock>
+<p>This method is called by the framework after each of the sections has
+been added to the menu, and is called with the resource ID of the section
+that has just been added and the menu pane object that is being built.</p>
+<p>You can also override <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/UIKON/MEikAutoMenuObserverClass.html#%3a%3aMEikAutoMenuObserver%3a%3aDynInitMenuBarL%28%29" format="application/java-archive"><parmname>MEikAutoMenuObserver::DynInitMenuBarL(TInt aResourceId, CEikMenuBar* aMenuBar)</parmname></xref> in
+the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita#GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC/GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC">UI
+controller</xref> or <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita#GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7/GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7">view
+controller</xref>, depending on your UI architecture. This gets called before
+any sections are added to the menu, and can be used to dynamically change
+the sections that will be added to the menu. This could be used to change
+the resource ID of the context menu section for a certain application state. </p>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5"><title>What are Tiers?</title><shortdesc>This topic describes the concepts of a <i>Tier</i> and a <i>Tier Manager</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Tier is a group of Access Points (APs) related to one or more technologies sharing the same Selection and Availability monitoring logic. The Tier Manager provides the means for an application to connect to a communication service to send and receive data, or to check the current status of a communication service. </p> <p>When an application needs to contruct a stack either to request availability on a particular service or to establish a connection with a remote device or service, it will explicitly select a specific Tier Manager at the top of the stack to define the service. If the application does not explicitly select a specific Tier Manager, the default TM will be used. The selection process and connection preferences will define how the rest of the stack is constructed. Each Tier Manager is responsible for selecting the most appropriate AP from a range of alternatives and may also pass up availability information in some cases, depending on the Tier Manager. </p> <p>When a higher Layer wants to bind to a lower layer, it uses the supplied selection criteria to select a Tier and request a specific AP. Once the Tier has returned an AP and the stack has been bound together, the upper layer queries the availability to see if it is possible to connect at that moment. </p> <p>On a device there will be multiple Tier Managers, each responsible for a separate technology or group of technologies. Each Tier Manager will have distinct selection and availability logic and other technology specific algorithms. </p> <p>A single Tier Manager will be responsible for multiple instances of a layer, i.e. multiple APs of the same type. So the Wi-Fi Tier Manager would allow connection to multiple Wi-Fi Access Points, a Telephony Tier Manager will be responsible for connections to different APNs. </p> <p>Tier Managers (<xref href="GUID-33AD3175-2480-3D56-A6DB-FC1FE11E31B4.dita"><apiname>CTierManagerBase</apiname></xref>) are Comms Framework nodes created by their respective factories. Tier Managers respond to Node Messages sent across the Transport, in a similar way to Stack Nodes. </p> <p>The Tier Manager keeps track of the current Access Points that have been created through a query API, see Availability below. The Tier Manager responds to messages sent when an Access Point changes state. For example, when a Bearer stops being available, a message will be sent to the Tier Manager. </p> <p>In the diagram below, two Tier Managers are shown. The diagram shows that one Tier Manager can be responsible for more than one layer in a Stack. </p> <fig id="GUID-983CF8C4-A1DD-59AD-91BD-27E8EE2C5AA7"><title>
-          Communications Architecture showing Tier Managers 
-        </title> <image href="GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e83822_href.png" placement="inline"/></fig> <p>When a client application wants to start a connection it will request an AP by calling <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-ECA90A33-ED2C-331C-8D5B-62927B7CF690"><apiname>RConnection::Open()</apiname></xref> with a Tier Identifier (the <codeph>iTag</codeph> field in the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-437C4AE0-D16B-50B7-8AD8-A4E8FA5F15E5">Tier</xref> table). This will cause a stack of APs that meet the selection and availability criteria to be returned. When the <xref href="GUID-A0C5A43A-C1AD-347E-A57E-4C7BA819FBBA.dita"><apiname>RConnection:Start()</apiname></xref> occurs, a specific AP will be selected at the top layer and the matching CPRs, SCPRs and Data Flows in each of the layers for the connection will be started (unless the connection is already active and this new <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> can share the open connection). </p> <section id="GUID-20688D48-4536-5B1E-B7F5-8C466FA59031"><title>Configuration</title> <p>The configuration for a Tier Manager is held in a number of <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms Database</xref> tables: most importantly the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-437C4AE0-D16B-50B7-8AD8-A4E8FA5F15E5">Tier</xref> table, and the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-52230909-4652-5613-8E52-6761E948907D">Access Point</xref> table. </p> <p>The Tier Table contains the ECom ID of the loaded module that processes Tier Manager requests, and the Default Access Point. The Default Access Point is the one used if the client makes no special requests, see <xref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita#GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5/GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D">Explicit and Implicit Selection</xref> below. </p> <p>The Access Point Table contains the identifiers of the MCPR, CPR and SCPR for this layer, the selection policy, the protocol, the Tier ID and a protocol identifier. </p> <p>It is recommended that all connections should specify a Tier in the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref>, but for backward compatability, <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> without a Tier identifier will use the <codeph>Default Tier</codeph> which is stored in the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-7383902B-10D2-52F3-8BDB-478CA6FB587D">GlobalSettings</xref> table. Important note: for legacy code to function correctly, the Default Tier must be the "<codeph>Network</codeph> " Tier. See <xref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita#GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5/GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D">Explicit and Implicit Selection</xref> below for more information. </p> </section> <section id="GUID-DD707869-1B90-5707-9D6E-DCB45D2DD1E5"><title>Usage</title> <p id="GUID-A9CF89B0-C3DC-5E60-A697-483DA829FD9C"><b>Selection</b> </p> <p>A Tier Manager uses selection to decide which Access Points can be used for a connection. A top-level Tier Manager responds to selection requests that originate from <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> or <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>. </p> <p>Selection selects a stack of APs that may be used to provide a service. The result is a stack or inverted tree showing potential APs at each layer. Remember that a higher layer AP provides a service, but there may be several options at each lower layer for supporting that service (Wi-Fi, 3G telephony etc.). For example, when a client asks for a service to provide a data socket, the list returned will include all the available APs at each layer. The Tier Manager for each layer decides which AP to use. </p> <p id="GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D"><b>Explicit and Implicit Selection</b> </p> <p>If Freeway/Mobility is required it is required that communications clients explicitly open an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> on an AP. and associate the <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref> with it. But to for legacy applications or connections that don't require mobility, Implicit Selection is supported which uses the Default Connection. </p> <p>Explicit Selection occurs when an application specifies the top-level Access Point when calling <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> with a parameter bundle that specifies an AP. Explicit selection selects the top-level AP and joins this connection to the stack. </p> <p>Implicit selection occurs when a user calls <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> on a socket that is not associated with any connection. Implicit selection will associate the socket with the Default Connection. Implicit selection also occurs when an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> is called without specifying an AP in the connection preferences. </p> <p>For Implicit Selection, only the top layer of the stack is created by the <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref>, the remainder of the layers are created when a Data Plane event occurs such as <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-AC5A49E9-337D-334A-9CD0-DB8226372306"><apiname>RSocket::Connect()</apiname></xref> or <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-ADE2383D-3075-30B4-8F63-6D837EB75AEF"><apiname>RSocket::Send()</apiname></xref>. </p> <p>When the Data Plane activation event occurs: </p> <ul><li id="GUID-DF27A381-6BAC-51D0-91CA-42FF85AAE02F"><p>if there is no bearer (no AP for the next layer in the stack), the Control Plane will finish the selection and start the selected connection. </p> </li> <li id="GUID-0B71B7A0-BF9B-5F49-A6B5-F37382039E9A"><p>if there is a bearer, the Data Plane states it has found a flow in the Layer below by protocol-specific means, for example IP routing table. </p> </li> </ul> <p id="GUID-E1C0D897-48A2-58C7-BA2C-0AF406DCDFED"><b>Availability</b> </p> <p>When a client application wants to monitor a technology or existing connection, it can call <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-E80C3173-3777-317A-8007-E9C331FAD9AE"><apiname>RConnectionServ::AccessPointStatusQuery()</apiname></xref> for an immediate status, or <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-D4348A26-176D-3C2D-9BA6-CD055E6EC7D3"><apiname>RConnectionServ::AccessPointNotification()</apiname></xref> to be informed of each status change. As the format of the query bundle is configurable by the MCPR, each technology can specify what information will be returned in a query or notification. For example, the query bundle could contain Wi-Fi hotspot availability, maximum data rate supported, costs etc. </p> </section> </conbody><related-links><link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> <link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> <link href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita"><linktext>Nodes</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5"><title>What are Tiers?</title><shortdesc>This topic describes the concepts of a <i>Tier</i> and a <i>Tier Manager</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Tier is a group of Access Points (APs) related to one or more technologies sharing the same Selection and Availability monitoring logic. The Tier Manager provides the means for an application to connect to a communication service to send and receive data, or to check the current status of a communication service. </p> <p>When an application needs to contruct a stack either to request availability on a particular service or to establish a connection with a remote device or service, it will explicitly select a specific Tier Manager at the top of the stack to define the service. If the application does not explicitly select a specific Tier Manager, the default TM will be used. The selection process and connection preferences will define how the rest of the stack is constructed. Each Tier Manager is responsible for selecting the most appropriate AP from a range of alternatives and may also pass up availability information in some cases, depending on the Tier Manager. </p> <p>When a higher Layer wants to bind to a lower layer, it uses the supplied selection criteria to select a Tier and request a specific AP. Once the Tier has returned an AP and the stack has been bound together, the upper layer queries the availability to see if it is possible to connect at that moment. </p> <p>On a device there will be multiple Tier Managers, each responsible for a separate technology or group of technologies. Each Tier Manager will have distinct selection and availability logic and other technology specific algorithms. </p> <p>A single Tier Manager will be responsible for multiple instances of a layer, i.e. multiple APs of the same type. So the Wi-Fi Tier Manager would allow connection to multiple Wi-Fi Access Points, a Telephony Tier Manager will be responsible for connections to different APNs. </p> <p>Tier Managers (<xref href="GUID-33AD3175-2480-3D56-A6DB-FC1FE11E31B4.dita"><apiname>CTierManagerBase</apiname></xref>) are Comms Framework nodes created by their respective factories. Tier Managers respond to Node Messages sent across the Transport, in a similar way to Stack Nodes. </p> <p>The Tier Manager keeps track of the current Access Points that have been created through a query API, see Availability below. The Tier Manager responds to messages sent when an Access Point changes state. For example, when a Bearer stops being available, a message will be sent to the Tier Manager. </p> <p>In the diagram below, two Tier Managers are shown. The diagram shows that one Tier Manager can be responsible for more than one layer in a Stack. </p> <fig id="GUID-983CF8C4-A1DD-59AD-91BD-27E8EE2C5AA7"><title>
+          Communications Architecture showing Tier Managers 
+        </title> <image href="GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e77110_href.png" placement="inline"/></fig> <p>When a client application wants to start a connection it will request an AP by calling <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-ECA90A33-ED2C-331C-8D5B-62927B7CF690"><apiname>RConnection::Open()</apiname></xref> with a Tier Identifier (the <codeph>iTag</codeph> field in the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-437C4AE0-D16B-50B7-8AD8-A4E8FA5F15E5">Tier</xref> table). This will cause a stack of APs that meet the selection and availability criteria to be returned. When the <xref href="GUID-A0C5A43A-C1AD-347E-A57E-4C7BA819FBBA.dita"><apiname>RConnection:Start()</apiname></xref> occurs, a specific AP will be selected at the top layer and the matching CPRs, SCPRs and Data Flows in each of the layers for the connection will be started (unless the connection is already active and this new <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> can share the open connection). </p> <section id="GUID-20688D48-4536-5B1E-B7F5-8C466FA59031"><title>Configuration</title> <p>The configuration for a Tier Manager is held in a number of <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms Database</xref> tables: most importantly the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-437C4AE0-D16B-50B7-8AD8-A4E8FA5F15E5">Tier</xref> table, and the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-52230909-4652-5613-8E52-6761E948907D">Access Point</xref> table. </p> <p>The Tier Table contains the ECom ID of the loaded module that processes Tier Manager requests, and the Default Access Point. The Default Access Point is the one used if the client makes no special requests, see <xref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita#GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5/GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D">Explicit and Implicit Selection</xref> below. </p> <p>The Access Point Table contains the identifiers of the MCPR, CPR and SCPR for this layer, the selection policy, the protocol, the Tier ID and a protocol identifier. </p> <p>It is recommended that all connections should specify a Tier in the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref>, but for backward compatability, <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> without a Tier identifier will use the <codeph>Default Tier</codeph> which is stored in the <xref href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-7383902B-10D2-52F3-8BDB-478CA6FB587D">GlobalSettings</xref> table. Important note: for legacy code to function correctly, the Default Tier must be the "<codeph>Network</codeph> " Tier. See <xref href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita#GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5/GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D">Explicit and Implicit Selection</xref> below for more information. </p> </section> <section id="GUID-DD707869-1B90-5707-9D6E-DCB45D2DD1E5"><title>Usage</title> <p id="GUID-A9CF89B0-C3DC-5E60-A697-483DA829FD9C"><b>Selection</b> </p> <p>A Tier Manager uses selection to decide which Access Points can be used for a connection. A top-level Tier Manager responds to selection requests that originate from <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> or <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>. </p> <p>Selection selects a stack of APs that may be used to provide a service. The result is a stack or inverted tree showing potential APs at each layer. Remember that a higher layer AP provides a service, but there may be several options at each lower layer for supporting that service (Wi-Fi, 3G telephony etc.). For example, when a client asks for a service to provide a data socket, the list returned will include all the available APs at each layer. The Tier Manager for each layer decides which AP to use. </p> <p id="GUID-0D40CC6A-AFAE-505C-B791-898B4994AE6D"><b>Explicit and Implicit Selection</b> </p> <p>If Freeway/Mobility is required it is required that communications clients explicitly open an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> on an AP. and associate the <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref> with it. But to for legacy applications or connections that don't require mobility, Implicit Selection is supported which uses the Default Connection. </p> <p>Explicit Selection occurs when an application specifies the top-level Access Point when calling <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> with a parameter bundle that specifies an AP. Explicit selection selects the top-level AP and joins this connection to the stack. </p> <p>Implicit selection occurs when a user calls <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> on a socket that is not associated with any connection. Implicit selection will associate the socket with the Default Connection. Implicit selection also occurs when an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> is called without specifying an AP in the connection preferences. </p> <p>For Implicit Selection, only the top layer of the stack is created by the <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref>, the remainder of the layers are created when a Data Plane event occurs such as <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-AC5A49E9-337D-334A-9CD0-DB8226372306"><apiname>RSocket::Connect()</apiname></xref> or <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-ADE2383D-3075-30B4-8F63-6D837EB75AEF"><apiname>RSocket::Send()</apiname></xref>. </p> <p>When the Data Plane activation event occurs: </p> <ul><li id="GUID-DF27A381-6BAC-51D0-91CA-42FF85AAE02F"><p>if there is no bearer (no AP for the next layer in the stack), the Control Plane will finish the selection and start the selected connection. </p> </li> <li id="GUID-0B71B7A0-BF9B-5F49-A6B5-F37382039E9A"><p>if there is a bearer, the Data Plane states it has found a flow in the Layer below by protocol-specific means, for example IP routing table. </p> </li> </ul> <p id="GUID-E1C0D897-48A2-58C7-BA2C-0AF406DCDFED"><b>Availability</b> </p> <p>When a client application wants to monitor a technology or existing connection, it can call <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-E80C3173-3777-317A-8007-E9C331FAD9AE"><apiname>RConnectionServ::AccessPointStatusQuery()</apiname></xref> for an immediate status, or <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita#GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2/GUID-D4348A26-176D-3C2D-9BA6-CD055E6EC7D3"><apiname>RConnectionServ::AccessPointNotification()</apiname></xref> to be informed of each status change. As the format of the query bundle is configurable by the MCPR, each technology can specify what information will be returned in a query or notification. For example, the query bundle could contain Wi-Fi hotspot availability, maximum data rate supported, costs etc. </p> </section> </conbody><related-links><link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> <link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> <link href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita"><linktext>Nodes</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-48482288-B60B-477A-8E28-132F7CBE2C94.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-48482288-B60B-477A-8E28-132F7CBE2C94.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-48482288-B60B-477A-8E28-132F7CBE2C94" xml:lang="en"><title>Confirmation
-query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A confirmation query requests the user to confirm an operation, or asks
-a Yes-No-type of question. It can be used e.g. to make sure that the user
-does not accidentally delete important information or start an operation which
-cannot be cancelled.</p>
-<p>The layout for a Confirmation query is the same as the note layout, with
-an optional graphic item.</p>
-<p>One or two softkey labels can be used. In case the query can cause two
-different consequences, the positive choice (<b>Yes</b>) is placed on the
-left softkey, and the negative one (<b>No</b>) on the right softkey. In pure
-confirmations, only one way to proceed is possible, and the response text
-(for example <b>OK</b>) is placed on the left softkey.</p>
-<p>The Selection key always causes the same action as the left softkey.</p>
-<fig id="GUID-F5C18BD7-D656-4769-B841-C636628E9B1C">
-<title>Confirmation query</title>
-<image href="GUID-0DEC4D1B-2CD6-49BC-92E4-F0CB0BCBFA9D_d0e68726_href.jpg" scale="40" placement="inline"/>
-</fig>
-<p>Guidelines for designing Confirmation queries:</p>
-<ul>
-<li><p>When designing the prompt text, make sure that the positive answer
-is also a safe one. Users tend to proceed pressing the left softkey or the
-Selection key without thinking too much. </p></li>
-<li><p>Redundant Confirmation queries should be avoided. Do not add a Confirmation
-query if there already are other forms of feedback, unless it is crucial that
-the user gets a certain piece of information.</p></li>
-</ul>
-<section><title>Using confirmation queries
-in C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-48482288-B60B-477A-8E28-132F7CBE2C94" xml:lang="en"><title>Confirmation
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A confirmation query requests the user to confirm an operation, or asks
+a Yes-No-type of question. It can be used e.g. to make sure that the user
+does not accidentally delete important information or start an operation which
+cannot be cancelled. A touch down and release on the query has no effect.
+Confirmation query cannot be dismissed by tapping outside.</p>
+<p>The layout for a Confirmation query is the same as the note layout, with
+an optional graphic item.</p>
+<p>One or two softkey labels can be used. In case the query can cause two
+different consequences, the positive choice (<b>Yes</b>) is placed on the
+left softkey, and the negative one (<b>No</b>) on the right softkey. In pure
+confirmations, only one way to proceed is possible, and the response text
+(for example <b>OK</b>) is placed on the left softkey.</p>
+<p>The Selection key always causes the same action as the left softkey.</p>
+<fig id="GUID-123C27EC-BC2D-4CC7-9E4D-015C6B2ABE1D">
+<title>Confirmation query</title>
+<image href="GUID-1A905563-EF60-4A01-BC55-5B35904F96AB_d0e63486_href.png" placement="inline"/>
+</fig>
+<p>Guidelines for designing Confirmation queries:</p>
+<ul>
+<li><p>When designing the prompt text, make sure that the positive answer
+is also a safe one. Users tend to proceed pressing the left softkey or the
+Selection key without thinking too much. </p></li>
+<li><p>Redundant Confirmation queries should be avoided. Do not add a Confirmation
+query if there already are other forms of feedback, unless it is crucial that
+the user gets a certain piece of information.</p></li>
+</ul>
+<section id="GUID-3EDD5DCB-58C7-4D15-A933-6E73F7F9B709"><title>Using
+confirmation queries in applications</title><p>For implementation
+information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e322748_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e328905_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-48B61662-0A11-4356-9882-7523B04FFD96" xml:lang="en"><title>Changing
-Passphrase</title><shortdesc>This section explains how to change the passphrase.  </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context><p>The following steps explain the process of changing the passphrase:</p></context>
-<steps id="GUID-16DDA72F-9BC5-52FB-A3C6-874815ABF9FC-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2">
-<step id="GUID-89755D62-9A44-5F07-9035-6AA97F701C0C-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-1"><cmd>Create a file system
-session using an <codeph>RFs</codeph> object. </cmd>
-</step>
-<step id="GUID-6A14EBD6-AF2D-5CE8-A232-F04B717CA0B3-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-2"><cmd/>
-<info>Create an object of type CUnifiedKeyStore using <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-C7A96153-4179-3B3F-878D-1EAA64A98D39"><apiname>CUnifiedKeyStore::NewL()</apiname></xref> or <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-217FBB3B-CEF5-36F2-A612-EDDA0982053C"><apiname>CUnifiedKeyStore::NewLC()</apiname></xref>. </info>
-</step>
-<step id="GUID-C8F104CE-E857-5615-B847-E3A33EAF7481-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-3"><cmd/>
-<info>Initialize the member functions and keystore using the asynchronous
-function <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-6C5D732C-1FD1-3EF0-AC90-87690F891B8D"><apiname>CUnifiedKeyStore::Initialize()</apiname></xref>. </info>
-</step>
-<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-4"><cmd/>
-<info>Obtain the authentication object of a key using the <xref href="GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2.dita#GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2/GUID-431CEFD1-5469-33B0-B21B-A535536CE40C"><apiname>CCTKeyInfo::Protector()</apiname></xref> function.</info>
-</step>
-<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-5"><cmd/>
-<info>Invoke the <xref href="GUID-171BE947-E0D2-3049-85BB-FE2664D3777D.dita"><apiname>ChangeReferenceData()</apiname></xref> function for the
-authentication object obtained. The keystore prompts the user to enter the
-old and new passphrases.</info>
-</step>
-</steps>
-<result><p>The passphrase is changed for the selected key, if the old passphrase
-is entered correctly.</p> </result>
-<example id="GUID-C2150584-293D-50CE-8DDC-19B4D55D8B0B-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4"><title>Example</title> <p>The
-following code snippet shows how to set use policy for a key. </p> <codeblock id="GUID-FAD1C292-8E42-5348-B975-3CBA7E8D2820-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4-3" xml:space="preserve">// Create a file system session object
-RFs iFs;
-CleanupClosePushL(&amp;iFs);
-
-
-...
-
-
-// Initialise the keystore and member functions
-CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(fs);
-keyStore-&gt;Initialize(iStatus); //iStatus is a TRequestStatus object
-
-
-...
-
-
-
-// Change the passphrase
-void ChangePassphraseL(CCTKeyInfo&amp; aKey)
-{
-    MCTAuthenticationObject* authObject = aKey.Protector();
-    if (authObject == NULL)
-        User::Leave(KErrNotSupported);
-
-    authObject-&gt;ChangeReferenceData(iStatus);
-    iState = EChangePassphrase;
-    SetActive();
-}
-
-
-// Clean up
-CleanupStack::PopAndDestroy(); // iFs</codeblock> </example>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-48B61662-0A11-4356-9882-7523B04FFD96" xml:lang="en"><title>Changing
+Passphrase</title><shortdesc>This section explains how to change the passphrase.  </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context><p>The following steps explain the process of changing the passphrase:</p></context>
+<steps id="GUID-16DDA72F-9BC5-52FB-A3C6-874815ABF9FC-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2">
+<step id="GUID-89755D62-9A44-5F07-9035-6AA97F701C0C-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-1"><cmd>Create a file system
+session using an <codeph>RFs</codeph> object. </cmd>
+</step>
+<step id="GUID-6A14EBD6-AF2D-5CE8-A232-F04B717CA0B3-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-2"><cmd/>
+<info>Create an object of type CUnifiedKeyStore using <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-C7A96153-4179-3B3F-878D-1EAA64A98D39"><apiname>CUnifiedKeyStore::NewL()</apiname></xref> or <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-217FBB3B-CEF5-36F2-A612-EDDA0982053C"><apiname>CUnifiedKeyStore::NewLC()</apiname></xref>. </info>
+</step>
+<step id="GUID-C8F104CE-E857-5615-B847-E3A33EAF7481-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-3"><cmd/>
+<info>Initialize the member functions and keystore using the asynchronous
+function <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-6C5D732C-1FD1-3EF0-AC90-87690F891B8D"><apiname>CUnifiedKeyStore::Initialize()</apiname></xref>. </info>
+</step>
+<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-4"><cmd/>
+<info>Obtain the authentication object of a key using the <xref href="GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2.dita#GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2/GUID-431CEFD1-5469-33B0-B21B-A535536CE40C"><apiname>CCTKeyInfo::Protector()</apiname></xref> function.</info>
+</step>
+<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-5"><cmd/>
+<info>Invoke the <xref href="GUID-171BE947-E0D2-3049-85BB-FE2664D3777D.dita"><apiname>ChangeReferenceData()</apiname></xref> function for the
+authentication object obtained. The keystore prompts the user to enter the
+old and new passphrases.</info>
+</step>
+</steps>
+<result><p>The passphrase is changed for the selected key, if the old passphrase
+is entered correctly.</p> </result>
+<example id="GUID-C2150584-293D-50CE-8DDC-19B4D55D8B0B-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4"><title>Example</title> <p>The
+following code snippet shows how to set use policy for a key. </p> <codeblock id="GUID-FAD1C292-8E42-5348-B975-3CBA7E8D2820-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4-3" xml:space="preserve">// Create a file system session object
+RFs iFs;
+CleanupClosePushL(&amp;iFs);
+
+
+...
+
+
+// Initialise the keystore and member functions
+CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(fs);
+keyStore-&gt;Initialize(iStatus); //iStatus is a TRequestStatus object
+
+
+...
+
+
+
+// Change the passphrase
+void ChangePassphraseL(CCTKeyInfo&amp; aKey)
+{
+    MCTAuthenticationObject* authObject = aKey.Protector();
+    if (authObject == NULL)
+        User::Leave(KErrNotSupported);
+
+    authObject-&gt;ChangeReferenceData(iStatus);
+    iState = EChangePassphrase;
+    SetActive();
+}
+
+
+// Clean up
+CleanupStack::PopAndDestroy(); // iFs</codeblock> </example>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830"><title>The reference counting object</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A reference counting object is one which uses reference counting to track concurrent references to itself and which arranges for automatic destruction of itself when the final reference is removed. It is also an object which can be named. </p> <p>A reference counting object is any object which has <codeph>CObject</codeph> as its base class. </p> <p>Constructing a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> derived type, or calling its <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-E6319811-605D-3329-9314-ED25F4A9116C"><apiname>CObject::Open()</apiname></xref> member function, adds a reference to that object by adding one to its reference count. Calling its <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref> member function removes a reference by subtracting one from its reference count. When the last user of the object calls <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref>, the reference count becomes zero and the object is automatically destroyed. </p> <p>The following drawing shows the idea. </p> <fig id="GUID-18A04428-FBD7-5115-B206-6F2E67343A7F"><image href="GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e248344_href.png" placement="inline"/></fig> <p>A <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> is always part of a class hierarchy. It is a base class; an explicit <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> type is never instantiated. </p> <p>The server side implementation of a client/server subsession uses a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>. </p> <p>See also: </p> <ul><li id="GUID-20A9F23B-19B5-5D70-9943-811FC42F3BED"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>  </p> </li> <li id="GUID-8C980E14-F073-5918-AD66-8547656BC13D"><p> <xref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita">Subsessions within a session</xref>  </p> </li> <li id="GUID-C5FCE438-1F8B-569C-9257-0EBE9D823747"><p> <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">Using client/server</xref>  </p> </li> </ul> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-48C764A2-378F-57CC-B7F2-EC866AE8F830"><title>The reference counting object</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A reference counting object is one which uses reference counting to track concurrent references to itself and which arranges for automatic destruction of itself when the final reference is removed. It is also an object which can be named. </p> <p>A reference counting object is any object which has <codeph>CObject</codeph> as its base class. </p> <p>Constructing a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> derived type, or calling its <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-E6319811-605D-3329-9314-ED25F4A9116C"><apiname>CObject::Open()</apiname></xref> member function, adds a reference to that object by adding one to its reference count. Calling its <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref> member function removes a reference by subtracting one from its reference count. When the last user of the object calls <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref>, the reference count becomes zero and the object is automatically destroyed. </p> <p>The following drawing shows the idea. </p> <fig id="GUID-18A04428-FBD7-5115-B206-6F2E67343A7F"><image href="GUID-39AAB0D3-6D4D-5DE3-B894-F5E763D3E19B_d0e244607_href.png" placement="inline"/></fig> <p>A <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> is always part of a class hierarchy. It is a base class; an explicit <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> type is never instantiated. </p> <p>The server side implementation of a client/server subsession uses a <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>. </p> <p>See also: </p> <ul><li id="GUID-20A9F23B-19B5-5D70-9943-811FC42F3BED"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>  </p> </li> <li id="GUID-8C980E14-F073-5918-AD66-8547656BC13D"><p> <xref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita">Subsessions within a session</xref>  </p> </li> <li id="GUID-C5FCE438-1F8B-569C-9257-0EBE9D823747"><p> <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">Using client/server</xref>  </p> </li> </ul> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e375455_href.png has changed
Binary file Symbian3/SDK/Source/GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e381534_href.png has changed
--- a/Symbian3/SDK/Source/GUID-48ED7013-B1B7-5E86-AC09-599C4499191D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-48ED7013-B1B7-5E86-AC09-599C4499191D" xml:lang="en"><title>Example Code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>An example application that demonstrates the use of the Multimedia Frameworks is shown below: </p> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-49205F79-C17B-4126-BDB2-D759B91B5894.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-49205F79-C17B-4126-BDB2-D759B91B5894" xml:lang="en"><title>Enabling
+Application Level Roaming</title><shortdesc>Application-level roaming (ALR) enables your application to roam
+to use the best available data connection while operational.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-9B1466E3-661E-4BAB-A7F7-7F587FF8EBF1">       <p>To use application-level
+roaming: </p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-6-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-6-1-3-2-1"><cmd>Initiate an Internet
+connection using the Connection Manager API and the Internet destination network.
+In this example it is assumed that the best available access point for Internet
+is GPRS. </cmd>
+<stepresult>           <p> RConnection handle is returned to the application. </p> 
+       </stepresult>
+</step>
+<step id="GUID-247DC723-B5D7-4E6B-B3E9-380DA63230B2"><cmd>Register for mobility
+API sending <xref href="GUID-54ACF1D8-F501-37EB-A558-CEF005D84F14.dita"><apiname>NewL(RConnection handle, MMobilityProtocolResp&amp;)</apiname></xref> to
+the Connection Manager API.</cmd>
+</step>
+<step id="GUID-65B2CBFA-9631-4172-8B1A-665F09729871"><cmd>Use Sockets Client
+API to open <xref href="GUID-30FCE6D7-B7E2-317F-A72A-4AB908E92B34.dita"><apiname>RSockets</apiname></xref> with <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> handle. </cmd>
+<stepresult><p> RSocket handle is returned to the application.</p></stepresult>
+</step>
+<step id="GUID-663CEB0D-A36D-46CB-8C2D-700D7DA76EF8"><cmd>Initiate normal
+socket communication to the Sockets Client API. This data transfer uses GPRS.
+  A WLAN access point becomes available. The Connection Manager API sends <xref href="GUID-EA7C9217-8989-3486-B50F-9EA5844A6F2F.dita"><apiname>PreferredCarrierAvailable(old
+access point, new access point, is upgrade, not seamless</apiname></xref>) to the
+application.  The application decides to switch to the better access point.
+It closes the old socket using the Sockets Client API. </cmd>
+</step>
+<step id="GUID-417D1229-320F-4B07-A429-9274163C7E01"><cmd>Send <xref href="GUID-99D7A3EF-ACF5-3E11-B356-E77497884F1F.dita"><apiname>MigrateToPreferredCarrier()</apiname></xref> to
+the Connection Manager API.  Note: The application can also<xref href="GUID-7B5530C5-A13F-3BC6-BC69-9B05993AFCB1.dita"><apiname> IgnorePreferredCarrier()</apiname></xref>.
+In that case it would just keep using the existing socket.  The connection
+is moved in the Connection Manager API. The WLAN access point is activated
+and RConnection handle is moved from the GPRS interface to WLAN. <xref href="GUID-EB635CFD-84A5-334B-8F48-85265E40A5A2.dita"><apiname> NewCarrierActive(new
+IAP)</apiname></xref> is returned to the application.  The WLAN access point is now
+ready to be used. </cmd>
+</step>
+<step id="GUID-284D53C0-516A-4F05-8422-918A6FCA036C"><cmd>Use Sockets Client
+API to open RSockets with RConnection handle. This data transfer uses WLAN.</cmd>
+</step>
+<step id="GUID-27CF0583-4A43-4386-AFF6-E37E6DA15A64"><cmd>Transfer data using
+the Sockets Client API to confirm that the connection works.</cmd>
+</step>
+<step id="GUID-B7B7D14A-D241-49C2-84D0-147B780A70FF"><cmd>Send <xref href="GUID-91FB265C-9924-3F59-8C7B-C68D65D72ABC.dita"><apiname>NewCarrierAccepted()</apiname></xref> to
+the Connection Manager API. This is the point of no return.</cmd>
+</step>
+<step id="GUID-239B2867-A34A-45EE-A843-8C913709CD47"><cmd>Continue transferring
+data using the Sockets Client API. This data transfer uses WLAN.</cmd>
+</step>
+</steps>
+<result id="GUID-B55F3ECE-2C77-446C-8313-ED3B72BBF4DF">       <p>ALR is enabled.</p> 
+   </result>
+<example><codeblock xml:space="preserve">class CALRApplication : public CActive, public MMobilityProtocolResp
+    {
+...
+    public: // From MMobilityProtocolResp
+    void PreferredCarrierAvailable( TAccessPointInfo aOldAPInfo,
+                                        TAccessPointInfo aNewAPInfo,
+                                        TBool aIsUpgrade,
+                                        TBool aIsSeamless );
+  void NewCarrierActive( TAccessPointInfo aNewAPInfo, TBool aIsSeamless );
+  void Error( TInt aError );
+  private:    // Data
+  RConnection  iConnection;
+  CActiveCommsMobilityApiExt*   iMobility;
+    };
+// When the connection starts, iMobility is created and it registers the connection to receive mobility messages.
+iMobility = CActiveCommsMobilityApiExt::NewL( iConnection, *this );When apreferred access point becomes available, the implementation of CALRApplication::PreferredCarrierAvailable is called. MigrateToPreferredCarrier Mobility message is sent to the middleware in order to roam to this preferred access point.
+void CALRApplication::PreferredCarrierAvailable( TAccessPointInfo aOldAPInfo,TAccessPointInfo aNewAPInfo,TBool aIsUpgrade,TBool aIsSeamless ){
+    // aOldAPInfo contains the current IAP used by the connection.
+    // aNewAPInfo contains the newly available IAP that can be used by the connection.
+ if ( aIsSeamless )
+        {
+        // It is Seamless. E.g. Mobile IP enabled.
+        }
+    else
+        {
+        // sockets used by the connection should be closed here.
+        // We ask to migrate to the Preferred Carrier.
+        iMobility-&gt;MigrateToPreferredCarrier();
+        }
+    }
+Once the connection roamed to the new access point, the implementation ofCALRApplication::NewCarrierActive is called. The application reopens its sockets on the connection. If the socket connection is fine, the application sends the NewCarrierAccepted Mobility message to the middleware.
+
+void CALRApplication::NewCarrierActive( TAccessPointInfo aNewAPInfo, TBool aIsSeamless )
+    {
+    // aNewAPInfo contains the newly started IAP used now by the connection.
+    if ( aIsSeamless )
+        {
+        // It is Seamless. E.g. Mobile IP enabled.
+        }
+    else
+        {
+        // sockets used by the connection should be reopened here.
+        // We accept the new IAP.
+        iMobility-&gt;NewCarrierAccepted();
+        }
+    }</codeblock></example>
+</taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e215301_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e219038_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e266550_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e270258_href.png has changed
--- a/Symbian3/SDK/Source/GUID-49363088-CE0B-558D-8E86-48400E4F7C2F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-49363088-CE0B-558D-8E86-48400E4F7C2F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-49363088-CE0B-558D-8E86-48400E4F7C2F" xml:lang="en"><title>Multiple
-Alarm Notification Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EF2183A7-324A-4D62-93D1-FB007A33645C"><title>Purpose and Scope</title> <p>This document provides a description
-of the multiple alarm notification support in Symbian OS v9.2 and later. The
-main feature is the ability of multiple alarms to expire simultaneously. UI
-applications do not have to acknowledge an alarm event before the agenda server
-generates the next alarm event. This document provides a configuration guide. </p> </section>
-<section id="GUID-F20C402E-3C40-4EE3-8822-65D066467FF6"><title>Definitions</title> <dl>
-<dlentry>
-<dt>Alarm Server </dt>
-<dd><p>This provides Symbian with alarm-related services. It communicates
-with Uikon Alert Server to display the expired alarm to users. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Uikon Alert Server</dt>
-<dd><p>The Uikon Alert Server provides the interface for Alarm Server to interact
-with Licensee UI Applications. It consists of a client interface in Alarm
-Alert, and a server interface in Uikon. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-A8950BFC-6458-4E6A-A3FC-A2FC5FC704FD"><title>Description</title> <p>Alarm Server provides all alarm-related
-services to the system. When an alarm expires, Alarm Server notifies the Alert
-Server about the expired alarm to display to the user. </p> <p>The state properties
-are the same for single and multiple alarm notification, but the condition
-for moving to ‘notifying’ state is different. If multiple alarm notification
-is supported, more than one alarm can move to ‘notifying’ state provided that
-Alert Server can accept more than one alarm from Alarm Server. Even if a UI
-application can accept multiple notifying alarms, it cannot accept an infinite
-number of notifying alarms. Therefore, at Alarm Server startup, Alarm Server
-will query Alert Server for the maximum number of notifying alarms allowed.
-Alarm Server can use that information to determine if multiple alarm notification
-is supported, and if so, how many alarms can be in ‘notifying’ state at the
-same time. </p> <p>To support multiple alarm notification, Alarm Server notifies
-Alert Server about multiple expired alarms without waiting for the first alarm
-to be cleared or snoozed. </p> <fig id="GUID-4F324FD2-EB30-5910-BD8E-315B67A4FA44">
-<title>              Alarm state diagram for multiple alarm notification 
-            support            </title>
-<image href="GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e381172_href.png" placement="inline"/>
-</fig> <p>In the diagram above, a queued alarm can change to the ‘waiting
-to notify’ state if an alarm has expired but the maximum number of notifying
-alarms has been reached. The state can also change if Alarm Server is waiting
-for a reply from Alert Server. This second scenario may occur because even
-though Alert Server can accept multiple alarms, the Alarm Server needs the
-previous asynchronous request <xref href="GUID-A323F434-0A44-31E6-B57D-11F4DFC37EEE.dita"><apiname>EASAltOpCodeSetAlarm</apiname></xref> to be
-completed before sending the next one. As the UI application is implemented
-by licensee, this scenario may or may not occur depending on how long the
-UI application takes to register multiple alarms. </p> <p>If the Alert Server
-can still accept more alarms the ‘waiting to notify’ alarm can change to ‘notifying’
-state after the asynchronous request <xref href="GUID-A323F434-0A44-31E6-B57D-11F4DFC37EEE.dita"><apiname>EASAltOpCodeSetAlarm</apiname></xref> is
-completed. </p> <p>As demonstrated above, a 'notifying' alarm can change to
-‘snoozed’ state if: </p> <ol id="GUID-31855E68-7830-5B92-83DB-7BAFBF660B53">
-<li id="GUID-EAFA400D-1FCE-5036-9522-13CB1A2C23E0"><p>The user requests ‘snooze’ </p> </li>
-<li id="GUID-92CA5327-A999-526A-BB0F-36279B98AFEE"><p>Another alarm has expired
-and the current alarm has sound playing paused. This scenario occurs if the
-paused alarm is the only notifying alarm </p> </li>
-<li id="GUID-7224BE4C-AF70-5F05-9BAE-0B95C8FFE483"><p>The sound playing is
-paused for the current notifying alarm. If this occurs and there are multiple
-notifying alarms, the currently notifying alarm is snoozed instead of paused. </p> </li>
-</ol> <p>For single alarm notification, a notifying alarm has sound paused
-when Alarm Server receives a <xref href="GUID-4BAB46E3-5397-3D40-8ED7-117C5F3DA51E.dita"><apiname>EASAltAlertServerResponsePauseSound</apiname></xref> event
-from Alert Server. If another alarm has expired while the notifying alarm
-has sound paused, Alarm Server snoozes the paused alarm automatically and
-plays the sound of the just expired alarm. In case of multiple alarm notification,
-the ‘sound paused’ alarm automatically snoozes if other alarms notify at the
-same time. </p> <p>It is a design decision to make the implementation compatible
-with the existing implementation. That way if the maximum number of alarms
-is set to one, the implementation is exactly that same as before. </p> <p>In
-case of multiple alarm notification, pausing the playing alarm triggers the
-Alarm Server to play sound for one of the other notifying alarms. This is
-because the sound pause request only applies to the specified alarm. </p> <p>If
-the user wants to silence the alarm while keeping the alarm in ‘notifying’
-state, the user can respond with ‘silent’ (<xref href="GUID-C9D7979F-3E53-3513-92E9-219DA85D48E1.dita"><apiname>EASAltAlertServerResponseSilence</apiname></xref>),
-which will silence the alarm until the next alarm play interval re-starts
-(an existing behaviour in single alarm notification). Alternatively, a global
-silent command (<xref href="GUID-B3A373AD-3488-3439-8896-2B2B34653020.dita"><apiname>EASAltAlertServerResponseQuietPeriod</apiname></xref>) will
-pause sound for all alarms for a specified time while all expired alarms will
-stay in ‘notifying’ state. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-49363088-CE0B-558D-8E86-48400E4F7C2F" xml:lang="en"><title>Multiple
+Alarm Notification Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-EF2183A7-324A-4D62-93D1-FB007A33645C"><title>Purpose and Scope</title> <p>This document provides a description
+of the multiple alarm notification support in Symbian OS v9.2 and later. The
+main feature is the ability of multiple alarms to expire simultaneously. UI
+applications do not have to acknowledge an alarm event before the agenda server
+generates the next alarm event. This document provides a configuration guide. </p> </section>
+<section id="GUID-F20C402E-3C40-4EE3-8822-65D066467FF6"><title>Definitions</title> <dl>
+<dlentry>
+<dt>Alarm Server </dt>
+<dd><p>This provides Symbian with alarm-related services. It communicates
+with Uikon Alert Server to display the expired alarm to users. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Uikon Alert Server</dt>
+<dd><p>The Uikon Alert Server provides the interface for Alarm Server to interact
+with Licensee UI Applications. It consists of a client interface in Alarm
+Alert, and a server interface in Uikon. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-A8950BFC-6458-4E6A-A3FC-A2FC5FC704FD"><title>Description</title> <p>Alarm Server provides all alarm-related
+services to the system. When an alarm expires, Alarm Server notifies the Alert
+Server about the expired alarm to display to the user. </p> <p>The state properties
+are the same for single and multiple alarm notification, but the condition
+for moving to ‘notifying’ state is different. If multiple alarm notification
+is supported, more than one alarm can move to ‘notifying’ state provided that
+Alert Server can accept more than one alarm from Alarm Server. Even if a UI
+application can accept multiple notifying alarms, it cannot accept an infinite
+number of notifying alarms. Therefore, at Alarm Server startup, Alarm Server
+will query Alert Server for the maximum number of notifying alarms allowed.
+Alarm Server can use that information to determine if multiple alarm notification
+is supported, and if so, how many alarms can be in ‘notifying’ state at the
+same time. </p> <p>To support multiple alarm notification, Alarm Server notifies
+Alert Server about multiple expired alarms without waiting for the first alarm
+to be cleared or snoozed. </p> <fig id="GUID-4F324FD2-EB30-5910-BD8E-315B67A4FA44">
+<title>              Alarm state diagram for multiple alarm notification 
+            support            </title>
+<image href="GUID-16B42854-F27D-5CB3-BCFE-8F711793EE60_d0e375093_href.png" placement="inline"/>
+</fig> <p>In the diagram above, a queued alarm can change to the ‘waiting
+to notify’ state if an alarm has expired but the maximum number of notifying
+alarms has been reached. The state can also change if Alarm Server is waiting
+for a reply from Alert Server. This second scenario may occur because even
+though Alert Server can accept multiple alarms, the Alarm Server needs the
+previous asynchronous request <xref href="GUID-A323F434-0A44-31E6-B57D-11F4DFC37EEE.dita"><apiname>EASAltOpCodeSetAlarm</apiname></xref> to be
+completed before sending the next one. As the UI application is implemented
+by licensee, this scenario may or may not occur depending on how long the
+UI application takes to register multiple alarms. </p> <p>If the Alert Server
+can still accept more alarms the ‘waiting to notify’ alarm can change to ‘notifying’
+state after the asynchronous request <xref href="GUID-A323F434-0A44-31E6-B57D-11F4DFC37EEE.dita"><apiname>EASAltOpCodeSetAlarm</apiname></xref> is
+completed. </p> <p>As demonstrated above, a 'notifying' alarm can change to
+‘snoozed’ state if: </p> <ol id="GUID-31855E68-7830-5B92-83DB-7BAFBF660B53">
+<li id="GUID-EAFA400D-1FCE-5036-9522-13CB1A2C23E0"><p>The user requests ‘snooze’ </p> </li>
+<li id="GUID-92CA5327-A999-526A-BB0F-36279B98AFEE"><p>Another alarm has expired
+and the current alarm has sound playing paused. This scenario occurs if the
+paused alarm is the only notifying alarm </p> </li>
+<li id="GUID-7224BE4C-AF70-5F05-9BAE-0B95C8FFE483"><p>The sound playing is
+paused for the current notifying alarm. If this occurs and there are multiple
+notifying alarms, the currently notifying alarm is snoozed instead of paused. </p> </li>
+</ol> <p>For single alarm notification, a notifying alarm has sound paused
+when Alarm Server receives a <xref href="GUID-4BAB46E3-5397-3D40-8ED7-117C5F3DA51E.dita"><apiname>EASAltAlertServerResponsePauseSound</apiname></xref> event
+from Alert Server. If another alarm has expired while the notifying alarm
+has sound paused, Alarm Server snoozes the paused alarm automatically and
+plays the sound of the just expired alarm. In case of multiple alarm notification,
+the ‘sound paused’ alarm automatically snoozes if other alarms notify at the
+same time. </p> <p>It is a design decision to make the implementation compatible
+with the existing implementation. That way if the maximum number of alarms
+is set to one, the implementation is exactly that same as before. </p> <p>In
+case of multiple alarm notification, pausing the playing alarm triggers the
+Alarm Server to play sound for one of the other notifying alarms. This is
+because the sound pause request only applies to the specified alarm. </p> <p>If
+the user wants to silence the alarm while keeping the alarm in ‘notifying’
+state, the user can respond with ‘silent’ (<xref href="GUID-C9D7979F-3E53-3513-92E9-219DA85D48E1.dita"><apiname>EASAltAlertServerResponseSilence</apiname></xref>),
+which will silence the alarm until the next alarm play interval re-starts
+(an existing behaviour in single alarm notification). Alternatively, a global
+silent command (<xref href="GUID-B3A373AD-3488-3439-8896-2B2B34653020.dita"><apiname>EASAltAlertServerResponseQuietPeriod</apiname></xref>) will
+pause sound for all alarms for a specified time while all expired alarms will
+stay in ‘notifying’ state. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,145 +1,145 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4941C035-C359-4968-9BD5-31F44EE5F810" xml:lang="en"><title>Commands</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term command refers to events that are received when a device user
-selects an option in the <b>Options</b> menu or presses a softkey (for more
-information, see <xref href="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita">UI concepts</xref>).
-The device user input results in the application framework returning a command
-ID that corresponds to the softkey or <b>Options</b> menu selection. Command
-IDs are mapped to the selection options in the <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA</xref> and <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">Menu bar</xref> resource
-definitions. You can use either custom command IDs, which must be defined
-in your application <xref href="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita"><parmname>hrh</parmname></xref> resource
-file, or <xref href="GUID-CBB00F6A-CBA7-4872-B0A1-A86A863725F5.dita">precompiled
-values available from the Symbian platform</xref> in your resource definitions.
-At runtime, the application framework catches the command ID values and passes
-them to the application that has focus for handling. The following commands
-have special requirements:</p>
-<ul>
-<li><p><parmname>EEikCmdExit</parmname>, which is sent by the application
-framework to exit open applications. This command ID must not be used in the
-resource file definitions, as it is reserved for the application framework.
-For more information on the special requirements for handling this command,
-see <xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
-EEikCmdExit</xref>.</p>
-</li>
-<li><p><parmname>EAknSoftKeyBack</parmname>, which is delivered
-in response to a device user pressing the <parmname>Back</parmname> softkey.
-The behavior required in response to this command depends on the context,
-but if an exit is required it needs to be handled in the same manner as with
-the <parmname>EEikCmdExit</parmname> command.</p></li>
-<li><p><parmname>EAknSoftkeyOptions</parmname>, which is associated
-with the <parmname>Options</parmname> softkey, is handled by the application
-framework directly and results in the <parmname>Options</parmname> menu being
-presented to the device user.</p></li>
-</ul>
-<p>For more information on resource files, see <xref href="GUID-0FB60233-993A-4BF2-9E8C-E03AD092359B.dita">Managing
-resource files</xref>.</p>
-<p>For an example of a resource file, see <xref href="GUID-411ACFE6-0324-4330-ABCD-97A925759A3C.dita">Resource
-management example: HelloWorldBasic</xref>.</p>
-<fig id="GUID-9BA6CBBE-E2F5-4C23-A528-F49A9467F542"><title>Options menu</title><image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e42562_href.png"/></fig>
-<p>Commands are passed to the object with which the menu is associated.
-The object that receives the command should handle the command if it is specific
-to the object. If the command is relevant to another object, then it should
-be passed onto the other application object. The actual implementation depends
-on the design of your application.</p>
-<p>If the application above uses an <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
-view architecture</xref>, then the command handling functions as follows.</p>
-<ul>
-<li><p>If a device user selects <parmname>Create New</parmname>,
-then the application framework returns the command associated with that menu
-item to the <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view controller</xref> for
-the view indicated by the first tab.</p></li>
-<li><p>Since this command is unique to this view, the command must
-be handled in the view controller for this view.</p></li>
-<li><p>If there was an <parmname>Exit</parmname> menu item that
-was applicable for the application generally, then you must pass the command
-for this menu item to the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
-controller</xref> and handle the command there.</p></li>
-</ul>
-<p>To handle commands, you must override <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita#GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E/GUID-D6E5C363-CF39-3E56-B717-57CCEE8DC96F"><apiname>CEikAppUi::HandleCommandL()</apiname></xref> .</p>
-<p>The options are as follows:</p>
-<ul>
-<li><p>In a <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
-Symbian UI application architecture</xref>, the command needs to be handled
-in the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>.
-An example of an implementation is as follows:</p>
-<itemgroup>
-<codeblock id="GUID-29CD264C-D073-4145-9FF5-41C7D3FFA40C" xml:space="preserve">void CMyCommandHandlingAppUi::HandleCommandL(TInt aCommand)
-    {
-    switch(aCommand)
-        {
-        case EEikCmdExit:
-        case EAknSoftkeyExit:
-            {
-            Exit();
-            break;
-            }
-
-        case EMyCommandID1:
-           {
-           //do something
-           }
-           break;
-            
-       default:
-           break;
-       }
-   }</codeblock>
-<p>where <parmname>EEikCmdExit</parmname> is provided from the application
-framework, <parmname>EAknSoftkeyExit</parmname> is the command ID that the
-application framework returns when a device user presses the <parmname>Back</parmname> softkey,
-and <parmname>EMyCommandID1</parmname> is a command ID from your application <parmname>hrh</parmname> file.</p>
-<p>For more information on the handling of the exit command IDs, see <xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
-EEikCmdExit</xref>.</p>
-</itemgroup>
-</li>
-<li><p>In an <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
-view architecture</xref>, the command is received by the active <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref>.
-It should be handled by the view if the command is view specific, otherwise
-it should be passed to the UI controller <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>(-derived
-class). For an example of view-specific command handling, see the following: </p>
-<itemgroup>
-<codeblock id="GUID-C55E09E4-08A9-4997-B198-E00B61D24508" xml:space="preserve">void CMyCommandHandlingViewClass::HandleCommandL(TInt aCommand)
-    {   
-    switch ( aCommand )
-        {
-        case EAknSoftkeyExit:
-            {
-            AppUi()-&gt;HandleCommandL(EEikCmdExit);
-            break;
-            }
-
-        case EMyCommandID1:
-            {
-            // Do something.
-            break;
-            }
-
-        default:
-            {
-            AppUi()-&gt;HandleCommandL( aCommand );
-            break;
-            }
-        }
-    }
-</codeblock>
-<p>where <parmname>EEikCmdExit</parmname> is provided from the application
-framework, <parmname>EAknSoftkeyExit</parmname> is the command ID that the
-application framework returns when a device user presses the <parmname>Back</parmname> softkey,
-and <parmname>EMyCommandID1</parmname> is a command ID from your application <parmname>hrh</parmname> file.</p>
-<p>In this example, the last case (default) hands over unhandled commands
-to the UI controller.</p>
-<p>For more information on the handling of the exit command IDs, see:</p>
-</itemgroup>
-</li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4941C035-C359-4968-9BD5-31F44EE5F810" xml:lang="en"><title>Commands</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term command refers to events that are received when a device user
+selects an option in the <b>Options</b> menu or presses a softkey (for more
+information, see <xref href="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita">UI concepts</xref>).
+The device user input results in the application framework returning a command
+ID that corresponds to the softkey or <b>Options</b> menu selection. Command
+IDs are mapped to the selection options in the <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA</xref> and <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">Menu bar</xref> resource
+definitions. You can use either custom command IDs, which must be defined
+in your application <xref href="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita"><parmname>hrh</parmname></xref> resource
+file, or <xref href="GUID-CBB00F6A-CBA7-4872-B0A1-A86A863725F5.dita">precompiled
+values available from the Symbian platform</xref> in your resource definitions.
+At runtime, the application framework catches the command ID values and passes
+them to the application that has focus for handling. The following commands
+have special requirements:</p>
+<ul>
+<li><p><parmname>EEikCmdExit</parmname>, which is sent by the application
+framework to exit open applications. This command ID must not be used in the
+resource file definitions, as it is reserved for the application framework.
+For more information on the special requirements for handling this command,
+see <xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
+EEikCmdExit</xref>.</p>
+</li>
+<li><p><parmname>EAknSoftKeyBack</parmname>, which is delivered
+in response to a device user pressing the <parmname>Back</parmname> softkey.
+The behavior required in response to this command depends on the context,
+but if an exit is required it needs to be handled in the same manner as with
+the <parmname>EEikCmdExit</parmname> command.</p></li>
+<li><p><parmname>EAknSoftkeyOptions</parmname>, which is associated
+with the <parmname>Options</parmname> softkey, is handled by the application
+framework directly and results in the <parmname>Options</parmname> menu being
+presented to the device user.</p></li>
+</ul>
+<p>For more information on resource files, see <xref href="GUID-0FB60233-993A-4BF2-9E8C-E03AD092359B.dita">Managing
+resource files</xref>.</p>
+<p>For an example of a resource file, see <xref href="GUID-411ACFE6-0324-4330-ABCD-97A925759A3C.dita">Resource
+management example: HelloWorldBasic</xref>.</p>
+<fig id="GUID-9BA6CBBE-E2F5-4C23-A528-F49A9467F542"><title>Options menu</title><image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e36995_href.png"/></fig>
+<p>Commands are passed to the object with which the menu is associated.
+The object that receives the command should handle the command if it is specific
+to the object. If the command is relevant to another object, then it should
+be passed onto the other application object. The actual implementation depends
+on the design of your application.</p>
+<p>If the application above uses an <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
+view architecture</xref>, then the command handling functions as follows.</p>
+<ul>
+<li><p>If a device user selects <parmname>Create New</parmname>,
+then the application framework returns the command associated with that menu
+item to the <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view controller</xref> for
+the view indicated by the first tab.</p></li>
+<li><p>Since this command is unique to this view, the command must
+be handled in the view controller for this view.</p></li>
+<li><p>If there was an <parmname>Exit</parmname> menu item that
+was applicable for the application generally, then you must pass the command
+for this menu item to the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
+controller</xref> and handle the command there.</p></li>
+</ul>
+<p>To handle commands, you must override <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita#GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E/GUID-D6E5C363-CF39-3E56-B717-57CCEE8DC96F"><apiname>CEikAppUi::HandleCommandL()</apiname></xref> .</p>
+<p>The options are as follows:</p>
+<ul>
+<li><p>In a <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
+Symbian UI application architecture</xref>, the command needs to be handled
+in the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>.
+An example of an implementation is as follows:</p>
+<itemgroup>
+<codeblock id="GUID-29CD264C-D073-4145-9FF5-41C7D3FFA40C" xml:space="preserve">void CMyCommandHandlingAppUi::HandleCommandL(TInt aCommand)
+    {
+    switch(aCommand)
+        {
+        case EEikCmdExit:
+        case EAknSoftkeyExit:
+            {
+            Exit();
+            break;
+            }
+
+        case EMyCommandID1:
+           {
+           //do something
+           }
+           break;
+            
+       default:
+           break;
+       }
+   }</codeblock>
+<p>where <parmname>EEikCmdExit</parmname> is provided from the application
+framework, <parmname>EAknSoftkeyExit</parmname> is the command ID that the
+application framework returns when a device user presses the <parmname>Back</parmname> softkey,
+and <parmname>EMyCommandID1</parmname> is a command ID from your application <parmname>hrh</parmname> file.</p>
+<p>For more information on the handling of the exit command IDs, see <xref href="GUID-11FE772A-E662-4B88-B871-97A40A40FBAB.dita">Handling
+EEikCmdExit</xref>.</p>
+</itemgroup>
+</li>
+<li><p>In an <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
+view architecture</xref>, the command is received by the active <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref>.
+It should be handled by the view if the command is view specific, otherwise
+it should be passed to the UI controller <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>(-derived
+class). For an example of view-specific command handling, see the following: </p>
+<itemgroup>
+<codeblock id="GUID-C55E09E4-08A9-4997-B198-E00B61D24508" xml:space="preserve">void CMyCommandHandlingViewClass::HandleCommandL(TInt aCommand)
+    {   
+    switch ( aCommand )
+        {
+        case EAknSoftkeyExit:
+            {
+            AppUi()-&gt;HandleCommandL(EEikCmdExit);
+            break;
+            }
+
+        case EMyCommandID1:
+            {
+            // Do something.
+            break;
+            }
+
+        default:
+            {
+            AppUi()-&gt;HandleCommandL( aCommand );
+            break;
+            }
+        }
+    }
+</codeblock>
+<p>where <parmname>EEikCmdExit</parmname> is provided from the application
+framework, <parmname>EAknSoftkeyExit</parmname> is the command ID that the
+application framework returns when a device user presses the <parmname>Back</parmname> softkey,
+and <parmname>EMyCommandID1</parmname> is a command ID from your application <parmname>hrh</parmname> file.</p>
+<p>In this example, the last case (default) hands over unhandled commands
+to the UI controller.</p>
+<p>For more information on the handling of the exit command IDs, see:</p>
+</itemgroup>
+</li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B" xml:lang="en"><title>Hiding
-and showing stylus pop-up menu items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To hide and show stylus pop-up menu items, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#44ace66d760143c3816baeacf6dfaeea" format="application/java-archive">SetItemDimmed()</xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref>. </p>
-<p><draft-comment time="2008-05-15T14:45" translate="no">Add sample code here.</draft-comment></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B" xml:lang="en"><title>Hiding and showing stylus pop-up menu items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To hide and show stylus pop-up menu items, use the method <xref href="GUID-FB7D03CC-6FE6-3B2E-997F-A220A92BF5E8.dita#GUID-FB7D03CC-6FE6-3B2E-997F-A220A92BF5E8/GUID-67820FD4-052E-3011-B563-B12A9A04FC78"><apiname>CAknStylusPopUpMenu::SetItemDimmed()</apiname></xref> in the class. </p>
+<codeblock xml:space="preserve">// You can remove the menu item dynamically according to the command id. For example:
+iPopupMenu-&gt;RemoveMenuItem( StylusMenuCommand1 );
+
+// You can dim (hide) a menu item without removing it
+iPopupMenu-&gt;SetItemDimmed( StylusMenuDynamicAdd, ETrue );
+
+// You can un-dim(show) the menu item again:
+iPopupMenu-&gt;SetItemDimmed( StylusMenuDynamicAdd, EFalse );
+</codeblock>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,48 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271" xml:lang="en"><title>Format
-layering</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform uses the principle of format layering
-in which new formatting is added as a layer onto the previous layer of formatting.
-The following diagram shows a less efficient technique for applying format
-layering to text. The inefficiency arises because each format layer stores
-not only the new attribute which it introduces, but also every attribute which
-it inherits from the preceding format layer. </p>
-<fig id="GUID-DBA21807-9BC8-5FFB-962A-4CDCD9A72359">
-<image href="GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427545_href.png" placement="inline"/>
-</fig>
-<p>The Symbian platform avoids this inefficiency by using the system of <keyword>based-on
-links</keyword>. Here, each new layer adds attributes in a natural way without
-restating all attributes previously set. A based-on link is a pointer to the
-format layer whose attributes are inherited by another layer. For example,
-when the italic attribute is applied to a region of bold text, the new layer
-stores only the italic attribute and a pointer to the previous attribute layer.
-Chains of format layers can thus be formed, with each layer based on the previous
-one. In order to determine a character or paragraph’s <keyword>effective format</keyword>,
-a chain of format layers must typically be examined. The final layer in the
-chain of based on links is the one whose based on link is NULL and is not
-therefore based upon any other layer.</p>
-<p>This method is demonstrated in the following two diagrams, in which each
-arrow represents a based-on link.</p>
-<fig id="GUID-3BE6B9A3-D8DB-543C-AA88-DD519B991B62">
-<title>Format layering</title>
-<image href="GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427565_href.png" placement="inline"/>
-</fig>
-<p>The following diagram demonstrates the system of based-on links when attributes
-are applied to different parts of text rather than added on top of existing
-attribute layers.</p>
-<fig id="GUID-1E0E17F0-BE93-5403-8474-ED612E118C8F">
-<image href="GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427573_href.png" placement="inline"/>
-</fig>
-<p>In this case, several format layers are required, all of which are based
-on the normal layer.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4957E6BB-C41D-52F1-94CD-68CF6D61C271" xml:lang="en"><title>Format
+layering</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Symbian platform uses the principle of format layering
+in which new formatting is added as a layer onto the previous layer of formatting.
+The following diagram shows a less efficient technique for applying format
+layering to text. The inefficiency arises because each format layer stores
+not only the new attribute which it introduces, but also every attribute which
+it inherits from the preceding format layer. </p>
+<fig id="GUID-DBA21807-9BC8-5FFB-962A-4CDCD9A72359">
+<image href="GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427383_href.png" placement="inline"/>
+</fig>
+<p>The Symbian platform avoids this inefficiency by using the system of <keyword>based-on
+links</keyword>. Here, each new layer adds attributes in a natural way without
+restating all attributes previously set. A based-on link is a pointer to the
+format layer whose attributes are inherited by another layer. For example,
+when the italic attribute is applied to a region of bold text, the new layer
+stores only the italic attribute and a pointer to the previous attribute layer.
+Chains of format layers can thus be formed, with each layer based on the previous
+one. In order to determine a character or paragraph’s <keyword>effective format</keyword>,
+a chain of format layers must typically be examined. The final layer in the
+chain of based on links is the one whose based on link is NULL and is not
+therefore based upon any other layer.</p>
+<p>This method is demonstrated in the following two diagrams, in which each
+arrow represents a based-on link.</p>
+<fig id="GUID-3BE6B9A3-D8DB-543C-AA88-DD519B991B62">
+<title>Format layering</title>
+<image href="GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427403_href.png" placement="inline"/>
+</fig>
+<p>The following diagram demonstrates the system of based-on links when attributes
+are applied to different parts of text rather than added on top of existing
+attribute layers.</p>
+<fig id="GUID-1E0E17F0-BE93-5403-8474-ED612E118C8F">
+<image href="GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427411_href.png" placement="inline"/>
+</fig>
+<p>In this case, several format layers are required, all of which are based
+on the normal layer.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,218 +1,218 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7" xml:lang="en"><title>External
-Surfaces Overview</title><shortdesc>This topic provides an introduction to displaying an external surface
-on a window. The surface is then known as a background surface. This feature
-is available in ScreenPlay only. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
-audience</b>: Device creators. </p>
-<p>There are two main use cases for using external surfaces in this way. One
-is to display a video, in which case DevVideo renders the content. The other
-main use case is an OpenGL ES background surface, in which case the client
-issues OpenGL ES rendering commands. This topic covers how to get the surface
-onto the screen and not rendering the content to the surface. </p>
-<section><title> Key concepts</title> <p>The following diagram illustrates
-some of the key concepts that are used in the documentation of surfaces. </p> <fig id="GUID-F134C262-EC19-5925-A188-2C7C2CD5EEEA">
-<title>Composition of the UI surface and an external surface, showing the
-             viewport and extent</title>
-<image href="GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e199962_href.png" placement="inline"/>
-</fig> <dl>
-<dlentry>
-<dt>Graphics surface</dt>
-<dd><p>A graphics surface (usually simply called a <i>surface</i>) is a hardware-independent
-memory buffer for holding an image or part of a scene. A surface has a set
-of attributes, the most important of which is its ID (which is a <xref href="GUID-11F60AEB-003B-3E8D-BDB9-D97F698627DF.dita"><apiname>TSurfaceId</apiname></xref>). </p> </dd>
-</dlentry>
-<dlentry>
-<dt>UI surface</dt>
-<dd><p>The UI surface is a special surface onto which the Window Server renders
-all of the UI content. It is created automatically during system start up
-and corresponds to the frame buffer in the non-ScreenPlay variant. The UI
-surface is semi-transparent and is always the topmost layer.</p> </dd>
-</dlentry>
-<dlentry>
-<dt>External surface</dt>
-<dd><p>An external surface is any surface other than the UI surface—for example,
-a surface that holds a video or to which OpenGL ES content is rendered. External
-surfaces are always opaque. When an external surface is attached to a window,
-the Window Server creates a transparent hole in the UI surface to reveal the
-external surface. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Viewport</dt>
-<dd><p>The viewport is a rectangular area of an external surface all or part
-of which is to be displayed. You can think of the viewport as the source. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Extent</dt>
-<dd><p>The extent is a rectangular area in the composition scene in which
-all or part of the viewport is placed. The content of the viewport can be
-scaled and rotated within the extent relative to its normal size and orientation.
-The extent is normally a window to which the external surface is attached. </p> </dd>
-</dlentry>
-</dl> <p>The following diagram provides a cross-section view through the surfaces
-shown in the previous figure. Notice that the UI surface is the topmost layer
-and that it contains a hole through which the external surface
-can be seen.</p> <fig id="GUID-4DB99814-988F-5D51-A1A7-E864B6DA6DFB">
-<title>              A cross section through the surfaces, showing the display
-output            </title>
-<image href="GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e200040_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-F9D7659B-1325-5DC2-9D7A-9B6C0DFB8A62"><title>Supported Uses</title> <p>You
-can: </p> <ul>
-<li id="GUID-97CAD13E-1C70-59FF-B271-F3E77198086A"><p>Display an external
-surface (for example, video content or a viewfinder image) within a window. </p> </li>
-<li id="GUID-BD8FFB28-D56C-581B-9E1C-B2BD97FDAFBC"><p>Dynamically set or remove
-a background surface across multiple windows on the same screen without having
-to register and unregister the surface. This reduces resource churn and content
-transfer. </p> </li>
-<li id="GUID-0A3FD92E-7E99-5961-BC5A-3FBB970A7889"><p>Reconfigure the attributes
-of the surface such as its extent, viewport and orientation, after it is set
-as a background. </p> </li>
-<li id="GUID-6E962607-1E7D-516E-B855-15A1A67923B6"><p>Reposition the displayed
-surface on the window. </p> </li>
-<li id="GUID-26E561E7-92BB-5EBA-A3B9-F660507A258D"><p>Zoom in and out of the
-contents of the surface. </p> </li>
-<li id="GUID-287D3286-209B-5E01-B1C6-2373A2B07172"><p>Place the surface content
-in a specified window area rather than filling the entire window. </p> </li>
-<li id="GUID-6F2DCF0C-32D7-53CD-A2DD-4DBE662015B5"><p>Crop the surface content
-rather than using the entire surface. </p> </li>
-<li id="GUID-8E49A7FB-0709-5127-8C94-104C512EA6AC"><p>Rotate the contents
-of the background surface by quadrant angles. </p> </li>
-<li id="GUID-5631047A-A8AD-59DF-82FF-021964BA571D"><p>Flip the background
-surface from top to bottom and rotate it by 180° to achieve a mirroring effect. </p> </li>
-</ul> <p>The following diagrams shows some surface configuration use cases. </p> <fig id="GUID-FF25ED24-7A3D-5C4B-A711-D6AEA53E972F">
-<title>              Surface configuration use cases            </title>
-<image href="GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e200107_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-7EAB8F5D-6290-5B63-B396-8A1FAE7D91A5"><title> Configuration</title> <p>There
-are a number of ways in which dynamically updated content can be configured
-to appear on a window. </p> <p><b>A single content surface filling the window </b> </p> <p>External
-content can be fitted onto a Window Server window. Each axis of the surface
-can be stretched independently of the other axis. The window must be a visible
-client window: <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> or <xref href="GUID-A5DFCFA7-7B2D-3872-B6D0-4526DF743630.dita"><apiname>RBlankWindow</apiname></xref>. </p> <p><b>Placement
-of a single surface on a selected area of the window </b> </p> <p>The position
-and display size for the external content can be specified as an area within
-the Window Server window, rather than filling the window. The window must
-be a visible client (<xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> or <xref href="GUID-A5DFCFA7-7B2D-3872-B6D0-4526DF743630.dita"><apiname>RBlankWindow</apiname></xref>)
-as before. You specify the area by using <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-8984E1F8-2807-301D-B82B-A52CC4254B04"><apiname>TSurfaceConfiguration::SetExtent(const
-TRect&amp;           aExtent)</apiname></xref>. </p> <p>After the extent is specified,
-its size does not change if the window size changes but its position moves
-to maintain its relative position on the window. </p> <p><b>Clipping of a
-surface </b> </p> <p>Video sometimes needs to appear cropped, so that a sub-area
-of the video is displayed instead of the full image. The crop viewport is
-specified in surface co-ordinates. The cropped viewport fills the output extent
-(or the window when the extent is not specified). The content appears scaled
-if the size of the viewport does not match the size of the extent (or the
-window). </p> <p><b>Scaling </b> </p> <p>It is possible to arbitrarily scale
-a surface to user specifications using the extent and viewport features. Each
-axis is scaled independently. When the extent and viewport are coincident,
-no scaling occurs. Filtering can be applied by the implementation of stretching
-and shrinking. </p> <p><b>Rotation </b> </p> <p>The viewport can be displayed
-rotated relative to its normal orientation. For example, if there is a fixed
-camera on the front of a device and the device is rotated by 90°, the image
-captured by the camera needs to be rotated by 90° in the other direction to
-get the expected result. The orientation is always relative to the current
-device orientation. </p> <p><b>Flipping </b> </p> <p>An external surface can
-be flipped from top to bottom around the x axis. </p> <p><b>Atomic combination
-of these operations </b> </p> <p>All the above mentioned configurations can
-be specified and combined unambiguously for a particular content on a particular
-window. You can specify parameters for a combination of these configurations
-in a single operation. </p> <p><b>Changing surfaces </b> </p> <p>The surface
-assigned to a window can be changed. </p> <p><b>Reconfiguring </b> </p> <p>It
-is possible to change the configuration options applied to a surface without
-re-assigning the surface. </p> <p><b>Sharing surfaces </b> </p> <p>Content
-surfaces are transferable and sharable between windows. </p> <p>The initial
-registration step ensures that any resources allocated to the content surface
-are held while the surface is removed from one window and added to another.
-This reduces the likelihood of failure between operations. </p> </section>
-<section><title>API Summary</title> <p>This section provides a summary of
-the classes and functions that you use to manage surfaces: </p> <ul>
-<li id="GUID-D7C9343C-BFAB-5153-B3E6-E5EBA5859570"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-3E1EF2ED-7E9C-541F-A439-F2CBA5B6F211">RWindowBase</xref>  </p> </li>
-<li id="GUID-5AD3B9D5-60E8-5A2A-9C6B-4C914540FE9E"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-1DC9E4DF-248F-59A6-92A9-F756F73414B3">TSurfaceConfiguration</xref>  </p> </li>
-<li id="GUID-2627F547-B979-5682-A69A-97D89969F9B3"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-E2A62988-58F8-5021-BA44-25AE3C3D95B5">RWsSession</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-3E1EF2ED-7E9C-541F-A439-F2CBA5B6F211"><title>RWindowBase </title> <ul>
-<li id="GUID-7A5D0A6F-C0B6-5D87-B0F4-99C92FA8227B"><p> <codeph>SetBackgroundSurface(const
-TSurfaceConfiguration                 &amp;,TBool)</codeph> sets the background
-of the window to be a given surface. The <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita"><apiname>TSurfaceConfiguration</apiname></xref> argument
-contains the surface ID and the configuration attributes. Another form of
-the function simply takes a surface ID as an argument, which provides less
-control and auto-stretches the surface to fill the window. </p> </li>
-<li id="GUID-C86F37F7-5017-56F3-9B14-E3B8E0EC0E8A"><p> <codeph>RemoveBackgroundSurface()</codeph> removes
-any background surface that has been set to the window. </p> </li>
-<li id="GUID-11ABFBDE-556F-5096-810E-6BBA2C81C4B1"><p> <codeph>GetBackgroundSurface()</codeph> retrieves
-a copy of the current configuration for the background surface attached to
-the window. </p> </li>
-</ul> <p>See <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>. </p> </section>
-<section id="GUID-1DC9E4DF-248F-59A6-92A9-F756F73414B3"><title> TSurfaceConfiguration</title> <p>This
-class encapsulates the surface configuration attributes that can be specified
-while setting the background surface of a window. If the values for the attributes
-are not set, the default values for the corresponding attribute are used. </p> <p>Symbian
-recommends that the client validates the surface configuration data before
-passing it on to the server. Invalid data that inadvertently slips through
-the client-side validation mechanism, or maliciously bypasses it, causes a
-panic. </p> <p>See <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita"><apiname>TSurfaceConfiguration</apiname></xref>. </p> </section>
-<section id="GUID-E2A62988-58F8-5021-BA44-25AE3C3D95B5"><title> RWsSession</title> <ul>
-<li id="GUID-B1A1CE19-6E12-5BA7-B79A-A6D7C44F5920"><p> <codeph>RegisterSurface()</codeph> registers
-a surface for use in composition on the screen associated with this device
-within this session. </p> </li>
-<li id="GUID-6678C53D-F0B5-5ADD-BCC7-43FC31E81FEE"><p> <codeph>UnregisterSurface()</codeph> removes
-the surface from the session’s register of surfaces that are used in composition
-on the screen associated with this device. </p> </li>
-<li id="GUID-9F5FF304-794C-5BC3-B16E-F036C859F1E2"><p> <codeph>PreferredSurfaceConfigurationSize()</codeph> returns
-the window server’s preferred size for the <codeph>TSurfaceConfiguration</codeph> object,
-used for <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-AC4FBD36-8CC7-3191-B266-1805DEDE6D50"><apiname>RWindow::SetBackgroundSurface()</apiname></xref>. </p> </li>
-</ul> <p>See <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>. </p> </section>
-<section><title>Example</title> <p>This code snippet is provided for illustrative
-purposes only. A Window Server client application wants to run a 3D game full-screen
-at the native physical resolution of the display (either current or selected
-using a display controlling system application). This example assumes that
-the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface has already been obtained,
-as shown in <xref href="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita">Display
-Control and Mapping in the Window Server Client</xref>. </p> <codeblock id="GUID-DE5C6DB0-1096-5BA3-8BB7-78AE3B6619B1" xml:space="preserve">// Establish connection and get display mapping interface.
-RWindowGroup group = RWindowGroup(iSession);
-RWindow window(iSession);
-    
-group.Construct(1, iScreenDevice);
-window.Construct(group, 2);
-    
-TRect winExtent;
-iDisplayMapping.GetMaximumWindowExtent(winExtent);
-window.SetExtent(winExtent);
-    
-// Map window size to composition coordinates
-TRect surfaceExtent;
-iDisplayMapping.MapCoordinates(EApplicationSpace, winExtent,
-    ECompositionSpace, surfaceExtent);
-    
-RSurfaceManager::TSurfaceCreationAttributes attribs;
-attribs.iSize = surfaceExtent.Size();
-    
-// Set up other attributes and create surface
-    
-window.SetBackgroundSurface(surface);
-    
-window.Activate();
-</codeblock> <p>A similar approach can be used by other surface content providers,
-such as video. </p> </section>
-</conbody><related-links>
-<link href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"><linktext>Graphics
-Composition</linktext></link>
-
-<link href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita"><linktext>Window Server
-Client-Side Library Concepts</linktext></link>
-<link href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita"><linktext>Dynamic Resolution
-Switching</linktext></link>
-<link href="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita"><linktext>Flipping
-and Rotating an External  Surface</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7" xml:lang="en"><title>External
+Surfaces Overview</title><shortdesc>This topic provides an introduction to displaying an external surface
+on a window. The surface is then known as a background surface. This feature
+is available in ScreenPlay only. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
+audience</b>: Device creators. </p>
+<p>There are two main use cases for using external surfaces in this way. One
+is to display a video, in which case DevVideo renders the content. The other
+main use case is an OpenGL ES background surface, in which case the client
+issues OpenGL ES rendering commands. This topic covers how to get the surface
+onto the screen and not rendering the content to the surface. </p>
+<section><title> Key concepts</title> <p>The following diagram illustrates
+some of the key concepts that are used in the documentation of surfaces. </p> <fig id="GUID-F134C262-EC19-5925-A188-2C7C2CD5EEEA">
+<title>Composition of the UI surface and an external surface, showing the
+             viewport and extent</title>
+<image href="GUID-2468821F-6C66-5761-AE56-CEC942A2EE95_d0e194954_href.png" placement="inline"/>
+</fig> <dl>
+<dlentry>
+<dt>Graphics surface</dt>
+<dd><p>A graphics surface (usually simply called a <i>surface</i>) is a hardware-independent
+memory buffer for holding an image or part of a scene. A surface has a set
+of attributes, the most important of which is its ID (which is a <xref href="GUID-11F60AEB-003B-3E8D-BDB9-D97F698627DF.dita"><apiname>TSurfaceId</apiname></xref>). </p> </dd>
+</dlentry>
+<dlentry>
+<dt>UI surface</dt>
+<dd><p>The UI surface is a special surface onto which the Window Server renders
+all of the UI content. It is created automatically during system start up
+and corresponds to the frame buffer in the non-ScreenPlay variant. The UI
+surface is semi-transparent and is always the topmost layer.</p> </dd>
+</dlentry>
+<dlentry>
+<dt>External surface</dt>
+<dd><p>An external surface is any surface other than the UI surface—for example,
+a surface that holds a video or to which OpenGL ES content is rendered. External
+surfaces are always opaque. When an external surface is attached to a window,
+the Window Server creates a transparent hole in the UI surface to reveal the
+external surface. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Viewport</dt>
+<dd><p>The viewport is a rectangular area of an external surface all or part
+of which is to be displayed. You can think of the viewport as the source. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Extent</dt>
+<dd><p>The extent is a rectangular area in the composition scene in which
+all or part of the viewport is placed. The content of the viewport can be
+scaled and rotated within the extent relative to its normal size and orientation.
+The extent is normally a window to which the external surface is attached. </p> </dd>
+</dlentry>
+</dl> <p>The following diagram provides a cross-section view through the surfaces
+shown in the previous figure. Notice that the UI surface is the topmost layer
+and that it contains a hole through which the external surface
+can be seen.</p> <fig id="GUID-4DB99814-988F-5D51-A1A7-E864B6DA6DFB">
+<title>              A cross section through the surfaces, showing the display
+output            </title>
+<image href="GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e195032_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-F9D7659B-1325-5DC2-9D7A-9B6C0DFB8A62"><title>Supported Uses</title> <p>You
+can: </p> <ul>
+<li id="GUID-97CAD13E-1C70-59FF-B271-F3E77198086A"><p>Display an external
+surface (for example, video content or a viewfinder image) within a window. </p> </li>
+<li id="GUID-BD8FFB28-D56C-581B-9E1C-B2BD97FDAFBC"><p>Dynamically set or remove
+a background surface across multiple windows on the same screen without having
+to register and unregister the surface. This reduces resource churn and content
+transfer. </p> </li>
+<li id="GUID-0A3FD92E-7E99-5961-BC5A-3FBB970A7889"><p>Reconfigure the attributes
+of the surface such as its extent, viewport and orientation, after it is set
+as a background. </p> </li>
+<li id="GUID-6E962607-1E7D-516E-B855-15A1A67923B6"><p>Reposition the displayed
+surface on the window. </p> </li>
+<li id="GUID-26E561E7-92BB-5EBA-A3B9-F660507A258D"><p>Zoom in and out of the
+contents of the surface. </p> </li>
+<li id="GUID-287D3286-209B-5E01-B1C6-2373A2B07172"><p>Place the surface content
+in a specified window area rather than filling the entire window. </p> </li>
+<li id="GUID-6F2DCF0C-32D7-53CD-A2DD-4DBE662015B5"><p>Crop the surface content
+rather than using the entire surface. </p> </li>
+<li id="GUID-8E49A7FB-0709-5127-8C94-104C512EA6AC"><p>Rotate the contents
+of the background surface by quadrant angles. </p> </li>
+<li id="GUID-5631047A-A8AD-59DF-82FF-021964BA571D"><p>Flip the background
+surface from top to bottom and rotate it by 180° to achieve a mirroring effect. </p> </li>
+</ul> <p>The following diagrams shows some surface configuration use cases. </p> <fig id="GUID-FF25ED24-7A3D-5C4B-A711-D6AEA53E972F">
+<title>              Surface configuration use cases            </title>
+<image href="GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e195099_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-7EAB8F5D-6290-5B63-B396-8A1FAE7D91A5"><title> Configuration</title> <p>There
+are a number of ways in which dynamically updated content can be configured
+to appear on a window. </p> <p><b>A single content surface filling the window </b> </p> <p>External
+content can be fitted onto a Window Server window. Each axis of the surface
+can be stretched independently of the other axis. The window must be a visible
+client window: <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> or <xref href="GUID-A5DFCFA7-7B2D-3872-B6D0-4526DF743630.dita"><apiname>RBlankWindow</apiname></xref>. </p> <p><b>Placement
+of a single surface on a selected area of the window </b> </p> <p>The position
+and display size for the external content can be specified as an area within
+the Window Server window, rather than filling the window. The window must
+be a visible client (<xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> or <xref href="GUID-A5DFCFA7-7B2D-3872-B6D0-4526DF743630.dita"><apiname>RBlankWindow</apiname></xref>)
+as before. You specify the area by using <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-8984E1F8-2807-301D-B82B-A52CC4254B04"><apiname>TSurfaceConfiguration::SetExtent(const
+TRect&amp;           aExtent)</apiname></xref>. </p> <p>After the extent is specified,
+its size does not change if the window size changes but its position moves
+to maintain its relative position on the window. </p> <p><b>Clipping of a
+surface </b> </p> <p>Video sometimes needs to appear cropped, so that a sub-area
+of the video is displayed instead of the full image. The crop viewport is
+specified in surface co-ordinates. The cropped viewport fills the output extent
+(or the window when the extent is not specified). The content appears scaled
+if the size of the viewport does not match the size of the extent (or the
+window). </p> <p><b>Scaling </b> </p> <p>It is possible to arbitrarily scale
+a surface to user specifications using the extent and viewport features. Each
+axis is scaled independently. When the extent and viewport are coincident,
+no scaling occurs. Filtering can be applied by the implementation of stretching
+and shrinking. </p> <p><b>Rotation </b> </p> <p>The viewport can be displayed
+rotated relative to its normal orientation. For example, if there is a fixed
+camera on the front of a device and the device is rotated by 90°, the image
+captured by the camera needs to be rotated by 90° in the other direction to
+get the expected result. The orientation is always relative to the current
+device orientation. </p> <p><b>Flipping </b> </p> <p>An external surface can
+be flipped from top to bottom around the x axis. </p> <p><b>Atomic combination
+of these operations </b> </p> <p>All the above mentioned configurations can
+be specified and combined unambiguously for a particular content on a particular
+window. You can specify parameters for a combination of these configurations
+in a single operation. </p> <p><b>Changing surfaces </b> </p> <p>The surface
+assigned to a window can be changed. </p> <p><b>Reconfiguring </b> </p> <p>It
+is possible to change the configuration options applied to a surface without
+re-assigning the surface. </p> <p><b>Sharing surfaces </b> </p> <p>Content
+surfaces are transferable and sharable between windows. </p> <p>The initial
+registration step ensures that any resources allocated to the content surface
+are held while the surface is removed from one window and added to another.
+This reduces the likelihood of failure between operations. </p> </section>
+<section><title>API Summary</title> <p>This section provides a summary of
+the classes and functions that you use to manage surfaces: </p> <ul>
+<li id="GUID-D7C9343C-BFAB-5153-B3E6-E5EBA5859570"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-3E1EF2ED-7E9C-541F-A439-F2CBA5B6F211">RWindowBase</xref>  </p> </li>
+<li id="GUID-5AD3B9D5-60E8-5A2A-9C6B-4C914540FE9E"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-1DC9E4DF-248F-59A6-92A9-F756F73414B3">TSurfaceConfiguration</xref>  </p> </li>
+<li id="GUID-2627F547-B979-5682-A69A-97D89969F9B3"><p><xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita#GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7/GUID-E2A62988-58F8-5021-BA44-25AE3C3D95B5">RWsSession</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-3E1EF2ED-7E9C-541F-A439-F2CBA5B6F211"><title>RWindowBase </title> <ul>
+<li id="GUID-7A5D0A6F-C0B6-5D87-B0F4-99C92FA8227B"><p> <codeph>SetBackgroundSurface(const
+TSurfaceConfiguration                 &amp;,TBool)</codeph> sets the background
+of the window to be a given surface. The <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita"><apiname>TSurfaceConfiguration</apiname></xref> argument
+contains the surface ID and the configuration attributes. Another form of
+the function simply takes a surface ID as an argument, which provides less
+control and auto-stretches the surface to fill the window. </p> </li>
+<li id="GUID-C86F37F7-5017-56F3-9B14-E3B8E0EC0E8A"><p> <codeph>RemoveBackgroundSurface()</codeph> removes
+any background surface that has been set to the window. </p> </li>
+<li id="GUID-11ABFBDE-556F-5096-810E-6BBA2C81C4B1"><p> <codeph>GetBackgroundSurface()</codeph> retrieves
+a copy of the current configuration for the background surface attached to
+the window. </p> </li>
+</ul> <p>See <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>. </p> </section>
+<section id="GUID-1DC9E4DF-248F-59A6-92A9-F756F73414B3"><title> TSurfaceConfiguration</title> <p>This
+class encapsulates the surface configuration attributes that can be specified
+while setting the background surface of a window. If the values for the attributes
+are not set, the default values for the corresponding attribute are used. </p> <p>Symbian
+recommends that the client validates the surface configuration data before
+passing it on to the server. Invalid data that inadvertently slips through
+the client-side validation mechanism, or maliciously bypasses it, causes a
+panic. </p> <p>See <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita"><apiname>TSurfaceConfiguration</apiname></xref>. </p> </section>
+<section id="GUID-E2A62988-58F8-5021-BA44-25AE3C3D95B5"><title> RWsSession</title> <ul>
+<li id="GUID-B1A1CE19-6E12-5BA7-B79A-A6D7C44F5920"><p> <codeph>RegisterSurface()</codeph> registers
+a surface for use in composition on the screen associated with this device
+within this session. </p> </li>
+<li id="GUID-6678C53D-F0B5-5ADD-BCC7-43FC31E81FEE"><p> <codeph>UnregisterSurface()</codeph> removes
+the surface from the session’s register of surfaces that are used in composition
+on the screen associated with this device. </p> </li>
+<li id="GUID-9F5FF304-794C-5BC3-B16E-F036C859F1E2"><p> <codeph>PreferredSurfaceConfigurationSize()</codeph> returns
+the window server’s preferred size for the <codeph>TSurfaceConfiguration</codeph> object,
+used for <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-AC4FBD36-8CC7-3191-B266-1805DEDE6D50"><apiname>RWindow::SetBackgroundSurface()</apiname></xref>. </p> </li>
+</ul> <p>See <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>. </p> </section>
+<section><title>Example</title> <p>This code snippet is provided for illustrative
+purposes only. A Window Server client application wants to run a 3D game full-screen
+at the native physical resolution of the display (either current or selected
+using a display controlling system application). This example assumes that
+the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface has already been obtained,
+as shown in <xref href="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita">Display
+Control and Mapping in the Window Server Client</xref>. </p> <codeblock id="GUID-DE5C6DB0-1096-5BA3-8BB7-78AE3B6619B1" xml:space="preserve">// Establish connection and get display mapping interface.
+RWindowGroup group = RWindowGroup(iSession);
+RWindow window(iSession);
+    
+group.Construct(1, iScreenDevice);
+window.Construct(group, 2);
+    
+TRect winExtent;
+iDisplayMapping.GetMaximumWindowExtent(winExtent);
+window.SetExtent(winExtent);
+    
+// Map window size to composition coordinates
+TRect surfaceExtent;
+iDisplayMapping.MapCoordinates(EApplicationSpace, winExtent,
+    ECompositionSpace, surfaceExtent);
+    
+RSurfaceManager::TSurfaceCreationAttributes attribs;
+attribs.iSize = surfaceExtent.Size();
+    
+// Set up other attributes and create surface
+    
+window.SetBackgroundSurface(surface);
+    
+window.Activate();
+</codeblock> <p>A similar approach can be used by other surface content providers,
+such as video. </p> </section>
+</conbody><related-links>
+<link href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"><linktext>Graphics
+Composition</linktext></link>
+
+<link href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita"><linktext>Window Server
+Client-Side Library Concepts</linktext></link>
+<link href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita"><linktext>Dynamic Resolution
+Switching</linktext></link>
+<link href="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita"><linktext>Flipping
+and Rotating an External  Surface</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e169416_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e176017_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e177144_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4A5A50EB-261E-5739-904E-1D14D1A6BAD9_d0e183738_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A" xml:lang="en"><title>Showing
-and hiding stylus pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#2aab09ce484efcf807cb1191dbd08062" format="application/java-archive"><codeph>ShowMenu()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref> to show the stylus pop-up menu.</p>
-<p><draft-comment time="2008-05-19T11:33" translate="no">How is the menu dismissed/hidden?
-Automatically after a command has been selected or when the user taps outside
-the menu?</draft-comment></p>
-<p><draft-comment time="2008-05-19T11:35" translate="no">Add sample code on showing and hiding
-the menu here.</draft-comment></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A" xml:lang="en"><title>Showing
+and hiding stylus pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#2aab09ce484efcf807cb1191dbd08062" format="application/java-archive"><codeph>ShowMenu()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref> to show the stylus pop-up menu.</p>
+<p>Usually, the pop-up menu must not be directly displayed in the <codeph>HandlePointerEventL</codeph> of
+a <codeph>CCoeControl</codeph>.  Use the <codeph>CAknLongTapDetector</codeph> 
+to handle the Llong Tap event and show the pop-up on the <codeph>HandleLongTapEventL</codeph>,
+which is the implementation to the interface <codeph>MAknLongTapDetectorCallBack</codeph>.</p>
+<p>The following code snippets illustrates how to show pop-up menu:</p>
+<codeblock xml:space="preserve">CAknLongTapDetector * iLongTapDetector;
+// "this" implement the interface MAknLongTapDetectorCallBack
+iLongTapDetector = CAknLongTapDetector::NewL( this );
+
+// pass the process to the long tap detector
+void XXXX::HandlePointerEventL(
+		const TPointerEvent&amp; aPointerEvent)
+	{
+	iLongTapDetector-&gt;PointerEventL( aPointerEvent );
+	// Call base class HandlePointerEventL()
+	CCoeControl::HandlePointerEventL(aPointerEvent);
+	}
+// handle long tap detector event to show the stylus popup
+void XXXX::HandleLongTapEventL( const TPoint&amp; aPenEventLocation, const TPoint&amp; aPenEventScreenLocation )
+	{
+      iPopupMenu-&gt;SetPosition( 
+               aPenEventScreenLocation ,
+               CAknStylusPopUpMenu::EPositionTypeRightBottom );
+	iPopupMenu-&gt;ShowMenu();
+	}
+</codeblock>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F" xml:lang="en"><title>Advanced
-Audio Adaptation Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document introduces you to the Advanced Audio Adaptation Framework
-(A3F) component. </p>
-<section><title>Purpose</title> <p>A3F provides the interface between the
-Symbian platform and the audio processing hardware for all audio functionality.
-A3F is responsible for: </p> <ul>
-<li id="GUID-A2084086-B7AF-53FA-95D6-B4F209686B74"><p>Providing access to
-all audio resources </p> </li>
-<li id="GUID-11DB1466-1010-5FAC-A5A3-2FBB6C609385"><p>Configuring audio hardware </p> </li>
-<li id="GUID-B7AD5DC5-C6F4-55FA-9D2B-DF138FDF8576"><p>Playing and recording
-audio data </p> </li>
-<li id="GUID-C3A15684-26C2-5013-8C1D-05C959B16008"><p>Playing tones. </p> </li>
-</ul> </section>
-<section><title>Required background</title> <p>In order to use A3F, you should
-be familiar with <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound</xref>. </p> </section>
-<section><title>Architectural relationships</title> <p>A3F is a component
-in the Sound Device collection. A3F provides a new standardised implementation
-of DevSound which is configured by default from Symbian OS v9.5 onwards. A3F
-interacts with a specially customised DevSound (configured as optional). </p> <p>Shown
-below is a representation of how A3F interacts with DevSound and other components: </p> <fig id="GUID-D45D43BE-CC91-5A92-B9C4-7E43B3899067">
-<title>              A3F and related components            </title>
-<image href="GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e330426_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Library summary</title> <p>A3F includes the following libraries: </p> <table id="GUID-9A61E505-E46F-5811-9EC3-742AFD7444DE">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Library</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b>Audio Component Framework</b>  </p> </entry>
-<entry><p>The Audio Component Framework is responsible for creating audio
-contexts. </p> <p>For more information, see <xref href="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita">Audio
-Component Framework Overview</xref>. </p> </entry>
-</row>
-<row>
-<entry><p> <b> Audio Component Library</b>  </p> </entry>
-<entry><p>The Audio Component Library provides runtime control over audio
-streams. </p> <p>For more information, see <xref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita">Audio
-Component Library Overview</xref>. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>You can use A3F to play tones, play
-audio and record audio. The following list describes some of the steps involved
-in playing and recording audio: </p> <ul>
-<li id="GUID-E687D6B5-5844-513C-A70A-54671ECB9E2E"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita#GUID-931207BE-3561-562D-8F67-0FB52CFF83CD/GUID-9027F6F9-F8AB-5A87-A1D3-9A554C014296">Create a new audio context</xref>  </p> </li>
-<li id="GUID-BD2EF59E-DA7B-585C-9F83-4DDB7AAC32DA"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita#GUID-931207BE-3561-562D-8F67-0FB52CFF83CD/GUID-F4E5DAD7-74D0-5946-98E5-D13C3FDF0F0D"> Apply changes made to the audio processing units in a context</xref>  </p> </li>
-<li id="GUID-B9A47D94-8A0A-51A7-B982-481952597C68"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-14D6294E-64FB-58D9-85F8-FAE2A14367B1">Configure hardware devices, for example, set sampling rate and channels to
-use.</xref>  </p> </li>
-<li id="GUID-87F43B01-8965-5EF6-BE11-C5AE5B8B5573"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-F6BC242F-E977-5A57-B90D-00D8A6AF5BF8">Play buffered audio data</xref>  </p> </li>
-<li id="GUID-509BF8AC-40D1-5378-B133-F0D9A5AE8DD6"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-C91CCA5D-2E5B-58D0-9EEE-B5F6C0095E2A">Record audio data to buffers</xref>  </p> </li>
-<li id="GUID-E9D7E5BF-9561-5CAD-A21F-E8BC38605F82"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-E2FC5EC6-57C0-53BB-9A5F-DC8BDA12E725">Pause audio processing</xref>  </p> </li>
-<li id="GUID-FB41A648-5084-5ADC-A695-22896CB36E62"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-495DC719-47C6-50B0-9A2D-9B00BEBA0E38">Stop playing audio</xref>  </p> </li>
-<li id="GUID-53299A88-3789-5286-80E2-DE479EB852D9"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-93CB9072-728A-598E-AD61-141D7FC9257E">Stop recording audio</xref>. </p> </li>
-</ul> </section>
-<section><title>See also</title> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita"> DevSound
-Overview</xref>  </p> <p><xref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita">Multimedia
-Framework Overview</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F" xml:lang="en"><title>Advanced
+Audio Adaptation Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces you to the Advanced Audio Adaptation Framework
+(A3F) component. </p>
+<section><title>Purpose</title> <p>A3F provides the interface between the
+Symbian platform and the audio processing hardware for all audio functionality.
+A3F is responsible for: </p> <ul>
+<li id="GUID-A2084086-B7AF-53FA-95D6-B4F209686B74"><p>Providing access to
+all audio resources </p> </li>
+<li id="GUID-11DB1466-1010-5FAC-A5A3-2FBB6C609385"><p>Configuring audio hardware </p> </li>
+<li id="GUID-B7AD5DC5-C6F4-55FA-9D2B-DF138FDF8576"><p>Playing and recording
+audio data </p> </li>
+<li id="GUID-C3A15684-26C2-5013-8C1D-05C959B16008"><p>Playing tones. </p> </li>
+</ul> </section>
+<section><title>Required background</title> <p>In order to use A3F, you should
+be familiar with <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound</xref>. </p> </section>
+<section><title>Architectural relationships</title> <p>A3F is a component
+in the Sound Device collection. A3F provides a new standardised implementation
+of DevSound which is configured by default from Symbian OS v9.5 onwards. A3F
+interacts with a specially customised DevSound (configured as optional). </p> <p>Shown
+below is a representation of how A3F interacts with DevSound and other components: </p> <fig id="GUID-D45D43BE-CC91-5A92-B9C4-7E43B3899067">
+<title>              A3F and related components            </title>
+<image href="GUID-37C193CD-3D8A-56A5-B78C-0A6FE7163EC2_d0e324269_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Library summary</title> <p>A3F includes the following libraries: </p> <table id="GUID-9A61E505-E46F-5811-9EC3-742AFD7444DE">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Library</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>Audio Component Framework</b>  </p> </entry>
+<entry><p>The Audio Component Framework is responsible for creating audio
+contexts. </p> <p>For more information, see <xref href="GUID-39B5850D-EAAD-56BC-B75A-2104033814E6.dita">Audio
+Component Framework Overview</xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <b> Audio Component Library</b>  </p> </entry>
+<entry><p>The Audio Component Library provides runtime control over audio
+streams. </p> <p>For more information, see <xref href="GUID-06A43E09-CC6D-5799-A0F7-68B5696F4ADB.dita">Audio
+Component Library Overview</xref>. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>You can use A3F to play tones, play
+audio and record audio. The following list describes some of the steps involved
+in playing and recording audio: </p> <ul>
+<li id="GUID-E687D6B5-5844-513C-A70A-54671ECB9E2E"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita#GUID-931207BE-3561-562D-8F67-0FB52CFF83CD/GUID-9027F6F9-F8AB-5A87-A1D3-9A554C014296">Create a new audio context</xref>  </p> </li>
+<li id="GUID-BD2EF59E-DA7B-585C-9F83-4DDB7AAC32DA"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita#GUID-931207BE-3561-562D-8F67-0FB52CFF83CD/GUID-F4E5DAD7-74D0-5946-98E5-D13C3FDF0F0D"> Apply changes made to the audio processing units in a context</xref>  </p> </li>
+<li id="GUID-B9A47D94-8A0A-51A7-B982-481952597C68"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-14D6294E-64FB-58D9-85F8-FAE2A14367B1">Configure hardware devices, for example, set sampling rate and channels to
+use.</xref>  </p> </li>
+<li id="GUID-87F43B01-8965-5EF6-BE11-C5AE5B8B5573"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-F6BC242F-E977-5A57-B90D-00D8A6AF5BF8">Play buffered audio data</xref>  </p> </li>
+<li id="GUID-509BF8AC-40D1-5378-B133-F0D9A5AE8DD6"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-C91CCA5D-2E5B-58D0-9EEE-B5F6C0095E2A">Record audio data to buffers</xref>  </p> </li>
+<li id="GUID-E9D7E5BF-9561-5CAD-A21F-E8BC38605F82"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-E2FC5EC6-57C0-53BB-9A5F-DC8BDA12E725">Pause audio processing</xref>  </p> </li>
+<li id="GUID-FB41A648-5084-5ADC-A695-22896CB36E62"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-495DC719-47C6-50B0-9A2D-9B00BEBA0E38">Stop playing audio</xref>  </p> </li>
+<li id="GUID-53299A88-3789-5286-80E2-DE479EB852D9"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita#GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC/GUID-93CB9072-728A-598E-AD61-141D7FC9257E">Stop recording audio</xref>. </p> </li>
+</ul> </section>
+<section><title>See also</title> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita"> DevSound
+Overview</xref>  </p> <p><xref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita">Multimedia
+Framework Overview</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,121 +1,121 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276" xml:lang="en"><title>Differences
-between OSS and Symbian GLib</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The three areas of difference between the way GLib is implemented in Symbian
-platform and in OSS are as follows: </p>
-<ul>
-<li><p>Memory allocation</p></li>
-<li><p>Spawn APIs</p></li>
-<li><p>Libgmodule APIs </p></li>
-</ul>
-<section id="GUID-DFAD39D6-BA92-4293-B5EC-97077CE1FC1A-GENID-1-8-1-11-1-1-7-1-6-1-4-1-3-3">       <title>Memory
-allocation</title>       <p>The Symbian GLib implementation does not follow
-the default OSS behavior. The default OSS behavior is such that in the event
-of a memory allocation failure the application, using <codeph>g_malloc()</codeph> and
-not <codeph>g_try_malloc()</codeph>, will call <codeph>abort()</codeph> and
-thus terminate the application.  </p><p>The Symbian implementation, on the
-other hand will return NULL and not terminate the application in the event
-of a memory allocation failure. Thus, it is the application’s responsibility
-to check if the memory allocation failed due to the needed tasks.</p><p>Generally,
-all the application code written using GLib does not perform memory allocation
-failure checks. Hence, for Symbian GLib it is the application programmer's
-responsibility to check for memory allocation failures.  </p>     </section>
-<section id="GUID-DFAD39D6-BA92-4293-B5EC-97077CE1FC1A-GENID-1-8-1-11-1-1-7-1-6-1-4-1-3-4">       <title>Spawn
-APIs</title>       <p>GLib has a set of APIs for process spawning. Since Symbian
-platform does not support the <codeph>fork()</codeph> and <codeph>exec()</codeph> APIs,
-the <codeph>g_spawn*</codeph> APIs have limitations in their functionality.
-The limitations are explained per API in detail below.</p><p><b><codeph>g_spawn_async_with_pipes</codeph></b></p><p>The
-signature of this API is:</p><codeblock xml:space="preserve">gboolean g_spawn_async_with_pipes (
-    const gchar *working_directoy,
-    gchar **argv,
-    gchar **envp,
-    GSpawnFlags flags, 			
-    GSpawnChildSetupFunc child_setup, 			
-    gpointer user_data, 			
-    GPid *child_pid, 			
-    gint  *standard_input, 			
-    gint *standard_output, 			
-    gint *standard_error, 			
-    GError **error); </codeblock><p>This API executes the program asynchronously:
-that is, the caller does not block for the spawned process to complete. The
-setting of the following parameters does not have any effect in Symbian GLib:</p><ul>
-<li><p><codeph>working_directory</codeph></p></li>
-<li><p><codeph>envp</codeph></p></li>
-</ul><p>If a value other than NULL is passed for <codeph>standard_input</codeph>, <codeph>standard_ouput</codeph>,
-or <codeph>standard_error</codeph>, the value at the location is set to -1.</p><p><b><codeph>g_spawn_async</codeph></b></p><p>The
-signature of the API is:</p><codeblock xml:space="preserve">gboolean g_spawn_async (
-    const gchar *working_directory, 	 	  
-    gchar **argv, 		  
-    gchar **envp, 		  
-    GSpawnFlags flags, 		  
-    GSpawnChildSetupFunc child_setup, 		  
-    gpointer user_data, 		  
-    GPid *child_pid, 		  
-    GError **error); </codeblock><p>This API calls <codeph>g_spawn_async_with_pipes</codeph> without
-any pipes. The setting of the following parameters does not have any effect
-in Symbian GLib:</p><ul>
-<li><p><codeph>working_directory</codeph></p></li>
-<li><p><codeph>envp</codeph></p></li>
-</ul><p><b><codeph>g_spawn_sync</codeph></b></p><p>The signature of the API
-is:</p><codeblock xml:space="preserve">gboolean g_spawn_sync(
-    const gchar *working_directory, 	 	
-    gchar **argv, 		
-    gchar **envp, 		
-    GSpawnFlags flags, 		
-    GSpawnChildSetupFunc child_setup, 		
-    gpointer user_data, 		
-    gchar **standard_output, 		
-    gchar **standard_error, 		
-    gint *exit_status, 		
-    GError **error); </codeblock><p>This API executes the program synchronously:
-that is, the calling process waits for the spawned process to complete before
-returning. The setting of the following parameters does not have any effect
-on Symbian GLib:  </p><ul>
-<li><p><codeph>working_directory</codeph></p></li>
-<li><p><codeph>envp</codeph></p></li>
-</ul><p>If a value other than NULL is passed for<codeph> standard_output</codeph> or <codeph>standard_error</codeph>,
-the value at the location is set to -1. </p><p><b><codeph>g_spawn_command_line_sync</codeph></b></p><p>The
-signature of the API is:</p><codeblock xml:space="preserve">gboolean g_spawn_command_line_sync(
-    const gchar *command_line, 
-    gchar **standard_output, 
-    gchar **standard_error, 
-    gint *exit_status, 
-    GError **error);  </codeblock><p>This API is a simple version of <codeph>g_spawn_sync</codeph> in
-which there are fewer number of parameters involved, and it takes a command
-line instead.</p><p>If a value other than NULL is passed for <codeph>standard_output</codeph> or <codeph>standard_error</codeph>,
-the value at the location is set to -1.</p><p>In many spawn APIs a variable
-of type <codeph>GSpawnFlags</codeph> is passed. The following flags have no
-effect:</p><ul>
-<li><p><codeph>G_SPAWN_LEAVE_DESCRIPTORS_OPEN</codeph></p></li>
-<li><p><codeph>G_SPAWN_STDOUT_TO_DEV_NULL</codeph></p></li>
-<li><p><codeph>G_SPAWN_STDERR_TO_DEV_NULL</codeph></p></li>
-<li><p><codeph>G_SPAWN_CHILD_INHERITS_STDIN</codeph></p></li>
-</ul>     </section>
-<section id="GUID-4B68F695-1BDB-4AA0-B77A-7F808A157E7A"><title>Libgmodule
-APIs</title><p>Libgmodule has APIs that provide a portable method for dynamically
-loading 'plug-ins' or, in other words, DLLs. There are some deviations in
-the <codeph>libgmodule</codeph> APIs on Symbian platform as compared to the
-OSS behavior. The APIs with their limitations are explained in detail below.</p><ul>
-<li><p><b><codeph>g_module_open</codeph></b>: The signature of the API is:</p><codeblock xml:space="preserve">GModule *g_module_open (const gchar *file_name, GModuleFlags flags);</codeblock><p>This API is used to open a module. The default OSS behavior when file_name
-is passed as NULL such that it obtains a <codeph>GModule</codeph> representing
-the main program. In Symbian GLib, NULL is returned instead. Of all the <codeph>GModuleFlags</codeph> only <codeph>G_MODULE_BIND_LOCAL</codeph> is
-honored. If the user passes any other flags, the module is still opened using
-the flag <codeph>G_MODULE_BIND_LOCAL</codeph>. </p></li>
-<li><p><b><codeph>g_module_symbol</codeph></b>: The signature of the API is:</p><codeblock xml:space="preserve">gboolean g_module_symbol (GModule *module, const gchar *symbol_name, gpointer *symbol);</codeblock><p>This API gets the symbol from the <codeph>GModule</codeph> opened using <codeph>g_module_open</codeph>.
-In OSS, <codeph>symbol_name</codeph> is the name of the symbol that needs
-to be queried from the <codeph>GModule</codeph>. In Symbian platform, the
-ordinal number (passed as a string) of the symbol name must be passed and
-not the symbol name.</p></li>
-</ul><p>See also <xref href="GUID-01E7AE98-024C-4119-87D0-5BB9D53DA119.dita">Introduction
-to libgmodule</xref> for more details about <codeph>libgmodule</codeph>. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4ADD8234-4AFD-4E80-94A4-AC018FE83276" xml:lang="en"><title>Differences
+between OSS and Symbian GLib</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The three areas of difference between the way GLib is implemented in Symbian
+platform and in OSS are as follows: </p>
+<ul>
+<li><p>Memory allocation</p></li>
+<li><p>Spawn APIs</p></li>
+<li><p>Libgmodule APIs </p></li>
+</ul>
+<section id="GUID-DFAD39D6-BA92-4293-B5EC-97077CE1FC1A-GENID-1-10-1-11-1-1-7-1-6-1-4-1-3-3">       <title>Memory
+allocation</title>       <p>The Symbian GLib implementation does not follow
+the default OSS behavior. The default OSS behavior is such that in the event
+of a memory allocation failure the application, using <codeph>g_malloc()</codeph> and
+not <codeph>g_try_malloc()</codeph>, will call <codeph>abort()</codeph> and
+thus terminate the application.  </p><p>The Symbian implementation, on the
+other hand will return NULL and not terminate the application in the event
+of a memory allocation failure. Thus, it is the application’s responsibility
+to check if the memory allocation failed due to the needed tasks.</p><p>Generally,
+all the application code written using GLib does not perform memory allocation
+failure checks. Hence, for Symbian GLib it is the application programmer's
+responsibility to check for memory allocation failures.  </p>     </section>
+<section id="GUID-DFAD39D6-BA92-4293-B5EC-97077CE1FC1A-GENID-1-10-1-11-1-1-7-1-6-1-4-1-3-4">       <title>Spawn
+APIs</title>       <p>GLib has a set of APIs for process spawning. Since Symbian
+platform does not support the <codeph>fork()</codeph> and <codeph>exec()</codeph> APIs,
+the <codeph>g_spawn*</codeph> APIs have limitations in their functionality.
+The limitations are explained per API in detail below.</p><p><b><codeph>g_spawn_async_with_pipes</codeph></b></p><p>The
+signature of this API is:</p><codeblock xml:space="preserve">gboolean g_spawn_async_with_pipes (
+    const gchar *working_directoy,
+    gchar **argv,
+    gchar **envp,
+    GSpawnFlags flags, 			
+    GSpawnChildSetupFunc child_setup, 			
+    gpointer user_data, 			
+    GPid *child_pid, 			
+    gint  *standard_input, 			
+    gint *standard_output, 			
+    gint *standard_error, 			
+    GError **error); </codeblock><p>This API executes the program asynchronously:
+that is, the caller does not block for the spawned process to complete. The
+setting of the following parameters does not have any effect in Symbian GLib:</p><ul>
+<li><p><codeph>working_directory</codeph></p></li>
+<li><p><codeph>envp</codeph></p></li>
+</ul><p>If a value other than NULL is passed for <codeph>standard_input</codeph>, <codeph>standard_ouput</codeph>,
+or <codeph>standard_error</codeph>, the value at the location is set to -1.</p><p><b><codeph>g_spawn_async</codeph></b></p><p>The
+signature of the API is:</p><codeblock xml:space="preserve">gboolean g_spawn_async (
+    const gchar *working_directory, 	 	  
+    gchar **argv, 		  
+    gchar **envp, 		  
+    GSpawnFlags flags, 		  
+    GSpawnChildSetupFunc child_setup, 		  
+    gpointer user_data, 		  
+    GPid *child_pid, 		  
+    GError **error); </codeblock><p>This API calls <codeph>g_spawn_async_with_pipes</codeph> without
+any pipes. The setting of the following parameters does not have any effect
+in Symbian GLib:</p><ul>
+<li><p><codeph>working_directory</codeph></p></li>
+<li><p><codeph>envp</codeph></p></li>
+</ul><p><b><codeph>g_spawn_sync</codeph></b></p><p>The signature of the API
+is:</p><codeblock xml:space="preserve">gboolean g_spawn_sync(
+    const gchar *working_directory, 	 	
+    gchar **argv, 		
+    gchar **envp, 		
+    GSpawnFlags flags, 		
+    GSpawnChildSetupFunc child_setup, 		
+    gpointer user_data, 		
+    gchar **standard_output, 		
+    gchar **standard_error, 		
+    gint *exit_status, 		
+    GError **error); </codeblock><p>This API executes the program synchronously:
+that is, the calling process waits for the spawned process to complete before
+returning. The setting of the following parameters does not have any effect
+on Symbian GLib:  </p><ul>
+<li><p><codeph>working_directory</codeph></p></li>
+<li><p><codeph>envp</codeph></p></li>
+</ul><p>If a value other than NULL is passed for<codeph> standard_output</codeph> or <codeph>standard_error</codeph>,
+the value at the location is set to -1. </p><p><b><codeph>g_spawn_command_line_sync</codeph></b></p><p>The
+signature of the API is:</p><codeblock xml:space="preserve">gboolean g_spawn_command_line_sync(
+    const gchar *command_line, 
+    gchar **standard_output, 
+    gchar **standard_error, 
+    gint *exit_status, 
+    GError **error);  </codeblock><p>This API is a simple version of <codeph>g_spawn_sync</codeph> in
+which there are fewer number of parameters involved, and it takes a command
+line instead.</p><p>If a value other than NULL is passed for <codeph>standard_output</codeph> or <codeph>standard_error</codeph>,
+the value at the location is set to -1.</p><p>In many spawn APIs a variable
+of type <codeph>GSpawnFlags</codeph> is passed. The following flags have no
+effect:</p><ul>
+<li><p><codeph>G_SPAWN_LEAVE_DESCRIPTORS_OPEN</codeph></p></li>
+<li><p><codeph>G_SPAWN_STDOUT_TO_DEV_NULL</codeph></p></li>
+<li><p><codeph>G_SPAWN_STDERR_TO_DEV_NULL</codeph></p></li>
+<li><p><codeph>G_SPAWN_CHILD_INHERITS_STDIN</codeph></p></li>
+</ul>     </section>
+<section id="GUID-4B68F695-1BDB-4AA0-B77A-7F808A157E7A"><title>Libgmodule
+APIs</title><p>Libgmodule has APIs that provide a portable method for dynamically
+loading 'plug-ins' or, in other words, DLLs. There are some deviations in
+the <codeph>libgmodule</codeph> APIs on Symbian platform as compared to the
+OSS behavior. The APIs with their limitations are explained in detail below.</p><ul>
+<li><p><b><codeph>g_module_open</codeph></b>: The signature of the API is:</p><codeblock xml:space="preserve">GModule *g_module_open (const gchar *file_name, GModuleFlags flags);</codeblock><p>This API is used to open a module. The default OSS behavior when file_name
+is passed as NULL such that it obtains a <codeph>GModule</codeph> representing
+the main program. In Symbian GLib, NULL is returned instead. Of all the <codeph>GModuleFlags</codeph> only <codeph>G_MODULE_BIND_LOCAL</codeph> is
+honored. If the user passes any other flags, the module is still opened using
+the flag <codeph>G_MODULE_BIND_LOCAL</codeph>. </p></li>
+<li><p><b><codeph>g_module_symbol</codeph></b>: The signature of the API is:</p><codeblock xml:space="preserve">gboolean g_module_symbol (GModule *module, const gchar *symbol_name, gpointer *symbol);</codeblock><p>This API gets the symbol from the <codeph>GModule</codeph> opened using <codeph>g_module_open</codeph>.
+In OSS, <codeph>symbol_name</codeph> is the name of the symbol that needs
+to be queried from the <codeph>GModule</codeph>. In Symbian platform, the
+ordinal number (passed as a string) of the symbol name must be passed and
+not the symbol name.</p></li>
+</ul><p>See also <xref href="GUID-01E7AE98-024C-4119-87D0-5BB9D53DA119.dita">Introduction
+to libgmodule</xref> for more details about <codeph>libgmodule</codeph>. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e240294_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e244031_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,75 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B" xml:lang="en"><title>Using
-Sensor Channels APIs</title><shortdesc>The Sensor Channel establishes a data exchange connection between
-the sensor framework and hardware using the sensor channel APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-3-1-1"><cmd>Include the library <b>SensrvClient.lib</b> in
-your <b>.mmp</b> file.</cmd>
-</step>
-<step id="GUID-4F637EBD-BD56-44FA-A984-E93CC4B2B3B6"><cmd>Include the following
-header files, as they are required for accessing sensor channels regardless
-of the channel type: </cmd>
-<info><ul>
-<li><p>sensrvchannel.h</p></li>
-<li><p>sensrvchannelinfo.h</p></li>
-<li><p>sensrvtypes.h</p></li>
-<li><p>sensrvchannelfinder.h</p></li>
-<li><p>sensrvdatalistener.h</p></li>
-</ul></info>
-</step>
-<step id="GUID-F5BC52B6-67DD-4F59-889B-C5DE4C69029B"><cmd>Retrieve details
-about the required sensor channel. For details. see <xref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita">Querying
-for Sensor Channels</xref>.</cmd>
-</step>
-<step id="GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88"><cmd>Connect to the sensor
-by opening a connection with the sensor channel.</cmd>
-<substeps id="GUID-C9E5B9FC-C637-4DEB-AAAF-E38C6CD9A18A">
-<substep id="GUID-CA2CFF9C-3168-4060-AC39-8CB6FBA4BCA2"><cmd>Create an instance
-of <codeph>CSensrvChannel</codeph> and specify the instance of <codeph>TSensrvChannelInfo</codeph> returned
-by <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-E58BAF1B-57AA-3E85-A4F9-8C6C29043FBD"><apiname>CSensrvChannelFinder::FindChannelsL()</apiname></xref>, as a parameter
-in the <codeph>NewL()</codeph> constructor.</cmd>
-<stepxmp><codeblock xml:space="preserve"> CSensrvChannel* sensorChannel;
- sensorChannel = CSensrvChannel::NewL(channelInfoList[0]);// channelInfoList is
-//   returned by the CSensrvChannelFinder::FindChannelsL()funtion</codeblock></stepxmp>
-</substep>
-<substep id="GUID-30E6033F-E316-4BDB-AF22-2369463DF709"><cmd>Open the sensor
-channel using <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-277A4940-2E5E-3E8E-AB61-552CD2375F3C"><apiname>CSensrvChannel::OpenChannelL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">channel-&gt;OpenChannelL();</codeblock></stepxmp>
-</substep>
-</substeps>
-</step>
-<step id="GUID-7A414271-040C-4107-B047-9416747C66A6"><cmd>Perform any of the
-following operations:</cmd>
-<info><ul>
-<li><xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receive data from
-sensors</xref></li>
-<li><xref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita">Listen for channel
-changes</xref></li>
-<li><xref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita">Retrieve channel
-properties</xref></li>
-<li><xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Set channel properties</xref></li>
-<li><xref href="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita">Listen for channel
-property changes</xref></li>
-<li><xref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita">Receive channel
-data based on conditions</xref></li>
-</ul></info>
-</step>
-<step id="GUID-61840C55-476C-4DC3-A946-A440330B9DE5"><cmd>Close the channel.</cmd>
-<info><codeblock xml:space="preserve">channel-&gt;CloseChannel();</codeblock><note type="important"> A
-channel must be closed when not required, as it reduces power consumption
-of the Symbian device. An open sensor channel keeps the device processor active
-each time data arrives. Therefore, the processor does not change to idle state
-even when the device user is not performing any operations on the device.</note></info>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B" xml:lang="en"><title>Using
+Sensor Channels APIs</title><shortdesc>The Sensor Channel establishes a data exchange connection between
+the sensor framework and hardware using the sensor channel APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-3-1-1"><cmd>Include the library <b>SensrvClient.lib</b> in
+your <b>.mmp</b> file.</cmd>
+</step>
+<step id="GUID-4F637EBD-BD56-44FA-A984-E93CC4B2B3B6"><cmd>Include the following
+header files, as they are required for accessing sensor channels regardless
+of the channel type: </cmd>
+<info><ul>
+<li><p>sensrvchannel.h</p></li>
+<li><p>sensrvchannelinfo.h</p></li>
+<li><p>sensrvtypes.h</p></li>
+<li><p>sensrvchannelfinder.h</p></li>
+<li><p>sensrvdatalistener.h</p></li>
+</ul></info>
+</step>
+<step id="GUID-F5BC52B6-67DD-4F59-889B-C5DE4C69029B"><cmd>Retrieve details
+about the required sensor channel. For details. see <xref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita">Querying
+for Sensor Channels</xref>.</cmd>
+</step>
+<step id="GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88"><cmd>Connect to the sensor
+by opening a connection with the sensor channel.</cmd>
+<substeps id="GUID-C9E5B9FC-C637-4DEB-AAAF-E38C6CD9A18A">
+<substep id="GUID-CA2CFF9C-3168-4060-AC39-8CB6FBA4BCA2"><cmd>Create an instance
+of <codeph>CSensrvChannel</codeph> and specify the instance of <codeph>TSensrvChannelInfo</codeph> returned
+by <xref href="GUID-5F108D03-C8A6-3EF9-B103-2E8916633602.dita#GUID-5F108D03-C8A6-3EF9-B103-2E8916633602/GUID-E58BAF1B-57AA-3E85-A4F9-8C6C29043FBD"><apiname>CSensrvChannelFinder::FindChannelsL()</apiname></xref>, as a parameter
+in the <codeph>NewL()</codeph> constructor.</cmd>
+<stepxmp><codeblock xml:space="preserve"> CSensrvChannel* sensorChannel;
+ sensorChannel = CSensrvChannel::NewL(channelInfoList[0]);// channelInfoList is
+//   returned by the CSensrvChannelFinder::FindChannelsL()funtion</codeblock></stepxmp>
+</substep>
+<substep id="GUID-30E6033F-E316-4BDB-AF22-2369463DF709"><cmd>Open the sensor
+channel using <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-277A4940-2E5E-3E8E-AB61-552CD2375F3C"><apiname>CSensrvChannel::OpenChannelL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">channel-&gt;OpenChannelL();</codeblock></stepxmp>
+</substep>
+</substeps>
+</step>
+<step id="GUID-7A414271-040C-4107-B047-9416747C66A6"><cmd>Perform any of the
+following operations:</cmd>
+<info><ul>
+<li><xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receive data from
+sensors</xref></li>
+<li><xref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita">Listen for channel
+changes</xref></li>
+<li><xref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita">Retrieve channel
+properties</xref></li>
+<li><xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Set channel properties</xref></li>
+<li><xref href="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita">Listen for channel
+property changes</xref></li>
+<li><xref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita">Receive channel
+data based on conditions</xref></li>
+</ul></info>
+</step>
+<step id="GUID-61840C55-476C-4DC3-A946-A440330B9DE5"><cmd>Close the channel.</cmd>
+<info><codeblock xml:space="preserve">channel-&gt;CloseChannel();</codeblock><note type="important"> A
+channel must be closed when not required, as it reduces power consumption
+of the Symbian device. An open sensor channel keeps the device processor active
+each time data arrives. Therefore, the processor does not change to idle state
+even when the device user is not performing any operations on the device.</note></info>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e79196_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e85908_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e190311_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e195319_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e221356_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e225093_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,106 +1,110 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755" xml:lang="en"><title>MakeSIS</title><abstract><p>The <codeph>MakeSIS</codeph> tool generates unsigned Software
-Installation (SIS) files based on the information provided in package (PKG)
-files.</p></abstract><prolog><metadata><keywords/></metadata></prolog><refbody>
-<refsyn><title>Syntax</title> <p><userinput>makesis <parmname>[OPTIONS]</parmname> <cmdname> &lt;ARGS&gt;</cmdname> </userinput> </p> <p>The
-following table lists the options supported by the <codeph>MakeSIS</codeph> tool. </p> <table id="GUID-3507EC30-B539-5F94-BFFA-073B0BC98177">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Options </entry>
-<entry>Description</entry>
-<entry>Usage</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <varname>-h</varname>  </p> </entry>
-<entry><p>Displays the help for PKG file format. </p> </entry>
-<entry><p><userinput>makesis [-h]</userinput> </p> </entry>
-</row>
-<row>
-<entry><p> <varname>-i</varname>  </p> </entry>
-<entry><p>Displays the Open SSL licence. </p> </entry>
-<entry><p><userinput>makesis [-i]</userinput> </p> </entry>
-</row>
-<row>
-<entry><p> <varname>-v</varname>  </p> </entry>
-<entry><p>Displays verbose output. </p> </entry>
-<entry><p><userinput>makesis [-v]</userinput> </p> </entry>
-</row>
-<row>
-<entry><p> <varname>-s</varname>  </p> </entry>
-<entry><p>Generates a ROM stub file. See <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita#GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755/GUID-DEF21F73-CF37-51BD-8AD4-E58BEF3D2C44">Notes</xref> for more information. </p> </entry>
-<entry><p><userinput>makesis [-s] [-d directory] pkgfile</userinput> </p> </entry>
-</row>
-<row>
-<entry><p> <varname>-c</varname>  </p> </entry>
-<entry><p>Reports an error if the generated SIS file is not compatible with
-the InterpretSIS tool for preinstall. </p> </entry>
-<entry><p><userinput>makesis [-c] [-d directory] pkgfile</userinput> </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following table lists the arguments to be specified with the <codeph>MakeSIS</codeph> tool. </p> <table id="GUID-0CFA878E-F0FF-5831-B24B-320921C5CA4D">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Arguments </entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <varname>-d directory</varname>  </p> </entry>
-<entry><p>Specifies absolute paths in PKG files or paths relative to the current
-directory. </p> </entry>
-</row>
-<row>
-<entry><p> <varname>pkgfile</varname>  </p> </entry>
-<entry><p>Specifies the PKG file, for which a SIS file is generated. </p> </entry>
-</row>
-<row>
-<entry><p> <varname>sisfile</varname>  </p> </entry>
-<entry><p>Specifies the name of the generated SIS file. </p> <p>If not specified,
-the output SIS filename is derived from the name of the PKG file, but with
-a <filepath>SIS</filepath> file extension. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </refsyn>
-<section id="GUID-DEF21F73-CF37-51BD-8AD4-E58BEF3D2C44"><title>Notes</title> <ul>
-<li id="GUID-9877B442-775B-5754-BB99-9DA810D30552"><p>A stub SIS file is created
-by the software installer on the Symbian device after a package has been installed.
-It details which files were installed and where, and is used when uninstalling
-and upgrading the package. For pre-installed applications in ROM, <codeph>makesis
--s</codeph> can be used to create a stub SIS file. </p> <p>Stub files that
-are created, contain a fixed date/time stamp of 2004/01/01 00:00. </p> </li>
-<li id="GUID-2136F1C0-1FD1-58FF-8E6B-6D09D5E89DBF"><p>You can use the <codeph>–d</codeph> argument
-with the <codeph>EPOCROOT</codeph> environment variable to avoid using absolute
-paths in PKG files or relative paths to the current directory. </p> <p>By
-default, binaries are built to the <filepath>epoc32</filepath> tree. So, if
-files are described in the PKG file as, for example: </p> <codeblock id="GUID-7F3A3056-88A8-5D19-9CB9-C3135D17DD95" xml:space="preserve">"epoc32\release\armv5\urel\HelloWorld.exe"-"!:\sys\bin\HelloWorld.exe"
-"epoc32\release\armv5\urel\z\resource\apps\HelloWorld.rsc"-"!:\resource\apps\HelloWorld.rsc"</codeblock> <p>then <codeph>MakeSIS</codeph> can
-be invoked from any location using: </p> <p><userinput>makesis -d%EPOCROOT%
-HelloWorld.pkg</userinput> </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita"><linktext>PKG Format</linktext>
-</link>
-<link href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita"><linktext>SignSIS</linktext>
-</link>
-<link href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita"><linktext>CreateSIS</linktext>
-</link>
-<link href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita"><linktext>Creating
-and Signing an Installation File</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755" xml:lang="en"><title>MakeSIS</title><abstract><p>The <codeph>MakeSIS</codeph> tool generates unsigned Software
+Installation (SIS) files based on the information provided in package (PKG)
+files.</p></abstract><prolog><metadata><keywords/></metadata></prolog><refbody>
+<refsyn id="GUID-BB134714-50B5-4EEC-B799-74970D43784D"><title>Syntax</title> <p><userinput>makesis <parmname>[OPTIONS]</parmname> <cmdname> &lt;ARGS&gt;</cmdname> </userinput> </p> <p>The following table lists the options supported by
+the <codeph>MakeSIS</codeph> tool. </p> <table id="GUID-3507EC30-B539-5F94-BFFA-073B0BC98177">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Options </entry>
+<entry>Description</entry>
+<entry>Usage</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <varname>-h</varname>  </p> </entry>
+<entry><p>Displays the help for PKG file format. </p> </entry>
+<entry><p><userinput>makesis [-h]</userinput> </p> </entry>
+</row>
+<row>
+<entry><p> <varname>-i</varname>  </p> </entry>
+<entry><p>Displays the Open SSL licence. </p> </entry>
+<entry><p><userinput>makesis [-i]</userinput> </p> </entry>
+</row>
+<row>
+<entry><p> <varname>-v</varname>  </p> </entry>
+<entry><p>Displays verbose output. </p> </entry>
+<entry><p><userinput>makesis [-v]</userinput> </p> </entry>
+</row>
+<row>
+<entry><p> <varname>-s</varname>  </p> </entry>
+<entry><p>Generates a ROM stub file. See <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita#GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755/GUID-DEF21F73-CF37-51BD-8AD4-E58BEF3D2C44">Notes</xref> for more information. </p> </entry>
+<entry><p><userinput>makesis [-s] [-d directory] pkgfile</userinput> </p> </entry>
+</row>
+<row>
+<entry><p> <varname>-c</varname>  </p> </entry>
+<entry><p>Reports an error if the generated SIS file is not compatible with
+the InterpretSIS tool for preinstall. </p> </entry>
+<entry><p><userinput>makesis [-c] [-d directory] pkgfile</userinput> </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following table lists the arguments to be specified with the <codeph>MakeSIS</codeph> tool. </p> <table id="GUID-0CFA878E-F0FF-5831-B24B-320921C5CA4D">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Arguments </entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <varname>-d directory</varname>  </p> </entry>
+<entry><p>Specifies absolute paths in PKG files or paths relative to the current
+directory. </p> </entry>
+</row>
+<row>
+<entry><p> <varname>pkgfile</varname>  </p> </entry>
+<entry><p>Specifies the PKG file, for which a SIS file is generated. </p> </entry>
+</row>
+<row>
+<entry><p> <varname>sisfile</varname>  </p> </entry>
+<entry><p>Specifies the name of the generated SIS file. </p> <p>If not specified,
+the output SIS filename is derived from the name of the PKG file, but with
+a <filepath>SIS</filepath> file extension. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </refsyn>
+<section id="GUID-DEF21F73-CF37-51BD-8AD4-E58BEF3D2C44"><title>Notes</title> <ul>
+<li id="GUID-9877B442-775B-5754-BB99-9DA810D30552"><p>A stub SIS file is created
+by the software installer on the Symbian device after a package has been installed.
+It details which files were installed and where, and is used when uninstalling
+and upgrading the package. For pre-installed applications in ROM, <codeph>makesis
+-s</codeph> can be used to create a stub SIS file. </p> <p>Stub files that
+are created, contain a fixed date/time stamp of 2004/01/01 00:00. </p> </li>
+<li id="GUID-2136F1C0-1FD1-58FF-8E6B-6D09D5E89DBF"><p>You can use the <codeph>–d</codeph> argument
+with the <codeph>EPOCROOT</codeph> environment variable to avoid using absolute
+paths in PKG files or relative paths to the current directory. </p> <p>By
+default, binaries are built to the <filepath>epoc32</filepath> tree. So, if
+files are described in the PKG file as, for example: </p> <codeblock id="GUID-7F3A3056-88A8-5D19-9CB9-C3135D17DD95" xml:space="preserve">"epoc32\release\armv5\urel\HelloWorld.exe"-"!:\sys\bin\HelloWorld.exe"
+"epoc32\release\armv5\urel\z\resource\apps\HelloWorld.rsc"-"!:\resource\apps\HelloWorld.rsc"</codeblock> <p>then <codeph>MakeSIS</codeph> can
+be invoked from any location using: </p> <p><userinput>makesis -d%EPOCROOT%
+HelloWorld.pkg</userinput> </p> </li>
+<li><p><codeph>MakeSIS</codeph> can parse PKG files that are in UTF8 or UNICODE
+formats. It supports both little-endian and big-endian UNICODE files. </p><note><codeph>MakeSIS</codeph> does
+not convert text files to any other format; it packages them as-is into the
+SIS files.</note></li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita"><linktext>PKG Format</linktext>
+</link>
+<link href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita"><linktext>SignSIS</linktext>
+</link>
+<link href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita"><linktext>CreateSIS</linktext>
+</link>
+<link href="GUID-03BBEA31-3266-5B1C-9017-4EE7EA4AF1A8.dita"><linktext>Creating
+and Signing an Installation File</linktext></link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,189 +1,189 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023" xml:lang="en"><title>Zip
-Compression Library Overview</title><shortdesc>The Zip Compression Library, EZLib, provides stream and file compression
-and decompression functionality for the Symbian platforms. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>EZLib provides classes to handle the file, stream and buffer requirements
-of zlib. It provides native Symbian APIs that access the zlib compression
-algorithms and it exports some zlib and gzio C APIs from libz.dll. EZLib can
-operate on streams, flat zip files (zlib format) and gzip files. </p>
-<section><title>Purpose</title> <p>EZLib facilitates: </p> <ul>
-<li id="GUID-EB810152-39F6-5B42-B9CA-092FD2DBADB5"><p>Compression and decompression
-of memory streams </p> </li>
-<li id="GUID-F1E8AD72-1E1C-5978-BBDB-FCF529238441"><p>Compression and decompression
-of files </p> </li>
-<li id="GUID-B08AB8E2-DE37-59B2-86D3-04F5385BFCE0"><p>Decompression of file
-archives of gzip format </p> </li>
-</ul> </section>
-<section><title>Required background</title> <p>You must be familiar with zlib,
-gzip compression and decompression formats and Deflate algorithms. You can
-find further information about each of these on the IETF (Internet Engineering
-Task Force) website. </p> <p> <xref href="http://www.ietf.org/rfc/rfc1950.txt" scope="external">RFC1950- zlib format</xref>  </p> <p> <xref href="http://www.ietf.org/rfc/rfc1951.txt" scope="external">RFC1951-Deflate algorithm</xref>  </p> <p> <xref href="http://www.ietf.org/rfc/rfc1952.txt" scope="external">RFC1952-gzip format</xref>  </p> </section>
-<section><title>Key concepts and terms</title> <dl>
-<dlentry>
-<dt>zlib</dt>
-<dd><p>zlib format is an open standard for lossless compressed data. It can
-be implemented using a number of alternative compression algorithms. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Compression</dt>
-<dd><p>Data compression is a process of encoding information using fewer bits
-(or other information-bearing units) using specific encoding algorithms. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Decompression</dt>
-<dd><p>Decompression is the process of reconverting compressed data into its
-original (or nearly original) form. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Stream</dt>
-<dd><p>A stream is an abstraction that represents a device on which input
-and ouput operations are performed. A stream can be considered as a source
-or destination of characters of indefinite length. A stream can be accessed
-only in sequence. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>gzip File Format</dt>
-<dd><p>gzip is normally used to compress single files. Deflate is the compression
-algorithm used. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>gzio</dt>
-<dd><p>gzio APIs are input amd output functions for gzip format. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>zip Format</dt>
-<dd><p>The zip file format is both data compression and archive. A zip file
-contains one or more files that have been compressed where possible to reduce
-file size. The zip file format permits a number of compression algorithms
-but only Deflate is widely used and supported. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>The Zip Compression Library (EZLib)
-provides C++ wrapper classes that encapsulate the functionality of version
-1.2.3 of the zlib library. zlib and gzio APIs are written in C. The core functionality
-is performed by a core library (libzcore.dll). </p> <p>EZLib provides three
-DLLs which encapsulate the core functionality in Symbian C++ and Open Environment
-APIs. </p> <ul>
-<li id="GUID-D8A474AF-8853-5297-AF1A-CDB87AA90CDC"><p>LIBZ.DLL: This is an
-Open Environment library that provides the zlib and gzio C APIs. The APIs
-can be used to compress and decompress zlib and gzip file formats. </p> </li>
-<li id="GUID-11302514-AFA7-548A-8EB2-2CD0FE34B1B5"><p>EZLIB.DLL: This provides
-Symbian C++ wrappers for the zlib compression and decompression APIs. It offers
-buffer, stream and gzip file handling classes. It also exports the C API interface
-provided by LIBZ.DLL with the exception of the gzio APIs. This library can
-be used to compress and decompress zlib and gzip file formats and memory streams. </p> </li>
-<li id="GUID-123ED28B-2F59-593E-B1F4-DA1E70368A0C"><p>EZIP.DLL: This provides
-Symbian C++ APIs for reading from and decompressing zip archives. It cannot
-be used to compress archives to zip archives. </p> </li>
-</ul> <fig id="GUID-14EAABD4-6E9D-53CA-9515-7504EF0482D7">
-<title>              EZLib Architecture            </title>
-<image href="GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e151178_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>APIs</title> <p>The classes exported from <filepath>ezlib.dll</filepath> are
-tabulated below: </p> <table id="GUID-DD3CE37A-8241-5961-B517-03266AE463F0">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-AEF8BCC8-6B24-3D59-AD3A-17B5203B3AA5.dita"><apiname>CEZCompressor</apiname></xref>  </p> </entry>
-<entry><p>Provides wrapper for ‘compress’ and ‘Deflate’ zlib APIs. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-BC3CEC02-B747-38FB-8B35-E7390DB06E35.dita"><apiname>CEZDecompressor</apiname></xref>  </p> </entry>
-<entry><p>Provides wrapper for ‘uncompress’ and ‘inflate’ zlib APIs. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A54D8675-1874-3B4F-816D-001A235C0F9C.dita"><apiname>CEZFileBufferManager</apiname></xref>  </p> </entry>
-<entry><p>Provides basic file handling for CEZCompressor and CEZDecompressor
-classes. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation to compress an uncompressed file to a gzip
-file. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-20B207AF-0DEB-3B4A-8BA4-4C0D17F544AC.dita"><apiname>CEZFileToGzipBM</apiname></xref>  </p> </entry>
-<entry><p>Provides buffer management class for CEZFileToGZip. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation to uncompress a gzip file to an output file. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-2C372219-941A-3D1B-885F-8BC745827445.dita"><apiname>CEZGzipToFileBM</apiname></xref>  </p> </entry>
-<entry><p>Provides buffer management class for CEZGzipToFile. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-E9A5CC9F-612E-3C32-AF93-6F28D2A894EF.dita"><apiname>CEZZStream</apiname></xref>  </p> </entry>
-<entry><p>Provides stream handling. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-B90BA6D6-72A2-3EB8-B8EF-CD5408107A9E.dita"><apiname>MEZBufferManager</apiname></xref>  </p> </entry>
-<entry><p>Pure virtual interface class. CEZFileBufferManager derives from
-this class. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The classes exported from <filepath>ezip.dll</filepath> are tabulated
-below: </p> <table id="GUID-067977A4-93E7-5E09-9962-63B3FA501B42">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-8C8DEC50-6FC8-3DED-84E1-1EA42E2A0BB8.dita"><apiname>CZipArchive</apiname></xref>  </p> </entry>
-<entry><p>Represents a zip archive and defines all relevant enumerations and
-structures. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita"><apiname>CZipFile</apiname></xref>  </p> </entry>
-<entry><p>Represents a zip archive contained in a single file. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref>  </p> </entry>
-<entry><p>Represents a compressed file contained in a CZipFile archive file. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D458AE6A-EC64-3882-BCEA-A44A43DAA99A.dita"><apiname>CZipFileMemberIterator</apiname></xref>  </p> </entry>
-<entry><p>Allows iteration through all the entries of an archive. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-62F9728B-9C39-3496-BAEB-6E1456E6F197.dita"><apiname>RZipFileMemberReaderStream</apiname></xref>  </p> </entry>
-<entry><p>Represents an input stream for compressed files in an archive. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><filepath>libz.dll</filepath> provides the C open environment
-and hybrid applications to support the zlib library. </p></section>
-<section><title>Typical uses</title> <p>The typical uses of
-the ZIP Compression Library are: </p> <ul>
-<li id="GUID-374EF76C-333C-5A09-9154-42056C70DD58"><p><xref href="GUID-548CC331-8E38-5627-A925-EA386BE90258.dita"> Compression
-and decompression of files(gzip)</xref>  </p> </li>
-<li id="GUID-053B2446-7ED5-5263-AF3D-00866C829B4C"><p><xref href="GUID-84922B27-FDCF-56FD-91ED-5E0BFE3ED0E4.dita">Compression
-and decompression of files(zip) </xref>  </p> </li>
-<li id="GUID-BA9F0FBB-6B0C-51DB-8162-336C27002B79"><p><xref href="GUID-C3086910-D7B4-5549-BF65-374C8B602E8F.dita"> Compression
-and decompression of memory streams </xref>  </p> </li>
-<li id="GUID-A6DDC9BD-B8F4-52CE-BE3D-AFAC549EF9ED"><p><xref href="GUID-FDDAF8E9-4CAB-5489-B578-A5362E2140C1.dita"> Decompression
-of file archives </xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4BEFF7BA-2A39-5601-919E-22AF08D06023" xml:lang="en"><title>Zip
+Compression Library Overview</title><shortdesc>The Zip Compression Library, EZLib, provides stream and file compression
+and decompression functionality for the Symbian platforms. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>EZLib provides classes to handle the file, stream and buffer requirements
+of zlib. It provides native Symbian APIs that access the zlib compression
+algorithms and it exports some zlib and gzio C APIs from libz.dll. EZLib can
+operate on streams, flat zip files (zlib format) and gzip files. </p>
+<section><title>Purpose</title> <p>EZLib facilitates: </p> <ul>
+<li id="GUID-EB810152-39F6-5B42-B9CA-092FD2DBADB5"><p>Compression and decompression
+of memory streams </p> </li>
+<li id="GUID-F1E8AD72-1E1C-5978-BBDB-FCF529238441"><p>Compression and decompression
+of files </p> </li>
+<li id="GUID-B08AB8E2-DE37-59B2-86D3-04F5385BFCE0"><p>Decompression of file
+archives of gzip format </p> </li>
+</ul> </section>
+<section><title>Required background</title> <p>You must be familiar with zlib,
+gzip compression and decompression formats and Deflate algorithms. You can
+find further information about each of these on the IETF (Internet Engineering
+Task Force) website. </p> <p> <xref href="http://www.ietf.org/rfc/rfc1950.txt" scope="external">RFC1950- zlib format</xref>  </p> <p> <xref href="http://www.ietf.org/rfc/rfc1951.txt" scope="external">RFC1951-Deflate algorithm</xref>  </p> <p> <xref href="http://www.ietf.org/rfc/rfc1952.txt" scope="external">RFC1952-gzip format</xref>  </p> </section>
+<section><title>Key concepts and terms</title> <dl>
+<dlentry>
+<dt>zlib</dt>
+<dd><p>zlib format is an open standard for lossless compressed data. It can
+be implemented using a number of alternative compression algorithms. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Compression</dt>
+<dd><p>Data compression is a process of encoding information using fewer bits
+(or other information-bearing units) using specific encoding algorithms. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Decompression</dt>
+<dd><p>Decompression is the process of reconverting compressed data into its
+original (or nearly original) form. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Stream</dt>
+<dd><p>A stream is an abstraction that represents a device on which input
+and ouput operations are performed. A stream can be considered as a source
+or destination of characters of indefinite length. A stream can be accessed
+only in sequence. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>gzip File Format</dt>
+<dd><p>gzip is normally used to compress single files. Deflate is the compression
+algorithm used. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>gzio</dt>
+<dd><p>gzio APIs are input amd output functions for gzip format. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>zip Format</dt>
+<dd><p>The zip file format is both data compression and archive. A zip file
+contains one or more files that have been compressed where possible to reduce
+file size. The zip file format permits a number of compression algorithms
+but only Deflate is widely used and supported. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>The Zip Compression Library (EZLib)
+provides C++ wrapper classes that encapsulate the functionality of version
+1.2.3 of the zlib library. zlib and gzio APIs are written in C. The core functionality
+is performed by a core library (libzcore.dll). </p> <p>EZLib provides three
+DLLs which encapsulate the core functionality in Symbian C++ and Open Environment
+APIs. </p> <ul>
+<li id="GUID-D8A474AF-8853-5297-AF1A-CDB87AA90CDC"><p>LIBZ.DLL: This is an
+Open Environment library that provides the zlib and gzio C APIs. The APIs
+can be used to compress and decompress zlib and gzip file formats. </p> </li>
+<li id="GUID-11302514-AFA7-548A-8EB2-2CD0FE34B1B5"><p>EZLIB.DLL: This provides
+Symbian C++ wrappers for the zlib compression and decompression APIs. It offers
+buffer, stream and gzip file handling classes. It also exports the C API interface
+provided by LIBZ.DLL with the exception of the gzio APIs. This library can
+be used to compress and decompress zlib and gzip file formats and memory streams. </p> </li>
+<li id="GUID-123ED28B-2F59-593E-B1F4-DA1E70368A0C"><p>EZIP.DLL: This provides
+Symbian C++ APIs for reading from and decompressing zip archives. It cannot
+be used to compress archives to zip archives. </p> </li>
+</ul> <fig id="GUID-14EAABD4-6E9D-53CA-9515-7504EF0482D7">
+<title>              EZLib Architecture            </title>
+<image href="GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e144644_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>APIs</title> <p>The classes exported from <filepath>ezlib.dll</filepath> are
+tabulated below: </p> <table id="GUID-DD3CE37A-8241-5961-B517-03266AE463F0">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-AEF8BCC8-6B24-3D59-AD3A-17B5203B3AA5.dita"><apiname>CEZCompressor</apiname></xref>  </p> </entry>
+<entry><p>Provides wrapper for ‘compress’ and ‘Deflate’ zlib APIs. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-BC3CEC02-B747-38FB-8B35-E7390DB06E35.dita"><apiname>CEZDecompressor</apiname></xref>  </p> </entry>
+<entry><p>Provides wrapper for ‘uncompress’ and ‘inflate’ zlib APIs. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A54D8675-1874-3B4F-816D-001A235C0F9C.dita"><apiname>CEZFileBufferManager</apiname></xref>  </p> </entry>
+<entry><p>Provides basic file handling for CEZCompressor and CEZDecompressor
+classes. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation to compress an uncompressed file to a gzip
+file. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-20B207AF-0DEB-3B4A-8BA4-4C0D17F544AC.dita"><apiname>CEZFileToGzipBM</apiname></xref>  </p> </entry>
+<entry><p>Provides buffer management class for CEZFileToGZip. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation to uncompress a gzip file to an output file. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-2C372219-941A-3D1B-885F-8BC745827445.dita"><apiname>CEZGzipToFileBM</apiname></xref>  </p> </entry>
+<entry><p>Provides buffer management class for CEZGzipToFile. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-E9A5CC9F-612E-3C32-AF93-6F28D2A894EF.dita"><apiname>CEZZStream</apiname></xref>  </p> </entry>
+<entry><p>Provides stream handling. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-B90BA6D6-72A2-3EB8-B8EF-CD5408107A9E.dita"><apiname>MEZBufferManager</apiname></xref>  </p> </entry>
+<entry><p>Pure virtual interface class. CEZFileBufferManager derives from
+this class. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The classes exported from <filepath>ezip.dll</filepath> are tabulated
+below: </p> <table id="GUID-067977A4-93E7-5E09-9962-63B3FA501B42">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-8C8DEC50-6FC8-3DED-84E1-1EA42E2A0BB8.dita"><apiname>CZipArchive</apiname></xref>  </p> </entry>
+<entry><p>Represents a zip archive and defines all relevant enumerations and
+structures. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita"><apiname>CZipFile</apiname></xref>  </p> </entry>
+<entry><p>Represents a zip archive contained in a single file. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref>  </p> </entry>
+<entry><p>Represents a compressed file contained in a CZipFile archive file. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D458AE6A-EC64-3882-BCEA-A44A43DAA99A.dita"><apiname>CZipFileMemberIterator</apiname></xref>  </p> </entry>
+<entry><p>Allows iteration through all the entries of an archive. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-62F9728B-9C39-3496-BAEB-6E1456E6F197.dita"><apiname>RZipFileMemberReaderStream</apiname></xref>  </p> </entry>
+<entry><p>Represents an input stream for compressed files in an archive. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><filepath>libz.dll</filepath> provides the C open environment
+and hybrid applications to support the zlib library. </p></section>
+<section><title>Typical uses</title> <p>The typical uses of
+the ZIP Compression Library are: </p> <ul>
+<li id="GUID-374EF76C-333C-5A09-9154-42056C70DD58"><p><xref href="GUID-548CC331-8E38-5627-A925-EA386BE90258.dita"> Compression
+and decompression of files(gzip)</xref>  </p> </li>
+<li id="GUID-053B2446-7ED5-5263-AF3D-00866C829B4C"><p><xref href="GUID-84922B27-FDCF-56FD-91ED-5E0BFE3ED0E4.dita">Compression
+and decompression of files(zip) </xref>  </p> </li>
+<li id="GUID-BA9F0FBB-6B0C-51DB-8162-336C27002B79"><p><xref href="GUID-C3086910-D7B4-5549-BF65-374C8B602E8F.dita"> Compression
+and decompression of memory streams </xref>  </p> </li>
+<li id="GUID-A6DDC9BD-B8F4-52CE-BE3D-AFAC549EF9ED"><p><xref href="GUID-FDDAF8E9-4CAB-5489-B578-A5362E2140C1.dita"> Decompression
+of file archives </xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e195578_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e200586_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8" xml:lang="en"><title>Viewers</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The scrolling indicators are used to provide information about possible
-browsing directions (up and down) and position inside the document. Refer
-to  <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref> for
-more information on scrolling.</p>
-<p>Applications can choose to allow selecting text from viewers. This works
-in any text selection with touch, touch down, move, and touch release over
-a block of text. Touch release event launches stylus pop-up menu with text
-copy §QTN_STYLUS_POPUP_COPY§ is displayed.</p>
-<p>Tactile: <ul>
-<li><p>Sensitive edit is provided with touch down event. </p></li>
-<li><p>Text edit effect is given while selecting letters. </p></li>
-<li><p>Blank edit effect given while selecting blank space.</p></li>
-<li><p>Line edit given while selecting lines.</p></li>
-<li><p>Empty line effect given while selecting empty line.</p></li>
-<li><p>Pop-up open effect given with touch down after selecting.</p></li>
-<li><p>Sensitive list effect given when user touches down Copy §QTN_STYLUS_POPUP_COPY</p></li>
-</ul> </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4C0590C6-11D5-494F-B985-A9D651A1D4E8" xml:lang="en"><title>Text
+views</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The scrolling indicators are used to provide information about possible
+browsing directions (up and down) and position inside the document. Refer
+to  <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref> for
+more information on scrolling.</p>
+<p>Applications can choose to allow selecting text from viewers. This works
+in any text selection with touch, touch down, move, and touch release over
+a block of text. Touch release event launches stylus pop-up menu with copied
+text being displayed.</p>
+<p>Tactile: <ul>
+<li><p>Sensitive edit is provided with touch down event. </p></li>
+<li><p>Text edit effect is given while selecting letters. </p></li>
+<li><p>Blank edit effect given while selecting blank space.</p></li>
+<li><p>Line edit given while selecting lines.</p></li>
+<li><p>Empty line effect given while selecting empty line.</p></li>
+<li><p>Pop-up open effect given with touch down after selecting.</p></li>
+<li><p>Sensitive list effect given when user touches down copy.</p></li>
+</ul> </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e3498_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e4773_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e40663_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e46220_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-4C9C236D-71A7-5A5D-8C1C-F574DA604AF6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4C9C236D-71A7-5A5D-8C1C-F574DA604AF6" xml:lang="en"><title> Asymmetric
+ciphers -- HowTo</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-CBD15CF0-5E62-5446-847E-9E7E0EB1A25E"><title> How do I use
+the asymmetric cryptographic framework? </title> <p>The asymmetric cryptographic
+framework consists of the following logically separate concepts: </p> <ol id="GUID-DC7D223E-57B3-5F96-8487-99F9A5A6CB68">
+<li id="GUID-DD6E517D-6ABE-5BED-A12C-7F4807B493E1"><p>Key storage classes
+(For instance, <xref href="GUID-5EF9067A-713F-3934-A29E-62F1414D9EF4.dita"><apiname>CRSAPublicKey</apiname></xref>, <xref href="GUID-2A19BF6D-D333-349B-9F2F-76E2F28A7044.dita"><apiname>CDSAPrivateKey</apiname></xref>) </p> </li>
+<li id="GUID-29151A18-EDC2-546C-A44F-3C746B016EDC"><p>Cipher transformation
+classes (<xref href="GUID-F845CB30-7ABE-3EB6-B1B9-C72581897D0C.dita"><apiname>CRSAPKCS1v15Encryptor</apiname></xref>, <xref href="GUID-13B5CDC3-CB8A-34C7-ADD2-FAE6D6915412.dita"><apiname>CDSASigner</apiname></xref>) </p> </li>
+<li id="GUID-8E9E241C-5464-5AB7-BD51-59C75218C3EF"><p>Signature representative
+classes (<xref href="GUID-27876B1C-C1A7-39C2-9266-0D42A86300B4.dita"><apiname>CRSASignature</apiname></xref>, <xref href="GUID-83C9D319-CC1B-355D-85EF-D58C42ABCCCA.dita"><apiname>CDSASignature</apiname></xref>) </p> </li>
+</ol> <p>The first and third are simply containers for their respective concepts.
+Each implementation of item two is responsible for performing one of the four
+primitive operations on some data using a key specified at construction. If
+the operation is signing or verification, then the transformation outputs
+a signature representative class. On the other hand, in the case of encryption
+or decryption, input and output consist of binary descriptor data. </p> <p>Before
+showing some example code, an important note about object ownership. In general,
+unless otherwise stated, the following three rules apply. </p> <ol id="GUID-FFBF1C61-CEB0-573E-9003-86BC4F37319B">
+<li id="GUID-60A066D8-C525-510D-8502-D6FF245D2B78"><p>All key storage and
+signature representative constructors <b>take ownership</b> of objects given
+to them (typically <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> s). </p> </li>
+<li id="GUID-E13072F8-7B6A-547F-80A8-AFC1D198C3E8"><p>All cipher transformation
+classes <b>only use</b> objects given to them (typically key storage classes,
+signature representatives, and descriptors). </p> </li>
+<li id="GUID-B4611B8A-F4D5-5209-A9B7-7B9CC237D64E"><p>Any functions that return
+pointers to objects (typically the Signer classes) <b>transfer ownership</b> of
+the returned object to the caller. </p> </li>
+</ol> <p id="GUID-EE3679E5-FE32-5C72-9EDB-B202A1C4E7FB"><b>Sample
+code for encryption/decryption</b> </p> <p>The following code illustrates
+how to encrypt data using an RSA PKCS#1 v1.5 encryptor. It assumes you already
+have access to the <xref href="GUID-5EF9067A-713F-3934-A29E-62F1414D9EF4.dita"><apiname>CRSAPublicKey</apiname></xref> you wish to encrypt to. </p> <codeblock id="GUID-A2B3F20C-3437-5F04-BC97-A1A53AF2940D" xml:space="preserve">
+CRSAPKCS1v15Encryptor* encryptor = CRSAPKCS1v15Encryptor::NewLC(rsaPublicKey);
+//As per rules described above, encryptor does not own rsaPublicKey
+HBufC8* encryptedMessage = HBufC8::NewLC(encryptor-&gt;MaxOutputLength());
+encryptor-&gt;EncryptL(messageToEncrypt, *encryptedMessage);
+CleanupStack::Pop(encryptedMessage);
+CleanupStack::PopAndDestroy(encryptor); 
+</codeblock> <p>To subsequently decrypt, again presuming access to a <xref href="GUID-53CFA8FB-1C29-3C4F-B72E-15E13B26E00F.dita"><apiname>CRSAPrivateKey</apiname></xref>. </p> <codeblock id="GUID-E822E9A2-B457-5A4E-BF7C-0A19BD0D078A" xml:space="preserve">
+CRSAPKCS1v15Decryptor* decryptor = CRSAPKCS1v15Decryptor::NewLC(rsaPrivateKey);
+//As per rules described above, decryptor does not own rsaPrivateKey
+HBufC8* decryptedMessage = HBufC8::NewLC(decryptor-&gt;MaxOutputLength());
+encryptor-&gt;EncryptL(*decryptedMessage, *encryptedMessage);
+CleanupStack::Pop(decryptedMessage);
+CleanupStack::PopAndDestroy(decryptor); 
+</codeblock> <p id="GUID-F6919BBF-8CAD-5CA6-8DA0-5836F6DE63B1"><b>Sample code
+for signing/verifying</b> </p> <p>All implemented signature systems (both
+signing and verifying) do not perform any manipulation of the input message
+prior to performing their internal signing mechanism. For instance, both <xref href="GUID-2EA351B3-155D-3B44-80FC-6F6827A52AEA.dita"><apiname>CRSAPKCS1v15Signer</apiname></xref> and <xref href="GUID-13B5CDC3-CB8A-34C7-ADD2-FAE6D6915412.dita"><apiname>CDSASigner</apiname></xref> do
+not hash the data to be signed prior to signing it. Some people refer to this
+as a "raw sign primitive". The decision to operate this way was taken because
+large numbers of higher level standards dictate different ways for the data
+to be hashed prior to signing (and similarly for verification) and accomadating
+all of them significantly confused the api. Instead it is suggested a class
+that handles specification specific (for example, RSA signatures for TLS or
+X.509), pre-signing transformation is created. Upon calling a <codeph>Final()</codeph> -like
+call on such a class, it shall return a descriptor that can be "raw signed"
+by the implemented signing primitives. </p> <p>The following code illustrates
+how to DSA sign an unhashed descriptor, <codeph>messageToBeSigned</codeph> given
+a <xref href="GUID-2A19BF6D-D333-349B-9F2F-76E2F28A7044.dita"><apiname>CDSAPrivateKey</apiname></xref>. In this case, the pre-signing transformation
+required by the DSA is simply a SHA-1 hash. As a result, <codeph>CSHA1</codeph> is
+used as the specification specific, pre-signing transformation class. </p> <codeblock id="GUID-28326A2B-C312-506A-9AC2-C77936EF4A58" xml:space="preserve">
+CDSASigner* signer = CDSASigner::NewLC(dsaPrivateKey);
+//As per rules described above, signer does not own dsaPrivateKey
+CSHA1* sha1 = CSHA1::NewLC();
+CDSASignature* signature = signer-&gt;SignL(sha1-&gt;Final(messageToBeSigned));
+//Caller owns signature as per rules described above.
+CleanupStack::PopAndDestroy(2, signer); //sha1, signer
+CleanupStack::PushL(signature);
+</codeblock> <p>To subsequently verify given a <xref href="GUID-BBB5FEE0-368B-32D8-A30F-CFF4FACBE29A.dita"><apiname>CDSAPublicKey</apiname></xref> and
+a <xref href="GUID-83C9D319-CC1B-355D-85EF-D58C42ABCCCA.dita"><apiname>CDSASignature</apiname></xref>: </p> <codeblock id="GUID-59919AAE-C2B0-5207-8FE2-03A9D7F287AD" xml:space="preserve">
+CDSAVerifier* verifier = CDSAVerifier::NewLC(dsaPublicKey);
+//As per rules described above, verifier does not own dsaPublicKey
+CSHA1* sha1 = CSHA1::NewLC();
+TBool result = verifier-&gt;VerifyL(sha1-&gt;Final(messageToBeVerified), *signature);
+CleanupStack::PopAndDestroy(2, verifier); //sha1, verifier
+</codeblock> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,66 +1,66 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C" xml:lang="en"><title>Open
-C libz Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The example demonstrates how to use the libz library to compress a file
-and decompress it. The library can compress and decompress any kind of file
-(txt, doc, xls, xml, mpeg, ppt, mp3 etc). </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-12-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.zip" scope="external"> openclibz.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-12-1-2-3"><title>Design and
-Implementation</title> <p>The following sections provide more information
-about the steps that the example performs. </p> <p><b>Capabilities</b> </p>Program
-capabilities are defined in <filepath>openclibz.mmp</filepath>: <codeph>CAPABILITY
-None</codeph><p><b>Implementation details of EXE</b> </p>This example is a
-console based application. This application can be launched from the icon
-(openclibz) in installed folder and also from eshell.  When we launch it through
-icon it prompts the user to enter the mode to process. The strategy parameter
-is used to select the compression algorithm. For compressing a file, it reads
-the file and then compresses it using the API of the libz library and then
-stores the compressed content in a (.gz) file. If you want to decompress,
-type d.  For decompressing a file, it opens the compressed (.gz) file using
-libz API's  and then reads the content and decompresses it . To check what
-happens to the content of the string after compression then type s. Enter
-the string you want and see the data in compressed format .   This option
-is to demonstrate compression of string using libz API's.<p>To run this application
-through eshell: </p><p><codeblock xml:space="preserve"> Usage :  openclibz [-d] [-f] [-h] [-r] [-1 to -9] [files...]
-   -d : decompress
-   -f : compress with Z_FILTERED
-   -h : compress with Huffman encoding
-   -r : compress with run-length encoding
-   -1 to -9 : compression level
-   files : absolute path of files
-</codeblock></p><p><b>Some usage tips</b></p><p>Once you choose compression
-process, enter the file name. You should provide absolute path of the file
-you want to compress.  <filepath>(drive letter):\[(folder name)\]filename</filepath>.
-  To get : on phone you have to press 1 few times.  To get on phone you have
-to press 1 few times.  To get on emulator is bit tricky. If you are lucky
-then pressing 1 will get it for you, otherwise change the mode. using "\ BUTTON"
-(Just above the enter button in the keyboard) and then try pressing 1.  To
-press enter on phone we are supposed to press 0 four times. </p><p><b>Cross
-platform usage</b></p><p>We can compress the file on any platform and uncompress
-it on any other platform.  For example Unix's gzip files can be compressed
-using the example application and decompressed using Unix's gunzip.   Compression
-can be done in a single step, if the buffers are large enough; or compression
-can be done by repeated calls of the compression function. In the second scenario,
-application must provide more input and consume the output (providing more
-output space) before each call. </p></section>
-<section id="GUID-D72E3F44-9925-456B-9B1D-FBCBAC2548DA"><b>APIs Used</b><p><codeph>compress</codeph>, <codeph>uncompress</codeph>, <codeph>gzopen</codeph>, <codeph>gzclose</codeph>, <codeph>gzread</codeph>, <codeph>gzwrite</codeph>, <codeph>gzerror</codeph> from
-libz library</p><p> <codeph>fopen</codeph>, <codeph>fclose</codeph>, <codeph>fread</codeph>, <codeph>fwrite</codeph>, <codeph>mmap</codeph>, <codeph>munmap</codeph>, <codeph>fstat</codeph>, <codeph>unlink</codeph>, <codeph>printf</codeph>, <codeph>scanf</codeph> from
-libc library </p></section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-12-1-2-5"><title>Building and
-Using</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
-build process</xref> describes how to build this example application. </p> To
-build the example application, go to the openclibz\group directory and build
-the application.  The definition for the whole application can be found in
-the bld.inf file in the group subdirectory of the applications main directory. </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C" xml:lang="en"><title>Open
+C libz Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The example demonstrates how to use the libz library to compress a file
+and decompress it. The library can compress and decompress any kind of file
+(txt, doc, xls, xml, mpeg, ppt, mp3 etc). </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-11-1-2-2"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.zip" scope="external"> openclibz.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-11-1-2-3"><title>Design and
+Implementation</title> <p>The following sections provide more information
+about the steps that the example performs. </p> <p><b>Capabilities</b> </p>Program
+capabilities are defined in <filepath>openclibz.mmp</filepath>: <codeph>CAPABILITY
+None</codeph><p><b>Implementation details of EXE</b> </p>This example is a
+console based application. This application can be launched from the icon
+(openclibz) in installed folder and also from eshell.  When we launch it through
+icon it prompts the user to enter the mode to process. The strategy parameter
+is used to select the compression algorithm. For compressing a file, it reads
+the file and then compresses it using the API of the libz library and then
+stores the compressed content in a (.gz) file. If you want to decompress,
+type d.  For decompressing a file, it opens the compressed (.gz) file using
+libz API's  and then reads the content and decompresses it . To check what
+happens to the content of the string after compression then type s. Enter
+the string you want and see the data in compressed format .   This option
+is to demonstrate compression of string using libz API's.<p>To run this application
+through eshell: </p><p><codeblock xml:space="preserve"> Usage :  openclibz [-d] [-f] [-h] [-r] [-1 to -9] [files...]
+   -d : decompress
+   -f : compress with Z_FILTERED
+   -h : compress with Huffman encoding
+   -r : compress with run-length encoding
+   -1 to -9 : compression level
+   files : absolute path of files
+</codeblock></p><p><b>Some usage tips</b></p><p>Once you choose compression
+process, enter the file name. You should provide absolute path of the file
+you want to compress.  <filepath>(drive letter):\[(folder name)\]filename</filepath>.
+  To get : on phone you have to press 1 few times.  To get on phone you have
+to press 1 few times.  To get on emulator is bit tricky. If you are lucky
+then pressing 1 will get it for you, otherwise change the mode. using "\ BUTTON"
+(Just above the enter button in the keyboard) and then try pressing 1.  To
+press enter on phone we are supposed to press 0 four times. </p><p><b>Cross
+platform usage</b></p><p>We can compress the file on any platform and uncompress
+it on any other platform.  For example Unix's gzip files can be compressed
+using the example application and decompressed using Unix's gunzip.   Compression
+can be done in a single step, if the buffers are large enough; or compression
+can be done by repeated calls of the compression function. In the second scenario,
+application must provide more input and consume the output (providing more
+output space) before each call. </p></section>
+<section id="GUID-D72E3F44-9925-456B-9B1D-FBCBAC2548DA"><b>APIs Used</b><p><codeph>compress</codeph>, <codeph>uncompress</codeph>, <codeph>gzopen</codeph>, <codeph>gzclose</codeph>, <codeph>gzread</codeph>, <codeph>gzwrite</codeph>, <codeph>gzerror</codeph> from
+libz library</p><p> <codeph>fopen</codeph>, <codeph>fclose</codeph>, <codeph>fread</codeph>, <codeph>fwrite</codeph>, <codeph>mmap</codeph>, <codeph>munmap</codeph>, <codeph>fstat</codeph>, <codeph>unlink</codeph>, <codeph>printf</codeph>, <codeph>scanf</codeph> from
+libc library </p></section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-11-1-2-5"><title>Building and
+Using</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this example application. </p> To
+build the example application, go to the openclibz\group directory and build
+the application.  The definition for the whole application can be found in
+the bld.inf file in the group subdirectory of the applications main directory. </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442" xml:lang="en"><title>Quick
-Start</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Messaging Middleware module provides application-level APIs to handle
-the storage and transport of different type of messages. The message types
-that are currently supported are email (POP3, IMAP4 and SMTP), SMS, BIO and
-OBEX messages. </p>
-<section id="GUID-A61CB959-EF05-49DA-BEEB-E88CC2F78302"><title>Getting started with Messaging Middleware</title> <p>Messaging
-Middleware provides APIs to build highly-featured message client applications
-to manipulate messages in Message Store and to enable storage of messages
-in the Message Store. It also provides support for creating plug-ins to handle
-individual messaging protocols. </p> </section>
-<section id="GUID-46E6E94B-F973-477A-905D-2EA80C81624B"><title>Architecture</title> <p>The Messaging Middleware architecture
-comprises of many components to form the Messaging Framework. The framework
-provides plug-ins (polymorphic MTMs) to manage different type of messages.
-The set of components that make up a plug-in module is called an Message Type
-Module (MTM). All interactions with lower-level communication protocols, such
-as, TCP/IP, are performed by MTMs. The Messaging Framework provides APIs to
-enable storage of messages in the Message Store. It also provides APIs to
-manipulate messages in the Message Store.</p><fig id="GUID-79BA59FD-0DC0-45FF-8882-1E4CB08F5A2C">
-<image href="GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e279739_href.jpg" placement="inline"/>
-</fig></section>
-<section id="GUID-785B1C63-F749-4D9F-AF08-A38C66DBE4DA"><title>Documentation and examples</title><p>The following sections
-list tutorials and example applications that can be referred while creating
-messaging applications:</p><ul>
-<li><xref href="GUID-734582DF-DC6B-51AD-BB93-3A17FF02BEC4.dita">Message Server
-and Store Configuration Tutorial</xref></li>
-<li><xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">MTM Implementation
-Tutorial</xref></li>
-<li><xref href="GUID-2F9BCBC4-A657-5B16-824E-5E96DA22AD00.dita">Search-Sort Tutorial</xref></li>
-<li><xref href="GUID-1963A487-D6A7-4225-8D0C-EC5FAB746854.dita">Attachment Tutorial</xref></li>
-</ul></section>
-</conbody><related-links>
-<link href="GUID-C1F71368-E35A-512D-A9DF-F81491F35E62.dita"><linktext>Messaging
-Middleware Concepts</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442" xml:lang="en"><title>Quick
+Start</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Messaging Middleware module provides application-level APIs to handle
+the storage and transport of different type of messages. The message types
+that are currently supported are email (POP3, IMAP4 and SMTP), SMS, BIO and
+OBEX messages. </p>
+<section id="GUID-A61CB959-EF05-49DA-BEEB-E88CC2F78302"><title>Getting started with Messaging Middleware</title> <p>Messaging
+Middleware provides APIs to build highly-featured message client applications
+to manipulate messages in Message Store and to enable storage of messages
+in the Message Store. It also provides support for creating plug-ins to handle
+individual messaging protocols. </p> </section>
+<section id="GUID-46E6E94B-F973-477A-905D-2EA80C81624B"><title>Architecture</title> <p>The Messaging Middleware architecture
+comprises of many components to form the Messaging Framework. The framework
+provides plug-ins (polymorphic MTMs) to manage different type of messages.
+The set of components that make up a plug-in module is called an Message Type
+Module (MTM). All interactions with lower-level communication protocols, such
+as, TCP/IP, are performed by MTMs. The Messaging Framework provides APIs to
+enable storage of messages in the Message Store. It also provides APIs to
+manipulate messages in the Message Store.</p><fig id="GUID-79BA59FD-0DC0-45FF-8882-1E4CB08F5A2C">
+<image href="GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e276053_href.jpg" placement="inline"/>
+</fig></section>
+<section id="GUID-785B1C63-F749-4D9F-AF08-A38C66DBE4DA"><title>Documentation and examples</title><p>The following sections
+list tutorials and example applications that can be referred while creating
+messaging applications:</p><ul>
+<li><xref href="GUID-734582DF-DC6B-51AD-BB93-3A17FF02BEC4.dita">Message Server
+and Store Configuration Tutorial</xref></li>
+<li><xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">MTM Implementation
+Tutorial</xref></li>
+<li><xref href="GUID-2F9BCBC4-A657-5B16-824E-5E96DA22AD00.dita">Search-Sort Tutorial</xref></li>
+<li><xref href="GUID-1963A487-D6A7-4225-8D0C-EC5FAB746854.dita">Attachment Tutorial</xref></li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-C1F71368-E35A-512D-A9DF-F81491F35E62.dita"><linktext>Messaging
+Middleware Concepts</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e201428_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4CFFD28E-25B5-5B3F-859F-DF8ADC1DC029_d0e206436_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4D6C478A-33BA-4D74-9B82-7133ABFFB0D2_d0e67039_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-4D92E302-3145-4453-AFA1-F5C5BDF933F9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4D92E302-3145-4453-AFA1-F5C5BDF933F9" xml:lang="en"><title>Compatibility Breaks</title><shortdesc>All binary and source compatibility breaks in Symbian^3
+SDK are listed with supporting information on handling these breaks.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following table summarizes the binary and source compatibility
+breaks:</p>
+<table id="GUID-1A133A2D-D803-4026-AF28-4A96DB25F42B-GENID-1-6-1-1-6-1-6-1-3-2">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.34*"/><colspec colname="col2" colwidth="1.66*"/>
+<thead>
+<row>
+<entry>APIs/Header files/Libraries</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry><xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-F948E0A6-DC1A-3FCD-A391-0FEE0F673D36"><apiname>RSocket::SendTo()</apiname></xref> and <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-876863C1-E691-3C3F-9CFB-9597B577509E"><apiname>RSocket::RecvFrom()</apiname></xref></entry>
+<entry>In earlier Symbian platform releases, if an application attempts <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-F948E0A6-DC1A-3FCD-A391-0FEE0F673D36"><apiname>RSocket::SendTo()</apiname></xref> and <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-876863C1-E691-3C3F-9CFB-9597B577509E"><apiname>RSocket::RecvFrom()</apiname></xref> operations on a UDP socket when the connection is closed, the socket
+would start a new connection. This behavior has changed from Symbian^3
+onwards, and such an operation will return KErrTimedOut or KErrInet6NoRoute
+to indicate that the connection has been closed.</entry>
+</row>
+<row>
+<entry>Libc write()</entry>
+<entry>Symbian^3 supports POSIX signals which allows standard C applications
+to handle interrupts (hardware and software signals/events). The existing
+standard C applications are not affected by this change, unless they
+are recompiled against the updated libraries. Once the applications
+are recompiled, they will receive a SIGPIPE signal when they try to
+write to a broken pipe. Unless this signal is handled or is ignored
+using signore() method, the application terminates. For more information
+on handling POSIX signals on Symbian platform, refer to <xref href="GUID-41F33130-7968-5016-9ACE-9E9F906118DB.dita">Using POSIX Signals</xref>.</entry>
+</row>
+<row>
+<entry><xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita#GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF/GUID-A521B983-4932-35AA-8741-F2B813754F27"><apiname>CBitmapFont::OpenFont()</apiname></xref> and <xref href="GUID-039375D3-AFD9-3E31-9C1C-ACEDC10E27CE.dita"><apiname>COpenFont</apiname></xref></entry>
+<entry>The Flexible Memory Model in Symbian^3 does not provide access
+to the Open Font data in Font Bitmap Server global chunk. Rebuild
+the application binary on Symbian^3 to get access to the Open Font
+data.</entry>
+</row>
+<row>
+<entry><xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref></entry>
+<entry>The overloaded <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> method that
+is meant for opening a socket without associating it with an <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> object explicitly is called the default connection
+scenario. This scenario is not supported from Sybmian^3 onwards, so
+all code depending on default connection scenario has to be migrated
+to explicit or implicit connection scenario. For more information
+on explicit and implicit connection scenarios, refer to <xref href="GUID-722180B8-0032-5C3F-AEB2-A9B1261450D8.dita">Starting a Socket
+Server connection: Tutorial</xref>.</entry>
+</row>
+<row>
+<entry><xref href="GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE.dita#GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE/GUID-00E43DC1-9543-3C35-BDEF-539332E4311F"><apiname>CRemoteGc::SetDrawMode()</apiname></xref> and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-D8D35F8C-B5BB-338D-AD78-AF21BCD23D80"><apiname>CWindowGc::SetDrawMode()</apiname></xref></entry>
+<entry>These two APIs will not support the following draw modes:<ul>
+<li><p>EDrawModeAND</p></li>
+<li><p>EDrawModeNOTAND</p></li>
+<li><p>EDrawModeANDNOT</p></li>
+<li><p>EDrawModeXOR</p></li>
+<li><p>EDrawModeOR</p></li>
+<li><p>EDrawModeNOTANDNOT</p></li>
+<li><p>EDrawModeNOTXOR</p></li>
+<li><p>EDrawModeNOTSCREEN</p></li>
+<li><p>EDrawModeNOTOR</p></li>
+<li><p>EDrawModeNOTPEN</p></li>
+<li><p>EDrawModeORNOT</p></li>
+<li><p>EDrawModeNOTORNOT</p></li>
+</ul>These two Graphics Context classes (<xref href="GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE.dita"><apiname>CRemoteGc</apiname></xref> and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>) will support EDrawModePEN and
+EDrawModeWriteAlpha only. To use any of the draw modes listed earlier,
+use <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita#GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2/GUID-6E1C396C-1450-3A96-8592-89D196C1FB37"><apiname>CFbsBitGc::SetDrawMode()</apiname></xref> and render their window
+content into an off-screen bitmap, and use <xref href="GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE.dita"><apiname>CRemoteGc</apiname></xref> to draw the bitmap to the screen.</entry>
+</row>
+<row>
+<entry><xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref>, <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>, <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref>, <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>, and <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>.</entry>
+<entry>In earlier Symbian platform releases, an attempt to record
+or play an audio file without setting the volume and gain values (using
+SetVolume() and SetGain()) would result in silence. This behavior
+has changed from Symbian^3 onwards, where an audio file can be played
+or recorded without having to set the volume and gain values. With
+this change, all applications using these APIs must be rebuilt on
+Symbian^3.</entry>
+</row>
+<row>
+<entry><xref href="GUID-38301A39-3752-3345-91B9-D0EED11F194B.dita#GUID-38301A39-3752-3345-91B9-D0EED11F194B/GUID-4271E73B-817F-30F0-9A39-D9F2A5B16F31"><apiname>CGraphicsContext::DrawTextExtended(classTDesC16const&amp;,
+classCGraphicsContext::TTextParametersconst*, classTPointconst&amp;,
+structCGraphicsContext::TDrawTextExtendedParamconst&amp;)</apiname></xref></entry>
+<entry>The ordinal position for this API has changed. Rebuild all
+the applications using this API.</entry>
+</row>
+<row>
+<entry><xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-A61D694F-FDC7-369A-947C-7AD8A340768A"><apiname>CWsScreenDevice::SetPalette()</apiname></xref>, <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-41C7C9DB-BE16-3473-8B28-F452728C288E"><apiname>CWsScreenDevice::PaletteAttributes()</apiname></xref>, and <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-C51950BE-3E3A-3CB7-B986-6C2BC6B11FCB"><apiname>CWsScreenDevice::GetPalette()</apiname></xref>.</entry>
+<entry>These APIs are not supported. All calls to these
+APIs will return KErrNotSupported. If the existing applications using
+these APIs check for KErrNotSupported error, will continue to work
+without any change. All other applications must be modified and rebuilt.</entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e108913_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e115451_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e276358_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e280044_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e192678_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e197686_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-3-1-1-7-1-7-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-3-1-1-7-1-7-1-6-1" xml:lang="en"><title>The
-control environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The control environment packages the interface to the window server and
-provides an environment for creating controls. It is implemented in a single
-class, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>, which encapsulates active objects and an
-active scheduler for receiving events from the window server. Each application
-has exactly one <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> object which is stored in Thread
-Local Storage (TLS). </p>
-<p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> also provides a number of utilities which are
-useful to most applications. These utilities include: </p>
-<ul>
-<li id="GUID-E6CC6A2A-2B44-586F-B0B3-5CC8E2862490-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-3-1"><p>creating a graphics
-context, the <keyword>system graphics context</keyword>. This is the standard
-graphics context which is normally used for drawing controls. It may be accessed
-using <codeph>CCoeEnv::SystemGc()</codeph>  but controls should get their
-graphics context using <codeph>CCoeControl::SystemGc()</codeph> rather than
-directly from the environment.  </p> </li>
-<li id="GUID-7BDF28EF-D209-51E6-B07E-4DB65045D2FE-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-3-2"><p>access to the <keyword>window
-server session</keyword>  </p> </li>
-<li id="GUID-028E7FCF-255D-5C82-8100-EDF4F2FCD3B1-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-3-3"><p>utilities for using
-fonts </p> </li>
-<li id="GUID-4CE27203-A304-57C9-BA08-CE523F61582A-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-3-4"><p>utilities for reading
-resource values from <keyword>resource files</keyword>  </p> </li>
-<li id="GUID-2875D169-00F7-5C33-AEF7-4C8BB41B74EE-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-3-5"><p>Support for singleton
-(static) objects </p> </li>
-</ul>
-<section id="GUID-C049C06F-8668-44C3-B162-7675CB00515A-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-4"><title>Resource readers and resource files</title> <p> <codeph>CCoeEnv</codeph> maintains
-a list of the resource files used by the application. Files may be added to
-the list using <codeph>AddResourceFileL()</codeph> and removed using <codeph>DeleteResourceFile()</codeph>. </p> <p>The
-utility functions provided by the control environment read resources and resource
-data from the resource files in its list. </p> <p>A resource file consists
-of a list of resources, each identified by a resource ID. Each resource consists
-of a list of resource values in the form of binary data. The order and lengths
-of the values for each resource type are defined in a resource definition
-(generally stored in a file with an <filepath>.rh</filepath> extension). </p> <p>Reading
-data from a resource file requires two stages: </p> <ul>
-<li id="GUID-ADC4F5E4-5FCA-55FA-AB2A-0B607D9350DD-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-4-6-1"><p>read a resource from
-the resource file into a buffer </p> </li>
-<li id="GUID-84FC56CB-F182-52C5-BFA8-79A51ABC4810-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-4-6-2"><p>read values from the
-resource using a resource reader </p> </li>
-</ul> <p> <codeph>CCoeEnv</codeph> provides utility functions to perform the
-first of these stages and functions to create resource readers. </p> <p>An
-application's default resource file, one which has the same name as the application,
-is loaded automatically. </p> <p>It should be noted that stage two can be
-omitted if the resource contains only one value, or if it is read into a formatted
-buffer. In both of these cases the resource data can be read straight from
-the buffer. </p> </section>
-<section id="GUID-4B579429-B1F4-4B8C-9C78-359D2B568303-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-5"><title>Singletons - CCoeStatic</title> <p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> base
-class is closely associated with <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. Between them
-they allow singleton objects to be created and stored in Thread Local Storage
-(TLS). By doing so they provide an equivalent to writeable global static data. </p> <p>Classes
-derived from <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> are automatically added to the
-environment when they are instantiated for the first time. Subsequent attempts
-to instantiate an object of the same type will result in a panic (with error
-code <codeph>ECoePanicDuplicateObjectUid</codeph>). </p> <p>Each singleton
-requires a UID and may be given a destruction priority (relative to other
-singletons and the AppUi) and a scope (<codeph>EThread</codeph> or <codeph>EApp</codeph>). </p> <p>Once
-a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p> <codeblock id="GUID-99260739-1E0F-5032-989E-B1D8607ABE2C-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-5-6" xml:space="preserve">// Singleton access
-IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
-IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock> <p> <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> has
-no public functions. </p> </section>
-<section id="GUID-097FE0A7-2221-46DE-804D-5E25E85F6F96-GENID-1-8-1-3-1-1-7-1-7-1-6-1-2-6"><title>See also</title> <p> <xref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita">How
-to create a Singleton</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1" xml:lang="en"><title>The
-control environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The control environment packages the interface to the window server and
-provides an environment for creating controls. It is implemented in a single
-class, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>, which encapsulates active objects and an
-active scheduler for receiving events from the window server. Each application
-has exactly one <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> object which is stored in Thread
-Local Storage (TLS). </p>
-<p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> also provides a number of utilities which are
-useful to most applications. These utilities include: </p>
-<ul>
-<li id="GUID-E6CC6A2A-2B44-586F-B0B3-5CC8E2862490-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-3-1"><p>creating a graphics
-context, the <keyword>system graphics context</keyword>. This is the standard
-graphics context which is normally used for drawing controls. It may be accessed
-using <codeph>CCoeEnv::SystemGc()</codeph>  but controls should get their
-graphics context using <codeph>CCoeControl::SystemGc()</codeph> rather than
-directly from the environment.  </p> </li>
-<li id="GUID-7BDF28EF-D209-51E6-B07E-4DB65045D2FE-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-3-2"><p>access to the <keyword>window
-server session</keyword>  </p> </li>
-<li id="GUID-028E7FCF-255D-5C82-8100-EDF4F2FCD3B1-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-3-3"><p>utilities for using
-fonts </p> </li>
-<li id="GUID-4CE27203-A304-57C9-BA08-CE523F61582A-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-3-4"><p>utilities for reading
-resource values from <keyword>resource files</keyword>  </p> </li>
-<li id="GUID-2875D169-00F7-5C33-AEF7-4C8BB41B74EE-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-3-5"><p>Support for singleton
-(static) objects </p> </li>
-</ul>
-<section id="GUID-C049C06F-8668-44C3-B162-7675CB00515A-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-4"><title>Resource readers and resource files</title> <p> <codeph>CCoeEnv</codeph> maintains
-a list of the resource files used by the application. Files may be added to
-the list using <codeph>AddResourceFileL()</codeph> and removed using <codeph>DeleteResourceFile()</codeph>. </p> <p>The
-utility functions provided by the control environment read resources and resource
-data from the resource files in its list. </p> <p>A resource file consists
-of a list of resources, each identified by a resource ID. Each resource consists
-of a list of resource values in the form of binary data. The order and lengths
-of the values for each resource type are defined in a resource definition
-(generally stored in a file with an <filepath>.rh</filepath> extension). </p> <p>Reading
-data from a resource file requires two stages: </p> <ul>
-<li id="GUID-ADC4F5E4-5FCA-55FA-AB2A-0B607D9350DD-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-4-6-1"><p>read a resource from
-the resource file into a buffer </p> </li>
-<li id="GUID-84FC56CB-F182-52C5-BFA8-79A51ABC4810-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-4-6-2"><p>read values from the
-resource using a resource reader </p> </li>
-</ul> <p> <codeph>CCoeEnv</codeph> provides utility functions to perform the
-first of these stages and functions to create resource readers. </p> <p>An
-application's default resource file, one which has the same name as the application,
-is loaded automatically. </p> <p>It should be noted that stage two can be
-omitted if the resource contains only one value, or if it is read into a formatted
-buffer. In both of these cases the resource data can be read straight from
-the buffer. </p> </section>
-<section id="GUID-4B579429-B1F4-4B8C-9C78-359D2B568303-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-5"><title>Singletons - CCoeStatic</title> <p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> base
-class is closely associated with <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. Between them
-they allow singleton objects to be created and stored in Thread Local Storage
-(TLS). By doing so they provide an equivalent to writeable global static data. </p> <p>Classes
-derived from <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> are automatically added to the
-environment when they are instantiated for the first time. Subsequent attempts
-to instantiate an object of the same type will result in a panic (with error
-code <codeph>ECoePanicDuplicateObjectUid</codeph>). </p> <p>Each singleton
-requires a UID and may be given a destruction priority (relative to other
-singletons and the AppUi) and a scope (<codeph>EThread</codeph> or <codeph>EApp</codeph>). </p> <p>Once
-a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p> <codeblock id="GUID-99260739-1E0F-5032-989E-B1D8607ABE2C-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-5-6" xml:space="preserve">// Singleton access
-IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
-IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock> <p> <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> has
-no public functions. </p> </section>
-<section id="GUID-097FE0A7-2221-46DE-804D-5E25E85F6F96-GENID-1-8-1-6-1-1-4-1-6-1-7-1-6-1-2-6"><title>See also</title> <p> <xref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita">How
-to create a Singleton</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-4E985144-C4E6-5114-B88F-B9C92F313D91.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4E985144-C4E6-5114-B88F-B9C92F313D91" xml:lang="en"><title>The
+control environment</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The control environment packages the interface to the window server and
+provides an environment for creating controls. It is implemented in a single
+class, <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>, which encapsulates active objects and an
+active scheduler for receiving events from the window server. Each application
+has exactly one <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> object which is stored in Thread
+Local Storage (TLS). </p>
+<p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> also provides a number of utilities which are
+useful to most applications. These utilities include: </p>
+<ul>
+<li id="GUID-E6CC6A2A-2B44-586F-B0B3-5CC8E2862490"><p>creating a graphics
+context, the <keyword>system graphics context</keyword>. This is the standard
+graphics context which is normally used for drawing controls. It may be accessed
+using <codeph>CCoeEnv::SystemGc()</codeph>  but controls should get their
+graphics context using <codeph>CCoeControl::SystemGc()</codeph> rather than
+directly from the environment.  </p> </li>
+<li id="GUID-7BDF28EF-D209-51E6-B07E-4DB65045D2FE"><p>access to the <keyword>window
+server session</keyword>  </p> </li>
+<li id="GUID-028E7FCF-255D-5C82-8100-EDF4F2FCD3B1"><p>utilities for using
+fonts </p> </li>
+<li id="GUID-4CE27203-A304-57C9-BA08-CE523F61582A"><p>utilities for reading
+resource values from <keyword>resource files</keyword>  </p> </li>
+<li id="GUID-2875D169-00F7-5C33-AEF7-4C8BB41B74EE"><p>Support for singleton
+(static) objects </p> </li>
+</ul>
+<section id="GUID-C049C06F-8668-44C3-B162-7675CB00515A"><title>Resource readers and resource files</title> <p> <codeph>CCoeEnv</codeph> maintains
+a list of the resource files used by the application. Files may be added to
+the list using <codeph>AddResourceFileL()</codeph> and removed using <codeph>DeleteResourceFile()</codeph>. </p> <p>The
+utility functions provided by the control environment read resources and resource
+data from the resource files in its list. </p> <p>A resource file consists
+of a list of resources, each identified by a resource ID. Each resource consists
+of a list of resource values in the form of binary data. The order and lengths
+of the values for each resource type are defined in a resource definition
+(generally stored in a file with an <filepath>.rh</filepath> extension). </p> <p>Reading
+data from a resource file requires two stages: </p> <ul>
+<li id="GUID-ADC4F5E4-5FCA-55FA-AB2A-0B607D9350DD"><p>read a resource from
+the resource file into a buffer </p> </li>
+<li id="GUID-84FC56CB-F182-52C5-BFA8-79A51ABC4810"><p>read values from the
+resource using a resource reader </p> </li>
+</ul> <p> <codeph>CCoeEnv</codeph> provides utility functions to perform the
+first of these stages and functions to create resource readers. </p> <p>An
+application's default resource file, one which has the same name as the application,
+is loaded automatically. </p> <p>It should be noted that stage two can be
+omitted if the resource contains only one value, or if it is read into a formatted
+buffer. In both of these cases the resource data can be read straight from
+the buffer. </p> </section>
+<section id="GUID-4B579429-B1F4-4B8C-9C78-359D2B568303"><title>Singletons - CCoeStatic</title> <p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> base
+class is closely associated with <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. Between them
+they allow singleton objects to be created and stored in Thread Local Storage
+(TLS). By doing so they provide an equivalent to writeable global static data. </p> <p>Classes
+derived from <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> are automatically added to the
+environment when they are instantiated for the first time. Subsequent attempts
+to instantiate an object of the same type will result in a panic (with error
+code <codeph>ECoePanicDuplicateObjectUid</codeph>). </p> <p>Each singleton
+requires a UID and may be given a destruction priority (relative to other
+singletons and the AppUi) and a scope (<codeph>EThread</codeph> or <codeph>EApp</codeph>). </p> <p>Once
+a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p> <codeblock id="GUID-99260739-1E0F-5032-989E-B1D8607ABE2C" xml:space="preserve">// Singleton access
+IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
+IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock> <p> <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> has
+no public functions. </p> </section>
+<section id="GUID-097FE0A7-2221-46DE-804D-5E25E85F6F96"><title>See also</title> <p> <xref href="GUID-7250950C-5502-5ACE-864B-0EFD5C253053.dita">How
+to create a Singleton</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74"><title>Handling BLOBs</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to Binary Large Objects (BLOB) in Symbian SQL. </p> <section><title>Purpose</title> <p>A BLOB is an SQL database container object for binary large objects, usually images or audio files but may also include other binary files such as an application executable. </p> </section> <section><title>Features of SQL BLOB</title> <p>BLOBS offer the following features: </p> <ul><li id="GUID-50CE608F-04BA-5D0F-BA59-E608F4B10989"><p>read from and write to BLOB objects in a RAM-efficient manner -- enables an overall reduction of RAM usage, </p> </li> <li id="GUID-60702664-4ABF-5F90-9DDE-C77969C0DC0B"><p>reduced read latency (compared to previous versions) -- improving the responsiveness of client applications, </p> </li> <li id="GUID-72DAFF78-CF0D-50F0-8C29-BF95920D2CA0"><p>larger BLOB objects can be stored and retrieved (&gt;16Mb). Before version 9.5 there was a limit on the size of a BLOB object supported by Symbian SQL. This limit was dictated by the amount of server-side RAM available. Applications that needed to store large BLOB objects in their database (for example, MP3 files) are no longer restricted by this limit. </p> </li> <li id="GUID-D66B611B-8908-59B1-A7BA-BED5D6702509"><p>The maximum possible length for a blob is 2147483647 bytes. </p> </li> </ul> </section> <section><title>Streaming</title> <p>The classes <xref href="GUID-03426E55-3C0A-322B-9CE7-556D63FD762F.dita"><apiname>RSqlBlobReadStream</apiname></xref> and <xref href="GUID-9D7747B6-E090-3450-9906-845B549F966F.dita"><apiname>RSqlBlobWriteStream</apiname></xref> allow direct access to BLOB content. These classes do not require the whole BLOB to be loaded into RAM before streaming can begin. These classes match the standard Symbian <xref href="GUID-81056EAD-722C-373F-A8CF-4CC67A5B4468.dita"><apiname>RReadStream</apiname></xref> /<xref href="GUID-ADAC48A2-3D24-306B-9473-70201F4D351D.dita"><apiname>RWriteStream</apiname></xref> idiom. </p> <p>The server intelligently chooses the size of an internal buffer to incrementally read/write the requested blob data in blocks. The size of the buffer is calculated based on a combination of the size of the request and the value of <codeph>aBlockSizeHint</codeph> (if specified). </p> <p> <codeph>aBlockSizeHint</codeph> is provided by the client to provide a hint to the server about the size of block that it is intending to use to read/write the blob data. This is advance information about the intended behaviour of the client that the server may use to its benefit to read/write the blob data. </p> </section> <section><title>Whole-blob access</title> <p>The class <xref href="GUID-78544D11-1972-3492-9BD7-D794240895E1.dita"><apiname>TSqlBlob</apiname></xref> allows one-shot storage and retrieval of whole blobs. This class avoids the need for double buffering of the blob in both the client and the server. </p> <p>there are two versions of the BLOB get functions. One is <i>non-leaving</i> and the other is <i>leaving</i>. </p> <p>Use the non-leaving variant when the client knows that the blob will either: </p> <ul><li id="GUID-557D1A55-1E94-56F6-8794-1257ED5D2E17"><p>all be of a fixed size, </p> </li> <li id="GUID-7C5CA733-C030-5761-A2C0-5EAA7A3B50FD"><p>not exceed an upper size limit. </p> </li> </ul> <p>In these situations the client can pre-allocate a buffer and avoid the overhead of memory allocation. </p> <p>Use the leaving variant when the client does not have prior knowledge of the BLOB size (or if the size varies wildly). In this situation the server allocates a buffer and passes ownership to the client. </p> </section> <section><title>RAM benefits</title> <p>Symbian SQL has been improved to eliminate the need for a 2 MB server-side buffer. Data is transferred to the client in blocks so for example, the server-side buffer may be reduced to 32 KB. </p> <p>Previous to version 9.5, both whole-blob and streaming use cases require up to 3MB of server-side RAM. The page cache size is capped at 1MB due to a built-in limiting mechanism. But, a 2MB buffer must be allocated to hold the entire blob. A critical side-effect of this is that, due to heap exhaustion, there is a maximum limit on the size of a blob object that can be written to or read from a database. </p> <p>In the following diagram the top two sections illustrate whole-blob retrieval in which the entire blob is retrieved in one go using <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref>. The bottom section illustrates streaming retrieval in which the blob is retrieved in blocks specified by the client using <xref href="GUID-35BF7B4A-C4F7-3215-B5DF-6D0682247976.dita"><apiname>RSqlColumnReadStream</apiname></xref>. </p> <fig id="GUID-60AEFF09-235C-55F3-BBEF-D484964A4A82"><title>
-             Reading a 2MB blob. 
-          </title> <image href="GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e366733_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-5C3005B3-7008-5209-A2BD-D52B8B422D58.dita"><linktext>SQL Security
-                Policies</linktext> </link> <link href="GUID-CB33868A-139C-5976-B021-709E663FA21B.dita"><linktext>Database file
-                format</linktext> </link> <link href="GUID-DA1D327C-141C-524A-AD57-5E246745808D.dita"><linktext>SQLite
-                Modules</linktext> </link> <link href="GUID-A64625D4-F101-5DB7-896B-F91A21BABE01.dita"><linktext>Free Space
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-4EE4E79E-F6D5-5F14-BA8D-4DD10D229B74"><title>Handling BLOBs</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to Binary Large Objects (BLOB) in Symbian SQL. </p> <section><title>Purpose</title> <p>A BLOB is an SQL database container object for binary large objects, usually images or audio files but may also include other binary files such as an application executable. </p> </section> <section><title>Features of SQL BLOB</title> <p>BLOBS offer the following features: </p> <ul><li id="GUID-50CE608F-04BA-5D0F-BA59-E608F4B10989"><p>read from and write to BLOB objects in a RAM-efficient manner -- enables an overall reduction of RAM usage, </p> </li> <li id="GUID-60702664-4ABF-5F90-9DDE-C77969C0DC0B"><p>reduced read latency (compared to previous versions) -- improving the responsiveness of client applications, </p> </li> <li id="GUID-72DAFF78-CF0D-50F0-8C29-BF95920D2CA0"><p>larger BLOB objects can be stored and retrieved (&gt;16Mb). Before version 9.5 there was a limit on the size of a BLOB object supported by Symbian SQL. This limit was dictated by the amount of server-side RAM available. Applications that needed to store large BLOB objects in their database (for example, MP3 files) are no longer restricted by this limit. </p> </li> <li id="GUID-D66B611B-8908-59B1-A7BA-BED5D6702509"><p>The maximum possible length for a blob is 2147483647 bytes. </p> </li> </ul> </section> <section><title>Streaming</title> <p>The classes <xref href="GUID-03426E55-3C0A-322B-9CE7-556D63FD762F.dita"><apiname>RSqlBlobReadStream</apiname></xref> and <xref href="GUID-9D7747B6-E090-3450-9906-845B549F966F.dita"><apiname>RSqlBlobWriteStream</apiname></xref> allow direct access to BLOB content. These classes do not require the whole BLOB to be loaded into RAM before streaming can begin. These classes match the standard Symbian <xref href="GUID-81056EAD-722C-373F-A8CF-4CC67A5B4468.dita"><apiname>RReadStream</apiname></xref> /<xref href="GUID-ADAC48A2-3D24-306B-9473-70201F4D351D.dita"><apiname>RWriteStream</apiname></xref> idiom. </p> <p>The server intelligently chooses the size of an internal buffer to incrementally read/write the requested blob data in blocks. The size of the buffer is calculated based on a combination of the size of the request and the value of <codeph>aBlockSizeHint</codeph> (if specified). </p> <p> <codeph>aBlockSizeHint</codeph> is provided by the client to provide a hint to the server about the size of block that it is intending to use to read/write the blob data. This is advance information about the intended behaviour of the client that the server may use to its benefit to read/write the blob data. </p> </section> <section><title>Whole-blob access</title> <p>The class <xref href="GUID-78544D11-1972-3492-9BD7-D794240895E1.dita"><apiname>TSqlBlob</apiname></xref> allows one-shot storage and retrieval of whole blobs. This class avoids the need for double buffering of the blob in both the client and the server. </p> <p>there are two versions of the BLOB get functions. One is <i>non-leaving</i> and the other is <i>leaving</i>. </p> <p>Use the non-leaving variant when the client knows that the blob will either: </p> <ul><li id="GUID-557D1A55-1E94-56F6-8794-1257ED5D2E17"><p>all be of a fixed size, </p> </li> <li id="GUID-7C5CA733-C030-5761-A2C0-5EAA7A3B50FD"><p>not exceed an upper size limit. </p> </li> </ul> <p>In these situations the client can pre-allocate a buffer and avoid the overhead of memory allocation. </p> <p>Use the leaving variant when the client does not have prior knowledge of the BLOB size (or if the size varies wildly). In this situation the server allocates a buffer and passes ownership to the client. </p> </section> <section><title>RAM benefits</title> <p>Symbian SQL has been improved to eliminate the need for a 2 MB server-side buffer. Data is transferred to the client in blocks so for example, the server-side buffer may be reduced to 32 KB. </p> <p>Previous to version 9.5, both whole-blob and streaming use cases require up to 3MB of server-side RAM. The page cache size is capped at 1MB due to a built-in limiting mechanism. But, a 2MB buffer must be allocated to hold the entire blob. A critical side-effect of this is that, due to heap exhaustion, there is a maximum limit on the size of a blob object that can be written to or read from a database. </p> <p>In the following diagram the top two sections illustrate whole-blob retrieval in which the entire blob is retrieved in one go using <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref>. The bottom section illustrates streaming retrieval in which the blob is retrieved in blocks specified by the client using <xref href="GUID-35BF7B4A-C4F7-3215-B5DF-6D0682247976.dita"><apiname>RSqlColumnReadStream</apiname></xref>. </p> <fig id="GUID-60AEFF09-235C-55F3-BBEF-D484964A4A82"><title>
+             Reading a 2MB blob. 
+          </title> <image href="GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e360653_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-5C3005B3-7008-5209-A2BD-D52B8B422D58.dita"><linktext>SQL Security
+                Policies</linktext> </link> <link href="GUID-CB33868A-139C-5976-B021-709E663FA21B.dita"><linktext>Database file
+                format</linktext> </link> <link href="GUID-DA1D327C-141C-524A-AD57-5E246745808D.dita"><linktext>SQLite
+                Modules</linktext> </link> <link href="GUID-A64625D4-F101-5DB7-896B-F91A21BABE01.dita"><linktext>Free Space
                 Reclaimation</linktext> </link> <link><linktext/></link><link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e306923_href.png has changed
Binary file Symbian3/SDK/Source/GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e313317_href.png has changed
--- a/Symbian3/SDK/Source/GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C" xml:lang="en"><title>UI
-themes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A UI theme is a customized graphical user interface (GUI) that replaces
-the phone's default look, and it is used to change the appearance of the user
-interface for the phone's applications. A phone with the Symbian user interface
-may provide several UI themes of which the user can activate one theme at
-a time. By activating a UI theme, the visual appearance of the user interface
-is changed. Note that this setting only affects visual elements, e.g. functions,
-the interaction style or language settings are not affected.</p>
-<fig id="GUID-017EFFEA-6677-4E9A-A7B1-F69E02C50DE1">
-<title>Simplified illustration of the UI theme concept</title>
-<image href="GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e71755_href.png" scale="40" placement="inline"/>
-</fig>
-<p>UI themes give the UI theme designer a freedom to design a unique GUI,
-and by designing backgrounds and icons, the result can be very different from
-the default settings.</p>
-<p>A good GUI has consistent metaphor. When designing UI themes, the UI theme
-designer should make sure that the user interface supports the user's aim
-and does not mislead the user. It is also good to remember that even though
-the new look and feel offered by a UI theme would be fancy and exciting, the
-general positive user experience will fade if the performance of the terminal
-suffers because of a too large UI theme package file size.</p>
-<p>To ensure a consistent look and feel in all applications, it is recommended
-for the application UI designer to use the UI components that support UI themes.
-In case application uses UI components that the UI theme does not support,
-the factory default of the missing items is used.</p>
-<p>A UI theme designer can decide which elements belong to a UI theme package.
-It is possible to design a UI theme that uses the default UI components of
-the phone together with components belonging to the UI theme.</p>
-<section id="GUID-67D4182F-A8D9-43E0-8866-41A0837F2A30"><title>Using
-UI themes in C++ applications</title><p>The API to use for UI themes is the <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer">Skins API</xref>. For implementation information, see <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html#Skins_API_Specification.topic3" scope="peer">Using the Skins API</xref>.</p><p>The UI controls
-that support themes using the Skins API include:</p><ul>
-<li><p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref>,
-including its sub-panes</p></li>
-<li><p><xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control pane</xref></p></li>
-<li><p><xref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita">Lists and grids</xref></p></li>
-<li><p><xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find pane</xref></p></li>
-<li><p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p></li>
-<li><p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting lists</xref></p></li>
-<li><p><xref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita">Pop-up windows</xref></p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-4FC82562-9163-45F5-9E14-DA0AB6B5E54C" xml:lang="en"><title>UI
+themes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A UI theme is a customized graphical user interface (GUI) that replaces
+the phone's default look, and it is used to change the appearance of the user
+interface for the phone's applications. A phone with the Symbian user interface
+may provide several UI themes of which the user can activate one theme at
+a time. By activating a UI theme, the visual appearance of the user interface
+is changed. Note that this setting only affects visual elements, e.g. functions,
+the interaction style or language settings are not affected.</p>
+<fig id="GUID-017EFFEA-6677-4E9A-A7B1-F69E02C50DE1">
+<title>Simplified illustration of the UI theme concept</title>
+<image href="GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e66511_href.png" scale="40" placement="inline"/>
+</fig>
+<p>UI themes give the UI theme designer a freedom to design a unique GUI,
+and by designing backgrounds and icons, the result can be very different from
+the default settings.</p>
+<p>A good GUI has consistent metaphor. When designing UI themes, the UI theme
+designer should make sure that the user interface supports the user's aim
+and does not mislead the user. It is also good to remember that even though
+the new look and feel offered by a UI theme would be fancy and exciting, the
+general positive user experience will fade if the performance of the terminal
+suffers because of a too large UI theme package file size.</p>
+<p>To ensure a consistent look and feel in all applications, it is recommended
+for the application UI designer to use the UI components that support UI themes.
+In case application uses UI components that the UI theme does not support,
+the factory default of the missing items is used.</p>
+<p>A UI theme designer can decide which elements belong to a UI theme package.
+It is possible to design a UI theme that uses the default UI components of
+the phone together with components belonging to the UI theme.</p>
+<section id="GUID-67D4182F-A8D9-43E0-8866-41A0837F2A30"><title>Using
+UI themes in applications</title><p>The API to use for UI themes
+is the <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer">Skins API</xref>. For implementation information, see <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html#Skins_API_Specification.topic3" scope="peer">Using the Skins API</xref>.</p><p>The UI controls that support
+themes using the Skins API include:</p><ul>
+<li><p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref>,
+including its sub-panes</p></li>
+<li><p><xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control pane</xref></p></li>
+<li><p><xref href="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita">Lists and grids</xref></p></li>
+<li><p><xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find pane</xref></p></li>
+<li><p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p></li>
+<li><p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting lists</xref></p></li>
+<li><p><xref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita">Pop-up windows</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A" xml:lang="en"><title>Reading
-headers in a WSP buffer</title><shortdesc><codeph>TWspField</codeph> object holds the name and value pair
-of the WSP header field. <codeph>TWspHeaderSegmenter</codeph> pulls the header
-/ value pair out of the WSP buffer (into <codeph>TWspField</codeph>). Call <codeph>TWspHeaderSegmenter::NextL()</codeph> to
-iterate through the WSP buffer. It calls <codeph>TWspPrimitiveDecoder</codeph>.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-333175CE-6D40-4F5C-9AD8-122A383CA3EF">       <p><xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref> allows you to encode
-the values and parameters of the header field. It creates one header at a
-time from the name / value pairs.</p>     </prereq>
-<context id="GUID-CAFFF446-43D5-440C-9B32-C3B9A518D2D3">       <p>The following are the steps to encode the WSP header:</p> 
-   </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-6-1-5-1-5-1-9-1-3-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-6-1-5-1-5-1-9-1-3-1-3-3-1"><cmd/>
-<info>Create a header encoder object.</info>
-<stepxmp><codeblock xml:space="preserve">//creates a pointer to CWspHeaderEncoder object
-CWspHeaderEncoder* primEncoder = CWspHeaderEncoder::NewLC();</codeblock></stepxmp>
-</step>
-<step id="GUID-C40D9259-C67F-4DA8-B524-A29E3BE2D0E0"><cmd/>
-<info>Start a new encoded header to encode the parameter value. </info>
-<stepxmp><codeblock xml:space="preserve">// start a new encoded header
-primEncoder-&gt;StartHeaderL(0x27);</codeblock></stepxmp>
-</step>
-<step id="GUID-69650498-F216-4D21-B799-983B89022FA3"><cmd/>
-<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-D35C01C4-10A9-3BED-88F8-695DAC6411B7"><apiname>CWspHeaderEncoder::StartValueLengthL()</apiname></xref> to calculate
-the length of encodings that are added subsequently. The value calculated,
-is stored as part of the encoded string, as specified in the WSP standard. </info>
-<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;StartValueLengthL();</codeblock></stepxmp>
-</step>
-<step id="GUID-4958F0F4-1A49-4E3E-81F5-196DF68F253E"><cmd/>
-<info>Encode the header field and add it to the encoded field. </info>
-<info> <b>Note</b>: The appropriate WSP method is used for encoding the header
-field of a data type such as integer, date, text string and so on. </info>
-<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;AddIntegerL(0x7F);
-primEncoder-&gt;AddUintVarL(0xff);
-primEncoder-&gt;AddLongIntL(999999);
-_LIT8(KString, "WSP Encode: String");
-primEncoder-&gt;AddTextStringL(KString);
-TDateTime time(2006,EMarch,20,06,36,30,000000); //create a date time object
-primEncoder-&gt;AddDateL(time); // add 
-TUInt intVal=489;
-primEncoder-&gt;AddLTokenL(intVal);
-_LIT8(KTokenText, "WSP Encode: Token Text");
-primEncoder-&gt;AddLTokenTextL(KTokenText);</codeblock></stepxmp>
-</step>
-<step id="GUID-E99EF950-7080-4718-98FD-69DA9E8074DD"><cmd/>
-<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-80F4AA16-53D6-3836-A048-DADCDFEF4652"><apiname>CWspHeaderEncoder::EndValuesLengthL()</apiname></xref> at the
-time of header construction when ValueLength can be calculated.</info>
-</step>
-<step id="GUID-3A70308A-ACCA-4059-9D26-D82A70B610BD"><cmd/>
-<info>Assuming that the length of the header encodings has been calculated
-and added to the encoder field, call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-80F4AA16-53D6-3836-A048-DADCDFEF4652"><apiname>CWspHeaderEncoder::EndValuesLengthL()</apiname></xref>.</info>
-<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;EndValueLengthL();</codeblock></stepxmp>
-</step>
-<step id="GUID-9DEE2868-591D-488B-AAC9-D12EF2936CC2"><cmd/>
-<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-68A186E8-030B-3A0E-BFF0-ACCAD81C7F3D"><apiname>CWspHeaderEncoder::EndHeaderL()</apiname></xref>, to complete
-the header encoding. This completes and returns the encoded header field's
-8 bit buffer. <codeph>EndHeaderL()</codeph> panics if <codeph>EndValueLengthL()</codeph> is
-not called after <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-D35C01C4-10A9-3BED-88F8-695DAC6411B7"><apiname>CWspHeaderEncoder::StartValueLengthL()</apiname></xref>. </info>
-<stepxmp><codeblock xml:space="preserve">HBufC8* buf = primEncoder-&gt;EndHeaderL();</codeblock></stepxmp>
-<stepresult><p>This returns a pointer to the buffer containing the encoded
-field. </p></stepresult>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-4FE5CA06-8C3A-4AC1-80CE-4418AC55937A" xml:lang="en"><title>Reading
+headers in a WSP buffer</title><shortdesc><codeph>TWspField</codeph> object holds the name and value pair
+of the WSP header field. <codeph>TWspHeaderSegmenter</codeph> pulls the header
+/ value pair out of the WSP buffer (into <codeph>TWspField</codeph>). Call <codeph>TWspHeaderSegmenter::NextL()</codeph> to
+iterate through the WSP buffer. It calls <codeph>TWspPrimitiveDecoder</codeph>.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-333175CE-6D40-4F5C-9AD8-122A383CA3EF">       <p><xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref> allows you to encode
+the values and parameters of the header field. It creates one header at a
+time from the name / value pairs.</p>     </prereq>
+<context id="GUID-CAFFF446-43D5-440C-9B32-C3B9A518D2D3">       <p>The following are the steps to encode the WSP header:</p> 
+   </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-6-1-5-1-5-1-9-1-3-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-6-1-5-1-5-1-9-1-3-1-3-3-1"><cmd/>
+<info>Create a header encoder object.</info>
+<stepxmp><codeblock xml:space="preserve">//creates a pointer to CWspHeaderEncoder object
+CWspHeaderEncoder* primEncoder = CWspHeaderEncoder::NewLC();</codeblock></stepxmp>
+</step>
+<step id="GUID-C40D9259-C67F-4DA8-B524-A29E3BE2D0E0"><cmd/>
+<info>Start a new encoded header to encode the parameter value. </info>
+<stepxmp><codeblock xml:space="preserve">// start a new encoded header
+primEncoder-&gt;StartHeaderL(0x27);</codeblock></stepxmp>
+</step>
+<step id="GUID-69650498-F216-4D21-B799-983B89022FA3"><cmd/>
+<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-D35C01C4-10A9-3BED-88F8-695DAC6411B7"><apiname>CWspHeaderEncoder::StartValueLengthL()</apiname></xref> to calculate
+the length of encodings that are added subsequently. The value calculated,
+is stored as part of the encoded string, as specified in the WSP standard. </info>
+<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;StartValueLengthL();</codeblock></stepxmp>
+</step>
+<step id="GUID-4958F0F4-1A49-4E3E-81F5-196DF68F253E"><cmd/>
+<info>Encode the header field and add it to the encoded field. </info>
+<info> <b>Note</b>: The appropriate WSP method is used for encoding the header
+field of a data type such as integer, date, text string and so on. </info>
+<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;AddIntegerL(0x7F);
+primEncoder-&gt;AddUintVarL(0xff);
+primEncoder-&gt;AddLongIntL(999999);
+_LIT8(KString, "WSP Encode: String");
+primEncoder-&gt;AddTextStringL(KString);
+TDateTime time(2006,EMarch,20,06,36,30,000000); //create a date time object
+primEncoder-&gt;AddDateL(time); // add 
+TUInt intVal=489;
+primEncoder-&gt;AddLTokenL(intVal);
+_LIT8(KTokenText, "WSP Encode: Token Text");
+primEncoder-&gt;AddLTokenTextL(KTokenText);</codeblock></stepxmp>
+</step>
+<step id="GUID-E99EF950-7080-4718-98FD-69DA9E8074DD"><cmd/>
+<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-80F4AA16-53D6-3836-A048-DADCDFEF4652"><apiname>CWspHeaderEncoder::EndValuesLengthL()</apiname></xref> at the
+time of header construction when ValueLength can be calculated.</info>
+</step>
+<step id="GUID-3A70308A-ACCA-4059-9D26-D82A70B610BD"><cmd/>
+<info>Assuming that the length of the header encodings has been calculated
+and added to the encoder field, call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-80F4AA16-53D6-3836-A048-DADCDFEF4652"><apiname>CWspHeaderEncoder::EndValuesLengthL()</apiname></xref>.</info>
+<stepxmp><codeblock xml:space="preserve">primEncoder-&gt;EndValueLengthL();</codeblock></stepxmp>
+</step>
+<step id="GUID-9DEE2868-591D-488B-AAC9-D12EF2936CC2"><cmd/>
+<info>Call <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-68A186E8-030B-3A0E-BFF0-ACCAD81C7F3D"><apiname>CWspHeaderEncoder::EndHeaderL()</apiname></xref>, to complete
+the header encoding. This completes and returns the encoded header field's
+8 bit buffer. <codeph>EndHeaderL()</codeph> panics if <codeph>EndValueLengthL()</codeph> is
+not called after <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita#GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37/GUID-D35C01C4-10A9-3BED-88F8-695DAC6411B7"><apiname>CWspHeaderEncoder::StartValueLengthL()</apiname></xref>. </info>
+<stepxmp><codeblock xml:space="preserve">HBufC8* buf = primEncoder-&gt;EndHeaderL();</codeblock></stepxmp>
+<stepresult><p>This returns a pointer to the buffer containing the encoded
+field. </p></stepresult>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04" xml:lang="en"><title>Khronos
-API Support </title><shortdesc>The Symbian platform provides support for a number of APIs created
-by the Khronos Group (www.khronos.org). This is a member-funded industry consortium
-focused on the creation of open standard, royalty-free APIs to enable the
-authoring and accelerated playback of dynamic media on a wide variety of platforms
-and devices. This topic provides a brief summary of the Khronos APIs that
-are supported in the Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4C797D3C-7500-4E05-8207-FD15D60DCA6C"><title>Supported APIs</title> <p><b>OpenGL ES </b> </p> <p>OpenGL
-is a 2D and 3D graphics API that provides a broad set of rendering, texture
-mapping, special effects, and other visualization functions. It gives software
-developers access to geometric and image primitives, display lists, modeling
-transformations, lighting and texturing, anti-aliasing and blending. OpenGL
-ES is a subset of OpenGL optimized for 2D and 3D graphics on embedded devices
-such as mobile phones. </p> <p>See: <xref href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita">OpenGLES
-Collection</xref>  </p> <p><b>OpenVG </b> </p> <p>OpenVG is an API that provides
-a low-level hardware acceleration interface for rendering vector graphics
-libraries such as Flash and Scalable Vector Graphics (SVG). OpenVG is targeted
-primarily at handheld devices that require portable acceleration of high-quality
-vector graphics for user interfaces and text on small screen devices. It does
-this while enabling hardware acceleration to provide smooth interactive performance
-at low power levels. </p> <p>See: <xref href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita">OpenVG
-Collection</xref>. </p> <p><b>EGL </b> </p> <p>EGL is an interface between
-Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native
-platform window system. </p> <p>See: <xref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita">EGL
-Collection</xref>  </p><p><b>OpenWF Composition</b> </p> <p>OpenWF Composition
-(OpenWF-C) provides a hardware abstraction layer that allows power-efficient
-hardware-accelerated composition on a wide variety of hardware platforms.
-OpenWF-C is particularly aimed at systems with limited memory bandwidth, such
-as mobile devices. OpenWF-C enables the UI and the window system stack to
-be independent of the hardware used to achieve the composition. OpenWF-C is
-a system-level API that can be ignored by application developers.</p>  </section>
-<section id="GUID-CC6CEEC2-1553-4C87-AE51-9A62A15944D3"><title>Architectural relationships</title><p>The following diagram
-shows the relationships between the Khronos rendering APIs. </p> <fig id="GUID-4ED32621-2B56-54F9-8B10-93C82751971F">
-<title>Dependencies between the Khronos rendering components            </title>
-<image href="GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e191867_href.png" placement="inline"/>
-</fig> </section>
-</conbody><related-links>
-<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
-Concepts</linktext></link>
-<link href="http://www.khronos.org/" scope="external"><linktext>http://www.khronos.org/</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04" xml:lang="en"><title>Khronos
+API Support </title><shortdesc>The Symbian platform provides support for a number of APIs created
+by the Khronos Group (www.khronos.org). This is a member-funded industry consortium
+focused on the creation of open standard, royalty-free APIs to enable the
+authoring and accelerated playback of dynamic media on a wide variety of platforms
+and devices. This topic provides a brief summary of the Khronos APIs that
+are supported in the Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4C797D3C-7500-4E05-8207-FD15D60DCA6C"><title>Supported APIs</title> <p><b>OpenGL ES </b> </p> <p>OpenGL
+is a 2D and 3D graphics API that provides a broad set of rendering, texture
+mapping, special effects, and other visualization functions. It gives software
+developers access to geometric and image primitives, display lists, modeling
+transformations, lighting and texturing, anti-aliasing and blending. OpenGL
+ES is a subset of OpenGL optimized for 2D and 3D graphics on embedded devices
+such as mobile phones. </p> <p>See: <xref href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita">OpenGLES
+Collection</xref>  </p> <p><b>OpenVG </b> </p> <p>OpenVG is an API that provides
+a low-level hardware acceleration interface for rendering vector graphics
+libraries such as Flash and Scalable Vector Graphics (SVG). OpenVG is targeted
+primarily at handheld devices that require portable acceleration of high-quality
+vector graphics for user interfaces and text on small screen devices. It does
+this while enabling hardware acceleration to provide smooth interactive performance
+at low power levels. </p> <p>See: <xref href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita">OpenVG
+Collection</xref>. </p> <p><b>EGL </b> </p> <p>EGL is an interface between
+Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native
+platform window system. </p> <p>See: <xref href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita">EGL
+Collection</xref>  </p><p><b>OpenWF Composition</b> </p> <p>OpenWF Composition
+(OpenWF-C) provides a hardware abstraction layer that allows power-efficient
+hardware-accelerated composition on a wide variety of hardware platforms.
+OpenWF-C is particularly aimed at systems with limited memory bandwidth, such
+as mobile devices. OpenWF-C enables the UI and the window system stack to
+be independent of the hardware used to achieve the composition. OpenWF-C is
+a system-level API that can be ignored by application developers.</p>  </section>
+<section id="GUID-CC6CEEC2-1553-4C87-AE51-9A62A15944D3"><title>Architectural relationships</title><p>The following diagram
+shows the relationships between the Khronos rendering APIs. </p> <fig id="GUID-4ED32621-2B56-54F9-8B10-93C82751971F">
+<title>Dependencies between the Khronos rendering components            </title>
+<image href="GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e185271_href.png" placement="inline"/>
+</fig> </section>
+</conbody><related-links>
+<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
+Concepts</linktext></link>
+<link href="http://www.khronos.org/" scope="external"><linktext>http://www.khronos.org/</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e323870_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e330027_href.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-504EB40B-AC98-5AB2-9263-185887C29A7E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-504EB40B-AC98-5AB2-9263-185887C29A7E" xml:lang="en"><title>Searching
+for an IAP Record by Name and Loading the Associated Service and the Bearer
+Table: Tutorial</title><shortdesc>This tutorial shows you how to search for a Symbian platform defined
+Internet Access Points Configuration (IAP) record by name. The tutorial, then
+shows you how load the connected service and the bearer table. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+
+
+<prereq id="GUID-8F09964A-B8AC-5601-817C-B1C243B1CB92"><p>Before you start,
+you must understand: </p> <ul>
+<li id="GUID-95E91894-42A9-569A-BCBD-D9CAE502B289"><p>the general concept
+of the Comms Database </p> </li>
+<li id="GUID-127FB886-98D0-5F17-997F-CD1134BA7F57"><p>the specific concept
+of fields, records, links and tables </p> </li>
+<li id="GUID-8AF15E7D-44F0-5F28-94A1-C4A6E6DE3B93"><p>how to write and build
+application code to run on Symbian platform </p> </li>
+</ul> </prereq>
+<context id="GUID-37F9160E-EAE2-5975-B064-255EA353CB72"><p>This tutorial shows
+you: </p> <ul>
+<li id="GUID-84E5F473-8F05-5FDD-B1BB-ED301420CD89"><p>how to search the <i>Internet
+Access Points Configuration</i> table for a record defined by name. This table
+is also called the IAP table </p> </li>
+<li id="GUID-08BA5682-4AF9-526B-9CD2-48BFDEE7E162"><p>how to load the connected
+service. </p> </li>
+<li id="GUID-545EC3CC-F771-50AF-8388-CA0AC4B84B10"><p>how to load the connected
+bearer table. </p> </li>
+</ul> <p>The principles that apply here also apply to the other Symbian platform
+defined tables. </p> </context>
+<steps id="GUID-6A94C40E-59E3-5F22-A778-0734773900C4">
+<step id="GUID-FFA9D8F4-6683-52EC-B9F7-7D1AAB904D48"><cmd>Make sure that you
+have created a session. </cmd>
+</step>
+<step id="GUID-D00E9CCC-8046-5E43-9D8E-CCA971C79ED2"><cmd>Create an empty
+IAP record in the tool or application process. </cmd>
+
+<info>You create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSet</apiname></xref> <codeph>&lt;T&gt;</codeph> object
+and specify <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref> as the template
+parameter. </info>
+
+<info>Symbian platform defines the <codeph>CCDIAPRecord</codeph> class to
+represent a IAP record. The class is a schema for the record. The class defines
+the fields and links that make a IAP record. </info>
+<info>Symbian platform defines <xref href="GUID-32E556BC-55C3-5FBD-9A60-9708139C20D6.dita">unique
+numeric Id</xref> s for Symbian platform defined tables. The symbol <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDTIdIAPRecord</apiname></xref> also defines the value of this
+Id for records in the IAP table. The Id allows the CommsDat API to get the
+record from the Comms Database. </info>
+<info>To work with other Symbian platform defined tables, use the correct
+class name and the correct unique numeric Id values. The <xref href="GUID-58089281-9DD0-502D-8DFD-831E7BAA931E.dita">Reference</xref> section
+contains a list of all Symbian platform defined tables. </info>
+<stepxmp><codeblock id="GUID-629FD205-82F8-5383-AEC8-1645309B994B" xml:space="preserve">...
+
+// This code fragment assumes that a session with the Comms Database has been created.
+// iDb is a pointer to a CMDBSession object
+...
+
+// When we search by Name or Id, there can be only one record to be returned
+// Create an empty IAP record.
+//
+// Note:
+// 1. the template parameter CCDIAPRecord defines 
+//    the "IAP" record type.
+// 2. to create a record, you use a factory function and pass the unique
+//    numeric Id KCDTIdIAPRecord as a parameter to the constructor.
+//
+
+CCDIAPRecord* ptrIAPRecord = 
+              static_cast&lt;CCDIAPRecord *&gt;(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+...</codeblock> </stepxmp>
+</step>
+<step id="GUID-82296CE1-8682-56E6-8847-FB6A2348479A"><cmd>Define the name
+of the IAP record to be found and set the name in IAP record. Do the search
+for the record in the Comms Database. </cmd>
+
+<info>In this tutorial, the name of the IAP record is NTRas with Null Modem. </info>
+
+<info>Use the assignment operator to add the data to a field. A field that
+has type <codeph>T</codeph> accepts a type T item as the right-hand argument
+of an assignment call. </info>
+
+<info>A descriptor field needs an additional call to set the size of the descriptor.
+Call <codeph>SetMaxLengthL()</codeph> to set the size of the descriptor. This
+function is a member of the field class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;TDesC&gt;</codeph>.
+Internally, the function causes the allocation of a descriptor. You must set
+the size of the descriptor before you assign the data. You can also use the <codeph>SetL()</codeph> function.
+This function sets the length and assigns the data. The function is a member
+of the field class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBField</apiname></xref> <codeph>&lt;TDesC&gt;</codeph>. </info>
+<stepxmp><codeblock id="GUID-8427EB95-2BE7-59C7-9A21-DF9DDB3607AF" xml:space="preserve">...
+// Define the name of the IAP record.
+_LIT(KMyIap, "NTRas with Null Modem");
+
+// Either 
+ptrIAPRecord-&gt;iRecordName.SetMaxLengthL(KMyIap().Length());
+ptrIAPRecord-&gt;iRecordName = KMyIap;
+
+// Or 
+ptrIAPRecord-&gt;iRecordName.SetL(KMyIap);
+
+
+// Search the Comms Database
+if(ptrIAPRecord-&gt;FindL(*iDb))
+    {
+    // Found a matching record
+    ...
+    }
+
+...</codeblock> </stepxmp>
+</step>
+<step id="GUID-119EC7CA-0E0E-5062-BC7D-FC023205FA1A"><cmd>Load the NTRas with
+Null Modem service and the associated bearer table. </cmd>
+<stepxmp><codeblock id="GUID-C3994C1F-61BD-5BCC-9E29-FACAEE5C198C" xml:space="preserve">...
+// Search the Comms Database
+if(ptrIAPRecord-&gt;FindL(*iDb))
+    {
+    // Found a matching record
+
+    // Now load the the associated service and bearer tables, 
+    // The variables iService,iBearer, etc
+    // are links that point to other records. These links have a "Value" and 
+    // "iLinkedRecord".
+    // 
+    // The "Value" represent the id of the target field,and gets initialized along with the
+    // parent record(ptrIAPRecord). When we explictly call load on these LinkedFields,
+    // the "iLinkedRecord" pointer points to the appropriate object.
+    //
+    // The "iLinkedRecord" pointer is  owned by the parent record and gets
+    // deleted along with it.THis means that it must be set to NULL
+    // if the user wants to take ownership.
+ 
+    ptrIAPRecord-&gt;iService.LoadL(*iDb);
+    ptrIAPRecord-&gt;iBearer.LoadL(*iDb);
+
+    // Take ownership of the loaded service record cache
+    CCDServiceRecordBase* ptrService = 
+        static_cast&lt; CCDServiceRecordBase *&gt; (ptrIAPRecord-&gt;iService.iLinkedRecord);
+    (ptrIAPRecord-&gt;iService).iLinkedRecord = NULL;
+
+    // Deleting ptrIAPRecord also deletes all the loaded iLinkedRecord
+    // pointers it owns unless set to null.
+
+    delete ptrIAPRecord;         
+ 
+   //delete the service view.
+    delete ptrService;
+    }         
+...</codeblock> </stepxmp>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-1AFDDD6F-CB99-587D-A0B5-D3F5B27F7135.dita"><linktext>Comms Database
+                concepts</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e278106_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e281792_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,39 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5" xml:lang="en"><title>Store
-map as repository for Swizzles and associated stream IDs</title><shortdesc>This document describes using a store map as a repository for Swizzles
-and associated stream IDs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A store map is a table of entries where each entry consists of a Swizzle
-and a stream ID.</p>
-<p>When the in-memory object represented by a Swizzle is externalised, the
-resulting stream ID and the associated Swizzle can be added to a store map.
-The effect is to create an entry in the store map table containing the stream
-ID and the associated Swizzle; the Swizzle is said to be bound to the stream
-ID. Creating this entry in the store map is done using <codeph>CStoreMap::BindL()</codeph>.</p>
-<p>For a container type class <codeph>CCompound</codeph>, the diagram below
-shows the result of:</p>
-<ul>
-<li id="GUID-B49D7824-7128-506F-B026-A6F4785C5C94"><p>streaming out the in-memory
-objects represented by the Swizzles <codeph>iA</codeph>, <codeph>iB</codeph> and <codeph>iC</codeph>.</p> </li>
-<li id="GUID-F3352249-7B90-5F90-B706-A01DC2C87C41"><p>binding the swizzles
-with the resulting stream IDs</p> </li>
-</ul>
-<p>The other characteristics of a store map follow from this. </p>
-<fig id="GUID-16CAA671-B195-558E-868A-46463EDEB476">
-<title/>
-<image href="GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e363900_href.png" placement="inline"/>
-</fig>
-<p>Entries in the store map can be deleted. An entry can be identified either
-by Swizzle or by stream ID. <codeph>CStoreMap::Unbind()</codeph> deletes an
-entry identified by Swizzle; <codeph>CStoreMap::Forget()</codeph> deletes
-an entry identified by stream ID.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-50AB1B77-1912-5C73-A1B5-41220E7A2EA5" xml:lang="en"><title>Store
+map as repository for Swizzles and associated stream IDs</title><shortdesc>This document describes using a store map as a repository for Swizzles
+and associated stream IDs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A store map is a table of entries where each entry consists of a Swizzle
+and a stream ID.</p>
+<p>When the in-memory object represented by a Swizzle is externalised, the
+resulting stream ID and the associated Swizzle can be added to a store map.
+The effect is to create an entry in the store map table containing the stream
+ID and the associated Swizzle; the Swizzle is said to be bound to the stream
+ID. Creating this entry in the store map is done using <codeph>CStoreMap::BindL()</codeph>.</p>
+<p>For a container type class <codeph>CCompound</codeph>, the diagram below
+shows the result of:</p>
+<ul>
+<li id="GUID-B49D7824-7128-506F-B026-A6F4785C5C94"><p>streaming out the in-memory
+objects represented by the Swizzles <codeph>iA</codeph>, <codeph>iB</codeph> and <codeph>iC</codeph>.</p> </li>
+<li id="GUID-F3352249-7B90-5F90-B706-A01DC2C87C41"><p>binding the swizzles
+with the resulting stream IDs</p> </li>
+</ul>
+<p>The other characteristics of a store map follow from this. </p>
+<fig id="GUID-16CAA671-B195-558E-868A-46463EDEB476">
+<title/>
+<image href="GUID-4028CDCF-D2E8-5668-A751-A7CFA86CED46_d0e357820_href.png" placement="inline"/>
+</fig>
+<p>Entries in the store map can be deleted. An entry can be identified either
+by Swizzle or by stream ID. <codeph>CStoreMap::Unbind()</codeph> deletes an
+entry identified by Swizzle; <codeph>CStoreMap::Forget()</codeph> deletes
+an entry identified by stream ID.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,96 +1,96 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66" xml:lang="en"><title>HTTP Client
-overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D44E394A-3FB9-4884-A8AB-6E8E252ACBFC"><title>Purpose</title> <p>The
-HTTP (Hypertext Transfer Protocol) Client API provides a client interface
-for Internet applications to use the HTTP protocol for communication with
-HTTP servers on the Internet. Using the API correctly enables the application
-to be a conditionally HTTP 1.1 compliant client, as defined in RFC 2616. </p> <p>The
-HTTP protocol is a request and response protocol. A client sends a request
-to the server. This request consists of a request method, URI, and protocol
-version, including a Multipurpose Internet Mail Extensions (MIME)-like message
-containing request modifiers, client information, and body content over a
-server connection. The server responds with a status, which includes the message's
-protocol version and a success or error code, and a MIME-like message containing
-server information, meta information, and body content. The following image
-illustrates a simple HTTP session between a client and a server. </p> <fig id="GUID-784DD05A-B86B-57F0-A2E0-A34E373ABA34">
-<title>              Simple HTTP Interaction           </title>
-<image href="GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e212244_href.png" placement="inline"/>
-</fig> <p>See <xref href="http://www.ietf.org/rfc/rfc2616.txt" scope="external">Hypertext
-Transfer Protocol -- HTTP/1.1, RFC 2616</xref> for more details. </p> </section>
-<section id="GUID-80DD2A3D-1C59-4AD5-8838-8DC9E1752729"><title>Architectural
-relationships</title> <p>The HTTP Client architecture provides a generalised
-mechanism for HTTP-like protocols that operate over various transports. Using
-a single API, a client can choose an HTTP protocol, encoding, and transport,
-and need not implement these in its own code. The default operation provides
-plain-text HTTP (as defined in RFC 2616) operating over a TCP/IP connection.
-This transport pipelines requests by default. </p> </section>
-<section id="GUID-4F83C7A0-C17F-4C58-840E-3E51EA52F098"><title>Description</title> <p>There
-are five key concepts used in the API: sessions, transactions, headers, data
-suppliers, and filters. </p><p><b>Sessions </b> </p> <p>A session encapsulates
-the client's HTTP activity over the duration of the client's execution. Typicallly,
-one HTTP session runs in one active scheduler. </p> <p> <b>Note:</b> An active
-scheduler must be installed when a session is opened. </p> <p>Usually, one
-session is used at a time. However, the client may use several concurrently,
-if required. Each session has an associated set of properties, which define
-the HTTP protocol, encoding, and transport used. Those properties apply to
-all HTTP transactions within the life of that session. The session also has
-an associated set of filters that provide additional automatic behaviours
-on the client's behalf. </p> <p>The session class is provided by <xref href="GUID-651801A5-5473-3856-9647-46823598C5C1.dita"><apiname>RHTTPSession</apiname></xref>. </p> <p><b>Transactions </b> </p> <p>A
-transaction represents an interaction between a HTTP client and an HTTP origin
-server. Normally a transaction consists of a single exchange of messages between
-client and server: a client request and a server response. However, the transaction
-may be extended or altered by filters that operate on it. See <xref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita">Filters</xref> for
-more details. </p> <p>Transactions execute asychronously within the client's
-process. The client is notified when events are available for each outstanding
-transaction. </p> <p>Both the request and response portion of a transaction
-consist of a header and an optional body. The request portion of the transaction
-also specifies an HTTP Method that describes the type of operation that the
-client wants to invoke at the origin server, together with a URI that specifies
-the resource held at the server on which the method is to be invoked. The
-response portion of a transaction contains an HTTP status code and message,
-which indicate the success of the method or the state of the resource following
-the method. The use of request and response bodies is determined by the HTTP
-method in use. For example, in error conditions, some servers may just return
-a status code and message, providing no entity body. </p> <p>The transaction
-class is provided by <xref href="GUID-2E673024-239B-3965-8880-C47B7CC24EF6.dita"><apiname>RHTTPTransaction</apiname></xref>. </p> <p><b>Headers </b> </p> <p>The
-header portion of requests and responses may have zero or more fields, which
-are used to convey information between the HTTP client and server. The information
-might relate to the data conveyed in body of the message, to the actual connection
-between the client and server, or might be used to convey data describing
-the client or server themselves. Typically, headers can contain content encoding
-and transfer encoding information. Since the HTTP API gives clients implementation
-independence from these choices, a generic form is used to represent header
-data in the API. </p> <p>The headers class is provided by <xref href="GUID-54F9A87B-FE2F-3429-9793-0A24B83466B9.dita"><apiname>RHTTPHeaders</apiname></xref>. </p> <p><b>Data
-suppliers </b> </p> <p>The body portion of requests and responses is represented
-in the API as a mix-in interface, allowing the real implementation of the
-classes that generate body data to be fully hidden. The API enables signalling
-between the client and the transport in use, to ensure that body data is only
-used or released at a rate the client can support. This means that clients
-can assemble the body of their requests piece-by-piece, have each piece transmitted
-only when it is ready, and be signalled when transmission is complete so the
-next piece may be prepared and the old one released. </p> <p>Data supplier
-classes must implement <xref href="GUID-1B03F068-9552-37BA-A284-8E54FAC2AAC5.dita"><apiname>MHTTPDataSupplier</apiname></xref>. </p> <p><b>Filters </b> </p> <p>Filters
-are add-on modules that provide additional behaviours to a session beyond
-the simple request-response transaction described earlier. Behaviours may
-be triggered by the presence of particular headers in a request or a response,
-by status codes in a response, or by particular events that occur on a transaction.
-RFC 2616 describes a number of standard behaviours that occur over a series
-of request-response exchanges: client authentication, redirection, and caching.
-Client authentication and redirection are implemented as individual filters. </p> <p>Filter
-classes must implement <xref href="GUID-2E1C08E2-9024-3269-A1BD-C6B901E78841.dita"><apiname>MHTTPFilter</apiname></xref>. </p> <p>Refer to <xref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita">Filters</xref> for more information. </p> </section>
-<section id="GUID-75720715-786A-4537-BC1B-949815E5E8AD"><title>Example code</title> <p>Example
-code used throughout this guide is taken from <filepath>HTTPEXAMPLECLIENT</filepath>,
-a simple console application that provides a menu-driven interface to the
-HTTP API. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66" xml:lang="en"><title>HTTP Client
+overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D44E394A-3FB9-4884-A8AB-6E8E252ACBFC"><title>Purpose</title> <p>The
+HTTP (Hypertext Transfer Protocol) Client API provides a client interface
+for Internet applications to use the HTTP protocol for communication with
+HTTP servers on the Internet. Using the API correctly enables the application
+to be a conditionally HTTP 1.1 compliant client, as defined in RFC 2616. </p> <p>The
+HTTP protocol is a request and response protocol. A client sends a request
+to the server. This request consists of a request method, URI, and protocol
+version, including a Multipurpose Internet Mail Extensions (MIME)-like message
+containing request modifiers, client information, and body content over a
+server connection. The server responds with a status, which includes the message's
+protocol version and a success or error code, and a MIME-like message containing
+server information, meta information, and body content. The following image
+illustrates a simple HTTP session between a client and a server. </p> <fig id="GUID-784DD05A-B86B-57F0-A2E0-A34E373ABA34">
+<title>              Simple HTTP Interaction           </title>
+<image href="GUID-18547A2C-7425-5478-8235-EC6D3848B404_d0e207449_href.png" placement="inline"/>
+</fig> <p>See <xref href="http://www.ietf.org/rfc/rfc2616.txt" scope="external">Hypertext
+Transfer Protocol -- HTTP/1.1, RFC 2616</xref> for more details. </p> </section>
+<section id="GUID-80DD2A3D-1C59-4AD5-8838-8DC9E1752729"><title>Architectural
+relationships</title> <p>The HTTP Client architecture provides a generalised
+mechanism for HTTP-like protocols that operate over various transports. Using
+a single API, a client can choose an HTTP protocol, encoding, and transport,
+and need not implement these in its own code. The default operation provides
+plain-text HTTP (as defined in RFC 2616) operating over a TCP/IP connection.
+This transport pipelines requests by default. </p> </section>
+<section id="GUID-4F83C7A0-C17F-4C58-840E-3E51EA52F098"><title>Description</title> <p>There
+are five key concepts used in the API: sessions, transactions, headers, data
+suppliers, and filters. </p><p><b>Sessions </b> </p> <p>A session encapsulates
+the client's HTTP activity over the duration of the client's execution. Typicallly,
+one HTTP session runs in one active scheduler. </p> <p> <b>Note:</b> An active
+scheduler must be installed when a session is opened. </p> <p>Usually, one
+session is used at a time. However, the client may use several concurrently,
+if required. Each session has an associated set of properties, which define
+the HTTP protocol, encoding, and transport used. Those properties apply to
+all HTTP transactions within the life of that session. The session also has
+an associated set of filters that provide additional automatic behaviours
+on the client's behalf. </p> <p>The session class is provided by <xref href="GUID-651801A5-5473-3856-9647-46823598C5C1.dita"><apiname>RHTTPSession</apiname></xref>. </p> <p><b>Transactions </b> </p> <p>A
+transaction represents an interaction between a HTTP client and an HTTP origin
+server. Normally a transaction consists of a single exchange of messages between
+client and server: a client request and a server response. However, the transaction
+may be extended or altered by filters that operate on it. See <xref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita">Filters</xref> for
+more details. </p> <p>Transactions execute asychronously within the client's
+process. The client is notified when events are available for each outstanding
+transaction. </p> <p>Both the request and response portion of a transaction
+consist of a header and an optional body. The request portion of the transaction
+also specifies an HTTP Method that describes the type of operation that the
+client wants to invoke at the origin server, together with a URI that specifies
+the resource held at the server on which the method is to be invoked. The
+response portion of a transaction contains an HTTP status code and message,
+which indicate the success of the method or the state of the resource following
+the method. The use of request and response bodies is determined by the HTTP
+method in use. For example, in error conditions, some servers may just return
+a status code and message, providing no entity body. </p> <p>The transaction
+class is provided by <xref href="GUID-2E673024-239B-3965-8880-C47B7CC24EF6.dita"><apiname>RHTTPTransaction</apiname></xref>. </p> <p><b>Headers </b> </p> <p>The
+header portion of requests and responses may have zero or more fields, which
+are used to convey information between the HTTP client and server. The information
+might relate to the data conveyed in body of the message, to the actual connection
+between the client and server, or might be used to convey data describing
+the client or server themselves. Typically, headers can contain content encoding
+and transfer encoding information. Since the HTTP API gives clients implementation
+independence from these choices, a generic form is used to represent header
+data in the API. </p> <p>The headers class is provided by <xref href="GUID-54F9A87B-FE2F-3429-9793-0A24B83466B9.dita"><apiname>RHTTPHeaders</apiname></xref>. </p> <p><b>Data
+suppliers </b> </p> <p>The body portion of requests and responses is represented
+in the API as a mix-in interface, allowing the real implementation of the
+classes that generate body data to be fully hidden. The API enables signalling
+between the client and the transport in use, to ensure that body data is only
+used or released at a rate the client can support. This means that clients
+can assemble the body of their requests piece-by-piece, have each piece transmitted
+only when it is ready, and be signalled when transmission is complete so the
+next piece may be prepared and the old one released. </p> <p>Data supplier
+classes must implement <xref href="GUID-1B03F068-9552-37BA-A284-8E54FAC2AAC5.dita"><apiname>MHTTPDataSupplier</apiname></xref>. </p> <p><b>Filters </b> </p> <p>Filters
+are add-on modules that provide additional behaviours to a session beyond
+the simple request-response transaction described earlier. Behaviours may
+be triggered by the presence of particular headers in a request or a response,
+by status codes in a response, or by particular events that occur on a transaction.
+RFC 2616 describes a number of standard behaviours that occur over a series
+of request-response exchanges: client authentication, redirection, and caching.
+Client authentication and redirection are implemented as individual filters. </p> <p>Filter
+classes must implement <xref href="GUID-2E1C08E2-9024-3269-A1BD-C6B901E78841.dita"><apiname>MHTTPFilter</apiname></xref>. </p> <p>Refer to <xref href="GUID-AA2A730E-A7C9-5647-AD42-11C3BAF4C38D.dita">Filters</xref> for more information. </p> </section>
+<section id="GUID-75720715-786A-4537-BC1B-949815E5E8AD"><title>Example code</title> <p>Example
+code used throughout this guide is taken from <filepath>HTTPEXAMPLECLIENT</filepath>,
+a simple console application that provides a menu-driven interface to the
+HTTP API. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-50BE8F1A-513A-433C-B045-66658FC226D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-50BE8F1A-513A-433C-B045-66658FC226D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-50BE8F1A-513A-433C-B045-66658FC226D7" xml:lang="en"><title>Client/server
-communication</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><xref href="GUID-E530CBB9-C20D-5426-89AA-DC0281C05381.dita">Inter Process
-Communication</xref> (IPC) is the basis for client/server architecture. Clients
-and servers run in different threads, although not necessarily in different
-processes, and communicate through message passing protocol. There are no
-direct pointers between the parties, leaving the integrity of the server and
-its resources untouched by clients. For more information, see <xref href="GUID-D4C7A714-F7BB-5A8D-A875-4796395B9B6C.dita">Introduction
-to the client/server architecture</xref>.</p>
-<p>Communication between the client and the server is managed by <xref href="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita">Inter-thread data transfer</xref>.
-Only the server and its clients can decode the parameters of the message.
-This is also a security feature, because process boundaries are separators
-of memory space, direct pointers to the client's data structures cannot be
-delivered. All data not fitting in the provided integers must be represented
-as a <xref href="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita">descriptor</xref>,
-and an address to the descriptor (or actually a <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TPckgClass.html" format="application/java-archive">TPckg</xref></codeph> object)
-is delivered within the message. The server then uses safe inter-thread read
-and write functions to access the provided descriptor.</p>
-<p>The following figure shows the relationship of the <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/e32cmn.hGlobals.html#%3a%3aTDesC" format="application/java-archive">TDesC</xref></codeph> and <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TPckgClass.html" format="application/java-archive">TPckg</xref></codeph> classes.</p>
-<fig id="GUID-715F1B96-AFC4-4FB2-AF51-6E720077F83A"><title>Relationship of a message package and a descriptor class</title><image href="GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e10779_href.png"/></fig>
-<p>Consider the following issues when implementing the client-side API:</p>
-<ul>
-<li><p>Determine if the server is already running with the <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TFindServerClass.html" format="application/java-archive">TFindServer</xref></codeph> class. If not, then it should be launched.</p></li>
-<li><p>Once the server is running, create the connection with <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/RSessionBaseClass.html" format="application/java-archive">RSessionBase::CreateSession</xref></codeph> and make sure there are free message slots available to avoid lost
-messages.</p></li>
-<li><p>When packaging message arguments, make sure they are in a
-format that the server understands. For more information, see <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TIpcArgsClass.html" format="application/java-archive">TIpcArgs</xref></codeph>.</p></li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-50BE8F1A-513A-433C-B045-66658FC226D7" xml:lang="en"><title>Client/server
+communication</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><xref href="GUID-E530CBB9-C20D-5426-89AA-DC0281C05381.dita">Inter Process
+Communication</xref> (IPC) is the basis for client/server architecture. Clients
+and servers run in different threads, although not necessarily in different
+processes, and communicate through message passing protocol. There are no
+direct pointers between the parties, leaving the integrity of the server and
+its resources untouched by clients. For more information, see <xref href="GUID-D4C7A714-F7BB-5A8D-A875-4796395B9B6C.dita">Introduction
+to the client/server architecture</xref>.</p>
+<p>Communication between the client and the server is managed by <xref href="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita">Inter-thread data transfer</xref>.
+Only the server and its clients can decode the parameters of the message.
+This is also a security feature, because process boundaries are separators
+of memory space, direct pointers to the client's data structures cannot be
+delivered. All data not fitting in the provided integers must be represented
+as a <xref href="GUID-261ADCEC-C8C8-46E3-A7DC-804AC868C233.dita">descriptor</xref>,
+and an address to the descriptor (or actually a <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TPckgClass.html" format="application/java-archive">TPckg</xref></codeph> object)
+is delivered within the message. The server then uses safe inter-thread read
+and write functions to access the provided descriptor.</p>
+<p>The following figure shows the relationship of the <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/e32cmn.hGlobals.html#%3a%3aTDesC" format="application/java-archive">TDesC</xref></codeph> and <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TPckgClass.html" format="application/java-archive">TPckg</xref></codeph> classes.</p>
+<fig id="GUID-715F1B96-AFC4-4FB2-AF51-6E720077F83A"><title>Relationship of a message package and a descriptor class</title><image href="GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e12054_href.png"/></fig>
+<p>Consider the following issues when implementing the client-side API:</p>
+<ul>
+<li><p>Determine if the server is already running with the <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TFindServerClass.html" format="application/java-archive">TFindServer</xref></codeph> class. If not, then it should be launched.</p></li>
+<li><p>Once the server is running, create the connection with <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/RSessionBaseClass.html" format="application/java-archive">RSessionBase::CreateSession</xref></codeph> and make sure there are free message slots available to avoid lost
+messages.</p></li>
+<li><p>When packaging message arguments, make sure they are in a
+format that the server understands. For more information, see <codeph><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TIpcArgsClass.html" format="application/java-archive">TIpcArgs</xref></codeph>.</p></li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE" xml:lang="en"><title>Allowing
-Large Memory Allocation</title><shortdesc>This section describes how an application can request for free
-memory from OOM Monitor for large amount of RAM allocation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-54D945B5-EFE2-4639-B040-7A6321448A07">       <p>An application
-can allocate RAM without seeking the permission from the OOM Monitor if the
-amount of RAM is not over <xref href="GUID-75DB7CA6-08F0-3CFB-ADDF-621FFF5B8058.dita"><apiname>KOomMaxAllocationWithoutPermission</apiname></xref> limit.
- </p><p>If an application needs to allocate more RAM than allocated by <xref href="GUID-75DB7CA6-08F0-3CFB-ADDF-621FFF5B8058.dita"><apiname>KOomMaxAllocationWithoutPermission</apiname></xref>,
-it must request the OOM Monitor using the <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method. </p><p>An
-application can request for free RAM either synchronously or asynchronously.</p> 
- </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-3-2">
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-3-2-1"><cmd>Create an OOM Monitor
-session</cmd>
-<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
-CleanUpClosePushL(ioomMonitorSession);
-User::LeaveIfError(ioomMonitorSession.Connect());
-</codeblock></info>
-</step>
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-3-2-2"><cmd>Request for free
-memory can be done in two ways:</cmd>
-</step>
-</steps>
-<result id="GUID-1D804A3D-8EEC-4E62-8496-2A43CCDC0BEB"><p>The OOM Monitor
-allows the client application to allocate memory, if the free RAM level is
-above the <codeph>LOW_RAM_THRESHOLD</codeph> value.</p><p> If the free RAM
-level is below the <codeph>LOW_RAM_THRESHOLD</codeph> value,
-the OOM Monitor releases RAM using <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method.
-This method returns the following values: <ul>
-<li><p>Requested amount of RAM is available then <codeph>aStatus</codeph> is
-set to <codeph>KErrNone</codeph>.</p></li>
-<li><p>Requested amount of RAM is not available then <codeph>aStatus</codeph> is
-set to <codeph>KErrNoMemory</codeph>.</p></li>
-</ul> </p></result>
-</taskbody><related-links>
-<link href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita"><linktext>OOM Monitor
-Concepts</linktext></link>
-<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
-Overview</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE" xml:lang="en"><title>Allowing
+Large Memory Allocation</title><shortdesc>This section describes how an application can request for free
+memory from OOM Monitor for large amount of RAM allocation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-54D945B5-EFE2-4639-B040-7A6321448A07">       <p>An application
+can allocate RAM without seeking the permission from the OOM Monitor if the
+amount of RAM is not over <xref href="GUID-75DB7CA6-08F0-3CFB-ADDF-621FFF5B8058.dita"><apiname>KOomMaxAllocationWithoutPermission</apiname></xref> limit.
+ </p><p>If an application needs to allocate more RAM than allocated by <xref href="GUID-75DB7CA6-08F0-3CFB-ADDF-621FFF5B8058.dita"><apiname>KOomMaxAllocationWithoutPermission</apiname></xref>,
+it must request the OOM Monitor using the <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method. </p><p>An
+application can request for free RAM either synchronously or asynchronously.</p> 
+ </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-3-2">
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-3-2-1"><cmd>Create an OOM Monitor
+session</cmd>
+<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
+CleanUpClosePushL(ioomMonitorSession);
+User::LeaveIfError(ioomMonitorSession.Connect());
+</codeblock></info>
+</step>
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-3-2-2"><cmd>Request for free
+memory can be done in two ways:</cmd>
+</step>
+</steps>
+<result id="GUID-1D804A3D-8EEC-4E62-8496-2A43CCDC0BEB"><p>The OOM Monitor
+allows the client application to allocate memory, if the free RAM level is
+above the <codeph>LOW_RAM_THRESHOLD</codeph> value.</p><p> If the free RAM
+level is below the <codeph>LOW_RAM_THRESHOLD</codeph> value,
+the OOM Monitor releases RAM using <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-BE322080-5193-3D8E-9425-C6BEA920ED2E"><apiname>ROomMonitorSession::RequestFreeMemory()</apiname></xref> method.
+This method returns the following values: <ul>
+<li><p>Requested amount of RAM is available then <codeph>aStatus</codeph> is
+set to <codeph>KErrNone</codeph>.</p></li>
+<li><p>Requested amount of RAM is not available then <codeph>aStatus</codeph> is
+set to <codeph>KErrNoMemory</codeph>.</p></li>
+</ul> </p></result>
+</taskbody><related-links>
+<link href="GUID-F6A33835-D677-41D0-86BB-812E3AFA5192.dita"><linktext>OOM Monitor
+Concepts</linktext></link>
+<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
+Overview</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5107ABD8-6408-5501-8073-ACAF3719247B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5107ABD8-6408-5501-8073-ACAF3719247B" xml:lang="en"><title>Resizable
-buffer descriptors</title><shortdesc>Describes descriptor behaviour and resizable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A resizable buffer descriptor provides a buffer, allocated on the heap,
-to contain and access data. The data is not part of the descriptor object. </p>
-<p>The data represented by this descriptor can be both accessed and changed
-through the descriptor itself. Data is accessed through functions provided
-by the base class. The size of the buffer used by this descriptor can also
-be changed. Note that unlike dynamic buffers, reallocation is not done automatically;
-the descriptor provides an API that allows you to do reallocation. </p>
-<p>The descriptor has similarities to the standard heap descriptor,<xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>,
-but is <i>easier to use</i>. The standard heap descriptor is recommended for
-use when the data it represents rarely changes. The resizable buffer descriptor
-is recommended for use when the data changes frequently. </p>
-<p>This descriptor also has the following additional useful behaviour: </p>
-<ul>
-<li id="GUID-A40D7342-C864-51A3-B53B-DA73988501C2"><p>ownership of an existing
-heap descriptor can be transferred to a resizable buffer descriptor. </p> </li>
-<li id="GUID-63EA50EE-1DD4-5ABE-9676-0347E95F07CA"><p>ownership of memory
-that has already been allocated elsewhere can be transferred to a resizable
-buffer descriptor; this memory becomes the buffer used by the descriptor. </p> </li>
-<li id="GUID-D16CAA95-26A4-5B45-AEA2-58DDB28F16CB"><p>ownership of memory
-owned by a resizable buffer descriptor can be transferred to another resizable
-buffer descriptor. </p> </li>
-</ul>
-<p>The important point is that the user of the class need not be concerned
-about the 'origins' of the memory. </p>
-<p>A resizable buffer descriptor is supplied in two variants: </p>
-<ul>
-<li id="GUID-017A1851-A5FE-5179-87BC-0F0BF748761A"><p>a 16-bit variant, a <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>,
-to contain wide strings, and 16-bit wide data. </p> </li>
-<li id="GUID-55A2D978-C16A-58E7-BE55-9CB681484473"><p>an 8-bit variant, a <xref href="GUID-955061A8-A83E-39E5-8745-8FAC7DEA7BCC.dita"><apiname>RBuf8</apiname></xref>,
-to contain narrow strings and binary data. </p> </li>
-</ul>
-<p>There is also a build independent type, <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>. This is
-the type that is most commonly used in program code; this is set (i.e. typedef)
-to the appropriate 'real' variant at build time, and by default equates to <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>. </p>
-<p>You would use an explicit 8-bit variant for binary data. An explicit 16-bit
-variant is rarely used. </p>
-<p>When discussing a resizable buffer descriptor, we normally refer to <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>,
-rather than <xref href="GUID-955061A8-A83E-39E5-8745-8FAC7DEA7BCC.dita"><apiname>RBuf8</apiname></xref> or <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>. We only
-refer to <codeph>RBuf8</codeph> or <codeph>RBuf16</codeph> when they explicitly
-need to be used. </p>
-<p>The following drawing shows how an <codeph>RBuf</codeph> type is constructed.
-It is derived from <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref> and <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref>; the
-member data of these base classes hold the length and maximum length for the
-descriptor data. <codeph>RBuf</codeph> itself only contains a single pointer.
-The pointer is interpreted in one of two ways, depending on how its buffer
-has been set up: </p>
-<ul>
-<li id="GUID-8EB79399-9FAF-5CFE-9542-C015215B0D8D"><p>as a simple pointer
-to memory on the heap. </p> </li>
-<li id="GUID-645528B9-2786-59E1-9F6F-7DD875AE1B1E"><p>as a pointer to a previously
-created <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> heap descriptor; ownership of the <codeph>HBufC</codeph> descriptor
-buffer will have been transferred to the <codeph>RBuf</codeph>. </p> </li>
-</ul>
-<p>The way descriptors in Symbian platform are implemented allows <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> to
-distinguish between the two. </p>
-<p>The following drawing shows the internal representation of an <codeph>RBuf</codeph> object
-initialised with a string of five characters representing the English word
-"Hello". There are two possibilities: </p>
-<ul>
-<li id="GUID-3934910A-431A-582A-A117-3B1C497CE880"><p>the case where the buffer
-consists of simple memory, either allocated directly by the object itself,
-or assigned to it after having been allocated elsewhere. </p> </li>
-<li id="GUID-5AD86C97-66DF-5B88-95D7-2169D4CFD8A2"><p>the case where the buffer
-was originally allocated as a standard heap descriptor, a <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> type,
-and whose ownership has been transferred. </p> </li>
-</ul>
-<p>Remember that <codeph>RBuf</codeph> is derived from both <codeph>TDes</codeph> and <codeph>TDesC</codeph>,
-and these classes provide the data members the contain the maximum length
-and the current length of the data. </p>
-<fig id="GUID-50810FFC-9A97-5EC1-B6A6-7E371AEC9FF6">
-<image href="GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e224878_href.png" placement="inline"/>
-</fig>
-<p>While an <codeph>RBuf</codeph> descriptor has similarities to a heap descriptor,
-it behaves more like a standard 'R' type resource class, i.e. as a handle
-to a real resource maintained elsewhere. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5107ABD8-6408-5501-8073-ACAF3719247B" xml:lang="en"><title>Resizable
+buffer descriptors</title><shortdesc>Describes descriptor behaviour and resizable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A resizable buffer descriptor provides a buffer, allocated on the heap,
+to contain and access data. The data is not part of the descriptor object. </p>
+<p>The data represented by this descriptor can be both accessed and changed
+through the descriptor itself. Data is accessed through functions provided
+by the base class. The size of the buffer used by this descriptor can also
+be changed. Note that unlike dynamic buffers, reallocation is not done automatically;
+the descriptor provides an API that allows you to do reallocation. </p>
+<p>The descriptor has similarities to the standard heap descriptor,<xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>,
+but is <i>easier to use</i>. The standard heap descriptor is recommended for
+use when the data it represents rarely changes. The resizable buffer descriptor
+is recommended for use when the data changes frequently. </p>
+<p>This descriptor also has the following additional useful behaviour: </p>
+<ul>
+<li id="GUID-A40D7342-C864-51A3-B53B-DA73988501C2"><p>ownership of an existing
+heap descriptor can be transferred to a resizable buffer descriptor. </p> </li>
+<li id="GUID-63EA50EE-1DD4-5ABE-9676-0347E95F07CA"><p>ownership of memory
+that has already been allocated elsewhere can be transferred to a resizable
+buffer descriptor; this memory becomes the buffer used by the descriptor. </p> </li>
+<li id="GUID-D16CAA95-26A4-5B45-AEA2-58DDB28F16CB"><p>ownership of memory
+owned by a resizable buffer descriptor can be transferred to another resizable
+buffer descriptor. </p> </li>
+</ul>
+<p>The important point is that the user of the class need not be concerned
+about the 'origins' of the memory. </p>
+<p>A resizable buffer descriptor is supplied in two variants: </p>
+<ul>
+<li id="GUID-017A1851-A5FE-5179-87BC-0F0BF748761A"><p>a 16-bit variant, a <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>,
+to contain wide strings, and 16-bit wide data. </p> </li>
+<li id="GUID-55A2D978-C16A-58E7-BE55-9CB681484473"><p>an 8-bit variant, a <xref href="GUID-955061A8-A83E-39E5-8745-8FAC7DEA7BCC.dita"><apiname>RBuf8</apiname></xref>,
+to contain narrow strings and binary data. </p> </li>
+</ul>
+<p>There is also a build independent type, <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>. This is
+the type that is most commonly used in program code; this is set (i.e. typedef)
+to the appropriate 'real' variant at build time, and by default equates to <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>. </p>
+<p>You would use an explicit 8-bit variant for binary data. An explicit 16-bit
+variant is rarely used. </p>
+<p>When discussing a resizable buffer descriptor, we normally refer to <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>,
+rather than <xref href="GUID-955061A8-A83E-39E5-8745-8FAC7DEA7BCC.dita"><apiname>RBuf8</apiname></xref> or <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita"><apiname>RBuf16</apiname></xref>. We only
+refer to <codeph>RBuf8</codeph> or <codeph>RBuf16</codeph> when they explicitly
+need to be used. </p>
+<p>The following drawing shows how an <codeph>RBuf</codeph> type is constructed.
+It is derived from <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref> and <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref>; the
+member data of these base classes hold the length and maximum length for the
+descriptor data. <codeph>RBuf</codeph> itself only contains a single pointer.
+The pointer is interpreted in one of two ways, depending on how its buffer
+has been set up: </p>
+<ul>
+<li id="GUID-8EB79399-9FAF-5CFE-9542-C015215B0D8D"><p>as a simple pointer
+to memory on the heap. </p> </li>
+<li id="GUID-645528B9-2786-59E1-9F6F-7DD875AE1B1E"><p>as a pointer to a previously
+created <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> heap descriptor; ownership of the <codeph>HBufC</codeph> descriptor
+buffer will have been transferred to the <codeph>RBuf</codeph>. </p> </li>
+</ul>
+<p>The way descriptors in Symbian platform are implemented allows <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> to
+distinguish between the two. </p>
+<p>The following drawing shows the internal representation of an <codeph>RBuf</codeph> object
+initialised with a string of five characters representing the English word
+"Hello". There are two possibilities: </p>
+<ul>
+<li id="GUID-3934910A-431A-582A-A117-3B1C497CE880"><p>the case where the buffer
+consists of simple memory, either allocated directly by the object itself,
+or assigned to it after having been allocated elsewhere. </p> </li>
+<li id="GUID-5AD86C97-66DF-5B88-95D7-2169D4CFD8A2"><p>the case where the buffer
+was originally allocated as a standard heap descriptor, a <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> type,
+and whose ownership has been transferred. </p> </li>
+</ul>
+<p>Remember that <codeph>RBuf</codeph> is derived from both <codeph>TDes</codeph> and <codeph>TDesC</codeph>,
+and these classes provide the data members the contain the maximum length
+and the current length of the data. </p>
+<fig id="GUID-50810FFC-9A97-5EC1-B6A6-7E371AEC9FF6">
+<image href="GUID-2F0008EB-715C-50EC-87AD-C78619F44858_d0e221141_href.png" placement="inline"/>
+</fig>
+<p>While an <codeph>RBuf</codeph> descriptor has similarities to a heap descriptor,
+it behaves more like a standard 'R' type resource class, i.e. as a handle
+to a real resource maintained elsewhere. </p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226" xml:lang="en"><title>Circular
-Buffer structure</title><shortdesc>This document describes the structure of circular buffers.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>"Circular Buffers" is a sub-API of the "Buffers and strings" API.</p>
-<p>A circular buffer provides a simple way of implementing a fixed length
-queue of fixed size objects where objects are added to the head of the queue
-while items are removed from the tail of the queue.</p>
-<p>Logically, the buffer is circular with no defined start or end. Objects
-are always added to the buffer head and are always removed from the buffer
-tail. The buffer head is always the next vacant slot into which an object
-is added. The buffer tail is always the slot from which the next object is
-removed. The tail always logically follows the head and the implementation
-ensures that the tail never overtakes the head.</p>
-<fig id="GUID-18737BF9-5382-5431-8B3E-68C7CCD3DF86">
-<image href="GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e223645_href.png" placement="inline"/>
-</fig>
-<p>Physically, the buffer is a contiguous block of memory. The implementation
-provides the appearance of circularity.</p>
-<p>A circular buffer has a maximum capacity which must be set before the circular
-buffer can be used. The maximum capacity can be changed at any time but any
-existing data within the buffer is lost.</p>
-<p>The sub-API consists of three classes, two of which can be instantiated:</p>
-<ul>
-<li id="GUID-42FC2894-0995-578C-AE0D-0670CC63B242"><p>the templated class <codeph>CCirBuf&lt;class
-T&gt;</codeph> builds a circular buffer of general objects.</p> </li>
-<li id="GUID-C98B7B84-67D4-5616-A042-CFF16B26422F"><p>the <codeph>CCirBuffer</codeph> class
-builds a circular buffer of unsigned integers with values ranging from -128
-to +128.</p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5127C80E-EACE-5524-9A75-A0EFB41C2226" xml:lang="en"><title>Circular
+Buffer structure</title><shortdesc>This document describes the structure of circular buffers.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>"Circular Buffers" is a sub-API of the "Buffers and strings" API.</p>
+<p>A circular buffer provides a simple way of implementing a fixed length
+queue of fixed size objects where objects are added to the head of the queue
+while items are removed from the tail of the queue.</p>
+<p>Logically, the buffer is circular with no defined start or end. Objects
+are always added to the buffer head and are always removed from the buffer
+tail. The buffer head is always the next vacant slot into which an object
+is added. The buffer tail is always the slot from which the next object is
+removed. The tail always logically follows the head and the implementation
+ensures that the tail never overtakes the head.</p>
+<fig id="GUID-18737BF9-5382-5431-8B3E-68C7CCD3DF86">
+<image href="GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e219908_href.png" placement="inline"/>
+</fig>
+<p>Physically, the buffer is a contiguous block of memory. The implementation
+provides the appearance of circularity.</p>
+<p>A circular buffer has a maximum capacity which must be set before the circular
+buffer can be used. The maximum capacity can be changed at any time but any
+existing data within the buffer is lost.</p>
+<p>The sub-API consists of three classes, two of which can be instantiated:</p>
+<ul>
+<li id="GUID-42FC2894-0995-578C-AE0D-0670CC63B242"><p>the templated class <codeph>CCirBuf&lt;class
+T&gt;</codeph> builds a circular buffer of general objects.</p> </li>
+<li id="GUID-C98B7B84-67D4-5616-A042-CFF16B26422F"><p>the <codeph>CCirBuffer</codeph> class
+builds a circular buffer of unsigned integers with values ranging from -128
+to +128.</p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e5873_href.png has changed
Binary file Symbian3/SDK/Source/GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e7148_href.png has changed
Binary file Symbian3/SDK/Source/GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e215568_href.png has changed
Binary file Symbian3/SDK/Source/GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e219305_href.png has changed
Binary file Symbian3/SDK/Source/GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e135615_href.png has changed
Binary file Symbian3/SDK/Source/GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e142149_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e271836_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e275517_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e336843_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e343040_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096-master.png has changed
Binary file Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e52712_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e58798_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e108759_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e115297_href.png has changed
--- a/Symbian3/SDK/Source/GUID-51F43258-B3D8-5EC9-85EF-67F09499C253.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-51F43258-B3D8-5EC9-85EF-67F09499C253.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-51F43258-B3D8-5EC9-85EF-67F09499C253"><title>Alarm States</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section explains the various states of an alarm. </p> <p>At a given point of time, alarms can be in only one state, which is represented by <xref href="GUID-AA8C278D-B7E9-3DC5-8F9F-955C4368C862.dita"><apiname>TAlarmState</apiname></xref>. The following diagram is self-explanatory and represents the state transition of alarms: </p> <fig id="GUID-5EA45FAD-FEF5-575F-83D1-5607B44D5BD3"><title>
-          State Transition of Alarms
-        </title> <image href="GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e139445_href.png" placement="inline"/></fig> <p> </p> <section><title>See Also</title> <p><xref href="GUID-12A32F8E-0C53-5311-9B2B-8E0EA373ED08.dita">Types of Alarm</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-51F43258-B3D8-5EC9-85EF-67F09499C253"><title>Alarm States</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section explains the various states of an alarm. </p> <p>At a given point of time, alarms can be in only one state, which is represented by <xref href="GUID-AA8C278D-B7E9-3DC5-8F9F-955C4368C862.dita"><apiname>TAlarmState</apiname></xref>. The following diagram is self-explanatory and represents the state transition of alarms: </p> <fig id="GUID-5EA45FAD-FEF5-575F-83D1-5607B44D5BD3"><title>
+          State Transition of Alarms
+        </title> <image href="GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e132911_href.png" placement="inline"/></fig> <p> </p> <section><title>See Also</title> <p><xref href="GUID-12A32F8E-0C53-5311-9B2B-8E0EA373ED08.dita">Types of Alarm</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e63705_href.png has changed
Binary file Symbian3/SDK/Source/GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e68930_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e273833_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5223D1C1-CBBE-551A-AC57-CD94F9D1B9B6_d0e277514_href.png has changed
Binary file Symbian3/SDK/Source/GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427403_href.png has changed
Binary file Symbian3/SDK/Source/GUID-52743192-B1E0-5B71-B85B-43487F18F412_d0e427565_href.png has changed
Binary file Symbian3/SDK/Source/GUID-52783B69-09FC-4123-849A-79FF61406129_d0e38122_href.png has changed
Binary file Symbian3/SDK/Source/GUID-52783B69-09FC-4123-849A-79FF61406129_d0e43689_href.png has changed
Binary file Symbian3/SDK/Source/GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e357398_href.png has changed
Binary file Symbian3/SDK/Source/GUID-530AB0D9-BE70-5892-BFBA-213687CA62D1_d0e363478_href.png has changed
Binary file Symbian3/SDK/Source/GUID-53212F7A-938B-48F6-BC82-30F7494FF8A7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-53212F7A-938B-48F6-BC82-30F7494FF8A7_d0e82132_href.png has changed
Binary file Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e57718_href.png has changed
Binary file Symbian3/SDK/Source/GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e67159_href.png has changed
Binary file Symbian3/SDK/Source/GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e309152_href.png has changed
Binary file Symbian3/SDK/Source/GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e315546_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e76242_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5357F135-46B1-5C3F-BD2D-2E71D7BD0046_d0e82954_href.png has changed
--- a/Symbian3/SDK/Source/GUID-535954FD-2501-5C80-AD86-AC73A86B18B5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-535954FD-2501-5C80-AD86-AC73A86B18B5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-535954FD-2501-5C80-AD86-AC73A86B18B5"><title>Internalising a Swizzle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Internalising a Swizzle from a stream has assignment semantics.</p> <p>The process of internalisation assumes that the current position within the stream contains the external representation of a stream ID. The stream which corresponds to this ID contains the external representation of some object.</p> <p>The result is a Swizzle which represents the object by stream ID.</p> <p>The following code fragments illustrate the process. </p> <p><codeph>iB</codeph> is a <codeph>CClassB</codeph> type component of a class <codeph>CClassABC</codeph>, and is represented by a Swizzle. The data member is defined as:</p> <codeblock id="GUID-9941EE1B-A10C-5258-BA35-C78701B15A64" xml:space="preserve">class CCClassABC : public CBase
-    {
-    ...
-    TSwizzle&lt;CClassB&gt; iB;
-    ...
-    }
-</codeblock> <p>The example assumes that the stream ID of the swizzled object has been externalised as in <xref href="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita">Externalizing a Swizzle</xref>.</p> <p>CClassB's RestoreL() and InternalizeL() functions are implemented as:</p> <codeblock id="GUID-B3DD1B09-465F-5421-ACF4-768E12C8E6E2" xml:space="preserve">void CClassABC::RestoreL()
-          {
-          RStoreReadStream stream;
-          stream.OpenLC(iStore,iId);
-          InternalizeL(stream);
-          CleanupStack::PopAndDestroy();
-          }</codeblock> <codeblock id="GUID-3A9A58AD-A0F7-5707-B1CF-7F40B6C9ADC8" xml:space="preserve">void CClassABC::InternalizeL(RReadStream&amp; aStream)
-          {
-          ...
-          aStream &gt;&gt; iB; // internalises Swizzle from stream
-          ...
-          }</codeblock> <p>Here, <codeph>iId</codeph> is the stream ID containing <codeph>CClassABC</codeph> data.</p> <fig id="GUID-96F9A1CC-91BE-52A2-B9AE-F5BDC5308210"><image href="GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e363720_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-535954FD-2501-5C80-AD86-AC73A86B18B5"><title>Internalising a Swizzle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Internalising a Swizzle from a stream has assignment semantics.</p> <p>The process of internalisation assumes that the current position within the stream contains the external representation of a stream ID. The stream which corresponds to this ID contains the external representation of some object.</p> <p>The result is a Swizzle which represents the object by stream ID.</p> <p>The following code fragments illustrate the process. </p> <p><codeph>iB</codeph> is a <codeph>CClassB</codeph> type component of a class <codeph>CClassABC</codeph>, and is represented by a Swizzle. The data member is defined as:</p> <codeblock id="GUID-9941EE1B-A10C-5258-BA35-C78701B15A64" xml:space="preserve">class CCClassABC : public CBase
+    {
+    ...
+    TSwizzle&lt;CClassB&gt; iB;
+    ...
+    }
+</codeblock> <p>The example assumes that the stream ID of the swizzled object has been externalised as in <xref href="GUID-074F3499-54FE-58BC-A0F4-D8EA632AF76B.dita">Externalizing a Swizzle</xref>.</p> <p>CClassB's RestoreL() and InternalizeL() functions are implemented as:</p> <codeblock id="GUID-B3DD1B09-465F-5421-ACF4-768E12C8E6E2" xml:space="preserve">void CClassABC::RestoreL()
+          {
+          RStoreReadStream stream;
+          stream.OpenLC(iStore,iId);
+          InternalizeL(stream);
+          CleanupStack::PopAndDestroy();
+          }</codeblock> <codeblock id="GUID-3A9A58AD-A0F7-5707-B1CF-7F40B6C9ADC8" xml:space="preserve">void CClassABC::InternalizeL(RReadStream&amp; aStream)
+          {
+          ...
+          aStream &gt;&gt; iB; // internalises Swizzle from stream
+          ...
+          }</codeblock> <p>Here, <codeph>iId</codeph> is the stream ID containing <codeph>CClassABC</codeph> data.</p> <fig id="GUID-96F9A1CC-91BE-52A2-B9AE-F5BDC5308210"><image href="GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e357640_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e107147_href.png has changed
Binary file Symbian3/SDK/Source/GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e113685_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF" xml:lang="en"><title>CoverFlow: using ScreenPlay</title><shortdesc>This example application demonstrates creating semi-transparent
+UI content over OpenVG content that is rendered to a composition surface.
+This is only possible when ScreenPlay is enabled. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A512AE19-D921-47B7-86D7-1AE293365BC9-GENID-1-10-1-12-1-1-6-1-5-1-3-1"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-25ca392e-ce0c-414e-99aa-3f419cfe5170.zip" scope="external">GraphicsShell.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-25ca392e-ce0c-414e-99aa-3f419cfe5170.html" scope="peer">browse</xref> to view the example code. </p><p>The example
+is located in the <filepath>examples\Graphics\CoverFlow</filepath> directory.</p></section>
+<section id="GUID-12DAE9CC-9E18-40AA-A820-FBC86F179425-GENID-1-10-1-12-1-1-6-1-5-1-3-2"><title>Description</title> This code implements a 'coverflow' application. It uses OpenVG to
+display images while semi-transparent or transparent windows and controls
+are used to display overlaid content. The application does the following:
+  <ul>
+<li>Creates an EGL drawing surface by calling the <xref href="GUID-AFCD509C-11EA-305D-9E25-D5A8E4244CF1.dita"><apiname>eglCreateWindowSurface()</apiname></xref> function.</li>
+<li>Converts bitmap cover images to OpenVG images. </li>
+<li>Applies OpenVG transformations on the converted OpenVG images.</li>
+<li>Draws the transformed images on the EGL surface by calling the <xref href="GUID-D825614F-A95A-3BE3-9B31-5E76507AB79A.dita"><apiname>vgDrawImage()</apiname></xref> function.</li>
+<li>Draws the mirror image of bitmap cover images on the surface.</li>
+<li>Displays an incoming call animation and a moving ticker window
+in a separate active object. These are activated when relevant key
+press events are detected. It uses the invalidate and re-draw pattern
+of the window server to draw the contents on the window. </li>
+</ul>       The ScreenPlay graphics architecture uses a composition
+engine to display multiple overlaid windows. The composition engine
+takes multiple overlaid surfaces as input and creates a single screen
+buffer. For more information, see <xref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita">Graphics Composition</xref> and <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">The ScreenPlay
+Graphics Architecture</xref>.  </section>
+<section id="GUID-7CC504AD-E99D-419D-9A86-E5051B80705E"><b>Screenshots</b><fig id="GUID-0022F196-B3BD-5438-99C8-6EF0AA0D1E43-GENID-1-10-1-12-1-1-6-1-5-1-3-3-2">
+<title>           Basic Screenshot      </title>
+<image href="GUID-61BB12AA-7467-5633-8E4C-54D82AFF0F5E_d0e185528_href.jpg" placement="inline"/>
+</fig><fig id="GUID-C918E177-E2DF-4F76-A6AD-709B93959B9E">
+<title>Screenshot showing ticker and incoming call animation </title>
+<image href="GUID-59D86225-4727-5B3F-9117-7815B4900445_d0e185535_href.jpg" placement="inline"/>
+</fig><fig id="GUID-0B983730-C5C8-47DF-82FB-4A02624CEECD">
+<title>Screenshot showing the absence of the mirror surface </title>
+<image href="GUID-D84847BB-523D-5057-8F14-F6BCEECA2327_d0e185542_href.jpg" placement="inline"/>
+</fig></section>
+<section id="GUID-801DEEAD-37EC-4FE3-88C9-CBCFA7650E0A"><title>Class
+Summary</title><p>These are the principal classes used in this example:<ul>
+<li><codeph>CCoverFlowAppUi</codeph></li>
+<li><codeph>CEGLRendering</codeph></li>
+<li><codeph>MEngine</codeph></li>
+<li><codeph>CDialogBox</codeph></li>
+<li><codeph>COpenVGEngine</codeph></li>
+<li><codeph>CTicker</codeph></li>
+<li><codeph>CLoader</codeph></li>
+</ul></p></section>
+<section id="GUID-6F6FBA67-C8F1-4B55-9922-ADCF9CB0636A"><title>Design
+and Implementation</title><p><fig id="GUID-0022F196-B3BD-5438-99C8-6EF0AA0D1E43-GENID-1-10-1-12-1-1-6-1-5-1-3-5-2-1">
+<title>UML class diagram     </title>
+</fig><fig id="GUID-F08882AF-B171-4D56-A3E7-F510D87D9FEC">
+<image href="GUID-02970C7B-5B98-50C7-A324-0DDD71120DEB_d0e185592_href.png" placement="inline"/>
+</fig></p></section>
+<section id="GUID-11F1F1BF-F1DC-4876-B47A-275B07C645E3-GENID-1-10-1-12-1-1-6-1-5-1-3-6"><title>Building
+and running</title> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The Symbian build
+process</xref> describes how to build an application.</p></section>
+<section id="GUID-3D4FF2C6-91B8-4EFC-A008-DE4FEEF5938A"><title>Configuration
+settings for running the example on an Emulator or H4 board</title><ol>
+<li id="GUID-CC897C4A-15CF-4B05-ABF7-32A1A0C38AFA-GENID-1-10-1-12-1-1-6-1-5-1-3-7-2-1"><p>Change the <codeph>WINDOWMODE</codeph> parameter  to <codeph>Color16MAP </codeph>in <codeph>epoc32\release\winscw\&lt;udeb/urel&gt;\z\system\data\wsini.ini </codeph>(<codeph>epoc32\data\z\system\data\wsini.ini on the H4 board</codeph>).</p></li>
+<li id="GUID-CC897C4A-15CF-4B05-ABF7-32A1A0C38AFA-GENID-1-10-1-12-1-1-6-1-5-1-3-7-2-2"><p>The application
+cannot run if ScreenPlay is disabled. If it is not already enabled,
+you need to enable it. See <xref href="GUID-6D8A1FC7-095B-587E-8274-23C132978C53.dita">Enabling the Graphics
+Architecture Variants </xref>for more information.</p></li>
+<li id="GUID-B6E8CCB6-B71F-45AF-9BC5-6C79E30B74F6"><p>(Emulator only):
+Copy all <filepath>.mbm</filepath> (image) files from the <filepath>coverflow\gfx\call</filepath> directory to the <filepath>epoc32\release\winscw\&lt;udeb/urel&gt;\z\resource\apps</filepath> directory.</p></li>
+<li id="GUID-C8F36B2B-5B19-43A6-8F6C-75E2782C91EE"><p>Performance
+can be boosted significantly by switching to portrait mode, which
+is the native mode for the LCD controller. To enable portrait mode,
+uncomment the following line in the <filepath>coverflowapp.mmp</filepath>:</p><codeblock xml:space="preserve">// MACRO PORTRAIT_MODE</codeblock></li>
+<li id="GUID-7070197E-8E9C-450E-B9AC-5CE8846CE382"><p>Add the following
+configuration statements to the <filepath>epoc32\data\epoc.ini</filepath> to run the example in portrait mode. </p><codeblock xml:space="preserve">screenwidth 240
+screenheight 320
+fasciabitmap null.bmp
+screenoffsetx 0
+screenoffsety 0</codeblock></li>
+</ol></section>
+
+
+<section id="GUID-0ECB73AE-87F0-449A-8F3E-7959794F52DC"><title>Running
+and using the example</title><p><ol>
+<li id="GUID-D819C144-751D-4FD6-8229-4EFF00F379D1">Run <filepath>coverflowapp.exe</filepath>.</li>
+<li id="GUID-076DD732-5AD6-471C-8E93-33992A44A92D">Press the Left
+or the Right arrow key to navigate through the covers.</li>
+<li id="GUID-985331D6-029A-4777-B006-9A4F370827B1">Press the Down
+arrow key to show or hide the Ticker at the bottom of the screen.</li>
+<li id="GUID-746C8166-2BBB-435F-A6D5-61ED86045F0C">Press the Up arrow
+key to show or hide the incoming call animation.   </li>
+<li id="GUID-29369361-B50F-499D-9B50-D81E5151A3A1">Press the Tab key
+to show or hide the semi-transparent green window around the incoming
+call animation.</li>
+<li id="GUID-0DED8319-2F36-42BB-998C-291A3E4ADA9A">Press the Backspace
+key to show or hide mirror images of the covers. </li>
+</ol>   </p></section>
+
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e230704_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5398C2DC-9AFA-5517-BCBF-5964970B9656_d0e234441_href.png has changed
Binary file Symbian3/SDK/Source/GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e281197_href.png has changed
Binary file Symbian3/SDK/Source/GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e284883_href.png has changed
--- a/Symbian3/SDK/Source/GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE"><title>Playing Audio</title><shortdesc>This tutorial describes you how to start playing, pausing and resuming, stopping, retrieving the number of samples in the audio data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><prereq id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-8-1-18-1-1-11-1-5-1-4-1-5-1-5-1-4-1-3-1"><p>Before you start, you must: </p> <ul><li id="GUID-5603BB0D-DA89-53CD-B855-E7ED172664FC"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to which the DevSound library belongs. </p> </li> <li id="GUID-24A98687-F6A9-526A-8407-6E12336EB967"><p>Understand the architectural relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. </p> </li> </ul> </prereq> <context id="GUID-2D44831D-8BB7-5468-AD52-182F4F7ED856"><p>You can perform various functionality in DevSound audio playing that are listed in the below section. </p> </context> <steps id="GUID-E54500DF-7C1B-56FF-B592-FDEF0846BF43"><step id="GUID-CA4439C0-A748-5B4D-A97F-10530E2ABF40"><cmd/><info><xref href="GUID-8CCA6352-DC3D-5BFE-9AAF-B70173DF2558.dita">Starting Audio Play</xref>  </info> </step> <step id="GUID-C877C0D2-2F4A-56F5-AEF5-A463846E8979"><cmd/><info><xref href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita">Pausing and Resuming Audio Play</xref>  </info> </step> <step id="GUID-B4FECB20-A540-5D45-A605-F20299D98ACB"><cmd/><info><xref href="GUID-A5B74E5C-A26F-5699-8885-3C7F3121FAD6.dita">Stopping Audio Play</xref>  </info> </step> <step id="GUID-2F784A08-7CDE-54B1-8FA6-B3BDCCBF7104"><cmd/><info><xref href="GUID-57412030-6B02-592A-81D5-54D2767ED131.dita">Retrieving Audio Play Samples</xref>  </info> </step> </steps> </taskbody><related-links><link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Recording Audio</linktext> </link> <link href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita"><linktext>Playing Tones</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task xml:lang="en" id="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE"><title>Playing Audio</title><shortdesc>This tutorial describes you how to start playing, pausing and resuming, stopping, retrieving the number of samples in the audio data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><prereq id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-10-1-19-1-1-12-1-5-1-4-1-5-1-5-1-4-1-3-1"><p>Before you start, you must: </p> <ul><li id="GUID-5603BB0D-DA89-53CD-B855-E7ED172664FC"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to which the DevSound library belongs. </p> </li> <li id="GUID-24A98687-F6A9-526A-8407-6E12336EB967"><p>Understand the architectural relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. </p> </li> </ul> </prereq> <context id="GUID-2D44831D-8BB7-5468-AD52-182F4F7ED856"><p>You can perform various functionality in DevSound audio playing that are listed in the below section. </p> </context> <steps id="GUID-E54500DF-7C1B-56FF-B592-FDEF0846BF43"><step id="GUID-CA4439C0-A748-5B4D-A97F-10530E2ABF40"><cmd/><info><xref href="GUID-8CCA6352-DC3D-5BFE-9AAF-B70173DF2558.dita">Starting Audio Play</xref>  </info> </step> <step id="GUID-C877C0D2-2F4A-56F5-AEF5-A463846E8979"><cmd/><info><xref href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita">Pausing and Resuming Audio Play</xref>  </info> </step> <step id="GUID-B4FECB20-A540-5D45-A605-F20299D98ACB"><cmd/><info><xref href="GUID-A5B74E5C-A26F-5699-8885-3C7F3121FAD6.dita">Stopping Audio Play</xref>  </info> </step> <step id="GUID-2F784A08-7CDE-54B1-8FA6-B3BDCCBF7104"><cmd/><info><xref href="GUID-57412030-6B02-592A-81D5-54D2767ED131.dita">Retrieving Audio Play Samples</xref>  </info> </step> </steps> </taskbody><related-links><link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Recording Audio</linktext> </link> <link href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita"><linktext>Playing Tones</linktext> </link> </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C" xml:lang="en"><title>Always-editable
-forms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In case the View state is not useful, the form can be specified as Edit-state
-only. Then the user can edit the fields right away when entering the form,
-and accepting the form returns into a state outside the form instead of the
-View state.</p>
-<fig id="GUID-B1001721-7F3A-4F15-9371-67D485B4E29B">
-<title>Form in the Edit state</title>
-<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e64001_href.png" placement="inline"/>
-</fig>
-<p/>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-53C71C87-BFD9-4C9A-8A90-6735494F300C" xml:lang="en"><title>Always-editable
+forms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In case the View state is not useful, the form can be specified as Edit-state
+only. Then the user can edit the fields right away when entering the form,
+and accepting the form returns into a state outside the form instead of the
+View state.</p>
+<fig id="GUID-B1001721-7F3A-4F15-9371-67D485B4E29B">
+<title>Form in the Edit state</title>
+<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e56285_href.png" placement="inline"/>
+</fig>
+<p/>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e228979_href.png has changed
Binary file Symbian3/SDK/Source/GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e232716_href.png has changed
Binary file Symbian3/SDK/Source/GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e164369_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e170970_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF" xml:lang="en"><title>Scaling
-and positioning of controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EF8CA4BE-130F-4117-9722-3F652DD1D244"> <p>Interface elements
-a user has to select and manipulate should not be smaller than the smallest
-average finger pad, that is, no smaller than 1 cm (0.4") in diameter or a
-1 cm × 1 cm square.</p> <p>In the Symbian platform, UI style defines the minimum
-sizes for a UI element considered as finger usable:</p><ul>
-<li><p>7 x 7 mm with 1 mm gaps for index finger usage</p></li>
-<li><p>8 x 8 mm with 2 mm gaps for thumb usage</p></li>
-<li><p>List type of components should have minimum of 5 mm line spacing</p></li>
-</ul><p>The width of a finger limits the density of items on screen. If the
-items are too close, the user will not be able to choose a single one.</p><p>As
-the probability of the user touching the higher end of the button (than on
-the either side of the key) is high, button and icon sizes can be increased
-vertically.</p><p>Essential information or features, such as a label, instructions,
-or sub-controls should never be placed below an interface element that can
-be touched, as it may be hidden by the user's finger.</p><fig id="GUID-6D8108A5-9009-443D-9DF9-FA7AEFE1AD43">
-<image href="GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e75057_href.png" placement="inline"/>
-</fig>Following are some useful tips that can be used while placing essential
-information or features on interface element:<ul>
-<li><p>With interfaces having input devices, it makes sense to place targets
-like menu items on the edges of screens because the cursor movement stops
-at the edge of the screen. </p></li>
-<li><p>When using a touch screen, a user seldom drags the finger across the
-screen like a cursor. Instead, they most likely lift their finger and place
-it on a new target. Users may have difficulties in reaching the objects located
-on the edges of the screen, especially if the physical device has protruding
-edges around the touch screen panel. Additionally, with some devices, the
-screen edges may be less sensitive to register the touch input.</p></li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5486EFD3-4660-4C19-A007-286DE48F6EEF" xml:lang="en"><title>Scaling
+and positioning of controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-EF8CA4BE-130F-4117-9722-3F652DD1D244"> <p>Interface elements
+a user has to select and manipulate should not be smaller than the smallest
+average finger pad, that is, no smaller than 1 cm (0.4") in diameter or a
+1 cm × 1 cm square.</p> <p>In the Symbian platform, UI style defines the minimum
+sizes for a UI element considered as finger usable:</p><ul>
+<li><p>7 x 7 mm with 1 mm gaps for index finger usage</p></li>
+<li><p>8 x 8 mm with 2 mm gaps for thumb usage</p></li>
+<li><p>List type of components should have minimum of 5 mm line spacing</p></li>
+</ul><p>The width of a finger limits the density of items on screen. If the
+items are too close, the user will not be able to choose a single one.</p><p>As
+the probability of the user touching the higher end of the button (than on
+the either side of the key) is high, button and icon sizes can be increased
+vertically.</p><p>Essential information or features, such as a label, instructions,
+or sub-controls should never be placed below an interface element that can
+be touched, as it may be hidden by the user's finger.</p><fig id="GUID-6D8108A5-9009-443D-9DF9-FA7AEFE1AD43">
+<image href="GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e69973_href.png" placement="inline"/>
+</fig>Following are some useful tips that can be used while placing essential
+information or features on interface element:<ul>
+<li><p>With interfaces having input devices, it makes sense to place targets
+like menu items on the edges of screens because the cursor movement stops
+at the edge of the screen. </p></li>
+<li><p>When using a touch screen, a user seldom drags the finger across the
+screen like a cursor. Instead, they most likely lift their finger and place
+it on a new target. Users may have difficulties in reaching the objects located
+on the edges of the screen, especially if the physical device has protruding
+edges around the touch screen panel. Additionally, with some devices, the
+screen edges may be less sensitive to register the touch input.</p></li>
+</ul> </section>
+<section id="GUID-8974B60A-15AA-49DD-BC40-04D31CBA5205"><title>Finger usable UI</title><p>Sylus can be used as
+the input method with touch UI, but events apply to finger use also. However,
+in some cases the components may not be finger optimized due to the size of
+objects, for example, virtual keyboard or text field.</p><p>In Symbian, UI
+style defines the target minimum sizes for a UI element considered as finger
+usable:</p><ul>
+<li><p>7 x 7 mm with 1 mm gaps for index finger usage </p></li>
+<li><p>8 x 8 mm with 2 mm gaps for thumb usage </p></li>
+<li><p>List type of components should have minimum of 5 mm line spacing</p></li>
+</ul><p>Targets are general as in practice sizes can be use case dependent,
+for example, due to frequency of use, efficiency vs. error criticality or
+ease of error correction, location of the button (edge of screen vs. center).</p><p>The
+visible area of the component and the component's active area should be identical.
+There are exception cases to this rule though:</p><ul>
+<li><p>When components are located near the edge of the display, the touchable
+area should extend fully to the edge of the display (beyond the components
+visible graphics). </p></li>
+<li><p>Visible area is smaller than the active area in order to keep the balance
+in look and feel of the UI. For example, scrollbar has wider touch area than
+visible area. </p></li>
+<li><p>Active area is smaller than the visible area in order to avoid unwanted
+presses to contiguous active areas. In this case, there it should be graphically
+indicated where the user should tap. Example: fixed toolbar buttons in landscape
+layout.</p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D"><title>Bitmap Devices and Contexts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The BitGDI API provides extensions for bitmap devices of the abstract drawing device and context interfaces defined in the GDI API. The key interfaces defined by it, used for drawing on the screen, are in fact abstract. The Window Server provides concrete classes for on-screen drawing which derive from these interfaces. The concrete device and context classes that the API does provide are normally only used by applications to draw to in-memory bitmaps. </p> <section><title>Bitmap graphics context</title> <p> <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> specializes a GDI context (<xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>) for bitmap graphics. It provides extra functionality for: </p> <ul><li id="GUID-CA567C8D-75A2-5541-AB6D-44B3FA2829CF"><p>clearing and copying rectangular areas </p> </li> <li id="GUID-79354D71-D97C-5DB6-89B1-25DCC7D6B9A6"><p>bitmap block transfer </p> </li> <li id="GUID-07452A62-0F2A-54BF-AEC2-D7A27143B917"><p>setting pen color to a grey level </p> </li> <li id="GUID-2F47B9C7-57B4-5B21-9A57-1553D1515819"><p>setting the shadow mode </p> </li> <li id="GUID-10B7AF69-1D9D-557C-95BF-BE619E524C73"><p>resetting the GC settings to their default values </p> </li> </ul> <p>The Window Server client-side API provides one implementation, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>, used for screen drawing. Another implementation, <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita"><apiname>CFbsBitGc</apiname></xref>, is used for drawing to in-memory bitmaps. </p> <fig id="GUID-BD3D2320-242C-5319-8AF2-358001AC0D71"><image href="GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e208603_href.png" placement="inline"/></fig> </section> <section><title>Bitmap graphics device</title> <p> <codeph>CBitmapDevice</codeph> specializes a graphics device (<xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref>) for bitmap graphics. </p> <p>The Window Server client-side API provides one implementation, <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref>, for screen drawing. Another implementation, <xref href="GUID-71D27EBD-26B8-3D51-9798-1EAD461BCBCF.dita"><apiname>CFbsBitmapDevice</apiname></xref>, is used for drawing to in-memory bitmaps. A third, <xref href="GUID-B229156F-2344-3F46-8542-AC65882D80DE.dita"><apiname>CFbsScreenDevice</apiname></xref>, is used (rarely) to access the screen directly, without the mediation of the window server. </p> <fig id="GUID-79B68A26-59CC-5915-AB2D-90338FBF1E9B"><image href="GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e208636_href.png" placement="inline"/></fig> </section> <section><title>Screen driver information</title> <p>The screen width and height must be a multiple of four. In certain cases where the screen mode would result in a scanline (the scanline runs in the current horizontal direction of the screen) not being divisible by a whole word (32 bits) the screen width must also be a multiple of 16. This restriction will also apply to the height if there is a screen-size mode with a rotation of 90 or 270 (or both) </p> <p>For example, the screen mode <codeph>EGray4</codeph> is 2 bits per pixel, therefore one word would be 16 pixels, so in order for the scanline to be a whole number of words the width must be a multiple of 16. </p> <p>The vertical height is unrestricted unless there is at least one screen-size mode with a rotation of 90 or 270 (or both). </p> </section> </conbody><related-links><link href="GUID-75B0B7C7-37B7-57D1-8EAA-8303A915A9DD.dita"><linktext>Bitmaps</linktext> </link> <link href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita"><linktext>BitGDI Component</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-54EB6658-D2C1-514B-B9F1-BAB541A2972D"><title>Bitmap Devices and Contexts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The BitGDI API provides extensions for bitmap devices of the abstract drawing device and context interfaces defined in the GDI API. The key interfaces defined by it, used for drawing on the screen, are in fact abstract. The Window Server provides concrete classes for on-screen drawing which derive from these interfaces. The concrete device and context classes that the API does provide are normally only used by applications to draw to in-memory bitmaps. </p> <section><title>Bitmap graphics context</title> <p> <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> specializes a GDI context (<xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>) for bitmap graphics. It provides extra functionality for: </p> <ul><li id="GUID-CA567C8D-75A2-5541-AB6D-44B3FA2829CF"><p>clearing and copying rectangular areas </p> </li> <li id="GUID-79354D71-D97C-5DB6-89B1-25DCC7D6B9A6"><p>bitmap block transfer </p> </li> <li id="GUID-07452A62-0F2A-54BF-AEC2-D7A27143B917"><p>setting pen color to a grey level </p> </li> <li id="GUID-2F47B9C7-57B4-5B21-9A57-1553D1515819"><p>setting the shadow mode </p> </li> <li id="GUID-10B7AF69-1D9D-557C-95BF-BE619E524C73"><p>resetting the GC settings to their default values </p> </li> </ul> <p>The Window Server client-side API provides one implementation, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>, used for screen drawing. Another implementation, <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita"><apiname>CFbsBitGc</apiname></xref>, is used for drawing to in-memory bitmaps. </p> <fig id="GUID-BD3D2320-242C-5319-8AF2-358001AC0D71"><image href="GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e203595_href.png" placement="inline"/></fig> </section> <section><title>Bitmap graphics device</title> <p> <codeph>CBitmapDevice</codeph> specializes a graphics device (<xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref>) for bitmap graphics. </p> <p>The Window Server client-side API provides one implementation, <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref>, for screen drawing. Another implementation, <xref href="GUID-71D27EBD-26B8-3D51-9798-1EAD461BCBCF.dita"><apiname>CFbsBitmapDevice</apiname></xref>, is used for drawing to in-memory bitmaps. A third, <xref href="GUID-B229156F-2344-3F46-8542-AC65882D80DE.dita"><apiname>CFbsScreenDevice</apiname></xref>, is used (rarely) to access the screen directly, without the mediation of the window server. </p> <fig id="GUID-79B68A26-59CC-5915-AB2D-90338FBF1E9B"><image href="GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e203628_href.png" placement="inline"/></fig> </section> <section><title>Screen driver information</title> <p>The screen width and height must be a multiple of four. In certain cases where the screen mode would result in a scanline (the scanline runs in the current horizontal direction of the screen) not being divisible by a whole word (32 bits) the screen width must also be a multiple of 16. This restriction will also apply to the height if there is a screen-size mode with a rotation of 90 or 270 (or both) </p> <p>For example, the screen mode <codeph>EGray4</codeph> is 2 bits per pixel, therefore one word would be 16 pixels, so in order for the scanline to be a whole number of words the width must be a multiple of 16. </p> <p>The vertical height is unrestricted unless there is at least one screen-size mode with a rotation of 90 or 270 (or both). </p> </section> </conbody><related-links><link href="GUID-75B0B7C7-37B7-57D1-8EAA-8303A915A9DD.dita"><linktext>Bitmaps</linktext> </link> <link href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita"><linktext>BitGDI Component</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e191959_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e196967_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-5546C1F6-2110-5031-99BC-66E6958D513B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5546C1F6-2110-5031-99BC-66E6958D513B" xml:lang="en"><title>EchoClientEngine:
+TCP/IP Echo Client Engine</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Download</title> <p>Example download as well as source
+code located at: <xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">EchoClientUI</xref>.</p> </section>
+<section><title>Description</title> <p>The TCP example is a client for the
+simple Echo protocol. A server implementing this protocol, defined in RFC862,
+simply listens on port 7 for incoming data, and returns it to the client.
+EchoClientEngine is a DLL that implements the engine component of the client.
+It contains active object classes that encapsulate reading, writing and connect
+operations. The related example project <xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">EchoClientUI</xref> provides
+a GUI interface to drive the engine. </p> </section>
+<section><title>Class summary</title><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ </apiname></xref>  <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver </apiname></xref>  <xref href="GUID-C625E339-6726-3FB9-8F8A-F4DB0CAC15FF.dita"><apiname>TNameEntry </apiname></xref>  <xref href="GUID-567CF5B5-464F-37B7-A91E-6A672C39BA44.dita"><apiname>TNameRecord </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer </apiname></xref>  </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e336970_href.png has changed
Binary file Symbian3/SDK/Source/GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e343167_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e75879_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5598B53F-2A6D-5813-913C-94B2AB36134E_d0e82591_href.png has changed
--- a/Symbian3/SDK/Source/GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782" xml:lang="en"><title>Tutorials</title><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782" xml:lang="en"><title>Tutorials</title><shortdesc>The tutorials in this section show you how to use the Camera API.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Camera API allows your application to use the device camera to capture
+still images and video clips, and store them in the internal memory or on
+removable media. You can implement applications that make use of the camera
+to capture images, record videos, or use the display as a viewfinder. To capture
+images or to record videos, you need a combination of Symbian APIs and classes,
+and device-specific components. </p>
+<p> <b>Note</b>: The functionality that can be obtained through
+the Camera API is hardware dependent. The API includes functions you can call
+to check if functionality is available before using it. </p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1" xml:lang="en"><title>S60
-Platform: Camera Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-737B3B28-3FB0-5A2B-B451-C6B0001F24DE-GENID-1-8-1-18-1-1-4-1-5-1-2-1"><title>Description</title> <p>This
-Symbian C++ code example demonstrates how to easily use the onboard camera
-with zoom and autofocus, utilising an accompanying CameraWrapper made by Forum
-Nokia. The Camera Wrapper supports all Nokia's S60 devices based on S60 3rd
-Edition and newer, providing a unified interface for various Symbian and S60
-camera APIs some of which have previously been Feature Pack specific or only
-available via an SDK plug-in. The example application supports the use of
-both the keypad and touch UI. The application can be self-signed, but it also
-provides an option to use the dedicated camera key (Symbian signing required).
-The example application replaces the separate examples published for S60 3rd
-Edition, FP1 (S60 Platform: Camera Example with AutoFocus Support v2.2) and
-FP2 (S60 Camera Example AutoFocus 3rd Ed FP2). For more detils, click this
-link :<xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/9a3e1226-79db-4c8e-bd70-7d9d22aaa6eb/S60_Platform_Camera_Example.html" scope="external">CameraExample.zip file</xref> </p> </section>
-<section id="GUID-17688314-BBF3-4972-AFBC-FD921F63CF6D-GENID-1-8-1-18-1-1-4-1-5-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b491ac90-54d1-4183-8004-70ae0725468d.zip" scope="external">CameraExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b491ac90-54d1-4183-8004-70ae0725468d.html" scope="peer">browse </xref> to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-5-1-5-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-5-1-5-1-4-1-3-1" xml:lang="en"><title>S60
-Platform: Camera Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-737B3B28-3FB0-5A2B-B451-C6B0001F24DE-GENID-1-8-1-18-1-1-5-1-5-1-4-1-3-1-2-1"><title>Description</title> <p>This
-Symbian C++ code example demonstrates how to easily use the onboard camera
-with zoom and autofocus, utilising an accompanying CameraWrapper made by Forum
-Nokia. The Camera Wrapper supports all Nokia's S60 devices based on S60 3rd
-Edition and newer, providing a unified interface for various Symbian and S60
-camera APIs some of which have previously been Feature Pack specific or only
-available via an SDK plug-in. The example application supports the use of
-both the keypad and touch UI. The application can be self-signed, but it also
-provides an option to use the dedicated camera key (Symbian signing required).
-The example application replaces the separate examples published for S60 3rd
-Edition, FP1 (S60 Platform: Camera Example with AutoFocus Support v2.2) and
-FP2 (S60 Camera Example AutoFocus 3rd Ed FP2). For more detils, click this
-link :<xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/9a3e1226-79db-4c8e-bd70-7d9d22aaa6eb/S60_Platform_Camera_Example.html" scope="external">CameraExample.zip file</xref> </p> </section>
-<section id="GUID-17688314-BBF3-4972-AFBC-FD921F63CF6D-GENID-1-8-1-18-1-1-5-1-5-1-4-1-3-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b491ac90-54d1-4183-8004-70ae0725468d.zip" scope="external">CameraExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b491ac90-54d1-4183-8004-70ae0725468d.html" scope="peer">browse </xref> to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551" xml:lang="en"><title>Camera
+Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-737B3B28-3FB0-5A2B-B451-C6B0001F24DE"><title>Description</title> <p>This
+Symbian C++ code example demonstrates how to easily use the onboard camera
+with zoom and autofocus, utilising an accompanying CameraWrapper made by the
+example. The example application supports the use of both the
+keypad and touch UI. The application can be self-signed, but it also provides
+an option to use the dedicated camera key (Symbian signing required). </p> </section>
+<section id="GUID-17688314-BBF3-4972-AFBC-FD921F63CF6D"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b491ac90-54d1-4183-8004-70ae0725468d.zip" scope="external">CameraExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b491ac90-54d1-4183-8004-70ae0725468d.html" scope="peer">browse </xref> to view the example code. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13"><title>Overview</title><shortdesc>This topic describes memory management in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Introduction</title> <p>The Communications Framework preallocates memory area buffers to increase the performance of its Data Plane. When a Comms Data Plane component needs a buffer, it asks for one from its pond. The pond contains pools of buffers : each pool contains buffers of a different size, and all the buffers in a pool have the same size. If the pond doesn't have a big enough buffer, it will string together a chain of smaller buffers to meet the request. </p> <p>The Communications Framework uses shared buffers. The Data Plane has strong performance requirements, and using shared buffers helps to avoid the memory copy that occurs between the kernel memory context and the Communications stack. </p> </section> <section id="GUID-9D1B3001-1B30-5CCE-A664-D0EEB53A4A9A"><title>Definitions</title> <dl><dlentry><dt>Comms buffer (MBuf)</dt> <dd><p>A Comms buffer, or MBuf, is a contiguous memory area used to store data on the Data Plane. It is represented by an <xref href="GUID-E0ADB108-D3B2-3670-907D-2AE595BECE3F.dita"><apiname>RMBuf</apiname></xref> object, which combines a shared buffer with metadata. See <xref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita">Shared buffers</xref> and <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> <fig id="GUID-6BD84148-1DC7-5FAD-A150-6FE4832A9420"><title>
-                  Comms buffer 
-                </title> <image href="GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e113621_href.png" placement="inline"/></fig> </dd> </dlentry> <dlentry><dt>Comms buffer chain</dt> <dd><p>A Comms buffer chain links together one or more Comms buffers. This decreases memory consumption because there is no need to reserve space for temporary large buffers, which can be created from a chain of smaller buffers. The chain is represented by a <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita"><apiname>RMBufChain</apiname></xref> object. For more information, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> </dd> </dlentry> <dlentry><dt>Pool</dt> <dd><p>Pre-allocated collection of shared buffers. See <xref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita">Shared buffers</xref>. </p> <p>The buffers of a pool all have the same size. Depending on the amount of used buffers, the pool dynamically grows and shrinks by a set number of buffers, which reduces the frequency of expensive memory allocation and reduces memory usage when possible. </p> </dd> </dlentry> <dlentry><dt>Pond</dt> <dd><p>The pond is a collection of pools. It is an <codeph>RCommsBufPond</codeph> object which keeps track of the memory available in the pools and allocates all the Comms buffer chains by taking buffers from the appropriate pools. </p> <p>The memory provided by the pond is available to all the layers of the Comms Framework as well as to the drivers underneath the lower layer. Therefore, the Comms Framework components and the drivers can exchange data without additional memory copies. </p> <p>At the moment, there is only one pond in the Comms Framework. </p> <p>For more information, see <xref href="GUID-81E532DF-4702-5881-9E1B-E6537425B4E2.dita">Advanced Pond Guide</xref>. </p> <fig id="GUID-D991B970-86AC-5970-B32E-08791791CCF5"><title>
-                  Pond contents 
-                </title> <image href="GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e113685_href.png" placement="inline"/></fig> </dd> </dlentry> </dl> </section> <section id="GUID-56ED5265-463D-5C47-9F74-1939E9D9051C"><title>Typical usage</title> <p>Depending on where your component is in the Data Plane, you handle Comms buffers in a different way: </p> <ul><li id="GUID-EE357CF1-1F05-5F86-9F8B-0E39F945617D"><p>Protocol plugins manipulate the data plane flow represented by buffer chains. They obtain a buffer chain from another layer (up or down), process the chain, and send the chain to the next layer in the stack. Link layer components belong to that category. </p> <p>See <xref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita">Data Access Example</xref>. </p> </li> <li id="GUID-7047B580-A3E9-5807-BB48-9AF60BFCE2DC"><p>Data source components, either at the top or at the bottom of the Comms Framework, create buffer chains and send them through the Data Plane. Device drivers belong to that category. </p> <p>See <xref href="GUID-F0891698-F714-55AA-A089-790BB0B07AE4.dita">Allocation Tutorial</xref> and <xref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita">TLS Look-up Reduction Tutorial</xref>. </p> </li> </ul> <p>In order to increase performance and decrease memory consumption with Comms buffers, you need to configure the pond according to your memory usage. For more information, see <xref href="GUID-81E532DF-4702-5881-9E1B-E6537425B4E2.dita">Advanced Pond Guide</xref> and <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita">Pond Configuration Reference</xref>. </p> <p>To monitor the pond and its available memory, see <xref href="GUID-0995EBF6-D203-57B3-9F53-972AEB8F3D3C.dita">Memory Metrics</xref>. </p> </section> </conbody><related-links><link href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita"><linktext>Shared Buffers</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
-                and Comms Chains</linktext> </link> <link href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita"><linktext>Advanced Pond
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13"><title>Overview</title><shortdesc>This topic describes memory management in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Introduction</title> <p>The Communications Framework preallocates memory area buffers to increase the performance of its Data Plane. When a Comms Data Plane component needs a buffer, it asks for one from its pond. The pond contains pools of buffers : each pool contains buffers of a different size, and all the buffers in a pool have the same size. If the pond doesn't have a big enough buffer, it will string together a chain of smaller buffers to meet the request. </p> <p>The Communications Framework uses shared buffers. The Data Plane has strong performance requirements, and using shared buffers helps to avoid the memory copy that occurs between the kernel memory context and the Communications stack. </p> </section> <section id="GUID-9D1B3001-1B30-5CCE-A664-D0EEB53A4A9A"><title>Definitions</title> <dl><dlentry><dt>Comms buffer (MBuf)</dt> <dd><p>A Comms buffer, or MBuf, is a contiguous memory area used to store data on the Data Plane. It is represented by an <xref href="GUID-E0ADB108-D3B2-3670-907D-2AE595BECE3F.dita"><apiname>RMBuf</apiname></xref> object, which combines a shared buffer with metadata. See <xref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita">Shared buffers</xref> and <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> <fig id="GUID-6BD84148-1DC7-5FAD-A150-6FE4832A9420"><title>
+                  Comms buffer 
+                </title> <image href="GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e107083_href.png" placement="inline"/></fig> </dd> </dlentry> <dlentry><dt>Comms buffer chain</dt> <dd><p>A Comms buffer chain links together one or more Comms buffers. This decreases memory consumption because there is no need to reserve space for temporary large buffers, which can be created from a chain of smaller buffers. The chain is represented by a <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita"><apiname>RMBufChain</apiname></xref> object. For more information, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> </dd> </dlentry> <dlentry><dt>Pool</dt> <dd><p>Pre-allocated collection of shared buffers. See <xref href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita">Shared buffers</xref>. </p> <p>The buffers of a pool all have the same size. Depending on the amount of used buffers, the pool dynamically grows and shrinks by a set number of buffers, which reduces the frequency of expensive memory allocation and reduces memory usage when possible. </p> </dd> </dlentry> <dlentry><dt>Pond</dt> <dd><p>The pond is a collection of pools. It is an <codeph>RCommsBufPond</codeph> object which keeps track of the memory available in the pools and allocates all the Comms buffer chains by taking buffers from the appropriate pools. </p> <p>The memory provided by the pond is available to all the layers of the Comms Framework as well as to the drivers underneath the lower layer. Therefore, the Comms Framework components and the drivers can exchange data without additional memory copies. </p> <p>At the moment, there is only one pond in the Comms Framework. </p> <p>For more information, see <xref href="GUID-81E532DF-4702-5881-9E1B-E6537425B4E2.dita">Advanced Pond Guide</xref>. </p> <fig id="GUID-D991B970-86AC-5970-B32E-08791791CCF5"><title>
+                  Pond contents 
+                </title> <image href="GUID-536B2F20-DB19-595C-A465-25CF2E421050_d0e107147_href.png" placement="inline"/></fig> </dd> </dlentry> </dl> </section> <section id="GUID-56ED5265-463D-5C47-9F74-1939E9D9051C"><title>Typical usage</title> <p>Depending on where your component is in the Data Plane, you handle Comms buffers in a different way: </p> <ul><li id="GUID-EE357CF1-1F05-5F86-9F8B-0E39F945617D"><p>Protocol plugins manipulate the data plane flow represented by buffer chains. They obtain a buffer chain from another layer (up or down), process the chain, and send the chain to the next layer in the stack. Link layer components belong to that category. </p> <p>See <xref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita">Data Access Example</xref>. </p> </li> <li id="GUID-7047B580-A3E9-5807-BB48-9AF60BFCE2DC"><p>Data source components, either at the top or at the bottom of the Comms Framework, create buffer chains and send them through the Data Plane. Device drivers belong to that category. </p> <p>See <xref href="GUID-F0891698-F714-55AA-A089-790BB0B07AE4.dita">Allocation Tutorial</xref> and <xref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita">TLS Look-up Reduction Tutorial</xref>. </p> </li> </ul> <p>In order to increase performance and decrease memory consumption with Comms buffers, you need to configure the pond according to your memory usage. For more information, see <xref href="GUID-81E532DF-4702-5881-9E1B-E6537425B4E2.dita">Advanced Pond Guide</xref> and <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita">Pond Configuration Reference</xref>. </p> <p>To monitor the pond and its available memory, see <xref href="GUID-0995EBF6-D203-57B3-9F53-972AEB8F3D3C.dita">Memory Metrics</xref>. </p> </section> </conbody><related-links><link href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita"><linktext>Shared Buffers</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
+                and Comms Chains</linktext> </link> <link href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita"><linktext>Advanced Pond
                 Guide</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e324956_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5673347B-DA7B-563A-AB2B-615BF7C19F92_d0e331113_href.png has changed
--- a/Symbian3/SDK/Source/GUID-567718E7-0267-4641-A9E3-538D893362D2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-567718E7-0267-4641-A9E3-538D893362D2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,86 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-567718E7-0267-4641-A9E3-538D893362D2" xml:lang="en"><title>Item-specific
-options menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Item-specific options are placed in the stylus pop-up menu that is activated
-with touch down and hold on an item. Menu can be attached to almost all the
-items. Opening of the pop-up is indicated to the user via animation during
-the touch down and hold. If the finger is released before the touch down and
-hold time-out (0.5 seconds) is full, item’s touch down and release activity
-is initiated. If the stylus pop-up menu is launched from an item that can
-hold focus (for example, list item), the focus is displayed on the item while
-the stylus pop-up menu is open.</p>
-<fig id="GUID-3319B23C-B30F-42A0-83F2-636568BD2960">
-<title>An example of Item-specific options menu within stylus pop-up menu.</title>
-<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68178_href.png" placement="inline"/>
-</fig>
-<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-8-1-6-1-1-5-1-16-1-8-1-3-1-2-3"><title>Default touch
-events for Item-specific options menu.</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback are provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>The item is activated.</p></entry>
-<entry><p>Highlight disappears and stylus pop-up is closed. </p><p>Tactile:
-Basic list effect is provided with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside the stylus pop-up</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move out of the stylus pop-up menu</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside menu area</p></entry>
-<entry><p>Stylus pop-up menu disappears. No selection is made.</p></entry>
-<entry><p>Tactile: Opens via long touch. Provides only the increasing long
-touch effect during the touch down and hold event and no additional pop-up
-effect when the menu opens.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move horizontally</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Highlight stays on the item that was touched down before moving
-horizontally. </p><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-567718E7-0267-4641-A9E3-538D893362D2" xml:lang="en"><title>Item-specific
+options menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Item-specific options are placed in the stylus pop-up menu that is activated
+with touch down and hold on an item. Menu can be attached to almost all the
+items. Opening of the pop-up is indicated to the user via animation during
+the touch down and hold. If the finger is released before the touch down and
+hold time-out (0.5 seconds) is full, item’s touch down and release activity
+is initiated. If the stylus pop-up menu is launched from an item that can
+hold focus (for example, list item), the focus is displayed on the item while
+the stylus pop-up menu is open.</p>
+<note> The application only needs to tag items to be item-specific. The application
+framework will handle the remaining tasks.</note>
+<fig id="GUID-3319B23C-B30F-42A0-83F2-636568BD2960">
+<title>An example of Item-specific options menu within stylus pop-up menu.</title>
+<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e60390_href.png" placement="inline"/>
+</fig>
+<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-10-1-6-1-1-5-1-11-1-1-3-1-2-4"><title>Default touch
+events for Item-specific options menu.</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback are provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>The item is activated.</p></entry>
+<entry><p>Highlight disappears and stylus pop-up is closed. </p><p>Tactile:
+Basic list effect is provided with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside the stylus pop-up</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out of the stylus pop-up menu</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside menu area</p></entry>
+<entry><p>Stylus pop-up menu disappears. No selection is made.</p></entry>
+<entry><p>Tactile: Opens via long touch. Provides only the increasing long
+touch effect during the touch down and hold event and no additional pop-up
+effect when the menu opens.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move horizontally</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Highlight stays on the item that was touched down before moving
+horizontally. </p><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e132911_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5696BEC1-51F5-5062-A4E6-C6CF48C7C95A_d0e139445_href.png has changed
--- a/Symbian3/SDK/Source/GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8"><title>Sockets Server Client API</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic introduces the Sockets Server API and discusses the main classes. </p> <p>The Sockets Server Client interfaces make asynchronous calls to the Sockets Server. The Server co-ordinates client access to socket services, and manages communications with the protocol plug-ins that provide support for the particular networking protocols. </p> <p>Each protocol plug-in may contain a number of protocols. The term ‘protocol’ may also be used to describe a suite of protocols. For example, the TCP/IP protocol plug-in contains UDP, TCP, ICMP, IP, and DNS. Sockets can access UDP and TCP to transfer data over IP. Another example of a protocol plug-in is the IrDA plug-in. the IrDA plug-in is used for communicating over infrared. </p> <p>The Sockets Server loads protocols plug-ins at runtime either explicitly or on demand. When the server starts, the server scans <filepath>\private\101f7989\esock</filepath> for <xref href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita">.esk</xref> files to see which protocols and services are defined, and which protocols to load. </p> <p>The Sockets Server Client API implements the idea of <keyword>transport independence</keyword>: different protocols are accessed through the same API. However, individual protocols exhibit different properties and semantics regarding socket behaviour. The semantics implemented by any given protocol can be found by interrogating the system using <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-1B597C97-2AEB-32D1-B225-5C1E24F6470F"><apiname>RSocketServ::GetProtocolInfo()</apiname></xref>, which describes the protocol semantics encapsulated in a <xref href="GUID-0FB20F20-67EE-3948-B9F6-E1D679AC3D0F.dita"><apiname>TProtocolDesc</apiname></xref>. </p> <section><title>APIs</title> <p>Five main classes provide the Sockets Server Client API functionality: </p> <ul><li id="GUID-8F21CED0-F874-59E5-9CDE-8212C20F7101"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>  </p> </li> <li id="GUID-D6C46C27-33FA-55E1-9DA0-0FCB64239A65"><p> <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>  </p> </li> <li id="GUID-C65285B2-F251-5021-B830-6388F8600AB0"><p> <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>  </p> </li> <li id="GUID-30061681-0502-57D4-9E24-3AC265140435"><p> <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>  </p> </li> <li id="GUID-62AEBD22-81FC-539D-BDD3-12CBA93CB0DB"><p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>  </p> </li> </ul> <p>The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> class establishes and reserves resources for the base communication session to the Sockets Server. The <codeph>RSocketServ</codeph> hosts other Sockets Server Client APIs as subsessions inside the <codeph>RSocketServ</codeph> session. The Sockets Server Client APIs which are hosted as subsessions inside <codeph>RSocketServ</codeph> are <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>, <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>, <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. The <codeph>RSocketServ</codeph> class provides functions to load and query protocols. </p> <fig id="GUID-D7E19F08-CADC-5050-A9C7-5A48213B2B0E"><title>
-             Figure 1 - Class diagram of RSocketServ inheritance 
-          </title> <image href="GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e117642_href.png" placement="inline"/></fig> <fig id="GUID-142DBA45-272F-59FE-8008-755679B65361"><title>
-             Figure 2 - Class diagram of classes which make up the subsession APIs
-             to RSocketServ 
-          </title> <image href="GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e117648_href.png" placement="inline"/></fig> <p>The <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref> class provides a client endpoint to a protocol. It provides the following services: </p> <ul><li id="GUID-4472E72B-56E5-573E-9C91-10D63616C773"><p>socket creation </p> </li> <li id="GUID-20140DAB-5315-5A1F-B8FD-89203020542D"><p>reading from and writing to a protocol </p> </li> <li id="GUID-405469A5-0144-52DD-9A2D-5A517DF37267"><p>binding to addresses </p> </li> <li id="GUID-E8EBB098-2DAB-5851-BEE2-FE3E3329F414"><p>active connecting </p> </li> <li id="GUID-1C67F551-6AC1-506E-B1AF-C475C2C68412"><p>passive connection through the listen/accept model </p> </li> </ul> <p>The <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> class provides access to the Connection Management functionality of a socket. See <xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection Management</xref>. </p> <p>The <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> API provides functions to specify Quality of Service parameters for a channel. See <xref href="GUID-06CE943B-3D6A-50D1-97C3-CCFE4D4F5864.dita">SubConnection Client API</xref>. </p> </section> </conbody><related-links><link href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita"><linktext>ESK Files</linktext> </link> <link href="GUID-782AA56A-D3CF-5239-AB62-9AE6741964E8.dita"><linktext> Reading from a Socket:
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-56DF9711-1EFA-5A07-A92B-3F3D6FBD17A8"><title>Sockets Server Client API</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic introduces the Sockets Server API and discusses the main classes. </p> <p>The Sockets Server Client interfaces make asynchronous calls to the Sockets Server. The Server co-ordinates client access to socket services, and manages communications with the protocol plug-ins that provide support for the particular networking protocols. </p> <p>Each protocol plug-in may contain a number of protocols. The term ‘protocol’ may also be used to describe a suite of protocols. For example, the TCP/IP protocol plug-in contains UDP, TCP, ICMP, IP, and DNS. Sockets can access UDP and TCP to transfer data over IP. Another example of a protocol plug-in is the IrDA plug-in. the IrDA plug-in is used for communicating over infrared. </p> <p>The Sockets Server loads protocols plug-ins at runtime either explicitly or on demand. When the server starts, the server scans <filepath>\private\101f7989\esock</filepath> for <xref href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita">.esk</xref> files to see which protocols and services are defined, and which protocols to load. </p> <p>The Sockets Server Client API implements the idea of <keyword>transport independence</keyword>: different protocols are accessed through the same API. However, individual protocols exhibit different properties and semantics regarding socket behaviour. The semantics implemented by any given protocol can be found by interrogating the system using <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-1B597C97-2AEB-32D1-B225-5C1E24F6470F"><apiname>RSocketServ::GetProtocolInfo()</apiname></xref>, which describes the protocol semantics encapsulated in a <xref href="GUID-0FB20F20-67EE-3948-B9F6-E1D679AC3D0F.dita"><apiname>TProtocolDesc</apiname></xref>. </p> <section><title>APIs</title> <p>Five main classes provide the Sockets Server Client API functionality: </p> <ul><li id="GUID-8F21CED0-F874-59E5-9CDE-8212C20F7101"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref>  </p> </li> <li id="GUID-D6C46C27-33FA-55E1-9DA0-0FCB64239A65"><p> <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>  </p> </li> <li id="GUID-C65285B2-F251-5021-B830-6388F8600AB0"><p> <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>  </p> </li> <li id="GUID-30061681-0502-57D4-9E24-3AC265140435"><p> <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>  </p> </li> <li id="GUID-62AEBD22-81FC-539D-BDD3-12CBA93CB0DB"><p> <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>  </p> </li> </ul> <p>The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> class establishes and reserves resources for the base communication session to the Sockets Server. The <codeph>RSocketServ</codeph> hosts other Sockets Server Client APIs as subsessions inside the <codeph>RSocketServ</codeph> session. The Sockets Server Client APIs which are hosted as subsessions inside <codeph>RSocketServ</codeph> are <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>, <xref href="GUID-B16CAD6D-85B1-3482-AAC0-9BADEDB6ABDD.dita"><apiname>RHostResolver</apiname></xref>, <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. The <codeph>RSocketServ</codeph> class provides functions to load and query protocols. </p> <fig id="GUID-D7E19F08-CADC-5050-A9C7-5A48213B2B0E"><title>
+             Figure 1 - Class diagram of RSocketServ inheritance 
+          </title> <image href="GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e111104_href.png" placement="inline"/></fig> <fig id="GUID-142DBA45-272F-59FE-8008-755679B65361"><title>
+             Figure 2 - Class diagram of classes which make up the subsession APIs
+             to RSocketServ 
+          </title> <image href="GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e111110_href.png" placement="inline"/></fig> <p>The <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref> class provides a client endpoint to a protocol. It provides the following services: </p> <ul><li id="GUID-4472E72B-56E5-573E-9C91-10D63616C773"><p>socket creation </p> </li> <li id="GUID-20140DAB-5315-5A1F-B8FD-89203020542D"><p>reading from and writing to a protocol </p> </li> <li id="GUID-405469A5-0144-52DD-9A2D-5A517DF37267"><p>binding to addresses </p> </li> <li id="GUID-E8EBB098-2DAB-5851-BEE2-FE3E3329F414"><p>active connecting </p> </li> <li id="GUID-1C67F551-6AC1-506E-B1AF-C475C2C68412"><p>passive connection through the listen/accept model </p> </li> </ul> <p>The <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> class provides access to the Connection Management functionality of a socket. See <xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita">Connection Management</xref>. </p> <p>The <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref> API provides functions to specify Quality of Service parameters for a channel. See <xref href="GUID-06CE943B-3D6A-50D1-97C3-CCFE4D4F5864.dita">SubConnection Client API</xref>. </p> </section> </conbody><related-links><link href="GUID-9430D718-6E4D-5AE1-8389-24A47DFAAF16.dita"><linktext>ESK Files</linktext> </link> <link href="GUID-782AA56A-D3CF-5239-AB62-9AE6741964E8.dita"><linktext> Reading from a Socket:
                 Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A-master.png has changed
Binary file Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e63781_href.png has changed
Binary file Symbian3/SDK/Source/GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e69003_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e148577_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e155098_href.png has changed
Binary file Symbian3/SDK/Source/GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e132621_href.png has changed
Binary file Symbian3/SDK/Source/GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e139155_href.png has changed
--- a/Symbian3/SDK/Source/GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416" xml:lang="en"><title>Text
-input</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>There are several finger-optimized text input methods available for touch-enabled
-devices. The available methods depend on the orientation of the device. The
-following methods are available in the portrait orientation:</p>
-<ul>
-<li><p>Virtual ITU-T keyboard with text prediction</p></li>
-<li><p>Handwriting recognition (HWR) for some language variants. Not available
-for Latin languages.</p></li>
-</ul>
-<p>The following methods are available in the landscape orientation:</p>
-<ul>
-<li><p>Virtual QWERTY opened in full screen with input preview</p></li>
-<li><p>Handwriting recognition</p></li>
-</ul>
-<p>The input methods that are available to mobile device users depend on the
-product. Users can select the suitable input method for each situation from
-the input methods that are included in the product. The device recalls the
-last used method and offers it the next time when the user wants to input
-something.</p>
-<fig id="GUID-0A84FE47-C9D6-48AF-A4A5-F643342733F9">
-<title>Virtual ITU-T keypad</title>
-<image href="GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e75876_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-A294F7A7-79E4-41E3-8456-9554FA23A3B4">
-<title>Virtual QWERTY keyboard</title>
-<image href="GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e75884_href.png" placement="inline"/>
-</fig>
-<p>The virtual QWERTY keyboard displays a keyboard that has a collection of
-basic keyboard functions (Shift, Caps lock, punctuation marks, and so on)
-and a text field where the user can see the given input without having to
-follow it from the editor field. The handwriting recognition allows user to
-write characters on the screen with a finger.</p>
-<p>If touch input has been launched from an editor, pressing any hardware
-character key closes the touch input. This also applies to hybrid devices
-having both a hardware and virtual keyboard. Activating the hardware keyboard
-character key closes the virtual keyboard. Touch input never starts up automatically
-(that is, a change of view does not launch it), but the user has to launch
-it by tapping the editing field. Moving the focus onto an editing field with
-the hardware keys does not launch touch input.</p>
-<section id="GUID-122BA229-0C5D-47C7-ABDE-4C6279B79FFD"><title>Using
-touch-based text input in C++ applications</title><p>AVKON editor components
-support touch-based text input.</p><p>The API to use for providing touch-based
-text input is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416" xml:lang="en"><title>Text
+input</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>There are several finger-optimized text input methods available for touch-enabled
+devices. The available methods depend on the orientation of the device. The
+following methods are available in the portrait orientation:</p>
+<ul>
+<li><p>Virtual ITU-T keyboard with text prediction</p></li>
+<li><p>Handwriting recognition (HWR) for some language variants. Not available
+for Latin languages.</p></li>
+</ul>
+<p>The following methods are available in the landscape orientation:</p>
+<ul>
+<li><p>Virtual QWERTY opened in full screen with input preview</p></li>
+<li><p>Handwriting recognition</p></li>
+</ul>
+<p>The input methods that are available to mobile device users depend on the
+product. Users can select the suitable input method for each situation from
+the input methods that are included in the product. The device recalls the
+last used method and offers it the next time when the user wants to input
+something.</p>
+<fig id="GUID-0A84FE47-C9D6-48AF-A4A5-F643342733F9">
+<title>Virtual ITU-T keypad</title>
+<image href="GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e70843_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-A294F7A7-79E4-41E3-8456-9554FA23A3B4">
+<title>Virtual QWERTY keyboard</title>
+<image href="GUID-47AA7F26-FF3F-4FEE-BBB4-F4E8A8E0E335_d0e70851_href.png" placement="inline"/>
+</fig>
+<p>The virtual QWERTY keyboard displays a keyboard that has a collection of
+basic keyboard functions (Shift, Caps lock, punctuation marks, and so on)
+and a text field where the user can see the given input without having to
+follow it from the editor field. The handwriting recognition allows user to
+write characters on the screen with a finger.</p>
+<p>If touch input has been launched from an editor, pressing any hardware
+character key closes the touch input. This also applies to hybrid devices
+having both a hardware and virtual keyboard. Activating the hardware keyboard
+character key closes the virtual keyboard. Touch input never starts up automatically
+(that is, a change of view does not launch it), but the user has to launch
+it by tapping the editing field. Moving the focus onto an editing field with
+the hardware keys does not launch touch input.</p>
+<section id="GUID-122BA229-0C5D-47C7-ABDE-4C6279B79FFD"><title>Using
+touch-based text input in applications</title><p>AVKON editor
+components support touch-based text input.</p><p>The API to use for providing
+touch-based text input is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e292667_href.png has changed
Binary file Symbian3/SDK/Source/GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e293517_href.png has changed
Binary file Symbian3/SDK/Source/GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e3231_href.png has changed
Binary file Symbian3/SDK/Source/GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e4506_href.png has changed
--- a/Symbian3/SDK/Source/GUID-57F38146-1DA3-5657-ADF4-76DF740363C5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-57F38146-1DA3-5657-ADF4-76DF740363C5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-57F38146-1DA3-5657-ADF4-76DF740363C5"><title>Static Startup Configuration</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The System Starter is invoked by the Base Starter as part of the boot process once the file system has been mounted. It works by processing a list of instructions in sequence. The list is referred to as a Static Startup Configuration, or SSC. In practical terms the SSC is defined in a resource file and is built into the ROM. </p> <p>A fundamental feature of the SSC is that it allows the start up procedure to be optimised. Though the commands are processed in sequence their effect is to perform tasks not only in <b>sequence</b> (wait for the application or process to initialise before continuing) but also in <b>parallel</b> (do not wait for initialisation) and <b>at the optimum time</b> (wait until conditions are right). </p> <fig id="GUID-6D5009DF-61D7-5A40-9E8F-A4CCDD29A5BC"><desc><p>In the diagram above each vertical bar represents a process or application started during the startup procedure. The list on the left shows the SSC command for each process. An application may ‘rendezvous’ with the starter when its initialisation (shown in dark blue) is complete and it is ready to be used by dependent applications. A rendezvous is simply a signal from the appliation to the starter that it has reached a designated point. </p> </desc> <image href="GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e20914_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-57F38146-1DA3-5657-ADF4-76DF740363C5"><title>Static Startup Configuration</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The System Starter is invoked by the Base Starter as part of the boot process once the file system has been mounted. It works by processing a list of instructions in sequence. The list is referred to as a Static Startup Configuration, or SSC. In practical terms the SSC is defined in a resource file and is built into the ROM. </p> <p>A fundamental feature of the SSC is that it allows the start up procedure to be optimised. Though the commands are processed in sequence their effect is to perform tasks not only in <b>sequence</b> (wait for the application or process to initialise before continuing) but also in <b>parallel</b> (do not wait for initialisation) and <b>at the optimum time</b> (wait until conditions are right). </p> <fig id="GUID-6D5009DF-61D7-5A40-9E8F-A4CCDD29A5BC"><desc><p>In the diagram above each vertical bar represents a process or application started during the startup procedure. The list on the left shows the SSC command for each process. An application may ‘rendezvous’ with the starter when its initialisation (shown in dark blue) is complete and it is ready to be used by dependent applications. A rendezvous is simply a signal from the appliation to the starter that it has reached a designated point. </p> </desc> <image href="GUID-15D5E0D3-B643-5C72-A3D4-03E2480890EF_d0e15332_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,298 +1,253 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><title>Tactile
-feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>There are two methods where vibration or audio of the device is used as
-an output method (when mobile device users interact with the device touch
-screen):</p>
-<ul>
-<li><p>As a <i>tacticon</i> to inform users through physical feedback, that
-an important event is occurring in the device. For example, when a new message
-arrives or a warning note is displayed.</p></li>
-<li><p>As <i>tactile feedback</i> to indicate to the user that an interaction
-event has been successful. For example, users receive tactile feedback when
-they press a button on the touch screen.</p></li>
-</ul>
-<p>As with sounds, tactile feedback must be used carefully so as not to desensitize
-the user to the vibration; the attention grabbing quality remains and functions
-so long as the feedback is not too frequent.</p>
-<p>Tactile feedback is enabled for all the Symbian platform UI components.
-Tactile feedback can be disabled for the common UI components in an application.
-However, this is acceptable only if tactile feedback causes interference with
-other device functions.</p>
-<p>The user can choose the level of tactile feedback and turn tacticons ON
-and OFF.</p>
-<p>The following table lists the tactile feedback effects:</p>
-<p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B"><title>Tactile feedback
-effects</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.60*"/>
-<thead>
-<row>
-<entry valign="top"><p>Effects</p></entry>
-<entry valign="top"><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><b>Sensitive button</b></p></entry>
-<entry><p>It provides single pulse effect on repeated key presses with buttons.
-It is also possible with other similar components.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic button</b></p></entry>
-<entry><p>It provides stronger single pulse effect to buttons. It is also
-possible with other similar components.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive list</b></p></entry>
-<entry><p>It provides single pulse effect to lists and grids. Effect is used
-with move (drag and flick) when new item appears on the screen.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic list</b></p></entry>
-<entry><p>It provides stronger single pulse effect to lists and grids. Effect
-is used with touch down and release when tap makes an action. </p><p>In hierarchical
-list, collapsing/expanding item provides basic list effect with touch down
-and release.</p></entry>
-</row>
-<row>
-<entry><p><b>Bounce effect</b></p></entry>
-<entry><p>It provides pulse effect when list returns to its normal state after
-boundary effect.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive slider</b></p></entry>
-<entry><p>It provides pulse effect with scrollbar and slider thumbs. Effect
-is provided with touch down and release in thumb area.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth slider</b></p></entry>
-<entry><p>It provides continuous smooth feedback when dragging scrollbar or
-slider thumb. This can also be increasing or decreasing depending of the slider
-type.</p></entry>
-</row>
-<row>
-<entry><p><b>Hold slider</b></p></entry>
-<entry><p>It provides sensitive pulse effect when touch down and hold on the
-slider or scrollbar area. Slider thumb starts moving step by step towards
-the touch point. Every step gives one sensitive pulse. If slider thumb moves
-directly to the touch point, then basic slider effect is provided.</p></entry>
-</row>
-<row>
-<entry><p><b>Pop-up</b></p></entry>
-<entry><p>It provides sensitive pulse effect when pop-up is opened or closed.
-If the theme animations are ON, then pop-up effect is used with opening event
-after increasing long touch effect. In this scenario, there is no pop-up effect
-while closing. <note> All pop-ups does not have theme animation.</note></p></entry>
-</row>
-<row>
-<entry><p><b>Pop-up close</b></p></entry>
-<entry><p>It provides decreasing smooth feedback while closing pop-up and
-when theme animations are ON.</p></entry>
-</row>
-<row>
-<entry><p><b>Increasing long touch</b></p></entry>
-<entry><p>It provides increasing smooth feedback. This can be used with either
-long tap animation or pop-up opening theme effects. If the theme effects are
-ON and long tap opens a pop-up, then feedback is provided only with long tap.
-This is followed by pop-up.</p></entry>
-</row>
-<row>
-<entry><p><b>Basic tab</b></p></entry>
-<entry><p>It provides strong pulse effect with touch down event in tab area.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth flick</b></p></entry>
-<entry><p>It provides smooth feedback with drag when horizontal movement is
-possible.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive flick</b></p></entry>
-<entry><p>It provides sensitive pulse effect with touch release when horizontal
-movement is possible.</p></entry>
-</row>
-<row>
-<entry><p><b>Sensitive edit</b></p></entry>
-<entry><p>It provides sensitive pulse effect in editors with touch down and
-release.</p></entry>
-</row>
-<row>
-<entry><p><b>Text edit</b></p></entry>
-<entry><p>It provides pulse effect when painting the text. Effect is provided
-with every character while painting the text.</p></entry>
-</row>
-<row>
-<entry><p><b>Blank edit</b></p></entry>
-<entry><p>It provides pulse effect when painting blank character. By default,
-it is none.</p></entry>
-</row>
-<row>
-<entry><p><b>Line edit</b></p></entry>
-<entry><p>It provides pulse effect when painting a line.</p></entry>
-</row>
-<row>
-<entry><p><b>Empty line</b></p></entry>
-<entry><p>It provides pulse effect when painting an empty line. By default,
-it is none.</p></entry>
-</row>
-<row>
-<entry><p><b>Check box</b></p></entry>
-<entry><p>It provides pulse effect when marking/unmarking a check box.</p></entry>
-</row>
-<row>
-<entry><p><b>Multi-touch recognition</b></p></entry>
-<entry><p>It provides double pulse (sensitive + sensitive) effect when multi-touch
-is recognized (generally, when second finger is touched down).</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth pinch</b></p></entry>
-<entry><p>It provides smooth continuous feedback while moving fingers in multi-touch
-pinch situation.</p></entry>
-</row>
-<row>
-<entry><p><b>Smooth rotate</b></p></entry>
-<entry><p>It provides smooth continuous feedback  while moving fingers in
-multi-touch rotate situation.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></p>
-<section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
-of haptics related  APIs</title><p>You can use the following APIs to create
-haptic effects:</p><ul>
-<li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile Feedback
-Client API</xref></p><ul>
-<li><p>It is available from S60 5th Edition onwards</p></li>
-<li><p>It can be used on all S60 5th Edition or later mobile devices. However,
-the feedback is played only on touch enabled layouts.</p></li>
-<li><p>It provides simple functions for triggering various predefined tactile
-feedback (vibration or audio) effects.</p></li>
-<li><p>It enables a consistent user experience in all applications of the
-mobile device (an application gives a logical feedback type as an input and
-the actual physical effect depends on the mobile device configuration and
-end user settings).</p></li>
-<li><p>When the area feedback is used, latency is low for the feedback triggering
-(a tactile feedback can already be triggered at the window server level prior
-to the corresponding pointer event being delivered to the visible application).</p></li>
-<li><p>Direct feedback can be easily integrated into <codeph>CCoeControl::HandlePointerEventL()</codeph> . </p></li>
-<li><p>An application can select the logical tactile feedback from certain
-types. The produced effect may be different on various mobile devices.</p></li>
-</ul></li>
-<li><p><xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Haptics_API_Specification/Haptics_API_Specification.html" format="application/java-archive">Haptics
-API</xref></p><ul>
-<li><p>It is available from S60 5.2 Edition onwards.</p></li>
-<li><p>It can be used in touch and hybrid mobile devices.</p></li>
-<li><p>It provides an interface for accessing Haptics player that can control
-different actuator types.</p></li>
-<li><p>It enables producing of complex vibrator effects, such as an explosion
-or machine gun effect in a game, bass boost for a music player, advanced ringing
-tone vibration, and so on.</p></li>
-<li><p>It enables simultaneous playing of different kinds of basis effects
-and modifying them when played. </p></li>
-<li><p>It allows for designing complex effects (using a separate PC application)
-that can be loaded on Haptics player for playing.</p></li>
-<li><p>It may require a special license key  for third-party applications
-(to be set at runtime) to enable the Haptics player functionality.</p></li>
-</ul></li>
-<li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita">Vibra API</xref></p><ul>
-<li><p>It available from S60 3.0 onwards</p></li>
-<li><p>It can be used for running device vibrator with given intensity for
-a given period of time</p></li>
-<li><p>It can be used by a privileged client application to play pulse effects,
-which have a very short duration (as the ones used for tactile feedback)</p></li>
-</ul></li>
-</ul></section>
-<section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When to use
-Tactile Feedback Client API, Haptics API, and Vibra API</title><p>You must
-use<ul>
-<li><p>Tactile Feedback Client API for providing tactile feedback in custom
-controls (grids, lists, and so on) which will comply with the style of Core
-UI components to ensure a uniform user experience among applications</p></li>
-<li><p>Haptics API on touch and hybrid mobile devices for producing complex
-vibration feedback which cannot be achieved with Tactile Framework (games,
-simulations, demos, and so on.)</p></li>
-<li><p>Vibra API for producing haptic effects such as ringing tone vibration
-in those mobile devices where Haptics API is not available or functional</p></li>
-</ul></p></section>
-<section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using
-tactile feedback in C++ applications</title><p>The API to use for tactile
-feedback is the <xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile
-feedback client API</xref>.</p><p>The Symbian platform includes a tactile
-feedback interface to add, modify and remove feedback areas in the registry.
-There is also an option to trigger direct feedback and bypass the registry.
- <parmname>MTouchFeedback::Instance()</parmname> is used for acquiring a pointer
-to a touch feedback instance. When touch feedback is activated, the mobile
-device users get a slight vibration when the control with the feedback interface
-is touched. </p><note><p>Tactile feedback can be set and disabled in a client
-application or a mobile device in some scenarios, for example, during phone
-calls.</p></note><p>Client applications cannot determine the actual physical
-feedback that is generated. It depends on device configuration and current
-settings. In current devices, the user changeable settings include vibration
-and audio feedback intensity level.</p><p>In your application, you can use
-the following feedback types, defined in <codeph>TTouchLogicalFeedback</codeph>:</p><table id="GUID-6FF24F72-C352-4027-AA5D-2D34EBFA00F4">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><codeph>ETouchFeedbackNone</codeph></p></entry>
-<entry><p>It is used for disabling feedback in some areas of the application
-window while using the area registry.</p></entry>
-</row>
-<row>
-<entry><p><codeph>ETouchFeedbackBasic</codeph></p></entry>
-<entry><p>It is used as a default feedback for stylus touch down events. For
-example, when the mobile device user taps a button or tab.</p></entry>
-</row>
-<row>
-<entry><p><codeph>ETouchFeedbackSensitive</codeph></p></entry>
-<entry><p>It provides sensitive feedback in situations when:<ul>
-<li><p>the triggering action is not very important (for example, change of
-focus in a list)</p></li>
-<li><p>there can be a large number of feedback instances within a short time
-(for example, text selection which gives feedback on every new selected character).</p></li>
-</ul> It is also used for scrolling and dragging.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>To use vibration or audio feedback in your application:</p><ol>
-<li id="GUID-791E80D6-6935-4202-81E0-BA7392A9E1B3"><p>Include <codeph>touchfeedback.lib</codeph> in
-your <codeph>.mmp</codeph> file.</p></li>
-<li id="GUID-A185188F-F37B-440B-8213-214D77CF3B8B"><p>Include <parmname>touchfeedback.h</parmname>.</p></li>
-<li id="GUID-6455F4C1-AEA6-4C30-8E9B-DF9950558E17"><itemgroup><p>To enable
-tactile feedback for your application, add the following code.</p><codeblock xml:space="preserve">MTouchFeedback* feedback = MTouchFeedback::Instance();
-feedback-&gt;SetFeedbackEnabledForThisApp(ETrue); // enabling feedback is optional  </codeblock><p>Do
-not delete the pointer in the controller destructor.</p></itemgroup></li>
-<li id="GUID-FC1B810B-99F4-44E5-82DC-46686D6D4198"><itemgroup><p>To use tactile
-feedback when a mobile device user points at a control, add the following
-code.</p><codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    // Feedback is always played at pointer down event
-    if(aPointerEvent.iType == TPointerEvent::EButton1Down)
-        {
-        MTouchFeedback* feedback = MTouchFeedback::Instance();  
-        if (feedback) 
-             { 
-             feedback-&gt;InstantFeedback(ETouchFeedbackBasic);  
-             }  
-        }
-   
-    // Your other pointer event handling code here
-</codeblock></itemgroup></li>
-<li id="GUID-A26D8717-1839-4132-98C4-5C09086BB361"><itemgroup><p>To enable
-automatic feedback triggering in a specific area of a UI component, add</p><codeblock xml:space="preserve">feedback-&gt;SetFeedbackArea( this, 
-                           1, // area Id
-                           TRect( 0,0,20,20 ), 
-                           ETouchFeedbackBasic, 
-                           ETouchEventStylusDown );
-</codeblock></itemgroup></li>
-</ol><note><p>To use tactile feedback in an application, additional platform
-security capabilities are not required.</p></note></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF" xml:lang="en"><title>Tactile
+feedback</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>There are two cases where vibration or audio of the device is used as an
+output method:</p>
+<ul>
+<li><p>As a <i>tacticon</i> to inform users through physical feedback, that
+an important event is occurring in the device. For example, when a new message
+arrives or a warning note is displayed.</p></li>
+<li><p>As <i>tactile feedback</i> to indicate to the user that an interaction
+event has been made. For example, users receive tactile feedback when they
+press a button on the touch screen.</p></li>
+</ul>
+<p>As with sounds, tactile feedback must be used carefully so as not to desensitize
+the user to the vibration; the attention grabbing quality remains and functions
+so long as the feedback is not too frequent.</p>
+<p>Tactile feedback is enabled for all the Symbian platform UI components.
+Tactile feedback can be disabled for the common UI components in an application.
+However, this is acceptable only if tactile feedback causes interference with
+other device functions.</p>
+<p>The user can choose the level of tactile feedback and turn tacticons ON
+and OFF.</p>
+<p>The following table lists the tactile feedback effects:</p>
+<p><table id="GUID-4969AEA7-3BE4-4644-8232-1FA26D49010B"><title>Tactile feedback
+effects</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.60*"/>
+<thead>
+<row>
+<entry valign="top"><p>Effects</p></entry>
+<entry valign="top"><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><b>Sensitive button</b></p></entry>
+<entry><p>Provides single pulse effect on repeated key presses with buttons.
+It is also possible with other similar components.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic button</b></p></entry>
+<entry><p>Provides stronger single pulse effect to buttons. It is also possible
+with other similar components.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive list</b></p></entry>
+<entry><p>Provides single pulse effect to lists and grids. Effect is used
+with move (drag and flick) when new item appears on the screen.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic list</b></p></entry>
+<entry><p>Provides stronger single pulse effect to lists and grids. Effect
+is used with touch down and release when tap makes an action. </p><p>In hierarchical
+list, collapsing/expanding item provides basic list effect with touch down
+and release.</p></entry>
+</row>
+<row>
+<entry><p><b>Bounce effect</b></p></entry>
+<entry><p>Provides pulse effect when list returns to its normal state after
+boundary effect.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive slider</b></p></entry>
+<entry><p>Provides pulse effect with scrollbar and slider thumbs. Effect is
+provided with touch down and release in thumb area.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth slider</b></p></entry>
+<entry><p>Provides continuous smooth feedback when dragging scrollbar or slider
+thumb. This can also be increasing or decreasing depending of the slider type.</p></entry>
+</row>
+<row>
+<entry><p><b>Hold slider</b></p></entry>
+<entry><p>Provides sensitive pulse effect when touch down and hold on the
+slider or scrollbar area. Slider thumb starts moving step by step towards
+the touch point. Every step gives one sensitive pulse. If slider thumb moves
+directly to the touch point, then basic slider effect is provided.</p></entry>
+</row>
+<row>
+<entry><p><b>Pop-up</b></p></entry>
+<entry><p>Provides sensitive pulse effect when pop-up is opened or closed.
+If the theme animations are ON, then pop-up effect is used with opening event
+after increasing long touch effect. In this scenario, there is no pop-up effect
+. <note> All pop-ups do not have theme animation.</note></p></entry>
+</row>
+<row>
+<entry><p><b>Pop-up close</b></p></entry>
+<entry><p>Provides decreasing smooth feedback  a pop-up and when theme animations
+are ON.</p></entry>
+</row>
+<row>
+<entry><p><b>Increasing long touch</b></p></entry>
+<entry><p>Provides increasing smooth feedback. This can be used with either
+long tap animation or pop-up opening theme effects. If the theme effects are
+ON and long tap opens a pop-up, then feedback is provided only with long tap.
+This is followed by pop-up.</p></entry>
+</row>
+<row>
+<entry><p><b>Basic tab</b></p></entry>
+<entry><p>Provides strong pulse effect with touch down event in tab area.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth flick</b></p></entry>
+<entry><p>Provides smooth feedback with drag when horizontal movement is possible.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive flick</b></p></entry>
+<entry><p>Provides sensitive pulse effect with touch release when horizontal
+movement is possible.</p></entry>
+</row>
+<row>
+<entry><p><b>Sensitive edit</b></p></entry>
+<entry><p>Provides sensitive pulse effect in editors with touch down and release.</p></entry>
+</row>
+<row>
+<entry><p><b>Text edit</b></p></entry>
+<entry><p>Provides pulse effect when painting the text. Effect is provided
+with every character while painting the text.</p></entry>
+</row>
+<row>
+<entry><p><b>Blank edit</b></p></entry>
+<entry><p>Provides pulse effect when painting blank character. By default,
+it is none.</p></entry>
+</row>
+<row>
+<entry><p><b>Line edit</b></p></entry>
+<entry><p>Provides pulse effect when painting a line.</p></entry>
+</row>
+<row>
+<entry><p><b>Empty line</b></p></entry>
+<entry><p>Provides pulse effect when painting an empty line. By default, it
+is none.</p></entry>
+</row>
+<row>
+<entry><p><b>Check box</b></p></entry>
+<entry><p>Provides pulse effect when marking/unmarking a check box.</p></entry>
+</row>
+<row>
+<entry><p><b>Multi-touch recognition</b></p></entry>
+<entry><p>Provides double pulse (sensitive + sensitive) effect when multi-touch
+is recognized (generally, when second finger is touched down).</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth pinch</b></p></entry>
+<entry><p>Provides smooth continuous feedback while moving fingers in multi-touch
+pinch situation.</p></entry>
+</row>
+<row>
+<entry><p><b>Smooth rotate</b></p></entry>
+<entry><p>Provides smooth continuous feedback  while moving fingers in multi-touch
+rotate situation.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></p>
+<section id="GUID-1EB54408-100B-4E4F-8D56-E13C26CA3B96"><title>Haptics concept</title><p>The different senses associated
+to the skin are called cutaneous senses. These senses are temperature, pressure
+(touch itself), pain, tickle, itch and vibration senses. We can characterize
+touch as passive or active. Passive touch means the sense of touch itself,
+whereas active touch means the touch action.</p><p>To communicate through
+the sense of touch, we have to stimulate some of the cutaneous senses or the
+movement sense. The stimulation of the cutaneous senses or one of them by
+a product is called tactile stimulation. Respectively, the stimulation of
+the movement sense by a product is called haptic stimulation or just haptics.
+Haptics is also used as general term for all issues related to sense of touch,
+both human and machine.</p><p>Haptic feedback, often referred to as "Haptics",
+is the use of the sense of touch in a user interface design to provide information
+to an end user. In mobile phones, this generally means the use of vibrations
+from the device's vibration alarm to denote that a touch screen button has
+been pressed. In this particular example, the phone would vibrate slightly
+in response to the user's activation of an on-screen control, making up for
+the lack of a normal tactile response that the user would experience when
+pressing a physical button.</p></section>
+<section id="GUID-B9A35CA3-B830-4D97-9B0A-E22DC4A3CDA1"><title>Characteristics
+of haptics related  APIs</title><p>You can use the following APIs to create
+haptic effects:</p><ul>
+<li><p><xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile Feedback
+Client API</xref></p><ul>
+<li><p>Available from S60 5th Edition onwards.</p></li>
+<li><p>It can be used on all S60 5th Edition or later mobile devices. However,
+the feedback is played only on touch enabled layouts.</p></li>
+<li><p>Provides simple functions for triggering various predefined tactile
+feedback (vibration or audio) effects.</p></li>
+<li><p>Enables a consistent user experience in all applications of the mobile
+device (an application gives a logical feedback type as an input and the actual
+physical effect depends on the mobile device configuration and end user settings).</p></li>
+<li><p>When the area feedback is used, latency is low for the feedback triggering
+(a tactile feedback can already be triggered at the window server level prior
+to the corresponding pointer event being delivered to the visible application).</p></li>
+<li><p>Direct feedback can be easily integrated into <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5CF90E7A-4A91-36FF-BB3F-CF7CF687DED2"><apiname>CCoeControl::HandlePointerEventL()</apiname></xref>. </p></li>
+<li><p>An application can select the logical tactile feedback from certain
+types. The produced effect may be different on various mobile devices.</p></li>
+</ul></li>
+<li><p><xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Haptics_API_Specification/Haptics_API_Specification.html" format="application/java-archive">Haptics
+API</xref></p><ul>
+<li><p>Available from S60 5th Edition, FP2 onwards.</p></li>
+<li><p>It can be used in touch and hybrid mobile devices.</p></li>
+<li><p>Provides an interface for accessing Haptics player that can control
+different actuator types.</p></li>
+<li><p>Enables producing of complex vibrator effects, such as an explosion
+or machine gun effect in a game, bass boost for a music player, advanced ringing
+tone vibration, and so on.</p></li>
+<li><p>Enables simultaneous playing of different kinds of basis effects and
+modifying them when played. </p></li>
+<li><p>Allows the design of complex effects (using a separate PC application)
+that can be loaded on Haptics player for playing.</p></li>
+<li><p>It may require a special license key  for third-party applications
+(to be set at runtime) to enable the Haptics player functionality.</p></li>
+</ul></li>
+<li><p><xref href="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita">Vibra API</xref></p><ul>
+<li><p>Available from S60 3.0 onwards.</p></li>
+<li><p>It can be used for running device vibrator with given intensity for
+a given period of time.</p></li>
+<li><p>It can be used by a privileged client application to play pulse effects,
+which have a very short duration (as the ones used for tactile feedback).</p></li>
+</ul></li>
+</ul></section>
+<section id="GUID-428F693C-1CA8-4588-9A7D-C4265D2AED91"><title>When to use
+Tactile Feedback Client API, Haptics API, and Vibra API</title><p><ul>
+<li><p>Tactile Feedback Client API for providing tactile feedback in custom
+controls (grids, lists, and so on), which will comply with the style of Core
+UI components to ensure a uniform user experience among applications.</p></li>
+<li><p>Haptics API on touch and hybrid mobile devices for producing complex
+vibration feedback, which cannot be achieved with Tactile Framework (games,
+simulations, demos, and so on).</p></li>
+<li><p>Vibra API for producing haptic effects such as ringing tone vibration
+in those mobile devices where Haptics API is not available or functional.</p></li>
+</ul></p></section>
+<section id="GUID-8334E102-8F04-4726-9CD2-1D8004A417E1"><title>Using
+tactile feedback in applications</title><p>The API to use for tactile feedback
+is the <xref href="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita">Tactile feedback
+client API</xref>.</p><p>The Symbian platform includes a tactile feedback
+interface to add, modify and remove feedback areas in the registry. There
+is also an option to trigger direct feedback and bypass the registry. <xref href="GUID-766333D1-8D66-3B81-9B5D-8C4245F78298.dita#GUID-766333D1-8D66-3B81-9B5D-8C4245F78298/GUID-962B6543-9A59-3E72-893D-F775FEC54ACB"><apiname>MTouchFeedback::Instance()</apiname></xref> is
+used for acquiring a pointer to a touch feedback instance. When touch feedback
+is activated, the mobile device users get a slight vibration when the control
+with the feedback interface is touched. </p><note><p>Tactile feedback can
+be set and disabled in a client application or a mobile device in some scenarios,
+for example, during phone calls.</p></note><p>Client applications cannot determine
+the actual physical feedback that is generated. It depends on device configuration
+and current settings. In current devices, the user changeable settings include
+vibration and audio feedback intensity level.</p><p>For more information,
+see <xref href="GUID-21DAC50D-7737-42B6-BBDA-E12E8779741B.dita">Feedback</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e107534_href.png has changed
Binary file Symbian3/SDK/Source/GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e114072_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-5857377F-B90D-5149-9485-5919C12B8F13.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5857377F-B90D-5149-9485-5919C12B8F13" xml:lang="en"><title>How
+to use a rule-based selector</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following example demonstrates the use of the rule selector and the
+inclusion of a selection rule to retrieve the characteristics of a symmetric
+cipher object. </p>
+<codeblock id="GUID-827D423E-4E63-563F-8D00-C3C906A3E20C" xml:space="preserve">#include &lt;ruleselector.h&gt;
+#include &lt;cryptosymmetriccipherapi.h&gt;
+#include &lt;cryptospistateapi.h&gt;
+#include &lt;cryptospidef.h&gt;
+#include &lt;keys.h&gt;
+
+using namespace CryptoSpi;
+
+// Create a CSelectionRules collection object which is used to store the rules
+// that influence the choice of plug-in implementation selected
+
+CSelectionRules* rules = CSelectionRules::NewL();
+CleanupStack::PushL(rules);
+
+// Add a selection rule selecting symmetric ciphers with a key length of 64 bytes
+    
+TInt ruleValue = 64;
+            
+// Create and initialise one or more crypto parameters 
+// to store the contents of the rule value 
+CCryptoParam* ruleValueParam = CCryptoIntParam::NewL(ruleValue,KMaximumKeyLengthTypeUid);
+
+// Create a selection rule for each crypto parameter (CSelectionRuleContent
+// takes ownership of the crypto parameter), by passing in the following parameters:
+// *InterfaceScope        The Interface scope of which the rule should be applied
+// *AlgorithmScope        The Algorithm scope of which the rule should be applied
+// *CharacteristicValue   The parameter type and value of the rule
+// *Operator              The operator of the rule
+// *IsOptional            Whether this rule is optional (ETrue) or mandatory (EFalse)        
+CSelectionRuleContent* rule = CSelectionRuleContent::NewL(KSymmetricCipherInterfaceUid,
+                                                          KNoneUid,
+                                                          ruleValueParam,
+                                                          EOpEqual,
+                                                          EFalse);
+
+// Add the newly created selection rule to the CSelectionRules collection by calling
+// the 'AddSelectionRuleL' method and passing in a pointer to the constructed rule.
+// AddSelectionRuleL() checks that the type of the crypto parameters is correct and 
+// leaves with KErrNotSupported if not. For instance, a creator name parameter must 
+// be stored using a CCryptoDesC16Param. 
+          
+rules-&gt;AddSelectionRuleL(rule);
+                                    
+// Create an instance of the rule selector, passing in the selection rules 
+// object previously instantiated
+CRuleSelector* ruleSelector = CRuleSelector::NewL(rules);
+    
+// Ownership of the rule collection object is passed to the rule selector, therefore
+// the CSelectionRules object needs to be popped off the cleanup stack before pushing on
+// the rule selector
+CleanupStack::Pop(rules);
+CleanupStack::PushL(ruleSelector);
+    
+// The legacy selector is set within the framework by default. In order to set the rule
+// selector, the 'SetSelector' method of CryptoSpiStateApi needs to be called, 
+//passing a pointer to the initialized rule selector    
+CCryptoSpiStateApi::SetSelector(ruleSelector);
+
+// Create a new CryptoParams object to encapsulate the secret key string for the 
+// Symmetric Cipher implementation 
+CCryptoParams* keyParams = CCryptoParams::NewLC();
+
+// Add the secret key to the CCryptoParams object by calling the AddL method, passing in 
+// the key string and appropriate key parameter UID
+keyParams-&gt;AddL(_L8("12345678"), KSymmetricKeyParameterUid);
+
+// Create a CKey object by passing in an instance of TKeyProperty and the previously
+// created CCryptoParams object containing the secret key
+TKeyProperty keyProperty;        
+CKey* key=CKey::NewL(keyProperty,*keyParams);
+CleanupStack::PushL(key);
+
+// Create and initialise a pointer for the Symmetric Cipher implementation object        
+CSymmetricCipher* symmetricCipherImpl = NULL;
+        
+// If successful, the 'CreateSymmetricCipherL' method returns KErrNone and the framework
+// creates an instance of the selected Symmetric Cipher implementation, as chosen by the
+// rule selector. The CSymmetricCipher pointer is passed by reference and set to point to
+// the new symmetric cipher object
+TRAPD(err,CSymmetricCipherFactory::CreateSymmetricCipherL(symmetricCipherImpl,
+                                                          KDesUid,
+                                                          *key,
+                                                          KCryptoModeEncryptUid,
+                                                          KOperationModeNoneUid,
+                                                          KPaddingModeNoneUid,
+                                                          NULL));
+
+// Having successfully constructed the symmetric cipher implementation object, it is
+// possible to retrieve the plug-in characteristics associated with it
+if (symmetricCipherImpl &amp;&amp; (err == KErrNone))
+ {
+ CleanupStack::PushL(symmetricCipherImpl);
+ // Use cipher
+ CleanupStack::PopAndDestroy(symmetricCipherImpl);
+ }
+
+CleanupStack::PopAndDestroy(2, keyParams);    //key, keyParams
+
+// Unselect rule selector before destruction. This causes CryptoSPI to use the 
+// legacy selector again. After calling SetSelector(), the caller 
+// keeps ownership of the selector, so after calling UnsetSelector(), the 
+// caller needs to delete the selector    
+CCryptoSpiStateApi::UnsetSelector();
+    
+// Pop and destroy the rule selector
+CleanupStack::PopAndDestroy(ruleSelector);
+</codeblock>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1" xml:lang="en"><title>Menu
-bars</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-3C745A35-F53E-4801-B260-7006F85BBE2F"><title>Menu bar configuration</title><image href="GUID-C6B65A53-BE0A-4C35-B355-379D9FE494F8_d0e66731_href.png"/></fig>
-<p>The Symbian platform uses <parmname>MENU_BAR</parmname> resources to
-create the <parmname>Options</parmname> menu, when a mobile device user selects
-the <parmname>Options</parmname> softkey. The options that appear above the
-softkeys are determined by <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA
-resources</xref>. The <parmname>MENU_BAR</parmname> resources map the text
-that appears in the <parmname>Options</parmname> menu with commands that are
-collected by the event loop of the application framework and delivered to
-your application for <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">command
-handling</xref>.</p>
-<p>As the above figure illustrates, in menu bars, different elements in
-the <b>Options</b> menu are declared in a series of <xref href="GUID-5F749184-C804-41FC-BA81-038783BDC967.dita">resource
-statements</xref>. For information on declaring resources for menu bars, see <xref href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita">Menu
-bar resource statements</xref>.</p>
-<p>Access to menus is provided through the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options Menu API</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1" xml:lang="en"><title>Menu bars</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-EBBD1E67-1A8E-4E2C-8520-63B6084247FA"><title>Menu bar configuration</title><image href="GUID-8300FD98-38D7-43EF-A71E-A7BEBFC3F8ED_d0e61693_href.png"/></fig>
+<p>The Symbian platform uses <parmname>MENU_BAR</parmname> resources to
+create the <parmname>Options</parmname> menu, when a mobile device user selects
+the <parmname>Options</parmname> softkey. The options that appear above the
+softkeys are determined by <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA
+resources</xref>. The <parmname>MENU_BAR</parmname> resources map the text
+that appears in the <parmname>Options</parmname> menu with commands that are
+collected by the event loop of the application framework and delivered to
+your application for <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">command
+handling</xref>.</p>
+<p>As the above figure illustrates, in menu bars, different elements in
+the <b>Options</b> menu are declared in a series of <xref href="GUID-5F749184-C804-41FC-BA81-038783BDC967.dita">resource
+statements</xref>. For information on declaring resources for menu bars, see <xref href="GUID-E849C798-07A0-47B3-BDBF-203325062FBD.dita">Menu
+bar resource statements</xref>.</p>
+<p>Access to menus is provided through the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options Menu API</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,109 +1,109 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-59217FA7-3078-53CA-88B3-78D6FB788271" xml:lang="en"><title>Message
-Type Module Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Message Type Modules (MTMs) are polymorphic DLL plug-ins that implement
-the interfaces defined by the Message Server framework to handle various message
-types—such as, IMAP4, POP3, SMTP, SMS and MMS. </p>
-<section><title>Purpose</title> <p>Client applications can access different
-types of message and every message type must handled in a specific way. To
-support a new message type within the client applications, MTMs to implement
-that type must be provided. The following points are specific to each message
-type, and so must be implemented in an MTM: </p> <ul>
-<li id="GUID-B47F5D1A-1C45-56FE-8074-D48F8B72AA58"><p>Message structure </p> </li>
-<li id="GUID-39DEC177-3210-5ED2-8095-32728E33EF7A"><p>User interface requirements </p> </li>
-<li id="GUID-3BA20B3C-0922-515D-8E11-B5A7336CE263"><p>Addressing mechanism </p> </li>
-<li id="GUID-3ADE85A9-3BF2-50F0-9A94-01002A440CF9"><p>Error handling mechanism </p> </li>
-<li id="GUID-E0E95CA4-EB36-5D90-8313-CC608ED2ABF1"><p>MTM DLL information </p> </li>
-</ul> <p>A Message Server abstraction that is used to locate and load particular
-MTM components. </p></section>
-<section><title>Description</title> <p>The MTM architecture is the plug-in
-scheme provided by the Messaging Framework to integrate different message
-transports to the Message Server. The plug-in scheme consists of four interfaces,
-the UI MTM, UI Data MTM, Client MTM and Server MTM. </p> <ul>
-<li id="GUID-A2763364-A20D-52B4-99FB-5D08747C22B4"><p>Client MTM manages the
-message type’s data model, providing the UI MTM and client applications with
-interfaces to access and to search for messages. </p> </li>
-<li id="GUID-BCF8AD0F-42D9-55D3-92DE-998FBD97E5E9"><p>User Interface (UI)
-Data MTM provides icons, menu text and a list of capabilities for a message
-type. </p> </li>
-<li id="GUID-66AFF19F-1ED2-5AF4-A079-5C8B5344E557"><p>User Interface (UI)
-MTM implements the user interface required for the message type, including
-a viewer, editor and dialog settings. </p> </li>
-<li id="GUID-6C73D1B2-A6F6-5F26-A814-6BD38F43DE3B"><p>Server MTM provides
-message transport over the network and manages a queue of outstanding client
-requests, and ensures that more than one message of a given type is sent simultaneously. </p> </li>
-</ul> <p>Each of the MTM DLLs is a polymorphic DLL that exports an instance
-of a system-defined base class. The Message Server and client applications
-use these base class interfaces to access MTM functionality in a generic and
-extensible way. The MTM in turn implements a specialized version of the class
-to provide specific message type functionality. </p> <p>Client applications
-can load and use the UI MTM, UI Data MTM and Client MTM DLLs. The DLLs are
-loaded within the client’s process space. The Server MTM DLLs are loaded within
-the Message Server process. The Messaging Middleware architecture allows clients
-to access the combined functionality of the Message Server and the Server
-MTMs through a single server interface. The following figure shows the MTM
-architecture. </p> <fig id="GUID-D9869871-08F2-5601-8A9C-1871D2AB4E1B">
-<title>              MTM architecture            </title>
-<image href="GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e281776_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>Message Server and MTMs</title> <p>The following figure shows
-the relationship between the Message Server and MTMs. The grey classes are
-realisations of the MTM interfaces defined by the Messaging Framework. The
-Message Server depends on the Server MTM interface and controls access to
-message data and delegates protocol-specific requests to Server side MTMs.
-Messaging clients depend on the Client, UI and UI Data MTM interfaces and
-the Message Server client API. </p> <fig id="GUID-F743115B-6934-5026-9D15-8DA5BE3A2D6F">
-<title>              Relationship between Message Server and MTMs        
-   </title>
-<image href="GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e281792_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>MTM class summary</title> <p>Messaging Middleware provides
-the following base classes, which defines the component interfaces for MTM
-implementations. </p> <ul>
-<li id="GUID-B72EC9B2-DC51-502F-A23C-303597405B13"><p>The base class for UI
-MTMs is <xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref>. </p> </li>
-<li id="GUID-5549337B-621D-52F0-A19F-A0EA61816486"><p>The base class for UI
-Data MTMs is <xref href="GUID-899C6D87-5712-34A7-902C-EA452894700C.dita"><apiname>CBaseMtmUiData</apiname></xref>. </p> </li>
-<li id="GUID-D2E07F67-69DF-54A8-A7E2-3EA64FD74D3C"><p>The base class for Client
-MTMs is <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref>. </p> </li>
-<li id="GUID-42B1BC77-0D29-5627-93C2-CDCC02417B2F"><p>The base class for Server
-MTMs is <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita"><apiname>CBaseServerMtm</apiname></xref>. </p> </li>
-</ul> <p> <b> Important:</b> MTMs can also provide message type-specific functionality
-that is not defined by the base class interfaces. For example, for IMAP4,
-perform a full synchronization with a remote service; for POP3, connect to
-a remote server and download messages. The APIs for the client interfaces
-are extensible through run time type information provided by the <xref href="GUID-B3B2885E-DB79-3047-BCD9-C2A9BF08F5FD.dita"><apiname>QueryCapability</apiname></xref> API,
-and the <xref href="GUID-41E5C23D-CD5A-3DD3-BFCE-F8C576CE2149.dita"><apiname>InvokeAsyncFunction</apiname></xref> and <xref href="GUID-88DEB665-B4B1-3F73-A2A9-44E72C8514B4.dita"><apiname>InvokeSyncFunction</apiname></xref> APIs. </p> <p>For
-information on how to implement the base classes, see the <xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">Implementing
-MTMs</xref>. </p> </section>
-<section><title>MTM functions</title><p>The MTM DLLs provide the following
-functions. MTMs implement them according to the requirements for the message
-type: </p><ul>
-<li id="GUID-56E24547-DA0C-5B01-B68C-4A928D07802F"><p>Querying functionality </p> <p>Allow
-the client applications to query the supported functionality for the message
-type. For example, the maximum message size or whether attachments are supported. </p> </li>
-<li id="GUID-110AFD4C-09D8-585D-B078-6DCD1A4525B4"><p>Message management functionality </p> <p>Allow
-the client applications to manage the messages, for example, to send, reply
-and forward messages. </p> </li>
-<li id="GUID-92F32F80-8E5F-56F9-B35B-99A2934C50E5"><p>Attachment management
-functionality </p> <p>Allow the client applications to handle attachments.
-For example, to add, remove or create an attachment for a particular message. </p> </li>
-</ul></section>
-</conbody><related-links>
-<link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server
-and Store</linktext></link>
-<link href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita"><linktext>Types of
-MTM</linktext></link>
-<link href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita"><linktext>Implementing
-MTMs</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-59217FA7-3078-53CA-88B3-78D6FB788271" xml:lang="en"><title>Message
+Type Module Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Message Type Modules (MTMs) are polymorphic DLL plug-ins that implement
+the interfaces defined by the Message Server framework to handle various message
+types—such as, IMAP4, POP3, SMTP, SMS and MMS. </p>
+<section><title>Purpose</title> <p>Client applications can access different
+types of message and every message type must handled in a specific way. To
+support a new message type within the client applications, MTMs to implement
+that type must be provided. The following points are specific to each message
+type, and so must be implemented in an MTM: </p> <ul>
+<li id="GUID-B47F5D1A-1C45-56FE-8074-D48F8B72AA58"><p>Message structure </p> </li>
+<li id="GUID-39DEC177-3210-5ED2-8095-32728E33EF7A"><p>User interface requirements </p> </li>
+<li id="GUID-3BA20B3C-0922-515D-8E11-B5A7336CE263"><p>Addressing mechanism </p> </li>
+<li id="GUID-3ADE85A9-3BF2-50F0-9A94-01002A440CF9"><p>Error handling mechanism </p> </li>
+<li id="GUID-E0E95CA4-EB36-5D90-8313-CC608ED2ABF1"><p>MTM DLL information </p> </li>
+</ul> <p>A Message Server abstraction that is used to locate and load particular
+MTM components. </p></section>
+<section><title>Description</title> <p>The MTM architecture is the plug-in
+scheme provided by the Messaging Framework to integrate different message
+transports to the Message Server. The plug-in scheme consists of four interfaces,
+the UI MTM, UI Data MTM, Client MTM and Server MTM. </p> <ul>
+<li id="GUID-A2763364-A20D-52B4-99FB-5D08747C22B4"><p>Client MTM manages the
+message type’s data model, providing the UI MTM and client applications with
+interfaces to access and to search for messages. </p> </li>
+<li id="GUID-BCF8AD0F-42D9-55D3-92DE-998FBD97E5E9"><p>User Interface (UI)
+Data MTM provides icons, menu text and a list of capabilities for a message
+type. </p> </li>
+<li id="GUID-66AFF19F-1ED2-5AF4-A079-5C8B5344E557"><p>User Interface (UI)
+MTM implements the user interface required for the message type, including
+a viewer, editor and dialog settings. </p> </li>
+<li id="GUID-6C73D1B2-A6F6-5F26-A814-6BD38F43DE3B"><p>Server MTM provides
+message transport over the network and manages a queue of outstanding client
+requests, and ensures that more than one message of a given type is sent simultaneously. </p> </li>
+</ul> <p>Each of the MTM DLLs is a polymorphic DLL that exports an instance
+of a system-defined base class. The Message Server and client applications
+use these base class interfaces to access MTM functionality in a generic and
+extensible way. The MTM in turn implements a specialized version of the class
+to provide specific message type functionality. </p> <p>Client applications
+can load and use the UI MTM, UI Data MTM and Client MTM DLLs. The DLLs are
+loaded within the client’s process space. The Server MTM DLLs are loaded within
+the Message Server process. The Messaging Middleware architecture allows clients
+to access the combined functionality of the Message Server and the Server
+MTMs through a single server interface. The following figure shows the MTM
+architecture. </p> <fig id="GUID-D9869871-08F2-5601-8A9C-1871D2AB4E1B">
+<title>              MTM architecture            </title>
+<image href="GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e278090_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>Message Server and MTMs</title> <p>The following figure shows
+the relationship between the Message Server and MTMs. The grey classes are
+realisations of the MTM interfaces defined by the Messaging Framework. The
+Message Server depends on the Server MTM interface and controls access to
+message data and delegates protocol-specific requests to Server side MTMs.
+Messaging clients depend on the Client, UI and UI Data MTM interfaces and
+the Message Server client API. </p> <fig id="GUID-F743115B-6934-5026-9D15-8DA5BE3A2D6F">
+<title>              Relationship between Message Server and MTMs        
+   </title>
+<image href="GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e278106_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>MTM class summary</title> <p>Messaging Middleware provides
+the following base classes, which defines the component interfaces for MTM
+implementations. </p> <ul>
+<li id="GUID-B72EC9B2-DC51-502F-A23C-303597405B13"><p>The base class for UI
+MTMs is <xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref>. </p> </li>
+<li id="GUID-5549337B-621D-52F0-A19F-A0EA61816486"><p>The base class for UI
+Data MTMs is <xref href="GUID-899C6D87-5712-34A7-902C-EA452894700C.dita"><apiname>CBaseMtmUiData</apiname></xref>. </p> </li>
+<li id="GUID-D2E07F67-69DF-54A8-A7E2-3EA64FD74D3C"><p>The base class for Client
+MTMs is <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref>. </p> </li>
+<li id="GUID-42B1BC77-0D29-5627-93C2-CDCC02417B2F"><p>The base class for Server
+MTMs is <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita"><apiname>CBaseServerMtm</apiname></xref>. </p> </li>
+</ul> <p> <b> Important:</b> MTMs can also provide message type-specific functionality
+that is not defined by the base class interfaces. For example, for IMAP4,
+perform a full synchronization with a remote service; for POP3, connect to
+a remote server and download messages. The APIs for the client interfaces
+are extensible through run time type information provided by the <xref href="GUID-B3B2885E-DB79-3047-BCD9-C2A9BF08F5FD.dita"><apiname>QueryCapability</apiname></xref> API,
+and the <xref href="GUID-41E5C23D-CD5A-3DD3-BFCE-F8C576CE2149.dita"><apiname>InvokeAsyncFunction</apiname></xref> and <xref href="GUID-88DEB665-B4B1-3F73-A2A9-44E72C8514B4.dita"><apiname>InvokeSyncFunction</apiname></xref> APIs. </p> <p>For
+information on how to implement the base classes, see the <xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">Implementing
+MTMs</xref>. </p> </section>
+<section><title>MTM functions</title><p>The MTM DLLs provide the following
+functions. MTMs implement them according to the requirements for the message
+type: </p><ul>
+<li id="GUID-56E24547-DA0C-5B01-B68C-4A928D07802F"><p>Querying functionality </p> <p>Allow
+the client applications to query the supported functionality for the message
+type. For example, the maximum message size or whether attachments are supported. </p> </li>
+<li id="GUID-110AFD4C-09D8-585D-B078-6DCD1A4525B4"><p>Message management functionality </p> <p>Allow
+the client applications to manage the messages, for example, to send, reply
+and forward messages. </p> </li>
+<li id="GUID-92F32F80-8E5F-56F9-B35B-99A2934C50E5"><p>Attachment management
+functionality </p> <p>Allow the client applications to handle attachments.
+For example, to add, remove or create an attachment for a particular message. </p> </li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server
+and Store</linktext></link>
+<link href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita"><linktext>Types of
+MTM</linktext></link>
+<link href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita"><linktext>Implementing
+MTMs</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,50 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB" xml:lang="en"><title>Controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term <i>control</i> refers to a rectangular area of the display
-that may respond to user input events. A control provides a means of access
-to a window, which means it can be drawn onto the window and receive input.</p>
-<p>Controls are derived from <parmname>CCoeControl</parmname>.</p>
-<p>Examples of controls include:</p>
-<ul>
-<li><p>buttons</p></li>
-<li><p>menus</p></li>
-<li><p>text edit boxes</p></li>
-<li><p>main panes that display application specific data</p>
-</li>
-</ul>
-<p>For more information on controls, see:</p>
-<ul>
-<li><p><xref href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">Window-owning
-controls and non-window-owning controls</xref></p></li>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref></p></li>
-<li><p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI
-Control Framework overview</xref></p></li>
-</ul>
-<p>For information on controls and event handling, see <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Window
-server events</xref>.</p>
-<p>For more information on implementing controls in different architecture
-approaches see:</p>
-<ul>
-<li><p><xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
-Symbian UI application architecture</xref> </p>
-</li>
-<li><p><xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
-architecture</xref></p>
-</li>
-<li><p><xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">Dialog
-architecture</xref></p>
-</li>
-</ul>
-<p>This section comprises:</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB" xml:lang="en"><title>Controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term <i>control</i> refers to a rectangular area of the display
+that may respond to user input events. A control provides a means of access
+to a window, which means it can be drawn onto the window and receive input.</p>
+<p>Controls are derived from <parmname>CCoeControl</parmname>.</p>
+<p>Examples of controls include:</p>
+<ul>
+<li><p>buttons</p></li>
+<li><p>menus</p></li>
+<li><p>text edit boxes</p></li>
+<li><p>main panes that display application specific data</p>
+</li>
+</ul>
+<p>For more information on controls, see:</p>
+<ul>
+<li><p><xref href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">Window-owning
+controls and non-window-owning controls</xref></p></li>
+<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref></p></li>
+<li><p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI
+Control Framework overview</xref></p></li>
+</ul>
+<p>For information on controls and event handling, see <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Window
+server events</xref>.</p>
+<p>For more information on implementing controls in different architecture
+approaches see:</p>
+<ul>
+<li><p><xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
+Symbian UI application architecture</xref> </p>
+</li>
+<li><p><xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
+architecture</xref></p>
+</li>
+<li><p><xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">Dialog
+architecture</xref></p>
+</li>
+</ul>
+<p>This section comprises:</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e220630_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e224367_href.png has changed
Binary file Symbian3/SDK/Source/GUID-598140D3-6C92-5D8E-B204-C7197C6E404D-master.png has changed
Binary file Symbian3/SDK/Source/GUID-598140D3-6C92-5D8E-B204-C7197C6E404D_d0e384680_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D"><title>Secure stream encryption example code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This example covers: </p> <ul><li id="GUID-3F36B509-4E9F-5F4C-A374-993714418DEF"><p> <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita#GUID-598B6698-3518-50CA-98DE-D85CB255BA2D/GUID-C27DAD65-463E-5CC6-A7D1-58F5DB3F279E">Encrypting some data with a password and writing it to a file</xref>  </p> </li> <li id="GUID-BE3A3FB7-E5C6-5488-800A-6BDBCD693C99"><p> <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita#GUID-598B6698-3518-50CA-98DE-D85CB255BA2D/GUID-75B9241A-82D2-52F1-BDCE-B8E329F72BDE">Reading the data back from the file and decrypting it with the same password.</xref>  </p> </li> </ul> <p>Also, see: </p> <ul><li id="GUID-B8CC38F9-AAD9-5FCF-BE9E-F0526443AEFC"><p> <xref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita">PBE example code</xref>  </p> </li> <li id="GUID-9952F1C6-982E-54EE-B8E2-29B99141106B"><p> <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita">Secure store example code</xref>  </p> </li> </ul> <section id="GUID-C27DAD65-463E-5CC6-A7D1-58F5DB3F279E"><title>Encrypting data with a password and writing it to a file</title> <ul><li id="GUID-0CF095D9-2387-5DAA-B599-9255C142D5AB"><p> <xref href="GUID-267D1E20-002E-53C7-8AE5-E063206C1562.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-D41E94E7-F29F-57F4-9DC2-5BFE018BC7C8" xml:space="preserve">
+void CSecureStreamExample::WriteEncryptedDataL(const TDesC8&amp; aInput, const TDesC&amp; aFilename, const TDesC&amp; aPassword)
+         {
+         // Open a stream to the output file
+         RFileWriteStream writeStream;
+         User::LeaveIfError(writeStream.Replace(iFs, aFilename, EFileShareExclusive | EFileWrite));
+         CleanupClosePushL(writeStream);
+                
+         // Create a CPBEncryptElement object, passing details of the encryption we
+         // are using and the user's password
+         CPBEncryptElement* encryption = CPBEncryptElement::NewLC(aPassword, ECipherDES_CBC);
+                
+         // Store encryption data as the first thing in the stream
+         writeStream &lt;&lt; encryption-&gt;EncryptionData();
+                
+         // Create an REncryptStream - this wraps the write stream and encrypts
+         // everything written to it
+         REncryptStream encStream;
+         encStream.OpenL(writeStream, *encryption);
+         CleanupClosePushL(encStream);
+                
+         // Now we can simply write the plaintext to the encrypt stream - it gets
+         // encrypted automatically
+         encStream &lt;&lt; aInput;
+                
+         // Commit the stream
+         encStream.CommitL();
+                
+         // Free memory (writeStream, encryption, encStream)
+         CleanupStack::PopAndDestroy(3, &amp;writeStream);
+         }
+            </codeblock> </section> <section id="GUID-75B9241A-82D2-52F1-BDCE-B8E329F72BDE"><title>Reading data from a file and decrypting it</title> <ul><li id="GUID-952B8F2D-DBA3-5338-BC7D-CA835EA9BA29"><p> <xref href="GUID-267D1E20-002E-53C7-8AE5-E063206C1562.dita">Supporting code for this example</xref>  </p> </li> </ul> <codeblock id="GUID-93A9C97B-E085-5171-A524-2E34BF726000" xml:space="preserve">
+HBufC8* CSecureStreamExample::ReadEncryptedDataLC(const TDesC&amp; aFilename, const TDesC&amp; aPassword)
+         {
+         // Open a stream to the input file
+         RFileReadStream readStream;
+         User::LeaveIfError(readStream.Open(iFs, aFilename, EFileRead));
+         CleanupClosePushL(readStream);
+
+         // Read the encryption data from the stream
+         CPBEncryptionData* encryptionData = CPBEncryptionData::NewLC(readStream);
+         
+         // Recreate the CPBEncryptElement object, using the encryption data from the
+         // file and the user's password
+         CPBEncryptElement* encryption = CPBEncryptElement::NewLC(*encryptionData, aPassword);
+
+         // Create an RDecryptStream based on the read stream - this decrypts
+         // everything we read from it
+         RDecryptStream decStream;
+         decStream.OpenL(readStream, *encryption);
+         CleanupClosePushL(decStream);
+    
+         // Now we can read the plaintext straight from the stream
+         HBufC8* plaintext = HBufC8::NewL(decStream, KMaxTInt);
+             
+         // Free memory (readStream, encryptionData, encryption, decStream)
+         CleanupStack::PopAndDestroy(4, &amp;readStream);
+         CleanupStack::PushL(plaintext);
+    
+         // Return plaintext to the caller
+         return plaintext;
+         }
+        </codeblock> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e16785_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e47131_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e52687_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e240099_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e243836_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59D86225-4727-5B3F-9117-7815B4900445-master.jpg has changed
Binary file Symbian3/SDK/Source/GUID-59D86225-4727-5B3F-9117-7815B4900445_d0e185535_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-59ED6D14-0976-58AE-8DDC-73F051866406.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-59ED6D14-0976-58AE-8DDC-73F051866406.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-59ED6D14-0976-58AE-8DDC-73F051866406" xml:lang="en"><title>How
-to construct a header</title><shortdesc>The header of a linked list needs to know the type of data for
-each list element, and where in each element the pointer to the next element
-can be found.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In order to construct a header, two important pieces of information are
-needed:</p>
-<ul>
-<li id="GUID-5BD8E773-5793-5C52-BF07-62FF1839F19A"><p>the <i>type</i> of object
-which forms the elements.</p> </li>
-<li id="GUID-9E43534B-D692-53CE-83D9-FE4F1B2DFC42"><p>the <i>offset</i> of
-the link object from the start of the element.</p> </li>
-</ul>
-<p>To create a header for a singly linked list of <codeph>CMyClass</codeph> elements,
-defined as:</p>
-<codeblock id="GUID-8851C435-33CD-5F1C-95E3-60CEC2770D64" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TSglQueLink iSlink;
-    ...
-    };</codeblock>
-<p>construct a <codeph>TSglQue</codeph> as follows:</p>
-<codeblock id="GUID-D634E7AB-9240-5F0E-9D36-BE476B038842" xml:space="preserve">TSglQue&lt;CMyClass&gt; queHeader(_FOFF(CMyClass,iSlink));</codeblock>
-<p>The <codeph>TSglQue</codeph> class takes a class template parameter which
-defines the type of object which is to form an element of the list. In this
-example, objects of type <codeph>CMyClass</codeph> form the elements of the
-list.</p>
-<p>The <codeph>_FOFF</codeph> macro (i.e. the "field offset" macro) calculates
-the offset of the component link object within the element. In this example,
-the required value is the offset of the <codeph>iSlink</codeph> data member
-from the start of <codeph>CMyClass</codeph>. </p>
-<fig id="GUID-3B9C78A4-02FC-5D63-AFD2-53996F9CAEC7">
-<title>Links in singly linked lists</title>
-<image href="GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e218352_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-59ED6D14-0976-58AE-8DDC-73F051866406" xml:lang="en"><title>How
+to construct a header</title><shortdesc>The header of a linked list needs to know the type of data for
+each list element, and where in each element the pointer to the next element
+can be found.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In order to construct a header, two important pieces of information are
+needed:</p>
+<ul>
+<li id="GUID-5BD8E773-5793-5C52-BF07-62FF1839F19A"><p>the <i>type</i> of object
+which forms the elements.</p> </li>
+<li id="GUID-9E43534B-D692-53CE-83D9-FE4F1B2DFC42"><p>the <i>offset</i> of
+the link object from the start of the element.</p> </li>
+</ul>
+<p>To create a header for a singly linked list of <codeph>CMyClass</codeph> elements,
+defined as:</p>
+<codeblock id="GUID-8851C435-33CD-5F1C-95E3-60CEC2770D64" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TSglQueLink iSlink;
+    ...
+    };</codeblock>
+<p>construct a <codeph>TSglQue</codeph> as follows:</p>
+<codeblock id="GUID-D634E7AB-9240-5F0E-9D36-BE476B038842" xml:space="preserve">TSglQue&lt;CMyClass&gt; queHeader(_FOFF(CMyClass,iSlink));</codeblock>
+<p>The <codeph>TSglQue</codeph> class takes a class template parameter which
+defines the type of object which is to form an element of the list. In this
+example, objects of type <codeph>CMyClass</codeph> form the elements of the
+list.</p>
+<p>The <codeph>_FOFF</codeph> macro (i.e. the "field offset" macro) calculates
+the offset of the component link object within the element. In this example,
+the required value is the offset of the <codeph>iSlink</codeph> data member
+from the start of <codeph>CMyClass</codeph>. </p>
+<fig id="GUID-3B9C78A4-02FC-5D63-AFD2-53996F9CAEC7">
+<title>Links in singly linked lists</title>
+<image href="GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e214615_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e69489_href.png has changed
Binary file Symbian3/SDK/Source/GUID-59F26729-3FFB-48AE-91FB-4B9AC2955A06_d0e74654_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,241 +1,241 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403" xml:lang="en"><title>XML
-DOM Engine Overview</title><shortdesc>The XML DOM Engine implements the standard DOM API (tree-based
-XML parsing and editing), including XPath and serialization extensions. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The XML DOM Engine provides APIs to achieve
-the following: </p> <ul>
-<li id="GUID-D9B629FA-A426-5B43-ABAD-B49404822464"><p>Parse XML content: create
-a DOM tree from XML streams or files </p> </li>
-<li id="GUID-EBEBE1E6-1AEF-5181-A7C4-D4E3E3152FE4"><p>Create an empty DOM
-tree </p> </li>
-<li id="GUID-C8B88AF6-A2F0-5AE1-B207-8D56988DC5F9"><p>Modify a DOM tree by
-adding or removing nodes and changing their properties (attributes?) </p> </li>
-<li id="GUID-70322A4D-BDD9-5A93-8D38-107E46F4C952"><p>Save a DOM tree to a
-buffer or a file (in regular XML, XOP or compressed format) </p> </li>
-<li id="GUID-1A8514F7-534B-5C2A-9EF5-6F444B2FEE9F"><p>Explore a DOM tree with
-XPath expressions </p> </li>
-</ul> </section>
-<section><title>Required background</title> <p>The XML DOM engine is based
-on the <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">libxml2</xref> component.
-It provides a Level-3-like implementation of the <xref href="http://www.w3.org/DOM/" scope="external">DOM</xref> standard from W3C, along with <xref href="http://www.w3.org/TR/xpath" scope="external">XPath</xref> and serialisation extensions. </p> </section>
-<section><title>Key concepts and terms</title> <p>The following concepts are
-related to generic XML understanding: </p><p><b>XPath Extension Functions</b></p><p>XML
-Path Language (or XPath) is a W3C standard designed to address parts of an
-XML document. A subset of XPath is also used for matching: that is, checking
-that a node matches a pattern. Extension Functions are not part of the W3C
-standard: you can implement them to add functionalities to XPath. </p><p><b>Serialise</b></p><p>Serialising
-means converting binary data to a persistent format that can be stored (to
-a buffer or a file) or transmitted over a data link. The reverse operation
-is called deserialising. </p><p>The <b>RChunk</b> and <b>RHeap</b> classes
-are standard Symbian platform classes. For more information,
-see <xref href="GUID-6D8460DF-8B0F-5249-B236-92ABE0E67A14.dita">Memory allocation
-concepts</xref>. </p> </section>
-<section><title>Architecture</title> <p>The XML DOM Engine component relies
-on the libxml2 component for most of its operations. For more information,
-see <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">libxml2 Overview</xref>. </p> <p>It
-also relies on the libxml2 SAX parser plugin of the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
-Framework</xref> and on the multi-part parser of the <xref href="GUID-C8BD333E-8384-534B-822B-F61B2F7C8B9F.dita">BAFL</xref> component
-for deserialisation. </p> <p>The following package diagram summarises the
-dependencies of the XML DOM Engine and shows the three functionality groups
-that are described in the following section. </p> <fig id="GUID-EEFA9390-CA66-56DD-96B4-9DF7C35AB36D">
-<title>              Package diagram for the XML DOM Engine component    
-       </title>
-<image href="GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429835_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Description</title> <p>The XML DOM Engine is an object-oriented
-provider of the DOM services included in the standard libxml2 library: tree-based
-parsing with validation and random access to the XML elements. If you need
-event-based parsing, use the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
-Framework</xref> instead. </p> <p><b>DOM Parsing</b> </p> <p>Parsing an XML
-document creates two parallel trees: the regular DOM tree containing generic
-Node objects and an <xref href="GUID-87294A6B-4607-3D4A-9D1E-B87B16A06209.dita"><apiname>RXmlEngDocument</apiname></xref> object which contains
-type-specific nodes. Use these type-specific nodes to avoid type-checking
-and casting the Nodes as well as to improve performance. Some of these node
-types are shown in the following diagram. </p> <fig id="GUID-32F52AA5-2670-5C4C-B9EE-508BDB3B9E78">
-<title>                 Extract of the class diagram for the XML DOM Engine
-parser               </title>
-<image href="GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429866_href.png" placement="inline"/>
-</fig> <p><b>Serialisation</b> </p> <p>Serialisation transforms the DOM tree
-(including binary data) into one of the following formats: </p> <ul>
-<li id="GUID-C7E6E69A-9373-5A8E-A0A4-FABA95738ACC"><p>Default (standard XML) </p> </li>
-<li id="GUID-46B3A636-54BE-556A-B5D5-277378BD4BAB"><p>XOP (XML-binary Optimized
-Packaging) </p> </li>
-<li id="GUID-6DA98291-237E-5CD0-87ED-D6DBE56A9846"><p>XOP Infoset (original
-Infoset with any optimized content replaced by <codeph>xop:Include</codeph> items) </p> </li>
-<li id="GUID-235F5E65-C2A3-55FE-8537-B2F986367FFD"><p>gzip (compressed XML) </p> </li>
-</ul> <p>The result can be returned as a file, a buffer or both. </p> <p><b>XPath
-Extension Function</b> </p> <p>XPath can be extended at run-time by registering
-a new extension function. To call the new function, include it in an XPath
-expression evaluated by the XML DOM Engine. </p> <p>The XPath Extension Function
-API provides two interfaces: <xref href="GUID-BCEBA44D-3C1A-38D2-BFDB-6CA14DF40CE9.dita"><apiname>MXPathExtensionFunction</apiname></xref> for
-the XPath function and <xref href="GUID-33B9C910-FCFC-36A5-B4CC-AA54DF4043E0.dita"><apiname>MXmlEngXpathEvaluationContext</apiname></xref> for
-its configuration. The static <xref href="GUID-79B8C611-4646-330F-98EA-C387BDB430E2.dita"><apiname>TXmlEngXPathConfiguration</apiname></xref> class
-performs the registration of the extension function within the XML DOM Engine. </p> </section>
-<section><title>APIs</title> <p><b>DOM Parser API</b> </p> <p>The most relevant
-classes for parsing and editing a DOM tree are listed in the following table.
-See <xref href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita">Implementation
-of W3C Types</xref> for correspondance between this API and the W3C standard. </p> <table id="GUID-B401C7C0-E8C1-5576-BF6A-DF722024F896">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>DOM Parser API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-A59972BD-707E-32B6-AF28-D2B8C6EA17F8.dita"><apiname>RXMLEngDOMImplementation</apiname></xref>  </p> </entry>
-<entry><p>This class is the entry-point for the DOM Engine. It provides methods
-for creating a new document or an instance of the DOM parser. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-701146BE-35E9-380F-AA58-25E4660C50EB.dita"><apiname>RXMLEngDomParser</apiname></xref>  </p> </entry>
-<entry><p>This class provides methods for parsing an XML document and building
-a DOM tree. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-BCF2D3E3-3A31-3D79-B355-04984EFF0551.dita"><apiname>RXMLEngDocument</apiname></xref>  </p> </entry>
-<entry><p>This class represents a DOM tree. It stores the document properties
-and provides methods for modifying the tree, such as adding or deleting nodes. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-56A1BCDD-A471-310B-8F9D-85AF2FAB2B37.dita"><apiname>TXMLEngNode</apiname></xref>  </p> </entry>
-<entry><p>This class represents a DOM node. It stores the node type and properties,
-and provides the DOM methods related to it. </p> <p>Specialisations of this
-class are detailed in <xref href="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita">XML
-DOM Engine Node Reference</xref>. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The DOM API relies on Descriptor objects for string manipulation,
-and on <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> handles for filesystem input and output. To
-store <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> in a DOM tree, use the <xref href="GUID-FC3D2792-A98A-37FF-A59C-28DF0555FDCD.dita"><apiname>TXmlEngFileContainer</apiname></xref> class.
-To store <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> in a DOM tree, use the <xref href="GUID-5D101B85-E1D0-3C78-8C97-3FB8CE459EC6.dita"><apiname>TXmlEngChunkContainer</apiname></xref> class. </p> <p><b>Serialisation
-API</b> </p> <p>The most relevant classes for DOM serialisation and deserialisation
-are listed in the following table. Other classes can be found in the reference
-documentation. </p> <table id="GUID-0FBACCD6-BC4D-5CAF-88E7-61DE329EADB4">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Serialisation API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-ADFEF636-484D-35BF-B6C5-B9F47317ACD9.dita"><apiname>CXmlEngSerializer</apiname></xref>  </p> </entry>
-<entry><p>This class provides methods to save a DOM tree to a file or a buffer. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-791D9C19-3942-3107-8C91-F56528CF2590.dita"><apiname>CXmlEngDeserializer</apiname></xref>  </p> </entry>
-<entry><p>This class provides methods to read serialised XOP or GZIP and create
-DOM or SAX representations of it. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>XPath APIs</b> </p> <p>The DOM Parsing classes related to XPath
-are listed in the following table. Other classes can be found in the reference
-documentation. </p> <table id="GUID-0E32710B-BEA3-5D01-B48F-BC753AA13625">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>XPath API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-036E87E6-F6FB-371B-8CAB-FBD8C2635FDA.dita"><apiname>RXmlEngXPathExpression</apiname></xref>  </p> </entry>
-<entry><p>This class represents an XPath expression. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D76EC81E-B92E-304A-8651-068459763BBA.dita"><apiname>TXmlEmgXPathEvaluator</apiname></xref>  </p> </entry>
-<entry><p>This class evaluates an XPath expression and returns the result
-in an <xref href="GUID-C84A1329-F403-370F-9740-6A8D38D72F22.dita"><apiname>RXmlEngXPathResult</apiname></xref> instance. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1053AD9F-99BD-34D8-A77B-9B4F66FD7CCF.dita"><apiname>XmlEngXPathConfiguration</apiname></xref>  </p> </entry>
-<entry><p>This class contains static methods for XPath configuration and registration
-of extension functions. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The most relevant classes of the Extension Function API for XPath
-are listed in the following table. Other classes can be found in the reference
-documentation. </p> <table id="GUID-6200B207-23F8-522A-885E-8DFA82CECE0F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry> XPath Extension Function API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-6158C316-5D11-33D9-9599-4C3E98DF1748.dita"><apiname>MXmlEngXPathExtensionFunction</apiname></xref>  </p> </entry>
-<entry><p>This interface must be implemented by your extension function. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-33B9C910-FCFC-36A5-B4CC-AA54DF4043E0.dita"><apiname>MXmlEngXpathEvaluationContext</apiname></xref>  </p> </entry>
-<entry><p>This interface must be implemented by your evaluation function,
-which processes the arguments of the extension function and stores the result
-of the evalutation. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>The XML DOM Engine is used by client
-applications to process XML documents: </p> <ul>
-<li id="GUID-4D5B1DAB-FEFD-5D66-8917-761042DC362A"><p>The most common clients
-are web browsers and associated software, which parse and validate XML streams
-or files. </p> </li>
-<li id="GUID-4DFB1B4A-1F07-53E6-B043-D10D5C09679F"><p>Applications can also
-use the XML DOM Engine to organize and store their data, or to transfer their
-XML objects over a network connection. </p> </li>
-<li id="GUID-98C0B034-7B47-5D00-8148-CEA28A53E9B0"><p>Middleware providers
-can extend XPath with new functions with the XPath Extension Function API. </p> </li>
-</ul> <p>To port an existing application that uses the standard libxml2 library,
-use the <codeph>libxml2</codeph> component and call the C++ wrappers of the
-standard library. </p> <p>Here are some of the common tasks that applications
-perform through the XML DOM Engine: </p> <ul>
-<li id="GUID-2F9859FD-1B09-58FB-849D-323B01D9F63D"><p>Read an XML file by
-one of the following means: </p> <ul>
-<li id="GUID-AC959FCA-A1F5-5691-8B4A-FFD8E385C25B"><p>Use the <xref href="GUID-B575F3B3-85B0-3709-932A-99C0388D8B6E.dita"><apiname>RXMLEngDOMParser</apiname></xref> class
-to parse a regular XML file and get a DOM tree, as explained in the <xref href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita">XML DOM Parsing Tutorial</xref>. </p> </li>
-<li id="GUID-EC051C8A-47D1-5DE3-9093-C67FA6F75896"><p>Use the <xref href="GUID-72FD946E-36E1-3229-BF78-0E03D84BCB95.dita"><apiname>CXMLEngineSaxPlugin</apiname></xref> class
-to parse a regular XML file and get SAX events, as explained in the <xref href="GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808.dita#GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808/GUID-948C5BEE-0E05-525A-B601-909A1818FDA0">XML
-SAX Parsing Tutorial</xref>. </p> </li>
-<li id="GUID-149E3236-EAB3-5990-8E5C-40B36BB89ACB"><p>Use the <codeph>DeserializeL()&lt;/codeph&gt;
-method of the <xref href="GUID-B58E0BF8-099A-3E61-BA8C-E777CA9E9F38.dita"><apiname>TXmlEngDeserializer</apiname></xref> class to deserialise
-a compressed XML file and get SAX events. </codeph></p> </li>
-<li id="GUID-3165531B-E5EC-5965-ACA9-4B660C40C6D8"><p>Use the <codeph>UseDOMImplementation()</codeph> and <codeph>DeserializeL()</codeph> methods
-of the <xref href="GUID-B58E0BF8-099A-3E61-BA8C-E777CA9E9F38.dita"><apiname>TXmlEngDeserializer</apiname></xref> class to deserialise a compressed
-XML file and get a DOM tree. </p> </li>
-</ul> </li>
-<li id="GUID-A2269AAD-B0F9-50D2-8A96-5AEC601C84AA"><p>Save an XML object to
-a file by using the <xref href="GUID-CD621FD4-8ADE-3211-96E9-FC6EFC9AEE2C.dita"><apiname>TXmlEngSerializer</apiname></xref> class, as explained
-in the <xref href="GUID-E20C2C98-A294-551B-99CF-BE1DAA6F597E.dita">XML Serialisation
-Tutorial</xref>. </p> </li>
-<li id="GUID-2999261C-7049-50A6-A1DF-79CD57A039C4"><p>Search through an XML
-document with XPath, as explained in the <xref href="GUID-92C2317A-57B8-558E-984B-B10FD0404981.dita">XPath
-Tutorial</xref>. </p> </li>
-<li id="GUID-D527989F-D3D8-50B5-9191-FBD59FCAC335"><p>Add extension functions
-to XPath, as explained in the <xref href="GUID-49A7E8FD-72DA-5D56-86BE-74AA9AAF7C02.dita">XPath
-Extension Tutorial</xref>. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita"><linktext>XML Framework</linktext>
-</link>
-<link href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita"><linktext>libxml2</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403" xml:lang="en"><title>XML
+DOM Engine Overview</title><shortdesc>The XML DOM Engine implements the standard DOM API (tree-based
+XML parsing and editing), including XPath and serialization extensions. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The XML DOM Engine provides APIs to achieve
+the following: </p> <ul>
+<li id="GUID-D9B629FA-A426-5B43-ABAD-B49404822464"><p>Parse XML content: create
+a DOM tree from XML streams or files </p> </li>
+<li id="GUID-EBEBE1E6-1AEF-5181-A7C4-D4E3E3152FE4"><p>Create an empty DOM
+tree </p> </li>
+<li id="GUID-C8B88AF6-A2F0-5AE1-B207-8D56988DC5F9"><p>Modify a DOM tree by
+adding or removing nodes and changing their properties (attributes?) </p> </li>
+<li id="GUID-70322A4D-BDD9-5A93-8D38-107E46F4C952"><p>Save a DOM tree to a
+buffer or a file (in regular XML, XOP or compressed format) </p> </li>
+<li id="GUID-1A8514F7-534B-5C2A-9EF5-6F444B2FEE9F"><p>Explore a DOM tree with
+XPath expressions </p> </li>
+</ul> </section>
+<section><title>Required background</title> <p>The XML DOM engine is based
+on the <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">libxml2</xref> component.
+It provides a Level-3-like implementation of the <xref href="http://www.w3.org/DOM/" scope="external">DOM</xref> standard from W3C, along with <xref href="http://www.w3.org/TR/xpath" scope="external">XPath</xref> and serialisation extensions. </p> </section>
+<section><title>Key concepts and terms</title> <p>The following concepts are
+related to generic XML understanding: </p><p><b>XPath Extension Functions</b></p><p>XML
+Path Language (or XPath) is a W3C standard designed to address parts of an
+XML document. A subset of XPath is also used for matching: that is, checking
+that a node matches a pattern. Extension Functions are not part of the W3C
+standard: you can implement them to add functionalities to XPath. </p><p><b>Serialise</b></p><p>Serialising
+means converting binary data to a persistent format that can be stored (to
+a buffer or a file) or transmitted over a data link. The reverse operation
+is called deserialising. </p><p>The <b>RChunk</b> and <b>RHeap</b> classes
+are standard Symbian platform classes. For more information,
+see <xref href="GUID-6D8460DF-8B0F-5249-B236-92ABE0E67A14.dita">Memory allocation
+concepts</xref>. </p> </section>
+<section><title>Architecture</title> <p>The XML DOM Engine component relies
+on the libxml2 component for most of its operations. For more information,
+see <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">libxml2 Overview</xref>. </p> <p>It
+also relies on the libxml2 SAX parser plugin of the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
+Framework</xref> and on the multi-part parser of the <xref href="GUID-C8BD333E-8384-534B-822B-F61B2F7C8B9F.dita">BAFL</xref> component
+for deserialisation. </p> <p>The following package diagram summarises the
+dependencies of the XML DOM Engine and shows the three functionality groups
+that are described in the following section. </p> <fig id="GUID-EEFA9390-CA66-56DD-96B4-9DF7C35AB36D">
+<title>              Package diagram for the XML DOM Engine component    
+       </title>
+<image href="GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429673_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Description</title> <p>The XML DOM Engine is an object-oriented
+provider of the DOM services included in the standard libxml2 library: tree-based
+parsing with validation and random access to the XML elements. If you need
+event-based parsing, use the <xref href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita">XML
+Framework</xref> instead. </p> <p><b>DOM Parsing</b> </p> <p>Parsing an XML
+document creates two parallel trees: the regular DOM tree containing generic
+Node objects and an <xref href="GUID-87294A6B-4607-3D4A-9D1E-B87B16A06209.dita"><apiname>RXmlEngDocument</apiname></xref> object which contains
+type-specific nodes. Use these type-specific nodes to avoid type-checking
+and casting the Nodes as well as to improve performance. Some of these node
+types are shown in the following diagram. </p> <fig id="GUID-32F52AA5-2670-5C4C-B9EE-508BDB3B9E78">
+<title>                 Extract of the class diagram for the XML DOM Engine
+parser               </title>
+<image href="GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429704_href.png" placement="inline"/>
+</fig> <p><b>Serialisation</b> </p> <p>Serialisation transforms the DOM tree
+(including binary data) into one of the following formats: </p> <ul>
+<li id="GUID-C7E6E69A-9373-5A8E-A0A4-FABA95738ACC"><p>Default (standard XML) </p> </li>
+<li id="GUID-46B3A636-54BE-556A-B5D5-277378BD4BAB"><p>XOP (XML-binary Optimized
+Packaging) </p> </li>
+<li id="GUID-6DA98291-237E-5CD0-87ED-D6DBE56A9846"><p>XOP Infoset (original
+Infoset with any optimized content replaced by <codeph>xop:Include</codeph> items) </p> </li>
+<li id="GUID-235F5E65-C2A3-55FE-8537-B2F986367FFD"><p>gzip (compressed XML) </p> </li>
+</ul> <p>The result can be returned as a file, a buffer or both. </p> <p><b>XPath
+Extension Function</b> </p> <p>XPath can be extended at run-time by registering
+a new extension function. To call the new function, include it in an XPath
+expression evaluated by the XML DOM Engine. </p> <p>The XPath Extension Function
+API provides two interfaces: <xref href="GUID-BCEBA44D-3C1A-38D2-BFDB-6CA14DF40CE9.dita"><apiname>MXPathExtensionFunction</apiname></xref> for
+the XPath function and <xref href="GUID-33B9C910-FCFC-36A5-B4CC-AA54DF4043E0.dita"><apiname>MXmlEngXpathEvaluationContext</apiname></xref> for
+its configuration. The static <xref href="GUID-79B8C611-4646-330F-98EA-C387BDB430E2.dita"><apiname>TXmlEngXPathConfiguration</apiname></xref> class
+performs the registration of the extension function within the XML DOM Engine. </p> </section>
+<section><title>APIs</title> <p><b>DOM Parser API</b> </p> <p>The most relevant
+classes for parsing and editing a DOM tree are listed in the following table.
+See <xref href="GUID-326D4D50-5AD9-5CA2-8422-AA45AE0712D6.dita">Implementation
+of W3C Types</xref> for correspondance between this API and the W3C standard. </p> <table id="GUID-B401C7C0-E8C1-5576-BF6A-DF722024F896">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>DOM Parser API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-A59972BD-707E-32B6-AF28-D2B8C6EA17F8.dita"><apiname>RXMLEngDOMImplementation</apiname></xref>  </p> </entry>
+<entry><p>This class is the entry-point for the DOM Engine. It provides methods
+for creating a new document or an instance of the DOM parser. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-701146BE-35E9-380F-AA58-25E4660C50EB.dita"><apiname>RXMLEngDomParser</apiname></xref>  </p> </entry>
+<entry><p>This class provides methods for parsing an XML document and building
+a DOM tree. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-BCF2D3E3-3A31-3D79-B355-04984EFF0551.dita"><apiname>RXMLEngDocument</apiname></xref>  </p> </entry>
+<entry><p>This class represents a DOM tree. It stores the document properties
+and provides methods for modifying the tree, such as adding or deleting nodes. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-56A1BCDD-A471-310B-8F9D-85AF2FAB2B37.dita"><apiname>TXMLEngNode</apiname></xref>  </p> </entry>
+<entry><p>This class represents a DOM node. It stores the node type and properties,
+and provides the DOM methods related to it. </p> <p>Specialisations of this
+class are detailed in <xref href="GUID-1CB7491C-1207-5C2E-979F-8ABEB95EE9D9.dita">XML
+DOM Engine Node Reference</xref>. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The DOM API relies on Descriptor objects for string manipulation,
+and on <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> handles for filesystem input and output. To
+store <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> in a DOM tree, use the <xref href="GUID-FC3D2792-A98A-37FF-A59C-28DF0555FDCD.dita"><apiname>TXmlEngFileContainer</apiname></xref> class.
+To store <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> in a DOM tree, use the <xref href="GUID-5D101B85-E1D0-3C78-8C97-3FB8CE459EC6.dita"><apiname>TXmlEngChunkContainer</apiname></xref> class. </p> <p><b>Serialisation
+API</b> </p> <p>The most relevant classes for DOM serialisation and deserialisation
+are listed in the following table. Other classes can be found in the reference
+documentation. </p> <table id="GUID-0FBACCD6-BC4D-5CAF-88E7-61DE329EADB4">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Serialisation API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-ADFEF636-484D-35BF-B6C5-B9F47317ACD9.dita"><apiname>CXmlEngSerializer</apiname></xref>  </p> </entry>
+<entry><p>This class provides methods to save a DOM tree to a file or a buffer. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-791D9C19-3942-3107-8C91-F56528CF2590.dita"><apiname>CXmlEngDeserializer</apiname></xref>  </p> </entry>
+<entry><p>This class provides methods to read serialised XOP or GZIP and create
+DOM or SAX representations of it. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>XPath APIs</b> </p> <p>The DOM Parsing classes related to XPath
+are listed in the following table. Other classes can be found in the reference
+documentation. </p> <table id="GUID-0E32710B-BEA3-5D01-B48F-BC753AA13625">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>XPath API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-036E87E6-F6FB-371B-8CAB-FBD8C2635FDA.dita"><apiname>RXmlEngXPathExpression</apiname></xref>  </p> </entry>
+<entry><p>This class represents an XPath expression. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D76EC81E-B92E-304A-8651-068459763BBA.dita"><apiname>TXmlEmgXPathEvaluator</apiname></xref>  </p> </entry>
+<entry><p>This class evaluates an XPath expression and returns the result
+in an <xref href="GUID-C84A1329-F403-370F-9740-6A8D38D72F22.dita"><apiname>RXmlEngXPathResult</apiname></xref> instance. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1053AD9F-99BD-34D8-A77B-9B4F66FD7CCF.dita"><apiname>XmlEngXPathConfiguration</apiname></xref>  </p> </entry>
+<entry><p>This class contains static methods for XPath configuration and registration
+of extension functions. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The most relevant classes of the Extension Function API for XPath
+are listed in the following table. Other classes can be found in the reference
+documentation. </p> <table id="GUID-6200B207-23F8-522A-885E-8DFA82CECE0F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry> XPath Extension Function API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-6158C316-5D11-33D9-9599-4C3E98DF1748.dita"><apiname>MXmlEngXPathExtensionFunction</apiname></xref>  </p> </entry>
+<entry><p>This interface must be implemented by your extension function. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-33B9C910-FCFC-36A5-B4CC-AA54DF4043E0.dita"><apiname>MXmlEngXpathEvaluationContext</apiname></xref>  </p> </entry>
+<entry><p>This interface must be implemented by your evaluation function,
+which processes the arguments of the extension function and stores the result
+of the evalutation. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>The XML DOM Engine is used by client
+applications to process XML documents: </p> <ul>
+<li id="GUID-4D5B1DAB-FEFD-5D66-8917-761042DC362A"><p>The most common clients
+are web browsers and associated software, which parse and validate XML streams
+or files. </p> </li>
+<li id="GUID-4DFB1B4A-1F07-53E6-B043-D10D5C09679F"><p>Applications can also
+use the XML DOM Engine to organize and store their data, or to transfer their
+XML objects over a network connection. </p> </li>
+<li id="GUID-98C0B034-7B47-5D00-8148-CEA28A53E9B0"><p>Middleware providers
+can extend XPath with new functions with the XPath Extension Function API. </p> </li>
+</ul> <p>To port an existing application that uses the standard libxml2 library,
+use the <codeph>libxml2</codeph> component and call the C++ wrappers of the
+standard library. </p> <p>Here are some of the common tasks that applications
+perform through the XML DOM Engine: </p> <ul>
+<li id="GUID-2F9859FD-1B09-58FB-849D-323B01D9F63D"><p>Read an XML file by
+one of the following means: </p> <ul>
+<li id="GUID-AC959FCA-A1F5-5691-8B4A-FFD8E385C25B"><p>Use the <xref href="GUID-B575F3B3-85B0-3709-932A-99C0388D8B6E.dita"><apiname>RXMLEngDOMParser</apiname></xref> class
+to parse a regular XML file and get a DOM tree, as explained in the <xref href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita">XML DOM Parsing Tutorial</xref>. </p> </li>
+<li id="GUID-EC051C8A-47D1-5DE3-9093-C67FA6F75896"><p>Use the <xref href="GUID-72FD946E-36E1-3229-BF78-0E03D84BCB95.dita"><apiname>CXMLEngineSaxPlugin</apiname></xref> class
+to parse a regular XML file and get SAX events, as explained in the <xref href="GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808.dita#GUID-AF937B6E-7BC0-5B7D-818E-93F7CAFD8808/GUID-948C5BEE-0E05-525A-B601-909A1818FDA0">XML
+SAX Parsing Tutorial</xref>. </p> </li>
+<li id="GUID-149E3236-EAB3-5990-8E5C-40B36BB89ACB"><p>Use the <codeph>DeserializeL()&lt;/codeph&gt;
+method of the <xref href="GUID-B58E0BF8-099A-3E61-BA8C-E777CA9E9F38.dita"><apiname>TXmlEngDeserializer</apiname></xref> class to deserialise
+a compressed XML file and get SAX events. </codeph></p> </li>
+<li id="GUID-3165531B-E5EC-5965-ACA9-4B660C40C6D8"><p>Use the <codeph>UseDOMImplementation()</codeph> and <codeph>DeserializeL()</codeph> methods
+of the <xref href="GUID-B58E0BF8-099A-3E61-BA8C-E777CA9E9F38.dita"><apiname>TXmlEngDeserializer</apiname></xref> class to deserialise a compressed
+XML file and get a DOM tree. </p> </li>
+</ul> </li>
+<li id="GUID-A2269AAD-B0F9-50D2-8A96-5AEC601C84AA"><p>Save an XML object to
+a file by using the <xref href="GUID-CD621FD4-8ADE-3211-96E9-FC6EFC9AEE2C.dita"><apiname>TXmlEngSerializer</apiname></xref> class, as explained
+in the <xref href="GUID-E20C2C98-A294-551B-99CF-BE1DAA6F597E.dita">XML Serialisation
+Tutorial</xref>. </p> </li>
+<li id="GUID-2999261C-7049-50A6-A1DF-79CD57A039C4"><p>Search through an XML
+document with XPath, as explained in the <xref href="GUID-92C2317A-57B8-558E-984B-B10FD0404981.dita">XPath
+Tutorial</xref>. </p> </li>
+<li id="GUID-D527989F-D3D8-50B5-9191-FBD59FCAC335"><p>Add extension functions
+to XPath, as explained in the <xref href="GUID-49A7E8FD-72DA-5D56-86BE-74AA9AAF7C02.dita">XPath
+Extension Tutorial</xref>. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita"><linktext>XML Framework</linktext>
+</link>
+<link href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita"><linktext>libxml2</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A" xml:lang="en"><title>Cryptography
+overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-67CB0CE0-EFDA-4183-BB49-293580FFA0A5"><title>Purpose</title> <p>The
+Cryptography module is the basis of the Symbian platform Security system.
+The services provided by this module are used by the following components:
+Certman (Certificate Management), Software Installation, Secure Communication
+Protocols (for example, SSL, TLS, IPSEC), and WTLS. </p> <p>These services
+include: </p> <ul>
+<li id="GUID-4D104E90-FF18-5FF6-8D8F-806D31F9C81D"><p>symmetric encryption-decryption </p> </li>
+<li id="GUID-62E013DC-85FD-5C7E-8F63-93C7F546F99E"><p>asymmetric encryption-decryption </p> </li>
+<li id="GUID-716CAC33-4B7D-5F10-9F3A-CAFD6D42442F"><p>integrity checking and
+signature verification </p> </li>
+<li id="GUID-CE94FB08-21CE-51BD-9F2C-B857BC135902"><p>key exchange </p> </li>
+<li id="GUID-72254184-BFDA-546A-97E9-0056F70ED602"><p>message digests </p> </li>
+</ul> <p>The interface for the cryptographic services hides the implementation
+details of particular algorithms. No detailed knowledge of the cryptographic
+algorithms is needed to use the cryptographic services. </p> </section>
+<section id="GUID-39C675AC-939A-4028-9016-27C66D869173"><title>Description</title> <p>The
+Cryptography module encapsulates the following significant components: </p> <ul>
+<li id="GUID-1B44BA90-11D8-5FD0-9554-4C7B788CEFF0"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A/GUID-59BBC450-1E19-58EA-8DD6-5F2D1EAB7D63">Cryptographic algorithms</xref>  </p> </li>
+<li id="GUID-0FCB4381-6394-5A28-86FE-A1AAEC2ABEF5"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A/GUID-10F78AEF-4388-5A04-BD8D-A036171E3B82">Hash algorithms</xref>  </p> </li>
+<li id="GUID-7CFF13A5-A55A-54F0-A3AD-1137E66D158B"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A/GUID-0630C916-ED45-520D-92CD-FE4F87A66D04">Random Number Generator (RNG)</xref>  </p> </li>
+<li id="GUID-A42E03EF-DFC1-5646-8326-053E203A509C"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A/GUID-965474E9-6B4E-50C6-8F05-3381BBDC661A">Supporting APIs</xref>  </p> </li>
+</ul> <p id="GUID-59BBC450-1E19-58EA-8DD6-5F2D1EAB7D63"><b>Cryptographic algorithms</b> </p> <p>These
+algorithms allow data to be encrypted and decrypted. They include: </p> <ul>
+<li id="GUID-D94D2386-B73D-5D07-A770-C73C81F80D5C"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita">Symmetric
+ciphers</xref> — algorithms that require communicating parties to hold a shared
+secret. They are fast and used for the transmission of bulk data. </p> </li>
+<li id="GUID-7425FC7D-BA33-5F0B-92A4-95876C790EBB"><p> <xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita">Asymmetric
+ciphers</xref> — algorithms which have two keys, one private to the keys'
+owner and one which can be published. They are slow compared to symmetric
+ciphers and are used to exchange a symmetric key before transmission of data
+encrypted using that key. </p> </li>
+</ul> <p>The classes implementing the symmetric and asymmetric ciphers are
+provided in <filepath>cryptography.dll</filepath> (see <xref href="GUID-48DB00D7-3807-5B4B-B4CE-D8C05B42CA6D.dita">Cryptography
+library</xref>). </p> <p id="GUID-10F78AEF-4388-5A04-BD8D-A036171E3B82"><b>Hash
+algorithms</b> </p> <p>Hash algorithms compact a message down to a short series
+of bytes from which it is impossible to regenerate the message. They are used
+with an asymmetric cipher to generate signatures. </p> <p>The classes implementing
+the hash algorithms are provided in <filepath>hash.dll</filepath>. </p> <p>Hash
+algorithms are documented in the mainstream Symbian platform library. </p> <p id="GUID-0630C916-ED45-520D-92CD-FE4F87A66D04"><b>Random Number Generator
+(RNG)</b> </p> <p>RNG is the basis for the cryptographic key generation. It
+uses the RANROT algorithm seeded by random data available on the target hardware
+(for example, free running counters available on ARM processors). </p> <p>The
+Random number library is provided by <filepath>random.dll</filepath>. </p> <p>The
+Random Number Generator API is documented in the mainstream Symbian OS Library. </p> <p id="GUID-965474E9-6B4E-50C6-8F05-3381BBDC661A"><b>Supporting APIs</b> </p> <ul>
+<li id="GUID-1AFD7DEA-F5C8-56E4-AA71-359F893ED7C6"><p> <xref href="GUID-8119A243-2EF1-582A-BB94-BA2A18D02D2C.dita">Password
+Based Encryption (PBE)</xref> — provides an API to encrypt and decrypt data
+with a user-supplied password. </p> <p>The classes implementing PBE (for example,
+for secure stream encryption) are provided in <filepath>pbe.dll</filepath>. </p> </li>
+<li id="GUID-7A02B665-46BE-5DBB-9A8A-787120AA3D11"><p>Padding — is extra bits
+concatenated with a key, password, or plaintext to make their length equal
+to the block size. It defines the way blocks are filled with data when the
+data to be encrypted is smaller than the block size. Padding is added at encryption
+and checked on decryption. (See <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-BDF6E245-AE19-55D6-89ED-BCBE0FCF006B">Block
+and stream ciphers</xref> and <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-A8F9A25F-B83E-5FE7-840F-4DCF246D3D96">CPadding
+class relationships</xref>.) </p> <p>The Cryptography library supports <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2125" scope="external">PKCS#1</xref> public
+and private padding, and <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2129" scope="external">PKCS#7</xref> style padding (see <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2315.txt" scope="external">RFC 2315</xref> section 10.3). </p> </li>
+<li id="GUID-85009712-99DF-571D-88B1-6F2B86385762"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita">Big
+integers</xref> — Implementation of arbitrarily large integers. </p> <p>Note
+that although some methods are exported, the intent is that this library is
+only for use by the Cryptography library and not by application code. </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e371630_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5B6634EA-EB78-504E-BC5D-ABA67EEA06DF_d0e377700_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e317563_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e323720_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e128056_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5B8FEDA0-624E-44D6-BF70-C5228234BD15_d0e134594_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e230759_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e234496_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389217_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389379_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e74056_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e79176_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,104 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71" xml:lang="en"><title>condvar:
-Using Condition Variables</title><shortdesc>Examples that explains how to use condition variables. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p/>
-<ul>
-<li id="GUID-7CD8220E-2844-5FCB-A9B4-9B188F95C6EE"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5">condvarglobal</xref>  </p> </li>
-<li id="GUID-74DAFE22-039F-5647-B56E-6BB83B876DED"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943">condvarlocal</xref>  </p> </li>
-</ul>
-<section id="GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5"><title>condvarglobal</title> <p>This
-example shows the use of the global condition variable IPC mechanism. The
-scope of a global condition variable is inter-process. It can be shared by
-threads of any process in the system. </p> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-ddcb07c8-2646-4414-b33f-086f5758cbfe.zip" scope="external">condvarglobal .zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-ddcb07c8-2646-4414-b33f-086f5758cbfe.html" scope="peer"> browse </xref> to view the example code</p><p><b>Class summary</b></p><p> <xref href="GUID-D16EF740-78E6-3D08-AE2F-AFA5E812FF2B.dita"><apiname>RCondVar </apiname></xref> <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex </apiname></xref> <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk </apiname></xref> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> </p> <p><b>Description</b> </p> <p>This
-example uses an adder and subtractor pattern to show the use of a global condition
-variable. Two processes, the adder and the subtractor, modify a shared variable
-by adding and subtracting random amounts. The condition variable ensures that
-the value remains within given limits, <codeph>KMaxValue</codeph> and <codeph>KMinValue</codeph>,
-by blocking one of the processes if the value crosses a warning threshold. </p> <p>The
-adder program creates a global shared memory chunk. It also creates a global
-mutex to control access to the chunk and a global condition variable to signal
-that the value in the chunk is '<codeph>ready for use</codeph>'. It then initialises
-the value in the chunk to zero and periodically tries to add a random value
-between 1 and 10 . If, having added a value, it finds that the value of the
-chunk is greater than <codeph>KUpperThreshold</codeph>, it waits for a signal
-from the condition variable before adding another value. </p> <p>The subtractor
-program periodically tries to subtract a random value between 1 and 10 from
-the global shared memory chunk. If, having subtracted a value, it finds that
-the value of the chunk is less than <codeph>KLowerThreshold</codeph>, it waits
-for a signal from the condition variable before subtracting another value. </p> <p><b>Design
-and implementation</b> </p> <fig id="GUID-1FAFB189-D2E4-5A05-8D8B-B3F7D28467FC">
-<image href="GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e254026_href.jpg" placement="inline"/>
-</fig> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this example. The ConditionVariable
-example builds the following binary files in the standard location (<filepath>\epoc32\release\winscw\
-             &lt;build_variant&gt;</filepath>) for Carbide.c++. </p> <ul>
-<li id="GUID-A699F4AF-3A5F-5C24-83CB-1762348AA1D2"><p> <b>adder.exe:</b> Demonstrates
-the use of the global condition variable. It creates a global shared memory
-chunk and periodically adds random values to the chunk. </p> </li>
-<li id="GUID-30A5BE77-8F99-5206-AD42-51E843D0D3C2"><p> <b>subtractor.exe:</b> Demonstrates
-the use of the global condition variable. It periodically subtracts random
-values from the chunk created by <filepath>adder.exe</filepath>. </p> </li>
-</ul> <p><b>How to run the Example</b> </p> <p>To run the example, perform
-the following steps: </p> <ol id="GUID-312A1E16-C92B-5C33-9D80-83080412E657">
-<li id="GUID-E8E12006-8AAC-503D-B59A-F171092293F4"><p>Run <filepath>adder.exe</filepath>. </p> </li>
-<li id="GUID-C9F80A69-218F-5467-9DDE-FC5849753E95"><p>Run eshell. </p> </li>
-<li id="GUID-457E6D8F-A383-5CF6-BA6E-D98C8FAC20F4"><p>Run <filepath>subtract.exe</filepath> in
-your new eshell. </p> </li>
-<li id="GUID-122618AE-028B-5BF9-BB4B-4F95099EE839"><p>Switch between eshells
-by pressing <b>CTRL+ALT+SHIFT+T</b>. </p> </li>
-<li id="GUID-24CCA548-D350-53A7-9919-270EA0C71EC1"><p>To finish, stop each
-application by pressing any key. </p> </li>
-</ol> </section>
-<section id="GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943"><title>condvarlocal</title> <p>This
-example shows the use of the local condition variable IPC mechanism. The scope
-of a local condition variable is intra-process. It can be shared by threads
-of the process that creates the condition variable. </p> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-527239ad-3eff-4d62-a7fe-b7e43658dd2f.zip" scope="external">condvarlocal .zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-527239ad-3eff-4d62-a7fe-b7e43658dd2f.html" scope="peer"> browse </xref> to view the example.</p> <p><b>Class summary</b></p><p> <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex </apiname></xref><xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread </apiname></xref>  <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic </apiname></xref> <xref href="GUID-D16EF740-78E6-3D08-AE2F-AFA5E812FF2B.dita"><apiname>RCondVar</apiname></xref></p> <p><b>Description</b> </p> <p>This
-example uses the producer and the consumer model to show the use of the local
-condition variable. </p> <p>The example creates two local threads: a producer
-and a consumer. The two threads share a buffer, which is an object of the <codeph>CQueue</codeph> class.
-The CQueue object creates a local condition variable using the <codeph>RCondVar::CreateLocal()</codeph> function.
-It also defines the methods to insert and remove a token from the queue. The <codeph>CQueue::Insert()</codeph> function
-inserts a token into the queue and signals the condition variable. The <codeph>CQueue::Remove()</codeph> function
-tries to remove a token from the queue. If the queue is empty, it must wait
-for a signal from the condition variable. </p> <p>An object of the <codeph>CProducer</codeph> class
-creates and calls the producer thread. The producer thread is called once
-every two seconds using an object of the <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> class.
-This thread inserts a token into the queue when it is called. It calls the <codeph>CQueue::Insert()</codeph> function
-on the shared <codeph>CQueue</codeph> object. </p> <p>An object of the <codeph>CConsumer</codeph> class
-creates and calls the consumer thread. The consumer thread is called once
-a second using an object of the <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> class. This thread
-removes a token from the queue when it is called. It calls the <codeph>CQueue::Remove()</codeph> function
-on the shared <codeph>CQueue</codeph> object. </p> <p>For more information,
-refer to <xref href="http://support.entegrity.com/private/doclib/docs/osfhtm/develop/appdev/Appde179.htm" scope="external">Condition Variables</xref>. </p> <p> <note> Symbian
-is not responsible for the content of external websites.</note>  </p> <p><b>Design
-and implementation</b> </p> <fig id="GUID-CA344322-0982-59C3-B93A-7A1F175728F3">
-<image href="GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e254228_href.jpg" placement="inline"/>
-</fig> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this example. The ConditionVariable
-example builds the following binary files in the standard location (<filepath>\epoc32\release\winscw\
-             &lt;build_variant&gt;</filepath>) for Carbide.c++. </p> <p> <filepath>condvarlocal.exe</filepath>:
-Demonstrates the use of the local condition variable. </p> <p><b>How to run
-the Example</b> </p> <p>To run the example, perform the following steps: </p> <ol id="GUID-D07D5782-6A32-5552-B42B-7D2672F1C94F">
-<li id="GUID-CD0F5EAF-780F-5BC7-A216-2FE9CA3B284D"><p>Run <filepath>condvarlocal.exe</filepath>.
-The program calls the producer and the consumer threads periodically as shown
-in the description section. It also displays a menu. </p> </li>
-<li id="GUID-106E7D1D-4ECB-5FA2-A42C-CB1549F4811F"><p>Press <b>‘d’</b> to
-display the contents of the queue. </p> </li>
-<li id="GUID-AA9ABD22-E280-5F21-A1A1-F47FFAAC58F2"><p>Press <b>‘p’</b> to
-insert a token into the queue. </p> </li>
-<li id="GUID-96C5D556-0700-5632-80A1-E728C97A62C1"><p>Press any key to stop
-the program. </p> </li>
-</ol> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71" xml:lang="en"><title>condvar:
+Using Condition Variables</title><shortdesc>Examples that explains how to use condition variables. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p/>
+<ul>
+<li id="GUID-7CD8220E-2844-5FCB-A9B4-9B188F95C6EE"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5">condvarglobal</xref>  </p> </li>
+<li id="GUID-74DAFE22-039F-5647-B56E-6BB83B876DED"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita#GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71/GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943">condvarlocal</xref>  </p> </li>
+</ul>
+<section id="GUID-8209AA7E-0DFB-512D-9BEB-9063BA617BC5"><title>condvarglobal</title> <p>This
+example shows the use of the global condition variable IPC mechanism. The
+scope of a global condition variable is inter-process. It can be shared by
+threads of any process in the system. </p> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-ddcb07c8-2646-4414-b33f-086f5758cbfe.zip" scope="external">condvarglobal .zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-ddcb07c8-2646-4414-b33f-086f5758cbfe.html" scope="peer"> browse </xref> to view the example code</p><p><b>Class summary</b></p><p> <xref href="GUID-D16EF740-78E6-3D08-AE2F-AFA5E812FF2B.dita"><apiname>RCondVar </apiname></xref> <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex </apiname></xref> <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk </apiname></xref> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> </p> <p><b>Description</b> </p> <p>This
+example uses an adder and subtractor pattern to show the use of a global condition
+variable. Two processes, the adder and the subtractor, modify a shared variable
+by adding and subtracting random amounts. The condition variable ensures that
+the value remains within given limits, <codeph>KMaxValue</codeph> and <codeph>KMinValue</codeph>,
+by blocking one of the processes if the value crosses a warning threshold. </p> <p>The
+adder program creates a global shared memory chunk. It also creates a global
+mutex to control access to the chunk and a global condition variable to signal
+that the value in the chunk is '<codeph>ready for use</codeph>'. It then initialises
+the value in the chunk to zero and periodically tries to add a random value
+between 1 and 10 . If, having added a value, it finds that the value of the
+chunk is greater than <codeph>KUpperThreshold</codeph>, it waits for a signal
+from the condition variable before adding another value. </p> <p>The subtractor
+program periodically tries to subtract a random value between 1 and 10 from
+the global shared memory chunk. If, having subtracted a value, it finds that
+the value of the chunk is less than <codeph>KLowerThreshold</codeph>, it waits
+for a signal from the condition variable before subtracting another value. </p> <p><b>Design
+and implementation</b> </p> <fig id="GUID-1FAFB189-D2E4-5A05-8D8B-B3F7D28467FC">
+<image href="GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e250294_href.jpg" placement="inline"/>
+</fig> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. The ConditionVariable
+example builds the following binary files in the standard location (<filepath>\epoc32\release\winscw\
+             &lt;build_variant&gt;</filepath>) for Carbide.c++. </p> <ul>
+<li id="GUID-A699F4AF-3A5F-5C24-83CB-1762348AA1D2"><p> <b>adder.exe:</b> Demonstrates
+the use of the global condition variable. It creates a global shared memory
+chunk and periodically adds random values to the chunk. </p> </li>
+<li id="GUID-30A5BE77-8F99-5206-AD42-51E843D0D3C2"><p> <b>subtractor.exe:</b> Demonstrates
+the use of the global condition variable. It periodically subtracts random
+values from the chunk created by <filepath>adder.exe</filepath>. </p> </li>
+</ul> <p><b>How to run the Example</b> </p> <p>To run the example, perform
+the following steps: </p> <ol id="GUID-312A1E16-C92B-5C33-9D80-83080412E657">
+<li id="GUID-E8E12006-8AAC-503D-B59A-F171092293F4"><p>Run <filepath>adder.exe</filepath>. </p> </li>
+<li id="GUID-C9F80A69-218F-5467-9DDE-FC5849753E95"><p>Run eshell. </p> </li>
+<li id="GUID-457E6D8F-A383-5CF6-BA6E-D98C8FAC20F4"><p>Run <filepath>subtract.exe</filepath> in
+your new eshell. </p> </li>
+<li id="GUID-122618AE-028B-5BF9-BB4B-4F95099EE839"><p>Switch between eshells
+by pressing <b>CTRL+ALT+SHIFT+T</b>. </p> </li>
+<li id="GUID-24CCA548-D350-53A7-9919-270EA0C71EC1"><p>To finish, stop each
+application by pressing any key. </p> </li>
+</ol> </section>
+<section id="GUID-8CF8C4E2-4D74-54C8-9601-97CC44B9C943"><title>condvarlocal</title> <p>This
+example shows the use of the local condition variable IPC mechanism. The scope
+of a local condition variable is intra-process. It can be shared by threads
+of the process that creates the condition variable. </p> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-527239ad-3eff-4d62-a7fe-b7e43658dd2f.zip" scope="external">condvarlocal .zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-527239ad-3eff-4d62-a7fe-b7e43658dd2f.html" scope="peer"> browse </xref> to view the example.</p> <p><b>Class summary</b></p><p> <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex </apiname></xref><xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread </apiname></xref>  <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic </apiname></xref> <xref href="GUID-D16EF740-78E6-3D08-AE2F-AFA5E812FF2B.dita"><apiname>RCondVar</apiname></xref></p> <p><b>Description</b> </p> <p>This
+example uses the producer and the consumer model to show the use of the local
+condition variable. </p> <p>The example creates two local threads: a producer
+and a consumer. The two threads share a buffer, which is an object of the <codeph>CQueue</codeph> class.
+The CQueue object creates a local condition variable using the <codeph>RCondVar::CreateLocal()</codeph> function.
+It also defines the methods to insert and remove a token from the queue. The <codeph>CQueue::Insert()</codeph> function
+inserts a token into the queue and signals the condition variable. The <codeph>CQueue::Remove()</codeph> function
+tries to remove a token from the queue. If the queue is empty, it must wait
+for a signal from the condition variable. </p> <p>An object of the <codeph>CProducer</codeph> class
+creates and calls the producer thread. The producer thread is called once
+every two seconds using an object of the <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> class.
+This thread inserts a token into the queue when it is called. It calls the <codeph>CQueue::Insert()</codeph> function
+on the shared <codeph>CQueue</codeph> object. </p> <p>An object of the <codeph>CConsumer</codeph> class
+creates and calls the consumer thread. The consumer thread is called once
+a second using an object of the <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> class. This thread
+removes a token from the queue when it is called. It calls the <codeph>CQueue::Remove()</codeph> function
+on the shared <codeph>CQueue</codeph> object. </p> <p>For more information,
+refer to <xref href="http://support.entegrity.com/private/doclib/docs/osfhtm/develop/appdev/Appde179.htm" scope="external">Condition Variables</xref>. </p> <p> <note> Symbian
+is not responsible for the content of external websites.</note>  </p> <p><b>Design
+and implementation</b> </p> <fig id="GUID-CA344322-0982-59C3-B93A-7A1F175728F3">
+<image href="GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e250496_href.jpg" placement="inline"/>
+</fig> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. The ConditionVariable
+example builds the following binary files in the standard location (<filepath>\epoc32\release\winscw\
+             &lt;build_variant&gt;</filepath>) for Carbide.c++. </p> <p> <filepath>condvarlocal.exe</filepath>:
+Demonstrates the use of the local condition variable. </p> <p><b>How to run
+the Example</b> </p> <p>To run the example, perform the following steps: </p> <ol id="GUID-D07D5782-6A32-5552-B42B-7D2672F1C94F">
+<li id="GUID-CD0F5EAF-780F-5BC7-A216-2FE9CA3B284D"><p>Run <filepath>condvarlocal.exe</filepath>.
+The program calls the producer and the consumer threads periodically as shown
+in the description section. It also displays a menu. </p> </li>
+<li id="GUID-106E7D1D-4ECB-5FA2-A42C-CB1549F4811F"><p>Press <b>‘d’</b> to
+display the contents of the queue. </p> </li>
+<li id="GUID-AA9ABD22-E280-5F21-A1A1-F47FFAAC58F2"><p>Press <b>‘p’</b> to
+insert a token into the queue. </p> </li>
+<li id="GUID-96C5D556-0700-5632-80A1-E728C97A62C1"><p>Press any key to stop
+the program. </p> </li>
+</ol> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e75346_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e80478_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,82 +1,82 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4"><title>How the Target Client is Resolved using CSIPResolvedClient</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>SIP Client Resolver determines the target clients by comparing the Request-URI of the incoming SIP request to the information provided in the ECOM plug-in resource file. This resource file is an XML file. All client applications using Client Resolver must be implemented as ECOM plug-ins and must have capabilities. </p> <p>An application must declare capabilities, that are the supported content types and media formats that use the SIP headers and SDP m-lines. The capabilities must be declared in the code of the plug-in, in the XML file, or in the opaque_data field of the resource file. </p> <p>The following is the DTD for the ECOM plug-in’s resource file: </p> <codeblock id="GUID-68B0C530-A5DA-5230-870E-49649C242F08" xml:space="preserve">&lt;!-- SIP_CLIENT --&gt;
-&lt;!ELEMENT SIP_CLIENT (SIP_HEADERS, SDP_LINES?)&gt;
-
-&lt;!-- ALLOW_STARTING determines if a client can be started by the SIP stack. --&gt;
-&lt;!ATTLIST SIP_CLIENT ALLOW_STARTING (YES|NO) #REQUIRED&gt;
-
-&lt;!-- SIP_HEADERS --&gt;
-&lt;!ELEMENT SIP_HEADERS (ACCEPT+, ALLOW_EVENTS*, ACCEPT_CONTACT*)&gt;
-
-&lt;!-- ACCEPT: Accept-header as specified in RFC 3261.
-  Indicates Content-Types supported by the client.
-  Note that support for application/sdp must be announced as well,
-  especially when the application aims to indicate capabilities based 
-  on SDP. Otherwise the SDP-based rules will not be taken into account.
-  An empty value means that the application is willing
-  to receive SIP requests without content. 
---&gt;
-&lt;!ELEMENT ACCEPT EMPTY&gt;
-&lt;!ATTLIST ACCEPT value CDATA #REQUIRED&gt;
-
-&lt;!-- ALLOW_EVENTS: Allow-Events-header as specified in RFC 3265
-  Indicates events supported by the client.
-  Compared to the event-package part of a Event-header
-  in an incoming SIP request if present. 
---&gt;
-&lt;!ELEMENT ALLOW_EVENTS EMPTY&gt;
-&lt;!ATTLIST ALLOW_EVENTS value CDATA #REQUIRED&gt;
-
-&lt;!-- ACCEPT_CONTACT: Accept-Contact-header as specified in RFC 3841
-  Indicates caller preferences supported by the client.
-  All the parameters must match to a Accept-Contact header 
-  in an incoming SIP request if present.
---&gt;
-&lt;!ELEMENT ACCEPT_CONTACT EMPTY&gt;
-&lt;!ATTLIST ACCEPT_CONTACT value CDATA #REQUIRED&gt;
-
-&lt;!-- SDP_LINES --&gt;
-&lt;!ELEMENT SDP_LINES (LINE+)&gt;
-
-&lt;!-- SDP Lines 
-  Can be used to indicate supported media by the client.
-  If defined the application must announce the capability of 
-  receiving content of type application/sdp.
-  Only M-line is supported currently as follows:
-    - supported values of media field
-    - port is rendered useless, 
-          but is mandatory in M-Line's BNF (should be set to zero)
-    - supported values of proto field
-    - name of the application in fmt field if the
-      value of media field is 'application'
-  BNF for the value of the M-Line:
-        media space port ["/" integer] space proto 1*(space fmt)
-        media = 1*(alpha-numeric)
-        port = 1*(DIGIT)
-        proto = 1*(alpha-numeric)
-        fmt = 1*(alpha-numeric)
-    alpha-numeric = ALPHA | DIGIT
-        ALPHA = "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"I"|"j"|"k"|
-                "l"|"m"|"n"|"o "|"p"|"q"|"r"|"s"|"t"|"u"|"v"|
-                "w"|"x"|"y"|"z"|"A"|"B"|"C "|"D"|"E"|"F"|"G"|
-                "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|" Q"|"R"|
-                "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"
-    DIGIT = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
---&gt;
-&lt;!ELEMENT LINE EMPTY&gt;
-&lt;!ATTLIST LINE name CDATA #REQUIRED&gt;
-&lt;!ATTLIST LINE value CDATA #REQUIRED&gt;
-</codeblock> <p>The resource (<filepath>.rss</filepath>) file contains the XML file and the following information: </p> <ul><li id="GUID-ECADCF4D-C7B1-5F8F-861C-247682A61B41"><p> <codeph> dll_uid</codeph> and <codeph>implementation_uid</codeph>: These UIDs are supplied on request to <xref scope="external" href="http://www.symbiansigned.com">Symbian Signed</xref>. </p> <p> <b>Note</b>: These UIDs can be the same. </p> </li> <li id="GUID-CF722A1F-0FCE-5E12-9DD2-876C1DB776FD"><p> <codeph> interface_uid</codeph>: This must have the value <codeph>0x102010DD</codeph>. </p> </li> <li id="GUID-A9CF8349-9202-508A-83EA-48B0BDBDB147"><p> <codeph>default_data</codeph>: The application UID (without 0x). </p> </li> <li id="GUID-EB1AFAED-F5B6-591D-9412-9E240587ABB5"><p> <codeph> opaque_data</codeph>: The application capabilities in XML format. This field is empty if application capabilities are defined in the implementation. </p> </li> </ul> <section><title>Resolving the target client using CSIPResolvedClient</title> <p>The following illustration shows how the SIP Client Resolver subsystem resolves the target client implementation and requests the resolved client to connect to the SIP implementation. In this plan, the default resolution logic is applied. </p> <fig id="GUID-AF6C1C45-A5A0-56FF-BBFC-3635BF4F9AD1"><title>
-             Call flow of resolving a target client implementation using
-             CSIPResolvedClient 
-          </title> <image href="GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e343948_href.png" placement="inline"/></fig> <p>The following list describes how the target client is resolved using <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref>. </p> <ol id="GUID-3D917824-7288-5893-8FFB-C4C81D30BF79"><li id="GUID-D801505D-4B4F-503B-95F7-F0C412413F70"><p>The user receives a SIP request and the target client is defined using <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref>. </p> </li> <li id="GUID-6AE1B8B5-83AF-5346-9F6C-68DE86B08800"><p>The user requests the SIP Client Resolver API implementation for a channel UI to connect to the user. </p> </li> <li id="GUID-CBF6BEDC-6062-5E21-80C4-920303B6C3FC"><p>The user requests the target client to connect to SIP with the resolved UID if there is no connection with the resolved channel UID. </p> </li> <li id="GUID-6EEEBE30-C31B-5E7C-9F91-FEAC3D14A340"><p>The SIP Client Resolver API implementation starts the target client. </p> </li> </ol> </section> <section><title>See also</title> <p> <xref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita">Example of a SIP client resolver plug-in</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4"><title>How the Target Client is Resolved using CSIPResolvedClient</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>SIP Client Resolver determines the target clients by comparing the Request-URI of the incoming SIP request to the information provided in the ECOM plug-in resource file. This resource file is an XML file. All client applications using Client Resolver must be implemented as ECOM plug-ins and must have capabilities. </p> <p>An application must declare capabilities, that are the supported content types and media formats that use the SIP headers and SDP m-lines. The capabilities must be declared in the code of the plug-in, in the XML file, or in the opaque_data field of the resource file. </p> <p>The following is the DTD for the ECOM plug-in’s resource file: </p> <codeblock id="GUID-68B0C530-A5DA-5230-870E-49649C242F08" xml:space="preserve">&lt;!-- SIP_CLIENT --&gt;
+&lt;!ELEMENT SIP_CLIENT (SIP_HEADERS, SDP_LINES?)&gt;
+
+&lt;!-- ALLOW_STARTING determines if a client can be started by the SIP stack. --&gt;
+&lt;!ATTLIST SIP_CLIENT ALLOW_STARTING (YES|NO) #REQUIRED&gt;
+
+&lt;!-- SIP_HEADERS --&gt;
+&lt;!ELEMENT SIP_HEADERS (ACCEPT+, ALLOW_EVENTS*, ACCEPT_CONTACT*)&gt;
+
+&lt;!-- ACCEPT: Accept-header as specified in RFC 3261.
+  Indicates Content-Types supported by the client.
+  Note that support for application/sdp must be announced as well,
+  especially when the application aims to indicate capabilities based 
+  on SDP. Otherwise the SDP-based rules will not be taken into account.
+  An empty value means that the application is willing
+  to receive SIP requests without content. 
+--&gt;
+&lt;!ELEMENT ACCEPT EMPTY&gt;
+&lt;!ATTLIST ACCEPT value CDATA #REQUIRED&gt;
+
+&lt;!-- ALLOW_EVENTS: Allow-Events-header as specified in RFC 3265
+  Indicates events supported by the client.
+  Compared to the event-package part of a Event-header
+  in an incoming SIP request if present. 
+--&gt;
+&lt;!ELEMENT ALLOW_EVENTS EMPTY&gt;
+&lt;!ATTLIST ALLOW_EVENTS value CDATA #REQUIRED&gt;
+
+&lt;!-- ACCEPT_CONTACT: Accept-Contact-header as specified in RFC 3841
+  Indicates caller preferences supported by the client.
+  All the parameters must match to a Accept-Contact header 
+  in an incoming SIP request if present.
+--&gt;
+&lt;!ELEMENT ACCEPT_CONTACT EMPTY&gt;
+&lt;!ATTLIST ACCEPT_CONTACT value CDATA #REQUIRED&gt;
+
+&lt;!-- SDP_LINES --&gt;
+&lt;!ELEMENT SDP_LINES (LINE+)&gt;
+
+&lt;!-- SDP Lines 
+  Can be used to indicate supported media by the client.
+  If defined the application must announce the capability of 
+  receiving content of type application/sdp.
+  Only M-line is supported currently as follows:
+    - supported values of media field
+    - port is rendered useless, 
+          but is mandatory in M-Line's BNF (should be set to zero)
+    - supported values of proto field
+    - name of the application in fmt field if the
+      value of media field is 'application'
+  BNF for the value of the M-Line:
+        media space port ["/" integer] space proto 1*(space fmt)
+        media = 1*(alpha-numeric)
+        port = 1*(DIGIT)
+        proto = 1*(alpha-numeric)
+        fmt = 1*(alpha-numeric)
+    alpha-numeric = ALPHA | DIGIT
+        ALPHA = "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"I"|"j"|"k"|
+                "l"|"m"|"n"|"o "|"p"|"q"|"r"|"s"|"t"|"u"|"v"|
+                "w"|"x"|"y"|"z"|"A"|"B"|"C "|"D"|"E"|"F"|"G"|
+                "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|" Q"|"R"|
+                "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"
+    DIGIT = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
+--&gt;
+&lt;!ELEMENT LINE EMPTY&gt;
+&lt;!ATTLIST LINE name CDATA #REQUIRED&gt;
+&lt;!ATTLIST LINE value CDATA #REQUIRED&gt;
+</codeblock> <p>The resource (<filepath>.rss</filepath>) file contains the XML file and the following information: </p> <ul><li id="GUID-ECADCF4D-C7B1-5F8F-861C-247682A61B41"><p> <codeph> dll_uid</codeph> and <codeph>implementation_uid</codeph>: These UIDs are supplied on request to <xref scope="external" href="http://www.symbiansigned.com">Symbian Signed</xref>. </p> <p> <b>Note</b>: These UIDs can be the same. </p> </li> <li id="GUID-CF722A1F-0FCE-5E12-9DD2-876C1DB776FD"><p> <codeph> interface_uid</codeph>: This must have the value <codeph>0x102010DD</codeph>. </p> </li> <li id="GUID-A9CF8349-9202-508A-83EA-48B0BDBDB147"><p> <codeph>default_data</codeph>: The application UID (without 0x). </p> </li> <li id="GUID-EB1AFAED-F5B6-591D-9412-9E240587ABB5"><p> <codeph> opaque_data</codeph>: The application capabilities in XML format. This field is empty if application capabilities are defined in the implementation. </p> </li> </ul> <section><title>Resolving the target client using CSIPResolvedClient</title> <p>The following illustration shows how the SIP Client Resolver subsystem resolves the target client implementation and requests the resolved client to connect to the SIP implementation. In this plan, the default resolution logic is applied. </p> <fig id="GUID-AF6C1C45-A5A0-56FF-BBFC-3635BF4F9AD1"><title>
+             Call flow of resolving a target client implementation using
+             CSIPResolvedClient 
+          </title> <image href="GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e337751_href.png" placement="inline"/></fig> <p>The following list describes how the target client is resolved using <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref>. </p> <ol id="GUID-3D917824-7288-5893-8FFB-C4C81D30BF79"><li id="GUID-D801505D-4B4F-503B-95F7-F0C412413F70"><p>The user receives a SIP request and the target client is defined using <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref>. </p> </li> <li id="GUID-6AE1B8B5-83AF-5346-9F6C-68DE86B08800"><p>The user requests the SIP Client Resolver API implementation for a channel UI to connect to the user. </p> </li> <li id="GUID-CBF6BEDC-6062-5E21-80C4-920303B6C3FC"><p>The user requests the target client to connect to SIP with the resolved UID if there is no connection with the resolved channel UID. </p> </li> <li id="GUID-6EEEBE30-C31B-5E7C-9F91-FEAC3D14A340"><p>The SIP Client Resolver API implementation starts the target client. </p> </li> </ol> </section> <section><title>See also</title> <p> <xref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita">Example of a SIP client resolver plug-in</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,153 +1,153 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6" xml:lang="en"><title>Alarm
-Server Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Alarm Server is a system server, which starts during device start-up. It
-is responsible for maintaining a queue of all system-wide alarms. </p>
-<p>It allows clients to query the status of alarms, set alarms, remove alarms
-and perform other utility functions. The Alarm client API allows other components
-to interact with the Alarm Server. The Alarm Server sends notification of
-alarm expiry to the Alert Server, which then notifies the Alarm UI to display
-dialogs and play sound. </p>
-<p>The typical clients of Alarm Server include Clock and Calendar applications. </p>
-<section><title>Purpose</title> <p>The Alarm Server manages the alarms in
-the system and provides the following functionality: </p> <ul>
-<li id="GUID-56175798-4930-55A3-ACD8-848192C07A63"><p>adding, updating and
-deleting alarms. </p> </li>
-<li id="GUID-FCF13562-7E88-5A5B-84B9-05B7934E7277"><p>getting and setting
-client-specific data associated with the alarm. </p> </li>
-<li id="GUID-44A49D6B-A12E-5C05-A7D7-9BDE3E430521"><p>performing alarm category-based
-operations such as retrieval and deletion. Retrieving alarm information includes
-alarm count, unique identifiers based on alarm states. </p> </li>
-<li id="GUID-57B8169F-1166-5534-9236-D1C367AB2413"><p>getting and setting
-Alarm Server’s global sound state and play intervals. </p> </li>
-<li id="GUID-7BB3AD26-5650-5B6A-B656-76A24EF9086A"><p>notifying the client
-when alarm settings change and when the alarm expires. </p> </li>
-</ul> </section>
-<section><title>Key concepts and terms</title> <dl>
-<dlentry>
-<dt>Duration</dt>
-<dd><p>It is the time period, in seconds, for which the alarm sound is played. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Offset</dt>
-<dd><p>It is the time (in minutes) duration of alarm sound played after the
-alarm expiry. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Alarm play interval</dt>
-<dd><p>Alarm play interval consists of duration and an offset. At each offset,
-the Alarm Server makes a request to the Alarm Alert Server to display the
-alarm dialog and play the alarm sound. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Universal Time Coordinated (UTC)</dt>
-<dd><p>It is the international time standard. It is the current term for what
-was commonly referred as Greenwich Meridian Time (GMT) . Zero hours UTC is
-midnight in Greenwich England, which lies on the zero longitudinal meridian.
-Universal time is based on a 24-hour clock. Therefore, afternoon hours such
-as 4 PM are expressed as 16:00 UTC. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Daylight Saving Time (DST)</dt>
-<dd><p>Daylight Saving Time or Summer Time, is a way of utilizing more daylight
-by advancing the local time by one hour during the summer. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Session alarms</dt>
-<dd><p>The alarms that are removed from the alarm queue when their session
-owners disconnect are referred as Session Alarms. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Non-Session alarms</dt>
-<dd><p>The alarms that continue to persist in the alarm queue, even after
-their session owners which added these alarms disconnect, are referred as
-Non-Session alarms. These alarms are also referred to as Orphaned Session
-alarms. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Wake-Up alarms</dt>
-<dd><p>An alarm that wakes-up the device if the device is switched OFF when
-the alarm occurs, is referred to as Wake-Up alarm. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>Alarm Server is implemented using
-the Symbian platform IPC client-server architecture. It has an interface to
-the Alarm Alert server, which is delivered as part of the Application Framework
-(UIKON component). Alarm Alert Server is responsible for displaying the alarm
-dialog when an alarm expires. The Alarm Server implements the Alarm Alert
-server’s client side DLL to send and receive notifications to and from the
-Alarm UI. Alarm Alert Server is a part of the UIKON server (<codeph>Eiksrv.exe</codeph>).
-The Alarm Server itself implements the client-side APIs since it is the only
-client for the Alarm Alert server. The following diagram illustrates the Alarm
-Server architecture: </p> <fig id="GUID-D6309F3E-4835-5703-8929-8A108CC5D376">
-<title>              Alarm Server Architecture            </title>
-<image href="GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e139155_href.png" placement="inline"/>
-</fig> <p><b>Alarm Client and Alarm Shared</b> </p> <p>They are the static
-interface DLLs. Alarm client is the client side of the Alarm Server, which
-allows other components to interact with the Alarm Server. </p> <p>The Alarm
-Shared facilitates a common format shared across server and its clients for
-providing definition for an alarm. It consists of shared objects such as alarm
-class, IPC messages, repeat definitions, alarm states. </p> <p><b>Alarm Server</b> </p> <p>Alarm
-Server manages all alarms on the device and enables client UI applications
-to use the services provided by the Alarm Server. It relies on the Alarm UI
-to notify, which includes displaying and playing sounds. </p> <p>It uses a
-resource file to configure the sound intervals required for the alarm to repeat.
-The compiled resource file resides in the private directory of the Alarm Server.
-The resource file is used only for initial configuration. </p> <p>Alarm Server
-configurations are stored in <codeph>AlarmServer.ini</codeph> file and <codeph>Backup_Registration.xml</codeph> file
-performs a passive backup of this <codeph>.ini</codeph> file to the PC-side
-at runtime. For secure backup of this <codeph>.ini</codeph> file, <codeph>backuprestorenotification.lib</codeph> is
-used. For more information on the resource file and backup, refer to the <xref href="GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita">Alarm Sound Play Control</xref>. </p> <p>It
-listens to the following events: </p> <ul>
-<li id="GUID-F759197E-A22E-5C4F-89B7-247BF64134E1"><p>System state changes
-- Using <xref href="GUID-788BD091-186A-5E25-B058-952C7629A8D4.dita">System State
-Manager</xref> (SSM), Alarm Server listens to the system state changes (normal
-and shutdown states) to synchronize the backup of the alarm server queue to
-the <codeph>AlarmServer.ini</codeph> backup file. </p> </li>
-<li id="GUID-42C04AB7-8BCC-57D6-A716-4F6B12F5AC30"><p>Environment change -
-Using <xref href="GUID-7C6D3479-2159-5A9B-9970-0B3E625442A6.dita">Environment Change
-Notifier</xref> (<codeph>bafl.dll</codeph>), Alarm Server listens to the changes
-in the environment, such as system time/date change, workdays change or UTC
-offset change. </p> </li>
-</ul> <p><b>UIKON Server</b> </p> <p>UIKON server is responsible for starting
-the Alarm Server at the device boot-up. </p> <p>It is also responsible for
-playing sounds, flashing lights and displaying the message. Through the UIKON
-server, alarms can be cleared, snoozed or silenced. Alarm server implements
-and uses the client side interface. Alarm UI implements the server side of
-the UIKON server. </p> </section>
-<section><title>APIs</title> <p>The Alarm Server provides the following client
-API: </p> <table id="GUID-60D7DF2B-BA9C-5CEC-9048-6B8536D04CFE">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita"><apiname>RASCliSession</apiname></xref>  </p> </entry>
-<entry><p>Client interface to Alarm session on Symbian Platform. </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>The following are the typical use
-cases of Alarm Server: </p> <ul>
-<li id="GUID-854E8EA9-3194-5D0E-8BB5-3006B04BB6D3"><p>Using Alarm Server to
-add, update and delete alarms, set alarm status and so on. </p> </li>
-<li id="GUID-9A999DC2-6D48-58B8-B251-F22A88A1978C"><p>Playing an alarm continuously. </p> </li>
-<li id="GUID-2D7D1AF6-2728-59CF-BD92-32D97FD6C6B6"><p>Activating an alarm
-on specified days. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5C4922C8-3AE3-424A-A2E7-5C6DA323FFA6" xml:lang="en"><title>Alarm
+Server Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Alarm Server is a system server, which starts during device start-up. It
+is responsible for maintaining a queue of all system-wide alarms. </p>
+<p>It allows clients to query the status of alarms, set alarms, remove alarms
+and perform other utility functions. The Alarm client API allows other components
+to interact with the Alarm Server. The Alarm Server sends notification of
+alarm expiry to the Alert Server, which then notifies the Alarm UI to display
+dialogs and play sound. </p>
+<p>The typical clients of Alarm Server include Clock and Calendar applications. </p>
+<section><title>Purpose</title> <p>The Alarm Server manages the alarms in
+the system and provides the following functionality: </p> <ul>
+<li id="GUID-56175798-4930-55A3-ACD8-848192C07A63"><p>adding, updating and
+deleting alarms. </p> </li>
+<li id="GUID-FCF13562-7E88-5A5B-84B9-05B7934E7277"><p>getting and setting
+client-specific data associated with the alarm. </p> </li>
+<li id="GUID-44A49D6B-A12E-5C05-A7D7-9BDE3E430521"><p>performing alarm category-based
+operations such as retrieval and deletion. Retrieving alarm information includes
+alarm count, unique identifiers based on alarm states. </p> </li>
+<li id="GUID-57B8169F-1166-5534-9236-D1C367AB2413"><p>getting and setting
+Alarm Server’s global sound state and play intervals. </p> </li>
+<li id="GUID-7BB3AD26-5650-5B6A-B656-76A24EF9086A"><p>notifying the client
+when alarm settings change and when the alarm expires. </p> </li>
+</ul> </section>
+<section><title>Key concepts and terms</title> <dl>
+<dlentry>
+<dt>Duration</dt>
+<dd><p>It is the time period, in seconds, for which the alarm sound is played. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Offset</dt>
+<dd><p>It is the time (in minutes) duration of alarm sound played after the
+alarm expiry. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Alarm play interval</dt>
+<dd><p>Alarm play interval consists of duration and an offset. At each offset,
+the Alarm Server makes a request to the Alarm Alert Server to display the
+alarm dialog and play the alarm sound. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Universal Time Coordinated (UTC)</dt>
+<dd><p>It is the international time standard. It is the current term for what
+was commonly referred as Greenwich Meridian Time (GMT) . Zero hours UTC is
+midnight in Greenwich England, which lies on the zero longitudinal meridian.
+Universal time is based on a 24-hour clock. Therefore, afternoon hours such
+as 4 PM are expressed as 16:00 UTC. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Daylight Saving Time (DST)</dt>
+<dd><p>Daylight Saving Time or Summer Time, is a way of utilizing more daylight
+by advancing the local time by one hour during the summer. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Session alarms</dt>
+<dd><p>The alarms that are removed from the alarm queue when their session
+owners disconnect are referred as Session Alarms. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Non-Session alarms</dt>
+<dd><p>The alarms that continue to persist in the alarm queue, even after
+their session owners which added these alarms disconnect, are referred as
+Non-Session alarms. These alarms are also referred to as Orphaned Session
+alarms. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Wake-Up alarms</dt>
+<dd><p>An alarm that wakes-up the device if the device is switched OFF when
+the alarm occurs, is referred to as Wake-Up alarm. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>Alarm Server is implemented using
+the Symbian platform IPC client-server architecture. It has an interface to
+the Alarm Alert server, which is delivered as part of the Application Framework
+(UIKON component). Alarm Alert Server is responsible for displaying the alarm
+dialog when an alarm expires. The Alarm Server implements the Alarm Alert
+server’s client side DLL to send and receive notifications to and from the
+Alarm UI. Alarm Alert Server is a part of the UIKON server (<codeph>Eiksrv.exe</codeph>).
+The Alarm Server itself implements the client-side APIs since it is the only
+client for the Alarm Alert server. The following diagram illustrates the Alarm
+Server architecture: </p> <fig id="GUID-D6309F3E-4835-5703-8929-8A108CC5D376">
+<title>              Alarm Server Architecture            </title>
+<image href="GUID-575CDD9C-ED6E-510E-AE11-46CA7EB7B74C_d0e132621_href.png" placement="inline"/>
+</fig> <p><b>Alarm Client and Alarm Shared</b> </p> <p>They are the static
+interface DLLs. Alarm client is the client side of the Alarm Server, which
+allows other components to interact with the Alarm Server. </p> <p>The Alarm
+Shared facilitates a common format shared across server and its clients for
+providing definition for an alarm. It consists of shared objects such as alarm
+class, IPC messages, repeat definitions, alarm states. </p> <p><b>Alarm Server</b> </p> <p>Alarm
+Server manages all alarms on the device and enables client UI applications
+to use the services provided by the Alarm Server. It relies on the Alarm UI
+to notify, which includes displaying and playing sounds. </p> <p>It uses a
+resource file to configure the sound intervals required for the alarm to repeat.
+The compiled resource file resides in the private directory of the Alarm Server.
+The resource file is used only for initial configuration. </p> <p>Alarm Server
+configurations are stored in <codeph>AlarmServer.ini</codeph> file and <codeph>Backup_Registration.xml</codeph> file
+performs a passive backup of this <codeph>.ini</codeph> file to the PC-side
+at runtime. For secure backup of this <codeph>.ini</codeph> file, <codeph>backuprestorenotification.lib</codeph> is
+used. For more information on the resource file and backup, refer to the <xref href="GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita">Alarm Sound Play Control</xref>. </p> <p>It
+listens to the following events: </p> <ul>
+<li id="GUID-F759197E-A22E-5C4F-89B7-247BF64134E1"><p>System state changes
+- Using <xref href="GUID-788BD091-186A-5E25-B058-952C7629A8D4.dita">System State
+Manager</xref> (SSM), Alarm Server listens to the system state changes (normal
+and shutdown states) to synchronize the backup of the alarm server queue to
+the <codeph>AlarmServer.ini</codeph> backup file. </p> </li>
+<li id="GUID-42C04AB7-8BCC-57D6-A716-4F6B12F5AC30"><p>Environment change -
+Using <xref href="GUID-7C6D3479-2159-5A9B-9970-0B3E625442A6.dita">Environment Change
+Notifier</xref> (<codeph>bafl.dll</codeph>), Alarm Server listens to the changes
+in the environment, such as system time/date change, workdays change or UTC
+offset change. </p> </li>
+</ul> <p><b>UIKON Server</b> </p> <p>UIKON server is responsible for starting
+the Alarm Server at the device boot-up. </p> <p>It is also responsible for
+playing sounds, flashing lights and displaying the message. Through the UIKON
+server, alarms can be cleared, snoozed or silenced. Alarm server implements
+and uses the client side interface. Alarm UI implements the server side of
+the UIKON server. </p> </section>
+<section><title>APIs</title> <p>The Alarm Server provides the following client
+API: </p> <table id="GUID-60D7DF2B-BA9C-5CEC-9048-6B8536D04CFE">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita"><apiname>RASCliSession</apiname></xref>  </p> </entry>
+<entry><p>Client interface to Alarm session on Symbian Platform. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>The following are the typical use
+cases of Alarm Server: </p> <ul>
+<li id="GUID-854E8EA9-3194-5D0E-8BB5-3006B04BB6D3"><p>Using Alarm Server to
+add, update and delete alarms, set alarm status and so on. </p> </li>
+<li id="GUID-9A999DC2-6D48-58B8-B251-F22A88A1978C"><p>Playing an alarm continuously. </p> </li>
+<li id="GUID-2D7D1AF6-2728-59CF-BD92-32D97FD6C6B6"><p>Activating an alarm
+on specified days. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e336267_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e342464_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e266965_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e270673_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE-master.png has changed
Binary file Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e64131_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5C7F92F7-F3BC-4B00-A093-682AA6A26FFE_d0e69363_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5D408616-8A7A-4882-A64F-4BF6EC3FD6AA-master.png has changed
Binary file Symbian3/SDK/Source/GUID-5D408616-8A7A-4882-A64F-4BF6EC3FD6AA_d0e67451_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5D712F4A-E956-543D-BCC0-91107C6E4717.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5D712F4A-E956-543D-BCC0-91107C6E4717.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-5D712F4A-E956-543D-BCC0-91107C6E4717"><title>Notification of changes to the comms database</title><shortdesc>This topic describes the mechanism that allows the CommsDat API to notify tools and applications of changes to the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>All elements that you can read and write have the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> as a base class. This base class contains the functions that allow the CommsDat API to notify tools and applicaions of changes to the database. </p> <p>Tables, records, links and fields are all elements. The classes that represent tables, records, links and fields have <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> in their class hierearchy. You can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::MMetaDatabase::RequestNotification()</apiname></xref> function to register for notification of changes to the Comms Database. You can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::MMetaDatabase::CancelNotification()</apiname></xref> function to cancel a request for notification. </p> <fig id="GUID-81B08072-AFE0-50FC-8A19-AF37E0A246EB"><image href="GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e87229_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-5D712F4A-E956-543D-BCC0-91107C6E4717"><title>Notification of changes to the comms database</title><shortdesc>This topic describes the mechanism that allows the CommsDat API to notify tools and applications of changes to the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>All elements that you can read and write have the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> as a base class. This base class contains the functions that allow the CommsDat API to notify tools and applicaions of changes to the database. </p> <p>Tables, records, links and fields are all elements. The classes that represent tables, records, links and fields have <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> in their class hierearchy. You can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::MMetaDatabase::RequestNotification()</apiname></xref> function to register for notification of changes to the Comms Database. You can use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::MMetaDatabase::CancelNotification()</apiname></xref> function to cancel a request for notification. </p> <fig id="GUID-81B08072-AFE0-50FC-8A19-AF37E0A246EB"><image href="GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e80517_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e38281_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5D831531-2430-4C61-B8C4-BEE9850387C2_d0e43848_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e19011_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e49355_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e54913_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e281245_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e284931_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e3219_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e4494_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,189 +1,189 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107" xml:lang="en"><title>Index</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Messaging Server maintains an index entry in memory. A copy of the index
-entry of all message types is stored in the SQL database, so that it can be
-restored in the event of a system reset or Messaging Server failure. </p>
-<p>Some fields only apply to particular types of entry (such as messages or
-services); other fields can be interpreted differently for different entry
-types. </p>
-<section id="GUID-10265557-F31B-50B3-A955-A548A5A78D7B"><title>Operating with
-the SQL database</title> <p>The SQL database is used to store each <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> (index
-entry) as a row of an SQL table in the SQL database. It caches entries, and
-maintains the most recently accessed entries in the RAM. Entries are cached
-in the RAM, and are loaded only when required. The RAM usage is controlled
-by emptying the oldest entry in the cache when it is full. For more information
-on caching, see <xref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita">Caching</xref>.
-The following illustration shows the architecture of the Message Server with
-the SQL database. </p> <fig id="GUID-57F87249-8F4F-59B4-902C-2A577A120F1A">
-<title>              Message Server architecture with the SQL database   
-        </title>
-<image href="GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e283948_href.png" placement="inline"/>
-</fig><note> Write operations like updating, creating and deleting entries
-require disk operation to retrieve <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> from database,
-because the entry cache is always in synchronisation with the corresponding
-entry in the database.</note> <p><b>Advantages</b> </p> <p>The following are
-the advantages of using the SQL database to store index entries: </p> <ul>
-<li id="GUID-49050952-7EB4-52A9-BEB3-0D1F467BFD42"><p>Reduces the amount of
-RAM used by messaging, as the message the index file is not used. </p> </li>
-<li id="GUID-AE0A5FA5-4588-5C28-A261-8ADD8917D56B"><p>Enables more messages
-to be stored on the device, as the number of messages stored is not restricted
-to the amount of RAM available to store the message index file. </p> </li>
-<li id="GUID-565D30B2-9249-5C9D-9DFD-B67C83BFAC35"><p>Enables controlled usage
-of RAM, as index entries are loaded on a need basis. </p> </li>
-<li id="GUID-E5CC0C68-A23F-5F99-BFBB-1AD1A3775454"><p>Eliminates the possibility
-of the message index file getting damaged and messages stored on the device
-getting deleted. </p> </li>
-<li id="GUID-148420E8-C23D-5678-8870-B8AA1CD8ED15"><p>Provides advanced search
-and sort capabilities for searching messages. </p> </li>
-<li id="GUID-0E1A2485-A90C-565B-B927-487EE3FB7E4C"><p>Accesses and manages
-message entries on one or more drives at the same time. </p> </li>
-</ul> </section>
-<section id="GUID-887B217A-0344-5764-800A-CD31481B1493"><title>Index fields</title> <p>The
-following information is stored for each index entry. Some fields only apply
-to particular types of entry, such as, messages or services; other fields
-can be interpreted differently for different entry types. </p> <table id="GUID-B0A760AE-DD82-56E5-A826-7AA0D4F522CD">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p>Attachment flag </p> </entry>
-<entry><p>Indicates that the message has an attachment </p> </entry>
-</row>
-<row>
-<entry><p>BIO </p> </entry>
-<entry><p><xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita">BIO message</xref> type </p> </entry>
-</row>
-<row>
-<entry><p>Complete flag </p> </entry>
-<entry><p>Indicates that the message is complete (for example download has
-completed. </p> </entry>
-</row>
-<row>
-<entry><p>Connected flag </p> </entry>
-<entry><p>For a service: indicates whether it is currently connected to a
-remote server </p> </entry>
-</row>
-<row>
-<entry><p>Deleted flag </p> </entry>
-<entry><p>Indicates that the entry has been deleted. The entry is not removed
-until any PC synchronisation tools have been informed of the deletion. </p> </entry>
-</row>
-<row>
-<entry><p>Description </p> </entry>
-<entry><p>A text string, usually giving the subject of the message </p> </entry>
-</row>
-<row>
-<entry><p>Details </p> </entry>
-<entry><p>A text string, as follows: </p> <p>Message: For received messages,
-this is the sender; for outgoing messages, it is the recipient </p> <p>Attachment:
-The name of the attachment </p> <p>Folder: The name of the folder </p> <p>Service:
-The name of the service </p> </entry>
-</row>
-<row>
-<entry><p>Error </p> </entry>
-<entry><p>A system-wide or MTM-specific error code </p> </entry>
-</row>
-<row>
-<entry><p>Flag </p> </entry>
-<entry><p>Use </p> </entry>
-</row>
-<row>
-<entry><p>Failed flag </p> </entry>
-<entry><p>For an outgoing message: indicates that sending failed </p> </entry>
-</row>
-<row>
-<entry><p>Identifier </p> </entry>
-<entry><p>An integer that uniquely identifies the entry in the Index </p> </entry>
-</row>
-<row>
-<entry><p>In preparation </p> </entry>
-<entry><p>Entry deleted if server restarts </p> </entry>
-</row>
-<row>
-<entry><p>MTM </p> </entry>
-<entry><p>A unique identifier specifying the MTM associated with the entry </p> </entry>
-</row>
-<row>
-<entry><p>MTM Data </p> </entry>
-<entry><p>Three integer fields for MTM-specific use </p> </entry>
-</row>
-<row>
-<entry><p>Multiple Recipients flag </p> </entry>
-<entry><p>Indicates the message has multiple recipients that require separate
-transmissions (for example, a fax going to two people) </p> </entry>
-</row>
-<row>
-<entry><p>New flag </p> </entry>
-<entry><p>Indicates a new message in a folder </p> </entry>
-</row>
-<row>
-<entry><p>Owner flag </p> </entry>
-<entry><p>Indicates that the entry owns other entries (that it is a parent) </p> </entry>
-</row>
-<row>
-<entry><p>Parent </p> </entry>
-<entry><p>An integer giving the identifier of the entry’s parent </p> </entry>
-</row>
-<row>
-<entry><p>Priority </p> </entry>
-<entry><p>An integer giving the message priority </p> </entry>
-</row>
-<row>
-<entry><p>Read flag </p> </entry>
-<entry><p>Indicates that a message has been read </p> </entry>
-</row>
-<row>
-<entry><p>Read Only flag </p> </entry>
-<entry><p>Indicates that the entry is read-only </p> </entry>
-</row>
-<row>
-<entry><p>Related folder </p> </entry>
-<entry><p>The identifier of a target folder for copying or moving entries </p> </entry>
-</row>
-<row>
-<entry><p>Sending state </p> </entry>
-<entry><p>Describes the state the message is in, for example "Sending", "Failed"
-and "Sent" </p> </entry>
-</row>
-<row>
-<entry><p>Service </p> </entry>
-<entry><p>The identifier of the service by which the message is to be sent
-or from which it was received </p> </entry>
-</row>
-<row>
-<entry><p>Size </p> </entry>
-<entry><p>An integer giving the size of the message </p> </entry>
-</row>
-<row>
-<entry><p>Standard Folder flag </p> </entry>
-<entry><p>Identifies standard folders so that they can be properly sorted
-and stops them being changed/deleted </p> </entry>
-</row>
-<row>
-<entry><p>Time </p> </entry>
-<entry><p>The time when the message was last edited, sent, or received. Includes
-date. </p> </entry>
-</row>
-<row>
-<entry><p>Type </p> </entry>
-<entry><p>A unique identifier giving the type (service, folder, message, and
-attachment) of the entry </p> </entry>
-</row>
-<row>
-<entry><p>Visibility flag </p> </entry>
-<entry><p>Indicates the intended visibility of the entry to users of message
-client applications </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107" xml:lang="en"><title>Index</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Messaging Server maintains an index entry in memory. A copy of the index
+entry of all message types is stored in the SQL database, so that it can be
+restored in the event of a system reset or Messaging Server failure. </p>
+<p>Some fields only apply to particular types of entry (such as messages or
+services); other fields can be interpreted differently for different entry
+types. </p>
+<section id="GUID-10265557-F31B-50B3-A955-A548A5A78D7B"><title>Operating with
+the SQL database</title> <p>The SQL database is used to store each <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> (index
+entry) as a row of an SQL table in the SQL database. It caches entries, and
+maintains the most recently accessed entries in the RAM. Entries are cached
+in the RAM, and are loaded only when required. The RAM usage is controlled
+by emptying the oldest entry in the cache when it is full. For more information
+on caching, see <xref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita">Caching</xref>.
+The following illustration shows the architecture of the Message Server with
+the SQL database. </p> <fig id="GUID-57F87249-8F4F-59B4-902C-2A577A120F1A">
+<title>              Message Server architecture with the SQL database   
+        </title>
+<image href="GUID-38089CC3-D969-5501-9FDA-BB0369D5D6A9_d0e280262_href.png" placement="inline"/>
+</fig><note> Write operations like updating, creating and deleting entries
+require disk operation to retrieve <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> from database,
+because the entry cache is always in synchronisation with the corresponding
+entry in the database.</note> <p><b>Advantages</b> </p> <p>The following are
+the advantages of using the SQL database to store index entries: </p> <ul>
+<li id="GUID-49050952-7EB4-52A9-BEB3-0D1F467BFD42"><p>Reduces the amount of
+RAM used by messaging, as the message the index file is not used. </p> </li>
+<li id="GUID-AE0A5FA5-4588-5C28-A261-8ADD8917D56B"><p>Enables more messages
+to be stored on the device, as the number of messages stored is not restricted
+to the amount of RAM available to store the message index file. </p> </li>
+<li id="GUID-565D30B2-9249-5C9D-9DFD-B67C83BFAC35"><p>Enables controlled usage
+of RAM, as index entries are loaded on a need basis. </p> </li>
+<li id="GUID-E5CC0C68-A23F-5F99-BFBB-1AD1A3775454"><p>Eliminates the possibility
+of the message index file getting damaged and messages stored on the device
+getting deleted. </p> </li>
+<li id="GUID-148420E8-C23D-5678-8870-B8AA1CD8ED15"><p>Provides advanced search
+and sort capabilities for searching messages. </p> </li>
+<li id="GUID-0E1A2485-A90C-565B-B927-487EE3FB7E4C"><p>Accesses and manages
+message entries on one or more drives at the same time. </p> </li>
+</ul> </section>
+<section id="GUID-887B217A-0344-5764-800A-CD31481B1493"><title>Index fields</title> <p>The
+following information is stored for each index entry. Some fields only apply
+to particular types of entry, such as, messages or services; other fields
+can be interpreted differently for different entry types. </p> <table id="GUID-B0A760AE-DD82-56E5-A826-7AA0D4F522CD">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>Attachment flag </p> </entry>
+<entry><p>Indicates that the message has an attachment </p> </entry>
+</row>
+<row>
+<entry><p>BIO </p> </entry>
+<entry><p><xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita">BIO message</xref> type </p> </entry>
+</row>
+<row>
+<entry><p>Complete flag </p> </entry>
+<entry><p>Indicates that the message is complete (for example download has
+completed. </p> </entry>
+</row>
+<row>
+<entry><p>Connected flag </p> </entry>
+<entry><p>For a service: indicates whether it is currently connected to a
+remote server </p> </entry>
+</row>
+<row>
+<entry><p>Deleted flag </p> </entry>
+<entry><p>Indicates that the entry has been deleted. The entry is not removed
+until any PC synchronisation tools have been informed of the deletion. </p> </entry>
+</row>
+<row>
+<entry><p>Description </p> </entry>
+<entry><p>A text string, usually giving the subject of the message </p> </entry>
+</row>
+<row>
+<entry><p>Details </p> </entry>
+<entry><p>A text string, as follows: </p> <p>Message: For received messages,
+this is the sender; for outgoing messages, it is the recipient </p> <p>Attachment:
+The name of the attachment </p> <p>Folder: The name of the folder </p> <p>Service:
+The name of the service </p> </entry>
+</row>
+<row>
+<entry><p>Error </p> </entry>
+<entry><p>A system-wide or MTM-specific error code </p> </entry>
+</row>
+<row>
+<entry><p>Flag </p> </entry>
+<entry><p>Use </p> </entry>
+</row>
+<row>
+<entry><p>Failed flag </p> </entry>
+<entry><p>For an outgoing message: indicates that sending failed </p> </entry>
+</row>
+<row>
+<entry><p>Identifier </p> </entry>
+<entry><p>An integer that uniquely identifies the entry in the Index </p> </entry>
+</row>
+<row>
+<entry><p>In preparation </p> </entry>
+<entry><p>Entry deleted if server restarts </p> </entry>
+</row>
+<row>
+<entry><p>MTM </p> </entry>
+<entry><p>A unique identifier specifying the MTM associated with the entry </p> </entry>
+</row>
+<row>
+<entry><p>MTM Data </p> </entry>
+<entry><p>Three integer fields for MTM-specific use </p> </entry>
+</row>
+<row>
+<entry><p>Multiple Recipients flag </p> </entry>
+<entry><p>Indicates the message has multiple recipients that require separate
+transmissions (for example, a fax going to two people) </p> </entry>
+</row>
+<row>
+<entry><p>New flag </p> </entry>
+<entry><p>Indicates a new message in a folder </p> </entry>
+</row>
+<row>
+<entry><p>Owner flag </p> </entry>
+<entry><p>Indicates that the entry owns other entries (that it is a parent) </p> </entry>
+</row>
+<row>
+<entry><p>Parent </p> </entry>
+<entry><p>An integer giving the identifier of the entry’s parent </p> </entry>
+</row>
+<row>
+<entry><p>Priority </p> </entry>
+<entry><p>An integer giving the message priority </p> </entry>
+</row>
+<row>
+<entry><p>Read flag </p> </entry>
+<entry><p>Indicates that a message has been read </p> </entry>
+</row>
+<row>
+<entry><p>Read Only flag </p> </entry>
+<entry><p>Indicates that the entry is read-only </p> </entry>
+</row>
+<row>
+<entry><p>Related folder </p> </entry>
+<entry><p>The identifier of a target folder for copying or moving entries </p> </entry>
+</row>
+<row>
+<entry><p>Sending state </p> </entry>
+<entry><p>Describes the state the message is in, for example "Sending", "Failed"
+and "Sent" </p> </entry>
+</row>
+<row>
+<entry><p>Service </p> </entry>
+<entry><p>The identifier of the service by which the message is to be sent
+or from which it was received </p> </entry>
+</row>
+<row>
+<entry><p>Size </p> </entry>
+<entry><p>An integer giving the size of the message </p> </entry>
+</row>
+<row>
+<entry><p>Standard Folder flag </p> </entry>
+<entry><p>Identifies standard folders so that they can be properly sorted
+and stops them being changed/deleted </p> </entry>
+</row>
+<row>
+<entry><p>Time </p> </entry>
+<entry><p>The time when the message was last edited, sent, or received. Includes
+date. </p> </entry>
+</row>
+<row>
+<entry><p>Type </p> </entry>
+<entry><p>A unique identifier giving the type (service, folder, message, and
+attachment) of the entry </p> </entry>
+</row>
+<row>
+<entry><p>Visibility flag </p> </entry>
+<entry><p>Indicates the intended visibility of the entry to users of message
+client applications </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5E8C5D5C-8B84-4126-A8A8-F61F7DA0AD32_d0e65812_href.png has changed
--- a/Symbian3/SDK/Source/GUID-5F4510C9-5B16-593A-A225-37606800915B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-5F4510C9-5B16-593A-A225-37606800915B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-5F4510C9-5B16-593A-A225-37606800915B"><title>Controlling Video Playback</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to control video playback. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to use the video player to control video playback. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video player utility is used to open, play, and obtain information from sampled video data. This functionality is implemented by the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class. The video data can be supplied either in a file, a descriptor or a URL. </p> <p>The sequence diagram below explains the different functionalities of the Video Player Utility: </p> <fig id="GUID-2EA17DB0-6634-5E49-BB86-01C42C1135FC"><title>
-                Video Player sequence diagram 
-             </title> <image href="GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e318618_href.png" placement="inline"/></fig> </section> <section><title>Using Video Player </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-CAF49972-CFDE-5061-9218-31E38BC81B6D"><p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita#GUID-5F4510C9-5B16-593A-A225-37606800915B/GUID-B8EAAD02-FBDF-5C9D-B29E-0256FE85BEFC">Play Video Clips</xref>  </p> </li> <li id="GUID-6BAF2C1B-8A15-57D3-9DC0-A29A640AFFBF"><p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita#GUID-5F4510C9-5B16-593A-A225-37606800915B/GUID-FD4809DF-3F92-528D-856E-40E1F468B44E">Get Current Frame</xref>  </p> </li> </ul> <p id="GUID-B8EAAD02-FBDF-5C9D-B29E-0256FE85BEFC"><b>Playing Video Clips</b> </p> <p>The high level steps to play video clips are shown here: </p> <ol id="GUID-7B98B85D-2B14-5613-9B12-B804B64F9AC6"><li id="GUID-101DA10D-4871-596C-9B70-F5A7465AA466"><p>After configuring the properties, the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A9DCC4EB-B4B3-3AF4-B78C-DC3531A32DCC"><apiname>CVideoPlayerUtility::Play()</apiname></xref> function is called for the video clip to be played. </p> </li> <li id="GUID-99101893-33E0-5C2D-981C-FEF63EC19126"><p>The play can be paused for a small duration using <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-CCF5BF0E-BD93-34AC-812E-443ECD07FE26"><apiname>CVideoPlayerUtility::PauseL()</apiname></xref> and later resumed by calling <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A9DCC4EB-B4B3-3AF4-B78C-DC3531A32DCC"><apiname>CVideoPlayerUtility::Play()</apiname></xref> function once again. </p> </li> <li id="GUID-25191728-63D1-5479-8B60-3B047E9FAD80"><p>To halt the video play <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-C103A911-AF93-3350-B731-C186A279F1DC"><apiname>CVideoPlayerUtility::Stop()</apiname></xref> is called. </p> </li> <li id="GUID-950B9AA4-E72B-5FCD-91EB-623A98E290E2"><p>In order to unload all related controllers and return, use <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-C30FFC28-BA6E-3467-9DE7-EE0FF6202E26"><apiname>CVideoPlayerUtility::Close()</apiname></xref>. </p> </li> </ol> <p>These high level steps are shown in the following example code: </p> <codeblock id="GUID-6CC6023A-FBFF-549B-BE29-16AF112D2BB3" xml:space="preserve">void CPlayVideo::Play() //Starts playback of the video clip
-    {
-    iVideoUtility-&gt;Play();
-    } 
-
-void CPlayVideo::PauseL() //Call to this function will maintain the current position
-                         //playback can be resumed by calling Play function again
-    {
-    TRAPD(err,iVideoUtility-&gt;PauseL());
-    } 
-
-TInt CPlayVideo::Stop() //Stops playing
-    {
-    TInt err = iVideoUtility-&gt;Stop();
-          return err;
-    } </codeblock> <p> <b>Note</b>: You must call the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-B4FB00AA-A85B-3A3F-91BE-C5347462BA95"><apiname>CVideoPlayerUtility::Prepare()</apiname></xref> function, before calling any of the functions used in the above given code. </p> <p id="GUID-FD4809DF-3F92-528D-856E-40E1F468B44E"><b>Getting the Current Frame</b> </p> <p>The high level steps to get the current frame are shown here: </p> <ol id="GUID-20183DA8-8420-55C2-BE57-41F22A7E8E72"><li id="GUID-E362BBDA-AAF1-549C-AC69-B1CC6E451316"><p>To get the video frame currently being played, use the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-F548125E-6CCC-3E60-A3CC-34EBB7A2ABAE"><apiname>CVideoPlayerUtility::GetFrameL()</apiname></xref> function. </p> <codeblock id="GUID-CB83EA9D-8512-57C6-ADA3-2C0D9C0E1B25" xml:space="preserve">void CPlayVideo::GetFrameL(TDisplayMode aDisplayMode) //Returns the current frame
-    {
-    iVideoUtility-&gt;GetFrameL(aDisplayMode);
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-5F4510C9-5B16-593A-A225-37606800915B"><title>Controlling Video Playback</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to control video playback. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to use the video player to control video playback. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video player utility is used to open, play, and obtain information from sampled video data. This functionality is implemented by the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class. The video data can be supplied either in a file, a descriptor or a URL. </p> <p>The sequence diagram below explains the different functionalities of the Video Player Utility: </p> <fig id="GUID-2EA17DB0-6634-5E49-BB86-01C42C1135FC"><title>
+                Video Player sequence diagram 
+             </title> <image href="GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e312224_href.png" placement="inline"/></fig> </section> <section><title>Using Video Player </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-CAF49972-CFDE-5061-9218-31E38BC81B6D"><p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita#GUID-5F4510C9-5B16-593A-A225-37606800915B/GUID-B8EAAD02-FBDF-5C9D-B29E-0256FE85BEFC">Play Video Clips</xref>  </p> </li> <li id="GUID-6BAF2C1B-8A15-57D3-9DC0-A29A640AFFBF"><p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita#GUID-5F4510C9-5B16-593A-A225-37606800915B/GUID-FD4809DF-3F92-528D-856E-40E1F468B44E">Get Current Frame</xref>  </p> </li> </ul> <p id="GUID-B8EAAD02-FBDF-5C9D-B29E-0256FE85BEFC"><b>Playing Video Clips</b> </p> <p>The high level steps to play video clips are shown here: </p> <ol id="GUID-7B98B85D-2B14-5613-9B12-B804B64F9AC6"><li id="GUID-101DA10D-4871-596C-9B70-F5A7465AA466"><p>After configuring the properties, the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A9DCC4EB-B4B3-3AF4-B78C-DC3531A32DCC"><apiname>CVideoPlayerUtility::Play()</apiname></xref> function is called for the video clip to be played. </p> </li> <li id="GUID-99101893-33E0-5C2D-981C-FEF63EC19126"><p>The play can be paused for a small duration using <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-CCF5BF0E-BD93-34AC-812E-443ECD07FE26"><apiname>CVideoPlayerUtility::PauseL()</apiname></xref> and later resumed by calling <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A9DCC4EB-B4B3-3AF4-B78C-DC3531A32DCC"><apiname>CVideoPlayerUtility::Play()</apiname></xref> function once again. </p> </li> <li id="GUID-25191728-63D1-5479-8B60-3B047E9FAD80"><p>To halt the video play <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-C103A911-AF93-3350-B731-C186A279F1DC"><apiname>CVideoPlayerUtility::Stop()</apiname></xref> is called. </p> </li> <li id="GUID-950B9AA4-E72B-5FCD-91EB-623A98E290E2"><p>In order to unload all related controllers and return, use <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-C30FFC28-BA6E-3467-9DE7-EE0FF6202E26"><apiname>CVideoPlayerUtility::Close()</apiname></xref>. </p> </li> </ol> <p>These high level steps are shown in the following example code: </p> <codeblock id="GUID-6CC6023A-FBFF-549B-BE29-16AF112D2BB3" xml:space="preserve">void CPlayVideo::Play() //Starts playback of the video clip
+    {
+    iVideoUtility-&gt;Play();
+    } 
+
+void CPlayVideo::PauseL() //Call to this function will maintain the current position
+                         //playback can be resumed by calling Play function again
+    {
+    TRAPD(err,iVideoUtility-&gt;PauseL());
+    } 
+
+TInt CPlayVideo::Stop() //Stops playing
+    {
+    TInt err = iVideoUtility-&gt;Stop();
+          return err;
+    } </codeblock> <p> <b>Note</b>: You must call the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-B4FB00AA-A85B-3A3F-91BE-C5347462BA95"><apiname>CVideoPlayerUtility::Prepare()</apiname></xref> function, before calling any of the functions used in the above given code. </p> <p id="GUID-FD4809DF-3F92-528D-856E-40E1F468B44E"><b>Getting the Current Frame</b> </p> <p>The high level steps to get the current frame are shown here: </p> <ol id="GUID-20183DA8-8420-55C2-BE57-41F22A7E8E72"><li id="GUID-E362BBDA-AAF1-549C-AC69-B1CC6E451316"><p>To get the video frame currently being played, use the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-F548125E-6CCC-3E60-A3CC-34EBB7A2ABAE"><apiname>CVideoPlayerUtility::GetFrameL()</apiname></xref> function. </p> <codeblock id="GUID-CB83EA9D-8512-57C6-ADA3-2C0D9C0E1B25" xml:space="preserve">void CPlayVideo::GetFrameL(TDisplayMode aDisplayMode) //Returns the current frame
+    {
+    iVideoUtility-&gt;GetFrameL(aDisplayMode);
     } </codeblock> </li> <li id="GUID-EB7BB8CB-94F7-5399-9296-A96F6065B52B"><p>The current frame is sent to the client asynchronously via the <xref href="GUID-4D07E7B5-AFDD-3D55-8EB6-EDAB61F8C7F9.dita#GUID-4D07E7B5-AFDD-3D55-8EB6-EDAB61F8C7F9/GUID-7CCF35C6-DEA8-3E9B-B55C-AE236E4AB63E"><apiname>MVideoPlayerUtilityObserver::MvpuoFrameReady()</apiname></xref> callback function. </p> </li> </ol> </section> <section><title>See Also</title> <p><xref href="GUID-172F46C1-6066-57FA-A815-5AC23ACE159D.dita">Creating and Preparing a Video Player</xref>  </p> <p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita">Configuring the Video Player</xref> </p> <p><xref href="GUID-733B9695-0C7C-5637-9025-6CE3BAA1A23E.dita"> Enabling/Disabling Audio or Video Playback Separately</xref>  </p> <p><xref href="GUID-FE7DE542-3FD4-56D2-B281-C670EF1C4FEB.dita">Scaling Automatically</xref>  </p> <p><xref href="GUID-70B3881F-9532-5F1D-B210-99A15DB93FC2.dita">Fast Forwarding and Rewinding</xref>  </p> <p><xref href="GUID-469377FB-AAE8-5245-A8E1-469C65AFE5C5.dita">Stepping Frames</xref>  </p> <p><xref href="GUID-F13C7D36-E4AB-57F1-87A1-EB83AA2258DF.dita">Controlling the Video Controller Plugin</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-5F72210C-1636-584D-9D89-987D25136975-master.png has changed
Binary file Symbian3/SDK/Source/GUID-5F72210C-1636-584D-9D89-987D25136975_d0e382613_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e290304_href.png has changed
Binary file Symbian3/SDK/Source/GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e293561_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72" xml:lang="en"><title>Singly
-linked lists</title><shortdesc>A singly linked list is one where each element points forwards
-to the next element.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Unlike a doubly linked list, elements do <i>not</i> point back to the previous
-element. The list has an anchor point which points forwards to the first element
-and also has a pointer to the last element.</p>
-<p>Anchor points are always referred to as <i>headers</i>.</p>
-<p>A singly linked list is useful for maintaining a non-circular queue of
-items; for example, a stack.</p>
-<fig id="GUID-8FC485D1-5B95-5B71-94F1-00C78A61F7F0">
-<title>Singly linked list</title>
-<image href="GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e218049_href.png" placement="inline"/>
-</fig>
-<p>Singly linked lists involve the creation and use of the classes:</p>
-<ul>
-<li id="GUID-8D31B03F-8978-5292-BE6E-4D3C0EE62460"><p><codeph>TSglQueLink</codeph> </p> </li>
-<li id="GUID-547C604A-1F01-5FF7-A316-8F09EE9462EC"><p><codeph>TSglQue&lt;class
-T&gt;</codeph> </p> </li>
-<li id="GUID-E567AD7E-DB54-54B9-8C1E-5C9A36B1C927"><p><codeph>TSglQueIter&lt;class
-T</codeph> </p> </li>
-</ul>
-<p>In practice, these classes are almost always used as components of other
-classes.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6006AAB0-B319-546F-8D79-E2D4887A1E72" xml:lang="en"><title>Singly
+linked lists</title><shortdesc>A singly linked list is one where each element points forwards
+to the next element.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Unlike a doubly linked list, elements do <i>not</i> point back to the previous
+element. The list has an anchor point which points forwards to the first element
+and also has a pointer to the last element.</p>
+<p>Anchor points are always referred to as <i>headers</i>.</p>
+<p>A singly linked list is useful for maintaining a non-circular queue of
+items; for example, a stack.</p>
+<fig id="GUID-8FC485D1-5B95-5B71-94F1-00C78A61F7F0">
+<title>Singly linked list</title>
+<image href="GUID-25CBA151-ED8E-5A88-A9FD-F20810371B4D_d0e214312_href.png" placement="inline"/>
+</fig>
+<p>Singly linked lists involve the creation and use of the classes:</p>
+<ul>
+<li id="GUID-8D31B03F-8978-5292-BE6E-4D3C0EE62460"><p><codeph>TSglQueLink</codeph> </p> </li>
+<li id="GUID-547C604A-1F01-5FF7-A316-8F09EE9462EC"><p><codeph>TSglQue&lt;class
+T&gt;</codeph> </p> </li>
+<li id="GUID-E567AD7E-DB54-54B9-8C1E-5C9A36B1C927"><p><codeph>TSglQueIter&lt;class
+T</codeph> </p> </li>
+</ul>
+<p>In practice, these classes are almost always used as components of other
+classes.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e128297_href.png has changed
Binary file Symbian3/SDK/Source/GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e134835_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6067DF61-D32F-4029-ADCD-9E69CA564212.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6067DF61-D32F-4029-ADCD-9E69CA564212" xml:lang="en"><title>Key
-presses</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A key press is a press and release of a key (down and up).</p>
-<p>Typically, the primary action of the key is performed when the key is pressed
-down, already before the key is released (there may be exceptions to this
-rule; see <xref href="GUID-26435FE1-D912-4AA2-96EE-82B35DA231E6.dita">Typical functions
-of the standard keys</xref> for an example).</p>
-<p>Some functions depend on the length of the key press:</p>
-<ul>
-<li><p>In a short press, the key is held down for less than 0.6 seconds (please
-note that this time-out value may depend on the product implementation). If
-the key is held down longer, the result is a long key press.</p></li>
-<li><p>If the pressed key (in the given context) has functions for both a
-short and long press, the short key press action is performed first at the
-moment when the key is pressed down. If the key press is long, then the long
-key press action is performed. In the case of the Home / Menu key and the
-Edit key, the interaction is different, causing the action on the key release
-event. </p></li>
-<li><p>Certain keys, possibly in certain contexts only, may perform key repeat.
-Key repeat starts after the long key press time-out when the key is continuously
-being held down, and the associated function is performed according to the
-key repeat frequency. For example, in scrolling within lists and text editors,
-these frequencies are by default 6 times/second for vertical and 10 times/second
-for horizontal scrolling (the repeat frequency may be product or application
-specific). </p></li>
-<li><p>Long key press actions and key repeat actions are not defined at the
-same time; only one can occur in the given context. </p></li>
-<li><p>The primary key press action should not be conflicting with the long
-key press action or key repeat action.</p></li>
-</ul>
-<note> With certain input hardware (for example, Roller), long
-key presses and key repeat may not be possible. The long key press actions
-and key repeat actions should be designed so that this does not cause harm:
-the long key press must never be the only way to perform a function</note>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396128_href.png has changed
Binary file Symbian3/SDK/Source/GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396290_href.png has changed
--- a/Symbian3/SDK/Source/GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,83 +1,83 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481" xml:lang="en"><title>GStreamer
-Overview</title><shortdesc>GStreamer is a development framework for creating applications
-like media players, streaming media broadcasters and video editors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>GStreamer is designed to make it easier to write applications easily that
-handle audio, video, or both. Pluggable components can be mixed and matched
-into arbitrary pipelines, which consist of a chain of processing elements.</p>
-<section id="GUID-4576F23A-638C-447D-80C1-7DCE99A513B3">       <title>Purpose</title><p><xref href="http://www.gstreamer.net" scope="external">GStreamer</xref> is an open
-source multimedia framework that allows you to write any streaming multimedia
-application, not just audio or video. GStreamer can handle any data flow. </p><p>GStreamer
-core provides the following features:<ul>
-<li><p>Plug-in handling</p></li>
-<li><p>Media type negotiation</p></li>
-<li><p>Clocking and data flow</p></li>
-</ul>GStreamer also provides <xref href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" scope="external">APIs</xref> to write applications using various plug-ins
-such as source plug-in, transform plug-in and sink plug-in. The framework
-uses these plug-ins to perform various roles such as encoding, decoding and
-media processing. </p> <p/>    <p><fig id="GUID-DB713A5A-4628-40EB-994C-267759BB906F">
-<title>GStreamer plug-ins</title>
-<image href="GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e313051_href.png" placement="inline"/>
-</fig></p>    </section>
-<section id="GUID-2EC5760E-D208-4071-A032-91B72904782A"><title>Description</title><p>Some
-GStreamer concepts are as follows:<ul>
-<li><p><b>Element</b> </p><p>An element is an object that performs some action
-on a multimedia stream. Examples of such actions are reading a file, decoding
-or encoding data and capturing data from a hardware device.</p></li>
-<li><p><b>Bin</b></p><p>A bin is a subclass of element. A bin acts as a container
-for other elements, so multiple elements combine into one logical unit.</p></li>
-<li><p><b>Pipeline</b></p><p>A pipeline is a set of data processing elements
-connected in series, so the output from one element is the input for the next
-element.</p><p>In GStreamer the pipeline is a specialized bin subclass that
-provides execution of all contained elements. Normally, applications create
-one pipeline that will manage all the elements contained within it.</p></li>
-</ul></p><p><b>Note:</b> Elements can be added to and removed from pipelines
-based on the use-case being handled. For example a use-case such as playing
-an <i>MP3</i> file using GStreamer.</p><p>An element can provide a number
-of pads, which can be either source or sink pads. A pad is a plug or port
-on an element to link with other elements. The pads are responsible for data
-flow between the elements. Source pads supply data, and sink pads consume
-data. Basically, pads are used to negotiate compatibility and allow data flow
-between elements.</p><p>An element can be in one of four different states
-during the application request: <ul>
-<li><p>Null</p></li>
-<li><p> Ready</p></li>
-<li><p>Pause</p></li>
-<li><p>Play</p></li>
-</ul> In the <i>Null</i> and<i> Ready</i> states, the element is not processing
-any data. The processing of data happens only in the <i>Play</i> state. The <i>Pause</i> state
-is used to fill all connected elements in the data pipeline so the <i>Play</i> state
-change happens quickly.</p><p>GStreamer also provides higher level utilities
-and components to detect automatically the media type of an application, and
-to create the best possible pipeline for a use-case. This process is called
-auto plugging.</p></section>
-<section id="GUID-BC06C918-9763-4374-B263-0BE28D2637B0"><title>GStreamer applications</title><p>GStreamer
-is used in many types of applications including:</p><ol>
-<li id="GUID-D6663533-F4AD-4D58-8ED6-8AE1160D22FB"><p>Media playback and streaming</p></li>
-<li id="GUID-4EE3C5D4-04EA-4888-B425-1DEFAACF4C09"><p>Media recording</p></li>
-<li id="GUID-FB1D14E9-F9CC-4303-8C73-D710A9AFCF7D"><p>Media transcoding</p></li>
-<li id="GUID-10171E9B-0E09-45F0-8564-19B00252CCA1"><p>Video editing</p></li>
-</ol><p>For example the diagram below shows how a Media Player uses GStreamer:</p><p><fig id="GUID-7127CC7D-14D5-4652-87A1-DB5BC3AE9663">
-<title>Media playback using GStreamer</title>
-<image href="GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e313165_href.jpg" placement="inline"/>
-</fig></p><p><draft-comment time="2010-02-17T10:06" translate="no">Sound device is a framework
-to perform hardware accelerated audio functionality. Audio Policy manages
-the requests to access the audio hardware. Digital Signal Processing converts
-the digital audio signal to the analog audio signal.</draft-comment></p> </section>
-<section id="GUID-59D1352D-208F-4E01-B62C-9BF7385E0A9F"><title>See also</title><ul>
-<li><p><xref href="http://wiki.forum.nokia.com/index.php/GStreamer" scope="external">GStreamer</xref> documentation
-published on Forum Nokia.</p></li>
-<li><p><xref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita">Multimedia Framework
-Component</xref></p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481" xml:lang="en"><title>GStreamer
+Overview</title><shortdesc>GStreamer is a development framework for creating applications
+like media players, streaming media broadcasters and video editors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>GStreamer is designed to make it easier to write applications easily that
+handle audio, video, or both. Pluggable components can be mixed and matched
+into arbitrary pipelines, which consist of a chain of processing elements.</p>
+<section id="GUID-4576F23A-638C-447D-80C1-7DCE99A513B3">       <title>Purpose</title><p><xref href="http://www.gstreamer.net" scope="external">GStreamer</xref> is an open
+source multimedia framework that allows you to write any streaming multimedia
+application, not just audio or video. GStreamer can handle any data flow. </p><p>GStreamer
+core provides the following features:<ul>
+<li><p>Plug-in handling</p></li>
+<li><p>Media type negotiation</p></li>
+<li><p>Clocking and data flow</p></li>
+</ul>GStreamer also provides <xref href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" scope="external">APIs</xref> to write applications using various plug-ins
+such as source plug-in, transform plug-in and sink plug-in. The framework
+uses these plug-ins to perform various roles such as encoding, decoding and
+media processing. </p> <p/>    <p><fig id="GUID-DB713A5A-4628-40EB-994C-267759BB906F">
+<title>GStreamer plug-ins</title>
+<image href="GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e306657_href.png" placement="inline"/>
+</fig></p>    </section>
+<section id="GUID-2EC5760E-D208-4071-A032-91B72904782A"><title>Description</title><p>Some
+GStreamer concepts are as follows:<ul>
+<li><p><b>Element</b> </p><p>An element is an object that performs some action
+on a multimedia stream. Examples of such actions are reading a file, decoding
+or encoding data and capturing data from a hardware device.</p></li>
+<li><p><b>Bin</b></p><p>A bin is a subclass of element. A bin acts as a container
+for other elements, so multiple elements combine into one logical unit.</p></li>
+<li><p><b>Pipeline</b></p><p>A pipeline is a set of data processing elements
+connected in series, so the output from one element is the input for the next
+element.</p><p>In GStreamer the pipeline is a specialized bin subclass that
+provides execution of all contained elements. Normally, applications create
+one pipeline that will manage all the elements contained within it.</p></li>
+</ul></p><p><b>Note:</b> Elements can be added to and removed from pipelines
+based on the use-case being handled. For example a use-case such as playing
+an <i>MP3</i> file using GStreamer.</p><p>An element can provide a number
+of pads, which can be either source or sink pads. A pad is a plug or port
+on an element to link with other elements. The pads are responsible for data
+flow between the elements. Source pads supply data, and sink pads consume
+data. Basically, pads are used to negotiate compatibility and allow data flow
+between elements.</p><p>An element can be in one of four different states
+during the application request: <ul>
+<li><p>Null</p></li>
+<li><p> Ready</p></li>
+<li><p>Pause</p></li>
+<li><p>Play</p></li>
+</ul> In the <i>Null</i> and<i> Ready</i> states, the element is not processing
+any data. The processing of data happens only in the <i>Play</i> state. The <i>Pause</i> state
+is used to fill all connected elements in the data pipeline so the <i>Play</i> state
+change happens quickly.</p><p>GStreamer also provides higher level utilities
+and components to detect automatically the media type of an application, and
+to create the best possible pipeline for a use-case. This process is called
+auto plugging.</p></section>
+<section id="GUID-BC06C918-9763-4374-B263-0BE28D2637B0"><title>GStreamer applications</title><p>GStreamer
+is used in many types of applications including:</p><ol>
+<li id="GUID-D6663533-F4AD-4D58-8ED6-8AE1160D22FB"><p>Media playback and streaming</p></li>
+<li id="GUID-4EE3C5D4-04EA-4888-B425-1DEFAACF4C09"><p>Media recording</p></li>
+<li id="GUID-FB1D14E9-F9CC-4303-8C73-D710A9AFCF7D"><p>Media transcoding</p></li>
+<li id="GUID-10171E9B-0E09-45F0-8564-19B00252CCA1"><p>Video editing</p></li>
+</ol><p>For example the diagram below shows how a Media Player uses GStreamer:</p><p><fig id="GUID-7127CC7D-14D5-4652-87A1-DB5BC3AE9663">
+<title>Media playback using GStreamer</title>
+<image href="GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e306771_href.jpg" placement="inline"/>
+</fig></p><p><draft-comment time="2010-02-17T10:06" translate="no">Sound device is a framework
+to perform hardware accelerated audio functionality. Audio Policy manages
+the requests to access the audio hardware. Digital Signal Processing converts
+the digital audio signal to the analog audio signal.</draft-comment></p> </section>
+<section id="GUID-59D1352D-208F-4E01-B62C-9BF7385E0A9F"><title>See also</title><ul>
+<li><p><xref href="http://wiki.forum.nokia.com/index.php/GStreamer" scope="external">GStreamer</xref> documentation
+published on Forum Nokia.</p></li>
+<li><p><xref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita">Multimedia Framework
+Component</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,142 +1,142 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1" xml:lang="en"><title>Slider
-pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Slider pop-up component can be used for situations where a value is
-changed with a slider, for example when changing zoom or volume level. The
-common Slider pop-up component has a set of elements from which to select
-and modify the slider in question, for example, value ranges, whether to have
-current value as text included, or additional icons related to the slider.</p>
-<p>For application specific slider pop-up the application may define ways
-to open the pop-up. For common pop-up such as Volume Control, ways to open
-the pop-up are defined. The Slider pop-up has default time-out after which
-it disappears, but for good reason this time-out can be overridden by the
-application. </p>
-<p>Instead of using the pop-up, the application may define the slider to be
-always visible (fixed in the layout). If slider is fixed in the layout, the
-pop-up is not shown.</p>
-<p>The orientation of the slider pop-up can be either horizontal or vertical.
-The orientation and location are always the same across applications, unless
-application uses the slider as fixed in the layout. Value growth direction
-in Slider is always either up or right depending on the Slider orientation
-in the UI. </p>
-<table id="GUID-7A441CF1-6B7B-43EF-9E31-AF45034B49FB"><title>Default touch
-events for the Slider pop-up</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down (on slider)</p></entry>
-<entry><p>Slider thumb is moved to the nearest slider step position on the
-slider. Value is changed accordingly.</p><p>If touch down event is performed
-in the middle of two slider step positions, the slider thumb is moved towards
-the greater (larger) value.</p></entry>
-<entry><p>Tactile: No touch down effect. Sensitive slider effect and audio
-feedback is provided when the thumb moves.</p></entry>
-</row>
-<row>
-<entry><p>Touch down (on slider thumb)</p></entry>
-<entry><p>Slider thumb is activated and can be moved.</p></entry>
-<entry><p>Tactile: Sensitive slider effect is provided with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: Sensitive slider effect is provided with the touch release
-(on slider thumb).</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (on slider)</p></entry>
-<entry><p>Moves the thumb step by step to the place where touched down.</p></entry>
-<entry><p>Tactile: Hold slider effect is given with long touch on the slider.
-Effect is bound to the steps. If there are more than 15 steps, then smooth
-slider effect is given instead.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (on slider thumb)</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Slider thumb is moved along with the touch event. It moves step
-by step via its possible positions. Value is changing accordingly. </p><p>If
-touch release in the middle of two slider step positions, the slider thumb
-is moved towards the greater (larger) value. </p><p><note>The slider control
-area is the entire main pane area.</note></p></entry>
-<entry><p>Tactile: Smooth slider effect is provide when dragging from the
-thumb. </p><p>Smooth feedback can be increasing and decreasing when there
-is a meaning to use this kind of feature, for example, in volume and zoom
-slider.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and cancel (slider thumb)</p></entry>
-<entry><p>Slider thumb is moved to the nearest slider step position where
-it was when the touch left the slider control area.</p></entry>
-<entry><p>Tactile: No feedback is provide with touch release after drag outside.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-905C951F-5C5D-431E-84E9-384EFDBE3192"><title>Default touch
-events for the Minus / Plus indicators.</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>Slider thumb moves either up or down. Direction depends on which
-indicator has been touched.</p></entry>
-<entry><p>Tactile: Sensitive button effect and audio feedback is provided
-with the touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (keep touch down)</p></entry>
-<entry><p>This action performs a “key repeat”, similar to many single touch
-down and release on the indicator.</p></entry>
-<entry><p>Tactile: Sensitive button effect provided with steps.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Slider thumb stops in its position</p></entry>
-<entry><p>Tactile: Sensitive button effect given with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside and release the control area</p></entry>
-<entry><p>Slider’s thumb remains in the position, where it was, before moving
-out of both pop-up and indicator area.</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-1B1C405D-61EF-4E54-8704-23EA67FEC11A"><title>Using
-slider pop-ups in C++ applications</title><p>The API to use for the slider
-pop-up is the Slider API.</p><p>To use a slider pop-up in your application,
-create an instance of the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html" format="application/java-archive"><codeph>CAknSlider</codeph></xref>.</p><p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#522ccd7bdb0fac6707734578e2d4ed7b" format="application/java-archive"><codeph>CAknSlider::SetValueL()</codeph></xref> to set the slider handle's position.
-To set the range of acceptable values, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#e6e3b16a15f653eb9fc5b207f7852857" format="application/java-archive"><codeph>CAknSlider::SetRange()</codeph></xref>. To set the step size, use
-the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#f72ea3d251c686948dfea1dbcf9be170" format="application/java-archive"><codeph>CAknSlider::SetStepSize()</codeph></xref>.</p><p>To set the texts for the minimum and maximum values, use the
-methods <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#0359150c9fd3d2390de7c0dd6f7d6063" format="application/java-archive"><codeph>CAknSlider::SetMinimumTextL()</codeph></xref> and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#882ca8ea40249fd2636748a116370fed" format="application/java-archive"><codeph>CAknSlider::SetMaximumTextL()</codeph></xref>. </p><p>To enable drag events in the slider, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#a3db99850ff68e4a80071de18befdcd1" format="application/java-archive"><codeph>CAknSlider::EnableDrag()</codeph></xref></p><p>To use a custom graphic in your slider component, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#6161f69289ee1c7e0f47de8fee21ecee" format="application/java-archive"><codeph>CAknSlider::SetGraphics()</codeph></xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1" xml:lang="en"><title>Slider
+pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Slider pop-up component can be used for situations where a value is
+changed with a slider, for example when changing zoom or volume level. The
+common Slider pop-up component has a set of elements from which to select
+and modify the slider in question, for example, value ranges, whether to have
+current value as text included, or additional icons related to the slider.</p>
+<p>For application specific slider pop-up the application may define ways
+to open the pop-up. For common pop-up such as Volume Control, ways to open
+the pop-up are defined. The Slider pop-up has default time-out after which
+it disappears, but for good reason this time-out can be overridden by the
+application. </p>
+<p>Instead of using the pop-up, the application may define the slider to be
+always visible (fixed in the layout). If slider is fixed in the layout, the
+pop-up is not shown.</p>
+<p>The orientation of the slider pop-up can be either horizontal or vertical.
+The orientation and location are always the same across applications, unless
+application uses the slider as fixed in the layout. Value growth direction
+in Slider is always either up or right depending on the Slider orientation
+in the UI. </p>
+<table id="GUID-7A441CF1-6B7B-43EF-9E31-AF45034B49FB"><title>Default touch
+events for the Slider pop-up</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down (on slider)</p></entry>
+<entry><p>Slider thumb is moved to the nearest slider step position on the
+slider. Value is changed accordingly.</p><p>If touch down event is performed
+in the middle of two slider step positions, the slider thumb is moved towards
+the greater (larger) value.</p></entry>
+<entry><p>Tactile: No touch down effect. Sensitive slider effect and audio
+feedback is provided when the thumb moves.</p></entry>
+</row>
+<row>
+<entry><p>Touch down (on slider thumb)</p></entry>
+<entry><p>Slider thumb is activated and can be moved.</p></entry>
+<entry><p>Tactile: Sensitive slider effect is provided with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: Sensitive slider effect is provided with the touch release
+(on slider thumb).</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (on slider)</p></entry>
+<entry><p>Moves the thumb step by step to the place where touched down.</p></entry>
+<entry><p>Tactile: Hold slider effect is given with long touch on the slider.
+Effect is bound to the steps. If there are more than 15 steps, then smooth
+slider effect is given instead.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (on slider thumb)</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Slider thumb is moved along with the touch event. It moves step
+by step via its possible positions. Value is changing accordingly. </p><p>If
+touch release in the middle of two slider step positions, the slider thumb
+is moved towards the greater (larger) value. </p><p><note>The slider control
+area is the entire main pane area.</note></p></entry>
+<entry><p>Tactile: Smooth slider effect is provide when dragging from the
+thumb. </p><p>Smooth feedback can be increasing and decreasing when there
+is a meaning to use this kind of feature, for example, in volume and zoom
+slider.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and cancel (slider thumb)</p></entry>
+<entry><p>Slider thumb is moved to the nearest slider step position where
+it was when the touch left the slider control area.</p></entry>
+<entry><p>Tactile: No feedback is provide with touch release after drag outside.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-905C951F-5C5D-431E-84E9-384EFDBE3192"><title>Default touch
+events for the Minus / Plus indicators.</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>Slider thumb moves either up or down. Direction depends on which
+indicator has been touched.</p></entry>
+<entry><p>Tactile: Sensitive button effect and audio feedback is provided
+with the touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (keep touch down)</p></entry>
+<entry><p>This action performs a “key repeat”, similar to many single touch
+down and release on the indicator.</p></entry>
+<entry><p>Tactile: Sensitive button effect provided with steps.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Slider thumb stops in its position</p></entry>
+<entry><p>Tactile: Sensitive button effect given with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside and release the control area</p></entry>
+<entry><p>Slider’s thumb remains in the position, where it was, before moving
+out of both pop-up and indicator area.</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-1B1C405D-61EF-4E54-8704-23EA67FEC11A"><title>Using
+slider pop-ups in applications</title><p>The API to use for the
+slider pop-up is the Slider API.</p><p>To use a slider pop-up in your application,
+create an instance of the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html" format="application/java-archive"><codeph>CAknSlider</codeph></xref>.</p><p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#522ccd7bdb0fac6707734578e2d4ed7b" format="application/java-archive"><codeph>CAknSlider::SetValueL()</codeph></xref> to set the slider handle's position.
+To set the range of acceptable values, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#e6e3b16a15f653eb9fc5b207f7852857" format="application/java-archive"><codeph>CAknSlider::SetRange()</codeph></xref>. To set the step size, use
+the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#f72ea3d251c686948dfea1dbcf9be170" format="application/java-archive"><codeph>CAknSlider::SetStepSize()</codeph></xref>.</p><p>To set the texts for the minimum and maximum values, use the
+methods <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#0359150c9fd3d2390de7c0dd6f7d6063" format="application/java-archive"><codeph>CAknSlider::SetMinimumTextL()</codeph></xref> and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#882ca8ea40249fd2636748a116370fed" format="application/java-archive"><codeph>CAknSlider::SetMaximumTextL()</codeph></xref>. </p><p>To enable drag events in the slider, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#a3db99850ff68e4a80071de18befdcd1" format="application/java-archive"><codeph>CAknSlider::EnableDrag()</codeph></xref></p><p>To use a custom graphic in your slider component, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknSlider.html#6161f69289ee1c7e0f47de8fee21ecee" format="application/java-archive"><codeph>CAknSlider::SetGraphics()</codeph></xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,351 +1,351 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE" xml:lang="en"><title>Panoramic
-Stitching Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document introduces you to the panoramic stitching functionality. </p>
-<section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-8-1-18-1-1-5-1-6-1-12-1-4-1-3-1-4-1-3-1-2-2"><title>Purpose</title> <p>Panoramic
-stitching involves combining a collection of images into a single image. </p> </section>
-<section><title>Panoramic stitching overview</title> <p>The panorama image
-is created by stitching a collection of several separate image into one large
-image. The panoramic stitching process is done by, </p> <ul>
-<li id="GUID-0DA59FD4-B817-5B51-8E83-F56FC42E1675"><p>image registration </p> </li>
-<li id="GUID-74941275-9681-51AB-B1FB-4F0829B47075"><p>cylindrical projection
-of images </p> </li>
-<li id="GUID-70E87CA6-B8BC-5CE9-A545-FC3782A81A69"><p>image blending. </p> </li>
-</ul> <p>The panoramic stitch can be done eihter interactively by using camera
-viewfinder, for tracking the camera movements or by stitching pre-captured
-images together. </p> <p><b>Introduction
-about the panoramic stitching</b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> stitches
-a set of images into a single panorama image. The input to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is
-a collection of high resolution images together with some guidance on the
-relative positioning between the images expressed by <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> instances. </p> <p>For
-the panorama creation, the most common use is rendering a full size panorama
-image to the device file system. </p> <p>The high level steps to use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> are
-shown below: </p> <ul>
-<li id="GUID-EF02A22B-B4B1-5E97-97E7-F09DE26DA93A"><p>To construct <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
-use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-39BE88C3-C617-3AF8-A13D-CEC60AE798B1"><apiname>CImagePanorama::NewL()</apiname></xref> which loads the image panorama
-plugin. </p> </li>
-<li id="GUID-690408AF-782D-5E67-93BC-238EBCBD0C20"><p>To initialise <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
-use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6D24921-92B8-3FD8-B666-91C56E1E7984"><apiname>CImagePanorama::InitialiseL()</apiname></xref>. </p> </li>
-<li id="GUID-3E167564-6974-571E-99A0-196A5A18133D"><p>To correct the lens
-parameter use <xref href="GUID-90D79D23-97BC-3EE5-98DD-594DF6EFA0EE.dita"><apiname>TPanoramaLens</apiname></xref>. You need to correct the lens
-for panorama stitching quality. The lens parameters are camera specific. </p> </li>
-<li id="GUID-93217AEB-2AC5-5CCC-B5EE-36E8B99BAA85"><p>To add images to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
-use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6591C30-F990-3D75-B9F3-922D41A5F1A1"><apiname>CImagePanorama::AddFileL()</apiname></xref>,<xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-19FBD32E-9B1F-38B0-963A-B361737818D2"><apiname>CImagePanorama::AddBufferL()</apiname></xref> or <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-66509DE8-2DBA-3FE0-8495-32E4256FA939"><apiname>CImagePanorama::AddImageL()</apiname></xref>, providing a hint on relative positioning or translation of the images through <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref>.
-This transform only needs to be approximate. </p> </li>
-<li id="GUID-B445F73C-2910-56DE-B03D-2637ECED0963"><p>To make the stitched
-image available call <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-A098A70C-050C-3592-BC37-E849A81890F2"><apiname>CImagePanorama::RenderL()</apiname></xref>. </p> </li>
-<li id="GUID-B68A2C77-F19A-5999-82C1-F433269DAACB"><p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> instance
-can then be deleted. </p> </li>
-</ul> <p><b> Introduction
-about the CVFTracker</b> </p> <p> <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is used to
-track viewfinder images to aid in capturing a panorama. The usage of <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
-demonstrated as follows: </p> <ul>
-<li id="GUID-3496F712-4FCD-5E89-BFEE-5AA6A22A1DA0"><p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> output
-is used for providing feedback and guidance to you, on how to move the camera
-while capturing a panorama. </p> </li>
-<li id="GUID-BDBC8A06-B2F8-507C-81F7-E2F344A94FEA"><p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is
-used as an aid for the stitching process in the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>.
-The input to the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is a rapid flow of raw images
-from the viewfinder of the camera. The output is the movement of the camera. </p> </li>
-</ul> <p>The high level steps to use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
-shown below: </p> <ul>
-<li id="GUID-5C25D0C8-49E1-5514-A90C-2B8A026D20CC"><p>To create <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
-use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref>. The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref> is
-used to load the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plugin. </p> </li>
-<li id="GUID-ECE3D707-B871-5EC5-A04D-CA2A632BECC6"><p>To initialise <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
-use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-5E441486-3333-3B4F-81F3-3A86AE541CF8"><apiname>CVFTracker::InitialiseL()</apiname></xref>. </p> </li>
-<li id="GUID-54FEF93A-68BB-5EFB-8DE4-21F6562DCF11"><p>To reset <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
-use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE707DEA-4747-3A1A-8C6F-8163F1DF0584"><apiname>CVFTracker::Reset()</apiname></xref>. </p> </li>
-<li id="GUID-32F88242-4EDD-54C7-8D7A-574015A197F4"><p>To perform the image
-registration, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AB58BBEB-5EAE-3E2A-A94E-F59334402A2B"><apiname>CVFTracker::RegisterImageL()</apiname></xref>. </p> </li>
-<li id="GUID-01DDC476-9596-55A1-B296-13877DB41B67"><p>To destroy the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
-use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-C2B64F7D-04D8-324A-BD84-C588503881BC"><apiname>CVFTracker::~CVFTracker()</apiname></xref>. </p> </li>
-</ul> <p><b>Camera
-requirements </b> </p> <p>The camera requirements for the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> and <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
-as follows, </p> <ul>
-<li id="GUID-C83A6919-C7BB-55C9-9D60-80EDAE0D4458"><p>The camera must provide
-low resolution images (in the order of 160 by 120 up to 320 by 240 resolution)
-as the raw format at a high frame rate to the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> and
-high resolution captured images to the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>. </p> </li>
-<li id="GUID-EF41F660-AAEE-5D31-A014-FD6C39C42C5E"><p>For the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
-it is better to have good frame rate than to have high resolution input images. </p> </li>
-<li id="GUID-810B06D2-D45F-5E7C-BC62-88AEE0B0A071"><p>The use of large <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> images
-can cause a lower frame rate on slow devices, and do not give accurate tracking
-for the view finder. </p> </li>
-<li id="GUID-DA5C3ED7-550D-5E4E-AD5A-E9119A56D8FB"><p>The optimal size of
-images is a tradeoff between the panorama quality and the time for rendering
-the panorama. </p> </li>
-</ul> </section>
-<section><title>How to use Panoramic Stitching</title> <p>This section contains
-some code snippets to show, how Panoramic stitching is accessed in several
-situations. </p> <p><b>Basic
-stitching </b> </p> <p>The basic stitching is demonstrated by a simple example
-of stitching four JPEG images into a single JPEG image providing an approximate
-translation between each image: </p> <p> </p> <codeblock id="GUID-304B7755-B05B-5BAE-884A-44A0500ABF37" xml:space="preserve">
-
-    TSize imageSize(1200, 1000);
-    
-    TDirection direction = EPanoramaDirectionRight;
-        
-    //Lens parameters or internal camera characteristics should be available for the 
-    //specific camera module in use. Here we use default values.
-      TPanoramaLens lens;
-        
-    //Create transform. A transform is an approximate offset between each image.
-      CPanoramaTransform* panTrans = CPanoramaTransform::NewL();
-      CleanupStack::PushL(panTrans);
-    
-    //Create panorama object.This stitches the individual images together.
-      CImagePanorama* panImage = CImagePanorama::NewL();
-      CleanupStack::PushL(panImage);
-        
-    //Create panorama engine and set the lens and size
-      panImage-&gt;InitializeL(imageSize, lens, direction);
-        
-    //Each file added is provided with an approximate translation. 
-    //In this case there are 4 images.
-      panTrans-&gt;SetTranslationL(TPoint(0, 0), imageSize);
-      panImage-&gt;AddFileL(KTestFileName1, *panTrans);
-        
-    panTrans-&gt;SetTranslationL(TPoint(900, -30), imageSize);
-    panImage-&gt;AddFileL(KTestFileName2, *panTrans);
-        
-    panTrans-&gt;SetTranslationL(TPoint(900, 60), imageSize);
-    panImage-&gt;AddFileL(KTestFileName3, *panTrans);
-    
-    panTrans-&gt;SetTranslationL(TPoint(400, -30), imageSize);
-    panImage-&gt;AddFileL(KTestFileName4, *panTrans);
-        
-    //The image size can be obtained before rendering (if required)
-      TSize size;
-      panImage-&gt;CurrentImageSizeL(size);
-    
-    //view the output image
-      panImage-&gt;RenderL(KTestBSOutputFileName);
-
-    CleanupStack::PopAndDestroy(2); //panTrans, panImage
-
-</codeblock> <p>The main steps for using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> are
-as follows, </p> <ol id="GUID-D6872BA3-A3DF-566A-83AF-527870CBE997">
-<li id="GUID-FB378114-769F-5404-BD20-8886D538191F"><p>create <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>  </p> </li>
-<li id="GUID-D8A28AFC-4D37-59C4-91D9-92F4898F2302"><p>some approximate transform
-information for each image pair </p> </li>
-<li id="GUID-146D95D7-14DE-57CA-96DA-45959EB895A4"><p>add each images to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>  </p> </li>
-<li id="GUID-FF479A52-24E3-5D0B-A821-44127DA5B60C"><p>render the output (for
-example to the file) </p> </li>
-<li id="GUID-0ADBEE3F-AA60-5787-92A0-C421D4EA8731"><p>delete the objects used. </p> </li>
-</ol> <p> <b>Note:</b> The following points must be noted by you: </p> <ul>
-<li id="GUID-D3EB4190-4B2B-5760-8E6C-D19DAFF439DF"><p>The lens parameters
-are not resolution dependant. It is enough to calibrate once for each camera
-model and no need to recalibrate for each resolution. For best accuracy, use
-the highest resolution possible when calibrating with a calibration tool. </p> <p>The
-approximate translations in x co-ordinate and y co-ordinate ( as dx, dy) must
-be compliant with the value of direction. </p> </li>
-</ul> <p><b>A
-camera application example</b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is
-used in a camera application. The example is more complicated than the previous
-example. In this example <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> provides the approximate
-transform between the captured images. </p> <p><b>Viewfinder
-image tracking </b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> generates
-panorama images. The application starts the process and then use the camera
-for capturing the images. The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> will give an indication
-when to capture the high resolution images, which will later be stitched into
-a panorama image. </p> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plays an important
-role for getting the camera movement. The high level steps to use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> in
-the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> for a camera application, are shown
-below: </p> <ol id="GUID-B6357C9E-1510-53C8-856B-2C06C7A6A69C">
-<li id="GUID-54C90419-08DE-5406-BBF1-37C0B59FCA26"><p>To create the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> object
-and load the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plugin, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref>. </p> </li>
-<li id="GUID-D3E16606-ED81-5702-9F4F-9B19754D4768"><p>To create <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> object
-and load the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> plugin, use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-39BE88C3-C617-3AF8-A13D-CEC60AE798B1"><apiname>CImagePanorama::NewL()</apiname></xref>. </p> </li>
-<li id="GUID-E5C6B072-64FE-554F-BAC4-8850E15B841D"><p>To create the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> object
-and set or get the values, use the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita#GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA/GUID-ADB1D55B-CEA7-3151-B6E2-14F165F8BB9F"><apiname>CPanoramaTransform::NewL()</apiname></xref>. </p> </li>
-<li id="GUID-FD68A411-E492-5492-88FD-E7A7307113F7"><p>To create and set the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>, <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
-and <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> functions for the Image Processor
-Adaptation Plug-in objects, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-5E441486-3333-3B4F-81F3-3A86AE541CF8"><apiname>CVFTracker::InitialiseL()</apiname></xref> and <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6D24921-92B8-3FD8-B666-91C56E1E7984"><apiname>CImagePanorama::InitialiseL()</apiname></xref> respectively.</p> </li>
-<li id="GUID-A605F836-474D-55D4-A326-9AC8B0F8F86B"><p>To get a translation
-value from a viewfinder image, register an image by using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AB58BBEB-5EAE-3E2A-A94E-F59334402A2B"><apiname>CVFTracker::RegisterImageL()</apiname></xref>.
-This will return translation information as a CPanoramaTransform object. </p> </li>
-<li id="GUID-8E6E35D9-B20A-5BA2-987F-1A3447DEA146"><p>Check the right time
-to capture the next image by using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-945FF7AD-31E5-3C6A-AD89-F1A5FC225B9D"><apiname>CVFTracker::IsTimeToCapture()</apiname></xref>. </p> </li>
-<li id="GUID-A490A649-B910-5E1C-B317-EC5627547EF7"><p>Reset the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> for
-the next image, using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE707DEA-4747-3A1A-8C6F-8163F1DF0584"><apiname>CVFTracker::Reset()</apiname></xref>. </p> <p>In order
-to capture many images to be stitched into a single panorama image, repeat
-the steps 5, 6 and 7. </p> </li>
-</ol> <fig id="GUID-7F48B2F5-D65B-52EC-8412-F3F56A5EE8E8">
-<image href="GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e310270_href.jpg" placement="inline"/>
-</fig> <p><b>Panorama
-stitching </b> </p> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> helps to decide when
-to capture each of the full resolution images using the camera. The images
-can then be passed to CImagePanorama and the stitching is done. The high level
-steps to do panorama stitching are listed below: </p> <ol id="GUID-763005A3-4098-534F-9CA1-E2F8654C95BD">
-<li id="GUID-6866E73F-F1F7-53C8-BA64-8AF448318C53"><p>Capture the next image
-using the camera, then add the image to the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> by
-using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-66509DE8-2DBA-3FE0-8495-32E4256FA939"><apiname>CImagePanorama::AddImageL()</apiname></xref> or <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-201D0607-2D25-3B1D-B449-7A61419BB0C8"><apiname>CImagePanorama::AddFileL</apiname></xref>,
-passing in the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> object obtained from
-the CVFTracker. </p> </li>
-<li id="GUID-BC35AEEF-206E-5830-909E-07F645C2E063"><p>When all images have
-been captured you can render the stitched image to file, image buffer, CFbsBitmap
-or image frame using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-A098A70C-050C-3592-BC37-E849A81890F2"><apiname>CImagePanorama::RenderL()</apiname></xref>. </p> </li>
-</ol> <fig id="GUID-B5F7149F-1FB9-535E-9212-7C9E23B9347B">
-<image href="GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e310320_href.jpg" placement="inline"/>
-</fig> <p><b>User Interface</b> </p> <p>Provide a good user interface (UI) application
-for the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is crucial. An example of UI design
-is described below, which gives you a robust and easy application for generating
-panorama images. </p> <p><b>How
-to shoot a panorama </b> </p> <p>The steps to be followed for shooting a panorama
-images: </p> <ol id="GUID-8FD3D305-BEAF-5414-BD49-5728C2504256">
-<li id="GUID-92642922-D0A0-57CD-80A6-03722941E52C"><p>You need to press the
-start button of the camera and need to sweep the camera towards the wanted
-scene. </p> <p> <b>Note:</b> You must try not to move the mobile phone, but
-only rotate it. You see in the below diagram the camera is sweep in a clockwise
-direction from left-to-right. The rotation is made around the imagined axis
-through mobile (axis of rotation in the image). A panorama image covers approximately
-a 100 degree field of view. </p> <fig id="GUID-8562E235-6D10-5097-A888-E27EE6D4E498">
-<image href="GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e310357_href.jpg" placement="inline"/>
-</fig> </li>
-<li id="GUID-16CA0CFB-9D17-573C-9D7B-FEDBCFF4044C"><p> <b>Application Start</b>  </p> <p>When
-you launch the application the UI appears as shown in the below diagram. </p> <fig id="GUID-4A6082E2-1B7F-5A48-8FC5-7BC2786987B7">
-<image href="GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e310373_href.jpg" placement="inline"/>
-</fig> <p>Here the screen area shows the viewfinder image. When you sweep
-the mobile, several images are captured and then the images are stitched to
-create a panorama image. </p> </li>
-<li id="GUID-FE8D49DB-26CC-5546-A05D-B46045894313"><p> <b>Capture a panorama
-image during tracking</b>  </p> <p>When you choose to capture a panorama image
-the UI changes, which is shown in the below diagram. </p> <fig id="GUID-930C8F54-4C13-50AC-B700-9D889FFE9DC7">
-<image href="GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e310392_href.jpg" placement="inline"/>
-</fig> <p>In the above diagram you see three different boxes named 1, 2 and
-3 which represent the position of the camera. The blue box representation
-changes according to the rotation of the mobile phone. </p> <p>The boxes shown
-in the above diagram is for illustrative purpose, so that it can be down scaled
-for viewfinder image size. The total panorama coverage area box is estimated
-by the number of images for capturing and the overlapping area size. </p> <p>The
-code snippets below shows the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> tracking. </p> <codeblock id="GUID-73381F9D-53D9-505A-888D-464A83B0A352" xml:space="preserve">
-
-    _LIT(KFileOutput, "c:\\ICLExample\\viewfinder%d.mbm");
-    _LIT(KFileCapturedImage, "c:\\ICLExample\\pancapture%d.jpg");
-    TInt i = 0;
-
-    TSize imageSize(1200,1000);
- CFbsBitmap* bmp = new (ELeave) CFbsBitmap;
- CleanupStack::PushL(bmp);
-
-    // get 1st viewfinder image from camera into bmp (detail excluded)
-             TSize bmpSize = bmp-&gt;SizeInPixels();
-
-       CPanoramaTransform* panTrans = CPanoramaTransform::NewL();//create panorama transoform
-       CleanupStack::PushL(panTrans);
-
-       CVFTracker* vfTracker = CVFTracker::NewL(); //create VFTracker and load the plugin
-       CleanupStack::PushL(vfTracker);
-        
-       vfTracker-&gt;InitializeL(bmpSize); //Create VFTracker and set size
-
-       CImagePanorama* panImage = CImagePanorama::NewL(); //create CImagePanorama object
-       CleanupStack::PushL(panImage);
-        
-       TDirection direction = EPanoramaDirectionRight; //assign direction
-        
-    // Lens parameters or internal camera characteristics should be available for the 
-    // specific camera module in use. Here we use default values.
-       TPanoramaLens lens;
-       panImage-&gt;InitializeL(imageSize, lens, direction); //initialise size, lens, direction and create panorama engine
-
-    // get the first captured image from the camera as a starting point - its name is given in capturedFileName
-       TFileName capturedFileName;
-    capturedFileName.Format(KFileCapturedImage(),i);
-       panImage-&gt;AddFileL(capturedFileName, *panTrans); //add the captured image
-
-    do 
-        {
-        // give the next camera viewfinder image to the tracker    (details ommitted)
-           vfTracker-&gt;RegisterImageL(*bmp, *panTrans); // register viewfinder image
-        
-        // check if we have a good overlap with the previous image
-           if(vfTracker-&gt;IsTimeToCapture(direction, KPanoramaDefaultOverlap)) 
-              {
-              // capture the next image from the camera (details ommitted)
-              capturedFileName.Format(KFileCapturedImage(),i);
-            
-                 panImage-&gt;AddFileL(capturedFileName, *panTrans); //add the captured image
-                 vfTracker-&gt;Reset(); //reset the VFTracker object
-              }         
-        if ( err != KErrNone )  // some termination condition usually a signal from user
-            {
-            // no more viewfinder images
-            break;
-            }
-        }
-    while (1);    
-    panImage-&gt;RenderL(KTestVFTOutputFileName); // render the stitched image
-    CleanupStack::PopAndDestroy(4,bmp); //panTrans, vfTracker, panImage, bmp
-</codeblock> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is passed each viewfinder
-images which it checks and determines whether it is right time to capture
-the next image. In return it provides translation information <codeph>CPanoramaTransform::GetTranslation()</codeph> which
-indicates the shift of the current viewfinder image. </p> <p>The extracted
-information is used to draw the blue rectangle on the screen. If it is time
-to capture, then it triggers the capturing function and restarts the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> again
-for next image. </p> <p> <b>Note:</b> The box representation is used in the
-UI, to help you to take better panorama images. In addition a vibration effect
-can be used to provide additional feedback on when to capture an image. For
-example, when you sweep the mobile phone, it is in tracking mode so it vibrates.
-When the mobile phone is ready to capture, the vibration stops to let you
-know that it must be static for capturing an accurate second image. Then when
-it vibrates again, you must rotate the mobile and until it stop. </p> </li>
-<li id="GUID-C7848E42-74B4-56D2-BB7B-2F20A4D30D32"><p> <b>User interface updating
-details </b>  </p> <p>The UI design detail is shown in step by step process.
-They are as follows: </p> <ul>
-<li id="GUID-99D23225-ECF9-5A34-ADAA-4E0A2326D768"><p>The total panorama coverage
-area is divided into four different image areas: </p> <fig id="GUID-0808E657-6313-510C-9EB6-F4D49722229B">
-<image href="GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e310453_href.jpg" placement="inline"/>
-</fig> </li>
-<li id="GUID-D06A8B59-81EE-5420-A3AE-FB036B7CE3F4"><p>When you choose to capture
-a panorama image the following steps are performed. The first image is captured
-at position 0. The UI looks as follows: </p> <fig id="GUID-A17F50EC-3241-56CA-B96A-59515EAF161B">
-<image href="GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e310463_href.jpg" placement="inline"/>
-</fig> </li>
-<li id="GUID-BF4A2D67-EF8D-5F72-B2C2-9DC79E319023"><p>When you rotate the
-mobile phone clockwise, the blue box moves to the right using the translation
-information from <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref>. At the same time the
-vibrator is set on to give direct feedback for the tracking process. When
-the blue box and the grey box (which represent the position to capture the
-next image) coincide, the blue box turns into a filled blue box and the vibrator
-stops. You then known that the next image is captured. At this moment the
-camera must be steady. </p> <p>After second image is captured the blue box
-is moving again and vibrator is set-on. The UI looks as follows: </p> <fig id="GUID-C6E583BB-EE47-52EE-BBFB-D7EE37156C12">
-<image href="GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e310480_href.jpg" placement="inline"/>
-</fig> <p>Again, you rotate the mobile clockwise until the two boxes coincide
-and vibrator stops; third image then captured. After this, the UI looks as
-follows: </p> <fig id="GUID-FD9D81DA-E675-5C9C-BA6E-4E7DCE6F46D9">
-<image href="GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e310488_href.jpg" placement="inline"/>
-</fig> <p>You rotate the mobile phone until the boxes coincide and the fourth
-(last) image is captured. </p> <p> <b>Note:</b> If the mobile phone rotation
-deviates from chosen (clockwise) direction or translates up and down, the
-blue box indicates this, and you must correct the mobile phone for the wrong
-movement. </p> <p>At this point the stitched image can be saved or you can
-reset the camera, to create another panorama image: </p> <fig id="GUID-1A527BEA-0C50-5910-9525-75336C02B2C9">
-<image href="GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e310505_href.jpg" placement="inline"/>
-</fig> </li>
-</ul> </li>
-</ol> <p><b>Camera
-calibration </b> </p> <p>In order to produce good panorama images, the internal
-characteristics of the camera is calibrated by the <xref href="GUID-E361A378-76EB-36C9-A949-A5D31D4D1C4C.dita"><apiname>TPanoramaLens()</apiname></xref>.
-The lens parameter such as the distance, the focal length, the principal point,
-the skew, the width and the height are called the intrinsic parameters. </p> <p>The
-camera module supplier should be able to provide this information or there
-are a number of tools to get the camera parameters. A free tool that can be
-used is the calibration functions in <xref href="http://en.wikipedia.org/wiki/Opencv" scope="external">OpenCV</xref>. Typically these tools need an input of images
-of a special reference pattern, for example a checker board like grid, photographed
-from many directions. From that the tools automatically generate all the desired
-lens parameters. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-60DBA025-8FA0-5DF2-90D0-744A016998EE" xml:lang="en"><title>Panoramic
+Stitching Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces you to the panoramic stitching functionality. </p>
+<section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-10-1-19-1-1-5-1-6-1-11-1-4-1-3-1-4-1-3-1-2-2"><title>Purpose</title> <p>Panoramic
+stitching involves combining a collection of images into a single image. </p> </section>
+<section><title>Panoramic stitching overview</title> <p>The panorama image
+is created by stitching a collection of several separate image into one large
+image. The panoramic stitching process is done by, </p> <ul>
+<li id="GUID-0DA59FD4-B817-5B51-8E83-F56FC42E1675"><p>image registration </p> </li>
+<li id="GUID-74941275-9681-51AB-B1FB-4F0829B47075"><p>cylindrical projection
+of images </p> </li>
+<li id="GUID-70E87CA6-B8BC-5CE9-A545-FC3782A81A69"><p>image blending. </p> </li>
+</ul> <p>The panoramic stitch can be done eihter interactively by using camera
+viewfinder, for tracking the camera movements or by stitching pre-captured
+images together. </p> <p><b>Introduction
+about the panoramic stitching</b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> stitches
+a set of images into a single panorama image. The input to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is
+a collection of high resolution images together with some guidance on the
+relative positioning between the images expressed by <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> instances. </p> <p>For
+the panorama creation, the most common use is rendering a full size panorama
+image to the device file system. </p> <p>The high level steps to use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> are
+shown below: </p> <ul>
+<li id="GUID-EF02A22B-B4B1-5E97-97E7-F09DE26DA93A"><p>To construct <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
+use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-39BE88C3-C617-3AF8-A13D-CEC60AE798B1"><apiname>CImagePanorama::NewL()</apiname></xref> which loads the image panorama
+plugin. </p> </li>
+<li id="GUID-690408AF-782D-5E67-93BC-238EBCBD0C20"><p>To initialise <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
+use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6D24921-92B8-3FD8-B666-91C56E1E7984"><apiname>CImagePanorama::InitialiseL()</apiname></xref>. </p> </li>
+<li id="GUID-3E167564-6974-571E-99A0-196A5A18133D"><p>To correct the lens
+parameter use <xref href="GUID-90D79D23-97BC-3EE5-98DD-594DF6EFA0EE.dita"><apiname>TPanoramaLens</apiname></xref>. You need to correct the lens
+for panorama stitching quality. The lens parameters are camera specific. </p> </li>
+<li id="GUID-93217AEB-2AC5-5CCC-B5EE-36E8B99BAA85"><p>To add images to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
+use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6591C30-F990-3D75-B9F3-922D41A5F1A1"><apiname>CImagePanorama::AddFileL()</apiname></xref>,<xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-19FBD32E-9B1F-38B0-963A-B361737818D2"><apiname>CImagePanorama::AddBufferL()</apiname></xref> or <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-66509DE8-2DBA-3FE0-8495-32E4256FA939"><apiname>CImagePanorama::AddImageL()</apiname></xref>, providing a hint on relative positioning or translation of the images through <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref>.
+This transform only needs to be approximate. </p> </li>
+<li id="GUID-B445F73C-2910-56DE-B03D-2637ECED0963"><p>To make the stitched
+image available call <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-A098A70C-050C-3592-BC37-E849A81890F2"><apiname>CImagePanorama::RenderL()</apiname></xref>. </p> </li>
+<li id="GUID-B68A2C77-F19A-5999-82C1-F433269DAACB"><p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> instance
+can then be deleted. </p> </li>
+</ul> <p><b> Introduction
+about the CVFTracker</b> </p> <p> <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is used to
+track viewfinder images to aid in capturing a panorama. The usage of <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
+demonstrated as follows: </p> <ul>
+<li id="GUID-3496F712-4FCD-5E89-BFEE-5AA6A22A1DA0"><p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> output
+is used for providing feedback and guidance to you, on how to move the camera
+while capturing a panorama. </p> </li>
+<li id="GUID-BDBC8A06-B2F8-507C-81F7-E2F344A94FEA"><p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is
+used as an aid for the stitching process in the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>.
+The input to the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is a rapid flow of raw images
+from the viewfinder of the camera. The output is the movement of the camera. </p> </li>
+</ul> <p>The high level steps to use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
+shown below: </p> <ul>
+<li id="GUID-5C25D0C8-49E1-5514-A90C-2B8A026D20CC"><p>To create <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
+use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref>. The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref> is
+used to load the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plugin. </p> </li>
+<li id="GUID-ECE3D707-B871-5EC5-A04D-CA2A632BECC6"><p>To initialise <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
+use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-5E441486-3333-3B4F-81F3-3A86AE541CF8"><apiname>CVFTracker::InitialiseL()</apiname></xref>. </p> </li>
+<li id="GUID-54FEF93A-68BB-5EFB-8DE4-21F6562DCF11"><p>To reset <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
+use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE707DEA-4747-3A1A-8C6F-8163F1DF0584"><apiname>CVFTracker::Reset()</apiname></xref>. </p> </li>
+<li id="GUID-32F88242-4EDD-54C7-8D7A-574015A197F4"><p>To perform the image
+registration, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AB58BBEB-5EAE-3E2A-A94E-F59334402A2B"><apiname>CVFTracker::RegisterImageL()</apiname></xref>. </p> </li>
+<li id="GUID-01DDC476-9596-55A1-B296-13877DB41B67"><p>To destroy the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
+use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-C2B64F7D-04D8-324A-BD84-C588503881BC"><apiname>CVFTracker::~CVFTracker()</apiname></xref>. </p> </li>
+</ul> <p><b>Camera
+requirements </b> </p> <p>The camera requirements for the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> and <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> are
+as follows, </p> <ul>
+<li id="GUID-C83A6919-C7BB-55C9-9D60-80EDAE0D4458"><p>The camera must provide
+low resolution images (in the order of 160 by 120 up to 320 by 240 resolution)
+as the raw format at a high frame rate to the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> and
+high resolution captured images to the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>. </p> </li>
+<li id="GUID-EF41F660-AAEE-5D31-A014-FD6C39C42C5E"><p>For the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>,
+it is better to have good frame rate than to have high resolution input images. </p> </li>
+<li id="GUID-810B06D2-D45F-5E7C-BC62-88AEE0B0A071"><p>The use of large <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> images
+can cause a lower frame rate on slow devices, and do not give accurate tracking
+for the view finder. </p> </li>
+<li id="GUID-DA5C3ED7-550D-5E4E-AD5A-E9119A56D8FB"><p>The optimal size of
+images is a tradeoff between the panorama quality and the time for rendering
+the panorama. </p> </li>
+</ul> </section>
+<section><title>How to use Panoramic Stitching</title> <p>This section contains
+some code snippets to show, how Panoramic stitching is accessed in several
+situations. </p> <p><b>Basic
+stitching </b> </p> <p>The basic stitching is demonstrated by a simple example
+of stitching four JPEG images into a single JPEG image providing an approximate
+translation between each image: </p> <p> </p> <codeblock id="GUID-304B7755-B05B-5BAE-884A-44A0500ABF37" xml:space="preserve">
+
+    TSize imageSize(1200, 1000);
+    
+    TDirection direction = EPanoramaDirectionRight;
+        
+    //Lens parameters or internal camera characteristics should be available for the 
+    //specific camera module in use. Here we use default values.
+      TPanoramaLens lens;
+        
+    //Create transform. A transform is an approximate offset between each image.
+      CPanoramaTransform* panTrans = CPanoramaTransform::NewL();
+      CleanupStack::PushL(panTrans);
+    
+    //Create panorama object.This stitches the individual images together.
+      CImagePanorama* panImage = CImagePanorama::NewL();
+      CleanupStack::PushL(panImage);
+        
+    //Create panorama engine and set the lens and size
+      panImage-&gt;InitializeL(imageSize, lens, direction);
+        
+    //Each file added is provided with an approximate translation. 
+    //In this case there are 4 images.
+      panTrans-&gt;SetTranslationL(TPoint(0, 0), imageSize);
+      panImage-&gt;AddFileL(KTestFileName1, *panTrans);
+        
+    panTrans-&gt;SetTranslationL(TPoint(900, -30), imageSize);
+    panImage-&gt;AddFileL(KTestFileName2, *panTrans);
+        
+    panTrans-&gt;SetTranslationL(TPoint(900, 60), imageSize);
+    panImage-&gt;AddFileL(KTestFileName3, *panTrans);
+    
+    panTrans-&gt;SetTranslationL(TPoint(400, -30), imageSize);
+    panImage-&gt;AddFileL(KTestFileName4, *panTrans);
+        
+    //The image size can be obtained before rendering (if required)
+      TSize size;
+      panImage-&gt;CurrentImageSizeL(size);
+    
+    //view the output image
+      panImage-&gt;RenderL(KTestBSOutputFileName);
+
+    CleanupStack::PopAndDestroy(2); //panTrans, panImage
+
+</codeblock> <p>The main steps for using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> are
+as follows, </p> <ol id="GUID-D6872BA3-A3DF-566A-83AF-527870CBE997">
+<li id="GUID-FB378114-769F-5404-BD20-8886D538191F"><p>create <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>  </p> </li>
+<li id="GUID-D8A28AFC-4D37-59C4-91D9-92F4898F2302"><p>some approximate transform
+information for each image pair </p> </li>
+<li id="GUID-146D95D7-14DE-57CA-96DA-45959EB895A4"><p>add each images to <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>  </p> </li>
+<li id="GUID-FF479A52-24E3-5D0B-A821-44127DA5B60C"><p>render the output (for
+example to the file) </p> </li>
+<li id="GUID-0ADBEE3F-AA60-5787-92A0-C421D4EA8731"><p>delete the objects used. </p> </li>
+</ol> <p> <b>Note:</b> The following points must be noted by you: </p> <ul>
+<li id="GUID-D3EB4190-4B2B-5760-8E6C-D19DAFF439DF"><p>The lens parameters
+are not resolution dependant. It is enough to calibrate once for each camera
+model and no need to recalibrate for each resolution. For best accuracy, use
+the highest resolution possible when calibrating with a calibration tool. </p> <p>The
+approximate translations in x co-ordinate and y co-ordinate ( as dx, dy) must
+be compliant with the value of direction. </p> </li>
+</ul> <p><b>A
+camera application example</b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is
+used in a camera application. The example is more complicated than the previous
+example. In this example <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> provides the approximate
+transform between the captured images. </p> <p><b>Viewfinder
+image tracking </b> </p> <p>The <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> generates
+panorama images. The application starts the process and then use the camera
+for capturing the images. The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> will give an indication
+when to capture the high resolution images, which will later be stitched into
+a panorama image. </p> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plays an important
+role for getting the camera movement. The high level steps to use the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> in
+the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> for a camera application, are shown
+below: </p> <ol id="GUID-B6357C9E-1510-53C8-856B-2C06C7A6A69C">
+<li id="GUID-54C90419-08DE-5406-BBF1-37C0B59FCA26"><p>To create the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> object
+and load the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> plugin, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE92A41F-388D-338C-A80E-C0B16DF3BDDC"><apiname>CVFTracker::NewL()</apiname></xref>. </p> </li>
+<li id="GUID-D3E16606-ED81-5702-9F4F-9B19754D4768"><p>To create <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> object
+and load the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> plugin, use <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-39BE88C3-C617-3AF8-A13D-CEC60AE798B1"><apiname>CImagePanorama::NewL()</apiname></xref>. </p> </li>
+<li id="GUID-E5C6B072-64FE-554F-BAC4-8850E15B841D"><p>To create the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> object
+and set or get the values, use the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita#GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA/GUID-ADB1D55B-CEA7-3151-B6E2-14F165F8BB9F"><apiname>CPanoramaTransform::NewL()</apiname></xref>. </p> </li>
+<li id="GUID-FD68A411-E492-5492-88FD-E7A7307113F7"><p>To create and set the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref>, <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref>,
+and <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> functions for the Image Processor
+Adaptation Plug-in objects, use <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-5E441486-3333-3B4F-81F3-3A86AE541CF8"><apiname>CVFTracker::InitialiseL()</apiname></xref> and <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-B6D24921-92B8-3FD8-B666-91C56E1E7984"><apiname>CImagePanorama::InitialiseL()</apiname></xref> respectively.</p> </li>
+<li id="GUID-A605F836-474D-55D4-A326-9AC8B0F8F86B"><p>To get a translation
+value from a viewfinder image, register an image by using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AB58BBEB-5EAE-3E2A-A94E-F59334402A2B"><apiname>CVFTracker::RegisterImageL()</apiname></xref>.
+This will return translation information as a CPanoramaTransform object. </p> </li>
+<li id="GUID-8E6E35D9-B20A-5BA2-987F-1A3447DEA146"><p>Check the right time
+to capture the next image by using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-945FF7AD-31E5-3C6A-AD89-F1A5FC225B9D"><apiname>CVFTracker::IsTimeToCapture()</apiname></xref>. </p> </li>
+<li id="GUID-A490A649-B910-5E1C-B317-EC5627547EF7"><p>Reset the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> for
+the next image, using <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita#GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352/GUID-AE707DEA-4747-3A1A-8C6F-8163F1DF0584"><apiname>CVFTracker::Reset()</apiname></xref>. </p> <p>In order
+to capture many images to be stitched into a single panorama image, repeat
+the steps 5, 6 and 7. </p> </li>
+</ol> <fig id="GUID-7F48B2F5-D65B-52EC-8412-F3F56A5EE8E8">
+<image href="GUID-470FAFE8-2246-5E91-9F01-6CC95F975E54_d0e304255_href.jpg" placement="inline"/>
+</fig> <p><b>Panorama
+stitching </b> </p> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> helps to decide when
+to capture each of the full resolution images using the camera. The images
+can then be passed to CImagePanorama and the stitching is done. The high level
+steps to do panorama stitching are listed below: </p> <ol id="GUID-763005A3-4098-534F-9CA1-E2F8654C95BD">
+<li id="GUID-6866E73F-F1F7-53C8-BA64-8AF448318C53"><p>Capture the next image
+using the camera, then add the image to the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> by
+using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-66509DE8-2DBA-3FE0-8495-32E4256FA939"><apiname>CImagePanorama::AddImageL()</apiname></xref> or <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-201D0607-2D25-3B1D-B449-7A61419BB0C8"><apiname>CImagePanorama::AddFileL</apiname></xref>,
+passing in the <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref> object obtained from
+the CVFTracker. </p> </li>
+<li id="GUID-BC35AEEF-206E-5830-909E-07F645C2E063"><p>When all images have
+been captured you can render the stitched image to file, image buffer, CFbsBitmap
+or image frame using <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita#GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4/GUID-A098A70C-050C-3592-BC37-E849A81890F2"><apiname>CImagePanorama::RenderL()</apiname></xref>. </p> </li>
+</ol> <fig id="GUID-B5F7149F-1FB9-535E-9212-7C9E23B9347B">
+<image href="GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e304305_href.jpg" placement="inline"/>
+</fig> <p><b>User Interface</b> </p> <p>Provide a good user interface (UI) application
+for the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> is crucial. An example of UI design
+is described below, which gives you a robust and easy application for generating
+panorama images. </p> <p><b>How
+to shoot a panorama </b> </p> <p>The steps to be followed for shooting a panorama
+images: </p> <ol id="GUID-8FD3D305-BEAF-5414-BD49-5728C2504256">
+<li id="GUID-92642922-D0A0-57CD-80A6-03722941E52C"><p>You need to press the
+start button of the camera and need to sweep the camera towards the wanted
+scene. </p> <p> <b>Note:</b> You must try not to move the mobile phone, but
+only rotate it. You see in the below diagram the camera is sweep in a clockwise
+direction from left-to-right. The rotation is made around the imagined axis
+through mobile (axis of rotation in the image). A panorama image covers approximately
+a 100 degree field of view. </p> <fig id="GUID-8562E235-6D10-5097-A888-E27EE6D4E498">
+<image href="GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e304342_href.jpg" placement="inline"/>
+</fig> </li>
+<li id="GUID-16CA0CFB-9D17-573C-9D7B-FEDBCFF4044C"><p> <b>Application Start</b>  </p> <p>When
+you launch the application the UI appears as shown in the below diagram. </p> <fig id="GUID-4A6082E2-1B7F-5A48-8FC5-7BC2786987B7">
+<image href="GUID-0E55E007-913C-56DA-8BEF-7EC00FFCCE51_d0e304358_href.jpg" placement="inline"/>
+</fig> <p>Here the screen area shows the viewfinder image. When you sweep
+the mobile, several images are captured and then the images are stitched to
+create a panorama image. </p> </li>
+<li id="GUID-FE8D49DB-26CC-5546-A05D-B46045894313"><p> <b>Capture a panorama
+image during tracking</b>  </p> <p>When you choose to capture a panorama image
+the UI changes, which is shown in the below diagram. </p> <fig id="GUID-930C8F54-4C13-50AC-B700-9D889FFE9DC7">
+<image href="GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e304377_href.jpg" placement="inline"/>
+</fig> <p>In the above diagram you see three different boxes named 1, 2 and
+3 which represent the position of the camera. The blue box representation
+changes according to the rotation of the mobile phone. </p> <p>The boxes shown
+in the above diagram is for illustrative purpose, so that it can be down scaled
+for viewfinder image size. The total panorama coverage area box is estimated
+by the number of images for capturing and the overlapping area size. </p> <p>The
+code snippets below shows the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> tracking. </p> <codeblock id="GUID-73381F9D-53D9-505A-888D-464A83B0A352" xml:space="preserve">
+
+    _LIT(KFileOutput, "c:\\ICLExample\\viewfinder%d.mbm");
+    _LIT(KFileCapturedImage, "c:\\ICLExample\\pancapture%d.jpg");
+    TInt i = 0;
+
+    TSize imageSize(1200,1000);
+ CFbsBitmap* bmp = new (ELeave) CFbsBitmap;
+ CleanupStack::PushL(bmp);
+
+    // get 1st viewfinder image from camera into bmp (detail excluded)
+             TSize bmpSize = bmp-&gt;SizeInPixels();
+
+       CPanoramaTransform* panTrans = CPanoramaTransform::NewL();//create panorama transoform
+       CleanupStack::PushL(panTrans);
+
+       CVFTracker* vfTracker = CVFTracker::NewL(); //create VFTracker and load the plugin
+       CleanupStack::PushL(vfTracker);
+        
+       vfTracker-&gt;InitializeL(bmpSize); //Create VFTracker and set size
+
+       CImagePanorama* panImage = CImagePanorama::NewL(); //create CImagePanorama object
+       CleanupStack::PushL(panImage);
+        
+       TDirection direction = EPanoramaDirectionRight; //assign direction
+        
+    // Lens parameters or internal camera characteristics should be available for the 
+    // specific camera module in use. Here we use default values.
+       TPanoramaLens lens;
+       panImage-&gt;InitializeL(imageSize, lens, direction); //initialise size, lens, direction and create panorama engine
+
+    // get the first captured image from the camera as a starting point - its name is given in capturedFileName
+       TFileName capturedFileName;
+    capturedFileName.Format(KFileCapturedImage(),i);
+       panImage-&gt;AddFileL(capturedFileName, *panTrans); //add the captured image
+
+    do 
+        {
+        // give the next camera viewfinder image to the tracker    (details ommitted)
+           vfTracker-&gt;RegisterImageL(*bmp, *panTrans); // register viewfinder image
+        
+        // check if we have a good overlap with the previous image
+           if(vfTracker-&gt;IsTimeToCapture(direction, KPanoramaDefaultOverlap)) 
+              {
+              // capture the next image from the camera (details ommitted)
+              capturedFileName.Format(KFileCapturedImage(),i);
+            
+                 panImage-&gt;AddFileL(capturedFileName, *panTrans); //add the captured image
+                 vfTracker-&gt;Reset(); //reset the VFTracker object
+              }         
+        if ( err != KErrNone )  // some termination condition usually a signal from user
+            {
+            // no more viewfinder images
+            break;
+            }
+        }
+    while (1);    
+    panImage-&gt;RenderL(KTestVFTOutputFileName); // render the stitched image
+    CleanupStack::PopAndDestroy(4,bmp); //panTrans, vfTracker, panImage, bmp
+</codeblock> <p>The <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> is passed each viewfinder
+images which it checks and determines whether it is right time to capture
+the next image. In return it provides translation information <codeph>CPanoramaTransform::GetTranslation()</codeph> which
+indicates the shift of the current viewfinder image. </p> <p>The extracted
+information is used to draw the blue rectangle on the screen. If it is time
+to capture, then it triggers the capturing function and restarts the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> again
+for next image. </p> <p> <b>Note:</b> The box representation is used in the
+UI, to help you to take better panorama images. In addition a vibration effect
+can be used to provide additional feedback on when to capture an image. For
+example, when you sweep the mobile phone, it is in tracking mode so it vibrates.
+When the mobile phone is ready to capture, the vibration stops to let you
+know that it must be static for capturing an accurate second image. Then when
+it vibrates again, you must rotate the mobile and until it stop. </p> </li>
+<li id="GUID-C7848E42-74B4-56D2-BB7B-2F20A4D30D32"><p> <b>User interface updating
+details </b>  </p> <p>The UI design detail is shown in step by step process.
+They are as follows: </p> <ul>
+<li id="GUID-99D23225-ECF9-5A34-ADAA-4E0A2326D768"><p>The total panorama coverage
+area is divided into four different image areas: </p> <fig id="GUID-0808E657-6313-510C-9EB6-F4D49722229B">
+<image href="GUID-023D30F0-C1E8-5E09-92AD-C5A7963DCF70_d0e304438_href.jpg" placement="inline"/>
+</fig> </li>
+<li id="GUID-D06A8B59-81EE-5420-A3AE-FB036B7CE3F4"><p>When you choose to capture
+a panorama image the following steps are performed. The first image is captured
+at position 0. The UI looks as follows: </p> <fig id="GUID-A17F50EC-3241-56CA-B96A-59515EAF161B">
+<image href="GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e304448_href.jpg" placement="inline"/>
+</fig> </li>
+<li id="GUID-BF4A2D67-EF8D-5F72-B2C2-9DC79E319023"><p>When you rotate the
+mobile phone clockwise, the blue box moves to the right using the translation
+information from <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform</apiname></xref>. At the same time the
+vibrator is set on to give direct feedback for the tracking process. When
+the blue box and the grey box (which represent the position to capture the
+next image) coincide, the blue box turns into a filled blue box and the vibrator
+stops. You then known that the next image is captured. At this moment the
+camera must be steady. </p> <p>After second image is captured the blue box
+is moving again and vibrator is set-on. The UI looks as follows: </p> <fig id="GUID-C6E583BB-EE47-52EE-BBFB-D7EE37156C12">
+<image href="GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e304465_href.jpg" placement="inline"/>
+</fig> <p>Again, you rotate the mobile clockwise until the two boxes coincide
+and vibrator stops; third image then captured. After this, the UI looks as
+follows: </p> <fig id="GUID-FD9D81DA-E675-5C9C-BA6E-4E7DCE6F46D9">
+<image href="GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e304473_href.jpg" placement="inline"/>
+</fig> <p>You rotate the mobile phone until the boxes coincide and the fourth
+(last) image is captured. </p> <p> <b>Note:</b> If the mobile phone rotation
+deviates from chosen (clockwise) direction or translates up and down, the
+blue box indicates this, and you must correct the mobile phone for the wrong
+movement. </p> <p>At this point the stitched image can be saved or you can
+reset the camera, to create another panorama image: </p> <fig id="GUID-1A527BEA-0C50-5910-9525-75336C02B2C9">
+<image href="GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e304490_href.jpg" placement="inline"/>
+</fig> </li>
+</ul> </li>
+</ol> <p><b>Camera
+calibration </b> </p> <p>In order to produce good panorama images, the internal
+characteristics of the camera is calibrated by the <xref href="GUID-E361A378-76EB-36C9-A949-A5D31D4D1C4C.dita"><apiname>TPanoramaLens()</apiname></xref>.
+The lens parameter such as the distance, the focal length, the principal point,
+the skew, the width and the height are called the intrinsic parameters. </p> <p>The
+camera module supplier should be able to provide this information or there
+are a number of tools to get the camera parameters. A free tool that can be
+used is the calibration functions in <xref href="http://en.wikipedia.org/wiki/Opencv" scope="external">OpenCV</xref>. Typically these tools need an input of images
+of a special reference pattern, for example a checker board like grid, photographed
+from many directions. From that the tools automatically generate all the desired
+lens parameters. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,98 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC" xml:lang="en"><title>Receiving
-Channel Data based on Conditions</title><shortdesc>Conditional listening enables you to receive sensor data feeds
-based on a specific condition. For example, you can choose to receive sensor
-feeds that are only movement specific.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-A4F41A1D-D093-418E-BA65-30C36DA0B0DA">       <p>Before listening
-for channel data, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
-the sensor channel</xref>.</p>      </prereq>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-10-1-3-2">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-10-1-3-2-1"><cmd>Create channel condition
-items using <parmname>CSensrvChannelCondition</parmname> constructor. These
-conditions can be used to filter the sensor data feeds.</cmd>
-<stepxmp><codeblock xml:space="preserve">//Comparison values needed for condition
-...
-TInt firstNumber=45;
-HBufC8 *firstBufNumber=NULL;
-InetProtTextUtils::ConvertIntToDescriptorL(firstNumber,firstBufNumber);
-CleanupStack::PushL(firstBufNumber);
-
-TInt secondNumber=150;
-HBufC8 *secondBufNumber=NULL;
-InetProtTextUtils::ConvertIntToDescriptorL(secondNumber,secondBufNumber);
-CleanupStack::PushL(secondBufNumber);
-
-//Creates a SingleLimit Condition with a GreaterThan operator
-CSensrvChannelCondition *firstCondition = CSensrvChannelCondition::NewL(ESensrvSingleLimitCondition,ESensrvOperatorGreaterThan,1,*firstBufNumber);
-
-//Creates a SingleLimit Condition with a LessThan operator
-CSensrvChannelCondition *secondCondition = CSensrvChannelCondition::NewL(ESensrvSingleLimitCondition,ESensrvOperatorLessThan,2,*secondBufNumber);</codeblock></stepxmp>
-</step>
-<step id="GUID-A94F1F87-9CD4-45E9-9FDA-B53E26C8F92D"><cmd>Create a channel
-condition set using <parmname>CSensrvChannelConditionSet</parmname> constructor.
-Add the condition items to the condition set using the <xref href="GUID-AF4BAE05-7111-3DF7-964D-C8A49D8F3D08.dita#GUID-AF4BAE05-7111-3DF7-964D-C8A49D8F3D08/GUID-84740BEB-2E6E-38E6-822B-9F6E4A55DF7D"><apiname>CSensrvChannelConditionSet::AddConditionL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">//Creates a ConditionSet with ConditionType OR 
-    CSensrvChannelConditionSet *ConditionSet=CSensrvChannelConditionSet::NewLC(ESensrvAndConditionSet);
-    
-    //Add channel1 and channel2 to conditonset
-    ConditionSet-&gt;AddChannelConditionL(firstCondition);
-    ConditionSet-&gt;AddChannelConditionL(secondCondition);</codeblock></stepxmp>
-</step>
-<step id="GUID-E51A9E16-67C8-43AB-BBEF-99411A3EEE0F"><cmd>Add the condition
-set to the required channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-006A659E-72F1-3D5D-8476-952619E3BA2F"><apiname>CSensrvChannel::AddConditionL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">CSensrvChannel* channel;
-channel-&gt;AddConditionL(*ConditionSet);   
-</codeblock></stepxmp>
-</step>
-<step id="GUID-47EED068-A9C7-4DCF-AF03-3803CECAE7C8"><cmd>Create a condition
-listener implementation for the <parmname>MSensrvChannelConditionListener</parmname> interface,
-which listens for sensor data feeds based on <parmname>CSensrvChannelConditionSet</parmname>.</cmd>
-<stepxmp><codeblock xml:space="preserve">class ConditionListener:public MSensrvChannelConditionListener
-    {
-    public:
-        void ConditionMet(CSensrvChannel &amp;aChannel, CSensrvChannelConditionSet &amp;aChannelConditionSet, TDesC8 &amp;avalue)
-        {
-        ...
-         //Implementation
-        }
-    void ConditionError(CSensrvChannel &amp;aChannel, TSensrvErrorSeverity aError)
-        {
-        ...
-         //Implementation
-        }
-    void GetChannelConditionListenerInterfaceL(TUid aInterfaceUid, TAny *&amp;aInterface)
-        {
-        ...
-         //Implementation
-        }
-    };</codeblock></stepxmp>
-</step>
-<step id="GUID-196F04E0-2A98-4479-8165-9A803823E6AD"><cmd>Start conditional
-listening by passing an instance of the condition listener implementation,
-using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4CA77329-E958-3568-B34D-1086AA34A334"><apiname>CSensrvChannel::StartConditionListeningL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">//Instance of the condition listener implementation
-ConditionListener conditionListener;   
-...
-channel-&gt;StartConditionListeningL(conditionListener,1,1);
-...</codeblock></stepxmp>
-</step>
-<step id="GUID-93BD0200-C12B-4AB1-9D23-F11AC54D39E6"><cmd>Once you get the
-required sensor data feeds from the sensor channel based on the conditions
-set, you can stop conditional listening using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-78F64EA2-2901-3304-B4AE-B865D18772E8"><apiname>CSensrvChannel::StopConditionListening()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">channel-&gt;StopConditionListening();
-</codeblock></stepxmp>
-</step>
-</steps>
-<postreq id="GUID-40C4B810-AD44-4A28-8C29-8A08E914970D"><p>End the session
-with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC" xml:lang="en"><title>Receiving
+Channel Data based on Conditions</title><shortdesc>Conditional listening enables you to receive sensor data feeds
+based on a specific condition. For example, you can choose to receive sensor
+feeds that are only movement specific.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-A4F41A1D-D093-418E-BA65-30C36DA0B0DA">       <p>Before listening
+for channel data, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
+the sensor channel</xref>.</p>      </prereq>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-10-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-10-1-3-2-1"><cmd>Create channel condition
+items using <parmname>CSensrvChannelCondition</parmname> constructor. These
+conditions can be used to filter the sensor data feeds.</cmd>
+<stepxmp><codeblock xml:space="preserve">//Comparison values needed for condition
+...
+TInt firstNumber=45;
+HBufC8 *firstBufNumber=NULL;
+InetProtTextUtils::ConvertIntToDescriptorL(firstNumber,firstBufNumber);
+CleanupStack::PushL(firstBufNumber);
+
+TInt secondNumber=150;
+HBufC8 *secondBufNumber=NULL;
+InetProtTextUtils::ConvertIntToDescriptorL(secondNumber,secondBufNumber);
+CleanupStack::PushL(secondBufNumber);
+
+//Creates a SingleLimit Condition with a GreaterThan operator
+CSensrvChannelCondition *firstCondition = CSensrvChannelCondition::NewL(ESensrvSingleLimitCondition,ESensrvOperatorGreaterThan,1,*firstBufNumber);
+
+//Creates a SingleLimit Condition with a LessThan operator
+CSensrvChannelCondition *secondCondition = CSensrvChannelCondition::NewL(ESensrvSingleLimitCondition,ESensrvOperatorLessThan,2,*secondBufNumber);</codeblock></stepxmp>
+</step>
+<step id="GUID-A94F1F87-9CD4-45E9-9FDA-B53E26C8F92D"><cmd>Create a channel
+condition set using <parmname>CSensrvChannelConditionSet</parmname> constructor.
+Add the condition items to the condition set using the <xref href="GUID-AF4BAE05-7111-3DF7-964D-C8A49D8F3D08.dita#GUID-AF4BAE05-7111-3DF7-964D-C8A49D8F3D08/GUID-84740BEB-2E6E-38E6-822B-9F6E4A55DF7D"><apiname>CSensrvChannelConditionSet::AddConditionL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">//Creates a ConditionSet with ConditionType OR 
+    CSensrvChannelConditionSet *ConditionSet=CSensrvChannelConditionSet::NewLC(ESensrvAndConditionSet);
+    
+    //Add channel1 and channel2 to conditonset
+    ConditionSet-&gt;AddChannelConditionL(firstCondition);
+    ConditionSet-&gt;AddChannelConditionL(secondCondition);</codeblock></stepxmp>
+</step>
+<step id="GUID-E51A9E16-67C8-43AB-BBEF-99411A3EEE0F"><cmd>Add the condition
+set to the required channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-006A659E-72F1-3D5D-8476-952619E3BA2F"><apiname>CSensrvChannel::AddConditionL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">CSensrvChannel* channel;
+channel-&gt;AddConditionL(*ConditionSet);   
+</codeblock></stepxmp>
+</step>
+<step id="GUID-47EED068-A9C7-4DCF-AF03-3803CECAE7C8"><cmd>Create a condition
+listener implementation for the <parmname>MSensrvChannelConditionListener</parmname> interface,
+which listens for sensor data feeds based on <parmname>CSensrvChannelConditionSet</parmname>.</cmd>
+<stepxmp><codeblock xml:space="preserve">class ConditionListener:public MSensrvChannelConditionListener
+    {
+    public:
+        void ConditionMet(CSensrvChannel &amp;aChannel, CSensrvChannelConditionSet &amp;aChannelConditionSet, TDesC8 &amp;avalue)
+        {
+        ...
+         //Implementation
+        }
+    void ConditionError(CSensrvChannel &amp;aChannel, TSensrvErrorSeverity aError)
+        {
+        ...
+         //Implementation
+        }
+    void GetChannelConditionListenerInterfaceL(TUid aInterfaceUid, TAny *&amp;aInterface)
+        {
+        ...
+         //Implementation
+        }
+    };</codeblock></stepxmp>
+</step>
+<step id="GUID-196F04E0-2A98-4479-8165-9A803823E6AD"><cmd>Start conditional
+listening by passing an instance of the condition listener implementation,
+using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4CA77329-E958-3568-B34D-1086AA34A334"><apiname>CSensrvChannel::StartConditionListeningL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">//Instance of the condition listener implementation
+ConditionListener conditionListener;   
+...
+channel-&gt;StartConditionListeningL(conditionListener,1,1);
+...</codeblock></stepxmp>
+</step>
+<step id="GUID-93BD0200-C12B-4AB1-9D23-F11AC54D39E6"><cmd>Once you get the
+required sensor data feeds from the sensor channel based on the conditions
+set, you can stop conditional listening using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-78F64EA2-2901-3304-B4AE-B865D18772E8"><apiname>CSensrvChannel::StopConditionListening()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">channel-&gt;StopConditionListening();
+</codeblock></stepxmp>
+</step>
+</steps>
+<postreq id="GUID-40C4B810-AD44-4A28-8C29-8A08E914970D"><p>End the session
+with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC" xml:lang="en"><title>Modifying
-DOM Tree</title><shortdesc>This topic explains how to create or modify a DOM tree by adding
-nodes and changing their contents. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq><p>Before you start, you must: </p> <ul>
-<li id="GUID-AB0E481B-349C-5C60-ACB7-06EBA299E149"><p>understand the concept
-of <xref href="http://www.w3.org/DOM/" scope="external">Document Object Model
-(DOM)</xref>  </p> </li>
-<li id="GUID-79A66EA2-4F81-57E9-A4DB-E64B5405B578"><p>understand the structure
-and classes of the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML
-DOM Engine </xref> component </p> </li>
-</ul> </prereq>
-<context><p> </p> <p>The following diagram shows a sequence of calls that
-create a DOM tree from an empty document. There are many functions in the
-DOM Engine API that add nodes to a tree: refer to the reference documentation
-of the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement</apiname></xref> class for a comprehensive
-list. </p> <fig id="GUID-31E4FB65-7C28-513B-B8C0-5B057DC64A50">
-<title>              Creating a DOM tree            </title>
-<image href="GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431518_href.png" placement="inline"/>
-</fig> </context>
-<steps id="GUID-DEA52036-E11C-5913-984B-663DD68D02DB">
-<step id="GUID-E65A2FF6-2918-540B-97DB-C07500A6CB08"><cmd/>
-<info>Create an instance of <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument</apiname></xref>. </info>
-<stepxmp><codeblock id="GUID-B36F5C00-6974-54EC-939A-34BF05F5C04A" xml:space="preserve">RXmlEngDocument myDoc;</codeblock> </stepxmp>
-</step>
-<step id="GUID-858AD52F-0526-5DCC-B424-666D88F19E8E"><cmd/>
-<info>Set the root node with the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument::CreateDocumentElementL()</apiname></xref> function. </info>
-<stepxmp><codeblock id="GUID-E890E160-294C-5218-B8A8-41EB7E7FE8A7" xml:space="preserve">_LIT8( KRootName, "playlist" );
-TXmlEngElement root = myDoc-&gt;CreateDocumentElementL( KRootName );</codeblock> </stepxmp>
-</step>
-<step id="GUID-25D56F38-012F-5169-9925-07A6A7BBAC31"><cmd/>
-<info>Add child nodes and attributes by calling the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::AddNewElementL()</apiname></xref> and <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::AddNewAttributeL()</apiname></xref> functions. </info>
-<stepxmp><codeblock id="GUID-5CCB071C-7042-5F07-A5DE-29C2D5CD01D6" xml:space="preserve">_LIT8( KChildName, "song" );
-_LIT8( KAttrName, "filename" );
-
-for( TInt i=1;i&lt;6;i++ ) 
-    {
-          TXmlEngElement tempElement = root.AddNewElementL( KChildName );
-          TBuf8&lt;12&gt; value( _L8( "music0" ) );
-          value.AppendNum( i );
-          value.Append( _L8( ".mp3" ) );
-          tempElement.AddNewAttributeL( KAttrName, value );
-    }</codeblock> </stepxmp>
-</step>
-<step id="GUID-559B34A9-4A69-57E3-AF2A-D3E7F81728B0"><cmd/>
-<info>Swap the first two song elements by calling the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::MoveAfterSibling()</apiname></xref> function. </info>
-<stepxmp><codeblock id="GUID-6B4EDCE6-A688-5A0E-B4D9-9CF2ABD8DE5F" xml:space="preserve">TXmlEngNode swap = root.FirstChild();
-swap.MoveAfterSibling( swap.NextSibling() );</codeblock> </stepxmp>
-</step>
-<step id="GUID-D648ADF3-10A5-5FDC-BF2C-D08B095E5FE6"><cmd/>
-<info>If you want to save the DOM tree into a file, call the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePushL()</apiname></xref> method
-first. </info>
-<info>You must call the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePushL()</apiname></xref> method
-before parsing or saving an XML file, and the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePopAndClose()</apiname></xref> method
-after these operations. </info>
-</step>
-</steps>
-<result><p>The result is a DOM tree corresponding to the following XML structure: </p> <codeblock id="GUID-E90DD401-DDA6-5A3F-9A26-8C5CBE6BE64E" xml:space="preserve">
- &lt;playlist&gt;
-     &lt;song filename = "music02.mp3"/&gt;
-     &lt;song filename = "music01.mp3"/&gt;
-     &lt;song filename = "music03.mp3"/&gt;
-     &lt;song filename = "music04.mp3"/&gt;
-     &lt;song filename = "music05.mp3"/&gt;
- &lt;/playlist&gt;
-</codeblock> </result>
-</taskbody><related-links>
-<link href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita"><linktext>Parsing XML
-DOM</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-61056CE2-97BF-5D32-8AC5-E625FBC7D0EC" xml:lang="en"><title>Modifying
+DOM Tree</title><shortdesc>This topic explains how to create or modify a DOM tree by adding
+nodes and changing their contents. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq><p>Before you start, you must: </p> <ul>
+<li id="GUID-AB0E481B-349C-5C60-ACB7-06EBA299E149"><p>understand the concept
+of <xref href="http://www.w3.org/DOM/" scope="external">Document Object Model
+(DOM)</xref>  </p> </li>
+<li id="GUID-79A66EA2-4F81-57E9-A4DB-E64B5405B578"><p>understand the structure
+and classes of the <xref href="GUID-5ACFA8E4-3C4B-5851-A43E-9FA72D0B8403.dita">XML
+DOM Engine </xref> component </p> </li>
+</ul> </prereq>
+<context><p> </p> <p>The following diagram shows a sequence of calls that
+create a DOM tree from an empty document. There are many functions in the
+DOM Engine API that add nodes to a tree: refer to the reference documentation
+of the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement</apiname></xref> class for a comprehensive
+list. </p> <fig id="GUID-31E4FB65-7C28-513B-B8C0-5B057DC64A50">
+<title>              Creating a DOM tree            </title>
+<image href="GUID-3E0E2E54-CD8A-5BAF-A87B-BF51FD8890D6_d0e431356_href.png" placement="inline"/>
+</fig> </context>
+<steps id="GUID-DEA52036-E11C-5913-984B-663DD68D02DB">
+<step id="GUID-E65A2FF6-2918-540B-97DB-C07500A6CB08"><cmd/>
+<info>Create an instance of <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument</apiname></xref>. </info>
+<stepxmp><codeblock id="GUID-B36F5C00-6974-54EC-939A-34BF05F5C04A" xml:space="preserve">RXmlEngDocument myDoc;</codeblock> </stepxmp>
+</step>
+<step id="GUID-858AD52F-0526-5DCC-B424-666D88F19E8E"><cmd/>
+<info>Set the root node with the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>RXmlEngDocument::CreateDocumentElementL()</apiname></xref> function. </info>
+<stepxmp><codeblock id="GUID-E890E160-294C-5218-B8A8-41EB7E7FE8A7" xml:space="preserve">_LIT8( KRootName, "playlist" );
+TXmlEngElement root = myDoc-&gt;CreateDocumentElementL( KRootName );</codeblock> </stepxmp>
+</step>
+<step id="GUID-25D56F38-012F-5169-9925-07A6A7BBAC31"><cmd/>
+<info>Add child nodes and attributes by calling the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::AddNewElementL()</apiname></xref> and <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::AddNewAttributeL()</apiname></xref> functions. </info>
+<stepxmp><codeblock id="GUID-5CCB071C-7042-5F07-A5DE-29C2D5CD01D6" xml:space="preserve">_LIT8( KChildName, "song" );
+_LIT8( KAttrName, "filename" );
+
+for( TInt i=1;i&lt;6;i++ ) 
+    {
+          TXmlEngElement tempElement = root.AddNewElementL( KChildName );
+          TBuf8&lt;12&gt; value( _L8( "music0" ) );
+          value.AppendNum( i );
+          value.Append( _L8( ".mp3" ) );
+          tempElement.AddNewAttributeL( KAttrName, value );
+    }</codeblock> </stepxmp>
+</step>
+<step id="GUID-559B34A9-4A69-57E3-AF2A-D3E7F81728B0"><cmd/>
+<info>Swap the first two song elements by calling the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>TXmlEngElement::MoveAfterSibling()</apiname></xref> function. </info>
+<stepxmp><codeblock id="GUID-6B4EDCE6-A688-5A0E-B4D9-9CF2ABD8DE5F" xml:space="preserve">TXmlEngNode swap = root.FirstChild();
+swap.MoveAfterSibling( swap.NextSibling() );</codeblock> </stepxmp>
+</step>
+<step id="GUID-D648ADF3-10A5-5FDC-BF2C-D08B095E5FE6"><cmd/>
+<info>If you want to save the DOM tree into a file, call the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePushL()</apiname></xref> method
+first. </info>
+<info>You must call the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePushL()</apiname></xref> method
+before parsing or saving an XML file, and the <xref href="GUID-5748D958-9480-3358-A399-6B92293B86D9.dita"><apiname>XmlEnginePopAndClose()</apiname></xref> method
+after these operations. </info>
+</step>
+</steps>
+<result><p>The result is a DOM tree corresponding to the following XML structure: </p> <codeblock id="GUID-E90DD401-DDA6-5A3F-9A26-8C5CBE6BE64E" xml:space="preserve">
+ &lt;playlist&gt;
+     &lt;song filename = "music02.mp3"/&gt;
+     &lt;song filename = "music01.mp3"/&gt;
+     &lt;song filename = "music03.mp3"/&gt;
+     &lt;song filename = "music04.mp3"/&gt;
+     &lt;song filename = "music05.mp3"/&gt;
+ &lt;/playlist&gt;
+</codeblock> </result>
+</taskbody><related-links>
+<link href="GUID-C5C30218-311C-58D9-A990-3F95642F7517.dita"><linktext>Parsing XML
+DOM</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6146A5BB-1AC1-48D4-9EB8-7FA4EC35BFF2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6146A5BB-1AC1-48D4-9EB8-7FA4EC35BFF2" xml:lang="en"><title>Typical
-full QWERTY keyboard functions</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The default short key press events of a QWERTY keyboard are listed in the
-following table:</p>
-<table id="GUID-66BD6DF8-3E0B-4953-A740-59654AECE592"><title>Default short
-key press event on full QWERTY keyboard</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Character keys</p></entry>
-<entry><p>Adds a character.</p></entry>
-</row>
-<row>
-<entry><p>Backspace</p></entry>
-<entry><p>Moves the cursor one step back, clearing any character or selected
-text in that position.</p></entry>
-</row>
-<row>
-<entry><p>Enter</p></entry>
-<entry><p>Adds a carriage return where possible (a new line). Elsewhere the
-default behavior is similar with the Selection key.</p></entry>
-</row>
-<row>
-<entry><p>Space</p></entry>
-<entry><p>Adds a space.</p></entry>
-</row>
-<row>
-<entry><p>Chr</p></entry>
-<entry><p>Opens the special characters table.</p></entry>
-</row>
-<row>
-<entry><p>Shift</p></entry>
-<entry><p>Activates the Shift character mode for the character that is pressed
-after Shift. For example, consecutive presses of Shift and the character 
-a' produce a capital  A' character.</p></entry>
-</row>
-<row>
-<entry><p>Scroll keys</p></entry>
-<entry><p>Moves the cursor or focus to the pressed direction.</p></entry>
-</row>
-<row>
-<entry><p>Fn key (optional key)</p></entry>
-<entry><p>Activates Fn-mode character input for the next following key press.Two
-presses activate Fn mode (locked) until single press deactivates the mode.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>The default long key press events of a full QWERTY keyboard are listed
-in the following table:</p>
-<table id="GUID-8D73725D-308C-489F-93FD-52A4C2C37FB6"><title>Default long
-key press events on full QWERTY keyboard</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Character keys</p></entry>
-<entry><p>Adds a character with key repeat.</p></entry>
-</row>
-<row>
-<entry><p>Backspace</p></entry>
-<entry><p>Moves the cursor back, clearing the previous character with key
-repeat.</p></entry>
-</row>
-<row>
-<entry><p>Enter</p></entry>
-<entry><p>Adds a carriage return where possible (a new line) with key repeat.</p></entry>
-</row>
-<row>
-<entry><p>Space</p></entry>
-<entry><p>Adds a space with key repeat.</p></entry>
-</row>
-<row>
-<entry><p>Chr</p></entry>
-<entry><p>Accented characters can be entered by holding down the Chr key and
-pressing a character key consecutively.</p></entry>
-</row>
-<row>
-<entry><p>Scroll keys</p></entry>
-<entry><p>Moves the cursor or focus to the pressed direction with key repeat.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>The key combinations for full QWERTY keyboard are listed in the following
-table:</p>
-<table id="GUID-23D4787A-8FE2-494E-96D2-2FB69F5681E8"><title>Key combinations
-on full QWERTY keyboard</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Shift + a character key</p></entry>
-<entry><p>Enters the Shift character of that particular character key. Can
-be used either as two consecutive short presses or simultaneous presses.</p></entry>
-</row>
-<row>
-<entry><p>Shift + scroll keys</p></entry>
-<entry><p>Selects text from the present cursor position to the direction of
-the selected scroll key. Simultaneous pressing is required.</p></entry>
-</row>
-<row>
-<entry><p>Chr + a character key</p></entry>
-<entry><p>Accented characters can be entered by holding down the Chr key and
-then pressing a character key repeatedly.</p></entry>
-</row>
-<row>
-<entry><p>"Dead" keys</p></entry>
-<entry><p>Some keys in certain localized keyboards that produce a visible
-outcome in editing only after another key is pressed right afterwards. For
-example, accents over characters.</p></entry>
-</row>
-<row>
-<entry><p>Ctrl +  x'</p></entry>
-<entry><p>Cuts the text in editors (for example, text that was
-selected with Shift + a scroll key).</p></entry>
-</row>
-<row>
-<entry><p>Ctrl +  c'</p></entry>
-<entry><p>Copies the text in editors (for example, text that was selected
-with Shift + a scroll key).</p></entry>
-</row>
-<row>
-<entry><p>Ctrl +  v'</p></entry>
-<entry><p>Pastes text in editors (for example, text that was selected with
-Shift + a scroll key).</p></entry>
-</row>
-<row>
-<entry><p>Fn + a character key</p></entry>
-<entry><p>Activates Fn-mode for that key press.</p></entry>
-</row>
-<row>
-<entry><p>Fn + space</p></entry>
-<entry><p>Opens editing menu.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6163197B-7983-5FB7-9B92-02E490A900FB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6163197B-7983-5FB7-9B92-02E490A900FB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6163197B-7983-5FB7-9B92-02E490A900FB" xml:lang="en"><title>How to
-construct a header</title><shortdesc>This document describes how to create a header for a doubly linked
-list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In order to construct a header, two important pieces of information are
-needed:</p>
-<ul>
-<li id="GUID-2E721D77-E010-5211-BABE-94578AECEEE4"><p>the <i>type</i> of object
-which forms the elements.</p> </li>
-<li id="GUID-71FC8FBF-803F-55BC-AC52-D672B1DA36BA"><p>the <i>offset</i> of
-the link object from the start of the element.</p> </li>
-</ul>
-<p>To create a header for a doubly linked list of <codeph>CMyClass</codeph> elements,
-defined as:</p>
-<codeblock id="GUID-D995F2F7-6A38-5EE3-9210-1302E1662759" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TDblQueLink iDlink;
-    ...
-    };</codeblock>
-<p>construct a <codeph>TDblQue</codeph> as follows:</p>
-<codeblock id="GUID-D13C33D2-EE7E-5915-92E2-F3EC5C772B4D" xml:space="preserve">TDblQue&lt;CMyClass&gt; queHeader(_FOFF(CMyClass,iDlink));</codeblock>
-<p>The <codeph>TDblQue</codeph> class takes a class template parameter which
-defines the type of object which is to form an element of the list. In this
-example, objects of type <codeph>CMyClass</codeph> form the elements of the
-list.</p>
-<p>The <codeph>_FOFF</codeph> macro (i.e. the "field offset" macro) calculates
-the offset of the component link object within the element. In this example,
-the required value is the offset of the <codeph>iDlink</codeph> data member
-from the start of <codeph>CMyClass</codeph>. </p>
-<fig id="GUID-9C102C34-EFFA-530A-AA1E-C6AE08FDFA37">
-<title/>
-<image href="GUID-29E7942D-A00D-5771-9782-59260965C687_d0e217648_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6163197B-7983-5FB7-9B92-02E490A900FB" xml:lang="en"><title>How to
+construct a header</title><shortdesc>This document describes how to create a header for a doubly linked
+list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In order to construct a header, two important pieces of information are
+needed:</p>
+<ul>
+<li id="GUID-2E721D77-E010-5211-BABE-94578AECEEE4"><p>the <i>type</i> of object
+which forms the elements.</p> </li>
+<li id="GUID-71FC8FBF-803F-55BC-AC52-D672B1DA36BA"><p>the <i>offset</i> of
+the link object from the start of the element.</p> </li>
+</ul>
+<p>To create a header for a doubly linked list of <codeph>CMyClass</codeph> elements,
+defined as:</p>
+<codeblock id="GUID-D995F2F7-6A38-5EE3-9210-1302E1662759" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TDblQueLink iDlink;
+    ...
+    };</codeblock>
+<p>construct a <codeph>TDblQue</codeph> as follows:</p>
+<codeblock id="GUID-D13C33D2-EE7E-5915-92E2-F3EC5C772B4D" xml:space="preserve">TDblQue&lt;CMyClass&gt; queHeader(_FOFF(CMyClass,iDlink));</codeblock>
+<p>The <codeph>TDblQue</codeph> class takes a class template parameter which
+defines the type of object which is to form an element of the list. In this
+example, objects of type <codeph>CMyClass</codeph> form the elements of the
+list.</p>
+<p>The <codeph>_FOFF</codeph> macro (i.e. the "field offset" macro) calculates
+the offset of the component link object within the element. In this example,
+the required value is the offset of the <codeph>iDlink</codeph> data member
+from the start of <codeph>CMyClass</codeph>. </p>
+<fig id="GUID-9C102C34-EFFA-530A-AA1E-C6AE08FDFA37">
+<title/>
+<image href="GUID-29E7942D-A00D-5771-9782-59260965C687_d0e213911_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6" xml:lang="en"><title>View
-Server Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The UI Control Framework <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita">(CONE)</xref> provides <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> that
-provides an interface to the View Server, which enables seamless switching
-between different views across various applications. </p>
-
-<section><title>Introduction</title> <p>The UI framework built on Cone/uikon
-can make a choice to use the View Server. </p> <p>The view architecture allows
-applications to make and receive requests to show a particular view of their
-data. It allows applications to have integration between their user interfaces.
-This particularly allows the user to navigate through the UI on the basis
-of the task they are working on, rather than perceiving separate applications.
-For example, an application provides a view of a given Contact, any other
-application may display a contact using that view. </p> <p>Views are UI controls
-that are derived from the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> abstract view interface
-and display application data. Typically views are top-level window-owning
-controls. Each view is given a unique identifier of type <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref>. <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref> is
-a combination of the UID of the application and the UID of the view within
-the application. An application participating in the view switching must complete
-the steps given in the procedure section.</p> </section>
-<section><title>Procedure</title> <ol id="GUID-5DC514F9-9040-5D61-BC2C-FE04BA11B51C">
-<li id="GUID-1696E5F0-DB4A-5F40-B6E8-810FA93DC5A5"><p><xref href="GUID-AC6FCBB0-E4FD-4D30-B000-1F652B2EE96A.dita">Create
-an instance of <apiname>CCoeAppUi</apiname></xref> </p> </li>
-<li id="GUID-441C5876-D063-568F-A814-B85464DBCE27"><p><xref href="GUID-13D2B45C-3A2A-497A-8D6A-87BE34D1DE69.dita">Implement
-the observer functions to get notification on events, if required.</xref> </p> </li>
-<li id="GUID-32128AF4-8773-5105-B5C0-490668AB08C4"><p><xref href="GUID-A399508A-DE6A-490D-9BFB-4FCF56FF9D4C.dita">Derive
-a class from the <apiname>MCoeView</apiname> class.</xref> </p> </li>
-<li id="GUID-C95EBECB-3503-5BB6-B0CC-8964C76074A8"><p><xref href="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita">Add
-the view to the control stack to receive key events.</xref> </p> </li>
-<li id="GUID-9996BF57-3220-5D74-B7A1-5CD56D63F905"><p><xref href="GUID-940E3C48-D0ED-419A-9172-E4856C6CA809.dita">Register
-the view with the View Server. </xref></p> </li>
-<li id="GUID-C571AF24-46FA-517C-A765-1745973FE8DF"><p>Perform one or more
-of the following tasks: </p> <ol id="GUID-A24F5604-C2CF-52DF-BDD4-BF4FDB36325B">
-<li id="GUID-63CFD000-82CB-5842-9AF4-05FA34C0E24C"><p><xref href="GUID-2D6689C2-F17D-48A8-8EC9-3D83BCAA3681.dita">Activate
-a view through the client session.</xref> </p> <p>If the view which has to
-be activated is not registered with the server when an activation request
-arrives, the view server starts the application associated with that view. </p> </li>
-<li id="GUID-18668608-892D-57CF-9619-B5D141E5AA37"><p><xref href="GUID-210A181E-5EB6-4626-9E7E-8761A2272D79.dita">Set
-a view as a default view.</xref> </p> </li>
-<li id="GUID-6A1FBF71-8F52-58C2-AEFA-FC4ED601CDD1"><p><xref href="GUID-4ADDDAFE-0941-4787-B07B-F5B7D8D5B1AA.dita">Deregister
-a view</xref>, if required. </p> </li>
-</ol> </li>
-</ol> </section>
-</conbody><related-links>
-<link href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita"><linktext>View Server
-Overview</linktext></link>
-<link href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita"><linktext>Control Stack</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6167C2F2-BC5B-5B10-BD5D-7702BE4112F6" xml:lang="en"><title>View
+Server Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The UI Control Framework <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita">(CONE)</xref> provides <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> that
+provides an interface to the View Server, which enables seamless switching
+between different views across various applications. </p>
+
+<section><title>Introduction</title> <p>The UI framework built on Cone/uikon
+can make a choice to use the View Server. </p> <p>The view architecture allows
+applications to make and receive requests to show a particular view of their
+data. It allows applications to have integration between their user interfaces.
+This particularly allows the user to navigate through the UI on the basis
+of the task they are working on, rather than perceiving separate applications.
+For example, an application provides a view of a given Contact, any other
+application may display a contact using that view. </p> <p>Views are UI controls
+that are derived from the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> abstract view interface
+and display application data. Typically views are top-level window-owning
+controls. Each view is given a unique identifier of type <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref>. <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref> is
+a combination of the UID of the application and the UID of the view within
+the application. An application participating in the view switching must complete
+the steps given in the procedure section.</p> </section>
+<section><title>Procedure</title> <ol id="GUID-5DC514F9-9040-5D61-BC2C-FE04BA11B51C">
+<li id="GUID-1696E5F0-DB4A-5F40-B6E8-810FA93DC5A5"><p><xref href="GUID-AC6FCBB0-E4FD-4D30-B000-1F652B2EE96A.dita">Create
+an instance of <apiname>CCoeAppUi</apiname></xref> </p> </li>
+<li id="GUID-441C5876-D063-568F-A814-B85464DBCE27"><p><xref href="GUID-13D2B45C-3A2A-497A-8D6A-87BE34D1DE69.dita">Implement
+the observer functions to get notification on events, if required.</xref> </p> </li>
+<li id="GUID-32128AF4-8773-5105-B5C0-490668AB08C4"><p><xref href="GUID-A399508A-DE6A-490D-9BFB-4FCF56FF9D4C.dita">Derive
+a class from the <apiname>MCoeView</apiname> class.</xref> </p> </li>
+<li id="GUID-C95EBECB-3503-5BB6-B0CC-8964C76074A8"><p><xref href="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita">Add
+the view to the control stack to receive key events.</xref> </p> </li>
+<li id="GUID-9996BF57-3220-5D74-B7A1-5CD56D63F905"><p><xref href="GUID-940E3C48-D0ED-419A-9172-E4856C6CA809.dita">Register
+the view with the View Server. </xref></p> </li>
+<li id="GUID-C571AF24-46FA-517C-A765-1745973FE8DF"><p>Perform one or more
+of the following tasks: </p> <ol id="GUID-A24F5604-C2CF-52DF-BDD4-BF4FDB36325B">
+<li id="GUID-63CFD000-82CB-5842-9AF4-05FA34C0E24C"><p><xref href="GUID-2D6689C2-F17D-48A8-8EC9-3D83BCAA3681.dita">Activate
+a view through the client session.</xref> </p> <p>If the view which has to
+be activated is not registered with the server when an activation request
+arrives, the view server starts the application associated with that view. </p> </li>
+<li id="GUID-18668608-892D-57CF-9619-B5D141E5AA37"><p><xref href="GUID-210A181E-5EB6-4626-9E7E-8761A2272D79.dita">Set
+a view as a default view.</xref> </p> </li>
+<li id="GUID-6A1FBF71-8F52-58C2-AEFA-FC4ED601CDD1"><p><xref href="GUID-4ADDDAFE-0941-4787-B07B-F5B7D8D5B1AA.dita">Deregister
+a view</xref>, if required. </p> </li>
+</ol> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita"><linktext>View Server
+Overview</linktext></link>
+<link href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita"><linktext>Control Stack</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-3-1-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-3-1-1-8-1" xml:lang="en"><title>Using UI Graphics
-Utilities (EGUL) and Text Utilities (ETUL)</title><shortdesc>This section explains the Symbian Text Utility components and the
-miscellaneous user interface utility functions relating to fonts, colors and
-drawing. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-6-1-1-4-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492-GENID-1-8-1-6-1-1-4-1-7-1" xml:lang="en"><title>Using UI Graphics
-Utilities (EGUL) and Text Utilities (ETUL)</title><shortdesc>This section explains the Symbian Text Utility components and the
-miscellaneous user interface utility functions relating to fonts, colors and
-drawing. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-61B965D9-B85E-5F40-8D56-1C0FA77D2492" xml:lang="en"><title>Using UI Graphics
+Utilities (EGUL) and Text Utilities (ETUL)</title><shortdesc>This section explains the Symbian Text Utility components and the
+miscellaneous user interface utility functions relating to fonts, colors and
+drawing. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-61BB12AA-7467-5633-8E4C-54D82AFF0F5E-master.jpg has changed
Binary file Symbian3/SDK/Source/GUID-61BB12AA-7467-5633-8E4C-54D82AFF0F5E_d0e185528_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e41032_href.png has changed
Binary file Symbian3/SDK/Source/GUID-61C340D0-9058-45C2-9A90-4AB8E0612872_d0e46589_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e107083_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6262B90B-3F91-517C-B2FA-749C84CE01DE_d0e113621_href.png has changed
Binary file Symbian3/SDK/Source/GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e276648_href.png has changed
Binary file Symbian3/SDK/Source/GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e280334_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e332712_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e338869_href.png has changed
Binary file Symbian3/SDK/Source/GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e4681_href.png has changed
Binary file Symbian3/SDK/Source/GUID-631E27DB-97A7-47E2-8FC1-856198435FFF_d0e5956_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e11012_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e12287_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e306657_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e313051_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e15172_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e45518_href.png has changed
Binary file Symbian3/SDK/Source/GUID-63BB9C30-9103-5900-9FD7-5B45FD78A5D7_d0e51074_href.png has changed
--- a/Symbian3/SDK/Source/GUID-63C60154-2A50-5A39-A188-515A607F498B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-63C60154-2A50-5A39-A188-515A607F498B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-63C60154-2A50-5A39-A188-515A607F498B" xml:lang="en"><title>Array
-of same length elements, flat buffer</title><shortdesc>Describes how elements are organised within the array buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This can be either an <codeph>RArray&lt;class T&gt;</codeph> or a <codeph>CArrayFixFlat&lt;class T&gt;</codeph> object.</p>
-<p>In both arrays, all elements:</p>
-<ul>
-<li id="GUID-9A6138C3-BBB5-5D8E-B0CB-9E51E1B2C59C"><p>have the same length.</p> </li>
-<li id="GUID-A68AD60D-1077-5425-869C-619EDC70F4DF"><p>are physically contiguous
-within a flat array buffer. The length of an element is the size of the template
-class.</p> </li>
-</ul>
-<p>A flat buffer always occupies a single cell allocated from the heap and
-is always extended by the process of reallocation.</p>
-<p>The following diagram illustrates how elements are organised within the
-array buffer:</p>
-<fig id="GUID-7E9AF455-9CC4-5814-A746-36A94585488F">
-<image href="GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e219305_href.png" placement="inline"/>
-</fig>
-<p>This kind of array is suitable for a small number of elements or for a
-moderately large but fixed maximum number of elements. It is not suitable
-for large arrays with a high turnover of elements.</p>
-<p>The <codeph>RArray&lt;class T&gt;</codeph> array has the simpler and
-more efficient implementation but the length of an element is limited to 640
-bytes. This array can also be constructed on te program stack.</p>
-<p>The <codeph>CArrayFixFlat&lt;class T&gt;</codeph> array is more general
-and is allocated on the heap. This class is immediately derived from the abstract
-templated base class <codeph>CArrayFix&lt;class T&gt;</codeph> which is
-itself derived from the abstract non-template base class <codeph>CArrayFixBase</codeph>.
-Its array buffer is implemented using a <codeph>CBufFlat</codeph> object.</p>
-<section id="GUID-AED136DE-81CB-4247-ADF7-283C6061D4D9"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
-Dynamic Buffers </xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-63C60154-2A50-5A39-A188-515A607F498B" xml:lang="en"><title>Array
+of same length elements, flat buffer</title><shortdesc>Describes how elements are organised within the array buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This can be either an <codeph>RArray&lt;class T&gt;</codeph> or a <codeph>CArrayFixFlat&lt;class T&gt;</codeph> object.</p>
+<p>In both arrays, all elements:</p>
+<ul>
+<li id="GUID-9A6138C3-BBB5-5D8E-B0CB-9E51E1B2C59C"><p>have the same length.</p> </li>
+<li id="GUID-A68AD60D-1077-5425-869C-619EDC70F4DF"><p>are physically contiguous
+within a flat array buffer. The length of an element is the size of the template
+class.</p> </li>
+</ul>
+<p>A flat buffer always occupies a single cell allocated from the heap and
+is always extended by the process of reallocation.</p>
+<p>The following diagram illustrates how elements are organised within the
+array buffer:</p>
+<fig id="GUID-7E9AF455-9CC4-5814-A746-36A94585488F">
+<image href="GUID-516D2E22-F5C0-56FE-ABDA-948F01CD50DB_d0e215568_href.png" placement="inline"/>
+</fig>
+<p>This kind of array is suitable for a small number of elements or for a
+moderately large but fixed maximum number of elements. It is not suitable
+for large arrays with a high turnover of elements.</p>
+<p>The <codeph>RArray&lt;class T&gt;</codeph> array has the simpler and
+more efficient implementation but the length of an element is limited to 640
+bytes. This array can also be constructed on te program stack.</p>
+<p>The <codeph>CArrayFixFlat&lt;class T&gt;</codeph> array is more general
+and is allocated on the heap. This class is immediately derived from the abstract
+templated base class <codeph>CArrayFix&lt;class T&gt;</codeph> which is
+itself derived from the abstract non-template base class <codeph>CArrayFixBase</codeph>.
+Its array buffer is implemented using a <codeph>CBufFlat</codeph> object.</p>
+<section id="GUID-AED136DE-81CB-4247-ADF7-283C6061D4D9"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
+Dynamic Buffers </xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1" xml:lang="en"><title>S60
-Platform: Image Converter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example demonstrates how to use the image conversion APIs available
-in the S60 platform (Image Conversion Library, ICL). These APIs include important
-classes, such as CBitmapRotator and CBitmapScaler to be used for rotating
-and scaling images, respectively. CImageEncoder and CImageDecoder classes
-are used to access image encoders and decoders available in the ICL. Images
-can be opened, rotated, scaled, and saved in the same or a different format.
-The UI of the updated application has been optimised for touch using, for
-example, long taps and tactile feedback. The example project supports building
-for both S60 5th Edition with touch UI and S60 3rd Edition with a traditional
-keypad. Important classes: CAknLongTapDetector, MTouchFeedback, CBitmapRotator,
-CBitmapScaler, CImageEncoder, CImageDecoder, CFbsBitmap, CAknQueryDialog.
-For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/567330dd-130f-4f1d-9380-fac5aec5a6a9/S60_Platform_Image_Converter_Example.html" scope="external"> ImageConverter..zip file</xref></p>
-<p>The overview contains the following sections: </p>
-<section id="GUID-1DFEF992-19E6-4231-BC3C-E996E8C0626C-GENID-1-8-1-18-1-1-4-1-7-1-2-3"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.zip" scope="external"> ICLExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.html" scope="peer">browse </xref> to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-5-1-6-1-5-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-5-1-6-1-5-1-3-1" xml:lang="en"><title>S60
-Platform: Image Converter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example demonstrates how to use the image conversion APIs available
-in the S60 platform (Image Conversion Library, ICL). These APIs include important
-classes, such as CBitmapRotator and CBitmapScaler to be used for rotating
-and scaling images, respectively. CImageEncoder and CImageDecoder classes
-are used to access image encoders and decoders available in the ICL. Images
-can be opened, rotated, scaled, and saved in the same or a different format.
-The UI of the updated application has been optimised for touch using, for
-example, long taps and tactile feedback. The example project supports building
-for both S60 5th Edition with touch UI and S60 3rd Edition with a traditional
-keypad. Important classes: CAknLongTapDetector, MTouchFeedback, CBitmapRotator,
-CBitmapScaler, CImageEncoder, CImageDecoder, CFbsBitmap, CAknQueryDialog.
-For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/567330dd-130f-4f1d-9380-fac5aec5a6a9/S60_Platform_Image_Converter_Example.html" scope="external"> ImageConverter..zip file</xref></p>
-<p>The overview contains the following sections: </p>
-<section id="GUID-1DFEF992-19E6-4231-BC3C-E996E8C0626C-GENID-1-8-1-18-1-1-5-1-6-1-5-1-3-1-2-3"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.zip" scope="external"> ICLExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.html" scope="peer">browse </xref> to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6408C26A-2736-59A9-B785-6B119143619B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6408C26A-2736-59A9-B785-6B119143619B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6408C26A-2736-59A9-B785-6B119143619B" xml:lang="en"><title>How
-to use a thread-death notifier</title><shortdesc>Describes the thread-death notifier and provides a code snippet
-to show you how to use it.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To use a thread-death notifier, a thread which needs to know about the
-death of other threads: </p>
-<ul>
-<li id="GUID-914D2BE7-BFD3-58E3-ABD4-53371512332F"><p>constructs an <codeph>RUndertaker</codeph> handle
-and then calls its <codeph>Create()</codeph> member function to create the
-associated Kernel side object. The <codeph>RUndertaker</codeph> handle is <keyword>process-relative</keyword> which
-means that the handle is <i>not</i> closed if the requesting thread dies. </p> </li>
-<li id="GUID-F46FEA42-38C3-526D-AC05-225BDD3A8714"><p>issues a notification
-request to the thread-death notifier, passing a reference to a <codeph>TRequestStatus</codeph> object
-and a reference to a <codeph>TInt</codeph>. </p> </li>
-</ul>
-<p>When any other thread dies, the requesting thread's <keyword>request semaphore</keyword> is
-signalled to indicate that the notification request is complete. The <codeph>TRequestStatus</codeph> object
-supplied by the requesting thread is set to <codeph>KErrDied</codeph>. </p>
-<p>In addition, the Kernel opens a local thread-relative handle on the dying
-thread. (thread-relative, here, means relative to the requesting thread) and
-sets the <codeph>TInt</codeph>, supplied by the requesting thread, to the
-resulting handle-number. The requesting thread can construct an <codeph>RThread</codeph> from
-this handle-number. The following diagram helps visualise the situation. </p>
-<fig id="GUID-5B53CA3B-5365-5C54-B2BC-EA8BA684F15E">
-<title>           Thread-death notifier         </title>
-<image href="GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e242598_href.png" placement="inline"/>
-</fig>
-<p>The following code fragments demonstrate this: </p>
-<codeblock id="GUID-B5A219AD-CC59-50CE-A65B-0D3F4FD32F7A" xml:space="preserve">{
-...
-RUndertaker     the_undertaker;
-TRequestStatus  the_status;
-TInt            the_dyingthread_handle_number;
-...
-the_undertaker.Create();
-the_undertaker.Logon(the_status,the_dyingthread_handle_number);
-User::WaitForRequest(the_status);
-...
-...// prepare for a long wait
-...
-RThread r;
-r.SetHandle(the_dyingthread_handle_number);
-...
-...// Now have an open thread-relative handle to the
-...// dying thread so we can, for example, ...
-if (r.ExitReason()==0x666)
-    {
-    ...
-    }
-...// We have an open handle on the dying thread; the dying thread
-...// remains in existence until we close it.
-r.Close();
-...
-}</codeblock>
-<p>In practical code, an <codeph>RUndertaker</codeph> is used by an active
-object. </p>
-<p>The <codeph>RUndertaker</codeph> handle also offers a <codeph>LogonCancel()</codeph> function.
-Calling this function, causes the requesting thread's <keyword>request semaphore</keyword> to
-be signalled and any wait to complete. The <codeph>TRequestStatus</codeph> is
-set to <codeph>KErrCancel</codeph>. </p>
-<p>This technique of using an <codeph>RUndertaker</codeph> is not guaranteed
-to report the death of all threads. In particular, if a second thread dies
-while a requesting thread is handling the request completion due to the death
-of a first thread (but before it can make another notification request), the
-death of this second thread will go unnoticed. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6408C26A-2736-59A9-B785-6B119143619B" xml:lang="en"><title>How
+to use a thread-death notifier</title><shortdesc>Describes the thread-death notifier and provides a code snippet
+to show you how to use it.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To use a thread-death notifier, a thread which needs to know about the
+death of other threads: </p>
+<ul>
+<li id="GUID-914D2BE7-BFD3-58E3-ABD4-53371512332F"><p>constructs an <codeph>RUndertaker</codeph> handle
+and then calls its <codeph>Create()</codeph> member function to create the
+associated Kernel side object. The <codeph>RUndertaker</codeph> handle is <keyword>process-relative</keyword> which
+means that the handle is <i>not</i> closed if the requesting thread dies. </p> </li>
+<li id="GUID-F46FEA42-38C3-526D-AC05-225BDD3A8714"><p>issues a notification
+request to the thread-death notifier, passing a reference to a <codeph>TRequestStatus</codeph> object
+and a reference to a <codeph>TInt</codeph>. </p> </li>
+</ul>
+<p>When any other thread dies, the requesting thread's <keyword>request semaphore</keyword> is
+signalled to indicate that the notification request is complete. The <codeph>TRequestStatus</codeph> object
+supplied by the requesting thread is set to <codeph>KErrDied</codeph>. </p>
+<p>In addition, the Kernel opens a local thread-relative handle on the dying
+thread. (thread-relative, here, means relative to the requesting thread) and
+sets the <codeph>TInt</codeph>, supplied by the requesting thread, to the
+resulting handle-number. The requesting thread can construct an <codeph>RThread</codeph> from
+this handle-number. The following diagram helps visualise the situation. </p>
+<fig id="GUID-5B53CA3B-5365-5C54-B2BC-EA8BA684F15E">
+<title>           Thread-death notifier         </title>
+<image href="GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e238861_href.png" placement="inline"/>
+</fig>
+<p>The following code fragments demonstrate this: </p>
+<codeblock id="GUID-B5A219AD-CC59-50CE-A65B-0D3F4FD32F7A" xml:space="preserve">{
+...
+RUndertaker     the_undertaker;
+TRequestStatus  the_status;
+TInt            the_dyingthread_handle_number;
+...
+the_undertaker.Create();
+the_undertaker.Logon(the_status,the_dyingthread_handle_number);
+User::WaitForRequest(the_status);
+...
+...// prepare for a long wait
+...
+RThread r;
+r.SetHandle(the_dyingthread_handle_number);
+...
+...// Now have an open thread-relative handle to the
+...// dying thread so we can, for example, ...
+if (r.ExitReason()==0x666)
+    {
+    ...
+    }
+...// We have an open handle on the dying thread; the dying thread
+...// remains in existence until we close it.
+r.Close();
+...
+}</codeblock>
+<p>In practical code, an <codeph>RUndertaker</codeph> is used by an active
+object. </p>
+<p>The <codeph>RUndertaker</codeph> handle also offers a <codeph>LogonCancel()</codeph> function.
+Calling this function, causes the requesting thread's <keyword>request semaphore</keyword> to
+be signalled and any wait to complete. The <codeph>TRequestStatus</codeph> is
+set to <codeph>KErrCancel</codeph>. </p>
+<p>This technique of using an <codeph>RUndertaker</codeph> is not guaranteed
+to report the death of all threads. In particular, if a second thread dies
+while a requesting thread is handling the request completion due to the death
+of a first thread (but before it can make another notification request), the
+death of this second thread will go unnoticed. </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e184568_href.png has changed
Binary file Symbian3/SDK/Source/GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e191164_href.png has changed
--- a/Symbian3/SDK/Source/GUID-644810EC-7D5E-4569-834B-C207447B88A3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-644810EC-7D5E-4569-834B-C207447B88A3" xml:lang="en"><title>Multitasking</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian UI style allows multitasking; that is, working with more than
-one application simultaneously. Mobile device users can leave an application
-running when they start another application, swap between running applications,
-and interact with them.</p>
-<p>To open a new application without closing the one that is presently being
-used, users can press the Home / Menu key to go to the <xref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita">Menu</xref> and
-select application suites and applications.</p>
-<p>The first application process remains running in the background while the
-user interacts with the second application.</p>
-<p>The number of simultaneously running (different) applications is limited
-only by the available memory in the device. When a new application process
-cannot be created because of limited memory, the system can automatically
-shut down applications to increase the amount of free memory.</p>
-<p>To swap active applications, users can:</p>
-<ul>
-<li><p>Long-press the Home / Menu key to open the task swapping window.</p></li>
-<li><p>Alternatively, select <uicontrol>Options</uicontrol> &gt; <uicontrol>Show
-open applications</uicontrol> to open the task swapping window.</p></li>
-</ul>
-<fig id="GUID-9855DE8A-5103-4172-9884-C5266ADB8F16">
-<title>Visualized multitasking: task swapping window</title>
-<image href="GUID-182326EB-E818-4146-82D9-494D59E430B8_d0e81983_href.png" placement="inline"/>
-</fig>
-<p>The task swapping window displays the applications that are currently running
-in the order of their most recent use. By default, the focus is on the first
-item in the grid. The task swapping window is a pop-up with a heading (<uicontrol>Open
-applications</uicontrol>). The names of the open applications are displayed
-in an Information pop-up. The Information pop-up is launched with a 0.5 second
-delay after the focus is moved onto each item, and it remains visible for
-1.5 seconds (or until the focus is moved to another item). Menu and home screen
-are always visible in the task swapping window. The configuration and visual
-appearance of the task swapping window might depend on the product.</p>
-<p>Users can use the task swapping window to close active applications. In
-devices with a keypad, users move the focus onto the application to be closed,
-and press the <uicontrol>Clear</uicontrol> (delete) key.  In touch devices,
-users tap and hold the item to open a pop-up menu where they can select the <uicontrol>Exit</uicontrol> option.</p>
-<p>For implementation information on
-using the <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">application
-and UI frameworks</xref>, see <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">Window
-server events</xref>.</p>
-</conbody><related-links>
-<linklist>
-<link href="GUID-0F8D0399-58CD-4EB6-82DF-75D6BE5B0A84.dita"><linktext>Application
-framework concepts</linktext></link>
-<link href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita"><linktext>Framework
-requirements for GUI applications</linktext></link>
-</linklist>
-</related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e111639_href.png has changed
Binary file Symbian3/SDK/Source/GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e118177_href.png has changed
--- a/Symbian3/SDK/Source/GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,123 +1,123 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C" xml:lang="en"><title>Compensating
-Sensor Data for Display Orientation</title><shortdesc>You can use the sensor data compensator APIs to correct the display
-and device orientation data.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-A7AAEFBD-92F7-4143-AF04-CB7604C63B12"><p>Before you begin
-using the sensor data compensator APIs, you must do the following:</p><ol>
-<li id="GUID-A2F385CE-1902-42DB-91F0-6359174BD31B"><p>Open a Sensor Channel
-for communication. For details, see <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-30E6033F-E316-4BDB-AF22-2369463DF709">Using
-Sensor Channels APIs</xref></p></li>
-<li id="GUID-D7CC2C9C-ADA4-4C20-9F83-1D194778D1A9"><p>Implement the data listener
-interface. For details see, <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receiving
-Data from Sensors</xref></p></li>
-<li id="GUID-34B18C12-F93C-4509-8E6F-4A0C2998ADB7"><p>Register as a listener
-with any of the sensor types using an instance of <parmname>CSensrvChannel</parmname>.</p></li>
-<li id="GUID-527FEDAB-FAF3-4A8B-BF58-D300C0DC04E8"><p>Ensure that the data
-received from the sensor channel is not already compensated using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function,
-as shown in the following example:</p><codeblock xml:space="preserve">// 'iChannel' contains an open channel
-TSensrvProperty property;
-TRAPD( err, iChannel-&gt;GetPropertyL( KSensrvPropIdChannelDataCompensation, KSensrvItemIndexNone, property ) );
-if ( err == KErrNone &amp;&amp; property.PropertyType() == ESensrvIntProperty )
-     {
-     // Channel data is compensated, check the compensation type
-     TInt compensationType;
-     property.GetValue( compensationType );
-     // 'compensationType' contains now a value from TSensorCompensationType enumeration declared in sensordatacompensationtypes.h
-     }
-else
-     {
-     // Channel data is not compensated
-     }</codeblock><p>For more information, see <xref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita">Retrieving
-channel properties</xref> .</p></li>
-</ol>           </prereq>
-<context id="GUID-02653FE0-162F-46A1-A4BC-7DD48350432B">       <p>The sensor
-data compensator APIs allows you to compensate sensor data values, based on:</p><ul>
-<li><p>Display Orientation, when the display is changed from portrait to landscape.</p></li>
-<li><p>Device Orientation, when the keyboard is opened, resulting in the display
-being set at an angle to the keyboard. For example, N97.</p></li>
-</ul>     </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-5-1-4-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-5-1-4-1-3-3-1"><cmd>Create an instance
-of <parmname>CSensorDataCompensator</parmname>.</cmd>
-<stepxmp><codeblock xml:space="preserve">iCompensator = CSensorDataCompensator::NewL(TSensrvAccelerometerAxisData::KDataTypeId,ESensorCompensateDeviceAndUIOrientation);</codeblock></stepxmp>
-</step>
-<step id="GUID-AE833279-71EA-43FC-AB2E-E4CFAF277A02"><cmd>Use the <xref href="GUID-D32C68EB-AB82-3C2D-98F1-280401FD1763.dita#GUID-D32C68EB-AB82-3C2D-98F1-280401FD1763/GUID-A400CB98-7D89-323F-92A8-EE5D581BEFA4"><apiname>CSensorDataCompensator::Compensate()</apiname></xref> function
-to correct the sensor data received from the following channel types and related
-classes:</cmd>
-<info><table id="GUID-1726B6BF-D170-4769-8E98-21BA6318E95F">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Sensor Channel Type</entry>
-<entry>Data Class</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>Accelerometer axis data</entry>
-<entry><codeph>TSensrvAccelerometerAxisData</codeph></entry>
-</row>
-<row>
-<entry>Magnetometer axis data</entry>
-<entry><codeph>TSensrvMagnetometerAxisData</codeph></entry>
-</row>
-<row>
-<entry>Accelerometer double-tap</entry>
-<entry><codeph>TSensrvTappingData</codeph></entry>
-</row>
-</tbody>
-</tgroup>
-</table></info>
-</step>
-</steps>
-<example><title>Example</title><p>The following example illustrates the usage
-of sensor data compensator APIs to correct axis data received from accelerometer
-sensor.</p><codeblock xml:space="preserve">#include &lt;sensordatacompensator.h&gt; // link against sensordatacompensator.lib
-
-void CMyClass::ConstructL()
-
-   {
-   // iSensorChannel already instantiated and registered
-   if ( !AlreadyCompensated() )
-          {
-          iCompensator = CSensorDataCompensator::NewL( 
-          TSensrvAccelerometerAxisData::KDataTypeId, 
-           ESensorCompensateDeviceAndUIOrientation );
-          }
-   }
-
-CMyClass::~CMyClass()
-
-   {
-   delete iCompensator;
-   }
-
-void CMyClass::DataReceived( CSensrvChannel&amp; aChannel,
-
-                            TInt /*aCount*/, 
-                            TInt /*aDataLost*/ )
-   {
-    
-   TPckgBuf  &lt;TSensrvAccelerometerAxisData&gt; dataBuf;
-   iSensorChannel -&gt; GetData( dataBuf );
-
-   if ( iCompensator )
-       {
-       if ( iCompensator-&gt;Compensate( dataBuf ) == KErrNone )
-           {
-           // Now use the compensated data.
-           }
-       }</codeblock></example>
-<postreq id="GUID-F834E8DF-C906-43E9-B49B-9B0ACB116E9B"><p>End the session
-with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C" xml:lang="en"><title>Compensating
+Sensor Data for Display Orientation</title><shortdesc>You can use the sensor data compensator APIs to correct the display
+and device orientation data.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-A7AAEFBD-92F7-4143-AF04-CB7604C63B12"><p>Before you begin
+using the sensor data compensator APIs, you must do the following:</p><ol>
+<li id="GUID-A2F385CE-1902-42DB-91F0-6359174BD31B"><p>Open a Sensor Channel
+for communication. For details, see <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-30E6033F-E316-4BDB-AF22-2369463DF709">Using
+Sensor Channels APIs</xref></p></li>
+<li id="GUID-D7CC2C9C-ADA4-4C20-9F83-1D194778D1A9"><p>Implement the data listener
+interface. For details see, <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receiving
+Data from Sensors</xref></p></li>
+<li id="GUID-34B18C12-F93C-4509-8E6F-4A0C2998ADB7"><p>Register as a listener
+with any of the sensor types using an instance of <parmname>CSensrvChannel</parmname>.</p></li>
+<li id="GUID-527FEDAB-FAF3-4A8B-BF58-D300C0DC04E8"><p>Ensure that the data
+received from the sensor channel is not already compensated using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function,
+as shown in the following example:</p><codeblock xml:space="preserve">// 'iChannel' contains an open channel
+TSensrvProperty property;
+TRAPD( err, iChannel-&gt;GetPropertyL( KSensrvPropIdChannelDataCompensation, KSensrvItemIndexNone, property ) );
+if ( err == KErrNone &amp;&amp; property.PropertyType() == ESensrvIntProperty )
+     {
+     // Channel data is compensated, check the compensation type
+     TInt compensationType;
+     property.GetValue( compensationType );
+     // 'compensationType' contains now a value from TSensorCompensationType enumeration declared in sensordatacompensationtypes.h
+     }
+else
+     {
+     // Channel data is not compensated
+     }</codeblock><p>For more information, see <xref href="GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita">Retrieving
+channel properties</xref> .</p></li>
+</ol>           </prereq>
+<context id="GUID-02653FE0-162F-46A1-A4BC-7DD48350432B">       <p>The sensor
+data compensator APIs allows you to compensate sensor data values, based on:</p><ul>
+<li><p>Display Orientation, when the display is changed from portrait to landscape.</p></li>
+<li><p>Device Orientation, when the keyboard is opened, resulting in the display
+being set at an angle to the keyboard. For example, N97.</p></li>
+</ul>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-5-1-4-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-5-1-4-1-3-3-1"><cmd>Create an instance
+of <parmname>CSensorDataCompensator</parmname>.</cmd>
+<stepxmp><codeblock xml:space="preserve">iCompensator = CSensorDataCompensator::NewL(TSensrvAccelerometerAxisData::KDataTypeId,ESensorCompensateDeviceAndUIOrientation);</codeblock></stepxmp>
+</step>
+<step id="GUID-AE833279-71EA-43FC-AB2E-E4CFAF277A02"><cmd>Use the <xref href="GUID-D32C68EB-AB82-3C2D-98F1-280401FD1763.dita#GUID-D32C68EB-AB82-3C2D-98F1-280401FD1763/GUID-A400CB98-7D89-323F-92A8-EE5D581BEFA4"><apiname>CSensorDataCompensator::Compensate()</apiname></xref> function
+to correct the sensor data received from the following channel types and related
+classes:</cmd>
+<info><table id="GUID-1726B6BF-D170-4769-8E98-21BA6318E95F">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Sensor Channel Type</entry>
+<entry>Data Class</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>Accelerometer axis data</entry>
+<entry><codeph>TSensrvAccelerometerAxisData</codeph></entry>
+</row>
+<row>
+<entry>Magnetometer axis data</entry>
+<entry><codeph>TSensrvMagnetometerAxisData</codeph></entry>
+</row>
+<row>
+<entry>Accelerometer double-tap</entry>
+<entry><codeph>TSensrvTappingData</codeph></entry>
+</row>
+</tbody>
+</tgroup>
+</table></info>
+</step>
+</steps>
+<example><title>Example</title><p>The following example illustrates the usage
+of sensor data compensator APIs to correct axis data received from accelerometer
+sensor.</p><codeblock xml:space="preserve">#include &lt;sensordatacompensator.h&gt; // link against sensordatacompensator.lib
+
+void CMyClass::ConstructL()
+
+   {
+   // iSensorChannel already instantiated and registered
+   if ( !AlreadyCompensated() )
+          {
+          iCompensator = CSensorDataCompensator::NewL( 
+          TSensrvAccelerometerAxisData::KDataTypeId, 
+           ESensorCompensateDeviceAndUIOrientation );
+          }
+   }
+
+CMyClass::~CMyClass()
+
+   {
+   delete iCompensator;
+   }
+
+void CMyClass::DataReceived( CSensrvChannel&amp; aChannel,
+
+                            TInt /*aCount*/, 
+                            TInt /*aDataLost*/ )
+   {
+    
+   TPckgBuf  &lt;TSensrvAccelerometerAxisData&gt; dataBuf;
+   iSensorChannel -&gt; GetData( dataBuf );
+
+   if ( iCompensator )
+       {
+       if ( iCompensator-&gt;Compensate( dataBuf ) == KErrNone )
+           {
+           // Now use the compensated data.
+           }
+       }</codeblock></example>
+<postreq id="GUID-F834E8DF-C906-43E9-B49B-9B0ACB116E9B"><p>End the session
+with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e262462_href.png has changed
Binary file Symbian3/SDK/Source/GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e266170_href.png has changed
--- a/Symbian3/SDK/Source/GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,254 +1,254 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341" xml:lang="en"><title>Troubleshooting
-Tips</title><shortdesc>This section addresses the basic differences in the way things
-are done in Symbian Platform and in Linux. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-1">       <title>Symbian
-directory structure</title>       <p>In Symbian platform, project source files
-are arranged based on the directory pattern shown below.</p><table id="GUID-AF9A4B8F-EC2B-4BBA-AE84-9B49F2081B4F">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><b>Directory</b></p></entry>
-<entry><p><b>Description</b></p></entry>
-</row>
-<row>
-<entry><codeph>src</codeph></entry>
-<entry><p>Contains all the source files of the project.</p></entry>
-</row>
-<row>
-<entry><codeph>inc</codeph></entry>
-<entry><p>Contains all the header files of the project.</p></entry>
-</row>
-<row>
-<entry><codeph>group</codeph></entry>
-<entry><p>Contains MMP files, and bld.inf. </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>    <p>The developer can choose whether to follow these tips.</p></section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-2">       <title>EXPORT_C,
-DEF file and ordinal numbers</title>       <p>This applies only for the DLL
-target type. If a DLL wants to export an API, the code definition should start
-with the macro <codeph>EXPORT_C</codeph>.</p><codeblock xml:space="preserve">// Declaration
-#ifdef SYMBIAN
-#define GLOBAL(type)		EXPORT_C type
-#else
-#define GLOBAL(type)		type
-#endif // SYMBIAN
- // Definition
- GLOBAL(void)
- jpeg_CreateDecompress (j_decompress_ptr cinfo, int version, size_t structsize)
- {
-   int i;
- 
-   /* Guard against version mismatches between library and caller. */
-   cinfo-&gt;mem = NULL;		/* so jpeg_destroy knows mem mgr not called */
-   if (version != JPEG_LIB_VERSION)
-     ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version);
-   if (structsize != SIZEOF(struct jpeg_decompress_struct))
-     ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE, 
- 	     (int) SIZEOF(struct jpeg_decompress_struct), (int) structsize);
- ...
- } </codeblock><p>Whenever a DLL is built on Symbian platform, it creates
-three files: </p><ul>
-<li><p><filepath>&lt;target&gt;.dll</filepath> is the actual DLL that gets loaded
-at runtime </p></li>
-<li><p><filepath>&lt;target&gt;.lib</filepath> is the static library which contains
-wrappers for each DLL exported function that, when run, will locate and execute
-the real function’s code in the appropriate runtime-loaded DLL. </p></li>
-<li><p><filepath>&lt;target.def&gt;</filepath> gets created when the user executes
-abld freeze. The <filepath>.def</filepath> file contains the list of exported
-DLL functions along with their ordinal numbers. Symbian platform does not
-store exported symbol names in DLL; instead, the exported functions are referenced
-using only their ordinal numbers. Storing the ordinal numbers instead of names
-reduces the size of the DLL. </p></li>
-</ul><p>The following is a sample <filepath>.def</filepath> file created for <codeph>libjpeg</codeph>:</p><codeblock xml:space="preserve">EXPORTS
-jcopy_block_row @ 1 NONAME
-jcopy_sample_rows @ 2 NONAME
-jdiv_round_up @ 3 NONAME
-jinit_1pass_quantizer @ 4 NONAME
-jinit_2pass_quantizer @ 5 NONAME
-jinit_c_coef_controller @ 6 NONAME
-jinit_c_main_controller @ 7 NONAME
-jinit_c_master_control @ 8 NONAME
-jinit_c_prep_controller @ 9 NONAME
-jinit_color_converter @ 10 NONAME
-</codeblock><p>The following example shows how to declare and define an exportable
-function from a DLL and to make it callable from a Symbian C++ application:
- </p><p>In <filepath>xxx.h</filepath></p><codeblock xml:space="preserve">#ifdef __cplusplus
-extern "C" 
-#endif
-IMPORT_C int Foo();
-</codeblock><p>In <codeph>xxx.c</codeph></p><codeblock xml:space="preserve">extern "C" EXPORT_C int Foo()
-    {
-    return something;
-    }
-</codeblock>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-3">       <title><codeph>dlsym()</codeph> or <codeph>g_module_symbol()</codeph></title> 
-     <p>Since DLL entry points are not exported by name, DLL symbol lookup
-functions do not work on Symbian platform. For more information about alternatives
-suggested on Symbian platform, see <xref href="GUID-9D278187-8B5E-581D-9869-EE8861048F93.dita">Dynamic
-Link Libraries</xref>.</p><p>The functions <codeph>dlsym()</codeph> from <codeph>libdl</codeph> and <codeph>g_module_symbol()</codeph> from GLib are examples of such functions. Look for usage of these functions
-in the OSS port and change the code.</p><codeblock xml:space="preserve">ret = g_module_symbol (module, "jinit_c_prep_controller", &amp;ptr); 
-</codeblock><p>needs to be changed to:</p><codeblock xml:space="preserve">ret = g_module_symbol (module, "9", &amp;ptr);</codeblock><p>For
-example, for <codeph>dlsym()</codeph> pass the function's ordinal number as
-symbol parameter (refer the library's list of exports, the DEF file for the
-function's ordinal number):</p><codeblock xml:space="preserve">dlsym(&amp;handle, "foo")
-</codeblock><p>needs to be changed to:</p><codeblock xml:space="preserve">dlsym (&amp;handle, "3")</codeblock></section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-4"><title>Problem with
-a variable list of arguments in macros</title><p>This section suggests a way
-to overcome the problems faced when macros with a variable list of arguments
-are used.</p><codeblock xml:space="preserve">#define DEBUG(a,...)</codeblock><p>The above statement
-causes a compilation error. One of the solutions to solve this problem is
-as follows:</p><codeblock xml:space="preserve">#define DEBUG _DEBUG
-static inline void _DEBUG (const char *a, ...) 
-{ 
-}</codeblock>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-5">       <title>Keep
-changes to OSS to a minimum</title><p>While porting the OSS code, keep the
-changes to the OSS code as few as possible. The OSS code is already tested
-and used by a bigger community, and is unlikely to have any compilation errors
-or major logical errors. In many cases code changes that are necessary brings
-potential logical flaws to the OSS port. Minimum changes to the OSS code while
-porting also helps in merging to the new OSS.  </p>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-6">       <title>Exporting
-variables from a DLL</title>       <p>Exporting data from a DLL is not allowed
-in Symbian platform . The following pattern can be used:</p><ol>
-<li id="GUID-FE2ACA35-3472-47C2-8C3F-B65CAEE09C66"><p>Do not export global
-variables. Within DLL, there is one global variable, for example:</p><codeblock xml:space="preserve">int globalVal; </codeblock></li>
-<li id="GUID-F6A52B57-7E83-4DFE-9FD3-AB8E7D9B55D4"><p>  Export one method
-that returns a pointer to that variable.</p><codeblock xml:space="preserve">extern "C" EXPORT_C int* GlbData ()
-    {
-    return &amp;globalVal
-    }
-</codeblock></li>
-<li id="GUID-3231DC39-90BF-4775-BC66-2ADC9A60463E"><p>Define a macro for the
-user of the DLL. See the example below. Within the DLL header (for example, <filepath>xxx.h</filepath>),
-define the following:</p><codeblock xml:space="preserve">#ifdef __cplusplus
-extern "C" 
-#endif
-IMPORT_C int* GlbData ();
-#define globalVal (*GlbData())</codeblock></li>
-</ol>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-7">       <title>Application
-is not loaded</title>       <p>The absence of the dependent libraries could
-be one of the reasons for the application not to load in the mobile device.
-On the target device, Symbian platform looks for libraries in <filepath>c:\sys\bin</filepath> or
-in <filepath>z:\sys\bin</filepath>.</p><p>Do make sure that all the libraries
-are present in either of the above-mentioned libraries. </p>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-8">       <title>Capabilities
-not known</title>       <p>Capabilities are specified in the MMP file. The
-primary information source is the P.I.P.S. API reference documentation. If
-problems with capabilities remain, one known method to find the capability
-is to analyze the [Debug Messages] window in CodeWarrior IDE (while debugging).
-During development, <codeph>CAPABILITY All –Tcb</codeph> is acceptable, but
-for release code it is good practice to give a valid capability in the MMP
-file in order to have the application successfully signed. The following is
-a sample of a capability error found in the [Debug Messages] window.  </p><codeblock xml:space="preserve">*PlatSec* ERROR - Capability check failed - Process hellogst.exe[10015942]0001 was checked by Thread c32exe.exe[101f7989]0001::ESock_IP and was found to be missing the capabilities: NetworkServices. </codeblock>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-9">       <title>Environment
-variables</title>       <p>At the moment, environment variables are not completely
-supported in Symbian C++. Therefore be wary of using library functions like <codeph>getenv()</codeph> which
-work on environment variables. Make sure the library initialization routine
-calls <codeph>setenv()</codeph> with the proper value of the environment variable.
-Also, be wary of functions like <codeph>g_get_home_dir()</codeph> which may
-not work as they behave in Linux.</p><codeblock xml:space="preserve">if ((memenv = getenv("JPEGMEM")) != NULL) // will not work properly</codeblock><p>Suggested
-change: </p><codeblock xml:space="preserve">void LibraryInit() 
-{  
-   setenv ("JPEGMEM ", "XXXXX", 1);  
-}</codeblock>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-10">       <title>Assembly
-code</title>       <p>The syntax for inline assembly code is different in
-Symbian platform. The following is a code snippet of assembly code syntax
-in Symbian platform.</p><codeblock xml:space="preserve">EXPORT_C __NAKED__ TUint16 TTemplate::Register16(TUint anAddr) 
-/**  
-  Read a 16-bit register  
-  @returns register contents  
-*/ 	
-  { 	
-  asm("ldrh	r0,[r0]");
-  	__JUMP(,lr); 	
-  } </codeblock><p>In common practice the assembly code has the extension <filepath>.CIA</filepath> in
-Symbian platform, whereas in Linux the assembly code has the extension <filepath>.S</filepath>.
- </p>     </section>
-<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-8-1-11-1-1-5-1-3-1-9-1-3-11">       <title>Glossary</title> 
-     <p>The following table lists terms used in Linux and their approximate
-equivalents in Symbian platform:  </p><table id="GUID-BFB874F5-148B-44B2-A110-F37AC084756B">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><b>Linux</b></p></entry>
-<entry><p><b>Symbian</b></p></entry>
-</row>
-<row>
-<entry><p><codeph>-D</codeph> of Makefile </p></entry>
-<entry><p><codeph>MACRO</codeph> of theMMP file </p></entry>
-</row>
-<row>
-<entry><p><codeph>-I</codeph> of Makefile</p></entry>
-<entry><p><codeph>USERINCLUDE</codeph> of the MMP file </p></entry>
-</row>
-<row>
-<entry><p><codeph>SO</codeph></p></entry>
-<entry><p>DLL</p></entry>
-</row>
-<row>
-<entry><p><codeph>A</codeph></p></entry>
-<entry><p>LIB</p></entry>
-</row>
-<row>
-<entry><p>Makefile</p></entry>
-<entry><p>MMP file</p></entry>
-</row>
-<row>
-<entry><p>SOURCES of Makefile </p></entry>
-<entry><p>SOURCE of the MMP file </p></entry>
-</row>
-<row>
-<entry><p><filepath>/usr/include/</filepath></p></entry>
-<entry><p><filepath>\EPOC32\INCLUDE</filepath></p></entry>
-</row>
-<row>
-<entry><p><filepath>/usr/lib/</filepath></p></entry>
-<entry><p><filepath>\epoc32\data\c\sys\bin</filepath> on an emulator, <filepath>\sys\bin</filepath> on
-a target device</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>The following table lists a few important things about the Symbian
-platform: </p><table id="GUID-A43D5623-C816-4308-9AFC-FCA97DA75A2D">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><codeph>ABI_DIR</codeph></p></entry>
-<entry><p>Platform, for example winscw or armv5</p></entry>
-</row>
-<row>
-<entry><p><codeph>BUILD_DIR</codeph></p></entry>
-<entry><p>UDEB or UREL</p></entry>
-</row>
-<row>
-<entry><p><filepath>c:</filepath> drive in emulator </p></entry>
-<entry><p><filepath>\epoc32\data\c</filepath> and <filepath>\epoc32\winscw\c</filepath></p></entry>
-</row>
-<row>
-<entry><p><filepath>z:</filepath> drive in emulator</p></entry>
-<entry><p><filepath>Z:\epoc32\data\z</filepath></p></entry>
-</row>
-<row>
-<entry><p><filepath>bld.inf</filepath></p></entry>
-<entry><p>Lists public header files and their location in <filepath>\EPOC32\INCLUDE</filepath></p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>     </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-64D2B0E2-BB5D-4009-ACE5-7A3503016341" xml:lang="en"><title>Troubleshooting
+Tips</title><shortdesc>This section addresses the basic differences in the way things
+are done in Symbian Platform and in Linux. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-1">       <title>Symbian
+directory structure</title>       <p>In Symbian platform, project source files
+are arranged based on the directory pattern shown below.</p><table id="GUID-AF9A4B8F-EC2B-4BBA-AE84-9B49F2081B4F">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p><b>Directory</b></p></entry>
+<entry><p><b>Description</b></p></entry>
+</row>
+<row>
+<entry><codeph>src</codeph></entry>
+<entry><p>Contains all the source files of the project.</p></entry>
+</row>
+<row>
+<entry><codeph>inc</codeph></entry>
+<entry><p>Contains all the header files of the project.</p></entry>
+</row>
+<row>
+<entry><codeph>group</codeph></entry>
+<entry><p>Contains MMP files, and bld.inf. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>    <p>The developer can choose whether to follow these tips.</p></section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-2">       <title>EXPORT_C,
+DEF file and ordinal numbers</title>       <p>This applies only for the DLL
+target type. If a DLL wants to export an API, the code definition should start
+with the macro <codeph>EXPORT_C</codeph>.</p><codeblock xml:space="preserve">// Declaration
+#ifdef SYMBIAN
+#define GLOBAL(type)		EXPORT_C type
+#else
+#define GLOBAL(type)		type
+#endif // SYMBIAN
+ // Definition
+ GLOBAL(void)
+ jpeg_CreateDecompress (j_decompress_ptr cinfo, int version, size_t structsize)
+ {
+   int i;
+ 
+   /* Guard against version mismatches between library and caller. */
+   cinfo-&gt;mem = NULL;		/* so jpeg_destroy knows mem mgr not called */
+   if (version != JPEG_LIB_VERSION)
+     ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version);
+   if (structsize != SIZEOF(struct jpeg_decompress_struct))
+     ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE, 
+ 	     (int) SIZEOF(struct jpeg_decompress_struct), (int) structsize);
+ ...
+ } </codeblock><p>Whenever a DLL is built on Symbian platform, it creates
+three files: </p><ul>
+<li><p><filepath>&lt;target&gt;.dll</filepath> is the actual DLL that gets loaded
+at runtime </p></li>
+<li><p><filepath>&lt;target&gt;.lib</filepath> is the static library which contains
+wrappers for each DLL exported function that, when run, will locate and execute
+the real function’s code in the appropriate runtime-loaded DLL. </p></li>
+<li><p><filepath>&lt;target.def&gt;</filepath> gets created when the user executes
+abld freeze. The <filepath>.def</filepath> file contains the list of exported
+DLL functions along with their ordinal numbers. Symbian platform does not
+store exported symbol names in DLL; instead, the exported functions are referenced
+using only their ordinal numbers. Storing the ordinal numbers instead of names
+reduces the size of the DLL. </p></li>
+</ul><p>The following is a sample <filepath>.def</filepath> file created for <codeph>libjpeg</codeph>:</p><codeblock xml:space="preserve">EXPORTS
+jcopy_block_row @ 1 NONAME
+jcopy_sample_rows @ 2 NONAME
+jdiv_round_up @ 3 NONAME
+jinit_1pass_quantizer @ 4 NONAME
+jinit_2pass_quantizer @ 5 NONAME
+jinit_c_coef_controller @ 6 NONAME
+jinit_c_main_controller @ 7 NONAME
+jinit_c_master_control @ 8 NONAME
+jinit_c_prep_controller @ 9 NONAME
+jinit_color_converter @ 10 NONAME
+</codeblock><p>The following example shows how to declare and define an exportable
+function from a DLL and to make it callable from a Symbian C++ application:
+ </p><p>In <filepath>xxx.h</filepath></p><codeblock xml:space="preserve">#ifdef __cplusplus
+extern "C" 
+#endif
+IMPORT_C int Foo();
+</codeblock><p>In <codeph>xxx.c</codeph></p><codeblock xml:space="preserve">extern "C" EXPORT_C int Foo()
+    {
+    return something;
+    }
+</codeblock>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-3">       <title><codeph>dlsym()</codeph> or <codeph>g_module_symbol()</codeph></title> 
+     <p>Since DLL entry points are not exported by name, DLL symbol lookup
+functions do not work on Symbian platform. For more information about alternatives
+suggested on Symbian platform, see <xref href="GUID-9D278187-8B5E-581D-9869-EE8861048F93.dita">Dynamic
+Link Libraries</xref>.</p><p>The functions <codeph>dlsym()</codeph> from <codeph>libdl</codeph> and <codeph>g_module_symbol()</codeph> from GLib are examples of such functions. Look for usage of these functions
+in the OSS port and change the code.</p><codeblock xml:space="preserve">ret = g_module_symbol (module, "jinit_c_prep_controller", &amp;ptr); 
+</codeblock><p>needs to be changed to:</p><codeblock xml:space="preserve">ret = g_module_symbol (module, "9", &amp;ptr);</codeblock><p>For
+example, for <codeph>dlsym()</codeph> pass the function's ordinal number as
+symbol parameter (refer the library's list of exports, the DEF file for the
+function's ordinal number):</p><codeblock xml:space="preserve">dlsym(&amp;handle, "foo")
+</codeblock><p>needs to be changed to:</p><codeblock xml:space="preserve">dlsym (&amp;handle, "3")</codeblock></section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-4"><title>Problem with
+a variable list of arguments in macros</title><p>This section suggests a way
+to overcome the problems faced when macros with a variable list of arguments
+are used.</p><codeblock xml:space="preserve">#define DEBUG(a,...)</codeblock><p>The above statement
+causes a compilation error. One of the solutions to solve this problem is
+as follows:</p><codeblock xml:space="preserve">#define DEBUG _DEBUG
+static inline void _DEBUG (const char *a, ...) 
+{ 
+}</codeblock>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-5">       <title>Keep
+changes to OSS to a minimum</title><p>While porting the OSS code, keep the
+changes to the OSS code as few as possible. The OSS code is already tested
+and used by a bigger community, and is unlikely to have any compilation errors
+or major logical errors. In many cases code changes that are necessary brings
+potential logical flaws to the OSS port. Minimum changes to the OSS code while
+porting also helps in merging to the new OSS.  </p>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-6">       <title>Exporting
+variables from a DLL</title>       <p>Exporting data from a DLL is not allowed
+in Symbian platform . The following pattern can be used:</p><ol>
+<li id="GUID-FE2ACA35-3472-47C2-8C3F-B65CAEE09C66"><p>Do not export global
+variables. Within DLL, there is one global variable, for example:</p><codeblock xml:space="preserve">int globalVal; </codeblock></li>
+<li id="GUID-F6A52B57-7E83-4DFE-9FD3-AB8E7D9B55D4"><p>  Export one method
+that returns a pointer to that variable.</p><codeblock xml:space="preserve">extern "C" EXPORT_C int* GlbData ()
+    {
+    return &amp;globalVal
+    }
+</codeblock></li>
+<li id="GUID-3231DC39-90BF-4775-BC66-2ADC9A60463E"><p>Define a macro for the
+user of the DLL. See the example below. Within the DLL header (for example, <filepath>xxx.h</filepath>),
+define the following:</p><codeblock xml:space="preserve">#ifdef __cplusplus
+extern "C" 
+#endif
+IMPORT_C int* GlbData ();
+#define globalVal (*GlbData())</codeblock></li>
+</ol>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-7">       <title>Application
+is not loaded</title>       <p>The absence of the dependent libraries could
+be one of the reasons for the application not to load in the mobile device.
+On the target device, Symbian platform looks for libraries in <filepath>c:\sys\bin</filepath> or
+in <filepath>z:\sys\bin</filepath>.</p><p>Do make sure that all the libraries
+are present in either of the above-mentioned libraries. </p>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-8">       <title>Capabilities
+not known</title>       <p>Capabilities are specified in the MMP file. The
+primary information source is the P.I.P.S. API reference documentation. If
+problems with capabilities remain, one known method to find the capability
+is to analyze the [Debug Messages] window in CodeWarrior IDE (while debugging).
+During development, <codeph>CAPABILITY All –Tcb</codeph> is acceptable, but
+for release code it is good practice to give a valid capability in the MMP
+file in order to have the application successfully signed. The following is
+a sample of a capability error found in the [Debug Messages] window.  </p><codeblock xml:space="preserve">*PlatSec* ERROR - Capability check failed - Process hellogst.exe[10015942]0001 was checked by Thread c32exe.exe[101f7989]0001::ESock_IP and was found to be missing the capabilities: NetworkServices. </codeblock>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-9">       <title>Environment
+variables</title>       <p>At the moment, environment variables are not completely
+supported in Symbian C++. Therefore be wary of using library functions like <codeph>getenv()</codeph> which
+work on environment variables. Make sure the library initialization routine
+calls <codeph>setenv()</codeph> with the proper value of the environment variable.
+Also, be wary of functions like <codeph>g_get_home_dir()</codeph> which may
+not work as they behave in Linux.</p><codeblock xml:space="preserve">if ((memenv = getenv("JPEGMEM")) != NULL) // will not work properly</codeblock><p>Suggested
+change: </p><codeblock xml:space="preserve">void LibraryInit() 
+{  
+   setenv ("JPEGMEM ", "XXXXX", 1);  
+}</codeblock>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-10">       <title>Assembly
+code</title>       <p>The syntax for inline assembly code is different in
+Symbian platform. The following is a code snippet of assembly code syntax
+in Symbian platform.</p><codeblock xml:space="preserve">EXPORT_C __NAKED__ TUint16 TTemplate::Register16(TUint anAddr) 
+/**  
+  Read a 16-bit register  
+  @returns register contents  
+*/ 	
+  { 	
+  asm("ldrh	r0,[r0]");
+  	__JUMP(,lr); 	
+  } </codeblock><p>In common practice the assembly code has the extension <filepath>.CIA</filepath> in
+Symbian platform, whereas in Linux the assembly code has the extension <filepath>.S</filepath>.
+ </p>     </section>
+<section id="GUID-77D7347D-8DEC-45D0-A677-8FDBDFB8FF81-GENID-1-10-1-11-1-1-5-1-3-1-9-1-3-11">       <title>Glossary</title> 
+     <p>The following table lists terms used in Linux and their approximate
+equivalents in Symbian platform:  </p><table id="GUID-BFB874F5-148B-44B2-A110-F37AC084756B">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p><b>Linux</b></p></entry>
+<entry><p><b>Symbian</b></p></entry>
+</row>
+<row>
+<entry><p><codeph>-D</codeph> of Makefile </p></entry>
+<entry><p><codeph>MACRO</codeph> of theMMP file </p></entry>
+</row>
+<row>
+<entry><p><codeph>-I</codeph> of Makefile</p></entry>
+<entry><p><codeph>USERINCLUDE</codeph> of the MMP file </p></entry>
+</row>
+<row>
+<entry><p><codeph>SO</codeph></p></entry>
+<entry><p>DLL</p></entry>
+</row>
+<row>
+<entry><p><codeph>A</codeph></p></entry>
+<entry><p>LIB</p></entry>
+</row>
+<row>
+<entry><p>Makefile</p></entry>
+<entry><p>MMP file</p></entry>
+</row>
+<row>
+<entry><p>SOURCES of Makefile </p></entry>
+<entry><p>SOURCE of the MMP file </p></entry>
+</row>
+<row>
+<entry><p><filepath>/usr/include/</filepath></p></entry>
+<entry><p><filepath>\EPOC32\INCLUDE</filepath></p></entry>
+</row>
+<row>
+<entry><p><filepath>/usr/lib/</filepath></p></entry>
+<entry><p><filepath>\epoc32\data\c\sys\bin</filepath> on an emulator, <filepath>\sys\bin</filepath> on
+a target device</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table><p>The following table lists a few important things about the Symbian
+platform: </p><table id="GUID-A43D5623-C816-4308-9AFC-FCA97DA75A2D">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p><codeph>ABI_DIR</codeph></p></entry>
+<entry><p>Platform, for example winscw or armv5</p></entry>
+</row>
+<row>
+<entry><p><codeph>BUILD_DIR</codeph></p></entry>
+<entry><p>UDEB or UREL</p></entry>
+</row>
+<row>
+<entry><p><filepath>c:</filepath> drive in emulator </p></entry>
+<entry><p><filepath>\epoc32\data\c</filepath> and <filepath>\epoc32\winscw\c</filepath></p></entry>
+</row>
+<row>
+<entry><p><filepath>z:</filepath> drive in emulator</p></entry>
+<entry><p><filepath>Z:\epoc32\data\z</filepath></p></entry>
+</row>
+<row>
+<entry><p><filepath>bld.inf</filepath></p></entry>
+<entry><p>Lists public header files and their location in <filepath>\EPOC32\INCLUDE</filepath></p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>     </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-3-1-1-8-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-3-1-1-8-1-6-1" xml:lang="en"><title>Phone
-number utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-648FA965-ED6E-432E-BE02-0AD632DA2630-GENID-1-8-1-3-1-1-8-1-6-1-2-1"><title>Purpose</title> <p>The
-Phone Number Utility is part of the Symbian Text Utility Component (<codeph>etul.dll</codeph>)
-and it offers methods for parsing and validating phone numbers. </p> <p>Examples
-of valid phone numbers: </p> <ul>
-<li id="GUID-C6D1DCE8-CC29-5C1D-840F-E22390F3F878-GENID-1-8-1-3-1-1-8-1-6-1-2-1-4-1"><p>1. +358501234567 </p> </li>
-<li id="GUID-912697C8-0BFF-57BA-9B08-7D760F4E4F6F-GENID-1-8-1-3-1-1-8-1-6-1-2-1-4-2"><p>2. +358 (50) 123 4567 </p> </li>
-</ul> <p>Even though both of the above examples are valid phone numbers, only
-the first one is accepted as a phone number by many systems. To convert the
-second number to the first number, parsing methods of Phone Number Utility
-can be used. </p> </section>
-<section id="GUID-CB2CAEEF-131E-48F2-A53E-3716C386E7C8-GENID-1-8-1-3-1-1-8-1-6-1-2-2"><title>Architectural
-Relationships</title> <p>The <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
-implements the static methods that make up the interface. </p> <p>Phone Number
-Utility can be accessed through the <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
-that is defined in the header <codeph>tulphonenumberutils.h</codeph>. This
-utility is linked to the <codeph>etul.lib</codeph> library. </p> </section>
-<section id="GUID-0C7FB3A9-2B7A-4576-B4A0-CDF706769D2C-GENID-1-8-1-3-1-1-8-1-6-1-2-3"><title>Description</title> <p><b>Method
-Information</b> </p> <p>The enumerated type <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TPhoneNumberType</apiname></xref> is
-used to specify the type of phone number for some of the methods below. </p> <table id="GUID-FD36C6FF-407D-5705-AE6E-62B2EC9D0C4E-GENID-1-8-1-3-1-1-8-1-6-1-2-3-4">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Method name</entry>
-<entry>Details</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>static TBool ParsePhoneNumber(TDes&amp; aNumber,      
-               TPhoneNumberType aType)</codeph>  </p> </entry>
-<entry><p>Removes irrelevant characters and white space from the supplied
-phone number. Allowed characters are determined by phone number type, in other
-words, the <codeph>aType</codeph> parameter. For example, parsing the number <codeph>+358
-(40) 123 467</codeph> results in the number <codeph>+35840123467</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>static TBool IsValidPhoneNumber(const TDesC&amp; aNumber,
-                     TPhoneNumberType aType)</codeph>  </p> </entry>
-<entry><p>Checks if the supplied phone number is a valid phone number of the
-supplied type. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>TBool IsValidPhoneNumber(const TDesC&amp; aNumber, const
-                     TDesC&amp; aValidChars)</codeph>  </p> </entry>
-<entry><p>Checks if the supplied phone number is a valid phone number. The
-phone number is valid if it contains only characters specified by the parameter <codeph>aValidChars.</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>static void ParseInvalidChars(TDes&amp; aNumber, const
-                     TDesC&amp; aInvalidChars)</codeph>  </p> </entry>
-<entry><p>Removes the specified invalid characters from the supplied phone
-number string. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Example</b> </p> <p>The following example shows how to use
-the <codeph>TulPhoneNumberUtils</codeph> class parsing methods: </p> <codeblock id="GUID-BE0A3654-7CDF-536E-9392-D884E557163D-GENID-1-8-1-3-1-1-8-1-6-1-2-3-7" xml:space="preserve">TBuf&lt;50&gt; number = _L("+358 (40) 123 132");
-TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
-                        TulPhoneNumberUtils::EPlainPhoneNumber );
-// validNumber == ETrue;
-// number == "+35840123132"
-
-SendSMS(number) // etc..
-
-// OR
-
-TBuf&lt;50&gt; number = _L("+358 (40) 123p132"); // note 'p'
-TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
-                        TulPhoneNumberUtils::EPlainPhoneNumber );
-
-// validNumber == EFalse;
-// number == "+358 (40) 123p132" // unchanged
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-6-1-1-4-1-7-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7-GENID-1-8-1-6-1-1-4-1-7-1-6-1" xml:lang="en"><title>Phone
-number utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-648FA965-ED6E-432E-BE02-0AD632DA2630-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-1"><title>Purpose</title> <p>The
-Phone Number Utility is part of the Symbian Text Utility Component (<codeph>etul.dll</codeph>)
-and it offers methods for parsing and validating phone numbers. </p> <p>Examples
-of valid phone numbers: </p> <ul>
-<li id="GUID-C6D1DCE8-CC29-5C1D-840F-E22390F3F878-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-1-4-1"><p>1. +358501234567 </p> </li>
-<li id="GUID-912697C8-0BFF-57BA-9B08-7D760F4E4F6F-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-1-4-2"><p>2. +358 (50) 123 4567 </p> </li>
-</ul> <p>Even though both of the above examples are valid phone numbers, only
-the first one is accepted as a phone number by many systems. To convert the
-second number to the first number, parsing methods of Phone Number Utility
-can be used. </p> </section>
-<section id="GUID-CB2CAEEF-131E-48F2-A53E-3716C386E7C8-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-2"><title>Architectural
-Relationships</title> <p>The <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
-implements the static methods that make up the interface. </p> <p>Phone Number
-Utility can be accessed through the <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
-that is defined in the header <codeph>tulphonenumberutils.h</codeph>. This
-utility is linked to the <codeph>etul.lib</codeph> library. </p> </section>
-<section id="GUID-0C7FB3A9-2B7A-4576-B4A0-CDF706769D2C-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-3"><title>Description</title> <p><b>Method
-Information</b> </p> <p>The enumerated type <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TPhoneNumberType</apiname></xref> is
-used to specify the type of phone number for some of the methods below. </p> <table id="GUID-FD36C6FF-407D-5705-AE6E-62B2EC9D0C4E-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-3-4">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Method name</entry>
-<entry>Details</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>static TBool ParsePhoneNumber(TDes&amp; aNumber,      
-               TPhoneNumberType aType)</codeph>  </p> </entry>
-<entry><p>Removes irrelevant characters and white space from the supplied
-phone number. Allowed characters are determined by phone number type, in other
-words, the <codeph>aType</codeph> parameter. For example, parsing the number <codeph>+358
-(40) 123 467</codeph> results in the number <codeph>+35840123467</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>static TBool IsValidPhoneNumber(const TDesC&amp; aNumber,
-                     TPhoneNumberType aType)</codeph>  </p> </entry>
-<entry><p>Checks if the supplied phone number is a valid phone number of the
-supplied type. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>TBool IsValidPhoneNumber(const TDesC&amp; aNumber, const
-                     TDesC&amp; aValidChars)</codeph>  </p> </entry>
-<entry><p>Checks if the supplied phone number is a valid phone number. The
-phone number is valid if it contains only characters specified by the parameter <codeph>aValidChars.</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>static void ParseInvalidChars(TDes&amp; aNumber, const
-                     TDesC&amp; aInvalidChars)</codeph>  </p> </entry>
-<entry><p>Removes the specified invalid characters from the supplied phone
-number string. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Example</b> </p> <p>The following example shows how to use
-the <codeph>TulPhoneNumberUtils</codeph> class parsing methods: </p> <codeblock id="GUID-BE0A3654-7CDF-536E-9392-D884E557163D-GENID-1-8-1-6-1-1-4-1-7-1-6-1-2-3-7" xml:space="preserve">TBuf&lt;50&gt; number = _L("+358 (40) 123 132");
-TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
-                        TulPhoneNumberUtils::EPlainPhoneNumber );
-// validNumber == ETrue;
-// number == "+35840123132"
-
-SendSMS(number) // etc..
-
-// OR
-
-TBuf&lt;50&gt; number = _L("+358 (40) 123p132"); // note 'p'
-TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
-                        TulPhoneNumberUtils::EPlainPhoneNumber );
-
-// validNumber == EFalse;
-// number == "+358 (40) 123p132" // unchanged
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6501FAFF-6E21-5BC8-BA85-B1B4CE1AC6A7" xml:lang="en"><title>Phone
+number utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-648FA965-ED6E-432E-BE02-0AD632DA2630"><title>Purpose</title> <p>The
+Phone Number Utility is part of the Symbian Text Utility Component (<codeph>etul.dll</codeph>)
+and it offers methods for parsing and validating phone numbers. </p> <p>Examples
+of valid phone numbers: </p> <ul>
+<li id="GUID-C6D1DCE8-CC29-5C1D-840F-E22390F3F878"><p>1. +358501234567 </p> </li>
+<li id="GUID-912697C8-0BFF-57BA-9B08-7D760F4E4F6F"><p>2. +358 (50) 123 4567 </p> </li>
+</ul> <p>Even though both of the above examples are valid phone numbers, only
+the first one is accepted as a phone number by many systems. To convert the
+second number to the first number, parsing methods of Phone Number Utility
+can be used. </p> </section>
+<section id="GUID-CB2CAEEF-131E-48F2-A53E-3716C386E7C8"><title>Architectural
+Relationships</title> <p>The <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
+implements the static methods that make up the interface. </p> <p>Phone Number
+Utility can be accessed through the <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref> class
+that is defined in the header <codeph>tulphonenumberutils.h</codeph>. This
+utility is linked to the <codeph>etul.lib</codeph> library. </p> </section>
+<section id="GUID-0C7FB3A9-2B7A-4576-B4A0-CDF706769D2C"><title>Description</title> <p><b>Method
+Information</b> </p> <p>The enumerated type <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TPhoneNumberType</apiname></xref> is
+used to specify the type of phone number for some of the methods below. </p> <table id="GUID-FD36C6FF-407D-5705-AE6E-62B2EC9D0C4E">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Method name</entry>
+<entry>Details</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <codeph>static TBool ParsePhoneNumber(TDes&amp; aNumber,      
+               TPhoneNumberType aType)</codeph>  </p> </entry>
+<entry><p>Removes irrelevant characters and white space from the supplied
+phone number. Allowed characters are determined by phone number type, in other
+words, the <codeph>aType</codeph> parameter. For example, parsing the number <codeph>+358
+(40) 123 467</codeph> results in the number <codeph>+35840123467</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>static TBool IsValidPhoneNumber(const TDesC&amp; aNumber,
+                     TPhoneNumberType aType)</codeph>  </p> </entry>
+<entry><p>Checks if the supplied phone number is a valid phone number of the
+supplied type. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TBool IsValidPhoneNumber(const TDesC&amp; aNumber, const
+                     TDesC&amp; aValidChars)</codeph>  </p> </entry>
+<entry><p>Checks if the supplied phone number is a valid phone number. The
+phone number is valid if it contains only characters specified by the parameter <codeph>aValidChars.</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>static void ParseInvalidChars(TDes&amp; aNumber, const
+                     TDesC&amp; aInvalidChars)</codeph>  </p> </entry>
+<entry><p>Removes the specified invalid characters from the supplied phone
+number string. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Example</b> </p> <p>The following example shows how to use
+the <codeph>TulPhoneNumberUtils</codeph> class parsing methods: </p> <codeblock id="GUID-BE0A3654-7CDF-536E-9392-D884E557163D" xml:space="preserve">TBuf&lt;50&gt; number = _L("+358 (40) 123 132");
+TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
+                        TulPhoneNumberUtils::EPlainPhoneNumber );
+// validNumber == ETrue;
+// number == "+35840123132"
+
+SendSMS(number) // etc..
+
+// OR
+
+TBuf&lt;50&gt; number = _L("+358 (40) 123p132"); // note 'p'
+TBool validNumber = TulPhoneNumberUtils::ParsePhoneNumber(number,
+                        TulPhoneNumberUtils::EPlainPhoneNumber );
+
+// validNumber == EFalse;
+// number == "+358 (40) 123p132" // unchanged
+</codeblock> <p>For more information on individual methods, please see the
+reference API for <xref href="GUID-2ABFC65A-FA52-36AB-8910-99D3A10A2D66.dita"><apiname>TulPhoneNumberUtils</apiname></xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1" xml:lang="en"><title>CONE
-resource loader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-57F77D80-D411-48CE-9C2F-2E274027D791-GENID-1-8-1-3-1-1-7-1-5-1-2-1"><title>Purpose</title> <p>The CONE Resource Loader utility is part
-of the Symbian CONE component, and it offers methods for opening and closing
-resource files. The actual reading of resources from an opened resource file
-is done using various <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> provided
-resource-reading methods. </p> </section>
-<section id="GUID-691C3034-6DBE-4C5A-8F6A-E18C805EA4EE-GENID-1-8-1-3-1-1-7-1-5-1-2-2"><title>Architectural Relationships</title> <p>This utility is implemented
-as a single class, <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>.
-Access to the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> instance
-is required in order to use this utility. </p> <p>CONE Resource Loader can
-be accessed through the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class
-that is defined in the header <codeph>CoeUtils.h</codeph>. The actual component
-is linked to the <codeph>cone.dll</codeph> library. </p> </section>
-<section id="GUID-5B6C86F8-C914-4329-891A-20088D589EC3-GENID-1-8-1-3-1-1-7-1-5-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>CONE Resource
-Loader functionality can be accessed via public methods on an <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> instance. </p> <p>To use, an instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> is
-first created. Then calling either one of the open methods of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> opens
-the resource file. After the resource file is no longer needed, it must be
-closed. </p> <p>A single instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> can
-only have a maximum of one resource file open at any time. If multiple simultaneously
-open files are required, instantiate a separate <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> for
-each required file. </p> <p><b>Example</b> </p> <p>The following example shows
-how to use the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class: </p> <codeblock id="GUID-8F442DC2-E73B-537A-9A32-9C61280B8FF6-GENID-1-8-1-3-1-1-7-1-5-1-2-3-8" xml:space="preserve">#include &lt;CoeUtils.h&gt;
-
-// … Other code …
-
-// Get CCoeEnv instance
-CEikonEnv* eikEnv = CEikonEnv::Static();
-
-// Initialize loader
-RCoeResourceLoader rLoader(eikEnv);
-
-// Open resource file
-_LIT( KSampleResourceFileName, "Z:\\System\\Apps\\sample\\sample.rsc" );
-TFileName fileName(KSampleResourceFileName);
-rLoader.OpenL(fileName);
-
-// Push resource loader to cleanup stack, so that it will always be properly 
-// closed when popped.
-CleanupClosePushL(rLoader);
-
-// Read a resource   
-iSomeArray = eikEnv-&gt;ReadDesC16ArrayResourceL(R_SOME_RESOURCE);
-
-// Pop and destroy rLoader from stack. 
-// This also calls close on rLoader since CleanupClosePushL was used.
-CleanupStack::PopAndDestroy(); // rLoader
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-6-1-1-4-1-6-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-6-1-1-4-1-6-1-5-1" xml:lang="en"><title>CONE
-resource loader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-57F77D80-D411-48CE-9C2F-2E274027D791-GENID-1-8-1-6-1-1-4-1-6-1-5-1-2-1"><title>Purpose</title> <p>The CONE Resource Loader utility is part
-of the Symbian CONE component, and it offers methods for opening and closing
-resource files. The actual reading of resources from an opened resource file
-is done using various <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> provided
-resource-reading methods. </p> </section>
-<section id="GUID-691C3034-6DBE-4C5A-8F6A-E18C805EA4EE-GENID-1-8-1-6-1-1-4-1-6-1-5-1-2-2"><title>Architectural Relationships</title> <p>This utility is implemented
-as a single class, <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>.
-Access to the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> instance
-is required in order to use this utility. </p> <p>CONE Resource Loader can
-be accessed through the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class
-that is defined in the header <codeph>CoeUtils.h</codeph>. The actual component
-is linked to the <codeph>cone.dll</codeph> library. </p> </section>
-<section id="GUID-5B6C86F8-C914-4329-891A-20088D589EC3-GENID-1-8-1-6-1-1-4-1-6-1-5-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>CONE Resource
-Loader functionality can be accessed via public methods on an <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> instance. </p> <p>To use, an instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> is
-first created. Then calling either one of the open methods of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> opens
-the resource file. After the resource file is no longer needed, it must be
-closed. </p> <p>A single instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> can
-only have a maximum of one resource file open at any time. If multiple simultaneously
-open files are required, instantiate a separate <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> for
-each required file. </p> <p><b>Example</b> </p> <p>The following example shows
-how to use the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class: </p> <codeblock id="GUID-8F442DC2-E73B-537A-9A32-9C61280B8FF6-GENID-1-8-1-6-1-1-4-1-6-1-5-1-2-3-8" xml:space="preserve">#include &lt;CoeUtils.h&gt;
-
-// … Other code …
-
-// Get CCoeEnv instance
-CEikonEnv* eikEnv = CEikonEnv::Static();
-
-// Initialize loader
-RCoeResourceLoader rLoader(eikEnv);
-
-// Open resource file
-_LIT( KSampleResourceFileName, "Z:\\System\\Apps\\sample\\sample.rsc" );
-TFileName fileName(KSampleResourceFileName);
-rLoader.OpenL(fileName);
-
-// Push resource loader to cleanup stack, so that it will always be properly 
-// closed when popped.
-CleanupClosePushL(rLoader);
-
-// Read a resource   
-iSomeArray = eikEnv-&gt;ReadDesC16ArrayResourceL(R_SOME_RESOURCE);
-
-// Pop and destroy rLoader from stack. 
-// This also calls close on rLoader since CleanupClosePushL was used.
-CleanupStack::PopAndDestroy(); // rLoader
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-651C2913-2AB9-5873-B296-5C4233967F21.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-651C2913-2AB9-5873-B296-5C4233967F21" xml:lang="en"><title>CONE
+resource loader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-57F77D80-D411-48CE-9C2F-2E274027D791"><title>Purpose</title> <p>The CONE Resource Loader utility is part
+of the Symbian CONE component, and it offers methods for opening and closing
+resource files. The actual reading of resources from an opened resource file
+is done using various <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> provided
+resource-reading methods. </p> </section>
+<section id="GUID-691C3034-6DBE-4C5A-8F6A-E18C805EA4EE"><title>Architectural Relationships</title> <p>This utility is implemented
+as a single class, <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>.
+Access to the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>CCoeEnv</apiname></xref> instance
+is required in order to use this utility. </p> <p>CONE Resource Loader can
+be accessed through the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class
+that is defined in the header <codeph>CoeUtils.h</codeph>. The actual component
+is linked to the <codeph>cone.dll</codeph> library. </p> </section>
+<section id="GUID-5B6C86F8-C914-4329-891A-20088D589EC3"><title>Description</title> <p><b>Usage</b> </p> <p>CONE Resource
+Loader functionality can be accessed via public methods on an <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> instance. </p> <p>To use, an instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> is
+first created. Then calling either one of the open methods of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> opens
+the resource file. After the resource file is no longer needed, it must be
+closed. </p> <p>A single instance of <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> can
+only have a maximum of one resource file open at any time. If multiple simultaneously
+open files are required, instantiate a separate <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> for
+each required file. </p> <p><b>Example</b> </p> <p>The following example shows
+how to use the <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref> class: </p> <codeblock id="GUID-8F442DC2-E73B-537A-9A32-9C61280B8FF6" xml:space="preserve">#include &lt;CoeUtils.h&gt;
+
+// … Other code …
+
+// Get CCoeEnv instance
+CEikonEnv* eikEnv = CEikonEnv::Static();
+
+// Initialize loader
+RCoeResourceLoader rLoader(eikEnv);
+
+// Open resource file
+_LIT( KSampleResourceFileName, "Z:\\System\\Apps\\sample\\sample.rsc" );
+TFileName fileName(KSampleResourceFileName);
+rLoader.OpenL(fileName);
+
+// Push resource loader to cleanup stack, so that it will always be properly 
+// closed when popped.
+CleanupClosePushL(rLoader);
+
+// Read a resource   
+iSomeArray = eikEnv-&gt;ReadDesC16ArrayResourceL(R_SOME_RESOURCE);
+
+// Pop and destroy rLoader from stack. 
+// This also calls close on rLoader since CleanupClosePushL was used.
+CleanupStack::PopAndDestroy(); // rLoader
+</codeblock> <p>For more information on individual methods, please see the
+reference API for <xref href="GUID-D2A3BE13-6CD9-3418-AA81-4466B76CF844.dita"><apiname>RCoeResourceLoader</apiname></xref>. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF" xml:lang="en"><title>Flipping
-and Rotating an External Surface</title><shortdesc>This topic provides an example of flipping and rotating a surface
-in order to mirror the camera viewfinder during video telephony. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: ScreenPlay. <b>Target audience</b>: Device
-creators. </p>
-<p>When users use the camera at the front of their phone during video telephony,
-they expect their image to be mirrored like when they look in a mirror. The
-camera viewfinder renders its content to a graphics surface which is displayed
-in a window by setting it as the background surface. To mirror the viewfinder
-content, first flip the surface and then rotate it by 180°. </p>
-<fig id="GUID-87C0B943-81DC-5AB8-BD08-254811F511B5">
-<title>           Mirroring          </title>
-<image href="GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e200429_href.jpg" placement="inline"/>
-</fig>
-<p>The following example code assumes that the surface already exists. Call <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-F42D5405-2144-34AB-B3FE-C1D76C2A3B31"><apiname>TSurfaceConfiguration::SetFlip()</apiname></xref> to
-flip the surface, then call <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-A7CC9BAA-301D-3006-AAA8-6549B163A448"><apiname>TSurfaceConfiguration::SetOrientation()</apiname></xref> to
-rotate the flipped surface by 180°. Finally bind the surface to the window.
-If necessary, set attributes such as extent to the surface configuration. </p>
-<codeblock id="GUID-EE5C2403-E4BC-503B-B49C-1580AA32DA7A" xml:space="preserve">TSurfaceConfiguration config;
-RWindow iWindow;
-
-// Set the surface ID.
-config.SetSurfaceId(iSurfaceId);
-
-// Get the window size and set the extent.
-const TRect windowSize(iWindow-&gt;Size());
-config.SetExtent(windowSize);
-
-// Set the flipping
-config.SetFlip(ETrue);
-
-// Rotate the flipped surface by 180°
-config.SetOrientation(CFbsBitGc::EGraphicsOrientationRotated180);
-
-// Bind the surface to the window using the configuration
-iWindow.SetBackgroundSurface(config, ETrue);</codeblock>
-</conbody><related-links>
-<link href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita"><linktext>External
-Surfaces                 Overview</linktext></link>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-652DA0DD-AB1D-58A4-A6D2-27B5BAA506FF" xml:lang="en"><title>Flipping
+and Rotating an External Surface</title><shortdesc>This topic provides an example of flipping and rotating a surface
+in order to mirror the camera viewfinder during video telephony. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: ScreenPlay. <b>Target audience</b>: Device
+creators. </p>
+<p>When users use the camera at the front of their phone during video telephony,
+they expect their image to be mirrored like when they look in a mirror. The
+camera viewfinder renders its content to a graphics surface which is displayed
+in a window by setting it as the background surface. To mirror the viewfinder
+content, first flip the surface and then rotate it by 180°. </p>
+<fig id="GUID-87C0B943-81DC-5AB8-BD08-254811F511B5">
+<title>           Mirroring          </title>
+<image href="GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e195421_href.jpg" placement="inline"/>
+</fig>
+<p>The following example code assumes that the surface already exists. Call <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-F42D5405-2144-34AB-B3FE-C1D76C2A3B31"><apiname>TSurfaceConfiguration::SetFlip()</apiname></xref> to
+flip the surface, then call <xref href="GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA.dita#GUID-59A10068-E37A-37CF-85C9-36D8DA6619FA/GUID-A7CC9BAA-301D-3006-AAA8-6549B163A448"><apiname>TSurfaceConfiguration::SetOrientation()</apiname></xref> to
+rotate the flipped surface by 180°. Finally bind the surface to the window.
+If necessary, set attributes such as extent to the surface configuration. </p>
+<codeblock id="GUID-EE5C2403-E4BC-503B-B49C-1580AA32DA7A" xml:space="preserve">TSurfaceConfiguration config;
+RWindow iWindow;
+
+// Set the surface ID.
+config.SetSurfaceId(iSurfaceId);
+
+// Get the window size and set the extent.
+const TRect windowSize(iWindow-&gt;Size());
+config.SetExtent(windowSize);
+
+// Set the flipping
+config.SetFlip(ETrue);
+
+// Rotate the flipped surface by 180°
+config.SetOrientation(CFbsBitGc::EGraphicsOrientationRotated180);
+
+// Bind the surface to the window using the configuration
+iWindow.SetBackgroundSurface(config, ETrue);</codeblock>
+</conbody><related-links>
+<link href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita"><linktext>External
+Surfaces                 Overview</linktext></link>
+
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e40462_href.png has changed
Binary file Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e46022_href.png has changed
Binary file Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e57538_href.png has changed
Binary file Symbian3/SDK/Source/GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e74290_href.png has changed
Binary file Symbian3/SDK/Source/GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e286968_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e290601_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e308626_href.png has changed
Binary file Symbian3/SDK/Source/GUID-65885916-0242-5DDB-9D88-EB214096C4DF_d0e315020_href.png has changed
--- a/Symbian3/SDK/Source/GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,77 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579" xml:lang="en"><title>Windows
-and panes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The display layouts are hierarchically organized. The layouts are built
-using components called windows and panes.</p>
-<table id="GUID-4E9DAC1B-1835-4838-ADBA-34EA35E77DF9"><title>Windows and panes</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.34*"/><colspec colname="col2" colwidth="1.66*"/>
-<thead>
-<row>
-<entry>Window / Pane</entry>
-<entry><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Screen</p></entry>
-<entry><p>The screen is the topmost display component, corresponding to the
-entire pixel area of the physical screen.</p></entry>
-</row>
-<row>
-<entry><p>Window</p></entry>
-<entry><p>A window is a component that has no parent except the screen. Typically,
-a window fills up the entire screen, but there are also smaller (temporary)
-windows that take up only a part of the screen, leaving other parts of the
-screen visible around themselves. Each application runs in a window of its
-own. Applications can also use other temporary windows.</p></entry>
-</row>
-<row>
-<entry><p>Pane</p></entry>
-<entry><p>A pane is a subcomponent of a window. A window may contain several
-panes, and each pane may contain further sub-panes and so on. A bottom level
-component that cannot have a sub-component can be called an element.</p></entry>
-</row>
-<row>
-<entry><p>Application window</p></entry>
-<entry><p>An application window is a main window filling up the entire screen.
-It is usually not used directly for display, but just as a parent for the
-various panes. A typical application window is divided into the following
-panes:<ul>
-<li><p/>Status pane</li>
-<li><p/>Main pane</li>
-<li><p/>Control pane</li>
-</ul>See <xref href="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita">Main pane</xref> , <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref> and <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control pane</xref> for more
-detailed descriptions on each of these panes.</p></entry>
-</row>
-<row>
-<entry><p>Pop-up window</p></entry>
-<entry><p>A pop-up window must not fill the entire screen; the pop-up window
-has a frame, and typically the underlying application is partly visible around
-the pop-up window. Pop-up windows are typically used in temporary states.
-Back stepping should not usually lead to a pop-up window. Detailed information
-on the various pop-up windows can be found in <xref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita">Pop-up
-windows</xref>.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-257C16FF-DE8E-4942-BB99-B013D7E1AD28">
-<title>Panes</title>
-<image href="GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e72000_href.png" placement="inline"/>
-</fig>
-<section id="GUID-EA67A1C1-D843-48BF-BC32-BB8225B65220"><title>Using
-windows and panes in C++ applications</title><p>Windows and panes use the
-Symbian application and UI frameworks. For implementation information, see <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application and UI framework
-implementation considerations</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-659E2A30-C2E0-4E5A-AA9F-50EBEC7E9579" xml:lang="en"><title>Windows
+and panes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The display layouts are hierarchically organized. The layouts are built
+using components called windows and panes.</p>
+<table id="GUID-4E9DAC1B-1835-4838-ADBA-34EA35E77DF9"><title>Windows and panes</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.34*"/><colspec colname="col2" colwidth="1.66*"/>
+<thead>
+<row>
+<entry>Window / Pane</entry>
+<entry><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Screen</p></entry>
+<entry><p>The screen is the topmost display component, corresponding to the
+entire pixel area of the physical screen.</p></entry>
+</row>
+<row>
+<entry><p>Window</p></entry>
+<entry><p>A window is a component that has no parent except the screen. Typically,
+a window fills up the entire screen, but there are also smaller (temporary)
+windows that take up only a part of the screen, leaving other parts of the
+screen visible around themselves. Each application runs in a window of its
+own. Applications can also use other temporary windows.</p></entry>
+</row>
+<row>
+<entry><p>Pane</p></entry>
+<entry><p>A pane is a subcomponent of a window. A window may contain several
+panes, and each pane may contain further sub-panes and so on. A bottom level
+component that cannot have a sub-component can be called an element.</p></entry>
+</row>
+<row>
+<entry><p>Application window</p></entry>
+<entry><p>An application window is a main window filling up the entire screen.
+It is usually not used directly for display, but just as a parent for the
+various panes. A typical application window is divided into the following
+panes:<ul>
+<li><p/>Status pane</li>
+<li><p/>Main pane</li>
+<li><p/>Control pane</li>
+</ul>See <xref href="GUID-08B878D0-C0DA-46CC-ACC2-E576E5A3D937.dita">Main pane</xref> , <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref> and <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control pane</xref> for more
+detailed descriptions on each of these panes.</p></entry>
+</row>
+<row>
+<entry><p>Pop-up window</p></entry>
+<entry><p>A pop-up window must not fill the entire screen; the pop-up window
+has a frame, and typically the underlying application is partly visible around
+the pop-up window. Pop-up windows are typically used in temporary states.
+Back stepping should not usually lead to a pop-up window. Detailed information
+on the various pop-up windows can be found in <xref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita">Pop-up
+windows</xref>.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-257C16FF-DE8E-4942-BB99-B013D7E1AD28">
+<title>Panes</title>
+<image href="GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e66754_href.png" placement="inline"/>
+</fig>
+<section id="GUID-EA67A1C1-D843-48BF-BC32-BB8225B65220"><title>Using
+windows and panes in applications</title><p>Windows and panes
+use the Symbian application and UI frameworks. For implementation information,
+see <xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application and
+UI framework implementation considerations</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e77550_href.png has changed
Binary file Symbian3/SDK/Source/GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e84262_href.png has changed
--- a/Symbian3/SDK/Source/GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,110 +1,110 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741" xml:lang="en"><title>Location
-Acquisition API Overview</title><shortdesc>Applications use the Location Acquisition API to obtain location
-fixes from the LBS subsystem. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>This document describes the Location Acquisition
-API. Client applications use the API to obtain the location of the mobile
-device and to discover the type and status of the available Positioning Modules. </p> </section>
-<section><title>Introduction</title> <p>The Location Acquisition API defines
-the client application view of the LBS Location Server. The API is a standard
-Symbian platform client/server implementation. Applications use the API to: </p> <ul>
-<li id="GUID-600F2A1E-DADF-5172-B1FC-A3C2190E61DF"><p>Obtain the location
-of the mobile device </p> <p>The Location Acquisition API is designed so that
-client applications can always make the same API calls to obtain the device
-location irrespective of the underlying positioning technologies used by the
-Location Server. </p> </li>
-<li id="GUID-A6480A42-E1FF-5DAF-8F1E-3C490D9332E5"><p>Discover the type and
-status of available positioning technologies </p> <p>The API allows applications
-to discover the available Positioning Modules and to receive notification
-of changes in their status. Applications can also make a choice of the specific
-Positioning Module to use to get the device location. </p> </li>
-</ul> </section>
-<section><title>Key concepts</title> <dl>
-<dlentry>
-<dt>Location Server</dt>
-<dd><p>The Symbian platform server used by client applications to get location
-information. The Location Server can use multiple Positioning Modules to obtain
-location information. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Positioning Module</dt>
-<dd><p>An ECom plug-in that handles requests for location information and
-interfaces with positioning technology hardware. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>API summary</title> <p>Figure 1 illustrates the client interface
-classes of the Location Acquisition API including the data classes that hold
-basic location information. The classes shown are defined in the header file <filepath>lbs.h</filepath>.
-See <xref href="GUID-0D5692FB-305E-58B2-B105-B309BB9AE38D.dita">Location Acquisition
-API reference</xref> for a full list of all the API header files. </p> <p>The
-following is a brief description of some of the most important API classes: </p> <ul>
-<li id="GUID-CBE6C60B-B28F-5CBC-93BE-E7DC8E2CE678"><p> <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref> is
-used by client applications to create a session with the Location Server.
-This class is also used to get details of the positioning technology modules
-available and their status. Opening a session with the Location Server may
-generate a standard client/server error code which a client application must
-check for. </p> </li>
-<li id="GUID-B6A6ECBF-1FF9-505A-8B45-8968DA1612AC"><p> <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> is
-used by client applications to create a subsession with the Location Server.
-A client application uses this class to request location information and set
-the frequency of location information updates. In addition to standard client/server
-error codes, calls to <codeph>RPositioner</codeph> may generate LBS specific
-error codes (defined in <filepath>LbsErrors.h</filepath>) or error codes generated
-by Positioning Modules. </p> </li>
-<li id="GUID-EB6A67CE-5F09-5A9E-86FE-D2A3337B6FD9"><p> <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> is
-a simple data wrapper class. An empty object of this type is passed to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> by
-a client application when basic location information is required. The returned
-object holds the identifier of the positioning technology module used to obtain
-the position data. The position data is held in a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object. </p> <p>See <xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position data and info classes</xref> for
-an overview of the data classes that hold position data. </p> </li>
-<li id="GUID-CED05369-EC6E-5C0D-AAD5-1A34A2BFFA7E"><p> <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> is
-the class that holds basic position data: latitude, longitude and altitude
-(and their accuracy) and the time at which the location fix was obtained.
-See <xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref> for
-more information about how co-ordinate values are represented in this class. </p> </li>
-</ul> <fig id="GUID-4F3214DA-0D42-5FFB-8392-3A29F743E6F6">
-<title>              Figure 1. RPositionServer and RPositioner with basic
-position data              classes            </title>
-<image href="GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e269943_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Platform security capabilities</title> <p>Applications must
-have the <codeph>Location</codeph> capability to use the Location Acquisition
-API. </p> </section>
-<section><title>Typical uses</title> <p> <i>Client applications use the API
-in three ways:</i>  </p> <ol id="GUID-B37E7969-ADCE-56FD-ADE6-6A0D85A6C608">
-<li id="GUID-E04AA9F3-2013-5F64-B880-01BAE092F07C"><p>To get location information. </p> <p>The
-main purpose of the Location Acquisition API is to provide location information
-to client applications. </p> <p>See <xref href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita">How
-to get location information</xref> for examples of how to get basic location
-information using the API. </p> </li>
-<li id="GUID-25454FD2-14E2-590E-B520-D1241046E24D"><p>To get positioning technology
-module information. </p> <p>The API provides functions to allow discovery
-of the capabilities and quality of information provided by the set of positioning
-technology modules. </p> <p>See <xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning
-technology modules</xref> for a description of the positioning technology
-module information which is accessible to client applications using the API. </p> <p>See <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to use module information</xref> for
-an example of how to obtain information about the available modules. </p> </li>
-<li id="GUID-558D8BE4-E8B9-55B7-9CA5-10A35B0D2664"><p>To receive notification
-of positioning technology module status changes. </p> <p>An application may
-wish to be informed when a module becomes available or unavailable. For example,
-an application may want to know when GPS becomes available as this may increase
-its capabilities and so change its behaviour. The API provides a way for client
-applications to receive notification of module status changes. </p> <p>See <xref href="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita">Positioning technology module
-status</xref> for a description of Positioning Module status and events. </p> <p>See <xref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita">How to get module status
-change notifications</xref> for an example of how to get notification of module
-status changes. </p> </li>
-</ol> </section>
-</conbody><related-links>
-<link href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita"><linktext>Position
-Data and Info Classes</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741" xml:lang="en"><title>Location
+Acquisition API Overview</title><shortdesc>Applications use the Location Acquisition API to obtain location
+fixes from the LBS subsystem. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>This document describes the Location Acquisition
+API. Client applications use the API to obtain the location of the mobile
+device and to discover the type and status of the available Positioning Modules. </p> </section>
+<section><title>Introduction</title> <p>The Location Acquisition API defines
+the client application view of the LBS Location Server. The API is a standard
+Symbian platform client/server implementation. Applications use the API to: </p> <ul>
+<li id="GUID-600F2A1E-DADF-5172-B1FC-A3C2190E61DF"><p>Obtain the location
+of the mobile device </p> <p>The Location Acquisition API is designed so that
+client applications can always make the same API calls to obtain the device
+location irrespective of the underlying positioning technologies used by the
+Location Server. </p> </li>
+<li id="GUID-A6480A42-E1FF-5DAF-8F1E-3C490D9332E5"><p>Discover the type and
+status of available positioning technologies </p> <p>The API allows applications
+to discover the available Positioning Modules and to receive notification
+of changes in their status. Applications can also make a choice of the specific
+Positioning Module to use to get the device location. </p> </li>
+</ul> </section>
+<section><title>Key concepts</title> <dl>
+<dlentry>
+<dt>Location Server</dt>
+<dd><p>The Symbian platform server used by client applications to get location
+information. The Location Server can use multiple Positioning Modules to obtain
+location information. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Positioning Module</dt>
+<dd><p>An ECom plug-in that handles requests for location information and
+interfaces with positioning technology hardware. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>API summary</title> <p>Figure 1 illustrates the client interface
+classes of the Location Acquisition API including the data classes that hold
+basic location information. The classes shown are defined in the header file <filepath>lbs.h</filepath>.
+See <xref href="GUID-0D5692FB-305E-58B2-B105-B309BB9AE38D.dita">Location Acquisition
+API reference</xref> for a full list of all the API header files. </p> <p>The
+following is a brief description of some of the most important API classes: </p> <ul>
+<li id="GUID-CBE6C60B-B28F-5CBC-93BE-E7DC8E2CE678"><p> <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref> is
+used by client applications to create a session with the Location Server.
+This class is also used to get details of the positioning technology modules
+available and their status. Opening a session with the Location Server may
+generate a standard client/server error code which a client application must
+check for. </p> </li>
+<li id="GUID-B6A6ECBF-1FF9-505A-8B45-8968DA1612AC"><p> <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> is
+used by client applications to create a subsession with the Location Server.
+A client application uses this class to request location information and set
+the frequency of location information updates. In addition to standard client/server
+error codes, calls to <codeph>RPositioner</codeph> may generate LBS specific
+error codes (defined in <filepath>LbsErrors.h</filepath>) or error codes generated
+by Positioning Modules. </p> </li>
+<li id="GUID-EB6A67CE-5F09-5A9E-86FE-D2A3337B6FD9"><p> <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> is
+a simple data wrapper class. An empty object of this type is passed to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> by
+a client application when basic location information is required. The returned
+object holds the identifier of the positioning technology module used to obtain
+the position data. The position data is held in a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object. </p> <p>See <xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position data and info classes</xref> for
+an overview of the data classes that hold position data. </p> </li>
+<li id="GUID-CED05369-EC6E-5C0D-AAD5-1A34A2BFFA7E"><p> <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> is
+the class that holds basic position data: latitude, longitude and altitude
+(and their accuracy) and the time at which the location fix was obtained.
+See <xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref> for
+more information about how co-ordinate values are represented in this class. </p> </li>
+</ul> <fig id="GUID-4F3214DA-0D42-5FFB-8392-3A29F743E6F6">
+<title>              Figure 1. RPositionServer and RPositioner with basic
+position data              classes            </title>
+<image href="GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e266235_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Platform security capabilities</title> <p>Applications must
+have the <codeph>Location</codeph> capability to use the Location Acquisition
+API. </p> </section>
+<section><title>Typical uses</title> <p> <i>Client applications use the API
+in three ways:</i>  </p> <ol id="GUID-B37E7969-ADCE-56FD-ADE6-6A0D85A6C608">
+<li id="GUID-E04AA9F3-2013-5F64-B880-01BAE092F07C"><p>To get location information. </p> <p>The
+main purpose of the Location Acquisition API is to provide location information
+to client applications. </p> <p>See <xref href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita">How
+to get location information</xref> for examples of how to get basic location
+information using the API. </p> </li>
+<li id="GUID-25454FD2-14E2-590E-B520-D1241046E24D"><p>To get positioning technology
+module information. </p> <p>The API provides functions to allow discovery
+of the capabilities and quality of information provided by the set of positioning
+technology modules. </p> <p>See <xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning
+technology modules</xref> for a description of the positioning technology
+module information which is accessible to client applications using the API. </p> <p>See <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to use module information</xref> for
+an example of how to obtain information about the available modules. </p> </li>
+<li id="GUID-558D8BE4-E8B9-55B7-9CA5-10A35B0D2664"><p>To receive notification
+of positioning technology module status changes. </p> <p>An application may
+wish to be informed when a module becomes available or unavailable. For example,
+an application may want to know when GPS becomes available as this may increase
+its capabilities and so change its behaviour. The API provides a way for client
+applications to receive notification of module status changes. </p> <p>See <xref href="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita">Positioning technology module
+status</xref> for a description of Positioning Module status and events. </p> <p>See <xref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita">How to get module status
+change notifications</xref> for an example of how to get notification of module
+status changes. </p> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita"><linktext>Position
+Data and Info Classes</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C" xml:lang="en"><title>Graphics
-and Drawing Overview</title><shortdesc>This topic provides an introduction to drawing graphics to the
-screen. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target
-audience</b>: Application developers. </p>
-<p>Applications can draw to any <codeph>RDrawableWindow</codeph> —such as
-an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> —via a graphics device, of type <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref>,
-and a graphics context, of type <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>. These classes
-are derived from the <xref href="GUID-B6D4AEE9-5C17-51D9-BBDE-7CCB5218279D.dita">GDI
-component</xref> classes <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>,
-respectively. This means that general drawing functions can be used for drawing
-to windows, as well as to other graphics devices. The Window Server itself
-does not provide the facilities to draw graphics to a physical device. <codeph>CWindowGc</codeph> functions
-are not passed to the Window Server directly. Rather, they are stored in a
-buffer maintained by the Window Server Client API. This buffer is flushed
-to the Window Server only rarely. By this means the context switching involved
-in drawing is minimised, and system performance significantly enhanced. </p>
-<p> <codeph>CWsScreenDeviceminimized</codeph> encapsulates the device-dependent
-aspects of graphics operations. Graphics functions are not carried out directly
-via a <codeph>CWsScreenDevice</codeph>, however, but via a graphics context
-with which it is associated. The graphics context class, <codeph>CWindowGc</codeph>,
-provides a rich set of drawing functions, including functions to draw lines,
-arcs, polygons, text and bitmaps. </p>
-<p>A graphics context contains a collection of configurable parameters concerned
-with graphics, such as pen width, pen color, brush color. It is stored in
-the server, thus reducing the amount of information that has to be sent with
-each graphics call. The graphics call simply specifies the graphics context
-it wishes to use, and a single graphics context can be shared between multiple
-windows. </p>
-<p>To draw to a graphics context it must be associated with a window. Typically
-a graphics context is created when a session is constructed, and that graphics
-context is shared between several windows in the application. When the window
-needs to use the graphics context it calls <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1C0F9DF6-23C2-3707-8F2B-0A738467FF0A"><apiname>CWindowGc::Activate()</apiname></xref>.
-If necessary it can change the graphics context's settings. <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-E977DBB2-8547-3AB7-99E3-9D246DA6CF58"><apiname>CWindowGc::Deactivate()</apiname></xref> should
-be called first if the graphics context is currently active upon another window. </p>
-<p>Several optimizations are used by the Window Server to obtain high-performance
-graphics: </p>
-<ul>
-<li id="GUID-C8AC84D6-AF17-5975-88B8-CC93C499DFA0"><p>Each window is associated
-with an <codeph>RWsSession</codeph> which is in turn associated with a client-side
-buffer. Instead of implementing graphics operations by a direct client-server
-call, which involves expensive context switching, all graphics operations
-are stored as opcodes in the buffer, and the buffer is only flushed in certain
-circumstances. </p> </li>
-<li id="GUID-00B3FC8E-25DE-542F-BF67-0F71CF22526A"><p>The <codeph>CFbsBitmap</codeph> class
-allows a bitmap to be shared between all threads in the system, including
-the client and the Window Server. This sharing is mediated by the <xref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita">Font
-and Bitmap server</xref>. The <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref> class eliminates
-further context switches by taking ownership of the handle of the bitmap.
-Applications can use this class to more efficiently open, blit-to-screen,
-and close a series of bitmaps. Use functions that take a <codeph>CWsBitmap</codeph> in
-preference to those that take a <codeph>CFbsBitmap</codeph>, because they
-are faster. </p> </li>
-<li id="GUID-550D1374-C166-54C6-A055-0CA040691654"><p>A single graphics context
-may be used for drawing to many windows—it is not necessary to have one per
-window. The <codeph>Activate()</codeph> function associates a <codeph>CWindowGc</codeph> with
-a particular window. </p> </li>
-<li id="GUID-91AFC884-0BB2-5A73-B757-94EF1B2328A7"><p>Provided drawing operations
-to an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> are performed as <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">redraw
-drawing</xref>, the Window Server stores the sequence of drawing commands
-that represent the window contents in redraw stores. Then when the Window
-Server needs to repaint the window (because, for example, a dialog box popped
-up over it and has now closed) it simply replays the sequence of stored commands,
-rather than sending a redraw request to the client. This minimizes the number
-of client-server transactions and means that windows are repainted as soon
-as the Window Server detects that they are needed. </p> <p>This means that
-all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing should now be redraw drawing, which
-means that it takes place between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls.
-If you use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref> methods,
-the UI Control Framework (CONE) takes care of this for you. See <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">Redraw
-Drawing</xref> for more information. </p> </li>
-</ul>
-</conbody><related-links>
-<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
-and Drawing </linktext></link>
-<link href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita"><linktext>The UI Control
-Framework (CONE)</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-667E7F90-D6C2-55CE-AE60-6C938072FB9C" xml:lang="en"><title>Graphics
+and Drawing Overview</title><shortdesc>This topic provides an introduction to drawing graphics to the
+screen. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target
+audience</b>: Application developers. </p>
+<p>Applications can draw to any <codeph>RDrawableWindow</codeph> —such as
+an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> —via a graphics device, of type <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref>,
+and a graphics context, of type <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>. These classes
+are derived from the <xref href="GUID-B6D4AEE9-5C17-51D9-BBDE-7CCB5218279D.dita">GDI
+component</xref> classes <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>,
+respectively. This means that general drawing functions can be used for drawing
+to windows, as well as to other graphics devices. The Window Server itself
+does not provide the facilities to draw graphics to a physical device. <codeph>CWindowGc</codeph> functions
+are not passed to the Window Server directly. Rather, they are stored in a
+buffer maintained by the Window Server Client API. This buffer is flushed
+to the Window Server only rarely. By this means the context switching involved
+in drawing is minimised, and system performance significantly enhanced. </p>
+<p> <codeph>CWsScreenDeviceminimized</codeph> encapsulates the device-dependent
+aspects of graphics operations. Graphics functions are not carried out directly
+via a <codeph>CWsScreenDevice</codeph>, however, but via a graphics context
+with which it is associated. The graphics context class, <codeph>CWindowGc</codeph>,
+provides a rich set of drawing functions, including functions to draw lines,
+arcs, polygons, text and bitmaps. </p>
+<p>A graphics context contains a collection of configurable parameters concerned
+with graphics, such as pen width, pen color, brush color. It is stored in
+the server, thus reducing the amount of information that has to be sent with
+each graphics call. The graphics call simply specifies the graphics context
+it wishes to use, and a single graphics context can be shared between multiple
+windows. </p>
+<p>To draw to a graphics context it must be associated with a window. Typically
+a graphics context is created when a session is constructed, and that graphics
+context is shared between several windows in the application. When the window
+needs to use the graphics context it calls <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1C0F9DF6-23C2-3707-8F2B-0A738467FF0A"><apiname>CWindowGc::Activate()</apiname></xref>.
+If necessary it can change the graphics context's settings. <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-E977DBB2-8547-3AB7-99E3-9D246DA6CF58"><apiname>CWindowGc::Deactivate()</apiname></xref> should
+be called first if the graphics context is currently active upon another window. </p>
+<p>Several optimizations are used by the Window Server to obtain high-performance
+graphics: </p>
+<ul>
+<li id="GUID-C8AC84D6-AF17-5975-88B8-CC93C499DFA0"><p>Each window is associated
+with an <codeph>RWsSession</codeph> which is in turn associated with a client-side
+buffer. Instead of implementing graphics operations by a direct client-server
+call, which involves expensive context switching, all graphics operations
+are stored as opcodes in the buffer, and the buffer is only flushed in certain
+circumstances. </p> </li>
+<li id="GUID-00B3FC8E-25DE-542F-BF67-0F71CF22526A"><p>The <codeph>CFbsBitmap</codeph> class
+allows a bitmap to be shared between all threads in the system, including
+the client and the Window Server. This sharing is mediated by the <xref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita">Font
+and Bitmap server</xref>. The <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref> class eliminates
+further context switches by taking ownership of the handle of the bitmap.
+Applications can use this class to more efficiently open, blit-to-screen,
+and close a series of bitmaps. Use functions that take a <codeph>CWsBitmap</codeph> in
+preference to those that take a <codeph>CFbsBitmap</codeph>, because they
+are faster. </p> </li>
+<li id="GUID-550D1374-C166-54C6-A055-0CA040691654"><p>A single graphics context
+may be used for drawing to many windows—it is not necessary to have one per
+window. The <codeph>Activate()</codeph> function associates a <codeph>CWindowGc</codeph> with
+a particular window. </p> </li>
+<li id="GUID-91AFC884-0BB2-5A73-B757-94EF1B2328A7"><p>Provided drawing operations
+to an <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> are performed as <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">redraw
+drawing</xref>, the Window Server stores the sequence of drawing commands
+that represent the window contents in redraw stores. Then when the Window
+Server needs to repaint the window (because, for example, a dialog box popped
+up over it and has now closed) it simply replays the sequence of stored commands,
+rather than sending a redraw request to the client. This minimizes the number
+of client-server transactions and means that windows are repainted as soon
+as the Window Server detects that they are needed. </p> <p>This means that
+all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing should now be redraw drawing, which
+means that it takes place between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls.
+If you use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref> methods,
+the UI Control Framework (CONE) takes care of this for you. See <xref href="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita">Redraw
+Drawing</xref> for more information. </p> </li>
+</ul>
+</conbody><related-links>
+<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
+and Drawing </linktext></link>
+<link href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita"><linktext>The UI Control
+Framework (CONE)</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-669190F8-3BE9-58FC-B689-00F06FDAD74D-master.png has changed
Binary file Symbian3/SDK/Source/GUID-669190F8-3BE9-58FC-B689-00F06FDAD74D_d0e382307_href.png has changed
--- a/Symbian3/SDK/Source/GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE" xml:lang="en"><title>Overview
-of random number generation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-B5BD3E1A-AFBB-5526-B5EA-8FA51A17E596"><title>Overview</title> <p>The
-purpose of the Random Number Generation API is the generation of cryptographically
-strong random numbers. </p> <p>Several cryptographic applications rely upon
-the randomness, unpredictability and irreproducibility of the random number
-generator, such as: </p> <ul>
-<li id="GUID-15685756-F94B-508C-A08C-8F0ECBC1A4AA"><p>one-time pads </p> </li>
-<li id="GUID-7E3ED7CE-65C3-5E8B-9FF0-139763F3E54B"><p>key generation </p> </li>
-<li id="GUID-0C65E7E4-A3F5-5EC4-9851-4A4E3090607B"><p>random nonces </p> </li>
-<li id="GUID-3C16304A-CDA0-5F50-9D6C-D76C2D6EA586"><p>Initialization Vectors
-(IVs) </p> </li>
-<li id="GUID-59F195DE-94E7-56EE-9A7D-EAB5E401DF9A"><p>salts to be hashed with
-passwords </p> </li>
-<li id="GUID-96B7B9D1-AB0D-5A54-9C7F-771008F354C1"><p>unique parameters in
-signing operations. </p> </li>
-</ul> <p>The RNG uses the <xref href="http://www.agner.org/random/" scope="external">RANROT</xref> algorithm
-seeded by random data available on the target hardware (for instance free
-running counters available on ARM processors). <note><p>In order to be <b>fully</b> compliant
-with DSS (Digital Signature Standard), applications using the cryptography
-library must supply a <xref href="http://cr.yp.to/bib/2000/-dss.pdf" scope="external">FIPS-186-2</xref> CR
-1 compliant random number generator. The library provides a mechanism for
-using such a random number generator if required. </p></note></p> </section>
-<section id="GUID-9350FD0E-7F09-5D82-BB91-EC1C8D740DBD"><title>The Random
-Number Generation API</title> <p>The diagram below shows the main classes
-used in the RNG, which are implemented in <filepath>random.dll</filepath>.
-For information on each class see the Cryptography API Reference material. </p> <fig id="GUID-5326D881-8795-5803-8B82-EC02C0C40226">
-<title>              The inheritance hierarchy for the RRandomSession and
-CSystemRandom classes            </title>
-<image href="GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e388684_href.png" placement="inline"/>
-</fig><p><b>How to use TRandom</b> </p> <p> <codeph>TRandom</codeph> is a
-cryptographically stong random number generator. Its declaration is: </p> <codeblock id="GUID-53D847C3-2A1A-51D8-93FA-F68EA2374551" xml:space="preserve">class TRandom
-    {
-public:
-    IMPORT_C static void RandomL(TDes8&amp; aDestination);
-    };</codeblock><note> The function <codeph>TRandom::Random()</codeph> which
-panics rather than leaves when it cannot obtain a random number, is deprecated
-from v9.1 onwards. </note> <p> <codeph>TRandom::RandomL()</codeph> generates
-random bytes by first connecting to the random number generation server (using <codeph>RRandomSession</codeph>).
-If the attempt to connect fails, <codeph>TRandom::RandomL()</codeph> leaves. </p> <p>The
-server fills <codeph>aDestination</codeph> with randomly generated bytes up
-to its current length (not its maximum length). If this fails, <codeph>TRandom::RandomL()</codeph> leaves.
-If <codeph>aDestination</codeph> is 1024 or more bytes long, multiple calls
-are made to the server. Finally, <codeph>TRandom</codeph> closes the session. </p> <p> <codeph>TRandom</codeph> can
-be used like this: </p> <codeblock id="GUID-0472582C-D5BD-520D-848E-9989E8730851" xml:space="preserve">HBufC8* rand = HBufC8::NewLC(5);
-TPtr8 pRand=rand-&gt;Des();
-pRand.SetLength(5);
-TRandom::RandomL(pRand);
-...
-CleanupStack::PopAndDestroy(rand);</codeblock> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-66BBA81D-2488-50B8-8822-43AAAA139DDE" xml:lang="en"><title>Overview
+of random number generation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-B5BD3E1A-AFBB-5526-B5EA-8FA51A17E596"><title>Overview</title> <p>The
+purpose of the Random Number Generation API is the generation of cryptographically
+strong random numbers. </p> <p>Several cryptographic applications rely upon
+the randomness, unpredictability and irreproducibility of the random number
+generator, such as: </p> <ul>
+<li id="GUID-15685756-F94B-508C-A08C-8F0ECBC1A4AA"><p>one-time pads </p> </li>
+<li id="GUID-7E3ED7CE-65C3-5E8B-9FF0-139763F3E54B"><p>key generation </p> </li>
+<li id="GUID-0C65E7E4-A3F5-5EC4-9851-4A4E3090607B"><p>random nonces </p> </li>
+<li id="GUID-3C16304A-CDA0-5F50-9D6C-D76C2D6EA586"><p>Initialization Vectors
+(IVs) </p> </li>
+<li id="GUID-59F195DE-94E7-56EE-9A7D-EAB5E401DF9A"><p>salts to be hashed with
+passwords </p> </li>
+<li id="GUID-96B7B9D1-AB0D-5A54-9C7F-771008F354C1"><p>unique parameters in
+signing operations. </p> </li>
+</ul> <p>The RNG uses the <xref href="http://www.agner.org/random/" scope="external">RANROT</xref> algorithm
+seeded by random data available on the target hardware (for instance free
+running counters available on ARM processors). <note><p>In order to be <b>fully</b> compliant
+with DSS (Digital Signature Standard), applications using the cryptography
+library must supply a <xref href="http://cr.yp.to/bib/2000/-dss.pdf" scope="external">FIPS-186-2</xref> CR
+1 compliant random number generator. The library provides a mechanism for
+using such a random number generator if required. </p></note></p> </section>
+<section id="GUID-9350FD0E-7F09-5D82-BB91-EC1C8D740DBD"><title>The Random
+Number Generation API</title> <p>The diagram below shows the main classes
+used in the RNG, which are implemented in <filepath>random.dll</filepath>.
+For information on each class see the Cryptography API Reference material. </p> <fig id="GUID-5326D881-8795-5803-8B82-EC02C0C40226">
+<title>              The inheritance hierarchy for the RRandomSession and
+CSystemRandom classes            </title>
+<image href="GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e383543_href.png" placement="inline"/>
+</fig><p><b>How to use TRandom</b> </p> <p> <codeph>TRandom</codeph> is a
+cryptographically stong random number generator. Its declaration is: </p> <codeblock id="GUID-53D847C3-2A1A-51D8-93FA-F68EA2374551" xml:space="preserve">class TRandom
+    {
+public:
+    IMPORT_C static void RandomL(TDes8&amp; aDestination);
+    };</codeblock><note> The function <codeph>TRandom::Random()</codeph> which
+panics rather than leaves when it cannot obtain a random number, is deprecated
+from v9.1 onwards. </note> <p> <codeph>TRandom::RandomL()</codeph> generates
+random bytes by first connecting to the random number generation server (using <codeph>RRandomSession</codeph>).
+If the attempt to connect fails, <codeph>TRandom::RandomL()</codeph> leaves. </p> <p>The
+server fills <codeph>aDestination</codeph> with randomly generated bytes up
+to its current length (not its maximum length). If this fails, <codeph>TRandom::RandomL()</codeph> leaves.
+If <codeph>aDestination</codeph> is 1024 or more bytes long, multiple calls
+are made to the server. Finally, <codeph>TRandom</codeph> closes the session. </p> <p> <codeph>TRandom</codeph> can
+be used like this: </p> <codeblock id="GUID-0472582C-D5BD-520D-848E-9989E8730851" xml:space="preserve">HBufC8* rand = HBufC8::NewLC(5);
+TPtr8 pRand=rand-&gt;Des();
+pRand.SetLength(5);
+TRandom::RandomL(pRand);
+...
+CleanupStack::PopAndDestroy(rand);</codeblock> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e351163_href.png has changed
Binary file Symbian3/SDK/Source/GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e357243_href.png has changed
--- a/Symbian3/SDK/Source/GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D" xml:lang="en"><title>Title
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <uicontrol>Title pane</uicontrol> displays a context-dependent application
-title or state name. Title pane in Home screen view can work with touch down
-and release but by default, there is no functionality.</p>
-<fig id="GUID-DB644221-B698-4BAF-8BDC-8A852E4DCEE1">
-<title>Title pane</title>
-<image href="GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e72373_href.png" placement="inline"/>
-</fig>
-<ul>
-<li><p>Typically, the title text is the descriptive name of the current main
-pane view.</p></li>
-<li><p>In an application idle state, the title text is typically the application
-name.</p></li>
-<li><p>In the idle state, the <uicontrol>Title pane</uicontrol> may contain
-an operator logo (left-aligned in the area available) instead of the operator
-name as text.</p></li>
-</ul>
-<section id="GUID-74624CAD-8179-4439-82FC-A88E1C940AAA"><title>Using
-the title pane in C++ applications</title><p>The API to use for the title
-pane component is the Title pane API. For observing title pane touch events,
-use the Title Pane Touch Observer API.</p><p>To use a title pane
-in your application, create an instance of the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html" format="application/java-archive"><codeph>CAknTitlePane</codeph></xref>.</p><p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#7f4e2823b01d379c520327735b1c04e3" format="application/java-archive"><codeph>SetTextL()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html" format="application/java-archive"><codeph>CAknTitlePane</codeph></xref> to set the title pane text and display it. To set the text to scroll
-if it does not fit the title pane text area, set the flag <codeph>aScroll</codeph> to <codeph>ETrue</codeph>.
-To set the text to the default (name of the application), use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#f08a9e4674d01e3cf765c46371527588" format="application/java-archive"><codeph>SetTextToDefault()</codeph></xref>.</p><p>Use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#62828189dbd5025010de7178436dd6db" format="application/java-archive"><codeph>SetPicture()</codeph></xref> to display a picture in the title pane.
-To set the icon from a file, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#56018aed72ff6500af8a5f970a86df1c" format="application/java-archive"><codeph>SetPictureFromFileL()</codeph></xref>. Alternatively, to set a small
-icon to be displayed together with text, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#cc2c91182dafcd7eac0f9cb817453992" format="application/java-archive"><codeph>SetSmallPicture()</codeph></xref>.</p><p>To set the title pane contents
-from a resource file, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html#34a47bf0f5bc9f3c9a1126088ffc78eb" format="application/java-archive"><codeph>SetFromResourceL()</codeph></xref>. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D" xml:lang="en"><title>Title
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <uicontrol>Title pane</uicontrol> displays a context-dependent application
+title or state name. Title pane in Home screen view can work with touch down
+and release but by default, there is no functionality.</p>
+<fig id="GUID-DB644221-B698-4BAF-8BDC-8A852E4DCEE1">
+<title>Title pane</title>
+<image href="GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e67575_href.png" placement="inline"/>
+</fig>
+<ul>
+<li><p>Typically, the title text is the descriptive name of the current main
+pane view.</p></li>
+<li><p>In an application title pane, the title text is typically
+the application name.</p></li>
+<li><p>In the home screen, the <uicontrol>Title pane</uicontrol> may contain
+an operator logo (left-aligned in the area available) instead of the operator
+name as text.</p></li>
+</ul>
+<section id="GUID-74624CAD-8179-4439-82FC-A88E1C940AAA"><title>Using
+the title pane in applications</title><p>The API to use for the title pane
+component is the Title pane API. For observing title pane touch events, use
+the Title Pane Touch Observer API.</p><p>To use a title pane in your application,
+create an instance of the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita"><apiname>CAknTitlePane</apiname></xref> class.</p><p>Use
+the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-F89E2F33-6AB7-3A16-8620-A3FA25347752"><apiname>CAknTitlePane::SetTextL()</apiname></xref> method to set the title pane
+text and display it. To set the text to scroll if it does not fit the title
+pane text area, set the flag <codeph>aScroll</codeph> to <codeph>ETrue</codeph>.
+To set the text to the default (name of the application), use the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-493A6764-24F8-3574-A967-A78005579705"><apiname>CAknTitlePane::SetTextToDefault()</apiname></xref> method.</p><p>Use
+the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-10E096F4-9BDA-34A5-9370-CF50219E33E5"><apiname>CAknTitlePane::SetPicture()</apiname></xref> method to display a picture
+in the title pane. To set the icon from a file, use the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-385EFCB3-092B-346F-8033-9F011F6E89C3"><apiname>CAknTitlePane::SetPictureFromFileL()</apiname></xref> method.
+Alternatively, to set a small icon to be displayed together with text, use
+the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-45AA1B1E-BD7B-36E8-97C2-F8457E891935"><apiname>CAknTitlePane::SetSmallPicture()</apiname></xref> method.</p><p>To set
+the title pane contents from a resource file, use the <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita#GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF/GUID-FC2CD2B6-7DE1-3DBB-9450-12B02E1916D3"><apiname>CAknTitlePane::SetFromResourceL()</apiname></xref> method. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e168995_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e175596_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3" xml:lang="en"><title>Hash (message digest) algorithms</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A cryptographic hash algorithm (also known as a message digest, a one-way function, or simply a hash) takes a variable-length input (the message) and produce a fixed length output known as the hash (or digest) of the input. It is often useful to think of the resulting output as a representation, or fingerprint, of the original input. </p> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-3-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-3-1"><title>Feature Management Overview</title><shortdesc>This section gives an overview of feature management, what it does, how it works, how to use it and links to relevant links. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC3021C2-C858-571B-A4B3-697CCB43CAFF-GENID-1-10-1-22-1-1-4-1-1-3-1-3-1"><title>Purpose</title> <p>A feature is a piece of functionality that is shipped with the device, but which can be disabled or enabled. </p> <p>Feature management is used to manage the enabling and disabling of these features and associated activities for example to provide a means of allowing the system to know if a feature is enabled or not. </p> </section> <section id="GUID-E3F13137-DDF7-5F4B-8571-33EB30AE15FD-GENID-1-10-1-22-1-1-4-1-1-3-1-3-2"><title>Architecture</title> <p>The feature management system consists of a server and two dll files. </p> <p>The feature management system has a standard client server architecture. The server is the feature management server and the dll files provide a series of APIs with which the client can communicate with the server. </p> </section> <section id="GUID-3AFD464F-ED48-5C72-86B3-0B1DF098317A-GENID-1-10-1-22-1-1-4-1-1-3-1-3-3"><title>Description</title> <p>As described above, the functionality of feature management can be broken into two groups: the server and the dll files. </p> <p>The feature manager server: this comes as an executable called featmgrserver.exe. </p> <ul><li id="GUID-81DA7DA3-3785-587A-84D8-C05EADD837FB-GENID-1-10-1-22-1-1-4-1-1-3-1-3-3-4-1"><p>This does all the feature management work that is keeping track of the status of each feature. </p> </li> </ul> <p>The communication to the feature management server is carried out via the two dll files i.e. featdiscovery.dll and featmgr.dll. </p> <ul><li id="GUID-3623FC76-619F-5347-96B3-D71D623D92D3-GENID-1-10-1-22-1-1-4-1-1-3-1-3-3-6-1"><p>Provide a means of telling the client when a change to the status of a feature has occurred. </p> </li> <li id="GUID-C59BFD29-3E45-52F5-8034-21030F7701CF-GENID-1-10-1-22-1-1-4-1-1-3-1-3-3-6-2"><p>Allows the client to specify which feature is to be enabled or disabled. </p> </li> <li id="GUID-821AD7FC-BA58-5976-A4F8-F0572CF61407-GENID-1-10-1-22-1-1-4-1-1-3-1-3-3-6-3"><p>Allows the client to add or delete features. </p> </li> </ul> </section> <section id="GUID-53F35C75-D725-5543-9492-B58D6FCB552C-GENID-1-10-1-22-1-1-4-1-1-3-1-3-4"><title>Components</title> <p>The following components make up the feature management collection. </p> <ul><li id="GUID-CC662594-3E6C-5C1A-9055-1B83E683F84D-GENID-1-10-1-22-1-1-4-1-1-3-1-3-4-3-1"><p> <b>Feature Discovery</b>  </p> <p> <filepath>featdiscovery.dll</filepath>  </p> <p>Provides the APIs that provide only a subset of what can be provided by feature management. </p> <p>It provides the functionality for TFeatureSet and CFeatureDiscovery. </p> </li> <li id="GUID-8291E183-61D6-517A-9D0D-46F6BF97041F-GENID-1-10-1-22-1-1-4-1-1-3-1-3-4-3-2"><p> <b>Feature Manager</b>  </p> <p> <filepath>featmgr.dll </filepath>  </p> <p>Provides the APIs that allow the client to carry out the full functionality available with feature management. </p> <p>It provides the functionality for RFeatMgrClient, RFeatureControl, MFeatureObserver and CFeatureNotifier. </p> </li> <li id="GUID-3FBF3512-7D28-5533-92CB-5C141787DB6B-GENID-1-10-1-22-1-1-4-1-1-3-1-3-4-3-3"><p> <b>Feature Manager Server</b>  </p> <p> <filepath>featmgrserver.exe</filepath>  </p> <p>Performs all the actual operations and maintains details about features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager
+                Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1"><title>Feature Management Overview</title><shortdesc>This section gives an overview of feature management, what it does, how it works, how to use it and links to relevant links. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC3021C2-C858-571B-A4B3-697CCB43CAFF-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-1"><title>Purpose</title> <p>A feature is a piece of functionality that is shipped with the device, but which can be disabled or enabled. </p> <p>Feature management is used to manage the enabling and disabling of these features and associated activities for example to provide a means of allowing the system to know if a feature is enabled or not. </p> </section> <section id="GUID-E3F13137-DDF7-5F4B-8571-33EB30AE15FD-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-2"><title>Architecture</title> <p>The feature management system consists of a server and two dll files. </p> <p>The feature management system has a standard client server architecture. The server is the feature management server and the dll files provide a series of APIs with which the client can communicate with the server. </p> </section> <section id="GUID-3AFD464F-ED48-5C72-86B3-0B1DF098317A-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-3"><title>Description</title> <p>As described above, the functionality of feature management can be broken into two groups: the server and the dll files. </p> <p>The feature manager server: this comes as an executable called featmgrserver.exe. </p> <ul><li id="GUID-81DA7DA3-3785-587A-84D8-C05EADD837FB-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-3-4-1"><p>This does all the feature management work that is keeping track of the status of each feature. </p> </li> </ul> <p>The communication to the feature management server is carried out via the two dll files i.e. featdiscovery.dll and featmgr.dll. </p> <ul><li id="GUID-3623FC76-619F-5347-96B3-D71D623D92D3-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-3-6-1"><p>Provide a means of telling the client when a change to the status of a feature has occurred. </p> </li> <li id="GUID-C59BFD29-3E45-52F5-8034-21030F7701CF-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-3-6-2"><p>Allows the client to specify which feature is to be enabled or disabled. </p> </li> <li id="GUID-821AD7FC-BA58-5976-A4F8-F0572CF61407-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-3-6-3"><p>Allows the client to add or delete features. </p> </li> </ul> </section> <section id="GUID-53F35C75-D725-5543-9492-B58D6FCB552C-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-4"><title>Components</title> <p>The following components make up the feature management collection. </p> <ul><li id="GUID-CC662594-3E6C-5C1A-9055-1B83E683F84D-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-4-3-1"><p> <b>Feature Discovery</b>  </p> <p> <filepath>featdiscovery.dll</filepath>  </p> <p>Provides the APIs that provide only a subset of what can be provided by feature management. </p> <p>It provides the functionality for TFeatureSet and CFeatureDiscovery. </p> </li> <li id="GUID-8291E183-61D6-517A-9D0D-46F6BF97041F-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-4-3-2"><p> <b>Feature Manager</b>  </p> <p> <filepath>featmgr.dll </filepath>  </p> <p>Provides the APIs that allow the client to carry out the full functionality available with feature management. </p> <p>It provides the functionality for RFeatMgrClient, RFeatureControl, MFeatureObserver and CFeatureNotifier. </p> </li> <li id="GUID-3FBF3512-7D28-5533-92CB-5C141787DB6B-GENID-1-10-1-22-1-1-4-1-1-4-1-4-1-3-4-3-3"><p> <b>Feature Manager Server</b>  </p> <p> <filepath>featmgrserver.exe</filepath>  </p> <p>Performs all the actual operations and maintains details about features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager
+                Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-3-1"><title>Feature Management Overview</title><shortdesc>This section gives an overview of feature management, what it does, how it works, how to use it and links to relevant links. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC3021C2-C858-571B-A4B3-697CCB43CAFF-GENID-1-8-1-21-1-1-4-1-1-3-1-3-1"><title>Purpose</title> <p>A feature is a piece of functionality that is shipped with the device, but which can be disabled or enabled. </p> <p>Feature management is used to manage the enabling and disabling of these features and associated activities for example to provide a means of allowing the system to know if a feature is enabled or not. </p> </section> <section id="GUID-E3F13137-DDF7-5F4B-8571-33EB30AE15FD-GENID-1-8-1-21-1-1-4-1-1-3-1-3-2"><title>Architecture</title> <p>The feature management system consists of a server and two dll files. </p> <p>The feature management system has a standard client server architecture. The server is the feature management server and the dll files provide a series of APIs with which the client can communicate with the server. </p> </section> <section id="GUID-3AFD464F-ED48-5C72-86B3-0B1DF098317A-GENID-1-8-1-21-1-1-4-1-1-3-1-3-3"><title>Description</title> <p>As described above, the functionality of feature management can be broken into two groups: the server and the dll files. </p> <p>The feature manager server: this comes as an executable called featmgrserver.exe. </p> <ul><li id="GUID-81DA7DA3-3785-587A-84D8-C05EADD837FB-GENID-1-8-1-21-1-1-4-1-1-3-1-3-3-4-1"><p>This does all the feature management work that is keeping track of the status of each feature. </p> </li> </ul> <p>The communication to the feature management server is carried out via the two dll files i.e. featdiscovery.dll and featmgr.dll. </p> <ul><li id="GUID-3623FC76-619F-5347-96B3-D71D623D92D3-GENID-1-8-1-21-1-1-4-1-1-3-1-3-3-6-1"><p>Provide a means of telling the client when a change to the status of a feature has occurred. </p> </li> <li id="GUID-C59BFD29-3E45-52F5-8034-21030F7701CF-GENID-1-8-1-21-1-1-4-1-1-3-1-3-3-6-2"><p>Allows the client to specify which feature is to be enabled or disabled. </p> </li> <li id="GUID-821AD7FC-BA58-5976-A4F8-F0572CF61407-GENID-1-8-1-21-1-1-4-1-1-3-1-3-3-6-3"><p>Allows the client to add or delete features. </p> </li> </ul> </section> <section id="GUID-53F35C75-D725-5543-9492-B58D6FCB552C-GENID-1-8-1-21-1-1-4-1-1-3-1-3-4"><title>Components</title> <p>The following components make up the feature management collection. </p> <ul><li id="GUID-CC662594-3E6C-5C1A-9055-1B83E683F84D-GENID-1-8-1-21-1-1-4-1-1-3-1-3-4-3-1"><p> <b>Feature Discovery</b>  </p> <p> <filepath>featdiscovery.dll</filepath>  </p> <p>Provides the APIs that provide only a subset of what can be provided by feature management. </p> <p>It provides the functionality for TFeatureSet and CFeatureDiscovery. </p> </li> <li id="GUID-8291E183-61D6-517A-9D0D-46F6BF97041F-GENID-1-8-1-21-1-1-4-1-1-3-1-3-4-3-2"><p> <b>Feature Manager</b>  </p> <p> <filepath>featmgr.dll </filepath>  </p> <p>Provides the APIs that allow the client to carry out the full functionality available with feature management. </p> <p>It provides the functionality for RFeatMgrClient, RFeatureControl, MFeatureObserver and CFeatureNotifier. </p> </li> <li id="GUID-3FBF3512-7D28-5533-92CB-5C141787DB6B-GENID-1-8-1-21-1-1-4-1-1-3-1-3-4-3-3"><p> <b>Feature Manager Server</b>  </p> <p> <filepath>featmgrserver.exe</filepath>  </p> <p>Performs all the actual operations and maintains details about features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager
-                Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-67D0F837-65EE-54FE-B8D6-E5226CB9D8C9-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1"><title>Feature Management Overview</title><shortdesc>This section gives an overview of feature management, what it does, how it works, how to use it and links to relevant links. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC3021C2-C858-571B-A4B3-697CCB43CAFF-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-1"><title>Purpose</title> <p>A feature is a piece of functionality that is shipped with the device, but which can be disabled or enabled. </p> <p>Feature management is used to manage the enabling and disabling of these features and associated activities for example to provide a means of allowing the system to know if a feature is enabled or not. </p> </section> <section id="GUID-E3F13137-DDF7-5F4B-8571-33EB30AE15FD-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-2"><title>Architecture</title> <p>The feature management system consists of a server and two dll files. </p> <p>The feature management system has a standard client server architecture. The server is the feature management server and the dll files provide a series of APIs with which the client can communicate with the server. </p> </section> <section id="GUID-3AFD464F-ED48-5C72-86B3-0B1DF098317A-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-3"><title>Description</title> <p>As described above, the functionality of feature management can be broken into two groups: the server and the dll files. </p> <p>The feature manager server: this comes as an executable called featmgrserver.exe. </p> <ul><li id="GUID-81DA7DA3-3785-587A-84D8-C05EADD837FB-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-3-4-1"><p>This does all the feature management work that is keeping track of the status of each feature. </p> </li> </ul> <p>The communication to the feature management server is carried out via the two dll files i.e. featdiscovery.dll and featmgr.dll. </p> <ul><li id="GUID-3623FC76-619F-5347-96B3-D71D623D92D3-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-3-6-1"><p>Provide a means of telling the client when a change to the status of a feature has occurred. </p> </li> <li id="GUID-C59BFD29-3E45-52F5-8034-21030F7701CF-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-3-6-2"><p>Allows the client to specify which feature is to be enabled or disabled. </p> </li> <li id="GUID-821AD7FC-BA58-5976-A4F8-F0572CF61407-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-3-6-3"><p>Allows the client to add or delete features. </p> </li> </ul> </section> <section id="GUID-53F35C75-D725-5543-9492-B58D6FCB552C-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-4"><title>Components</title> <p>The following components make up the feature management collection. </p> <ul><li id="GUID-CC662594-3E6C-5C1A-9055-1B83E683F84D-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-4-3-1"><p> <b>Feature Discovery</b>  </p> <p> <filepath>featdiscovery.dll</filepath>  </p> <p>Provides the APIs that provide only a subset of what can be provided by feature management. </p> <p>It provides the functionality for TFeatureSet and CFeatureDiscovery. </p> </li> <li id="GUID-8291E183-61D6-517A-9D0D-46F6BF97041F-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-4-3-2"><p> <b>Feature Manager</b>  </p> <p> <filepath>featmgr.dll </filepath>  </p> <p>Provides the APIs that allow the client to carry out the full functionality available with feature management. </p> <p>It provides the functionality for RFeatMgrClient, RFeatureControl, MFeatureObserver and CFeatureNotifier. </p> </li> <li id="GUID-3FBF3512-7D28-5533-92CB-5C141787DB6B-GENID-1-8-1-21-1-1-4-1-1-4-1-4-1-3-4-3-3"><p> <b>Feature Manager Server</b>  </p> <p> <filepath>featmgrserver.exe</filepath>  </p> <p>Performs all the actual operations and maintains details about features. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager
-                Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6820BB9E-F0B9-4493-A4C3-686238527C9B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-6820BB9E-F0B9-4493-A4C3-686238527C9B_d0e60647_href.png has changed
--- a/Symbian3/SDK/Source/GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-68417158-D625-56BF-BDD5-BE49A7651CED"><title>Audio Output Streaming Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of Audio Output Streaming. </p> <section><title>Purpose</title> <p>Audio Output Streaming is the interface to streaming sampled audio data to the low level audio controller part of the Multimedia Framework (MMF). </p> <p><b>Audio Output Streaming Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-DE828986-946F-5519-97C6-9FB89E972AB8"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudiostream.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudiostream.lib</b>  </p> </entry> <entry><p>These files are used for implementing Audio Output Streaming. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>How the Audio Output Streaming classes interact with other components of MMF is shown below: </p> <fig id="GUID-ABA14A10-ACBD-5C46-8E74-DD1B81AE1EF7"><title>
-             Audio output streaming overview 
-          </title> <image href="GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e315392_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>Streamed audio data is sent and received incrementally. This means: </p> <ul><li id="GUID-0B12FC8E-B60A-51A7-A2AD-AE9637DF46BC"><p>sound clips sent to the low level audio controller (audio play) can be sent as they arrive rather than waiting until the entire clip is received. </p> <p>The user of the API should maintain the data fragments in a queue before sending them to the server. If the user attempts to send data faster than the server can receive it, the excess data fragments are maintained in another client side queue (invisible to the user), whose elements are references to the buffers passed to it. The server notifies the client using a callback each time it has received a data fragment. This indicates to the client that the data fragment can be deleted. </p> </li> <li id="GUID-E6A88A7A-AEF2-596D-828B-8449D95D4829"><p>sound clips that are being captured by the low level audio controller (audio record) can be read incrementally without having to wait until audio capture is complete. </p> <p>The low level audio controller maintains the received buffers where it can place the audio data that is being captured. The client uses a read function to read the received data into destination descriptors. </p> </li> </ul> <p>The client is also notified (for audio play and record) when the stream is opened and available for use (opening takes place asynchronously), and when the stream is closed. </p> <p>This API can only be used to stream audio data, with the data being stored or sourced from a descriptor. Client applications must ensure that the data is in 16 bit PCM format as this is the only format supported. The API does not support mixing. A priority mechanism is used to control access to the sound device by more than one client. </p> </section> <section><title>Key Audio Output Streaming Classes</title> <p>The functionality provided by Audio Output Streaming is contained within the <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref> class. </p> </section> <section><title>Using Audio Output Streaming</title> <p>Clients can use Audio Output Streaming to: </p> <ul><li id="GUID-79DC35F3-2B6C-55DF-B6DE-88C075F1200E"><p>Open, set audio properties, write to and close the audio stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita"> Audio Output Streaming Tutorial </xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-68417158-D625-56BF-BDD5-BE49A7651CED"><title>Audio Output Streaming Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of Audio Output Streaming. </p> <section><title>Purpose</title> <p>Audio Output Streaming is the interface to streaming sampled audio data to the low level audio controller part of the Multimedia Framework (MMF). </p> <p><b>Audio Output Streaming Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-DE828986-946F-5519-97C6-9FB89E972AB8"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudiostream.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudiostream.lib</b>  </p> </entry> <entry><p>These files are used for implementing Audio Output Streaming. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>How the Audio Output Streaming classes interact with other components of MMF is shown below: </p> <fig id="GUID-ABA14A10-ACBD-5C46-8E74-DD1B81AE1EF7"><title>
+             Audio output streaming overview 
+          </title> <image href="GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e308998_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>Streamed audio data is sent and received incrementally. This means: </p> <ul><li id="GUID-0B12FC8E-B60A-51A7-A2AD-AE9637DF46BC"><p>sound clips sent to the low level audio controller (audio play) can be sent as they arrive rather than waiting until the entire clip is received. </p> <p>The user of the API should maintain the data fragments in a queue before sending them to the server. If the user attempts to send data faster than the server can receive it, the excess data fragments are maintained in another client side queue (invisible to the user), whose elements are references to the buffers passed to it. The server notifies the client using a callback each time it has received a data fragment. This indicates to the client that the data fragment can be deleted. </p> </li> <li id="GUID-E6A88A7A-AEF2-596D-828B-8449D95D4829"><p>sound clips that are being captured by the low level audio controller (audio record) can be read incrementally without having to wait until audio capture is complete. </p> <p>The low level audio controller maintains the received buffers where it can place the audio data that is being captured. The client uses a read function to read the received data into destination descriptors. </p> </li> </ul> <p>The client is also notified (for audio play and record) when the stream is opened and available for use (opening takes place asynchronously), and when the stream is closed. </p> <p>This API can only be used to stream audio data, with the data being stored or sourced from a descriptor. Client applications must ensure that the data is in 16 bit PCM format as this is the only format supported. The API does not support mixing. A priority mechanism is used to control access to the sound device by more than one client. </p> </section> <section><title>Key Audio Output Streaming Classes</title> <p>The functionality provided by Audio Output Streaming is contained within the <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref> class. </p> </section> <section><title>Using Audio Output Streaming</title> <p>Clients can use Audio Output Streaming to: </p> <ul><li id="GUID-79DC35F3-2B6C-55DF-B6DE-88C075F1200E"><p>Open, set audio properties, write to and close the audio stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita"> Audio Output Streaming Tutorial </xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8" xml:lang="en"><title>Symbian
-UI with rotation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Symbian UI can rotate between the portrait and landscape layout. This section
-describes the guidelines for designing landscape-aware application user interfaces.
-On the whole, the primary guideline in the Symbian platform is that no specific
-UI design is necessary for landscape orientation and mode. Instead, applications
-designed according to the guidelines described in this section should work
-in both landscape orientation and with the default portrait orientation. This
-section does, however, describe some exceptions to this rule.</p>
-<p>The Symbian platform in landscape orientation follows the bottom softkey
-style. In the bottom softkey style, the layout of the normal portrait UI is
-merely stretched horizontally to fit the screen, leaving the softkeys below
-the screen as in standard portrait orientation.</p>
-<fig id="GUID-F169E015-2D9C-40E3-8E5A-A681A8B598DE">
-<title>Symbian UI rotated to landscape in the bottom softkey style</title>
-<image href="GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e82219_href.png" placement="inline"/>
-</fig>
-<section id="GUID-1797F9D3-BC11-425B-A746-FB3274B097D4"><title>Using
-portrait and landscape layouts in C++ applications</title><p>Switching between
-portrait and landscape layouts is handled in the application and UI frameworks
-using <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">layout change
-events</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-3-1-1-9-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-3-1-1-9-1-4-1" xml:lang="en"><title>How to Write
-a FEP</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-6-1-1-4-1-8-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F-GENID-1-8-1-6-1-1-4-1-8-1-4-1" xml:lang="en"><title>How to Write
-a FEP</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-68A55CD5-EF01-5DE2-8119-EFA39589960F" xml:lang="en"><title>How to Write
+a FEP</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7" xml:lang="en"><title>View
-architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following image illustrates the components of the view architecture
-approach.</p>
-<fig id="GUID-A4D968BE-B048-424C-94B5-FAAA7B14C5D5"><title>View architecture classes</title><image href="GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e47820_href.png"/></fig>
-<p>Symbian platform applications that follow the view architecture require:</p>
-<ul>
-<li><p>a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
-controller</xref> derived from <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref></p></li>
-<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view
-controller</xref> derived from <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref></p></li>
-<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> or
-views derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref></p></li>
-</ul>
-<p>The view architecture only allows one view to be active in each application.
-If a new view is switched to within an application, the current view is immediately
-deactivated, so this architectural approach is <i>not</i> appropriate in the
-following cases:</p>
-<ul>
-<li><p>Applications with any view that cannot cleanly handle unexpected
-activation of another view in that application.</p></li>
-<li><p>Applications that provide views that can be nested over other
-applications, except where embedding is used.</p></li>
-<li><p>Applications that provide controls that can be used inside
-other applications (for example, using a Web control inside an e-mail viewer
-to show an e‑mail with HTML content).</p></li>
-</ul>
-<p>Typical responsibilities in this architecture are:</p>
-<ul>
-<li><p><parmname>CAknViewAppUi</parmname>-derived class acts as
-a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>:</p>
-<itemgroup>
-<ul>
-<li><p>It creates one or more <parmname>CAknView</parmname>-derived
-view controllers.</p></li>
-<li><p>It handles <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">events</xref> that
-are not handled by the view controllers.</p></li>
-<li><p>To switch between views, it activates and deactivates views.</p>
-</li>
-<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref> passed
-to it by the view controllers.</p></li>
-<li><p>It receives events such as <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">layout</xref> and <xref href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita">foreground</xref> notifications
-from the run-time environment.</p></li>
-</ul>
-</itemgroup>
-</li>
-<li><p><xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived class acts as a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">view controller</xref></p>
-<itemgroup>
-<ul>
-<li><p>It creates one of more <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
-views.</p></li>
-<li><p>It handles registering controls for <xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">key
-event handling</xref>.</p></li>
-<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref>.</p>
-</li>
-</ul>
-</itemgroup>
-</li>
-<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view:</p>
-<itemgroup>
-<ul>
-<li><p>Shows application data and state on the screen.</p></li>
-</ul>
-</itemgroup>
-</li>
-</ul>
-<p>For information on the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived
-classes, see <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework
-requirements for GUI applications</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7" xml:lang="en"><title>View
+architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following image illustrates the components of the view architecture
+approach.</p>
+<fig id="GUID-A4D968BE-B048-424C-94B5-FAAA7B14C5D5"><title>View architecture classes</title><image href="GUID-2B50C6B1-E1E8-44E6-840B-7FAA206E6C26_d0e42265_href.png"/></fig>
+<p>Symbian platform applications that follow the view architecture require:</p>
+<ul>
+<li><p>a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
+controller</xref> derived from <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref></p></li>
+<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view
+controller</xref> derived from <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref></p></li>
+<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> or
+views derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref></p></li>
+</ul>
+<p>The view architecture only allows one view to be active in each application.
+If a new view is switched to within an application, the current view is immediately
+deactivated, so this architectural approach is <i>not</i> appropriate in the
+following cases:</p>
+<ul>
+<li><p>Applications with any view that cannot cleanly handle unexpected
+activation of another view in that application.</p></li>
+<li><p>Applications that provide views that can be nested over other
+applications, except where embedding is used.</p></li>
+<li><p>Applications that provide controls that can be used inside
+other applications (for example, using a Web control inside an e-mail viewer
+to show an e‑mail with HTML content).</p></li>
+</ul>
+<p>Typical responsibilities in this architecture are:</p>
+<ul>
+<li><p><parmname>CAknViewAppUi</parmname>-derived class acts as
+a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>:</p>
+<itemgroup>
+<ul>
+<li><p>It creates one or more <parmname>CAknView</parmname>-derived
+view controllers.</p></li>
+<li><p>It handles <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">events</xref> that
+are not handled by the view controllers.</p></li>
+<li><p>To switch between views, it activates and deactivates views.</p>
+</li>
+<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref> passed
+to it by the view controllers.</p></li>
+<li><p>It receives events such as <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">layout</xref> and <xref href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita">foreground</xref> notifications
+from the run-time environment.</p></li>
+</ul>
+</itemgroup>
+</li>
+<li><p><xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived class acts as a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">view controller</xref></p>
+<itemgroup>
+<ul>
+<li><p>It creates one of more <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
+views.</p></li>
+<li><p>It handles registering controls for <xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">key
+event handling</xref>.</p></li>
+<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref>.</p>
+</li>
+</ul>
+</itemgroup>
+</li>
+<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view:</p>
+<itemgroup>
+<ul>
+<li><p>Shows application data and state on the screen.</p></li>
+</ul>
+</itemgroup>
+</li>
+</ul>
+<p>For information on the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived
+classes, see <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework
+requirements for GUI applications</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,48 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8" xml:lang="en"><title>Device
-security</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The superior mobility and connectivity of mobile devices constitutes
-their greatest threat, and allows intruders to try different attack methods
-against the device. The figure below illustrates the most common methods of
-attack against mobile devices.</p>
-<fig id="GUID-2839B915-A025-4404-96A8-B9354F9E5A9F"><title>Mobile device and common attack methods</title><image href="GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e10566_href.png"/></fig>
-<p>Due to the nature of mobile devices, including the potential vulnerabilities
-mentioned above, you should consider the following points when designing your
-application:</p>
-<ul>
-<li><p>If a mobile device is lost or stolen, confidential information
-(for example, calendar and contacts) can be read even by those with little
-expertise.</p></li>
-<li><p>Users can access confidential information and files at any
-time, including reverse engineering of software and algorithms.</p></li>
-<li><p>Data can be transferred from and to the mobile device through
-different methods, even accidentally. </p></li>
-<li><p>Users may detach removable media or the battery at any time,
-which can cause data loss or corruption.</p></li>
-</ul>
-<p>When you handle confidential information in your application, remember
-that with sufficient motivation and resources there are always ways to extract
-information from a mobile device. As the level of software security improves
-and attacks become less practical, interest in hardware attacks may in turn
-increase.</p>
-<p>In the continuously evolving digital world, every application should
-have a certain level of robustness against a changing and hostile environment.
-Applications should be prepared for data corruption and alteration, network
-and storage blackouts, plug-ins and components that misbehave, malicious attackers,
-and, perhaps most importantly, user errors.</p>
-<p>The Symbian <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
-security</xref> architecture is designed to protect mobile devices and their
-contents.</p>
-<p>For more details, see <xref href="GUID-9058F379-C495-4B22-B270-FF6A80E450B8.dita">Device
-security mechanisms</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-68BBBA98-BDF7-4562-8168-5E90C73ADCF8" xml:lang="en"><title>Device
+security</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The superior mobility and connectivity of mobile devices constitutes
+their greatest threat, and allows intruders to try different attack methods
+against the device. The figure below illustrates the most common methods of
+attack against mobile devices.</p>
+<fig id="GUID-2839B915-A025-4404-96A8-B9354F9E5A9F"><title>Mobile device and common attack methods</title><image href="GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e11841_href.png"/></fig>
+<p>Due to the nature of mobile devices, including the potential vulnerabilities
+mentioned above, you should consider the following points when designing your
+application:</p>
+<ul>
+<li><p>If a mobile device is lost or stolen, confidential information
+(for example, calendar and contacts) can be read even by those with little
+expertise.</p></li>
+<li><p>Users can access confidential information and files at any
+time, including reverse engineering of software and algorithms.</p></li>
+<li><p>Data can be transferred from and to the mobile device through
+different methods, even accidentally. </p></li>
+<li><p>Users may detach removable media or the battery at any time,
+which can cause data loss or corruption.</p></li>
+</ul>
+<p>When you handle confidential information in your application, remember
+that with sufficient motivation and resources there are always ways to extract
+information from a mobile device. As the level of software security improves
+and attacks become less practical, interest in hardware attacks may in turn
+increase.</p>
+<p>In the continuously evolving digital world, every application should
+have a certain level of robustness against a changing and hostile environment.
+Applications should be prepared for data corruption and alteration, network
+and storage blackouts, plug-ins and components that misbehave, malicious attackers,
+and, perhaps most importantly, user errors.</p>
+<p>The Symbian <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
+security</xref> architecture is designed to protect mobile devices and their
+contents.</p>
+<p>For more details, see <xref href="GUID-9058F379-C495-4B22-B270-FF6A80E450B8.dita">Device
+security mechanisms</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e188429_href.png has changed
Binary file Symbian3/SDK/Source/GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e193491_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1315_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-6913F58F-FDA1-4708-B03E-16AF6C545E5B_d0e1394_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e189143_href.png has changed
Binary file Symbian3/SDK/Source/GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e194205_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22" xml:lang="en"><title>Capabilities</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Capabilities allow the Symbian platform to control access by applications
-to the functionalities provided by the platform APIs. Access to capabilities
-is determined by the device configuration and how the application has been
-signed. Capabilities can be divided into four categories:</p>
-<ul>
-<li><p><i>user capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/LocalServices" scope="external"><codeph>LocalServices</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/NetworkServices" scope="external"><codeph>NetworkServices</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ReadUserData" scope="external"><codeph>ReadUserData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/WriteUserData" scope="external"><codeph>WriteUserData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/UserEnvironment" scope="external"><codeph>UserEnvironment</codeph></xref> and, <xref href="http://wiki.forum.nokia.com/index.php/Location" scope="external"><codeph>Location</codeph></xref></p>
-</li>
-<li><p><i>system capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/PowerMgmt" scope="external"><codeph>PowerMgmt</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ProtServ" scope="external"><codeph>ProtServ</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ReadDeviceData" scope="external"><codeph>ReadDeviceData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/SurroundingsDD" scope="external"><codeph>SurroundingsDD</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/SwEvent" scope="external"><codeph>SwEvent</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/TrustedUI" scope="external"><codeph>TrustedUI</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/WriteDeviceData" scope="external"><codeph>WriteDeviceData</codeph></xref></p>
-</li>
-<li><p><i>restricted capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/CommDD" scope="external"><codeph>CommDD</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/DiskAdmin" scope="external"><codeph>DiskAdmin</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/MultimediaDD" scope="external"><codeph>MultimediaDD</codeph></xref> and <xref href="http://wiki.forum.nokia.com/index.php/NetworkControl" scope="external"><codeph>NetworkControl</codeph></xref></p>
-</li>
-<li><p><i>device manufacturer capabilitie</i>s: <xref href="http://wiki.forum.nokia.com/index.php/AllFiles" scope="external"><codeph>AllFiles</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/DRM" scope="external"><codeph>DRM</codeph></xref> and <xref href="http://wiki.forum.nokia.com/index.php/Trusted_Computing_Base_%28TCB%29" scope="external"><codeph>TCB</codeph></xref></p>
-</li>
-</ul>
-<p>Capabilities required by the application are defined in the <codeph>mmp</codeph> project
-definition file during the build process, and cannot be changed during run
-time. For information on the parameters you can use, see <xref href="GUID-96C007D1-9AA0-57DC-A6DC-8B6E5A2DF644.dita">capability</xref>.
-Carbide.c++ has a Capability Scanner tool which can be accessed through the <b>Project
-&gt; Run Capability Scanner on Project MMP</b> menu. The tool scans and checks
-the project for required capabilities.</p>
-<p>During the installation the <xref href="GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita">Software
-Installer</xref> application in the device checks whether the application
-has been certified or signed. It then checks the capabilities requested by
-the application. If the application has been certified, it checks that the
-root certificate is allowed to grant the required capabilities. If no problems
-are encountered, the installation can continue. For information on certifications
-required by the capabilities, see <xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita">Application
-signing</xref>.</p>
-<p>The user can grant the <i>user capabilities</i> to a self-signed application.
-For example, the following dialog is shown to the user to grant the <codeph>LocalServices</codeph> capability:</p>
-<fig id="GUID-5FCD68FB-BB79-48E0-B438-E8BFAD37331D"><title>Granting LocalServices capability during the installation</title><image href="GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e11707_href.png"/></fig>
-<section id="GUID-DD22FF50-BE6F-4929-85BA-EAF3481EA2BD"><title>dll capabilities</title>
-<p>A <codeph>dll</codeph> must have equal or greater set of capabilities
-than the loading process, otherwise the process is not allowed to load the <codeph>dll</codeph>.
-Once loaded, a <codeph>dll</codeph> runs at the capability level of the loading
-process. A <codeph>dll</codeph> that has a higher capability set than the
-loading process cannot leak capabilities to the process, but a process can
-leak capabilities to the <codeph>dll</codeph>.</p>
-<p>For more information, see <xref href="http://wiki.forum.nokia.com/index.php/TSS000454_-_DLL_capability_model_in_a_secure_platform" scope="external">DLL
-capability model in a secure platform</xref> (TSS000454) in the Forum Nokia
-Knowledge Base.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22" xml:lang="en"><title>Capabilities</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Capabilities allow the Symbian platform to control access by applications
+to the functionalities provided by the platform APIs. Access to capabilities
+is determined by the device configuration and how the application has been
+signed. Capabilities can be divided into four categories:</p>
+<ul>
+<li><p><i>user capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/LocalServices" scope="external"><codeph>LocalServices</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/NetworkServices" scope="external"><codeph>NetworkServices</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ReadUserData" scope="external"><codeph>ReadUserData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/WriteUserData" scope="external"><codeph>WriteUserData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/UserEnvironment" scope="external"><codeph>UserEnvironment</codeph></xref> and, <xref href="http://wiki.forum.nokia.com/index.php/Location" scope="external"><codeph>Location</codeph></xref></p>
+</li>
+<li><p><i>system capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/PowerMgmt" scope="external"><codeph>PowerMgmt</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ProtServ" scope="external"><codeph>ProtServ</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/ReadDeviceData" scope="external"><codeph>ReadDeviceData</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/SurroundingsDD" scope="external"><codeph>SurroundingsDD</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/SwEvent" scope="external"><codeph>SwEvent</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/TrustedUI" scope="external"><codeph>TrustedUI</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/WriteDeviceData" scope="external"><codeph>WriteDeviceData</codeph></xref></p>
+</li>
+<li><p><i>restricted capabilities</i>: <xref href="http://wiki.forum.nokia.com/index.php/CommDD" scope="external"><codeph>CommDD</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/DiskAdmin" scope="external"><codeph>DiskAdmin</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/MultimediaDD" scope="external"><codeph>MultimediaDD</codeph></xref> and <xref href="http://wiki.forum.nokia.com/index.php/NetworkControl" scope="external"><codeph>NetworkControl</codeph></xref></p>
+</li>
+<li><p><i>device manufacturer capabilitie</i>s: <xref href="http://wiki.forum.nokia.com/index.php/AllFiles" scope="external"><codeph>AllFiles</codeph></xref>, <xref href="http://wiki.forum.nokia.com/index.php/DRM" scope="external"><codeph>DRM</codeph></xref> and <xref href="http://wiki.forum.nokia.com/index.php/Trusted_Computing_Base_%28TCB%29" scope="external"><codeph>TCB</codeph></xref></p>
+</li>
+</ul>
+<p>Capabilities required by the application are defined in the <codeph>mmp</codeph> project
+definition file during the build process, and cannot be changed during run
+time. For information on the parameters you can use, see <xref href="GUID-96C007D1-9AA0-57DC-A6DC-8B6E5A2DF644.dita">capability</xref>.
+Carbide.c++ has a Capability Scanner tool which can be accessed through the <b>Project
+&gt; Run Capability Scanner on Project MMP</b> menu. The tool scans and checks
+the project for required capabilities.</p>
+<p>During the installation the <xref href="GUID-1293DE8C-E803-4ADF-9FA8-862519337331.dita">Software
+Installer</xref> application in the device checks whether the application
+has been certified or signed. It then checks the capabilities requested by
+the application. If the application has been certified, it checks that the
+root certificate is allowed to grant the required capabilities. If no problems
+are encountered, the installation can continue. For information on certifications
+required by the capabilities, see <xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita">Application
+signing</xref>.</p>
+<p>The user can grant the <i>user capabilities</i> to a self-signed application.
+For example, the following dialog is shown to the user to grant the <codeph>LocalServices</codeph> capability:</p>
+<fig id="GUID-5FCD68FB-BB79-48E0-B438-E8BFAD37331D"><title>Granting LocalServices capability during the installation</title><image href="GUID-08152DC3-2A5D-42AC-B722-3D49275FE548_d0e12976_href.png"/></fig>
+<section id="GUID-DD22FF50-BE6F-4929-85BA-EAF3481EA2BD"><title>dll capabilities</title>
+<p>A <codeph>dll</codeph> must have equal or greater set of capabilities
+than the loading process, otherwise the process is not allowed to load the <codeph>dll</codeph>.
+Once loaded, a <codeph>dll</codeph> runs at the capability level of the loading
+process. A <codeph>dll</codeph> that has a higher capability set than the
+loading process cannot leak capabilities to the process, but a process can
+leak capabilities to the <codeph>dll</codeph>.</p>
+<p>For more information, see <xref href="http://wiki.forum.nokia.com/index.php/TSS000454_-_DLL_capability_model_in_a_secure_platform" scope="external">DLL
+capability model in a secure platform</xref> (TSS000454) in the Forum Nokia
+Knowledge Base.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e80140_href.png has changed
Binary file Symbian3/SDK/Source/GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e86852_href.png has changed
Binary file Symbian3/SDK/Source/GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e76088_href.png has changed
Binary file Symbian3/SDK/Source/GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e82800_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e351818_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e357898_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e202292_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e207300_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,63 +1,373 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3"><title>Advanced Settings for Focus, Drive Modes, and Bracket Modes </title><shortdesc>This document provides a detailed description of various advanced settings of Ecam component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-B66B827F-F291-5A87-A96F-0281B5FB2722"><title>Introduction</title> <p>The advanced settings class, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>, provides access to common camera hardware settings related to image acquisition for still images and video. </p> <p id="GUID-79C320F6-1B2A-5A91-AEB2-356BB7C0B160"><b>Focus mode</b> </p> <p>The high level steps to set the Camera focus mode are shown here: </p> <ul><li id="GUID-8FEE544B-043C-5A2E-8D1F-29A8336F0CA9"><p>Get the information about the supported focus modes on the camera using the <xref href="GUID-83D453AD-C8D0-33AA-A8AB-6B0342D05741.dita#GUID-83D453AD-C8D0-33AA-A8AB-6B0342D05741/GUID-7DACEEF8-4492-32DB-9FBD-766BF8DF88DF"><apiname>TInt
-                  CCamera::CCameraAdvancedSettings::SupportedFocusModes()</apiname></xref> method. </p> </li> <li id="GUID-8B66ECEA-605D-55BC-BA40-679BA9CF1A96"><p>Set a specific focus mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-ADD952C2-0AE2-3971-B29B-3A979CB97BE9"><apiname>CCamera::CCameraAdvancedSettings::SetFocusMode()</apiname></xref> method. </p> </li> <li id="GUID-80E965EA-7C42-564E-9FE6-1B04B89359C4"><p>Get the current focus mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D057397E-E483-3082-B1E1-B50CF8D3DD2B"><apiname>CCamera::CCameraAdvancedSettings::FocusMode()</apiname></xref> method. </p> <p>The enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D057397E-E483-3082-B1E1-B50CF8D3DD2B"><apiname>CCamera::CCameraAdvancedSettings::FocusMode()</apiname></xref> defines four supported focus modes: </p> <table id="GUID-02C2468E-DBBF-5137-ACEB-C23FFAFBB468"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum Value</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-9A06A4D0-6284-3176-9AB3-1C3E79B98B17.dita"><apiname>EFocusModeUnknown</apiname></xref>  </p> </entry> <entry><p>Focus mode is unknown </p> </entry> </row> <row><entry><p> <xref href="GUID-D9429C4E-CB09-33C0-BEB3-137ED8F29611.dita"><apiname>EStabilizationComplexityLow</apiname></xref>  </p> </entry> <entry><p>Focus mode is automatic </p> </entry> </row> <row><entry><p> <xref href="GUID-A8C038E9-9126-34C3-8BE4-4780123D9C19.dita"><apiname>EStabilizationComplexityMedium</apiname></xref>  </p> </entry> <entry><p>Focus is fixed </p> </entry> </row> <row><entry><p> <xref href="GUID-DA7CB865-D120-3FC5-9871-428B0C0DCB8C.dita"><apiname>EStabilizationComplexityHigh</apiname></xref>  </p> </entry> <entry><p>Focus is manually set </p> </entry> </row> </tbody> </tgroup> </table> </li> </ul> <p>The following example shows how to change the focus mode: </p> <codeblock id="GUID-24781D9D-62F0-5A3A-8AE1-A3666AED78E2" xml:space="preserve">    // Assigns the focus mode to be set    
-    CCamera::CCameraAdvancedSettings::TFocusMode focusMode = CCamera::CCameraAdvancedSettings::EFocusModeFixed;
-    
-    // Gets the supported modes
-    TInt suppFocusModes = settings-&gt;SupportedFocusModes();// Checks if the focus mode is supported before setting it
-    if (focusMode &amp; suppFocusModes)
-        {
-           // Sets the focus mode if it is supported
-        settings-&gt;SetFocusMode(focusMode);
-        }</codeblock> <p id="GUID-20148E50-5531-595D-AED3-BACF2F5D69A3"><b>Focus range</b> </p> <p>Get the supported focus range using the enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-24EC2538-2021-3A84-BBEC-9B07F60D47F1"><apiname>CCamera::CCameraAdvancedSettings::TFocusRange</apiname></xref>. This defines eight supported focus ranges: </p> <table id="GUID-45890051-4539-57F0-A07E-17F4530415D3"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum Value</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-0C446118-46EC-31D1-9D06-15B50A6A0D46.dita"><apiname>EFocusRangeAuto</apiname></xref>  </p> </entry> <entry><p>Automatic </p> </entry> </row> <row><entry><p> <xref href="GUID-88AF32AF-5B11-3C40-82BE-29C5ACE25FF4.dita"><apiname>EFocusRangeMacro</apiname></xref>  </p> </entry> <entry><p>Focus operates in close range </p> </entry> </row> <row><entry><p> <xref href="GUID-88AF32AF-5B11-3C40-82BE-29C5ACE25FF4.dita"><apiname>EFocusRangeMacro</apiname></xref>  </p> </entry> <entry><p>Normal operation </p> </entry> </row> <row><entry><p> <xref href="GUID-88AF32AF-5B11-3C40-82BE-29C5ACE25FF4.dita"><apiname>EFocusRangeMacro</apiname></xref>  </p> </entry> <entry><p>Extended (tele) operation </p> </entry> </row> <row><entry><p> <xref href="GUID-8299C8D8-2260-3163-9A5B-5A129CAC5C5A.dita"><apiname>EFocusRangePortrait</apiname></xref>  </p> </entry> <entry><p>Focus at larger areas at short to medium distance </p> </entry> </row> <row><entry><p> <xref href="GUID-27C0ABB6-9A85-340D-94B2-020DF2878852.dita"><apiname>EFocusRangeSuperMacro</apiname></xref>  </p> </entry> <entry><p>Optimised macro operation, where depth of field is very shallow and observation area changes quickly </p> </entry> </row> <row><entry><p> <xref href="GUID-4F2CF1F1-DFE9-3F39-BEC8-ECC7D34B8D07.dita"><apiname>EFocusRangeHyperfocal</apiname></xref>  </p> </entry> <entry><p>All objects at distances from half of the hyperfocal distance out to infinity will be in focus. This gives maximum depth of field. </p> </entry> </row> <row><entry><p> <xref href="GUID-C97CC323-120D-3DA7-BE57-DD6DA5B8A355.dita"><apiname>EFocusRangeInfinite</apiname></xref>  </p> </entry> <entry><p>Infinite range, when there is a near obstacle or better focus wanted for far away objects. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following example shows how to change the focus range: </p> <codeblock id="GUID-D65E3CD4-BD93-5D87-AB07-3596BBFFCF21" xml:space="preserve">    // Assigns the focus range to EFocusRangeHyperfocal and checks if it is supported
-    CCamera::CCameraAdvancedSettings::TFocusRange focusRange = CCamera::CCameraAdvancedSettings::EFocusRangeHyperfocal;
-        
-    // Gets the supported ranges            
-    TInt suppRanges = settings-&gt;SupportedFocusRanges();
-    
-    // Checks if the focus range is supported before setting it.
-    if (focusRange &amp; suppRanges) 
-        {
-        // Sets the focus range if it is supported
-        settings-&gt;SetFocusRange(focusRange);
-        }</codeblock> <p>The result of <xref href="GUID-FF2ABB51-4E7C-3FB5-AC6B-37A00ADA9A47.dita"><apiname>SetFocusRange</apiname></xref> is notified to the client asynchronously through <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-AA5629D4-6228-3EAE-86DB-CE8A735557B0"><apiname>MCameraObserver2::HandleEvent()</apiname></xref> and with UID <xref href="GUID-5AA4F8A8-276F-308D-8FDA-4B0A99EB7805.dita"><apiname>KUidECamEventCameraSettingFocusRange2</apiname></xref>. </p> <p id="GUID-13C7E377-B9DB-5382-8D2C-C182D1849AEC"><b> Autofocus types</b> </p> <p>Get the supported autofocus types using the enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-03893892-2ADB-3F2F-92ED-92B56FA91732"><apiname>CCamera::CCameraAdvancedSettings::TAutoFocusType</apiname></xref>. This defines three supported focus types: </p> <table id="GUID-3535B88E-68BA-5DAF-B367-24E856B76A8B"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-4F75D808-7D0B-38F8-8251-E85A03286186.dita"><apiname>EAutoFocusTypeOff</apiname></xref>  </p> </entry> <entry><p>Autofocus is switched off </p> </entry> </row> <row><entry><p> <xref href="GUID-5F4E04B7-45D1-32E3-BAD8-428615C99A7D.dita"><apiname>EAutoFocusTypeSingle</apiname></xref>  </p> </entry> <entry><p>Operates on a single shot, consumes less power </p> </entry> </row> <row><entry><p> <xref href="GUID-47254936-309C-37A7-9753-4C07C4D46EDD.dita"><apiname>EAutoFocusTypeContinuous</apiname></xref>  </p> </entry> <entry><p>Continuous autofocus, more precise but consumes more power. This is also known as AF Servo. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following example shows how to change the autofocus type: </p> <codeblock id="GUID-9FE120BA-04B9-58A4-A319-B820F3274066" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TAutoFocusType focusType = CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff;
-    
-    // Gets the supported focus types
-    TInt suppFocusTypes = settings-&gt;SupportedAutoFocusTypes();
-    
-    // Checks if the focus type is supported before setting it.
-    if (focusType &amp; suppFocusTypes)
-        {
-        // Sets the focus type if it is supported
-        settings-&gt;SetAutoFocusType(focusType);
-        }</codeblock> <p>The result of <xref href="GUID-75DE7509-68C6-3A14-BDFF-648DA0B608B0.dita"><apiname>SetAutoFocusType</apiname></xref> is notified to the client asynchronously through <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-AA5629D4-6228-3EAE-86DB-CE8A735557B0"><apiname>MCameraObserver2::HandleEvent()</apiname></xref> and with uid <xref href="GUID-7114AB87-6D96-398B-8ABF-A5E9883EB6BD.dita"><apiname>KUidECamEventCameraSettingAutoFocusType2</apiname></xref>. </p> <p id="GUID-6A1C1EAC-092F-59FE-B0FA-74991872A42D"><b> Drive modes</b> </p> <p>Get the supported drive modes for the camera using the enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-44BD2C6E-A58B-36F6-8C31-109330FC6D40"><apiname>CCamera::CCameraAdvancedSettings::TDriveMode</apiname></xref> that determines how and in what succession images are captured. This defines eight supported drive modes for the camera with the following Enum Values: </p> <table id="GUID-4D90CBA3-7721-5785-92C2-282EE7996588"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum Value</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-8B34CD7E-04C5-3EF4-9743-BF1BC8B9AD64.dita"><apiname>EDriveModeAuto</apiname></xref>  </p> </entry> <entry><p>Automatic </p> </entry> </row> <row><entry><p> <xref href="GUID-737A7DBE-7556-3FC8-968C-6770A0A59EFC.dita"><apiname>EDriveModeSingleShot</apiname></xref>  </p> </entry> <entry><p>Camera takes a single image or shot </p> </entry> </row> <row><entry><p> <xref href="GUID-AFDA6C4B-6400-381B-882D-2E1441C61EA7.dita"><apiname>EDriveModeContinuous</apiname></xref>  </p> </entry> <entry><p>Camera continuously captures images as fast as it can until it is stopped or it exceeds the storage space. </p> </entry> </row> <row><entry><p> <xref href="GUID-2F0BC93F-C2FF-324B-A108-94CC27BF1931.dita"><apiname>EDriveModeBracket</apiname></xref>  </p> </entry> <entry><p>Camera is in bracketing mode, producing individual frames. </p> </entry> </row> <row><entry><p> <xref href="GUID-EFFDEF7C-BE5F-376C-8819-F3CA49E7EAA7.dita"><apiname>EDriveModeBracketMerge</apiname></xref>  </p> </entry> <entry><p>Camera is in bracketing mode, but producing a single image. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-45C51172-F35D-3EAE-BD1E-FDFBEC99108D"><apiname>CCamera::CCameraAdvancedSettings::SetBracketMerge</apiname></xref> method to work in this drive mode. </p> </entry> </row> <row><entry><p> <xref href="GUID-FFE93DB5-A36F-34ED-9B8B-0CF01BC9CDA8.dita"><apiname>EDriveModeTimed</apiname></xref>  </p> </entry> <entry><p>Camera captures a single shot after specified time period. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-03A1C480-F9C6-3130-9A51-4080A3745972"><apiname>CCamera::CCameraAdvancedSettings::SetTimerInterval</apiname></xref> method to work in this drive mode. </p> </entry> </row> <row><entry><p> <xref href="GUID-A282F7BF-9D7D-37D1-94C1-5976389A6BC4.dita"><apiname>EDriveModeTimeLapse</apiname></xref>  </p> </entry> <entry><p>Camera captures a set of images with an uniform interval between them. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-FB2F1372-FFF6-3FA1-9094-6C5D1841E154"><apiname>CCamera::CCameraAdvancedSettings::SetTimeLapse</apiname></xref> method to work in this drive mode. </p> </entry> </row> <row><entry><p> <xref href="GUID-E4CF7578-2E5B-3DDB-91B3-7EA5AEF9FCAE.dita"><apiname>EDriveModeBurst</apiname></xref>  </p> </entry> <entry><p>Camera captures a set of images as fast as it can in batches or bursts. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-62E2D492-5FFD-396E-B192-AF4A4B1E3807"><apiname>CCamera::CCameraAdvancedSettings::SetBurstImages</apiname></xref> method to set the number of burst images before capturing the image. </p> <p> <b>Note</b>: There are chances that the actual number of images captured may be less important due to memory or image size limitations. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following example shows how to change the drive mode: </p> <codeblock id="GUID-9FB24CA2-8107-560F-80DA-4ACDE5E93049" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TDriveMode driveMode = CCamera::CCameraAdvancedSettings::EDriveModeSingleShot;
-    
-    // Gets the supported drive modes
-    TInt suppDriveModes = settings-&gt;SupportedDriveModes();
-    
-    // Checks if the drive mode is supported before setting it.
-    if (driveMode &amp; suppDriveModes) 
-        {
-        // Sets the drive mode
-        settings-&gt;(driveMode);
-        }</codeblock> <p>The result of <xref href="GUID-FD18B529-8E01-30EA-A604-F2EAB3F0B14B.dita"><apiname>SetDriveMode</apiname></xref> is notified to the client asynchronously through <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-AA5629D4-6228-3EAE-86DB-CE8A735557B0"><apiname>MCameraObserver2::HandleEvent()</apiname></xref> and with uid <xref href="GUID-AD1D5E76-4DE1-3D07-9D6F-3B78A27E02C2.dita"><apiname>KUidECamEventCameraSettingDriveMode</apiname></xref>. </p> <p id="GUID-C3CB9300-39D5-5891-8E13-2DDFEFD0D695"><b>Bracket modes</b> </p> <p>Bracket mode is a type of drive mode, which is called using <xref href="GUID-2F0BC93F-C2FF-324B-A108-94CC27BF1931.dita"><apiname>EDriveModeBracket</apiname></xref> method. </p> <p>Bracket mode involves the camera taking a sequence of pictures, while automatically varying a camera setting, such as exposure, over a range of values. The enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-BFFB0B95-7F4F-3621-B912-44C8D9FD2FB8"><apiname>CCamera::CCameraAdvancedSettings::TBracketMode</apiname></xref> defines three supported bracket modes for the camera. The setting that is varied is called the bracket parameter, and is represented by the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-99390FB0-7255-3D11-A060-CFB3F760AB88"><apiname>CCamera::CCameraAdvancedSettings::TBracketParameter</apiname></xref> enumeration, while the scale of the change to the setting to make for each new picture is called the bracket step, and is represented by the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-7614DD87-7E47-3B79-BEDD-0BC1E1D25732"><apiname>CCamera::CCameraAdvancedSettings::TBracketStep</apiname></xref> enumeration. The possible bracket modes are: </p> <table id="GUID-0A4D293B-F3F0-5FC4-A29D-D180CE4FF947"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum Value</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-3D4DBEAF-C64B-3C60-B354-E7F1B93B0C8B.dita"><apiname>EBracketModeOff</apiname></xref>  </p> </entry> <entry><p>Bracket mode is switched off. This is the default value. </p> </entry> </row> <row><entry><p> <xref href="GUID-6206412B-7F08-33D1-9F19-0EE8167474AE.dita"><apiname>EBracketMode3Image</apiname></xref>  </p> </entry> <entry><p>Bracket mode on. Three consecutive pictures are taken in order, with the setting at under (-1), on (0), and over (+1). </p> </entry> </row> <row><entry><p> <xref href="GUID-40BA0BC3-1E12-340F-B3E8-4878B6DFA1D9.dita"><apiname>EBracketMode5Image</apiname></xref>  </p> </entry> <entry><p>Bracket mode on. Five consecutive pictures are taken in order, with the setting at under (-2), under (-1), on (0), over (+1), and over (+2). </p> </entry> </row> </tbody> </tgroup> </table> <p>The following example shows how to change the bracket mode: </p> <codeblock id="GUID-381BFE03-77E1-555B-9389-ACDC97DA7261" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TBracketMode bracketMode = CCamera::CCameraAdvancedSettings::EBracketMode3Image;
-    
-    // Gets the supported bracket modes
-    TInt suppBracketModes = settings-&gt;SupportedBracketModes();
-    
-    // Checks if the bracket mode is supported before setting it.
-    if (bracketMode &amp; suppBracketModes) 
-        {
-        settings-&gt;SetBracketMode(bracketMode);    
-        }</codeblock> <p><b>Zoom Mode</b> </p> <p>The high level steps to perform various operations in zoom mode are listed below: </p> <ul><li id="GUID-0F61E199-4297-505B-BC1F-D6F5FE6B073B"><p>Get the continuous zoom types supported by the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-A9D173CE-D76E-38A3-8F86-DE6215761BEF"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedContinuousZoomTypeL</apiname></xref> method. </p> </li> <li id="GUID-CAB0F4ED-DFFD-5C8B-B6E0-0B232CDCDD27"><p>Start continuous zoom using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-A1ED1C7B-D09B-362A-ABAB-0793B2D57E19"><apiname>CCamera::CCameraAdvancedSettings::StartContinuousZoomL()</apiname></xref> method with specified continuous zoom type and the zoom direction. </p> </li> <li id="GUID-03EFA212-975F-5A77-BAFE-C410C015EC18"><p>Notify the client about the extent of continuous zoom achieved using event <xref href="GUID-737C1562-BAFA-3B6D-ABE5-98272DD91C32.dita"><apiname>KUidECamEvent2CameraSettingContinuousZoomPercentageCompletion</apiname></xref>. When continuous zoom reached its limit, notify the client using event <xref href="GUID-C3FFA191-0F6C-3E5B-A606-17E2CB64B623.dita"><apiname>KUidECamEventCameraSettingContinuousZoomReachedLimit</apiname></xref>. </p> </li> <li id="GUID-710E7302-2333-51DC-820D-7F05E8CE5A36"><p>Stop continuous zoom using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-1EA4029D-502F-378E-8E6B-0D15D9C98031"><apiname>CCamera::CCameraAdvancedSettings::StopContinuousZoom()</apiname></xref> method. </p> </li> </ul> <p><b>Extending Pixel Aspect Ratio</b> </p> <p>You can use the pixel aspect ratio to provide settings for PAL, NTSC and NTSC4:3. For this, you need to extend the enumeration of Enum <xref href="GUID-5AD70A40-E28A-3272-8196-0B32F370D6A5.dita"><apiname>TPixelAspectRatio</apiname></xref> as follows: </p> <table id="GUID-DD24C53C-8C60-5EAF-9B7A-05A3A34018F3"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Enum Value</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p>TPixelAspectRatio:: EEPixelAspect16:11 </p> </entry> <entry><p>PAL </p> </entry> </row> <row><entry><p>TPixelAspectRatio:: EEPixelAspect40:33 </p> </entry> <entry><p>NTSC </p> </entry> </row> <row><entry><p>TPixelAspectRatio:: EEPixelAspect10:11 </p> </entry> <entry><p>NTSC4:3 </p> </entry> </row> </tbody> </tgroup> </table> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-429847B5-ED64-39BB-9094-A966BDF1796F"><apiname>CCamera::CCameraAdvancedSettings::PixelAspectRatio()</apiname></xref> method to get the current pixel aspect ratio. </p> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-DCA3E3CB-11A4-362B-911D-55D3A4DCDAB0"><apiname>CCamera::CCameraAdvancedSettings::SetPixelAspectRatio()</apiname></xref> method to set the pixel aspect ratio. Notify <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref> clients with <xref href="GUID-778E500B-F707-303B-8B33-C864D36DE21B.dita"><apiname>KUidECamEventPixelAspectRatio</apiname></xref> event. </p> </section> <section><title>Miscellaneous</title> <p>This section details the miscellaneous APIs used in <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> class. </p> <ul><li id="GUID-95245D67-3B97-52CE-B0E5-40C8143BB63A"><p> <b> ISO rates </b>: ISO indicates the sensitivity of the image sensor and is also a parameter that influences the exposure. </p> <ul><li id="GUID-8376DD53-898A-5CB2-A580-681A14707207"><p>Get the set of camera supported ISO rates using the<xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-E77ED144-D7AE-3362-B89E-46BB2675E75B"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedIsoRatesL()</apiname></xref> method. The Enum value <xref href="GUID-ACE75271-9B07-3E1A-9FFA-22F3E6CA2432.dita"><apiname>TISORateType</apiname></xref> specifies the ISO type supported by the camera. </p> </li> <li id="GUID-5DBE8988-FE71-54C3-80DD-A72DEA495F20"><p>When camera device does not reveal the ISO supported rates, it has to be assumed that camera will work only on the permanently set value. If this value is not known, returns empty array and corresponding getter or setters for this feature should not be used in such a case. </p> </li> <li id="GUID-1F3848E6-6763-591A-9514-091ECEBFBAD0"><p>Set the type of ISO rate and the exposure parameter or specific value using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-2910866C-5AB0-30D8-85D3-2A9C4C517AA2"><apiname>CCamera::CCameraAdvancedSettings::SetISORateL()</apiname></xref> method. </p> </li> <li id="GUID-60604442-D930-5C55-8D2F-F23C891A6590"><p>Get the type of ISO rate, exposure parameter and the value set using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-5636230D-DDF3-3E72-AB2A-DDAD3886AD26"><apiname>CCamera::CCameraAdvancedSettings::GetISORateL()</apiname></xref> method. </p> </li> <li id="GUID-5BEE22FB-1B43-5B83-ABA9-E9BEEA17D30F"><p>Get current ISO rate using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-3886CD52-B71A-31AC-A6BA-20CBE93A3965"><apiname>CCamera::CCameraAdvancedSettings::IsoRate()</apiname></xref>. </p> </li> </ul> </li> <li id="GUID-963323CA-0ABE-5DDF-A0C9-6667FD98D20B"><p>Get current aperture value using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D383977E-EC59-37CA-9F23-440EC5CCF1CC"><apiname>CCamera::CCameraAdvancedSettings::Aperture()</apiname></xref>. For example, the function returns 280 for the actual aperture of F2.8. If the value returned is Negative, indicates the error case (system wide error code) and positive represents the current aperture value. </p> </li> <li id="GUID-B8F1D3F3-64AB-53B6-B836-36899A5806EC"><p>Get the current shutter speed in microseconds using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-7D10B49C-98D3-3AD9-A3AF-26A2AB40EA40"><apiname>CCamera::CCameraAdvancedSettings::ShutterSpeed()</apiname></xref>. If the value returned is Negative, indicates the error case (system wide error code) and positive represents the current shutter speed. </p> </li> <li id="GUID-C7ECE3F7-F3A9-5397-B745-AFA20F8D8DC4"><p>Get all supported metering modes on this camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-FAA5F5AE-63CE-3FAA-8C44-9755A3A2CB46"><apiname>CCamera::CCameraAdvancedSettings::SupportedMeteringModes()</apiname></xref>. </p> </li> <li id="GUID-E3E794F1-2773-5C10-8EF1-ED7538C4CFE1"><p>Get all supported drive modes as bitfields of <xref href="GUID-FAF63EED-08F8-3374-AFF6-4FBD6F17CD3F.dita"><apiname>TDriveMode</apiname></xref> type using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-B80036F6-E8AA-3602-B006-407F3A38EB78"><apiname>CCamera::CCameraAdvancedSettings::SupportedDriveModes()</apiname></xref>. </p> </li> <li id="GUID-D2CDDC69-DDA0-5682-852D-EB984B84F6A5"><p>Get the currently set flash mode using <xref href="GUID-F2F1CCCF-53DF-3297-B8E0-C5C3E52EF24F.dita#GUID-F2F1CCCF-53DF-3297-B8E0-C5C3E52EF24F/GUID-27F0A794-78A7-3318-9D99-B74DEF131795"><apiname>CCamera::TFlash
-                CCamera::CCameraAdvancedSettings::FlashMode()</apiname></xref>. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> for the advanced settings of Camera </p> <p>The <xref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita">Advanced Camera Settings</xref> tutorial </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3" xml:lang="en"><title>Advanced
+Settings for Focus, Drive Modes, and Bracket Modes </title><shortdesc>This document provides a detailed description of various advanced
+settings of Ecam component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-B66B827F-F291-5A87-A96F-0281B5FB2722"><title>Introduction</title> <p>The
+advanced settings class, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>,
+provides access to common camera hardware settings related to image acquisition
+for still images and video. </p> <p id="GUID-79C320F6-1B2A-5A91-AEB2-356BB7C0B160"><b>Focus
+mode</b> </p> <p>The high level steps to set the Camera focus mode are shown
+here: </p> <ul>
+<li id="GUID-8FEE544B-043C-5A2E-8D1F-29A8336F0CA9"><p>Get the information
+about the supported focus modes on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-B122389A-2B0F-3D93-BC22-0BCEB8494929"><apiname>CCamera::CCameraAdvancedSettings::SupportedFocusModes()
+const</apiname></xref> method. </p> </li>
+<li id="GUID-8B66ECEA-605D-55BC-BA40-679BA9CF1A96"><p>Set a specific focus
+mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-FAC15061-9DE7-3196-969E-70C0752C9253"><apiname>CCamera::CCameraAdvancedSettings::SetFocusMode(TFocusMode
+aFocusMode)</apiname></xref> method. </p> </li>
+<li id="GUID-80E965EA-7C42-564E-9FE6-1B04B89359C4"><p>Get the current focus
+mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D057397E-E483-3082-B1E1-B50CF8D3DD2B"><apiname>CCamera::CCameraAdvancedSettings::FocusMode()</apiname></xref> method. </p> <p>The
+enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-877A6E33-8F63-3EFC-8D8C-F77857457B80"><apiname>CCamera::CCameraAdvancedSettings::TFocusMode</apiname></xref> defines
+four supported focus modes: </p> <table id="GUID-02C2468E-DBBF-5137-ACEB-C23FFAFBB468">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusModeUnknown</codeph>  </p> </entry>
+<entry><p>Focus mode is unknown </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EStabilizationComplexityLow</codeph> </p> </entry>
+<entry><p>Focus mode is automatic </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EStabilizationComplexityMedium</codeph>  </p> </entry>
+<entry><p>Focus is fixed </p> </entry>
+</row>
+<row>
+<entry><p><codeph>EStabilizationComplexityHigh</codeph>  </p> </entry>
+<entry><p>Focus is manually set </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </li>
+</ul> <p>The following example shows how to change the focus mode: </p> <codeblock id="GUID-24781D9D-62F0-5A3A-8AE1-A3666AED78E2" xml:space="preserve">    // Assigns the focus mode to be set    
+    CCamera::CCameraAdvancedSettings::TFocusMode focusMode = CCamera::CCameraAdvancedSettings::EFocusModeFixed;
+    
+    // Gets the supported modes
+    TInt suppFocusModes = settings-&gt;SupportedFocusModes();// Checks if the focus mode is supported before setting it
+    if (focusMode &amp; suppFocusModes)
+        {
+           // Sets the focus mode if it is supported
+        settings-&gt;SetFocusMode(focusMode);
+        }</codeblock> <p id="GUID-20148E50-5531-595D-AED3-BACF2F5D69A3"><b>Focus
+range</b> </p> <p>Get the supported focus range using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AE5EC95A-7BDD-34F9-83DA-BFC79BFD38F2"><apiname>CCamera::CCameraAdvancedSettings:TFocusRange</apiname></xref>.
+This defines eight supported focus ranges: </p> <table id="GUID-45890051-4539-57F0-A07E-17F4530415D3">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeAuto</codeph>  </p> </entry>
+<entry><p>Automatic </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
+<entry><p>Focus operates in close range </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
+<entry><p>Normal operation </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
+<entry><p>Extended (tele) operation </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangePortrait</codeph>  </p> </entry>
+<entry><p>Focus at larger areas at short to medium distance </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeSuperMacro</codeph>  </p> </entry>
+<entry><p>Optimized macro operation, where depth of field is very shallow
+and observation area changes quickly </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeHyperfocal</codeph>  </p> </entry>
+<entry><p>All objects at distances from half of the hyperfocal distance out
+to infinity will be in focus. This gives maximum depth of field. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EFocusRangeInfinite</codeph>  </p> </entry>
+<entry><p>Infinite range, when there is a near obstacle or better focus wanted
+for far away objects. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following example shows how to change the focus range: </p> <codeblock id="GUID-D65E3CD4-BD93-5D87-AB07-3596BBFFCF21" xml:space="preserve">    // Assigns the focus range to EFocusRangeHyperfocal and checks if it is supported
+    CCamera::CCameraAdvancedSettings::TFocusRange focusRange = CCamera::CCameraAdvancedSettings::EFocusRangeHyperfocal;
+        
+    // Gets the supported ranges            
+    TInt suppRanges = settings-&gt;SupportedFocusRanges();
+    
+    // Checks if the focus range is supported before setting it.
+    if (focusRange &amp; suppRanges) 
+        {
+        // Sets the focus range if it is supported
+        settings-&gt;SetFocusRange(focusRange);
+        }</codeblock> <p>The result of <codeph>SetFocusRange</codeph> is notified
+to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
+with UID <codeph>KUidECamEventCameraSettingFocusRange2</codeph>. </p> <p id="GUID-13C7E377-B9DB-5382-8D2C-C182D1849AEC"><b> Autofocus</b> </p><p>Autofocus
+support for camera applications is controlled through the <codeph>CCameraAdvancedSettings</codeph> class. </p><fig id="GUID-BD935125-B7F9-4223-BC94-0B4A663DE13C">
+<title>Implementation of autofocus</title>
+<image href="GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e292667_href.png" placement="inline"/>
+</fig><p>Pressing the camera shutter key on the device halfway down generates
+additional key events. The key events can be used to activate autofocus if
+the camera hardware supports the functionality. Shutter release (image capture)
+can be triggered by pressing the key all the way down. The key presses generate
+separate key events. To capture other than autofocus key events from the shutter
+key, you need the <codeph>SwEvent</codeph> <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capability</xref>.</p><p>The
+settings you can use in your application depend on the camera hardware on
+the device. The Camera API allows you to query almost all features of the
+device camera. For example, to get a list of supported advanced settings,
+use the <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita#GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF/GUID-D266F5CF-75DE-3032-BE3A-359C7D021696"><apiname>CCameraAdvancedSettings::GetSupportedSettingsL(RArray&lt;TUid&gt;&amp;
+aSettings) const</apiname></xref> method.</p><p>Get the supported autofocus types
+using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AE09FE2C-D173-38AA-9867-75B7788ACD6E"><apiname>CCamera::CCameraAdvancedSettings:TAutoFocusType</apiname></xref>.
+This defines three supported focus types: </p> <table id="GUID-3535B88E-68BA-5DAF-B367-24E856B76A8B">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EAutoFocusTypeOff</codeph>  </p> </entry>
+<entry><p>Autofocus is switched off.</p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EAutoFocusTypeSingle</codeph>  </p> </entry>
+<entry><p>Operates on a single shot, consumes less power. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EAutoFocusTypeContinuous</codeph>  </p> </entry>
+<entry><p>Continuous autofocus, more precise but consumes more power. This
+is also known as AF Servo. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following example shows how to change the autofocus type: </p> <codeblock id="GUID-9FE120BA-04B9-58A4-A319-B820F3274066" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TAutoFocusType focusType = CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff;
+    
+    // Gets the supported focus types
+    TInt suppFocusTypes = settings-&gt;SupportedAutoFocusTypes();
+    
+    // Checks if the focus type is supported before setting it.
+    if (focusType &amp; suppFocusTypes)
+        {
+        // Sets the focus type if it is supported
+        settings-&gt;SetAutoFocusType(focusType);
+        }</codeblock> <p>The result of <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-668C3353-AC24-39D9-BED8-0AB1E813FD53"><apiname>CCamera::CCameraAdvancedSettings::SetAutoFocusType(TAutoFocusType
+aAutoFocusType)</apiname></xref> is notified to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
+with uid <codeph>KUidECamEventCameraSettingAutoFocusType2</codeph>. </p><p>For
+more information on how to easily use the device camera with zoom and autofocus,
+see <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">S60 Platform: Camera
+Example</xref>. The Camera Wrapper provides a unified interface for various
+Symbian camera APIs. The example application supports the use of both the
+keypad and touch UI. The application can be self-signed, but it also provides
+an option to use the dedicated camera key (Symbian signing required).</p> <p id="GUID-6A1C1EAC-092F-59FE-B0FA-74991872A42D"><b> Drive modes</b> </p> <p>Get
+the supported drive modes for the camera using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8A12E8C7-6930-3BFA-B543-C1984CA7AC47"><apiname>CCamera::CCameraAdvancedSettings:TDriveMode</apiname></xref> that
+determines how and in what succession images are captured. This defines eight
+supported drive modes for the camera with the following Enum Values: </p> <table id="GUID-4D90CBA3-7721-5785-92C2-282EE7996588">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeAuto</codeph>  </p> </entry>
+<entry><p>Automatic </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeSingleShot</codeph>  </p> </entry>
+<entry><p>Camera takes a single image or shot </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeContinuous</codeph>  </p> </entry>
+<entry><p>Camera continuously captures images as fast as it can until it is
+stopped or it exceeds the storage space. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeBracket</codeph>  </p> </entry>
+<entry><p>Camera is in bracketing mode, producing individual frames. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeBracketMerge</codeph>  </p> </entry>
+<entry><p>Camera is in bracketing mode, but producing a single image. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-2E5A785B-A468-3BD9-9F69-DEC6057F0EF2"><apiname>CCamera::CCameraAdvancedSettings::SetBracketMerge(TInt
+aStartIndex, TInt aFrames)</apiname></xref> method to work in this drive mode. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeTimed</codeph>  </p> </entry>
+<entry><p>Camera captures a single shot after specified time period. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D730C647-E4B8-3115-AFDF-1F327CF1F978"><apiname>CCamera::CCameraAdvancedSettings::SetTimerInterval(TInt
+aTimerInterval)</apiname></xref> method to work in this drive mode. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeTimeLapse</codeph>  </p> </entry>
+<entry><p>Camera captures a set of images with an uniform interval between
+them. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-B1DCD5D8-873A-34CF-B576-719A20798D79"><apiname>CCamera::CCameraAdvancedSettings::SetTimeLapse(const TTime&amp;
+aStart, const TTime&amp; aEnd, const TTime&amp; aInterval)</apiname></xref> method
+to work in this drive mode. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EDriveModeBurst</codeph>  </p> </entry>
+<entry><p>Camera captures a set of images as fast as it can in batches or
+bursts. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-4B4E2FA2-68CA-33F0-AB76-9731D92B51D6"><apiname>CCamera::CCameraAdvancedSettings::SetBurstImages(TInt
+aImages)</apiname></xref> method to set the number of burst images before capturing
+the image. </p> <p> <b>Note</b>: There are chances that the actual number
+of images captured may be less important due to memory or image size limitations. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following example shows how to change the drive mode: </p> <codeblock id="GUID-9FB24CA2-8107-560F-80DA-4ACDE5E93049" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TDriveMode driveMode = CCamera::CCameraAdvancedSettings::EDriveModeSingleShot;
+    
+    // Gets the supported drive modes
+    TInt suppDriveModes = settings-&gt;SupportedDriveModes();
+    
+    // Checks if the drive mode is supported before setting it.
+    if (driveMode &amp; suppDriveModes) 
+        {
+        // Sets the drive mode
+        settings-&gt;(driveMode);
+        }</codeblock> <p>The result of <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-00B45E4F-AB03-3523-A0AB-2D766F34B021"><apiname>CCamera::CCameraAdvancedSettings::SetDriveMode(TDriveMode
+aDriveMode)</apiname></xref> is notified to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
+with uid <codeph>KUidECamEventCameraSettingDriveMode</codeph>. </p> <p id="GUID-C3CB9300-39D5-5891-8E13-2DDFEFD0D695"><b>Bracket
+modes</b> </p> <p>Bracket mode is a type of drive mode, which is called using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-38F5BF2D-2B72-33F7-803A-274DA455CAD5"><apiname>CCamera::CCameraAdvancedSettings::EDriveModeBracket</apiname></xref>. </p> <p>Bracket mode involves the camera taking a sequence of pictures,
+while automatically varying a camera setting, such as exposure, over a range
+of values. The enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8AFEA294-03F8-3E1F-8745-1597B417FB87"><apiname>CCamera::CCameraAdvancedSettings:TBracketMode</apiname></xref> defines
+three supported bracket modes for the camera. The setting that is varied is
+called the bracket parameter, and is represented by the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-9982989C-660D-3D16-B3EB-36ED285A6C5B"><apiname>CCamera::CCameraAdvancedSettings:TBracketParameter</apiname></xref> enumeration,
+while the scale of the change to the setting to make for each new picture
+is called the bracket step, and is represented by the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-B37822DF-182E-3829-9E76-807CAA76F160"><apiname>CCamera::CCameraAdvancedSettings:TBracketStep</apiname></xref> enumeration.
+The possible bracket modes are: </p> <table id="GUID-0A4D293B-F3F0-5FC4-A29D-D180CE4FF947">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EBracketModeOff</codeph>  </p> </entry>
+<entry><p>Bracket mode is switched off. This is the default value. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EBracketMode3Image</codeph>  </p> </entry>
+<entry><p>Bracket mode on. Three consecutive pictures are taken in order,
+with the setting at under (-1), on (0), and over (+1). </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EBracketMode5Image</codeph>  </p> </entry>
+<entry><p>Bracket mode on. Five consecutive pictures are taken in order, with
+the setting at under (-2), under (-1), on (0), over (+1), and over (+2). </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following example shows how to change the bracket mode: </p> <codeblock id="GUID-381BFE03-77E1-555B-9389-ACDC97DA7261" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TBracketMode bracketMode = CCamera::CCameraAdvancedSettings::EBracketMode3Image;
+    
+    // Gets the supported bracket modes
+    TInt suppBracketModes = settings-&gt;SupportedBracketModes();
+    
+    // Checks if the bracket mode is supported before setting it.
+    if (bracketMode &amp; suppBracketModes) 
+        {
+        settings-&gt;SetBracketMode(bracketMode);    
+        }</codeblock> <p><b>Zoom Mode</b> </p> <p>The high level steps to
+perform various operations in zoom mode are listed below: </p> <ul>
+<li id="GUID-0F61E199-4297-505B-BC1F-D6F5FE6B073B"><p>Get the continuous zoom
+types supported by the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-6B95F570-6FAC-38C0-98D8-32F2A759CAB6"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedContinuousZoomTypeL(TUint&amp;
+aSupportedContinuousZoomType) const</apiname></xref> method. </p> </li>
+<li id="GUID-CAB0F4ED-DFFD-5C8B-B6E0-0B232CDCDD27"><p>Start continuous zoom
+using <xref href="GUID-2A98C0B4-DBA4-32B9-B35D-8CFF69A0313C.dita#GUID-2A98C0B4-DBA4-32B9-B35D-8CFF69A0313C/GUID-59D734B0-15D2-39CB-A089-F468D81AAB22"><apiname>CCamera::CCameraAdvancedSettings::StartContinuousZoomL(CCamera::CCameraAdvancedSettings::TContinuousZoomParameters
+aContinuousZoomParameters)()</apiname></xref> method with specified continuous zoom
+type and the zoom direction. </p> </li>
+<li id="GUID-03EFA212-975F-5A77-BAFE-C410C015EC18"><p>Notify the client about
+the extent of continuous zoom achieved using event <codeph>KUidECamEvent2CameraSettingContinuousZoomPercentageCompletion</codeph>.
+When continuous zoom reached its limit, notify the client using event <codeph>KUidECamEventCameraSettingContinuousZoomReachedLimit</codeph>. </p> </li>
+<li id="GUID-710E7302-2333-51DC-820D-7F05E8CE5A36"><p>Stop continuous zoom
+using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-1EA4029D-502F-378E-8E6B-0D15D9C98031"><apiname>CCamera::CCameraAdvancedSettings::StopContinuousZoom()</apiname></xref> method. </p> </li>
+</ul> <p><b>Extending Pixel Aspect Ratio</b> </p> <p>You can use the pixel
+aspect ratio to provide settings for PAL, NTSC and NTSC4:3. For this, you
+need to extend the enumeration of enum <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-D97EB1D7-8C88-3A0C-BCB4-8EA01CF20C4E"><apiname>CCamera::CCameraAdvancedSettings:TPixelAspectRatio</apiname></xref> as
+follows: </p> <table id="GUID-DD24C53C-8C60-5EAF-9B7A-05A3A34018F3">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Enum Value</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p><codeph>TPixelAspectRatio::EEPixelAspect16:11 </codeph></p> </entry>
+<entry><p>PAL </p> </entry>
+</row>
+<row>
+<entry><p><codeph>TPixelAspectRatio::EEPixelAspect40:33</codeph> </p> </entry>
+<entry><p>NTSC </p> </entry>
+</row>
+<row>
+<entry><p><codeph>TPixelAspectRatio::EEPixelAspect10:11</codeph> </p> </entry>
+<entry><p>NTSC4:3 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-429847B5-ED64-39BB-9094-A966BDF1796F"><apiname>CCamera::CCameraAdvancedSettings::PixelAspectRatio()</apiname></xref> method
+to get the current pixel aspect ratio. </p> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-F92198EA-8E1B-3C2A-A1CE-DED77112AA72"><apiname>CCamera::CCameraAdvancedSettings::SetPixelAspectRatio(TPixelAspectRatio
+aPixelAspectRatio)</apiname></xref> method to set the pixel aspect ratio. Notify <codeph>MCameraObserver2</codeph> clients
+with <codeph>KUidECamEventPixelAspectRatio</codeph> event. </p> </section>
+<section id="GUID-A7312910-7CBC-4ADB-BDB6-4EABF809BDB8"><title>Miscellaneous</title> <p>This
+section details the miscellaneous APIs used in <codeph>CCameraAdvancedSettings</codeph> class. </p> <ul>
+<li id="GUID-95245D67-3B97-52CE-B0E5-40C8143BB63A"><p> <b> ISO rates </b>:
+ISO indicates the sensitivity of the image sensor and is also a parameter
+that influences the exposure. </p> <ul>
+<li id="GUID-8376DD53-898A-5CB2-A580-681A14707207"><p>Get the set of camera
+supported ISO rates using the<xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-988DB2DC-9598-3F07-8DA5-1C1005D775C8"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedIsoRatesL(RArray&lt;TInt&gt;&amp;
+aSupportedIsoRates) const</apiname></xref> method. The enum value <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-0CFA8FBA-1EF7-31A3-BD2F-AA26DA953574"><apiname>CCamera::CCameraAdvancedSettings:TISORateType</apiname></xref> specifies
+the ISO type supported by the camera. </p> </li>
+<li id="GUID-5DBE8988-FE71-54C3-80DD-A72DEA495F20"><p>When camera device does
+not reveal the ISO supported rates, it has to be assumed that camera will
+work only on the permanently set value. If this value is not known, returns
+empty array and corresponding getter or setters for this feature should not
+be used in such a case. </p> </li>
+<li id="GUID-1F3848E6-6763-591A-9514-091ECEBFBAD0"><p>Set the type of ISO
+rate and the exposure parameter or specific value using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-637DA561-D767-3D28-859C-23E91D22754B"><apiname>CCamera::CCameraAdvancedSettings::SetISORateL(TISORateType
+aISORateType, TInt aParam)</apiname></xref> method. </p> </li>
+<li id="GUID-60604442-D930-5C55-8D2F-F23C891A6590"><p>Get the type of ISO
+rate, exposure parameter and the value set using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-A4E38716-4298-34B6-A831-CCCB580D5277"><apiname>CCamera::CCameraAdvancedSettings::GetISORateL(TISORateType&amp;
+aISORateType, TInt&amp; aParam, TInt&amp; aISORate) const</apiname></xref> method. </p> </li>
+<li id="GUID-5BEE22FB-1B43-5B83-ABA9-E9BEEA17D30F"><p>Get current ISO rate
+using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-C652575D-5A50-3527-A56D-0545141A8D3C"><apiname>CCamera::CCameraAdvancedSettings::IsoRate() const</apiname></xref>. </p> </li>
+</ul> </li>
+<li id="GUID-963323CA-0ABE-5DDF-A0C9-6667FD98D20B"><p>Get current aperture
+value using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-4221E82B-B223-3F99-B750-1846C3751425"><apiname>CCamera::CCameraAdvancedSettings::Aperture() const</apiname></xref>.
+For example, the function returns 280 for the actual aperture of F2.8. If
+the value returned is negative, indicates the error case (system wide error
+code) and positive represents the current aperture value. </p> </li>
+<li id="GUID-B8F1D3F3-64AB-53B6-B836-36899A5806EC"><p>Get the current shutter
+speed in microseconds using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-742C86DB-2D66-3538-BEBF-A72081F579E5"><apiname>CCamera::CCameraAdvancedSettings::ShutterSpeed()
+const</apiname></xref>. If the value returned is negative, indicates the error case
+(system wide error code) and positive represents the current shutter speed. </p> </li>
+<li id="GUID-C7ECE3F7-F3A9-5397-B745-AFA20F8D8DC4"><p>Get all supported metering
+modes on this camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-57CD617B-C0BD-3338-A8D1-740BA235CF09"><apiname>CCamera::CCameraAdvancedSettings::SupportedMeteringModes()
+const</apiname></xref>. </p> </li>
+<li id="GUID-E3E794F1-2773-5C10-8EF1-ED7538C4CFE1"><p>Get all supported drive
+modes as bitfields of <codeph>TDriveMode</codeph> type using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-8F453942-2CE0-3FD0-AA78-11B0DDA164C7"><apiname>CCamera::CCameraAdvancedSettings::SupportedDriveModes()
+const</apiname></xref>. </p> </li>
+<li id="GUID-D2CDDC69-DDA0-5682-852D-EB984B84F6A5"><p>Get the currently set
+flash mode using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-C6CF3333-C7D8-3A8F-B6B0-097E99E387BC"><apiname>CCamera::CCameraAdvancedSettings::FlashMode()</apiname></xref>. </p> </li>
+</ul> </section>
+<section id="GUID-C2683A31-5432-4780-B9AF-CB952A0B8087"><title>See also</title> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> for the advanced
+settings of Camera </p> <p>The <xref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita">Advanced
+Camera Settings</xref> tutorials. </p><p>The <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">S60
+Platform: Camera Example</xref>.</p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e289302_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e292985_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6ABEF478-F3DB-524E-A500-9431B42C6665.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,92 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665" xml:lang="en"><title>Single
-Call Tutorial</title><shortdesc>This tutorial describes how to handle single call with the telephony
-API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-CF841B4F-0F62-5933-AD58-0A0593980732"><p>This state diagram
-shows how to dial or answer one call at a time. It presumes there are no other
-calls being made. </p> <fig id="GUID-5735A736-7536-507E-92CC-8A766D8B8F66">
-<title>              Single Call State Diagram            </title>
-<image href="GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e40447_href.png" placement="inline"/>
-</fig> <p>The boxes are states. The enumeration value in each box is the status
-of the voice line. <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
-line status</xref> describes the states and their meaning. You can also find
-the status of individual calls. The line state and the call state are the
-same in a single call. </p> <p>The arrows show events that trigger a change
-of state. In these events, a word in <b>bold</b> indicates a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> method
-that you can call. </p> </context>
-<steps id="GUID-6399570A-7FAF-5709-91B9-2168145F7F6C">
-<step id="GUID-30E27A7D-0792-5B77-AEE5-189A681CDDA0"><cmd/>
-<info>Check the <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
-line status</xref>  </info>
-<substeps id="GUID-12C8410C-2874-4502-B046-39EC0DC0E696">
-<substep id="GUID-27EC866D-B7B3-4305-9996-404B51378BE5"><cmd/>
-<info>if the line is Idle(<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>) no calls
-are in progress </info>
-</substep>
-<substep id="GUID-FF977DFD-6547-4FD6-B1B6-04D3F7E31ADC"><cmd/>
-<info>if the line is on hold(<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7F347F6A-0B02-34BC-B082-3449EA63A148"><apiname>CTelephony::EStatusHold</apiname></xref>) then
-there is another call in progress, but it is on hold and you can still dial
-or answer a second call </info>
-</substep>
-<substep id="GUID-956106AF-B740-48B8-B474-5442BE357FD6"><cmd/>
-<info>if a call is active, you must wait until it completes before you can
-dial or receive a call. To detect when this occurs, see <xref href="GUID-87CD8C58-F6B9-5D6B-9D7B-862979DE3B6F.dita">Notification
-Request Tutorial</xref>  </info>
-</substep>
-</substeps>
-</step>
-<step id="GUID-27A87414-B446-5C5D-BCBE-72F543062D67"><cmd/>
-<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita">Dial a call</xref>  </info>
-<info>While no calls are in progress, the line status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
-To dial a call, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref>. </info>
-<info>If successful and the remotes party answers the call then the line status
-is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref>. </info>
-</step>
-<step id="GUID-2D16FAAD-3900-5313-9C45-4E7867BF4453"><cmd/>
-<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Answer a call</xref>  </info>
-<info>When no calls are in progress, the line status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>. </info>
-<info>When a remote party calls your phone, the voice line status will change
-to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. </info>
-<info>When the status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6D12DBA4-8902-3649-B144-47C91F16C4B3"><apiname>CTelephony::AnswerIncomingCall()</apiname></xref> to
-answer the call. The status changes to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref> and
-the phone user can talk to the remote party. </info>
-</step>
-<step id="GUID-7398BBDB-3EA9-5575-A04F-47292ADA05BD"><cmd/>
-<info> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate a
-call</xref>  </info>
-</step>
-<step id="GUID-85EFB23C-DE86-5614-928F-A12ADF8E799E"><cmd/>
-<info> <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Detect remote
-party call termination</xref>  </info>
-</step>
-<step id="GUID-28C01974-AB55-5AFC-A5CD-A5054AC06A51"><cmd/>
-<info> <xref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita">Hold a Call</xref>  </info>
-</step>
-<step id="GUID-F3CA48F5-F03E-5CC5-BBCE-A1B3F122861C"><cmd/>
-<info> <xref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita">Resume a call</xref>  </info>
-</step>
-<step id="GUID-809085D2-7B65-5C40-88EA-E3619158D7F6"><cmd/>
-<info> <xref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita">Send DTMF tones </xref>  </info>
-</step>
-</steps>
-<result><p> When you successfully dial or answer a call, you will be given
-a
- <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-86D48DF2-1AA1-337A-A270-6703FF29C958"><apiname>CTelephony::TCallId</apiname></xref> the identifies the call. 
-</p><p>A remote party might try to ring your phone. The voice line state will
-change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. You can ignore this
-call. You can still terminate, hold, resume and send DTMF. 
-</p></result>
-</taskbody><related-links>
-<link href="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita"><linktext>Simultaneous
-                Call Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-6ABEF478-F3DB-524E-A500-9431B42C6665" xml:lang="en"><title>Single
+Call Tutorial</title><shortdesc>This tutorial describes how to handle single call with the telephony
+API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-CF841B4F-0F62-5933-AD58-0A0593980732"><p>This state diagram
+shows how to dial or answer one call at a time. It presumes there are no other
+calls being made. </p> <fig id="GUID-5735A736-7536-507E-92CC-8A766D8B8F66">
+<title>              Single Call State Diagram            </title>
+<image href="GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e34881_href.png" placement="inline"/>
+</fig> <p>The boxes are states. The enumeration value in each box is the status
+of the voice line. <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
+line status</xref> describes the states and their meaning. You can also find
+the status of individual calls. The line state and the call state are the
+same in a single call. </p> <p>The arrows show events that trigger a change
+of state. In these events, a word in <b>bold</b> indicates a <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> method
+that you can call. </p> </context>
+<steps id="GUID-6399570A-7FAF-5709-91B9-2168145F7F6C">
+<step id="GUID-30E27A7D-0792-5B77-AEE5-189A681CDDA0"><cmd/>
+<info>Check the <xref href="GUID-0DA6722B-0700-5612-884A-F3B7733E5252.dita">Voice
+line status</xref>  </info>
+<substeps id="GUID-12C8410C-2874-4502-B046-39EC0DC0E696">
+<substep id="GUID-27EC866D-B7B3-4305-9996-404B51378BE5"><cmd/>
+<info>if the line is Idle(<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>) no calls
+are in progress </info>
+</substep>
+<substep id="GUID-FF977DFD-6547-4FD6-B1B6-04D3F7E31ADC"><cmd/>
+<info>if the line is on hold(<xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7F347F6A-0B02-34BC-B082-3449EA63A148"><apiname>CTelephony::EStatusHold</apiname></xref>) then
+there is another call in progress, but it is on hold and you can still dial
+or answer a second call </info>
+</substep>
+<substep id="GUID-956106AF-B740-48B8-B474-5442BE357FD6"><cmd/>
+<info>if a call is active, you must wait until it completes before you can
+dial or receive a call. To detect when this occurs, see <xref href="GUID-87CD8C58-F6B9-5D6B-9D7B-862979DE3B6F.dita">Notification
+Request Tutorial</xref>  </info>
+</substep>
+</substeps>
+</step>
+<step id="GUID-27A87414-B446-5C5D-BCBE-72F543062D67"><cmd/>
+<info> <xref href="GUID-05759C1B-6731-52A1-8EC0-2570E01FC7BC.dita">Dial a call</xref>  </info>
+<info>While no calls are in progress, the line status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>.
+To dial a call, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref>. </info>
+<info>If successful and the remotes party answers the call then the line status
+is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref>. </info>
+</step>
+<step id="GUID-2D16FAAD-3900-5313-9C45-4E7867BF4453"><cmd/>
+<info> <xref href="GUID-D6334249-E61D-55E7-9D0E-95231DC3621F.dita">Answer a call</xref>  </info>
+<info>When no calls are in progress, the line status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-52E51C0C-8C27-311D-8B6B-223F899DB2C9"><apiname>CTelephony::EStatusIdle</apiname></xref>. </info>
+<info>When a remote party calls your phone, the voice line status will change
+to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. </info>
+<info>When the status is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>, use <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6D12DBA4-8902-3649-B144-47C91F16C4B3"><apiname>CTelephony::AnswerIncomingCall()</apiname></xref> to
+answer the call. The status changes to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-641B7EAB-56C6-3E9C-A53C-EE382925E1CE"><apiname>CTelephony::EStatusConnected</apiname></xref> and
+the phone user can talk to the remote party. </info>
+</step>
+<step id="GUID-7398BBDB-3EA9-5575-A04F-47292ADA05BD"><cmd/>
+<info> <xref href="GUID-91082AAB-DC8D-5AEA-A6C1-DD89932244FB.dita">Terminate a
+call</xref>  </info>
+</step>
+<step id="GUID-85EFB23C-DE86-5614-928F-A12ADF8E799E"><cmd/>
+<info> <xref href="GUID-42B10CBF-D45A-580F-A639-E2495FF3B4F3.dita">Detect remote
+party call termination</xref>  </info>
+</step>
+<step id="GUID-28C01974-AB55-5AFC-A5CD-A5054AC06A51"><cmd/>
+<info> <xref href="GUID-1907CF0B-2F4B-50F6-B676-7B7059B7FF74.dita">Hold a Call</xref>  </info>
+</step>
+<step id="GUID-F3CA48F5-F03E-5CC5-BBCE-A1B3F122861C"><cmd/>
+<info> <xref href="GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita">Resume a call</xref>  </info>
+</step>
+<step id="GUID-809085D2-7B65-5C40-88EA-E3619158D7F6"><cmd/>
+<info> <xref href="GUID-9C5A86D2-E602-55AE-B54B-8511E70CD23D.dita">Send DTMF tones </xref>  </info>
+</step>
+</steps>
+<result><p> When you successfully dial or answer a call, you will be given
+a
+ <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-86D48DF2-1AA1-337A-A270-6703FF29C958"><apiname>CTelephony::TCallId</apiname></xref> the identifies the call. 
+</p><p>A remote party might try to ring your phone. The voice line state will
+change to <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-7632FB7B-0272-39CB-B71A-C3C09EEB5E88"><apiname>CTelephony::EStatusRinging</apiname></xref>. You can ignore this
+call. You can still terminate, hold, resume and send DTMF. 
+</p></result>
+</taskbody><related-links>
+<link href="GUID-130C21D7-0A39-5A54-8545-C82B2ED4398C.dita"><linktext>Simultaneous
+                Call Tutorial</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6B50C0B9-C3CB-4524-909D-7FD096A3F894.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6B50C0B9-C3CB-4524-909D-7FD096A3F894" xml:lang="en"><title>Menu
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Menu lists are used to select one item from a list and do nothing else;
-the Options command is not available when a menu list is being browsed (the
-Options menu itself is a menu list).</p>
-<p>If a high-priority event, such as an incoming call, occurs when a menu
-list is open, the list is cancelled and the new event takes control. These
-lists are often displayed inside a pop-up window.</p>
-<p>The default keypad functions in a menu list are the following:</p>
-<table id="GUID-00EF343D-893A-4EDB-987A-DB5FD2D72F40"><title>Default key events
-in a menu list</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Arrow up / down</p></entry>
-<entry><p>Moves the focus in the list.</p></entry>
-</row>
-<row>
-<entry><p>Arrow left / right</p></entry>
-<entry><p>Ignored (unless there is a submenu; see <xref href="GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita">Submenus</xref>).</p></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><p>Selects the item, does the associated function.</p></entry>
-</row>
-<row>
-<entry><p>Left softkey (Select)</p></entry>
-<entry><p>Selects the item, does the associated function.</p></entry>
-</row>
-<row>
-<entry><p>Right softkey (Cancel)</p></entry>
-<entry><p>Dismisses the menu; returns to the state preceding the opening of
-the menu.</p></entry>
-</row>
-<row>
-<entry><p>Call creation key, Edit key</p></entry>
-<entry><p>Ignored.</p></entry>
-</row>
-<row>
-<entry><p>Numeric keypad</p></entry>
-<entry><p>Ignored.</p></entry>
-</row>
-<row>
-<entry><p>Clear key</p></entry>
-<entry><p>Ignored.</p></entry>
-</row>
-<row>
-<entry><p>Other keys</p></entry>
-<entry><p>Dismiss the menu and do the default action of the key.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-C9A7253A-5120-4EE9-88D6-3772149F9575">
-<title>Options menu</title>
-<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e61412_href.png" placement="inline"/>
-</fig>
-<section id="GUID-4A0E7244-D11A-4285-9D32-57C5B235F427"><title>Using
-menu lists in C++ applications</title><p>The API to use for menu lists is
-the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7" xml:lang="en"><title>S60
-Platform: HTTP Client Example</title><shortdesc>This example shows how to use HTTP APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-42E724C9-4C84-5AFF-B9F7-23BAE90CE48F"><title>Description</title> <p>This
-updated C++ application demonstrates simple HTTP GET and POST transactions
-using the HTTP Client API. Basic HTTP authentication is also supported. The
-updated v2.2 example uses application-level roaming (introduced in S60 3rd
-Edition, Feature Pack 2 onwards). The updated example has been tested to support
-S60 5th Edition and touch UI. Important classes: RHTTPSession, RHTTPTransaction,
-RHTTPHeaders, MHTTPDataSupplier, MHTTPAuthenticationCallback, MHTTPTransactionCallback.
-For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/458604da-e7fc-4d4e-92ee-3ce8a1e68a86/S60_Platform_HTTP_Client_API_Example.html" scope="external">Http Client Example</xref></p> </section>
-<section id="GUID-4D40BEB0-1C5B-538F-91A7-29A3D7D6D16B"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-f8185804-e4a0-47b3-9f66-e531d88ee9ce.zip" scope="external">Httpclientexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-f8185804-e4a0-47b3-9f66-e531d88ee9ce.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-F03E3A90-59C0-50F6-B1CA-27E86A8B1934"><title>Building
-and configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-50180DE5-DAE7-5C1A-A59C-01A9CC76DADE"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-7F23E0FC-6A18-58BF-B066-D50333284761"><p>For the emulator, the
-example builds an executable called <filepath>httpexampleclient.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita"><linktext>Simple Client
-Session guide</linktext></link>
-<link href="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita"><linktext>HTTP Overview</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7" xml:lang="en"><title>HTTP
+Client Example</title><shortdesc>This example shows how to use HTTP APIs. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-42E724C9-4C84-5AFF-B9F7-23BAE90CE48F"><title>Description</title> <p>This
+updated C++ application demonstrates simple HTTP GET and POST transactions
+using the HTTP Client API. Basic HTTP authentication is also supported. </p> </section>
+<section id="GUID-4D40BEB0-1C5B-538F-91A7-29A3D7D6D16B"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-f8185804-e4a0-47b3-9f66-e531d88ee9ce.zip" scope="external">Httpclientexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-f8185804-e4a0-47b3-9f66-e531d88ee9ce.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-F03E3A90-59C0-50F6-B1CA-27E86A8B1934"><title>Building and
+configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-50180DE5-DAE7-5C1A-A59C-01A9CC76DADE"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-7F23E0FC-6A18-58BF-B066-D50333284761"><p>For the emulator, the
+example builds an executable called <filepath>httpexampleclient.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita"><linktext>Simple Client
+Session guide</linktext></link>
+<link href="GUID-50BBCB9C-F234-5813-A42E-3FCFB0F14B66.dita"><linktext>HTTP Overview</linktext>
+</link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115" xml:lang="en"><title>System
-Model Relationship</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Messaging subsystem resides between Messaging applications and the
-lower level subsystems that Messaging subsystem uses for storage and transmission
-of messages. </p>
-<p>See the latest version of the public <xref href="http://developer.symbian.org/wiki/index.php/Symbian_System_Model" scope="external">System Model</xref> from the Symbian foundation.</p>
-<fig id="GUID-763A4790-2283-5D9A-8812-CB65C6E158C7">
-<title>           System model relationship          </title>
-<image href="GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e279803_href.png" placement="inline"/>
-</fig>
-<dl>
-<dlentry>
-<dt>Message Viewers</dt>
-<dd><p>Application for viewing a message. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Message Centre</dt>
-<dd><p>Application that displays list views of messages to the user, allowing
-the user to perform operations such as copying messages, sending messages,
-creating new messages and so on. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Message Editors</dt>
-<dd><p>Application for creating or editing a message. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>SendAs Clients</dt>
-<dd><p>Messaging clients, such as Client MTM, client applications that implement
-SendAs. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>EStore</dt>
-<dd><p>Symbian platform component that provides stream based storage. It provides
-the framework classes for the Message Store files. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>File system</dt>
-<dd><p>A set of conventions used to access a drive, and the software that
-implements those conventions. Local, ROM and installable file systems are
-supported. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>SQL</dt>
-<dd><p>A component that provides an SQL database service. Messaging subsystem
-stores each <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> (index entry) of the index file as
-a row of an SQL table in the SQL database. For more information on how Messaging
-subsystem has implemented SQL, see <xref href="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita#GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107/GUID-10265557-F31B-50B3-A955-A548A5A78D7B">Operating
-with the SQL database</xref>. </p> </dd>
-</dlentry>
-</dl>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6B97D07F-DF2A-5CF1-84A9-84DBE7CB2115" xml:lang="en"><title>System
+Model Relationship</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Messaging subsystem resides between Messaging applications and the
+lower level subsystems that Messaging subsystem uses for storage and transmission
+of messages. </p>
+<p>See the latest version of the public <xref href="http://developer.symbian.org/wiki/index.php/Symbian_System_Model" scope="external">System Model</xref> from the Symbian foundation.</p>
+<fig id="GUID-763A4790-2283-5D9A-8812-CB65C6E158C7">
+<title>           System model relationship          </title>
+<image href="GUID-2F8B9FAD-1669-5458-BA24-2E15BB0D2F53_d0e276117_href.png" placement="inline"/>
+</fig>
+<dl>
+<dlentry>
+<dt>Message Viewers</dt>
+<dd><p>Application for viewing a message. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Message Centre</dt>
+<dd><p>Application that displays list views of messages to the user, allowing
+the user to perform operations such as copying messages, sending messages,
+creating new messages and so on. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Message Editors</dt>
+<dd><p>Application for creating or editing a message. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>SendAs Clients</dt>
+<dd><p>Messaging clients, such as Client MTM, client applications that implement
+SendAs. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>EStore</dt>
+<dd><p>Symbian platform component that provides stream based storage. It provides
+the framework classes for the Message Store files. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>File system</dt>
+<dd><p>A set of conventions used to access a drive, and the software that
+implements those conventions. Local, ROM and installable file systems are
+supported. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>SQL</dt>
+<dd><p>A component that provides an SQL database service. Messaging subsystem
+stores each <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> (index entry) of the index file as
+a row of an SQL table in the SQL database. For more information on how Messaging
+subsystem has implemented SQL, see <xref href="GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107.dita#GUID-5E8AA6B6-38EB-5347-BA30-F9FF4BF7C107/GUID-10265557-F31B-50B3-A955-A548A5A78D7B">Operating
+with the SQL database</xref>. </p> </dd>
+</dlentry>
+</dl>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e332788_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e338945_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e244875_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e248612_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3" xml:lang="en"><title>Architecture</title><shortdesc>This section describes the architectural relationships of the telephony
-API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The telephony API for applications provides access to the basic telephony
-functionality for applications. The telephony API for applications is a subset
-of the multimode telephony API that provides a rich set of telephony applications
-to the handset manufacturers. </p>
-<section id="GUID-7EDF535A-3E6D-4092-B036-2A01C52098DA"><title>Overview</title> <p>The API is implemented as static linked
-library <filepath>etel3rdparty.dll</filepath>. The library must be linked
-in the client applications to access the telephony functions. The client applications
-access the functions with the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class. </p> <fig id="GUID-E83AD33D-9520-57F1-AEDB-6142D67267AB">
-<title>              Telephony API for Applications - Block Diagram      
-     </title>
-<image href="GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e37319_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-88403933-3F71-4BA1-911B-D984A25A7258"><title>Description</title> <p>The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class
-provides a limited set of telephony functions to client applications. The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> is built on top of the core, multimode
-and packet data telephony APIs. The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class
-provides client applications with the functions to : </p> <ul>
-<li id="GUID-22A18771-C1E9-57A7-B221-C6D621E1410E"><p>dial a call </p> </li>
-<li id="GUID-DC0239F0-06D4-5B4B-A830-E6C62DF5A8CB"><p>answer a call </p> </li>
-<li id="GUID-A42C48C2-82B8-594F-BB69-170AAF9B2EA1"><p>get the capabilities
-of the line, the call and the network </p> </li>
-<li id="GUID-38EC4FDC-825C-5513-9C5E-EF5C9F27EBEB"><p>get information about
-the basic and supplementary services of the network </p> </li>
-</ul> <p>The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class translates
-the client API request into the internal commands and forwards them to the
-telephony server. The telephony server forwards the command requests to the
-telephony server plug-in (TSY). The TSY is developed and customised by the
-handset manufacturers. The telephony functions available to client applications
-depend on the functions implemented in the TSY. </p> </section>
-<section id="GUID-EDB80144-9C59-4C78-948F-A158F3FD0033"><title>Platform security</title> <p>The DLL for the telephony API
-for applications, <i>etel3rdparty.dll </i> is protected with the <codeph>ALL
--TCB           </codeph> capability. According to the Symbian <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
-security</xref> model the client applications must have the minimum capability
-of <codeph>ALL -TCB</codeph> to use the DLL. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6BD861E5-7F33-513D-8B35-CFA47E3E82F3" xml:lang="en"><title>Architecture</title><shortdesc>This section describes the architectural relationships of the telephony
+API for applications. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The telephony API for applications provides access to the basic telephony
+functionality for applications. The telephony API for applications is a subset
+of the multimode telephony API that provides a rich set of telephony applications
+to the handset manufacturers. </p>
+<section id="GUID-7EDF535A-3E6D-4092-B036-2A01C52098DA"><title>Overview</title> <p>The API is implemented as static linked
+library <filepath>etel3rdparty.dll</filepath>. The library must be linked
+in the client applications to access the telephony functions. The client applications
+access the functions with the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class. </p> <fig id="GUID-E83AD33D-9520-57F1-AEDB-6142D67267AB">
+<title>              Telephony API for Applications - Block Diagram      
+     </title>
+<image href="GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e31753_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-88403933-3F71-4BA1-911B-D984A25A7258"><title>Description</title> <p>The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class
+provides a limited set of telephony functions to client applications. The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> is built on top of the core, multimode
+and packet data telephony APIs. The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class
+provides client applications with the functions to : </p> <ul>
+<li id="GUID-22A18771-C1E9-57A7-B221-C6D621E1410E"><p>dial a call </p> </li>
+<li id="GUID-DC0239F0-06D4-5B4B-A830-E6C62DF5A8CB"><p>answer a call </p> </li>
+<li id="GUID-A42C48C2-82B8-594F-BB69-170AAF9B2EA1"><p>get the capabilities
+of the line, the call and the network </p> </li>
+<li id="GUID-38EC4FDC-825C-5513-9C5E-EF5C9F27EBEB"><p>get information about
+the basic and supplementary services of the network </p> </li>
+</ul> <p>The <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> class translates
+the client API request into the internal commands and forwards them to the
+telephony server. The telephony server forwards the command requests to the
+telephony server plug-in (TSY). The TSY is developed and customised by the
+handset manufacturers. The telephony functions available to client applications
+depend on the functions implemented in the TSY. </p> </section>
+<section id="GUID-EDB80144-9C59-4C78-948F-A158F3FD0033"><title>Platform security</title> <p>The DLL for the telephony API
+for applications, <i>etel3rdparty.dll </i> is protected with the <codeph>ALL
+-TCB           </codeph> capability. According to the Symbian <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
+security</xref> model the client applications must have the minimum capability
+of <codeph>ALL -TCB</codeph> to use the DLL. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,134 +1,134 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8" xml:lang="en"><title>Variant
-configuration file syntax</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>A variant configuration file (<filepath>.var</filepath>)
-defines settings that are specific to a variant. It is used to modify certain
-aspects of an existing build platform. </p> </section>
-<section><title>Syntax</title> <p> <varname>KEYWORD</varname> [<varname>OPERATION</varname>]
-[<varname>VALUE</varname>] </p> <p>A summary of keywords, operations and values
-is given below: </p> <p><b>Keyword</b> </p> <p>Possible keywords are as follows: </p> <table id="GUID-D6F58101-A22F-5377-9190-B8E609DE35ED">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <codeph>VARIANT</codeph>  </p> </entry>
-<entry><p>Indicates that <varname>VALUE</varname> is the name of the variant
-configuration. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>VIRTUAL</codeph>  </p> </entry>
-<entry><p>Indicates that the variant is meant only for grouping variants and
-not to be used as a build configuration. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>EXTENDS</codeph>  </p> </entry>
-<entry><p>Indicates that the variant extends an existing variant configuration. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>VARIANT_HRH</codeph>  </p> </entry>
-<entry><p>Specifies the pre-included header (<filepath>.hrh</filepath>) file
-that defines feature macros. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>BUILD_INCLUDE</codeph>  </p> </entry>
-<entry><p>Specifies the location of the files to be included when building
-the binary. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>ROM_INCLUDE</codeph>  </p> </entry>
-<entry><p>Specifies the location of the files to be included when building
-the ROM image containing the variant binary. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p> <b>Note</b>: If VARIANT_HRH keyword is not present, then <codeph>/epoc32/include/variant/name.hrh</codeph> is
-used. </p> <p><b>operation</b> </p> <p>The possible operations are <codeph>set</codeph>, <codeph>append</codeph> and <codeph>prepend</codeph>.
-These operations provide the flexibility of extending the existing include
-paths within the <filepath>.var</filepath> file. The operations are applicable
-only to the <codeph>BUILD_INCLUDE</codeph> and <codeph>ROM_INCLUDE</codeph> keywords. </p> <p> <b>Example</b>  </p> <codeblock id="GUID-3D6B0229-A64F-52BB-9BDF-10ABDF99F11E" xml:space="preserve"># default.var
-VARIANT default
-BUILD_INCLUDE set         /epoc32/include
-BUILD_INCLUDE append    /epoc32/include/variant
-ROM_INCLUDE set        /epoc32/rom/include</codeblock> <codeblock id="GUID-91F8392C-C822-5829-BA42-FB8F9AB6AECD" xml:space="preserve"># phone.var
-VARIANT phone
-EXTENDS default
-BUILD_INCLUDE append    /epoc32/include/variant/phone
-ROM_INCLUDE prepend    /epoc32/rom/phone</codeblock> <p>For the variant <codeph>phone</codeph> the
-include lists will be: </p> <codeblock id="GUID-72B415A7-84D6-5818-9E64-B736D505E873" xml:space="preserve">BUILD (/epoc32/include, /epoc32/include/variant, /epoc32/include/variant/phone)
-ROM (/epoc32/rom/phone, /epoc32/rom/include)</codeblock> <p><b>value</b> </p><p>Value
-can be a variant name, a file name or a directory name. for example, myphone
-or /epoc32/tools/variant/name.var.  </p><ul>
-<li><p>Use '/' as the path separator between files and directories.</p></li>
-<li><p>Begin all paths with '/' implying that they are relative to EPOCROOT.</p></li>
-</ul> <p><b>Example</b> </p> <p>An example of a variant: </p> <codeblock id="GUID-50190D57-7C49-5697-A858-7626D59B1967-GENID-1-11-1-1-7-1-11-1-2-2-20" xml:space="preserve">VARIANT        name
-VIRTUAL
-EXTENDS        parent
-VARIANT_HRH    /epoc32/include/variant/something.hrh
-BUILD_INCLUDE    set        directoryA
-BUILD_INCLUDE    append        directoryB
-BUILD_INCLUDE    prepend    directoryC
-ROM_INCLUDE    set        directoryD
-ROM_INCLUDE    append        directoryE
-ROM_INCLUDE    prepend    directoryF
-
-</codeblock> <p><b>Notes</b> </p> <ul>
-<li id="GUID-84B8E804-46B8-5422-9CFE-048C9EF0179B-GENID-1-11-1-1-7-1-11-1-2-2-22-1"><p>All <filepath>.var</filepath> files
-must exist in <filepath>/epoc32/tools</filepath> <filepath>/</filepath> <varname>variant</varname>. </p> </li>
-<li id="GUID-CDB78FAD-58A6-5464-ACC6-EFBCEDFD5092-GENID-1-11-1-1-7-1-11-1-2-2-22-2"><p>A default variant configuration
-file (<filepath>default.var</filepath>) must exist in <filepath>/epoc32/tools/variant/</filepath>. </p> </li>
-<li id="GUID-7216C624-7E28-52A5-BAA7-BB897286AE51-GENID-1-11-1-1-7-1-11-1-2-2-22-3"><p>The name of the variant
-configuration file (.var) must be same as the variant name. For example, if
-the variant name is <b>myvar</b>, then the variant configuration file must
-be named as <filepath>myvar.var</filepath>. </p> </li>
-<li id="GUID-CADF1047-C92E-5A8C-81FB-64CAA19380B8-GENID-1-11-1-1-7-1-11-1-2-2-22-4"><p>Each variant must have
-a default <filepath>&lt;variant_name&gt;.hrh</filepath> file at <filepath>/epoc32/include/variant/</filepath>.
-If you want to use any other <filepath>.hrh</filepath> file under EPOCROOT,
-use the <codeph>VARIANT_HRH</codeph> keyword to specify its name along with
-the relative path. </p> </li>
-<li id="GUID-FEEDF642-117E-5E4F-8CD4-B6305B977204-GENID-1-11-1-1-7-1-11-1-2-2-22-5"><p>A default variant cannot
-be <codeph>VIRTUAL</codeph>. </p> </li>
-</ul> </section>
-<section><title>Example</title> <p>An example of a variant: </p> <codeblock id="GUID-50190D57-7C49-5697-A858-7626D59B1967-GENID-1-11-1-1-7-1-11-1-2-3-3" xml:space="preserve">VARIANT        name
-VIRTUAL
-EXTENDS        parent
-VARIANT_HRH    /epoc32/include/variant/something.hrh
-BUILD_INCLUDE    set        directoryA
-BUILD_INCLUDE    append        directoryB
-BUILD_INCLUDE    prepend    directoryC
-ROM_INCLUDE    set        directoryD
-ROM_INCLUDE    append        directoryE
-ROM_INCLUDE    prepend    directoryF
-
-</codeblock> </section>
-<section><title>Notes</title> <ul>
-<li id="GUID-84B8E804-46B8-5422-9CFE-048C9EF0179B-GENID-1-11-1-1-7-1-11-1-2-4-2-1"><p>All <filepath>.var</filepath> files
-must exist in <filepath>/epoc32/tools</filepath> <filepath>/</filepath> <varname>variant</varname>. </p> </li>
-<li id="GUID-CDB78FAD-58A6-5464-ACC6-EFBCEDFD5092-GENID-1-11-1-1-7-1-11-1-2-4-2-2"><p>A default variant configuration
-file (<filepath>default.var</filepath>) must exist in <filepath>/epoc32/tools/variant/</filepath>. </p> </li>
-<li id="GUID-7216C624-7E28-52A5-BAA7-BB897286AE51-GENID-1-11-1-1-7-1-11-1-2-4-2-3"><p>The name of the variant
-configuration file (.var) must be same as the variant name. For example, if
-the variant name is <b>myvar</b>, then the variant configuration file must
-be named as <filepath>myvar.var</filepath>. </p> </li>
-<li id="GUID-CADF1047-C92E-5A8C-81FB-64CAA19380B8-GENID-1-11-1-1-7-1-11-1-2-4-2-4"><p>Each variant must have
-a default <filepath>&lt;variant_name&gt;.hrh</filepath> file at <filepath>/epoc32/include/variant/</filepath>.
-If you want to use any other <filepath>.hrh</filepath> file under EPOCROOT,
-use the <codeph>VARIANT_HRH</codeph> keyword to specify its name along with
-the relative path. </p> </li>
-<li id="GUID-FEEDF642-117E-5E4F-8CD4-B6305B977204-GENID-1-11-1-1-7-1-11-1-2-4-2-5"><p>A default variant cannot
-be <codeph>VIRTUAL</codeph>. </p> </li>
-</ul></section>
-</conbody><related-links>
-<link href="GUID-917413FC-0AC0-5768-B5AD-36BD2EDCB1FF.dita"><linktext>How to build
-feature based variants</linktext></link>
-<link href="GUID-7FF363B0-B05F-5490-8D9C-59061B905381.dita"><linktext>How to build
-ROMs with variants</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6C069F43-207C-5C6A-B9F6-3865BE8E70E8" xml:lang="en"><title>Variant
+configuration file syntax</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>A variant configuration file (<filepath>.var</filepath>)
+defines settings that are specific to a variant. It is used to modify certain
+aspects of an existing build platform. </p> </section>
+<section><title>Syntax</title> <p> <varname>KEYWORD</varname> [<varname>OPERATION</varname>]
+[<varname>VALUE</varname>] </p> <p>A summary of keywords, operations and values
+is given below: </p> <p><b>Keyword</b> </p> <p>Possible keywords are as follows: </p> <table id="GUID-D6F58101-A22F-5377-9190-B8E609DE35ED">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <codeph>VARIANT</codeph>  </p> </entry>
+<entry><p>Indicates that <varname>VALUE</varname> is the name of the variant
+configuration. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>VIRTUAL</codeph>  </p> </entry>
+<entry><p>Indicates that the variant is meant only for grouping variants and
+not to be used as a build configuration. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>EXTENDS</codeph>  </p> </entry>
+<entry><p>Indicates that the variant extends an existing variant configuration. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>VARIANT_HRH</codeph>  </p> </entry>
+<entry><p>Specifies the pre-included header (<filepath>.hrh</filepath>) file
+that defines feature macros. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>BUILD_INCLUDE</codeph>  </p> </entry>
+<entry><p>Specifies the location of the files to be included when building
+the binary. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>ROM_INCLUDE</codeph>  </p> </entry>
+<entry><p>Specifies the location of the files to be included when building
+the ROM image containing the variant binary. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <b>Note</b>: If VARIANT_HRH keyword is not present, then <codeph>/epoc32/include/variant/name.hrh</codeph> is
+used. </p> <p><b>operation</b> </p> <p>The possible operations are <codeph>set</codeph>, <codeph>append</codeph> and <codeph>prepend</codeph>.
+These operations provide the flexibility of extending the existing include
+paths within the <filepath>.var</filepath> file. The operations are applicable
+only to the <codeph>BUILD_INCLUDE</codeph> and <codeph>ROM_INCLUDE</codeph> keywords. </p> <p> <b>Example</b>  </p> <codeblock id="GUID-3D6B0229-A64F-52BB-9BDF-10ABDF99F11E" xml:space="preserve"># default.var
+VARIANT default
+BUILD_INCLUDE set         /epoc32/include
+BUILD_INCLUDE append    /epoc32/include/variant
+ROM_INCLUDE set        /epoc32/rom/include</codeblock> <codeblock id="GUID-91F8392C-C822-5829-BA42-FB8F9AB6AECD" xml:space="preserve"># phone.var
+VARIANT phone
+EXTENDS default
+BUILD_INCLUDE append    /epoc32/include/variant/phone
+ROM_INCLUDE prepend    /epoc32/rom/phone</codeblock> <p>For the variant <codeph>phone</codeph> the
+include lists will be: </p> <codeblock id="GUID-72B415A7-84D6-5818-9E64-B736D505E873" xml:space="preserve">BUILD (/epoc32/include, /epoc32/include/variant, /epoc32/include/variant/phone)
+ROM (/epoc32/rom/phone, /epoc32/rom/include)</codeblock> <p><b>value</b> </p><p>Value
+can be a variant name, a file name or a directory name. for example, myphone
+or /epoc32/tools/variant/name.var.  </p><ul>
+<li><p>Use '/' as the path separator between files and directories.</p></li>
+<li><p>Begin all paths with '/' implying that they are relative to EPOCROOT.</p></li>
+</ul> <p><b>Example</b> </p> <p>An example of a variant: </p> <codeblock id="GUID-50190D57-7C49-5697-A858-7626D59B1967-GENID-1-13-1-1-7-1-11-1-2-2-20" xml:space="preserve">VARIANT        name
+VIRTUAL
+EXTENDS        parent
+VARIANT_HRH    /epoc32/include/variant/something.hrh
+BUILD_INCLUDE    set        directoryA
+BUILD_INCLUDE    append        directoryB
+BUILD_INCLUDE    prepend    directoryC
+ROM_INCLUDE    set        directoryD
+ROM_INCLUDE    append        directoryE
+ROM_INCLUDE    prepend    directoryF
+
+</codeblock> <p><b>Notes</b> </p> <ul>
+<li id="GUID-84B8E804-46B8-5422-9CFE-048C9EF0179B-GENID-1-13-1-1-7-1-11-1-2-2-22-1"><p>All <filepath>.var</filepath> files
+must exist in <filepath>/epoc32/tools</filepath> <filepath>/</filepath> <varname>variant</varname>. </p> </li>
+<li id="GUID-CDB78FAD-58A6-5464-ACC6-EFBCEDFD5092-GENID-1-13-1-1-7-1-11-1-2-2-22-2"><p>A default variant configuration
+file (<filepath>default.var</filepath>) must exist in <filepath>/epoc32/tools/variant/</filepath>. </p> </li>
+<li id="GUID-7216C624-7E28-52A5-BAA7-BB897286AE51-GENID-1-13-1-1-7-1-11-1-2-2-22-3"><p>The name of the variant
+configuration file (.var) must be same as the variant name. For example, if
+the variant name is <b>myvar</b>, then the variant configuration file must
+be named as <filepath>myvar.var</filepath>. </p> </li>
+<li id="GUID-CADF1047-C92E-5A8C-81FB-64CAA19380B8-GENID-1-13-1-1-7-1-11-1-2-2-22-4"><p>Each variant must have
+a default <filepath>&lt;variant_name&gt;.hrh</filepath> file at <filepath>/epoc32/include/variant/</filepath>.
+If you want to use any other <filepath>.hrh</filepath> file under EPOCROOT,
+use the <codeph>VARIANT_HRH</codeph> keyword to specify its name along with
+the relative path. </p> </li>
+<li id="GUID-FEEDF642-117E-5E4F-8CD4-B6305B977204-GENID-1-13-1-1-7-1-11-1-2-2-22-5"><p>A default variant cannot
+be <codeph>VIRTUAL</codeph>. </p> </li>
+</ul> </section>
+<section><title>Example</title> <p>An example of a variant: </p> <codeblock id="GUID-50190D57-7C49-5697-A858-7626D59B1967-GENID-1-13-1-1-7-1-11-1-2-3-3" xml:space="preserve">VARIANT        name
+VIRTUAL
+EXTENDS        parent
+VARIANT_HRH    /epoc32/include/variant/something.hrh
+BUILD_INCLUDE    set        directoryA
+BUILD_INCLUDE    append        directoryB
+BUILD_INCLUDE    prepend    directoryC
+ROM_INCLUDE    set        directoryD
+ROM_INCLUDE    append        directoryE
+ROM_INCLUDE    prepend    directoryF
+
+</codeblock> </section>
+<section><title>Notes</title> <ul>
+<li id="GUID-84B8E804-46B8-5422-9CFE-048C9EF0179B-GENID-1-13-1-1-7-1-11-1-2-4-2-1"><p>All <filepath>.var</filepath> files
+must exist in <filepath>/epoc32/tools</filepath> <filepath>/</filepath> <varname>variant</varname>. </p> </li>
+<li id="GUID-CDB78FAD-58A6-5464-ACC6-EFBCEDFD5092-GENID-1-13-1-1-7-1-11-1-2-4-2-2"><p>A default variant configuration
+file (<filepath>default.var</filepath>) must exist in <filepath>/epoc32/tools/variant/</filepath>. </p> </li>
+<li id="GUID-7216C624-7E28-52A5-BAA7-BB897286AE51-GENID-1-13-1-1-7-1-11-1-2-4-2-3"><p>The name of the variant
+configuration file (.var) must be same as the variant name. For example, if
+the variant name is <b>myvar</b>, then the variant configuration file must
+be named as <filepath>myvar.var</filepath>. </p> </li>
+<li id="GUID-CADF1047-C92E-5A8C-81FB-64CAA19380B8-GENID-1-13-1-1-7-1-11-1-2-4-2-4"><p>Each variant must have
+a default <filepath>&lt;variant_name&gt;.hrh</filepath> file at <filepath>/epoc32/include/variant/</filepath>.
+If you want to use any other <filepath>.hrh</filepath> file under EPOCROOT,
+use the <codeph>VARIANT_HRH</codeph> keyword to specify its name along with
+the relative path. </p> </li>
+<li id="GUID-FEEDF642-117E-5E4F-8CD4-B6305B977204-GENID-1-13-1-1-7-1-11-1-2-4-2-5"><p>A default variant cannot
+be <codeph>VIRTUAL</codeph>. </p> </li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-917413FC-0AC0-5768-B5AD-36BD2EDCB1FF.dita"><linktext>How to build
+feature based variants</linktext></link>
+<link href="GUID-7FF363B0-B05F-5490-8D9C-59061B905381.dita"><linktext>How to build
+ROMs with variants</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1" xml:lang="en"><title>The UI Control Framework (CONE)</title><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b> Purpose</b>  </p> <p>Let's get the important stuff out of the way first: CONE is an abbreviation of <b>CON</b> trol <b>E</b> nvironment. It is the internal Symbian component name for the UI Control Framework. </p> <p>CONE provides: </p> <ul><li id="GUID-2F913264-6144-5E40-9755-6495F2AE6857-GENID-1-8-1-3-1-1-7-1-2-4-1"><p>a framework for creating user interface controls, </p> </li> <li id="GUID-4B06EEAA-8FC8-52BE-BE08-9DFDEC604073-GENID-1-8-1-3-1-1-7-1-2-4-2"><p>a framework for applications to handle user interface events, </p> </li> <li id="GUID-6B47D7DE-589B-525A-B6D2-FF97BC29CFF8-GENID-1-8-1-3-1-1-7-1-2-4-3"><p>and an environment in which to access Window Server functionality. </p> </li> </ul> <p> <b>Contents</b>  </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-6-1-1-4-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-6-1-1-4-1-6-1" xml:lang="en"><title>The UI Control Framework (CONE)</title><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b> Purpose</b>  </p> <p>Let's get the important stuff out of the way first: CONE is an abbreviation of <b>CON</b> trol <b>E</b> nvironment. It is the internal Symbian component name for the UI Control Framework. </p> <p>CONE provides: </p> <ul><li id="GUID-2F913264-6144-5E40-9755-6495F2AE6857-GENID-1-8-1-6-1-1-4-1-6-1-2-4-1"><p>a framework for creating user interface controls, </p> </li> <li id="GUID-4B06EEAA-8FC8-52BE-BE08-9DFDEC604073-GENID-1-8-1-6-1-1-4-1-6-1-2-4-2"><p>a framework for applications to handle user interface events, </p> </li> <li id="GUID-6B47D7DE-589B-525A-B6D2-FF97BC29CFF8-GENID-1-8-1-6-1-1-4-1-6-1-2-4-3"><p>and an environment in which to access Window Server functionality. </p> </li> </ul> <p> <b>Contents</b>  </p> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4" xml:lang="en"><title>The UI Control Framework (CONE)</title><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b> Purpose</b>  </p> <p>Let's get the important stuff out of the way first: CONE is an abbreviation of <b>CON</b> trol <b>E</b> nvironment. It is the internal Symbian component name for the UI Control Framework. </p> <p>CONE provides: </p> <ul><li id="GUID-2F913264-6144-5E40-9755-6495F2AE6857"><p>a framework for creating user interface controls, </p> </li> <li id="GUID-4B06EEAA-8FC8-52BE-BE08-9DFDEC604073"><p>a framework for applications to handle user interface events, </p> </li> <li id="GUID-6B47D7DE-589B-525A-B6D2-FF97BC29CFF8"><p>and an environment in which to access Window Server functionality. </p> </li> </ul> <p> <b>Contents</b>  </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C"><title>Controlling Pre-Image Capture </title><shortdesc>This document explains how to configure the camera before using it for still image capture. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The PreImageCaptureControl API allows the client to retrieve the following information: </p> <ul><li id="GUID-2616F9E0-C6C5-5C1F-9060-28755FAA2A6F"><p>Direct snapshot support </p> </li> <li id="GUID-16A74E2A-31AB-5C64-98B2-7328D4E374EF"><p>Embedded still capture setting support </p> </li> <li id="GUID-7F870485-D5E9-5667-80AC-7C95588F5893"><p>Direct saving support </p> </li> <li id="GUID-F6BDB588-3003-5CD0-9232-B39CC8218F4D"><p>Image format and pixel aspect ratio supported for a given resolution </p> </li> <li id="GUID-D2BDBB39-7726-5762-8F9D-E68D7D19B2DB"><p>Maximum memory size setting support </p> </li> <li id="GUID-93CCFA89-2C29-5029-BD4F-A36650C191F6"><p>Maximum memory size currently used in camera </p> </li> </ul> <p>This new API creates a new set of camera configuration with improved speed. The new camera configuration is created, when there is an on-going still image capture based on previous configuration. </p> <p><b>Introduction</b> </p> <p>This classes provide the necessary framework to control the image operations and settings prior to image capture. An observer class is associated with this class so that client may be notified of various relevant activities. This API provides replacement for few image capture related methods in class <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref>. </p> <p><b>Required Background</b> </p> <p>This is an extension API associated with <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref> class. To create an object of the extension API facade class, a client application would need to provide a valid <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref> reference as a parameter for the factory method. </p> <p>Clients use <xref href="GUID-94C66CB9-328A-3275-B5A9-198EC6D0DD30.dita"><apiname>New2L</apiname></xref> or <xref href="GUID-14200C39-1435-31B0-9768-363BD3D4331E.dita"><apiname>NewDuplicate2L</apiname></xref> method to create camera object. So, clients that uses <xref href="GUID-E6F013A6-6413-3691-A70D-0289916ACD8A.dita"><apiname>NewL</apiname></xref> or <xref href="GUID-0DB8D81E-AEC1-364B-B404-996B35B449FD.dita"><apiname>NewDuplicateL</apiname></xref> will not be able to create instance of this extension. This prepares the clients to receive unrecognized enum or ids that can be included in future. </p> </section> <section id="GUID-3905D703-E2DD-50B4-A48C-DE84E504B5FB"><title>Using PreImageCaptureControl</title> <p>Licensee should provide concrete implementation for <xref href="GUID-AB548D66-4418-30B3-B81D-619CED81EBBA.dita"><apiname>MCameraPreImageCaptureControl</apiname></xref> class. Configuring the camera before using it for still image capture includes the following steps: </p> <ol id="GUID-2C0AEE23-FF96-5A62-A9CB-8DA762FFAD8B"><li id="GUID-ECF691D5-3036-5F12-B4F2-2BA37627A262"><p>Use <xref href="GUID-9435F878-B639-3C9E-905A-AFF5C7A30F20.dita#GUID-9435F878-B639-3C9E-905A-AFF5C7A30F20/GUID-7F386328-78F2-33AE-87D8-FFCD2AAEFB20"><apiname>CcameraPreImageCaptureControl::NewL()</apiname></xref> factory method to create a class pointer. </p> <p>This maps the exported call to an internal object of class <xref href="GUID-90E10EF6-5B7E-3A0B-B1FA-293D19A2B346.dita"><apiname>CCameraPreImageCaptureControl</apiname></xref> that provides the functionality. </p> </li> <li id="GUID-94A29911-4762-5673-8805-70273331F2DF"><p>Get this pointer using a call to <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita#GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E/GUID-1F537D7D-5451-3834-869D-3092A4773B83"><apiname>Ccamera::CustomInterface()</apiname></xref> with UID value <xref href="GUID-5F12DF77-CD66-3445-ACF5-FD3FF815FFF6.dita"><apiname>KECamMCameraPreImageCaptureControlUid</apiname></xref>. </p> </li> <li id="GUID-3F8D8B5D-2E66-5102-B38A-971A06B009CF"><p>Use pointer to the <xref href="GUID-AB548D66-4418-30B3-B81D-619CED81EBBA.dita"><apiname>MCameraPreImageCaptureControl</apiname></xref> derived class to initialize <xref href="GUID-90E10EF6-5B7E-3A0B-B1FA-293D19A2B346.dita#GUID-90E10EF6-5B7E-3A0B-B1FA-293D19A2B346/GUID-A4766124-D4BC-3086-8511-2D3ABC817FAA"><apiname>CCameraPreImageCaptureControl::iImpl</apiname></xref> during the second phase construction of the class <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58"><apiname>CCamera::CCameraPreImageCaptureControl</apiname></xref>. </p> </li> <li id="GUID-E6406691-7048-5878-8E28-F613AC43C195"><p>Use <xref href="GUID-CC3E371F-3037-3F7C-ACFF-DCC24972F0B7.dita"><apiname>MpreImageCaptureControlObserver</apiname></xref> that contains call-back to provide instance of image capture class object after successfully preparing the image parameters. </p> </li> <li id="GUID-36D7701C-E01A-5CED-9B89-700599B4F448"><p>Check if camera can provide capture event notification to the client using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-34F7459D-BC5A-3EE3-8344-F38A53065A37"><apiname>CCamera::CCameraPreImageCaptureControl::GetCaptureEventSupportInfoL</apiname></xref> method. If capture event notification is supported, ECam implementation will use <xref href="GUID-897443E9-1596-3488-AFE1-32D02F74ED62.dita"><apiname>KUidECamEventImageCaptureEvent</apiname></xref> event to notify the clients that the image has been exposed to the camera sensor. </p> </li> <li id="GUID-74F86194-32FD-54D4-A892-DBF61D481726"><p>Clients can decide whether to play a capture sound. </p> </li> <li id="GUID-C22097F6-8BD9-5059-BE1C-72361F46DF4D"><p>Client retrieves the information about direct snapshot support, embedded still capture setting support and direct saving support from the camera, and filled the desired <xref href="GUID-F9C915AA-2CF8-39A0-99B6-C8C16D20DAE5.dita"><apiname>TPrepareImageParameters</apiname></xref> to issue <xref href="GUID-D9BF1588-CF37-3D1E-AD6B-9CF7D1540C6D.dita"><apiname>PrepareImageCapture</apiname></xref> call. </p> </li> <li id="GUID-41DF8F68-1C90-5B82-9157-3E6B182F1E86"><p>Implementation sets up and allocates memory for image capture operation. It creates a new <xref href="GUID-992BCFCD-9F06-35A5-B166-3058F650E360.dita"><apiname>CCameraImageCapture</apiname></xref> object using the prepare image parameters passed by the client. </p> </li> <li id="GUID-7D926D6F-9413-5CEE-BB25-7D22523CCDDC"><p>The callback <xref href="GUID-901FB5EB-70A9-39AA-9052-436E8FC0C0EA.dita#GUID-901FB5EB-70A9-39AA-9052-436E8FC0C0EA/GUID-BE06517A-0C7D-3F20-BE4C-00F424C30147"><apiname>MPreImageCaptureControlObserver::PrepareImageComplete</apiname></xref> passes the ownership of the <xref href="GUID-992BCFCD-9F06-35A5-B166-3058F650E360.dita"><apiname>CCameraImageCapture</apiname></xref> object to the client. </p> </li> </ol> <p> <b>Note</b>: </p> <ul><li id="GUID-9477A161-E0B5-598D-BF38-868882FB4084"><p>Client should provide implementation of <xref href="GUID-CC3E371F-3037-3F7C-ACFF-DCC24972F0B7.dita"><apiname>MpreImageCaptureControlObserver</apiname></xref> class. </p> </li> <li id="GUID-DD66113F-BAA1-5E61-A5C5-F0AD44FA2C62"><p>Licensees should provide a concrete implementation of <xref href="GUID-146FDB43-52C2-3951-8231-57B40F06A355.dita"><apiname>McameraPreImageCaptureControl</apiname></xref> interface class. </p> </li> </ul> <p>The following example code snippets illustrates the use of <b>PreImageCaptureControl</b> classes. </p> <codeblock id="GUID-725BEAC3-EB75-5792-AA27-A26F6F5D36F1" xml:space="preserve">CCamera* camera; 
-Use MCameraObserver2* observer2; 
-Use camera = CCamera::New2L(*observer2, 0);
-
-CCamera::CCameraPreImageCaptureControl* preImgCapture = CCamera::CCameraPreImageCaptureControl::NewL(*camera, MPreImageCaptureControlObserver* preImageCaptureControlObserver));
-
-CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters prepareImageParameters;
-MCaptureImageObserver*     captureImageObserver ;
-preImgCapture-&gt;PrepareImageCapture(prepareImageParameters, *captureImageObserver);</codeblock> <p><b>Setting Maximum Memory Size</b> </p> <p>To set maximum memory size for a JPEG still image do the following: </p> <ul><li id="GUID-258A56BE-D440-53EA-B12E-04DDE7FDB707"><p>Check if memory size is set to maximum using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-4B42D484-8C0A-361C-9145-1F4A4A396832"><apiname>CCamera::CCameraPreImageCaptureControl::GetImageMaxMemorySizeSettingSupportInfoL</apiname></xref> method. </p> </li> <li id="GUID-6D61C9AA-A45F-586C-BA93-1C97370278B3"><p>Get the maximum memory size in KB using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-C4958029-1126-3D5B-A0BB-8E1495DE0223"><apiname>CCamera::CCameraPreImageCaptureControl::GetImageMaxMemorySizeL</apiname></xref> method. </p> </li> <li id="GUID-3C8B1F34-2B35-5F65-AFC9-625F31E17C2B"><p>Use <xref href="GUID-55213352-BFFB-3D59-A617-0CDC8B57FF75.dita#GUID-55213352-BFFB-3D59-A617-0CDC8B57FF75/GUID-DC71D0C3-35A0-3510-8D9A-EB73FD35DA52"><apiname>CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters::
-                  iImageMaxMemorySize</apiname></xref> method to get the maximum memory size in kilo bytes. If client has no specific preference or if this setting is not supported, it will be <xref href="GUID-446F413C-BF0D-3B2B-A81C-03A30B4F5E09.dita"><apiname>KECamNoSpecificMaxMemorySize</apiname></xref>. The maximum memory size will take preference over JPEG quality if it is not sufficient to achieve the desired quality. </p> </li> </ul> <p><b>Providing image file saving support</b> </p> <p>To save the still images do the following steps: </p> <ul><li id="GUID-E3DB2442-4E4F-5713-AAA1-14E23AEAA565"><p>Get the settings supported for embedded still captures using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-EB7C9C95-E254-3F1F-BEAD-7019A9CEA6AF"><apiname>CCamera::CCameraPreImageCaptureControl::GetSupportedEmbeddedStillCaptureSettingsL</apiname></xref> method. </p> </li> <li id="GUID-CEEB6340-ADFB-546D-ABE0-6FDA67958D77"><p>Get the information about the direct saving state supported by the camera using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-32811F5C-2715-353F-8029-BAFDAAA311C5"><apiname>CCamera::CCameraPreImageCaptureControl::GetSupportedDirectSavingTypeL</apiname></xref> method. If supported, still images are saved in files instead of providing it to clients through <xref href="GUID-5E8EC5D5-E826-3024-B546-60A72CC55091.dita"><apiname>MCameraImageBuffer</apiname></xref> callback. </p> </li> <li id="GUID-5AE9512F-213D-5E6F-92E4-983367D74AE5"><p>Get the direct saving type currently used using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-1177F449-919D-331D-8266-9E0636A9F49C"><apiname>CCamera::CCameraPreImageCaptureControl::GetDirectSavingTypeL</apiname></xref> method. Enum value <xref href="GUID-3418EE4E-6EAF-3501-ADC4-0AEB36BC813F.dita"><apiname>TDirectSavingType</apiname></xref> will represent the direct saving type used by the camera. </p> </li> <li id="GUID-80926C68-7EE2-57E4-91A0-2DC7F633B6C4"><p>Set the required type of direct saving option specified by its state using <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-43AB5D15-D417-3E8E-8E8C-26EF2FA61C37"><apiname>CCamera::CCameraPreImageCaptureControl::SetDirectSavingTypeL</apiname></xref> method. </p> </li> </ul> <p> <b>Note</b>: Before capturing still images by direct saving option, clients need to provide the filename. </p> </section> <section><title>See also</title> <p><xref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita">Controlling Still-image Capture</xref> </p> <p><xref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita">Controlling Captured Image</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,212 +1,212 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D" xml:lang="en"><title>P.I.P.S.
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>P.I.P.S. supplies a new framework of POSIX 'C' APIs to be used by Symbian
-developers with RTOS, Linux or Microsoft Windows® knowledge. The new APIs
-are packaged into industry standard libraries - <codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph> - and will help reduce development costs. </p>
-<section id="GUID-08EF9B92-E9A6-4C4F-8A08-597F2EF32135"><title>Purpose</title> <p>The
-Symbian platform already provides a library called '<codeph>ESTLIB</codeph>',
-which includes a subset of Standard C APIs. This was created to allow the
-Java virtual machine to run on the Symbian platform rather than to allow applications
-written in C to be ported to the Symbian platform. Furthermore, the functionality
-provided by <codeph>ESTLIB</codeph> is not fully compliant with the Standard
-C and POSIX standards. Symbian intends to deprecate <codeph>ESTLIB</codeph> once
-P.I.P.S. is mature. </p> <p>The P.I.P.S. libraries are included in ROM on
-certain smartphones based on Symbian OS v9.3 onwards. For smartphones based
-on earlier versions of Symbian platform, a freely downloadable SIS file is
-available from the Symbian Developer Network (specifically <xref href="http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Quick_Start" scope="external">http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Quick_Start</xref>)
-and can be installed on any Symbian OS v9.x smartphones. </p> </section>
-<section id="GUID-6E46D602-BED1-4E20-AE6B-5137615E2440"><title>Required background</title> <p><b>The
-differences between the Symbian platform and other operating systems</b> </p> <p>The
-Symbian platform is an operating system designed for mobile devices and comes
-in the form of many libraries that contain hundreds of classes and thousands
-of member functions. </p> <p>The Symbian platform has been specifically designed
-to provide efficient memory and power management. </p> <p>P.I.P.S. has been
-introduced to the Symbian platform to make it more attractive to third party
-Symbian developers with C/C++ experience and to allow them to port their applications
-to the Symbian platform with greater ease. </p> <p>The P.I.P.S. initiative
-aims to reduce the development cost of porting software to run on the Symbian
-platform. It achieves this by providing a POSIX-like API layer above the Symbian
-platform. Given the structure of the Symbian platform, however, it is not
-possible to provide a fully compliant API and some functionality, such as, <xref href="GUID-432C9AA0-A698-3A62-95D8-CB010965F92C.dita"><apiname>fork()</apiname></xref> and <xref href="GUID-1F3AB7F6-B354-36DB-AA0C-D8F2DC89A6DD.dita"><apiname>exec()</apiname></xref> are
-not supported. This guide details such non-compliance and recommended alternatives. </p> <p>Specific
-differences between the Symbian platform and Unix-like systems are described
-in the relevant sections of this guide. </p> <p><b>What P.I.P.S. is not</b> </p> <p>The
-P.I.P.S. environment is <b>not</b> a UNIX® application environment. You will
-not be able to run a UNIX application on the Symbian platform 'as is'. At
-a minimum, you will need to create a <filepath>.mmp</filepath> file and a <filepath>bld.inf</filepath> file
-for the application and rebuild the application's source code for the Symbian
-platform. For further information, see <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> section. </p> <p>If the application does not
-work at the first attempt, you may have to modify the application code to
-replace missing APIs or port the required APIs to extend the P.I.P.S. environment.
-To find out more about porting C libraries to the Symbian platform, see the <xref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita">P.I.P.S. Porting Tutorials</xref> sections. </p> <p>The
-P.I.P.S. environment is not 100% POSIX compliant and it is not officially
-certified as POSIX compatible. However, the implementation is as compliant
-as the underlying Symbian platform allows it to be. For example, P.I.P.S.
-does not provide the APIs <codeph>fork()</codeph> and <codeph>exec()</codeph>,
-but it does provide <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref>, <xref href="GUID-F4749DAA-1B29-3D1D-A3AA-0D52B851E501.dita"><apiname>mkfifo()</apiname></xref> and
-so on, which can be used to implement well known alternative patterns. For
-further information, see the <xref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita">Process
-Creation</xref> section. </p> </section>
-<section id="GUID-22E7E427-C9D1-4C26-BCA8-E4A48CE0E45F"><title>Architecture</title> <p>P.I.P.S.
-provides an API layer above the native Symbian platform APIs that is more
-closely aligned with industry standard APIs. </p> <p>The core P.I.P.S. libraries
-are: </p> <ul>
-<li id="GUID-213D2779-C303-5A11-A339-8E464D4B4A68"><p> <codeph>libc</codeph>:
-Standard C and POSIX APIs - includes support for files, sockets, pipes, message
-queues, shared memory APIs and environment variables </p> </li>
-<li id="GUID-1209CBDA-DFEB-5ECA-AD4F-A1452762C2CC"><p> <codeph>libm</codeph>:
-Standard C maths support APIs </p> </li>
-<li id="GUID-138D2894-8362-5C13-B5BB-24A9A22DF415"><p> <codeph>libpthread</codeph>:
-Standard POSIX threading APIs </p> </li>
-<li id="GUID-E00112DA-D5BB-55C0-A6A4-A443B67858C0"><p> <codeph>libdl</codeph>:
-Standard C dynamic loading and symbol lookup APIs (only ordinal lookup is
-supported on pre-Symbian OS v9.3 releases). </p> </li>
-</ul> <p>The first three libraries listed above are seeded from <xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>. </p> <p>The diagram below shows the high
-level architecture of the P.I.P.S. environment. </p> <fig id="GUID-103BEA25-EE1B-50D0-8C0C-950C1A43656D">
-<title>              P.I.P.S. environment architecture            </title>
-<image href="GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e155039_href.png" placement="inline"/>
-</fig> <p>This diagram shows how P.I.P.S. fits in with the Symbian platform,
-and also how C/C++ applications, additional C shared libraries and hybrid
-applications developed by third party Symbian developers using P.I.P.S. fit
-in. </p> <p>P.I.P.S. environment is based on industry-standard APIs. These
-standards include </p> <ul>
-<li id="GUID-09A5848E-7934-5202-BB09-BE6390FC2F12"><p>Standard C (<codeph>stdC</codeph>)
-and </p> </li>
-<li id="GUID-0478A6C5-238C-5CFF-8625-791293800E9B"><p>POSIX. </p> </li>
-</ul> <p>The P.I.P.S. environment is a mandatory part of Symbian OS v9.5 onward. </p> <p>For
-devices already in the market, a SIS file is freely downloadable from the
-Forum Nokia site (specifically <xref href="http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/" scope="external">http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/</xref>)
-and can be installed on any v9.x phone. </p> <p><b>Components</b> </p> <p>P.I.P.S.
-is based on an industry-standard API and system behaviour.  The relevant
-industry standards are Open Group standards and include Standard C (<codeph>stdC</codeph>),
-POSIX, GNU C library (<codeph>glibc</codeph>) and Standard C++ (<codeph>stdC++</codeph>). </p> <p>The
-diagram below shows how the Standard C libraries and exported applications
-fit into the native platform. </p> <fig id="GUID-02F370A6-0713-5E7F-A851-339E03603A0A">
-<title>                 The subsystem components               </title>
-<image href="GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e155098_href.png" placement="inline"/>
-</fig> <p>The System Call Adaptation Layer (SCAL) is not directly accessed
-by the developer wishing to export to the Symbian platform, but through calls
-in the P.I.P.S. libraries. </p> <p>Traditionally, in Unix-like systems, system
-calls are implemented in the kernel, separate from the C libraries. On the
-Symbian platform, the 'System Call Adaptation Layer' runs in the context of
-the user side but is considered 'kernel-like' code. APIs that belong to this
-layer are tagged as <codeph>@internalComponent</codeph> and may only be extended
-by Symbian. </p> <p>Note that P.I.P.S. is not a Linux application environment
-- you cannot simply run an application that you've compiled for your Linux
-desktop. At a minimum, you will have to rebuild your application from source. </p> <p>For
-more information, see the <xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita">Build
-Process</xref> section. </p> <p id="GUID-49C7F951-8317-5F41-B1B9-9F7B8803E655"><b>Glue
-code (CRT0)</b> </p> <p>Executables built for the Symbian platform enter via <codeph>E32Main()</codeph>,
-whereas Standard C applications expect to be started from <codeph>main()</codeph>.
-It is therefore necessary to have 'glue code' (formerly known as CRT0) between
-these two functions. The glue code is also responsible for allocating any
-system resources, obtaining system and environment data, and initialising
-the SCAL infrastructure prior to calling the <codeph>main()</codeph> function
-of the application. There are two versions of the glue code library - <filepath>libcrt0.lib</filepath> (for
-use by applications that enter via char <codeph>main()</codeph>) and <filepath>libwcrt0.lib</filepath> (for
-use by applications that enter via wide char <codeph>main()</codeph>). </p> <p>To
-include the glue code library you should explicity link to <filepath>libcrt0.lib</filepath> and <filepath>libwcrt0.lib</filepath> statically,
-however, if you are using the <codeph>STDEXE</codeph> or <codeph>STDDLL</codeph> target
-types, glue code will be added automatically. </p> <p id="GUID-1DDC11E7-D9D6-5251-89CE-981C4869D109"><b>P.I.P.S.
-Core libraries</b> </p> <p>Currently, the C libraries include the <codeph>libc</codeph>, <codeph>libm</codeph>,
-and <codeph>libpthread</codeph> (seeded from <xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>) and <codeph>libdl</codeph> libraries. The
-APIs provided by these libraries are defined to be compliant, via compatibility
-features, with the POSIX standard. They are not officially certified as POSIX
-compatible but they conform to it mostly. </p> <p>The P.I.P.S. libraries include
-the following APIs: </p> <ul>
-<li id="GUID-95E53F0A-B919-5EEE-9A6F-427E87547088"><p> <codeph>stdio</codeph>,
-including <xref href="GUID-E69DB3CD-E6DA-3B1D-A499-AE68EC432CAC.dita"><apiname>print()</apiname></xref>, <xref href="GUID-58616261-FB60-37C5-9289-239144CD8FB8.dita"><apiname>scanf()</apiname></xref>, and so on </p> </li>
-<li id="GUID-5359692C-17C8-5486-9DCB-0A5B9AD1C90A"><p> <codeph>stdlib</codeph>,
-including environment variable support, and so on </p> </li>
-<li id="GUID-F0E19C9C-5581-5E47-A775-A6B57C22EE92"><p>string manipulation
-and character APIs </p> </li>
-<li id="GUID-B0F2B006-6D62-5DD6-9CDC-7ADFB693E77E"><p>locale and system services </p> </li>
-<li id="GUID-C5440DE9-24A2-5A34-A2A7-47E836E1545D"><p>searching, sort and
-pattern matching </p> </li>
-<li id="GUID-33D03F27-4B97-56CA-B4ED-67901701A1E2"><p>IPC mechanisms, including
-shared memory, pipes, FIFOs and message queues </p> </li>
-<li id="GUID-15AE7775-5FC8-59A4-924E-3987F9314F58"><p>process creation, including <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref>, <xref href="GUID-E7C4DE71-BC5B-34AE-ACB3-C34A0DB1FC16.dita"><apiname>posix_spawn()</apiname></xref> and <xref href="GUID-3D9040E5-F6FB-3DEA-9800-A55F0CEE7B08.dita"><apiname>system()</apiname></xref>  </p> </li>
-<li id="GUID-2AEE41E3-A696-588C-9E5B-8E362E96D4B5"><p>networking and socket
-APIs </p> </li>
-<li id="GUID-ACF6B3A6-0F83-50D3-B0FB-FA765BDA408D"><p>mathematical and arithmetic
-APIs </p> </li>
-<li id="GUID-595D4C61-0FC9-5A05-BEDD-7412CEA585BA"><p>dynamic loading and
-symbol lookup </p> </li>
-<li id="GUID-DC3DB027-B384-52D1-8284-BF868A5CD543"><p>thread creation and
-synchronisation mechanisms. </p> </li>
-</ul> <p>Due to fundamental differences between Linux and the Symbian platform
-kernel architecture, there is no support for <xref href="GUID-432C9AA0-A698-3A62-95D8-CB010965F92C.dita"><apiname>fork()</apiname></xref> and <xref href="GUID-1F3AB7F6-B354-36DB-AA0C-D8F2DC89A6DD.dita"><apiname>exec()</apiname></xref>.
-For more information, see the <xref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita">Process
-Creation</xref> section. </p> <p>The original seed directory structure (<xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>) is preserved
-as fully as possible to allow for future catch-ups to be performed more easily.
-The table below shows the original seed directory structure in FreeBSD. </p> <table id="GUID-A1D61A32-6F99-5B0A-B348-135373DC3AEA">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <b>Module</b>  </p> </entry>
-<entry><p> <b>Description</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>core\libc</filepath>  </p> </entry>
-<entry><p>Contains Standard C and POSIX APIs as defined by the Standard C
-and POSIX standards </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>core\libm</filepath>  </p> </entry>
-<entry><p>Contains the Standard C <codeph>Math</codeph> API as defined by
-Standard C </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>core\libpthread</filepath>  </p> </entry>
-<entry><p>Contains POSIX threading APIs as defined the POSIX standards </p> </entry>
-</row>
-<row>
-<entry><p> <filepath>core\libdl</filepath>  </p> </entry>
-<entry><p>Contains APIs for dynamic loading and symbol lookup by name. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>Although P.I.P.S. provides a wide range of APIs, some of the functionality
-required in order to complete a porting task might be missing - this could
-be some APIs from an existing library or an entire library. </p> <p>Several
-options are available to the user: </p> <ul>
-<li id="GUID-99935DCF-2678-5D76-98E9-8E94269E7CAC"><p>Port the missing APIs
-using the P.I.P.S. libraries </p> </li>
-<li id="GUID-FFA95C02-268F-5281-B0D3-5A4A64BC5A27"><p>Implement the missing
-APIs on top of the Symbian platform native C++ APIs </p> </li>
-<li id="GUID-D70619B7-E889-5D11-81C7-FD99420F3D1D"><p>Use a workaround - for
-example, use <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref> instead of <codeph>fork()</codeph>. </p> </li>
-</ul> <p> <b>Note:</b> The following are the limitations associated with porting
-a UNIX® application: </p> <ul>
-<li id="GUID-4057ED21-65DD-5C20-A65B-B9228BE920BD"><p> <b>Limited stack-space:</b> The
-default stack size per thread on Unix-like operating systems ranges from 64
-kB to 1 MB. The Symbian platform, however, defines a default stack size of
-8 kB per thread. P.I.P.S. Pthreads use this by default. You can use the <codeph>pthread_attr_setstacksize()</codeph> function
-to modify this before calling <codeph>pthread_create()</codeph>. </p> </li>
-<li id="GUID-8329F811-34A6-5812-B033-2BE49C038D3E"><p> <b>Limited threads
-per process:</b> Assuming that all threads use the default stack size (8 kB),
-Symbian specifies a limit of 128 threads per process. The limit changes depending
-on the stack size you use for individual threads. For example, if you create
-your threads with a stack size of 16 kB, the OS only supports 64 threads per
-process. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-2016EF4B-F001-5EB2-8095-6048582511D6.dita"><linktext>P.I.P.S.
-Concepts</linktext></link>
-<link href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita"><linktext>P.I.P.S.
-Porting Tutorials</linktext></link>
-<link href="GUID-3EB1C34E-584E-595D-A339-DE170A96AEBC.dita"><linktext>P.I.P.S.
-Examples</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D" xml:lang="en"><title>P.I.P.S.
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>P.I.P.S. supplies a new framework of POSIX 'C' APIs to be used by Symbian
+developers with RTOS, Linux or Microsoft Windows® knowledge. The new APIs
+are packaged into industry standard libraries - <codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph> - and will help reduce development costs. </p>
+<section id="GUID-08EF9B92-E9A6-4C4F-8A08-597F2EF32135"><title>Purpose</title> <p>The
+Symbian platform already provides a library called '<codeph>ESTLIB</codeph>',
+which includes a subset of Standard C APIs. This was created to allow the
+Java virtual machine to run on the Symbian platform rather than to allow applications
+written in C to be ported to the Symbian platform. Furthermore, the functionality
+provided by <codeph>ESTLIB</codeph> is not fully compliant with the Standard
+C and POSIX standards. Symbian intends to deprecate <codeph>ESTLIB</codeph> once
+P.I.P.S. is mature. </p> <p>The P.I.P.S. libraries are included in ROM on
+certain smartphones based on Symbian OS v9.3 onwards. For smartphones based
+on earlier versions of Symbian platform, a freely downloadable SIS file is
+available from the Symbian Developer Network (specifically <xref href="http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Quick_Start" scope="external">http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Quick_Start</xref>)
+and can be installed on any Symbian OS v9.x smartphones. </p> </section>
+<section id="GUID-6E46D602-BED1-4E20-AE6B-5137615E2440"><title>Required background</title> <p><b>The
+differences between the Symbian platform and other operating systems</b> </p> <p>The
+Symbian platform is an operating system designed for mobile devices and comes
+in the form of many libraries that contain hundreds of classes and thousands
+of member functions. </p> <p>The Symbian platform has been specifically designed
+to provide efficient memory and power management. </p> <p>P.I.P.S. has been
+introduced to the Symbian platform to make it more attractive to third party
+Symbian developers with C/C++ experience and to allow them to port their applications
+to the Symbian platform with greater ease. </p> <p>The P.I.P.S. initiative
+aims to reduce the development cost of porting software to run on the Symbian
+platform. It achieves this by providing a POSIX-like API layer above the Symbian
+platform. Given the structure of the Symbian platform, however, it is not
+possible to provide a fully compliant API and some functionality, such as, <xref href="GUID-432C9AA0-A698-3A62-95D8-CB010965F92C.dita"><apiname>fork()</apiname></xref> and <xref href="GUID-1F3AB7F6-B354-36DB-AA0C-D8F2DC89A6DD.dita"><apiname>exec()</apiname></xref> are
+not supported. This guide details such non-compliance and recommended alternatives. </p> <p>Specific
+differences between the Symbian platform and Unix-like systems are described
+in the relevant sections of this guide. </p> <p><b>What P.I.P.S. is not</b> </p> <p>The
+P.I.P.S. environment is <b>not</b> a UNIX® application environment. You will
+not be able to run a UNIX application on the Symbian platform 'as is'. At
+a minimum, you will need to create a <filepath>.mmp</filepath> file and a <filepath>bld.inf</filepath> file
+for the application and rebuild the application's source code for the Symbian
+platform. For further information, see <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> section. </p> <p>If the application does not
+work at the first attempt, you may have to modify the application code to
+replace missing APIs or port the required APIs to extend the P.I.P.S. environment.
+To find out more about porting C libraries to the Symbian platform, see the <xref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita">P.I.P.S. Porting Tutorials</xref> sections. </p> <p>The
+P.I.P.S. environment is not 100% POSIX compliant and it is not officially
+certified as POSIX compatible. However, the implementation is as compliant
+as the underlying Symbian platform allows it to be. For example, P.I.P.S.
+does not provide the APIs <codeph>fork()</codeph> and <codeph>exec()</codeph>,
+but it does provide <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref>, <xref href="GUID-F4749DAA-1B29-3D1D-A3AA-0D52B851E501.dita"><apiname>mkfifo()</apiname></xref> and
+so on, which can be used to implement well known alternative patterns. For
+further information, see the <xref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita">Process
+Creation</xref> section. </p> </section>
+<section id="GUID-22E7E427-C9D1-4C26-BCA8-E4A48CE0E45F"><title>Architecture</title> <p>P.I.P.S.
+provides an API layer above the native Symbian platform APIs that is more
+closely aligned with industry standard APIs. </p> <p>The core P.I.P.S. libraries
+are: </p> <ul>
+<li id="GUID-213D2779-C303-5A11-A339-8E464D4B4A68"><p> <codeph>libc</codeph>:
+Standard C and POSIX APIs - includes support for files, sockets, pipes, message
+queues, shared memory APIs and environment variables </p> </li>
+<li id="GUID-1209CBDA-DFEB-5ECA-AD4F-A1452762C2CC"><p> <codeph>libm</codeph>:
+Standard C maths support APIs </p> </li>
+<li id="GUID-138D2894-8362-5C13-B5BB-24A9A22DF415"><p> <codeph>libpthread</codeph>:
+Standard POSIX threading APIs </p> </li>
+<li id="GUID-E00112DA-D5BB-55C0-A6A4-A443B67858C0"><p> <codeph>libdl</codeph>:
+Standard C dynamic loading and symbol lookup APIs (only ordinal lookup is
+supported on pre-Symbian OS v9.3 releases). </p> </li>
+</ul> <p>The first three libraries listed above are seeded from <xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>. </p> <p>The diagram below shows the high
+level architecture of the P.I.P.S. environment. </p> <fig id="GUID-103BEA25-EE1B-50D0-8C0C-950C1A43656D">
+<title>              P.I.P.S. environment architecture            </title>
+<image href="GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e148518_href.png" placement="inline"/>
+</fig> <p>This diagram shows how P.I.P.S. fits in with the Symbian platform,
+and also how C/C++ applications, additional C shared libraries and hybrid
+applications developed by third party Symbian developers using P.I.P.S. fit
+in. </p> <p>P.I.P.S. environment is based on industry-standard APIs. These
+standards include </p> <ul>
+<li id="GUID-09A5848E-7934-5202-BB09-BE6390FC2F12"><p>Standard C (<codeph>stdC</codeph>)
+and </p> </li>
+<li id="GUID-0478A6C5-238C-5CFF-8625-791293800E9B"><p>POSIX. </p> </li>
+</ul> <p>The P.I.P.S. environment is a mandatory part of Symbian OS v9.5 onward. </p> <p>For
+devices already in the market, a SIS file is freely downloadable from the
+Forum Nokia site (specifically <xref href="http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/" scope="external">http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/</xref>)
+and can be installed on any v9.x phone. </p> <p><b>Components</b> </p> <p>P.I.P.S.
+is based on an industry-standard API and system behaviour.  The relevant
+industry standards are Open Group standards and include Standard C (<codeph>stdC</codeph>),
+POSIX, GNU C library (<codeph>glibc</codeph>) and Standard C++ (<codeph>stdC++</codeph>). </p> <p>The
+diagram below shows how the Standard C libraries and exported applications
+fit into the native platform. </p> <fig id="GUID-02F370A6-0713-5E7F-A851-339E03603A0A">
+<title>                 The subsystem components               </title>
+<image href="GUID-5746BC4A-E8D2-51DE-B101-4BA68F0E1769_d0e148577_href.png" placement="inline"/>
+</fig> <p>The System Call Adaptation Layer (SCAL) is not directly accessed
+by the developer wishing to export to the Symbian platform, but through calls
+in the P.I.P.S. libraries. </p> <p>Traditionally, in Unix-like systems, system
+calls are implemented in the kernel, separate from the C libraries. On the
+Symbian platform, the 'System Call Adaptation Layer' runs in the context of
+the user side but is considered 'kernel-like' code. APIs that belong to this
+layer are tagged as <codeph>@internalComponent</codeph> and may only be extended
+by Symbian. </p> <p>Note that P.I.P.S. is not a Linux application environment
+- you cannot simply run an application that you've compiled for your Linux
+desktop. At a minimum, you will have to rebuild your application from source. </p> <p>For
+more information, see the <xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita">Build
+Process</xref> section. </p> <p id="GUID-49C7F951-8317-5F41-B1B9-9F7B8803E655"><b>Glue
+code (CRT0)</b> </p> <p>Executables built for the Symbian platform enter via <codeph>E32Main()</codeph>,
+whereas Standard C applications expect to be started from <codeph>main()</codeph>.
+It is therefore necessary to have 'glue code' (formerly known as CRT0) between
+these two functions. The glue code is also responsible for allocating any
+system resources, obtaining system and environment data, and initialising
+the SCAL infrastructure prior to calling the <codeph>main()</codeph> function
+of the application. There are two versions of the glue code library - <filepath>libcrt0.lib</filepath> (for
+use by applications that enter via char <codeph>main()</codeph>) and <filepath>libwcrt0.lib</filepath> (for
+use by applications that enter via wide char <codeph>main()</codeph>). </p> <p>To
+include the glue code library you should explicity link to <filepath>libcrt0.lib</filepath> and <filepath>libwcrt0.lib</filepath> statically,
+however, if you are using the <codeph>STDEXE</codeph> or <codeph>STDDLL</codeph> target
+types, glue code will be added automatically. </p> <p id="GUID-1DDC11E7-D9D6-5251-89CE-981C4869D109"><b>P.I.P.S.
+Core libraries</b> </p> <p>Currently, the C libraries include the <codeph>libc</codeph>, <codeph>libm</codeph>,
+and <codeph>libpthread</codeph> (seeded from <xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>) and <codeph>libdl</codeph> libraries. The
+APIs provided by these libraries are defined to be compliant, via compatibility
+features, with the POSIX standard. They are not officially certified as POSIX
+compatible but they conform to it mostly. </p> <p>The P.I.P.S. libraries include
+the following APIs: </p> <ul>
+<li id="GUID-95E53F0A-B919-5EEE-9A6F-427E87547088"><p> <codeph>stdio</codeph>,
+including <xref href="GUID-E69DB3CD-E6DA-3B1D-A499-AE68EC432CAC.dita"><apiname>print()</apiname></xref>, <xref href="GUID-58616261-FB60-37C5-9289-239144CD8FB8.dita"><apiname>scanf()</apiname></xref>, and so on </p> </li>
+<li id="GUID-5359692C-17C8-5486-9DCB-0A5B9AD1C90A"><p> <codeph>stdlib</codeph>,
+including environment variable support, and so on </p> </li>
+<li id="GUID-F0E19C9C-5581-5E47-A775-A6B57C22EE92"><p>string manipulation
+and character APIs </p> </li>
+<li id="GUID-B0F2B006-6D62-5DD6-9CDC-7ADFB693E77E"><p>locale and system services </p> </li>
+<li id="GUID-C5440DE9-24A2-5A34-A2A7-47E836E1545D"><p>searching, sort and
+pattern matching </p> </li>
+<li id="GUID-33D03F27-4B97-56CA-B4ED-67901701A1E2"><p>IPC mechanisms, including
+shared memory, pipes, FIFOs and message queues </p> </li>
+<li id="GUID-15AE7775-5FC8-59A4-924E-3987F9314F58"><p>process creation, including <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref>, <xref href="GUID-E7C4DE71-BC5B-34AE-ACB3-C34A0DB1FC16.dita"><apiname>posix_spawn()</apiname></xref> and <xref href="GUID-3D9040E5-F6FB-3DEA-9800-A55F0CEE7B08.dita"><apiname>system()</apiname></xref>  </p> </li>
+<li id="GUID-2AEE41E3-A696-588C-9E5B-8E362E96D4B5"><p>networking and socket
+APIs </p> </li>
+<li id="GUID-ACF6B3A6-0F83-50D3-B0FB-FA765BDA408D"><p>mathematical and arithmetic
+APIs </p> </li>
+<li id="GUID-595D4C61-0FC9-5A05-BEDD-7412CEA585BA"><p>dynamic loading and
+symbol lookup </p> </li>
+<li id="GUID-DC3DB027-B384-52D1-8284-BF868A5CD543"><p>thread creation and
+synchronisation mechanisms. </p> </li>
+</ul> <p>Due to fundamental differences between Linux and the Symbian platform
+kernel architecture, there is no support for <xref href="GUID-432C9AA0-A698-3A62-95D8-CB010965F92C.dita"><apiname>fork()</apiname></xref> and <xref href="GUID-1F3AB7F6-B354-36DB-AA0C-D8F2DC89A6DD.dita"><apiname>exec()</apiname></xref>.
+For more information, see the <xref href="GUID-AF07AD54-86F1-5DB7-80FF-633A559DA4BD.dita">Process
+Creation</xref> section. </p> <p>The original seed directory structure (<xref href="http://www.freebsd.org/" scope="external">FreeBSD</xref>) is preserved
+as fully as possible to allow for future catch-ups to be performed more easily.
+The table below shows the original seed directory structure in FreeBSD. </p> <table id="GUID-A1D61A32-6F99-5B0A-B348-135373DC3AEA">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Module</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>core\libc</filepath>  </p> </entry>
+<entry><p>Contains Standard C and POSIX APIs as defined by the Standard C
+and POSIX standards </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>core\libm</filepath>  </p> </entry>
+<entry><p>Contains the Standard C <codeph>Math</codeph> API as defined by
+Standard C </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>core\libpthread</filepath>  </p> </entry>
+<entry><p>Contains POSIX threading APIs as defined the POSIX standards </p> </entry>
+</row>
+<row>
+<entry><p> <filepath>core\libdl</filepath>  </p> </entry>
+<entry><p>Contains APIs for dynamic loading and symbol lookup by name. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>Although P.I.P.S. provides a wide range of APIs, some of the functionality
+required in order to complete a porting task might be missing - this could
+be some APIs from an existing library or an entire library. </p> <p>Several
+options are available to the user: </p> <ul>
+<li id="GUID-99935DCF-2678-5D76-98E9-8E94269E7CAC"><p>Port the missing APIs
+using the P.I.P.S. libraries </p> </li>
+<li id="GUID-FFA95C02-268F-5281-B0D3-5A4A64BC5A27"><p>Implement the missing
+APIs on top of the Symbian platform native C++ APIs </p> </li>
+<li id="GUID-D70619B7-E889-5D11-81C7-FD99420F3D1D"><p>Use a workaround - for
+example, use <xref href="GUID-A9DB6E7C-B8D6-377A-BBE6-39E0A7A09E5D.dita"><apiname>popen()</apiname></xref> instead of <codeph>fork()</codeph>. </p> </li>
+</ul> <p> <b>Note:</b> The following are the limitations associated with porting
+a UNIX® application: </p> <ul>
+<li id="GUID-4057ED21-65DD-5C20-A65B-B9228BE920BD"><p> <b>Limited stack-space:</b> The
+default stack size per thread on Unix-like operating systems ranges from 64
+kB to 1 MB. The Symbian platform, however, defines a default stack size of
+8 kB per thread. P.I.P.S. Pthreads use this by default. You can use the <codeph>pthread_attr_setstacksize()</codeph> function
+to modify this before calling <codeph>pthread_create()</codeph>. </p> </li>
+<li id="GUID-8329F811-34A6-5812-B033-2BE49C038D3E"><p> <b>Limited threads
+per process:</b> Assuming that all threads use the default stack size (8 kB),
+Symbian specifies a limit of 128 threads per process. The limit changes depending
+on the stack size you use for individual threads. For example, if you create
+your threads with a stack size of 16 kB, the OS only supports 64 threads per
+process. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-2016EF4B-F001-5EB2-8095-6048582511D6.dita"><linktext>P.I.P.S.
+Concepts</linktext></link>
+<link href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita"><linktext>P.I.P.S.
+Porting Tutorials</linktext></link>
+<link href="GUID-3EB1C34E-584E-595D-A339-DE170A96AEBC.dita"><linktext>P.I.P.S.
+Examples</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e78396_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6CE1C2E0-8F57-57D3-9041-929FE30ECEB9_d0e85108_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1" xml:lang="en"><title>Implementing
-the FEP API</title><shortdesc>This topic describes various implementations of FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D0CB0202-D4B6-422B-84AA-F70974DDF7F3-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-1"><title>Post-platform
-security – the ECom plugin interface</title><p>In the secure platform, FEPs
-must be implemented as ECom plug-ins. ECom provides a secure environment for
-loading FEPs that cannot be achieved using standard, non-ECom polymorphic
-DLLs. The main tasks that are specific to implementing a FEP as an ECom plug-in
-are described in this section. Note that the differences between pre- and
-post-platform security FEPs are imposed by the change from old-style, standard
-polymorphic DLLs to ECom plugins. The C++ APIs involved in FEP creation, which
-are defined in <filepath>fepbase.h</filepath>, are unchanged. </p> </section>
-<section id="GUID-97C929BB-0523-45F4-8100-D8065B9A53D5-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-2"><title>Define a class
-that implements the CCoeFepPlugIn interface</title><p>This class must implement
-the <codeph>NewFepL()</codeph> and <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> functions
-that were, pre-platform security, the first and second exports from the DLL.
-Note that these functions have been redefined and no longer take the const <codeph>TDesC&amp;
-aFullFileNameOfDll </codeph> argument: the ECom plugin implementation is identified
-by a UID rather than a filename. This means that the implementation of <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> is
-now responsible for locating the resource file needed to execute the settings
-dialog itself. </p> <codeblock id="GUID-310F5ADC-B9CB-5A3B-878F-AF13C4C4C08B-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-2-3" xml:space="preserve">class CCoeFepPlugIn : public CBase
-    {
-public:
-    inline static CCoeFepPlugIn* NewL(TUid aFepUid);
-    virtual ~CCoeFepPlugIn();
-public:
-    virtual CCoeFep* NewFepL(CCoeEnv&amp; aConeEnvironment, const CCoeFepParameters&amp; aFepParameters) = 0;
-    virtual void SynchronouslyExecuteSettingsDialogL(CCoeEnv&amp; aConeEnvironment) = 0;
-    };
-</codeblock> </section>
-<section id="GUID-939614DA-C3EF-43FD-924A-805596AEC2FD-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-3"><title>Provide the
-factory code required to instantiate the derived class </title> <p>FEPs must
-provide the standard factory code required by every ECom plugin. For more
-information, see “Using ECom” in the Symbian Developer Library. For example,
-(the following code is taken from <filepath>TFEP1PlugIn.cpp</filepath>): </p> <codeblock id="GUID-88F37824-8CAA-53B8-BD69-AB5B17B9BBB5-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-3-3" xml:space="preserve">const TInt KTstFepPlugInImplementationValue = 0x102024D0;
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KTstFepPlugInImplementationValue, CTstFepPlugIn::NewL )
-    };
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
-CTstFepPlugIn* CTstFepPlugIn::NewL()
-    { // static
-    return new(ELeave) CTstFepPlugIn;
-    }
-</codeblock></section>
-<section id="GUID-FC0B99AB-B579-42A2-8A0C-3A36BE648616-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-4"><title>Create an ECom
-resource file</title> <p>Each FEP must have an ECom resource file. Its interface
-UID must be 0x1020233f, or CONE will not be able to find the FEP. For example, </p> <codeblock id="GUID-5CBDB731-EBAD-5326-909C-4DF78E7AC360-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-4-3" xml:space="preserve">#include &lt;RegistryInfo.rh&gt;
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = 0x102024D0; // UID3 of the DLL
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = 0x1020233F; // Same for every FEP
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x102024D0;
-                    version_no = 1;
-                    display_name = "FEPNAME";
-                    default_data = "";
-                    opaque_data = "";
-                    }
-                };
-            }
-        };
-    }</codeblock></section>
-<section id="GUID-BEDE8AA4-843E-405E-A8F9-EC80893D7D59-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-5"><title>The CCoeFep
-class</title> <p>The parts of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> relevant to classes
-deriving from it are shown below: </p> <codeblock id="GUID-14B6DFB4-02DE-5D12-BBFB-0665F6B089E0-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-5-3" xml:space="preserve">class CCoeFep : public CBase, protected MFepAttributeStorer, public MCoeForegroundObserver, public MCoeFocusObserver
-{
-public:
-    enum TEventResponse
-        {
-        EEventWasNotConsumed,
-        EEventWasConsumed
-        };
-    class MDeferredFunctionCall
-        {
-    public:
-        virtual void ExecuteFunctionL()=0;
-        };
-    class MModifiedCharacter
-        {
-    public:
-        virtual TUint CharacterCode() const=0;
-        virtual TUint ModifierMask() const=0;
-        virtual TUint ModifierValues() const=0;
-        };
-public:
-    IMPORT_C virtual ~CCoeFep();
-    virtual void CancelTransaction()=0;
-protected:
-    IMPORT_C CCoeFep(CCoeEnv&amp; aConeEnvironment);
-    IMPORT_C void BaseConstructL(const CCoeFepParameters&amp; aFepParameters);
-    IMPORT_C void ReadAllAttributesL();
-    IMPORT_C void MakeDeferredFunctionCall(MDeferredFunctionCall&amp; aDeferredFunctionCall);
-    IMPORT_C void SimulateKeyEventsL(const TArray&lt;TUint&gt;&amp; aArrayOfCharacters);
-    IMPORT_C void SimulateKeyEventsL(const TArray&lt;MModifiedCharacter&gt;&amp; aArrayOfModifiedCharacters);
-    IMPORT_C void WriteAttributeDataAndBroadcastL(TUid aAttributeUid);
-    IMPORT_C void WriteAttributeDataAndBroadcastL(const TArray&lt;TUid&gt;&amp; aAttributeUids);
-    IMPORT_C TBool IsOn() const;
-private:
-    virtual void IsOnHasChangedState()=0;
-    virtual void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode)=0;
-    virtual void OfferPointerEventL(TEventResponse&amp; aEventResponse, const TPointerEvent&amp; aPointerEvent, const CCoeControl* aWindowOwningControl)=0;
-    virtual void OfferPointerBufferReadyEventL(TEventResponse&amp; aEventResponse, const CCoeControl* aWindowOwningControl)=0;
-    };
-</codeblock> <p>Note that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits, but does not
-override, some pure virtual functions from its base classes <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>, <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. These therefore need to be overridden in addition
-to <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s own pure virtual member functions. The details
-of the member functions of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> and its base classes
-are explained in various sections of this document. </p></section>
-<section id="GUID-ECA1F4AE-1B25-4079-B249-AC8ECF3D3F90-GENID-1-8-1-3-1-1-9-1-4-1-4-1-3-6"><title>The CCoeControl
-class</title><p>The <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class (defined in <filepath>epoc32\include\COECNTRL.H</filepath>)
-provides many useful features for implementing a FEP, such as functions for
-handling window server events. In fact, for FEPs wishing to intercept key
-events, writing a class that derives from <codeph>CCoeControl</codeph> is
-a necessity because of the need to use the control stack (see <xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita#GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1/GUID-1B15C661-851B-5922-B8BC-7A772232DBD2-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2">Intercepting key events</xref>, below). Thus although deriving from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> is
-not explicitly demanded by the FEP architecture, it is assumed throughout
-this document that the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derived
-class owns an object of a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> derived class. </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1" xml:lang="en"><title>Implementing
-the FEP API</title><shortdesc>This topic describes various implementations of FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D0CB0202-D4B6-422B-84AA-F70974DDF7F3-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-1"><title>Post-platform
-security – the ECom plugin interface</title><p>In the secure platform, FEPs
-must be implemented as ECom plug-ins. ECom provides a secure environment for
-loading FEPs that cannot be achieved using standard, non-ECom polymorphic
-DLLs. The main tasks that are specific to implementing a FEP as an ECom plug-in
-are described in this section. Note that the differences between pre- and
-post-platform security FEPs are imposed by the change from old-style, standard
-polymorphic DLLs to ECom plugins. The C++ APIs involved in FEP creation, which
-are defined in <filepath>fepbase.h</filepath>, are unchanged. </p> </section>
-<section id="GUID-97C929BB-0523-45F4-8100-D8065B9A53D5-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-2"><title>Define a class
-that implements the CCoeFepPlugIn interface</title><p>This class must implement
-the <codeph>NewFepL()</codeph> and <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> functions
-that were, pre-platform security, the first and second exports from the DLL.
-Note that these functions have been redefined and no longer take the const <codeph>TDesC&amp;
-aFullFileNameOfDll </codeph> argument: the ECom plugin implementation is identified
-by a UID rather than a filename. This means that the implementation of <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> is
-now responsible for locating the resource file needed to execute the settings
-dialog itself. </p> <codeblock id="GUID-310F5ADC-B9CB-5A3B-878F-AF13C4C4C08B-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-2-3" xml:space="preserve">class CCoeFepPlugIn : public CBase
-    {
-public:
-    inline static CCoeFepPlugIn* NewL(TUid aFepUid);
-    virtual ~CCoeFepPlugIn();
-public:
-    virtual CCoeFep* NewFepL(CCoeEnv&amp; aConeEnvironment, const CCoeFepParameters&amp; aFepParameters) = 0;
-    virtual void SynchronouslyExecuteSettingsDialogL(CCoeEnv&amp; aConeEnvironment) = 0;
-    };
-</codeblock> </section>
-<section id="GUID-939614DA-C3EF-43FD-924A-805596AEC2FD-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-3"><title>Provide the
-factory code required to instantiate the derived class </title> <p>FEPs must
-provide the standard factory code required by every ECom plugin. For more
-information, see “Using ECom” in the Symbian Developer Library. For example,
-(the following code is taken from <filepath>TFEP1PlugIn.cpp</filepath>): </p> <codeblock id="GUID-88F37824-8CAA-53B8-BD69-AB5B17B9BBB5-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-3-3" xml:space="preserve">const TInt KTstFepPlugInImplementationValue = 0x102024D0;
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KTstFepPlugInImplementationValue, CTstFepPlugIn::NewL )
-    };
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
-CTstFepPlugIn* CTstFepPlugIn::NewL()
-    { // static
-    return new(ELeave) CTstFepPlugIn;
-    }
-</codeblock></section>
-<section id="GUID-FC0B99AB-B579-42A2-8A0C-3A36BE648616-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-4"><title>Create an ECom
-resource file</title> <p>Each FEP must have an ECom resource file. Its interface
-UID must be 0x1020233f, or CONE will not be able to find the FEP. For example, </p> <codeblock id="GUID-5CBDB731-EBAD-5326-909C-4DF78E7AC360-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-4-3" xml:space="preserve">#include &lt;RegistryInfo.rh&gt;
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = 0x102024D0; // UID3 of the DLL
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = 0x1020233F; // Same for every FEP
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x102024D0;
-                    version_no = 1;
-                    display_name = "FEPNAME";
-                    default_data = "";
-                    opaque_data = "";
-                    }
-                };
-            }
-        };
-    }</codeblock></section>
-<section id="GUID-BEDE8AA4-843E-405E-A8F9-EC80893D7D59-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-5"><title>The CCoeFep
-class</title> <p>The parts of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> relevant to classes
-deriving from it are shown below: </p> <codeblock id="GUID-14B6DFB4-02DE-5D12-BBFB-0665F6B089E0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-5-3" xml:space="preserve">class CCoeFep : public CBase, protected MFepAttributeStorer, public MCoeForegroundObserver, public MCoeFocusObserver
-{
-public:
-    enum TEventResponse
-        {
-        EEventWasNotConsumed,
-        EEventWasConsumed
-        };
-    class MDeferredFunctionCall
-        {
-    public:
-        virtual void ExecuteFunctionL()=0;
-        };
-    class MModifiedCharacter
-        {
-    public:
-        virtual TUint CharacterCode() const=0;
-        virtual TUint ModifierMask() const=0;
-        virtual TUint ModifierValues() const=0;
-        };
-public:
-    IMPORT_C virtual ~CCoeFep();
-    virtual void CancelTransaction()=0;
-protected:
-    IMPORT_C CCoeFep(CCoeEnv&amp; aConeEnvironment);
-    IMPORT_C void BaseConstructL(const CCoeFepParameters&amp; aFepParameters);
-    IMPORT_C void ReadAllAttributesL();
-    IMPORT_C void MakeDeferredFunctionCall(MDeferredFunctionCall&amp; aDeferredFunctionCall);
-    IMPORT_C void SimulateKeyEventsL(const TArray&lt;TUint&gt;&amp; aArrayOfCharacters);
-    IMPORT_C void SimulateKeyEventsL(const TArray&lt;MModifiedCharacter&gt;&amp; aArrayOfModifiedCharacters);
-    IMPORT_C void WriteAttributeDataAndBroadcastL(TUid aAttributeUid);
-    IMPORT_C void WriteAttributeDataAndBroadcastL(const TArray&lt;TUid&gt;&amp; aAttributeUids);
-    IMPORT_C TBool IsOn() const;
-private:
-    virtual void IsOnHasChangedState()=0;
-    virtual void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode)=0;
-    virtual void OfferPointerEventL(TEventResponse&amp; aEventResponse, const TPointerEvent&amp; aPointerEvent, const CCoeControl* aWindowOwningControl)=0;
-    virtual void OfferPointerBufferReadyEventL(TEventResponse&amp; aEventResponse, const CCoeControl* aWindowOwningControl)=0;
-    };
-</codeblock> <p>Note that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits, but does not
-override, some pure virtual functions from its base classes <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>, <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. These therefore need to be overridden in addition
-to <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s own pure virtual member functions. The details
-of the member functions of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> and its base classes
-are explained in various sections of this document. </p></section>
-<section id="GUID-ECA1F4AE-1B25-4079-B249-AC8ECF3D3F90-GENID-1-8-1-6-1-1-4-1-8-1-4-1-4-1-3-6"><title>The CCoeControl
-class</title><p>The <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class (defined in <filepath>epoc32\include\COECNTRL.H</filepath>)
-provides many useful features for implementing a FEP, such as functions for
-handling window server events. In fact, for FEPs wishing to intercept key
-events, writing a class that derives from <codeph>CCoeControl</codeph> is
-a necessity because of the need to use the control stack (see <xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita#GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1/GUID-1B15C661-851B-5922-B8BC-7A772232DBD2-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2">Intercepting key events</xref>, below). Thus although deriving from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> is
-not explicitly demanded by the FEP architecture, it is assumed throughout
-this document that the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derived
-class owns an object of a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> derived class. </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0" xml:lang="en"><title>Implementing
+the FEP API</title><shortdesc>This topic describes various implementations of FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D0CB0202-D4B6-422B-84AA-F70974DDF7F3"><title>Post-platform
+security – the ECom plugin interface</title><p>In the secure platform, FEPs
+must be implemented as ECom plug-ins. ECom provides a secure environment for
+loading FEPs that cannot be achieved using standard, non-ECom polymorphic
+DLLs. The main tasks that are specific to implementing a FEP as an ECom plug-in
+are described in this section. Note that the differences between pre- and
+post-platform security FEPs are imposed by the change from old-style, standard
+polymorphic DLLs to ECom plugins. The C++ APIs involved in FEP creation, which
+are defined in <filepath>fepbase.h</filepath>, are unchanged. </p> </section>
+<section id="GUID-97C929BB-0523-45F4-8100-D8065B9A53D5"><title>Define a class
+that implements the CCoeFepPlugIn interface</title><p>This class must implement
+the <codeph>NewFepL()</codeph> and <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> functions
+that were, pre-platform security, the first and second exports from the DLL.
+Note that these functions have been redefined and no longer take the const <codeph>TDesC&amp;
+aFullFileNameOfDll </codeph> argument: the ECom plugin implementation is identified
+by a UID rather than a filename. This means that the implementation of <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> is
+now responsible for locating the resource file needed to execute the settings
+dialog itself. </p> <codeblock id="GUID-310F5ADC-B9CB-5A3B-878F-AF13C4C4C08B" xml:space="preserve">class CCoeFepPlugIn : public CBase
+    {
+public:
+    inline static CCoeFepPlugIn* NewL(TUid aFepUid);
+    virtual ~CCoeFepPlugIn();
+public:
+    virtual CCoeFep* NewFepL(CCoeEnv&amp; aConeEnvironment, const CCoeFepParameters&amp; aFepParameters) = 0;
+    virtual void SynchronouslyExecuteSettingsDialogL(CCoeEnv&amp; aConeEnvironment) = 0;
+    };
+</codeblock> </section>
+<section id="GUID-939614DA-C3EF-43FD-924A-805596AEC2FD"><title>Provide the
+factory code required to instantiate the derived class </title> <p>FEPs must
+provide the standard factory code required by every ECom plugin. For more
+information, see “Using ECom” in the Symbian Developer Library. For example,
+(the following code is taken from <filepath>TFEP1PlugIn.cpp</filepath>): </p> <codeblock id="GUID-88F37824-8CAA-53B8-BD69-AB5B17B9BBB5" xml:space="preserve">const TInt KTstFepPlugInImplementationValue = 0x102024D0;
+const TImplementationProxy ImplementationTable[] = 
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KTstFepPlugInImplementationValue, CTstFepPlugIn::NewL )
+    };
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
+CTstFepPlugIn* CTstFepPlugIn::NewL()
+    { // static
+    return new(ELeave) CTstFepPlugIn;
+    }
+</codeblock></section>
+<section id="GUID-FC0B99AB-B579-42A2-8A0C-3A36BE648616"><title>Create an ECom
+resource file</title> <p>Each FEP must have an ECom resource file. Its interface
+UID must be 0x1020233f, or CONE will not be able to find the FEP. For example, </p> <codeblock id="GUID-5CBDB731-EBAD-5326-909C-4DF78E7AC360" xml:space="preserve">#include &lt;RegistryInfo.rh&gt;
+
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid = 0x102024D0; // UID3 of the DLL
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = 0x1020233F; // Same for every FEP
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x102024D0;
+                    version_no = 1;
+                    display_name = "FEPNAME";
+                    default_data = "";
+                    opaque_data = "";
+                    }
+                };
+            }
+        };
+    }</codeblock></section>
+<section id="GUID-BEDE8AA4-843E-405E-A8F9-EC80893D7D59"><title>The CCoeFep
+class</title> <p>The parts of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> relevant to classes
+deriving from it are shown below: </p> <codeblock id="GUID-14B6DFB4-02DE-5D12-BBFB-0665F6B089E0" xml:space="preserve">class CCoeFep : public CBase, protected MFepAttributeStorer, public MCoeForegroundObserver, public MCoeFocusObserver
+{
+public:
+    enum TEventResponse
+        {
+        EEventWasNotConsumed,
+        EEventWasConsumed
+        };
+    class MDeferredFunctionCall
+        {
+    public:
+        virtual void ExecuteFunctionL()=0;
+        };
+    class MModifiedCharacter
+        {
+    public:
+        virtual TUint CharacterCode() const=0;
+        virtual TUint ModifierMask() const=0;
+        virtual TUint ModifierValues() const=0;
+        };
+public:
+    IMPORT_C virtual ~CCoeFep();
+    virtual void CancelTransaction()=0;
+protected:
+    IMPORT_C CCoeFep(CCoeEnv&amp; aConeEnvironment);
+    IMPORT_C void BaseConstructL(const CCoeFepParameters&amp; aFepParameters);
+    IMPORT_C void ReadAllAttributesL();
+    IMPORT_C void MakeDeferredFunctionCall(MDeferredFunctionCall&amp; aDeferredFunctionCall);
+    IMPORT_C void SimulateKeyEventsL(const TArray&lt;TUint&gt;&amp; aArrayOfCharacters);
+    IMPORT_C void SimulateKeyEventsL(const TArray&lt;MModifiedCharacter&gt;&amp; aArrayOfModifiedCharacters);
+    IMPORT_C void WriteAttributeDataAndBroadcastL(TUid aAttributeUid);
+    IMPORT_C void WriteAttributeDataAndBroadcastL(const TArray&lt;TUid&gt;&amp; aAttributeUids);
+    IMPORT_C TBool IsOn() const;
+private:
+    virtual void IsOnHasChangedState()=0;
+    virtual void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode)=0;
+    virtual void OfferPointerEventL(TEventResponse&amp; aEventResponse, const TPointerEvent&amp; aPointerEvent, const CCoeControl* aWindowOwningControl)=0;
+    virtual void OfferPointerBufferReadyEventL(TEventResponse&amp; aEventResponse, const CCoeControl* aWindowOwningControl)=0;
+    };
+</codeblock> <p>Note that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits, but does not
+override, some pure virtual functions from its base classes <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>, <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref> and <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. These therefore need to be overridden in addition
+to <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s own pure virtual member functions. The details
+of the member functions of <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> and its base classes
+are explained in various sections of this document. </p></section>
+<section id="GUID-ECA1F4AE-1B25-4079-B249-AC8ECF3D3F90"><title>The CCoeControl
+class</title><p>The <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class (defined in <filepath>epoc32\include\COECNTRL.H</filepath>)
+provides many useful features for implementing a FEP, such as functions for
+handling window server events. In fact, for FEPs wishing to intercept key
+events, writing a class that derives from <codeph>CCoeControl</codeph> is
+a necessity because of the need to use the control stack (see <xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96.dita#GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96/GUID-1B15C661-851B-5922-B8BC-7A772232DBD2">Intercepting key events</xref>, below). Thus although deriving from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> is
+not explicitly demanded by the FEP architecture, it is assumed throughout
+this document that the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> derived
+class owns an object of a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> derived class. </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e3291_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e4566_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e356629_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6DA5C169-5143-5DDD-B4A0-004D4571D9B8_d0e362709_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84" xml:lang="en"><title>What
-are elements</title><shortdesc>This topic describes elements. All items that can be stored in
-the Comms Database are elements. The topic also discusses the structure of
-the unique numeric Id and the attributes that control access to elements. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>An element is represented by the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> class.
-The class is a base class for all items that can be stored in the Comms Database.
-The class contains the data that is common to all items that can be stored
-in the Comms database. </p>
-<p>Elements contain three pieces of information: </p>
-<ul>
-<li id="GUID-42CDC895-ADD7-53E1-86C8-BDCA97874D80"><p>a unique numeric Id
-that defines the location of the element in the database. The Id defines the
-meaning of the element in the database schema as a specific Table, Column,
-Record or Field. A numeric Id also allows for fast access and retrieval of
-an element. </p> </li>
-<li id="GUID-370BB127-A262-561F-BB53-CFD71D7EF61E"><p>a set of attributes
-that controls access to the data. </p> </li>
-<li id="GUID-F533113D-25EF-5CAE-8AA4-FF05CA8894B6"><p>a value that can be
-a single numeric type, a Boolean type, a descriptor, or a composite of one
-or more nested elements. </p> </li>
-</ul>
-<p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> derives from <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref>. <codeph>MMetaDatabase</codeph> provides
-the behaviour that allows an element to operate with the Comms Database. [See
-accessing the database or words to that effect.] </p>
-<fig id="GUID-3FE9490C-8766-5F31-9147-7F20A03BBF2D">
-<image href="GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e85908_href.png" placement="inline"/>
-</fig>
-<section id="GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852"><title>The Element
-Id</title> <p>The <codeph>iElementId</codeph> data member of <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> is
-a 32 bit number that contains: </p> <ul>
-<li id="GUID-4F41A6A2-79FC-5CA7-AC9C-B242D7DC925E"><p>the unique numeric Id
-that shows the location of the element in the database. This numeric Id is
-known as the Element Id. </p> </li>
-<li id="GUID-D8EFDBE9-A897-56F8-939A-E3942FCC34F2"><p>the set of attributes
-that controls access to the data. The bits define the access levels. </p> </li>
-</ul> <p>Both pieces of information are encoded in the 32 bit number. The
-32 bit number is a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TMDBElementId</apiname></xref> type. </p> <p>The <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> class provides member functions to
-access and to change the information in the Element Id. </p></section>
-<section> <p id="GUID-32E556BC-55C3-5FBD-9A60-9708139C20D6"><b>The unique
-numeric Id</b> </p> <p>The unique numeric Id has two parts: the Type Id and
-the Record Id. </p> <p>The Type Id defines the type of element; the Record
-Id identifies an instance of this type of element. </p> <p>The class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> provides the member functions <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBElement::TypeId()</apiname></xref> and <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBElement::RecordId()</apiname></xref> to
-extract this information. </p> <p>Internally, the Type Id includes a 8 bit
-number and a 7 bit number. The 8 bit number is the Table Id and the 7 bit
-number is the Column Id. The Type Id and the Record Id are in defined locations
-in the 32 bit number <codeph>iElementId</codeph>. </p> <fig id="GUID-B3A732DF-8D24-532C-A4AB-D5B42408D832">
-<image href="GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e85988_href.png" placement="inline"/>
-</fig> <p>The header file <filepath>comsdat.h</filepath> contains the constants
-that define the location of these Ids in the 32 bit number: </p> <table id="GUID-1369F999-F42E-5268-AF6F-0D5C9A362878">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p>Table Id </p> </entry>
-<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowRecordType</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p>Column Id </p> </entry>
-<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowFieldType</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p>Type Id </p> </entry>
-<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowType</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p>Record Id </p> </entry>
-<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowRecordId</apiname></xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><p id="GUID-EE8E5985-4159-5780-8001-E51EB4821D05"><b> The set of
-attributes that controls access to the data</b> </p><p>The access levels of
-an element are defined by the bits in the element. The <xref href="GUID-2AF9DED8-0AAE-370B-8FA2-B2910939A7B8.dita"><apiname>TCDAttributeFlags</apiname></xref> enum
-defines the access levels of an element. These bits are stored in the fourth
-byte of the <codeph>iElementId</codeph> member of <xref href="GUID-C36F41FE-1776-3735-89F3-DAAAFA7FDC91.dita"><apiname>CMDBElement</apiname></xref>. </p><fig id="GUID-A1C2FF44-AA19-42B8-8F10-E927170A317A">
-<image href="GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e86097_href.png" placement="inline"/>
-</fig><p> <xref href="GUID-DC185E84-1DC0-36F7-9B3D-19B4B3E641D7.dita"><apiname>KCDMaskShowAttributes</apiname></xref> in the header file <filepath>comsdat.h</filepath> defines
-the location of these access control bits in the 32 bit number.</p>  </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84" xml:lang="en"><title>What
+are elements</title><shortdesc>This topic describes elements. All items that can be stored in
+the Comms Database are elements. The topic also discusses the structure of
+the unique numeric Id and the attributes that control access to elements. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>An element is represented by the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> class.
+The class is a base class for all items that can be stored in the Comms Database.
+The class contains the data that is common to all items that can be stored
+in the Comms database. </p>
+<p>Elements contain three pieces of information: </p>
+<ul>
+<li id="GUID-42CDC895-ADD7-53E1-86C8-BDCA97874D80"><p>a unique numeric Id
+that defines the location of the element in the database. The Id defines the
+meaning of the element in the database schema as a specific Table, Column,
+Record or Field. A numeric Id also allows for fast access and retrieval of
+an element. </p> </li>
+<li id="GUID-370BB127-A262-561F-BB53-CFD71D7EF61E"><p>a set of attributes
+that controls access to the data. </p> </li>
+<li id="GUID-F533113D-25EF-5CAE-8AA4-FF05CA8894B6"><p>a value that can be
+a single numeric type, a Boolean type, a descriptor, or a composite of one
+or more nested elements. </p> </li>
+</ul>
+<p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> derives from <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref>. <codeph>MMetaDatabase</codeph> provides
+the behaviour that allows an element to operate with the Comms Database. [See
+accessing the database or words to that effect.] </p>
+<fig id="GUID-3FE9490C-8766-5F31-9147-7F20A03BBF2D">
+<image href="GUID-4B7FA629-BFC9-594B-B253-AC920EAD6E67_d0e79196_href.png" placement="inline"/>
+</fig>
+<section id="GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852"><title>The Element
+Id</title> <p>The <codeph>iElementId</codeph> data member of <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> is
+a 32 bit number that contains: </p> <ul>
+<li id="GUID-4F41A6A2-79FC-5CA7-AC9C-B242D7DC925E"><p>the unique numeric Id
+that shows the location of the element in the database. This numeric Id is
+known as the Element Id. </p> </li>
+<li id="GUID-D8EFDBE9-A897-56F8-939A-E3942FCC34F2"><p>the set of attributes
+that controls access to the data. The bits define the access levels. </p> </li>
+</ul> <p>Both pieces of information are encoded in the 32 bit number. The
+32 bit number is a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>TMDBElementId</apiname></xref> type. </p> <p>The <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> class provides member functions to
+access and to change the information in the Element Id. </p></section>
+<section> <p id="GUID-32E556BC-55C3-5FBD-9A60-9708139C20D6"><b>The unique
+numeric Id</b> </p> <p>The unique numeric Id has two parts: the Type Id and
+the Record Id. </p> <p>The Type Id defines the type of element; the Record
+Id identifies an instance of this type of element. </p> <p>The class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> provides the member functions <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBElement::TypeId()</apiname></xref> and <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CMDBElement::RecordId()</apiname></xref> to
+extract this information. </p> <p>Internally, the Type Id includes a 8 bit
+number and a 7 bit number. The 8 bit number is the Table Id and the 7 bit
+number is the Column Id. The Type Id and the Record Id are in defined locations
+in the 32 bit number <codeph>iElementId</codeph>. </p> <fig id="GUID-B3A732DF-8D24-532C-A4AB-D5B42408D832">
+<image href="GUID-0B151FE8-21E1-58A1-BEB3-5502EDF052C0_d0e79276_href.png" placement="inline"/>
+</fig> <p>The header file <filepath>comsdat.h</filepath> contains the constants
+that define the location of these Ids in the 32 bit number: </p> <table id="GUID-1369F999-F42E-5268-AF6F-0D5C9A362878">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>Table Id </p> </entry>
+<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowRecordType</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p>Column Id </p> </entry>
+<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowFieldType</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p>Type Id </p> </entry>
+<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowType</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p>Record Id </p> </entry>
+<entry><p> <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDMaskShowRecordId</apiname></xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><p id="GUID-EE8E5985-4159-5780-8001-E51EB4821D05"><b> The set of
+attributes that controls access to the data</b> </p><p>The access levels of
+an element are defined by the bits in the element. The <xref href="GUID-2AF9DED8-0AAE-370B-8FA2-B2910939A7B8.dita"><apiname>TCDAttributeFlags</apiname></xref> enum
+defines the access levels of an element. These bits are stored in the fourth
+byte of the <codeph>iElementId</codeph> member of <xref href="GUID-C36F41FE-1776-3735-89F3-DAAAFA7FDC91.dita"><apiname>CMDBElement</apiname></xref>. </p><fig id="GUID-A1C2FF44-AA19-42B8-8F10-E927170A317A">
+<image href="GUID-46673FC4-ADA9-59D1-A743-B4784425D240_d0e79385_href.png" placement="inline"/>
+</fig><p> <xref href="GUID-DC185E84-1DC0-36F7-9B3D-19B4B3E641D7.dita"><apiname>KCDMaskShowAttributes</apiname></xref> in the header file <filepath>comsdat.h</filepath> defines
+the location of these access control bits in the 32 bit number.</p>  </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD"><title>Drawing Text</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw a line of text and text in a colored box. </p> <section><title>Text</title> <p>The basic way to draw text is to call <codeph>CGraphicsContext::DrawText()</codeph> with a point specifying the bottom left position, as shown below: </p> <fig id="GUID-0FE5E011-9C1D-5F36-AAC2-5F05B023CF84"><image href="GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e207084_href.png" placement="inline"/></fig> <p>Before calling, you must use the graphics context to: </p> <ol id="GUID-EA1605BB-1FD6-5E08-9D24-C8DEAB625A96"><li id="GUID-5CB9A7BD-ABFE-550A-BF43-E12BAF72BB27"><p>Set the font to use </p> </li> <li id="GUID-BB8A0DF7-AD80-5718-8646-2B4E8836FFC7"><p>Set the pen color for the text </p> </li> </ol> <codeblock id="GUID-C3E7D82E-CBE6-5131-B6BA-14F341DB331E" xml:space="preserve">// In this example, we use one of the standard font styles
-CFont* fontUsed = iEikonEnv-&gt;TitleFont();
-gc.UseFont(fontUsed);
-    
-gc.SetPenColor(KRgbBlack);
-    
-TPoint pos(50,50);
-_LIT(KExampleText,"blacktext");
-gc.DrawText(KExampleText,pos);</codeblock> </section> <section><title>Text in a box</title> <p>To draw text in a box, you must specify: </p> <ul><li id="GUID-77C31EC3-67D6-5DFD-954D-E4008990E97D"><p>a rectangle to draw the text in </p> </li> <li id="GUID-9F13BCA1-D087-51CE-80D9-9DD908933BDD"><p>an offset from the top of the rectangle to the text baseline: to center the text, add half the height of the rectangle to half the height of the font's ascent </p> </li> <li id="GUID-DCAF0EFD-FD6B-56DA-89FA-05CEB6684F2D"><p>the text alignment mode: in the example, left alignment is used </p> </li> <li id="GUID-431998D7-53E6-5899-B072-89B1DF5C01E8"><p>a margin: the left margin for left-aligned text, or the right margin for right-aligned text </p> </li> </ul> <p>The following figure show how these fit together: </p> <fig id="GUID-2C7ED0E6-3667-56E4-B776-9EF9C085D746"><image href="GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e207138_href.png" placement="inline"/></fig> <p>In addition to the font and pen color, you can also set the brush for filling the box. </p> <codeblock id="GUID-21B1E44E-AA77-5489-9C57-AEE33519F958" xml:space="preserve">...
-// Draw some text left justified in a box,
-// Offset so text is just inside top of box
-    
-TRect box(20,20,250,100);
-TInt baseline = box.Height() /2 + fontUsed-&gt;FontMaxAscent()/2; 
-    
-TInt margin=10; // left margin is ten pixels
-    
-gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-gc.SetBrushColor(KRgbDarkGray);
-gc.SetPenColor(KRgbWhite);
-    
-_LIT(KExampleText,"Whitetextleftjustified");
-gc.DrawText(KExampleText,
- box,
- baseline,
- CGraphicsContext::ELeft,
- margin);
-    
-...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-6DF52DDC-B03C-5971-94C8-0E9BAAB949FD"><title>Drawing Text</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw a line of text and text in a colored box. </p> <section><title>Text</title> <p>The basic way to draw text is to call <codeph>CGraphicsContext::DrawText()</codeph> with a point specifying the bottom left position, as shown below: </p> <fig id="GUID-0FE5E011-9C1D-5F36-AAC2-5F05B023CF84"><image href="GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e202076_href.png" placement="inline"/></fig> <p>Before calling, you must use the graphics context to: </p> <ol id="GUID-EA1605BB-1FD6-5E08-9D24-C8DEAB625A96"><li id="GUID-5CB9A7BD-ABFE-550A-BF43-E12BAF72BB27"><p>Set the font to use </p> </li> <li id="GUID-BB8A0DF7-AD80-5718-8646-2B4E8836FFC7"><p>Set the pen color for the text </p> </li> </ol> <codeblock id="GUID-C3E7D82E-CBE6-5131-B6BA-14F341DB331E" xml:space="preserve">// In this example, we use one of the standard font styles
+CFont* fontUsed = iEikonEnv-&gt;TitleFont();
+gc.UseFont(fontUsed);
+    
+gc.SetPenColor(KRgbBlack);
+    
+TPoint pos(50,50);
+_LIT(KExampleText,"blacktext");
+gc.DrawText(KExampleText,pos);</codeblock> </section> <section><title>Text in a box</title> <p>To draw text in a box, you must specify: </p> <ul><li id="GUID-77C31EC3-67D6-5DFD-954D-E4008990E97D"><p>a rectangle to draw the text in </p> </li> <li id="GUID-9F13BCA1-D087-51CE-80D9-9DD908933BDD"><p>an offset from the top of the rectangle to the text baseline: to center the text, add half the height of the rectangle to half the height of the font's ascent </p> </li> <li id="GUID-DCAF0EFD-FD6B-56DA-89FA-05CEB6684F2D"><p>the text alignment mode: in the example, left alignment is used </p> </li> <li id="GUID-431998D7-53E6-5899-B072-89B1DF5C01E8"><p>a margin: the left margin for left-aligned text, or the right margin for right-aligned text </p> </li> </ul> <p>The following figure show how these fit together: </p> <fig id="GUID-2C7ED0E6-3667-56E4-B776-9EF9C085D746"><image href="GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e202130_href.png" placement="inline"/></fig> <p>In addition to the font and pen color, you can also set the brush for filling the box. </p> <codeblock id="GUID-21B1E44E-AA77-5489-9C57-AEE33519F958" xml:space="preserve">...
+// Draw some text left justified in a box,
+// Offset so text is just inside top of box
+    
+TRect box(20,20,250,100);
+TInt baseline = box.Height() /2 + fontUsed-&gt;FontMaxAscent()/2; 
+    
+TInt margin=10; // left margin is ten pixels
+    
+gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+gc.SetBrushColor(KRgbDarkGray);
+gc.SetPenColor(KRgbWhite);
+    
+_LIT(KExampleText,"Whitetextleftjustified");
+gc.DrawText(KExampleText,
+ box,
+ baseline,
+ CGraphicsContext::ELeft,
+ margin);
+    
+...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
                 to a Graphics Context Tutorials</linktext> </link> <link href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"><linktext>Drawing and Graphics Contexts</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e272089_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e275770_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,381 +1,381 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6E221034-9A01-53AB-8374-315C38CCA21E" xml:lang="en"><title>Examples
-Showing the use of the SIP Profile API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following sections describe how to use the SIP Profile API. </p>
-<ul>
-<li id="GUID-D5503066-5783-5D3D-9EC3-DBC7CEE398B3"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-82D83B96-FF89-5F6A-9A65-C448F103A2F5">Creating a SIP profile</xref>  </p> </li>
-<li id="GUID-EE2733CC-B951-5970-BC00-2D8F3E0F6EFA"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-72003F70-79B8-5D23-977D-E736AD3E5B42">Modifying a SIP Profile</xref>  </p> </li>
-<li id="GUID-6FCDC117-944D-57D6-BB49-77845972077E"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-27B07919-C5D5-5F8A-B2A3-AC2577E19C92">Enabling a SIP profile</xref>  </p> </li>
-<li id="GUID-CBD94827-C48F-5E91-88F8-A2E962BB08B9"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-628DCA48-F8B4-5E6F-AC1B-731EAB1A9D62">Disabling a SIP profile</xref>  </p> </li>
-<li id="GUID-610AAF1B-B350-5102-9DA4-82FBC04FC527"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-E607BA8F-50CC-5CF6-9D7E-E31319825507">Destroying a SIP Profile</xref>  </p> </li>
-<li id="GUID-3108093C-35E5-56C2-A3C2-03527816E537"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-EABE2455-4D59-58AE-8D02-24FD4A7A82B1">Retrieving a profile</xref>  </p> </li>
-<li id="GUID-1BE93BE1-2B70-53C8-B6FD-48278322517F"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-471F4EBB-2FE4-561D-9B74-555061797C45">Refreshing a SIP profile</xref>  </p> </li>
-<li id="GUID-F6CD986B-C019-58E6-B71D-39F42AB03AA6"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-289B2BF5-AF58-5E1E-B905-F1255EFC7FEB">Stopping SIP registration</xref>  </p> </li>
-</ul>
-<section id="GUID-82D83B96-FF89-5F6A-9A65-C448F103A2F5"><title>Creating a
-SIP profile</title> <p> <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita"><apiname> CSIPManagedProfileRegistry</apiname></xref> manages
-the SIP profiles and provides the functions to add, update, and remove profiles
-at run time. </p> <p>The following steps describes how to create a SIP profile. </p> <ol id="GUID-F9ECD3BD-52AC-5370-8336-4EEB619B1F58">
-<li id="GUID-C0A00EF9-72F1-53DB-8CCB-BE7B4BF3D7F3"><p>Create a default profile
-that uses the <xref href="GUID-A9C883F9-3C6D-32BF-A278-4DCBDA18F687.dita"><apiname>CreateL()</apiname></xref> interface of <xref href="GUID-B2F66C7C-4E81-307C-B836-314D0A89D8D6.dita"><apiname>CSIPManagedProfileRegistry()</apiname></xref>. <xref href="GUID-A9C883F9-3C6D-32BF-A278-4DCBDA18F687.dita"><apiname>CreateL()</apiname></xref> returns
-an object of type <codeph>CSIPManagedProfile</codeph>. </p> </li>
-<li id="GUID-76CD5953-C5A9-51C0-9E66-2444AFE458D6"><p>Use <codeph>SetParameter()</codeph> of <xref href="GUID-CDE67614-1A7A-3082-8D8D-71645668A0DE.dita"><apiname>CSIPManagedProfile</apiname></xref> to
-set the value for the profile parameters. </p> </li>
-<li id="GUID-8F762BAF-0D4B-580D-8A8B-BE3B68C2BF90"><p>Use <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita#GUID-5266AB0D-705C-3011-A92B-DA82BC212999/GUID-50D99686-5C79-3F7F-9C7D-4FC23EE41832"><apiname>CSIPManagedProfileRegistry::SaveL()</apiname></xref> to
-save the profile when the values are set. </p> </li>
-<li id="GUID-1B40AA8E-6326-5631-B83E-5230192FBC0E"><p>When you call <xref href="GUID-475D1AF4-F8C2-3243-99DC-43419979A858.dita"><apiname>SaveL()</apiname></xref>,
-wait until <xref href="GUID-92312598-A5DA-36B9-AF46-E7EE80452792.dita"><apiname>EProfileCreated</apiname></xref> event is reported in the observer.
-When the event is received the profile is created. </p> </li>
-</ol> <fig id="GUID-13F7B1AB-7F1A-544F-AC9C-26780E4FC517">
-<image href="GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e342329_href.jpg" placement="inline"/>
-</fig> <p>The following code snippet shows how to create and save a profile. </p> <codeblock id="GUID-EFDEE0D4-00C9-520E-B1FA-18E48702DE7F" xml:space="preserve">/*Client must create an instance of the CSIP class. The API used for this is, here TUid must be an application UID.*/
-
-CSIP* CSIP::NewL(const TUid&amp; aUid, MSIPObserver&amp; aObserver); 
-
-/* CSIPManagedProfileRegistry manages SIP profiles and provides functions for adding, updating, or removing profiles at run time. */
-
-iManagedProfileRegistry= CSIPManagedProfileRegistry::NewL(aObserver);
-
-/* CreateL() of CSIPManagedProfileRegistry is used to create a profile with default values. This takes ProfileType as parameter so define a profile type.*/
-
-/*  Profilename */
-    _LIT8( KProfileName, "ims" );
-    
-    // Used to set and get the parameters of the profile
-    CSIPManagedProfile* aProfile = NULL;
-    
-    // Set the profile type , profile name.
-    TSIPProfileTypeInfo typeInfo;
-    typeInfo.iSIPProfileClass = TSIPProfileTypeInfo:: EIms;
-    typeInfo.iSIPProfileName = KProfileName;
-    
-    // Creates the profile of type IETF with default values  
-    aProfile = iManagedProfileRegistry-&gt;CreateL( typeInfo );
-
-    // Set the values in the newly created profile.
-    TUint32 iapId(11);
-    aProfile-&gt;SetParameter(KSIPAccessPointId,iapId);
-    
-            _LIT8(aor,"sip:user@192.168.0.35");
-    aProfile-&gt;SetParameter(KSIPUserAor,aor);
- 
-// Save the profile
-    iManagedProfileRegistry-&gt;SaveL(*aProfile);
-
-// Wait for EProfileCreated event on the observer.
-</codeblock> </section>
-<section id="GUID-72003F70-79B8-5D23-977D-E736AD3E5B42"><title>Modifying a
-SIP Profile</title> <p>The following steps describe how to modify a SIP profile. </p> <ol id="GUID-AFE64969-68F3-594C-8324-F0943694AB19">
-<li id="GUID-FE7DBAA3-03C5-5CFC-BFB8-C63DDF7AA6A3"><p>The profile is modified
-when you change the profile parameters and save the updated profile to the
-permanent store. </p> </li>
-<li id="GUID-6B61FCF7-C753-534E-BF2D-293FE7A16F6E"><p>When the updated profile
-is saved to the permanent store the application gets the event notification <codeph>EProfileUpdated</codeph>. </p> </li>
-<li id="GUID-614CA2D4-ED93-58A7-B3FC-8F86C3BA3A7C"><p>Depending on the updated
-parameters, the update leads to no actions, to registration or to re-registration.
-The profile is re-registered if it is configured for auto-registration when
-the profile is updated. </p> </li>
-<li id="GUID-9A12EC08-7C67-551E-A7FE-5A114A36F721"><p>The profile must not
-be used by another application while you update the profile. Use the <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita#GUID-5266AB0D-705C-3011-A92B-DA82BC212999/GUID-E6E0D735-28EC-3BFD-8359-68FDC39108EE"><apiname>CSIPManagedProfileRegistry::IsInUseL</apiname></xref> API
-to check if the profile is currently in use. </p> </li>
-</ol> </section>
-<section id="GUID-27B07919-C5D5-5F8A-B2A3-AC2577E19C92"><title>Enabling a
-SIP profile</title> <p>The following steps describe how to enable a SIP profile. </p> <ol id="GUID-1D340099-1F58-5E19-8380-1CC187CB7632">
-<li id="GUID-7E306B08-C5A3-534F-9122-17D81BDAB5C2"><p>A client of the SIP
-Profile API must create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> <p> <b>Note</b>:
-The client must provide an instance of the class <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> to
-create an object of the type <codeph>CSIPProfileRegistry</codeph>. </p> </li>
-<li id="GUID-E8B43A46-B6F0-5466-A039-D0565EAA0895"><p>The client must implement
-the callback functions defined in the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> interface
-to get notified when the status of the profile is changed. </p> </li>
-<li id="GUID-FDB514C2-5B6A-5FB6-AECD-BEF264DD700B"><p>Create an instance of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> using
-a retrieve function of the <xref href="GUID-DDB0FD0C-267F-3AAB-8519-78065180E0BD.dita"><apiname>CSIPPProfileRegistry</apiname></xref> class. </p> </li>
-<li id="GUID-B3B9F1DF-A195-5E37-84BD-2A951C472BC8"><p>The profile parameters
-are read from the getter functions of the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
-<li id="GUID-47997C80-FE84-5FAF-A5A1-E634215BD362"><p>The client can use the
-profile when you enable it through <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> and
-leaves on failure. </p> </li>
-<li id="GUID-FBC081E2-D61E-58DB-9237-6673FB9231E0"><p>The user must check
-the profile status after the <xref href="GUID-93D33C84-8A6B-3A94-9797-1412489323F0.dita"><apiname>EnableL</apiname></xref> function is called.
-If the profile is not registered after this function is called, the user must
-wait until it gets a notification through the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> callback
-interface about the profile registration. </p> </li>
-</ol> <fig id="GUID-9300C461-D490-5E0B-84A6-AD40F95B8DE7">
-<image href="GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e342464_href.jpg" placement="inline"/>
-</fig> <p>The following code snippet shows how to enable a SIP profile. </p> <codeblock id="GUID-1A52EE02-D6E9-5795-995B-6B5ADFD131B4" xml:space="preserve">
-/*With the assumption that the profile was created and is saved to the persistent storage. */
-//Create an Instance of SIP client
-
-iSip = CSIP::NewL( aAppUid );
-
-//use CSIPProfileRegistry to get the saved profile.
-
-iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
-
-//Retrieve the profiles by the AOR
-
-_LIT8(KAor,"sip:user@10.192.192.43");
-TDesC8 aor(KAor);
-
-RPointerArray&lt;CSIPProfile&gt; profiles;
-
-/* Find and put the matching profiles by the given AOR into the pointer array.
-Returns the set of profiles which has the provided AOR.*/
-
-iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
-
-// Check the profile count. Get the required profile if the count is positive non-zero.
-TInt profile_cnt =   profiles.Count() ;
-iProfile = profiles[0];
-iProfileRegistry-&gt;EnableL( *iProfile, *this );
-
-//Application gets the event EProfileRegistered if the registration is successful. 
-</codeblock> </section>
-<section id="GUID-628DCA48-F8B4-5E6F-AC1B-731EAB1A9D62"><title>Disabling a
-SIP profile</title> <p>The following steps describes how to disable a SIP
-profile. </p> <ul>
-<li id="GUID-8EF332BF-6FD9-50B2-B29C-A24B29B4829D"><p>A client of the SIP
-Profile API must create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object </p> <p> <b>Note</b>:
-The client must provide an instance of the class <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> to
-create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> </li>
-<li id="GUID-0715DDFB-639B-5843-BFC8-75E53D807698"><p>The client must implement
-the callback functions defined in the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> interface
-to get notified with the events when the status of the profile is changed. </p> </li>
-<li id="GUID-8C06A1DB-BAE9-5718-B10D-3D262981B100"><p>Use retrieve function
-of the class <xref href="GUID-DDB0FD0C-267F-3AAB-8519-78065180E0BD.dita"><apiname>CSIPPProfileRegistry</apiname></xref> to create an instance
-of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
-<li id="GUID-4A1D7F52-7146-541C-91AE-E9CB5B8D5DD5"><p>The profile parameters
-are read from the getter functions of the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
-<li id="GUID-3D2ADA9A-DC9B-501D-B6DA-68BDA1B747FA"><p>Check the registration
-status of the profile that uses the getter functions of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>.
-Disable the profile if it is registered. </p> </li>
-<li id="GUID-E042394C-6AF3-5951-8F26-C4473DBDD143"><p>An application gets
-the notification event <codeph>EProfileDeregistered</codeph> if the de-registration
-is successful, otherwise it leaves. The error is sent to the application through
-the <codeph>ProfileRegistryErrorOccurred</codeph> callback function. </p> </li>
-</ul> <p>The following code snippet shows how to disable a SIP profile. </p> <codeblock id="GUID-40C08581-81ED-5A7E-90D9-36966992191A" xml:space="preserve">/*With the assumption that the profile was created and is saved to the persistent storage. 
-//Create an instance of SIP client
-iSip = CSIP::NewL( aAppUid
-
-/*use CSIPProfileRegistry to get the saved profile.*/
-iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
-
- /*Retrieve the profiles by the AOR*/
-_LIT8(KAor,"sip:user@10.192.192.43");
-TDesC8 aor(KAor);
- 
-RPointerArray&lt;CSIPProfile&gt; profiles;
-
-// Find and put the matching profiles by the given AOR into the pointer array
-// Returns the set of profiles which has the provided AOR.
-iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
-
-/* Check the profile count. Get the required profile if the count is positive non-zero.*/
-TInt profile_cnt =   profiles.Count() ;
-iProfile = profiles[0];
-
-// Registered is a bool type variable. Check the registration status of the iProfile. 
-// Registered holds TRUE if it is registered otherwise FALSE
-iProfile-&gt;GetParameter( KSIPProfileRegistered, registered );  
-
-/* If the iProfile is registered ( the Registered variable must hold TRUE for iProfile )*/
-/* Disable API returns KErrNone if the profile was disabled successfully otherwise there is a system-wide error.*/
-CSIPProfileRegistry::Disable(*iProfile)
-</codeblock> </section>
-<section id="GUID-E607BA8F-50CC-5CF6-9D7E-E31319825507"><title>Destroying
-a SIP Profile</title> <p>When you destroy a SIP profile it is permanently
-removed from the permanent storage and it cannot be used. The profile information
-is removed from the <filepath>sipprofiles.dat</filepath> file in Epoc32\winscw\c\private\101F413C. </p> <p>The
-following steps describe how to destroy a SIP profile. </p> <ol id="GUID-04F9358C-2AED-58F7-9404-01A4588590D1">
-<li id="GUID-3E72E3A2-3A3B-5433-8F38-6EB5AE517E50"><p>When the profile is
-destroyed the application gets the event <codeph>EProfileDestroyed</codeph>. </p> </li>
-<li id="GUID-D562B0C1-DC27-5615-AB19-70A978C4AF41"><ul>
-<li id="GUID-EDF14357-0BCB-539C-B569-01F19C02265E"><p>Registered: The removal
-is two-step process, de-register the profile and remove the profile. </p> </li>
-</ul> <ul>
-<li id="GUID-A1EC272B-AF21-572D-B16E-367EF21796BE"><p>De-registered : Removes
-the profile from the permanent storage and the application is notified with
-the event EProfileDestroyed. </p> </li>
-</ul> </li>
-</ol> <p>The following code snippet shows how to disable a profile. </p> <codeblock id="GUID-0784D25C-7AA0-53C1-B386-AC54F072833D" xml:space="preserve">//Function leaves on failure.
-CSIPManagedProfileRegistry::DestroyL(CSIPProfile&amp; aSIPProfile);
-</codeblock> </section>
-<section id="GUID-EABE2455-4D59-58AE-8D02-24FD4A7A82B1"><title>Retrieving
-a profile</title> <p><b>Retrieving a default profile</b> </p> <p>The following
-code snippet shows how to retrieve the default profile. </p> <codeblock id="GUID-3D64A865-38B6-539F-8C6B-CE10996B24A3" xml:space="preserve">// Retrieving a default profile.
-CSIPProfile* profile = iProfileRegistry-&gt;DefaultProfileL();
-
-// When a client retrieves a profile, its ownership is transferred to that client, so it becomes responsible 
-// for deleting the instances when they are no longer needed.
-
-delete profile;
-</codeblock> <p><b>Retrieving profiles by type</b> </p> <p>The following code
-snippet shows how to retrieve profiles by type. </p> <codeblock id="GUID-26097346-72B3-51A9-ABB3-37B8B138B28D" xml:space="preserve">// To retrieve more than one profile, the client must create
-// an RPointerArray object to holding pointers to instances of CSIPProfile.
-
-RPointerArray&lt;CSIPProfile&gt; profiles;
-
-// The wanted type is defined using a variable of type TSIPProfileTypeInfo.
-
-TSIPProfileTypeInfo type;
-type.iSIPProfileClass = TSIPProfileTypeInfo::EInternet;
-type.iSIPProfileName = _L8("IETF");
-
-// Profiles matching a given type are returned in the array.
-iProfileRegistry-&gt;ProfilesL(type, profiles);
-...
-// When a client retrieves a profile, its ownership is transferred to that
-// client, so it becomes responsible for deleting the instances when they are
-// no longer needed.
-profiles.ResetAndDestroy();
-</codeblock> <p><b>Retrieving profiles by matching an AOR</b> </p> <p>The
-following code snippet shows how to retrieve profiles by matching an AOR. </p> <codeblock id="GUID-71C88079-A622-5C95-B6C4-91066E99D021" xml:space="preserve">// To retrieve more than one profile, the client must create
-// an RPointerArray object to hold pointers to instances of CSIPProfile.
-RPointerArray&lt;CSIPProfile&gt; profiles;
-
-// Profiles matching a given AOR are returned in the array.
-iProfileRegistry-&gt;ProfilesL(_L8( "sip:jane.doe@foo.com" ), profiles );
-...
-
-// When a client retrieves a profile, its ownership is transferred to that
-// client, so it becomes responsible for deleting the instances when they are no longer needed.
-profiles.ResetAndDestroy();
-</codeblock> </section>
-<section><title>Getting the registration events</title> <p>The following code
-snippet shows how to get the registration events for different scenarios. </p> <codeblock id="GUID-4BCCE827-AD41-5DB0-A71F-611F1DF4BE25" xml:space="preserve">// A callback function, which must be implemented by the client, is called when the registration status 
-of a profile owned by the client is changed.
-
-void CMySIPClient:: ProfileRegistryEventOccurred(TUint32 aProfileId,
-MSIPProfileRegistryObserver::TEvent aEvent)
-  {
-  iProfileId = aProfileId;
-  switch(aEvent)
-    {
-    case EProfileCreated:
-      {
-      iEventId = EAdded;
-      break;
-      }
-    case EProfileUpdated:
-      {
-      iEventId = EUpdated;
-      break;
-      }
-    case EProfileRegistered:
-      {
-      iEventId = CMySIPClient::ERegistered;
-      break;
-      }
-    case EProfileDeregistered:
-      {
-      iEventId = CMySIPClient::EDeregistered;
-      break;
-      }
-    case EProfileDestroyed:
-      {
-      iEventId = ERemoved;
-      break;
-      }
-    default:
-      break;
-    }
-}</codeblock> </section>
-<section id="GUID-471F4EBB-2FE4-561D-9B74-555061797C45"><title>Refreshing
-a SIP profile</title> <p>The SIP profile can use either WLAN or GPRS connections
-to register to the SIP server. In case of WLAN, a registered SIP profile changes
-its state to an unregistered state when the handset is out of WLAN coverage.
-On re-entering the WLAN zone, the WLAN automatically scans to identify the
-available access points and then the SIP profile is automatically registered
-back with the server. This process is time consuming and is not efficient.
-So, the client uses the <xref href="GUID-1AEB6899-9942-3BBC-9ABA-8C0ACFCE3174.dita"><apiname>RefreshEnableL()</apiname></xref> function to: </p> <ul>
-<li id="GUID-A19E0054-71CA-55A4-BF75-9481189D81DC"><p>Initiate the SIP registration
-automatically. </p> </li>
-<li id="GUID-E42A6C7C-0238-5C33-9CDA-4691801D8E04"><p>Reduce the response
-time for the SIP registration. </p> </li>
-<li id="GUID-54F38CF7-D29D-5D30-954E-D7DD88D6B022"><p>Improve the efficiency
-of the application using the SIP stack during registration. </p> </li>
-</ul> <p>The <xref href="GUID-D5A82B9C-A86E-318F-85D7-B9DC69968DB0.dita"><apiname>RefreshEnableL</apiname></xref> API refreshes the connection
-on the used access point if it is not active. Refresh enabling a profile means
-that the user has enabled the profile but is unregistered because of a connection
-loss. For example, in a WLAN network, a connection refresh request to the
-bearer monitor starts the WLAN scanning if it is stopped. When the Connection
-Active notification is received, the stack automatically registers the profile
-and gives a notification to the client with the event <xref href="GUID-F78ECFEB-441F-3D55-9909-A3F82F738F7E.dita"><apiname>EProfileRegistered</apiname></xref> through
-the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. </p> <p>To refresh enable
-a profile, do the following steps: </p> <ul>
-<li id="GUID-221E3B9E-86DF-5200-ADA6-55E724688028"><p>Start the SIP Profile
-server. </p> </li>
-<li id="GUID-59833E8F-9619-5C72-8891-2E2D63B6B8CF"><p>Fetch the profile that
-must be refresh enabled from the SIP Profile Server. </p> <ul>
-<li id="GUID-0C52D86D-3ADA-5D6D-AEC5-07D1554A9C11"><p>If the profile is not
-Enabled the <xref href="GUID-E72E5C9A-ADAE-346A-8EF9-DACD7D23F318.dita"><apiname>RefreshEnable</apiname></xref> API leaves with <codeph>KErrArgument</codeph> error. </p> </li>
-<li id="GUID-EFC454B5-6F99-58A3-B3ED-9983DE0C1A4E"><p>If the profile is Enabled
-and in a Registered state then the API leaves with <codeph>KErrAlreadyExists</codeph> error. </p> </li>
-<li id="GUID-6B5728C4-F42C-5208-A6E4-1AF5641A13E3"><p>If the profile is Enabled
-and in an Unregistered state then the <xref href="GUID-E72E5C9A-ADAE-346A-8EF9-DACD7D23F318.dita"><apiname>RefreshEnable</apiname></xref> API
-refreshes the connection through <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-956F2ADC-40D6-3C15-949A-80789DF04550"><apiname>CSIPConnection::RefreshConnection()</apiname></xref> API.
-The profile receives notification about the active connection and it automatically
-registers again and sends <xref href="GUID-F78ECFEB-441F-3D55-9909-A3F82F738F7E.dita"><apiname>EProfileRegistered</apiname></xref> event to the
-application. </p> </li>
-</ul> </li>
-<li id="GUID-9CA4CA87-17C7-54D0-AEAF-F415DA5D934E"><p>A REGISTER request sent
-to the registrar server. </p> </li>
-<li id="GUID-FF40934C-588D-5ED6-8041-410103FB6D53"><p>The registration status
-of the profile is set to Registered. </p> </li>
-</ul> <p>The following sequence diagram shows how to enable a profile to refresh. </p> <fig id="GUID-5EF1953C-E56D-59C2-B443-F1B77DD7E73D">
-<image href="GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e342779_href.jpg" placement="inline"/>
-</fig> <p>The following code describes how to refresh enable a profile. </p> <codeblock id="GUID-1A13F3D3-C4B7-50E5-B5AF-F0CABF02758C" xml:space="preserve">//Checks if the profile is already enabled and requests the Profile Agent to refresh it.
-// If the profile is not enabled it leaves with KErrArgument. 
-
-void RefreshEnableL(CSIPProfile&amp; aSIPProfile, MSIPConnectionObserver&amp; aObserver)
-</codeblock> </section>
-<section id="GUID-289B2BF5-AF58-5E1E-B905-F1255EFC7FEB"><title>Stopping SIP
-registration</title> <p>In a setup, where there is no registrar, the SIP stack
-tries to send REGISTER messages to the network for at least 3 minutes and
-reserves the access point usage. During these 3 minutes the client cannot
-use another WLAN access point without destroying the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p>The <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API
-of the SIP stack stops all registration attempts and releases the access point.
-The <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API in the profile agent module improves
-the responsiveness of the applications using the SIP stack. It avoids situations
-where an application is waiting for the SIP stack to complete a registration
-procedure. </p> <p>To use the <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API the application
-must have Network Control capability. If the application does not have Network
-Control capability and invokes the <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API, then
-it receives <codeph>ErrPermissionDenied (-46</codeph>) error. Sending a <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API
-does not force the SIP stack to send any message to the network, instead it
-destroys the SIP transaction for that profile and cleans all the resources
-associated with that profile. The Profile Agent also notifies all the observers
-with the event <xref href="GUID-1B01576C-59DC-3958-9631-3094ED0DB46D.dita"><apiname>EProfileForciblyDisabled</apiname></xref>. </p> <p>The following
-code describes how to forcibly disable a profile. </p> <codeblock id="GUID-3D1556EB-AD13-5640-8104-83D08BF0D207" xml:space="preserve">// With the assumption that the profile is created and is saved to the persistent storage create an instance of the SIP client
-iSip = CSIP::NewL( aAppUid );
-
-// Use CSIPProfileRegistry to get the saved profile.
-iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
-
-// Retrieve the profiles by the AOR
-_LIT8(KAor,"sip:user@10.192.192.43");
-TDesC8 aor(KAor); 
-RPointerArray&lt;CSIPProfile&gt; profiles;
-
-// Find and add the matching profiles by the given AOR into the pointer array
-// Returns the set of profiles which has the provided AOR.
-iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
-
-// Check the profile count. Get the required profile if the count is positive non-zero.
-TInt profile_cnt =   profiles.Count() ;
-iProfile = profiles[0];
-
-// If the iProfile is registered (the Registered variable must hold TRUE for iProfile)
-// Disable API returns KErrNone if the profile is disabled successfully otherwise there is a system-wide error.
-CSIPProfileRegistry::ForceDisable(*iProfile);</codeblock> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6E221034-9A01-53AB-8374-315C38CCA21E" xml:lang="en"><title>Examples
+Showing the use of the SIP Profile API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following sections describe how to use the SIP Profile API. </p>
+<ul>
+<li id="GUID-D5503066-5783-5D3D-9EC3-DBC7CEE398B3"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-82D83B96-FF89-5F6A-9A65-C448F103A2F5">Creating a SIP profile</xref>  </p> </li>
+<li id="GUID-EE2733CC-B951-5970-BC00-2D8F3E0F6EFA"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-72003F70-79B8-5D23-977D-E736AD3E5B42">Modifying a SIP Profile</xref>  </p> </li>
+<li id="GUID-6FCDC117-944D-57D6-BB49-77845972077E"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-27B07919-C5D5-5F8A-B2A3-AC2577E19C92">Enabling a SIP profile</xref>  </p> </li>
+<li id="GUID-CBD94827-C48F-5E91-88F8-A2E962BB08B9"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-628DCA48-F8B4-5E6F-AC1B-731EAB1A9D62">Disabling a SIP profile</xref>  </p> </li>
+<li id="GUID-610AAF1B-B350-5102-9DA4-82FBC04FC527"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-E607BA8F-50CC-5CF6-9D7E-E31319825507">Destroying a SIP Profile</xref>  </p> </li>
+<li id="GUID-3108093C-35E5-56C2-A3C2-03527816E537"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-EABE2455-4D59-58AE-8D02-24FD4A7A82B1">Retrieving a profile</xref>  </p> </li>
+<li id="GUID-1BE93BE1-2B70-53C8-B6FD-48278322517F"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-471F4EBB-2FE4-561D-9B74-555061797C45">Refreshing a SIP profile</xref>  </p> </li>
+<li id="GUID-F6CD986B-C019-58E6-B71D-39F42AB03AA6"><p> <xref href="GUID-6E221034-9A01-53AB-8374-315C38CCA21E.dita#GUID-6E221034-9A01-53AB-8374-315C38CCA21E/GUID-289B2BF5-AF58-5E1E-B905-F1255EFC7FEB">Stopping SIP registration</xref>  </p> </li>
+</ul>
+<section id="GUID-82D83B96-FF89-5F6A-9A65-C448F103A2F5"><title>Creating a
+SIP profile</title> <p> <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita"><apiname> CSIPManagedProfileRegistry</apiname></xref> manages
+the SIP profiles and provides the functions to add, update, and remove profiles
+at run time. </p> <p>The following steps describes how to create a SIP profile. </p> <ol id="GUID-F9ECD3BD-52AC-5370-8336-4EEB619B1F58">
+<li id="GUID-C0A00EF9-72F1-53DB-8CCB-BE7B4BF3D7F3"><p>Create a default profile
+that uses the <xref href="GUID-A9C883F9-3C6D-32BF-A278-4DCBDA18F687.dita"><apiname>CreateL()</apiname></xref> interface of <xref href="GUID-B2F66C7C-4E81-307C-B836-314D0A89D8D6.dita"><apiname>CSIPManagedProfileRegistry()</apiname></xref>. <xref href="GUID-A9C883F9-3C6D-32BF-A278-4DCBDA18F687.dita"><apiname>CreateL()</apiname></xref> returns
+an object of type <codeph>CSIPManagedProfile</codeph>. </p> </li>
+<li id="GUID-76CD5953-C5A9-51C0-9E66-2444AFE458D6"><p>Use <codeph>SetParameter()</codeph> of <xref href="GUID-CDE67614-1A7A-3082-8D8D-71645668A0DE.dita"><apiname>CSIPManagedProfile</apiname></xref> to
+set the value for the profile parameters. </p> </li>
+<li id="GUID-8F762BAF-0D4B-580D-8A8B-BE3B68C2BF90"><p>Use <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita#GUID-5266AB0D-705C-3011-A92B-DA82BC212999/GUID-50D99686-5C79-3F7F-9C7D-4FC23EE41832"><apiname>CSIPManagedProfileRegistry::SaveL()</apiname></xref> to
+save the profile when the values are set. </p> </li>
+<li id="GUID-1B40AA8E-6326-5631-B83E-5230192FBC0E"><p>When you call <xref href="GUID-475D1AF4-F8C2-3243-99DC-43419979A858.dita"><apiname>SaveL()</apiname></xref>,
+wait until <xref href="GUID-92312598-A5DA-36B9-AF46-E7EE80452792.dita"><apiname>EProfileCreated</apiname></xref> event is reported in the observer.
+When the event is received the profile is created. </p> </li>
+</ol> <fig id="GUID-13F7B1AB-7F1A-544F-AC9C-26780E4FC517">
+<image href="GUID-46A91D57-7864-53AD-903C-B978B0C61DAD_d0e336132_href.jpg" placement="inline"/>
+</fig> <p>The following code snippet shows how to create and save a profile. </p> <codeblock id="GUID-EFDEE0D4-00C9-520E-B1FA-18E48702DE7F" xml:space="preserve">/*Client must create an instance of the CSIP class. The API used for this is, here TUid must be an application UID.*/
+
+CSIP* CSIP::NewL(const TUid&amp; aUid, MSIPObserver&amp; aObserver); 
+
+/* CSIPManagedProfileRegistry manages SIP profiles and provides functions for adding, updating, or removing profiles at run time. */
+
+iManagedProfileRegistry= CSIPManagedProfileRegistry::NewL(aObserver);
+
+/* CreateL() of CSIPManagedProfileRegistry is used to create a profile with default values. This takes ProfileType as parameter so define a profile type.*/
+
+/*  Profilename */
+    _LIT8( KProfileName, "ims" );
+    
+    // Used to set and get the parameters of the profile
+    CSIPManagedProfile* aProfile = NULL;
+    
+    // Set the profile type , profile name.
+    TSIPProfileTypeInfo typeInfo;
+    typeInfo.iSIPProfileClass = TSIPProfileTypeInfo:: EIms;
+    typeInfo.iSIPProfileName = KProfileName;
+    
+    // Creates the profile of type IETF with default values  
+    aProfile = iManagedProfileRegistry-&gt;CreateL( typeInfo );
+
+    // Set the values in the newly created profile.
+    TUint32 iapId(11);
+    aProfile-&gt;SetParameter(KSIPAccessPointId,iapId);
+    
+            _LIT8(aor,"sip:user@192.168.0.35");
+    aProfile-&gt;SetParameter(KSIPUserAor,aor);
+ 
+// Save the profile
+    iManagedProfileRegistry-&gt;SaveL(*aProfile);
+
+// Wait for EProfileCreated event on the observer.
+</codeblock> </section>
+<section id="GUID-72003F70-79B8-5D23-977D-E736AD3E5B42"><title>Modifying a
+SIP Profile</title> <p>The following steps describe how to modify a SIP profile. </p> <ol id="GUID-AFE64969-68F3-594C-8324-F0943694AB19">
+<li id="GUID-FE7DBAA3-03C5-5CFC-BFB8-C63DDF7AA6A3"><p>The profile is modified
+when you change the profile parameters and save the updated profile to the
+permanent store. </p> </li>
+<li id="GUID-6B61FCF7-C753-534E-BF2D-293FE7A16F6E"><p>When the updated profile
+is saved to the permanent store the application gets the event notification <codeph>EProfileUpdated</codeph>. </p> </li>
+<li id="GUID-614CA2D4-ED93-58A7-B3FC-8F86C3BA3A7C"><p>Depending on the updated
+parameters, the update leads to no actions, to registration or to re-registration.
+The profile is re-registered if it is configured for auto-registration when
+the profile is updated. </p> </li>
+<li id="GUID-9A12EC08-7C67-551E-A7FE-5A114A36F721"><p>The profile must not
+be used by another application while you update the profile. Use the <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita#GUID-5266AB0D-705C-3011-A92B-DA82BC212999/GUID-E6E0D735-28EC-3BFD-8359-68FDC39108EE"><apiname>CSIPManagedProfileRegistry::IsInUseL</apiname></xref> API
+to check if the profile is currently in use. </p> </li>
+</ol> </section>
+<section id="GUID-27B07919-C5D5-5F8A-B2A3-AC2577E19C92"><title>Enabling a
+SIP profile</title> <p>The following steps describe how to enable a SIP profile. </p> <ol id="GUID-1D340099-1F58-5E19-8380-1CC187CB7632">
+<li id="GUID-7E306B08-C5A3-534F-9122-17D81BDAB5C2"><p>A client of the SIP
+Profile API must create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> <p> <b>Note</b>:
+The client must provide an instance of the class <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> to
+create an object of the type <codeph>CSIPProfileRegistry</codeph>. </p> </li>
+<li id="GUID-E8B43A46-B6F0-5466-A039-D0565EAA0895"><p>The client must implement
+the callback functions defined in the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> interface
+to get notified when the status of the profile is changed. </p> </li>
+<li id="GUID-FDB514C2-5B6A-5FB6-AECD-BEF264DD700B"><p>Create an instance of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> using
+a retrieve function of the <xref href="GUID-DDB0FD0C-267F-3AAB-8519-78065180E0BD.dita"><apiname>CSIPPProfileRegistry</apiname></xref> class. </p> </li>
+<li id="GUID-B3B9F1DF-A195-5E37-84BD-2A951C472BC8"><p>The profile parameters
+are read from the getter functions of the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
+<li id="GUID-47997C80-FE84-5FAF-A5A1-E634215BD362"><p>The client can use the
+profile when you enable it through <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> and
+leaves on failure. </p> </li>
+<li id="GUID-FBC081E2-D61E-58DB-9237-6673FB9231E0"><p>The user must check
+the profile status after the <xref href="GUID-93D33C84-8A6B-3A94-9797-1412489323F0.dita"><apiname>EnableL</apiname></xref> function is called.
+If the profile is not registered after this function is called, the user must
+wait until it gets a notification through the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> callback
+interface about the profile registration. </p> </li>
+</ol> <fig id="GUID-9300C461-D490-5E0B-84A6-AD40F95B8DE7">
+<image href="GUID-5C52B6B9-546C-5152-A968-B91CB3D885A0_d0e336267_href.jpg" placement="inline"/>
+</fig> <p>The following code snippet shows how to enable a SIP profile. </p> <codeblock id="GUID-1A52EE02-D6E9-5795-995B-6B5ADFD131B4" xml:space="preserve">
+/*With the assumption that the profile was created and is saved to the persistent storage. */
+//Create an Instance of SIP client
+
+iSip = CSIP::NewL( aAppUid );
+
+//use CSIPProfileRegistry to get the saved profile.
+
+iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
+
+//Retrieve the profiles by the AOR
+
+_LIT8(KAor,"sip:user@10.192.192.43");
+TDesC8 aor(KAor);
+
+RPointerArray&lt;CSIPProfile&gt; profiles;
+
+/* Find and put the matching profiles by the given AOR into the pointer array.
+Returns the set of profiles which has the provided AOR.*/
+
+iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
+
+// Check the profile count. Get the required profile if the count is positive non-zero.
+TInt profile_cnt =   profiles.Count() ;
+iProfile = profiles[0];
+iProfileRegistry-&gt;EnableL( *iProfile, *this );
+
+//Application gets the event EProfileRegistered if the registration is successful. 
+</codeblock> </section>
+<section id="GUID-628DCA48-F8B4-5E6F-AC1B-731EAB1A9D62"><title>Disabling a
+SIP profile</title> <p>The following steps describes how to disable a SIP
+profile. </p> <ul>
+<li id="GUID-8EF332BF-6FD9-50B2-B29C-A24B29B4829D"><p>A client of the SIP
+Profile API must create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object </p> <p> <b>Note</b>:
+The client must provide an instance of the class <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> to
+create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> </li>
+<li id="GUID-0715DDFB-639B-5843-BFC8-75E53D807698"><p>The client must implement
+the callback functions defined in the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> interface
+to get notified with the events when the status of the profile is changed. </p> </li>
+<li id="GUID-8C06A1DB-BAE9-5718-B10D-3D262981B100"><p>Use retrieve function
+of the class <xref href="GUID-DDB0FD0C-267F-3AAB-8519-78065180E0BD.dita"><apiname>CSIPPProfileRegistry</apiname></xref> to create an instance
+of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
+<li id="GUID-4A1D7F52-7146-541C-91AE-E9CB5B8D5DD5"><p>The profile parameters
+are read from the getter functions of the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> </li>
+<li id="GUID-3D2ADA9A-DC9B-501D-B6DA-68BDA1B747FA"><p>Check the registration
+status of the profile that uses the getter functions of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>.
+Disable the profile if it is registered. </p> </li>
+<li id="GUID-E042394C-6AF3-5951-8F26-C4473DBDD143"><p>An application gets
+the notification event <codeph>EProfileDeregistered</codeph> if the de-registration
+is successful, otherwise it leaves. The error is sent to the application through
+the <codeph>ProfileRegistryErrorOccurred</codeph> callback function. </p> </li>
+</ul> <p>The following code snippet shows how to disable a SIP profile. </p> <codeblock id="GUID-40C08581-81ED-5A7E-90D9-36966992191A" xml:space="preserve">/*With the assumption that the profile was created and is saved to the persistent storage. 
+//Create an instance of SIP client
+iSip = CSIP::NewL( aAppUid
+
+/*use CSIPProfileRegistry to get the saved profile.*/
+iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
+
+ /*Retrieve the profiles by the AOR*/
+_LIT8(KAor,"sip:user@10.192.192.43");
+TDesC8 aor(KAor);
+ 
+RPointerArray&lt;CSIPProfile&gt; profiles;
+
+// Find and put the matching profiles by the given AOR into the pointer array
+// Returns the set of profiles which has the provided AOR.
+iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
+
+/* Check the profile count. Get the required profile if the count is positive non-zero.*/
+TInt profile_cnt =   profiles.Count() ;
+iProfile = profiles[0];
+
+// Registered is a bool type variable. Check the registration status of the iProfile. 
+// Registered holds TRUE if it is registered otherwise FALSE
+iProfile-&gt;GetParameter( KSIPProfileRegistered, registered );  
+
+/* If the iProfile is registered ( the Registered variable must hold TRUE for iProfile )*/
+/* Disable API returns KErrNone if the profile was disabled successfully otherwise there is a system-wide error.*/
+CSIPProfileRegistry::Disable(*iProfile)
+</codeblock> </section>
+<section id="GUID-E607BA8F-50CC-5CF6-9D7E-E31319825507"><title>Destroying
+a SIP Profile</title> <p>When you destroy a SIP profile it is permanently
+removed from the permanent storage and it cannot be used. The profile information
+is removed from the <filepath>sipprofiles.dat</filepath> file in Epoc32\winscw\c\private\101F413C. </p> <p>The
+following steps describe how to destroy a SIP profile. </p> <ol id="GUID-04F9358C-2AED-58F7-9404-01A4588590D1">
+<li id="GUID-3E72E3A2-3A3B-5433-8F38-6EB5AE517E50"><p>When the profile is
+destroyed the application gets the event <codeph>EProfileDestroyed</codeph>. </p> </li>
+<li id="GUID-D562B0C1-DC27-5615-AB19-70A978C4AF41"><ul>
+<li id="GUID-EDF14357-0BCB-539C-B569-01F19C02265E"><p>Registered: The removal
+is two-step process, de-register the profile and remove the profile. </p> </li>
+</ul> <ul>
+<li id="GUID-A1EC272B-AF21-572D-B16E-367EF21796BE"><p>De-registered : Removes
+the profile from the permanent storage and the application is notified with
+the event EProfileDestroyed. </p> </li>
+</ul> </li>
+</ol> <p>The following code snippet shows how to disable a profile. </p> <codeblock id="GUID-0784D25C-7AA0-53C1-B386-AC54F072833D" xml:space="preserve">//Function leaves on failure.
+CSIPManagedProfileRegistry::DestroyL(CSIPProfile&amp; aSIPProfile);
+</codeblock> </section>
+<section id="GUID-EABE2455-4D59-58AE-8D02-24FD4A7A82B1"><title>Retrieving
+a profile</title> <p><b>Retrieving a default profile</b> </p> <p>The following
+code snippet shows how to retrieve the default profile. </p> <codeblock id="GUID-3D64A865-38B6-539F-8C6B-CE10996B24A3" xml:space="preserve">// Retrieving a default profile.
+CSIPProfile* profile = iProfileRegistry-&gt;DefaultProfileL();
+
+// When a client retrieves a profile, its ownership is transferred to that client, so it becomes responsible 
+// for deleting the instances when they are no longer needed.
+
+delete profile;
+</codeblock> <p><b>Retrieving profiles by type</b> </p> <p>The following code
+snippet shows how to retrieve profiles by type. </p> <codeblock id="GUID-26097346-72B3-51A9-ABB3-37B8B138B28D" xml:space="preserve">// To retrieve more than one profile, the client must create
+// an RPointerArray object to holding pointers to instances of CSIPProfile.
+
+RPointerArray&lt;CSIPProfile&gt; profiles;
+
+// The wanted type is defined using a variable of type TSIPProfileTypeInfo.
+
+TSIPProfileTypeInfo type;
+type.iSIPProfileClass = TSIPProfileTypeInfo::EInternet;
+type.iSIPProfileName = _L8("IETF");
+
+// Profiles matching a given type are returned in the array.
+iProfileRegistry-&gt;ProfilesL(type, profiles);
+...
+// When a client retrieves a profile, its ownership is transferred to that
+// client, so it becomes responsible for deleting the instances when they are
+// no longer needed.
+profiles.ResetAndDestroy();
+</codeblock> <p><b>Retrieving profiles by matching an AOR</b> </p> <p>The
+following code snippet shows how to retrieve profiles by matching an AOR. </p> <codeblock id="GUID-71C88079-A622-5C95-B6C4-91066E99D021" xml:space="preserve">// To retrieve more than one profile, the client must create
+// an RPointerArray object to hold pointers to instances of CSIPProfile.
+RPointerArray&lt;CSIPProfile&gt; profiles;
+
+// Profiles matching a given AOR are returned in the array.
+iProfileRegistry-&gt;ProfilesL(_L8( "sip:jane.doe@foo.com" ), profiles );
+...
+
+// When a client retrieves a profile, its ownership is transferred to that
+// client, so it becomes responsible for deleting the instances when they are no longer needed.
+profiles.ResetAndDestroy();
+</codeblock> </section>
+<section><title>Getting the registration events</title> <p>The following code
+snippet shows how to get the registration events for different scenarios. </p> <codeblock id="GUID-4BCCE827-AD41-5DB0-A71F-611F1DF4BE25" xml:space="preserve">// A callback function, which must be implemented by the client, is called when the registration status 
+of a profile owned by the client is changed.
+
+void CMySIPClient:: ProfileRegistryEventOccurred(TUint32 aProfileId,
+MSIPProfileRegistryObserver::TEvent aEvent)
+  {
+  iProfileId = aProfileId;
+  switch(aEvent)
+    {
+    case EProfileCreated:
+      {
+      iEventId = EAdded;
+      break;
+      }
+    case EProfileUpdated:
+      {
+      iEventId = EUpdated;
+      break;
+      }
+    case EProfileRegistered:
+      {
+      iEventId = CMySIPClient::ERegistered;
+      break;
+      }
+    case EProfileDeregistered:
+      {
+      iEventId = CMySIPClient::EDeregistered;
+      break;
+      }
+    case EProfileDestroyed:
+      {
+      iEventId = ERemoved;
+      break;
+      }
+    default:
+      break;
+    }
+}</codeblock> </section>
+<section id="GUID-471F4EBB-2FE4-561D-9B74-555061797C45"><title>Refreshing
+a SIP profile</title> <p>The SIP profile can use either WLAN or GPRS connections
+to register to the SIP server. In case of WLAN, a registered SIP profile changes
+its state to an unregistered state when the handset is out of WLAN coverage.
+On re-entering the WLAN zone, the WLAN automatically scans to identify the
+available access points and then the SIP profile is automatically registered
+back with the server. This process is time consuming and is not efficient.
+So, the client uses the <xref href="GUID-1AEB6899-9942-3BBC-9ABA-8C0ACFCE3174.dita"><apiname>RefreshEnableL()</apiname></xref> function to: </p> <ul>
+<li id="GUID-A19E0054-71CA-55A4-BF75-9481189D81DC"><p>Initiate the SIP registration
+automatically. </p> </li>
+<li id="GUID-E42A6C7C-0238-5C33-9CDA-4691801D8E04"><p>Reduce the response
+time for the SIP registration. </p> </li>
+<li id="GUID-54F38CF7-D29D-5D30-954E-D7DD88D6B022"><p>Improve the efficiency
+of the application using the SIP stack during registration. </p> </li>
+</ul> <p>The <xref href="GUID-D5A82B9C-A86E-318F-85D7-B9DC69968DB0.dita"><apiname>RefreshEnableL</apiname></xref> API refreshes the connection
+on the used access point if it is not active. Refresh enabling a profile means
+that the user has enabled the profile but is unregistered because of a connection
+loss. For example, in a WLAN network, a connection refresh request to the
+bearer monitor starts the WLAN scanning if it is stopped. When the Connection
+Active notification is received, the stack automatically registers the profile
+and gives a notification to the client with the event <xref href="GUID-F78ECFEB-441F-3D55-9909-A3F82F738F7E.dita"><apiname>EProfileRegistered</apiname></xref> through
+the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. </p> <p>To refresh enable
+a profile, do the following steps: </p> <ul>
+<li id="GUID-221E3B9E-86DF-5200-ADA6-55E724688028"><p>Start the SIP Profile
+server. </p> </li>
+<li id="GUID-59833E8F-9619-5C72-8891-2E2D63B6B8CF"><p>Fetch the profile that
+must be refresh enabled from the SIP Profile Server. </p> <ul>
+<li id="GUID-0C52D86D-3ADA-5D6D-AEC5-07D1554A9C11"><p>If the profile is not
+Enabled the <xref href="GUID-E72E5C9A-ADAE-346A-8EF9-DACD7D23F318.dita"><apiname>RefreshEnable</apiname></xref> API leaves with <codeph>KErrArgument</codeph> error. </p> </li>
+<li id="GUID-EFC454B5-6F99-58A3-B3ED-9983DE0C1A4E"><p>If the profile is Enabled
+and in a Registered state then the API leaves with <codeph>KErrAlreadyExists</codeph> error. </p> </li>
+<li id="GUID-6B5728C4-F42C-5208-A6E4-1AF5641A13E3"><p>If the profile is Enabled
+and in an Unregistered state then the <xref href="GUID-E72E5C9A-ADAE-346A-8EF9-DACD7D23F318.dita"><apiname>RefreshEnable</apiname></xref> API
+refreshes the connection through <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-956F2ADC-40D6-3C15-949A-80789DF04550"><apiname>CSIPConnection::RefreshConnection()</apiname></xref> API.
+The profile receives notification about the active connection and it automatically
+registers again and sends <xref href="GUID-F78ECFEB-441F-3D55-9909-A3F82F738F7E.dita"><apiname>EProfileRegistered</apiname></xref> event to the
+application. </p> </li>
+</ul> </li>
+<li id="GUID-9CA4CA87-17C7-54D0-AEAF-F415DA5D934E"><p>A REGISTER request sent
+to the registrar server. </p> </li>
+<li id="GUID-FF40934C-588D-5ED6-8041-410103FB6D53"><p>The registration status
+of the profile is set to Registered. </p> </li>
+</ul> <p>The following sequence diagram shows how to enable a profile to refresh. </p> <fig id="GUID-5EF1953C-E56D-59C2-B443-F1B77DD7E73D">
+<image href="GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e336582_href.jpg" placement="inline"/>
+</fig> <p>The following code describes how to refresh enable a profile. </p> <codeblock id="GUID-1A13F3D3-C4B7-50E5-B5AF-F0CABF02758C" xml:space="preserve">//Checks if the profile is already enabled and requests the Profile Agent to refresh it.
+// If the profile is not enabled it leaves with KErrArgument. 
+
+void RefreshEnableL(CSIPProfile&amp; aSIPProfile, MSIPConnectionObserver&amp; aObserver)
+</codeblock> </section>
+<section id="GUID-289B2BF5-AF58-5E1E-B905-F1255EFC7FEB"><title>Stopping SIP
+registration</title> <p>In a setup, where there is no registrar, the SIP stack
+tries to send REGISTER messages to the network for at least 3 minutes and
+reserves the access point usage. During these 3 minutes the client cannot
+use another WLAN access point without destroying the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p>The <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API
+of the SIP stack stops all registration attempts and releases the access point.
+The <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API in the profile agent module improves
+the responsiveness of the applications using the SIP stack. It avoids situations
+where an application is waiting for the SIP stack to complete a registration
+procedure. </p> <p>To use the <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API the application
+must have Network Control capability. If the application does not have Network
+Control capability and invokes the <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API, then
+it receives <codeph>ErrPermissionDenied (-46</codeph>) error. Sending a <xref href="GUID-A36FEEBB-C9E1-3C99-9B9E-09C7530F31C4.dita"><apiname>ForceDisable</apiname></xref> API
+does not force the SIP stack to send any message to the network, instead it
+destroys the SIP transaction for that profile and cleans all the resources
+associated with that profile. The Profile Agent also notifies all the observers
+with the event <xref href="GUID-1B01576C-59DC-3958-9631-3094ED0DB46D.dita"><apiname>EProfileForciblyDisabled</apiname></xref>. </p> <p>The following
+code describes how to forcibly disable a profile. </p> <codeblock id="GUID-3D1556EB-AD13-5640-8104-83D08BF0D207" xml:space="preserve">// With the assumption that the profile is created and is saved to the persistent storage create an instance of the SIP client
+iSip = CSIP::NewL( aAppUid );
+
+// Use CSIPProfileRegistry to get the saved profile.
+iProfileRegistry = CSIPProfileRegistry::NewL(*iSip, *this);
+
+// Retrieve the profiles by the AOR
+_LIT8(KAor,"sip:user@10.192.192.43");
+TDesC8 aor(KAor); 
+RPointerArray&lt;CSIPProfile&gt; profiles;
+
+// Find and add the matching profiles by the given AOR into the pointer array
+// Returns the set of profiles which has the provided AOR.
+iProfileRegistry-&gt;ProfilesL(KAor,profiles); 
+
+// Check the profile count. Get the required profile if the count is positive non-zero.
+TInt profile_cnt =   profiles.Count() ;
+iProfile = profiles[0];
+
+// If the iProfile is registered (the Registered variable must hold TRUE for iProfile)
+// Disable API returns KErrNone if the profile is disabled successfully otherwise there is a system-wide error.
+CSIPProfileRegistry::ForceDisable(*iProfile);</codeblock> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e271965_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e275646_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e107601_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e114139_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07" xml:lang="en"><title>HybridApp:
-Demonstrating P.I.P.S. Hybrid Applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This example shows how to develop P.I.P.S. hybrid applications. The example
-uses both pure C and native Symbian C++ APIs. </p>
-<section id="GUID-86E4C6CB-3C8C-43D5-A536-706209E6AE95"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-5a0c76f0-30fe-4695-af85-4dbb6b05e42e.zip" scope="external">HybridApp.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-5a0c76f0-30fe-4695-af85-4dbb6b05e42e.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-EDB901A4-0601-442C-8B2D-1FAF7822CFD6"><title>Description</title> <p>This example displays the memory information
-of all available drives of the system. As P.I.P.S. APIs cannot be used to
-access these drives, native Symbian C++ APIs are used. The <codeph>RFs::Drive()</codeph> and <codeph>RFs::Volume()</codeph> APIs
-are used to access the drives and get their memory information. </p> <p>It
-displays the drive information by using the standard Input/Output functions
-defined in P.I.P.S. libraries. The <codeph>DescToChar()</codeph> function
-defined in the example converts the native Symbian descriptor strings to C
-strings. As the drive name is stored in a descriptor, the example uses this
-function to convert it to a C string. </p> </section>
-<section id="GUID-3729BF6B-2B80-46FC-B5D6-AD59BB378236"><title>Build</title> <p>The following statements are present in all
-the <filepath>.mmp</filepath> files of the example: </p> <codeblock id="GUID-4B6DD4ED-6044-5294-A2A1-91CFCD3FFE31" xml:space="preserve">SYSTEMINCLUDE epoc32\include\stdapis
-LIBRARY libc.lib
-STATICLIBRARY libcrt0.lib</codeblock> <p> <b>Note:</b> You require these statements
-because of the following reasons: </p> <ul>
-<li id="GUID-90620295-032C-5057-9D1D-04064322C0A6"><p>The <filepath>epoc32\include\stdapis</filepath> directory
-contains header files such as, <filepath>stdio.h</filepath>, <filepath>unistd.h</filepath> and
-so on that are required to build an Open Environment application. </p> </li>
-<li id="GUID-3CC12EEF-4472-5782-A1F0-81B576B99249"><p>The <filepath>libc.lib</filepath> file
-contains the definitions of all functions that are defined in the header files
-associated with this example. </p> </li>
-<li id="GUID-CADEFC9F-45F6-5E13-8336-6EC6457A102E"><p>The <filepath>libcrt0.lib</filepath> file
-provides the <codeph>E32Main()</codeph> function, which is the entry point
-for the <codeph>main()</codeph> function of the example. </p> </li>
-</ul> <p> <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The Symbian
-build process</xref> describes how to build this example. </p> <p>For
-the emulator, the example builds an executable file called <filepath>hybridapp.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> directory. </p> </section>
-</conbody><related-links>
-<link href="GUID-38BE7105-309E-5372-98EE-BCA0ADD0ACBA.dita"><linktext>Hybrid Applications</linktext>
-</link>
-<link href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita"><linktext>Build Process</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07" xml:lang="en"><title>HybridApp: Demonstrating P.I.P.S. Hybrid Applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example shows how to develop P.I.P.S. hybrid applications.
+The example uses both pure C and native Symbian C++ APIs. </p>
+<section id="GUID-86E4C6CB-3C8C-43D5-A536-706209E6AE95"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-5a0c76f0-30fe-4695-af85-4dbb6b05e42e.zip" scope="external">HybridApp.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-5a0c76f0-30fe-4695-af85-4dbb6b05e42e.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-EDB901A4-0601-442C-8B2D-1FAF7822CFD6"><title>Description</title> <p>This example displays the memory information of all available
+drives of the system. As P.I.P.S. APIs cannot be used to access these
+drives, native Symbian C++ APIs are used. The <codeph>RFs::Drive()</codeph> and <codeph>RFs::Volume()</codeph> APIs are used to access the drives
+and get their memory information. </p> <p>It displays the drive information
+by using the standard Input/Output functions defined in P.I.P.S. libraries.
+The <codeph>DescToChar()</codeph> function defined in the example
+converts the native Symbian descriptor strings to C strings. As the
+drive name is stored in a descriptor, the example uses this function
+to convert it to a C string. </p> </section>
+<section id="GUID-3729BF6B-2B80-46FC-B5D6-AD59BB378236"><title>Build</title> <p>The following statements are present in all the <filepath>.mmp</filepath> files of the example: </p> <codeblock id="GUID-4B6DD4ED-6044-5294-A2A1-91CFCD3FFE31" xml:space="preserve">SYSTEMINCLUDE epoc32\include\stdapis
+LIBRARY libc.lib
+STATICLIBRARY libcrt0.lib</codeblock> <p> <b>Note:</b> You require
+these statements because of the following reasons: </p> <ul>
+<li id="GUID-90620295-032C-5057-9D1D-04064322C0A6"><p>The <filepath>epoc32\include\stdapis</filepath> directory contains header files
+such as, <filepath>stdio.h</filepath>, <filepath>unistd.h</filepath> and so on that are required to build an Open Environment application. </p> </li>
+<li id="GUID-3CC12EEF-4472-5782-A1F0-81B576B99249"><p>The <filepath>libc.lib</filepath> file contains the definitions of all functions
+that are defined in the header files associated with this example. </p> </li>
+<li id="GUID-CADEFC9F-45F6-5E13-8336-6EC6457A102E"><p>The <filepath>libcrt0.lib</filepath> file provides the <codeph>E32Main()</codeph> function, which is the entry point for the <codeph>main()</codeph> function of the example. </p> </li>
+</ul> <p> <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. </p> <p>For the emulator, the example builds an executable
+file called <filepath>hybridapp.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb
+or urel&gt;\</filepath> directory. </p> </section>
+</conbody><related-links>
+<link href="GUID-38BE7105-309E-5372-98EE-BCA0ADD0ACBA.dita"><linktext>Hybrid
+Applications</linktext></link>
+<link href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita"><linktext>Build
+Process</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD"><title>Multimedia Framework Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces the Multimedia Framework (MMF) audio and video client interfaces. </p> <section id="GUID-BD6B3BA5-498F-5F8F-96CA-24B0412B63EE"><title>Purpose</title> <p>Multimedia Framework (MMF) provides several client interfaces that encapsulate a lightweight plugin framework. These interfaces enable you to manipulate the audio and video features of the Symbian platform. </p> </section> <section><title>Architectural Relationships</title> <p>The following diagram shows how the MMF client interfaces interact with the Multimedia Controller Framework and the Media Device Framework (MDF). </p> <fig id="GUID-2B9D4325-D2CA-5436-BAC4-24D6366B96C9"><title>
-             Multimedia Framework - client utilities 
-          </title> <image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312384_href.png" placement="inline"/></fig> <p><b>MMF Controller Framework</b> </p> <p>The MMF Controller Framework provides support for multimedia plugins within the Symbian platform. The main type of plugin for the MMF Controller Framework is the controller plugin. Each controller plugin provides support for one or more multimedia formats, for example, MP3 or AVI. </p> <p> <b>Note:</b> In addition to controller plugins, the Multimedia framework can also be extended through format encoder/decoder, codec, and sink/source plugins. For more information about plugins, see <xref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita">How to write Multimedia Framework plugins</xref>. </p> <p>The player and recorder interfaces of both audio and video and also the audio converter interface use the controller plugins provided by the MMF Controller Framework. These plugins provide the functionality to convert, interpret, and play audio and video data. The resultant data from the plugins can then be directed to one or more sinks such as a file, or directly to a screen or lower level device driver. </p> <p>The video recorder interface can also interact with the Onboard Camera, through a video controller plugin, to capture video. For more information about capturing video, see <xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Video Capture Tutorial</xref>. </p> <p> <b> Note:</b> Tone player and audio streaming are also provided as part of the MMF but do not interact with controller plugins. Input and output is already in a known data format and so does not require a plugin for encoding or decoding. As a result, they bypass the MMF Controller Framework. </p> <p><b>Media Device Framework</b> </p> <p>Media Device Framework is the layer below the controller plugins and above the hardware. It provides a layer of abstraction for the audio and video hardware. The MDF consists of DevSound, for audio input and output, and DevVideo for video. </p> <p>For more information about DevSound, see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. For more information about DevVideo, see <xref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita">DevVideo Overview</xref>. </p> <p><b>DRM Support</b> </p> <p>The Symbian platform provides support for playback of Digital Rights Management (DRM) protected audio and video content by making use of the Content Access Framework (CAF). For more information about the CAF, see <xref href="GUID-7EE46FD9-DC9E-5C1F-9AC5-48F5212AF0CA.dita">Content Access Framework</xref>. </p> <p> <b> Note:</b> In order to access any DRM protected content using Symbian multimedia, the client process must have the DRM capability. </p> </section> <section><title>Description</title> <p>The features made available by the MMF client interfaces are: </p> <ul><li id="GUID-DE436989-1892-5D7E-94A8-AC37E2E90B9F"><p>Audio playing, recording, and conversion - An interface consisting of three classes; <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>, <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, and <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>. These classes provide methods to create, play, and manipulate audio data stored in files, descriptors, and URLs. </p> </li> <li id="GUID-3A1A5D7D-376D-5633-AD78-D19D0B771A41"><p>Audio streaming - An interface consisting of two classes; <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> and <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>. These classes provide methods for recording and playing audio streams such as audio from a web address. </p> <p> <b> Note:</b> There are no explicit interfaces for video streaming. However, the Onboard Camera can be used to achieve video input streaming, and direct screen access can be used to achieve video output streaming. For more information about the Onboard Camera, see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref>. </p> </li> <li id="GUID-0F2716B1-3D7A-5A18-B84C-5BBB9354F1AB"><p>Tone playing - An interface consisting of a single class <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>. This class provides methods for playing and configuring single and sequenced tones as well as DTMF (Dual Tone Multi-Frequency) strings. </p> </li> <li id="GUID-279F8A4B-6D73-5F87-8424-371DE1C01A9F"><p>Video playing and recording - An interface consisting of two classes <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref>. These classes provide methods to create, play, and manipulate video clips with or without audio tracks stored in files, descriptors, and URLs. </p> </li> </ul> <p><b>Observer Classes</b> </p> <p>For each multimedia client interface, there is a corresponding mixin class that must be implemented by the client. For example, to use the audio player utility you must implement the observer mixin class <xref href="GUID-5CD5C032-68A4-3024-85EF-B073C8284D6E.dita"><apiname>MMdaAudioPlayerCallback</apiname></xref>. </p> <p>When instantiating any of the MMF interfaces, it is necessary to provide a reference to a class that implements the appropriate mixin class. This allows the MMF to notify the client of events that occur and also to notify the client of errors that may occur. </p> </section> <section><title>Multimedia Framework Tutorials</title> <p>The following tutorials are provided: </p> <ul><li id="GUID-D746F0B6-9861-50BE-BA03-B60BC42E6358"><p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio convert utility</xref>  </p> </li> <li id="GUID-390F4725-144B-51A4-86CE-B1EC8D27BF78"><p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use the audio record utility</xref>  </p> </li> <li id="GUID-D26F4157-1EA7-526B-B847-07D08D92B1FA"><p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player utility</xref>  </p> </li> <li id="GUID-9F9651A0-383F-5171-AAF0-355327361C25"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input Stream Tutorial</xref>  </p> </li> <li id="GUID-7C271F01-7479-5727-88F3-F028219A579C"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita">Audio Output Stream Tutorial</xref>  </p> </li> <li id="GUID-816AB33E-AE82-59AC-941D-70C1BE4E8120"><p><xref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita">Video Client Tutorials</xref>  </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita">Audio Client Overview</xref>  </p> <p><xref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita">Audio Input Stream Overview</xref>  </p> <p><xref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita">Audio Output Stream Overview</xref>  </p> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD"><title>Multimedia Framework Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces the Multimedia Framework (MMF) audio and video client interfaces. </p> <section id="GUID-BD6B3BA5-498F-5F8F-96CA-24B0412B63EE"><title>Purpose</title> <p>Multimedia Framework (MMF) provides several client interfaces that encapsulate a lightweight plugin framework. These interfaces enable you to manipulate the audio and video features of the Symbian platform. </p> </section> <section><title>Architectural Relationships</title> <p>The following diagram shows how the MMF client interfaces interact with the Multimedia Controller Framework and the Media Device Framework (MDF). </p> <fig id="GUID-2B9D4325-D2CA-5436-BAC4-24D6366B96C9"><title>
+             Multimedia Framework - client utilities 
+          </title> <image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e306369_href.png" placement="inline"/></fig> <p><b>MMF Controller Framework</b> </p> <p>The MMF Controller Framework provides support for multimedia plugins within the Symbian platform. The main type of plugin for the MMF Controller Framework is the controller plugin. Each controller plugin provides support for one or more multimedia formats, for example, MP3 or AVI. </p> <p> <b>Note:</b> In addition to controller plugins, the Multimedia framework can also be extended through format encoder/decoder, codec, and sink/source plugins. For more information about plugins, see <xref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita">How to write Multimedia Framework plugins</xref>. </p> <p>The player and recorder interfaces of both audio and video and also the audio converter interface use the controller plugins provided by the MMF Controller Framework. These plugins provide the functionality to convert, interpret, and play audio and video data. The resultant data from the plugins can then be directed to one or more sinks such as a file, or directly to a screen or lower level device driver. </p> <p>The video recorder interface can also interact with the Onboard Camera, through a video controller plugin, to capture video. For more information about capturing video, see <xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Video Capture Tutorial</xref>. </p> <p> <b> Note:</b> Tone player and audio streaming are also provided as part of the MMF but do not interact with controller plugins. Input and output is already in a known data format and so does not require a plugin for encoding or decoding. As a result, they bypass the MMF Controller Framework. </p> <p><b>Media Device Framework</b> </p> <p>Media Device Framework is the layer below the controller plugins and above the hardware. It provides a layer of abstraction for the audio and video hardware. The MDF consists of DevSound, for audio input and output, and DevVideo for video. </p> <p>For more information about DevSound, see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. For more information about DevVideo, see <xref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita">DevVideo Overview</xref>. </p> <p><b>DRM Support</b> </p> <p>The Symbian platform provides support for playback of Digital Rights Management (DRM) protected audio and video content by making use of the Content Access Framework (CAF). For more information about the CAF, see <xref href="GUID-7EE46FD9-DC9E-5C1F-9AC5-48F5212AF0CA.dita">Content Access Framework</xref>. </p> <p> <b> Note:</b> In order to access any DRM protected content using Symbian multimedia, the client process must have the DRM capability. </p> </section> <section><title>Description</title> <p>The features made available by the MMF client interfaces are: </p> <ul><li id="GUID-DE436989-1892-5D7E-94A8-AC37E2E90B9F"><p>Audio playing, recording, and conversion - An interface consisting of three classes; <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>, <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, and <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>. These classes provide methods to create, play, and manipulate audio data stored in files, descriptors, and URLs. </p> </li> <li id="GUID-3A1A5D7D-376D-5633-AD78-D19D0B771A41"><p>Audio streaming - An interface consisting of two classes; <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> and <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>. These classes provide methods for recording and playing audio streams such as audio from a web address. </p> <p> <b> Note:</b> There are no explicit interfaces for video streaming. However, the Onboard Camera can be used to achieve video input streaming, and direct screen access can be used to achieve video output streaming. For more information about the Onboard Camera, see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref>. </p> </li> <li id="GUID-0F2716B1-3D7A-5A18-B84C-5BBB9354F1AB"><p>Tone playing - An interface consisting of a single class <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>. This class provides methods for playing and configuring single and sequenced tones as well as DTMF (Dual Tone Multi-Frequency) strings. </p> </li> <li id="GUID-279F8A4B-6D73-5F87-8424-371DE1C01A9F"><p>Video playing and recording - An interface consisting of two classes <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref>. These classes provide methods to create, play, and manipulate video clips with or without audio tracks stored in files, descriptors, and URLs. </p> </li> </ul> <p><b>Observer Classes</b> </p> <p>For each multimedia client interface, there is a corresponding mixin class that must be implemented by the client. For example, to use the audio player utility you must implement the observer mixin class <xref href="GUID-5CD5C032-68A4-3024-85EF-B073C8284D6E.dita"><apiname>MMdaAudioPlayerCallback</apiname></xref>. </p> <p>When instantiating any of the MMF interfaces, it is necessary to provide a reference to a class that implements the appropriate mixin class. This allows the MMF to notify the client of events that occur and also to notify the client of errors that may occur. </p> </section> <section><title>Multimedia Framework Tutorials</title> <p>The following tutorials are provided: </p> <ul><li id="GUID-D746F0B6-9861-50BE-BA03-B60BC42E6358"><p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio convert utility</xref>  </p> </li> <li id="GUID-390F4725-144B-51A4-86CE-B1EC8D27BF78"><p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use the audio record utility</xref>  </p> </li> <li id="GUID-D26F4157-1EA7-526B-B847-07D08D92B1FA"><p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player utility</xref>  </p> </li> <li id="GUID-9F9651A0-383F-5171-AAF0-355327361C25"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input Stream Tutorial</xref>  </p> </li> <li id="GUID-7C271F01-7479-5727-88F3-F028219A579C"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita">Audio Output Stream Tutorial</xref>  </p> </li> <li id="GUID-816AB33E-AE82-59AC-941D-70C1BE4E8120"><p><xref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita">Video Client Tutorials</xref>  </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita">Audio Client Overview</xref>  </p> <p><xref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita">Audio Input Stream Overview</xref>  </p> <p><xref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita">Audio Output Stream Overview</xref>  </p> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6EF9F8EA-AD61-4AEA-9457-FE645EED2E4D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6EF9F8EA-AD61-4AEA-9457-FE645EED2E4D" xml:lang="en"><title>Keypad
-functions</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the typical keypad functions. <note>Some
-application-specific functions may exist in addition to the typical keypad
-functions.</note></p>
-<section id="GUID-7F0389D7-4FEC-4F46-8667-B933CC19AE7D"><title>Using
-keypad functions in C++ applications</title><p>For implementation information
-on keypad functions, see <xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">Key
-events</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,39 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF" xml:lang="en"><title>Setting
-the title pane touch observer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To set the title pane touch observer:</p>
-<ol>
-<li id="GUID-D0B16DD2-3848-4988-843E-17A3E21FE916"><p>Provide an observer
-class that implements the <codeph>MaknTitlePaneObserver</codeph> interface. </p><codeblock xml:space="preserve">class MyTitlePaneObserver : public MAknTitlePaneObserver
-    {
-public:
-    void HandleTitlePaneEventL( TInt aEventID );
-    };
-</codeblock></li>
-<li id="GUID-0C78F9B0-EA40-497F-BF91-783C77873128"><p>Get a pointer to the
-title pane via the status pane pointer.</p><codeblock xml:space="preserve">iStatusPane = static_cast&lt;CAknAppUi*&gt;( CEikonEnv::Static()-&gt; EikAppUi() )-&gt;StatusPane();
-if( !iStatusPane )
-    {
-    User::Leave( KErrNotFound );
-    }
- 
-iTitlePane = ( CAknTitlePane* )iStatusPane-&gt;ControlL( TUid::Uid( EEikStatusPaneUidTitle ) );
-if( !iTitlePane )
-    {
-    User::Leave( KErrNotFound );
-    }
-</codeblock></li>
-<li id="GUID-E486893E-7AFD-42DF-B459-EBAD38EE8BDC"><p>Set the observer using
-the <codeph>SetTitlePaneObserver</codeph> method.</p><codeblock xml:space="preserve">iTitlePane-&gt;SetTitlePaneObserver( this );</codeblock></li>
-</ol>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF" xml:lang="en"><title>Setting
+the title pane touch observer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To set the title pane touch observer:</p>
+<ol>
+<li id="GUID-D0B16DD2-3848-4988-843E-17A3E21FE916"><p>Provide an observer
+class that implements the <codeph>MaknTitlePaneObserver</codeph> interface. </p><codeblock xml:space="preserve">class MyTitlePaneObserver : public MAknTitlePaneObserver
+    {
+public:
+    void HandleTitlePaneEventL( TInt aEventID );
+    };
+
+{
+    switch( TAknTitlePaneEvents )
+        {
+         case EAknTitlePaneTapped:
+              ...
+              break;
+
+         default
+              break;
+}</codeblock></li>
+<li id="GUID-0C78F9B0-EA40-497F-BF91-783C77873128"><p>Get a pointer to the
+title pane via the status pane pointer.</p><codeblock xml:space="preserve">iStatusPane = static_cast&lt;CAknAppUi*&gt;( CEikonEnv::Static()-&gt; EikAppUi() )-&gt;StatusPane();
+if( !iStatusPane )
+    {
+    User::Leave( KErrNotFound );
+    }
+ 
+iTitlePane = ( CAknTitlePane* )iStatusPane-&gt;ControlL( TUid::Uid( EEikStatusPaneUidTitle ) );
+if( !iTitlePane )
+    {
+    User::Leave( KErrNotFound );
+    }
+</codeblock></li>
+<li id="GUID-E486893E-7AFD-42DF-B459-EBAD38EE8BDC"><p>Set the observer using
+the <codeph>SetTitlePaneObserver</codeph> method.</p><codeblock xml:space="preserve">iTitlePane-&gt;SetTitlePaneObserver( this );</codeblock></li>
+</ol>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,353 +1,373 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Arbortext, Inc., 1988-2004, v.4002-->
-<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
- "concept.dtd">
-<!-- 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" 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: 
--->
-<concept id="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F" xml:lang="en"><title>What's
-new in Symbian^3</title>
-<shortdesc>Symbian^3 introduces a lot of new features that enhance communication,
-connectivity, multimedia, graphics, security and the overall usability of
-Symbian devices. These features benefit operators, application developers
-and device creators by making it easier to create feature-rich devices and
-applications.</shortdesc>
-<prolog>
-<metadata>
-<keywords></keywords>
-</metadata>
-</prolog>
-<conbody>
-<p>If you are moving from a older version of Symbian platform to Symbian^3,
-see <xref href="GUID-BA0A115B-068C-4257-9489-DF35DF633AD2.dita">Porting applications
-to Symbian^3</xref>.</p>
-<table id="GUID-2FD9A877-1A75-4ADD-8B9A-B2FA4A9EB7C4-GENID-1-4-1-1-5-1-3-2">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.42*"/><colspec colname="col2"
-colwidth="1.58*"/>
-<thead>
-<row>
-<entry>Technology Domain</entry>
-<entry>New Features</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>Data Communications</entry>
-<entry><ul>
-<li><p><b>FreeWay or Three Plane Comms Architecture:</b> The Symbian platform
-now supports a new IP networking architecture. The new architecture significantly
-improves data flow performance and makes it easier for third-party developers
-to integrate new technologies, for example firewalls and hotspot authenticators.
-It also implements automatic roaming between different access points, for
-example WLAN and GPRS. For more information, see <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita">Goals
-of the Comms Architecture</xref>.</p></li>
-<li><p><b>One-Click Connectivity (OCC):</b> The Symbian platform now provides
-a new way of managing data connections on the Symbian platform. OCC builds
-on the existing Application Level Roaming (ALR) solution. This feature makes
-the user's interaction with "connecting" and "select access point" dialogs
-significantly simple and easier. </p> </li>
-</ul></entry>
-</row>
-<row>
-<entry>Device Connectivity</entry>
-<entry><ul>
-<li><p><b>USB On-The-Go (OTG):</b> The Symbian platform now supports the On-The-Go
-(OTG) supplement to the USB 2.0 Specification, Revision 1.3. This enables
-support for USB mass storage and audio devices on a Symbian device. </p></li>
-<li><p><b>MTP Improvements:</b> The Symbian MTP implementation now supports
-Windows 7, MTP over Bluetooth, Ethernet RNDIS and also new content formats.</p></li>
-<li><p><b>AVRCP (Audio/Video Remote Control Profile) v1.4 Support:</b> A Symbian
-device user can now see music track names and browse playlists directly from
-the screen of a AVRCP v1.4 enabled Bluetooth headset or remote control.</p></li>
-<li><p><b>Centralized AT-command Handling:</b> The Symbian platform now enables
-all AT commands to be handled using the same mechanism regardless of the connection
-type. For more information, refer to the <b>AT Extension Plug-in API</b>.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry>Device Management</entry>
-<entry><ul>
-<li><p><b>Support for Open Mobile Alliance (OMA) Management Objects (MO):</b> The
-Symbian platform now supports OMA MO like Software Component Management Object
-(SCOMO) v1.0, Device Capability Management Object (DCMO) v1.0 and Connectivity
-Management Object (ConnMO). It also supports Nokia Standard Streaming MO.
-Some enhancements have been made to Browser MO and Email MO.</p></li>
-<li><p><b>Other Device Management Enhancements:</b> The Symbian platform now
-provides an improved device Lock with security and an enhanced firmware update
-installation experience.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry>Location</entry>
-<entry align="justify"><ul>
-<li><p><b>Landmark-based URL Parser:</b> The Symbian platform now supports
-a parser that converts between landmark objects and URLs. The parser supports
-a URL format that is compliant with Ovi Maps. For more information, see <xref
-href="GUID-5809B26D-9AF9-394A-8FA6-6BB199DC6342.dita"><apiname>CPosLandmarkParser</apiname></xref>.</p></li>
-<li><p><b>New Management Object (MO) for A-GPS:</b>  The Symbian platform
-now provides an enhancement to Secure User Plane Location (SUPL) now allows
-the service provider to provide two access points for a SUPL server in the
-MO. This improves the system stability because it acts as a fallback mechanism
-in case one of the access points is unavailable.</p></li>
-<li><p><b>Support for Application Processor Engine (APE) Centric Location
-Architecture:</b> Symbian devices can now use the new architecture based on
-the APE that offers standardized session IDs on network privacy and classes
-that use the SUPL. The architecture converges technology from OS, middleware
-and application software layers.</p></li>
-<li><p><b>Support for Location Based Services (LBS) SUPL Positioning Module
-(PSY):</b> The Symbian platform now enables the LBS SUPL PSY to allow GPS-enabled
-devices to handle network-based SUPL location requests. This includes Cell
-ID based positioning and assistance data exchange as part of SUPL v2.0.</p></li>
-<li><p><b>Support for GPSCost5.0D and GPSCost4.0D GPS chipsets:</b> The Symbian
-platform now uses the APE-centric architecture to support GPSCost5.0D and
-GPSCost4.0D chipsets. A new A-GPS Nokia Positioning Engine (NPE) integration
-module replaces the OS LBS subsystem reference A-GPS version.</p></li>
-<li><p><b>Support for LBS SUPL Radio Resource LCS Protocol (RRLP):</b> The
-Symbian platform now uses the APE-centric architecture to support NPE and
-RRLP on GPS-enabled device.</p></li>
-<li><p><b>SUPL 2.0 Trigger Support:</b> The Symbian platform now provides
-SUPL 2.0 trigger support that allows the requester to receive location updates
-periodically, which is both network and device initiated.</p></li>
-<li><p><b>Location-based Triggering Enhancements:</b> The Symbian platform
-now includes key enhancements that enable integration with an Context framework
-to develop plug-ins and increase support for total and active triggers. An
-enhanced, dedicated common gateway interface enables the client to provide
-multiple CGIs to create a trigger, which is fired on successful matching with
-at least one CGI.</p></li>
-<li><p>Enhanced Location Acquisition API to support <codeph>LocationKnownPositionArea</codeph>.</p></li>
-<li><p><b>Here and Now:</b> The Symbian platform now includes Here and now
-that offers easy-to-use Web services related to the user's current location.
-Here and now allows the user to check the local weather and get other topical
-information while on the move.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry>Multimedia</entry>
-<entry><ul>
-<li><p><b>Mobile TV DVB-H Receiver HAI:</b> Mobile TV Receiver is a small
-internal system but does so much more than traditional TV. It is broadcasted
-in a multi-grounded environment with high speed by using low battery power
-and low memory usage.</p></li>
-<li><p><b>OpenMAX IL:</b> OpenMAX IL is a low-level interface used in mobile
-devices that allows the Multimedia Device Framework (MDF) to load, control,
-connect and unload audio, video and imaging components..</p></li>
-<li><p><b>Thin Adaptation of A3F DevSound:</b> The A3F DevSound is one of
-the key component in the Sound Device collection that provides access to the
-hardware accelerator in audio technology. For more information, see <xref
-href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref>.</p></li>
-<li><p><b>Image Processor library:</b> The Image Processor is an independent
-and high-level API and framework which is developed for mobile imaging. The
-Image Processor has some pluggable advanced image editing libraries to perform
-the Panoramic Stitching function and the Speed View function. For more information,
-see <xref href="GUID-042868E6-88BF-5797-BB53-8E34283DCF16.dita">Image Processor
-Library</xref>.</p></li>
-<li><p><b>Camera API Extensions:</b> The Camera API is extended to support
-the features such as background processing, continuous digital zooming, time
-nudge image capturing and automatic aperture setting. For more information,
-see <xref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita">Camera Library</xref>.</p></li>
-<li><p><b>Camera Support for Video Encoding:</b> The Camera supports mobile
-device to capture video frames which are encoded in the H264 format. For more
-information, see <xref href="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita">Using
-the Encoded H264 Video Frames to Capture Video</xref>.</p></li>
-<li><p><b>Video Playback from Non-user Interface Thread:</b> Media Client
-Video Display is a standalone library used by the Video Client library to
-support video playback. For more information, see <xref href="GUID-17273087-B962-5E8A-8715-055C8BF34A5D.dita">Media
-Client Video Display Library</xref>.</p></li>
-<li><p><b>Video Subtitle CRP:</b> Displays artwork on a video window using
-the Video Subtitle CRP component. The Subtitle Graphic library displays subtitles
-artwork on the screen through its interaction with Client Process, Controller
-Process and WServ Process. For more information, see <xref href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita">Video
-Subtitle CRP Component</xref>.</p></li>
-<li><p><b>True Pause in Audio Playback:</b> In the audio playback request
-the true pause feature is implemented to stop the audio data at the physical
-sound device without stopping the buffer traffic. For more information, see <xref
-href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita">Pausing and Resuming
-Audio Play</xref>. </p></li>
-<li><p><b>Global Surface Updates:</b> The Video Render component is extended
-to support the global surface updates. For more information, see <xref href="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita">Global
-Surface Updates</xref>.</p></li>
-<li><p><b>Metadata Utility Library:</b> The Metadata Utility library belongs
-to the Metadata Utility Framework (MUF) component that provides fast metadata
-access to audio, video and image media files.</p></li>
-<li><p><b>UI Patterns or Thumbnails Enhancement:</b> This is a Multimedia
-specific pattern enhancement, which includes many UI (User Interface) features,
-listed below:</p><ul>
-<li><p>Multiple customized Home Screens with 6 different widget enabled screens. </p></li>
-<li><p>Pinch zoom, kinetic scrolling and single-click features.</p></li>
-<li><p>Good screen view with a new UI theme, and renewed icons.</p></li>
-<li><p>Hardware acceleration with fast and responsive UI that creates new
-transition effects.</p></li>
-<li><p>Multitasking with Teleport visual task swapper.</p></li>
-<li><p>Intelligent slide functionality for Hybrid touch and QWERTY slider
-devices. Video Graphics Array (VGA) Touch supports for VGA QWERTY mono blocks.</p></li>
-<li><p>VGA Touch helps to control Music player.</p></li>
-</ul></li>
-<li><p><b>Mobile TV:</b> Mobile TV uses DVB-H receiver to consume broadcast
-digital mobile television. The Symbian platform provides fast and easy access
-to all videos and TV media content. One key press opens videos and TV application
-suite, and user scrolls and selects the desired video functionality. This
-media experience is built with major components such as Videos and TV, video
-player and Mobile TV. Videos and TV support high quality video up to 720 per
-resolution at 12 Mbps and 30 frames per second.</p></li>
-<li><p><b>Image Viewer Application:</b> The Image Viewer application is used
-when the client opens an image file for viewing. File Manager, Messaging,
-Camcorder and Browser S60 components use the Image Viewer application. It
-supports Extended ICL JPEG API, which enables a faster and less memory-consuming
-way to rotate and zoom images.</p></li>
-<li><p> <b>FM Radio:</b> The FM Radio application is used to listen FM radio
-broadcast over the air. FM radio broadcast is a free service. </p></li>
-<li><p><b>Video Sharing:</b> Using the video sharing service, both call users
-can start sharing their device live camera view or pre-recorded video clip
-during a normal circuit switched (CS) voice call. The video sharing feature
-allows the user to upgrade and downgrade their call with one-way video at
-times of need. The video sharing application uses the Multimedia Comms Engine
-API. </p></li>
-</ul></entry>
-</row>
-<row>
-<entry>Multimedia Applications</entry>
-<entry><ul>
-<li><p><b>High-Definition Multimedia Interface (HDMI):</b> The Symbian platform
-now supports HDMI technology. HDMI is supported as an external accessory for
-audio and video playback for a great television playback experience. It provides
-improved data performance and is ideal for streaming high definition audio
-and video. The 720p resolution is supported in still image and video viewing.
-5+1 channel audio is also supported.</p></li>
-<li><p><b>Home Music Widgets:</b> The Symbian platform now provides music
-information through Home Screen Music Widgets. The Home Music Widgets controls
-from the Home Screen menu system enables to play and pause the playing track.
-The Music Widget supports the Radio Player and includes the Music Suite Matrix
-Menu. This menu is configured through XML and by default supports to launch
-the functionality listed below:</p><ul>
-<li><p>The last played song</p></li>
-<li><p>The music collection view</p></li>
-<li><p>A music shop, or to open the FM radio</p></li>
-</ul></li>
-<li><p><b>Fusion Player Application:</b> The Symbian platform now introduces
-the Fusion Player, which replaces the existing Media Player and Video Center
-applications. It enables access to both online video services and locally
-stored videos. If DVB-H device is available, live TV viewing is also possible.
-The main features supported by the Fusion player application are as follows:</p><ul>
-<li><p>To browse stored videos and to see metadata features of the video,
-such as title, thumbnail DRM info, size or play-time.</p></li>
-<li><p>To check videos that are pre-installed with the device.</p></li>
-<li><p>To play stored video file in the device.</p></li>
-</ul></li>
-</ul></entry>
-</row>
-<row>
-<entry>OS Base Services </entry>
-<entry><ul>
-<li><p><b>Writable Data Paging (WDP):</b> The Symbian platform now supports
-WDP. This enables efficient use of memory and allows multiple applications
-to run at the same time without physically adding more RAM to the hardware.
-This leads to a more responsive system when switching between a number of
-running applications.</p></li>
-<li><p><b>Symmetric multiprocessor (SMP):</b> The Symbian platform now supports
-SMP for multi-core processors, such as the ARM Cortex A9. This allows device
-integrators to prototype and prove ARM-based SMP platforms.</p> </li>
-<li><p><b>64-bit file server:</b> The Symbian platform now supports files
-larger than 2 GB.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry>Productivity</entry>
-<entry><ul>
-<li><p><b>Enhanced Calendar UI Architecture:</b> Calendar UI architecture
-has changed to improve flexibility of calendar for regional, religious, custom-tailors
-and xSP calendar service needs. Multiple storages are also supported. For
-more information, see <xref href="GUID-00631ED2-1B7F-5FC4-9E81-4B6DF7946631.dita">Calendar
-Guide</xref>.</p></li>
-<li><p><b>CalDAV Protocol:</b> Calendar application now supports the CalDAV
-Protocol, which is an open calendar synchronization standard contributed by
-SUN Microsystems. This enables a user to access scheduling information on
-remote servers.</p></li>
-<li><p><b>Enhanced Contacts Application:</b> The Contacts application in this
-release includes the following changes:</p><ul>
-<li><p>Integration with social media.</p></li>
-<li><p>Support for Remote Contacts Lookup, for example, from post-installed
-Mail for Exchange account.</p></li>
-<li><p>Virtual Phonebook API (supports getting access to the user’s own contact
-card).</p></li>
-<li><p>Own contact card.</p></li>
-</ul><?Pub Caret?></li>
-</ul></entry>
-</row>
-<row>
-<entry>Runtimes </entry>
-<entry><ul>
-<li><p>The Symbian platform now supports the Open Source based Java MIDP 2.1.</p></li>
-<li><p>The Symbian platform now supports Browser Application v7.2 (with Web
-Run Time 7.2) that includes the following features:</p><ul>
-<li><p>Browser Control</p></li>
-<li><p>Browser core features</p></li>
-<li><p>Browser Customization</p></li>
-<li><p>Browser plug-ins</p></li>
-<li><p>Browser with touch screen</p></li>
-<li><p>Content Download</p></li>
-<li><p>URI Schemes</p></li>
-<li><p>Display Resolution Optimizations</p></li>
-<li><p>Optical Finger Navigation (OFN)</p></li>
-<li><p>FlashLite 3.1</p></li>
-<li><p>Search Client Integration</p></li>
-<li><p>Expanding Language and Character Set Support</p></li>
-<li><p>Improved Security Prompting</p></li>
-<li><p>Updated Platform Service APIs</p></li>
-<li><p>Visual Task Swapper Support</p></li>
-<li><p>Performance Optimizations</p></li>
-<li><p>Multi-touch/pinch zooming</p></li>
-</ul></li>
-</ul></entry>
-</row>
-<row>
-<entry>Security</entry>
-<entry>The Symbian platform now provides an enhanced Security subsystem that
-enables device creators to integrate hardware acceleration modules, which
-improves the performance of cryptographic algorithms. This is particularly
-valuable in intensive real-time use-cases, such as streaming audio or video
-over a secure link, where bulk data needs to be encrypted and decrypted.</entry>
-</row>
-<row>
-<entry>User Interface</entry>
-<entry><ul>
-<li><p><b>ScreenPlay, also known as the New Graphics Architecture (NGA):</b> This
-new graphics architecture enables device creators to take advantage of improved
-software performance, hardware acceleration and third party graphics engines.
-It makes it possible to combine UI components, graphics and video to create
-highly innovative UIs. For more information, see <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">The
-ScreenPlay Graphics Architecture</xref>.</p></li>
-<li><p><b>Multi-Touch Support:</b> The ScreenPlay version of the Window Server
-has been extended to support multiple advanced pointers, with support for
-proximity and pressure. The emulator now also supports multiple advanced pointers.
-For more information, see <xref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita">Advanced
-Pointers</xref>.</p></li>
-<li><p><b>Enhanced Touch UI:</b> The touch UI includes the following improvements:</p><ul>
-<li><p>Multi-page Home Screen enables the user to navigate between widgets
-with a simple flick gesture</p></li>
-<li><p>Capacitive multi-touch events are supported.</p></li>
-<li><p>Tactile Feedback utilizes advanced haptics effects.</p></li>
-</ul></li>
-</ul><p>For more information about the new features in Graphics, see <xref
-href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita">What's New in Graphics
-in Symbian^3</xref>.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></conbody>
-<related-links>
-<linklist>
-<link href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita"><linktext>New
-C++ APIs in Symbian^3</linktext></link>
-<link href="GUID-BA0A115B-068C-4257-9489-DF35DF633AD2.dita"><linktext>Porting
-applications to Symbian^3</linktext></link>
-<link href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita"><linktext>Introduction
-to Symbian^3</linktext></link>
-</linklist>
-</related-links>
-</concept>
-<?Pub *0000019598?>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F" xml:lang="en"><title>What's new in Symbian^3</title><shortdesc>Symbian^3 introduces a lot of new features that enhance
+communication, connectivity, multimedia, graphics, security and the
+overall usability of Symbian devices. These features benefit operators,
+application developers and device creators by making it easier to
+create feature-rich devices and applications.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>If you are moving from a older version of Symbian platform to Symbian^3,
+see <xref href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita">Porting
+applications to Symbian^3</xref>.</p>
+<table id="GUID-2FD9A877-1A75-4ADD-8B9A-B2FA4A9EB7C4-GENID-1-4-1-1-5-1-3-2">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.42*"/><colspec colname="col2" colwidth="1.58*"/>
+<thead>
+<row>
+<entry>Technology Domain</entry>
+<entry>New Features</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>Data Communications</entry>
+<entry><ul>
+<li><p><b>FreeWay or Three Plane Comms Architecture:</b> The Symbian
+platform now supports a new IP networking architecture. The new architecture
+significantly improves data flow performance and makes it easier for
+third-party developers to integrate new technologies, for example
+firewalls and hotspot authenticators. It also implements automatic
+roaming between different access points, for example WLAN and GPRS.
+For more information, see <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita">Goals of the Comms
+Architecture</xref>.</p></li>
+<li><p><b>One-Click Connectivity (OCC):</b> The Symbian platform now
+provides a new way of managing data connections on the Symbian platform.
+OCC builds on the existing Application Level Roaming (ALR) solution.
+This feature makes the user's interaction with "connecting" and "select
+access point" dialogs significantly simple and easier. For more information,
+see <xref href="GUID-34BEF44B-EFBE-41EB-941D-0410FCB6782E.dita">Extended
+Connection Preferences</xref>.</p> </li>
+</ul></entry>
+</row>
+<row>
+<entry>Device Connectivity</entry>
+<entry><ul>
+
+
+
+<li><p><b>MTP Device Services Extension Specification:</b> The Symbian
+MTP implementation now supports the MTP device services extension
+to the Media Transfer Protocol (MTP). For more information,
+see <xref href="http://www.microsoft.com/whdc/device/wpd/MTPDevServExt_spec.mspx.dita">MTP Device Services Extension Specification</xref>.</p></li>
+<li><p><b>AVRCP (Audio/Video Remote Control Profile) v1.4 Support:</b> A Symbian device user can now see music track names and browse playlists
+directly from the screen of a AVRCP v1.4 enabled Bluetooth headset
+or remote control.</p></li>
+<li><p><b>Centralized AT-command Handling:</b> The Symbian platform
+now enables all AT commands to be handled using the same mechanism
+regardless of the connection type. For more information, refer to
+the <b>AT Extension Plug-in API</b>.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry>Device Management</entry>
+<entry><ul>
+<li><p><b>Support for Open Mobile Alliance (OMA) Management Objects
+(MO):</b> The Symbian platform now supports OMA MO like Software Component
+Management Object (SCOMO) v1.0, Device Capability Management Object
+(DCMO) v1.0 and Connectivity Management Object (ConnMO). It also supports
+Nokia Standard Streaming MO. Some enhancements have been made to Browser
+MO and Email MO.</p></li>
+<li><p><b>Other Device Management Enhancements:</b> The Symbian platform
+now provides an improved device Lock with security and an enhanced
+firmware update installation experience.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry>Location</entry>
+<entry align="justify"><ul>
+<li><p><b>Landmark-based URL Parser:</b> The Symbian platform now
+supports a parser that converts between landmark objects and URLs.
+The parser supports a URL format that is compliant with Ovi Maps.
+For more information, see <xref href="GUID-5809B26D-9AF9-394A-8FA6-6BB199DC6342.dita"><apiname>CPosLandmarkParser</apiname></xref>.</p></li>
+<li><p><b>New Management Object (MO) for A-GPS:</b>  The Symbian platform
+now provides an enhancement to Secure User Plane Location (SUPL) now
+allows the service provider to provide two access points for a SUPL
+server in the MO. This improves the system stability because it acts
+as a fallback mechanism in case one of the access points is unavailable.</p></li>
+<li><p><b>Support for Application Processor Engine (APE) Centric Location
+Architecture:</b> Symbian devices can now use the new architecture
+based on the APE that offers standardized session IDs on network privacy
+and classes that use the SUPL. The architecture converges technology
+from OS, middleware and application software layers.</p></li>
+<li><p><b>Support for Location Based Services (LBS) SUPL Positioning
+Module (PSY):</b> The Symbian platform now enables the LBS SUPL PSY
+to allow GPS-enabled devices to handle network-based SUPL location
+requests. This includes Cell ID based positioning and assistance data
+exchange as part of SUPL v2.0. .</p></li>
+<li><p><b>Support for GPSCost5.0D and GPSCost4.0D GPS chipsets:</b> The Symbian platform now uses the APE-centric architecture to support
+GPSCost5.0D and GPSCost4.0D chipsets. A new A-GPS Nokia Positioning
+Engine (NPE) integration module replaces the OS LBS subsystem reference
+A-GPS version.</p></li>
+<li><p><b>Support for LBS SUPL Radio Resource LCS Protocol (RRLP):</b> The Symbian platform now uses the APE-centric architecture to support
+NPE and RRLP on GPS-enabled device.</p></li>
+<li><p><b>SUPL 2.0 Trigger Support:</b> The Symbian platform now provides
+SUPL 2.0 trigger support that allows the requester to receive location
+updates periodically, which is both network and device initiated.</p></li>
+<li><p><b>Location-based Triggering Enhancements:</b> The Symbian
+platform now includes key enhancements that enable integration with
+an Context framework to develop plug-ins and increase support for
+total and active triggers. An enhanced, dedicated common gateway interface
+enables the client to provide multiple CGIs to create a trigger, which
+is fired on successful matching with at least one CGI.</p></li>
+<li><p>Enhanced Location Acquisition API to support <codeph>LocationKnownPositionArea</codeph>.</p></li>
+<li><p><b>Here and Now:</b> The Symbian platform now includes Here
+and now that offers easy-to-use Web services related to the user's
+current location. Here and now allows the user to check the local
+weather and get other topical information while on the move.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry>Multimedia</entry>
+<entry><ul>
+<li><p><b>Mobile TV DVB-H Receiver HAI:</b> Mobile TV Receiver is
+a small internal system but does so much more than traditional TV.
+It is broadcasted in a multi-grounded environment with high speed
+by using low battery power and low memory usage. .</p></li>
+<li><p><b>OpenMAX IL:</b> OpenMAX IL is a low-level interface used
+in mobile devices that allows the Multimedia Device Framework (MDF)
+to load, control, connect and unload audio, video and imaging components. .</p></li>
+<li><p><b>Thin Adaptation of A3F DevSound:</b> The A3F DevSound is
+one of the key component in the Sound Device collection that provides
+access to the hardware accelerator in audio technology. For more information,
+see <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound
+Component</xref>.</p></li>
+<li><p><b>Image Processor library:</b> The Image Processor is an independent
+and high-level API and framework which is developed for mobile imaging.
+The Image Processor has some pluggable advanced image editing libraries
+to perform the Panoramic Stitching function and the Speed View function.
+For more information, see <xref href="GUID-042868E6-88BF-5797-BB53-8E34283DCF16.dita">Image Processor Library</xref>.</p></li>
+<li><p><b>Camera API Extensions:</b> The Camera API is extended to
+support the features such as background processing, continuous digital
+zooming, time nudge image capturing and automatic aperture setting.
+For more information, see <xref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita">Camera Library</xref>.</p></li>
+<li><p><b>Camera Support for Video Encoding:</b> The Camera supports
+mobile device to capture video frames which are encoded in the H264
+format. For more information, see <xref href="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita">Using the Encoded
+H264 Video Frames to Capture Video</xref>.</p></li>
+<li><p><b>3GP File Format Library:</b> The 3GP Library component is
+a Multimedia plug-in which supports for reading and writing 3GP, 3G2,
+and MP4 files. The 3GP Library is also extended to support larger
+3GP or MP4 files. .</p></li>
+<li><p><b>Video Playback from Non-user Interface Thread:</b> Media
+Client Video Display is a standalone library used by the Video Client
+library to support video playback. For more information, see <xref href="GUID-17273087-B962-5E8A-8715-055C8BF34A5D.dita">Media Client Video
+Display Library</xref>.</p></li>
+<li><p><b>Video Subtitle CRP:</b> Displays artwork on a video window
+using the Video Subtitle CRP component. The Subtitle Graphic library
+displays subtitles artwork on the screen through its interaction with
+Client Process, Controller Process and WServ Process. For more information,
+see <xref href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita">Video Subtitle
+CRP Component</xref>.</p></li>
+<li><p><b>Dolby Digital Audio Support:</b> The Symbian platform now
+supports codecs that enable support for Dolby Digital Audio on Symbian
+devices. </p></li>
+<li><p><b>True Pause in Audio Playback:</b> In the audio playback
+request the true pause feature is implemented to stop the audio data
+at the physical sound device without stopping the buffer traffic.
+For more information, see <xref href="GUID-609A4E83-F074-5A5D-A0DF-A95A7CDC8D2C.dita">Pausing and Resuming
+Audio Play</xref>. </p></li>
+<li><p><b>Global Surface Updates:</b> The Video Render component is
+extended to support the global surface updates. For more information,
+see <xref href="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita">Global
+Surface Updates</xref>.</p></li>
+<li><p><b>Metadata Utility Library:</b> The Metadata Utility library
+belongs to the Metadata Utility Framework (MUF) component that provides
+fast metadata access to audio, video and image media files. For more
+information, see the <xref href="GUID-15B17B8F-5790-526D-80EA-1ED7A396349C.dita">Metadata Utility
+Library</xref> section.</p></li>
+<li><p><b>UI Patterns or Thumbnails Enhancement:</b> This is a Multimedia
+specific pattern enhancement, which includes many UI (User Interface)
+features, listed below:</p><ul>
+<li><p>Multiple customized Home Screens with 6 different widget enabled
+screens. </p></li>
+<li><p>Pinch zoom, kinetic scrolling and single-click features.</p></li>
+<li><p>Good screen view with a new UI theme, and renewed icons.</p></li>
+<li><p>Hardware acceleration with fast and responsive UI that creates
+new transition effects.</p></li>
+<li><p>Multitasking with Teleport visual task swapper.</p></li>
+<li><p>Intelligent slide functionality for Hybrid touch and QWERTY
+slider devices. Video Graphics Array (VGA) Touch supports for VGA
+QWERTY mono blocks.</p></li>
+<li><p>VGA Touch helps to control Music player.</p></li>
+</ul></li>
+<li><p><b>Mobile TV:</b> Mobile TV uses DVB-H receiver to consume
+broadcast digital mobile television. The Symbian platform provides
+fast and easy access to all videos and TV media content. One key press
+opens videos and TV application suite, and user scrolls and selects
+the desired video functionality. This media experience is built with
+major components such as Videos and TV, video player and Mobile TV.
+Videos and TV support high quality video up to 720 per resolution
+at 12 Mbps and 30 frames per second.</p></li>
+<li><p><b>Image Viewer Application:</b> The Image Viewer application
+is used when the client opens an image file for viewing. File Manager,
+Messaging, Camcorder and Browser S60 components use the Image Viewer
+application. It supports Extended ICL JPEG API, which enables a faster
+and less memory-consuming way to rotate and zoom images.</p></li>
+<li><p> <b>FM Radio:</b> The FM Radio application is used to listen
+FM radio broadcast over the air. FM radio broadcast is a free service. </p></li>
+<li><p><b>Video Sharing:</b> Using the video sharing service, both
+call users can start sharing their device live camera view or pre-recorded
+video clip during a normal circuit switched (CS) voice call. The video
+sharing feature allows the user to upgrade and downgrade their call
+with one-way video at times of need. The video sharing application
+uses the Multimedia Comms Engine API. </p></li>
+</ul></entry>
+</row>
+<row>
+<entry>Multimedia Applications</entry>
+<entry><ul>
+<li><p><b>High-Definition Multimedia Interface (HDMI):</b> The Symbian
+platform now supports HDMI technology. HDMI is supported as an external
+accessory for audio and video playback for a great television playback
+experience. It provides improved data performance and is ideal for
+streaming high definition audio and video. The 720p resolution is
+supported in still image and video viewing. 5+1 channel audio is also
+supported.</p></li>
+<li><p><b>Home Music Widgets:</b> The Symbian platform now provides
+music information through Home Screen Music Widgets. The Home Music
+Widgets controls from the Home Screen menu system enables to play
+and pause the playing track. The Music Widget supports the Radio Player
+and includes the Music Suite Matrix Menu. This menu is configured
+through XML and by default supports to launch the functionality listed
+below:</p><ul>
+<li><p>The last played song</p></li>
+<li><p>The music collection view</p></li>
+<li><p>A music shop, or to open the FM radio</p></li>
+</ul></li>
+<li><p><b>Fusion Player Application:</b> The Symbian platform now
+introduces the Fusion Player, which replaces the existing Media Player
+and Video Center applications. It enables access to both online video
+services and locally stored videos. If DVB-H device is available,
+live TV viewing is also possible. The main features supported by the
+Fusion player application are as follows:</p><ul>
+<li><p>To browse stored videos and to see metadata features of the
+video, such as title, thumbnail DRM info, size or play-time.</p></li>
+<li><p>To check videos that are pre-installed with the device.</p></li>
+<li><p>To play stored video file in the device.</p></li>
+</ul></li>
+</ul></entry>
+</row>
+<row>
+<entry>OS Base Services </entry>
+<entry><ul>
+<li><p><b>Writable Data Paging (WDP):</b> The Symbian platform now
+supports WDP. This enables efficient use of memory and allows multiple
+applications to run at the same time without physically adding more
+RAM to the hardware. This leads to a more responsive system when switching
+between a number of running applications. .</p></li>
+<li><p><b>Symmetric multiprocessor (SMP):</b> The Symbian platform
+now supports SMP for multi-core processors, such as the ARM Cortex
+A9. This allows device integrators to prototype and prove ARM-based
+SMP platforms. </p> </li>
+<li><p><b>64-bit file server:</b> The Symbian platform now supports
+files larger than 2 GB. </p></li>
+</ul></entry>
+</row>
+<row>
+<entry>Productivity</entry>
+<entry><ul>
+<li><p><b>Nokia Messaging for Social Networks:</b> Nokia Messaging
+Social Networking service is a Nokia-hosted consumer service that
+provides easy and affordable mobile access to popular social networking
+communities.</p></li>
+<li><p><b>Enhanced Calendar UI Architecture:</b> Calendar UI architecture
+has changed to improve flexibility of calendar for regional, religious,
+custom-tailors and xSP calendar service needs. Multiple storages are
+also supported. For more information, see <xref href="GUID-00631ED2-1B7F-5FC4-9E81-4B6DF7946631.dita">Calendar Guide</xref>.</p></li>
+<li><p><b>CalDAV Protocol:</b> Calendar application now supports the
+CalDAV Protocol, which is an open calendar synchronization standard
+contributed by SUN Microsystems. This enables a user to access scheduling
+information on remote servers.</p></li>
+<li><p><b>Enhanced Contacts Application:</b> The Contacts application
+in this release includes the following changes:</p><ul>
+<li><p>Integration with social media.</p></li>
+<li><p>Support for Remote Contacts Lookup, for example, from post-installed
+Mail for Exchange account.</p></li>
+<li><p>Virtual Phonebook API (supports getting access to the user’s
+own contact card).</p></li>
+<li><p>Own contact card.</p></li>
+</ul></li>
+</ul></entry>
+</row>
+<row>
+<entry>Runtimes </entry>
+<entry><ul>
+<li><p>The Symbian platform now supports the Open Source based Java
+MIDP 2.1.</p></li>
+<li><p>The Symbian platform now supports Browser Application v7.2
+(with Web Run Time 7.2) that includes the following features:</p><ul>
+<li><p>Browser Control</p></li>
+<li><p>Browser core features</p></li>
+<li><p>Browser Customization</p></li>
+<li><p>Browser plug-ins</p></li>
+<li><p>Browser with touch screen</p></li>
+<li><p>Content Download</p></li>
+<li><p>URI Schemes</p></li>
+<li><p>Display Resolution Optimizations</p></li>
+<li><p>Optical Finger Navigation (OFN)</p></li>
+<li><p>FlashLite 3.1</p></li>
+<li><p>Search Client Integration</p></li>
+<li><p>Expanding Language and Character Set Support</p></li>
+<li><p>Improved Security Prompting</p></li>
+<li><p>Updated Platform Service APIs</p></li>
+<li><p>Visual Task Swapper Support</p></li>
+<li><p>Performance Optimizations</p></li>
+<li><p>Multi-touch/pinch zooming</p></li>
+</ul></li>
+</ul></entry>
+</row>
+<row>
+<entry>Security</entry>
+<entry>The Symbian platform now provides an enhanced Security subsystem
+that enables device creators to integrate hardware acceleration modules,
+which improves the performance of cryptographic algorithms. This is
+particularly valuable in intensive real-time use-cases, such as streaming
+audio or video over a secure link, where bulk data needs to be encrypted
+and decrypted.</entry>
+</row>
+<row>
+<entry>User Interface</entry>
+<entry><ul>
+<li><p><b>ScreenPlay, also known as the New Graphics Architecture
+(NGA):</b> This new graphics architecture enables device creators
+to take advantage of improved software performance, hardware acceleration
+and third party graphics engines. It makes it possible to combine
+UI components, graphics and video to create highly innovative UIs.
+For more information, see <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">The ScreenPlay Graphics
+Architecture</xref>.</p></li>
+
+
+<li><p><b>Multi-Touch Support:</b> The ScreenPlay version of the Window
+Server has been extended to support multiple advanced pointers, with
+support for proximity and pressure. The emulator now also supports
+multiple advanced pointers. For more information, see <xref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita">Advanced Pointers</xref>.</p></li>
+
+<li><p><b>Enhanced Touch UI:</b> The touch UI includes the following
+improvements:</p><ul>
+<li><p>Multi-page Home Screen enables the user to navigate between
+widgets with a simple flick gesture</p></li>
+<li><p>Capacitive multi-touch events are supported.</p></li>
+<li><p>Tactile Feedback utilizes advanced haptics effects.</p></li>
+</ul></li>
+</ul><p>For more information about the new features in Graphics, see <xref href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita">What's New in Graphics
+in Symbian^3</xref>.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody><related-links>
+<linklist>
+<link href="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita"><linktext>New
+C++ APIs in Symbian^3</linktext></link>
+<link href="GUID-BA0A115B-068C-4257-9489-DF35DF633AD2.dita"><linktext>Porting
+applications to Symbian^3</linktext></link>
+<link href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita"><linktext>Introduction
+to Symbian^3</linktext></link>
+</linklist>
+</related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e355771_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e361851_href.png has changed
--- a/Symbian3/SDK/Source/GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C" xml:lang="en"><title>Add
-a view to the control stack</title><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context> <p>To enable a view to receive key events, add a view to the control
-stack using the following method. This method adds a control into the application
-UI's control stack.</p><note> Ensure that the view is constructed before adding
-it to the control stack. </note><codeblock xml:space="preserve">IMPORT_C void AddToStackL( const MCoeView&amp; aView, 
-                           CCoeControl *aControl, 
-                           TInt aPriority=ECoeStackPriorityDefault, 
-                           TInt aStackingFlags=ECoeStackFlagStandard );</codeblock><p>The
-following code snippet shows adding a view to the control stack:</p><codeblock xml:space="preserve">/**  
-Add aControl to Cone's control stack with priority aPriority and behaviour aStackingFlags.\n 
-*/
-void CNewView::AddToStackL( CCoeControl* aControl,
-                            TInt aPriority,
-                            TInt aStackingFlags )
-    {
-    iCCoeAppUi.AddToStackL( *this, aControl, aPriority, aStackingFlags);
-    }</codeblock><p> For more information on writing control stack, see <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write controls</xref>.</p></context>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-6FD4E7A4-D215-4CFB-BC7A-23065DE95C5C" xml:lang="en"><title>Add
+a view to the control stack</title><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context> <p>To enable a view to receive key events, add a view to the control
+stack using the following method. This method adds a control into the application
+UI's control stack.</p><note> Ensure that the view is constructed before adding
+it to the control stack. </note><codeblock xml:space="preserve">IMPORT_C void AddToStackL( const MCoeView&amp; aView, 
+                           CCoeControl *aControl, 
+                           TInt aPriority=ECoeStackPriorityDefault, 
+                           TInt aStackingFlags=ECoeStackFlagStandard );</codeblock><p>The
+following code snippet shows adding a view to the control stack:</p><codeblock xml:space="preserve">/**  
+Add aControl to Cone's control stack with priority aPriority and behaviour aStackingFlags.\n 
+*/
+void CNewView::AddToStackL( CCoeControl* aControl,
+                            TInt aPriority,
+                            TInt aStackingFlags )
+    {
+    iCCoeAppUi.AddToStackL( *this, aControl, aPriority, aStackingFlags);
+    }</codeblock><p> For more information on writing control stack, see <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita">How to write controls</xref>.</p></context>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e52493_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e58588_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e67337_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e72538_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e176588_href.png has changed
Binary file Symbian3/SDK/Source/GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e183182_href.png has changed
Binary file Symbian3/SDK/Source/GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e4528_href.png has changed
Binary file Symbian3/SDK/Source/GUID-700CD2E2-DBB7-40BD-BC6D-9BC79C5A0BBF_d0e5803_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e238861_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70483E81-311F-5247-9F39-3940F20C0EB1_d0e242598_href.png has changed
Binary file Symbian3/SDK/Source/GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e70764_href.png has changed
Binary file Symbian3/SDK/Source/GUID-706263D6-AAE2-40E2-B0B4-D12E253F70A8_d0e75798_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1" xml:lang="en"><title>S60
-Platform: Audio Streaming Example </title><shortdesc>This example helps the user in understanding the available audio
-formats supported and how to do audio recording using Multimedia Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-6EA435CA-266F-4DD5-ADDA-1AE3C831B0EE-GENID-1-8-1-18-1-1-4-1-12-1-3-1"><title>Description</title> <p>This C++ example application demonstrates
-the use of Audio Streaming API, which provides functionality for recording
-audio stream into a buffer, and for playback of the audio buffer. Besides
-playing, recording, and stopping the audio stream, the recorded audio stream
-can be saved into a file, to be played again later. The package includes PCM
-and AMR-NB encoded sample files. Audio Streaming API is part of the Symbian
-Multimedia Framework (MMF). The updated example has been tested to support
-S60 5th Edition and touch UI. Important classes: CMdaAudioInputStream, CMdaAudioOutputStream,
-MMdaAudioInputStreamCallback, MMdaAudioOutputStreamCallback..</p> <p>For more
-information, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/8bee21ad-d39c-4b84-b0cd-5a54b556a70a/S60_Platform_Audio_Streaming_Example.html" scope="external">Audio Streaming Example.</xref></p> </section>
-<section id="GUID-85894902-2FB5-4340-B280-87FDC624E26F-GENID-1-8-1-18-1-1-4-1-12-1-3-2"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90b3674d-2812-418b-8f00-74916bca2b55.zip" scope="external">MMFRec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90b3674d-2812-418b-8f00-74916bca2b55.html" scope="peer">browse </xref> to view the example code.</p> </section>
-<section id="GUID-DEFCF4B9-452A-5EAF-ABD3-BC4F6FBD528B-GENID-1-8-1-18-1-1-4-1-12-1-3-3"><title>Building and
-configuring</title> <p>To build the example: </p> <p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> <p>For the emulator, the example builds
-an executable called <filepath>mmfrec.exe.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb
-or             urel&gt;\</filepath> folder. </p> </section>
-<section id="GUID-EBDD6313-0188-5D9D-94DB-E9D7B373A741-GENID-1-8-1-18-1-1-4-1-12-1-3-4"><title>Running the
-example</title> <p>When running the example, the user is presented with various
-menu options that are self explanatory. </p> </section>
-<section id="GUID-42DBF93F-BBF1-4C73-B555-B2BC49C1E74A-GENID-1-8-1-18-1-1-4-1-12-1-3-5"><title>See also:</title><p><xref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita">Audio
-Client Overview</xref></p></section>
-</refbody></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1" xml:lang="en"><title>S60
-Platform: Audio Streaming Example </title><shortdesc>This example helps the user in understanding the available audio
-formats supported and how to do audio recording using Multimedia Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-6EA435CA-266F-4DD5-ADDA-1AE3C831B0EE-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1-3-1"><title>Description</title> <p>This C++ example application demonstrates
-the use of Audio Streaming API, which provides functionality for recording
-audio stream into a buffer, and for playback of the audio buffer. Besides
-playing, recording, and stopping the audio stream, the recorded audio stream
-can be saved into a file, to be played again later. The package includes PCM
-and AMR-NB encoded sample files. Audio Streaming API is part of the Symbian
-Multimedia Framework (MMF). The updated example has been tested to support
-S60 5th Edition and touch UI. Important classes: CMdaAudioInputStream, CMdaAudioOutputStream,
-MMdaAudioInputStreamCallback, MMdaAudioOutputStreamCallback..</p> <p>For more
-information, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/8bee21ad-d39c-4b84-b0cd-5a54b556a70a/S60_Platform_Audio_Streaming_Example.html" scope="external">Audio Streaming Example.</xref></p> </section>
-<section id="GUID-85894902-2FB5-4340-B280-87FDC624E26F-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1-3-2"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-90b3674d-2812-418b-8f00-74916bca2b55.zip" scope="external">MMFRec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-90b3674d-2812-418b-8f00-74916bca2b55.html" scope="peer">browse </xref> to view the example code.</p> </section>
-<section id="GUID-DEFCF4B9-452A-5EAF-ABD3-BC4F6FBD528B-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1-3-3"><title>Building and
-configuring</title> <p>To build the example: </p> <p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> <p>For the emulator, the example builds
-an executable called <filepath>mmfrec.exe.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb
-or             urel&gt;\</filepath> folder. </p> </section>
-<section id="GUID-EBDD6313-0188-5D9D-94DB-E9D7B373A741-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1-3-4"><title>Running the
-example</title> <p>When running the example, the user is presented with various
-menu options that are self explanatory. </p> </section>
-<section id="GUID-42DBF93F-BBF1-4C73-B555-B2BC49C1E74A-GENID-1-8-1-18-1-1-5-1-7-1-6-1-4-1-3-5"><title>See also:</title><p><xref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita">Audio
-Client Overview</xref></p></section>
-</refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-708FC2C8-19BB-5EFC-A8CD-B0E9E96A5409-master.png has changed
Binary file Symbian3/SDK/Source/GUID-708FC2C8-19BB-5EFC-A8CD-B0E9E96A5409_d0e387120_href.png has changed
--- a/Symbian3/SDK/Source/GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA" xml:lang="en"><title>Position
-Area Data Classes</title><shortdesc>This document describes the basic and extended position area data
-classes that contain information about the accuracy of the position returned
-to an application when it calls <codeph>RPositioner::GetLastKnownPositionArea()</codeph>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>LBS maintains a cache of previously calculated position fixes. If an application
-calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-BF3BBDC5-8B12-3374-ACEB-4013E9CFEBEF"><apiname>RPositioner::GetLastKnownLocation()</apiname></xref>, LBS returns
-the most recently calculated position. If an application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref>,
-LBS returns the position fix that is the best match for the current location
-of the mobile device. The current location of the mobile device is estimated
-from data received from the network. </p>
-<p>The Location Acquisition API defines a set of position area data classes
-(figure 1). A client application passes an object of one of these classes
-as a parameter when it calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref>.
-The position area data classes are defined in <filepath>LbsAreaInfo.h</filepath>. </p>
-<fig id="GUID-898DA2B8-185E-5906-803A-1871320A0F7E">
-<title>           Figure 1. Position Area Data Classes.          </title>
-<image href="GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e270258_href.png" placement="inline"/>
-</fig>
-<p>A brief description of the classes follows. Follow the links to more detailed
-reference documentation. </p>
-<ul>
-<li id="GUID-6EFEC1C0-FA51-5700-AF45-C25F69C8FF34"><p> <xref href="GUID-4AD8EC91-7272-3ABA-92AB-E299E85FDC6D.dita"><apiname>TPositionAreaInfoBase</apiname></xref> is
-the base class of the position area data classes. Applications create an object
-of one of the derived classes. </p> </li>
-<li id="GUID-0F54B61E-D87A-5014-8808-863323BBD475"><p> <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita"><apiname>TPositionAreaInfo</apiname></xref> contains
-basic information about the accuracy of a returned position. Its defines an
-enumerated type <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita#GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773/GUID-3B9DEDE6-8903-3B26-9CE6-19D6B4833309"><apiname>TPositionAreaInfo::_TArea</apiname></xref> that defines
-an estimate of how closely the current device position matches the returned
-position. The position accuracy estimate can be from country level down to
-street level, depending on how much information is available from the network. </p> </li>
-<li id="GUID-7ADA8994-7028-5C76-9870-FB0F4AA82F82"><p> <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> extends <codeph>TPositionAreaInfo</codeph> to
-provide details about how the accuracy estimate of the returned position was
-calculated. </p> <p>An accuracy estimate can be obtained from the network
-as some combination of the following: </p> <ul>
-<li id="GUID-AA4BFDD9-D024-5F1C-873C-55A18AC7EB10"><p>Mobile Country Code </p> </li>
-<li id="GUID-7AEE15CD-33B2-5833-BE64-8E2D2C729DF4"><p>Mobile Network Code </p> </li>
-<li id="GUID-4666634D-05C4-59C1-AD51-55A28F67DC3B"><p>Location Area Code </p> </li>
-<li id="GUID-B3BEE4FC-8955-5FAC-B382-121F49C8D1D7"><p>Cell ID </p> </li>
-</ul> <p>LBS uses combinations of the above to derive the accuracy estimate
-returned from <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita#GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773/GUID-C8B19BA7-72A0-35CD-AF72-AD74E9C0CE5B"><apiname>TPositionAreaInfo::Area()</apiname></xref>. Your application
-can find what types of data were used to calculate the accuracy estimate by
-passing an object of class <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A00A1673-10F2-357A-A3CA-FFB4E14F2F8D"><apiname>RPositioner::GetLastKnownLocationArea()</apiname></xref> and
-then using the methods shown in figure 1 to check for code and ID matches. </p> </li>
-</ul>
-</conbody><related-links>
-<link><linktext/></link>
-<link href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita"><linktext>How to Get
-Location Information</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA" xml:lang="en"><title>Position
+Area Data Classes</title><shortdesc>This document describes the basic and extended position area data
+classes that contain information about the accuracy of the position returned
+to an application when it calls <codeph>RPositioner::GetLastKnownPositionArea()</codeph>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>LBS maintains a cache of previously calculated position fixes. If an application
+calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-BF3BBDC5-8B12-3374-ACEB-4013E9CFEBEF"><apiname>RPositioner::GetLastKnownLocation()</apiname></xref>, LBS returns
+the most recently calculated position. If an application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref>,
+LBS returns the position fix that is the best match for the current location
+of the mobile device. The current location of the mobile device is estimated
+from data received from the network. </p>
+<p>The Location Acquisition API defines a set of position area data classes
+(figure 1). A client application passes an object of one of these classes
+as a parameter when it calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref>.
+The position area data classes are defined in <filepath>LbsAreaInfo.h</filepath>. </p>
+<fig id="GUID-898DA2B8-185E-5906-803A-1871320A0F7E">
+<title>           Figure 1. Position Area Data Classes.          </title>
+<image href="GUID-4930A22F-EF80-5B08-A878-C0DB73929558_d0e266550_href.png" placement="inline"/>
+</fig>
+<p>A brief description of the classes follows. Follow the links to more detailed
+reference documentation. </p>
+<ul>
+<li id="GUID-6EFEC1C0-FA51-5700-AF45-C25F69C8FF34"><p> <xref href="GUID-4AD8EC91-7272-3ABA-92AB-E299E85FDC6D.dita"><apiname>TPositionAreaInfoBase</apiname></xref> is
+the base class of the position area data classes. Applications create an object
+of one of the derived classes. </p> </li>
+<li id="GUID-0F54B61E-D87A-5014-8808-863323BBD475"><p> <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita"><apiname>TPositionAreaInfo</apiname></xref> contains
+basic information about the accuracy of a returned position. Its defines an
+enumerated type <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita#GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773/GUID-3B9DEDE6-8903-3B26-9CE6-19D6B4833309"><apiname>TPositionAreaInfo::_TArea</apiname></xref> that defines
+an estimate of how closely the current device position matches the returned
+position. The position accuracy estimate can be from country level down to
+street level, depending on how much information is available from the network. </p> </li>
+<li id="GUID-7ADA8994-7028-5C76-9870-FB0F4AA82F82"><p> <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> extends <codeph>TPositionAreaInfo</codeph> to
+provide details about how the accuracy estimate of the returned position was
+calculated. </p> <p>An accuracy estimate can be obtained from the network
+as some combination of the following: </p> <ul>
+<li id="GUID-AA4BFDD9-D024-5F1C-873C-55A18AC7EB10"><p>Mobile Country Code </p> </li>
+<li id="GUID-7AEE15CD-33B2-5833-BE64-8E2D2C729DF4"><p>Mobile Network Code </p> </li>
+<li id="GUID-4666634D-05C4-59C1-AD51-55A28F67DC3B"><p>Location Area Code </p> </li>
+<li id="GUID-B3BEE4FC-8955-5FAC-B382-121F49C8D1D7"><p>Cell ID </p> </li>
+</ul> <p>LBS uses combinations of the above to derive the accuracy estimate
+returned from <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita#GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773/GUID-C8B19BA7-72A0-35CD-AF72-AD74E9C0CE5B"><apiname>TPositionAreaInfo::Area()</apiname></xref>. Your application
+can find what types of data were used to calculate the accuracy estimate by
+passing an object of class <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A00A1673-10F2-357A-A3CA-FFB4E14F2F8D"><apiname>RPositioner::GetLastKnownLocationArea()</apiname></xref> and
+then using the methods shown in figure 1 to check for code and ID matches. </p> </li>
+</ul>
+</conbody><related-links>
+<link><linktext/></link>
+<link href="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita"><linktext>How to Get
+Location Information</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e57062_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e60390_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e62839_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e67952_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68178_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68784_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e73929_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F-master.png has changed
Binary file Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e69973_href.png has changed
Binary file Symbian3/SDK/Source/GUID-70FC2D13-493D-433F-9CFB-ACF9F512513F_d0e75057_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8" xml:lang="en"><title>Symmetric
+ciphers -- guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-A66ADA26-979E-5B4A-824F-29C182AFCB24"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-6F996812-1D73-509B-9CED-DD672728D597">What are symmetric ciphers?</xref>  </p> </li>
+<li id="GUID-46055BED-B538-5B49-BD43-A2E3AA3368E8"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-BDF6E245-AE19-55D6-89ED-BCBE0FCF006B">Block and stream ciphers</xref>  </p> </li>
+<li id="GUID-5B9FF3E3-3732-5A75-B429-23B318C0CCBF"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-A4E43A90-A66F-5868-BD94-DA709B75431B">Types of symmetric algorithms supported</xref>  </p> </li>
+<li id="GUID-26930CA6-C2AF-58DB-87AB-803481AA3DED"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-66E8AD5D-A9FF-51E3-897D-D5EC3D66903A">Base classes and their derived classes</xref>  </p> </li>
+</ul>
+<section id="GUID-6F996812-1D73-509B-9CED-DD672728D597"><title>What are symmetric
+ciphers? </title> <p>Symmetric algorithms are much faster than asymmetric
+algorithms so are used to encrypt and decrypt large amounts of data. In an
+informal setting, symmetric ciphers can be thought of as a mapping of some
+plaintext to ciphertext, via some well-known transformation function, dependent
+on a single secret key. Symmetric algorithms have the property that if a message
+is encrypted under a given key, it can only be decrypted using the same key: </p> <fig id="GUID-FDB090BE-13DA-5941-8403-F42C3DF880BF">
+<title> The diagram above shows the encryption and decryption process using:
+a symmetric algorithm; a plaintext message, M; a symmetric key, K; and the
+ciphertext, K(M).</title>
+<image href="GUID-669190F8-3BE9-58FC-B689-00F06FDAD74D_d0e382307_href.png" placement="inline"/>
+</fig> <p>So it provides secrecy and also some kind of authentication. If
+Alice encrypts a secret using a key known only to her, then only she can access
+the secrets. </p><p>It can also be used for communication: if Alice shares
+a key with Bob (and only Bob), then she can encrypt her messages with that
+key and send it to Bob, and only Bob can decrypt them. In this case the key
+is a 'shared secret' enabling private communications. </p><p>There are two
+basic types of symmetric ciphers: <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8/GUID-BDF6E245-AE19-55D6-89ED-BCBE0FCF006B">block
+ciphers and stream ciphers</xref>. </p> </section>
+<section id="GUID-BDF6E245-AE19-55D6-89ED-BCBE0FCF006B"><title>Block and stream
+ciphers</title> <ul>
+<li id="GUID-D0F3A85C-2DB3-57BE-A12B-102943DB68C9"><p> <b> Stream ciphers</b> are
+essentially functions that are initialized with a key, and output a stream
+of pseudorandom bits, this 'keystream' is typically XOR-ed with the plaintext
+to generate the ciphertext. So they encrypt a bit of plaintext at a time.
+They map an <i>n</i> -bit stream of plaintext to a <i>n</i> -bit stream of
+ciphertext. </p> </li>
+<li id="GUID-25F8F07B-C60E-5B6D-9224-B7E4E89D15A3"><p> <b>Block ciphers</b> encrypt
+several bits at once in a fixed-size block. That is, they map <i>m</i>  <i>n</i> -bit
+blocks of plaintext to <i>m</i>  <i>n</i> -bit blocks of ciphertext. The cipher
+and its mode of operation define the block size: the plaintext is split up
+into appropriately-sized blocks and each block is fed into the cipher. </p> <p>There
+are two issues here that don't occur with stream ciphers: </p> <ul>
+<li id="GUID-2C88F6DF-B8F8-5DF3-8955-03DA02371DEC"><p> <b> padding</b>: the
+total size of the input has to be a multiple of the block size, so the plaintext
+usually has to be padded to fit (see the class <xref href="GUID-FFD4A90B-CCF7-33D2-802A-A44E2434FAE9.dita"><apiname>CPadding</apiname></xref>).
+Optionally, instead of padding out a plaintext message to fit in a block,
+block ciphers allow buffering of partial input blocks until the remainder
+of the block is given as input. (see <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-3393A9D6-CB78-5740-B250-F9C1C26C59BD">How
+does buffering work within the symmetric cipher framework?</xref> and <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2129" scope="external">PKCS#7</xref>). </p> </li>
+<li id="GUID-EE6C6890-8F7E-50AD-AEB9-10C43E931DE9"><p> <b>combining blocks</b>:
+if you just encrypt each plaintext block with the cipher and then concatenate
+the ciphertext blocks, then an attacker who knows something about the structure
+can switch the order of the ciphertext blocks to alter the meaning of the
+message. For example, if the plaintext includes instructions like 'pay £XXX
+to account holder ABC, reference number YYY', then an attacker could replace
+the encryption of XXX with some of the encryption of YYY. This leads to other
+techniques for combining blocks, called modes, where, for example, the output
+of the last block is fed into the input for the next one. So, the output is
+not just a function of that plaintext block and key, but is a function of
+that plaintext block, the key, and all preceding ciphertext blocks (see <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-71CD8B41-219D-5D07-8C99-47D68668A880">Symmetric
+Modes</xref>). </p> </li>
+</ul> </li>
+</ul> <p>Both stream ciphers and block ciphers are provided by the API with
+a similar interface. Block ciphers usually need padding for non completed
+blocks. The API allows the user to choose the padding to be added at the end
+of the last encrypted block or to be checked and removed from the last decrypted
+block. </p> </section>
+<section id="GUID-A4E43A90-A66F-5868-BD94-DA709B75431B"><title>Types of symmetric
+algorithms supported</title> <p>The following symmetric algorithms are supported: </p> <table id="GUID-25F43544-4556-544B-B010-76B0E091B80C">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Symmetric algorithm</entry>
+<entry>Type</entry>
+<entry>Specified in:</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>AES (Advanced Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf" scope="external">FIPS-197</xref> </p> </entry>
+</row>
+<row>
+<entry><p>DES (Data Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf" scope="external">FIPS 46-3</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>3DES (Triple Data Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf" scope="external">FIPS 46-3</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>RC2-128 </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2268.txt" scope="external">RFC
+2268</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>ARC4 ('alleged' RC4) </p> </entry>
+<entry><p>Stream cipher </p> </entry>
+<entry><p>the internet and a posting to sci.crypt in 1994. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-66E8AD5D-A9FF-51E3-897D-D5EC3D66903A"><title>Base classes
+and their derived classes</title> <p>The symmetric cipher API is used by Networking
+(TLS/IPSec). </p> <p> <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref> is the abstract
+base class that allows a client to use the supported symmetric algorithms
+listed above. It allows clients to encrypt and decrypt without having to know
+anything about which encryption algorithm is currently in use. </p> <p>The
+PKCS5 API (the <codeph>TPKCS5KDF</codeph> class, also see <xref href="GUID-0C7CDC47-6B42-5A20-BED8-086DA81D272E.dita">Password
+Based Encryption</xref>) offers Key Derivation Support that allows the derivation
+of deterministic arbitrary length byte streams from an input string. The output
+byte stream is generated using multiple iterations of a SHA-1 message digest
+(<codeph>CSHA1</codeph>) and is suitable for use as a cryptographic symmetric
+key. </p> <p>The diagrams below show the main classes used in symmetric cipher
+framework. Blue dotted arrows indicate that a class is contained or used by
+another class. The arrows are labelled with the variable(s) through which
+the pointed class is accessible. The colour of the boxes indicates the type
+of Symbian class, i.e., <codeph>M</codeph>, <codeph>C</codeph>, <codeph>R</codeph> or <codeph>T</codeph> class.
+For detailed information on each component see the Cryptography API Reference
+material. </p> <p><b><xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref> and derived classes</b> </p> <fig id="GUID-B11D8EE9-F078-57B2-9453-3ABF1FC0AAA1">
+<title>The inheritance diagram shows the <codeph>CSymmetricCipher</codeph> abstract
+base class and its derived abstract classes <codeph>CBufferedTransformation</codeph> and <codeph>CStreamCipher</codeph> used
+for block and stream ciphers respectively. Also shown are the following derived
+classes: <codeph>CBufferedDecryptor</codeph>, <codeph>CBufferedEncryptor</codeph>, <codeph>CARC4</codeph>,
+and <codeph>CNullCipher</codeph>.</title>
+<image href="GUID-5F72210C-1636-584D-9D89-987D25136975_d0e382613_href.png" placement="inline"/>
+</fig> <p><b><xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita"><apiname>CBlockTransformation</apiname></xref> and derived classes</b> </p> <fig id="GUID-EB7BFBBF-D41C-5A3A-AA53-3F5BDA019C2A">
+<title>The inheritance diagram above shows the <xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita"><apiname>CBlockTransformation</apiname></xref> abstract
+base class used for block ciphers. Also shown are the following derived classes: <xref href="GUID-436C3EBE-FC60-3760-A3BA-D8DF8FA5B8AF.dita"><apiname>CBlockChainingMode</apiname></xref>, <xref href="GUID-C65A1F55-A8D2-3393-8DC1-35656017E2B8.dita"><apiname>CModeCBCEncryptor</apiname></xref>, <xref href="GUID-7D5FBD2C-83A0-351A-96B3-C5C54FE525E6.dita"><apiname>CModeCBCDecryptor</apiname></xref>, <xref href="GUID-1C18ED2F-085F-3C3E-A93E-5FD37461E440.dita"><apiname>CDES</apiname></xref>, <xref href="GUID-E7401D77-AD0E-3B8F-A7CC-23ADA5151DB6.dita"><apiname>CDESEncryptor</apiname></xref>, <xref href="GUID-249270AC-907B-3E46-AFDB-131FDC6F612A.dita"><apiname>CDESDecryptor</apiname></xref>, <xref href="GUID-90A671B0-756E-3773-8429-6441D1594F4B.dita"><apiname>C3DES</apiname></xref>, <xref href="GUID-B931DBB9-4484-33FD-9E94-6F256ABD5C68.dita"><apiname>C3DESEncryptor</apiname></xref>, <xref href="GUID-C693C22D-04C5-3C9E-8605-0EA90F723AF3.dita"><apiname>C3DESDecryptor</apiname></xref>, <xref href="GUID-BEE18CDE-CFB6-3116-9FAE-046780D4D006.dita"><apiname>CRC2</apiname></xref>, <xref href="GUID-19F20C86-5722-3A35-B17D-3830D18CC7FC.dita"><apiname>CRC2Encryptor</apiname></xref>, <xref href="GUID-E6FD8DF9-258B-39BC-8C39-ABF7434A29B5.dita"><apiname>CRC2Decryptor</apiname></xref>, <xref href="GUID-B0AEE24A-91A6-335E-AD64-C9DDCC1F81A9.dita"><apiname>CRijndael</apiname></xref>, <xref href="GUID-AE1A9AC0-DB79-3C62-AA23-896812F25F14.dita"><apiname>CAESEncryptor</apiname></xref>, and <xref href="GUID-51666543-0256-3E0D-BF5F-8716753C5921.dita"><apiname>CAESDecryptor</apiname></xref>.</title>
+<image href="GUID-7461BD6A-F50B-5E14-8995-CF3F2D8F5F14_d0e382693_href.png" placement="inline"/>
+</fig> <p id="GUID-A8F9A25F-B83E-5FE7-840F-4DCF246D3D96"><b>CPadding and derived
+classes</b> </p> <fig id="GUID-648F7604-A3C6-57EB-9B34-7F8079549D9C">
+<title>Above is an inheritance diagram showing the CPadding abstract base
+class used with block ciphers. Also shown are the following derived classes: <xref href="GUID-B7090C61-ECC7-3E8A-8D19-75C9170B0135.dita"><apiname>CPaddingPKCS7</apiname></xref>, <xref href="GUID-3150ECC9-CF8E-3890-91CD-87F5EBCE550E.dita"><apiname>CPaddingPKCS1Encryption</apiname></xref>, <xref href="GUID-F845CB30-7ABE-3EB6-B1B9-C72581897D0C.dita"><apiname>CRSAPKCS1v15Encryptor</apiname></xref>, <xref href="GUID-57C40DCA-8340-38B5-9777-2863C8F88B59.dita"><apiname>CPaddingNone</apiname></xref>, <xref href="GUID-723F64D1-01C5-3A03-B987-0FB862EE8EDE.dita"><apiname>CPaddingPKCS1Signature</apiname></xref>,
+and <xref href="GUID-CC2347BE-3272-3DDF-8BDD-B44F5C0026B3.dita"><apiname>CPaddingSSLv3</apiname></xref></title>
+<image href="GUID-0FD02CAD-B687-50C0-8E44-74ED9B4A936E_d0e382729_href.png" placement="inline"/>
+</fig> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F"><title>Audio Input Streaming Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of Audio Input Streaming. </p> <section><title>Purpose</title> <p>Audio Input Streaming is the interface to streaming sampled audio data from the low level audio controller part of the Multimedia Framework (MMF). </p> <p><b>Audio Input Streaming Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-8B265CE9-32F7-50B2-A441-9297ACAA50E7"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudioinputstream.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudioinputstream.lib</b>  </p> </entry> <entry><p>These files are used for implementing Audio Input Streaming. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>How the Audio Input Streaming classes interact with other components of MMF is shown below: </p> <fig id="GUID-F8971636-AAF3-5DE3-A8D6-40310AB3FE0F"><title>
-             Audio input streaming overview 
-          </title> <image href="GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e314859_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>Streamed audio data is sent and received incrementally. This means: </p> <ul><li id="GUID-4FEF36CA-0938-5897-B799-6C7E4BFB5B94"><p>sound clips sent to the low level audio controller (audio play) can be sent as they arrive rather than waiting until the entire clip is received. </p> <p>The user of the API should maintain the data fragments in a queue before sending them to the server. If the user attempts to send data faster than the server can receive it, the excess data fragments are maintained in another client side queue (invisible to the user), whose elements are references to the buffers passed to it. The server notifies the client using a callback each time it has received a data fragment. This indicates to the client that the data fragment can be deleted. </p> </li> <li id="GUID-EA299CC6-F891-5F49-885B-BC42A564FCFE"><p>sound clips that are being captured by the low level audio controller (audio record) can be read incrementally without having to wait until audio capture is complete. </p> <p>The low level audio controller maintains the received buffers where it can place the audio data that is being captured. The client uses a read function to read the received data into destination descriptors. </p> </li> </ul> <p>The client is also notified (for audio play and record) when the stream is opened and available for use (opening takes place asynchronously), and when the stream is closed. </p> <p>This API can only be used to stream audio data, with the data being stored or sourced from a descriptor. Client applications must ensure that the data is in 16 bit PCM format as this is the only format supported. The API does not support mixing. A priority mechanism is used to control access to the sound device by more than one client. </p> </section> <section><title>Key Audio Input Streaming Classes</title> <p>The functionality provided by Audio Input Streaming is contained within the <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> class. </p> </section> <section><title>Using Audio Input Streaming</title> <p>Clients can use Audio Input Streaming to: </p> <ul><li id="GUID-9C700094-649A-5F8F-9147-75B9A4C5F079"><p>Open, set audio and mobile equipment properties, read from and close the audio stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input Streaming Tutorial</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F"><title>Audio Input Streaming Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of Audio Input Streaming. </p> <section><title>Purpose</title> <p>Audio Input Streaming is the interface to streaming sampled audio data from the low level audio controller part of the Multimedia Framework (MMF). </p> <p><b>Audio Input Streaming Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-8B265CE9-32F7-50B2-A441-9297ACAA50E7"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudioinputstream.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudioinputstream.lib</b>  </p> </entry> <entry><p>These files are used for implementing Audio Input Streaming. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>How the Audio Input Streaming classes interact with other components of MMF is shown below: </p> <fig id="GUID-F8971636-AAF3-5DE3-A8D6-40310AB3FE0F"><title>
+             Audio input streaming overview 
+          </title> <image href="GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e308465_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>Streamed audio data is sent and received incrementally. This means: </p> <ul><li id="GUID-4FEF36CA-0938-5897-B799-6C7E4BFB5B94"><p>sound clips sent to the low level audio controller (audio play) can be sent as they arrive rather than waiting until the entire clip is received. </p> <p>The user of the API should maintain the data fragments in a queue before sending them to the server. If the user attempts to send data faster than the server can receive it, the excess data fragments are maintained in another client side queue (invisible to the user), whose elements are references to the buffers passed to it. The server notifies the client using a callback each time it has received a data fragment. This indicates to the client that the data fragment can be deleted. </p> </li> <li id="GUID-EA299CC6-F891-5F49-885B-BC42A564FCFE"><p>sound clips that are being captured by the low level audio controller (audio record) can be read incrementally without having to wait until audio capture is complete. </p> <p>The low level audio controller maintains the received buffers where it can place the audio data that is being captured. The client uses a read function to read the received data into destination descriptors. </p> </li> </ul> <p>The client is also notified (for audio play and record) when the stream is opened and available for use (opening takes place asynchronously), and when the stream is closed. </p> <p>This API can only be used to stream audio data, with the data being stored or sourced from a descriptor. Client applications must ensure that the data is in 16 bit PCM format as this is the only format supported. The API does not support mixing. A priority mechanism is used to control access to the sound device by more than one client. </p> </section> <section><title>Key Audio Input Streaming Classes</title> <p>The functionality provided by Audio Input Streaming is contained within the <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> class. </p> </section> <section><title>Using Audio Input Streaming</title> <p>Clients can use Audio Input Streaming to: </p> <ul><li id="GUID-9C700094-649A-5F8F-9147-75B9A4C5F079"><p>Open, set audio and mobile equipment properties, read from and close the audio stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input Streaming Tutorial</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e169108_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e175709_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9"><title>The Font and Bitmap Server Overview</title><shortdesc>The Font and Bitmap Server (FBServ) provides a memory efficient way of using bitmaps and fonts. It stores a single instance of each bitmap in either a shared heap or in eXecute In Place (XIP) ROM and provides clients with read and (when appropriate) write access. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>RAM-based fonts and bitmaps are reference counted and retained in RAM while they are being used. When they are no longer required they are automatically deleted. </p> <section><title>Key terms</title> <dl><dlentry><dt>Bitmap</dt> <dd><p>A two-dimensional (2D) buffer (in memory) that contains the color values for individual pixels and is encapsulated by the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> class. </p> </dd> </dlentry> <dlentry><dt>Extended bitmap</dt> <dd><p>A bitmap that contains data compressed using proprietary formats. </p> </dd> </dlentry> <dlentry><dt>Raster image</dt> <dd><p>A data structure representing a rectangular grid of pixels. Scaling raster images usually leads to a loss of quality. </p> </dd> </dlentry> <dlentry><dt> Vector image</dt> <dd><p>The use of geometrical primitives such as points, lines, curves and polygons to represent an image. Vector images can be scaled without loss of quality. </p> </dd> </dlentry> <dlentry><dt>Rasterization</dt> <dd><p>The process of converting vector image drawing instructions into a raster image that can be displayed on the screen. </p> </dd> </dlentry> <dlentry><dt>Scan line</dt> <dd><p>A row of pixels in a raster image. This use of the term is derived from its original use in a raster scanning pattern, such as a video line on the cathode ray tube (CRT) display of a television. </p> </dd> </dlentry> </dl> <p>For font-related terms, see <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita">Font and Text Services Collection Overview</xref>. </p> </section> <section><title>Architectural relationships</title> <p>The Font and Bitmap Server is tightly integrated with the BitGDI and Window Server components. It provides client-side classes for fonts, bitmaps and the typeface store. </p> <p>In use the Font and Bitmap Server is largely transparent. When a client of the Window Server opens a Window Server session, that session silently creates an <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> and stores it in Thread Local Storage (TLS). Client-side font and bitmap classes such as <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> automatically find the session in TLS when they are constructed. (These are client-side objects that refer to objects in the server. Because they are heap-based classes, they have names beginning with C.) </p> <p>The Font and Bitmap Server contains the font store, which is a separate DLL provided by the <xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font Store (FntStore) component</xref>. Client-side access to the font store is through <xref href="GUID-5E287BF6-08C1-36A2-9085-F6B61CC52550.dita"><apiname>CFbsTypefaceStore</apiname></xref>. </p> </section> <section><title>Description</title> <p>The Font and Bitmap Server is a singleton process that owns fonts and bitmaps. <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects are actually client-side handles to the font and bitmap objects, which are stored on a globally accessible heap while they are in use. Bitmap data is stored separately in a globally accessible disconnected chunk. </p> <fig id="GUID-51E1E299-6F2C-561F-8009-E4AF2B58A745"><image href="GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e205050_href.png" placement="inline"/></fig> <p>When the reference count of clients using a font or bitmap that is resident in RAM falls to zero, the server can delete it and free the memory. XIP ROM based bitmaps are accessed in place, not copied into RAM. </p> <p>Open fonts, which are stored in font files as vector data, must be rasterized into the Font and Bitmap Server's shared heap. Rasterizers are plug-ins to the Font Store component. There is a performance overhead to rasterizing an open font and a memory overhead for storing it. </p> </section> <section><title>API summary</title> <p>The Font and Bitmap Server presents a conventional client API through <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref>, which represents the handle to a server-side session. The classes <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> are client-side representations of font and bitmap classes. </p> <ul><li id="GUID-80C1D158-E216-57E2-BB6E-1CD8C208FC92"><p>The <codeph>CFbsFont</codeph> class represents fonts managed by the Font and Bitmap Server, both bitmap fonts and OpenType fonts. </p> </li> <li id="GUID-D0629C81-48F5-5A9F-9D63-EC5B9D5D624B"><p>The <codeph>CFbsBitmap</codeph> class represents bitmaps managed by the Font and Bitmap Server, both RAM and XIP ROM-based bitmaps. For RAM-based bitmaps, this class provides facilities for creating, loading, saving, and resizing bitmaps. RAM-based bitmaps are commonly loaded from a multi-bitmap file (.<filepath>mbm</filepath>) file or created as off-screen bitmaps, and then blitted to a window. For XIP ROM-based bitmaps, <codeph>CFbsBitmap</codeph> provides facilities for accessing the data. </p> </li> </ul> <p>The Font and Bitmap Server is unusual in that the <codeph>RFbsSession</codeph> is stored in client-side thread local storage (TLS). The constructors for <codeph>CFbsFont</codeph> and <codeph>CFbsBitmap</codeph> find this session handle automatically: the client program does not have to pass it as a parameter. Therefore, to most client programs, the client/server nature of using fonts and bitmaps is hidden from the API. </p> <p>The <codeph>RFbsSession</codeph> is created for clients by the Window Server’s client-side API when a Window Server session, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>, is constructed. A Window Server client is therefore also a client of the Font and Bitmap Server. </p> <p>When a client calls, for example, the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1A360BAF-D2EF-3D96-8E6A-C399631EFBB9"><apiname>CWindowGc::DrawBitmap()</apiname></xref> function, the handle number of the bitmap is passed to the Window Server through inter-process communication (IPC). Like all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing commands, the handle number is stored in a client-side command buffer, which by default is flushed to the server side only when it is full. Once flushed to the server-side, the command buffer is processed by the <xref href="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita">Window Server rendering loop</xref>. Consider the scenario where an application calls <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1A360BAF-D2EF-3D96-8E6A-C399631EFBB9"><apiname>CWindowGc::DrawBitmap()</apiname></xref> and then closes the bitmap before the client-side buffer is flushed. There needs to be some mechanism to prevent the bitmap’s reference count from reaching zero and hence being deleted before the Window Server can render it. For this reason, <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> has a callback, which is invoked whenever a client closes a bitmap handle. The callback causes an immediate flush of the Window Server client-side command buffer. The Window Server then creates on the server side a duplicate <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> for the bitmap. This increases the bitmap's reference count and therefore prevents it from being deleted before the Window Server attempts to render it. The same mechanism applies to font handles. This mechanism is transparent to clients of the Window Server. </p> </section> </conbody><related-links><link href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita"><linktext>Font and Bitmap Server Collection</linktext> </link> <link href="GUID-30CAE438-6CC7-5532-8727-781B8E83574A.dita"><linktext>Heap Locking in the Font and Bitmap
-                Server</linktext> </link> <link href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita"><linktext>Font and Text Services Collection
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9"><title>The Font and Bitmap Server Overview</title><shortdesc>The Font and Bitmap Server (FBServ) provides a memory efficient way of using bitmaps and fonts. It stores a single instance of each bitmap in either a shared heap or in eXecute In Place (XIP) ROM and provides clients with read and (when appropriate) write access. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>RAM-based fonts and bitmaps are reference counted and retained in RAM while they are being used. When they are no longer required they are automatically deleted. </p> <section><title>Key terms</title> <dl><dlentry><dt>Bitmap</dt> <dd><p>A two-dimensional (2D) buffer (in memory) that contains the color values for individual pixels and is encapsulated by the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> class. </p> </dd> </dlentry> <dlentry><dt>Extended bitmap</dt> <dd><p>A bitmap that contains data compressed using proprietary formats. </p> </dd> </dlentry> <dlentry><dt>Raster image</dt> <dd><p>A data structure representing a rectangular grid of pixels. Scaling raster images usually leads to a loss of quality. </p> </dd> </dlentry> <dlentry><dt> Vector image</dt> <dd><p>The use of geometrical primitives such as points, lines, curves and polygons to represent an image. Vector images can be scaled without loss of quality. </p> </dd> </dlentry> <dlentry><dt>Rasterization</dt> <dd><p>The process of converting vector image drawing instructions into a raster image that can be displayed on the screen. </p> </dd> </dlentry> <dlentry><dt>Scan line</dt> <dd><p>A row of pixels in a raster image. This use of the term is derived from its original use in a raster scanning pattern, such as a video line on the cathode ray tube (CRT) display of a television. </p> </dd> </dlentry> </dl> <p>For font-related terms, see <xref href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita">Font and Text Services Collection Overview</xref>. </p> </section> <section><title>Architectural relationships</title> <p>The Font and Bitmap Server is tightly integrated with the BitGDI and Window Server components. It provides client-side classes for fonts, bitmaps and the typeface store. </p> <p>In use the Font and Bitmap Server is largely transparent. When a client of the Window Server opens a Window Server session, that session silently creates an <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> and stores it in Thread Local Storage (TLS). Client-side font and bitmap classes such as <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> automatically find the session in TLS when they are constructed. (These are client-side objects that refer to objects in the server. Because they are heap-based classes, they have names beginning with C.) </p> <p>The Font and Bitmap Server contains the font store, which is a separate DLL provided by the <xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font Store (FntStore) component</xref>. Client-side access to the font store is through <xref href="GUID-5E287BF6-08C1-36A2-9085-F6B61CC52550.dita"><apiname>CFbsTypefaceStore</apiname></xref>. </p> </section> <section><title>Description</title> <p>The Font and Bitmap Server is a singleton process that owns fonts and bitmaps. <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects are actually client-side handles to the font and bitmap objects, which are stored on a globally accessible heap while they are in use. Bitmap data is stored separately in a globally accessible disconnected chunk. </p> <fig id="GUID-51E1E299-6F2C-561F-8009-E4AF2B58A745"><image href="GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e200042_href.png" placement="inline"/></fig> <p>When the reference count of clients using a font or bitmap that is resident in RAM falls to zero, the server can delete it and free the memory. XIP ROM based bitmaps are accessed in place, not copied into RAM. </p> <p>Open fonts, which are stored in font files as vector data, must be rasterized into the Font and Bitmap Server's shared heap. Rasterizers are plug-ins to the Font Store component. There is a performance overhead to rasterizing an open font and a memory overhead for storing it. </p> </section> <section><title>API summary</title> <p>The Font and Bitmap Server presents a conventional client API through <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref>, which represents the handle to a server-side session. The classes <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> are client-side representations of font and bitmap classes. </p> <ul><li id="GUID-80C1D158-E216-57E2-BB6E-1CD8C208FC92"><p>The <codeph>CFbsFont</codeph> class represents fonts managed by the Font and Bitmap Server, both bitmap fonts and OpenType fonts. </p> </li> <li id="GUID-D0629C81-48F5-5A9F-9D63-EC5B9D5D624B"><p>The <codeph>CFbsBitmap</codeph> class represents bitmaps managed by the Font and Bitmap Server, both RAM and XIP ROM-based bitmaps. For RAM-based bitmaps, this class provides facilities for creating, loading, saving, and resizing bitmaps. RAM-based bitmaps are commonly loaded from a multi-bitmap file (.<filepath>mbm</filepath>) file or created as off-screen bitmaps, and then blitted to a window. For XIP ROM-based bitmaps, <codeph>CFbsBitmap</codeph> provides facilities for accessing the data. </p> </li> </ul> <p>The Font and Bitmap Server is unusual in that the <codeph>RFbsSession</codeph> is stored in client-side thread local storage (TLS). The constructors for <codeph>CFbsFont</codeph> and <codeph>CFbsBitmap</codeph> find this session handle automatically: the client program does not have to pass it as a parameter. Therefore, to most client programs, the client/server nature of using fonts and bitmaps is hidden from the API. </p> <p>The <codeph>RFbsSession</codeph> is created for clients by the Window Server’s client-side API when a Window Server session, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>, is constructed. A Window Server client is therefore also a client of the Font and Bitmap Server. </p> <p>When a client calls, for example, the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1A360BAF-D2EF-3D96-8E6A-C399631EFBB9"><apiname>CWindowGc::DrawBitmap()</apiname></xref> function, the handle number of the bitmap is passed to the Window Server through inter-process communication (IPC). Like all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing commands, the handle number is stored in a client-side command buffer, which by default is flushed to the server side only when it is full. Once flushed to the server-side, the command buffer is processed by the <xref href="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita">Window Server rendering loop</xref>. Consider the scenario where an application calls <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-1A360BAF-D2EF-3D96-8E6A-C399631EFBB9"><apiname>CWindowGc::DrawBitmap()</apiname></xref> and then closes the bitmap before the client-side buffer is flushed. There needs to be some mechanism to prevent the bitmap’s reference count from reaching zero and hence being deleted before the Window Server can render it. For this reason, <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> has a callback, which is invoked whenever a client closes a bitmap handle. The callback causes an immediate flush of the Window Server client-side command buffer. The Window Server then creates on the server side a duplicate <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> for the bitmap. This increases the bitmap's reference count and therefore prevents it from being deleted before the Window Server attempts to render it. The same mechanism applies to font handles. This mechanism is transparent to clients of the Window Server. </p> </section> </conbody><related-links><link href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita"><linktext>Font and Bitmap Server Collection</linktext> </link> <link href="GUID-30CAE438-6CC7-5532-8727-781B8E83574A.dita"><linktext>Heap Locking in the Font and Bitmap
+                Server</linktext> </link> <link href="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita"><linktext>Font and Text Services Collection
                 Overview </linktext> </link> <link href="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita"><linktext>Font Store Component Overview </linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e200807_href.png has changed
Binary file Symbian3/SDK/Source/GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e205815_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F-master.png has changed
Binary file Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e40348_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e45911_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e66754_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72262200-B940-4D0C-8FA0-6628E9894E8F_d0e72000_href.png has changed
Binary file Symbian3/SDK/Source/GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e65056_href.png has changed
Binary file Symbian3/SDK/Source/GUID-722FAAAD-AD14-4139-857E-83B639FDEB58_d0e70305_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF" xml:lang="en"><title>Message
-query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When there is need for a query that is longer than would fit one screen,
-a message query can be used. A message query can contain a link text that
-can be highlighted and opened.</p>
-<p>By default the left softkey is OK, but with a link in the query the left
-softkey opens the target view of the highlighted link text. The Selection
-key also opens the link target view when the link is highlighted. Note that
-there should be no more than three links in a single query.</p>
-<fig id="GUID-26C627AF-3B5C-447A-9D89-1DEAB99A48EE">
-<title>Message query</title>
-<image href="GUID-78AC068A-C858-41E9-94A8-32C8A8581BF8_d0e68959_href.png" scale="40" placement="inline"/>
-</fig>
-<section><title>Using message queries
-in C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7235E4E9-0046-4BE1-91CF-BD52CE4489DF" xml:lang="en"><title>Message
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When there is need for a query that is longer than would fit one screen,
+a message query can be used. A message query can contain a link text that
+can be highlighted and opened.</p>
+<p>By default the left softkey is <b>OK</b>, but with a link
+in the query the left softkey opens the target view of the highlighted link
+text. The Selection key also opens the link target view when the link is highlighted.
+Note that there should be no more than three links in a single query.</p>
+<fig id="GUID-0CB71881-09FD-4BF2-8275-EE203BEA178E">
+<title>Message query</title>
+<image href="GUID-3BB539EF-E1DE-4EB4-A9F0-BB31430DD64A_d0e63738_href.png" placement="inline"/>
+</fig>
+<section id="GUID-A24C358B-76CC-46E8-AB20-E5E1C73E113C"><title>Using
+message queries in applications</title><p>For implementation information,
+see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-3-1-1-7-1-10-1" xml:lang="en"><title>How
-to create a singleton</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> class allows singleton classes to be
-created and stored by the environment (<xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>) in Thread
-Local Storage (TLS). This provides a means of creating writeable global static
-data. </p>
-<p> <filepath>MySingleton.h</filepath>  </p>
-<codeblock id="GUID-B526F5B3-FBC7-5563-8F5C-37B01A0EC28D-GENID-1-8-1-3-1-1-7-1-10-1-2-3" xml:space="preserve">
-class CMySingleton : public CCoeStatic
-    {
-public:
-    static CMySingleton* SelfL() ;                // Slightly slower
-    static CMySingleton* SelfL( CCoeEnv* aCoeEnv ) ;    // Slightly faster
-    ...
-private:
-    CMySingleton() ;
-    ~CMySingleton() ;
-    } ;
-</codeblock>
-<p> <filepath>MySingleton.cpp</filepath>  </p>
-<codeblock id="GUID-FD7053EB-8769-5C04-98E2-3C8EC8589A10-GENID-1-8-1-3-1-1-7-1-10-1-2-5" xml:space="preserve">
-const TUid KUidMySingleton = {0x10204232} ;
-
-CMySingleton::CMySingleton() : CCoeStatic( KUidMySingleton, CCoeStatic::EThread /*or EApp*/ )
-    {
-    }
-
-CMySingleton* CMySingleton::SelfL()
-    {
-    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( CCoeStatic::Static( KUidMySingleton ) ) ; 
-    if(!self)
-        {
-        self = new( ELeave ) CMySingleton() ;
-        }
-    return self ;
-    }
-
-CMySingleton* CMySingleton::SelfL( CCoeEnv* aCoeEnv )
-    {
-    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( aCoeEnv-&gt;FindStatic( KUidMySingleton ) ) ;
-    if( !self )
-        {
-        self = new( ELeave ) CMySingleton() ;
-        }
-    return self ;
-    }
-</codeblock>
-<p>A singleton must be given a UID. When it is instantiated for the first
-time the base class constructor adds it to the list of singletons in the environment.
-Any subsequent attempts to instantiate the same singleton will result in a
-panic. </p>
-<p>Singletons may be given a <b>destruction priority</b> and a <b>scope</b>. </p>
-<p>The <b>destruction priority</b> determines when the singleton is destroyed
-relative to any other singletons in the environment's list and relative to
-the App Ui. The default priority, <codeph>EDefaultDestructionPriority</codeph>,
-is 100. The higher the priority, the earlier the singleton will be destroyed.
-A negative value indicates that the singleton should be destroyed after the
-AppUi. The more negative the value, the later the destruction. </p>
-<p>The <b>scope</b> may be <codeph>EThread</codeph> (the default) or <codeph>EApp</codeph> and
-determines the visibility of the singleton. </p>
-<p>Once a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p>
-<codeblock id="GUID-7B6E1AE6-30E6-585C-84AC-5C385F0894D3-GENID-1-8-1-3-1-1-7-1-10-1-2-11" xml:space="preserve">// Singleton access
-IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
-IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-6-1-1-4-1-6-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7250950C-5502-5ACE-864B-0EFD5C253053-GENID-1-8-1-6-1-1-4-1-6-1-10-1" xml:lang="en"><title>How
-to create a singleton</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> class allows singleton classes to be
-created and stored by the environment (<xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>) in Thread
-Local Storage (TLS). This provides a means of creating writeable global static
-data. </p>
-<p> <filepath>MySingleton.h</filepath>  </p>
-<codeblock id="GUID-B526F5B3-FBC7-5563-8F5C-37B01A0EC28D-GENID-1-8-1-6-1-1-4-1-6-1-10-1-2-3" xml:space="preserve">
-class CMySingleton : public CCoeStatic
-    {
-public:
-    static CMySingleton* SelfL() ;                // Slightly slower
-    static CMySingleton* SelfL( CCoeEnv* aCoeEnv ) ;    // Slightly faster
-    ...
-private:
-    CMySingleton() ;
-    ~CMySingleton() ;
-    } ;
-</codeblock>
-<p> <filepath>MySingleton.cpp</filepath>  </p>
-<codeblock id="GUID-FD7053EB-8769-5C04-98E2-3C8EC8589A10-GENID-1-8-1-6-1-1-4-1-6-1-10-1-2-5" xml:space="preserve">
-const TUid KUidMySingleton = {0x10204232} ;
-
-CMySingleton::CMySingleton() : CCoeStatic( KUidMySingleton, CCoeStatic::EThread /*or EApp*/ )
-    {
-    }
-
-CMySingleton* CMySingleton::SelfL()
-    {
-    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( CCoeStatic::Static( KUidMySingleton ) ) ; 
-    if(!self)
-        {
-        self = new( ELeave ) CMySingleton() ;
-        }
-    return self ;
-    }
-
-CMySingleton* CMySingleton::SelfL( CCoeEnv* aCoeEnv )
-    {
-    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( aCoeEnv-&gt;FindStatic( KUidMySingleton ) ) ;
-    if( !self )
-        {
-        self = new( ELeave ) CMySingleton() ;
-        }
-    return self ;
-    }
-</codeblock>
-<p>A singleton must be given a UID. When it is instantiated for the first
-time the base class constructor adds it to the list of singletons in the environment.
-Any subsequent attempts to instantiate the same singleton will result in a
-panic. </p>
-<p>Singletons may be given a <b>destruction priority</b> and a <b>scope</b>. </p>
-<p>The <b>destruction priority</b> determines when the singleton is destroyed
-relative to any other singletons in the environment's list and relative to
-the App Ui. The default priority, <codeph>EDefaultDestructionPriority</codeph>,
-is 100. The higher the priority, the earlier the singleton will be destroyed.
-A negative value indicates that the singleton should be destroyed after the
-AppUi. The more negative the value, the later the destruction. </p>
-<p>The <b>scope</b> may be <codeph>EThread</codeph> (the default) or <codeph>EApp</codeph> and
-determines the visibility of the singleton. </p>
-<p>Once a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p>
-<codeblock id="GUID-7B6E1AE6-30E6-585C-84AC-5C385F0894D3-GENID-1-8-1-6-1-1-4-1-6-1-10-1-2-11" xml:space="preserve">// Singleton access
-IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
-IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-7250950C-5502-5ACE-864B-0EFD5C253053.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7250950C-5502-5ACE-864B-0EFD5C253053" xml:lang="en"><title>How
+to create a singleton</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <xref href="GUID-F0C084E2-C683-39E2-A131-77FE3206A02C.dita"><apiname>CCoeStatic</apiname></xref> class allows singleton classes to be
+created and stored by the environment (<xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>) in Thread
+Local Storage (TLS). This provides a means of creating writeable global static
+data. </p>
+<p> <filepath>MySingleton.h</filepath>  </p>
+<codeblock id="GUID-B526F5B3-FBC7-5563-8F5C-37B01A0EC28D" xml:space="preserve">
+class CMySingleton : public CCoeStatic
+    {
+public:
+    static CMySingleton* SelfL() ;                // Slightly slower
+    static CMySingleton* SelfL( CCoeEnv* aCoeEnv ) ;    // Slightly faster
+    ...
+private:
+    CMySingleton() ;
+    ~CMySingleton() ;
+    } ;
+</codeblock>
+<p> <filepath>MySingleton.cpp</filepath>  </p>
+<codeblock id="GUID-FD7053EB-8769-5C04-98E2-3C8EC8589A10" xml:space="preserve">
+const TUid KUidMySingleton = {0x10204232} ;
+
+CMySingleton::CMySingleton() : CCoeStatic( KUidMySingleton, CCoeStatic::EThread /*or EApp*/ )
+    {
+    }
+
+CMySingleton* CMySingleton::SelfL()
+    {
+    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( CCoeStatic::Static( KUidMySingleton ) ) ; 
+    if(!self)
+        {
+        self = new( ELeave ) CMySingleton() ;
+        }
+    return self ;
+    }
+
+CMySingleton* CMySingleton::SelfL( CCoeEnv* aCoeEnv )
+    {
+    CMySingleton* self = static_cast&lt;CMySingleton*&gt;( aCoeEnv-&gt;FindStatic( KUidMySingleton ) ) ;
+    if( !self )
+        {
+        self = new( ELeave ) CMySingleton() ;
+        }
+    return self ;
+    }
+</codeblock>
+<p>A singleton must be given a UID. When it is instantiated for the first
+time the base class constructor adds it to the list of singletons in the environment.
+Any subsequent attempts to instantiate the same singleton will result in a
+panic. </p>
+<p>Singletons may be given a <b>destruction priority</b> and a <b>scope</b>. </p>
+<p>The <b>destruction priority</b> determines when the singleton is destroyed
+relative to any other singletons in the environment's list and relative to
+the App Ui. The default priority, <codeph>EDefaultDestructionPriority</codeph>,
+is 100. The higher the priority, the earlier the singleton will be destroyed.
+A negative value indicates that the singleton should be destroyed after the
+AppUi. The more negative the value, the later the destruction. </p>
+<p>The <b>scope</b> may be <codeph>EThread</codeph> (the default) or <codeph>EApp</codeph> and
+determines the visibility of the singleton. </p>
+<p>Once a singleton has been created it may be accessed through the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> API. </p>
+<codeblock id="GUID-7B6E1AE6-30E6-585C-84AC-5C385F0894D3" xml:space="preserve">// Singleton access
+IMPORT_C static CCoeStatic* Static( TUid aUid ) ;
+IMPORT_C CCoeStatic* FindStatic( TUid aUid ) ;</codeblock>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-72511204-FC90-54AA-9E2E-833318020318.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-72511204-FC90-54AA-9E2E-833318020318.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,49 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-72511204-FC90-54AA-9E2E-833318020318" xml:lang="en"><title>Reading
-to a Buffer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This tutorial describes how to read the data from the table into a buffer. </p>
-<section id="GUID-2FC55195-ADCC-486A-8F48-6C199545436B"><title>Introduction</title> <p>This query allows you to retrieve
-the data in a field. You can retrieve one entry or multiple entries in the
-same column by executing the query in a loop. </p> </section>
-<section id="GUID-6221B43F-E095-43A6-8779-A95FBFEBFE5F"><title>Basic procedure</title> <p>The high level steps to read the
-data into the buffer are shown here: </p> <ol id="GUID-3E8A8F9B-DFC3-5809-93FF-899287668CC3">
-<li id="GUID-E42FA395-D5D4-5CE5-B6C2-4F81049D1973"><p>Configure the SQL statement. </p> </li>
-<li id="GUID-5C982F27-27E8-5AA1-A555-B7C54D3EB92F"><p>Allocate memory and
-copy data. </p> </li>
-<li id="GUID-CC3E796C-4637-50BF-BA10-559F72E9AD2D"><p>Deallocate memory. </p> </li>
-</ol> </section>
-<section id="GUID-B53573AE-EEF9-4477-8088-12059025054A"><title>Detailed steps</title> <p>The steps to read data to a buffer
-are as follows: </p> <p><b>Configure
-the SQL statement</b> </p> <p>Instantiate an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object
-and declare the variables as required. </p> <codeblock id="GUID-1948DBCA-AA3A-5856-B749-16A8A26FF4BC" xml:space="preserve">RSqlStatement myStatement;
-TInt err;</codeblock> <p><b>Allocate
-memory and copy data</b> </p> <p>To retrieve all the entries, use a loop.
-The steps to be performed within the loop are as described below: </p> <ol id="GUID-350EBCA3-166E-5B94-BACF-9A3FDF0B0E1D">
-<li id="GUID-F7E93B5F-793C-53C5-B97C-206589FC33AA"><p>Instantiate an object
-of the <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> class. </p> <codeblock id="GUID-E2DB2F48-B1D6-5496-BF41-108E39F1C938" xml:space="preserve">while((err = myStatement.Next()) == KSqlAtRow)
-    {
-    RBuf myBuffer;</codeblock> </li>
-<li id="GUID-3E3552E9-42F2-5715-B5CB-1D0412B62D09"><p>Allocate enough memory
-to hold the column data using the <codeph>CreateL()</codeph> function as shown
-below. </p> <codeblock id="GUID-FD2C9AB5-BD1E-5FFF-A77F-27DD437663DA" xml:space="preserve">err = myBuffer.CreateL(myStatement.ColumnSize(columnIndex));</codeblock> </li>
-<li id="GUID-8E9C1C93-B5B2-5963-B418-FF16C1B873E7"><p>Copy the data from the
-table into the buffer using <xref href="GUID-58179FB4-4D5B-3FC4-BF51-1221D8EE4D71.dita"><apiname>ColumnBinary()</apiname></xref> function. </p> <codeblock id="GUID-B0EDB685-F549-5B67-ACFE-DEEF636E0066" xml:space="preserve">    err = myStatement.ColumnBinary(myColumnIndex,myBuffer);
-    ...
-    // process data</codeblock> </li>
-</ol> <p><b>Deallocate
-memory</b> </p> <p>Deallocate the memory assigned to the <codeph>RBuf</codeph> object. </p> <codeblock id="GUID-6C46064D-7B65-520E-B378-0BD689D4FD8F" xml:space="preserve">myBuffer.Close();
-    }</codeblock> </section>
-<section id="GUID-F0F18DB6-7D49-4515-8419-11830C5B22F7"><title>See also</title> <p><xref href="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita">Querying
-a Database</xref>  </p> <p> <xref href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita">Deleting
-Rows from a Table</xref>  </p> <p>Reading to a buffer - This document </p> <p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading to Memory</xref>  </p> <p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading to a Data Stream</xref>  </p> <p> <xref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita">Writing to a Data Stream</xref>  </p> <p> <xref href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita">Performing Scalar Queries</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-72511204-FC90-54AA-9E2E-833318020318" xml:lang="en"><title>Reading
+to a Buffer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This tutorial describes how to read the data from the table into a buffer. </p>
+<section id="GUID-2FC55195-ADCC-486A-8F48-6C199545436B"><title>Introduction</title> <p>This
+query allows you to retrieve the data in a field. You can retrieve one entry
+or multiple entries in the same column by executing the query in a loop. </p> </section>
+<section id="GUID-6221B43F-E095-43A6-8779-A95FBFEBFE5F"><title>Basic procedure</title> <p>The
+high level steps to read the data into the buffer are shown here: </p> <ol id="GUID-3E8A8F9B-DFC3-5809-93FF-899287668CC3">
+<li id="GUID-E42FA395-D5D4-5CE5-B6C2-4F81049D1973"><p>Configure the SQL statement. </p> </li>
+<li id="GUID-5C982F27-27E8-5AA1-A555-B7C54D3EB92F"><p>Allocate memory and
+copy data. </p> </li>
+<li id="GUID-CC3E796C-4637-50BF-BA10-559F72E9AD2D"><p>Deallocate memory. </p> </li>
+</ol> </section>
+<section id="GUID-B53573AE-EEF9-4477-8088-12059025054A"><title>Detailed steps</title> <p>The
+steps to read data to a buffer are as follows: </p> <p><b>Configure
+the SQL statement</b> </p> <p>Instantiate an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object
+and declare the variables as required. </p> <codeblock id="GUID-1948DBCA-AA3A-5856-B749-16A8A26FF4BC" xml:space="preserve">RSqlStatement myStatement;
+TInt err;</codeblock> <p><b>Allocate
+memory and copy data</b> </p> <p>To retrieve all the entries, use a loop.
+The steps to be performed within the loop are as described below: </p> <ol id="GUID-350EBCA3-166E-5B94-BACF-9A3FDF0B0E1D">
+<li id="GUID-F7E93B5F-793C-53C5-B97C-206589FC33AA"><p>Instantiate an object
+of the <codeph>RBuf</codeph> class. </p> <codeblock id="GUID-E2DB2F48-B1D6-5496-BF41-108E39F1C938" xml:space="preserve">while((err = myStatement.Next()) == KSqlAtRow)
+    {
+    RBuf myBuffer;</codeblock> </li>
+<li id="GUID-3E3552E9-42F2-5715-B5CB-1D0412B62D09"><p>Allocate enough memory
+to hold the column data using the <codeph>CreateL()</codeph> function as shown
+below. </p> <codeblock id="GUID-FD2C9AB5-BD1E-5FFF-A77F-27DD437663DA" xml:space="preserve">err = myBuffer.CreateL(myStatement.ColumnSize(columnIndex));</codeblock> </li>
+<li id="GUID-8E9C1C93-B5B2-5963-B418-FF16C1B873E7"><p>Copy the data from the
+table into the buffer using <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita#GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A/GUID-91BB3C7E-8B2C-363B-AB9A-E27769D12409"><apiname>RSqlStatement::ColumnBinary(TInt,TDes8
+&amp;)const</apiname></xref> function. </p> <codeblock id="GUID-B0EDB685-F549-5B67-ACFE-DEEF636E0066" xml:space="preserve">    err = myStatement.ColumnBinary(myColumnIndex,myBuffer);
+    ...
+    // process data</codeblock> </li>
+</ol> <p><b>Deallocate
+memory</b> </p> <p>Deallocate the memory assigned to the <codeph>RBuf</codeph> object. </p> <codeblock id="GUID-6C46064D-7B65-520E-B378-0BD689D4FD8F" xml:space="preserve">myBuffer.Close();
+    }</codeblock> </section>
+<section id="GUID-F0F18DB6-7D49-4515-8419-11830C5B22F7"><title>See also</title> <p><xref href="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita">Querying a Database</xref>  </p> <p> <xref href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita">Deleting Rows from a Table</xref>  </p> <p>Reading
+to a buffer - This document </p> <p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading
+to Memory</xref>  </p> <p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading
+to a Data Stream</xref>  </p> <p> <xref href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita">Writing
+to a Data Stream</xref>  </p> <p> <xref href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita">Performing
+Scalar Queries</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e135705_href.png has changed
Binary file Symbian3/SDK/Source/GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e142239_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,67 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241" xml:lang="en"><title>Virtual
-machine model</title><shortdesc>The Kernel provides a 'virtual machine' environment to user processes
-where each process accesses its data in the same virtual address range.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Kernel provides a 'virtual machine' environment to user processes.
-Each process accesses its data in the same virtual address range, called the
-data section, which ranges from:</p>
-<codeblock id="GUID-1FE73FDC-5058-5500-BD9D-C41C41DF2481" xml:space="preserve">0x00400000 to 0x3FFFFFFF</codeblock>
-<p>but note that the static data always appears at:</p>
-<codeblock id="GUID-10A112F3-28EF-589F-BE5C-0B53ED736596" xml:space="preserve">0x00400000</codeblock>
-<p>The code chunk for RAM loaded processes always appears at:</p>
-<codeblock id="GUID-18064043-B6FA-5791-81BC-A8D7859540E3" xml:space="preserve">0x20000000</codeblock>
-<p>This allows multiple processes to run, each executing the same code (from
-the same code chunk) for each of the processes. For example, multiple word
-documents open at the same time, each in a separate instance of the word application.
-This reduces RAM usage.</p>
-<p>In effect, each user process has the same kind of view. Code instructions
-address data using the virtual address; the Memory Management Unit (MMU) is
-responsible for the translation of the virtual address to the physical RAM
-address.</p>
-<p>Only one chunk can occupy a given virtual address range at a time, so a
-context switch between different processes involves re-mapping the chunks.
-The process chunks of the old process are re-mapped to their home addresses.
-These are in the home section, which is the virtual address range from:</p>
-<codeblock id="GUID-27EFC279-550A-5970-98F5-959647314B44" xml:space="preserve">0x80000000 to 0xFFFFFFFF</codeblock>
-<p>ROM code is normally mapped into the address range:</p>
-<codeblock id="GUID-D75CC9C3-2AD3-5BA0-A8B6-F486CF1D0232" xml:space="preserve">0x50000000 to 0x5FFFFFFF</codeblock>
-<p>The process chunks of the new process are mapped from their home addresses
-back to the data section. Chunks which are not accessible by the current user
-process reside in the home section, and they have supervisor-mode-only access
-permissions, so that only the kernel can access them.</p>
-<p>The Kernel's data and stack/heap chunks also reside in the home section.
-These are never visible to user processes. Code chunks for RAM-loaded libraries
-reside at the top end of the home section and have user read-only access,
-so that all user processes can execute code from a loaded library.</p>
-<p>A context switch between processes therefore involves:</p>
-<ul>
-<li id="GUID-F83EAD6D-626D-53B2-9DEB-310617FC03EE"><p>moving the old process
-chunks to the home section, and changing their access permissions to supervisor-only</p> </li>
-<li id="GUID-7BEBDFDE-DFFB-50F9-A136-5C0018CBD78F"><p>moving the new process
-chunks to the data section and changing their access permissions back to user-accessible.</p> </li>
-</ul>
-<p>This is best seen graphically. In the first diagram shown below, user-process
-1 is running and can 'see' all chunks in the clear boxes. Those boxes with
-dark background represent chunks which are not visible to user-process 1.</p>
-<p>When user-process 2 is running, the context switch re-maps the user-process
-2 data to the data section and user process 1 data is re-mapped to the home
-section as the second diagram shows.</p>
-<fig id="GUID-A8C12C7E-7779-5D66-908B-51A1C36E1B63">
-<title>User process 1's view.</title>
-<image href="GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e244111_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-5F15432A-0CCD-5195-921F-506679F023CC">
-<title>User process 2's view.</title>
-<image href="GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e244119_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7287F1D4-023E-5C90-91E1-6D8DF78D8241" xml:lang="en"><title>Virtual
+machine model</title><shortdesc>The Kernel provides a 'virtual machine' environment to user processes
+where each process accesses its data in the same virtual address range.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Kernel provides a 'virtual machine' environment to user processes.
+Each process accesses its data in the same virtual address range, called the
+data section, which ranges from:</p>
+<codeblock id="GUID-1FE73FDC-5058-5500-BD9D-C41C41DF2481" xml:space="preserve">0x00400000 to 0x3FFFFFFF</codeblock>
+<p>but note that the static data always appears at:</p>
+<codeblock id="GUID-10A112F3-28EF-589F-BE5C-0B53ED736596" xml:space="preserve">0x00400000</codeblock>
+<p>The code chunk for RAM loaded processes always appears at:</p>
+<codeblock id="GUID-18064043-B6FA-5791-81BC-A8D7859540E3" xml:space="preserve">0x20000000</codeblock>
+<p>This allows multiple processes to run, each executing the same code (from
+the same code chunk) for each of the processes. For example, multiple word
+documents open at the same time, each in a separate instance of the word application.
+This reduces RAM usage.</p>
+<p>In effect, each user process has the same kind of view. Code instructions
+address data using the virtual address; the Memory Management Unit (MMU) is
+responsible for the translation of the virtual address to the physical RAM
+address.</p>
+<p>Only one chunk can occupy a given virtual address range at a time, so a
+context switch between different processes involves re-mapping the chunks.
+The process chunks of the old process are re-mapped to their home addresses.
+These are in the home section, which is the virtual address range from:</p>
+<codeblock id="GUID-27EFC279-550A-5970-98F5-959647314B44" xml:space="preserve">0x80000000 to 0xFFFFFFFF</codeblock>
+<p>ROM code is normally mapped into the address range:</p>
+<codeblock id="GUID-D75CC9C3-2AD3-5BA0-A8B6-F486CF1D0232" xml:space="preserve">0x50000000 to 0x5FFFFFFF</codeblock>
+<p>The process chunks of the new process are mapped from their home addresses
+back to the data section. Chunks which are not accessible by the current user
+process reside in the home section, and they have supervisor-mode-only access
+permissions, so that only the kernel can access them.</p>
+<p>The Kernel's data and stack/heap chunks also reside in the home section.
+These are never visible to user processes. Code chunks for RAM-loaded libraries
+reside at the top end of the home section and have user read-only access,
+so that all user processes can execute code from a loaded library.</p>
+<p>A context switch between processes therefore involves:</p>
+<ul>
+<li id="GUID-F83EAD6D-626D-53B2-9DEB-310617FC03EE"><p>moving the old process
+chunks to the home section, and changing their access permissions to supervisor-only</p> </li>
+<li id="GUID-7BEBDFDE-DFFB-50F9-A136-5C0018CBD78F"><p>moving the new process
+chunks to the data section and changing their access permissions back to user-accessible.</p> </li>
+</ul>
+<p>This is best seen graphically. In the first diagram shown below, user-process
+1 is running and can 'see' all chunks in the clear boxes. Those boxes with
+dark background represent chunks which are not visible to user-process 1.</p>
+<p>When user-process 2 is running, the context switch re-maps the user-process
+2 data to the data section and user process 1 data is re-mapped to the home
+section as the second diagram shows.</p>
+<fig id="GUID-A8C12C7E-7779-5D66-908B-51A1C36E1B63">
+<title>User process 1's view.</title>
+<image href="GUID-09044578-9ADB-540F-A854-A818EA3970B7_d0e240374_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-5F15432A-0CCD-5195-921F-506679F023CC">
+<title>User process 2's view.</title>
+<image href="GUID-1A7183EC-B55E-5B61-8965-89C939ECB395_d0e240382_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e188567_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e193629_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e229035_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e232772_href.png has changed
--- a/Symbian3/SDK/Source/GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C" xml:lang="en"><title>Navigation
-using tabs</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian user interface uses the tab metaphor that allows combining
-several pages of related information into a single state when all of it would
-not fit into a single screen or list. The user can switch the tabs using the
-Arrow left and Arrow right keys as indicated in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref>.</p>
-<fig id="GUID-A8BCDBF4-9FFE-46C7-BDB7-4A3556BB41B5">
-<title>Navigation using tabs</title>
-<image href="GUID-77AD4D8C-08CA-45C4-B5E7-04B4C7958A1A_d0e81736_href.png" scale="70" placement="inline"/>
-</fig>
-<p>In this example, state 1-3 uses two tabs to present its information. The
-user moves between views 1-3a and 1-3b using the Arrow left and Arrow right
-keys. Note that there is no Back function moving between the tab views; Back
-from both of them leads to state 1.</p>
-<p>Tab-controlled views apply the following rules:</p>
-<ul>
-<li><p>A list view from which each of the tabbed views can be accessed should
-precede the tabbed views one level higher. </p></li>
-<li><p>Moving from one tab view to another has no effect on the function of
-the Back softkey in these views: from all of them, the Back function leads
-to the same place, the previous level in the application. In this respect,
-tabbed views are interpreted as one state in the application. </p></li>
-<li><p>When a state has tabbed views, one of them is the default view that
-is opened when the user enters the state from the previous level. </p></li>
-<li><p>When the user has proceeded from a tabbed view into a deeper hierarchy
-level, the Back function returns to the same tabbed view where the user came
-from (which is not necessarily the default view described in the previous
-bullet). </p></li>
-<li><p>The possibilities to go forward from tab views may differ from one
-view to another (although typically they are similar). This means that one
-tab view may have other functions available to the user than another tab view
-in the same state.</p></li>
-</ul>
-<fig id="GUID-96783EEE-47E3-4896-87A6-3283DFF0B5B9">
-<title> Touch interaction model for tabs</title>
-<image href="GUID-DD263BCA-B660-49A5-BB65-8C45035002BD_d0e81773_href.png" placement="inline"/>
-</fig>
-<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-8-1-6-1-1-7-1-5-1-1-5-1-2-7"><title>Default touch
-events for tabs</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-
-<entry><p>Touch down on a tab</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic tab effect and audio feedback
-are provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on a tab</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch release on a tab</p></entry>
-<entry><p>Corresponding view is changed.</p><p>Activated tab moves to the
-middle of the tab view (all the tabs move along) unless it is the first or
-the last tab in the application.</p></entry>
-<entry><p>Highlight disappears </p><p>Tactile: Basic tab effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move horizontally on tab area and release</p></entry>
-<entry><p>Previous or next tab is opened</p></entry>
-<entry><p>Tactile: Basic tab effect and audio feedback are provided with touch
-down event.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-33374D49-BB50-493C-ACD6-46BC454122B7"><title>Using
-tabs in C++ applications</title><p>The API to use for tabs is the <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs
-API</xref>. For implementation information, see <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html#Tabs_API_Specification.topic3" scope="peer">Using the Tabs API</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e201561_href.png has changed
Binary file Symbian3/SDK/Source/GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e206569_href.png has changed
--- a/Symbian3/SDK/Source/GUID-730E1E2B-BB8B-4C66-8A70-0FBCE7680B66.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-730E1E2B-BB8B-4C66-8A70-0FBCE7680B66" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-    <p>The Generic button API is an SDK API and first released in S60 5th Edition.</p>
-  </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7" xml:lang="en"><title>Overview
-of hash algorithms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-81D29BE4-82D6-5880-8612-1A55415A6730"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-AEB1ABD2-4977-5A54-86AC-F1D87615C57F">What is a cryptographic hash?</xref>  </p> </li>
-<li id="GUID-716D3CA9-5151-5E18-BD61-216A538E037C"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-1F051CF3-77A8-5408-B14B-A7FD5CFF197F">What is an HMAC?</xref>  </p> </li>
-<li id="GUID-C9475D12-31D6-5CF8-BF82-6B37F241B2EF"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-08E26A60-A8B1-5F54-901D-69787BC8950E">The base class and its derived classes</xref>  </p> </li>
-</ul>
-<section id="GUID-AEB1ABD2-4977-5A54-86AC-F1D87615C57F"><title>What is a cryptographic
-hash?</title> <p>A cryptographic hash algorithm (also known as a message digest,
-a one-way function, or simply a hash) takes a variable-length input (the message)
-and produce a fixed length output known as the hash (or digest) of the input.
-It is often useful to think of the resulting output as a representation, or
-fingerprint, of the original input. </p> <p>There are two properties that
-are important to cryptographic hashes: </p> <ul>
-<li id="GUID-2868C035-9933-5EF2-86E7-E696ADF3A67D"><p>it must be hard to find
-collisions, i.e. it is highly unlikely that two distinct strings will hash
-to the same output </p> </li>
-<li id="GUID-43BF26B8-466F-589B-B8F5-B4F6EF42504F"><p>it is extremely difficult
-to determine the original input given only the output. Even very small changes
-to the input will give rise to radical changes in the output. </p> </li>
-</ul> <p>These properties make hash functions useful in cryptography and other
-applications as they allow the representation of objects in a known fixed
-size. </p> <p>The hash algorithms supported by the Symbian platform
-are: </p> <table id="GUID-D9C86D99-3790-5332-988E-E38FA935DE3E">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Hash algorithms</entry>
-<entry>Further information</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>MD4 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
-1320</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>MD5 </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
-1321</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>SHA-1 </p> </entry>
-<entry><p> <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
-180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
-3174</xref>  </p> </entry>
-</row>
-<row>
-<entry><p>HMAC </p> </entry>
-<entry><p> <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC
-2104</xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>There is also support for MD2 (see <xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC 1319</xref>) and SHA, which is there for backward compatibility,
-but it is not to be used in new code. </p> </section>
-<section id="GUID-1F051CF3-77A8-5408-B14B-A7FD5CFF197F"><title>What is an
-HMAC?</title> <p>Unlike the hashes mentioned above, HMAC (Hashed Message Authentication
-Code) is a key-dependant hash. It allows a key to be specified at creation
-of the HMAC. Only people with that key can verify the hash. HMACs are useful
-when authentication but not secrecy of a message is required. </p> <p>The
-sender appends to the message data an authentication tag (which is a function
-of the data and the shared key). The recipient recomputes the authentication
-tag on the received message using the shared key. The integrity of the message
-is deemed valid only if the two authentication tags match. </p> <p>For further
-details see <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC
-2104</xref>. </p> </section>
-<section id="GUID-08E26A60-A8B1-5F54-901D-69787BC8950E"><title>The Hash API</title> <p> <codeph>CMessageDigest</codeph> is
-the base class for all hash algorithms. </p> <p>The diagram below show the
-main classes used in the hash framework. For information on each class see
-the Cryptography API Reference material. </p> <fig id="GUID-08CF0C25-D314-56B0-9667-4CDDA925F786">
-<title>              Inheritance diagram for the Hash API            </title>
-<image href="GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e388502_href.png" placement="inline"/>
-</fig> <p>The hash API is used internally by the Security components: AppInst,
-Certman (Certificate Management) and Cryptography. Networking/TLS uses a pseudo-random
-function (PRF) based on HMAC. Both MD5 and SHA-1 are used in TLS. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7" xml:lang="en"><title>Overview
+of hash algorithms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-81D29BE4-82D6-5880-8612-1A55415A6730"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-AEB1ABD2-4977-5A54-86AC-F1D87615C57F">What is a cryptographic hash?</xref>  </p> </li>
+<li id="GUID-716D3CA9-5151-5E18-BD61-216A538E037C"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-1F051CF3-77A8-5408-B14B-A7FD5CFF197F">What is an HMAC?</xref>  </p> </li>
+<li id="GUID-C9475D12-31D6-5CF8-BF82-6B37F241B2EF"><p><xref href="GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7.dita#GUID-73491C1D-6C74-5434-B2F3-4AF416AE37B7/GUID-08E26A60-A8B1-5F54-901D-69787BC8950E">The base class and its derived classes</xref>  </p> </li>
+</ul>
+<section id="GUID-AEB1ABD2-4977-5A54-86AC-F1D87615C57F"><title>What is a cryptographic
+hash?</title> <p>A cryptographic hash algorithm (also known as a message digest,
+a one-way function, or simply a hash) takes a variable-length input (the message)
+and produce a fixed length output known as the hash (or digest) of the input.
+It is often useful to think of the resulting output as a representation, or
+fingerprint, of the original input. </p> <p>There are two properties that
+are important to cryptographic hashes: </p> <ul>
+<li id="GUID-2868C035-9933-5EF2-86E7-E696ADF3A67D"><p>it must be hard to find
+collisions, i.e. it is highly unlikely that two distinct strings will hash
+to the same output </p> </li>
+<li id="GUID-43BF26B8-466F-589B-B8F5-B4F6EF42504F"><p>it is extremely difficult
+to determine the original input given only the output. Even very small changes
+to the input will give rise to radical changes in the output. </p> </li>
+</ul> <p>These properties make hash functions useful in cryptography and other
+applications as they allow the representation of objects in a known fixed
+size. </p> <p>The hash algorithms supported by the Symbian platform
+are: </p> <table id="GUID-D9C86D99-3790-5332-988E-E38FA935DE3E">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Hash algorithms</entry>
+<entry>Further information</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>MD4 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
+1320</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>MD5 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
+1321</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>SHA-1 </p> </entry>
+<entry><p> <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
+180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
+3174</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>HMAC </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC
+2104</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>There is also support for MD2 (see <xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC 1319</xref>) and SHA, which is there for backward compatibility,
+but it is not to be used in new code. </p> </section>
+<section id="GUID-1F051CF3-77A8-5408-B14B-A7FD5CFF197F"><title>What is an
+HMAC?</title> <p>Unlike the hashes mentioned above, HMAC (Hashed Message Authentication
+Code) is a key-dependant hash. It allows a key to be specified at creation
+of the HMAC. Only people with that key can verify the hash. HMACs are useful
+when authentication but not secrecy of a message is required. </p> <p>The
+sender appends to the message data an authentication tag (which is a function
+of the data and the shared key). The recipient recomputes the authentication
+tag on the received message using the shared key. The integrity of the message
+is deemed valid only if the two authentication tags match. </p> <p>For further
+details see <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC
+2104</xref>. </p> </section>
+<section id="GUID-08E26A60-A8B1-5F54-901D-69787BC8950E"><title>The Hash API</title> <p> <codeph>CMessageDigest</codeph> is
+the base class for all hash algorithms. </p> <p>The diagram below show the
+main classes used in the hash framework. For information on each class see
+the Cryptography API Reference material. </p> <fig id="GUID-08CF0C25-D314-56B0-9667-4CDDA925F786">
+<title>              Inheritance diagram for the Hash API            </title>
+<image href="GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e383456_href.png" placement="inline"/>
+</fig> <p>The hash API is used internally by the Security components: AppInst,
+Certman (Certificate Management) and Cryptography. Networking/TLS uses a pseudo-random
+function (PRF) based on HMAC. Both MD5 and SHA-1 are used in TLS. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e31753_href.png has changed
Binary file Symbian3/SDK/Source/GUID-736F9C4B-7C70-5927-A9C9-21A127C431AF_d0e37319_href.png has changed
--- a/Symbian3/SDK/Source/GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,1061 +1,1061 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F" xml:lang="en"><title>Turkish
-National Language Support</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the plug-in converters for Turkish national language
-support and the alphabet each converter supports. </p>
-<section><title>Introduction</title> <p>To convert a Turkish SMS message using
-the National Language Encoding, Symbian provides three Turkish plug-in converters: </p> <ul>
-<li id="GUID-B7A5D218-48FE-5F7E-B14D-FB7AD51AD165"><p>Default GSM7 Turkish
-Single Converter. The highlighted boxes in Figure 1 show that it supports
-the default GSM 7-bit alphabet, the Turkish single shift alphabet and the
-set of lossy conversions supported by the standard converter. This converter
-is identified by the <codeph>KCharacterSetIdentifierTurkishSingleSms7Bit</codeph> UID,
-which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
-1 </p> <fig id="GUID-43661005-68C0-5AF5-8378-8F11B7AE4622">
-<title>                   Alphabet of the Default GSM7 Turkish Single Converter
-                </title>
-<image href="GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413401_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-6A55D9A6-6BA5-5345-9103-317EF2423D55"><p>Turkish Locking GSM7
-Extension Converter. The highlighted boxes in Figure 2 show that it supports
-the Turkish locking shift alphabet, default GSM extension alphabet and the
-set of lossy conversions supported by the standard converter. This converter
-is identified by the <codeph>KCharacterSetIdentifierTurkishLockingSms7Bit</codeph> UID,
-which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
-2 </p> <fig id="GUID-7D61A70A-6DEF-567B-B76D-2F4505FC4A1A">
-<title>                   Alphabet of the Turkish Locking GSM7 Extension Converter
-                </title>
-<image href="GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413423_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-842C8CE4-F8AC-58E5-9A7F-AEED596E0E46"><p>Turkish Locking Single
-Converter. The highlighted boxes in Figure 3 show that it supports the Turkish
-locking shift alphabet, Turkish single shift alphabet and the set of lossy
-conversions supported by the standard converter. This converter is identified
-by the <codeph>KCharacterSetIdentifierTurkishLockingAndSingleSms7Bit</codeph> UID,
-which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
-3 </p> <fig id="GUID-3EC6D160-1BD2-52A2-BC22-187A7D7B6347">
-<title>                   Alphabet of the Turkish Locking Single Converter
-                </title>
-<image href="GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413445_href.png" placement="inline"/>
-</fig> </li>
-</ul> <p> <b>Note</b>: For all of the converters, any undefined Unicode is
-converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code
-outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the
-Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section>
-<section id="GUID-A9C92272-F723-550E-932B-0917DF1B948E"><title>Alphabet</title> <p>To
-better understand the different character set of each converter, the Standard
-SMS Converter is set as the baseline. The following comparison tables help
-identify the different character set supported by each Turkish converter as
-a comparison to the standard SMS converter. </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-CE4440BC-CF66-5661-BE27-B7ABDE3AC0B5">Table 1A Default GSM7 Turkish Single Converter vs. Standard SMS Converter
-– Unicode to GSM Code </xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-60560522-22A3-50BD-9942-1E89029FECCA">Table
-1B Default GSM7 Turkish Single Converter vs. Standard SMS Converter – GSM
-Code to Unicode </xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-A431DEA2-EE33-5F04-8E67-97209603026B">Table
-2A Turkish Locking GSM7 Extension Converter vs. Standard SMS Converter – Unicode
-to GSM Code</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-8D344FF2-0299-575C-97CC-227DBEA0AE50">Table
-2B Turkish Locking GSM7 Extension Converter vs. Standard SMS Converter – GSM
-Code to Unicode</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-47872144-7218-536D-8FB1-B958D78064C5">Table
-3A Turkish Locking Single Converter vs. Standard SMS Converter – Unicode to
-GSM Code</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-29B477B9-E63D-54B1-9C0B-3D7E1D5818A6">Table
-3B Turkish Locking Single Converter vs. Standard SMS Converter – GSM Code
-to Unicode</xref>  </p> <p id="GUID-CE4440BC-CF66-5661-BE27-B7ABDE3AC0B5"><b>Default
-GSM7 Turkish Single Converter vs. Standard SMS Converter – Unicode to GSM
-Code</b> </p> <p>Table 1A </p> <table id="GUID-FC1F323F-252C-56EE-8366-937A40959879">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Default GSM7 Turkish Single Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry/>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Original Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E6 </p> </entry>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>0x1B49 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>0x1B53 </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x1B63 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E7 </p> </entry>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>0x1B69 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>0x1B73 </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p> </p> </entry>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-60560522-22A3-50BD-9942-1E89029FECCA"><b>Default GSM7
-Turkish Single Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
-1B </p> <table id="GUID-15AE4CC3-8463-520B-A4AA-80B777B1D311">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Default GSM7 Turkish Single Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00C7 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>FORM FEED </p> </entry>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>FORM FEED </p> </entry>
-<entry/>
-<entry><p>(PAGE BREAK) </p> </entry>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>(PAGE BREAK) </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>0x0047 </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G </p> </entry>
-</row>
-<row>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p>0x1B49 </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B49 </p> </entry>
-<entry><p>0x0049 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1B53 </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B53 </p> </entry>
-<entry><p>0x0053 </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>0x0067 </p> </entry>
-<entry><p>g LATIN SMALL LETTER G </p> </entry>
-</row>
-<row>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p>0x1B69 </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B69 </p> </entry>
-<entry><p>0x0069 </p> </entry>
-<entry><p>i LATIN SMALL LETTER I </p> </entry>
-</row>
-<row>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1B73 </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B73 </p> </entry>
-<entry><p>0x0073 </p> </entry>
-<entry><p>s LATIN SMALL LETTER S </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-A431DEA2-EE33-5F04-8E67-97209603026B"><b>Turkish Locking
-GSM7 Extension Converter vs. Standard SMS Converter – Unicode to GSM Code</b> </p> <p>Table
-2A </p> <table id="GUID-B1A6813E-F911-5E79-ADEA-D1B8A70E227C">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Turkish Locking GSM7 Extension Converter</b>  </p> </entry>
-<entry/>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry/>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry/>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-<entry><p>0x00E8 </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-<entry><p>0x00EC </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E6 </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E7 </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>(FORM FEED) </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>(PAGE BREAK) </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>0x1B65 </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry/>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-<entry><p>0x00A1 </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-</row>
-<row>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry><p>Í LATIN CAPITAL LETTER I WITH ACUTE </p> </entry>
-<entry><p>0x00CD </p> </entry>
-<entry><p>0x49 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
-</row>
-<row>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-<entry><p>0x00BF </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-8D344FF2-0299-575C-97CC-227DBEA0AE50"><b>Turkish Locking
-GSM7 Extension Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
-2B </p> <table id="GUID-DDCAEF17-CB0A-53F3-A039-910A3C1F11C2">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Turkish Locking GSM7 Extension Converter</b>  </p> </entry>
-<entry/>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry><p> </p> </entry>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00C7 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B07 </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B07 </p> </entry>
-<entry><p>0x00EC </p> </entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>(FORM FEED) </p> </entry>
-<entry/>
-<entry><p>(PAGE BREAK) </p> </entry>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>(PAGE BREAK) </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B0B </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B0B </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B0C </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B0C </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B1C </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B1C </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE (ash) * </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B1D </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B1D </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE (ash) * </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B60 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B60 </p> </entry>
-<entry><p>0x00BF </p> </entry>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry/>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>0x00A1 </p> </entry>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-47872144-7218-536D-8FB1-B958D78064C5"><b>Turkish Locking
-Single Converter vs. Standard SMS Converter – Unicode to GSM Code</b> </p> <p>Table
-3A </p> <table id="GUID-479C8C8C-FDFD-504C-950C-3C4C711F440D">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Turkish Locking Single Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry><p> </p> </entry>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry/>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-<entry><p>0x00E8 </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-<entry><p>0x00EC </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E6 </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
-<entry><p>0x01E7 </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>(FORM FEED) </p> </entry>
-<entry><p>0x000C </p> </entry>
-<entry><p>0x1B0A </p> </entry>
-<entry><p>(PAGE BREAK) </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>0x1B65 </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-</row>
-<row>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry/>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-<entry><p>0x00A1 </p> </entry>
-<entry><p>0x40 </p> </entry>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
-</row>
-<row>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry/>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-<entry><p>0x00BF </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-29B477B9-E63D-54B1-9C0B-3D7E1D5818A6"><b>Turkish Locking
-Single Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
-3B </p> <table id="GUID-E1B67820-ED01-590F-80EC-73D19323CDB7">
-<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
-<tbody>
-<row>
-<entry><p> <b>Turkish Locking Single Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-<entry><p> <b/>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-<entry><p> </p> </entry>
-<entry><p> <b>Character</b>  </p> </entry>
-<entry><p> <b>GSM</b>  </p> </entry>
-<entry><p> <b>Unicode</b>  </p> </entry>
-<entry><p> <b>Converted Character</b>  </p> </entry>
-</row>
-<row>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry/>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-<entry><p>0x04 </p> </entry>
-<entry><p>0x00E8 </p> </entry>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-<entry><p>0x07 </p> </entry>
-<entry><p>0x00EC </p> </entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00C7 </p> </entry>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x09 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-</row>
-<row>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x0B </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-<entry><p>0x0C </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B04 </p> </entry>
-<entry><p>0x20AC </p> </entry>
-<entry><p>€ EURO SIGN </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B04 </p> </entry>
-<entry><p>0x00E8 </p> </entry>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B07 </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B07 </p> </entry>
-<entry><p>0x00EC </p> </entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B0B </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B0B </p> </entry>
-<entry><p>0x00D8 </p> </entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B0C </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B0C </p> </entry>
-<entry><p>0x00F8 </p> </entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B1C </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B1C </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE (ash) * </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B1D </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B1D </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE (ash) * </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>0x011E </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B47 </p> </entry>
-<entry><p>0x0047 </p> </entry>
-<entry><p>G LATIN CAPITAL LETTER G </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B49 </p> </entry>
-<entry><p>0x0130 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B49 </p> </entry>
-<entry><p>0x0049 </p> </entry>
-<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B53 </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B53 </p> </entry>
-<entry><p>0x0053 </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B60 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B60 </p> </entry>
-<entry><p>0x00BF </p> </entry>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>0x011F </p> </entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B67 </p> </entry>
-<entry><p>0x0067 </p> </entry>
-<entry><p>g LATIN SMALL LETTER G </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>0x1B69 </p> </entry>
-<entry><p>0x0131 </p> </entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
-<entry/>
-<entry/>
-<entry><p>0x1B69 </p> </entry>
-<entry><p>0x0069 </p> </entry>
-<entry><p>i LATIN SMALL LETTER I </p> </entry>
-</row>
-<row>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>0x015E </p> </entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-<entry><p>0x1C </p> </entry>
-<entry><p>0x00C6 </p> </entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>0x015F </p> </entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
-<entry/>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-<entry><p>0x1D </p> </entry>
-<entry><p>0x00E6 </p> </entry>
-<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
-</row>
-<row>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>0x00E7 </p> </entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
-<entry/>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-<entry><p>0x60 </p> </entry>
-<entry><p>0x00BF </p> </entry>
-<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS
-Encodings and Converters Overview</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F" xml:lang="en"><title>Turkish
+National Language Support</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the plug-in converters for Turkish national language
+support and the alphabet each converter supports. </p>
+<section><title>Introduction</title> <p>To convert a Turkish SMS message using
+the National Language Encoding, Symbian provides three Turkish plug-in converters: </p> <ul>
+<li id="GUID-B7A5D218-48FE-5F7E-B14D-FB7AD51AD165"><p>Default GSM7 Turkish
+Single Converter. The highlighted boxes in Figure 1 show that it supports
+the default GSM 7-bit alphabet, the Turkish single shift alphabet and the
+set of lossy conversions supported by the standard converter. This converter
+is identified by the <codeph>KCharacterSetIdentifierTurkishSingleSms7Bit</codeph> UID,
+which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
+1 </p> <fig id="GUID-43661005-68C0-5AF5-8378-8F11B7AE4622">
+<title>                   Alphabet of the Default GSM7 Turkish Single Converter
+                </title>
+<image href="GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413239_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-6A55D9A6-6BA5-5345-9103-317EF2423D55"><p>Turkish Locking GSM7
+Extension Converter. The highlighted boxes in Figure 2 show that it supports
+the Turkish locking shift alphabet, default GSM extension alphabet and the
+set of lossy conversions supported by the standard converter. This converter
+is identified by the <codeph>KCharacterSetIdentifierTurkishLockingSms7Bit</codeph> UID,
+which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
+2 </p> <fig id="GUID-7D61A70A-6DEF-567B-B76D-2F4505FC4A1A">
+<title>                   Alphabet of the Turkish Locking GSM7 Extension Converter
+                </title>
+<image href="GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413261_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-842C8CE4-F8AC-58E5-9A7F-AEED596E0E46"><p>Turkish Locking Single
+Converter. The highlighted boxes in Figure 3 show that it supports the Turkish
+locking shift alphabet, Turkish single shift alphabet and the set of lossy
+conversions supported by the standard converter. This converter is identified
+by the <codeph>KCharacterSetIdentifierTurkishLockingAndSingleSms7Bit</codeph> UID,
+which is defined in the <filepath>charconv.h</filepath> header file. </p> <p>Figure
+3 </p> <fig id="GUID-3EC6D160-1BD2-52A2-BC22-187A7D7B6347">
+<title>                   Alphabet of the Turkish Locking Single Converter
+                </title>
+<image href="GUID-03671C88-6911-5184-A9D4-A2D2FD69A2B9_d0e413283_href.png" placement="inline"/>
+</fig> </li>
+</ul> <p> <b>Note</b>: For all of the converters, any undefined Unicode is
+converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code
+outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the
+Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section>
+<section id="GUID-A9C92272-F723-550E-932B-0917DF1B948E"><title>Alphabet</title> <p>To
+better understand the different character set of each converter, the Standard
+SMS Converter is set as the baseline. The following comparison tables help
+identify the different character set supported by each Turkish converter as
+a comparison to the standard SMS converter. </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-CE4440BC-CF66-5661-BE27-B7ABDE3AC0B5">Table 1A Default GSM7 Turkish Single Converter vs. Standard SMS Converter
+– Unicode to GSM Code </xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-60560522-22A3-50BD-9942-1E89029FECCA">Table
+1B Default GSM7 Turkish Single Converter vs. Standard SMS Converter – GSM
+Code to Unicode </xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-A431DEA2-EE33-5F04-8E67-97209603026B">Table
+2A Turkish Locking GSM7 Extension Converter vs. Standard SMS Converter – Unicode
+to GSM Code</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-8D344FF2-0299-575C-97CC-227DBEA0AE50">Table
+2B Turkish Locking GSM7 Extension Converter vs. Standard SMS Converter – GSM
+Code to Unicode</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-47872144-7218-536D-8FB1-B958D78064C5">Table
+3A Turkish Locking Single Converter vs. Standard SMS Converter – Unicode to
+GSM Code</xref>  </p> <p><xref href="GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F.dita#GUID-738FADA9-E26F-53F1-A6D6-2E82019DDA1F/GUID-29B477B9-E63D-54B1-9C0B-3D7E1D5818A6">Table
+3B Turkish Locking Single Converter vs. Standard SMS Converter – GSM Code
+to Unicode</xref>  </p> <p id="GUID-CE4440BC-CF66-5661-BE27-B7ABDE3AC0B5"><b>Default
+GSM7 Turkish Single Converter vs. Standard SMS Converter – Unicode to GSM
+Code</b> </p> <p>Table 1A </p> <table id="GUID-FC1F323F-252C-56EE-8366-937A40959879">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Default GSM7 Turkish Single Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry/>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Original Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E6 </p> </entry>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>0x1B49 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>0x1B53 </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x1B63 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E7 </p> </entry>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>0x1B69 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>0x1B73 </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p> </p> </entry>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-60560522-22A3-50BD-9942-1E89029FECCA"><b>Default GSM7
+Turkish Single Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
+1B </p> <table id="GUID-15AE4CC3-8463-520B-A4AA-80B777B1D311">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Default GSM7 Turkish Single Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00C7 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>FORM FEED </p> </entry>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>FORM FEED </p> </entry>
+<entry/>
+<entry><p>(PAGE BREAK) </p> </entry>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>(PAGE BREAK) </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>0x0047 </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G </p> </entry>
+</row>
+<row>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p>0x1B49 </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B49 </p> </entry>
+<entry><p>0x0049 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1B53 </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B53 </p> </entry>
+<entry><p>0x0053 </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>0x0067 </p> </entry>
+<entry><p>g LATIN SMALL LETTER G </p> </entry>
+</row>
+<row>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p>0x1B69 </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B69 </p> </entry>
+<entry><p>0x0069 </p> </entry>
+<entry><p>i LATIN SMALL LETTER I </p> </entry>
+</row>
+<row>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1B73 </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B73 </p> </entry>
+<entry><p>0x0073 </p> </entry>
+<entry><p>s LATIN SMALL LETTER S </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-A431DEA2-EE33-5F04-8E67-97209603026B"><b>Turkish Locking
+GSM7 Extension Converter vs. Standard SMS Converter – Unicode to GSM Code</b> </p> <p>Table
+2A </p> <table id="GUID-B1A6813E-F911-5E79-ADEA-D1B8A70E227C">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Turkish Locking GSM7 Extension Converter</b>  </p> </entry>
+<entry/>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry/>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry/>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+<entry><p>0x00E8 </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+<entry><p>0x00EC </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E6 </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E7 </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>(FORM FEED) </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>(PAGE BREAK) </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>0x1B65 </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry/>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+<entry><p>0x00A1 </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+</row>
+<row>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry><p>Í LATIN CAPITAL LETTER I WITH ACUTE </p> </entry>
+<entry><p>0x00CD </p> </entry>
+<entry><p>0x49 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
+</row>
+<row>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+<entry><p>0x00BF </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-8D344FF2-0299-575C-97CC-227DBEA0AE50"><b>Turkish Locking
+GSM7 Extension Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
+2B </p> <table id="GUID-DDCAEF17-CB0A-53F3-A039-910A3C1F11C2">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Turkish Locking GSM7 Extension Converter</b>  </p> </entry>
+<entry/>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry><p> </p> </entry>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00C7 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B07 </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B07 </p> </entry>
+<entry><p>0x00EC </p> </entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>(FORM FEED) </p> </entry>
+<entry/>
+<entry><p>(PAGE BREAK) </p> </entry>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>(PAGE BREAK) </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B0B </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B0B </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B0C </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B0C </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B1C </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B1C </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE (ash) * </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B1D </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B1D </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE (ash) * </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B60 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B60 </p> </entry>
+<entry><p>0x00BF </p> </entry>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry/>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>0x00A1 </p> </entry>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-47872144-7218-536D-8FB1-B958D78064C5"><b>Turkish Locking
+Single Converter vs. Standard SMS Converter – Unicode to GSM Code</b> </p> <p>Table
+3A </p> <table id="GUID-479C8C8C-FDFD-504C-950C-3C4C711F440D">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Turkish Locking Single Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry><p> </p> </entry>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry/>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+<entry><p>0x00E8 </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+<entry><p>0x00EC </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E6 </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
+<entry><p>0x01E7 </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>(FORM FEED) </p> </entry>
+<entry><p>0x000C </p> </entry>
+<entry><p>0x1B0A </p> </entry>
+<entry><p>(PAGE BREAK) </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>0x1B65 </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+</row>
+<row>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry/>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+<entry><p>0x00A1 </p> </entry>
+<entry><p>0x40 </p> </entry>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p> </entry>
+</row>
+<row>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry/>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+<entry><p>0x00BF </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-29B477B9-E63D-54B1-9C0B-3D7E1D5818A6"><b>Turkish Locking
+Single Converter vs. Standard SMS Converter – GSM Code to Unicode</b> </p> <p>Table
+3B </p> <table id="GUID-E1B67820-ED01-590F-80EC-73D19323CDB7">
+<tgroup cols="9"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/><colspec colname="col5"/><colspec colname="col6"/><colspec colname="col7"/><colspec colname="col8"/>
+<tbody>
+<row>
+<entry><p> <b>Turkish Locking Single Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b>Standard SMS Converter</b>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+<entry><p> <b/>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+<entry><p> </p> </entry>
+<entry><p> <b>Character</b>  </p> </entry>
+<entry><p> <b>GSM</b>  </p> </entry>
+<entry><p> <b>Unicode</b>  </p> </entry>
+<entry><p> <b>Converted Character</b>  </p> </entry>
+</row>
+<row>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry/>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+<entry><p>0x04 </p> </entry>
+<entry><p>0x00E8 </p> </entry>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+<entry><p>0x07 </p> </entry>
+<entry><p>0x00EC </p> </entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00C7 </p> </entry>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>Ç LATIN CAPITAL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x09 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+</row>
+<row>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x0B </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+<entry><p>0x0C </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B04 </p> </entry>
+<entry><p>0x20AC </p> </entry>
+<entry><p>€ EURO SIGN </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B04 </p> </entry>
+<entry><p>0x00E8 </p> </entry>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B07 </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B07 </p> </entry>
+<entry><p>0x00EC </p> </entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B0B </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B0B </p> </entry>
+<entry><p>0x00D8 </p> </entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B0C </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH CARON </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B0C </p> </entry>
+<entry><p>0x00F8 </p> </entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B1C </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B1C </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE (ash) * </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B1D </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B1D </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE (ash) * </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>0x011E </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B47 </p> </entry>
+<entry><p>0x0047 </p> </entry>
+<entry><p>G LATIN CAPITAL LETTER G </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B49 </p> </entry>
+<entry><p>0x0130 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B49 </p> </entry>
+<entry><p>0x0049 </p> </entry>
+<entry><p>I LATIN CAPITAL LETTER I </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B53 </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B53 </p> </entry>
+<entry><p>0x0053 </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B60 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B60 </p> </entry>
+<entry><p>0x00BF </p> </entry>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>0x011F </p> </entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B67 </p> </entry>
+<entry><p>0x0067 </p> </entry>
+<entry><p>g LATIN SMALL LETTER G </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>0x1B69 </p> </entry>
+<entry><p>0x0131 </p> </entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS </p> </entry>
+<entry/>
+<entry/>
+<entry><p>0x1B69 </p> </entry>
+<entry><p>0x0069 </p> </entry>
+<entry><p>i LATIN SMALL LETTER I </p> </entry>
+</row>
+<row>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>0x015E </p> </entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+<entry><p>0x1C </p> </entry>
+<entry><p>0x00C6 </p> </entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>0x015F </p> </entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA * </p> </entry>
+<entry/>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+<entry><p>0x1D </p> </entry>
+<entry><p>0x00E6 </p> </entry>
+<entry><p>æ LATIN SMALL LETTER AE </p> </entry>
+</row>
+<row>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>0x00E7 </p> </entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA </p> </entry>
+<entry/>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+<entry><p>0x60 </p> </entry>
+<entry><p>0x00BF </p> </entry>
+<entry><p>¿ INVERTED QUESTION MARK </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS
+Encodings and Converters Overview</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e360653_href.png has changed
Binary file Symbian3/SDK/Source/GUID-739556F5-A2F3-5548-943C-7D50785DFB48_d0e366733_href.png has changed
Binary file Symbian3/SDK/Source/GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e323663_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e329820_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-7461BD6A-F50B-5E14-8995-CF3F2D8F5F14-master.png has changed
Binary file Symbian3/SDK/Source/GUID-7461BD6A-F50B-5E14-8995-CF3F2D8F5F14_d0e382693_href.png has changed
Binary file Symbian3/SDK/Source/GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e189164_href.png has changed
Binary file Symbian3/SDK/Source/GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e194226_href.png has changed
--- a/Symbian3/SDK/Source/GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE" xml:lang="en"><title>Adaptive
-search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Adaptive Search is an application independent <xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find
-pane</xref> based filtering method for known content. The content may be presented
-in list or grid format. </p>
-<p>The search selects the characters, symbols and numbers from the items of
-known content, and displays them in a grid format on top of the content. User
-is able to select them one by one and content is filtered to show matching
-items accordingly. </p>
-<fig id="GUID-7C32E1F9-A52D-4D17-919F-A814BA7D9D36">
-<title>Adaptive search</title>
-<image href="GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e75139_href.png" placement="inline"/>
-</fig>
-<section id="GUID-89117CFF-B002-4CFC-9B83-EA0CCF92DFA3"><title>Using
-adaptive search in C++ applications</title><p>The APIs to use for adaptive
-search is the Searchfield API which is used for providing the
-searchfield component and has been extended to include the adaptive search
-functionality.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-74F1EBB6-293A-4B33-A08F-46F3C23B37CE" xml:lang="en"><title>Adaptive
+search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Adaptive Search is an application independent <xref href="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita">Find
+pane</xref> based filtering method for known content. The content may be presented
+in list or grid format. </p>
+<p>The search selects the characters, symbols and numbers from the items of
+known content, and displays them in a grid format on top of the content. User
+is able to select them one by one and content is filtered to show matching
+items accordingly. </p>
+<fig id="GUID-7C32E1F9-A52D-4D17-919F-A814BA7D9D36">
+<title>Adaptive search</title>
+<image href="GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e52050_href.png" placement="inline"/>
+</fig>
+<section id="GUID-89117CFF-B002-4CFC-9B83-EA0CCF92DFA3"><title>Using
+adaptive search in applications</title><p>The APIs to use for
+adaptive search is the Searchfield API which is used for providing the searchfield
+component and has been extended to include the adaptive search functionality.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7501D3AC-16FB-58E9-B55C-2598ECCD2FFA-master.png has changed
Binary file Symbian3/SDK/Source/GUID-7501D3AC-16FB-58E9-B55C-2598ECCD2FFA_d0e381250_href.png has changed
--- a/Symbian3/SDK/Source/GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-75553219-500C-487F-8D7E-0FAF48CF1872" xml:lang="en"><title>Submenus</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>An item in the <b>Options</b> menu can be a submenu title, leading to additional
-choices that are displayed in another pop-up window (on top of the Options
-menu pop-up window) as a submenu.</p>
-<fig id="GUID-FD9FBC91-7A38-4A26-A8C2-A478DA9D5184">
-<title>Submenu in the Options menu</title>
-<image href="GUID-5E8C5D5C-8B84-4126-A8A8-F61F7DA0AD32_d0e65812_href.png" scale="40" placement="inline"/>
-</fig>
-<p>The submenu is opened by pressing either the left softkey (<b>Select</b>),
-the Selection key, or the Arrow right key.</p>
-<p>The user can close the submenu window by pressing the Arrow left key. The
-main menu window remains open, with the focus on the submenu title.</p>
-<p>When an item in a submenu is selected, both the submenu and main menu windows
-are closed.</p>
-<p>The following rules apply to submenus:</p>
-<ul>
-<li><p>The number of items should be low, so that the user does not need to
-scroll in order to see all of them. </p></li>
-<li><p>Functions should not occur sometimes in the main level and at other
-times in a submenu. Items that are in a submenu should always be found in
-the same submenu. </p></li>
-<li><p>Only one submenu level is allowed; that is, a submenu cannot contain
-another submenu.</p></li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-75553219-500C-487F-8D7E-0FAF48CF1872" xml:lang="en"><title>Submenus</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>An item in the <b>Options</b> menu can be a submenu title, leading to additional
+choices that are displayed in another pop-up window (on top of the Options
+menu pop-up window) as a submenu.</p>
+<fig id="GUID-FD9FBC91-7A38-4A26-A8C2-A478DA9D5184">
+<title>Submenu in the Options menu</title>
+<image href="GUID-19E5720A-2B50-4515-AE90-A40C1BEDF4BA_d0e60568_href.png" placement="inline"/>
+</fig>
+<p>The submenu is opened by pressing either the left softkey (<b>Select</b>),
+the Selection key, or the Arrow right key. In touch enabled device, submenu
+is displayed with touch down and release on the <b>Options</b> menu item.
+Scrolling and selecting within submenu window is done as in <b>Options</b> menu.</p>
+<p>The user can close the submenu window when:<ul>
+<li><p>Arrow left key is pressed.</p></li>
+<li><p>touch is moved to another menu list item.</p></li>
+<li><p>touch down and release from the <b>Options</b> menu item that it was
+launched from.</p></li>
+<li><p>touch down anywhere outside the submenu window.</p></li>
+</ul> </p>
+<p>The main menu window remains open, with the focus on the submenu title.</p>
+<p>When an item in a submenu is selected, both the submenu and main menu windows
+are closed.</p>
+<p>The following rules apply to submenus:</p>
+<ul>
+<li><p>The number of items should be low, so that the user does not need to
+scroll in order to see all of them. </p></li>
+<li><p>Functions should not occur sometimes in the main level and at other
+times in a submenu. Items that are in a submenu should always be found in
+the same submenu. </p></li>
+<li><p>Only one submenu level is allowed; that is, a submenu cannot contain
+another submenu.</p></li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1" xml:lang="en"><title>S60
-Platform: Image Converter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-E8B6963B-3DD4-42E5-9322-7A28A42B14B6-GENID-1-8-1-18-1-1-4-1-8-1-2-1"><title>Description</title> <p> This example demonstrates how to use
-the image conversion APIs available in the S60 platform (Image Conversion
-Library, ICL). These APIs include important classes, such as CBitmapRotator
-and CBitmapScaler to be used for rotating and scaling images, respectively.
-CImageEncoder and CImageDecoder classes are used to access image encoders
-and decoders available in the ICL. Images can be opened, rotated, scaled,
-and saved in the same or a different format. The UI of the updated application
-has been optimised for touch using, for example, long taps and tactile feedback.
-The example project supports building for both S60 5th Edition with touch
-UI and S60 3rd Edition with a traditional keypad. For more information, click
-on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/567330dd-130f-4f1d-9380-fac5aec5a6a9/S60_Platform_Image_Converter_Example.html" scope="external"> Image Converter Example</xref></p> </section>
-<section id="GUID-2B467073-DB0B-4D0D-B00A-A42E37643B62-GENID-1-8-1-18-1-1-4-1-8-1-2-2"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.zip" scope="external"> ImageConverter.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.html" scope="peer">browse </xref>to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-4-1" xml:lang="en"><title>S60
-Platform: Image Converter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-E8B6963B-3DD4-42E5-9322-7A28A42B14B6-GENID-1-8-1-18-1-1-5-1-6-1-5-1-4-1-2-1"><title>Description</title> <p> This example demonstrates how to use
-the image conversion APIs available in the S60 platform (Image Conversion
-Library, ICL). These APIs include important classes, such as CBitmapRotator
-and CBitmapScaler to be used for rotating and scaling images, respectively.
-CImageEncoder and CImageDecoder classes are used to access image encoders
-and decoders available in the ICL. Images can be opened, rotated, scaled,
-and saved in the same or a different format. The UI of the updated application
-has been optimised for touch using, for example, long taps and tactile feedback.
-The example project supports building for both S60 5th Edition with touch
-UI and S60 3rd Edition with a traditional keypad. For more information, click
-on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/567330dd-130f-4f1d-9380-fac5aec5a6a9/S60_Platform_Image_Converter_Example.html" scope="external"> Image Converter Example</xref></p> </section>
-<section id="GUID-2B467073-DB0B-4D0D-B00A-A42E37643B62-GENID-1-8-1-18-1-1-5-1-6-1-5-1-4-1-2-2"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.zip" scope="external"> ImageConverter.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.html" scope="peer">browse </xref>to view the example code. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7594A012-166F-5F10-A3ED-256465B4623E" xml:lang="en"><title>Image
+Converter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-E8B6963B-3DD4-42E5-9322-7A28A42B14B6"><title>Description</title> <p> This
+example demonstrates how to use the image conversion APIs available in the
+Image Conversion Library). These APIs include important classes, such as <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref> and <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref> to
+be used for rotating and scaling images, respectively. <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref>,
+classes are used to access image encoders and decoders available in the ICL.
+Images can be opened, rotated, scaled, and saved in the same or a different
+format. </p> </section>
+<section id="GUID-2B467073-DB0B-4D0D-B00A-A42E37643B62"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.zip" scope="external"> ImageConverter.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dc5f26e3-7c69-43ef-b3f1-c62469891d0d.html" scope="peer">browse </xref>to view the example code. </p> </section>
+<section id="GUID-DA11C867-508C-4252-AD06-BDD2497A81F4"><title>Class Summary</title> <p><xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref></p><p><xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref></p><p><xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref></p><p><xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref></p></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3" xml:lang="en"><title>Discarding
-soft notifications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The application that launched a soft notification can discard it without
-user intervention when the notification becomes obsolete. A soft notification
-should remain pending until the user has responded to it, or started using
-the corresponding application so that in effect the notification becomes obsolete.
-In that case, the application can discard the notification even though the
-user may not have actually seen it.</p>
-<p>When the user reacts to a soft notification by pressing the left softkey
-(for example Read), or selects one item of a grouped soft notification, the
-item becomes interpreted as obsolete, and will not reappear. If a soft notification
-contained more than one item, the other ones remain pending and reappear when
-the user returns to the Idle state.</p>
-<p>The user can dismiss the notification by pressing the right softkey, labeled
-Exit. After this, the notification does not reappear until new events cause
-a new notification to be created. In case of a grouped soft notification,
-all items it contains are discarded.</p>
-<p>Please note that discarding a soft notification does not mean that the
-received content is lost.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-75A70663-4DF2-4055-BF3E-8D9D8D0FEFB3" xml:lang="en"><title>Discarding
+soft notifications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The application that launched a soft notification can discard it without
+user intervention when the notification becomes obsolete. A soft notification
+should remain pending until the user has responded to it, or started using
+the corresponding application so that in effect the notification becomes obsolete.
+In that case, the application can discard the notification even though the
+user may not have actually seen it.</p>
+<p>When the user reacts to a soft notification by pressing the left softkey
+(for example Read), or selects one item of a grouped soft notification, the
+item becomes interpreted as obsolete, and will not reappear. If a soft notification
+contained more than one item, the other ones remain pending and reappear when
+the user returns to the home screen.</p>
+<p>The user can dismiss the notification by pressing the right softkey, labeled
+Exit. After this, the notification does not reappear until new events cause
+a new notification to be created. In case of a grouped soft notification,
+all items it contains are discarded.</p>
+<p>Please note that discarding a soft notification does not mean that the
+received content is lost.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-762A665F-43D0-53ED-B698-0CBD3AC46391.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-762A665F-43D0-53ED-B698-0CBD3AC46391.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-762A665F-43D0-53ED-B698-0CBD3AC46391" xml:lang="en"><title>Font and Text
-Services Collection</title><shortdesc>The Font and Text Services Collection contains the Font Store and
-related plug-ins and the Text Rendering component. Application developers
-can select fonts from the Font Store. Device creators can create and add fonts. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-FE4F4563-FAD5-5D45-B662-61AEC3F3AFEC">
-<title>         The Font and Text Services collection</title>
-<image href="GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402465_href.png" placement="inline"/>
-</fig>
-</conbody><related-links>
-<link href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita"><linktext>Font and
-Bitmap Server Component</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-762A665F-43D0-53ED-B698-0CBD3AC46391" xml:lang="en"><title>Font and Text
+Services Collection</title><shortdesc>The Font and Text Services Collection contains the Font Store and
+related plug-ins and the Text Rendering component. Application developers
+can select fonts from the Font Store. Device creators can create and add fonts. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-FE4F4563-FAD5-5D45-B662-61AEC3F3AFEC">
+<title>         The Font and Text Services collection</title>
+<image href="GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402303_href.png" placement="inline"/>
+</fig>
+</conbody><related-links>
+<link href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita"><linktext>Font and
+Bitmap Server Component</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP Client Resolver defines the architecture used to resolve or identify
-the target client when SIP requests are received from the default port. The
-Symbian SIP stack is implemented as a Symbian server and uses the default
-UDP and TCP port 5060 to send and receive SIP messages. Many applications
-or target clients receive SIP messages that use the default port, and the
-correct target client must be determined. </p>
-<p>The SIP Client Resolver determines the target client based on the SIP request
-and the XML-description provided by every SIP Client Resolver API implementation.
-It requests the resolved ECOM plug-in to connect to the SIP or another server
-which uses SIP. </p>
-<section><title>Architectural relationships</title> <p>The Client Resolver
-API requires the SIP Codec API and the SIP Codec API. </p> <p>The target clients
-that receive SIP requests must implement the API Client Resolver API. The
-following are the two methods in which a target client can receive SIP requests: </p> <ul>
-<li id="GUID-F3BEAD9E-744E-5154-91EC-E0B66034A8F4"><p> <b>Implement the CSIPResolvedClient
-interface and provide an XML description with their capabilities</b>  </p> <p>The
-XML description describes the supported content-types and media formats that
-use SIP headers and SDP m-lines in the ECOM resource file. Client Resolver
-framework determines the target client by comparing the incoming SIP request
-to the XML descriptions provided by the <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> implementation. </p> </li>
-<li id="GUID-07B5DFE5-D376-57F7-8ACB-50BB1EF8351B"><p>Implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
-and add Request-URIs user-part, plug-ins UID, and the client UID to the SIP
-Client Resolver mapping table in the Central Repository </p> <p>The table
-maps the user-part of the incoming SIP request’s Request-URI to the related <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> implementation’s
-UID. SIP Client Resolver framework gives the SIP request to only the plug-ins
-for which a mapping entry is found in the Central Repository. </p> </li>
-</ul> <p>This implies that every target client must provide an ECOM plug-in
-that is used by the Client Resolver Framework. The Client Resolver Framework
-uses the information in the SIP request and matches it with the XML description
-or the mapping table entry provided by the target clients. It then decides
-which target client plug-in to load. </p> </section>
-<section><title>Class structure</title> <p>SIP Client Resolver must create
-a class derived from <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> or <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> to
-receive requests outside the SIP dialogs. If the target client is not running,
-it must be started to enable it to receive SIP requests. </p> <fig id="GUID-B8A796EA-6850-5695-A516-E92629BE7971">
-<image href="GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e343733_href.png" placement="inline"/>
-</fig> <p><b>CSIPResolvedClient</b> </p> <p>The target clients must implement
-the <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> interface to receive SIP requests
-outside SIP dialogs and enable the client resolution mechanism. </p> <p>SIP
-uses the data provided in the ECOM resource file or, as requested by the implementation
-to decide which target client is used. </p> <p><b>CSIPResolvedClient2</b> </p> <p>The
-target clients must implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
-to receive SIP requests outside SIP dialogs and enable the client resolution
-mechanism. </p> <p>The SIP stack uses the plug-ins that implement this interface
-as follows: </p> <ol id="GUID-E3325143-0AA4-5A60-885C-875F388EF0E3">
-<li id="GUID-816770B7-3A85-5894-9868-64BEE12FD50C"><p>If the SIP request does
-not contain the Accept-Contact-header, go to step 2. If it does, the SIP stack
-calls the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-2C145D8C-DB4C-33C9-9CCE-193433909937"><apiname>CSIPResolvedClient2::MatchAcceptContactsL()</apiname></xref> method
-on all the plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-5457D39D-DE84-5A3F-8E8B-7E79C863E118"><p>If none of the clients
-match, go to step 2. </p> </li>
-<li id="GUID-BE1A9D22-BD88-519E-AC4A-242FC6D3B098"><p>If one of the clients
-match, send the SIP request to the matching client. </p> </li>
-<li id="GUID-3A027E2A-C805-595D-B43C-28B19BC07609"><p>If more than one of
-the clients match, go to step 2. </p> </li>
-</ul> </li>
-<li id="GUID-7F822965-0220-52A8-8CAF-EACA4D87E75D"><p>If the SIP request does
-not contain the Event-header, go to step 3. If it does, SIP stack calls the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-9DB2CFFE-09ED-367D-9C14-6917F8E3DCF4"><apiname>CSIPResolvedClient2::MatchEventL()</apiname></xref> method
-on all the plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-8E85F9F9-D645-53D7-A4D8-6717951B0D1C"><p>If none of the clients
-match, go to step 3. </p> </li>
-<li id="GUID-B713BE42-D8AF-51D6-8832-D0B221CFF4D8"><p>If one of the clients
-match, send the SIP request to the matching client. </p> </li>
-<li id="GUID-93037264-2B67-5DD4-990B-9D3EEEDE6C4D"><p>If more than one of
-the clients match, go to step 3. </p> </li>
-</ul> </li>
-<li id="GUID-BFCEF7B8-4068-58E6-B960-27035A5A52D6"><p>The SIP stack calls
-the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-9C9E49C8-602B-3C1C-B036-A176FF323A54"><apiname>CSIPResolvedClient2::MatchRequestL()</apiname></xref> method on all
-the plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-86228E63-7E10-571E-B465-EB4D14E8855D"><p>If none of the clients
-match, an error response is generated. </p> </li>
-<li id="GUID-6F578483-34E7-5CFB-A565-2209FFF82D28"><p>If one of the clients
-matches, send the SIP request to the matching client. </p> </li>
-<li id="GUID-C1BD2E18-CFEB-558F-9F10-60EF6B9539E7"><p>If more than one of
-the clients match, one of the client is randomly selected and the SIP request
-is sent to it. Normally, the ROM-based clients are preferred. </p> </li>
-</ul> </li>
-</ol><p>The channel UIDs must be unique across all SIP clients. The clients
-may use UIDs assigned for the binaries. </p> </section>
-</conbody><related-links>
-<link href="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita"><linktext>How     
-           the target client is resolved using CSIPResolvedClient</linktext>
-</link>
-<link href="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita"><linktext>How     
-           the target client is resolved using CSIPResolvedClient2</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-768CCC6E-16D2-50E8-8EED-EB2C2AF0E9BE" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP Client Resolver defines the architecture used to resolve or identify
+the target client when SIP requests are received from the default port. The
+Symbian SIP stack is implemented as a Symbian server and uses the default
+UDP and TCP port 5060 to send and receive SIP messages. Many applications
+or target clients receive SIP messages that use the default port, and the
+correct target client must be determined. </p>
+<p>The SIP Client Resolver determines the target client based on the SIP request
+and the XML-description provided by every SIP Client Resolver API implementation.
+It requests the resolved ECOM plug-in to connect to the SIP or another server
+which uses SIP. </p>
+<section><title>Architectural relationships</title> <p>The Client Resolver
+API requires the SIP Codec API and the SIP Codec API. </p> <p>The target clients
+that receive SIP requests must implement the API Client Resolver API. The
+following are the two methods in which a target client can receive SIP requests: </p> <ul>
+<li id="GUID-F3BEAD9E-744E-5154-91EC-E0B66034A8F4"><p> <b>Implement the CSIPResolvedClient
+interface and provide an XML description with their capabilities</b>  </p> <p>The
+XML description describes the supported content-types and media formats that
+use SIP headers and SDP m-lines in the ECOM resource file. Client Resolver
+framework determines the target client by comparing the incoming SIP request
+to the XML descriptions provided by the <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> implementation. </p> </li>
+<li id="GUID-07B5DFE5-D376-57F7-8ACB-50BB1EF8351B"><p>Implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
+and add Request-URIs user-part, plug-ins UID, and the client UID to the SIP
+Client Resolver mapping table in the Central Repository </p> <p>The table
+maps the user-part of the incoming SIP request’s Request-URI to the related <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> implementation’s
+UID. SIP Client Resolver framework gives the SIP request to only the plug-ins
+for which a mapping entry is found in the Central Repository. </p> </li>
+</ul> <p>This implies that every target client must provide an ECOM plug-in
+that is used by the Client Resolver Framework. The Client Resolver Framework
+uses the information in the SIP request and matches it with the XML description
+or the mapping table entry provided by the target clients. It then decides
+which target client plug-in to load. </p> </section>
+<section><title>Class structure</title> <p>SIP Client Resolver must create
+a class derived from <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> or <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> to
+receive requests outside the SIP dialogs. If the target client is not running,
+it must be started to enable it to receive SIP requests. </p> <fig id="GUID-B8A796EA-6850-5695-A516-E92629BE7971">
+<image href="GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e337536_href.png" placement="inline"/>
+</fig> <p><b>CSIPResolvedClient</b> </p> <p>The target clients must implement
+the <xref href="GUID-F0E4FA44-A41C-3C6F-993E-39CED042A879.dita"><apiname>CSIPResolvedClient</apiname></xref> interface to receive SIP requests
+outside SIP dialogs and enable the client resolution mechanism. </p> <p>SIP
+uses the data provided in the ECOM resource file or, as requested by the implementation
+to decide which target client is used. </p> <p><b>CSIPResolvedClient2</b> </p> <p>The
+target clients must implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
+to receive SIP requests outside SIP dialogs and enable the client resolution
+mechanism. </p> <p>The SIP stack uses the plug-ins that implement this interface
+as follows: </p> <ol id="GUID-E3325143-0AA4-5A60-885C-875F388EF0E3">
+<li id="GUID-816770B7-3A85-5894-9868-64BEE12FD50C"><p>If the SIP request does
+not contain the Accept-Contact-header, go to step 2. If it does, the SIP stack
+calls the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-2C145D8C-DB4C-33C9-9CCE-193433909937"><apiname>CSIPResolvedClient2::MatchAcceptContactsL()</apiname></xref> method
+on all the plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-5457D39D-DE84-5A3F-8E8B-7E79C863E118"><p>If none of the clients
+match, go to step 2. </p> </li>
+<li id="GUID-BE1A9D22-BD88-519E-AC4A-242FC6D3B098"><p>If one of the clients
+match, send the SIP request to the matching client. </p> </li>
+<li id="GUID-3A027E2A-C805-595D-B43C-28B19BC07609"><p>If more than one of
+the clients match, go to step 2. </p> </li>
+</ul> </li>
+<li id="GUID-7F822965-0220-52A8-8CAF-EACA4D87E75D"><p>If the SIP request does
+not contain the Event-header, go to step 3. If it does, SIP stack calls the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-9DB2CFFE-09ED-367D-9C14-6917F8E3DCF4"><apiname>CSIPResolvedClient2::MatchEventL()</apiname></xref> method
+on all the plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-8E85F9F9-D645-53D7-A4D8-6717951B0D1C"><p>If none of the clients
+match, go to step 3. </p> </li>
+<li id="GUID-B713BE42-D8AF-51D6-8832-D0B221CFF4D8"><p>If one of the clients
+match, send the SIP request to the matching client. </p> </li>
+<li id="GUID-93037264-2B67-5DD4-990B-9D3EEEDE6C4D"><p>If more than one of
+the clients match, go to step 3. </p> </li>
+</ul> </li>
+<li id="GUID-BFCEF7B8-4068-58E6-B960-27035A5A52D6"><p>The SIP stack calls
+the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita#GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E/GUID-9C9E49C8-602B-3C1C-B036-A176FF323A54"><apiname>CSIPResolvedClient2::MatchRequestL()</apiname></xref> method on all
+the plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-86228E63-7E10-571E-B465-EB4D14E8855D"><p>If none of the clients
+match, an error response is generated. </p> </li>
+<li id="GUID-6F578483-34E7-5CFB-A565-2209FFF82D28"><p>If one of the clients
+matches, send the SIP request to the matching client. </p> </li>
+<li id="GUID-C1BD2E18-CFEB-558F-9F10-60EF6B9539E7"><p>If more than one of
+the clients match, one of the client is randomly selected and the SIP request
+is sent to it. Normally, the ROM-based clients are preferred. </p> </li>
+</ul> </li>
+</ol><p>The channel UIDs must be unique across all SIP clients. The clients
+may use UIDs assigned for the binaries. </p> </section>
+</conbody><related-links>
+<link href="GUID-5C215C64-5D3D-5B65-A11F-BE6F8C306CF4.dita"><linktext>How     
+           the target client is resolved using CSIPResolvedClient</linktext>
+</link>
+<link href="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita"><linktext>How     
+           the target client is resolved using CSIPResolvedClient2</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e57233_href.png has changed
Binary file Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e68916_href.png has changed
Binary file Symbian3/SDK/Source/GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e74059_href.png has changed
Binary file Symbian3/SDK/Source/GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e36126_href.png has changed
Binary file Symbian3/SDK/Source/GUID-76B4C4D2-75A5-4139-9186-23443C68CD8F_d0e41693_href.png has changed
--- a/Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-4-1-6-1" xml:lang="en"><title>ICLCodec:
-Image Converter Library encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>ICLCodec</filepath> demonstrates
-how to implement encoder and decoder plug-ins for the Image Converter Library.
-A decoder converts an image in a particular format into a <codeph>CFbsBitmap</codeph> object;
-an encoder does the reverse. In the example, the Portable Network Graphics
-(PNG) format is handled. </p> <p>The program is an ECom plug-in that implements: </p> <ul>
-<li id="GUID-00BEBC6C-BA4A-566E-9BD3-1FABD8893EB2-GENID-1-8-1-18-1-1-4-1-6-1-2-1-4-1"><p>the decoder plug-in
-interface <codeph>CImageDecoderPlugin</codeph> by the class <codeph>CPngDecoder</codeph>  </p> </li>
-<li id="GUID-2A0C0279-6FF9-52CE-9FB6-240388D09D3A-GENID-1-8-1-18-1-1-4-1-6-1-2-1-4-2"><p>the decoder data reader
-interface <codeph>CImageReadCodec</codeph> by the class <codeph>CPngReadCodec</codeph>  </p> </li>
-<li id="GUID-278BB038-B821-5F66-9F90-3A9376E5C877-GENID-1-8-1-18-1-1-4-1-6-1-2-1-4-3"><p>the encoder plug-in
-interface <codeph>CImageEncoderPlugin</codeph> by the class <codeph>CPngEncoder</codeph>  </p> </li>
-<li id="GUID-69489E88-46A1-568B-BCBE-120583098AB3-GENID-1-8-1-18-1-1-4-1-6-1-2-1-4-4"><p>the encoder data writer
-interface <codeph>CImageWriteCodec</codeph> by the class <codeph>CPngWriteCodec</codeph>  </p> </li>
-</ul> <p>The PNG format allows data to be stored in a number of different
-scanline formats (colour/grey-scale depths), so specialist classes are provided
-to read and write these formats. Scanline reader classes are derived from <codeph>CPngReadSubCodec</codeph>;
-writer classes from <codeph>CPngWriteSubCodec</codeph>. </p> </section>
-<section id="GUID-DD75174A-EEA8-560F-A50A-AFED3C0E9824-GENID-1-8-1-18-1-1-4-1-6-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.zip" scope="external"> ICLCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.html" scope="peer">browse </xref>to view the example code. </p> </section>
-<section><title>Class summary</title><p><xref href="GUID-50E4F0D6-5740-3B75-813B-4E043916AA90.dita"><apiname>CImageDecoderPlugin </apiname></xref> <xref href="GUID-2A8A815B-6661-3AC6-BB77-118F1197821D.dita"><apiname>CImageReadCodec </apiname></xref>  <xref href="GUID-2AA4DBE7-3483-3DA1-8CF0-8C165C8E6498.dita"><apiname>CImageEncoderPlugin </apiname></xref> <xref href="GUID-AAED9439-CBDE-3002-AD2E-D63F76680875.dita"><apiname> CImageWriteCodec </apiname></xref> </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1" xml:lang="en"><title>ICLCodec:
-Image Converter Library encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>ICLCodec</filepath> demonstrates
-how to implement encoder and decoder plug-ins for the Image Converter Library.
-A decoder converts an image in a particular format into a <codeph>CFbsBitmap</codeph> object;
-an encoder does the reverse. In the example, the Portable Network Graphics
-(PNG) format is handled. </p> <p>The program is an ECom plug-in that implements: </p> <ul>
-<li id="GUID-00BEBC6C-BA4A-566E-9BD3-1FABD8893EB2-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1-2-1-4-1"><p>the decoder plug-in
-interface <codeph>CImageDecoderPlugin</codeph> by the class <codeph>CPngDecoder</codeph>  </p> </li>
-<li id="GUID-2A0C0279-6FF9-52CE-9FB6-240388D09D3A-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1-2-1-4-2"><p>the decoder data reader
-interface <codeph>CImageReadCodec</codeph> by the class <codeph>CPngReadCodec</codeph>  </p> </li>
-<li id="GUID-278BB038-B821-5F66-9F90-3A9376E5C877-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1-2-1-4-3"><p>the encoder plug-in
-interface <codeph>CImageEncoderPlugin</codeph> by the class <codeph>CPngEncoder</codeph>  </p> </li>
-<li id="GUID-69489E88-46A1-568B-BCBE-120583098AB3-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1-2-1-4-4"><p>the encoder data writer
-interface <codeph>CImageWriteCodec</codeph> by the class <codeph>CPngWriteCodec</codeph>  </p> </li>
-</ul> <p>The PNG format allows data to be stored in a number of different
-scanline formats (colour/grey-scale depths), so specialist classes are provided
-to read and write these formats. Scanline reader classes are derived from <codeph>CPngReadSubCodec</codeph>;
-writer classes from <codeph>CPngWriteSubCodec</codeph>. </p> </section>
-<section id="GUID-DD75174A-EEA8-560F-A50A-AFED3C0E9824-GENID-1-8-1-18-1-1-5-1-6-1-5-1-5-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.zip" scope="external"> ICLCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.html" scope="peer">browse </xref>to view the example code. </p> </section>
-<section><title>Class summary</title><p><xref href="GUID-50E4F0D6-5740-3B75-813B-4E043916AA90.dita"><apiname>CImageDecoderPlugin </apiname></xref> <xref href="GUID-2A8A815B-6661-3AC6-BB77-118F1197821D.dita"><apiname>CImageReadCodec </apiname></xref>  <xref href="GUID-2AA4DBE7-3483-3DA1-8CF0-8C165C8E6498.dita"><apiname>CImageEncoderPlugin </apiname></xref> <xref href="GUID-AAED9439-CBDE-3002-AD2E-D63F76680875.dita"><apiname> CImageWriteCodec </apiname></xref> </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-76D01385-17CD-5F9A-B3B5-88D77773AA8E" xml:lang="en"><title>ICLCodec:
+Image Converter Library encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p> <filepath>ICLCodec</filepath> demonstrates
+how to implement encoder and decoder plug-ins for the Image Converter Library.
+A decoder converts an image in a particular format into a <codeph>CFbsBitmap</codeph> object;
+an encoder does the reverse. In the example, the Portable Network Graphics
+(PNG) format is handled. </p> <p>The program is an ECom plug-in that implements: </p> <ul>
+<li id="GUID-00BEBC6C-BA4A-566E-9BD3-1FABD8893EB2"><p>the decoder plug-in
+interface <codeph>CImageDecoderPlugin</codeph> by the class <codeph>CPngDecoder</codeph>  </p> </li>
+<li id="GUID-2A0C0279-6FF9-52CE-9FB6-240388D09D3A"><p>the decoder data reader
+interface <codeph>CImageReadCodec</codeph> by the class <codeph>CPngReadCodec</codeph>  </p> </li>
+<li id="GUID-278BB038-B821-5F66-9F90-3A9376E5C877"><p>the encoder plug-in
+interface <codeph>CImageEncoderPlugin</codeph> by the class <codeph>CPngEncoder</codeph>  </p> </li>
+<li id="GUID-69489E88-46A1-568B-BCBE-120583098AB3"><p>the encoder data writer
+interface <codeph>CImageWriteCodec</codeph> by the class <codeph>CPngWriteCodec</codeph>  </p> </li>
+</ul> <p>The PNG format allows data to be stored in a number of different
+scanline formats (colour/grey-scale depths), so specialist classes are provided
+to read and write these formats. Scanline reader classes are derived from <codeph>CPngReadSubCodec</codeph>;
+writer classes from <codeph>CPngWriteSubCodec</codeph>. </p> </section>
+<section id="GUID-DD75174A-EEA8-560F-A50A-AFED3C0E9824"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.zip" scope="external"> ICLCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-09d45210-89f2-4567-b9d0-6f8ed872f2d2.html" scope="peer">browse </xref>to view the example code. </p> </section>
+<section><title>Class summary</title><p><xref href="GUID-50E4F0D6-5740-3B75-813B-4E043916AA90.dita"><apiname>CImageDecoderPlugin </apiname></xref> <xref href="GUID-2A8A815B-6661-3AC6-BB77-118F1197821D.dita"><apiname>CImageReadCodec </apiname></xref>  <xref href="GUID-2AA4DBE7-3483-3DA1-8CF0-8C165C8E6498.dita"><apiname>CImageEncoderPlugin </apiname></xref> <xref href="GUID-AAED9439-CBDE-3002-AD2E-D63F76680875.dita"><apiname> CImageWriteCodec </apiname></xref> </p></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,138 +1,134 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8" xml:lang="en"><title>Navi
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The principal uses of the Navi pane are to display information about the
-current state and view, and to help the user to navigate in the application.</p>
-<fig id="GUID-3E3F8A70-C0EB-4B17-AB6D-7374FBF8B453">
-<title>Navi pane</title>
-<image href="GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e72462_href.png" placement="inline"/>
-</fig>
-<p>Depending on the context, the Navi pane contains elements presented in
-the following table.</p>
-<table id="GUID-8F674003-C512-4E42-BB7E-85A55F93E3BB"><title>Possible Navi
-pane content</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Component</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Tabs</p><fig id="GUID-2CBA76C9-3918-40C7-889B-BC5181B34955"/></entry>
-<entry><p>Tabs are used to view parallel data views alternatively. Arrow indicators
-are shown at both ends of the pane when there are further tabs to scroll in
-the corresponding direction. Each tab has either a graphic or a text (or both)
-as a label. The following tab layouts can be used: <ul>
-<li><p>Two tabs</p></li>
-<li> <p>Three tabs</p></li>
-<li><p>Four tabs</p></li>
-<li><p>Two long tabs</p></li>
-<li> <p>Three long tabs (stacked so that only one is fully visible at a time)</p></li>
-</ul>The currently active tab is highlighted.</p><p>More than four tabs can
-exist simultaneously. They can be scrolled horizontally. However, as a design
-guideline, the number of tabs should be kept small (the maximum of six tabs
-is recommended), and the number should not be dynamic. See <xref href="GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C.dita">Navigation
-using tabs</xref> for
-a description of the effect of tabs on the navigation within an application.</p></entry>
-</row>
-<row>
-<entry><p>Navigation text (icon+text)</p><fig id="GUID-B2C30B15-0343-4430-8535-05C8BAAB1B7B">
-<image href="GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e72538_href.png" scale="30" placement="inline"/>
-</fig></entry>
-<entry><p>Navigation text is displayed in the <uicontrol>Navi pane</uicontrol> when
-similar items can be browsed by scrolling horizontally, such as dates in Calendar.
-Arrow indicators at both ends of the pane indicate the possibility to scroll.</p></entry>
-</row>
-<row>
-<entry><p>Indicators</p><fig id="GUID-89499CD6-C3C5-4BD5-964A-02ADD8A30116">
-<image href="GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e72556_href.png" scale="30" placement="inline"/>
-</fig></entry>
-<entry><p>In editors, the <uicontrol>Navi pane</uicontrol> contains editing
-indicators. See <xref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita">Indicators</xref> for
-a more detailed description of the <uicontrol>Navi pane</uicontrol> indicators.</p></entry>
-</row>
-<row>
-<entry><p>Folder structure indication</p><fig id="GUID-274C1478-A141-4705-A6BF-E99703FE714D">
-<image href="GUID-257212F5-A414-4F17-A786-DB3168218139_d0e72579_href.png" scale="30" placement="inline"/>
-</fig></entry>
-<entry><p>Opened subfolders are indicated in the <uicontrol>Navi pane</uicontrol>.</p></entry>
-</row>
-<row>
-<entry><p>Application-specific content</p></entry>
-<entry><p>When none of the above content types is suitable, the <uicontrol>Navi
-pane</uicontrol> content can be designed specifically for an application.</p></entry>
-</row>
-<row>
-
-<entry><p>Empty pane</p><fig id="GUID-85A80F31-F9ED-4ECE-BAF0-5A2083CE578A">
-<image href="GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e72613_href.png" scale="30" placement="inline"/>
-</fig></entry>
-<entry><p>The <uicontrol>Navi pane</uicontrol> can be empty.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-D5CFA14A-79F4-4E9C-A051-6588C7DDAC59"><title>Default touch
-events for ungrouped soft notification</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on navigation text or navigation arrow</p></entry>
-<entry><p>Application specific</p></entry>
-<entry><p>Tactile: In case of activity, basic button effect and audio feedback
-is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on navigation text</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on arrows</p></entry>
-<entry><p>This action performs a “key repeat”, similar to many touch downs
-and releases on arrow</p></entry>
-<entry><p>Tactile: Sensitive button effect and audio feedback is provided
-with key repeat action.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-3E478FC5-080A-4EAF-98F4-B0C0F1C8E19D"><title>Using
-the navi pane in C++ applications</title><p>The API to use for the Navi pane
-is the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>. If you use tabs in the Navi pane,
-the API for controlling the tabs is the <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref>.</p><p>For the indicators in the Navi pane, use
-the Indicators API.</p><p>For implementation information on the Navi pane,
-see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>. For implementation information
-on tabs, see <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html#Tabs_API_Specification.topic3" scope="peer">Using the Tabs API</xref>.</p><p>The class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMAknNaviDecoratorObserver.html" format="application/java-archive"><codeph>MAknNaviDecoratorObserver</codeph></xref> provides touch support
-for the tab arrows in the Navi pane. To set the observer, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNavigationDecorator.html#660e9ba08945b213aba477b7863873cc" format="application/java-archive"><codeph>CAknNavigationDecorator::SetNaviDecoratorObserver()</codeph></xref>.</p><p>To create a tab group in the Navi pane, use the
-method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNavigationControlContainer.html#93d16329080f21bcd8428db61f177abc" format="application/java-archive"><codeph>CreateTabGroupL()</codeph></xref> in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNavigationControlContainer.html" format="application/java-archive"><codeph>CAknNavigationControlContainer</codeph></xref>. This is a factory
-method for a pre-implemented navigation pane tab group control.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8" xml:lang="en"><title>Navi
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The principal uses of the Navi pane are to display information about the
+current state and view, and to help the user to navigate in the application.</p>
+<fig id="GUID-3E3F8A70-C0EB-4B17-AB6D-7374FBF8B453">
+<title>Navi pane</title>
+<image href="GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e67259_href.png" placement="inline"/>
+</fig>
+<p>Depending on the context, the Navi pane contains elements presented in
+the following table.</p>
+<table id="GUID-8F674003-C512-4E42-BB7E-85A55F93E3BB"><title>Possible Navi
+pane content</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Component</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Tabs</p><fig id="GUID-2CBA76C9-3918-40C7-889B-BC5181B34955"/></entry>
+<entry><p>Tabs are used to view parallel data views alternatively. Arrow indicators
+are used only for navigation texts. </p><p>Each tab has either a graphic or
+a text (or both) as a label. The following tab layouts can be used: <ul>
+<li><p>Two tabs</p></li>
+<li> <p>Three tabs</p></li>
+<li><p>Four tabs</p></li>
+<li><p>Two long tabs</p></li>
+<li> <p>Three long tabs (stacked so that only one is fully visible at a time)</p></li>
+</ul>The currently active tab is highlighted.</p><p>More than four tabs can
+exist simultaneously. They can be scrolled horizontally. However, as a design
+guideline, the number of tabs should be kept small (the maximum of six tabs
+is recommended), and the number should not be dynamic. See <xref href="GUID-72DE3EB1-1AF5-4157-8B99-A1C7143DAD2C.dita"/> for
+a description of the effect of tabs on the navigation within an application.</p></entry>
+</row>
+<row>
+<entry><p>Navigation text (icon+text)</p><fig id="GUID-B2C30B15-0343-4430-8535-05C8BAAB1B7B">
+<image href="GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e67337_href.png" scale="30" placement="inline"/>
+</fig></entry>
+<entry><p>Navigation text is displayed in the <uicontrol>Navi pane</uicontrol> when
+similar items can be browsed by scrolling horizontally, such as dates in Calendar.
+Arrow indicators at both ends of the pane indicate the possibility to scroll.</p></entry>
+</row>
+<row>
+<entry><p>Indicators</p><fig id="GUID-89499CD6-C3C5-4BD5-964A-02ADD8A30116">
+<image href="GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e67355_href.png" scale="30" placement="inline"/>
+</fig></entry>
+<entry><p>In editors, the <uicontrol>Navi pane</uicontrol> contains editing
+indicators. See <xref href="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita">Indicators</xref> for
+a more detailed description of the <uicontrol>Navi pane</uicontrol> indicators.</p></entry>
+</row>
+<row>
+<entry><p>Folder structure indication</p><fig id="GUID-274C1478-A141-4705-A6BF-E99703FE714D">
+<image href="GUID-257212F5-A414-4F17-A786-DB3168218139_d0e67378_href.png" scale="30" placement="inline"/>
+</fig></entry>
+<entry><p>Opened sub-folders are indicated in the <uicontrol>Navi pane</uicontrol>.</p></entry>
+</row>
+<row>
+<entry><p>Application-specific content</p></entry>
+<entry><p>When none of the above content types is suitable, the <uicontrol>Navi
+pane</uicontrol> content can be designed specifically for an application.</p></entry>
+</row>
+<row>
+<entry><p>Empty pane</p><fig id="GUID-85A80F31-F9ED-4ECE-BAF0-5A2083CE578A">
+<image href="GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e67410_href.png" scale="30" placement="inline"/>
+</fig></entry>
+<entry><p>The <uicontrol>Navi pane</uicontrol> can be empty.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-D5CFA14A-79F4-4E9C-A051-6588C7DDAC59"><title>Default touch
+events for ungrouped soft notification</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on navigation text or navigation arrow</p></entry>
+<entry><p>Application specific</p></entry>
+<entry><p>Tactile: In case of activity, basic button effect and audio feedback
+is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on navigation text</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on arrows</p></entry>
+<entry><p>This action performs a “key repeat”, similar to many touch downs
+and releases on arrow</p></entry>
+<entry><p>Tactile: Sensitive button effect and audio feedback is provided
+with key repeat action.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-3E478FC5-080A-4EAF-98F4-B0C0F1C8E19D"><title>Using
+the navi pane in applications</title><p>The API to use for the Navi pane is
+the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>. If you use tabs in the Navi pane,
+the API for controlling the tabs is the <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref>. Applications can implement an observer to handle
+the touch events in the Navi pane area.</p><p>For the indicators
+in the Navi pane, use the Indicators API.</p><p>For implementation information
+on the Navi pane, see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>. For implementation information
+on tabs, see <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html#Tabs_API_Specification.topic3" scope="peer">Using the Tabs API</xref>.</p><p>The <xref href="GUID-1239E9D4-0184-350E-A344-144499E0563E.dita"><apiname>MAknNaviDecoratorObserver</apiname></xref> class
+provides touch support for the tab arrows in the Navi pane. To set the observer,
+use the <xref href="GUID-7E710ED4-F210-3BD0-AC0A-DC506E327B32.dita#GUID-7E710ED4-F210-3BD0-AC0A-DC506E327B32/GUID-3EE352C1-5B27-30DB-9D72-21A84A89E7AB"><apiname>CAknNavigationDecorator::SetNaviDecoratorObserver()</apiname></xref> method.</p><p>To
+create a tab group in the Navi pane, use the <xref href="GUID-985BFC71-A477-39EF-9134-6495131BA449.dita#GUID-985BFC71-A477-39EF-9134-6495131BA449/GUID-1DA90B0F-D97F-3556-8180-7F99081E9373"><apiname>CAknNavigationControlContainer::CreateTabGroupL()</apiname></xref>.
+This is a factory method for a pre-implemented navigation pane tab group control.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e333424_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e339581_href.png has changed
--- a/Symbian3/SDK/Source/GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,92 +1,106 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD" xml:lang="en"><title> Status
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Status pane displays status information of the current application
-and state, as well as general information about the device status, such as
-signal strength and battery charge. The Status pane may also be totally left
-out in certain applications or situations. </p>
-<p>There are three different variations of the Status pane:<ul>
-<li><p>Normal status pane (includes both Title and Navi pane). </p></li>
-<li><p>Flat status pane (includes only the Title pane).</p></li>
-<li><p>Thin status pane (special status pane used, for example, in the Browser
-application)</p></li>
-</ul>Flat and thin Status panes can be used in cases where it is important
-to maximize Main pane area (for example, Browser). </p>
-<p>The Status pane contains the following sub-panes:</p>
-<ul>
-<li><p>Title pane</p></li>
-<li><p>Navi pane</p></li>
-<li><p>Signal pane</p></li>
-<li><p>Battery pane</p></li>
-<li><p>Universal indicator pane</p></li>
-</ul>
-<fig id="GUID-770A54B6-9F18-4BC3-92A7-AFB4D9E40199">
-<title>Status pane areas</title>
-<image href="GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e72186_href.png" placement="inline"/>
-</fig>
-<section id="GUID-681C48E1-D94F-4960-8BC4-DEB5C8B677DF"><title>Using
-the status pane in C++ applications</title><p>The API to use for the status
-pane is the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3" scope="peer">Using the status pane API</xref>.</p><p>Use the Status pane API
-for the following tasks:</p><ul>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.1" scope="peer">Creating the status pane using a resource file</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.2" scope="peer">Accessing the status pane</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.3" scope="peer">Accessing controls in the status pane's subpanes</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.4" scope="peer">Showing and hiding the status pane</xref></p></li>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.5" scope="peer">Dynamically changing status pane layout </xref></p></li>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.6" scope="peer">Observing status pane events</xref></p></li>
-</ul><p>Applications can define and modify the title and navi sub-panes. For
-implementation information on the sub-panes in the status pane, see the following
-APIs:</p><ul>
-<li><p>Title pane API for the title pane</p></li>
-<li><p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for the navi pane</p></li>
-</ul><p>Use the method <xref href="GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5.dita#GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5/GUID-98441932-C5BD-3743-B98F-BC8B7C40D2DA"><apiname>CEikStatusPaneBase::IsAppOwned()</apiname></xref> in
-the class <xref href="GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5.dita#GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5/GUID-18905F65-84C6-3085-865C-489041B36886"><apiname>CEikStatusPaneBase::TPaneCapabilities()</apiname></xref> to test
-whether the pane is owned by the application or the server. Applications can
-only interact directly with application owned subpanes.</p><p><xref href="GUID-4B3EDBA0-8849-37DE-9693-4A2DB23A2101.dita"><apiname>CEikStatusPane</apiname></xref> is
-the interface through which applications use the status pane. This class synchronizes
-the status pane layout with the server side status pane object. To do this,
-the method <xref href="GUID-4B3EDBA0-8849-37DE-9693-4A2DB23A2101.dita#GUID-4B3EDBA0-8849-37DE-9693-4A2DB23A2101/GUID-F5265585-3EE1-389F-ADF5-ADDDE96D0C28"><apiname>CEikStatusPane::ApplyCurrentSettingsL()</apiname></xref> must
-be called whenever the owner application switches to the foreground. </p><p><draft-comment time="2008-05-23T11:14" translate="no">Relationship between events/similar for entire status
-pane and sub-panes: should be clearer on what's done where</draft-comment></p><p> The
-following options are available for modifying the default behavior of the
-status pane:  </p><ul>
-<li><p>Since the status pane is a compound control, it can be made visible
-or invisible like an other control with <codeph>CCoeControl::MakeVisible()</codeph>. <codeph>CCoeControl::MakeVisible()</codeph> can
-be called before or after the control is activated. An example of a call to
-make the status pane invisible is as follows:  </p><codeblock xml:space="preserve">CEikStatusPane* sp = StatusPane();// Gets a pointer to the status pane in the UI controller 
-StatusPane()-&gt;MakeVisible(EFalse); //make pane invisible somewhere in your code</codeblock></li>
-<li><p>Accessing and modifying controls inside the status pane.</p><p> The
-Status Pane API provides methods for accessing the status pane control and
-modifying the status pane layout.   </p><p>If you wish to modify panes within
-the status pane, you need to get a pointer to the status pane and then use
-one of the following classes and methods: </p><ul>
-<li><p><xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html" format="application/java-archive"><codeph>CAknTitlePane</codeph></xref> for
-the title sub-pane</p></li>
-<li><p>Methods defined by the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for accessing the navi sub-pane </p></li>
-<li><p>The <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref> for accessing tabs in the navi sub-pane.</p></li>
-</ul></li>
-<li><p>Defining new resources for the status pane to override the default
-behavior</p><p> Once you have defined your resources, you may need to use
-some of the status pane APIs to achieve the desired effect in your application.
- </p><p>For more information, see the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref> and <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> reference documentation.   </p></li>
-<li><p>You can also derive your own classes from the available classes or
-their base classes to customize your own controls. </p></li>
-</ul></section>
-<example><p>For more information on the panes, refer the following:</p></example>
-</conbody><related-links id="GUID-0FBC10E3-6A44-4AB4-BD42-A23539C4F148">
-<linklist><title>Related APIs</title>
-<link format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer"><linktext>Skins API</linktext>
-<desc> for providing themes support for the status pane</desc>
-</link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD" xml:lang="en"><title> Status pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Status pane displays status information of the current application
+and state, as well as general information about the device status,
+such as signal strength and battery charge. The Status pane may also
+be totally left out in certain applications or situations. </p>
+<p>There are three different variations of the Status pane:<ul>
+<li><p>Normal status pane (includes both Title and Navi pane). </p></li>
+<li><p>Flat status pane (includes only the Title pane).</p></li>
+<li><p>Thin status pane (special status pane used, for example, in
+the Browser application)</p></li>
+</ul>Flat and thin Status panes can be used in cases where it is important
+to maximize Main pane area (for example, Browser). </p>
+<p>The Status pane contains the following sub-panes:</p>
+<ul>
+<li><p>Battery pane</p></li>
+<li><p>Clock pane</p></li>
+<li><p>Navi pane</p></li>
+<li><p>Signal pane</p></li>
+<li><p>Title pane</p></li>
+<li><p>Universal indicator pane</p></li>
+</ul>
+<fig id="GUID-770A54B6-9F18-4BC3-92A7-AFB4D9E40199">
+<title>Status pane areas</title>
+<image href="GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e66931_href.png" placement="inline"/>
+</fig>
+<p><b>Status pane items</b></p>
+<p>A single tap on: </p>
+<ul>
+<li><p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
+pane</xref>: common items (such as tabs) should perform a function
+that is obvious and clear. Common AVKON interaction does not change.
+However, it an application can assign an appropriate function to its
+Navi pane items. It is also possible not to assign any function where
+appropriate.</p></li>
+<li><p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal
+indicator pane</xref>: opens a pop-up with more information on <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref> indicators. It always includes battery and signal indicators and
+a small digital clock. The user can tap any of those for more information.
+For each visible universal indicator, there is one row reserved in
+the pop-up for displaying the icon and a description text. The description
+text may also inform about the current status and/or it may be a link
+to a view in corresponding application. For example, a tap on "3 new
+messages" opens the relevant view from the messaging application,
+and "Bluetooth active" switches view to the Bluetooth settings. Content
+of the row is determined by the application originating the indicator. </p></li>
+<li><p>Clock in the home screen opens the Clock application.</p></li>
+</ul>
+<section id="GUID-681C48E1-D94F-4960-8BC4-DEB5C8B677DF"><title>Using the status pane
+in applications</title><p>The API to use for the status pane is the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref>. For implementation information,
+see <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3" scope="peer">Using the status pane API</xref>.</p><p>Use the Status
+pane API for the following tasks:</p><ul>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.1" scope="peer">Creating the status pane using a resource file</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.2" scope="peer">Accessing the status pane</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.3" scope="peer">Accessing controls in the status pane's subpanes</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.4" scope="peer">Showing and hiding the status pane</xref></p></li>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.5" scope="peer">Dynamically changing status pane layout </xref></p></li>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.6" scope="peer">Observing status pane events</xref></p></li>
+</ul><p>Applications can define and modify the title and navi sub-panes.
+For implementation information on the sub-panes in the status pane,
+see the following APIs:</p><ul>
+<li><p>Title pane API for the title pane</p></li>
+<li><p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for the Navi pane</p></li>
+</ul><p><xref href="GUID-4B3EDBA0-8849-37DE-9693-4A2DB23A2101.dita"><apiname>CEikStatusPane</apiname></xref> is the interface through
+which applications use the status pane. Use the method <xref href="GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5.dita#GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5/GUID-98441932-C5BD-3743-B98F-BC8B7C40D2DA"><apiname>CEikStatusPaneBase::IsAppOwned()</apiname></xref> in the class <xref href="GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5.dita#GUID-DFA80461-F732-30E8-B76A-B04C58CC1DD5/GUID-18905F65-84C6-3085-865C-489041B36886"><apiname>CEikStatusPaneBase::TPaneCapabilities()</apiname></xref> to test whether the pane is owned by the application or the server.
+Applications can only interact directly with application owned sub-panes.</p><p><draft-comment time="2008-05-23T11:14" translate="no"> Relationship between events/similar
+for entire status pane and sub-panes: should be clearer on what's
+done where</draft-comment></p><p> The following options are available
+for modifying the default behavior of the status pane:  </p><ul>
+<li><p>Since the status pane is a compound control, it can be made
+visible or invisible like an other control with <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-159A51CE-4AEF-367B-9182-F33489D08BE2"><apiname>CCoeControl::MakeVisible()</apiname></xref>. <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-159A51CE-4AEF-367B-9182-F33489D08BE2"><apiname>CCoeControl::MakeVisible()</apiname></xref> can be called before
+or after the control is activated. An example of a call to make the
+status pane invisible is as follows:  </p><codeblock xml:space="preserve">CEikStatusPane* sp = StatusPane();// Gets a pointer to the status pane in the UI controller 
+StatusPane()-&gt;MakeVisible(EFalse); //make pane invisible somewhere in your code</codeblock></li>
+<li><p>Accessing and modifying controls inside the status pane.</p><p> The Status Pane API provides methods for accessing the status
+pane control and modifying the status pane layout.   </p><p>If you
+want to modify panes within the status pane, you need to get a pointer
+to the status pane and then use one of the following classes and methods: </p><ul>
+<li><p><xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita"><apiname>CAknTitlePane</apiname></xref> for the title sub-pane</p></li>
+<li><p>Methods defined by the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for accessing the navi sub-pane </p></li>
+<li><p>The <xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref> for accessing tabs in the navi sub-pane.</p></li>
+</ul></li>
+<li><p>Defining new resources for the status pane to override the
+default behavior</p><p> Once you have defined your resources, you
+may need to use some of the status pane APIs to achieve the desired
+effect in your application.  </p><p>For more information, see the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref> and <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> reference documentation. 
+ </p></li>
+<li><p>You can also derive your own classes from the available classes
+or their base classes to customize your own controls. </p></li>
+</ul><p>For more information on the panes, refer the following:</p></section>
+</conbody><related-links id="GUID-0FBC10E3-6A44-4AB4-BD42-A23539C4F148">
+<linklist><title>Related APIs</title>
+<link format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer"><linktext>Skins API</linktext>
+<desc> for providing themes support for the status pane</desc>
+</link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e214491_href.png has changed
Binary file Symbian3/SDK/Source/GUID-773A0EDC-F17C-553B-BEC3-DA990F5064B7_d0e218228_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,82 +1,82 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1"><title>How to store a compound object</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The protocol for storing a compound object follows a standard pattern. However, the design of some compound objects may force deviations from this.</p> <p>A compound object can be stored either in-line or out-of-line.</p> <p>The basic protocol for storing is the <codeph>StoreL()</codeph> function. This is true whether the object is stored in-line or out-of-line and should be prototyped as:</p> <codeblock id="GUID-CDFAF7E5-5B4A-538F-B5C9-C90474D61A3A" xml:space="preserve">TStreamId StoreL(CStreamStore&amp; aStore) const;</codeblock> <p>The function takes a reference to the store in which the stream or stream network is to be stored and returns the stream ID through which the object can be restored later.</p> <section><title>Storing components in-line</title> <p>Storing a compound object’s component objects in-line means writing all of these components to the same stream.</p> <p>In general, this is achieved by defining and implementing a <codeph>StoreL()</codeph> member function for the compound object's class.</p> <p>For example, for a class <codeph>CCompound</codeph> defined as:</p> <codeblock id="GUID-A469CECC-7125-5A84-A23A-75EABBBA88F2" xml:space="preserve">CCompound class : public CBase
-    {
-    ...
-    TInt         iDdata;
-    CComponentA* iCompA;
-    CComponentB* iCompB;
-    ...
-    }</codeblock> <p>where <codeph>CComponentA</codeph> and <codeph>CComponentB</codeph> are classes, the object's component objects can be stored in the same stream as the remainder of the component's data. The <codeph>StoreL()</codeph> implementation is:</p> <codeblock id="GUID-8FCF485C-7160-5EFE-BF41-58066948E4A9" xml:space="preserve">TStreamId CCompound::StoreL(CStreamStore&amp; aStore)
-    { 
-    RStoreWriteStream outstream;
-    TStreamId id = outstream.CreateLC(aStore); // Creates the write stream
-    ExternalizeL(outstream);                   // Externalises the object and all of its components
-    outstream.CommitL();                       // Commits the stream
-    CleanupStack::PopAndDestroy();             // Performs cleanup on the write stream object
-    return id;                                 // Returns the stream ID 
-    }</codeblock> <p><codeph>ExternalizeL()</codeph> externalises <codeph>CCompound</codeph> ’s data members and components; the implementation is:</p> <codeblock id="GUID-CB8D162A-D3D9-5055-9D39-2944FEFD86F5" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
-    {
-    aStream &lt;&lt; iData;
-    aStream &lt;&lt; *iCompA;
-    aStream &lt;&lt; *iCompB;
-    }</codeblock> <p>The stream can be visualised as:</p> <fig id="GUID-5B3BAB7B-5CF2-5E1F-8A7D-A3A375E53EC8"><image href="GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e363012_href.png" placement="inline"/></fig> </section> <section><title>Storing components out-of-line</title> <p>Storing a compound object’s component objects out-of-line means writing all of its component objects to a different stream from that to which it, itself, is written. Each component may be written to its own stream or to its own network of streams. The main advantage of this is that it allows for deferred loading of streams.</p> <p>It is important to note that components are stored <i>before</i> the containing object.</p> <p> The following code fragment defines an example class, CCompound, having two components, <codeph>CComponentA</codeph> and <codeph>CComponentB</codeph>. The components are defined as instances of the templated class TSwizzle.</p> <codeblock id="GUID-B690B024-A3A0-57AC-B36B-4A7B2F3EAF39" xml:space="preserve">CCompound class : public CBase
-    {
-    ...
-    TInt                  iDdata;
-    TSwizzle&lt;CComponentA&gt; iCompA;
-    TSwizzle&lt;CComponentB&gt; iCompB;
-    ...
-    }</codeblock> <p>Storing is achieved by defining and implementing a <codeph>StoreL()</codeph> member function for the compound object's class. In this example, the <codeph>StoreL()</codeph> implementation is:</p> <codeblock id="GUID-E59D8C65-8AD5-55BF-B996-1D91D62F5836" xml:space="preserve">TStreamId CCompound::StoreL(CStreamStore&amp; aStore)
-    {
-    CStoreMap* map=CStoreMap::NewLC(aStore);
-    StoreComponentsL(*map);
-    RStoreWriteStream stream(*map);
-    TStreamId id=stream.CreateLC(aStore);
-    ExternalizeL(stream);
-    stream.CommitL();
-    map-&gt;Reset();
-    CleanupStack::PopAndDestroy(2);
-    return id;
-    }</codeblock> <p>The <codeph>StoreL()</codeph> function:</p> <ul><li id="GUID-0C8A4FE4-7D5E-5876-A65E-885AD0E5F76D"><p>writes the <codeph>CCompound</codeph> components to their own streams.</p> </li> <li id="GUID-0DFAD43D-8C0A-5B70-A087-13871A326317"><p>writes <codeph>CCompound</codeph> itself and its components’ stream IDs to a single stream.</p> </li> <li id="GUID-CB63A225-714E-549C-B5DD-51A41B080EB5"><p>returns the ID of the top-level stream.</p> </li> </ul> <p>This can be visualised as:</p> <fig id="GUID-038EC5C3-6C97-5B8B-A495-3C39EC459039"><image href="GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e363085_href.png" placement="inline"/></fig> <p><codeph>CCompound</codeph> ’s components are stored to their own streams by defining and implementing a <codeph>StoreComponentsL()</codeph> member function; this is prototyped as:</p> <codeblock id="GUID-CF751ACF-736F-5A04-A275-8FA3D16A9F27" xml:space="preserve">void StoreComponentsL(CStreamStore&amp; aStore,CStoreMap&amp; aMap)</codeblock> <p>and implemented as:</p> <codeblock id="GUID-69BE7DCB-6861-5BB3-84E4-CBCFFEF9C0B3" xml:space="preserve">void CCompound::StoreComponentsL(CStreamStore&amp; aStore,CStoreMap&amp; aMap)
-    {
-    TStreamId id;
-        
-    if (iCompA)
-          {
-          id = iCompA-&gt;StoreL(aStore); // store component
-          aMap.BindL(iCompA,id);       // connect the resulting stream id and component
-          }
-    if (iCompB)
-          {
-          id = iCompB-&gt;StoreL(aStore); // store component
-          aMap.BindL(iCompB,id);       // connect the resulting stream id and component
-          }
-    }</codeblock> <p>The condition: <codeph>if (iCompA)</codeph> is equivalent to: <codeph>if
-  (iCompA.IsPtr())</codeph>, and returns true only if the Swizzle represents the <codeph>CComponentA</codeph> object as a pointer. In an application where deferred loading is important, this allows for the possibility that the <codeph>CComponentA</codeph> object is not loaded when the attempt to store the <codeph>CCompound</codeph> object is made.</p> <p>Although each of <codeph>CCompound</codeph>'s components are shown stored in their own respective single streams, they may be stored into their own respective network of streams and the resulting stream IDs may be the IDs of head streams. A component can consist of further components.</p> <p><codeph>StoreComponentsL()</codeph> takes a reference to a store map, as well as the store. The store map is constructed by <codeph>StoreL()</codeph> and is used to contain the association between internal objects and stored components (represented in the store by their stream IDs). These IDs are written by <codeph>CCompound</codeph>'s <codeph>ExternalizeL()</codeph> function and is implemented:</p> <codeblock id="GUID-0ECDEF61-6CAC-5F6C-8326-53E902E5EECE" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
-    {
-    aStream &lt;&lt; iDdata;
-    aStream &lt;&lt; iCompA;
-    aStream &lt;&lt; iCompB;
-    }</codeblock> <p>This simplicity is due to <codeph>RStoreWriteStream</codeph> behaviour. The pointers are automatically looked up in the map associated with the stream, as they are being externalised.</p> <p>The store map must be reset before destroying it because the store map’s destructor deletes any streams from the store that are still referenced in the map. This means that, should a leave occur during the storing operation, any streams that have been written are automatically cleaned up.</p> <p>It is legitimate to define the <codeph>CCompound</codeph> class without using Swizzles. If the class is defined as:</p> <codeblock id="GUID-B2185546-B4D2-5554-9FF2-37E9F7369EB4" xml:space="preserve">CCompound class : public CBase
-    {
-    ...
-    TInt         iDdata;
-    CComponentA* iCompA;
-    CComponentB* iCompB;
-    ...
-    }</codeblock> <p> then the implementations of <codeph>CCompound::StoreL()</codeph>, <codeph>CCompound::StoreComponentsL()</codeph> remain the same, but <codeph>CCompound::ExternalizeL()</codeph> has to change to:</p> <codeblock id="GUID-A8B102F4-B893-54CA-A052-0ABEBCC0240A" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
-    {
-    aStream &lt;&lt; iDdata;
-    aStream &lt;&lt; *iCompA;
-    aStream &lt;&lt; *iCompB;
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-7767599C-7B77-5DD1-8E3E-7AD01EC6F6A1"><title>How to store a compound object</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The protocol for storing a compound object follows a standard pattern. However, the design of some compound objects may force deviations from this.</p> <p>A compound object can be stored either in-line or out-of-line.</p> <p>The basic protocol for storing is the <codeph>StoreL()</codeph> function. This is true whether the object is stored in-line or out-of-line and should be prototyped as:</p> <codeblock id="GUID-CDFAF7E5-5B4A-538F-B5C9-C90474D61A3A" xml:space="preserve">TStreamId StoreL(CStreamStore&amp; aStore) const;</codeblock> <p>The function takes a reference to the store in which the stream or stream network is to be stored and returns the stream ID through which the object can be restored later.</p> <section><title>Storing components in-line</title> <p>Storing a compound object’s component objects in-line means writing all of these components to the same stream.</p> <p>In general, this is achieved by defining and implementing a <codeph>StoreL()</codeph> member function for the compound object's class.</p> <p>For example, for a class <codeph>CCompound</codeph> defined as:</p> <codeblock id="GUID-A469CECC-7125-5A84-A23A-75EABBBA88F2" xml:space="preserve">CCompound class : public CBase
+    {
+    ...
+    TInt         iDdata;
+    CComponentA* iCompA;
+    CComponentB* iCompB;
+    ...
+    }</codeblock> <p>where <codeph>CComponentA</codeph> and <codeph>CComponentB</codeph> are classes, the object's component objects can be stored in the same stream as the remainder of the component's data. The <codeph>StoreL()</codeph> implementation is:</p> <codeblock id="GUID-8FCF485C-7160-5EFE-BF41-58066948E4A9" xml:space="preserve">TStreamId CCompound::StoreL(CStreamStore&amp; aStore)
+    { 
+    RStoreWriteStream outstream;
+    TStreamId id = outstream.CreateLC(aStore); // Creates the write stream
+    ExternalizeL(outstream);                   // Externalises the object and all of its components
+    outstream.CommitL();                       // Commits the stream
+    CleanupStack::PopAndDestroy();             // Performs cleanup on the write stream object
+    return id;                                 // Returns the stream ID 
+    }</codeblock> <p><codeph>ExternalizeL()</codeph> externalises <codeph>CCompound</codeph> ’s data members and components; the implementation is:</p> <codeblock id="GUID-CB8D162A-D3D9-5055-9D39-2944FEFD86F5" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
+    {
+    aStream &lt;&lt; iData;
+    aStream &lt;&lt; *iCompA;
+    aStream &lt;&lt; *iCompB;
+    }</codeblock> <p>The stream can be visualised as:</p> <fig id="GUID-5B3BAB7B-5CF2-5E1F-8A7D-A3A375E53EC8"><image href="GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e356932_href.png" placement="inline"/></fig> </section> <section><title>Storing components out-of-line</title> <p>Storing a compound object’s component objects out-of-line means writing all of its component objects to a different stream from that to which it, itself, is written. Each component may be written to its own stream or to its own network of streams. The main advantage of this is that it allows for deferred loading of streams.</p> <p>It is important to note that components are stored <i>before</i> the containing object.</p> <p> The following code fragment defines an example class, CCompound, having two components, <codeph>CComponentA</codeph> and <codeph>CComponentB</codeph>. The components are defined as instances of the templated class TSwizzle.</p> <codeblock id="GUID-B690B024-A3A0-57AC-B36B-4A7B2F3EAF39" xml:space="preserve">CCompound class : public CBase
+    {
+    ...
+    TInt                  iDdata;
+    TSwizzle&lt;CComponentA&gt; iCompA;
+    TSwizzle&lt;CComponentB&gt; iCompB;
+    ...
+    }</codeblock> <p>Storing is achieved by defining and implementing a <codeph>StoreL()</codeph> member function for the compound object's class. In this example, the <codeph>StoreL()</codeph> implementation is:</p> <codeblock id="GUID-E59D8C65-8AD5-55BF-B996-1D91D62F5836" xml:space="preserve">TStreamId CCompound::StoreL(CStreamStore&amp; aStore)
+    {
+    CStoreMap* map=CStoreMap::NewLC(aStore);
+    StoreComponentsL(*map);
+    RStoreWriteStream stream(*map);
+    TStreamId id=stream.CreateLC(aStore);
+    ExternalizeL(stream);
+    stream.CommitL();
+    map-&gt;Reset();
+    CleanupStack::PopAndDestroy(2);
+    return id;
+    }</codeblock> <p>The <codeph>StoreL()</codeph> function:</p> <ul><li id="GUID-0C8A4FE4-7D5E-5876-A65E-885AD0E5F76D"><p>writes the <codeph>CCompound</codeph> components to their own streams.</p> </li> <li id="GUID-0DFAD43D-8C0A-5B70-A087-13871A326317"><p>writes <codeph>CCompound</codeph> itself and its components’ stream IDs to a single stream.</p> </li> <li id="GUID-CB63A225-714E-549C-B5DD-51A41B080EB5"><p>returns the ID of the top-level stream.</p> </li> </ul> <p>This can be visualised as:</p> <fig id="GUID-038EC5C3-6C97-5B8B-A495-3C39EC459039"><image href="GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e357005_href.png" placement="inline"/></fig> <p><codeph>CCompound</codeph> ’s components are stored to their own streams by defining and implementing a <codeph>StoreComponentsL()</codeph> member function; this is prototyped as:</p> <codeblock id="GUID-CF751ACF-736F-5A04-A275-8FA3D16A9F27" xml:space="preserve">void StoreComponentsL(CStreamStore&amp; aStore,CStoreMap&amp; aMap)</codeblock> <p>and implemented as:</p> <codeblock id="GUID-69BE7DCB-6861-5BB3-84E4-CBCFFEF9C0B3" xml:space="preserve">void CCompound::StoreComponentsL(CStreamStore&amp; aStore,CStoreMap&amp; aMap)
+    {
+    TStreamId id;
+        
+    if (iCompA)
+          {
+          id = iCompA-&gt;StoreL(aStore); // store component
+          aMap.BindL(iCompA,id);       // connect the resulting stream id and component
+          }
+    if (iCompB)
+          {
+          id = iCompB-&gt;StoreL(aStore); // store component
+          aMap.BindL(iCompB,id);       // connect the resulting stream id and component
+          }
+    }</codeblock> <p>The condition: <codeph>if (iCompA)</codeph> is equivalent to: <codeph>if
+  (iCompA.IsPtr())</codeph>, and returns true only if the Swizzle represents the <codeph>CComponentA</codeph> object as a pointer. In an application where deferred loading is important, this allows for the possibility that the <codeph>CComponentA</codeph> object is not loaded when the attempt to store the <codeph>CCompound</codeph> object is made.</p> <p>Although each of <codeph>CCompound</codeph>'s components are shown stored in their own respective single streams, they may be stored into their own respective network of streams and the resulting stream IDs may be the IDs of head streams. A component can consist of further components.</p> <p><codeph>StoreComponentsL()</codeph> takes a reference to a store map, as well as the store. The store map is constructed by <codeph>StoreL()</codeph> and is used to contain the association between internal objects and stored components (represented in the store by their stream IDs). These IDs are written by <codeph>CCompound</codeph>'s <codeph>ExternalizeL()</codeph> function and is implemented:</p> <codeblock id="GUID-0ECDEF61-6CAC-5F6C-8326-53E902E5EECE" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
+    {
+    aStream &lt;&lt; iDdata;
+    aStream &lt;&lt; iCompA;
+    aStream &lt;&lt; iCompB;
+    }</codeblock> <p>This simplicity is due to <codeph>RStoreWriteStream</codeph> behaviour. The pointers are automatically looked up in the map associated with the stream, as they are being externalised.</p> <p>The store map must be reset before destroying it because the store map’s destructor deletes any streams from the store that are still referenced in the map. This means that, should a leave occur during the storing operation, any streams that have been written are automatically cleaned up.</p> <p>It is legitimate to define the <codeph>CCompound</codeph> class without using Swizzles. If the class is defined as:</p> <codeblock id="GUID-B2185546-B4D2-5554-9FF2-37E9F7369EB4" xml:space="preserve">CCompound class : public CBase
+    {
+    ...
+    TInt         iDdata;
+    CComponentA* iCompA;
+    CComponentB* iCompB;
+    ...
+    }</codeblock> <p> then the implementations of <codeph>CCompound::StoreL()</codeph>, <codeph>CCompound::StoreComponentsL()</codeph> remain the same, but <codeph>CCompound::ExternalizeL()</codeph> has to change to:</p> <codeblock id="GUID-A8B102F4-B893-54CA-A052-0ABEBCC0240A" xml:space="preserve">void CCompound::ExternalizeL(RWriteStream&amp; aStream) const
+    {
+    aStream &lt;&lt; iDdata;
+    aStream &lt;&lt; *iCompA;
+    aStream &lt;&lt; *iCompB;
     }</codeblock> <p> However, this makes it more difficult to implement deferred loading.</p> <p><b>See also</b> </p> <p><xref href="GUID-C1AA34CB-D63D-57E3-87F6-28AD22537D21.dita">Store map</xref> </p> <p><xref href="GUID-53112730-5871-5920-8861-D2F6BF1595BC.dita">Swizzles and deferred loading</xref> </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1" xml:lang="en"><title>How to
-- Multiple screens</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FD58790A-FD0B-563A-80AD-562222865636-GENID-1-8-1-3-1-1-7-1-11-1-2-1"><title>Contents</title> <ul>
-<li id="GUID-75FA7683-5209-5FA6-A10F-F7597498C6CD-GENID-1-8-1-3-1-1-7-1-11-1-2-1-2-1"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1/GUID-00999729-88B9-557B-B999-B2058D63AAB9-GENID-1-8-1-3-1-1-7-1-11-1-2-2">Introduction</xref> </p> </li>
-<li id="GUID-68F833FD-7519-5FE0-AEAA-FDB7B1FCBA0C-GENID-1-8-1-3-1-1-7-1-11-1-2-1-2-2"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1/GUID-903F3A00-48C8-583A-92E8-B66F08998DBF-GENID-1-8-1-3-1-1-7-1-11-1-2-3-2">Configuration</xref> </p> </li>
-<li id="GUID-ED3A4756-E173-587B-838C-9289C1471DF9-GENID-1-8-1-3-1-1-7-1-11-1-2-1-2-3"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1/GUID-DA870E94-50CA-5175-B69E-39248E57EFFA-GENID-1-8-1-3-1-1-7-1-11-1-2-3-5">Building the ROM image</xref> </p> </li>
-<li id="GUID-C84723E9-97D6-5E74-A74B-14E4566C824C-GENID-1-8-1-3-1-1-7-1-11-1-2-1-2-4"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1/GUID-7B313E77-1089-5FF2-A228-9F82C1C25796-GENID-1-8-1-3-1-1-7-1-11-1-2-3-7">Example Code</xref> </p> </li>
-<li id="GUID-3609B180-CD0D-501B-9A45-405530FAC78F-GENID-1-8-1-3-1-1-7-1-11-1-2-1-2-5"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1/GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D-GENID-1-8-1-3-1-1-7-1-11-1-2-3-44">Limitations</xref> </p> </li>
-</ul> </section>
-<section id="GUID-00999729-88B9-557B-B999-B2058D63AAB9-GENID-1-8-1-3-1-1-7-1-11-1-2-2"><title>Introduction</title> <p id="GUID-01F1BC97-47DD-5281-A73B-A0281BF826FB-GENID-1-8-1-3-1-1-7-1-11-1-2-2-2"><b>Purpose and scope</b> </p> <p>This
-document explains how an application can draw to multiple screens. It is aimed
-at a developer who is already familiar with creating a simple application
-GUI. In this document, the CONE and WSERV interfaces that support multiple
-screens are referred to.</p> </section>
-<section id="GUID-094C6D9D-317C-50E2-8440-2217082B89AC-GENID-1-8-1-3-1-1-7-1-11-1-2-3"><title>How to create
-multiple screens</title> <p id="GUID-903F3A00-48C8-583A-92E8-B66F08998DBF-GENID-1-8-1-3-1-1-7-1-11-1-2-3-2"><b>Configuration</b> </p> <p>The
-first screen is indexed as zero and the nth screen is indexed as n-1. The
-changes below should be made to the <codeph>wsini.ini</codeph> file which
-resides under <codeph>\epoc32\data\z\system\data</codeph>. </p> <codeblock id="GUID-BF1B0027-D28C-5AFD-8D0D-9D848FE073C0-GENID-1-8-1-3-1-1-7-1-11-1-2-3-4" xml:space="preserve">[screen 0]
-[screen 1]
-[screen n-1]</codeblock> <p id="GUID-DA870E94-50CA-5175-B69E-39248E57EFFA-GENID-1-8-1-3-1-1-7-1-11-1-2-3-5"><b>Building
-the ROM image</b> </p> <p>The secondary screen is supported through TV-OUT
-on H4 board. The H4 base port only supports landscape mode with 16 bpp resolution.
-The ROM image must be built with <codeph>-DWITH_TVOUT</codeph> as a parameter.</p> <p id="GUID-7B313E77-1089-5FF2-A228-9F82C1C25796-GENID-1-8-1-3-1-1-7-1-11-1-2-3-7"><b>Example Code</b> </p> <p id="GUID-3431BCF4-D0C2-5DB3-A0D2-6A245C558A9A-GENID-1-8-1-3-1-1-7-1-11-1-2-3-8"><b>Setup example code</b> </p> <p>The
-following code is the basis for the examples that follow.</p> <p>This is a <codeph>wsini.ini</codeph> file
-used to create two fixed screens:</p> <codeblock id="GUID-BDC24C06-7B6C-5664-B75E-62192F90A4B2-GENID-1-8-1-3-1-1-7-1-11-1-2-3-11" xml:space="preserve">AUTOCLEAR 1
-STARTUP \SYS\BIN\Start
-WINDOWMODE COLOR64K
-KEYCLICKPLUGIN KeyClickRef
-TRANSPARENCY
-MULTIFOCUSPOLICY
-[screen 0]
-[screen 1]</codeblock> <p>This is a class <codeph>CTRedControl</codeph>, which
-draws a rectangle on the second screen:</p> <codeblock id="GUID-A840ED6A-5339-56D3-B0EC-685A8231B425-GENID-1-8-1-3-1-1-7-1-11-1-2-3-13" xml:space="preserve">const TInt KSndScreenNo = 1;
-
-class CTRedControl : public CCoeControl
-     {
-public:
-    CTRedControl(){};
-    ~CTRedControl(){};
-    void ConstructL(RWindowGroup* aWinGp);
-
-private: // From CCoeControl
-    void Draw(const TRect&amp; aRect) const;
-    };
-
-void CTRedControl::ConstructL(RWindowGroup* aWinGp)
-    {    
-    CreateWindowL(aWinGp);
-    SetExtent(TPoint(20,20),TSize(100,100));
-    SetFocus(ETrue);
-    ActivateL();        
-    }
-
-void CTRedControl::Draw(const TRect&amp; aRect) const
-    {
-    CWindowGc&amp; gc=SystemGc();
-    if (IsFocused())
-        {
-        gc.SetPenColor(KRgbRed);
-        }
-          
-    gc.DrawRect(aRect);     
-    }</codeblock> <p id="GUID-D8F54A7C-3F22-59A2-9C6C-A1ACAA22AFBC-GENID-1-8-1-3-1-1-7-1-11-1-2-3-14"><b>Windows
-on multiple screens</b> </p> <p>Using the above example code as a basis, the
-following methods can be used to facilitate access to multiple screens:</p> <p>Class <codeph>RWsSession</codeph> provides
-the interface to query WSERV about window groups on a particular screen and
-the number of screens in the system. The application calls the function below
-to get the number of screens supported on the phone:</p> <codeblock id="GUID-C8CBEEE7-440D-5438-93F0-6B7A71F4C0CD-GENID-1-8-1-3-1-1-7-1-11-1-2-3-17" xml:space="preserve">iCoeEnv-&gt;WsSession().NumberOfScreens();</codeblock> <p>The class <codeph>CWsScreenDevice</codeph> provides the interface to
-query the physical limitations of the screen and set the parameters of the
-corresponding logical screen. The class <codeph>RWindowGroup</codeph> is the
-client side handle to the server side window group. A pair of screen device
-and window group is required to draw on a screen. </p> <p>CONE maintains an
-array of screen devices and window groups. The screen number is used to index
-this array to retrieve a particular window group and its corresponding screen
-device.</p> <p>The application calls <codeph>ScreenDevice()</codeph> to get
-the second screen device:</p> <codeblock id="GUID-FEF6A8DE-EE98-5E66-8890-84011B6DCD9D-GENID-1-8-1-3-1-1-7-1-11-1-2-3-21" xml:space="preserve">iCoeEnv-&gt;ScreenDevice(KSndScreenNo);</codeblock> <p>The
-application calls <codeph>RootWin()</codeph> to get the window group on the
-second screen:</p> <codeblock id="GUID-0376DBC0-1025-575E-8A7C-490A9580FD5F-GENID-1-8-1-3-1-1-7-1-11-1-2-3-23" xml:space="preserve">iCoeEnv-&gt;RootWin(KSndScreenNo);</codeblock> <p>The
-application calls <codeph>NumWindowGroups(</codeph> <codeph>)</codeph> to
-get the number of window groups with <codeph>EAllPriorities</codeph> on the
-second screen:</p> <codeblock id="GUID-992EE967-FACA-5F18-B727-85FFBDD28845-GENID-1-8-1-3-1-1-7-1-11-1-2-3-25" xml:space="preserve">iCoeEnv-&gt;WsSession().NumWindowGroups(KSndScreenNo,EAllPriorities);</codeblock> <p>The application creates a new list and then populates it with <codeph>WindowGroupList()</codeph> <codeph> </codeph> to
-get the list of window groups with <codeph>EAllPriorities</codeph> on the
-second screen:</p> <codeblock id="GUID-88D13DA1-95C7-5B4F-948E-A81B56A6553F-GENID-1-8-1-3-1-1-7-1-11-1-2-3-27" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(ELeave) CArrayFixFlat&lt;TInt&gt;(1);
-iCoeEnv-&gt;WsSession().WindowGroupList(list,KSndScreenNo,EAllPriorities);</codeblock> <p>The
-application calls <codeph>GetFocusWindowGroup()</codeph> to get the window
-group that has the keyboard focus on the second screen:</p> <codeblock id="GUID-510FD612-678F-5371-AD24-4AA9448F84C2-GENID-1-8-1-3-1-1-7-1-11-1-2-3-29" xml:space="preserve">iCoeEnv-&gt;WsSession().GetFocusWindowGroup(KSndScreenNo);</codeblock> <p>Each screen has a default owning window group. The application calls <codeph>GetDefaultOwningWindow()</codeph> to
-get the default owning window group on the second screen:</p> <codeblock id="GUID-CE5F2A11-614E-53FA-A2E2-6785E1AA6C39-GENID-1-8-1-3-1-1-7-1-11-1-2-3-31" xml:space="preserve">iCoeEnv -&gt;WsSession().GetDefaultOwningWindow(KSndScreenNo);</codeblock> <p>The application calls <codeph>GetDefModeMaxNumColors()</codeph> to get
-the maximum colour and display mode supported on the second screen:</p> <codeblock id="GUID-0B57742A-EDB8-5FA6-AD95-7E680D102893-GENID-1-8-1-3-1-1-7-1-11-1-2-3-33" xml:space="preserve">TInt colour, grey;
-iCoeEnv-&gt;WsSession().GetDefModeMaxNumColors(KSndScreenNo,colour,grey);</codeblock> <p>The
-application calls <codeph>GetColorModeList()</codeph> to get the list of colour
-modes supported on the second screen:</p> <codeblock id="GUID-CD614F8F-EC68-5F1A-8DB6-93D98AA5A67B-GENID-1-8-1-3-1-1-7-1-11-1-2-3-35" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(Eleave) CArrayFixFlat&lt;TInt&gt;(1);
-iCoeEnv -&gt;WsSession().GetColorModeList(KSndScreenNo, list);</codeblock> <p id="GUID-B6CD7117-E316-5C57-A22F-B5B63D708851-GENID-1-8-1-3-1-1-7-1-11-1-2-3-36"><b>Creating a control on a
-particular screen</b> </p> <p>A window group is associated with a screen device,
-which in turn is associated to a screen. A control is associated with a window
-group. Therefore a control is constructed on the second screen using the function
-below, in the control’s <codeph>ConstructL()</codeph>:</p> <codeblock id="GUID-C43130E9-74F7-5F64-A333-EB8C673636B8-GENID-1-8-1-3-1-1-7-1-11-1-2-3-38" xml:space="preserve">CTRedControl  redControl=new(Eleave) CTRedControl();
-redControl-&gt;ConstructL(CCoeEnv::Static()-&gt;RootWin(KSndScreenNo));</codeblock> <p id="GUID-0F5FDB1D-EF43-572F-B68F-47E47025AB45-GENID-1-8-1-3-1-1-7-1-11-1-2-3-39"><b>Graphics Context</b> </p> <p>The
-class <codeph>CWindowGc</codeph> provides the interface for the application’s
-window graphics context and can be activated on any window in the application.
-This means that it can be used on any screen on the phone. The function call
-below is used to find the screen device on which the graphics context was
-last activated.</p> <codeblock id="GUID-88F5AE9B-EBE1-544A-AE96-953C2FDDC8A7-GENID-1-8-1-3-1-1-7-1-11-1-2-3-41" xml:space="preserve">CCoeEnv::Static()-&gt;SystemGc().Device();</codeblock> <p id="GUID-D7EFBD5D-1AF3-526A-A1FF-5FC9F75E68CF-GENID-1-8-1-3-1-1-7-1-11-1-2-3-42"><b>Window Group Focus Policy</b> </p> <p>There
-are two focus policies supported by WSERV. The default focus policy is that
-there is only the focused window group on the focused screen receives key
-events. The new policy is that any window group can receive key events and
-can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in
-the <codeph>wsini.ini</codeph> file.</p> <p id="GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D-GENID-1-8-1-3-1-1-7-1-11-1-2-3-44"><b>Limitations</b> </p> <p id="GUID-C16D1C3E-0326-58CB-8220-F02F2A57321E-GENID-1-8-1-3-1-1-7-1-11-1-2-3-45"><b>Pointer Events </b> </p> <p>The
-first screen created is also the primary screen in the system. It is important
-to note that only the primary screen can respond to pointer events. This is
-due to the fact that the kernel supports only one screen digitiser.</p> <p id="GUID-E4D55BC0-9D6A-5D6D-BCA1-8724DCB920D1-GENID-1-8-1-3-1-1-7-1-11-1-2-3-47"><b>Cone-Based UI</b> </p> <p>Due
-to limitations in the legacy implementation of Cone and the control sets implemented
-on top of it (for example, Eikon, Avkon or Qikon), it is nearly impossible
-to make the same application draw Cone-based UI on two different screens at
-the same time. However, a secondary screen can be used to draw non-Cone-based
-graphics (for example, a picture or PowerPoint slide-show, or a UI not using
-Cone for its widgets). If it must appear as if an application supports displaying
-itself on the secondary screen, then this can be done by moving that UI into
-a second application instance. This second instance could be a server application
-that only acts as a slave UI of the main application. In any case, that secondary
-application instance would have to set the secondary screen as its default
-screen. There are two main problems: </p> <ol id="GUID-85EC1750-E58A-5BA3-839E-D07AC1958CE0-GENID-1-8-1-3-1-1-7-1-11-1-2-3-49">
-<li id="GUID-67511BE4-B68A-5958-9D87-7413E2244327-GENID-1-8-1-3-1-1-7-1-11-1-2-3-49-1"><p> All controls have to
-be associated with a window, and window owning controls do not currently try
-to make sure that the window they create is associated with the screen that
-they should appear on. This means, for example, that a pop-out window created
-by a choice list widget will always appear on the application's primary screen,
-rather than on the screen on which the choice list itself is located. </p> </li>
-<li id="GUID-BB68FC89-0AA7-5AEC-8CAC-7959CB79C6B2-GENID-1-8-1-3-1-1-7-1-11-1-2-3-49-2"><p> None of the legacy
-widget implementations referencing the screen device take into consideration
-that there might be more than one screen on the device. These include <codeph>CCoeControl</codeph>'s <codeph>SetExtentToWholeScreen()</codeph>, <codeph>SetCornerAndSize()</codeph>, <codeph>AccumulatedZoom()</codeph>, <codeph>PositionRelativeToScreen()</codeph>,
-and <codeph>CEikAppUi's ClientRect()</codeph> and <codeph>ApplicationRect()</codeph>). </p> </li>
-</ol> <p>Neither of these problems can be solved currently.</p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1" xml:lang="en"><title>How to
-- Multiple screens</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FD58790A-FD0B-563A-80AD-562222865636-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1"><title>Contents</title> <ul>
-<li id="GUID-75FA7683-5209-5FA6-A10F-F7597498C6CD-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1-2-1"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1/GUID-00999729-88B9-557B-B999-B2058D63AAB9-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-2">Introduction</xref> </p> </li>
-<li id="GUID-68F833FD-7519-5FE0-AEAA-FDB7B1FCBA0C-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1-2-2"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1/GUID-903F3A00-48C8-583A-92E8-B66F08998DBF-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-2">Configuration</xref> </p> </li>
-<li id="GUID-ED3A4756-E173-587B-838C-9289C1471DF9-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1-2-3"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1/GUID-DA870E94-50CA-5175-B69E-39248E57EFFA-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-5">Building the ROM image</xref> </p> </li>
-<li id="GUID-C84723E9-97D6-5E74-A74B-14E4566C824C-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1-2-4"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1/GUID-7B313E77-1089-5FF2-A228-9F82C1C25796-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-7">Example Code</xref> </p> </li>
-<li id="GUID-3609B180-CD0D-501B-9A45-405530FAC78F-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-1-2-5"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-6-1-1-4-1-6-1-11-1/GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-44">Limitations</xref> </p> </li>
-</ul> </section>
-<section id="GUID-00999729-88B9-557B-B999-B2058D63AAB9-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-2"><title>Introduction</title> <p id="GUID-01F1BC97-47DD-5281-A73B-A0281BF826FB-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-2-2"><b>Purpose and scope</b> </p> <p>This
-document explains how an application can draw to multiple screens. It is aimed
-at a developer who is already familiar with creating a simple application
-GUI. In this document, the CONE and WSERV interfaces that support multiple
-screens are referred to.</p> </section>
-<section id="GUID-094C6D9D-317C-50E2-8440-2217082B89AC-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3"><title>How to create
-multiple screens</title> <p id="GUID-903F3A00-48C8-583A-92E8-B66F08998DBF-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-2"><b>Configuration</b> </p> <p>The
-first screen is indexed as zero and the nth screen is indexed as n-1. The
-changes below should be made to the <codeph>wsini.ini</codeph> file which
-resides under <codeph>\epoc32\data\z\system\data</codeph>. </p> <codeblock id="GUID-BF1B0027-D28C-5AFD-8D0D-9D848FE073C0-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-4" xml:space="preserve">[screen 0]
-[screen 1]
-[screen n-1]</codeblock> <p id="GUID-DA870E94-50CA-5175-B69E-39248E57EFFA-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-5"><b>Building
-the ROM image</b> </p> <p>The secondary screen is supported through TV-OUT
-on H4 board. The H4 base port only supports landscape mode with 16 bpp resolution.
-The ROM image must be built with <codeph>-DWITH_TVOUT</codeph> as a parameter.</p> <p id="GUID-7B313E77-1089-5FF2-A228-9F82C1C25796-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-7"><b>Example Code</b> </p> <p id="GUID-3431BCF4-D0C2-5DB3-A0D2-6A245C558A9A-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-8"><b>Setup example code</b> </p> <p>The
-following code is the basis for the examples that follow.</p> <p>This is a <codeph>wsini.ini</codeph> file
-used to create two fixed screens:</p> <codeblock id="GUID-BDC24C06-7B6C-5664-B75E-62192F90A4B2-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-11" xml:space="preserve">AUTOCLEAR 1
-STARTUP \SYS\BIN\Start
-WINDOWMODE COLOR64K
-KEYCLICKPLUGIN KeyClickRef
-TRANSPARENCY
-MULTIFOCUSPOLICY
-[screen 0]
-[screen 1]</codeblock> <p>This is a class <codeph>CTRedControl</codeph>, which
-draws a rectangle on the second screen:</p> <codeblock id="GUID-A840ED6A-5339-56D3-B0EC-685A8231B425-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-13" xml:space="preserve">const TInt KSndScreenNo = 1;
-
-class CTRedControl : public CCoeControl
-     {
-public:
-    CTRedControl(){};
-    ~CTRedControl(){};
-    void ConstructL(RWindowGroup* aWinGp);
-
-private: // From CCoeControl
-    void Draw(const TRect&amp; aRect) const;
-    };
-
-void CTRedControl::ConstructL(RWindowGroup* aWinGp)
-    {    
-    CreateWindowL(aWinGp);
-    SetExtent(TPoint(20,20),TSize(100,100));
-    SetFocus(ETrue);
-    ActivateL();        
-    }
-
-void CTRedControl::Draw(const TRect&amp; aRect) const
-    {
-    CWindowGc&amp; gc=SystemGc();
-    if (IsFocused())
-        {
-        gc.SetPenColor(KRgbRed);
-        }
-          
-    gc.DrawRect(aRect);     
-    }</codeblock> <p id="GUID-D8F54A7C-3F22-59A2-9C6C-A1ACAA22AFBC-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-14"><b>Windows
-on multiple screens</b> </p> <p>Using the above example code as a basis, the
-following methods can be used to facilitate access to multiple screens:</p> <p>Class <codeph>RWsSession</codeph> provides
-the interface to query WSERV about window groups on a particular screen and
-the number of screens in the system. The application calls the function below
-to get the number of screens supported on the phone:</p> <codeblock id="GUID-C8CBEEE7-440D-5438-93F0-6B7A71F4C0CD-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-17" xml:space="preserve">iCoeEnv-&gt;WsSession().NumberOfScreens();</codeblock> <p>The class <codeph>CWsScreenDevice</codeph> provides the interface to
-query the physical limitations of the screen and set the parameters of the
-corresponding logical screen. The class <codeph>RWindowGroup</codeph> is the
-client side handle to the server side window group. A pair of screen device
-and window group is required to draw on a screen. </p> <p>CONE maintains an
-array of screen devices and window groups. The screen number is used to index
-this array to retrieve a particular window group and its corresponding screen
-device.</p> <p>The application calls <codeph>ScreenDevice()</codeph> to get
-the second screen device:</p> <codeblock id="GUID-FEF6A8DE-EE98-5E66-8890-84011B6DCD9D-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-21" xml:space="preserve">iCoeEnv-&gt;ScreenDevice(KSndScreenNo);</codeblock> <p>The
-application calls <codeph>RootWin()</codeph> to get the window group on the
-second screen:</p> <codeblock id="GUID-0376DBC0-1025-575E-8A7C-490A9580FD5F-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-23" xml:space="preserve">iCoeEnv-&gt;RootWin(KSndScreenNo);</codeblock> <p>The
-application calls <codeph>NumWindowGroups(</codeph> <codeph>)</codeph> to
-get the number of window groups with <codeph>EAllPriorities</codeph> on the
-second screen:</p> <codeblock id="GUID-992EE967-FACA-5F18-B727-85FFBDD28845-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-25" xml:space="preserve">iCoeEnv-&gt;WsSession().NumWindowGroups(KSndScreenNo,EAllPriorities);</codeblock> <p>The application creates a new list and then populates it with <codeph>WindowGroupList()</codeph> <codeph> </codeph> to
-get the list of window groups with <codeph>EAllPriorities</codeph> on the
-second screen:</p> <codeblock id="GUID-88D13DA1-95C7-5B4F-948E-A81B56A6553F-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-27" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(ELeave) CArrayFixFlat&lt;TInt&gt;(1);
-iCoeEnv-&gt;WsSession().WindowGroupList(list,KSndScreenNo,EAllPriorities);</codeblock> <p>The
-application calls <codeph>GetFocusWindowGroup()</codeph> to get the window
-group that has the keyboard focus on the second screen:</p> <codeblock id="GUID-510FD612-678F-5371-AD24-4AA9448F84C2-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-29" xml:space="preserve">iCoeEnv-&gt;WsSession().GetFocusWindowGroup(KSndScreenNo);</codeblock> <p>Each screen has a default owning window group. The application calls <codeph>GetDefaultOwningWindow()</codeph> to
-get the default owning window group on the second screen:</p> <codeblock id="GUID-CE5F2A11-614E-53FA-A2E2-6785E1AA6C39-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-31" xml:space="preserve">iCoeEnv -&gt;WsSession().GetDefaultOwningWindow(KSndScreenNo);</codeblock> <p>The application calls <codeph>GetDefModeMaxNumColors()</codeph> to get
-the maximum colour and display mode supported on the second screen:</p> <codeblock id="GUID-0B57742A-EDB8-5FA6-AD95-7E680D102893-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-33" xml:space="preserve">TInt colour, grey;
-iCoeEnv-&gt;WsSession().GetDefModeMaxNumColors(KSndScreenNo,colour,grey);</codeblock> <p>The
-application calls <codeph>GetColorModeList()</codeph> to get the list of colour
-modes supported on the second screen:</p> <codeblock id="GUID-CD614F8F-EC68-5F1A-8DB6-93D98AA5A67B-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-35" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(Eleave) CArrayFixFlat&lt;TInt&gt;(1);
-iCoeEnv -&gt;WsSession().GetColorModeList(KSndScreenNo, list);</codeblock> <p id="GUID-B6CD7117-E316-5C57-A22F-B5B63D708851-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-36"><b>Creating a control on a
-particular screen</b> </p> <p>A window group is associated with a screen device,
-which in turn is associated to a screen. A control is associated with a window
-group. Therefore a control is constructed on the second screen using the function
-below, in the control’s <codeph>ConstructL()</codeph>:</p> <codeblock id="GUID-C43130E9-74F7-5F64-A333-EB8C673636B8-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-38" xml:space="preserve">CTRedControl  redControl=new(Eleave) CTRedControl();
-redControl-&gt;ConstructL(CCoeEnv::Static()-&gt;RootWin(KSndScreenNo));</codeblock> <p id="GUID-0F5FDB1D-EF43-572F-B68F-47E47025AB45-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-39"><b>Graphics Context</b> </p> <p>The
-class <codeph>CWindowGc</codeph> provides the interface for the application’s
-window graphics context and can be activated on any window in the application.
-This means that it can be used on any screen on the phone. The function call
-below is used to find the screen device on which the graphics context was
-last activated.</p> <codeblock id="GUID-88F5AE9B-EBE1-544A-AE96-953C2FDDC8A7-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-41" xml:space="preserve">CCoeEnv::Static()-&gt;SystemGc().Device();</codeblock> <p id="GUID-D7EFBD5D-1AF3-526A-A1FF-5FC9F75E68CF-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-42"><b>Window Group Focus Policy</b> </p> <p>There
-are two focus policies supported by WSERV. The default focus policy is that
-there is only the focused window group on the focused screen receives key
-events. The new policy is that any window group can receive key events and
-can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in
-the <codeph>wsini.ini</codeph> file.</p> <p id="GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-44"><b>Limitations</b> </p> <p id="GUID-C16D1C3E-0326-58CB-8220-F02F2A57321E-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-45"><b>Pointer Events </b> </p> <p>The
-first screen created is also the primary screen in the system. It is important
-to note that only the primary screen can respond to pointer events. This is
-due to the fact that the kernel supports only one screen digitiser.</p> <p id="GUID-E4D55BC0-9D6A-5D6D-BCA1-8724DCB920D1-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-47"><b>Cone-Based UI</b> </p> <p>Due
-to limitations in the legacy implementation of Cone and the control sets implemented
-on top of it (for example, Eikon, Avkon or Qikon), it is nearly impossible
-to make the same application draw Cone-based UI on two different screens at
-the same time. However, a secondary screen can be used to draw non-Cone-based
-graphics (for example, a picture or PowerPoint slide-show, or a UI not using
-Cone for its widgets). If it must appear as if an application supports displaying
-itself on the secondary screen, then this can be done by moving that UI into
-a second application instance. This second instance could be a server application
-that only acts as a slave UI of the main application. In any case, that secondary
-application instance would have to set the secondary screen as its default
-screen. There are two main problems: </p> <ol id="GUID-85EC1750-E58A-5BA3-839E-D07AC1958CE0-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-49">
-<li id="GUID-67511BE4-B68A-5958-9D87-7413E2244327-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-49-1"><p> All controls have to
-be associated with a window, and window owning controls do not currently try
-to make sure that the window they create is associated with the screen that
-they should appear on. This means, for example, that a pop-out window created
-by a choice list widget will always appear on the application's primary screen,
-rather than on the screen on which the choice list itself is located. </p> </li>
-<li id="GUID-BB68FC89-0AA7-5AEC-8CAC-7959CB79C6B2-GENID-1-8-1-6-1-1-4-1-6-1-11-1-2-3-49-2"><p> None of the legacy
-widget implementations referencing the screen device take into consideration
-that there might be more than one screen on the device. These include <codeph>CCoeControl</codeph>'s <codeph>SetExtentToWholeScreen()</codeph>, <codeph>SetCornerAndSize()</codeph>, <codeph>AccumulatedZoom()</codeph>, <codeph>PositionRelativeToScreen()</codeph>,
-and <codeph>CEikAppUi's ClientRect()</codeph> and <codeph>ApplicationRect()</codeph>). </p> </li>
-</ol> <p>Neither of these problems can be solved currently.</p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE" xml:lang="en"><title>How to
+- Multiple screens</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-FD58790A-FD0B-563A-80AD-562222865636"><title>Contents</title> <ul>
+<li id="GUID-75FA7683-5209-5FA6-A10F-F7597498C6CD"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE/GUID-00999729-88B9-557B-B999-B2058D63AAB9">Introduction</xref> </p> </li>
+<li id="GUID-68F833FD-7519-5FE0-AEAA-FDB7B1FCBA0C"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE/GUID-903F3A00-48C8-583A-92E8-B66F08998DBF">Configuration</xref> </p> </li>
+<li id="GUID-ED3A4756-E173-587B-838C-9289C1471DF9"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE/GUID-DA870E94-50CA-5175-B69E-39248E57EFFA">Building the ROM image</xref> </p> </li>
+<li id="GUID-C84723E9-97D6-5E74-A74B-14E4566C824C"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE/GUID-7B313E77-1089-5FF2-A228-9F82C1C25796">Example Code</xref> </p> </li>
+<li id="GUID-3609B180-CD0D-501B-9A45-405530FAC78F"><p> <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita#GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE/GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D">Limitations</xref> </p> </li>
+</ul> </section>
+<section id="GUID-00999729-88B9-557B-B999-B2058D63AAB9"><title>Introduction</title> <p id="GUID-01F1BC97-47DD-5281-A73B-A0281BF826FB"><b>Purpose and scope</b> </p> <p>This
+document explains how an application can draw to multiple screens. It is aimed
+at a developer who is already familiar with creating a simple application
+GUI. In this document, the CONE and WSERV interfaces that support multiple
+screens are referred to.</p> </section>
+<section id="GUID-094C6D9D-317C-50E2-8440-2217082B89AC"><title>How to create
+multiple screens</title> <p id="GUID-903F3A00-48C8-583A-92E8-B66F08998DBF"><b>Configuration</b> </p> <p>The
+first screen is indexed as zero and the nth screen is indexed as n-1. The
+changes below should be made to the <codeph>wsini.ini</codeph> file which
+resides under <codeph>\epoc32\data\z\system\data</codeph>. </p> <codeblock id="GUID-BF1B0027-D28C-5AFD-8D0D-9D848FE073C0" xml:space="preserve">[screen 0]
+[screen 1]
+[screen n-1]</codeblock> <p id="GUID-DA870E94-50CA-5175-B69E-39248E57EFFA"><b>Building
+the ROM image</b> </p> <p>The secondary screen is supported through TV-OUT
+on H4 board. The H4 base port only supports landscape mode with 16 bpp resolution.
+The ROM image must be built with <codeph>-DWITH_TVOUT</codeph> as a parameter.</p> <p id="GUID-7B313E77-1089-5FF2-A228-9F82C1C25796"><b>Example Code</b> </p> <p id="GUID-3431BCF4-D0C2-5DB3-A0D2-6A245C558A9A"><b>Setup example code</b> </p> <p>The
+following code is the basis for the examples that follow.</p> <p>This is a <codeph>wsini.ini</codeph> file
+used to create two fixed screens:</p> <codeblock id="GUID-BDC24C06-7B6C-5664-B75E-62192F90A4B2" xml:space="preserve">AUTOCLEAR 1
+STARTUP \SYS\BIN\Start
+WINDOWMODE COLOR64K
+KEYCLICKPLUGIN KeyClickRef
+TRANSPARENCY
+MULTIFOCUSPOLICY
+[screen 0]
+[screen 1]</codeblock> <p>This is a class <codeph>CTRedControl</codeph>, which
+draws a rectangle on the second screen:</p> <codeblock id="GUID-A840ED6A-5339-56D3-B0EC-685A8231B425" xml:space="preserve">const TInt KSndScreenNo = 1;
+
+class CTRedControl : public CCoeControl
+     {
+public:
+    CTRedControl(){};
+    ~CTRedControl(){};
+    void ConstructL(RWindowGroup* aWinGp);
+
+private: // From CCoeControl
+    void Draw(const TRect&amp; aRect) const;
+    };
+
+void CTRedControl::ConstructL(RWindowGroup* aWinGp)
+    {    
+    CreateWindowL(aWinGp);
+    SetExtent(TPoint(20,20),TSize(100,100));
+    SetFocus(ETrue);
+    ActivateL();        
+    }
+
+void CTRedControl::Draw(const TRect&amp; aRect) const
+    {
+    CWindowGc&amp; gc=SystemGc();
+    if (IsFocused())
+        {
+        gc.SetPenColor(KRgbRed);
+        }
+          
+    gc.DrawRect(aRect);     
+    }</codeblock> <p id="GUID-D8F54A7C-3F22-59A2-9C6C-A1ACAA22AFBC"><b>Windows
+on multiple screens</b> </p> <p>Using the above example code as a basis, the
+following methods can be used to facilitate access to multiple screens:</p> <p>Class <codeph>RWsSession</codeph> provides
+the interface to query WSERV about window groups on a particular screen and
+the number of screens in the system. The application calls the function below
+to get the number of screens supported on the phone:</p> <codeblock id="GUID-C8CBEEE7-440D-5438-93F0-6B7A71F4C0CD" xml:space="preserve">iCoeEnv-&gt;WsSession().NumberOfScreens();</codeblock> <p>The class <codeph>CWsScreenDevice</codeph> provides the interface to
+query the physical limitations of the screen and set the parameters of the
+corresponding logical screen. The class <codeph>RWindowGroup</codeph> is the
+client side handle to the server side window group. A pair of screen device
+and window group is required to draw on a screen. </p> <p>CONE maintains an
+array of screen devices and window groups. The screen number is used to index
+this array to retrieve a particular window group and its corresponding screen
+device.</p> <p>The application calls <codeph>ScreenDevice()</codeph> to get
+the second screen device:</p> <codeblock id="GUID-FEF6A8DE-EE98-5E66-8890-84011B6DCD9D" xml:space="preserve">iCoeEnv-&gt;ScreenDevice(KSndScreenNo);</codeblock> <p>The
+application calls <codeph>RootWin()</codeph> to get the window group on the
+second screen:</p> <codeblock id="GUID-0376DBC0-1025-575E-8A7C-490A9580FD5F" xml:space="preserve">iCoeEnv-&gt;RootWin(KSndScreenNo);</codeblock> <p>The
+application calls <codeph>NumWindowGroups(</codeph> <codeph>)</codeph> to
+get the number of window groups with <codeph>EAllPriorities</codeph> on the
+second screen:</p> <codeblock id="GUID-992EE967-FACA-5F18-B727-85FFBDD28845" xml:space="preserve">iCoeEnv-&gt;WsSession().NumWindowGroups(KSndScreenNo,EAllPriorities);</codeblock> <p>The application creates a new list and then populates it with <codeph>WindowGroupList()</codeph> <codeph> </codeph> to
+get the list of window groups with <codeph>EAllPriorities</codeph> on the
+second screen:</p> <codeblock id="GUID-88D13DA1-95C7-5B4F-948E-A81B56A6553F" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(ELeave) CArrayFixFlat&lt;TInt&gt;(1);
+iCoeEnv-&gt;WsSession().WindowGroupList(list,KSndScreenNo,EAllPriorities);</codeblock> <p>The
+application calls <codeph>GetFocusWindowGroup()</codeph> to get the window
+group that has the keyboard focus on the second screen:</p> <codeblock id="GUID-510FD612-678F-5371-AD24-4AA9448F84C2" xml:space="preserve">iCoeEnv-&gt;WsSession().GetFocusWindowGroup(KSndScreenNo);</codeblock> <p>Each screen has a default owning window group. The application calls <codeph>GetDefaultOwningWindow()</codeph> to
+get the default owning window group on the second screen:</p> <codeblock id="GUID-CE5F2A11-614E-53FA-A2E2-6785E1AA6C39" xml:space="preserve">iCoeEnv -&gt;WsSession().GetDefaultOwningWindow(KSndScreenNo);</codeblock> <p>The application calls <codeph>GetDefModeMaxNumColors()</codeph> to get
+the maximum colour and display mode supported on the second screen:</p> <codeblock id="GUID-0B57742A-EDB8-5FA6-AD95-7E680D102893" xml:space="preserve">TInt colour, grey;
+iCoeEnv-&gt;WsSession().GetDefModeMaxNumColors(KSndScreenNo,colour,grey);</codeblock> <p>The
+application calls <codeph>GetColorModeList()</codeph> to get the list of colour
+modes supported on the second screen:</p> <codeblock id="GUID-CD614F8F-EC68-5F1A-8DB6-93D98AA5A67B" xml:space="preserve">CArrayFixFlat&lt;TInt&gt;* list = new(Eleave) CArrayFixFlat&lt;TInt&gt;(1);
+iCoeEnv -&gt;WsSession().GetColorModeList(KSndScreenNo, list);</codeblock> <p id="GUID-B6CD7117-E316-5C57-A22F-B5B63D708851"><b>Creating a control on a
+particular screen</b> </p> <p>A window group is associated with a screen device,
+which in turn is associated to a screen. A control is associated with a window
+group. Therefore a control is constructed on the second screen using the function
+below, in the control’s <codeph>ConstructL()</codeph>:</p> <codeblock id="GUID-C43130E9-74F7-5F64-A333-EB8C673636B8" xml:space="preserve">CTRedControl  redControl=new(Eleave) CTRedControl();
+redControl-&gt;ConstructL(CCoeEnv::Static()-&gt;RootWin(KSndScreenNo));</codeblock> <p id="GUID-0F5FDB1D-EF43-572F-B68F-47E47025AB45"><b>Graphics Context</b> </p> <p>The
+class <codeph>CWindowGc</codeph> provides the interface for the application’s
+window graphics context and can be activated on any window in the application.
+This means that it can be used on any screen on the phone. The function call
+below is used to find the screen device on which the graphics context was
+last activated.</p> <codeblock id="GUID-88F5AE9B-EBE1-544A-AE96-953C2FDDC8A7" xml:space="preserve">CCoeEnv::Static()-&gt;SystemGc().Device();</codeblock> <p id="GUID-D7EFBD5D-1AF3-526A-A1FF-5FC9F75E68CF"><b>Window Group Focus Policy</b> </p> <p>There
+are two focus policies supported by WSERV. The default focus policy is that
+there is only the focused window group on the focused screen receives key
+events. The new policy is that any window group can receive key events and
+can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in
+the <codeph>wsini.ini</codeph> file.</p> <p id="GUID-C9E09ADA-07D9-551C-A3D6-46CE3F70269D"><b>Limitations</b> </p> <p id="GUID-C16D1C3E-0326-58CB-8220-F02F2A57321E"><b>Pointer Events </b> </p> <p>The
+first screen created is also the primary screen in the system. It is important
+to note that only the primary screen can respond to pointer events. This is
+due to the fact that the kernel supports only one screen digitiser.</p> <p id="GUID-E4D55BC0-9D6A-5D6D-BCA1-8724DCB920D1"><b>Cone-Based UI</b> </p> <p>Due
+to limitations in the legacy implementation of Cone and the control sets implemented
+on top of it (for example, Eikon, Avkon or Qikon), it is nearly impossible
+to make the same application draw Cone-based UI on two different screens at
+the same time. However, a secondary screen can be used to draw non-Cone-based
+graphics (for example, a picture or PowerPoint slide-show, or a UI not using
+Cone for its widgets). If it must appear as if an application supports displaying
+itself on the secondary screen, then this can be done by moving that UI into
+a second application instance. This second instance could be a server application
+that only acts as a slave UI of the main application. In any case, that secondary
+application instance would have to set the secondary screen as its default
+screen. There are two main problems: </p> <ol id="GUID-85EC1750-E58A-5BA3-839E-D07AC1958CE0">
+<li id="GUID-67511BE4-B68A-5958-9D87-7413E2244327"><p> All controls have to
+be associated with a window, and window owning controls do not currently try
+to make sure that the window they create is associated with the screen that
+they should appear on. This means, for example, that a pop-out window created
+by a choice list widget will always appear on the application's primary screen,
+rather than on the screen on which the choice list itself is located. </p> </li>
+<li id="GUID-BB68FC89-0AA7-5AEC-8CAC-7959CB79C6B2"><p> None of the legacy
+widget implementations referencing the screen device take into consideration
+that there might be more than one screen on the device. These include <codeph>CCoeControl</codeph>'s <codeph>SetExtentToWholeScreen()</codeph>, <codeph>SetCornerAndSize()</codeph>, <codeph>AccumulatedZoom()</codeph>, <codeph>PositionRelativeToScreen()</codeph>,
+and <codeph>CEikAppUi's ClientRect()</codeph> and <codeph>ApplicationRect()</codeph>). </p> </li>
+</ol> <p>Neither of these problems can be solved currently.</p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-77AD4D8C-08CA-45C4-B5E7-04B4C7958A1A_d0e81736_href.png has changed
Binary file Symbian3/SDK/Source/GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e176330_href.png has changed
Binary file Symbian3/SDK/Source/GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e182924_href.png has changed
Binary file Symbian3/SDK/Source/GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e110965_href.png has changed
Binary file Symbian3/SDK/Source/GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e117503_href.png has changed
--- a/Symbian3/SDK/Source/GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE" xml:lang="en"><title>Data
-queries with multiple fields</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>It is possible to have two input fields in a Data query. An example of
-this is a user name and password query: one field is a normal alphanumeric
-editor and the other a password editor. In this case, a press of the Selection
-key moves the insertion point from the first field to the next; in the second
-field it accepts the query. The left softkey always accepts the query. The
-user can also move from one field to the other using the Arrow up and Arrow
-down keys. Note that in landscape orientation it may not be feasible to use
-a query with multiple fields and alternative solutions may be necessary, for
-example, launching one query first for user name and on pressing  Ok' another
-query is launched for password.</p>
-<fig id="GUID-047D024E-80CD-43D7-8A2C-8144C257820F">
-<title>Data query with two input fields</title>
-<image href="GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e68930_href.png" scale="40" placement="inline"/>
-</fig>
-<section><title>Using data queries with
-multiple fields in C++ applications</title><p>For implementation information,
-see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-781F53F0-0F84-4BF9-A565-C2E7333521CE" xml:lang="en"><title>Data
+queries with multiple fields</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>It is possible to have two input fields in a Data query. An example of
+this is a user name and password query: one field is a normal alphanumeric
+editor and the other a password editor. In this case, a press of the Selection
+key moves the insertion point from the first field to the next; in the second
+field it accepts the query. The left softkey always accepts the query. The
+user can also move from one field to the other using the Arrow up and Arrow
+down keys. Note that in landscape orientation it may not be feasible to use
+a query with multiple fields and alternative solutions may be necessary, for
+example, launching one query first for user name and on pressing <b>OK</b> another
+query is launched for password.</p>
+<fig id="GUID-047D024E-80CD-43D7-8A2C-8144C257820F">
+<title>Data query with two input fields</title>
+<image href="GUID-51F63BFF-CD62-4FFC-929D-ED778642044E_d0e63705_href.png" scale="40" placement="inline"/>
+</fig>
+<section id="GUID-1E484115-24B9-494E-A488-00E98D03264F"><title>Using
+data queries with multiple fields in applications</title><p>For implementation
+information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e55932_href.png has changed
Binary file Symbian3/SDK/Source/GUID-783161AE-708E-4FB4-8219-EEC0F9939E9B_d0e63641_href.png has changed
--- a/Symbian3/SDK/Source/GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F" xml:lang="en"><title>Disabling
-stylus popup menus in AVKON lists</title><shortdesc>This document describes how to disable stylus popup menus in AVKON
-lists.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-6A438073-304B-485A-8B5B-2B6A3578B74B">       <p>In some
-views, stylus popup menus must not be displayed with a long tap. For example,
-when a view has both a stylus popup menu and a context sensitive menu with
-the same commands.</p><p>If the context sensitive menu is required to remain,
-the stylus popup menu must be disabled. This way the item-specific commands
-are available only in the context sensitive menu, which is launched with both
-single and long tap.</p>     </context>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-8-1-3-2">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-4-1-1-7-1-4-1-8-1-3-2-1"><cmd>You can disable
-the stylus popup menu in either of the following ways:</cmd>
-<choices>
-<choice><p>Dynamically during construction.</p><codeblock xml:space="preserve">iListBox-&gt;ConstructL(this, EAknListBoxItemSpecificMenuDisabled);
-</codeblock></choice>
-<choice><p>In the list box resource</p><codeblock xml:space="preserve">LISTBOX
-{
-  flags = EAknListBoxItemSpecificMenuDisabled;
-  height = 3;
-  width = 3;
-};
-</codeblock></choice>
-</choices>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-78453EBD-B4F3-4A78-AEAE-3D126DFED31F" xml:lang="en"><title>Disabling
+stylus popup menus in AVKON lists</title><shortdesc>This document describes how to disable stylus popup menus in AVKON
+lists.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-6A438073-304B-485A-8B5B-2B6A3578B74B">       <p>In some
+views, stylus popup menus must not be displayed with a long tap. For example,
+when a view has both a stylus popup menu and a context sensitive menu with
+the same commands.</p><p>If the context sensitive menu is required to remain,
+the stylus popup menu must be disabled. This way the item-specific commands
+are available only in the context sensitive menu, which is launched with both
+single and long tap.</p>     </context>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-8-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-6-1-1-4-1-8-1-3-2-1"><cmd>You can disable
+the stylus popup menu in either of the following ways:</cmd>
+<choices>
+<choice><p>Dynamically during construction.</p><codeblock xml:space="preserve">iListBox-&gt;ConstructL(this, EAknListBoxItemSpecificMenuDisabled);
+</codeblock></choice>
+<choice><p>In the list box resource</p><codeblock xml:space="preserve">LISTBOX
+{
+  flags = EAknListBoxItemSpecificMenuDisabled;
+  height = 3;
+  width = 3;
+};
+</codeblock></choice>
+</choices>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e69648_href.png has changed
Binary file Symbian3/SDK/Source/GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e74811_href.png has changed
--- a/Symbian3/SDK/Source/GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E" xml:lang="en"><title>Providing
-tactile feedback for touch events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Tactile feedback client API provides area registry based feedback and
-direct feedback to Symbian applications and UI components. You can use the
-API to add, modify and remove feedback areas, trigger direct feedback and
-disable feedback for certain UI components or the whole application. </p>
-<section id="GUID-F1980AF1-191A-4D61-AAA9-EF76BA173C5D"><p>To provide tactile
-feedback using the using the Tactile feedback client API, follow the steps
-below:</p><ol>
-<li id="GUID-5FA4DF79-88DD-43DA-B666-D3FC398C73B4">Include the Tactile Feedback
-Client library <codeph>touchfeedback.lib</codeph> in your <codeph>.mmp</codeph> file.</li>
-<li id="GUID-7FA6526A-0D2C-4F2A-A2ED-67291FA1AD31"><p>Include the header files <codeph>touchfeedback.h</codeph> and <codeph>touchlogicalfeedback.h</codeph>.</p></li>
-<li id="GUID-A508E628-FEBF-4BDC-B235-731948C11BF6">Use the <codeph>MTouchFeedback::Instance</codeph> function
-for acquiring a pointer to the interface.</li>
-<li id="GUID-23CB9F1A-9090-4B2D-8531-1BFFD7A963F6">Set feedback areas for
-your UI controls using the <codeph>SizeChanged</codeph> function (or in another
-approriate place).</li>
-<li id="GUID-86AF1A90-69BC-42E3-AAFE-74E23C8A427E">Update the feedback areas
-using the <codeph>PositionChanged</codeph> function (for non-window-owning
-controls).</li>
-<li id="GUID-4F098AAF-1E71-4334-8D94-732CCE25A7DA">Call <codeph>RemoveFeedbackForControl</codeph> in
-your control's destructor.</li>
-<li id="GUID-E6F49D08-5F41-4638-91EE-526E67E15FE6">If you want to use direct
-feedback, trigger it in the <codeph>HandlePointerEventL</codeph> function
-with a call to <codeph>InstantFeedback</codeph>.</li>
-</ol></section>
-<section id="GUID-158ECB24-37E7-48DE-80F4-9606AC58F183"><title>Use cases</title><fig id="GUID-B8FF99CA-CC09-4B25-BEB6-0DA7053D1B7F">
-<title>Tactile feedback client API use cases</title>
-<image href="GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e78726_href.png" scale="90" placement="inline"/>
-</fig><p>To provide tactile feedback for touch events in your applications,
-implement the following use cases:</p><ul>
-<li><p><xref href="GUID-27897E0D-D9D6-4007-A45E-62C366F1267C.dita">Using direct
-feedback</xref></p><ul>
-<li>Feedback effect is played according to given logical feedback type.</li>
-</ul></li>
-<li><p><xref href="GUID-10A03A8E-E967-4F9C-B911-2F06031C6ADC.dita">Using area registry
-based feedback</xref></p><ul>
-<li><p>Set feedback area</p><ul>
-<li>New feedback area is added to area registry.</li>
-<li>Can also be used for modifying existing feedback area.</li>
-</ul></li>
-<li><p>Change feedback area</p><ul>
-<li>Change feedback area coordinates, or feedback type for a given area.</li>
-</ul></li>
-<li><p>Remove feedback area</p><ul>
-<li>Given feedback area is removed from the registry</li>
-</ul></li>
-</ul> </li>
-<li><p><xref href="GUID-129FCE62-5498-4717-864B-7DC6A5C5944D.dita">Removing feedback
-from a control</xref></p><ul>
-<li>All feedback areas belonging to given control are removed from registry.</li>
-<li>All cached information about the control is also removed.</li>
-</ul></li>
-</ul><p>The following use cases are optional, allowing you to use additional
-tactile feedback features:</p> <ul>
-<li><p><xref href="GUID-842D8557-076B-4A6E-B823-81164368FD86.dita">Disabling and
-enabling feedback</xref></p><ul>
-<li><p>Enable or disable feedback for you application</p><ul>
-<li>Disable feedback for this application at run-time.</li>
-<li>Enable feedback for this application at run-time.</li>
-<li>Query whether feedback is currently enabled for this application.</li>
-<li>Enable only audio- or vibra feedback for this application at run-time.</li>
-</ul></li>
-<li><p>Enable or disable feedback for a control</p><ul>
-<li>Temporarily disable feedback for given control.</li>
-<li>Re-enable feedback for given control.</li>
-<li>Temporarily enable only audio or vibra feedback.</li>
-</ul></li>
-</ul></li>
-<li><p><xref href="GUID-BF6ECC83-C7A0-4183-B835-6299CC2114AF.dita">Querying if
-feedback is supported</xref></p><ul>
-<li>Check if tactile feedback is supported in this device.</li>
-</ul></li>
-<li><p><xref href="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita">Managing feedback
-areas</xref></p><ul>
-<li> You can sort feedback areas for achieving desired functionality in case
-of overlapping areas.</li>
-</ul></li>
-<li><p><xref href="GUID-2BF409EA-82BF-407C-B048-DA0973B7F61D.dita">Optimizing feedback
-latency</xref></p></li>
-</ul> </section>
-<section id="GUID-0F6F2C15-23C0-47A7-916C-15C92DDED877"><p>For an overview
-of using tactile feedback in your application, see <xref href="GUID-2632A013-AA87-485E-855D-C50E211057D6.dita">Tactile
-feedback implementation example</xref>.</p></section>
-<section id="GUID-03DB8FD1-D1FE-434E-B15F-D4B5DD80926B"><title>Main implementation
-files</title><p>The implementation files for the Tactile feedback client API
-are <codeph>touchfeedback.h</codeph> and <codeph>touchlogicalfeedback.h</codeph>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E" xml:lang="en"><title>Providing
+tactile feedback for touch events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Tactile feedback client API provides area registry based feedback and
+direct feedback to Symbian applications and UI components. You can use the
+API to add, modify and remove feedback areas, trigger direct feedback and
+disable feedback for certain UI components or the whole application. </p>
+<section id="GUID-F1980AF1-191A-4D61-AAA9-EF76BA173C5D"><p>To provide tactile
+feedback using the using the Tactile feedback client API, follow the steps
+below:</p><ol>
+<li id="GUID-5FA4DF79-88DD-43DA-B666-D3FC398C73B4">Include the Tactile Feedback
+Client library <codeph>touchfeedback.lib</codeph> in your <codeph>.mmp</codeph> file.</li>
+<li id="GUID-7FA6526A-0D2C-4F2A-A2ED-67291FA1AD31"><p>Include the header files <codeph>touchfeedback.h</codeph> and <codeph>touchlogicalfeedback.h</codeph>.</p></li>
+<li id="GUID-A508E628-FEBF-4BDC-B235-731948C11BF6">Use the <codeph>MTouchFeedback::Instance</codeph> function
+for acquiring a pointer to the interface.</li>
+<li id="GUID-23CB9F1A-9090-4B2D-8531-1BFFD7A963F6">Set feedback areas for
+your UI controls using the <codeph>SizeChanged</codeph> function (or in another
+approriate place).</li>
+<li id="GUID-86AF1A90-69BC-42E3-AAFE-74E23C8A427E">Update the feedback areas
+using the <codeph>PositionChanged</codeph> function (for non-window-owning
+controls).</li>
+<li id="GUID-4F098AAF-1E71-4334-8D94-732CCE25A7DA">Call <codeph>RemoveFeedbackForControl</codeph> in
+your control's destructor.</li>
+<li id="GUID-E6F49D08-5F41-4638-91EE-526E67E15FE6">If you want to use direct
+feedback, trigger it in the <codeph>HandlePointerEventL</codeph> function
+with a call to <codeph>InstantFeedback</codeph>.</li>
+</ol></section>
+<section id="GUID-158ECB24-37E7-48DE-80F4-9606AC58F183"><title>Use cases</title><fig id="GUID-B8FF99CA-CC09-4B25-BEB6-0DA7053D1B7F">
+<title>Tactile feedback client API use cases</title>
+<image href="GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e73606_href.png" scale="90" placement="inline"/>
+</fig><p>To provide tactile feedback for touch events in your applications,
+implement the following use cases:</p><ul>
+<li><p><xref href="GUID-27897E0D-D9D6-4007-A45E-62C366F1267C.dita">Using direct
+feedback</xref></p><ul>
+<li>Feedback effect is played according to given logical feedback type.</li>
+</ul></li>
+<li><p><xref href="GUID-10A03A8E-E967-4F9C-B911-2F06031C6ADC.dita">Using area registry
+based feedback</xref></p><ul>
+<li><p>Set feedback area</p><ul>
+<li>New feedback area is added to area registry.</li>
+<li>Can also be used for modifying existing feedback area.</li>
+</ul></li>
+<li><p>Change feedback area</p><ul>
+<li>Change feedback area coordinates, or feedback type for a given area.</li>
+</ul></li>
+<li><p>Remove feedback area</p><ul>
+<li>Given feedback area is removed from the registry</li>
+</ul></li>
+</ul> </li>
+<li><p><xref href="GUID-129FCE62-5498-4717-864B-7DC6A5C5944D.dita">Removing feedback
+from a control</xref></p><ul>
+<li>All feedback areas belonging to given control are removed from registry.</li>
+<li>All cached information about the control is also removed.</li>
+</ul></li>
+</ul><p>The following use cases are optional, allowing you to use additional
+tactile feedback features:</p> <ul>
+<li><p><xref href="GUID-842D8557-076B-4A6E-B823-81164368FD86.dita">Disabling and
+enabling feedback</xref></p><ul>
+<li><p>Enable or disable feedback for you application</p><ul>
+<li>Disable feedback for this application at run-time.</li>
+<li>Enable feedback for this application at run-time.</li>
+<li>Query whether feedback is currently enabled for this application.</li>
+<li>Enable only audio- or vibra feedback for this application at run-time.</li>
+</ul></li>
+<li><p>Enable or disable feedback for a control</p><ul>
+<li>Temporarily disable feedback for given control.</li>
+<li>Re-enable feedback for given control.</li>
+<li>Temporarily enable only audio or vibra feedback.</li>
+</ul></li>
+</ul></li>
+<li><p><xref href="GUID-BF6ECC83-C7A0-4183-B835-6299CC2114AF.dita">Querying if
+feedback is supported</xref></p><ul>
+<li>Check if tactile feedback is supported in this device.</li>
+</ul></li>
+<li><p><xref href="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita">Managing feedback
+areas</xref></p><ul>
+<li> You can sort feedback areas for achieving desired functionality in case
+of overlapping areas.</li>
+</ul></li>
+<li><p><xref href="GUID-2BF409EA-82BF-407C-B048-DA0973B7F61D.dita">Optimizing feedback
+latency</xref></p></li>
+</ul> </section>
+<section id="GUID-0F6F2C15-23C0-47A7-916C-15C92DDED877"><p>For an overview
+of using tactile feedback in your application, see <xref href="GUID-2632A013-AA87-485E-855D-C50E211057D6.dita">Tactile
+feedback implementation example</xref>.</p></section>
+<section id="GUID-03DB8FD1-D1FE-434E-B15F-D4B5DD80926B"><title>Main implementation
+files</title><p>The implementation files for the Tactile feedback client API
+are <codeph>touchfeedback.h</codeph> and <codeph>touchlogicalfeedback.h</codeph>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-788BC010-536D-4089-9B12-4A43A9C1C82B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-788BC010-536D-4089-9B12-4A43A9C1C82B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-788BC010-536D-4089-9B12-4A43A9C1C82B" xml:lang="en"><title>Application-specific
-indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Applications may need indicators specific to their own purposes. Such indicators
-can be placed into the Navi pane, if it is available, or into some part of
-the main pane. However, using the main pane this way may require the use of
-a specific main pane layout. Notice also that the icons present in many list
-item layouts can be utilized as indicators.</p>
-<section id="GUID-AA2E8BDD-15D1-4593-99F2-EB4AEB25AC9B"><title>Using
-application-specific indicators in C++ applications</title><p>The API to use
-for indicators is the Indicators API. For the navi pane, use
-the <xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" format="application/java-archive">Navigation pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-788BC010-536D-4089-9B12-4A43A9C1C82B" xml:lang="en"><title>Application-specific
+indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Applications may need indicators specific to their own purposes. Such indicators
+can be placed into the Navi pane, if it is available, or into some part of
+the main pane. However, using the main pane this way may require the use of
+a specific main pane layout. Notice also that the icons present in many list
+item layouts can be utilized as indicators.</p>
+<section id="GUID-AA2E8BDD-15D1-4593-99F2-EB4AEB25AC9B"><title>Using
+application-specific indicators in applications</title><p>The API to use for
+indicators is the Indicators API. For the navi pane, use the <xref href="jar:GUID-558A5A9B-811E-4A87-B3DD-AE734C9AA966.jar!/public_specs/GuidesA/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" format="application/java-archive">Navigation pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e75280_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e80408_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e79683_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78AAEDF8-6C31-53E3-B411-3463DDAAC902_d0e86395_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78AC068A-C858-41E9-94A8-32C8A8581BF8_d0e68959_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e195032_href.png has changed
Binary file Symbian3/SDK/Source/GUID-78B63C44-7765-5408-A611-DFE8709196F8_d0e200040_href.png has changed
Binary file Symbian3/SDK/Source/GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e184827_href.png has changed
Binary file Symbian3/SDK/Source/GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e191423_href.png has changed
--- a/Symbian3/SDK/Source/GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,125 +1,125 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B" xml:lang="en"><title>Build
-Process</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-1F561425-9B98-544A-A0CB-086E0931313E"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-DDD0A8B3-0375-5245-A019-C9A74575C63F">Introduction</xref>  </p> </li>
-<li id="GUID-DE26248D-27DE-5B38-9BFA-FE4CBAB676F6"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-423A00CF-D668-5114-860D-B30185DAB0B2">P.I.P.S. target types</xref>  </p> </li>
-<li id="GUID-9EC5C68C-CDFC-5608-A26C-FD6001822217"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-6A50D190-7E5B-5109-BA38-9C962DF8EB1D">Symbol information</xref>  </p> </li>
-<li id="GUID-6EDF3969-49B8-5F74-BFBF-C323D2C8480C"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-76C405AE-1AB7-59AE-BCAF-A9E09D17B24E">Mapping POSIX handles to the Symbian platform resource objects</xref>  </p> <ul>
-<li id="GUID-30586541-C6EB-5794-8171-2302C53AAE45"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-4AA14ED5-7949-5AAB-A685-87DA43B99AFE">Using non-system calls</xref>  </p> </li>
-<li id="GUID-E146BFE8-FDFE-551D-B280-5AD5303996C7"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-FBF12198-B501-5525-86AF-5517A012FDF1">Using the System Call Adaptation Layer</xref>  </p> </li>
-</ul> </li>
-</ul>
-<section id="GUID-DDD0A8B3-0375-5245-A019-C9A74575C63F"><title>Introduction</title> <p>Symbian
-currently builds its emulator code with the Metrowerks CodeWarrior compiler.
-This is known as the <codeph>WINSCW</codeph> build target. Binaries built
-with this compiler are put in the <filepath>epoc32\release\winscw</filepath> and <filepath>epoc32\winscw</filepath> directory
-trees. </p> <p>You can build your programs for the emulator using Metrowerks
-CodeWarrior. The build tools also support the Microsoft® Visual Studio .NET
-2003 and Microsoft Visual Studio v6 IDEs. For further information, see the <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build tools guide</xref> section.
-Note that licensees or third-parties may supply additional tools, or extend
-support to additional compilers, which are not described here. </p> <p>The
-following sections describe the Symbian platform target types
-introduced with P.I.P.S.. For further information see <xref href="GUID-763DCEF4-C960-58A2-99DC-7FFD3187BFD4.dita">the
-native build targets</xref> section. </p> <p>When using tool chains for pre-Symbian
-OS v9.3, the <filepath>.mmp</filepath> file has to be manually changed to
-link in various libraries. </p> <p>For Symbian OS v9.3 onwards the tool chain
-supports the new <codeph>STDEXE</codeph> and <codeph>STDDLL</codeph> target
-types for P.I.P.S. EXEs and DLLs. See the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita#GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B/GUID-5D0338E0-E2D4-5904-9B21-244CA52DD91B">Generation
-of STDEXE, STDDLL and STDLIB</xref> section for further explanation of the
-new target types introduced with P.I.P.S.. </p> </section>
-<section id="GUID-423A00CF-D668-5114-860D-B30185DAB0B2"><title>P.I.P.S. target
-types</title> <p>P.I.P.S. EXEs require adaptation logic to set up the C program
-environment and the P.I.P.S. run-time C library context - this is performed
-by the <codeph>CRT0</codeph> library (also known as glue code, see the <xref href="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita#GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D/GUID-49C7F951-8317-5F41-B1B9-9F7B8803E655">Glue
-code (CRT0)</xref> section for further details). </p> <p>P.I.P.S. executables
-are implemented using native Symbian platform executables linked statically
-to the glue code. The new target types for P.I.P.S. include the glue code
-by default. The glue code provides the linking code between the <codeph>E32Main()</codeph> entry
-point and the <codeph>main()</codeph> entry point used in 'C' P.I.P.S. EXEs. </p> <p>For
-further information see the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita">Target
-Types</xref> section. </p> </section>
-<section id="GUID-6A50D190-7E5B-5109-BA38-9C962DF8EB1D"><title>Symbol information</title> <p>When
-building a P.I.P.S. DLL (that is, when the target type is <codeph>STDDLL</codeph>),
-function and data symbols with <codeph>extern</codeph> linkage will be exported
-or imported by default, without any requirement for <xref href="GUID-BD292953-36BF-3C7D-AA93-98E6CB38968E.dita"><apiname>IMPORT_C</apiname></xref> /<xref href="GUID-2F78C3AC-7330-34C0-8A83-75D7345F2DC8.dita"><apiname>EXPORT_C</apiname></xref> declarations
-in the header or source files. </p> <p>Exporting of symbols with <codeph>extern</codeph> linkage
-is the assumed default on other platforms and enables the source code to be
-easily ported. Although this may normally be undesirable in the embedded world,
-it is supported for <codeph>STDDLL</codeph> to avoid portable source code
-having to include excessive decoration (that is, the <codeph>IMPORT_C</codeph> /<codeph>EXPORT_C</codeph> macros)
-for the Symbian platform. </p> <p> <codeph>STDEXE</codeph> and <codeph>STDDLL</codeph> provide
-symbol name information. For more information on the Symbian platform target
-types see the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita#GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B/GUID-5D0338E0-E2D4-5904-9B21-244CA52DD91B">Generation
-of STDEXE, STDDLL and STDLIB</xref> section. </p> </section>
-<section id="GUID-76C405AE-1AB7-59AE-BCAF-A9E09D17B24E"><title>Mapping POSIX
-handles to the Symbian platform resource objects</title> <p id="GUID-4AA14ED5-7949-5AAB-A685-87DA43B99AFE"><b>Using
-non-system calls</b> </p> <p>Several P.I.P.S. APIs that directly manipulate
-the Symbian platform (native) resources are implemented in the System Call
-Adaptation Layer (SCAL). The exceptions to this are <codeph>pthread</codeph> s,
-and memory maps. The <codeph>pthread</codeph> APIs use <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> s
-and <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex</apiname></xref> es directly from within <codeph>libpthread</codeph>.
-Similarly, <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> s that are used to provide support for
-memory maps are directly manipulated from within <codeph>libc</codeph>. Note
-that none of these APIs allow direct access to the underlying native resources.
-References to these are wrapped in POSIX-defined data structures. These data
-structures are intended to be treated as opaque and no attempt must be made
-to dereference or use the underlying resource reference directly. </p> <p>All
-IPC calls enter the SCAL, but are handled in a separate IPC library. This
-is a component distinction. The IPC library is logically still part of the
-SCAL. </p> <p id="GUID-FBF12198-B501-5525-86AF-5517A012FDF1"><b>Using the
-System Call Adaptation Layer</b> </p> <p>One of the supports provided by the
-System Call Adaptation Layer (SCAL) is the mapping of operations on UNIX®
-file descriptors to the corresponding Symbian platform resource objects. The
-section below discusses the file descriptors case. </p> <p id="GUID-1A1FC433-B9F6-5998-9622-14B961F477E2"><b>Creating
-a new file descriptor</b> </p> <p>The porting of the 'C' POSIX <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function,
-below, is a good example of mapping POSIX handles to native Symbian platform
-resource objects. The mapping is done through a file descriptor table. As
-a reminder, every application/process has its own file descriptor table. </p> <p>This
-example shows a call to the <codeph>fopen()</codeph> function: </p> <codeblock id="GUID-F9681B44-A1E6-5971-9C5E-147D4281DBF0" xml:space="preserve">//myapp.cpp
-int foo()
-{
-   //open the test.tx , fd=7 in this example
-   int fd = fopen("c:/test.txt", "r+");
-   ...
-   //writes to file referenced by the file descriptor  
-   ret = write (fd, buf, size_t);
-
-}</codeblock> <p>When <i>myapp</i> tries to open the file with <codeph>fopen()</codeph>,
-the application makes a call to the equivalent Symbian platform function, <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita#GUID-BE0804F6-4375-3C8A-8C83-968F510466E0/GUID-72470A68-7E07-30EF-A3C8-AA855CDAF60E"><apiname>RFile::Open()</apiname></xref>,
-and returns the next free entry in the file descriptor table. </p> <p>In each
-table, the values <codeph>0</codeph>, <codeph>1</codeph> and <codeph>2</codeph> are
-reserved for <xref href="GUID-C0C1D22B-298F-3E8D-A1E9-6F5EFA81F9E8.dita"><apiname>stdin()</apiname></xref>, <xref href="GUID-0441C351-4A8B-3A23-9255-D7C8CEA2A67F.dita"><apiname>sdtout()</apiname></xref> and <xref href="GUID-4FF97B50-2C1E-37EC-888B-FB8D3F14B5B8.dita"><apiname>stderr()</apiname></xref>.
-The figure below shows an example file descriptor table. </p> <fig id="GUID-4CEA6881-49E0-5211-8258-C44A8E8F3CDE">
-<image href="GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e156386_href.png" placement="inline"/>
-</fig> <p>According to the descriptor table the file descriptor equals <codeph>7</codeph>,
-as this was the next free entry in the table, and the write function will
-be writing to the file referenced by <codeph>7</codeph>. </p> <p> <b>Note:</b> A
-POSIX descriptor is an index in the process open file table and represents,
-for example, an open file, socket or pipe. A Symbian descriptor represents
-data which can reside in any memory location, either in ROM or RAM. A descriptor
-object maintains pointer and length information to describe the data. All
-access to the data is made through the descriptor object. </p> <p id="GUID-79958B57-8C71-5875-9C5B-8C313A96D13A"><b>Descriptors
-shared across multiple threads within the same process</b> </p> <p>Originally
-on the Symbian platform, resources were thread specific and multi-tasking
-was achieved using servers and active objects. In other operating systems,
-such as Linux, resources are process-local and multi-tasking is achieved by
-multi-threading. The purpose of the POSIX server in the original <codeph>STDLIB</codeph> was
-to allow system-wide data, resources and descriptors to be shared across multiple
-threads. This means there was context switching between the calling thread
-and the server thread which added latency. </p> <p>With the introduction of
-the EKA2 kernel, session handles can now be shared across multiple threads
-and processes. </p> <p>P.I.P.S. takes advantage of EKA2 and re-factors the
-SCAL to allow descriptors to be shared across multiple threads within the
-same process, without the use of the POSIX server. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B" xml:lang="en"><title>Build
+Process</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-1F561425-9B98-544A-A0CB-086E0931313E"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-DDD0A8B3-0375-5245-A019-C9A74575C63F">Introduction</xref>  </p> </li>
+<li id="GUID-DE26248D-27DE-5B38-9BFA-FE4CBAB676F6"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-423A00CF-D668-5114-860D-B30185DAB0B2">P.I.P.S. target types</xref>  </p> </li>
+<li id="GUID-9EC5C68C-CDFC-5608-A26C-FD6001822217"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-6A50D190-7E5B-5109-BA38-9C962DF8EB1D">Symbol information</xref>  </p> </li>
+<li id="GUID-6EDF3969-49B8-5F74-BFBF-C323D2C8480C"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-76C405AE-1AB7-59AE-BCAF-A9E09D17B24E">Mapping POSIX handles to the Symbian platform resource objects</xref>  </p> <ul>
+<li id="GUID-30586541-C6EB-5794-8171-2302C53AAE45"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-4AA14ED5-7949-5AAB-A685-87DA43B99AFE">Using non-system calls</xref>  </p> </li>
+<li id="GUID-E146BFE8-FDFE-551D-B280-5AD5303996C7"><p><xref href="GUID-79100974-CAE1-5451-9ED7-E06C9B27131B.dita#GUID-79100974-CAE1-5451-9ED7-E06C9B27131B/GUID-FBF12198-B501-5525-86AF-5517A012FDF1">Using the System Call Adaptation Layer</xref>  </p> </li>
+</ul> </li>
+</ul>
+<section id="GUID-DDD0A8B3-0375-5245-A019-C9A74575C63F"><title>Introduction</title> <p>Symbian
+currently builds its emulator code with the Metrowerks CodeWarrior compiler.
+This is known as the <codeph>WINSCW</codeph> build target. Binaries built
+with this compiler are put in the <filepath>epoc32\release\winscw</filepath> and <filepath>epoc32\winscw</filepath> directory
+trees. </p> <p>You can build your programs for the emulator using Metrowerks
+CodeWarrior. The build tools also support the Microsoft® Visual Studio .NET
+2003 and Microsoft Visual Studio v6 IDEs. For further information, see the <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build tools guide</xref> section.
+Note that licensees or third-parties may supply additional tools, or extend
+support to additional compilers, which are not described here. </p> <p>The
+following sections describe the Symbian platform target types
+introduced with P.I.P.S.. For further information see <xref href="GUID-763DCEF4-C960-58A2-99DC-7FFD3187BFD4.dita">the
+native build targets</xref> section. </p> <p>When using tool chains for pre-Symbian
+OS v9.3, the <filepath>.mmp</filepath> file has to be manually changed to
+link in various libraries. </p> <p>For Symbian OS v9.3 onwards the tool chain
+supports the new <codeph>STDEXE</codeph> and <codeph>STDDLL</codeph> target
+types for P.I.P.S. EXEs and DLLs. See the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita#GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B/GUID-5D0338E0-E2D4-5904-9B21-244CA52DD91B">Generation
+of STDEXE, STDDLL and STDLIB</xref> section for further explanation of the
+new target types introduced with P.I.P.S.. </p> </section>
+<section id="GUID-423A00CF-D668-5114-860D-B30185DAB0B2"><title>P.I.P.S. target
+types</title> <p>P.I.P.S. EXEs require adaptation logic to set up the C program
+environment and the P.I.P.S. run-time C library context - this is performed
+by the <codeph>CRT0</codeph> library (also known as glue code, see the <xref href="GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D.dita#GUID-6CDDDD1E-BDB9-5C61-8EFD-8B3369F5A12D/GUID-49C7F951-8317-5F41-B1B9-9F7B8803E655">Glue
+code (CRT0)</xref> section for further details). </p> <p>P.I.P.S. executables
+are implemented using native Symbian platform executables linked statically
+to the glue code. The new target types for P.I.P.S. include the glue code
+by default. The glue code provides the linking code between the <codeph>E32Main()</codeph> entry
+point and the <codeph>main()</codeph> entry point used in 'C' P.I.P.S. EXEs. </p> <p>For
+further information see the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita">Target
+Types</xref> section. </p> </section>
+<section id="GUID-6A50D190-7E5B-5109-BA38-9C962DF8EB1D"><title>Symbol information</title> <p>When
+building a P.I.P.S. DLL (that is, when the target type is <codeph>STDDLL</codeph>),
+function and data symbols with <codeph>extern</codeph> linkage will be exported
+or imported by default, without any requirement for <xref href="GUID-BD292953-36BF-3C7D-AA93-98E6CB38968E.dita"><apiname>IMPORT_C</apiname></xref> /<xref href="GUID-2F78C3AC-7330-34C0-8A83-75D7345F2DC8.dita"><apiname>EXPORT_C</apiname></xref> declarations
+in the header or source files. </p> <p>Exporting of symbols with <codeph>extern</codeph> linkage
+is the assumed default on other platforms and enables the source code to be
+easily ported. Although this may normally be undesirable in the embedded world,
+it is supported for <codeph>STDDLL</codeph> to avoid portable source code
+having to include excessive decoration (that is, the <codeph>IMPORT_C</codeph> /<codeph>EXPORT_C</codeph> macros)
+for the Symbian platform. </p> <p> <codeph>STDEXE</codeph> and <codeph>STDDLL</codeph> provide
+symbol name information. For more information on the Symbian platform target
+types see the <xref href="GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B.dita#GUID-1560C4FF-82EC-5E5D-A37D-3BBE046F0A5B/GUID-5D0338E0-E2D4-5904-9B21-244CA52DD91B">Generation
+of STDEXE, STDDLL and STDLIB</xref> section. </p> </section>
+<section id="GUID-76C405AE-1AB7-59AE-BCAF-A9E09D17B24E"><title>Mapping POSIX
+handles to the Symbian platform resource objects</title> <p id="GUID-4AA14ED5-7949-5AAB-A685-87DA43B99AFE"><b>Using
+non-system calls</b> </p> <p>Several P.I.P.S. APIs that directly manipulate
+the Symbian platform (native) resources are implemented in the System Call
+Adaptation Layer (SCAL). The exceptions to this are <codeph>pthread</codeph> s,
+and memory maps. The <codeph>pthread</codeph> APIs use <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> s
+and <xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex</apiname></xref> es directly from within <codeph>libpthread</codeph>.
+Similarly, <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> s that are used to provide support for
+memory maps are directly manipulated from within <codeph>libc</codeph>. Note
+that none of these APIs allow direct access to the underlying native resources.
+References to these are wrapped in POSIX-defined data structures. These data
+structures are intended to be treated as opaque and no attempt must be made
+to dereference or use the underlying resource reference directly. </p> <p>All
+IPC calls enter the SCAL, but are handled in a separate IPC library. This
+is a component distinction. The IPC library is logically still part of the
+SCAL. </p> <p id="GUID-FBF12198-B501-5525-86AF-5517A012FDF1"><b>Using the
+System Call Adaptation Layer</b> </p> <p>One of the supports provided by the
+System Call Adaptation Layer (SCAL) is the mapping of operations on UNIX®
+file descriptors to the corresponding Symbian platform resource objects. The
+section below discusses the file descriptors case. </p> <p id="GUID-1A1FC433-B9F6-5998-9622-14B961F477E2"><b>Creating
+a new file descriptor</b> </p> <p>The porting of the 'C' POSIX <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function,
+below, is a good example of mapping POSIX handles to native Symbian platform
+resource objects. The mapping is done through a file descriptor table. As
+a reminder, every application/process has its own file descriptor table. </p> <p>This
+example shows a call to the <codeph>fopen()</codeph> function: </p> <codeblock id="GUID-F9681B44-A1E6-5971-9C5E-147D4281DBF0" xml:space="preserve">//myapp.cpp
+int foo()
+{
+   //open the test.tx , fd=7 in this example
+   int fd = fopen("c:/test.txt", "r+");
+   ...
+   //writes to file referenced by the file descriptor  
+   ret = write (fd, buf, size_t);
+
+}</codeblock> <p>When <i>myapp</i> tries to open the file with <codeph>fopen()</codeph>,
+the application makes a call to the equivalent Symbian platform function, <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita#GUID-BE0804F6-4375-3C8A-8C83-968F510466E0/GUID-72470A68-7E07-30EF-A3C8-AA855CDAF60E"><apiname>RFile::Open()</apiname></xref>,
+and returns the next free entry in the file descriptor table. </p> <p>In each
+table, the values <codeph>0</codeph>, <codeph>1</codeph> and <codeph>2</codeph> are
+reserved for <xref href="GUID-C0C1D22B-298F-3E8D-A1E9-6F5EFA81F9E8.dita"><apiname>stdin()</apiname></xref>, <xref href="GUID-0441C351-4A8B-3A23-9255-D7C8CEA2A67F.dita"><apiname>sdtout()</apiname></xref> and <xref href="GUID-4FF97B50-2C1E-37EC-888B-FB8D3F14B5B8.dita"><apiname>stderr()</apiname></xref>.
+The figure below shows an example file descriptor table. </p> <fig id="GUID-4CEA6881-49E0-5211-8258-C44A8E8F3CDE">
+<image href="GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e149865_href.png" placement="inline"/>
+</fig> <p>According to the descriptor table the file descriptor equals <codeph>7</codeph>,
+as this was the next free entry in the table, and the write function will
+be writing to the file referenced by <codeph>7</codeph>. </p> <p> <b>Note:</b> A
+POSIX descriptor is an index in the process open file table and represents,
+for example, an open file, socket or pipe. A Symbian descriptor represents
+data which can reside in any memory location, either in ROM or RAM. A descriptor
+object maintains pointer and length information to describe the data. All
+access to the data is made through the descriptor object. </p> <p id="GUID-79958B57-8C71-5875-9C5B-8C313A96D13A"><b>Descriptors
+shared across multiple threads within the same process</b> </p> <p>Originally
+on the Symbian platform, resources were thread specific and multi-tasking
+was achieved using servers and active objects. In other operating systems,
+such as Linux, resources are process-local and multi-tasking is achieved by
+multi-threading. The purpose of the POSIX server in the original <codeph>STDLIB</codeph> was
+to allow system-wide data, resources and descriptors to be shared across multiple
+threads. This means there was context switching between the calling thread
+and the server thread which added latency. </p> <p>With the introduction of
+the EKA2 kernel, session handles can now be shared across multiple threads
+and processes. </p> <p>P.I.P.S. takes advantage of EKA2 and re-factors the
+SCAL to allow descriptors to be shared across multiple threads within the
+same process, without the use of the POSIX server. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,303 +1,303 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723" xml:lang="en"><title>HTTP
-Utilities Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
-provides functionality to handle URIs, such as extracting URI components,
-constructing and modifying a URI, text utilities, and URI component utilities
-required to work with URIs. </p> </section>
-<section><title>Required background</title> <p>The clients that make use of
-this API must be familiar with the following standards: </p> <ul>
-<li id="GUID-4F6AFFCE-D446-5E19-91F5-8F29A059D7C9"><p> <xref href="http://www.ietf.org/rfc/rfc2396.txt" scope="external">RFC 2396</xref>, for Uniform Resource Identifiers (URI) </p> </li>
-<li id="GUID-D32F8A79-8D61-5B0F-A38C-9C77C50D1E1D"><p> <xref href="http://tools.ietf.org/html/rfc1132" scope="external">RFC 1123</xref> for internet date and time specifications </p> </li>
-<li id="GUID-8B0C887C-0856-5903-BF3C-558BCFC8BC1F"><p> <xref href="http://www.openmobilealliance.org/tech/affiliates/wap/wap-230-wsp-20010705-a.pdf" scope="external">WAP WSP</xref> for HTTP functionality. </p> </li>
-</ul> </section>
-<section><title>Key concepts</title> <p>The component has the following key
-concepts: </p> <dl>
-<dlentry>
-<dt>URI</dt>
-<dd><p>Universal Resource Identifier (URI) is a formatted string that identifies
-the location and name of a resource, for instance a web page address. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>URI components</dt>
-<dd><p>Let us consider the following URI: </p> <p> <codeph>http://user:info@waterlang.org:80/top_path/foo.htm?checkme#ref</codeph> </p> <p>The
-URI can be split into components as follows: </p> <table id="GUID-4765D4B9-A3E4-5ADF-B1A7-830BB7E10EBD">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>URI Component</entry>
-<entry>Example</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Scheme (protocol) </p> </entry>
-<entry><p> <codeph>http</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p>Authority </p> <ul>
-<li id="GUID-7FF5EC7F-1B7C-5E91-9479-E305E4459EA0"><p>User Information </p> </li>
-<li id="GUID-BC76E4D9-7393-5464-9E3C-7B0756FFD4D1"><p>Host </p> </li>
-<li id="GUID-B586337A-1116-58C4-BC7F-940945AD38B8"><p>Port </p> </li>
-</ul> </entry>
-<entry><p> </p> <ul>
-<li id="GUID-81135C6E-C55E-5699-98D6-49BA2D9871BE"><p> <codeph>user:info</codeph>  </p> </li>
-<li id="GUID-4A07BDB8-F32B-5572-8B46-4E0C78EDC65C"><p> <codeph>waterlang.org</codeph>  </p> </li>
-<li id="GUID-18C83120-4046-52B7-926C-DC9644E86C49"><p> <codeph>80</codeph>  </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p>Path </p> </entry>
-<entry><p> <codeph>top_path/foo.htm</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p>Query </p> </entry>
-<entry><p> <codeph>checkme</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p>Segment </p> </entry>
-<entry><p> <codeph> ref</codeph>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </dd>
-</dlentry>
-<dlentry>
-<dt>Authority component</dt>
-<dd><p>In an URI, the user information, host and port information put together
-is called authority. Format for authority appears as the following: </p> <p> <codeph>[user-info@]host[:port]</codeph>  </p> <p>where, <codeph>user-info</codeph> may consist of a user name and, optionally, scheme-specific information
-about how to gain authorization to access the server, for example, password. <codeph>port</codeph> specifies
-the port number. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architectural relationships</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
-(<filepath>inetprotutils.dll</filepath>) is used by the following components: </p> <ul>
-<li id="GUID-8FA3CA2A-0A42-5F64-9AC0-56B2E340B63A"><p>App services </p> <ul>
-<li id="GUID-922DF8F6-1801-5A99-AD8D-15A92DF31242"><p>DM / DS </p> </li>
-<li id="GUID-096E985C-6170-5908-955E-4406CC3C690D"><p>Content Handling Framework </p> </li>
-</ul> </li>
-<li id="GUID-DCA9F8B1-1066-57F6-9BC5-ECF8D81B0EA2"><p>Symbian platform services: </p> <ul>
-<li id="GUID-88AEE90D-1A2D-5468-95C8-AFE8ECB5FF14"><p>Certificate lib </p> </li>
-<li id="GUID-4265166D-092D-5005-8E7D-127EB9C25DF1"><p>Multimedia </p> </li>
-</ul> </li>
-</ul> </section>
-<section><title>API summary</title> <p>The following classes are used for
-creating, parsing and modifying the URI: </p> <table id="GUID-6161C49F-F18A-51BD-A6F8-51E045A1DD6E">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>  </p> </entry>
-<entry><p>Creates URI from parts and modifies the URI. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3B5EC759-81D3-3A5E-B437-7AA3BD3124BA.dita"><apiname>CAuthority8</apiname></xref>  </p> </entry>
-<entry><p>Modifies the authority and creates authority from parts. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref>  </p> </entry>
-<entry><p>Retrieves information about the URI such as extract, compare, validate
-etc. (the non-modifying functionality). </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F7CCFDE5-4829-314C-A209-2F6714C02AA6.dita"><apiname>TAuthorityC8</apiname></xref>  </p> </entry>
-<entry><p>Retrieves information about the authority URI such as extract, compare,
-validate etc. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref>  </p> </entry>
-<entry><p>Parses a text URI. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-985C12CB-9230-3A35-9F5F-E455D4C23EBB.dita"><apiname>TAuthorityParser8</apiname></xref>  </p> </entry>
-<entry><p>Parses a text authority. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following classes are used for parsing delimited data in the
-URI: </p> <table id="GUID-D58565BF-4859-53FA-8278-CF3ED3D9B487">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-51DFAA06-EC5E-32E6-9819-39938C46B2C0.dita"><apiname>CDelimitedPath8</apiname></xref>  </p> </entry>
-<entry><p>Creates a delimited path, where components of the path are delimited
-by '/' . </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9A640379-04BC-3A8E-9452-54833B2419AE.dita"><apiname>CDelimitedQuery8</apiname></xref>  </p> </entry>
-<entry><p>Creates a delimited query, where components of the query are delimited
-by '&amp;'. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-CF89AECB-5085-32CA-85B4-3573CDB1D595.dita"><apiname>CDelimitedPathSegment8</apiname></xref>  </p> </entry>
-<entry><p>Creates a delimited path segment, where components of the path segment
-are delimited by ';'. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-CD78AD53-FD6C-397A-9930-12E8EDCF6040.dita"><apiname>TDelimitedPathParser8</apiname></xref>  </p> </entry>
-<entry><p>Parses path delimited by a '/'. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F76F2546-D3AC-341B-BED8-D3C88EA2C018.dita"><apiname>TDelimitedQueryParser8</apiname></xref>  </p> </entry>
-<entry><p>Parses query delimited by a '&amp;'. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F55AF53B-662F-3682-9B6D-A3D14AED0D58.dita"><apiname>TDelimitedPathSegmentParser8</apiname></xref>  </p> </entry>
-<entry><p>Parses path segments delimited by a ';'. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref>  </p> </entry>
-<entry><p>Encodes and decodes excluded and reserved URI characters. It can
-be used with 8 bit and 16 bit descriptors. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname> InetProtTextUtils</apiname></xref>  </p> </entry>
-<entry><p>Parses HTTP header text. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref>  </p> </entry>
-<entry><p>Provides extra utilities for URI/Authority classes such as creating
-URI from Unicode descriptor. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following classes are used for encoding and decoding WSP headers: </p> <table id="GUID-7EFEBABF-2AE5-56EF-9C73-B3B84E279A93">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>  </p> </entry>
-<entry><p>The class is used to encode one header field at a time with all
-its values and parameters. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-310AB7CF-C1B0-3C5A-8C4A-C96259A49F0F.dita"><apiname>TWspHeaderSegmenter </apiname></xref>  </p> </entry>
-<entry><p>The class is used to separate a WSP buffer into WSP header name/value
-pairs. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref>  </p> </entry>
-<entry><p>The class is used to convert WSP header data into binary strings. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A0F4B729-E70A-3125-A5A6-D908216FCA5A.dita"><apiname>TWspPrimitiveDecoder</apiname></xref>  </p> </entry>
-<entry><p>The class is used to convert the binary data into integers, strings,
-dates, etc. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9C280536-E402-35CB-B317-BE4E6A8C23D8.dita"><apiname>TWspField</apiname></xref>  </p> </entry>
-<entry><p>The class holds the name and value pair of WSP header field. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following diagram shows the <codeph>InetProtUtils</codeph> classes
-and their relationships. </p> <fig id="GUID-482F6611-C67C-5003-94DD-29DCBCC85092">
-<title>              Class diagram for InetProtUtils            </title>
-<image href="GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e172177_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Typical uses</title> <p>Applications that use HTTP transport
-framework use <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API. The utilities may also
-be useful for applications which deal with internet strings or URIs, such
-as mail or IM applications. </p> <p>The following tasks can be performed using <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref>: </p> <p><b>Creating
-an URI </b> </p> <p>URI can be created in different ways. It can be created
-from parts, from file or by resolving two URIs using <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class. </p> <p>For
-more information on creating a URI, refer to <xref href="GUID-4D32A29F-6573-5233-8982-BDEEDDB4F0FF.dita">Creating
-an URI</xref> tutorial. </p> <p><b>Parsing an URI </b> </p> <p>To check if
-the components in the URI are syntactically correct as per the four main components
-and fragment identifier, parse the URI. Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> class
-to parse an URI. </p> <p>For more information on parsing, refer to <xref href="GUID-D535D51E-EAF5-581A-929B-5B1EF179A273.dita">Parsing
-an URI</xref> tutorial. </p> <p>URI classes namely, <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>, <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> and <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> provide
-functionalities for parsing generic and SIP URIs. <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class
-provides a reference to a <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> object so that the non-modifying
-functionality can be used. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> is used to obtain information
-about an URI. </p> <p><b>Extracting URI components </b> </p> <p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> class
-provides extracting methods to extract components from the URI. <xref href="GUID-25B6817F-8EBC-3DF3-B3BC-3D1E1430C8A6.dita"><apiname>TAuthority8</apiname></xref> class
-extracts the authority component. </p> <p>For more information on getting
-URI components, refer to <xref href="GUID-8E3BD71D-D372-5315-B282-F87FA60A1D5A.dita">Extracting
-the URI Components</xref> tutorial. </p> <p><b>Generating the filename from
-an URI </b> </p> <p>A fully qualified file name can be generated from a file
-URI object. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita#GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74/GUID-AD8DC94E-743B-3347-9AC4-B37AE23AA786"><apiname>TUriC8::GetFileNameL()</apiname></xref> provides this functionality.
-The path component encodes the file's location on the file system. </p> <p>For
-more information, refer to <xref href="GUID-4B7352BF-4BF8-5FF2-8835-F146BB7D4EAC.dita">Generating
-File Name from URI</xref> tutorial. </p> <p><b>Validating a URI </b> </p> <p>Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita#GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1/GUID-9B6C3634-7E19-39B5-A12F-80A16DDCFF4E"><apiname>TUriParser8::Validate()</apiname></xref> to
-check if components in a given URI are valid. This validates only SIP and
-SIPS scheme components. </p> <p>For more information, refer to <xref href="GUID-8F5BC47B-0551-5245-A1ED-629380111B43.dita">Validating
-an URI</xref> tutorial. </p> <p><b>Parsing delimited data </b> </p> <p>URI
-components are separated into segments using delimiters. Parse this delimited
-data. <codeph>TDelimitedXxxxParser8</codeph> classes provide the functionality
-to parse the delimited data, extract the current segment and parse the string
-for the next segment. </p> <p>For more information, refer to <xref href="GUID-42F0F282-58D6-4878-B53D-EAEEF86A3D7D.dita">Parsing
-Delimited Data</xref> tutorial. </p> <p><b>Modifying the data
-and the delimiter </b> </p> <p>The delimiters and segments of data within
-an URI can be added, removed and parsed. This functionality is provided by <codeph>CDelimitedXxxx8</codeph> classes. </p> <p>For
-more information, refer to <xref href="GUID-834F5FC8-EBE4-4076-B1E3-38DDFF89D700.dita">Modifying
-the Data and Delimiter</xref> tutorial. </p> <p><b>Escape encoding and decoding
-unsafe characters in an URI </b> </p> <p>The reserved and unsafe data in the
-URI is escape encoded and decoded using <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref> class.
-It also supports converting Unicode data (16-bit descriptor) into UTF8 data
-(8-bit descriptor) and vice-versa. For more information, refer to <xref href="GUID-0E8206E9-4F1D-5DF5-8A69-9B0831061CFF.dita">Escape
-Encoding and Decoding</xref> and <xref href="GUID-853BFDC0-1993-5EFC-AA68-C9EA496EEF3F.dita">Converting
-between Unicode and Utf8</xref> tutorials. </p> <p><b>Manipulating the URI
-data </b> </p> <p>The data in an URI can be manipulated using various text
-parsing utilities that are used typically in HTTP headers. <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname>InetProtTextUtils</apiname></xref> provides
-functionality to: </p> <ul>
-<li id="GUID-E845FA13-8644-5762-94C7-F34C21BA50CC"><p>remove the leading/trailing
-contiguous white space characters from the descriptors </p> </li>
-<li id="GUID-D2418E05-405D-5E19-A239-D5261B420A83"><p>convert the decimal/hexadecimal
-value to descriptor and vice versa. </p> </li>
-<li id="GUID-99B9C4A8-AE2A-5541-BCB0-59E138898FB8"><p>extract tokens from: </p> <ul>
-<li id="GUID-AE9AFA73-84D8-5EDD-A51C-21714FA5C96C"><p>a list, which is a string
-separated with a character, for example, abc, def, ghi. </p> </li>
-<li id="GUID-CF6A13D6-0FB0-57A3-B6E2-1791316FD61E"><p>quoted strings in text. </p> </li>
-</ul> </li>
-</ul> <p>It supports both Unicode and UTF-8 formats. For more information
-on text manipulations, refer to <xref href="GUID-098106AC-0A5A-5C7D-B432-492EADFE7EA3.dita">Manipulating
-URI Data</xref> tutorial. </p><p><b>Using URI utilities </b> </p> <p>Additional
-functionality to create an URI from unicode descriptor is provided by <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref> class.
-It also allows to translate unsafe characters to UTF8 and escape-encode. </p> <p>For
-more information, refer to <xref href="GUID-A8F13E5A-56F2-5C72-AF81-5AC062B94C6C.dita">Using
-URI utilities</xref>. </p> <p><b>Using datetime utilities </b> </p> <p>To
-store dates in universal times and parse the internet dates into <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> dates,
-use <xref href="GUID-156E9C02-99AD-3C63-80AD-939A6DFB08B1.dita"><apiname>TInternetDate</apiname></xref>. </p> <p>For more information, refer
-to <xref href="GUID-3F7142D6-261B-5FB9-888A-1A9BB51B67E5.dita">Using Date and Time
-Utilities</xref> tutorial. </p> <p><b>Escape encoding and decoding the WSP
-header </b> </p> <p>The WSP header information is encoded and decoded using <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>.
-It uses <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref> to convert the data into binary
-strings. </p> <p>For more information, refer to <xref href="GUID-0BE9F825-9FF8-55A1-AF7C-A380A0C64735.dita">Encoding
-and Decoding WSP Header</xref>. </p><note> Use <codeph>Cxxx</codeph> classes
-to create text from parts and <codeph>TxxParser</codeph> classes to parse
-text into components.</note> </section>
-</conbody><related-links>
-<link href="GUID-F46CDF2C-DA64-5F30-B4C8-CC4B02CE67B9.dita"><linktext>HTTP Utilities
-Library Concepts</linktext></link>
-<link href="GUID-96837414-3041-5E1E-A2E9-C18EECCF86D9.dita"><linktext>HTTP Utilities
-Library Tutorials</linktext></link>
-<link href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita"><linktext>HTTP Utilities
-Library Example</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723" xml:lang="en"><title>HTTP
+Utilities Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
+provides functionality to handle URIs, such as extracting URI components,
+constructing and modifying a URI, text utilities, and URI component utilities
+required to work with URIs. </p> </section>
+<section><title>Required background</title> <p>The clients that make use of
+this API must be familiar with the following standards: </p> <ul>
+<li id="GUID-4F6AFFCE-D446-5E19-91F5-8F29A059D7C9"><p> <xref href="http://www.ietf.org/rfc/rfc2396.txt" scope="external">RFC 2396</xref>, for Uniform Resource Identifiers (URI) </p> </li>
+<li id="GUID-D32F8A79-8D61-5B0F-A38C-9C77C50D1E1D"><p> <xref href="http://tools.ietf.org/html/rfc1132" scope="external">RFC 1123</xref> for internet date and time specifications </p> </li>
+<li id="GUID-8B0C887C-0856-5903-BF3C-558BCFC8BC1F"><p> <xref href="http://www.openmobilealliance.org/tech/affiliates/wap/wap-230-wsp-20010705-a.pdf" scope="external">WAP WSP</xref> for HTTP functionality. </p> </li>
+</ul> </section>
+<section><title>Key concepts</title> <p>The component has the following key
+concepts: </p> <dl>
+<dlentry>
+<dt>URI</dt>
+<dd><p>Universal Resource Identifier (URI) is a formatted string that identifies
+the location and name of a resource, for instance a web page address. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>URI components</dt>
+<dd><p>Let us consider the following URI: </p> <p> <codeph>http://user:info@waterlang.org:80/top_path/foo.htm?checkme#ref</codeph> </p> <p>The
+URI can be split into components as follows: </p> <table id="GUID-4765D4B9-A3E4-5ADF-B1A7-830BB7E10EBD">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>URI Component</entry>
+<entry>Example</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Scheme (protocol) </p> </entry>
+<entry><p> <codeph>http</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p>Authority </p> <ul>
+<li id="GUID-7FF5EC7F-1B7C-5E91-9479-E305E4459EA0"><p>User Information </p> </li>
+<li id="GUID-BC76E4D9-7393-5464-9E3C-7B0756FFD4D1"><p>Host </p> </li>
+<li id="GUID-B586337A-1116-58C4-BC7F-940945AD38B8"><p>Port </p> </li>
+</ul> </entry>
+<entry><p> </p> <ul>
+<li id="GUID-81135C6E-C55E-5699-98D6-49BA2D9871BE"><p> <codeph>user:info</codeph>  </p> </li>
+<li id="GUID-4A07BDB8-F32B-5572-8B46-4E0C78EDC65C"><p> <codeph>waterlang.org</codeph>  </p> </li>
+<li id="GUID-18C83120-4046-52B7-926C-DC9644E86C49"><p> <codeph>80</codeph>  </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p>Path </p> </entry>
+<entry><p> <codeph>top_path/foo.htm</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p>Query </p> </entry>
+<entry><p> <codeph>checkme</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p>Segment </p> </entry>
+<entry><p> <codeph> ref</codeph>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </dd>
+</dlentry>
+<dlentry>
+<dt>Authority component</dt>
+<dd><p>In an URI, the user information, host and port information put together
+is called authority. Format for authority appears as the following: </p> <p> <codeph>[user-info@]host[:port]</codeph>  </p> <p>where, <codeph>user-info</codeph> may consist of a user name and, optionally, scheme-specific information
+about how to gain authorization to access the server, for example, password. <codeph>port</codeph> specifies
+the port number. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architectural relationships</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
+(<filepath>inetprotutils.dll</filepath>) is used by the following components: </p> <ul>
+<li id="GUID-8FA3CA2A-0A42-5F64-9AC0-56B2E340B63A"><p>App services </p> <ul>
+<li id="GUID-922DF8F6-1801-5A99-AD8D-15A92DF31242"><p>DM / DS </p> </li>
+<li id="GUID-096E985C-6170-5908-955E-4406CC3C690D"><p>Content Handling Framework </p> </li>
+</ul> </li>
+<li id="GUID-DCA9F8B1-1066-57F6-9BC5-ECF8D81B0EA2"><p>Symbian platform services: </p> <ul>
+<li id="GUID-88AEE90D-1A2D-5468-95C8-AFE8ECB5FF14"><p>Certificate lib </p> </li>
+<li id="GUID-4265166D-092D-5005-8E7D-127EB9C25DF1"><p>Multimedia </p> </li>
+</ul> </li>
+</ul> </section>
+<section><title>API summary</title> <p>The following classes are used for
+creating, parsing and modifying the URI: </p> <table id="GUID-6161C49F-F18A-51BD-A6F8-51E045A1DD6E">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>  </p> </entry>
+<entry><p>Creates URI from parts and modifies the URI. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3B5EC759-81D3-3A5E-B437-7AA3BD3124BA.dita"><apiname>CAuthority8</apiname></xref>  </p> </entry>
+<entry><p>Modifies the authority and creates authority from parts. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref>  </p> </entry>
+<entry><p>Retrieves information about the URI such as extract, compare, validate
+etc. (the non-modifying functionality). </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F7CCFDE5-4829-314C-A209-2F6714C02AA6.dita"><apiname>TAuthorityC8</apiname></xref>  </p> </entry>
+<entry><p>Retrieves information about the authority URI such as extract, compare,
+validate etc. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref>  </p> </entry>
+<entry><p>Parses a text URI. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-985C12CB-9230-3A35-9F5F-E455D4C23EBB.dita"><apiname>TAuthorityParser8</apiname></xref>  </p> </entry>
+<entry><p>Parses a text authority. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following classes are used for parsing delimited data in the
+URI: </p> <table id="GUID-D58565BF-4859-53FA-8278-CF3ED3D9B487">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-51DFAA06-EC5E-32E6-9819-39938C46B2C0.dita"><apiname>CDelimitedPath8</apiname></xref>  </p> </entry>
+<entry><p>Creates a delimited path, where components of the path are delimited
+by '/' . </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9A640379-04BC-3A8E-9452-54833B2419AE.dita"><apiname>CDelimitedQuery8</apiname></xref>  </p> </entry>
+<entry><p>Creates a delimited query, where components of the query are delimited
+by '&amp;'. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-CF89AECB-5085-32CA-85B4-3573CDB1D595.dita"><apiname>CDelimitedPathSegment8</apiname></xref>  </p> </entry>
+<entry><p>Creates a delimited path segment, where components of the path segment
+are delimited by ';'. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-CD78AD53-FD6C-397A-9930-12E8EDCF6040.dita"><apiname>TDelimitedPathParser8</apiname></xref>  </p> </entry>
+<entry><p>Parses path delimited by a '/'. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F76F2546-D3AC-341B-BED8-D3C88EA2C018.dita"><apiname>TDelimitedQueryParser8</apiname></xref>  </p> </entry>
+<entry><p>Parses query delimited by a '&amp;'. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F55AF53B-662F-3682-9B6D-A3D14AED0D58.dita"><apiname>TDelimitedPathSegmentParser8</apiname></xref>  </p> </entry>
+<entry><p>Parses path segments delimited by a ';'. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref>  </p> </entry>
+<entry><p>Encodes and decodes excluded and reserved URI characters. It can
+be used with 8 bit and 16 bit descriptors. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname> InetProtTextUtils</apiname></xref>  </p> </entry>
+<entry><p>Parses HTTP header text. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref>  </p> </entry>
+<entry><p>Provides extra utilities for URI/Authority classes such as creating
+URI from Unicode descriptor. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following classes are used for encoding and decoding WSP headers: </p> <table id="GUID-7EFEBABF-2AE5-56EF-9C73-B3B84E279A93">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>  </p> </entry>
+<entry><p>The class is used to encode one header field at a time with all
+its values and parameters. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-310AB7CF-C1B0-3C5A-8C4A-C96259A49F0F.dita"><apiname>TWspHeaderSegmenter </apiname></xref>  </p> </entry>
+<entry><p>The class is used to separate a WSP buffer into WSP header name/value
+pairs. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref>  </p> </entry>
+<entry><p>The class is used to convert WSP header data into binary strings. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A0F4B729-E70A-3125-A5A6-D908216FCA5A.dita"><apiname>TWspPrimitiveDecoder</apiname></xref>  </p> </entry>
+<entry><p>The class is used to convert the binary data into integers, strings,
+dates, etc. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9C280536-E402-35CB-B317-BE4E6A8C23D8.dita"><apiname>TWspField</apiname></xref>  </p> </entry>
+<entry><p>The class holds the name and value pair of WSP header field. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following diagram shows the <codeph>InetProtUtils</codeph> classes
+and their relationships. </p> <fig id="GUID-482F6611-C67C-5003-94DD-29DCBCC85092">
+<title>              Class diagram for InetProtUtils            </title>
+<image href="GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e165576_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Typical uses</title> <p>Applications that use HTTP transport
+framework use <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API. The utilities may also
+be useful for applications which deal with internet strings or URIs, such
+as mail or IM applications. </p> <p>The following tasks can be performed using <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref>: </p> <p><b>Creating
+an URI </b> </p> <p>URI can be created in different ways. It can be created
+from parts, from file or by resolving two URIs using <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class. </p> <p>For
+more information on creating a URI, refer to <xref href="GUID-4D32A29F-6573-5233-8982-BDEEDDB4F0FF.dita">Creating
+an URI</xref> tutorial. </p> <p><b>Parsing an URI </b> </p> <p>To check if
+the components in the URI are syntactically correct as per the four main components
+and fragment identifier, parse the URI. Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> class
+to parse an URI. </p> <p>For more information on parsing, refer to <xref href="GUID-D535D51E-EAF5-581A-929B-5B1EF179A273.dita">Parsing
+an URI</xref> tutorial. </p> <p>URI classes namely, <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>, <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> and <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> provide
+functionalities for parsing generic and SIP URIs. <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class
+provides a reference to a <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> object so that the non-modifying
+functionality can be used. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> is used to obtain information
+about an URI. </p> <p><b>Extracting URI components </b> </p> <p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> class
+provides extracting methods to extract components from the URI. <xref href="GUID-25B6817F-8EBC-3DF3-B3BC-3D1E1430C8A6.dita"><apiname>TAuthority8</apiname></xref> class
+extracts the authority component. </p> <p>For more information on getting
+URI components, refer to <xref href="GUID-8E3BD71D-D372-5315-B282-F87FA60A1D5A.dita">Extracting
+the URI Components</xref> tutorial. </p> <p><b>Generating the filename from
+an URI </b> </p> <p>A fully qualified file name can be generated from a file
+URI object. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita#GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74/GUID-AD8DC94E-743B-3347-9AC4-B37AE23AA786"><apiname>TUriC8::GetFileNameL()</apiname></xref> provides this functionality.
+The path component encodes the file's location on the file system. </p> <p>For
+more information, refer to <xref href="GUID-4B7352BF-4BF8-5FF2-8835-F146BB7D4EAC.dita">Generating
+File Name from URI</xref> tutorial. </p> <p><b>Validating a URI </b> </p> <p>Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita#GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1/GUID-9B6C3634-7E19-39B5-A12F-80A16DDCFF4E"><apiname>TUriParser8::Validate()</apiname></xref> to
+check if components in a given URI are valid. This validates only SIP and
+SIPS scheme components. </p> <p>For more information, refer to <xref href="GUID-8F5BC47B-0551-5245-A1ED-629380111B43.dita">Validating
+an URI</xref> tutorial. </p> <p><b>Parsing delimited data </b> </p> <p>URI
+components are separated into segments using delimiters. Parse this delimited
+data. <codeph>TDelimitedXxxxParser8</codeph> classes provide the functionality
+to parse the delimited data, extract the current segment and parse the string
+for the next segment. </p> <p>For more information, refer to <xref href="GUID-42F0F282-58D6-4878-B53D-EAEEF86A3D7D.dita">Parsing
+Delimited Data</xref> tutorial. </p> <p><b>Modifying the data
+and the delimiter </b> </p> <p>The delimiters and segments of data within
+an URI can be added, removed and parsed. This functionality is provided by <codeph>CDelimitedXxxx8</codeph> classes. </p> <p>For
+more information, refer to <xref href="GUID-834F5FC8-EBE4-4076-B1E3-38DDFF89D700.dita">Modifying
+the Data and Delimiter</xref> tutorial. </p> <p><b>Escape encoding and decoding
+unsafe characters in an URI </b> </p> <p>The reserved and unsafe data in the
+URI is escape encoded and decoded using <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref> class.
+It also supports converting Unicode data (16-bit descriptor) into UTF8 data
+(8-bit descriptor) and vice-versa. For more information, refer to <xref href="GUID-0E8206E9-4F1D-5DF5-8A69-9B0831061CFF.dita">Escape
+Encoding and Decoding</xref> and <xref href="GUID-853BFDC0-1993-5EFC-AA68-C9EA496EEF3F.dita">Converting
+between Unicode and Utf8</xref> tutorials. </p> <p><b>Manipulating the URI
+data </b> </p> <p>The data in an URI can be manipulated using various text
+parsing utilities that are used typically in HTTP headers. <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname>InetProtTextUtils</apiname></xref> provides
+functionality to: </p> <ul>
+<li id="GUID-E845FA13-8644-5762-94C7-F34C21BA50CC"><p>remove the leading/trailing
+contiguous white space characters from the descriptors </p> </li>
+<li id="GUID-D2418E05-405D-5E19-A239-D5261B420A83"><p>convert the decimal/hexadecimal
+value to descriptor and vice versa. </p> </li>
+<li id="GUID-99B9C4A8-AE2A-5541-BCB0-59E138898FB8"><p>extract tokens from: </p> <ul>
+<li id="GUID-AE9AFA73-84D8-5EDD-A51C-21714FA5C96C"><p>a list, which is a string
+separated with a character, for example, abc, def, ghi. </p> </li>
+<li id="GUID-CF6A13D6-0FB0-57A3-B6E2-1791316FD61E"><p>quoted strings in text. </p> </li>
+</ul> </li>
+</ul> <p>It supports both Unicode and UTF-8 formats. For more information
+on text manipulations, refer to <xref href="GUID-098106AC-0A5A-5C7D-B432-492EADFE7EA3.dita">Manipulating
+URI Data</xref> tutorial. </p><p><b>Using URI utilities </b> </p> <p>Additional
+functionality to create an URI from unicode descriptor is provided by <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref> class.
+It also allows to translate unsafe characters to UTF8 and escape-encode. </p> <p>For
+more information, refer to <xref href="GUID-A8F13E5A-56F2-5C72-AF81-5AC062B94C6C.dita">Using
+URI utilities</xref>. </p> <p><b>Using datetime utilities </b> </p> <p>To
+store dates in universal times and parse the internet dates into <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> dates,
+use <xref href="GUID-156E9C02-99AD-3C63-80AD-939A6DFB08B1.dita"><apiname>TInternetDate</apiname></xref>. </p> <p>For more information, refer
+to <xref href="GUID-3F7142D6-261B-5FB9-888A-1A9BB51B67E5.dita">Using Date and Time
+Utilities</xref> tutorial. </p> <p><b>Escape encoding and decoding the WSP
+header </b> </p> <p>The WSP header information is encoded and decoded using <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>.
+It uses <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref> to convert the data into binary
+strings. </p> <p>For more information, refer to <xref href="GUID-0BE9F825-9FF8-55A1-AF7C-A380A0C64735.dita">Encoding
+and Decoding WSP Header</xref>. </p><note> Use <codeph>Cxxx</codeph> classes
+to create text from parts and <codeph>TxxParser</codeph> classes to parse
+text into components.</note> </section>
+</conbody><related-links>
+<link href="GUID-F46CDF2C-DA64-5F30-B4C8-CC4B02CE67B9.dita"><linktext>HTTP Utilities
+Library Concepts</linktext></link>
+<link href="GUID-96837414-3041-5E1E-A2E9-C18EECCF86D9.dita"><linktext>HTTP Utilities
+Library Tutorials</linktext></link>
+<link href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita"><linktext>HTTP Utilities
+Library Example</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-795ED4C0-7C82-41DE-AD5B-AC69A426E2A5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-795ED4C0-7C82-41DE-AD5B-AC69A426E2A5" xml:lang="en"><title>Streaming video</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aOpenUrlL%28const%20TDesC%20%26amp%3b%2cTInt%2cconst%20TDesC8%20%26amp%3b%2cTUid%29" format="application/java-archive"><codeph>CVideoPlayerUtility::OpenUrlL</codeph></xref> method supports the real time streaming protocol (RTSP) for streaming video content. For more information on <codeph>CVideoPlayerUtility</codeph>, see <xref href="GUID-B340078C-9EFC-4017-8F43-B0BBCE4935DC.dita">Playing
-a video clip</xref>.</p>
-<p>For more information on streaming, see <xref href="http://library.forum.nokia.com/topic/Design_and_User_Experience_Library/GUID-BBD281EA-365D-44DA-B9F9-51F6E0C3BEB0.html" scope="external">Streaming video</xref> in the Design and User Experience Library.</p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1" xml:lang="en"><title>Clock:
-Analog and Digital Clocks example</title><shortdesc> </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-4DE456B7-D724-5591-93BE-ECDDC2CDFF89-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1-3-1"><title>Purpose</title> <p>This
-example shows how to create and display a digital and analog clock. For more
-information about the API, see <xref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita">Clock
-Overview</xref>. </p> </section>
-<section id="GUID-1C52A2F4-43C6-5C58-8FC1-0B90BAEAFCC7-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1-3-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c26b23db-9a81-4fff-859b-ef08686838eb.zip" scope="external"> ClockExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c26b23db-9a81-4fff-859b-ef08686838eb.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname> CWsScreenDevice </apiname></xref></p><p><xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname> CFbsFont</apiname></xref></p><p><xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname> 
-TRgb</apiname></xref></p><p><xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname>  TAnalogDisplayHand</apiname></xref></p><p><xref href="GUID-8197A30D-29FD-3325-810D-EBCC2F970588.dita"><apiname> 
-STimeDeviceShadow</apiname></xref></p><p><xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>  RAnimDll</apiname></xref></p><p><xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname> 
-RDigitalClock</apiname></xref></p><p><xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname>  RAnalogClock  </apiname></xref></p></section>
-<section id="GUID-92648AEA-CFFA-559E-908E-5BA84FF0C984-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1-3-4"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-6CB77721-3A36-541D-B994-73D89D487678-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1-3-4-3-1"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-7995C8BC-28D3-59A8-94E1-2957C1C3729A-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1-3-4-3-2"><p>For the emulator, the
-example builds an executable called <filepath>clockexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita"><linktext>Clock Overview</linktext>
-</link>
-</related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-6-1-1-4-1-9-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-6-1-1-4-1-9-1-4-1" xml:lang="en"><title>Clock:
-Analog and Digital Clocks example</title><shortdesc> </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-4DE456B7-D724-5591-93BE-ECDDC2CDFF89-GENID-1-8-1-6-1-1-4-1-9-1-4-1-3-1"><title>Purpose</title> <p>This
-example shows how to create and display a digital and analog clock. For more
-information about the API, see <xref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita">Clock
-Overview</xref>. </p> </section>
-<section id="GUID-1C52A2F4-43C6-5C58-8FC1-0B90BAEAFCC7-GENID-1-8-1-6-1-1-4-1-9-1-4-1-3-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c26b23db-9a81-4fff-859b-ef08686838eb.zip" scope="external"> ClockExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c26b23db-9a81-4fff-859b-ef08686838eb.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname> CWsScreenDevice </apiname></xref></p><p><xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname> CFbsFont</apiname></xref></p><p><xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname> 
-TRgb</apiname></xref></p><p><xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname>  TAnalogDisplayHand</apiname></xref></p><p><xref href="GUID-8197A30D-29FD-3325-810D-EBCC2F970588.dita"><apiname> 
-STimeDeviceShadow</apiname></xref></p><p><xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname>  RAnimDll</apiname></xref></p><p><xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname> 
-RDigitalClock</apiname></xref></p><p><xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname>  RAnalogClock  </apiname></xref></p></section>
-<section id="GUID-92648AEA-CFFA-559E-908E-5BA84FF0C984-GENID-1-8-1-6-1-1-4-1-9-1-4-1-3-4"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-6CB77721-3A36-541D-B994-73D89D487678-GENID-1-8-1-6-1-1-4-1-9-1-4-1-3-4-3-1"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-7995C8BC-28D3-59A8-94E1-2957C1C3729A-GENID-1-8-1-6-1-1-4-1-9-1-4-1-3-4-3-2"><p>For the emulator, the
-example builds an executable called <filepath>clockexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita"><linktext>Clock Overview</linktext>
-</link>
-</related-links></reference>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C" xml:lang="en"><title>Clock: Analog and Digital Clocks example</title><shortdesc> </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-4DE456B7-D724-5591-93BE-ECDDC2CDFF89"><title>Purpose</title> <p>This example shows how to create and display a digital and analog
+clock. For more information about the API, see <xref href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891.dita">Clock Overview</xref>. </p> </section>
+<section id="GUID-1C52A2F4-43C6-5C58-8FC1-0B90BAEAFCC7"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c26b23db-9a81-4fff-859b-ef08686838eb.zip" scope="external"> ClockExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c26b23db-9a81-4fff-859b-ef08686838eb.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-549577CE-8943-463C-B704-A696A5899D34"><title>Class Summary</title><ul>
+<li><p><xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname> CWsScreenDevice </apiname></xref></p></li>
+<li><p><xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname> CFbsFont</apiname></xref></p></li>
+<li><p><xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname> TRgb</apiname></xref></p></li>
+<li><p><xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname> TAnalogDisplayHand</apiname></xref></p></li>
+<li><p><xref href="GUID-8197A30D-29FD-3325-810D-EBCC2F970588.dita"><apiname> STimeDeviceShadow</apiname></xref></p></li>
+<li><p><xref href="GUID-800B3667-F45F-391F-A8A9-F876FB4ABC34.dita"><apiname> RAnimDll</apiname></xref></p></li>
+<li><p><xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname> RDigitalClock</apiname></xref></p></li>
+<li><p><xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname> RAnalogClock  </apiname></xref></p></li>
+</ul></section>
+<section id="GUID-92648AEA-CFFA-559E-908E-5BA84FF0C984"><title>Building
+and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-6CB77721-3A36-541D-B994-73D89D487678"><p>You can build
+the example from your IDE or the command line. </p> <p>If you use
+an IDE, import the <filepath>bld.inf</filepath> file of the example
+into your IDE, and use the build command of the IDE. </p> <p>If you
+use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the
+example with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake bldfiles</userinput> </p> <p><userinput>abld
+build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to
+use abld</xref> describe how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-7995C8BC-28D3-59A8-94E1-2957C1C3729A"><p>For the emulator,
+the example builds an executable called <filepath>clockexample.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb or             
+   urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891.dita"><linktext>Clock
+Overview</linktext></link>
+</related-links></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e189034_href.png has changed
Binary file Symbian3/SDK/Source/GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e194096_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e51559_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e55550_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e57111_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e68820_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e73964_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8" xml:lang="en"><title>Editing
-indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The status of the editor is displayed using graphic indicators. They inform
-the user about things such as:</p>
-<ul>
-<li><p>Editing mode (numeric/alphanumeric, language-specific modes) </p></li>
-<li><p>Character case </p></li>
-<li><p>Predictive Text status</p></li>
-<li><p>Available space</p></li>
-</ul>
-<p>When the editor is in the main pane, the indicators are located in the
-Navi pane. A Data query that resides in a pop-up window has its indicators
-within the window.</p>
-<fig id="GUID-2832957D-DE7F-4D22-A830-E1D4F67DE952">
-<title>Editing indicators a) in the Navi pane and b) above the editor field
-in a pop-up window</title>
-<image href="GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e71147_href.png" placement="inline"/>
-</fig>
-<section id="GUID-1424E291-FD14-4FFE-BC84-013164214E30"><title>Using
-editing indicators in C++ applications</title><p>The API to use for editing
-indicators is the Indicators API. For the navi pane, use the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7A552BC6-419F-4FD9-8D63-828E37982FD8" xml:lang="en"><title>Editing
+indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The status of the editor is displayed using graphic indicators. They inform
+the user about things such as:</p>
+<ul>
+<li><p>Editing mode (numeric/alphanumeric, language-specific modes) </p></li>
+<li><p>Character case </p></li>
+<li><p>Predictive Text status</p></li>
+<li><p>Available space</p></li>
+</ul>
+<p>When the editor is in the main pane, the indicators are located in the
+Navi pane. A Data query that resides in a pop-up window has its indicators
+within the window.</p>
+<fig id="GUID-2832957D-DE7F-4D22-A830-E1D4F67DE952">
+<title>Editing indicators a) in the Navi pane and b) above the editor field
+in a pop-up window</title>
+<image href="GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e65898_href.png" placement="inline"/>
+</fig>
+<section id="GUID-1424E291-FD14-4FFE-BC84-013164214E30"><title>Using
+editing indicators in applications</title><p>The API to use for
+editing indicators is the Indicators API. For the navi pane, use the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409504_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409666_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e16895_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e47241_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e52797_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e189172_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e194234_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576" xml:lang="en"><title>Highlighting</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When a list or grid is in use, one item in it is always in focus. The item
-in focus is indicated by a graphical means called highlighting.</p>
-<p>The appearance of highlighting on a list item is a colored (theme related)
-bar, which completely occupies the item in focus. The item text and graphics
-are displayed on the bar.</p>
-<p>Grid item highlighting is a frame over the item in focus.</p>
-<fig id="GUID-97C216A3-6004-46EF-B2BB-BAB8562450D0">
-<title>List highlighting (a) and grid highlighting (b)</title>
-<image href="GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e58798_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7AE7EAE1-BA90-446E-AAAF-01794EF96576" xml:lang="en"><title>Highlighting</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>On a single tap, an item gets highlighted and activated on direct
+selection. The appearance of highlighting on a list item is a colored
+(theme related) bar, which completely occupies the item in focus.
+The item text and graphics are displayed on the bar.</p>
+<p>Grid item highlighting is a frame over the item in focus.</p>
+<fig id="GUID-97C216A3-6004-46EF-B2BB-BAB8562450D0">
+<title>List highlighting (a) and grid highlighting (b)</title>
+<image href="GUID-51DDCDA8-8B26-4016-8CBA-BDBF82447096_d0e52712_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,177 +1,177 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7B173E02-9697-51F4-A7E8-795AEF547109" xml:lang="en"><title>Thread
-Priority Scheme</title><shortdesc>Explains the factors involved in allocating thread priority.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>At any given time, the thread running on Symbian platform is the one with
-the highest priority that is ready to run. The priority of a thread is simply
-a number; the value determines the priority; the greater the number, the higher
-the priority. We call this the <i>true</i> or <i>absolute</i> priority of
-the thread. </p>
-<p>The Kernel schedules a fixed amount of time called a <i>quantum</i> for
-a thread to run on the CPU, and the scheduler chooses the highest priority
-thread that is ready to run. Threads of equal priority are executed on a <i>round
-robin basis</i>. </p>
-<p>The <i>true</i> priority values range from 0 (lowest) to 63 (highest). </p>
-<p>The priority range divides into four broad categories: </p>
-<table id="GUID-1EAC04DE-B68F-5F95-887C-39E9926F2500">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p>0</p> </entry>
-<entry><p>This is reserved for the <i>null thread</i>, which puts the processor
-into idle mode to save power when no other threads are ready to run. </p> </entry>
-</row>
-<row>
-<entry><p>1 - 23 </p> </entry>
-<entry><p>Used by kernel side threads and user-side applications and servers </p> </entry>
-</row>
-<row>
-<entry><p>24 -31 </p> </entry>
-<entry><p>Used by kernel side threads and protected system servers, i.e. servers
-with the <codeph>ProtServ</codeph> capability. </p> </entry>
-</row>
-<row>
-<entry><p>32 - 63 </p> </entry>
-<entry><p>Reserved for real-time threads running on the kernel side. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-5FFD4994-B20D-5095-8F6E-FB1151A4FF79">
-<image href="GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e250125_href.png" placement="inline"/>
-</fig>
-<ul>
-<li id="GUID-2BCF03FE-C23E-5CCA-87CF-4AE9A91FD0D8"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-0194B574-806B-5BA3-B65C-6DC5A80CAB86">Priority scheme for general user-side threads</xref>  </p> </li>
-<li id="GUID-000499D5-EE19-5838-90CD-8C13AC468A52"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-23801A52-4E62-56F4-8D81-E0A417517FDA">Priority scheme for real-time user-side threads</xref>  </p> </li>
-<li id="GUID-1BA97FE4-F817-50E4-A6DA-6B0B64819811"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">Thread priority value mapping table</xref>  </p> </li>
-<li id="GUID-2BB44CDE-B566-52C0-869C-C60FB8D6AD94"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-E9AFB6A3-ED3E-5110-82C8-E5E15E0AF899">Platform security notes</xref>  </p> </li>
-</ul>
-<section id="GUID-0194B574-806B-5BA3-B65C-6DC5A80CAB86"><title>Priority scheme
-for general user-side threads</title> <p>User-side threads do not allocate <i>true</i> priority
-values directly. Instead, they allocate priorities using symbolic values defined
-by enums. Symbian platform maps these values to the <i>true</i> value. </p> <p>There
-are two priority allocation schemes: </p> <ul>
-<li id="GUID-6BE65AEC-DC54-5350-8704-538B5E425352"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-B9022468-F4E7-536B-B1D4-58DAA9EA5914">Process-relative scheme</xref>  </p> </li>
-<li id="GUID-BBB502EA-950C-5F8C-8CA2-F5F339000A10"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-7A38EE63-E955-5432-84E1-F35CB45C931E">Process-independent scheme for general user threads</xref>  </p> </li>
-</ul> <p id="GUID-B9022468-F4E7-536B-B1D4-58DAA9EA5914"><b>Process-relative scheme</b> </p> <p>This
-scheme bases the <i>true</i> priority of a thread on the priority of its owning
-process and the priority of the thread relative to the process. This means
-that changing the process priority results in a change to the <i>true</i> priority
-of the thread. </p> <p>A process can be assigned one of eight discrete priorities
-represented by the individual enumerators of <xref href="GUID-5D289F30-2C88-396D-9748-798055F0AF56.dita"><apiname>TProcessPriority</apiname></xref>,
-and range from <xref href="GUID-9B7922A7-6098-3BBD-9ADE-BC21AD6381C3.dita"><apiname>EPriorityLow</apiname></xref>, the lowest, to <xref href="GUID-A35268D0-7EFC-3D58-8C79-E4E619F762F5.dita"><apiname>EPrioritySupervisor</apiname></xref>,
-the highest. </p> <p>In practice, <i>user processes</i> can only be assigned
-priorities that are one of the values: </p> <ul>
-<li id="GUID-85AA4A1D-A168-5AEF-9D4C-DC14C28686B2"><p> <xref href="GUID-9B7922A7-6098-3BBD-9ADE-BC21AD6381C3.dita"><apiname>EPriorityLow</apiname></xref> <codeph/>  </p> </li>
-<li id="GUID-45B720BB-3696-545F-B966-A2EA4B37AE5D"><p> <xref href="GUID-8778A277-DA7F-34A0-8472-29226DEC2CCE.dita"><apiname>EPriorityBackground</apiname></xref>  </p> </li>
-<li id="GUID-DF2708D4-B670-5B15-B587-CB71EAC99045"><p> <xref href="GUID-A62CF9B2-63E3-31E0-A51E-E04F2E2EB38F.dita"><apiname>EPriorityForeGround</apiname></xref>  </p> </li>
-<li id="GUID-9C68DD95-2AB6-57D0-9966-D83144788458"><p> <xref href="GUID-8995D880-69B7-3C31-891B-7A2C57E372FE.dita"><apiname>EPriorityHigh</apiname></xref>  </p> </li>
-</ul> <p>There are a further four process priorities that a user process is
-not permitted to set: <codeph>EPriorityWindowServer</codeph>, <codeph>EPriorityFileServer</codeph>, <codeph>EPriorityRealTimeServer</codeph> and <codeph>EPrioritySupervisor</codeph>. </p> <p>A process priority can be assigned: </p> <ul>
-<li id="GUID-CC4FA12C-BFDD-5F75-BC18-B742BCACEECF"><p>when the associated <filepath>.exe</filepath> is
-built; this is done by specifying the value in the <filepath>.mmp</filepath> file
-that defines the project. </p> </li>
-<li id="GUID-B86220D9-B10D-5506-AD90-73E7F8D7A089"><p>by calling <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-189A64CB-F2EA-3C8F-A7A7-01CBF8FDE67A"><apiname>RProcess::SetPriority()</apiname></xref> and
-passing one of the <xref href="GUID-5D289F30-2C88-396D-9748-798055F0AF56.dita"><apiname>TProcessPriority</apiname></xref> enum values. </p> </li>
-</ul> <p>See also : <xref href="GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita">Using
-Makmake</xref> in the <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build
-Tools Guide</xref>. </p> <p>The priority of a thread <i>relative</i> to a
-process is assigned by calling <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> and
-passing one of the five <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values: </p> <ul>
-<li id="GUID-BCFFB27F-5CEB-58E8-A859-C82273CB7FDC"><p> <xref href="GUID-DF41A24C-6873-37E6-834A-98CDFC8D54FB.dita"><apiname>EPriorityMuchLess</apiname></xref>  </p> </li>
-<li id="GUID-21C1A24C-483D-579B-BA56-31B3694215CE"><p> <xref href="GUID-0429DE71-44B4-3764-A62B-AD937E6AD355.dita"><apiname> EPriorityLess</apiname></xref>  </p> </li>
-<li id="GUID-48747F5D-8F0E-5C57-8858-35D8881B1DB7"><p> <xref href="GUID-2ACE5CF0-7E8B-35FF-8ABC-6917B2F68BB1.dita"><apiname>EPriorityNormal</apiname></xref>  </p> </li>
-<li id="GUID-78DEBC15-DFD8-5384-8358-3744E2C1DDBE"><p> <xref href="GUID-34B6B121-2E45-36FE-B0FA-E8272E2F1D10.dita"><apiname>EPriorityMore</apiname></xref>  </p> </li>
-<li id="GUID-AE42DA32-09CA-5C8B-B9AF-2A68E66E6218"><p> <xref href="GUID-4F19A64D-FBBE-34F2-8387-1449E49DC923.dita"><apiname> EPriorityMuchMore</apiname></xref>  </p> </li>
-</ul> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
-priority value mapping table</xref> shows the <i>true</i> priority of a thread
-based on the combination of process priority and process-relative thread priority </p> <p id="GUID-7A38EE63-E955-5432-84E1-F35CB45C931E"><b>Process-independent scheme
-for general user threads</b> </p> <p>In this scheme, the <i>true</i> priority
-of a thread is independent of the priority of its owning process. Changing
-the priority of the underlying process has no effect on the <i>true</i> priority
-of the thread. </p> <p>The priority of a thread is assigned by calling <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> and
-passing one of the <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values listed below.
-Note that the set of enum values splits into two logical groupings based on
-their equivalence to process-relative values. See the <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread priority value mapping table</xref>. </p> <table id="GUID-A0397BB8-AAC7-5F79-B94F-68103B66132C">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <b> Group 1 </b>  </p> </entry>
-<entry><p> <b> Group 2 </b>  </p> </entry>
-</row>
-<row>
-<entry><ul>
-<li id="GUID-12430992-C96F-5006-85AD-A9308AB75B93"><p> <xref href="GUID-A131F0B9-C8D4-3F0D-A0CB-140DA8EA3288.dita"><apiname>EPriorityAbsoluteVeryLow</apiname></xref>  </p> </li>
-<li id="GUID-A5682ECF-DCAA-5E35-8294-613A30F416FD"><p> <xref href="GUID-280BFA0F-9A1C-3644-AF1C-B169B09D8834.dita"><apiname>EPriorityAbsoluteLow</apiname></xref>  </p> </li>
-<li id="GUID-1750EB5D-A22B-5838-9EB8-37B06A0D1F98"><p> <xref href="GUID-ECA0DFF8-106C-3D1C-963C-10708885797A.dita"><apiname>EPriorityAbsoluteBackground</apiname></xref>  </p> </li>
-<li id="GUID-A83FCD79-3B4C-51CC-A82A-BE8AAB9BEEC0"><p> <xref href="GUID-451D6DB5-C247-34BF-8D8A-288C03599B7E.dita"><apiname>EPriorityAbsoluteForeground</apiname></xref>  </p> </li>
-<li id="GUID-1EDD4765-F02A-56CD-882D-E4DD443CE410"><p> <xref href="GUID-B6EEA9DD-68AE-30FD-AEE1-9B227109750F.dita"><apiname>EPriorityAbsoluteHigh</apiname></xref>  </p> </li>
-</ul> </entry>
-<entry><ul>
-<li id="GUID-E03FCF50-F5B6-5885-B939-88B513F4AC2F"><p> <xref href="GUID-0070BA48-851D-36E2-9C4C-C11C0FF0BE46.dita"><apiname>EPriorityAbsoluteLowNormal</apiname></xref>  </p> </li>
-<li id="GUID-4C94D1D2-6B81-57D8-B44D-2FE19E9971F9"><p> <xref href="GUID-CD20880F-21EB-389C-A0A4-8DFFE714B102.dita"><apiname>EPriorityAbsoluteBackgroundNormal</apiname></xref>  </p> </li>
-<li id="GUID-6D3AA39B-AE42-575A-B63B-D109049ABFEF"><p> <xref href="GUID-1054385C-7168-31ED-89D9-4C33E28836A0.dita"><apiname>EPriorityAbsoluteForegroundNormal</apiname></xref>  </p> </li>
-<li id="GUID-E41572FD-0C50-54BC-98C6-857A8D86CCD7"><p> <xref href="GUID-E49C7DFA-4604-310C-915C-F278382A796A.dita"><apiname>EPriorityAbsoluteHighNormal</apiname></xref>  </p> </li>
-</ul> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
-priority value mapping table</xref> shows the resulting <i>true</i> priority
-of the thread. </p> </section>
-<section id="GUID-23801A52-4E62-56F4-8D81-E0A417517FDA"><title>Priority scheme
-for real-time user-side threads</title> <p>This scheme is the same as the <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-7A38EE63-E955-5432-84E1-F35CB45C931E">process-independent
-scheme for general user threads</xref>, but with one essential difference
-- the range of <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values to be passed
-to <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> is as shown below. These priorities
-map to the <i>true</i> priority values in the range 24 -31, and can only be
-set by executables having the <codeph>ProtServ</codeph> capability. This range
-is referred to as the real time range. </p> <ul>
-<li id="GUID-78ACFC22-4FB7-5E90-B6E2-9EF39EA9A3F5"><p> <xref href="GUID-7574A754-ED28-3FE1-85BB-93F110DE8E50.dita"><apiname>EPriorityAbsoluteRealTime1</apiname></xref>  </p> </li>
-<li id="GUID-3ADBFE8D-E7D9-5316-B06E-E3C514F4221E"><p> <xref href="GUID-2561145A-9506-31F5-A0EA-24609EC71412.dita"><apiname>EPriorityAbsoluteRealTime2</apiname></xref>  </p> </li>
-<li id="GUID-90F0E400-AB37-52CC-B01E-2D7C3E589111"><p> <xref href="GUID-39A7F794-B7B1-3C0C-AFFF-956C71CE529F.dita"><apiname>EPriorityAbsoluteRealTime3</apiname></xref>  </p> </li>
-<li id="GUID-DDB4B69C-9BBD-5E4B-B87C-CF52B4BDAA85"><p> <xref href="GUID-DCDD7812-10F8-35A1-9DAD-EFDAC6EA874B.dita"><apiname> EPriorityAbsoluteRealTime4</apiname></xref>  </p> </li>
-<li id="GUID-91DEE716-6F45-51C2-8139-B9CB1AE5065B"><p> <xref href="GUID-F3872848-57CA-3682-80E2-39E87B7B3656.dita"><apiname>EPriorityAbsoluteRealTime5</apiname></xref>  </p> </li>
-<li id="GUID-01B2B0B9-4242-5D8E-83B2-2658CF68548F"><p> <xref href="GUID-D3FE9747-0CD8-3E0A-829E-3D7184AE8431.dita"><apiname>EPriorityAbsoluteRealTime6</apiname></xref>  </p> </li>
-<li id="GUID-6581842F-C83C-53A5-A567-F1D4BE97488C"><p> <xref href="GUID-A6BF84AA-2421-3DB0-A30D-B9D3B7E70B21.dita"><apiname>EPriorityAbsoluteRealTime7</apiname></xref>  </p> </li>
-<li id="GUID-C7AB328B-B910-51D2-ADB0-5E8A33AFCD69"><p> <xref href="GUID-84C4AED5-8AA8-31F0-9E77-6BBACE192763.dita"><apiname>EPriorityAbsoluteRealTime8</apiname></xref>  </p> </li>
-</ul> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
-priority value mapping table</xref> shows the resulting <i>true</i> priority
-of the thread. </p> </section>
-<section id="GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF"><title>Thread priority
-value mapping table</title> <p>This table shows the effect of setting priorities,
-and the resulting <i>true</i> priority values. You need to be aware that this
-may change in the future, and you should never synchronise threads on the
-basis of thread priorities. If you need to synchronise threads, use mutexes
-or semaphores. </p> <p>Notes </p> <ul>
-<li id="GUID-CBC69A23-E3EF-56BC-A915-2770EBFB76C4"><p>True priority values
-in the shaded region can only be accessed by threads running in processes
-with the <codeph>ProtServ</codeph> capability. </p> </li>
-<li id="GUID-1F8FC263-3C39-5E3C-A186-6D5D4DF7D6D3"><p>The process-priority
-values : <xref href="GUID-972ADC0C-546E-3D24-9071-02B074DC1540.dita"><apiname>EPriorityWindowServer</apiname></xref>, <xref href="GUID-A19C5464-A1DA-3EEC-B81B-41690EBB3DB2.dita"><apiname>EPriorityFileServer</apiname></xref> and <xref href="GUID-A35268D0-7EFC-3D58-8C79-E4E619F762F5.dita"><apiname>EPrioritySupervisor</apiname></xref> all
-map to the same range of priorities. Along with <xref href="GUID-AAA610A8-48D8-3642-94E8-6C9747170DA9.dita"><apiname>EPriorityRealTimeServer</apiname></xref>,
-these have historically been used for system servers and other processes needing
-access to high priorities suitable for real-time tasks, and their use requires <codeph>ProtServ</codeph> capability. </p> </li>
-<li id="GUID-3256F08A-AD30-5378-BFA9-140688B1CDB6"><p>Note that <codeph>ProtServ</codeph> capability
-will not be granted to general applications for the purpose of gaining access
-to the very high thread priorities. This risks breaking important system functionality. </p> </li>
-</ul> <fig id="GUID-6BF93712-F8AA-5D08-A5D4-FEB6B22592D8">
-<image href="GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e250728_href.png" placement="inline"/>
-</fig> <p>Note that we have used <i>E'</i> as an abbreviation for <i>EPriority</i> in
-this diagram. </p> </section>
-<section id="GUID-E9AFB6A3-ED3E-5110-82C8-E5E15E0AF899"><title>Platform security
-notes</title> <p>Platform security restrictions prevent thread and process
-priorities from being modified by another user process. There is one exception:
-by default, applications have “Priority Control” enabled for them which allows
-the window server to switch them between foreground and background process
-priorities depending on which has foreground focus. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7B173E02-9697-51F4-A7E8-795AEF547109" xml:lang="en"><title>Thread
+Priority Scheme</title><shortdesc>Explains the factors involved in allocating thread priority.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>At any given time, the thread running on Symbian platform is the one with
+the highest priority that is ready to run. The priority of a thread is simply
+a number; the value determines the priority; the greater the number, the higher
+the priority. We call this the <i>true</i> or <i>absolute</i> priority of
+the thread. </p>
+<p>The Kernel schedules a fixed amount of time called a <i>quantum</i> for
+a thread to run on the CPU, and the scheduler chooses the highest priority
+thread that is ready to run. Threads of equal priority are executed on a <i>round
+robin basis</i>. </p>
+<p>The <i>true</i> priority values range from 0 (lowest) to 63 (highest). </p>
+<p>The priority range divides into four broad categories: </p>
+<table id="GUID-1EAC04DE-B68F-5F95-887C-39E9926F2500">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>0</p> </entry>
+<entry><p>This is reserved for the <i>null thread</i>, which puts the processor
+into idle mode to save power when no other threads are ready to run. </p> </entry>
+</row>
+<row>
+<entry><p>1 - 23 </p> </entry>
+<entry><p>Used by kernel side threads and user-side applications and servers </p> </entry>
+</row>
+<row>
+<entry><p>24 -31 </p> </entry>
+<entry><p>Used by kernel side threads and protected system servers, i.e. servers
+with the <codeph>ProtServ</codeph> capability. </p> </entry>
+</row>
+<row>
+<entry><p>32 - 63 </p> </entry>
+<entry><p>Reserved for real-time threads running on the kernel side. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-5FFD4994-B20D-5095-8F6E-FB1151A4FF79">
+<image href="GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e246388_href.png" placement="inline"/>
+</fig>
+<ul>
+<li id="GUID-2BCF03FE-C23E-5CCA-87CF-4AE9A91FD0D8"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-0194B574-806B-5BA3-B65C-6DC5A80CAB86">Priority scheme for general user-side threads</xref>  </p> </li>
+<li id="GUID-000499D5-EE19-5838-90CD-8C13AC468A52"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-23801A52-4E62-56F4-8D81-E0A417517FDA">Priority scheme for real-time user-side threads</xref>  </p> </li>
+<li id="GUID-1BA97FE4-F817-50E4-A6DA-6B0B64819811"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">Thread priority value mapping table</xref>  </p> </li>
+<li id="GUID-2BB44CDE-B566-52C0-869C-C60FB8D6AD94"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-E9AFB6A3-ED3E-5110-82C8-E5E15E0AF899">Platform security notes</xref>  </p> </li>
+</ul>
+<section id="GUID-0194B574-806B-5BA3-B65C-6DC5A80CAB86"><title>Priority scheme
+for general user-side threads</title> <p>User-side threads do not allocate <i>true</i> priority
+values directly. Instead, they allocate priorities using symbolic values defined
+by enums. Symbian platform maps these values to the <i>true</i> value. </p> <p>There
+are two priority allocation schemes: </p> <ul>
+<li id="GUID-6BE65AEC-DC54-5350-8704-538B5E425352"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-B9022468-F4E7-536B-B1D4-58DAA9EA5914">Process-relative scheme</xref>  </p> </li>
+<li id="GUID-BBB502EA-950C-5F8C-8CA2-F5F339000A10"><p> <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-7A38EE63-E955-5432-84E1-F35CB45C931E">Process-independent scheme for general user threads</xref>  </p> </li>
+</ul> <p id="GUID-B9022468-F4E7-536B-B1D4-58DAA9EA5914"><b>Process-relative scheme</b> </p> <p>This
+scheme bases the <i>true</i> priority of a thread on the priority of its owning
+process and the priority of the thread relative to the process. This means
+that changing the process priority results in a change to the <i>true</i> priority
+of the thread. </p> <p>A process can be assigned one of eight discrete priorities
+represented by the individual enumerators of <xref href="GUID-5D289F30-2C88-396D-9748-798055F0AF56.dita"><apiname>TProcessPriority</apiname></xref>,
+and range from <xref href="GUID-9B7922A7-6098-3BBD-9ADE-BC21AD6381C3.dita"><apiname>EPriorityLow</apiname></xref>, the lowest, to <xref href="GUID-A35268D0-7EFC-3D58-8C79-E4E619F762F5.dita"><apiname>EPrioritySupervisor</apiname></xref>,
+the highest. </p> <p>In practice, <i>user processes</i> can only be assigned
+priorities that are one of the values: </p> <ul>
+<li id="GUID-85AA4A1D-A168-5AEF-9D4C-DC14C28686B2"><p> <xref href="GUID-9B7922A7-6098-3BBD-9ADE-BC21AD6381C3.dita"><apiname>EPriorityLow</apiname></xref> <codeph/>  </p> </li>
+<li id="GUID-45B720BB-3696-545F-B966-A2EA4B37AE5D"><p> <xref href="GUID-8778A277-DA7F-34A0-8472-29226DEC2CCE.dita"><apiname>EPriorityBackground</apiname></xref>  </p> </li>
+<li id="GUID-DF2708D4-B670-5B15-B587-CB71EAC99045"><p> <xref href="GUID-A62CF9B2-63E3-31E0-A51E-E04F2E2EB38F.dita"><apiname>EPriorityForeGround</apiname></xref>  </p> </li>
+<li id="GUID-9C68DD95-2AB6-57D0-9966-D83144788458"><p> <xref href="GUID-8995D880-69B7-3C31-891B-7A2C57E372FE.dita"><apiname>EPriorityHigh</apiname></xref>  </p> </li>
+</ul> <p>There are a further four process priorities that a user process is
+not permitted to set: <codeph>EPriorityWindowServer</codeph>, <codeph>EPriorityFileServer</codeph>, <codeph>EPriorityRealTimeServer</codeph> and <codeph>EPrioritySupervisor</codeph>. </p> <p>A process priority can be assigned: </p> <ul>
+<li id="GUID-CC4FA12C-BFDD-5F75-BC18-B742BCACEECF"><p>when the associated <filepath>.exe</filepath> is
+built; this is done by specifying the value in the <filepath>.mmp</filepath> file
+that defines the project. </p> </li>
+<li id="GUID-B86220D9-B10D-5506-AD90-73E7F8D7A089"><p>by calling <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-189A64CB-F2EA-3C8F-A7A7-01CBF8FDE67A"><apiname>RProcess::SetPriority()</apiname></xref> and
+passing one of the <xref href="GUID-5D289F30-2C88-396D-9748-798055F0AF56.dita"><apiname>TProcessPriority</apiname></xref> enum values. </p> </li>
+</ul> <p>See also : <xref href="GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita">Using
+Makmake</xref> in the <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build
+Tools Guide</xref>. </p> <p>The priority of a thread <i>relative</i> to a
+process is assigned by calling <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> and
+passing one of the five <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values: </p> <ul>
+<li id="GUID-BCFFB27F-5CEB-58E8-A859-C82273CB7FDC"><p> <xref href="GUID-DF41A24C-6873-37E6-834A-98CDFC8D54FB.dita"><apiname>EPriorityMuchLess</apiname></xref>  </p> </li>
+<li id="GUID-21C1A24C-483D-579B-BA56-31B3694215CE"><p> <xref href="GUID-0429DE71-44B4-3764-A62B-AD937E6AD355.dita"><apiname> EPriorityLess</apiname></xref>  </p> </li>
+<li id="GUID-48747F5D-8F0E-5C57-8858-35D8881B1DB7"><p> <xref href="GUID-2ACE5CF0-7E8B-35FF-8ABC-6917B2F68BB1.dita"><apiname>EPriorityNormal</apiname></xref>  </p> </li>
+<li id="GUID-78DEBC15-DFD8-5384-8358-3744E2C1DDBE"><p> <xref href="GUID-34B6B121-2E45-36FE-B0FA-E8272E2F1D10.dita"><apiname>EPriorityMore</apiname></xref>  </p> </li>
+<li id="GUID-AE42DA32-09CA-5C8B-B9AF-2A68E66E6218"><p> <xref href="GUID-4F19A64D-FBBE-34F2-8387-1449E49DC923.dita"><apiname> EPriorityMuchMore</apiname></xref>  </p> </li>
+</ul> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
+priority value mapping table</xref> shows the <i>true</i> priority of a thread
+based on the combination of process priority and process-relative thread priority </p> <p id="GUID-7A38EE63-E955-5432-84E1-F35CB45C931E"><b>Process-independent scheme
+for general user threads</b> </p> <p>In this scheme, the <i>true</i> priority
+of a thread is independent of the priority of its owning process. Changing
+the priority of the underlying process has no effect on the <i>true</i> priority
+of the thread. </p> <p>The priority of a thread is assigned by calling <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> and
+passing one of the <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values listed below.
+Note that the set of enum values splits into two logical groupings based on
+their equivalence to process-relative values. See the <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread priority value mapping table</xref>. </p> <table id="GUID-A0397BB8-AAC7-5F79-B94F-68103B66132C">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b> Group 1 </b>  </p> </entry>
+<entry><p> <b> Group 2 </b>  </p> </entry>
+</row>
+<row>
+<entry><ul>
+<li id="GUID-12430992-C96F-5006-85AD-A9308AB75B93"><p> <xref href="GUID-A131F0B9-C8D4-3F0D-A0CB-140DA8EA3288.dita"><apiname>EPriorityAbsoluteVeryLow</apiname></xref>  </p> </li>
+<li id="GUID-A5682ECF-DCAA-5E35-8294-613A30F416FD"><p> <xref href="GUID-280BFA0F-9A1C-3644-AF1C-B169B09D8834.dita"><apiname>EPriorityAbsoluteLow</apiname></xref>  </p> </li>
+<li id="GUID-1750EB5D-A22B-5838-9EB8-37B06A0D1F98"><p> <xref href="GUID-ECA0DFF8-106C-3D1C-963C-10708885797A.dita"><apiname>EPriorityAbsoluteBackground</apiname></xref>  </p> </li>
+<li id="GUID-A83FCD79-3B4C-51CC-A82A-BE8AAB9BEEC0"><p> <xref href="GUID-451D6DB5-C247-34BF-8D8A-288C03599B7E.dita"><apiname>EPriorityAbsoluteForeground</apiname></xref>  </p> </li>
+<li id="GUID-1EDD4765-F02A-56CD-882D-E4DD443CE410"><p> <xref href="GUID-B6EEA9DD-68AE-30FD-AEE1-9B227109750F.dita"><apiname>EPriorityAbsoluteHigh</apiname></xref>  </p> </li>
+</ul> </entry>
+<entry><ul>
+<li id="GUID-E03FCF50-F5B6-5885-B939-88B513F4AC2F"><p> <xref href="GUID-0070BA48-851D-36E2-9C4C-C11C0FF0BE46.dita"><apiname>EPriorityAbsoluteLowNormal</apiname></xref>  </p> </li>
+<li id="GUID-4C94D1D2-6B81-57D8-B44D-2FE19E9971F9"><p> <xref href="GUID-CD20880F-21EB-389C-A0A4-8DFFE714B102.dita"><apiname>EPriorityAbsoluteBackgroundNormal</apiname></xref>  </p> </li>
+<li id="GUID-6D3AA39B-AE42-575A-B63B-D109049ABFEF"><p> <xref href="GUID-1054385C-7168-31ED-89D9-4C33E28836A0.dita"><apiname>EPriorityAbsoluteForegroundNormal</apiname></xref>  </p> </li>
+<li id="GUID-E41572FD-0C50-54BC-98C6-857A8D86CCD7"><p> <xref href="GUID-E49C7DFA-4604-310C-915C-F278382A796A.dita"><apiname>EPriorityAbsoluteHighNormal</apiname></xref>  </p> </li>
+</ul> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
+priority value mapping table</xref> shows the resulting <i>true</i> priority
+of the thread. </p> </section>
+<section id="GUID-23801A52-4E62-56F4-8D81-E0A417517FDA"><title>Priority scheme
+for real-time user-side threads</title> <p>This scheme is the same as the <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-7A38EE63-E955-5432-84E1-F35CB45C931E">process-independent
+scheme for general user threads</xref>, but with one essential difference
+- the range of <xref href="GUID-8708AFB7-92CC-34FC-9FBB-E6B16472B99D.dita"><apiname>TThreadPriority</apiname></xref> enum values to be passed
+to <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-8E412361-AE54-3585-AF2A-45D4A53F8B03"><apiname>RThread::SetPriority()</apiname></xref> is as shown below. These priorities
+map to the <i>true</i> priority values in the range 24 -31, and can only be
+set by executables having the <codeph>ProtServ</codeph> capability. This range
+is referred to as the real time range. </p> <ul>
+<li id="GUID-78ACFC22-4FB7-5E90-B6E2-9EF39EA9A3F5"><p> <xref href="GUID-7574A754-ED28-3FE1-85BB-93F110DE8E50.dita"><apiname>EPriorityAbsoluteRealTime1</apiname></xref>  </p> </li>
+<li id="GUID-3ADBFE8D-E7D9-5316-B06E-E3C514F4221E"><p> <xref href="GUID-2561145A-9506-31F5-A0EA-24609EC71412.dita"><apiname>EPriorityAbsoluteRealTime2</apiname></xref>  </p> </li>
+<li id="GUID-90F0E400-AB37-52CC-B01E-2D7C3E589111"><p> <xref href="GUID-39A7F794-B7B1-3C0C-AFFF-956C71CE529F.dita"><apiname>EPriorityAbsoluteRealTime3</apiname></xref>  </p> </li>
+<li id="GUID-DDB4B69C-9BBD-5E4B-B87C-CF52B4BDAA85"><p> <xref href="GUID-DCDD7812-10F8-35A1-9DAD-EFDAC6EA874B.dita"><apiname> EPriorityAbsoluteRealTime4</apiname></xref>  </p> </li>
+<li id="GUID-91DEE716-6F45-51C2-8139-B9CB1AE5065B"><p> <xref href="GUID-F3872848-57CA-3682-80E2-39E87B7B3656.dita"><apiname>EPriorityAbsoluteRealTime5</apiname></xref>  </p> </li>
+<li id="GUID-01B2B0B9-4242-5D8E-83B2-2658CF68548F"><p> <xref href="GUID-D3FE9747-0CD8-3E0A-829E-3D7184AE8431.dita"><apiname>EPriorityAbsoluteRealTime6</apiname></xref>  </p> </li>
+<li id="GUID-6581842F-C83C-53A5-A567-F1D4BE97488C"><p> <xref href="GUID-A6BF84AA-2421-3DB0-A30D-B9D3B7E70B21.dita"><apiname>EPriorityAbsoluteRealTime7</apiname></xref>  </p> </li>
+<li id="GUID-C7AB328B-B910-51D2-ADB0-5E8A33AFCD69"><p> <xref href="GUID-84C4AED5-8AA8-31F0-9E77-6BBACE192763.dita"><apiname>EPriorityAbsoluteRealTime8</apiname></xref>  </p> </li>
+</ul> <p>The <xref href="GUID-7B173E02-9697-51F4-A7E8-795AEF547109.dita#GUID-7B173E02-9697-51F4-A7E8-795AEF547109/GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF">thread
+priority value mapping table</xref> shows the resulting <i>true</i> priority
+of the thread. </p> </section>
+<section id="GUID-F5B98A28-EEDA-58BD-A6CC-62C1621D44DF"><title>Thread priority
+value mapping table</title> <p>This table shows the effect of setting priorities,
+and the resulting <i>true</i> priority values. You need to be aware that this
+may change in the future, and you should never synchronise threads on the
+basis of thread priorities. If you need to synchronise threads, use mutexes
+or semaphores. </p> <p>Notes </p> <ul>
+<li id="GUID-CBC69A23-E3EF-56BC-A915-2770EBFB76C4"><p>True priority values
+in the shaded region can only be accessed by threads running in processes
+with the <codeph>ProtServ</codeph> capability. </p> </li>
+<li id="GUID-1F8FC263-3C39-5E3C-A186-6D5D4DF7D6D3"><p>The process-priority
+values : <xref href="GUID-972ADC0C-546E-3D24-9071-02B074DC1540.dita"><apiname>EPriorityWindowServer</apiname></xref>, <xref href="GUID-A19C5464-A1DA-3EEC-B81B-41690EBB3DB2.dita"><apiname>EPriorityFileServer</apiname></xref> and <xref href="GUID-A35268D0-7EFC-3D58-8C79-E4E619F762F5.dita"><apiname>EPrioritySupervisor</apiname></xref> all
+map to the same range of priorities. Along with <xref href="GUID-AAA610A8-48D8-3642-94E8-6C9747170DA9.dita"><apiname>EPriorityRealTimeServer</apiname></xref>,
+these have historically been used for system servers and other processes needing
+access to high priorities suitable for real-time tasks, and their use requires <codeph>ProtServ</codeph> capability. </p> </li>
+<li id="GUID-3256F08A-AD30-5378-BFA9-140688B1CDB6"><p>Note that <codeph>ProtServ</codeph> capability
+will not be granted to general applications for the purpose of gaining access
+to the very high thread priorities. This risks breaking important system functionality. </p> </li>
+</ul> <fig id="GUID-6BF93712-F8AA-5D08-A5D4-FEB6B22592D8">
+<image href="GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e246991_href.png" placement="inline"/>
+</fig> <p>Note that we have used <i>E'</i> as an abbreviation for <i>EPriority</i> in
+this diagram. </p> </section>
+<section id="GUID-E9AFB6A3-ED3E-5110-82C8-E5E15E0AF899"><title>Platform security
+notes</title> <p>Platform security restrictions prevent thread and process
+priorities from being modified by another user process. There is one exception:
+by default, applications have “Priority Control” enabled for them which allows
+the window server to switch them between foreground and background process
+priorities depending on which has foreground focus. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93" xml:lang="en"><title>Queries</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A query is a state where the software waits for user input. Queries are
-used in situations with more than one ways to proceed, when the application
-needs data from the user, or when it is necessary to make sure the user knows
-what is happening. A query must be exited before the application can proceed.</p>
-<p>Queries are displayed in pop-up windows. The following query types can
-be used:</p>
-<table id="GUID-90850312-4A91-46D7-AC86-DC6F1B7E4BA9">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.39*"/><colspec colname="col2" colwidth="1.61*"/>
-<thead>
-<row>
-<entry valign="top"><p>Query types</p></entry>
-<entry valign="top"><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Confirmation query</p></entry>
-<entry><p>A question or notice with one or two possible responses. </p></entry>
-</row>
-<row>
-<entry><p>List query</p></entry>
-<entry><p>A question with a selection of more than two possible (pre-defined)
-responses in a list. </p></entry>
-</row>
-<row>
-<entry><p>Grid query</p></entry>
-<entry><p>A question with a selection of more than two possible (pre-defined)
-responses in a grid.</p></entry>
-</row>
-<row>
-<entry><p>Multi-selection list query</p></entry>
-<entry><p>Presents a list of items; the user can select any number of them. </p></entry>
-</row>
-<row>
-<entry><p>Data query</p></entry>
-<entry><p>Used for numeric or textual input.</p></entry>
-</row>
-<row>
-<entry><p>Message query</p></entry>
-<entry><p>Used for various purposes in queries that are longer than one screen.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-53619735-6F0F-401F-AE62-154EDF75A0C3"><title>Using
-queries in C++ applications</title><p>The APIs to use for queries are the
-Queries API, <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html" scope="peer">Dialogs API</xref>, and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>. For implementation information, see <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html#Dialogs_API_Specification.topic3" scope="peer">Using the Dialogs API</xref>.</p><p>Query dialogs are dialogs
-that can be used to require user input or user selection. All query dialogs
-derive from <xref href="GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED.dita"><apiname>CAknQueryDialog</apiname></xref>, which inherits <xref href="GUID-FBE5021B-FA5C-3306-B836-601E4BCB11E4.dita"><apiname>CAknDialog</apiname></xref>.
-There are two types of queries: local and global queries. Local query dialogs
-are local to a certain application. That means they are only displayed within
-this application. Global query dialogs are system-wide queries, and are shown
-topmost even when another application moves to the foreground. Query dialogs
-require resource definitions when they are used in your code. </p><note><p>To
-have a header pane, the <codeph>AVKON_HEADING</codeph> component should be
-specified as the first dialog line in the resource description.</p></note><p>At
-runtime, the dialog's header pane (<xref href="GUID-5FEC2E62-57DB-328C-8E13-4990F9308BF6.dita"><apiname>CAknPopupHeadingPane</apiname></xref>)
-can be obtained by calling the method <xref href="GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED.dita#GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED/GUID-B7AC6A1B-1C68-38AC-8B5F-D6199AA272D4"><apiname>CAknQueryDialog::QueryHeading()</apiname></xref>.</p><p>The
-following parts are available for modification from the class <codeph>CAknQueryDialog</codeph>:</p><ul>
-<li><p>Data query </p><ul>
-<li><p>Header text </p></li>
-<li><p>Header image/animation </p></li>
-<li><p>Prompt text </p></li>
-<li><p>Edit indicator (can be removed) </p></li>
-</ul></li>
-<li><p>Confirmation query </p><ul>
-<li><p>Prompt text </p></li>
-<li><p>Image/animation </p></li>
-</ul></li>
-<li><p>List query </p><ul>
-<li><p>Header text </p></li>
-<li><p>Header image/animation </p></li>
-<li><p>List type (Single, SingleHeading, SingleGraphic, SingleGraphicHeading) </p></li>
-</ul></li>
-</ul><p>The following example illustrates the resource definition for the
-Secret Editor Query, which contains a Secret Editor, resides inside the dialog.
-The values for flags, type, id, and control are specific to the query dialog.
-These values are enumerated in the file <codeph>avkon.hrh</codeph>, which
-is in the <codeph>./epoc32/include</codeph> folder.</p><codeblock xml:space="preserve">RESOURCE DIALOG r_aknexquery_code_query
-    {
-    flags = EGeneralQueryFlags
-    buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = EGeneralQueryFlags
-                {
-                layout = ECodeLayout;
-                label = label_text;
-                control = SECRETED
-                    {
-                    num_letters = 8;
-                    };
-                };
-            }
-        };
-    }
-</codeblock><p>The query in the above example includes a secret editor. For
-information on implementing secret editors, see the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>.  </p><p><b>See also</b>:</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93" xml:lang="en"><title>Queries</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A query is a state where the software waits for user input. Queries are
+used in situations with more than one ways to proceed, when the application
+needs data from the user, or when it is necessary to make sure the user knows
+what is happening. A query must be exited before the application can proceed.</p>
+<p>Queries are displayed in pop-up windows. The following query types can
+be used:</p>
+<table id="GUID-90850312-4A91-46D7-AC86-DC6F1B7E4BA9">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.39*"/><colspec colname="col2" colwidth="1.61*"/>
+<thead>
+<row>
+<entry valign="top"><p>Query types</p></entry>
+<entry valign="top"><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Confirmation query</p></entry>
+<entry><p>A question or notice with one or two possible responses. </p></entry>
+</row>
+<row>
+<entry><p>List query</p></entry>
+<entry><p>A question with a selection of more than two possible (pre-defined)
+responses in a list. </p></entry>
+</row>
+<row>
+<entry><p>Grid query</p></entry>
+<entry><p>A question with a selection of more than two possible (pre-defined)
+responses in a grid.</p></entry>
+</row>
+<row>
+<entry><p>Multi-selection list query</p></entry>
+<entry><p>Presents a list of items; the user can select any number of them. </p></entry>
+</row>
+<row>
+<entry><p>Data query</p></entry>
+<entry><p>Used for numeric or textual input.</p></entry>
+</row>
+<row>
+<entry><p>Message query</p></entry>
+<entry><p>Used for various purposes in queries that are longer than one screen.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-53619735-6F0F-401F-AE62-154EDF75A0C3"><title>Using
+queries in applications</title><p>The APIs to use for queries
+are the Queries API, <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html" scope="peer">Dialogs API</xref>, and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>. For implementation information, see <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html#Dialogs_API_Specification.topic3" scope="peer">Using the Dialogs API</xref>.</p><p>Query dialogs are dialogs
+that can be used to require user input or user selection. All query dialogs
+derive from <xref href="GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED.dita"><apiname>CAknQueryDialog</apiname></xref>, which inherits <xref href="GUID-FBE5021B-FA5C-3306-B836-601E4BCB11E4.dita"><apiname>CAknDialog</apiname></xref>.
+There are two types of queries: local and global queries. Local query dialogs
+are local to a certain application. That means they are only displayed within
+this application. Global query dialogs are system-wide queries, and are shown
+topmost even when another application moves to the foreground. Query dialogs
+require resource definitions when they are used in your code. </p><note><p>To
+have a header pane, the <codeph>AVKON_HEADING</codeph> component should be
+specified as the first dialog line in the resource description.</p></note><p>At
+runtime, the dialog's header pane (<xref href="GUID-5FEC2E62-57DB-328C-8E13-4990F9308BF6.dita"><apiname>CAknPopupHeadingPane</apiname></xref>)
+can be obtained by calling the method <xref href="GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED.dita#GUID-DD9C643C-223D-3B70-AEBA-5BF5C5E181ED/GUID-B7AC6A1B-1C68-38AC-8B5F-D6199AA272D4"><apiname>CAknQueryDialog::QueryHeading()</apiname></xref>.</p><p>The
+following parts are available for modification from the class <codeph>CAknQueryDialog</codeph>:</p><ul>
+<li><p>Data query </p><ul>
+<li><p>Header text </p></li>
+<li><p>Header image/animation </p></li>
+<li><p>Prompt text </p></li>
+<li><p>Edit indicator (can be removed) </p></li>
+</ul></li>
+<li><p>Confirmation query </p><ul>
+<li><p>Prompt text </p></li>
+<li><p>Image/animation </p></li>
+</ul></li>
+<li><p>List query </p><ul>
+<li><p>Header text </p></li>
+<li><p>Header image/animation </p></li>
+<li><p>List type (Single, SingleHeading, SingleGraphic, SingleGraphicHeading) </p></li>
+</ul></li>
+</ul><p>The following example illustrates the resource definition for the
+Secret Editor Query, which contains a Secret Editor, resides inside the dialog.
+The values for flags, type, id, and control are specific to the query dialog.
+These values are enumerated in the file <codeph>avkon.hrh</codeph>, which
+is in the <codeph>./epoc32/include</codeph> folder.</p><codeblock xml:space="preserve">RESOURCE DIALOG r_aknexquery_code_query
+    {
+    flags = EGeneralQueryFlags
+    buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
+    items =
+        {
+        DLG_LINE
+            {
+            type = EAknCtQuery;
+            id = EGeneralQuery;
+            control = EGeneralQueryFlags
+                {
+                layout = ECodeLayout;
+                label = label_text;
+                control = SECRETED
+                    {
+                    num_letters = 8;
+                    };
+                };
+            }
+        };
+    }
+</codeblock><p>The query in the above example includes a secret editor. For
+information on implementing secret editors, see the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>.  </p><p><b>See also</b>:</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF" xml:lang="en"><title>Setting
-pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Setting pages are placed inside pop-ups. The settings are displayed normally
-inside the pop-up with the control pane layout described in <xref href="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita">Control
-pane with pop-up</xref>. When user taps outside the pop-up, the
-area is inactive and the pop-up does not close. Refer to <xref href="GUID-48A2AF36-F39E-45C6-BC89-7DB40716E345.dita">Settings</xref> for
-more detailed information for the display and functional descriptions of the
-setting types.</p>
-<fig id="GUID-6792DA2E-0173-4D41-B965-996419B7A837">
-<title>Example image of a setting in a pop-up</title>
-<image href="GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e67482_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7B2AA498-5E73-4CC4-91DF-5F07F452F0BF" xml:lang="en"><title>Setting
+pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Setting pages are placed inside pop-ups. The settings are displayed normally
+inside the pop-up with the control pane layout described in <xref href="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita">Control
+pane with pop-up</xref>. When user taps outside the pop-up, the
+area is inactive and the pop-up does not close. Refer to <xref href="GUID-48A2AF36-F39E-45C6-BC89-7DB40716E345.dita">Settings</xref> for
+more detailed information for the display and functional descriptions of the
+setting types.</p>
+<fig id="GUID-6792DA2E-0173-4D41-B965-996419B7A837">
+<title>Example image of a setting in a pop-up</title>
+<image href="GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e62371_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e304342_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-7B3578A0-7E2E-508A-A355-A39AEE0307AD_d0e310357_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e230612_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e234349_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E" xml:lang="en"><title>Using
-the MIME Framework</title><abstract><p>The <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">MIME
-recognizers</xref> are used by the client applications for data type recognition.
-When there is a client request to the <xref href="GUID-58CA15F8-D984-5D07-8C00-161FA16A8FD3.dita">AppArc</xref> for
-data type recognition, AppArc internally uses the MIME recognition framework
-for processing the request. </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-8-1-11-1-1-6-1-6-1-4-1-4-1-3-1"><p>The client connects
-to AppArc and creates a session using the class <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>.
-Apparc provides access to the MIME framework via <codeph>RApaLsSession</codeph> APIs.
-The class provides the APIs for data type recognition. </p> <p>All MIME (data)
-recognizers are derived from the abstract base class, <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>.
-The <codeph>RApaLsSession</codeph> data recognition APIs access the properties
-of <codeph>CApaDataRecognizerType</codeph> for data type recognition. </p> </context>
-<steps id="GUID-554A6B8B-5E46-5977-A588-23EEF7610077">
-<step id="GUID-3922D131-9E8C-5865-BF22-D1EB75DADAAF"><cmd/>
-<info>Connect and create a session with AppArc server using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-A92887D0-694C-3792-B3C9-46B155FE83B9"><apiname>RApaLsSession::Connect()</apiname></xref>. </info>
-<stepxmp><codeblock id="GUID-A947EEFC-C528-5487-8C69-B02E46473AAC" xml:space="preserve">RApaLsSession aLs;
-TInt ret;
-// Client session with the server created.
-ret=aLs.Connect();
-</codeblock> </stepxmp>
-</step>
-<step id="GUID-715F513B-D88F-5968-B47B-87BB57F015CE"><cmd/>
-<info>Invoke <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-24DCDDC2-1BF8-34BE-A893-7D85DF505D59"><apiname>RApaLsSession::RecognizeData()</apiname></xref> or <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-13C1150F-AEC3-377F-A15E-1722AB750C9C"><apiname>RApaLsSession::RecognizeSpecificData()</apiname></xref>. </info>
-<info>These APIs internally invoke the implementation for <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-74ED8BEA-52AA-3AC4-92D9-5E4FB4F25DDD"><apiname>CApaDataRecognizerType::DoRecognizeL()</apiname></xref>. </info>
-<info> <codeph>DoRecognizeL()</codeph> of the class derived from <codeph>CApaDataRecognizerType</codeph> implements
-the data recognition behaviour. </info>
-<stepxmp><codeblock id="GUID-E56AB4D9-6D75-58FC-B045-C1B444097973" xml:space="preserve">// Implementation of RecognizeData() 
-
-RecognizeData(const TDesC &amp;aName, const TDesC8 &amp;aBuffer, TDataRecognitionResult &amp;aDataType) 
-    {
-     
-    CExampleRecognizer *myrecognizer= CExampleRecognizer::CreateRecognizerL();
-    myrecognize-&gt;DoRecognizeL(aName,aBuffer);
-     
-    }
-
-
-// The RApaLsSession object invokes RecognizeData() for data type recognition.
-
-_LIT(KMyFile, "Myfile.example");
-
-_LIT(KMyBufer, "serach for example string in the file buffer");
-
-TInt ret=aLs.RecognizeData(KMyFile,KMyBufer,result);
-
-
- 
-</codeblock> </stepxmp>
-<info>For more details about refer <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Writing
-MIME Recognizers </xref>. </info>
-</step>
-</steps>
-<result><p>A <codeph>TDataRecognitionResult</codeph> object is returned to
-AppArc. The object contains the data (MIME) type and the confidence of recognition. </p> <p>AppArc
-attempts to find the application that can best handle the identified data
-type. It is not guaranteed that an application will be available
-to handle a data type, even after successful recognition. </p><p><b>Notes</b>:</p><p>In
-addition to the overloads of <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-24DCDDC2-1BF8-34BE-A893-7D85DF505D59"><apiname>RApaLsSession::RecognizeData()</apiname></xref> or <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-13C1150F-AEC3-377F-A15E-1722AB750C9C"><apiname>RApaLsSession::RecognizeSpecificData()</apiname></xref> the
-following functions of the <codeph>RApaLsSession</codeph> also support the
-processing of data type recognition request.  <ul>
-<li id="GUID-DD30FE7C-7A2E-5D1A-BF2B-9062EA0534F6"><p>The overloads of <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-75213781-58CC-3133-A29E-A98640B5DCB7"><apiname>RApaLsSession::RecognizeFilesL()</apiname></xref> are
-used to recognize all files contained in a specified directory. </p> </li>
-<li id="GUID-EEFC08FC-BC71-5FBC-84D4-4F90FBE879E4"><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-73CBA5BA-F834-3C3E-B823-D22D47E80B0D"><apiname>RApaLsSession::GetAcceptedConfidence()</apiname></xref> and <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-52093701-CB5C-3F89-980B-146FB59DA841"><apiname>RApaLsSession::SetAcceptedConfidence()</apiname></xref> retrieve and set the accepted confidence level of the MIME framework. The
-default value is <codeph>ECertain</codeph>. </p> </li>
-<li id="GUID-611CC0DC-566E-5CAF-ABB2-445AC1E4B21B"><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-02D7272B-576C-34B7-8C70-4B5DD3CA0F7C"><apiname> RApaLsSession::GetSupportedDataTypesL()</apiname></xref> retrieves
-the list of data types supported by all recognizers in the recognizer list
-of the MIME framework. </p> </li>
-<li id="GUID-C3BB3027-FF85-54CE-ADE9-0104CC749AE5"><p>The preferred buffer
-size determines the amount of data passed to <codeph>DoRecognizeL()</codeph> function.
-The preferred buffer size can be retrieved using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-2BF0B124-F898-3F60-BDA9-D56AAAB92EB2"><apiname>RApaLsSession::GetPreferredBufSize()</apiname></xref>.
-This value cannot be greater than the maximum buffer value. </p> <p>The maximum
-value for the buffer is set by using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-08755985-24A9-3D58-9DCD-2C9E45FC8A24"><apiname>RApaLsSession::SetMaxDataBufSize()</apiname></xref>.
-If the maximum buffer size is not set by the client, the default value is
-256 bytes. The maximum buffer size can be retrieved using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-CCE99830-F0A2-3E39-9D16-32A1A3EA570B"><apiname>RApaLsSession::GetMaxDataBufSize()</apiname></xref>. </p> </li>
-</ul></p> </result>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-7B5A854B-A9A0-557E-9970-9B13D7EE251E" xml:lang="en"><title>Using
+the MIME Framework</title><abstract><p>The <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">MIME
+recognizers</xref> are used by the client applications for data type recognition.
+When there is a client request to the <xref href="GUID-58CA15F8-D984-5D07-8C00-161FA16A8FD3.dita">AppArc</xref> for
+data type recognition, AppArc internally uses the MIME recognition framework
+for processing the request. </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-6799E3F3-353E-5C00-A38C-D32F888392AA-GENID-1-10-1-11-1-1-6-1-6-1-4-1-4-1-3-1"><p>The client connects
+to AppArc and creates a session using the class <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>.
+Apparc provides access to the MIME framework via <codeph>RApaLsSession</codeph> APIs.
+The class provides the APIs for data type recognition. </p> <p>All MIME (data)
+recognizers are derived from the abstract base class, <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>.
+The <codeph>RApaLsSession</codeph> data recognition APIs access the properties
+of <codeph>CApaDataRecognizerType</codeph> for data type recognition. </p> </context>
+<steps id="GUID-554A6B8B-5E46-5977-A588-23EEF7610077">
+<step id="GUID-3922D131-9E8C-5865-BF22-D1EB75DADAAF"><cmd/>
+<info>Connect and create a session with AppArc server using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-A92887D0-694C-3792-B3C9-46B155FE83B9"><apiname>RApaLsSession::Connect()</apiname></xref>. </info>
+<stepxmp><codeblock id="GUID-A947EEFC-C528-5487-8C69-B02E46473AAC" xml:space="preserve">RApaLsSession aLs;
+TInt ret;
+// Client session with the server created.
+ret=aLs.Connect();
+</codeblock> </stepxmp>
+</step>
+<step id="GUID-715F513B-D88F-5968-B47B-87BB57F015CE"><cmd/>
+<info>Invoke <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-24DCDDC2-1BF8-34BE-A893-7D85DF505D59"><apiname>RApaLsSession::RecognizeData()</apiname></xref> or <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-13C1150F-AEC3-377F-A15E-1722AB750C9C"><apiname>RApaLsSession::RecognizeSpecificData()</apiname></xref>. </info>
+<info>These APIs internally invoke the implementation for <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-74ED8BEA-52AA-3AC4-92D9-5E4FB4F25DDD"><apiname>CApaDataRecognizerType::DoRecognizeL()</apiname></xref>. </info>
+<info> <codeph>DoRecognizeL()</codeph> of the class derived from <codeph>CApaDataRecognizerType</codeph> implements
+the data recognition behaviour. </info>
+<stepxmp><codeblock id="GUID-E56AB4D9-6D75-58FC-B045-C1B444097973" xml:space="preserve">// Implementation of RecognizeData() 
+
+RecognizeData(const TDesC &amp;aName, const TDesC8 &amp;aBuffer, TDataRecognitionResult &amp;aDataType) 
+    {
+     
+    CExampleRecognizer *myrecognizer= CExampleRecognizer::CreateRecognizerL();
+    myrecognize-&gt;DoRecognizeL(aName,aBuffer);
+     
+    }
+
+
+// The RApaLsSession object invokes RecognizeData() for data type recognition.
+
+_LIT(KMyFile, "Myfile.example");
+
+_LIT(KMyBufer, "serach for example string in the file buffer");
+
+TInt ret=aLs.RecognizeData(KMyFile,KMyBufer,result);
+
+
+ 
+</codeblock> </stepxmp>
+<info>For more details about refer <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Writing
+MIME Recognizers </xref>. </info>
+</step>
+</steps>
+<result><p>A <codeph>TDataRecognitionResult</codeph> object is returned to
+AppArc. The object contains the data (MIME) type and the confidence of recognition. </p> <p>AppArc
+attempts to find the application that can best handle the identified data
+type. It is not guaranteed that an application will be available
+to handle a data type, even after successful recognition. </p><p><b>Notes</b>:</p><p>In
+addition to the overloads of <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-24DCDDC2-1BF8-34BE-A893-7D85DF505D59"><apiname>RApaLsSession::RecognizeData()</apiname></xref> or <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-13C1150F-AEC3-377F-A15E-1722AB750C9C"><apiname>RApaLsSession::RecognizeSpecificData()</apiname></xref> the
+following functions of the <codeph>RApaLsSession</codeph> also support the
+processing of data type recognition request.  <ul>
+<li id="GUID-DD30FE7C-7A2E-5D1A-BF2B-9062EA0534F6"><p>The overloads of <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-75213781-58CC-3133-A29E-A98640B5DCB7"><apiname>RApaLsSession::RecognizeFilesL()</apiname></xref> are
+used to recognize all files contained in a specified directory. </p> </li>
+<li id="GUID-EEFC08FC-BC71-5FBC-84D4-4F90FBE879E4"><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-73CBA5BA-F834-3C3E-B823-D22D47E80B0D"><apiname>RApaLsSession::GetAcceptedConfidence()</apiname></xref> and <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-52093701-CB5C-3F89-980B-146FB59DA841"><apiname>RApaLsSession::SetAcceptedConfidence()</apiname></xref> retrieve and set the accepted confidence level of the MIME framework. The
+default value is <codeph>ECertain</codeph>. </p> </li>
+<li id="GUID-611CC0DC-566E-5CAF-ABB2-445AC1E4B21B"><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-02D7272B-576C-34B7-8C70-4B5DD3CA0F7C"><apiname> RApaLsSession::GetSupportedDataTypesL()</apiname></xref> retrieves
+the list of data types supported by all recognizers in the recognizer list
+of the MIME framework. </p> </li>
+<li id="GUID-C3BB3027-FF85-54CE-ADE9-0104CC749AE5"><p>The preferred buffer
+size determines the amount of data passed to <codeph>DoRecognizeL()</codeph> function.
+The preferred buffer size can be retrieved using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-2BF0B124-F898-3F60-BDA9-D56AAAB92EB2"><apiname>RApaLsSession::GetPreferredBufSize()</apiname></xref>.
+This value cannot be greater than the maximum buffer value. </p> <p>The maximum
+value for the buffer is set by using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-08755985-24A9-3D58-9DCD-2C9E45FC8A24"><apiname>RApaLsSession::SetMaxDataBufSize()</apiname></xref>.
+If the maximum buffer size is not set by the client, the default value is
+256 bytes. The maximum buffer size can be retrieved using <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-CCE99830-F0A2-3E39-9D16-32A1A3EA570B"><apiname>RApaLsSession::GetMaxDataBufSize()</apiname></xref>. </p> </li>
+</ul></p> </result>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e243007_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7C061090-83A8-5E0F-B42B-2D722BE054EE_d0e246744_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e189683_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e194738_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,144 +1,144 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61" xml:lang="en"><title>Server-Initiated
-vs. Application-Initiated Redrawing</title><shortdesc>This topic introduces the reasons that the screen display may need
-to be updated and the difference between redrawing that is initiated by an
-application and that initiated by the Window Server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target
-audience</b>: Application developers. </p>
-<section id="GUID-D5FE0214-ECEB-4C0F-84C9-2BB44C19E477"><title>Introduction</title> <p>The Window Server maintains the UI
-display taking into account the region, ordinal position and visibility requirements
-of all displayable windows. The UI may be updated for several reasons: </p> <ul>
-<li id="GUID-017DF20B-5881-5B8A-A8A3-0019614535B7"><p>at direct application
-request by an application drawing to a window through a <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>  </p> </li>
-<li id="GUID-8B9CFD40-0ECB-5F0D-92BA-F8EB327B31CA"><p>due to regions of the
-display becoming invalid </p> </li>
-<li id="GUID-6F5C9D10-BCE4-5F60-9F85-BE69C4C58F2C"><p>due to actions internal
-to the Window Server, such as pointer cursor movements. </p> </li>
-</ul> <p>When a window is moved, resized, or otherwise manipulated by an application,
-it may cause parts of other windows to become invalid so that they must be
-redrawn. The Window Server maintains a list of all invalid regions and causes
-them to be redrawn in one of several ways: </p> <ul>
-<li id="GUID-2FFC86C2-0971-539B-BD21-E95E9FEB4202"><p>for a region with no
-window, the Window Server redraws the invalid region in the default background
-color </p> </li>
-<li id="GUID-B0289B7D-97E2-5FBD-9983-130A5109FDFF"><p>for a blank window,
-the Window Server redraws the invalid region in the window's color </p> </li>
-<li id="GUID-931BDE7B-4C56-5350-A26B-F89CCBA72DE6"><p>for a backed-up window,
-the invalid region is redrawn from a backup bitmap maintained by the Window
-Server </p> </li>
-<li id="GUID-24155452-0F5D-508E-B04D-96E06FD0913F"><p>if the invalid region
-is owned by an animation DLL, the Window Server invokes the animation DLL
-directly to redraw the area: the region is then valid again </p> </li>
-<li id="GUID-2A5080AF-1415-5CBF-B775-D547D9C3F222"><p>for a normal <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>,
-whenever possible, the Window Server replays the sequence of drawing commands
-stored in the redraw stores. However, sometimes this is not possible, because,
-for example, the redraw stores have been lost due to low memory conditions.
-In these circumstances, the Window Server generates a redraw event and sends
-it to the application. This is described in more detail below. </p> </li>
-</ul> </section>
-<section id="GUID-50054B7B-FF18-40B2-A582-B90FE66D269F"><title>Window Server-initiated redrawing</title> <p>When the Window
-Server needs to repaint a standard <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> window and it
-is not possible to do this by replaying the drawing commands stored in the
-redraw stores, it sends a <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref> message to the
-client. </p> <p>It is part of the client's contract with the Window Server
-to listen for these events and respond to them by performing a redraw. The
-normal way for a client application to do this is through an active object,
-which is sometimes called a <b>redrawer</b>. This is normally provided by
-the application framework and should have a lower priority than the active
-objects for standard events. The client issues an asynchronous request for
-the next redraw event, calling the <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-DADAFFD6-4B63-35EE-8F50-F397C119CC27"><apiname>RWsSession::RedrawReady()</apiname></xref> function. </p> <p>The
-redrawer's <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref> function (which handles the completed
-request) calls <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-6008C20D-AA95-3803-8B57-54948FA61616"><apiname>RWsSession::GetRedraw()</apiname></xref>. This gets the <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref>,
-which contains the handle of the window and the rectangle within it that needs
-to be redrawn and then does the redraw. This involves: </p> <ol id="GUID-078DF0F5-E856-5FFF-ADEB-1A09B4BBDFB0">
-<li id="GUID-75A15778-D570-5B5D-A07E-5660FFCAB00F"><p>Calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> on
-the relevant window and passing in the rectangle. </p> </li>
-<li id="GUID-C63A002A-B433-5054-BD73-0368E2FB6C1B"><p>Issuing the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing
-commands that define how to draw the area of the window specified by the rectangle
-passed in the <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref>. These drawing commands must
-exactly match what was drawn originally, because the Window Server clips the
-drawing to the passed rectangle. </p> </li>
-<li id="GUID-AA03D7DD-0B8A-5241-87B1-D45BC8AAA369"><p>Calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
-</ol> <p>At the end of the redrawer’s <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref>, a call is
-made to <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-DADAFFD6-4B63-35EE-8F50-F397C119CC27"><apiname>RWsSession::RedrawReady()</apiname></xref> to enable the client
-to listen for further requests from the Window Server. </p> <p>The following
-diagram demonstrates that typically the <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref> starts with
-a <xref href="GUID-C57CFECB-72CD-39EB-A83E-82A9E985F56B.dita"><apiname>GetRedraw()</apiname></xref> and ends with a call to <xref href="GUID-E3F0CB70-58E4-32FD-9828-71DF2F9976D3.dita"><apiname>RedrawReady()</apiname></xref>. </p> <fig id="GUID-B092D136-8C18-5237-A095-F8C3BBFFDDB4">
-<title>              Window Server-initiated redraw            </title>
-<image href="GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e195211_href.png" placement="inline"/>
-</fig> <p>A redrawer's <codeph>RunL()</codeph> function must <b>not</b> perform
-any non-redraw drawing (that is, any drawing operations that are not bracketed
-within the calls to <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph>).
-If it does, this causes a panic with code 79 (<codeph>EWservPanicWindowBeginRedrawNotCalled</codeph>)
-in the ScreenPlay variant. This is to avoid the infinite loop that would otherwise
-be caused by an endless cycle of the non-redraw drawing within the <codeph>RunL()</codeph> triggering
-a Window Server-initiated redraw. </p> </section>
-<section id="GUID-0238F737-3D2B-4811-8E46-561922210143"><title>Application-initiated redrawing</title> <p>An application
-initiates redrawing when it wants to update the UI to reflect a change of
-state. There are two scenarios, which we describe under separate headings
-below. </p> <p><b>The "draw now" scenario </b> </p> <p>The "draw now" redraw scenario is
-when an application wants to push a state change to a window immediately.
-Typically the application does this by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref>.
-However, it is possible to achieve the same results using <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> calls
-directly. To illustrate how to do this, consider a digital clock application
-that updates the time displayed in the window from 12:02 to 12:03. </p> <p>The
-application does the following: </p> <ol id="GUID-D9D43E2B-B29D-5C6F-A1AB-ABA192D3D562">
-<li id="GUID-C59E802D-0D4F-595B-9F1C-BED1090EE7D7"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref>,
-optionally passing in the bounding rectangle. When called without passing
-in a rectangle, this function invalidates the entire window. </p> </li>
-<li id="GUID-491CB745-6B47-5656-874E-A87DE1BE6254"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref>.
-If the application passed a bounding rectangle to <codeph>Invalidate()</codeph>,
-it must pass the same bounding rectangle to <codeph>BeginRedraw()</codeph>.
-If the application did not pass a bounding rectangle to <codeph>Invalidate()</codeph>,
-it must not pass one to BeginRedraw(). </p> </li>
-<li id="GUID-8CA69A7D-0387-5604-9C10-983FB50514B5"><p>Issues the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> draw
-commands. </p> </li>
-<li id="GUID-B2474EE6-CC03-55A8-9972-071B76512B26"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
-</ol> <fig id="GUID-6E2637DC-F92A-56DE-BB07-F109F5CA681B">
-<title>              Application-initiated redrawing, "draw now" scenario
-           </title>
-<image href="GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e195319_href.png" placement="inline"/>
-</fig> <p><b>The "draw deferred" scenario </b> </p> <p>The "draw deferred" redraw scenario
-is when an application simply marks a window or a rectangle within a window
-as invalid. This eventually triggers a Window Server-initiated redraw. Typically
-the application does this by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref>.
-However, it is also possible to do this by calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref>. </p> <fig id="GUID-8B78CE09-EE92-50B3-8000-731BD9C20890">
-<title>              Application-initiated redrawing, "draw deferred" scenario
-           </title>
-<image href="GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e195343_href.png" placement="inline"/>
-</fig> <p>This approach is useful when the data to be displayed might be updated
-frequently but it is not necessary to update the display instantaneously. </p> <p>To
-illustrate how it works, consider a window that has a rectangle that is used
-to display icons (a star, a cross and a triangle) that represent three different
-events that can occur in the application. Suppose the events can occur in
-quick succession. If you use the "draw now" approach when each event occurs,
-the Window Server updates the display separately for each one, as shown in
-the following diagram. </p> <fig id="GUID-04BCFA21-8D44-5FEA-BE29-57B40AC9CF99">
-<title>              Icons displayed using the "draw now" approach       
-    </title>
-<image href="GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e195357_href.png" placement="inline"/>
-</fig> <p>However, if you use the "draw deferred" approach when each event
-occurs, the Window Server may not update the display for each one. For example,
-the Window Server does not update the display when it is superceded by a later
-call. </p> <fig id="GUID-1E0E2A3C-1E63-58F6-940F-0D439FA6C721">
-<title>              Icons displayed using the "draw deferred" approach  
-         </title>
-<image href="GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e195368_href.png" placement="inline"/>
-</fig> <p>If it is important that the display is updated immediately, you
-would generally use the "draw now" approach. However, if a short delay in
-the display being updated is unlikely to inconvenience the user, the "draw
-deferred" approach might be appropriate and has a performance advantage. </p> </section>
-</conbody><related-links>
-<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
-and Drawing </linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61" xml:lang="en"><title>Server-Initiated
+vs. Application-Initiated Redrawing</title><shortdesc>This topic introduces the reasons that the screen display may need
+to be updated and the difference between redrawing that is initiated by an
+application and that initiated by the Window Server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target
+audience</b>: Application developers. </p>
+<section id="GUID-D5FE0214-ECEB-4C0F-84C9-2BB44C19E477"><title>Introduction</title> <p>The Window Server maintains the UI
+display taking into account the region, ordinal position and visibility requirements
+of all displayable windows. The UI may be updated for several reasons: </p> <ul>
+<li id="GUID-017DF20B-5881-5B8A-A8A3-0019614535B7"><p>at direct application
+request by an application drawing to a window through a <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>  </p> </li>
+<li id="GUID-8B9CFD40-0ECB-5F0D-92BA-F8EB327B31CA"><p>due to regions of the
+display becoming invalid </p> </li>
+<li id="GUID-6F5C9D10-BCE4-5F60-9F85-BE69C4C58F2C"><p>due to actions internal
+to the Window Server, such as pointer cursor movements. </p> </li>
+</ul> <p>When a window is moved, resized, or otherwise manipulated by an application,
+it may cause parts of other windows to become invalid so that they must be
+redrawn. The Window Server maintains a list of all invalid regions and causes
+them to be redrawn in one of several ways: </p> <ul>
+<li id="GUID-2FFC86C2-0971-539B-BD21-E95E9FEB4202"><p>for a region with no
+window, the Window Server redraws the invalid region in the default background
+color </p> </li>
+<li id="GUID-B0289B7D-97E2-5FBD-9983-130A5109FDFF"><p>for a blank window,
+the Window Server redraws the invalid region in the window's color </p> </li>
+<li id="GUID-931BDE7B-4C56-5350-A26B-F89CCBA72DE6"><p>for a backed-up window,
+the invalid region is redrawn from a backup bitmap maintained by the Window
+Server </p> </li>
+<li id="GUID-24155452-0F5D-508E-B04D-96E06FD0913F"><p>if the invalid region
+is owned by an animation DLL, the Window Server invokes the animation DLL
+directly to redraw the area: the region is then valid again </p> </li>
+<li id="GUID-2A5080AF-1415-5CBF-B775-D547D9C3F222"><p>for a normal <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>,
+whenever possible, the Window Server replays the sequence of drawing commands
+stored in the redraw stores. However, sometimes this is not possible, because,
+for example, the redraw stores have been lost due to low memory conditions.
+In these circumstances, the Window Server generates a redraw event and sends
+it to the application. This is described in more detail below. </p> </li>
+</ul> </section>
+<section id="GUID-50054B7B-FF18-40B2-A582-B90FE66D269F"><title>Window Server-initiated redrawing</title> <p>When the Window
+Server needs to repaint a standard <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> window and it
+is not possible to do this by replaying the drawing commands stored in the
+redraw stores, it sends a <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref> message to the
+client. </p> <p>It is part of the client's contract with the Window Server
+to listen for these events and respond to them by performing a redraw. The
+normal way for a client application to do this is through an active object,
+which is sometimes called a <b>redrawer</b>. This is normally provided by
+the application framework and should have a lower priority than the active
+objects for standard events. The client issues an asynchronous request for
+the next redraw event, calling the <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-DADAFFD6-4B63-35EE-8F50-F397C119CC27"><apiname>RWsSession::RedrawReady()</apiname></xref> function. </p> <p>The
+redrawer's <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref> function (which handles the completed
+request) calls <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-6008C20D-AA95-3803-8B57-54948FA61616"><apiname>RWsSession::GetRedraw()</apiname></xref>. This gets the <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref>,
+which contains the handle of the window and the rectangle within it that needs
+to be redrawn and then does the redraw. This involves: </p> <ol id="GUID-078DF0F5-E856-5FFF-ADEB-1A09B4BBDFB0">
+<li id="GUID-75A15778-D570-5B5D-A07E-5660FFCAB00F"><p>Calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> on
+the relevant window and passing in the rectangle. </p> </li>
+<li id="GUID-C63A002A-B433-5054-BD73-0368E2FB6C1B"><p>Issuing the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing
+commands that define how to draw the area of the window specified by the rectangle
+passed in the <xref href="GUID-B5F16BF3-569D-3985-AAB7-439E3410468D.dita"><apiname>TWsRedrawEvent</apiname></xref>. These drawing commands must
+exactly match what was drawn originally, because the Window Server clips the
+drawing to the passed rectangle. </p> </li>
+<li id="GUID-AA03D7DD-0B8A-5241-87B1-D45BC8AAA369"><p>Calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
+</ol> <p>At the end of the redrawer’s <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref>, a call is
+made to <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-DADAFFD6-4B63-35EE-8F50-F397C119CC27"><apiname>RWsSession::RedrawReady()</apiname></xref> to enable the client
+to listen for further requests from the Window Server. </p> <p>The following
+diagram demonstrates that typically the <xref href="GUID-12C281FF-546C-318D-8783-F26B0F619E11.dita"><apiname>RunL()</apiname></xref> starts with
+a <xref href="GUID-C57CFECB-72CD-39EB-A83E-82A9E985F56B.dita"><apiname>GetRedraw()</apiname></xref> and ends with a call to <xref href="GUID-E3F0CB70-58E4-32FD-9828-71DF2F9976D3.dita"><apiname>RedrawReady()</apiname></xref>. </p> <fig id="GUID-B092D136-8C18-5237-A095-F8C3BBFFDDB4">
+<title>              Window Server-initiated redraw            </title>
+<image href="GUID-0528A294-AC1B-5CDD-B59C-A105F39D748F_d0e190203_href.png" placement="inline"/>
+</fig> <p>A redrawer's <codeph>RunL()</codeph> function must <b>not</b> perform
+any non-redraw drawing (that is, any drawing operations that are not bracketed
+within the calls to <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph>).
+If it does, this causes a panic with code 79 (<codeph>EWservPanicWindowBeginRedrawNotCalled</codeph>)
+in the ScreenPlay variant. This is to avoid the infinite loop that would otherwise
+be caused by an endless cycle of the non-redraw drawing within the <codeph>RunL()</codeph> triggering
+a Window Server-initiated redraw. </p> </section>
+<section id="GUID-0238F737-3D2B-4811-8E46-561922210143"><title>Application-initiated redrawing</title> <p>An application
+initiates redrawing when it wants to update the UI to reflect a change of
+state. There are two scenarios, which we describe under separate headings
+below. </p> <p><b>The "draw now" scenario </b> </p> <p>The "draw now" redraw scenario is
+when an application wants to push a state change to a window immediately.
+Typically the application does this by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref>.
+However, it is possible to achieve the same results using <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> calls
+directly. To illustrate how to do this, consider a digital clock application
+that updates the time displayed in the window from 12:02 to 12:03. </p> <p>The
+application does the following: </p> <ol id="GUID-D9D43E2B-B29D-5C6F-A1AB-ABA192D3D562">
+<li id="GUID-C59E802D-0D4F-595B-9F1C-BED1090EE7D7"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref>,
+optionally passing in the bounding rectangle. When called without passing
+in a rectangle, this function invalidates the entire window. </p> </li>
+<li id="GUID-491CB745-6B47-5656-874E-A87DE1BE6254"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref>.
+If the application passed a bounding rectangle to <codeph>Invalidate()</codeph>,
+it must pass the same bounding rectangle to <codeph>BeginRedraw()</codeph>.
+If the application did not pass a bounding rectangle to <codeph>Invalidate()</codeph>,
+it must not pass one to BeginRedraw(). </p> </li>
+<li id="GUID-8CA69A7D-0387-5604-9C10-983FB50514B5"><p>Issues the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> draw
+commands. </p> </li>
+<li id="GUID-B2474EE6-CC03-55A8-9972-071B76512B26"><p>Calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> </li>
+</ol> <fig id="GUID-6E2637DC-F92A-56DE-BB07-F109F5CA681B">
+<title>              Application-initiated redrawing, "draw now" scenario
+           </title>
+<image href="GUID-4BC95F70-2F3F-5CFE-B057-0C5A97430573_d0e190311_href.png" placement="inline"/>
+</fig> <p><b>The "draw deferred" scenario </b> </p> <p>The "draw deferred" redraw scenario
+is when an application simply marks a window or a rectangle within a window
+as invalid. This eventually triggers a Window Server-initiated redraw. Typically
+the application does this by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref>.
+However, it is also possible to do this by calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref>. </p> <fig id="GUID-8B78CE09-EE92-50B3-8000-731BD9C20890">
+<title>              Application-initiated redrawing, "draw deferred" scenario
+           </title>
+<image href="GUID-21EF9E6F-A0BF-5EB2-9E3F-CA6A011D4C89_d0e190335_href.png" placement="inline"/>
+</fig> <p>This approach is useful when the data to be displayed might be updated
+frequently but it is not necessary to update the display instantaneously. </p> <p>To
+illustrate how it works, consider a window that has a rectangle that is used
+to display icons (a star, a cross and a triangle) that represent three different
+events that can occur in the application. Suppose the events can occur in
+quick succession. If you use the "draw now" approach when each event occurs,
+the Window Server updates the display separately for each one, as shown in
+the following diagram. </p> <fig id="GUID-04BCFA21-8D44-5FEA-BE29-57B40AC9CF99">
+<title>              Icons displayed using the "draw now" approach       
+    </title>
+<image href="GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e190349_href.png" placement="inline"/>
+</fig> <p>However, if you use the "draw deferred" approach when each event
+occurs, the Window Server may not update the display for each one. For example,
+the Window Server does not update the display when it is superceded by a later
+call. </p> <fig id="GUID-1E0E2A3C-1E63-58F6-940F-0D439FA6C721">
+<title>              Icons displayed using the "draw deferred" approach  
+         </title>
+<image href="GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e190360_href.png" placement="inline"/>
+</fig> <p>If it is important that the display is updated immediately, you
+would generally use the "draw now" approach. However, if a short delay in
+the display being updated is unlikely to inconvenience the user, the "draw
+deferred" approach might be appropriate and has a performance advantage. </p> </section>
+</conbody><related-links>
+<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
+and Drawing </linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2-master.png has changed
Binary file Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e66044_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e71293_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e64446_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7D025BEF-61B9-4EF1-AFF7-604B500A8F2C_d0e69665_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e267163_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e270871_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-7D53E323-CF8D-5C4D-ABCD-4D95C7A4A5B5"><title>Secure store encryption example support code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Below is the supporting code for the <xref href="GUID-36BCDD1F-3713-5DF0-8D8A-CF093694B636.dita">secure store example code</xref>. </p> <section id="GUID-5DE9A95D-C755-429A-A3E3-7A8FF06008B9"><title/><codeblock id="GUID-36F57493-4F6E-559A-B51B-7261F57AF1B1" xml:space="preserve">
+#include "e32std.h"
+#include "f32file.h"
+#include "s32file.h"
+#include "pbe.h"
+#include "pbedata.h"
+#include "s32crypt.h"
+            </codeblock> <codeblock id="GUID-EE52D935-4E72-5D4A-809C-BA0FEE19C90F" xml:space="preserve">
+/*
+ * Class to demonstrate the use of secure store APIs.
+ */
+class CSecureStoreExample : public CBase
+         {
+public:
+         static CSecureStoreExample* NewLC(const TDesC&amp; aFilename);
+         virtual ~CSecureStoreExample();
+
+         void CreateNewStoreL(const TDesC&amp; aPassword);
+         TStreamId WriteEncryptedDataL(const TDesC8&amp; aInput);
+         void OpenExistingStoreL(const TDesC&amp; aPassword);
+         HBufC8* ReadEncryptedDataLC(TStreamId aStreamId);
+         void CloseStore();
+         void ChangePasswordL(const TDesC&amp; aNewPassword);
+private:
+         CSecureStoreExample(const TDesC&amp; aFilename);
+         void ConstructL();
+private:
+         RFs iFs;
+         const TDesC&amp; iFilename;
+         CPermanentFileStore* iFileStore;
+         CPBEncryptSet* iEncryptSet;
+         CSecureStore* iSecureStore;
+         };
+            </codeblock> <codeblock id="GUID-DB3DBE48-DCEC-5CDD-9066-246AD37A5C12" xml:space="preserve">
+CSecureStoreExample* CSecureStoreExample::NewLC(const TDesC&amp; aFilename)
+         {
+         CSecureStoreExample* self = new (ELeave) CSecureStoreExample(aFilename);
+         CleanupStack::PushL(self);
+         self-&gt;ConstructL();
+         return self;
+         }
+
+CSecureStoreExample::CSecureStoreExample(const TDesC&amp; aFilename)
+         : iFilename(aFilename)
+         {
+         }
+
+void CSecureStoreExample::ConstructL()
+         {
+         User::LeaveIfError(iFs.Connect());
+         }
+
+CSecureStoreExample::~CSecureStoreExample()
+         {
+         CloseStore();
+         iFs.Close();
+         }
+            </codeblock> <codeblock id="GUID-4485993E-0561-5688-85FA-3914AECDF12B" xml:space="preserve">
+LOCAL_D void RunPBEExampleL()
+         {
+         _LIT(KFilename, "c:\\pbe_example_data.dat");
+         _LIT8(KInputData, "This is the data to be encrypted.");
+         _LIT(KPassword, "pa55w0rd");
+         _LIT(KNewPassword, "chang3m3");
+
+         CSecureStoreExample* main = CSecureStoreExample::NewLC(KFilename);
+
+         // Create a secure store and write some data to it
+         main-&gt;CreateNewStoreL(KPassword);
+         TStreamId streamId = main-&gt;WriteEncryptedDataL(KInputData);
+         main-&gt;CloseStore();
+
+         // Open it again, and read the data back out
+         main-&gt;OpenExistingStoreL(KPassword);
+         HBufC8* outputData = main-&gt;ReadEncryptedDataLC(streamId);
+         ASSERT(*outputData == KInputData);
+         CleanupStack::PopAndDestroy(outputData);
+
+         // Change the password
+         main-&gt;ChangePasswordL(KNewPassword);
+
+         // Check we can still read the data
+         outputData = main-&gt;ReadEncryptedDataLC(streamId);
+         ASSERT(*outputData == KInputData);         
+         main-&gt;CloseStore();
+
+         CleanupStack::PopAndDestroy(2, main);
+         }
+            </codeblock> <codeblock id="GUID-7FF91AD3-106A-56EA-9199-0E261B8D044C" xml:space="preserve">
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+         __UHEAP_MARK;
+         CTrapCleanup* cleanup = CTrapCleanup::New(); // get clean-up stack
+         TRAPD(error, RunPBEExampleL());
+         __ASSERT_ALWAYS(!error,User::Panic(_L("pbe_example_code"),error));
+         delete cleanup; // destroy clean-up stack
+         __UHEAP_MARKEND;
+         return 0;
+    }
+            </codeblock> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e287350_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7DDC1BC6-A100-5B50-ABFE-B4AA466716A6_d0e290983_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041" xml:lang="en"><title>Array
-of packed elements, flat array</title><shortdesc>Describes arrays of packed elements in a flat.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This is a <codeph>CArrayPakFlat&lt;class T&gt;</codeph> object whose
-elements can have different lengths but are physically contiguous within a
-flat array buffer. Each element is preceded by a <codeph>TInt</codeph> value
-to record the length of that element.</p>
-<p>A flat buffer always occupies a single cell allocated from the heap and
-is always extended by the process of reallocation. A flat array buffer is
-implemented using a <codeph>CBufFlat</codeph> object. </p>
-<p>The following diagram illustrates how elements are organised within the
-array buffer:</p>
-<fig id="GUID-C36AFFF1-3BE7-5AF3-B852-B1AB3BBA257D">
-<image href="GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e219549_href.png" placement="inline"/>
-</fig>
-<p>This kind of array is suitable for a small number of objects or for a moderately
-large but fixed maximum number of objects. It is not suitable for large arrays
-with a high turnover of elements. </p>
-<p>A packed array has the advantage over a variable flat array in having a
-smaller memory overhead for each element. The disadvantage is that the elements
-and their preceding <codeph>TInt</codeph> values occupy a single cell which
-has a higher risk of reallocation failure in times of low memory availability.</p>
-<p>This class is immediately derived from the abstract template
-base class <codeph>CArrayPak&lt;class T&gt;</codeph> which is itself derived
-from the abstract non-templated base class <codeph>CArrayPakBase</codeph>.</p>
-<section id="GUID-0758EE5B-5846-4ABD-B2E5-DA2C0AD57032"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
-Dynamic Buffers</xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7DDEE87B-7056-5AAA-91A1-33D3D0D50041" xml:lang="en"><title>Array
+of packed elements, flat array</title><shortdesc>Describes arrays of packed elements in a flat.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This is a <codeph>CArrayPakFlat&lt;class T&gt;</codeph> object whose
+elements can have different lengths but are physically contiguous within a
+flat array buffer. Each element is preceded by a <codeph>TInt</codeph> value
+to record the length of that element.</p>
+<p>A flat buffer always occupies a single cell allocated from the heap and
+is always extended by the process of reallocation. A flat array buffer is
+implemented using a <codeph>CBufFlat</codeph> object. </p>
+<p>The following diagram illustrates how elements are organised within the
+array buffer:</p>
+<fig id="GUID-C36AFFF1-3BE7-5AF3-B852-B1AB3BBA257D">
+<image href="GUID-2472E5E0-C33A-51B4-8210-89D7DEFA87C8_d0e215812_href.png" placement="inline"/>
+</fig>
+<p>This kind of array is suitable for a small number of objects or for a moderately
+large but fixed maximum number of objects. It is not suitable for large arrays
+with a high turnover of elements. </p>
+<p>A packed array has the advantage over a variable flat array in having a
+smaller memory overhead for each element. The disadvantage is that the elements
+and their preceding <codeph>TInt</codeph> values occupy a single cell which
+has a higher risk of reallocation failure in times of low memory availability.</p>
+<p>This class is immediately derived from the abstract template
+base class <codeph>CArrayPak&lt;class T&gt;</codeph> which is itself derived
+from the abstract non-templated base class <codeph>CArrayPakBase</codeph>.</p>
+<section id="GUID-0758EE5B-5846-4ABD-B2E5-DA2C0AD57032"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
+Dynamic Buffers</xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1" xml:lang="en"><title>Indicators
-in the Navi pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Navi pane can contain several kinds of indicators, depending on which
-way the pane is used in the particular context:</p>
-<table id="GUID-316EBE04-76B1-4F91-90B7-8F5446943FAC"><title>Navi pane indicators</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Indicators</entry>
-<entry><p>Description</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Left and right arrows</p><fig id="GUID-58FC0E5C-12D5-4B42-8171-37567D139807">
-<title>Arrows in the Navi pane</title>
-<image href="GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e58588_href.png" scale="40" placement="inline"/>
-</fig></entry>
-<entry><p>When horizontal navigation between different main pane views is
-used, the Navi pane displays the navigation information (tabs or text may
-be used). The arrow icons on the left and right ends of the Navi pane indicate
-the possibility to move in the corresponding directions (with tabs, the arrows
-are only displayed when all tabs are not visible).</p></entry>
-</row>
-<row>
-<entry><p>Editing indicators</p><fig id="GUID-C5367363-A4F0-4AF2-8418-ED01597ED535">
-<title>Editing indicators in the Navi pane</title>
-<image href="GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e58606_href.png" scale="40" placement="inline"/>
-</fig></entry>
-<entry><p>When an editor is in use in the main pane, the indicators related
-to editing parameters are displayed in the Navi pane. They indicate things
-such as the editing mode (numeric/alphanumeric), character case, Predictive
-Text status, and the available space.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-ED4FB62F-8601-4323-83A2-0098923F7158"><title>Using
-navi pane indicators in C++ applications</title><p>The API to use for indicators
-is the Indicators API. For the navi pane, use the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-7DFA1B74-5BD1-494D-9BBA-B2D6F258C5F1" xml:lang="en"><title>Indicators
+in the Navi pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Navi pane can contain several kinds of indicators, depending on which
+way the pane is used in the particular context:</p>
+<table id="GUID-316EBE04-76B1-4F91-90B7-8F5446943FAC"><title>Navi pane indicators</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Indicators</entry>
+<entry><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Left and right arrows</p><fig id="GUID-58FC0E5C-12D5-4B42-8171-37567D139807">
+<title>Arrows in the Navi pane</title>
+<image href="GUID-6FE79448-5052-46F9-A74E-A128CB367697_d0e52493_href.png" scale="40" placement="inline"/>
+</fig></entry>
+<entry><p>When horizontal navigation between different main pane views is
+used, the Navi pane displays the navigation information (tabs or text may
+be used). The arrow icons on the left and right ends of the Navi pane indicate
+the possibility to move in the corresponding directions.</p><p><note> Navi
+arrows are not used with tabs.</note></p></entry>
+</row>
+<row>
+<entry><p>Editing indicators</p><fig id="GUID-C5367363-A4F0-4AF2-8418-ED01597ED535">
+<title>Editing indicators in the Navi pane</title>
+<image href="GUID-03A3E872-8183-4F56-976E-A6AF435742C6_d0e52515_href.png" scale="40" placement="inline"/>
+</fig></entry>
+<entry><p>When an editor is in use in the main pane, the indicators related
+to editing parameters are displayed in the Navi pane. They indicate things
+such as the editing mode (numeric/alphanumeric), character case, Predictive
+Text status, and the available space.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-ED4FB62F-8601-4323-83A2-0098923F7158"><title>Using
+navi pane indicators in applications</title><p>The API to use for indicators
+is the Indicators API. For the navi pane, use the <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html#Navigation_Pane_API_Specification.topic3" scope="peer">Using the Navigation pane API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e34576_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E6634DC-7F07-5687-AFEE-D5BD268B8E1D_d0e40142_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e7115_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e8390_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e5815_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e7090_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e73606_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7E8C363C-5908-445D-8595-D53F217186ED_d0e78726_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e195421_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-7F0EC737-F5EE-5B58-B9EB-4D8A058E3A49_d0e200429_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e184682_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e191278_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-7F6283C0-46E8-427C-B6A9-FB274A7D2C15.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-7F6283C0-46E8-427C-B6A9-FB274A7D2C15" xml:lang="en"><title>Opening
+a Connection to a SNAP by specifying SNAP Type</title><shortdesc>Extended Connection Preferences API can be used by applications
+to set the SNAP type prior to establishing a connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-DA2ED45B-65AC-4C82-B854-67284173FAF9-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-1">       <p>Specifying
+SNAP type enables the applications to start a connection to a specific SNAP
+(For example, Internet SNAP or Intranet SNAP) without iterating through the
+SNAP list to identify the appropriate type.</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-1"><cmd>Connect to<xref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita"> socket server </xref>.</cmd>
+<info> <codeblock xml:space="preserve">RSocketServ ss;
+ss.Connect();       </codeblock>                  </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-2"><cmd> Open a<xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita"> RConnection </xref> object.</cmd>
+<info> <codeblock xml:space="preserve">RConnection conn;
+conn.Open( ss );</codeblock>                  </info>
+</step>
+<step id="GUID-DC3652D1-7EDB-4582-8B6B-117E248A1F70-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-3"><cmd>Create a connection
+preference list and extended connection preferences object.</cmd>
+<info> <codeblock xml:space="preserve">TConnPrefList prefList;
+TExtendedConnPref preferences;    </codeblock>                  </info>
+</step>
+<step id="GUID-3D1BD3F8-6244-45E9-AF47-C19E5667092C-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-4"><cmd>Set the SNAP type
+using <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita#GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A/GUID-D26E7C3A-0C40-3BF1-85E4-6D28044F356B"><apiname>TExtendedConnPref::SetSnapPurpose()</apiname></xref>.</cmd>
+<info><codeblock xml:space="preserve">preferences.SetSnapPurpose( CMManager::ESnapPurposeInternet );</codeblock></info>
+</step>
+<step id="GUID-9DE0CAE0-8F0A-4197-9FC1-B045C32A817F-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-5"><cmd>Append the extended
+connection preferences into connection preference list. </cmd>
+<info><codeblock xml:space="preserve">prefList.AppendL( &amp;preferences );</codeblock></info>
+</step>
+<step id="GUID-E492622A-4410-4F2D-A4DC-C0D8A3B33F99-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-2-6"><cmd>Start a connection
+with connection preferences.</cmd>
+<info><codeblock xml:space="preserve">conn.Start( prefList );</codeblock></info>
+</step>
+</steps>
+<result id="GUID-3B2081B8-6F9D-40C1-8407-0F0EB43790B5-GENID-1-10-1-14-1-1-4-1-1-5-1-1-3-1-3-3">       <p>The application
+is connected to Internet SNAP.</p>     </result>
+</taskbody><related-links>
+<link href="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita"><linktext>Additional
+Connection Preferences</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e177349_href.png has changed
Binary file Symbian3/SDK/Source/GUID-7F8F6ABB-8F46-5486-A116-6965787BC539_d0e183943_href.png has changed
--- a/Symbian3/SDK/Source/GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-7FCFB114-B186-5615-9134-08612BB675EE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,84 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-7FCFB114-B186-5615-9134-08612BB675EE" xml:lang="en"><title>tcharexample:
-TChar example</title><shortdesc>This example application demonstrates how to use <codeph>TChar</codeph>, <codeph>TCharF</codeph>, <codeph>TCharLC</codeph> and <codeph>TCharUC</codeph> classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-5EC052E8-4E6E-4F84-8F20-46C70AA6B637"> </section>
-<section id="GUID-7ECA6815-84B4-5BA0-A73F-7E2DEBE2AFFF"><title>Purpose</title> <p> <codeph>TChar</codeph> represents
-a single character. It stores the character's value as a 32-bit unsigned integer
-and it provides various functions to manipulate the character and retrieve
-its properties. </p> <p>TChar and its derived classes can be used to represent
-Unicode values outside plane <b>0</b> (that is, Unicode values within the
-extended Unicode range from <codeph>0x10000</codeph> to <codeph>0xFFFFF</codeph>).
-This differentiates them from the related class <codeph>TText</codeph>, which
-can only be used for 16-bit Unicode character values. </p> </section>
-<section id="GUID-3615DBD7-5EEA-4548-A7A8-F183E3EF3977"><title>Class summary</title><ul>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita"><apiname>TChar</apiname></xref> - Holds a character value and provides a number
-of utility functions to manipulate it and test its properties.</p></li>
-<li><p><xref href="GUID-02D39887-4F76-3C42-B9B0-61E7AB8553C3.dita"><apiname>TCharF</apiname></xref> - Folds a specified character and provides
-functions to fold additional characters after construction of the object.</p></li>
-<li><p><xref href="GUID-08D4F858-475F-3391-B2BD-2F0DAE88298A.dita"><apiname>TCharLC</apiname></xref> - Converts a specified character to lower
-case and provides functions to convert additional characters after construction
-of the object.</p></li>
-<li><p><xref href="GUID-43BDE741-3C5B-388D-BF6B-851475FB9EAE.dita"><apiname>TCharUC</apiname></xref> - Converts a specified character to upper
-case and provides functions to convert additional characters after construction
-of the object.</p></li>
-</ul></section>
-<section id="GUID-A7AA11C2-9F69-4C1F-B078-789A34B78A37"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-53527143-a65f-4fee-857a-6045a2c53370.zip" scope="external">tcharexample.zip</xref>.</p><p>click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-53527143-a65f-4fee-857a-6045a2c53370.html" scope="peer">browse</xref> to view the example code.</p> </section>
-<section id="GUID-6F406325-07F5-59FC-845C-F248DF0DCB3A"><title>Design and
-implementation</title> <p><b>Using TChar </b> </p> <p>The example retrieves
-information about a character using: </p> <ul>
-<li id="GUID-FEED5E65-C2E9-5F95-95A5-8AE6AACC6FAC"><p>various <codeph>Is...()</codeph> functions,
-for instance its case (e.g. <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-41EB7098-6282-3C9C-9C19-1DEA3C53E8F4"><apiname>TChar::IsLower()</apiname></xref>), whether
-it is alphabetic (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-E166314C-A8BE-32B7-A4E6-95987A5CDB76"><apiname>TChar::IsAlpha()</apiname></xref>), a decimal digit (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-1AFEF873-6968-34A5-A7DF-4E303B56FC3E"><apiname>TChar::IsDigit()</apiname></xref>),
-and whether it is printable (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-A3E01D65-C348-347A-8EBA-242C9B532B3A"><apiname>TChar::IsPrint()</apiname></xref>). </p> </li>
-<li id="GUID-82028A1F-A5BC-5337-9D7A-90A9BBE35291"><p>various <codeph>Get...()</codeph> functions,
-for instance its upper, lower and title case versions, e.g. (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-D51385D5-977F-313C-966D-8015400D476F"><apiname>TChar::GetUpperCase()</apiname></xref>),
-and the character width for Chinese, Japanese and Korean characters (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-8BD67CC9-6BCE-348B-B46A-AD2DF71CD4F5"><apiname>TChar::GetCjkWidth()</apiname></xref>). </p> </li>
-<li id="GUID-6AFA657D-3CA9-5129-A359-38A9F4D377CE"><p>the <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-AF251970-9134-3F62-99E1-05A853286113"><apiname>TChar::TCharInfo</apiname></xref> struct.
-This struct holds most of the information about the character, including its
-Unicode category, and is populated by calling <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-0290D155-32E2-3240-A8E4-F31CD117BF9A"><apiname>TChar::GetInfo()</apiname></xref>. </p> </li>
-</ul> <p><b>Using TCharF, TCharLC and TCharUC </b> </p><p>Related APIs</p><ul>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-8BD67CC9-6BCE-348B-B46A-AD2DF71CD4F5"><apiname>TChar::GetCjkWidth()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-0290D155-32E2-3240-A8E4-F31CD117BF9A"><apiname>TChar::GetInfo()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-D51385D5-977F-313C-966D-8015400D476F"><apiname>TChar::GetUpperCase()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-E166314C-A8BE-32B7-A4E6-95987A5CDB76"><apiname>TChar::IsAlpha()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-1AFEF873-6968-34A5-A7DF-4E303B56FC3E"><apiname>TChar::IsDigit()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-41EB7098-6282-3C9C-9C19-1DEA3C53E8F4"><apiname>TChar::IsLower()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-A3E01D65-C348-347A-8EBA-242C9B532B3A"><apiname>TChar::IsPrint()</apiname></xref></p></li>
-<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-AF251970-9134-3F62-99E1-05A853286113"><apiname>TChar::TCharInfo</apiname></xref> - A structure to hold information
-about a Unicode character.</p></li>
-</ul> <p> <xref href="GUID-02D39887-4F76-3C42-B9B0-61E7AB8553C3.dita"><apiname>TCharF</apiname></xref> represents a folded character. The example
-demonstrates how folding a character removes case and accent distinctions. </p> <p>The
-example also demonstrates converting characters between lower and upper case
-using <xref href="GUID-08D4F858-475F-3391-B2BD-2F0DAE88298A.dita"><apiname>TCharLC</apiname></xref> and <xref href="GUID-43BDE741-3C5B-388D-BF6B-851475FB9EAE.dita"><apiname>TCharUC</apiname></xref>. </p></section>
-<section id="GUID-5D7398C3-10AA-5A9F-A9EE-CE2C0E5D751F"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-FC094F4A-A486-5539-AFAB-8319BCF9A762"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-FE66EDF9-B29C-5847-828E-6399E633D131"><p>For the emulator, the
-example builds an executable called <filepath>tcharexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-<section id="GUID-98BBBB36-DC53-5EC1-B724-1857E9C27A6F"><title>Running the
-example</title> <p>The example application displays a list of options and
-sub options to the user and takes input from the user. </p> <fig id="GUID-DE40E9EB-B045-551C-84FF-C5C116462DC2">
-<title>              Screenshot for TChar example            </title>
-<image href="GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e259632_href.jpg" placement="inline"/>
-</fig> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-7FCFB114-B186-5615-9134-08612BB675EE" xml:lang="en"><title>tcharexample:
+TChar example</title><shortdesc>This example application demonstrates how to use <codeph>TChar</codeph>, <codeph>TCharF</codeph>, <codeph>TCharLC</codeph> and <codeph>TCharUC</codeph> classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-5EC052E8-4E6E-4F84-8F20-46C70AA6B637"> </section>
+<section id="GUID-7ECA6815-84B4-5BA0-A73F-7E2DEBE2AFFF"><title>Purpose</title> <p> <codeph>TChar</codeph> represents
+a single character. It stores the character's value as a 32-bit unsigned integer
+and it provides various functions to manipulate the character and retrieve
+its properties. </p> <p>TChar and its derived classes can be used to represent
+Unicode values outside plane <b>0</b> (that is, Unicode values within the
+extended Unicode range from <codeph>0x10000</codeph> to <codeph>0xFFFFF</codeph>).
+This differentiates them from the related class <codeph>TText</codeph>, which
+can only be used for 16-bit Unicode character values. </p> </section>
+<section id="GUID-3615DBD7-5EEA-4548-A7A8-F183E3EF3977"><title>Class summary</title><ul>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita"><apiname>TChar</apiname></xref> - Holds a character value and provides a number
+of utility functions to manipulate it and test its properties.</p></li>
+<li><p><xref href="GUID-02D39887-4F76-3C42-B9B0-61E7AB8553C3.dita"><apiname>TCharF</apiname></xref> - Folds a specified character and provides
+functions to fold additional characters after construction of the object.</p></li>
+<li><p><xref href="GUID-08D4F858-475F-3391-B2BD-2F0DAE88298A.dita"><apiname>TCharLC</apiname></xref> - Converts a specified character to lower
+case and provides functions to convert additional characters after construction
+of the object.</p></li>
+<li><p><xref href="GUID-43BDE741-3C5B-388D-BF6B-851475FB9EAE.dita"><apiname>TCharUC</apiname></xref> - Converts a specified character to upper
+case and provides functions to convert additional characters after construction
+of the object.</p></li>
+</ul></section>
+<section id="GUID-A7AA11C2-9F69-4C1F-B078-789A34B78A37"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-53527143-a65f-4fee-857a-6045a2c53370.zip" scope="external">tcharexample.zip</xref>.</p><p>click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-53527143-a65f-4fee-857a-6045a2c53370.html" scope="peer">browse</xref> to view the example code.</p> </section>
+<section id="GUID-6F406325-07F5-59FC-845C-F248DF0DCB3A"><title>Design and
+implementation</title> <p><b>Using TChar </b> </p> <p>The example retrieves
+information about a character using: </p> <ul>
+<li id="GUID-FEED5E65-C2E9-5F95-95A5-8AE6AACC6FAC"><p>various <codeph>Is...()</codeph> functions,
+for instance its case (e.g. <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-41EB7098-6282-3C9C-9C19-1DEA3C53E8F4"><apiname>TChar::IsLower()</apiname></xref>), whether
+it is alphabetic (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-E166314C-A8BE-32B7-A4E6-95987A5CDB76"><apiname>TChar::IsAlpha()</apiname></xref>), a decimal digit (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-1AFEF873-6968-34A5-A7DF-4E303B56FC3E"><apiname>TChar::IsDigit()</apiname></xref>),
+and whether it is printable (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-A3E01D65-C348-347A-8EBA-242C9B532B3A"><apiname>TChar::IsPrint()</apiname></xref>). </p> </li>
+<li id="GUID-82028A1F-A5BC-5337-9D7A-90A9BBE35291"><p>various <codeph>Get...()</codeph> functions,
+for instance its upper, lower and title case versions, e.g. (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-D51385D5-977F-313C-966D-8015400D476F"><apiname>TChar::GetUpperCase()</apiname></xref>),
+and the character width for Chinese, Japanese and Korean characters (<xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-8BD67CC9-6BCE-348B-B46A-AD2DF71CD4F5"><apiname>TChar::GetCjkWidth()</apiname></xref>). </p> </li>
+<li id="GUID-6AFA657D-3CA9-5129-A359-38A9F4D377CE"><p>the <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-AF251970-9134-3F62-99E1-05A853286113"><apiname>TChar::TCharInfo</apiname></xref> struct.
+This struct holds most of the information about the character, including its
+Unicode category, and is populated by calling <xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-0290D155-32E2-3240-A8E4-F31CD117BF9A"><apiname>TChar::GetInfo()</apiname></xref>. </p> </li>
+</ul> <p><b>Using TCharF, TCharLC and TCharUC </b> </p><p>Related APIs</p><ul>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-8BD67CC9-6BCE-348B-B46A-AD2DF71CD4F5"><apiname>TChar::GetCjkWidth()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-0290D155-32E2-3240-A8E4-F31CD117BF9A"><apiname>TChar::GetInfo()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-D51385D5-977F-313C-966D-8015400D476F"><apiname>TChar::GetUpperCase()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-E166314C-A8BE-32B7-A4E6-95987A5CDB76"><apiname>TChar::IsAlpha()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-1AFEF873-6968-34A5-A7DF-4E303B56FC3E"><apiname>TChar::IsDigit()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-41EB7098-6282-3C9C-9C19-1DEA3C53E8F4"><apiname>TChar::IsLower()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-A3E01D65-C348-347A-8EBA-242C9B532B3A"><apiname>TChar::IsPrint()</apiname></xref></p></li>
+<li><p><xref href="GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D.dita#GUID-CDCFA2A5-EA8A-3B39-B90F-77AC41571E2D/GUID-AF251970-9134-3F62-99E1-05A853286113"><apiname>TChar::TCharInfo</apiname></xref> - A structure to hold information
+about a Unicode character.</p></li>
+</ul> <p> <xref href="GUID-02D39887-4F76-3C42-B9B0-61E7AB8553C3.dita"><apiname>TCharF</apiname></xref> represents a folded character. The example
+demonstrates how folding a character removes case and accent distinctions. </p> <p>The
+example also demonstrates converting characters between lower and upper case
+using <xref href="GUID-08D4F858-475F-3391-B2BD-2F0DAE88298A.dita"><apiname>TCharLC</apiname></xref> and <xref href="GUID-43BDE741-3C5B-388D-BF6B-851475FB9EAE.dita"><apiname>TCharUC</apiname></xref>. </p></section>
+<section id="GUID-5D7398C3-10AA-5A9F-A9EE-CE2C0E5D751F"><title>Building and
+configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-FC094F4A-A486-5539-AFAB-8319BCF9A762"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-FE66EDF9-B29C-5847-828E-6399E633D131"><p>For the emulator, the
+example builds an executable called <filepath>tcharexample.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+<section id="GUID-98BBBB36-DC53-5EC1-B724-1857E9C27A6F"><title>Running the
+example</title> <p>The example application displays a list of options and
+sub options to the user and takes input from the user. </p> <fig id="GUID-DE40E9EB-B045-551C-84FF-C5C116462DC2">
+<title>              Screenshot for TChar example            </title>
+<image href="GUID-016704BE-DC2B-5AD3-B9BE-76A327678B38_d0e255924_href.jpg" placement="inline"/>
+</fig> </section>
 </refbody></reference>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-7FD49142-23DC-44FC-BA7D-C11E0559C8CF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-7FD49142-23DC-44FC-BA7D-C11E0559C8CF" xml:lang="en"><title>Opening
+a Connection to a SNAP by specifying SNAP ID</title><shortdesc>Extended Connection Preferences API can be used by applications
+to set the SNAP ID prior to establishing a connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-BC67F7E5-DAC2-4B2D-B9FE-C55CA4DBF845">       <p>Specifying
+SNAP ID enables the applications to start a connection to a specific SNAP.</p> 
+  </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-4-1-1-5-1-1-4-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-4-1-3-2-1"><cmd>Connect to <xref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita"> socket server </xref>.</cmd>
+<info> <codeblock xml:space="preserve">RSocketServ ss;
+ss.Connect();       </codeblock>                  </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-4-1-3-2-2"><cmd> Open a <xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita"> RConnection </xref> object.</cmd>
+<info> <codeblock xml:space="preserve">RConnection conn;
+conn.Open( ss );</codeblock>                 </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-4-1-3-2-3"><cmd>Create a connection
+preference list and extended connection preferences object.</cmd>
+<info> <codeblock xml:space="preserve">TConnPrefList prefList;
+TExtendedConnPref preferences;    </codeblock>                  </info>
+</step>
+<step id="GUID-0638ECC7-4D10-48EB-A0E3-45225761DDD4"><cmd>Set the SNAP ID
+using <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita#GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A/GUID-A7AD4DBA-35C6-3743-BC88-BE19ABC93036"><apiname>TExtendedConnPref::SetSnapId()</apiname></xref>.</cmd>
+<info><codeblock xml:space="preserve">preference.SetSnapId( 4 );</codeblock></info>
+</step>
+<step id="GUID-71C73AC8-81AD-4D13-889A-84FB3E99618F"><cmd>Append the extended
+connection preferences to connection preference list. </cmd>
+<info><codeblock xml:space="preserve">prefList.AppendL( &amp;preferences );</codeblock></info>
+</step>
+<step id="GUID-EF50B49C-E10A-427A-8BA4-C0ABDDF4DCC4"><cmd>	Start a connection
+with connection preferences.</cmd>
+<info><codeblock xml:space="preserve">conn.Start( prefList );</codeblock></info>
+</step>
+</steps>
+<result id="GUID-1917764D-20B0-4FEE-B10B-62902CC90287">       <p>The application
+is connected to the specified SNAP ID.</p>     </result>
+</taskbody><related-links>
+<link href="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita"><linktext>Additional
+Connection Preferences</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402303_href.png has changed
Binary file Symbian3/SDK/Source/GUID-803D895B-E22F-5ADE-9BA6-F2EB20856541_d0e402465_href.png has changed
--- a/Symbian3/SDK/Source/GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09"><title>Video Subtitle CRP Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Video Subtitle CRP component. </p> <section><title>Purpose</title> <p>The Video Subtitle CRP component is used for displaying subtitles artwork on a video window. </p> </section> <section id="GUID-845818F1-02CA-59FE-85F8-22623880759D"><title>Architectural relationship</title> <p>Video Subtitle CRP interacts with WServ Process; and Client Process interacts with Controller Process by a client thread and controller thread respectively. </p> <p>CRP is a plug-in framework provided by Window Server (WServ). WServ is the server side process which allows the artwork providers to render content to the application window within the WServ process. </p> <p>Client Process is the client side implementation of subtitle support using <xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref> class. </p> <p>Control Process contains Video Player Controller and Subtitle Decoder and Render to process the subtitle artwork on a video window. </p> <p>For information about Video Client API see <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> and for Multimedia Framework see <xref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita">Multimedia Framework Overview</xref>  </p> <p>The architectural relationship between WServ Process, Client Process and Controller Process is shown below: </p> <fig id="GUID-550B6EDC-B969-562B-BB98-313E0DC0242A"><image href="GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e326732_href.png" placement="inline"/></fig> </section> <section><title>Library summary</title> <p>The Video Subtitle CRP component consists of the following libraries: </p> <table id="GUID-28FB9055-5B69-5EFD-9479-0E93A86CE3CD"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Library</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-37F816DA-767F-30D1-B66E-177F7C40716B.dita"><apiname>subtitlegraphic.dll</apiname></xref>  </p> </entry> <entry><p>The Subtitle Graphic library is used to add subtitle CRP for MMF. For more information, see <xref href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita">Subtitle Graphic Overview</xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Video Subtitle CRP Component is used to add subtitle for a video. </p> </section> </conbody><related-links><link href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita"><linktext>Subtitle Graphic Overview</linktext> </link> <link href="GUID-354240A8-2DDD-5181-9A36-9A054D239B62.dita"><linktext>Video Subtitle CRP Support From
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09"><title>Video Subtitle CRP Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Video Subtitle CRP component. </p> <section><title>Purpose</title> <p>The Video Subtitle CRP component is used for displaying subtitles artwork on a video window. </p> </section> <section id="GUID-845818F1-02CA-59FE-85F8-22623880759D"><title>Architectural relationship</title> <p>Video Subtitle CRP interacts with WServ Process; and Client Process interacts with Controller Process by a client thread and controller thread respectively. </p> <p>CRP is a plug-in framework provided by Window Server (WServ). WServ is the server side process which allows the artwork providers to render content to the application window within the WServ process. </p> <p>Client Process is the client side implementation of subtitle support using <xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref> class. </p> <p>Control Process contains Video Player Controller and Subtitle Decoder and Render to process the subtitle artwork on a video window. </p> <p>For information about Video Client API see <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> and for Multimedia Framework see <xref href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita">Multimedia Framework Overview</xref>  </p> <p>The architectural relationship between WServ Process, Client Process and Controller Process is shown below: </p> <fig id="GUID-550B6EDC-B969-562B-BB98-313E0DC0242A"><image href="GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e320575_href.png" placement="inline"/></fig> </section> <section><title>Library summary</title> <p>The Video Subtitle CRP component consists of the following libraries: </p> <table id="GUID-28FB9055-5B69-5EFD-9479-0E93A86CE3CD"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Library</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-37F816DA-767F-30D1-B66E-177F7C40716B.dita"><apiname>subtitlegraphic.dll</apiname></xref>  </p> </entry> <entry><p>The Subtitle Graphic library is used to add subtitle CRP for MMF. For more information, see <xref href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita">Subtitle Graphic Overview</xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Video Subtitle CRP Component is used to add subtitle for a video. </p> </section> </conbody><related-links><link href="GUID-A9803A57-BB43-53F3-97BA-3B5E91D925F0.dita"><linktext>Subtitle Graphic Overview</linktext> </link> <link href="GUID-354240A8-2DDD-5181-9A36-9A054D239B62.dita"><linktext>Video Subtitle CRP Support From
                 MMF</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,136 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D"><title>Onboard Camera Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Onboard Ecam API. </p> <section><title>Purpose</title> <p>The Onboard Camera provides functionality to control a digital camera and to request and receive specific image data from it. Still or video images may be captured. A camera may be controlled with its output media going into a non-Symbian platform sink (for example, into hardware), or it may be controlled with output going into the Symbian platform. </p> <p>The API defines basic common operations, but is also extensible to allow for proprietary properties. </p> <p><b>Onboard Ecam API Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-5DF138D2-3ADC-5BCD-ADCD-D04240B33DC9"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-37F3C935-D1DB-3993-B3E0-A56991462D77.dita"><apiname>ecam.dll</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-B4E2E996-CFBE-3156-B02D-D0F2F634B3C7.dita"><apiname>ecam.lib</apiname></xref>  </p> </entry> <entry><p>These files are used for implementing the Onboard Camera functions. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>The Onboard Camera provides images to clients. A client may be an application with image requirements, or the Multimedia Framework. Clients have specific priorities and may pre-empt others in their interactions with the camera. </p> <p>Licensees and partners implement the camera functionality for the camera hardware on their phone. All cameras are ECom plug-ins sub-classed from the <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class. </p> <p>When a new camera object is required, the ECam library requests a camera plug-in from the ECom framework. When more than one ROM based plug-ins have been registered on the platform, the one with the highest version defined in its resource file is selected. </p> </section> <section><title>Description</title> <p>Client Applications can use the onboard camera function for a number of tasks, including: </p> <p>Controlling camera power, using the view finder, making basic camera image settings, capturing a still image, capturing video, making advanced settings, getting snapshots, getting image histograms, using image overlays, using preset camera settings, image processing on the camera. </p> </section> <section id="GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB"><title>Key Onboard Ecam API Classes</title> <p>The key classes that make up the Onboard Camera are as follows: </p> <ul><li id="GUID-7D8751E9-C2B3-50DA-9B1C-6AC29FF592FA"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref>  </p> <p>It provides the base class for camera devices. This is the interface that the client application uses to communicate with the camera. It provides all the functions necessary to control, and acquire images from, the camera. </p> </li> <li id="GUID-F8732ED8-D86C-591C-93FF-89BF4386FCE9"><p> <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref>  </p> <p>It is an observer class which permits access to picture data as descriptors, bitmaps or chunks. It defines an event-handling interface that is called when events are generated from use of the camera functions, or from external sources such as the camera being plugged or unplugged. </p> <p> <xref href="GUID-F2DC0AB8-A896-3F7A-BBED-848A3F463853.dita"><apiname>MCameraObserver</apiname></xref> is an earlier version of this callback interface. </p> </li> <li id="GUID-DB8CCF2A-54DA-565E-8CD4-DEE608AAB1CA"><p> <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref>  </p> <p>It provides information about the camera. This includes: the version number and name of camera hardware, camera orientation, whether the camera supports still image capture and so on. </p> </li> <li id="GUID-4A214B79-32AD-5BBC-AD34-084A9C960F50"><p> <xref href="GUID-7F66BE6C-9998-3F16-AD55-F6FDF6CB351F.dita"><apiname>MCameraBuffer</apiname></xref>  </p> <p>It is the buffer class used by <codeph>MCameraObserver2</codeph> to pass back view finder data, images and video frames. It enables the client to choose in which way it accesses the picture data (descriptor, bitmap or kernel chunk). </p> </li> <li id="GUID-C76A2F13-FC4F-5ABA-A818-B6031F4FB116"><p> <xref href="GUID-2773C25B-19DF-38B0-84F7-CABC89F43DD2.dita"><apiname>TECAMEvent</apiname></xref>  </p> <p>It is a simple event class containing a UID to identify the event and a status code. It is passed to <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref> as functional argument using <xref href="GUID-08E0AF71-E21B-30FC-88AA-E822A40F61F5.dita"><apiname>HandleEvent</apiname></xref> method, when a request is completed. The request is complete, if a control of the camera switches, camera hardware settings changes, or due to external events such as the camera being plugged in. </p> <p>Use a derived version of <codeph>TECAMEvent</codeph> and <codeph>TECAMEvent2</codeph> to pass additional information required by extended API to the API client along with the error event code. </p> </li> <li id="GUID-F1E7A83E-6382-51FC-8E19-9F66CB1844CD"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>  </p> <p>It provides domain specific get and set methods for well known camera hardware settings that relate directly to the image acquisition phase for both still images and video. </p> </li> <li id="GUID-A8284E63-1463-547D-9FB1-F2C9AA9FBA01"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-6750F61A-455B-371E-893B-090350DCB704"><apiname>CCamera::CCameraPresets</apiname></xref>  </p> <p>It associates a single command with setting of several camera parameters to specific values (and ranges). The class allows clients without knowledge of the camera specifics to achieve comparable results for different cameras. </p> </li> <li id="GUID-135AC315-B294-5587-B71C-379D0CBF4547"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6"><apiname>CCamera::CCameraImageProcessing </apiname></xref>  </p> <p>It is used to perform image processing operations on still images, video, viewfinder (both client and direct). These include brightness, contrast, gamma, hue, sharpness and saturation adjustments on the camera. The client is also able to perform simple image transformations like cropping, rotation, mirroring, scaling, noise reduction and glare reduction. </p> </li> <li id="GUID-15E61113-8CE9-527B-A52C-B3A180B9960D"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-5CF1EE7D-EAED-39F7-AF9D-73DD813B64F9"><apiname> CCamera::CCameraOverlay</apiname></xref>  </p> <p>It allows the client to overlay an image onto the view finder, snapshots, still images, and video. </p> </li> <li id="GUID-B8569488-6C25-5304-9A9E-8AAC964BCB06"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4E270B4A-074C-3531-9789-123C8AE899F0"><apiname>CCamera::CCameraHistogram</apiname></xref> allows the client to get histogram data (<xref href="GUID-5064D139-1B97-394C-8C7D-417F72444F75.dita"><apiname>MHistogramBuffer</apiname></xref>) in a specified format for an image, such as a luminance-based, or average colour value histogram. </p> <p>This class is deprecated, so use<xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E159F066-0157-34B4-B154-38D120EAB16C"><apiname>CCamera::CCameraV2Histogram</apiname></xref> class. </p> </li> <li id="GUID-7DAA023E-D0A5-598D-B97F-9C706A8D44DD"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7DB06650-199E-3B00-A19A-1B48D671E46E"><apiname> CCamera::CCameraSnapshot</apiname></xref>  </p> <p>It allows the client to request snapshot data in a specified image format for both still images and video. Snapshot object can be created specifically for still images and video APIs. </p> </li> <li id="GUID-B25BB7CA-8FDC-5344-BCDB-9C2018248B67"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-144A45FA-EADE-3036-B013-821F65142C82"><apiname>CCamera::CCameraDirectViewFinder</apiname></xref> used for those viewfinders that use only viewfinder APIs of Ccamera. It provides support for Direct View Finder functionalities, such as pause and resume. see also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder API Overview</xref>. </p> </li> <li id="GUID-F2BE13B7-5ADB-5E16-B2D3-CFB88A72068F"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4618B02E-CD2E-3DEA-979F-4C55AE3D45EC"><apiname> CCamera::CCameraClientViewFinder</apiname></xref>  </p> <p>It provides support for multiple client View Finder. </p> </li> <li id="GUID-44C02BC0-02AE-5EDA-82FC-1F1DE23210B3"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58"><apiname> CCamera::CCameraPreImageCaptureControl</apiname></xref>  </p> <p>It allows to control image operations or its settings prior to image capture. </p> </li> <li id="GUID-65E481B6-DEEC-57DD-98EC-A7D8433D5DEF"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4"><apiname>CCamera::CCameraImageCapture</apiname></xref>  </p> <p>It captures the image and controls the overall capture. </p> </li> <li id="GUID-9A6713D4-C284-545E-BD40-9269DBD2C573"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C607DA37-D386-3291-A9C5-AD0E302607D3"><apiname> CCamera::CCameraPostImageCaptureControl</apiname></xref>  </p> <p>It retrieves the image data from individual images and also controls the captured images individually. </p> </li> <li id="GUID-FBBF3E1B-D511-5AFB-8AE5-E996AD7CC4FC"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460"><apiname>CCamera::CCameraVideoCaptureControl</apiname></xref>  </p> <p>It controls the operations related to video capture. </p> </li> </ul> <p>The class diagram of CCamera is shown below: </p> <fig id="GUID-E2F73C42-38F9-5EE1-B5EB-C255B42E0621"><image href="GUID-C1A6477D-2130-5664-A845-898212F96381_d0e295005_href.png" placement="inline"/></fig> </section> <section><title>Using Onboard Ecam API</title> <p>The clients can use CCamera function to control and acquire image data from the camera. </p> </section> <section><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Camera Framework Overview</xref>  </p> <p><xref href="GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita">Camera Tutorial</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D" xml:lang="en"><title>Onboard
+Camera Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces you to the Onboard Ecam API. </p>
+<section id="GUID-09FDE5EA-AF80-4129-913F-C1DA9D82E73E"><title>Purpose</title> <p>The Onboard Camera provides functionality
+to control a digital camera and to request and receive specific image data
+from it. Still or video images may be captured. A camera may be controlled
+with its output media going into a non-Symbian platform sink (for example,
+into hardware), or it may be controlled with output going into the Symbian
+platform. </p> <p>The API defines basic common operations, but is also extensible
+to allow for proprietary properties. </p> <p><b>Onboard
+Ecam API Library Details</b> </p> <p>The DLL that provides the functionality
+and the library to which your code must link is identified below. </p> <table id="GUID-5DF138D2-3ADC-5BCD-ADCD-D04240B33DC9">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-37F3C935-D1DB-3993-B3E0-A56991462D77.dita"><apiname>ecam.dll</apiname></xref>  </p> </entry>
+<entry><p> <xref href="GUID-B4E2E996-CFBE-3156-B02D-D0F2F634B3C7.dita"><apiname>ecam.lib</apiname></xref>  </p> </entry>
+<entry><p>These files are used for implementing the Onboard Camera functions. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-7ECFC164-8751-4DBE-93E2-9B0CF275CBB0"><title>Architectural Relationship</title> <p>The Onboard Camera provides
+images to clients. A client may be an application with image requirements,
+or the Multimedia Framework. Clients have specific priorities and may pre-empt
+others in their interactions with the camera. </p> <p>Licensees and partners
+implement the camera functionality for the camera hardware on their phone.
+All cameras are ECom plug-ins sub-classed from the <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class. </p> <p>When
+a new camera object is required, the ECam library requests a camera plug-in
+from the ECom framework. When more than one ROM based plug-ins have been registered
+on the platform, the one with the highest version defined in its resource
+file is selected. </p> </section>
+<section id="GUID-22512109-39BA-4E88-B615-609A60A5F199"><title>Description</title> <p>Client Applications can use the onboard
+camera function for a number of tasks, including: </p> <p>Controlling camera
+power, using the view finder, making basic camera image settings, capturing
+a still image, capturing video, making advanced settings, getting snapshots,
+getting image histograms, using image overlays, using preset camera settings,
+image processing on the camera. </p> </section>
+<section id="GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB"><title>Key Onboard
+Ecam API Classes</title> <p>The key classes that make up the Onboard Camera
+are as follows: </p> <ul>
+<li id="GUID-7D8751E9-C2B3-50DA-9B1C-6AC29FF592FA"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref>  </p> <p>It
+provides the base class for camera devices. This is the interface that the
+client application uses to communicate with the camera. It provides all the
+functions necessary to control, and acquire images from, the camera. </p> </li>
+<li id="GUID-F8732ED8-D86C-591C-93FF-89BF4386FCE9"><p> <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref>  </p> <p>It
+is an observer class which permits access to picture data as descriptors,
+bitmaps or chunks. It defines an event-handling interface that is called when
+events are generated from use of the camera functions, or from external sources
+such as the camera being plugged or unplugged. </p> <p> <xref href="GUID-F2DC0AB8-A896-3F7A-BBED-848A3F463853.dita"><apiname>MCameraObserver</apiname></xref> is
+an earlier version of this callback interface. </p> </li>
+<li id="GUID-DB8CCF2A-54DA-565E-8CD4-DEE608AAB1CA"><p> <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref>  </p> <p>It
+provides information about the camera. This includes: the version number and
+name of camera hardware, camera orientation, whether the camera supports still
+image capture and so on. </p> </li>
+<li id="GUID-4A214B79-32AD-5BBC-AD34-084A9C960F50"><p> <xref href="GUID-7F66BE6C-9998-3F16-AD55-F6FDF6CB351F.dita"><apiname>MCameraBuffer</apiname></xref>  </p> <p>It
+is the buffer class used by <codeph>MCameraObserver2</codeph> to pass back
+view finder data, images and video frames. It enables the client to choose
+in which way it accesses the picture data (descriptor, bitmap or kernel chunk). </p> </li>
+<li id="GUID-C76A2F13-FC4F-5ABA-A818-B6031F4FB116"><p> <xref href="GUID-2773C25B-19DF-38B0-84F7-CABC89F43DD2.dita"><apiname>TECAMEvent</apiname></xref>  </p> <p>It
+is a simple event class containing a UID to identify the event and a status
+code. It is passed to <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref> as functional argument
+using <xref href="GUID-08E0AF71-E21B-30FC-88AA-E822A40F61F5.dita"><apiname>HandleEvent</apiname></xref> method, when a request is completed.
+The request is complete, if a control of the camera switches, camera hardware
+settings changes, or due to external events such as the camera being plugged
+in. </p> <p>Use a derived version of <codeph>TECAMEvent</codeph> and <codeph>TECAMEvent2</codeph> to
+pass additional information required by extended API to the API client along
+with the error event code. </p> </li>
+<li id="GUID-F1E7A83E-6382-51FC-8E19-9F66CB1844CD"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>  </p> <p>It
+provides domain specific get and set methods for well known camera hardware
+settings that relate directly to the image acquisition phase for both still
+images and video. </p> </li>
+<li id="GUID-A8284E63-1463-547D-9FB1-F2C9AA9FBA01"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-6750F61A-455B-371E-893B-090350DCB704"><apiname>CCamera::CCameraPresets</apiname></xref>  </p> <p>It
+associates a single command with setting of several camera parameters to specific
+values (and ranges). The class allows clients without knowledge of the camera
+specifics to achieve comparable results for different cameras. </p> </li>
+<li id="GUID-135AC315-B294-5587-B71C-379D0CBF4547"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6"><apiname>CCamera::CCameraImageProcessing </apiname></xref>  </p> <p>It
+is used to perform image processing operations on still images, video, viewfinder
+(both client and direct). These include brightness, contrast, gamma, hue,
+sharpness and saturation adjustments on the camera. The client is also able
+to perform simple image transformations like cropping, rotation, mirroring,
+scaling, noise reduction and glare reduction. </p> </li>
+<li id="GUID-15E61113-8CE9-527B-A52C-B3A180B9960D"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-5CF1EE7D-EAED-39F7-AF9D-73DD813B64F9"><apiname> CCamera::CCameraOverlay</apiname></xref>  </p> <p>It
+allows the client to overlay an image onto the view finder, snapshots, still
+images, and video. </p> </li>
+<li id="GUID-B8569488-6C25-5304-9A9E-8AAC964BCB06"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4E270B4A-074C-3531-9789-123C8AE899F0"><apiname>CCamera::CCameraHistogram</apiname></xref> allows
+the client to get histogram data (<xref href="GUID-5064D139-1B97-394C-8C7D-417F72444F75.dita"><apiname>MHistogramBuffer</apiname></xref>) in
+a specified format for an image, such as a luminance-based, or average colour
+value histogram. </p> <p>This class is deprecated, so use<xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E159F066-0157-34B4-B154-38D120EAB16C"><apiname>CCamera::CCameraV2Histogram</apiname></xref> class. </p> </li>
+<li id="GUID-7DAA023E-D0A5-598D-B97F-9C706A8D44DD"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7DB06650-199E-3B00-A19A-1B48D671E46E"><apiname> CCamera::CCameraSnapshot</apiname></xref>  </p> <p>It
+allows the client to request snapshot data in a specified image format for
+both still images and video. Snapshot object can be created specifically for
+still images and video APIs. </p> </li>
+<li id="GUID-B25BB7CA-8FDC-5344-BCDB-9C2018248B67"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-144A45FA-EADE-3036-B013-821F65142C82"><apiname>CCamera::CCameraDirectViewFinder</apiname></xref> used
+for those viewfinders that use only viewfinder APIs of Ccamera. It provides
+support for Direct View Finder functionalities, such as pause and resume.
+see also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder
+API Overview</xref>. </p> </li>
+<li id="GUID-F2BE13B7-5ADB-5E16-B2D3-CFB88A72068F"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4618B02E-CD2E-3DEA-979F-4C55AE3D45EC"><apiname> CCamera::CCameraClientViewFinder</apiname></xref>  </p> <p>It
+provides support for multiple client View Finder. </p> </li>
+<li id="GUID-44C02BC0-02AE-5EDA-82FC-1F1DE23210B3"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58"><apiname> CCamera::CCameraPreImageCaptureControl</apiname></xref>  </p> <p>It
+allows to control image operations or its settings prior to image capture. </p> </li>
+<li id="GUID-65E481B6-DEEC-57DD-98EC-A7D8433D5DEF"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4"><apiname>CCamera::CCameraImageCapture</apiname></xref>  </p> <p>It
+captures the image and controls the overall capture. </p> </li>
+<li id="GUID-9A6713D4-C284-545E-BD40-9269DBD2C573"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C607DA37-D386-3291-A9C5-AD0E302607D3"><apiname> CCamera::CCameraPostImageCaptureControl</apiname></xref>  </p> <p>It
+retrieves the image data from individual images and also controls the captured
+images individually. </p> </li>
+<li id="GUID-FBBF3E1B-D511-5AFB-8AE5-E996AD7CC4FC"><p> <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460"><apiname>CCamera::CCameraVideoCaptureControl</apiname></xref>  </p> <p>It
+controls the operations related to video capture. </p> </li>
+</ul> <p>The class diagram of CCamera is shown below: </p> <fig id="GUID-E2F73C42-38F9-5EE1-B5EB-C255B42E0621">
+<image href="GUID-C1A6477D-2130-5664-A845-898212F96381_d0e290246_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-29660557-F0B3-4400-A482-CEEE36A7B3F4"><title>Using Onboard Ecam API</title> <p>The clients can use CCamera
+function to control and acquire image data from the camera. </p> </section>
+<section id="GUID-16BFDFCF-2805-402D-911B-A1A81A8BF50C"><title>See also</title> <p><xref href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita">Camera
+Framework Overview</xref>  </p> <p><xref href="GUID-55A1A47A-A7DD-5B1A-88E1-4818CB65B782.dita">Camera
+Tutorials</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017" xml:lang="en"><title>Handle-numbers</title><shortdesc>This document describes the use of handle-numbers to identify handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A handle is a way in which a thread or process can identify an object that
-is owned or managed by another thread or process. Such objects are Kernel
-side objects.</p>
-<p>A handle uses a number, the handle-number, to identify the associated Kernel
-side object. The handle, an instance of a <codeph>RHandleBase</codeph> derived
-class, encapsulates the handle-number.</p>
-<p>The objects referred to by handles are always instances of <codeph>CObject</codeph> derived
-classes, i.e. they are reference counting objects. The handle-number is created
-when the object is created (or opened, if the object already exists) and added
-to an object index.</p>
-<p>Typically, calling <codeph>Open()</codeph> or <codeph>Create()</codeph> or
-a similarly named function on an <codeph>RHandleBase</codeph>  <i>derived</i> class
-causes the associated object to be created or opened and added to an object
-index, owned either by the thread or the process. Adding the object to the
-object index creates a handle-number and this is returned to, and encapsulated
-by, the handle.</p>
-<p>For example, <codeph>RMutex</codeph> is the handle for a mutex; all user
-side interaction with a specific mutex is directed through an instance of <codeph>RMutex</codeph>.
-The <codeph>RMutex</codeph> object exists on the user side; the corresponding
-mutex (a DMutex object) exists on the Kernel side.</p>
-<fig id="GUID-86253ED0-C374-52C5-BF3E-463D09A3ECD3">
-<image href="GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e234220_href.png" placement="inline"/>
-</fig>
-<p>Here, code running on the user side constructs an <codeph>RMutex</codeph> and
-calls its <codeph>Create()</codeph> member function. This causes the Kernel
-to:</p>
-<ul>
-<li id="GUID-69E652C5-BC3E-5C2C-95DE-8F0BC5DF6C13"><p>construct the corresponding
-Kernel object, a <codeph>DMutex</codeph> </p> </li>
-<li id="GUID-CA86B942-A4CA-5E9E-BA36-2E581C01C646"><p>add the <codeph>DMutex</codeph> to
-the current thread's object index (a <codeph>CObjectIx</codeph>)</p> </li>
-<li id="GUID-6BD33635-074D-59CB-BB7E-1AF6F0290481"><p>return the handle-number
-to the RMutex.</p> </li>
-</ul>
-<codeblock id="GUID-96432516-6FC7-584C-843D-17D0E07956CB" xml:space="preserve">...
-RMutex m;
-m.Create();
-...</codeblock>
-<p>See also:</p>
-<ul>
-<li id="GUID-B218DFCC-054D-53ED-9C36-9947C1BC2895"><p><xref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita">The
-object index</xref> </p> <p><xref href="GUID-8C4EB8E0-78F0-553D-91AE-EC070A47B0EE.dita">The
-handle-number and the object index</xref> </p> <p><xref href="GUID-A52E8853-9A8A-5B66-A2B0-F943B32AA5C6.dita">Reference
-counting objects</xref> </p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-80F2A7AC-6E86-54F2-96F0-4417A2AEA017" xml:lang="en"><title>Handle-numbers</title><shortdesc>This document describes the use of handle-numbers to identify handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A handle is a way in which a thread or process can identify an object that
+is owned or managed by another thread or process. Such objects are Kernel
+side objects.</p>
+<p>A handle uses a number, the handle-number, to identify the associated Kernel
+side object. The handle, an instance of a <codeph>RHandleBase</codeph> derived
+class, encapsulates the handle-number.</p>
+<p>The objects referred to by handles are always instances of <codeph>CObject</codeph> derived
+classes, i.e. they are reference counting objects. The handle-number is created
+when the object is created (or opened, if the object already exists) and added
+to an object index.</p>
+<p>Typically, calling <codeph>Open()</codeph> or <codeph>Create()</codeph> or
+a similarly named function on an <codeph>RHandleBase</codeph>  <i>derived</i> class
+causes the associated object to be created or opened and added to an object
+index, owned either by the thread or the process. Adding the object to the
+object index creates a handle-number and this is returned to, and encapsulated
+by, the handle.</p>
+<p>For example, <codeph>RMutex</codeph> is the handle for a mutex; all user
+side interaction with a specific mutex is directed through an instance of <codeph>RMutex</codeph>.
+The <codeph>RMutex</codeph> object exists on the user side; the corresponding
+mutex (a DMutex object) exists on the Kernel side.</p>
+<fig id="GUID-86253ED0-C374-52C5-BF3E-463D09A3ECD3">
+<image href="GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e230483_href.png" placement="inline"/>
+</fig>
+<p>Here, code running on the user side constructs an <codeph>RMutex</codeph> and
+calls its <codeph>Create()</codeph> member function. This causes the Kernel
+to:</p>
+<ul>
+<li id="GUID-69E652C5-BC3E-5C2C-95DE-8F0BC5DF6C13"><p>construct the corresponding
+Kernel object, a <codeph>DMutex</codeph> </p> </li>
+<li id="GUID-CA86B942-A4CA-5E9E-BA36-2E581C01C646"><p>add the <codeph>DMutex</codeph> to
+the current thread's object index (a <codeph>CObjectIx</codeph>)</p> </li>
+<li id="GUID-6BD33635-074D-59CB-BB7E-1AF6F0290481"><p>return the handle-number
+to the RMutex.</p> </li>
+</ul>
+<codeblock id="GUID-96432516-6FC7-584C-843D-17D0E07956CB" xml:space="preserve">...
+RMutex m;
+m.Create();
+...</codeblock>
+<p>See also:</p>
+<ul>
+<li id="GUID-B218DFCC-054D-53ED-9C36-9947C1BC2895"><p><xref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita">The
+object index</xref> </p> <p><xref href="GUID-8C4EB8E0-78F0-553D-91AE-EC070A47B0EE.dita">The
+handle-number and the object index</xref> </p> <p><xref href="GUID-A52E8853-9A8A-5B66-A2B0-F943B32AA5C6.dita">Reference
+counting objects</xref> </p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-80F2DEC8-152F-4681-A9D0-8EB776131313.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-80F2DEC8-152F-4681-A9D0-8EB776131313.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,247 +1,247 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-80F2DEC8-152F-4681-A9D0-8EB776131313" xml:lang="en"><title>String
-Conversions</title><shortdesc>In case the developer is developing applications where P.I.P.S.-based
-functionality is called from a Symbian/S60 application, the need for conversions
-between Symbian descriptors and different string types provided by P.I.P.S.
-is needed. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-1">       <title>Symbian
-descriptors and C strings compared</title>       <p>The main difference between
-Symbian descriptors and C strings is that the Symbian descriptors know how
-many characters are in a data array. A C string does not know its length,
-so when length is needed the NULL character that indicates the end of the
-string has to be scanned.  </p><p>Another difference arises with buffers.
-When C code reserves a buffer from the heap or stack, it has to keep the maximum
-length somewhere. Many C methods that alter the buffer contents do not respect
-the maximum size of the buffer and can override the reserved memory, causing
-unknown behavior. Some methods take the maximum length as a parameter but
-it is difficult to use those types in functions, since a pointer to an array
-and maximum length have to be passed separately. Buffer descriptors can tell
-the maximum length, and all the methods they provide respect the buffer limits.
- </p><p>When using neutral descriptor types there is no need to worry about
-character widths. In a C program, the programmer has to explicitly specify
-which method to use, for example <codeph>strcat</codeph> or <codeph>wcscat</codeph>.</p><p>The
-table below contains a comparison of standard C string functions and Symbian
-counter parts:</p><table id="GUID-0580FD76-A651-4F23-81FF-4460DAF1992E">
-<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<tbody>
-<row>
-<entry><p><b>C function</b></p></entry>
-<entry><p><b>Symbian</b></p></entry>
-<entry><p><b>Description</b></p></entry>
-</row>
-<row>
-<entry><codeph>sprintf, swprintf</codeph></entry>
-<entry><codeph>TDes::Format</codeph></entry>
-<entry><p>Write formatted data to a string.</p></entry>
-</row>
-<row>
-<entry><codeph>strcat, wcscat, strncat, wcsncat </codeph></entry>
-<entry><codeph>TDes::Append</codeph></entry>
-<entry><p>Append a string to another. </p></entry>
-</row>
-<row>
-<entry><codeph>strcmp, strncmp, wcsncmp </codeph></entry>
-<entry><codeph>TDesC::Compare</codeph></entry>
-<entry><p>Compare strings lexicographically. </p></entry>
-</row>
-<row>
-<entry><codeph>strcpy, wcscpy strncpy, wcsncpy </codeph></entry>
-<entry><codeph>TDes::Copy </codeph></entry>
-<entry><p>Copy a string to another. </p></entry>
-</row>
-<row>
-<entry><codeph>strchr, wcschr</codeph></entry>
-<entry><codeph>TDesC::Locate </codeph></entry>
-<entry><p>Find a character in a string. </p></entry>
-</row>
-<row>
-<entry><codeph>strrchr, wcsrchr</codeph></entry>
-<entry><codeph>TDesC:: LocateReverse </codeph></entry>
-<entry><p>Scan the index of the first character from a string that does not
-exist in the alphabet array. </p></entry>
-</row>
-<row>
-<entry><codeph>strspn, wcsspn</codeph></entry>
-<entry><p>None </p></entry>
-<entry><p>Scan index of the first character from string that doesn't exist
-in alphabet array. </p></entry>
-</row>
-<row>
-<entry><codeph>strcspn, wcscspn</codeph></entry>
-<entry><p>None </p></entry>
-<entry><p>Scan the index of the first occurrence of a character in a string
-that belongs to the set of characters. </p></entry>
-</row>
-<row>
-<entry><codeph>strstr, wcsstr</codeph></entry>
-<entry><codeph>TDesC::Find </codeph></entry>
-<entry><p>Find a substring. </p></entry>
-</row>
-<row>
-<entry><codeph>strtok, wcstok</codeph></entry>
-<entry><codeph>TLex::</codeph></entry>
-<entry><p>Find the next token in a string. </p></entry>
-</row>
-<row>
-<entry><codeph>strlen, wcslen</codeph></entry>
-<entry><codeph>TDesC::Length</codeph></entry>
-<entry><p>Get the length of a string. </p></entry>
-</row>
-<row>
-<entry><codeph>strcoll, wcscoll</codeph></entry>
-<entry><codeph>TDesC::CompareC </codeph></entry>
-<entry><p>Compare strings using locale-specific information. </p></entry>
-</row>
-<row>
-<entry><codeph>strftime, wcsftime</codeph></entry>
-<entry><p>Using <codeph>TDes::Format</codeph> and <codeph>TTime </codeph></p></entry>
-<entry><p>Format a time string. </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>     </section>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-2">       <title>How
-to convert <codeph>TBuf16</codeph> to a <codeph>char</codeph> buffer</title> 
-     <p>A <codeph>TBuf16</codeph> buffer can be converted to a <codeph>char</codeph> buffer
-using the <codeph>wcstombs</codeph> API. The example below illustrates how
-the conversion can be done.</p><codeblock xml:space="preserve">#include &lt;e32base.h&gt;
-#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;wchar.h&gt;
-
-#define SIZE 20
-_LIT(KData,"hello");
-  
-int main (void)
-{
-    TBuf16&lt;SIZE&gt; buf(KData);
-    size_t ret;
-    char carray[SIZE];
-   
-    ret = wcstombs(carray, (const wchar_t *)buf.PtrZ(), SIZE );
-    printf("TBuf converted to char buffer : %s\n",carray);
-    getchar();
-    return (1);
-}
-</codeblock>     </section>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-3">       <title>How
-to convert <codeph>TBuf8</codeph> to <codeph>wchar_t</codeph></title>    
-  <p>A <codeph>TBuf8</codeph> buffer can be converted to <codeph>wchar_t</codeph> using
-the <codeph>mbstowcs</codeph> API.</p><codeblock xml:space="preserve">#include &lt;e32base.h&gt;
-#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;wchar.h&gt;
-
-#define SIZE 20
- 
- int main (void)
- {
-     TBuf8&lt;SIZE&gt; buf(_L8("hello"));
-     size_t ret;
-     wchar_t warray[SIZE];
-  
-     ret = mbstowcs(warray, (const char *)buf.PtrZ(), SIZE );
-     printf("TBuf8 converted to wchar buffer : %ls\n",warray);
-     getchar();
-     
-     return (1);
- }
-</codeblock>     </section>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-4">       <title>How
-to convert <codeph>TText16</codeph> to <codeph>char</codeph></title>     
- <p>The <codeph>wcstombs</codeph> API can be used to convert a <codeph>TText16</codeph> buffer
-to a <codeph>char</codeph> buffer. This is one of the examples of converting
-from a Symbian data type to a C data type.</p><codeblock xml:space="preserve">#include &lt;e32def.h&gt;
-#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;wchar.h&gt;
-
-#define SIZE 32
-
-int main (void)
-{
-   TText arr[SIZE] = L"abcdef";
-   char carray[SIZE];
-   size_t ret;
-
-   ret = wcstombs(carray, (const wchar_t *)arr, SIZE);
-   printf("TText converted to char buffer : %s",carray);
-   getchar();
-
-   return (1);
-}
-</codeblock>     </section>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-5">       <title>How
-to convert a <codeph>char</codeph> array and a <codeph>wide char</codeph> array</title> 
-     <p>To use both <codeph>char</codeph> and <codeph>wide char</codeph> pointers
-or array in the program, the user must convert buffers from a <codeph>char</codeph> to
-a <codeph>wide char</codeph> and vice versa. Wide character APIs provide methods
-to: </p><ul>
-<li><p>convert a <codeph>char</codeph> array to a <codeph>wide char</codeph> array</p></li>
-<li><p>convert a <codeph>wide char</codeph> array to a <codeph>char</codeph> array </p></li>
-</ul><p><b>Converting a <codeph>char</codeph> array to a <codeph>wide char</codeph> array</b></p><p>The <codeph>mbstowcs</codeph> API
-can be used to convert a <codeph>char</codeph> array to a <codeph>wide char</codeph> array.</p><codeblock xml:space="preserve">#include &lt;stdlib.h&gt;
-#include &lt;wchar.h&gt;
-
-#define ARRAY_SIZE 32
-
-int main(void)
-{
-   char *carray = "char array";
-   wchar_t warray[ARRAY_SIZE];
-   size_t ret;
-
-   ret = mbstowcs(warray, (const char *)carray, ARRAY_SIZE);
-   wprintf(L"character array contents : %s\n",carray);
-   wprintf(L"wide char array contents : %ls\n",warray);
-   getwchar();
-
-   return (1);
-}
-</codeblock><p><b>Converting a <codeph>wide char</codeph> array to a <codeph>char</codeph> array </b></p><p>The <codeph>wcstombs</codeph> API
-can be used to convert a <codeph>wide char</codeph> array to a <codeph>char</codeph> array. </p><codeblock xml:space="preserve">#include &lt;stdlib.h&gt;
-#include &lt;wchar.h&gt;
-
-#define ARRAY_SIZE 32
-
-int main(void)
-{
-   wchar_t *warray = L"wide array";
-   char carray[ARRAY_SIZE];
-   size_t ret;
-
-   ret = wcstombs(carray, (const wchar_t *)warray, ARRAY_SIZE);
-   wprintf(L"wide char array contents : %ls\n",warray);
-   wprintf(L"character array contents : %s\n",carray);
-   getwchar();
-
-   return (1);
-}
-</codeblock>     </section>
-<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-8-1-11-1-1-5-1-3-1-7-1-10-1-3-6">       <title>How
-to declare a <codeph>wide-char</codeph> string</title>       <p>To declare
-a <codeph>wide-char</codeph> string, prefix the string with 'L'
-[Capital L].  </p><codeblock xml:space="preserve">#include &lt;wchar.h&gt;
-
-int main(void)
-{
-     wchar_t *wptr = L"This is a wide char string";
-  
-     wprintf(L"%ls\n",wptr);
-     getwchar(); 
-}
-</codeblock>     </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-80F2DEC8-152F-4681-A9D0-8EB776131313" xml:lang="en"><title>String
+Conversions</title><shortdesc>In case the developer is developing applications where P.I.P.S.-based
+functionality is called from a Symbian/S60 application, the need for conversions
+between Symbian descriptors and different string types provided by P.I.P.S.
+is needed. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-1">       <title>Symbian
+descriptors and C strings compared</title>       <p>The main difference between
+Symbian descriptors and C strings is that the Symbian descriptors know how
+many characters are in a data array. A C string does not know its length,
+so when length is needed the NULL character that indicates the end of the
+string has to be scanned.  </p><p>Another difference arises with buffers.
+When C code reserves a buffer from the heap or stack, it has to keep the maximum
+length somewhere. Many C methods that alter the buffer contents do not respect
+the maximum size of the buffer and can override the reserved memory, causing
+unknown behavior. Some methods take the maximum length as a parameter but
+it is difficult to use those types in functions, since a pointer to an array
+and maximum length have to be passed separately. Buffer descriptors can tell
+the maximum length, and all the methods they provide respect the buffer limits.
+ </p><p>When using neutral descriptor types there is no need to worry about
+character widths. In a C program, the programmer has to explicitly specify
+which method to use, for example <codeph>strcat</codeph> or <codeph>wcscat</codeph>.</p><p>The
+table below contains a comparison of standard C string functions and Symbian
+counter parts:</p><table id="GUID-0580FD76-A651-4F23-81FF-4460DAF1992E">
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<tbody>
+<row>
+<entry><p><b>C function</b></p></entry>
+<entry><p><b>Symbian</b></p></entry>
+<entry><p><b>Description</b></p></entry>
+</row>
+<row>
+<entry><codeph>sprintf, swprintf</codeph></entry>
+<entry><codeph>TDes::Format</codeph></entry>
+<entry><p>Write formatted data to a string.</p></entry>
+</row>
+<row>
+<entry><codeph>strcat, wcscat, strncat, wcsncat </codeph></entry>
+<entry><codeph>TDes::Append</codeph></entry>
+<entry><p>Append a string to another. </p></entry>
+</row>
+<row>
+<entry><codeph>strcmp, strncmp, wcsncmp </codeph></entry>
+<entry><codeph>TDesC::Compare</codeph></entry>
+<entry><p>Compare strings lexicographically. </p></entry>
+</row>
+<row>
+<entry><codeph>strcpy, wcscpy strncpy, wcsncpy </codeph></entry>
+<entry><codeph>TDes::Copy </codeph></entry>
+<entry><p>Copy a string to another. </p></entry>
+</row>
+<row>
+<entry><codeph>strchr, wcschr</codeph></entry>
+<entry><codeph>TDesC::Locate </codeph></entry>
+<entry><p>Find a character in a string. </p></entry>
+</row>
+<row>
+<entry><codeph>strrchr, wcsrchr</codeph></entry>
+<entry><codeph>TDesC:: LocateReverse </codeph></entry>
+<entry><p>Scan the index of the first character from a string that does not
+exist in the alphabet array. </p></entry>
+</row>
+<row>
+<entry><codeph>strspn, wcsspn</codeph></entry>
+<entry><p>None </p></entry>
+<entry><p>Scan index of the first character from string that doesn't exist
+in alphabet array. </p></entry>
+</row>
+<row>
+<entry><codeph>strcspn, wcscspn</codeph></entry>
+<entry><p>None </p></entry>
+<entry><p>Scan the index of the first occurrence of a character in a string
+that belongs to the set of characters. </p></entry>
+</row>
+<row>
+<entry><codeph>strstr, wcsstr</codeph></entry>
+<entry><codeph>TDesC::Find </codeph></entry>
+<entry><p>Find a substring. </p></entry>
+</row>
+<row>
+<entry><codeph>strtok, wcstok</codeph></entry>
+<entry><codeph>TLex::</codeph></entry>
+<entry><p>Find the next token in a string. </p></entry>
+</row>
+<row>
+<entry><codeph>strlen, wcslen</codeph></entry>
+<entry><codeph>TDesC::Length</codeph></entry>
+<entry><p>Get the length of a string. </p></entry>
+</row>
+<row>
+<entry><codeph>strcoll, wcscoll</codeph></entry>
+<entry><codeph>TDesC::CompareC </codeph></entry>
+<entry><p>Compare strings using locale-specific information. </p></entry>
+</row>
+<row>
+<entry><codeph>strftime, wcsftime</codeph></entry>
+<entry><p>Using <codeph>TDes::Format</codeph> and <codeph>TTime </codeph></p></entry>
+<entry><p>Format a time string. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>     </section>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-2">       <title>How
+to convert <codeph>TBuf16</codeph> to a <codeph>char</codeph> buffer</title> 
+     <p>A <codeph>TBuf16</codeph> buffer can be converted to a <codeph>char</codeph> buffer
+using the <codeph>wcstombs</codeph> API. The example below illustrates how
+the conversion can be done.</p><codeblock xml:space="preserve">#include &lt;e32base.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;wchar.h&gt;
+
+#define SIZE 20
+_LIT(KData,"hello");
+  
+int main (void)
+{
+    TBuf16&lt;SIZE&gt; buf(KData);
+    size_t ret;
+    char carray[SIZE];
+   
+    ret = wcstombs(carray, (const wchar_t *)buf.PtrZ(), SIZE );
+    printf("TBuf converted to char buffer : %s\n",carray);
+    getchar();
+    return (1);
+}
+</codeblock>     </section>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-3">       <title>How
+to convert <codeph>TBuf8</codeph> to <codeph>wchar_t</codeph></title>    
+  <p>A <codeph>TBuf8</codeph> buffer can be converted to <codeph>wchar_t</codeph> using
+the <codeph>mbstowcs</codeph> API.</p><codeblock xml:space="preserve">#include &lt;e32base.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;wchar.h&gt;
+
+#define SIZE 20
+ 
+ int main (void)
+ {
+     TBuf8&lt;SIZE&gt; buf(_L8("hello"));
+     size_t ret;
+     wchar_t warray[SIZE];
+  
+     ret = mbstowcs(warray, (const char *)buf.PtrZ(), SIZE );
+     printf("TBuf8 converted to wchar buffer : %ls\n",warray);
+     getchar();
+     
+     return (1);
+ }
+</codeblock>     </section>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-4">       <title>How
+to convert <codeph>TText16</codeph> to <codeph>char</codeph></title>     
+ <p>The <codeph>wcstombs</codeph> API can be used to convert a <codeph>TText16</codeph> buffer
+to a <codeph>char</codeph> buffer. This is one of the examples of converting
+from a Symbian data type to a C data type.</p><codeblock xml:space="preserve">#include &lt;e32def.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;wchar.h&gt;
+
+#define SIZE 32
+
+int main (void)
+{
+   TText arr[SIZE] = L"abcdef";
+   char carray[SIZE];
+   size_t ret;
+
+   ret = wcstombs(carray, (const wchar_t *)arr, SIZE);
+   printf("TText converted to char buffer : %s",carray);
+   getchar();
+
+   return (1);
+}
+</codeblock>     </section>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-5">       <title>How
+to convert a <codeph>char</codeph> array and a <codeph>wide char</codeph> array</title> 
+     <p>To use both <codeph>char</codeph> and <codeph>wide char</codeph> pointers
+or array in the program, the user must convert buffers from a <codeph>char</codeph> to
+a <codeph>wide char</codeph> and vice versa. Wide character APIs provide methods
+to: </p><ul>
+<li><p>convert a <codeph>char</codeph> array to a <codeph>wide char</codeph> array</p></li>
+<li><p>convert a <codeph>wide char</codeph> array to a <codeph>char</codeph> array </p></li>
+</ul><p><b>Converting a <codeph>char</codeph> array to a <codeph>wide char</codeph> array</b></p><p>The <codeph>mbstowcs</codeph> API
+can be used to convert a <codeph>char</codeph> array to a <codeph>wide char</codeph> array.</p><codeblock xml:space="preserve">#include &lt;stdlib.h&gt;
+#include &lt;wchar.h&gt;
+
+#define ARRAY_SIZE 32
+
+int main(void)
+{
+   char *carray = "char array";
+   wchar_t warray[ARRAY_SIZE];
+   size_t ret;
+
+   ret = mbstowcs(warray, (const char *)carray, ARRAY_SIZE);
+   wprintf(L"character array contents : %s\n",carray);
+   wprintf(L"wide char array contents : %ls\n",warray);
+   getwchar();
+
+   return (1);
+}
+</codeblock><p><b>Converting a <codeph>wide char</codeph> array to a <codeph>char</codeph> array </b></p><p>The <codeph>wcstombs</codeph> API
+can be used to convert a <codeph>wide char</codeph> array to a <codeph>char</codeph> array. </p><codeblock xml:space="preserve">#include &lt;stdlib.h&gt;
+#include &lt;wchar.h&gt;
+
+#define ARRAY_SIZE 32
+
+int main(void)
+{
+   wchar_t *warray = L"wide array";
+   char carray[ARRAY_SIZE];
+   size_t ret;
+
+   ret = wcstombs(carray, (const wchar_t *)warray, ARRAY_SIZE);
+   wprintf(L"wide char array contents : %ls\n",warray);
+   wprintf(L"character array contents : %s\n",carray);
+   getwchar();
+
+   return (1);
+}
+</codeblock>     </section>
+<section id="GUID-A6479BB3-0176-4321-8D33-1465DCCAB049-GENID-1-10-1-11-1-1-5-1-3-1-7-1-10-1-3-6">       <title>How
+to declare a <codeph>wide-char</codeph> string</title>       <p>To declare
+a <codeph>wide-char</codeph> string, prefix the string with 'L'
+[Capital L].  </p><codeblock xml:space="preserve">#include &lt;wchar.h&gt;
+
+int main(void)
+{
+     wchar_t *wptr = L"This is a wide char string";
+  
+     wprintf(L"%ls\n",wptr);
+     getwchar(); 
+}
+</codeblock>     </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e51653_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e57208_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e64462_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e68897_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e69700_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e74040_href.png has changed
Binary file Symbian3/SDK/Source/GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e169014_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e175615_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e216847_href.png has changed
Binary file Symbian3/SDK/Source/GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e220584_href.png has changed
--- a/Symbian3/SDK/Source/GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E" xml:lang="en"><title>Progress
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Progress notes contain a progress graphic of definite duration. They are
-used during operations that take a long time when it is possible to estimate
-the duration of the operation. Whenever possible, the user should be able
-to stop the operation. For this, a softkey labeled e.g. <uicontrol>Cancel</uicontrol> is
-provided.</p>
-<fig id="GUID-12944F1C-48F3-4E80-804B-A585B911F0C8-GENID-1-8-1-6-1-1-5-1-13-1-1-9-1-2-2">
-<title>Progress note</title>
-<image href="GUID-3F69590C-B1FB-4E73-B3D3-FD09C894BC60_d0e65436_href.png" scale="33" placement="inline"/>
-</fig>
-<section id="GUID-D8E36599-D305-4C3B-AB3D-4BF4CF1A70E7"><title>Using
-progress notes in C++ applications</title>      <p>You can create either a
-basic wait note that is displayed only when your application is in the foreground
-or a global note that stays displayed even if the application launching the
-note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
-API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>Progress notes
-are predefined notes that cannot be used just by instantiating a simple note
-class. These notes' lifetime is based on a background process, and client
-code has to provide an interface to retrieve this information. For implementation
-information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.4" scope="peer">Creating a progress note</xref>.</p> <p>To create
-a global progress note, use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalProgressDialog.html" format="application/java-archive"><codeph>CAknGlobalProgressDialog</codeph></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
-notes, you can change the icon or text displayed in the note, use a different
-kind of sound, or change the note duration using the setter methods in the
-class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
-tone, and softkeys using the methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#cee323af0704e07d3f1887a4a13c1639" format="application/java-archive"><codeph>SetGraphic()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#d23699273b28a39c0817bc575be767ab" format="application/java-archive"><codeph>SetAnimation()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#a8748ee0b3342c24a11b8ed0ea9121bc" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#f31895e5838994b1c70300cfd3d7d127" format="application/java-archive"><codeph>SetSoftkeys()</codeph></xref>.</p>     </section>
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E" xml:lang="en"><title>Progress
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Progress notes contain a progress graphic of definite duration. They are
+used during operations that take a long time when it is possible to estimate
+the duration of the operation. Whenever possible, the user should be able
+to stop the operation. For this, a softkey labeled, example, <uicontrol>Cancel</uicontrol> is
+provided.</p>
+<fig id="GUID-560F8557-EDD7-48A4-9068-AF8E028A4721">
+<title>Progress note</title>
+<image href="GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e59705_href.png" placement="inline"/>
+</fig>
+<section id="GUID-D8E36599-D305-4C3B-AB3D-4BF4CF1A70E7"><title>Using
+progress notes in applications</title>      <p>You can create either a basic
+wait note that is displayed only when your application is in the foreground
+or a global note that stays displayed even if the application launching the
+note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
+API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>Progress notes
+are predefined notes that cannot be used just by instantiating a simple note
+class. These notes' lifetime is based on a background process, and client
+code has to provide an interface to retrieve this information. For implementation
+information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.4" scope="peer">Creating a progress note</xref>.</p> <p>To create a global progress
+note, use the class <xref href="GUID-B73E968B-CDF5-3622-BC1D-CBA2161E75F4.dita"><apiname>CAknGlobalProgressDialog</apiname></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the
+class <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref>: <ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul></p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref>: <ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul></p>     </section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e312224_href.png has changed
Binary file Symbian3/SDK/Source/GUID-821FEEDD-81B8-5511-AC4E-B673A96F8CB4_d0e318618_href.png has changed
--- a/Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1" xml:lang="en"><title>Animation
-overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-1FDB9A85-EA5C-4FA9-902C-A2DD7C23EE28-GENID-1-8-1-3-1-1-4-1-3-1-2-1"><title>Purpose</title> <p>The animation component is a framework
-that provides support to build animated graphics applications. It provides
-the basic data types that allow animations to be incorporated into the normal
-drawing of a window from the client, or to be managed on the server as a sprite. </p> </section>
-<section id="GUID-81E07DE3-E680-410C-A22D-809D72E9CD6D-GENID-1-8-1-3-1-1-4-1-3-1-2-2"><title>Required background</title> <p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Windows
-server</xref> component knowledge is recommended before using this component. </p> </section>
-<section id="GUID-DC47F478-274F-4669-AAF4-C6BD04D7D7D1-GENID-1-8-1-3-1-1-4-1-3-1-2-3"><title>Key concepts</title> <p>The component has the following key
-concepts: </p> <dl>
-<dlentry>
-<dt>Animation</dt>
-<dd><p>The animation is a fairly abstract interface owned by a client application.
-The interface is independent of the source of the data it uses, as the data
-providers are responsible for providing data to the animation. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Animator</dt>
-<dd><p>The animator represents each data type supported by the animation framework.
-It can handle data interpretation, timing and control of the animation. An
-animator is not be visible to the owner of the animation, but is controlled
-through it using a standard interface. The animators can either reside on
-the client or on the server. Each animation selects an animator plug-in to
-be used by providing an appropriate string obtained from the data provider. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Data provider</dt>
-<dd><p>A data provider is a generic interface to handle different kinds of
-data, which has different structures and behaviours, for example, GIFs and
-SVG (Scalable Vector Graphics). Animations access the data providers they
-own through an observer interface, which reports events to the animation.
-The interface in turn reports these events to the respective animators. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Observer</dt>
-<dd><p>An observer acts as an interface and is responsible for reporting events.
-The animation framework provides two such observers: a data provider observer,
-and an animation observer. The data provider observer is an interface between
-the animation and the data provider. Using this observer the animation can
-receive data and events from the data provider. The animation observer is
-an interface between the animation and the client application, and is used
-to report events to the client application. In Symbian OS v9.1, the animation
-observer is implemented to report only errors to the client application. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-71398AF6-16D5-4FC5-9342-44304C0A3066-GENID-1-8-1-3-1-1-4-1-3-1-2-4"><title>Architectural relationships</title> <p>The animation component
-provides a set of abstract classes with some basic functionality required
-for any type of animation. Implementors have to derive their own classes using
-these abstract classes to support specific animation types such as bitmap
-animation, sprite animation and so on. </p> <p>The animation framework also
-provides concrete implementations of the abstract classes. The concrete implementations
-of the <codeph>CAnimation</codeph> class are: </p> <ul>
-<li id="GUID-0E148B3E-F6D0-5AC0-B721-FB3BECD432F7-GENID-1-8-1-3-1-1-4-1-3-1-2-4-4-1"><p> <b>CBasicAnimation</b>  </p> <p>This
-is a client-side animation class which can also act as a data provider observer
-and an animation drawer. It provides a bitmap and a mask on which the animation
-is submitted. This class establishes a session with the windows server before
-submitting the animation to a particular window. </p> </li>
-<li id="GUID-4E7B61AF-0FF0-5EBF-A46B-F42D747CF866-GENID-1-8-1-3-1-1-4-1-3-1-2-4-4-2"><p> <b>CSpriteAnimation</b>  </p> <p>This
-is a server-side animation class for sprite based animations. The client has
-limited control over the animation, as sprites are server-side graphic objects
-and are controlled by the server. This class makes use of the windows server
-animation API to submit sprite animations. For more information on these APIs,
-refer to <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Using Window
-Server (WSERV)</xref>. </p> </li>
-<li id="GUID-3514D632-4090-51BD-AD26-B98CA6B31ADC-GENID-1-8-1-3-1-1-4-1-3-1-2-4-4-3"><p> <b>CAnimationGroup</b>  </p> <p>This
-class is not an animation class by itself, but is a collection of animations
-grouped together. It provides access to an array of animation references and
-handles all synchronisation issues among the animations in the group, provided
-all the animations are of the same type. For example, if a set of client-side
-animations are grouped together, they respond to commands collectively in
-synchronisation with each other. If the group includes both sprite and client-side
-animations, they will respond to commands collectively in asynchronous mode. </p> </li>
-</ul> <p>The framework provides the following concrete implementations for
-the other two abstract classes, <codeph>CAnimationDataProvider</codeph> and <codeph>CAnimator</codeph>: </p> <ul>
-<li id="GUID-C7FB57BB-25C4-5813-9C0A-B71433999EB3-GENID-1-8-1-3-1-1-4-1-3-1-2-4-6-1"><p> <b>CICLAnimationDataProvider</b>  </p> <p>This
-class interprets various data types including animated GIFs using the <xref href="GUID-6B478F86-1EC4-5F78-B7C8-C2E5FCD974B6.dita">Image Conversion Library</xref> (ICL).
-It provides data to the animation class in the form of individual frames using
-the <codeph>CAnimationFrame</codeph> object which contains a bitmap, a mask,
-and frame information. </p> </li>
-<li id="GUID-650EDA72-3CC2-5A08-8E6A-F57755B6EEAE-GENID-1-8-1-3-1-1-4-1-3-1-2-4-6-2"><p> <b>CBitmapAnimator</b>  </p> <p>This
-class can handle fixed sequence of bitmap frames passed by the data provider. </p> </li>
-</ul> </section>
-<section id="GUID-20A5B4F1-586A-4ADC-96C5-E4CF49EC7DA9-GENID-1-8-1-3-1-1-4-1-3-1-2-5"><title>API summary</title> <p> </p> <table id="GUID-CA7854D0-7D1C-5BCD-B9E5-A1FB2198AE15-GENID-1-8-1-3-1-1-4-1-3-1-2-5-3">
-<tgroup cols="2"><colspec colname="col0" colwidth="0.60*"/><colspec colname="col1" colwidth="1.40*"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract generic class which provides the basic functionality
-for all types of animations. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AD71F0EC-EB49-3D46-BEEE-B8ECD30BDDEA.dita"><apiname>CAnimator</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract class, which represents each type of data supported
-by the animation framework. This class is implemented as an ECOM plug-in. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-CB96F59F-BEF9-3296-A80A-4E8E8BE354C6.dita"><apiname>CAnimationDataProvider</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract class, which takes the animation data and converts
-it into a format recognized by the animator. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
-This class is used for basic client-side animations. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
-This class is used for sprite animations. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-65234329-B7A6-4A07-B32C-BB3B7D161F0C-GENID-1-8-1-3-1-1-4-1-3-1-2-6"><title>Typical uses</title> <p><b>Creating a basic animation </b> </p><p>The
-animation framework can be used to create a basic client-side animation using
-the <codeph>CBasicAnimation</codeph> class. You can also have your own implementation
-for other type of animations. For more information, refer to <xref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita">How
-to create a basic animation</xref>. </p> <p><b>Creating a sprite animation </b> </p><p>The
-animation framework supports server-side sprite animations using the <codeph>CSpriteAnimation</codeph> class.
-The procedure to create a sprite animation is the same as that for creating
-a basic client-side animation. The only difference between a client-side animation
-and a sprite animation is that client-side animations are redrawn by the client
-application. Whereas, for sprite animations redraws are handled automatically,
-as they run in the window server's high priority thread. </p> </section>
-</conbody><related-links>
-<link href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita"><linktext>How to create
-a basic animation</linktext></link>
-<link href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"><linktext>Using Window
-Server (WSERV)</linktext></link>
-</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-6-1-1-4-1-3-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-6-1-1-4-1-3-1-3-1" xml:lang="en"><title>Animation
-overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-1FDB9A85-EA5C-4FA9-902C-A2DD7C23EE28-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-1"><title>Purpose</title> <p>The animation component is a framework
-that provides support to build animated graphics applications. It provides
-the basic data types that allow animations to be incorporated into the normal
-drawing of a window from the client, or to be managed on the server as a sprite. </p> </section>
-<section id="GUID-81E07DE3-E680-410C-A22D-809D72E9CD6D-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-2"><title>Required background</title> <p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Windows
-server</xref> component knowledge is recommended before using this component. </p> </section>
-<section id="GUID-DC47F478-274F-4669-AAF4-C6BD04D7D7D1-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-3"><title>Key concepts</title> <p>The component has the following key
-concepts: </p> <dl>
-<dlentry>
-<dt>Animation</dt>
-<dd><p>The animation is a fairly abstract interface owned by a client application.
-The interface is independent of the source of the data it uses, as the data
-providers are responsible for providing data to the animation. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Animator</dt>
-<dd><p>The animator represents each data type supported by the animation framework.
-It can handle data interpretation, timing and control of the animation. An
-animator is not be visible to the owner of the animation, but is controlled
-through it using a standard interface. The animators can either reside on
-the client or on the server. Each animation selects an animator plug-in to
-be used by providing an appropriate string obtained from the data provider. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Data provider</dt>
-<dd><p>A data provider is a generic interface to handle different kinds of
-data, which has different structures and behaviours, for example, GIFs and
-SVG (Scalable Vector Graphics). Animations access the data providers they
-own through an observer interface, which reports events to the animation.
-The interface in turn reports these events to the respective animators. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Observer</dt>
-<dd><p>An observer acts as an interface and is responsible for reporting events.
-The animation framework provides two such observers: a data provider observer,
-and an animation observer. The data provider observer is an interface between
-the animation and the data provider. Using this observer the animation can
-receive data and events from the data provider. The animation observer is
-an interface between the animation and the client application, and is used
-to report events to the client application. In Symbian OS v9.1, the animation
-observer is implemented to report only errors to the client application. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-71398AF6-16D5-4FC5-9342-44304C0A3066-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4"><title>Architectural relationships</title> <p>The animation component
-provides a set of abstract classes with some basic functionality required
-for any type of animation. Implementors have to derive their own classes using
-these abstract classes to support specific animation types such as bitmap
-animation, sprite animation and so on. </p> <p>The animation framework also
-provides concrete implementations of the abstract classes. The concrete implementations
-of the <codeph>CAnimation</codeph> class are: </p> <ul>
-<li id="GUID-0E148B3E-F6D0-5AC0-B721-FB3BECD432F7-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4-4-1"><p> <b>CBasicAnimation</b>  </p> <p>This
-is a client-side animation class which can also act as a data provider observer
-and an animation drawer. It provides a bitmap and a mask on which the animation
-is submitted. This class establishes a session with the windows server before
-submitting the animation to a particular window. </p> </li>
-<li id="GUID-4E7B61AF-0FF0-5EBF-A46B-F42D747CF866-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4-4-2"><p> <b>CSpriteAnimation</b>  </p> <p>This
-is a server-side animation class for sprite based animations. The client has
-limited control over the animation, as sprites are server-side graphic objects
-and are controlled by the server. This class makes use of the windows server
-animation API to submit sprite animations. For more information on these APIs,
-refer to <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Using Window
-Server (WSERV)</xref>. </p> </li>
-<li id="GUID-3514D632-4090-51BD-AD26-B98CA6B31ADC-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4-4-3"><p> <b>CAnimationGroup</b>  </p> <p>This
-class is not an animation class by itself, but is a collection of animations
-grouped together. It provides access to an array of animation references and
-handles all synchronisation issues among the animations in the group, provided
-all the animations are of the same type. For example, if a set of client-side
-animations are grouped together, they respond to commands collectively in
-synchronisation with each other. If the group includes both sprite and client-side
-animations, they will respond to commands collectively in asynchronous mode. </p> </li>
-</ul> <p>The framework provides the following concrete implementations for
-the other two abstract classes, <codeph>CAnimationDataProvider</codeph> and <codeph>CAnimator</codeph>: </p> <ul>
-<li id="GUID-C7FB57BB-25C4-5813-9C0A-B71433999EB3-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4-6-1"><p> <b>CICLAnimationDataProvider</b>  </p> <p>This
-class interprets various data types including animated GIFs using the <xref href="GUID-6B478F86-1EC4-5F78-B7C8-C2E5FCD974B6.dita">Image Conversion Library</xref> (ICL).
-It provides data to the animation class in the form of individual frames using
-the <codeph>CAnimationFrame</codeph> object which contains a bitmap, a mask,
-and frame information. </p> </li>
-<li id="GUID-650EDA72-3CC2-5A08-8E6A-F57755B6EEAE-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-4-6-2"><p> <b>CBitmapAnimator</b>  </p> <p>This
-class can handle fixed sequence of bitmap frames passed by the data provider. </p> </li>
-</ul> </section>
-<section id="GUID-20A5B4F1-586A-4ADC-96C5-E4CF49EC7DA9-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-5"><title>API summary</title> <p> </p> <table id="GUID-CA7854D0-7D1C-5BCD-B9E5-A1FB2198AE15-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-5-3">
-<tgroup cols="2"><colspec colname="col0" colwidth="0.60*"/><colspec colname="col1" colwidth="1.40*"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract generic class which provides the basic functionality
-for all types of animations. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AD71F0EC-EB49-3D46-BEEE-B8ECD30BDDEA.dita"><apiname>CAnimator</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract class, which represents each type of data supported
-by the animation framework. This class is implemented as an ECOM plug-in. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-CB96F59F-BEF9-3296-A80A-4E8E8BE354C6.dita"><apiname>CAnimationDataProvider</apiname></xref>  </p> </entry>
-<entry><p>This is an abstract class, which takes the animation data and converts
-it into a format recognized by the animator. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
-This class is used for basic client-side animations. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref>  </p> </entry>
-<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
-This class is used for sprite animations. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-65234329-B7A6-4A07-B32C-BB3B7D161F0C-GENID-1-8-1-6-1-1-4-1-3-1-3-1-2-6"><title>Typical uses</title> <p><b>Creating a basic animation </b> </p><p>The
-animation framework can be used to create a basic client-side animation using
-the <codeph>CBasicAnimation</codeph> class. You can also have your own implementation
-for other type of animations. For more information, refer to <xref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita">How
-to create a basic animation</xref>. </p> <p><b>Creating a sprite animation </b> </p><p>The
-animation framework supports server-side sprite animations using the <codeph>CSpriteAnimation</codeph> class.
-The procedure to create a sprite animation is the same as that for creating
-a basic client-side animation. The only difference between a client-side animation
-and a sprite animation is that client-side animations are redrawn by the client
-application. Whereas, for sprite animations redraws are handled automatically,
-as they run in the window server's high priority thread. </p> </section>
-</conbody><related-links>
-<link href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita"><linktext>How to create
-a basic animation</linktext></link>
-<link href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"><linktext>Using Window
-Server (WSERV)</linktext></link>
-</related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-829761B6-ECF7-5E15-A475-AEE357687067.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-829761B6-ECF7-5E15-A475-AEE357687067" xml:lang="en"><title>Animation
+overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-1FDB9A85-EA5C-4FA9-902C-A2DD7C23EE28"><title>Purpose</title> <p>The animation component is a framework
+that provides support to build animated graphics applications. It provides
+the basic data types that allow animations to be incorporated into the normal
+drawing of a window from the client, or to be managed on the server as a sprite. </p> </section>
+<section id="GUID-81E07DE3-E680-410C-A22D-809D72E9CD6D"><title>Required background</title> <p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Windows
+server</xref> component knowledge is recommended before using this component. </p> </section>
+<section id="GUID-DC47F478-274F-4669-AAF4-C6BD04D7D7D1"><title>Key concepts</title> <p>The component has the following key
+concepts: </p> <dl>
+<dlentry>
+<dt>Animation</dt>
+<dd><p>The animation is a fairly abstract interface owned by a client application.
+The interface is independent of the source of the data it uses, as the data
+providers are responsible for providing data to the animation. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Animator</dt>
+<dd><p>The animator represents each data type supported by the animation framework.
+It can handle data interpretation, timing and control of the animation. An
+animator is not be visible to the owner of the animation, but is controlled
+through it using a standard interface. The animators can either reside on
+the client or on the server. Each animation selects an animator plug-in to
+be used by providing an appropriate string obtained from the data provider. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Data provider</dt>
+<dd><p>A data provider is a generic interface to handle different kinds of
+data, which has different structures and behaviours, for example, GIFs and
+SVG (Scalable Vector Graphics). Animations access the data providers they
+own through an observer interface, which reports events to the animation.
+The interface in turn reports these events to the respective animators. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Observer</dt>
+<dd><p>An observer acts as an interface and is responsible for reporting events.
+The animation framework provides two such observers: a data provider observer,
+and an animation observer. The data provider observer is an interface between
+the animation and the data provider. Using this observer the animation can
+receive data and events from the data provider. The animation observer is
+an interface between the animation and the client application, and is used
+to report events to the client application. In Symbian OS v9.1, the animation
+observer is implemented to report only errors to the client application. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-71398AF6-16D5-4FC5-9342-44304C0A3066"><title>Architectural relationships</title> <p>The animation component
+provides a set of abstract classes with some basic functionality required
+for any type of animation. Implementors have to derive their own classes using
+these abstract classes to support specific animation types such as bitmap
+animation, sprite animation and so on. </p> <p>The animation framework also
+provides concrete implementations of the abstract classes. The concrete implementations
+of the <codeph>CAnimation</codeph> class are: </p> <ul>
+<li id="GUID-0E148B3E-F6D0-5AC0-B721-FB3BECD432F7"><p> <b>CBasicAnimation</b>  </p> <p>This
+is a client-side animation class which can also act as a data provider observer
+and an animation drawer. It provides a bitmap and a mask on which the animation
+is submitted. This class establishes a session with the windows server before
+submitting the animation to a particular window. </p> </li>
+<li id="GUID-4E7B61AF-0FF0-5EBF-A46B-F42D747CF866"><p> <b>CSpriteAnimation</b>  </p> <p>This
+is a server-side animation class for sprite based animations. The client has
+limited control over the animation, as sprites are server-side graphic objects
+and are controlled by the server. This class makes use of the windows server
+animation API to submit sprite animations. For more information on these APIs,
+refer to <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Using Window
+Server (WSERV)</xref>. </p> </li>
+<li id="GUID-3514D632-4090-51BD-AD26-B98CA6B31ADC"><p> <b>CAnimationGroup</b>  </p> <p>This
+class is not an animation class by itself, but is a collection of animations
+grouped together. It provides access to an array of animation references and
+handles all synchronisation issues among the animations in the group, provided
+all the animations are of the same type. For example, if a set of client-side
+animations are grouped together, they respond to commands collectively in
+synchronisation with each other. If the group includes both sprite and client-side
+animations, they will respond to commands collectively in asynchronous mode. </p> </li>
+</ul> <p>The framework provides the following concrete implementations for
+the other two abstract classes, <codeph>CAnimationDataProvider</codeph> and <codeph>CAnimator</codeph>: </p> <ul>
+<li id="GUID-C7FB57BB-25C4-5813-9C0A-B71433999EB3"><p> <b>CICLAnimationDataProvider</b>  </p> <p>This
+class interprets various data types including animated GIFs using the <xref href="GUID-6B478F86-1EC4-5F78-B7C8-C2E5FCD974B6.dita">Image Conversion Library</xref> (ICL).
+It provides data to the animation class in the form of individual frames using
+the <codeph>CAnimationFrame</codeph> object which contains a bitmap, a mask,
+and frame information. </p> </li>
+<li id="GUID-650EDA72-3CC2-5A08-8E6A-F57755B6EEAE"><p> <b>CBitmapAnimator</b>  </p> <p>This
+class can handle fixed sequence of bitmap frames passed by the data provider. </p> </li>
+</ul> </section>
+<section id="GUID-20A5B4F1-586A-4ADC-96C5-E4CF49EC7DA9"><title>API summary</title> <p> </p> <table id="GUID-CA7854D0-7D1C-5BCD-B9E5-A1FB2198AE15">
+<tgroup cols="2"><colspec colname="col0" colwidth="0.60*"/><colspec colname="col1" colwidth="1.40*"/>
+<thead>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref>  </p> </entry>
+<entry><p>This is an abstract generic class which provides the basic functionality
+for all types of animations. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-AD71F0EC-EB49-3D46-BEEE-B8ECD30BDDEA.dita"><apiname>CAnimator</apiname></xref>  </p> </entry>
+<entry><p>This is an abstract class, which represents each type of data supported
+by the animation framework. This class is implemented as an ECOM plug-in. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-CB96F59F-BEF9-3296-A80A-4E8E8BE354C6.dita"><apiname>CAnimationDataProvider</apiname></xref>  </p> </entry>
+<entry><p>This is an abstract class, which takes the animation data and converts
+it into a format recognized by the animator. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref>  </p> </entry>
+<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
+This class is used for basic client-side animations. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6BB621FF-F799-357C-BEAC-9767D68E7D50.dita"><apiname>CSpriteAnimation</apiname></xref>  </p> </entry>
+<entry><p>This is a concrete implementation class of the <codeph>CAnimation</codeph> class.
+This class is used for sprite animations. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-65234329-B7A6-4A07-B32C-BB3B7D161F0C"><title>Typical uses</title> <p><b>Creating a basic animation </b> </p><p>The
+animation framework can be used to create a basic client-side animation using
+the <codeph>CBasicAnimation</codeph> class. You can also have your own implementation
+for other type of animations. For more information, refer to <xref href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9.dita">How
+to create a basic animation</xref>. </p> <p><b>Creating a sprite animation </b> </p><p>The
+animation framework supports server-side sprite animations using the <codeph>CSpriteAnimation</codeph> class.
+The procedure to create a sprite animation is the same as that for creating
+a basic client-side animation. The only difference between a client-side animation
+and a sprite animation is that client-side animations are redrawn by the client
+application. Whereas, for sprite animations redraws are handled automatically,
+as they run in the window server's high priority thread. </p> </section>
+</conbody><related-links>
+<link href="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9.dita"><linktext>How to create
+a basic animation</linktext></link>
+<link href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita"><linktext>Using Window
+Server (WSERV)</linktext></link>
+</related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81-master.png has changed
Binary file Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e58353_href.png has changed
Binary file Symbian3/SDK/Source/GUID-829C15B1-0769-4E90-935D-4DCA58895E81_d0e61742_href.png has changed
--- a/Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9" xml:lang="en"><title>The
-relationship between descriptor classes</title><shortdesc>Describes inheritance relationship between the descriptor classes
-and associated abstract base classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following diagram shows the inheritance relationship between the concrete
-descriptor classes and their abstract base classes. </p>
-<p>The diagram uses the 16-bit variant types: </p>
-<ul>
-<li id="GUID-9F68E03E-EC88-50FD-868C-EB3C91DE9F50"><p> <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> </p> </li>
-<li id="GUID-DC40BC35-AA45-515C-9721-8B6E73A7AC89"><p> <xref href="GUID-262C5A94-F186-31A1-855E-1FE123BC101C.dita"><apiname>TPtr16</apiname></xref> </p> </li>
-<li id="GUID-10AD9787-4CCA-5600-8898-1F18B94C6499"><p> <xref href="GUID-44622E86-313E-36B3-9989-3016F8E6E252.dita"><apiname>TBufC16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
-<li id="GUID-D88E7A38-CF2F-5723-B1C1-C9FF3113AEF9"><p> <xref href="GUID-EF25E407-26DF-3D97-B725-2DD0345975BA.dita"><apiname>TBuf16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
-<li id="GUID-55E8280B-DB84-51B0-B103-E674DACCE388"><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> </p> </li>
-<li id="GUID-9B7A4836-E7BA-5751-AFA7-563ED80B2F76"><p> <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref> </p> </li>
-</ul>
-<p>but the relationship is exactly the same for the 8-bit variants. The class
-names can also be replaced by the build independent types and the relationships
-remains valid. </p>
-<p>The <codeph>TBufBase16</codeph> and <codeph>TBufCBase16</codeph> classes
-are an implementation convenience and are not part of the public API. </p>
-<p> <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> and <xref href="GUID-C04A9A0C-DBA7-37DA-B744-54FBF3D544CD.dita"><apiname>TDes16</apiname></xref> are abstract
-classes and cannot be instantiated, However, these types can be passed as
-arguments to functions. </p>
-<fig id="GUID-B76A3D70-207B-55B2-B5BC-003E6E143375">
-<image href="GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e225093_href.png" placement="inline"/>
-<p>Inheritance relationship between the concrete descriptor classes and their
-abstract base classes</p>
-</fig>
-<p>Because descriptors are widely used (especially on the stack), the size
-of descriptor objects must be kept to a minimum. To help with this, no virtual
-functions are defined in order to avoid the overhead of a virtual function
-table pointer in each descriptor object. </p>
-<p>As a consequence, the base classes have implicit knowledge of the classes
-derived from them. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9" xml:lang="en"><title>The
+relationship between descriptor classes</title><shortdesc>Describes inheritance relationship between the descriptor classes
+and associated abstract base classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following diagram shows the inheritance relationship between the concrete
+descriptor classes and their abstract base classes. </p>
+<p>The diagram uses the 16-bit variant types: </p>
+<ul>
+<li id="GUID-9F68E03E-EC88-50FD-868C-EB3C91DE9F50"><p> <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> </p> </li>
+<li id="GUID-DC40BC35-AA45-515C-9721-8B6E73A7AC89"><p> <xref href="GUID-262C5A94-F186-31A1-855E-1FE123BC101C.dita"><apiname>TPtr16</apiname></xref> </p> </li>
+<li id="GUID-10AD9787-4CCA-5600-8898-1F18B94C6499"><p> <xref href="GUID-44622E86-313E-36B3-9989-3016F8E6E252.dita"><apiname>TBufC16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
+<li id="GUID-D88E7A38-CF2F-5723-B1C1-C9FF3113AEF9"><p> <xref href="GUID-EF25E407-26DF-3D97-B725-2DD0345975BA.dita"><apiname>TBuf16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
+<li id="GUID-55E8280B-DB84-51B0-B103-E674DACCE388"><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> </p> </li>
+<li id="GUID-9B7A4836-E7BA-5751-AFA7-563ED80B2F76"><p> <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref> </p> </li>
+</ul>
+<p>but the relationship is exactly the same for the 8-bit variants. The class
+names can also be replaced by the build independent types and the relationships
+remains valid. </p>
+<p>The <codeph>TBufBase16</codeph> and <codeph>TBufCBase16</codeph> classes
+are an implementation convenience and are not part of the public API. </p>
+<p> <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> and <xref href="GUID-C04A9A0C-DBA7-37DA-B744-54FBF3D544CD.dita"><apiname>TDes16</apiname></xref> are abstract
+classes and cannot be instantiated, However, these types can be passed as
+arguments to functions. </p>
+<fig id="GUID-B76A3D70-207B-55B2-B5BC-003E6E143375">
+<image href="GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e221356_href.png" placement="inline"/>
+<p>Inheritance relationship between the concrete descriptor classes and their
+abstract base classes</p>
+</fig>
+<p>Because descriptors are widely used (especially on the stack), the size
+of descriptor objects must be kept to a minimum. To help with this, no virtual
+functions are defined in order to avoid the overhead of a virtual function
+table pointer in each descriptor object. </p>
+<p>As a consequence, the base classes have implicit knowledge of the classes
+derived from them. </p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555"><title>Continuous Digital Zooming</title><shortdesc>This tutorial describes how to perform continuous digital zooming using the Ecam API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <prereq id="GUID-18F6B6F4-909B-58C3-A6B3-014E8B4D5919-GENID-1-8-1-18-1-1-5-1-5-1-7-1-4-1-5-1-3-1"><p>Before you start you should understand the following topics: </p> <ul><li id="GUID-47B2BCC4-347A-5188-9DA4-1AF59A5E0862"><p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> of the advanced Camera settings functionality. </p> </li> <li id="GUID-A34D2CE7-2C30-5349-85D2-A51023CFBB4B"><p><xref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita">Tutorial</xref> of the advanced Camera settings functionality. </p> </li> </ul> </prereq> <context id="GUID-D62D84CA-773A-5E47-90A4-2E0FDA70C818"><p>For advanced camera settings, the continuous digital zooming API provides a greater control over continuous zoom by allowing you to specify the speed and acceleration of each continuous zoom operation. The minimum speed for zooming is zero and the minimum acceleration is a negative value (which means deceleration). </p> <p>For continuous zooming, you need to provide a concrete implementation of <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraContinuousZoom</apiname></xref>. </p> </context> <steps id="GUID-C66E1385-9555-53A9-BD8B-AC2504F8725F"><step id="GUID-87E8226E-92D7-5C21-AB84-8B69B0E1D5AC"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::NewL(CCamera&amp;)</apiname></xref> to create a <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings</apiname></xref> object. </info> </step> <step id="GUID-390913F8-97B9-5306-8716-96D1A52E1584"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::GetSupportedContinuousZoomTypeL(TUint&amp;)</apiname></xref> to retrieve supported continuous zoom options for <codeph>CCameraAdvancedSettings</codeph>. </info> </step> <step id="GUID-3F3B7935-D89F-55F0-9AF4-1C38F481C856"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::CreateContinuousZoomL(MContinuousZoomObserver&amp;,
-                TContinuousZoomType, CCameraContinuousZoom*&amp;)</apiname></xref> to create a continuous zoom object. </info> </step> <step id="GUID-787CE611-8527-5B9E-AEE7-5434775C40EF"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::GetContinuousZoomSupportInfoL(CCameraAdvancedSettings::TContinuousZoomSupportInfo&amp;)</apiname></xref> to retrieve information about the supported settings related to continuous zoom. </info> </step> <step id="GUID-8DC3F51B-0A0E-5445-AF3B-9F2BA2CC7D99"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::StartContinuousZoomL(CCameraAdvancedSettings::TContinuousZoomParameters)</apiname></xref> to start the continuous zoom operation. </info> </step> <step id="GUID-86FCBD0A-5208-5220-9620-EF6F8B59210E"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::ContinuousZoomProgress(CCameraContinuousZoom&amp;,
-                TInt, TInt)</apiname></xref> function when a new zoom factor has achieved during the current continuous zoom operation. </info> </step> <step id="GUID-404644BF-2C4A-5051-9ABF-928A2800FE23"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::GetContinuousZoomId
-                (TInt aZoomId)</apiname></xref> function when you use more than one continuous zoom operation. This function is used to retrieve a unique ID which you can use to determine the callback function (like <codeph>ContinuousZoomProgress()</codeph> or <codeph>ContinuousZoomCompleted()</codeph>) is associated with which continuous zoom object. </info> </step> <step id="GUID-4681BA8B-30A1-5ED6-85C4-3DCA1BE237E0"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::ContinuousZoomCompleted()</apiname></xref> to inform you that the continuous zoom function has either completed successfully or to report an error that has caused the operation to fail. </info> <info>Note: This callback function does not actually stop the continuous zoom. </info> </step> <step id="GUID-B8F65783-F7FB-527D-A053-3E1A5E3321AD"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::StopContinuousZoom()</apiname></xref> to stop continuous zooming, if the continuous zoom function has not already completed. </info> </step> </steps> <example><title>Example</title> <p>The following example shows you how to perform continuous digital zooming using the Ecam API: </p> <codeblock id="GUID-C91D9A77-001B-5649-9B30-B0F4964C8023" xml:space="preserve">
-
-CCamera* camera;
-MCameraObserver2* observer2;
-Camera = CCamera::New2L(*observer2, 0);
-CCamera::CCameraAdvancedSettings* settings = CCamera::CCameraAdvancedSettings::NewL(*camera);
- 
-TUint supportedContinuousZoomType;
-settings-&gt;GetSupportedContinuousZoomTypeL(supportedContinuousZoomType);
-               
-CCamera::CCameraAdvancedSettings::TContinuousZoomType continuousZoomType =
-                       CCamera::CCameraAdvancedSettings::EContinuousZoomMixed;
- 
-MContinuousZoomObserver* continuousZoomObserver;     
-CCamera::CCameraContinuousZoom* continuousZoom = NULL;
-settings-&gt;CreateContinuousZoomL(*continuousZoomObserver, continuousZoomType, continuousZoom);
-        
-CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo info;
-continuousZoom-&gt;GetContinuousZoomSupportInfoL(info);
-        
-CCamera::CCameraAdvancedSettings::TContinuousZoomParameters param;
-param.iContinuousZoomType = continuousZoomType;
-param.iContinuousZoomAcceleration = 0;
-param.iContinuousZoomSpeed = 1;
-param.iContinuousZoomLimit = 5;
-param.iZoomDirection = CCamera::CCameraAdvancedSettings::EZoomDirectionWide;
- 
-continuousZoom-&gt;StartContinuousZoomL(param);
-
-</codeblock> </example> </taskbody><related-links><link href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita"><linktext> Advanced Settings for Focus, Drive Modes,
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task xml:lang="en" id="GUID-82B8C95E-F7E7-59C2-A71A-4C882653D555"><title>Continuous Digital Zooming</title><shortdesc>This tutorial describes how to perform continuous digital zooming using the Ecam API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <prereq id="GUID-18F6B6F4-909B-58C3-A6B3-014E8B4D5919-GENID-1-10-1-19-1-1-5-1-5-1-6-1-4-1-5-1-3-1"><p>Before you start you should understand the following topics: </p> <ul><li id="GUID-47B2BCC4-347A-5188-9DA4-1AF59A5E0862"><p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> of the advanced Camera settings functionality. </p> </li> <li id="GUID-A34D2CE7-2C30-5349-85D2-A51023CFBB4B"><p><xref href="GUID-BDB622BF-1CFA-5F1C-81FB-5579C8599689.dita">Tutorial</xref> of the advanced Camera settings functionality. </p> </li> </ul> </prereq> <context id="GUID-D62D84CA-773A-5E47-90A4-2E0FDA70C818"><p>For advanced camera settings, the continuous digital zooming API provides a greater control over continuous zoom by allowing you to specify the speed and acceleration of each continuous zoom operation. The minimum speed for zooming is zero and the minimum acceleration is a negative value (which means deceleration). </p> <p>For continuous zooming, you need to provide a concrete implementation of <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraContinuousZoom</apiname></xref>. </p> </context> <steps id="GUID-C66E1385-9555-53A9-BD8B-AC2504F8725F"><step id="GUID-87E8226E-92D7-5C21-AB84-8B69B0E1D5AC"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::NewL(CCamera&amp;)</apiname></xref> to create a <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings</apiname></xref> object. </info> </step> <step id="GUID-390913F8-97B9-5306-8716-96D1A52E1584"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::GetSupportedContinuousZoomTypeL(TUint&amp;)</apiname></xref> to retrieve supported continuous zoom options for <codeph>CCameraAdvancedSettings</codeph>. </info> </step> <step id="GUID-3F3B7935-D89F-55F0-9AF4-1C38F481C856"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::CreateContinuousZoomL(MContinuousZoomObserver&amp;,
+                TContinuousZoomType, CCameraContinuousZoom*&amp;)</apiname></xref> to create a continuous zoom object. </info> </step> <step id="GUID-787CE611-8527-5B9E-AEE7-5434775C40EF"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::GetContinuousZoomSupportInfoL(CCameraAdvancedSettings::TContinuousZoomSupportInfo&amp;)</apiname></xref> to retrieve information about the supported settings related to continuous zoom. </info> </step> <step id="GUID-8DC3F51B-0A0E-5445-AF3B-9F2BA2CC7D99"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::StartContinuousZoomL(CCameraAdvancedSettings::TContinuousZoomParameters)</apiname></xref> to start the continuous zoom operation. </info> </step> <step id="GUID-86FCBD0A-5208-5220-9620-EF6F8B59210E"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::ContinuousZoomProgress(CCameraContinuousZoom&amp;,
+                TInt, TInt)</apiname></xref> function when a new zoom factor has achieved during the current continuous zoom operation. </info> </step> <step id="GUID-404644BF-2C4A-5051-9ABF-928A2800FE23"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::GetContinuousZoomId
+                (TInt aZoomId)</apiname></xref> function when you use more than one continuous zoom operation. This function is used to retrieve a unique ID which you can use to determine the callback function (like <codeph>ContinuousZoomProgress()</codeph> or <codeph>ContinuousZoomCompleted()</codeph>) is associated with which continuous zoom object. </info> </step> <step id="GUID-4681BA8B-30A1-5ED6-85C4-3DCA1BE237E0"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraContinuousZoom::ContinuousZoomCompleted()</apiname></xref> to inform you that the continuous zoom function has either completed successfully or to report an error that has caused the operation to fail. </info> <info>Note: This callback function does not actually stop the continuous zoom. </info> </step> <step id="GUID-B8F65783-F7FB-527D-A053-3E1A5E3321AD"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::StopContinuousZoom()</apiname></xref> to stop continuous zooming, if the continuous zoom function has not already completed. </info> </step> </steps> <example><title>Example</title> <p>The following example shows you how to perform continuous digital zooming using the Ecam API: </p> <codeblock id="GUID-C91D9A77-001B-5649-9B30-B0F4964C8023" xml:space="preserve">
+
+CCamera* camera;
+MCameraObserver2* observer2;
+Camera = CCamera::New2L(*observer2, 0);
+CCamera::CCameraAdvancedSettings* settings = CCamera::CCameraAdvancedSettings::NewL(*camera);
+ 
+TUint supportedContinuousZoomType;
+settings-&gt;GetSupportedContinuousZoomTypeL(supportedContinuousZoomType);
+               
+CCamera::CCameraAdvancedSettings::TContinuousZoomType continuousZoomType =
+                       CCamera::CCameraAdvancedSettings::EContinuousZoomMixed;
+ 
+MContinuousZoomObserver* continuousZoomObserver;     
+CCamera::CCameraContinuousZoom* continuousZoom = NULL;
+settings-&gt;CreateContinuousZoomL(*continuousZoomObserver, continuousZoomType, continuousZoom);
+        
+CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo info;
+continuousZoom-&gt;GetContinuousZoomSupportInfoL(info);
+        
+CCamera::CCameraAdvancedSettings::TContinuousZoomParameters param;
+param.iContinuousZoomType = continuousZoomType;
+param.iContinuousZoomAcceleration = 0;
+param.iContinuousZoomSpeed = 1;
+param.iContinuousZoomLimit = 5;
+param.iZoomDirection = CCamera::CCameraAdvancedSettings::EZoomDirectionWide;
+ 
+continuousZoom-&gt;StartContinuousZoomL(param);
+
+</codeblock> </example> </taskbody><related-links><link href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita"><linktext> Advanced Settings for Focus, Drive Modes,
                 and Bracket Modes</linktext> </link> </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8300FD98-38D7-43EF-A71E-A7BEBFC3F8ED-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8300FD98-38D7-43EF-A71E-A7BEBFC3F8ED_d0e61693_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8305F179-8F26-4B38-8523-066D1B0B7A62_d0e212256_href.png has changed
--- a/Symbian3/SDK/Source/GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,67 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02" xml:lang="en"><title>View
-Server Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>This API allows applications to make and
-receive requests to show a particular view of data. Small amounts of data
-may be passed in such requests. The view architecture allows a high level
-of integration between applications. This is particularly useful for enabling
-users to navigate through the UI on the basis of the tasks they are working
-on, rather than perceiving separate applications. </p> </section>
-<section><title>Architectural relationships</title> <p>Views are UI classes
-(almost invariably controls) that implement the Symbian view interface. They
-display application data and are owned by the application's main user interface
-class (the AppUi). </p> <p>The inter-process communication required to make
-and receive requests to display particular views is handled by a dedicated
-server. <b>The client/server interface is not to be used directly by applications,
-but through framework functions in the AppUi (CCoeAppUi).</b>  </p> <fig id="GUID-DBF38DC9-0A01-532F-83E4-B0BDC5103DB7">
-<title>              View Server architecture            </title>
-<image href="GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e138353_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>Description</title> <p>The API has several key concepts: </p> <p><b>Abstract
-view interface</b> </p> <p>The abstract view interface is implemented by application
-views to receive activation and deactivation requests from the view server.
-The activation method allows a message (a Direct Navigational Link, or DNL),
-encapsulated in a descriptor, to be passed to the view (for example, the name
-of a file that should be displayed in the view). Note that although view classes
-are usually derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> the view architecture
-does not impose any restriction on which type of object implements the view
-interface. </p> <p>The abstract view interface is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref>. </p> <p><b>View
-ID</b> </p> <p>The view ID identifies a view uniquely. It consists of two
-UIDs: the application's UID, which is allocated by Symbian, and a view UID,
-which is allocated by the Symbian developer. The view UID is not strictly
-a UID (though it is of the the same <xref href="GUID-530281E6-29FC-33F2-BC9B-610FBA389444.dita"><apiname>TUid</apiname></xref> type) and needs
-only to be unique within the application and different from the application
-UID. </p> <p>The view ID is provided by <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref>. </p> <p><b>Registration</b> </p> <p>Views
-are registered with the View Server. There are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to
-do this. Once registered other applications may activate them by specifying
-their view IDs. Applications which do not implement views may still participate
-in the view architecture, though to a lesser degree, by registering themselves
-using their application UID. </p> <p><b>Activation, deactivation &amp; screen
-device change</b> </p> <p>Activation is the process of switching, or linking
-to a view. Again, there are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to activate
-and deactivate a specified view. The new view is activated and the old view
-is deactivated. Activation and deactivation events enable to actions to be
-performed by both new and old views. Similarly views need to know when screen
-orientation (portrait to landscape) or size (flip closed to flip open) has
-changed. </p> <p><b>Observation</b> </p> <p>Besides creating events and calling
-framework functions on activation, deactivation and screen device change the
-view architecture also supports three view observer interfaces which are also
-notified when such actions occur, namely <xref href="GUID-916B51B5-44BB-3010-B974-8D5D14D37169.dita"><apiname>MCoeViewObserver</apiname></xref>, <xref href="GUID-994248C5-B9C2-3932-A499-2A6A4E7A552E.dita"><apiname>MCoeViewActivationObserver</apiname></xref> &amp; <xref href="GUID-8D9CBC46-6057-3FDC-906C-35BEBDA00D16.dita"><apiname>MCoeViewDeactivationObserver</apiname></xref>. </p> </section>
-<section><title>See also</title><ul>
-<li><p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework
-Overview</xref></p></li>
-<li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li>
-<li><p><xref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita">Application
-UI</xref> </p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02" xml:lang="en"><title>View
+Server Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>This API allows applications to make and
+receive requests to show a particular view of data. Small amounts of data
+may be passed in such requests. The view architecture allows a high level
+of integration between applications. This is particularly useful for enabling
+users to navigate through the UI on the basis of the tasks they are working
+on, rather than perceiving separate applications. </p> </section>
+<section><title>Architectural relationships</title> <p>Views are UI classes
+(almost invariably controls) that implement the Symbian view interface. They
+display application data and are owned by the application's main user interface
+class (the AppUi). </p> <p>The inter-process communication required to make
+and receive requests to display particular views is handled by a dedicated
+server. <b>The client/server interface is not to be used directly by applications,
+but through framework functions in the AppUi (CCoeAppUi).</b>  </p> <fig id="GUID-DBF38DC9-0A01-532F-83E4-B0BDC5103DB7">
+<title>              View Server architecture            </title>
+<image href="GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e131819_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>Description</title> <p>The API has several key concepts: </p> <p><b>Abstract
+view interface</b> </p> <p>The abstract view interface is implemented by application
+views to receive activation and deactivation requests from the view server.
+The activation method allows a message (a Direct Navigational Link, or DNL),
+encapsulated in a descriptor, to be passed to the view (for example, the name
+of a file that should be displayed in the view). Note that although view classes
+are usually derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> the view architecture
+does not impose any restriction on which type of object implements the view
+interface. </p> <p>The abstract view interface is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref>. </p> <p><b>View
+ID</b> </p> <p>The view ID identifies a view uniquely. It consists of two
+UIDs: the application's UID, which is allocated by Symbian, and a view UID,
+which is allocated by the Symbian developer. The view UID is not strictly
+a UID (though it is of the the same <xref href="GUID-530281E6-29FC-33F2-BC9B-610FBA389444.dita"><apiname>TUid</apiname></xref> type) and needs
+only to be unique within the application and different from the application
+UID. </p> <p>The view ID is provided by <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref>. </p> <p><b>Registration</b> </p> <p>Views
+are registered with the View Server. There are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to
+do this. Once registered other applications may activate them by specifying
+their view IDs. Applications which do not implement views may still participate
+in the view architecture, though to a lesser degree, by registering themselves
+using their application UID. </p> <p><b>Activation, deactivation &amp; screen
+device change</b> </p> <p>Activation is the process of switching, or linking
+to a view. Again, there are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to activate
+and deactivate a specified view. The new view is activated and the old view
+is deactivated. Activation and deactivation events enable to actions to be
+performed by both new and old views. Similarly views need to know when screen
+orientation (portrait to landscape) or size (flip closed to flip open) has
+changed. </p> <p><b>Observation</b> </p> <p>Besides creating events and calling
+framework functions on activation, deactivation and screen device change the
+view architecture also supports three view observer interfaces which are also
+notified when such actions occur, namely <xref href="GUID-916B51B5-44BB-3010-B974-8D5D14D37169.dita"><apiname>MCoeViewObserver</apiname></xref>, <xref href="GUID-994248C5-B9C2-3932-A499-2A6A4E7A552E.dita"><apiname>MCoeViewActivationObserver</apiname></xref> &amp; <xref href="GUID-8D9CBC46-6057-3FDC-906C-35BEBDA00D16.dita"><apiname>MCoeViewDeactivationObserver</apiname></xref>. </p> </section>
+<section><title>See also</title><ul>
+<li><p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework
+Overview</xref></p></li>
+<li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li>
+<li><p><xref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita">Application
+UI</xref> </p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-83630B57-D842-4B60-8AF0-D2965251DE29.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,98 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-83630B57-D842-4B60-8AF0-D2965251DE29" xml:lang="en"><title>Retrieving
-Channel Properties</title><shortdesc>A sensor channel is associated with properties such as channel
-availability status, data transmission rate, data format and so on. Also,
-each field in the data type supplied by a sensor channel can have its own
-properties. The channel properties can be retrieved using the <codeph>CSensrvChannel::GetPropertyL()</codeph> and <codeph>CSensrvChannel::GetAllPropertiesL()</codeph> functions.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-91C43F20-A2FA-4A16-AA10-7BE00EC8E4AF">       <p>Before retrieving
-channel properties, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
-the sensor channel</xref>.</p>     </prereq>
-<context id="GUID-E36A1CB4-6973-42CF-8935-A3C5DEE2CE34"><p>A channel property
-is referenced by its property id and an index. The parameters of the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> are
-listed with their meanings in the following table.</p><table id="GUID-D8B0C588-8648-4CB7-936D-A3CA70E1A49D">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.44*"/><colspec colname="col2" colwidth="1.56*"/>
-<thead>
-<row>
-<entry>Parameter</entry>
-<entry>Meaning</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>First parameter</entry>
-<entry>specifies the id of the property to retrieve.</entry>
-</row>
-<row>
-<entry>Second parameter</entry>
-<entry>is an index that specifies the property to be retrieved, if there are
-several properties associated with a particular property id.</entry>
-</row>
-<row>
-<entry>Third parameter</entry>
-<entry> is a <parmname>TSensrvProperty</parmname> that is passed by reference
-and populated by <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref>.</entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>The following list shows the different possible values of the index
-:</p><ul>
-<li><p>When the property id is for a simple property, that is, there is only
-one property item for the id (for example, <parmname>KSensrvPropIdChannelAccuracy</parmname>),
-the second parameter must be specified as <parmname>ESensrvSingleProperty</parmname>.</p></li>
-<li><p>When the given property id has an array of <parmname>TSensrvProperty</parmname> items,
-the index parameter indicates which item in the array to retrieve. One such
-case is when you want to retrieve a property of a particular data field that
-is supplied by the channel. For example, if you want to find out if the X
-axis of the accelerometer is enabled, you must specify <parmname>KSensrvPropIdAxisActive</parmname> as
-the property id, and <parmname>TSensrvAccelerometerAxisData::iAxisX </parmname> as
-the index. For details, see <xref href="GUID-8DCBAA05-9741-48C8-A831-966D37FBC05A.dita">Array
-Properties</xref>.</p></li>
-<li><p>When the given property id has an array of <parmname>TSensrvProperty</parmname> items,
-information about the array can be retrieved by specifying <parmname>ESensrvArrayPropertyInfo</parmname> as
-the index parameter. For example, when a channel can provide data at discrete
-data rates, the information for each data rate is stored in a <parmname>TSensrvProperty</parmname> item.
-You can use <parmname>KSensrvPropIdDataRate</parmname> as the property id
-and <parmname>ESensrvArrayPropertyInfo</parmname> as the index to retrieve
-the property item that contains this information. </p></li>
-</ul></context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-6-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-6-1-3-3-1"><cmd>Create an instance
-of <parmname>TSensrvProperty</parmname>.</cmd>
-<stepxmp><codeblock xml:space="preserve">TSensrvProperty property;</codeblock></stepxmp>
-<info>           <p>Each channel property is encapsulated by the <parmname>TSensrvProperty</parmname> class.
-Therefore, the details of the retrieved property can be accessed using the
-functions of the <parmname>TSensrvProperty</parmname> class.</p>  </info>
-</step>
-<step id="GUID-BB85979A-442C-41AF-B406-C239369C923E"><cmd>Use the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function
-to retrieve the property item for a particular property id. For example, to
-check for the accuracy of a channel, pass the <parmname>KSensrvPropIdChannelAccuracy</parmname> as
-a property id.</cmd>
-<stepxmp><codeblock xml:space="preserve">...
-
-CSensrvChannel* iSensorChannel;
-....
-iSensorChannel-&gt;GetPropertyL( KSensrvPropIdChannelAccuracy,
-                                  KSensrvItemIndexNone,
-                                  property );
-
-....</codeblock></stepxmp>
-<info><note> You can retrieve all the properties associated with a particular
-sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-ABF67AF4-BAC9-3BA3-B558-9AC1B8E0DFDE"><apiname>CSensrvChannel::GetAllPropertiesL()</apiname></xref> function.</note></info>
-</step>
-</steps>
-<postreq id="GUID-459AF9E3-B0EA-4E8F-81AF-726DA3B0E053"><ul>
-<li>End the session with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</li>
-<li>You can set the required channel properties. For details, see <xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Setting
-Channel Properties</xref>.</li>
-</ul></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-83630B57-D842-4B60-8AF0-D2965251DE29" xml:lang="en"><title>Retrieving
+Channel Properties</title><shortdesc>A sensor channel is associated with properties such as channel
+availability status, data transmission rate, data format and so on. Also,
+each field in the data type supplied by a sensor channel can have its own
+properties. The channel properties can be retrieved using the <codeph>CSensrvChannel::GetPropertyL()</codeph> and <codeph>CSensrvChannel::GetAllPropertiesL()</codeph> functions.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-91C43F20-A2FA-4A16-AA10-7BE00EC8E4AF">       <p>Before retrieving
+channel properties, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
+the sensor channel</xref>.</p>     </prereq>
+<context id="GUID-E36A1CB4-6973-42CF-8935-A3C5DEE2CE34"><p>A channel property
+is referenced by its property id and an index. The parameters of the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> are
+listed with their meanings in the following table.</p><table id="GUID-D8B0C588-8648-4CB7-936D-A3CA70E1A49D">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.44*"/><colspec colname="col2" colwidth="1.56*"/>
+<thead>
+<row>
+<entry>Parameter</entry>
+<entry>Meaning</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>First parameter</entry>
+<entry>specifies the id of the property to retrieve.</entry>
+</row>
+<row>
+<entry>Second parameter</entry>
+<entry>is an index that specifies the property to be retrieved, if there are
+several properties associated with a particular property id.</entry>
+</row>
+<row>
+<entry>Third parameter</entry>
+<entry> is a <parmname>TSensrvProperty</parmname> that is passed by reference
+and populated by <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref>.</entry>
+</row>
+</tbody>
+</tgroup>
+</table><p>The following list shows the different possible values of the index
+:</p><ul>
+<li><p>When the property id is for a simple property, that is, there is only
+one property item for the id (for example, <parmname>KSensrvPropIdChannelAccuracy</parmname>),
+the second parameter must be specified as <parmname>ESensrvSingleProperty</parmname>.</p></li>
+<li><p>When the given property id has an array of <parmname>TSensrvProperty</parmname> items,
+the index parameter indicates which item in the array to retrieve. One such
+case is when you want to retrieve a property of a particular data field that
+is supplied by the channel. For example, if you want to find out if the X
+axis of the accelerometer is enabled, you must specify <parmname>KSensrvPropIdAxisActive</parmname> as
+the property id, and <parmname>TSensrvAccelerometerAxisData::iAxisX </parmname> as
+the index. For details, see <xref href="GUID-8DCBAA05-9741-48C8-A831-966D37FBC05A.dita">Array
+Properties</xref>.</p></li>
+<li><p>When the given property id has an array of <parmname>TSensrvProperty</parmname> items,
+information about the array can be retrieved by specifying <parmname>ESensrvArrayPropertyInfo</parmname> as
+the index parameter. For example, when a channel can provide data at discrete
+data rates, the information for each data rate is stored in a <parmname>TSensrvProperty</parmname> item.
+You can use <parmname>KSensrvPropIdDataRate</parmname> as the property id
+and <parmname>ESensrvArrayPropertyInfo</parmname> as the index to retrieve
+the property item that contains this information. </p></li>
+</ul></context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-6-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-6-1-3-3-1"><cmd>Create an instance
+of <parmname>TSensrvProperty</parmname>.</cmd>
+<stepxmp><codeblock xml:space="preserve">TSensrvProperty property;</codeblock></stepxmp>
+<info>           <p>Each channel property is encapsulated by the <parmname>TSensrvProperty</parmname> class.
+Therefore, the details of the retrieved property can be accessed using the
+functions of the <parmname>TSensrvProperty</parmname> class.</p>  </info>
+</step>
+<step id="GUID-BB85979A-442C-41AF-B406-C239369C923E"><cmd>Use the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-1E9D960B-23C4-30DF-A184-7E978AC9AC1B"><apiname>CSensrvChannel::GetPropertyL()</apiname></xref> function
+to retrieve the property item for a particular property id. For example, to
+check for the accuracy of a channel, pass the <parmname>KSensrvPropIdChannelAccuracy</parmname> as
+a property id.</cmd>
+<stepxmp><codeblock xml:space="preserve">...
+
+CSensrvChannel* iSensorChannel;
+....
+iSensorChannel-&gt;GetPropertyL( KSensrvPropIdChannelAccuracy,
+                                  KSensrvItemIndexNone,
+                                  property );
+
+....</codeblock></stepxmp>
+<info><note> You can retrieve all the properties associated with a particular
+sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-ABF67AF4-BAC9-3BA3-B558-9AC1B8E0DFDE"><apiname>CSensrvChannel::GetAllPropertiesL()</apiname></xref> function.</note></info>
+</step>
+</steps>
+<postreq id="GUID-459AF9E3-B0EA-4E8F-81AF-726DA3B0E053"><ul>
+<li>End the session with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</li>
+<li>You can set the required channel properties. For details, see <xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Setting
+Channel Properties</xref>.</li>
+</ul></postreq>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4" xml:lang="en"><title>Control
-pane with pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In touch layout, the softkeys are placed inside the pop-up component to display
-the functions closer to the context. Pop-up with softkeys is centered vertically
-and horizontally in landscape orientation. In portrait orientation, the pop-up
-is placed at the bottom of the screen. In case there is only one softkey available,
-both button graphics are still displayed. In case there are no softkeys available,
-the softkey area is not displayed. </p>
-<p>Softkeys inside a pop-up have the same default functionality and touch
-feedback as the normal control pane area defined in <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
-pane</xref> section.</p>
-<fig id="GUID-56B891F5-2287-4BBF-A97A-4EB959312131">
-<title>Example images of pop-up components with two softkeys</title>
-<image href="GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e72920_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-6B58856F-87FB-48E9-8ECF-DCD26E047BB8">
-<title>Examples images of pop-ups with one softkey</title>
-<image href="GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e72928_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-83798F82-15FB-4EA6-9AD8-540616CBF6C4" xml:lang="en"><title>Control
+pane with pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In touch layout, the softkeys are placed inside the pop-up component to display
+the functions closer to the context. Pop-up with softkeys is centered vertically
+and horizontally in landscape orientation. In portrait orientation, the pop-up
+is placed at the bottom of the screen. In case there is only one softkey available,
+both button graphics are still displayed. In case there are no softkeys available,
+the softkey area is not displayed. </p>
+<p>Softkeys inside a pop-up have the same default functionality and touch
+feedback as the normal control pane area defined in <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
+pane</xref> section.</p>
+<fig id="GUID-56B891F5-2287-4BBF-A97A-4EB959312131">
+<title>Example images of pop-up components with two softkeys</title>
+<image href="GUID-20FECB77-2E1D-4104-948F-8E878DAFE1B8_d0e67767_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-6B58856F-87FB-48E9-8ECF-DCD26E047BB8">
+<title>Examples images of pop-ups with one softkey</title>
+<image href="GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e67775_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,161 +1,161 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8390D842-B8A3-5042-952D-73240DB30D6B" xml:lang="en"><title>Message
-Server and Store Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section provides an overview of the functionality and the architecture
-of Message Server and Store. </p>
-<section><title>Purpose</title> <p>The following services that are provided
-by this component can be used by the client application: </p> <ul>
-<li id="GUID-67C56ED5-6996-585F-A6EB-DB64E3956DF8"><p><xref href="GUID-5CFA3F21-3E42-5B53-8EC1-BC0F7F0E8136.dita">Storing
-Messages</xref>  </p> </li>
-<li id="GUID-452071CE-E72F-5BE7-AF45-E4EA1C085E18"><p><xref href="GUID-4CD6C5CC-A91B-56BE-825F-5B10B63627DA.dita"> Handling
-Client Requests</xref>  </p> </li>
-<li id="GUID-F4732AD3-EB59-52E5-B3EF-E8C1D8B527E2"><p><xref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita">Caching</xref> </p> </li>
-<li id="GUID-89ED7AA5-5DBB-5D7D-AE80-739813964183"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita"> Searching
-and Sorting Messages</xref>  </p> </li>
-</ul> </section>
-<section><title>Architecture</title> <p>Message type-dependent operations,
-such as address handling, are called by client applications using client MTMs
-and UI MTMs. These MTMs then access the appropriate Message Store and alter
-it as required. </p> <p>The following figure shows the logical structure of
-the Message Server. Dashed boxes indicate components that can be developed
-by third-parties. </p> <fig id="GUID-F469ED0A-E43F-5260-B86E-3EFE3CBA0DBB">
-<title>              Logical structure of Messaging Middleware architecture
-           </title>
-<image href="GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e281248_href.png" placement="inline"/>
-</fig><note> No lower-level communication components are shown, as the architecture
-is designed to be independent of any particular communication protocol. Instead,
-communication libraries are accessed as needed by Server MTMs. For example,
-an SMTP MTM would use TCP/IP, while the SMS MTM would use the Telephony Server
-(ETel).</note> <dl>
-<dlentry>
-<dt>Application/App UI</dt>
-<dd><p>This represents a message client application. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>User Interface MTM, Client-side MTM, UI Data MTM, Server-side MTM Bases</dt>
-<dd><p>These are base classes required for implementing protocol-specific
-MTM components. User Interface and UI Data MTMs handle user interface functionality
-and resources. Client-side MTMs provide message data handling functions. Server-side
-MTMs provide message transport functions. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Concrete User Interface MTM, Concrete Client-side MTM, Concrete UI Data
-MTM, Concrete Server-side MTM</dt>
-<dd><p>These represent instances of MTM components written to implement a
-particular messaging protocol. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Message Server</dt>
-<dd><p>The Message Server handles all requests to access or manipulate message
-data. Where necessary, it passes requests to the protocol-specific message
-transport components, the Server-side MTMs. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Session</dt>
-<dd><p>Sessions allow client-side components to issue requests to the Message
-Server. There are a number of classes provided to clients that allow message
-entries to be manipulated. </p> </dd>
-</dlentry>
-</dl> <p>The <filepath>msgs.dll</filepath> library provides a client-side
-session class called <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession</apiname></xref> . Client applications
-typically create an instance of this class on start-up. Instances of Client
-MTMs, User Interface (UI) MTMs and high-level client library classes maintain
-a reference to the client application’s session object, to make requests if
-needed. </p> <p>Message client applications, Client MTMs and UI MTMs manipulate
-entries through <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> and <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref> classes.
-The entry currently being operated on is called the context. A client application
-can begin by setting the context to the root entry. By finding the children
-of this initial entry, and then their children in turn, any entry can be found. </p> <p>Operations
-such as creating, deleting, sorting and accessing body text, or changing an
-index entry, which are independent of the message-type, are requested by client
-applications and MTMs through <xref href="GUID-BC3D2A73-3E8C-3D0C-8E18-5E35AA431D99.dita"><apiname>CMvsEntry</apiname></xref> or <xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref>.
-The Message Server may either perform such operations itself or delegate them
-to a server MTM. </p> </section>
-<section><title>Description</title> <p>The Message Server is the core component
-in the Messaging Middleware module. It accepts asynchronous requests from
-clients through a kernel-maintained session. It performs the following functions: </p> <ul>
-<li id="GUID-55C60AD4-DCFD-5C31-AA33-1D081FFE2A47"><p> <b>Controls access
-to message data</b>  </p> <p>In response to client requests, the Message Server
-delegates temporary, exclusive access to message data, so that more than one
-client cannot edit the same message at the same time. It is the responsibility
-of Message Server to keep the message data in workable order, and cope with
-events such as failure recovery. </p> </li>
-<li id="GUID-BA07A6D4-194D-5908-9139-1A86F0D0C9E3"><p> <b>Delegates requests
-to Server MTMs</b>  </p> <p>Message Server must identify requests, such as
-sending a message that requires protocol-specific functionality, and load
-the appropriate Server MTM. </p> </li>
-</ul> <p id="GUID-8E01ADD0-A706-54B2-8159-E65C33274C30"><b>Message Store</b> </p> <p>Message
-Server provides persistent storage of messages and messaging account settings
-by providing a Message Store. The Message Store contains message data in a
-variable number of entries in a tree view, each of which is referenced by
-a unique identifier. This concept is known as a <xref href="GUID-D099551B-6E99-5210-B44A-693012A29DD1.dita">dictionary
-file store</xref>. Each entry in the tree can represent an email account,
-folder of messages, message part and so on. </p> <p>Message Store is secured
-in a protected data-caged area of Message Server. Message Server allows multiple
-read-only and a single read-write access to a message in the Message Store
-at given time. It also accepts copy and delete requests from clients trusted
-with <codeph>WriteUserData</codeph> capability. When a copy or delete is requested,
-the message server first flags itself as unavailable and then locks the files
-before attempting to process them. </p> <p>Message settings are stored in
-the Central Repository and attachment information is stored in the Message
-Store. MTMs can create additional streams in the message store to hold MTM-specific
-message data. Usually, at least one stream is devoted to non-generic header
-information such as recipient information. </p> <p>When Message Server starts,
-the Message Store is created unless there is already a Message Store present.
-Message Server initially creates the Message Store with just a root entry
-and then creates standard folders defined in the <filepath>msgs.rsc</filepath> resource
-file. Finally the Message Server runs <filepath>mailinit.exe</filepath> to
-customise of the Message Store. The behaviour of <filepath>mailinit.exe</filepath> is
-defined by the UI family of the device, such as Series 60 or UIQ. However,
-the typical behaviour is to load each of the UI MTMs and allow each to perform
-any message type specific initialisation. For example, the SMS plug-in typically
-creates a default service entry. </p> </section>
-<section><title>API summary</title> <p>The storage abstractions through which
-client applications access the various types of storage are key to the Messaging
-Middleware module. </p> <ul>
-<li id="GUID-5F7B2622-1FCB-57AB-B98B-32BED95E4CA5"><p>The <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref> API
-access and acts on a particular Message Server entry. The main functions of
-this API are to provide means to: </p> <ul>
-<li id="GUID-A14A770E-2425-59C5-BCEC-A8C209B246CE"><p>access the various types
-of storage associated with an entry </p> </li>
-<li id="GUID-991A0D61-A67C-5BA0-B943-BFF5D60839B2"><p>discover and access
-other entries that the entry owns (its children) </p> </li>
-</ul> </li>
-<li id="GUID-40BDE827-355F-54E5-BFB3-DEF160FC8B4B"><p> <xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref> is
-similar to <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref>, but used only by Server MTMs. </p> </li>
-<li id="GUID-54D77E17-1B5E-529F-916B-A628DA022901"><p> <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> encapsulates
-an index entry the Message Server index. </p> </li>
-<li id="GUID-DDF9FB6B-02EB-5976-8072-95FCD25FED49"><p> <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref> encapsulates
-an entry’s <xref href="GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita#GUID-8390D842-B8A3-5042-952D-73240DB30D6B/GUID-8E01ADD0-A706-54B2-8159-E65C33274C30">Message
-Store</xref>. </p> </li>
-<li id="GUID-A17D856C-EE8C-5339-9EE8-108D8AE1229F"><p> <xref href="GUID-4E2B0CEA-1EDA-3452-895D-3CE1B59FD8FD.dita"><apiname>MMsvAttachmentManager</apiname></xref> class
-is a pure virtual interface class that defines the APIs to be used for attachment
-management in the Messaging Framework. </p> </li>
-</ul> </section>
-<section><title>Typical uses</title> <ul>
-<li id="GUID-7669F08C-0D4A-5DB1-A965-EC6178B82568"><p>Configuring the Message
-Server ans Store </p> </li>
-<li id="GUID-B915A682-265E-58B9-A66A-DE9194685952"><p>Writing MTMs </p> </li>
-<li id="GUID-3DB37ED4-44D6-56EE-B8C0-D5BFD31567E4"><p>Searching and sorting
-messages </p> </li>
-<li id="GUID-7E268EA1-922D-5657-885A-298E29135603"><p>Processing emails in
-chunks </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-54AB166A-8B24-5065-92AD-5FC1BF3ED89C.dita"><linktext>Messaging
-Framework</linktext></link>
-<link href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita"><linktext>Message Server
-and Store Concepts</linktext></link>
-<link href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita"><linktext>Message Server
-and Store Tutorials</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8390D842-B8A3-5042-952D-73240DB30D6B" xml:lang="en"><title>Message
+Server and Store Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section provides an overview of the functionality and the architecture
+of Message Server and Store. </p>
+<section><title>Purpose</title> <p>The following services that are provided
+by this component can be used by the client application: </p> <ul>
+<li id="GUID-67C56ED5-6996-585F-A6EB-DB64E3956DF8"><p><xref href="GUID-5CFA3F21-3E42-5B53-8EC1-BC0F7F0E8136.dita">Storing
+Messages</xref>  </p> </li>
+<li id="GUID-452071CE-E72F-5BE7-AF45-E4EA1C085E18"><p><xref href="GUID-4CD6C5CC-A91B-56BE-825F-5B10B63627DA.dita"> Handling
+Client Requests</xref>  </p> </li>
+<li id="GUID-F4732AD3-EB59-52E5-B3EF-E8C1D8B527E2"><p><xref href="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706.dita">Caching</xref> </p> </li>
+<li id="GUID-89ED7AA5-5DBB-5D7D-AE80-739813964183"><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita"> Searching
+and Sorting Messages</xref>  </p> </li>
+</ul> </section>
+<section><title>Architecture</title> <p>Message type-dependent operations,
+such as address handling, are called by client applications using client MTMs
+and UI MTMs. These MTMs then access the appropriate Message Store and alter
+it as required. </p> <p>The following figure shows the logical structure of
+the Message Server. Dashed boxes indicate components that can be developed
+by third-parties. </p> <fig id="GUID-F469ED0A-E43F-5260-B86E-3EFE3CBA0DBB">
+<title>              Logical structure of Messaging Middleware architecture
+           </title>
+<image href="GUID-0259868F-8F88-5D9D-A9DE-9309C3BFBA85_d0e277562_href.png" placement="inline"/>
+</fig><note> No lower-level communication components are shown, as the architecture
+is designed to be independent of any particular communication protocol. Instead,
+communication libraries are accessed as needed by Server MTMs. For example,
+an SMTP MTM would use TCP/IP, while the SMS MTM would use the Telephony Server
+(ETel).</note> <dl>
+<dlentry>
+<dt>Application/App UI</dt>
+<dd><p>This represents a message client application. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>User Interface MTM, Client-side MTM, UI Data MTM, Server-side MTM Bases</dt>
+<dd><p>These are base classes required for implementing protocol-specific
+MTM components. User Interface and UI Data MTMs handle user interface functionality
+and resources. Client-side MTMs provide message data handling functions. Server-side
+MTMs provide message transport functions. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Concrete User Interface MTM, Concrete Client-side MTM, Concrete UI Data
+MTM, Concrete Server-side MTM</dt>
+<dd><p>These represent instances of MTM components written to implement a
+particular messaging protocol. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Message Server</dt>
+<dd><p>The Message Server handles all requests to access or manipulate message
+data. Where necessary, it passes requests to the protocol-specific message
+transport components, the Server-side MTMs. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Session</dt>
+<dd><p>Sessions allow client-side components to issue requests to the Message
+Server. There are a number of classes provided to clients that allow message
+entries to be manipulated. </p> </dd>
+</dlentry>
+</dl> <p>The <filepath>msgs.dll</filepath> library provides a client-side
+session class called <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita"><apiname>CMsvSession</apiname></xref> . Client applications
+typically create an instance of this class on start-up. Instances of Client
+MTMs, User Interface (UI) MTMs and high-level client library classes maintain
+a reference to the client application’s session object, to make requests if
+needed. </p> <p>Message client applications, Client MTMs and UI MTMs manipulate
+entries through <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> and <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref> classes.
+The entry currently being operated on is called the context. A client application
+can begin by setting the context to the root entry. By finding the children
+of this initial entry, and then their children in turn, any entry can be found. </p> <p>Operations
+such as creating, deleting, sorting and accessing body text, or changing an
+index entry, which are independent of the message-type, are requested by client
+applications and MTMs through <xref href="GUID-BC3D2A73-3E8C-3D0C-8E18-5E35AA431D99.dita"><apiname>CMvsEntry</apiname></xref> or <xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref>.
+The Message Server may either perform such operations itself or delegate them
+to a server MTM. </p> </section>
+<section><title>Description</title> <p>The Message Server is the core component
+in the Messaging Middleware module. It accepts asynchronous requests from
+clients through a kernel-maintained session. It performs the following functions: </p> <ul>
+<li id="GUID-55C60AD4-DCFD-5C31-AA33-1D081FFE2A47"><p> <b>Controls access
+to message data</b>  </p> <p>In response to client requests, the Message Server
+delegates temporary, exclusive access to message data, so that more than one
+client cannot edit the same message at the same time. It is the responsibility
+of Message Server to keep the message data in workable order, and cope with
+events such as failure recovery. </p> </li>
+<li id="GUID-BA07A6D4-194D-5908-9139-1A86F0D0C9E3"><p> <b>Delegates requests
+to Server MTMs</b>  </p> <p>Message Server must identify requests, such as
+sending a message that requires protocol-specific functionality, and load
+the appropriate Server MTM. </p> </li>
+</ul> <p id="GUID-8E01ADD0-A706-54B2-8159-E65C33274C30"><b>Message Store</b> </p> <p>Message
+Server provides persistent storage of messages and messaging account settings
+by providing a Message Store. The Message Store contains message data in a
+variable number of entries in a tree view, each of which is referenced by
+a unique identifier. This concept is known as a <xref href="GUID-D099551B-6E99-5210-B44A-693012A29DD1.dita">dictionary
+file store</xref>. Each entry in the tree can represent an email account,
+folder of messages, message part and so on. </p> <p>Message Store is secured
+in a protected data-caged area of Message Server. Message Server allows multiple
+read-only and a single read-write access to a message in the Message Store
+at given time. It also accepts copy and delete requests from clients trusted
+with <codeph>WriteUserData</codeph> capability. When a copy or delete is requested,
+the message server first flags itself as unavailable and then locks the files
+before attempting to process them. </p> <p>Message settings are stored in
+the Central Repository and attachment information is stored in the Message
+Store. MTMs can create additional streams in the message store to hold MTM-specific
+message data. Usually, at least one stream is devoted to non-generic header
+information such as recipient information. </p> <p>When Message Server starts,
+the Message Store is created unless there is already a Message Store present.
+Message Server initially creates the Message Store with just a root entry
+and then creates standard folders defined in the <filepath>msgs.rsc</filepath> resource
+file. Finally the Message Server runs <filepath>mailinit.exe</filepath> to
+customise of the Message Store. The behaviour of <filepath>mailinit.exe</filepath> is
+defined by the UI family of the device, such as Series 60 or UIQ. However,
+the typical behaviour is to load each of the UI MTMs and allow each to perform
+any message type specific initialisation. For example, the SMS plug-in typically
+creates a default service entry. </p> </section>
+<section><title>API summary</title> <p>The storage abstractions through which
+client applications access the various types of storage are key to the Messaging
+Middleware module. </p> <ul>
+<li id="GUID-5F7B2622-1FCB-57AB-B98B-32BED95E4CA5"><p>The <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref> API
+access and acts on a particular Message Server entry. The main functions of
+this API are to provide means to: </p> <ul>
+<li id="GUID-A14A770E-2425-59C5-BCEC-A8C209B246CE"><p>access the various types
+of storage associated with an entry </p> </li>
+<li id="GUID-991A0D61-A67C-5BA0-B943-BFF5D60839B2"><p>discover and access
+other entries that the entry owns (its children) </p> </li>
+</ul> </li>
+<li id="GUID-40BDE827-355F-54E5-BFB3-DEF160FC8B4B"><p> <xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref> is
+similar to <xref href="GUID-85BBE389-81F7-3E2F-A789-446D9BE2CC49.dita"><apiname>CMsvEntry</apiname></xref>, but used only by Server MTMs. </p> </li>
+<li id="GUID-54D77E17-1B5E-529F-916B-A628DA022901"><p> <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> encapsulates
+an index entry the Message Server index. </p> </li>
+<li id="GUID-DDF9FB6B-02EB-5976-8072-95FCD25FED49"><p> <xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref> encapsulates
+an entry’s <xref href="GUID-8390D842-B8A3-5042-952D-73240DB30D6B.dita#GUID-8390D842-B8A3-5042-952D-73240DB30D6B/GUID-8E01ADD0-A706-54B2-8159-E65C33274C30">Message
+Store</xref>. </p> </li>
+<li id="GUID-A17D856C-EE8C-5339-9EE8-108D8AE1229F"><p> <xref href="GUID-4E2B0CEA-1EDA-3452-895D-3CE1B59FD8FD.dita"><apiname>MMsvAttachmentManager</apiname></xref> class
+is a pure virtual interface class that defines the APIs to be used for attachment
+management in the Messaging Framework. </p> </li>
+</ul> </section>
+<section><title>Typical uses</title> <ul>
+<li id="GUID-7669F08C-0D4A-5DB1-A965-EC6178B82568"><p>Configuring the Message
+Server ans Store </p> </li>
+<li id="GUID-B915A682-265E-58B9-A66A-DE9194685952"><p>Writing MTMs </p> </li>
+<li id="GUID-3DB37ED4-44D6-56EE-B8C0-D5BFD31567E4"><p>Searching and sorting
+messages </p> </li>
+<li id="GUID-7E268EA1-922D-5657-885A-298E29135603"><p>Processing emails in
+chunks </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-54AB166A-8B24-5065-92AD-5FC1BF3ED89C.dita"><linktext>Messaging
+Framework</linktext></link>
+<link href="GUID-44CF5471-564E-5790-935B-51193A4978D6.dita"><linktext>Message Server
+and Store Concepts</linktext></link>
+<link href="GUID-DD27A452-8B0F-5C6D-A2E6-FC21145468B6.dita"><linktext>Message Server
+and Store Tutorials</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-83A4D862-368E-5DCC-998E-90144BE18A22.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-83A4D862-368E-5DCC-998E-90144BE18A22.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-83A4D862-368E-5DCC-998E-90144BE18A22"><title>How to Override Default Authentication Handling</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>SIP provides a feature to the SIP client to handle authentication handling for services such as registration and session establishment. By default, this authentication challenge handling is handled by the SIP server using the digest mechanism. This mechanism is used by profile plug-ins that implement nondefault SIP behaviour which is also known as extensible Service Provider (xSP). </p> <p>These components are used when a SIP client handles authentication challenges independently. When an authentication problem is reported use <xref href="GUID-5ACD0BA9-66C7-31E8-844E-B39AE8691B2A.dita"><apiname>CSIPAuthorizationHeader</apiname></xref> and <xref href="GUID-3689FC15-B236-3B16-BAA5-70FF873DF3F1.dita"><apiname>CSIPProxyAuthorizationHeader</apiname></xref> objects to manipulate the registration or session initiation request headers. Then re-register a profile or reinitiate a session using the updated headers. </p> <p>To enable a client to override default authentication handling mechanisms, it must inform the SIP server by disabling the built-in security mechanism of the SIP using the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita#GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B/GUID-FA3D6B89-4B41-3A56-85FB-06168D0B7B7B"><apiname>CSIP::SetSecurityHandlingL()</apiname></xref> function. The client uses <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita#GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B/GUID-0A3DB5AB-60D3-3756-B9DD-85F2B466E892"><apiname>CSIP::IsSecurityHandlingEnabled()</apiname></xref> function to determine what is handling the authentication challenges. This function returns <codeph>ETrue</codeph> if the built-in security mechanism of the SIP is used. </p> <p>When a SIP client handles authentication challenges independently, it uses <xref href="GUID-5ACD0BA9-66C7-31E8-844E-B39AE8691B2A.dita"><apiname>CSIPAuthorizationHeader</apiname></xref> and <xref href="GUID-3689FC15-B236-3B16-BAA5-70FF873DF3F1.dita"><apiname>CSIPProxyAuthorizationHeader</apiname></xref> objects to manipulate the registration or session initiation request headers when an authentication problem is reported. Re-registration of a profile or reinitiating a session is done using the updated headers. </p> <p>In the following illustration the client handles authentication challenges related to the profile registration. All authentication errors are then forwarded to the xSP profile agent plug-in. When an error is reported to the plug-in, it runs a proprietary authentication procedure and tries to re-register the profile. </p> <p>The following illustration shows the call flow of handling authentication challenges while registering a SIP profile: </p> <fig id="GUID-5A8E6082-8DD1-5465-AC32-8D34F45C11FF"><title>
-          Call flow for handling 401 challenges using xSP profile agent plug-in 
-        </title> <image href="GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e340852_href.png" placement="inline"/></fig> <p>In the following illustration the client handles authentication challenges related to the session initiation. All the authentication errors are then forwarded to the xSP provider. When an error is reported to the provider, it runs a proprietary authentication procedure and tries to reinitiate the session. </p> <p>The following illustration shows the call flow of handling authentication challenges while establishing a session: </p> <fig id="GUID-03AEF001-D35A-5DA8-842D-5B20451F16ED"><title>
-          Call flow for handling 401 challenges using xSP provider 
-        </title> <image href="GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e340864_href.png" placement="inline"/></fig> <section><title>See also</title> <p> <xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita">How to use the SIP Client API</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-83A4D862-368E-5DCC-998E-90144BE18A22"><title>How to Override Default Authentication Handling</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>SIP provides a feature to the SIP client to handle authentication handling for services such as registration and session establishment. By default, this authentication challenge handling is handled by the SIP server using the digest mechanism. This mechanism is used by profile plug-ins that implement nondefault SIP behaviour which is also known as extensible Service Provider (xSP). </p> <p>These components are used when a SIP client handles authentication challenges independently. When an authentication problem is reported use <xref href="GUID-5ACD0BA9-66C7-31E8-844E-B39AE8691B2A.dita"><apiname>CSIPAuthorizationHeader</apiname></xref> and <xref href="GUID-3689FC15-B236-3B16-BAA5-70FF873DF3F1.dita"><apiname>CSIPProxyAuthorizationHeader</apiname></xref> objects to manipulate the registration or session initiation request headers. Then re-register a profile or reinitiate a session using the updated headers. </p> <p>To enable a client to override default authentication handling mechanisms, it must inform the SIP server by disabling the built-in security mechanism of the SIP using the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita#GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B/GUID-FA3D6B89-4B41-3A56-85FB-06168D0B7B7B"><apiname>CSIP::SetSecurityHandlingL()</apiname></xref> function. The client uses <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita#GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B/GUID-0A3DB5AB-60D3-3756-B9DD-85F2B466E892"><apiname>CSIP::IsSecurityHandlingEnabled()</apiname></xref> function to determine what is handling the authentication challenges. This function returns <codeph>ETrue</codeph> if the built-in security mechanism of the SIP is used. </p> <p>When a SIP client handles authentication challenges independently, it uses <xref href="GUID-5ACD0BA9-66C7-31E8-844E-B39AE8691B2A.dita"><apiname>CSIPAuthorizationHeader</apiname></xref> and <xref href="GUID-3689FC15-B236-3B16-BAA5-70FF873DF3F1.dita"><apiname>CSIPProxyAuthorizationHeader</apiname></xref> objects to manipulate the registration or session initiation request headers when an authentication problem is reported. Re-registration of a profile or reinitiating a session is done using the updated headers. </p> <p>In the following illustration the client handles authentication challenges related to the profile registration. All authentication errors are then forwarded to the xSP profile agent plug-in. When an error is reported to the plug-in, it runs a proprietary authentication procedure and tries to re-register the profile. </p> <p>The following illustration shows the call flow of handling authentication challenges while registering a SIP profile: </p> <fig id="GUID-5A8E6082-8DD1-5465-AC32-8D34F45C11FF"><title>
+          Call flow for handling 401 challenges using xSP profile agent plug-in 
+        </title> <image href="GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e334695_href.png" placement="inline"/></fig> <p>In the following illustration the client handles authentication challenges related to the session initiation. All the authentication errors are then forwarded to the xSP provider. When an error is reported to the provider, it runs a proprietary authentication procedure and tries to reinitiate the session. </p> <p>The following illustration shows the call flow of handling authentication challenges while establishing a session: </p> <fig id="GUID-03AEF001-D35A-5DA8-842D-5B20451F16ED"><title>
+          Call flow for handling 401 challenges using xSP provider 
+        </title> <image href="GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e334707_href.png" placement="inline"/></fig> <section><title>See also</title> <p> <xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita">How to use the SIP Client API</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08" xml:lang="en"><title>What
-are tables</title><shortdesc>This topic describes the structure of a table. A table is an item
-that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A table is a set of records. All records in a table are the same type.
-A table is also a container and an element. </p>
-<p>There are two types of table: </p>
-<ul>
-<li id="GUID-C7ECF6E7-7011-5C3C-892C-CD8A11258309"><p>a table that has records
-defined at system compile time - these records have named fields and are defined
-by Symbian platform. </p> </li>
-<li id="GUID-D7BCD0AA-ECCC-500C-991A-1484F4970A2A"><p>a table that consists
-of records defined at run time - these records are user defined records -
-they are not known to Symbian platform when Symbian platform is built. </p> </li>
-</ul>
-<section id="GUID-89CEA8F2-9B19-4283-B658-F832ED5ED4DE"><title>Tables that have records defined at system compile       
-   time</title> <p>A table that has records defined at system compile time
-is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSet</apiname></xref> <codeph>&lt;T&gt;</codeph>.
-The template parameter defines the record type. The template parameter is
-a Symbian platform defined record. </p> <p>You create a table
-object on the heap. You use the <codeph>new           (Eleave)</codeph> construction
-to create this object. </p> <fig id="GUID-6B7087D6-BA28-578D-8BF8-83FFC9486FB0">
-<image href="GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e86579_href.png" placement="inline"/>
-</fig> <p>The CommsDat API implements the table as an array of records and
-uses <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>RPointerArray</apiname></xref> <codeph>&lt;T&gt;</codeph> as
-the array. The CommsDat API implements <codeph>RPointerArray&lt;T&gt;</codeph> in
-the base class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSetBase</apiname></xref>, because
-this behaviour is common to all tables. Tools and applications can access
-the array and can use the sort behaviour provided by <codeph>RPointerArray&lt;T&gt;</codeph> to
-sort records. </p> </section>
-<section id="GUID-0FA81D0A-3CB9-41E7-AA21-0DB074A4AC2D"><title>Tables that have user defined records</title> <p>A table that
-has user defined records is represented by the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref>.
-The class has the behaviour that allows it to represent a record and a set
-of records. Internally, the class has an array that can contain the records. </p> <p>You
-use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::RecordFactoryL()</apiname></xref> factory
-function to create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref> object. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-83BE15D8-511F-592D-A93B-C71BD6FB1B08" xml:lang="en"><title>What
+are tables</title><shortdesc>This topic describes the structure of a table. A table is an item
+that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A table is a set of records. All records in a table are the same type.
+A table is also a container and an element. </p>
+<p>There are two types of table: </p>
+<ul>
+<li id="GUID-C7ECF6E7-7011-5C3C-892C-CD8A11258309"><p>a table that has records
+defined at system compile time - these records have named fields and are defined
+by Symbian platform. </p> </li>
+<li id="GUID-D7BCD0AA-ECCC-500C-991A-1484F4970A2A"><p>a table that consists
+of records defined at run time - these records are user defined records -
+they are not known to Symbian platform when Symbian platform is built. </p> </li>
+</ul>
+<section id="GUID-89CEA8F2-9B19-4283-B658-F832ED5ED4DE"><title>Tables that have records defined at system compile       
+   time</title> <p>A table that has records defined at system compile time
+is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSet</apiname></xref> <codeph>&lt;T&gt;</codeph>.
+The template parameter defines the record type. The template parameter is
+a Symbian platform defined record. </p> <p>You create a table
+object on the heap. You use the <codeph>new           (Eleave)</codeph> construction
+to create this object. </p> <fig id="GUID-6B7087D6-BA28-578D-8BF8-83FFC9486FB0">
+<image href="GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e79867_href.png" placement="inline"/>
+</fig> <p>The CommsDat API implements the table as an array of records and
+uses <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>RPointerArray</apiname></xref> <codeph>&lt;T&gt;</codeph> as
+the array. The CommsDat API implements <codeph>RPointerArray&lt;T&gt;</codeph> in
+the base class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSetBase</apiname></xref>, because
+this behaviour is common to all tables. Tools and applications can access
+the array and can use the sort behaviour provided by <codeph>RPointerArray&lt;T&gt;</codeph> to
+sort records. </p> </section>
+<section id="GUID-0FA81D0A-3CB9-41E7-AA21-0DB074A4AC2D"><title>Tables that have user defined records</title> <p>A table that
+has user defined records is represented by the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref>.
+The class has the behaviour that allows it to represent a record and a set
+of records. Internally, the class has an array that can contain the records. </p> <p>You
+use the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CommsDat::CCDRecordBase::RecordFactoryL()</apiname></xref> factory
+function to create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBGenericRecord</apiname></xref> object. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e65944_href.png has changed
Binary file Symbian3/SDK/Source/GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e71193_href.png has changed
--- a/Symbian3/SDK/Source/GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-845F3021-E3ED-4676-916A-75740886DCBD" xml:lang="en"><title>Providing
-a vertical list of selectable items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To provide a vertical list of selectable items using the Choice List API,
-follow the steps below:</p>
-<ol>
-<li id="GUID-7BC9F7F7-7C48-4D8B-AA78-E9F03B0037D1"><p>Link the AVKON libraries
-(<codeph>avkon.lib</codeph> and <codeph>eikcoctl.lib</codeph>) to the project
-file of the application.</p></li>
-<li id="GUID-2AAE484A-042E-413E-95C5-075213B1F9FD"><p>Provide an observer
-class that realizes the <codeph>McoeControlObserver</codeph> interface.</p></li>
-<li id="GUID-0DB766B5-F05E-4724-AEA3-3AD7ED200941"><p>Create an instance of
-the class <codeph>CAknChoiceList</codeph>.</p></li>
-<li id="GUID-02B3DF80-EBF2-463C-A347-256A2CEE08F6"><p>Add content to the created
-choice list instance.</p></li>
-<li id="GUID-4CBFB485-526E-4A94-B177-E7B8C89828F9"><p>Show the choice list.</p></li>
-<li id="GUID-1F3926D0-CCBE-4F16-98E2-8E6C0C0DA973"><p>Receive information
-from the choice list through the observer interface.</p></li>
-<li id="GUID-22CBB678-6954-42CF-8F8E-FA847A7FBEA9"><p>Delete the choice list.</p></li>
-</ol>
-<section id="GUID-046C0B82-B9A4-4123-9FDD-530A0232B252"><title>Indexing of
-items in the choice list</title><p>The client application is responsible for
-keeping track of item indexes in the choice list. The choice list component
-does not do this: it only returns the index of a list item.</p><p>The choice
-list items are indexed as follows:</p><ul>
-<li><p>When the items are added to the choice list from e.g. an array, the
-first item gets an index of 0.</p></li>
-<li><p>The other items added from the array get indexes 1, 2, 3 and so forth
-until the last item has received an index. Therefore, for example, in a list
-of four items, the items have indexes 0 - 3.</p></li>
-<li><p>If an item is added to the end of the list, it gets the next index
-number based on the number of items already in the list. For example, adding
-the fifth item in a four-item list results in that item having the index 4.</p></li>
-<li><p>If items are added to the middle of the list, the indexes of the items
-after the added items are shifted up accordingly. For example, if an item
-is added as the fourth item in a six-item list, the old fourth, fifth, and
-sixth items with indexes 3 - 5 get indexes 4 - 6.</p></li>
-<li><p>If an items is removed from the list, the indexes of the subsequent
-items in the list are shifted down accordingly. For example, if the second
-item is removed, the old third item becomes the second item and therefore
-gets an index of 1.</p></li>
-</ul></section>
-<section id="GUID-42664A41-C3D3-4DAF-802D-8A98B15984CA"><title>Use cases</title><fig id="GUID-7FFCC838-A49D-4A91-9480-3295B0E036B7">
-<title>Choice list API use cases</title>
-<image href="GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e77022_href.png" scale="60" placement="inline"/>
-</fig><p>To use a choice list in your application, implementing the following
-use cases is mandatory:</p><ul>
-<li><p><xref href="GUID-462239D1-4B40-4342-92DA-32AB0AF0D2F2.dita">Creating the
-choice list</xref></p></li>
-<li><p><xref href="GUID-17F3FFF4-00B8-492F-95BD-11AFF02CAAB2.dita">Adding items
-to the choice list</xref></p></li>
-<li><p><xref href="GUID-F2397B5A-0700-46D5-8E07-CBB9F769DA01.dita">Getting user
-selection from the choice list</xref></p></li>
-<li><p><xref href="GUID-A84EDC63-0A74-4B93-BED2-7BE273A6DDB3.dita">Deleting the
-choice list</xref></p></li>
-</ul><p>The following use cases are optional, allowing you to set additional
-properties for your choice list:</p><ul>
-<li><p><xref href="GUID-E332F544-0759-4C10-B29C-14AA5EAEBD49.dita">Showing the
-choice list</xref></p></li>
-<li><p><xref href="GUID-73DD8A9B-6F7A-4BF5-87A1-5D86662B30D3.dita">Removing items
-from the choice list</xref></p></li>
-<li><p><xref href="GUID-210606BE-A36C-4B65-B083-93F71024196C.dita">Setting the
-item selected when the choice list is opened</xref></p></li>
-</ul></section>
-<section id="GUID-6609939C-29EA-405B-9B53-3EF19BAE8230"><title>Main implementation
-files</title><p>The implementation file for the Choice list API is <codeph>aknchoicelist.h</codeph>.</p></section>
-</conbody><related-links>
-<link href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita"><linktext>Choice list
-API description</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-845F3021-E3ED-4676-916A-75740886DCBD" xml:lang="en"><title>Providing
+a vertical list of selectable items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To provide a vertical list of selectable items using the Choice List API,
+follow the steps below:</p>
+<ol>
+<li id="GUID-7BC9F7F7-7C48-4D8B-AA78-E9F03B0037D1"><p>Link the AVKON libraries
+(<codeph>avkon.lib</codeph> and <codeph>eikcoctl.lib</codeph>) to the project
+file of the application.</p></li>
+<li id="GUID-2AAE484A-042E-413E-95C5-075213B1F9FD"><p>Provide an observer
+class that realizes the <codeph>McoeControlObserver</codeph> interface.</p></li>
+<li id="GUID-0DB766B5-F05E-4724-AEA3-3AD7ED200941"><p>Create an instance of
+the class <codeph>CAknChoiceList</codeph>.</p></li>
+<li id="GUID-02B3DF80-EBF2-463C-A347-256A2CEE08F6"><p>Add content to the created
+choice list instance.</p></li>
+<li id="GUID-4CBFB485-526E-4A94-B177-E7B8C89828F9"><p>Show the choice list.</p></li>
+<li id="GUID-1F3926D0-CCBE-4F16-98E2-8E6C0C0DA973"><p>Receive information
+from the choice list through the observer interface.</p></li>
+<li id="GUID-22CBB678-6954-42CF-8F8E-FA847A7FBEA9"><p>Delete the choice list.</p></li>
+</ol>
+<section id="GUID-046C0B82-B9A4-4123-9FDD-530A0232B252"><title>Indexing of
+items in the choice list</title><p>The client application is responsible for
+keeping track of item indexes in the choice list. The choice list component
+does not do this: it only returns the index of a list item.</p><p>The choice
+list items are indexed as follows:</p><ul>
+<li><p>When the items are added to the choice list from e.g. an array, the
+first item gets an index of 0.</p></li>
+<li><p>The other items added from the array get indexes 1, 2, 3 and so forth
+until the last item has received an index. Therefore, for example, in a list
+of four items, the items have indexes 0 - 3.</p></li>
+<li><p>If an item is added to the end of the list, it gets the next index
+number based on the number of items already in the list. For example, adding
+the fifth item in a four-item list results in that item having the index 4.</p></li>
+<li><p>If items are added to the middle of the list, the indexes of the items
+after the added items are shifted up accordingly. For example, if an item
+is added as the fourth item in a six-item list, the old fourth, fifth, and
+sixth items with indexes 3 - 5 get indexes 4 - 6.</p></li>
+<li><p>If an items is removed from the list, the indexes of the subsequent
+items in the list are shifted down accordingly. For example, if the second
+item is removed, the old third item becomes the second item and therefore
+gets an index of 1.</p></li>
+</ul></section>
+<section id="GUID-42664A41-C3D3-4DAF-802D-8A98B15984CA"><title>Use cases</title><fig id="GUID-7FFCC838-A49D-4A91-9480-3295B0E036B7">
+<title>Choice list API use cases</title>
+<image href="GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e71873_href.png" scale="60" placement="inline"/>
+</fig><p>To use a choice list in your application, implementing the following
+use cases is mandatory:</p><ul>
+<li><p><xref href="GUID-462239D1-4B40-4342-92DA-32AB0AF0D2F2.dita">Creating the
+choice list</xref></p></li>
+<li><p><xref href="GUID-17F3FFF4-00B8-492F-95BD-11AFF02CAAB2.dita">Adding items
+to the choice list</xref></p></li>
+<li><p><xref href="GUID-F2397B5A-0700-46D5-8E07-CBB9F769DA01.dita">Getting user
+selection from the choice list</xref></p></li>
+<li><p><xref href="GUID-A84EDC63-0A74-4B93-BED2-7BE273A6DDB3.dita">Deleting the
+choice list</xref></p></li>
+</ul><p>The following use cases are optional, allowing you to set additional
+properties for your choice list:</p><ul>
+<li><p><xref href="GUID-E332F544-0759-4C10-B29C-14AA5EAEBD49.dita">Showing the
+choice list</xref></p></li>
+<li><p><xref href="GUID-73DD8A9B-6F7A-4BF5-87A1-5D86662B30D3.dita">Removing items
+from the choice list</xref></p></li>
+<li><p><xref href="GUID-210606BE-A36C-4B65-B083-93F71024196C.dita">Setting the
+item selected when the choice list is opened</xref></p></li>
+</ul></section>
+<section id="GUID-6609939C-29EA-405B-9B53-3EF19BAE8230"><title>Main implementation
+files</title><p>The implementation file for the Choice list API is <codeph>aknchoicelist.h</codeph>.</p></section>
+</conbody><related-links>
+<link href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita"><linktext>Choice list
+API description</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-84897583-A06F-42EE-917D-DF908B095AFF-master.png has changed
Binary file Symbian3/SDK/Source/GUID-84897583-A06F-42EE-917D-DF908B095AFF_d0e316089_href.png has changed
Binary file Symbian3/SDK/Source/GUID-84B088C0-7013-4B6A-BA34-8F022E38E822_d0e68775_href.png has changed
Binary file Symbian3/SDK/Source/GUID-84C75561-E082-4EFF-89A7-901361612CCA_d0e61144_href.png has changed
--- a/Symbian3/SDK/Source/GUID-85058500-87C5-457A-9567-ECAB29708759.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-85058500-87C5-457A-9567-ECAB29708759.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,84 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-85058500-87C5-457A-9567-ECAB29708759" xml:lang="en"><title>Lists
-in pop-up windows</title><shortdesc>Vertical lists are used extensively in most applications as part
-of the pop-up windows, to display the options available for a selected item.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>For the information on the available list types in pop-ups, refer to <xref href="GUID-114C52FE-C8C5-4418-9C73-CEBB228C7542.dita">List types section</xref></p>
-<fig id="GUID-9FD0C107-2ACA-4A49-B2E4-1EC9BD9EC347">
-<image href="GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e63102_href.png" placement="inline"/>
-</fig>
-<p><b>Design Guidelines</b> : Lists do not have permanent highlight in touch.
-For information on the list navigation, see <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> and <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref>. </p>
-<p>Tactile: For information about the feedback of list navigation, see <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> and <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref>. For pop-up
-related tactile feedback, refer to <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref>.</p>
-<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-8-1-6-1-1-5-1-11-1-1-9-1-3-5"><title>Default touch
-events for lists in pop-up windows</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback are given with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Item is activated.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on item</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside pop-up</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down, move and touch release with speed</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move outside the pop-up without releasing touch</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside the pop-up</p></entry>
-<entry><p>Inactive</p><p>Pop-up stays open if the pop-up has softkeys. Refer
-to <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref> for
-mode details.</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-85058500-87C5-457A-9567-ECAB29708759" xml:lang="en"><title>Lists
+in pop-up windows</title><shortdesc>Vertical lists are used extensively in most applications as part
+of the pop-up windows, to display the options available for a selected item.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-9FD0C107-2ACA-4A49-B2E4-1EC9BD9EC347">
+<image href="GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e57198_href.png" placement="inline"/>
+</fig>
+<p><b>Design Guidelines</b> : Lists do not have permanent highlight in touch.
+For information on the list navigation, see <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> and <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref>. </p>
+<p>Tactile: For information about the feedback of list navigation, see <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> and <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref>. For pop-up
+related tactile feedback, refer to <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref>.</p>
+<table id="GUID-5B8DA500-4092-4E1A-A035-308C4D352138-GENID-1-10-1-6-1-1-5-1-8-1-1-9-1-7-1-3-4"><title>Default touch
+events for lists in pop-up windows</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback are given with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Item is activated.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on item</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside pop-up</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down, move and touch release with speed</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move outside the pop-up without releasing touch</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside the pop-up</p></entry>
+<entry><p>Inactive</p><p>Pop-up stays open if the pop-up has softkeys. Refer
+to <xref href="GUID-3A923665-D003-461B-9332-28689CFB39E5.dita">Pop-ups</xref> for
+mode details.</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8526BBD8-CA70-4B3F-B91D-D70AF06440B2-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8526BBD8-CA70-4B3F-B91D-D70AF06440B2_d0e55432_href.png has changed
Binary file Symbian3/SDK/Source/GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e11153_href.png has changed
Binary file Symbian3/SDK/Source/GUID-85291DF3-C134-4231-938A-C20DD122AB7D_d0e12428_href.png has changed
Binary file Symbian3/SDK/Source/GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e250294_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-857A523E-E660-5AFA-98B1-3A5440A8372F_d0e254026_href.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-858ABC77-053B-5C45-A8EB-08C68506B193.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-858ABC77-053B-5C45-A8EB-08C68506B193" xml:lang="en"><title>VectorSprite: drawing sprites</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-5093CFF6-FDE3-4296-A358-A145162FEBE9"><title>Description</title> <p>The <filepath>VectorSprite</filepath> example creates a simple animated sprite (a rotating line), and
+creates the sprite's bitmaps by creating and drawing to off-screen
+bitmaps within the application. No redraw events are caused by the
+sprite. </p> </section>
+<section id="GUID-59D720EE-05BF-5AEF-80EF-8F1F665D78E9"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-19e4f34c-a58c-4b3b-a92f-d061230fbd70.zip" scope="external">VectorSprite.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-19e4f34c-a58c-4b3b-a92f-d061230fbd70.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-2880D9F7-3E8F-40F5-A3C4-8A5497C0043C"><title>Class Defined</title><p><b>CSprite</b>: Demonstrates
+how to use class RWsSprite by setting up the sprite members to contain
+bitmaps then appending them to the sprite. The bitmaps are off screen
+bitmaps drawn to using a graphics context</p></section>
+<section id="GUID-00480D2B-2E61-420E-A8E9-8DF6CA2D13EC"><title>Class Summary</title> <ul>
+<li id="GUID-78B02278-0415-59A8-AA8E-BA44DF472A8E"><p><xref href="GUID-20B1C5E7-8587-3528-9A33-C56D5C2A4C6F.dita"><apiname>RWsSpriteBase</apiname></xref>: Abstract base class for sprites </p> </li>
+<li id="GUID-8C9C1FA3-DA4B-55FA-96BB-ADEB77BA7D2B"><p><xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref>: Sprite </p> </li>
+<li id="GUID-DAF674CE-42A9-5437-A067-025662E9C0AC"><p><xref href="GUID-7F4E749E-D08D-3771-A3F1-9AEC5D16B78C.dita"><apiname>TSpriteMember</apiname></xref> : Sprite member </p> </li>
+<li id="GUID-86ED2C6A-197B-505B-9DB8-C46C1977E544"><p><xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> : Font-bitmap server bitmap </p> </li>
+<li id="GUID-7761BB55-458E-5423-9944-9FE77DB49DA3"><p><xref href="GUID-71D27EBD-26B8-3D51-9798-1EAD461BCBCF.dita"><apiname>CFbsBitmapDevice</apiname></xref> : FBS bitmap used as graphics device </p> </li>
+<li id="GUID-42DF19E5-9D3E-5434-915B-B1C66BB9775F"><p><xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref> : Graphics context for drawing </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,150 +1,150 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B" xml:lang="en"><title>Graphics
-Composition</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Composition is the process of putting together the output elements from
-various different sources to create the screen display that the end user sees
-on the device. </p>
-<p> <b>Variant</b>: ScreenPlay. </p>
-<p>In a multi-tasking device many of the activities taking place simultaneously
-generate output for display on the screen. Their output can include words,
-pictures, video, games and the screen furniture (scroll bars, buttons, icons,
-borders, tabs, menus, title bars) familiar to every computer user. </p>
-<p>Many of these output elements can appear at the same time, either next
-to each other or overlapping each other. They can be opaque, such that they
-obscure anything behind, or semi-transparent such that the elements underneath
-are partially visible. </p>
-<p>The diagram below illustrates how the display that the viewer sees (looking
-down from the top) is a two-dimensional representation composed from a series
-of layers. </p>
-<fig id="GUID-19D41F69-1264-5726-9CDD-C4DD0F231BE3">
-<title>           The display is an orthogonal view of a series of layers.
-         </title>
-<image href="GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e191278_href.png" placement="inline"/>
-</fig>
-<p>Composition requires: </p>
-<ul>
-<li id="GUID-7C593A87-268F-59E1-B295-9DE2A0DF3092"><p>Calculations based on
-the size, position, visibility, transparency and ordering of the layers to
-determine what will be displayed. This is a <b>logic</b> exercise referred
-to as UI Composition. </p> </li>
-<li id="GUID-B10758D4-8C30-5446-958D-0B81530B69BF"><p>Handling of image content,
-which is a <b>data processing</b> exercise referred to as Image Composition. </p> </li>
-</ul>
-<p>For this reason the two are handled separately. </p>
-<p><b>UI Composition </b> </p>
-<p>UI Composition is performed by the Window Server. Each application has
-its own window group containing all of its child windows. The Window Server
-keeps track of the windows' positions, sizes, visibilities, transparencies
-and z-order and is able to establish which windows, and which bits of each
-window, are visible. It ensures that each visible bit of window is kept up-to-date
-by calling its application when necessary. </p>
-<p><b>Image composition </b> </p>
-<p>Prior to the introduction of ScreenPlay the Window Server did rudimentary
-composition in its main thread and rendered composited output to the screen
-buffer using the GDI (Graphics Device Interface). To achieve high frame rates,
-applications typically bypassed the Window Server using Direct Screen Access
-(DSA) and animation DLLs. </p>
-<p>In <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> sources
-that generate complex graphical output render directly to graphics surfaces.
-The Window Server delegates the composition of surfaces to a composition engine
-that device creators can adapt to take advantage of graphics processing hardware. </p>
-<p>Although the composition engine runs in the Window Server's process, it
-is largely transparent to application developers and works quite differently.
-Instead of using windows, it uses surfaces to store pixel data and elements
-to manipulate size, position, z-order, visibility and transparency. </p>
-<p>While an element is a simple lightweight object, and easy to manipulate,
-a surface stores a large amount of data and its handling requires more consideration. </p>
-<p>The diagram below is a simplistic representation of how applications create
-output which is rendered, composited and displayed. </p>
-<fig id="GUID-9DF4C86A-C06D-5C5A-9AB6-E9991CC1937A">
-<title>           Graphics Composition          </title>
-<image href="GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e191342_href.png" placement="inline"/>
-</fig>
-<p>In a device with graphics acceleration hardware (a Graphics Processing
-Unit or GPU) there might, in addition to the memory managed by the CPU, be
-additional memory managed by the GPU. Image data may therefore be considered
-to have been <b>software rendered</b> (onto a surface in CPU memory) or <b>hardware
-rendered</b> (onto a surface in hardware accelerated GPU memory). The following
-diagram shows applications and other graphical data sources rendering to surfaces
-in software and hardware. </p>
-<fig id="GUID-2717F861-0045-5598-A3EC-7CF678BEFA70">
-<title>           Hardware rendered graphics - the wrong way!          </title>
-<image href="GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e191359_href.png" placement="inline"/>
-</fig>
-<p>The diagram, however, represents a system with several problem areas that
-would render it unsuitable for any practical implementation </p>
-<ul>
-<li id="GUID-AF13B0A1-3DC0-576D-81B1-6DF66AA9FA77"><p>In practice it is likely
-that once data has been rendered to hardware-managed memory it is, to all
-intents and purposes, unavailable to software: the CPU is unable to access
-it sufficiently quickly. The dotted paths on the diagram above must therefore
-be avoided. </p> </li>
-<li id="GUID-0B109999-94FE-5A5C-B0D0-D3F2157B5CC6"><p>Furthermore, GDI rendered
-data (the UI) is typically 'stored' as redrawing instructions rather than
-bitmapped pixel data—so rendering it to bitmaps before composition is likely
-to use a lot of memory unnecessarily. </p> </li>
-</ul>
-<p>In ScreenPlay, the UI is therefore composed and rendered onto a single
-surface before being composited with any other surfaces. This surface is termed
-the <b>UI surface</b> and is displayed on a layer placed in front of all of
-the others. In fact, the UI surface is created for the Window Server during
-system start up and is then passed to the composition components as a 'special
-case' surface for composition. </p>
-<section id="GUID-6E274D1A-E4CB-4980-B351-B396FEC48DB8"><title>Combining Window Server and Composition </title> <p>The compositing
-of surfaces according to their origin means that the physical composition
-process behaves differently from the logical composition process that is based
-on what the user and the UI are doing. Logically the windows in the UI and
-memory rendered surfaces may be on layers that are interleaved yet the memory
-rendered surfaces are physically composed behind. </p> <p>ScreenPlay addresses
-this issue by associating 'external' surfaces with windows in the Window Server
-using the <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita#GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34/GUID-4EBFFA14-418A-3A2A-B147-39BFC96CE45F"><apiname>RWindowBase::SetBackgroundSurface()</apiname></xref> method. This
-means that the Window Server is able to include them in its logical composition
-and make provision for them during data composition. A window with its background
-set to a surface in this way becomes transparent in the UI rendered UI surface. </p> <p>In
-most cases this is not apparent to the viewer. Surfaces that are physically
-composed behind the UI appear in the correct position on the two-dimensional
-display. The diagram below illustrates how Window Server-rendered UI content
-and external surfaces are composited using the UI surface. </p> <fig id="GUID-3448FD6B-9A39-58CD-8819-39B0B6CC4E13">
-<title>              Hardware composition and the Flattened UI            </title>
-<image href="GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e191406_href.png" placement="inline"/>
-</fig> <p>Although this method of composition is flexible and powerful, it
-does have some limitations, particularly with respect to semi-transparent
-hardware-accelerated surfaces. </p> <p>It is not possible, for example, to
-include a semi-transparent surface in front of the UI surface. In such cases
-the composition engine determines how the display is composed. </p> <p>Here
-is a second version of the diagram at the top of the page showing how the
-same composition might be achieved in practice. The UI menus, windows and
-dialogs are composited by the Window Server onto a single surface. The light
-green layer displays a hardware rendered surface so it is actually behind
-the layer on which it appears. </p> <fig id="GUID-1FB1194D-FCAE-534C-94DC-AF4CF00E3A1C">
-<title>              The UI surface            </title>
-<image href="GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e191423_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-41E9CA54-759F-5651-95F8-9F39808BE740"><title>Composition
-Examples</title> <p>This illustrations below illustrate the use of hardware
-accelerated surfaces and the UI surface </p> <fig id="GUID-8178DBA8-E10C-56F3-A828-80746CE6A993">
-<title>              Video rendered to a hardware accelerated surface mapped
-to a layer              behind the UI surface            </title>
-<image href="GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e191439_href.png" placement="inline"/>
-</fig> <fig id="GUID-51411B10-6DC3-5B74-BCEF-11EC1D0FBCA8">
-<title>              As above with a semi-transparent dialog on the UI surface
-           </title>
-<image href="GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e191447_href.png" placement="inline"/>
-</fig> </section>
-</conbody><related-links>
-<link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay
-Architecture</linktext></link>
-<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Hardware
-Acceleration</linktext></link>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B" xml:lang="en"><title>Graphics
+Composition</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Composition is the process of putting together the output elements from
+various different sources to create the screen display that the end user sees
+on the device. </p>
+<p> <b>Variant</b>: ScreenPlay. </p>
+<p>In a multi-tasking device many of the activities taking place simultaneously
+generate output for display on the screen. Their output can include words,
+pictures, video, games and the screen furniture (scroll bars, buttons, icons,
+borders, tabs, menus, title bars) familiar to every computer user. </p>
+<p>Many of these output elements can appear at the same time, either next
+to each other or overlapping each other. They can be opaque, such that they
+obscure anything behind, or semi-transparent such that the elements underneath
+are partially visible. </p>
+<p>The diagram below illustrates how the display that the viewer sees (looking
+down from the top) is a two-dimensional representation composed from a series
+of layers. </p>
+<fig id="GUID-19D41F69-1264-5726-9CDD-C4DD0F231BE3">
+<title>           The display is an orthogonal view of a series of layers.
+         </title>
+<image href="GUID-7F3F89C0-999A-552E-90BB-17D720C53DE6_d0e184682_href.png" placement="inline"/>
+</fig>
+<p>Composition requires: </p>
+<ul>
+<li id="GUID-7C593A87-268F-59E1-B295-9DE2A0DF3092"><p>Calculations based on
+the size, position, visibility, transparency and ordering of the layers to
+determine what will be displayed. This is a <b>logic</b> exercise referred
+to as UI Composition. </p> </li>
+<li id="GUID-B10758D4-8C30-5446-958D-0B81530B69BF"><p>Handling of image content,
+which is a <b>data processing</b> exercise referred to as Image Composition. </p> </li>
+</ul>
+<p>For this reason the two are handled separately. </p>
+<p><b>UI Composition </b> </p>
+<p>UI Composition is performed by the Window Server. Each application has
+its own window group containing all of its child windows. The Window Server
+keeps track of the windows' positions, sizes, visibilities, transparencies
+and z-order and is able to establish which windows, and which bits of each
+window, are visible. It ensures that each visible bit of window is kept up-to-date
+by calling its application when necessary. </p>
+<p><b>Image composition </b> </p>
+<p>Prior to the introduction of ScreenPlay the Window Server did rudimentary
+composition in its main thread and rendered composited output to the screen
+buffer using the GDI (Graphics Device Interface). To achieve high frame rates,
+applications typically bypassed the Window Server using Direct Screen Access
+(DSA) and animation DLLs. </p>
+<p>In <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> sources
+that generate complex graphical output render directly to graphics surfaces.
+The Window Server delegates the composition of surfaces to a composition engine
+that device creators can adapt to take advantage of graphics processing hardware. </p>
+<p>Although the composition engine runs in the Window Server's process, it
+is largely transparent to application developers and works quite differently.
+Instead of using windows, it uses surfaces to store pixel data and elements
+to manipulate size, position, z-order, visibility and transparency. </p>
+<p>While an element is a simple lightweight object, and easy to manipulate,
+a surface stores a large amount of data and its handling requires more consideration. </p>
+<p>The diagram below is a simplistic representation of how applications create
+output which is rendered, composited and displayed. </p>
+<fig id="GUID-9DF4C86A-C06D-5C5A-9AB6-E9991CC1937A">
+<title>           Graphics Composition          </title>
+<image href="GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e184746_href.png" placement="inline"/>
+</fig>
+<p>In a device with graphics acceleration hardware (a Graphics Processing
+Unit or GPU) there might, in addition to the memory managed by the CPU, be
+additional memory managed by the GPU. Image data may therefore be considered
+to have been <b>software rendered</b> (onto a surface in CPU memory) or <b>hardware
+rendered</b> (onto a surface in hardware accelerated GPU memory). The following
+diagram shows applications and other graphical data sources rendering to surfaces
+in software and hardware. </p>
+<fig id="GUID-2717F861-0045-5598-A3EC-7CF678BEFA70">
+<title>           Hardware rendered graphics - the wrong way!          </title>
+<image href="GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e184763_href.png" placement="inline"/>
+</fig>
+<p>The diagram, however, represents a system with several problem areas that
+would render it unsuitable for any practical implementation </p>
+<ul>
+<li id="GUID-AF13B0A1-3DC0-576D-81B1-6DF66AA9FA77"><p>In practice it is likely
+that once data has been rendered to hardware-managed memory it is, to all
+intents and purposes, unavailable to software: the CPU is unable to access
+it sufficiently quickly. The dotted paths on the diagram above must therefore
+be avoided. </p> </li>
+<li id="GUID-0B109999-94FE-5A5C-B0D0-D3F2157B5CC6"><p>Furthermore, GDI rendered
+data (the UI) is typically 'stored' as redrawing instructions rather than
+bitmapped pixel data—so rendering it to bitmaps before composition is likely
+to use a lot of memory unnecessarily. </p> </li>
+</ul>
+<p>In ScreenPlay, the UI is therefore composed and rendered onto a single
+surface before being composited with any other surfaces. This surface is termed
+the <b>UI surface</b> and is displayed on a layer placed in front of all of
+the others. In fact, the UI surface is created for the Window Server during
+system start up and is then passed to the composition components as a 'special
+case' surface for composition. </p>
+<section id="GUID-6E274D1A-E4CB-4980-B351-B396FEC48DB8"><title>Combining Window Server and Composition </title> <p>The compositing
+of surfaces according to their origin means that the physical composition
+process behaves differently from the logical composition process that is based
+on what the user and the UI are doing. Logically the windows in the UI and
+memory rendered surfaces may be on layers that are interleaved yet the memory
+rendered surfaces are physically composed behind. </p> <p>ScreenPlay addresses
+this issue by associating 'external' surfaces with windows in the Window Server
+using the <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita#GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34/GUID-4EBFFA14-418A-3A2A-B147-39BFC96CE45F"><apiname>RWindowBase::SetBackgroundSurface()</apiname></xref> method. This
+means that the Window Server is able to include them in its logical composition
+and make provision for them during data composition. A window with its background
+set to a surface in this way becomes transparent in the UI rendered UI surface. </p> <p>In
+most cases this is not apparent to the viewer. Surfaces that are physically
+composed behind the UI appear in the correct position on the two-dimensional
+display. The diagram below illustrates how Window Server-rendered UI content
+and external surfaces are composited using the UI surface. </p> <fig id="GUID-3448FD6B-9A39-58CD-8819-39B0B6CC4E13">
+<title>              Hardware composition and the Flattened UI            </title>
+<image href="GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e184810_href.png" placement="inline"/>
+</fig> <p>Although this method of composition is flexible and powerful, it
+does have some limitations, particularly with respect to semi-transparent
+hardware-accelerated surfaces. </p> <p>It is not possible, for example, to
+include a semi-transparent surface in front of the UI surface. In such cases
+the composition engine determines how the display is composed. </p> <p>Here
+is a second version of the diagram at the top of the page showing how the
+same composition might be achieved in practice. The UI menus, windows and
+dialogs are composited by the Window Server onto a single surface. The light
+green layer displays a hardware rendered surface so it is actually behind
+the layer on which it appears. </p> <fig id="GUID-1FB1194D-FCAE-534C-94DC-AF4CF00E3A1C">
+<title>              The UI surface            </title>
+<image href="GUID-79009102-0490-5C61-9722-C5EE49A1AF2B_d0e184827_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-41E9CA54-759F-5651-95F8-9F39808BE740"><title>Composition
+Examples</title> <p>This illustrations below illustrate the use of hardware
+accelerated surfaces and the UI surface </p> <fig id="GUID-8178DBA8-E10C-56F3-A828-80746CE6A993">
+<title>              Video rendered to a hardware accelerated surface mapped
+to a layer              behind the UI surface            </title>
+<image href="GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e184843_href.png" placement="inline"/>
+</fig> <fig id="GUID-51411B10-6DC3-5B74-BCEF-11EC1D0FBCA8">
+<title>              As above with a semi-transparent dialog on the UI surface
+           </title>
+<image href="GUID-4616CCC9-7BD3-5D91-873A-6027167329ED_d0e184851_href.png" placement="inline"/>
+</fig> </section>
+</conbody><related-links>
+<link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay
+Architecture</linktext></link>
+<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Hardware
+Acceleration</linktext></link>
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-85CA1089-3F58-5E82-86A4-4674C893B25F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-85CA1089-3F58-5E82-86A4-4674C893B25F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-85CA1089-3F58-5E82-86A4-4674C893B25F" xml:lang="en"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP Codec API provides functions to encode and decode SIP headers and
-their fields. It converts SIP messages from the UTF-8 ASCII format to the
-API implementations internal structure and from the API implementations internal
-structure to the UTF-8 ASCII format. This implementation validates the SIP
-message syntax according to the SIP BNF definition and supports serialization
-and de-serialization of objects belonging to the SIP message structure. </p>
-<p>This implementation is provided in a shared DLL and is run in the context
-of the user. It creates class instances in the user heap area which means
-the instances cannot be shared between different users. </p>
-<section id="GUID-CB250850-D04A-5993-B0C9-3CC1761C686B"><title>Architectural
-relationships</title> <p>The SIP Codec API does not require any interfaces. </p><p><b>Capability
-information</b> </p><p>There is no capability required when you use the SIP
-Codec API. This API is valid for all platforms running Symbian OS version
-9.1. </p><p><b>Extending the API</b> </p><p>SIP Codec API cannot be extended. </p> </section>
-<section id="GUID-D3DA4AFB-AE7F-5496-9DA2-B6FFA0A59DF0"><title>Class structure</title> <p>The
-logical type of the SIP Codec API is Library API. This interface contains
-synchronous functions that do not block, but return immediately and it uses
-only local objects. </p> <p>The following illustration shows the relationships
-of the SIP Codec API classes. </p> <fig id="GUID-B09DF64C-B185-54BA-A7C3-49B8E561DDCD">
-<title>                 Relationships of the SIP Codec classes - Part 1  
-            </title>
-<image href="GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e340929_href.jpg" placement="inline"/>
-</fig> <fig id="GUID-76054C58-E841-5103-AB33-27754D80B757">
-<title>                 Relationships of the SIP Codec classes - Part 2  
-            </title>
-<image href="GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e340938_href.jpg" placement="inline"/>
-</fig><p>The SIP Codec API defines the functions required to create the SIP
-headers of a SIP message. CSIPHeaderBase is the base class for all SIP headers.
-A client creates a new instance of the CSIPXHeader class, where “X” is the
-name of the header required, and sets the values of the header with the setter
-functions of this class.</p></section>
-<section id="GUID-99EFD964-C3AB-5974-8B13-913D271B3232"><title>Memory used</title> <p>The
-amount of memory used by every header object of the SIP Codec API is equivalent
-to the memory used by the header as text (class + the size of SIP headers). </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-85CA1089-3F58-5E82-86A4-4674C893B25F" xml:lang="en"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP Codec API provides functions to encode and decode SIP headers and
+their fields. It converts SIP messages from the UTF-8 ASCII format to the
+API implementations internal structure and from the API implementations internal
+structure to the UTF-8 ASCII format. This implementation validates the SIP
+message syntax according to the SIP BNF definition and supports serialization
+and de-serialization of objects belonging to the SIP message structure. </p>
+<p>This implementation is provided in a shared DLL and is run in the context
+of the user. It creates class instances in the user heap area which means
+the instances cannot be shared between different users. </p>
+<section id="GUID-CB250850-D04A-5993-B0C9-3CC1761C686B"><title>Architectural
+relationships</title> <p>The SIP Codec API does not require any interfaces. </p><p><b>Capability
+information</b> </p><p>There is no capability required when you use the SIP
+Codec API. This API is valid for all platforms running Symbian OS version
+9.1. </p><p><b>Extending the API</b> </p><p>SIP Codec API cannot be extended. </p> </section>
+<section id="GUID-D3DA4AFB-AE7F-5496-9DA2-B6FFA0A59DF0"><title>Class structure</title> <p>The
+logical type of the SIP Codec API is Library API. This interface contains
+synchronous functions that do not block, but return immediately and it uses
+only local objects. </p> <p>The following illustration shows the relationships
+of the SIP Codec API classes. </p> <fig id="GUID-B09DF64C-B185-54BA-A7C3-49B8E561DDCD">
+<title>                 Relationships of the SIP Codec classes - Part 1  
+            </title>
+<image href="GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e334772_href.jpg" placement="inline"/>
+</fig> <fig id="GUID-76054C58-E841-5103-AB33-27754D80B757">
+<title>                 Relationships of the SIP Codec classes - Part 2  
+            </title>
+<image href="GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e334781_href.jpg" placement="inline"/>
+</fig><p>The SIP Codec API defines the functions required to create the SIP
+headers of a SIP message. CSIPHeaderBase is the base class for all SIP headers.
+A client creates a new instance of the CSIPXHeader class, where “X” is the
+name of the header required, and sets the values of the header with the setter
+functions of this class.</p></section>
+<section id="GUID-99EFD964-C3AB-5974-8B13-913D271B3232"><title>Memory used</title> <p>The
+amount of memory used by every header object of the SIP Codec API is equivalent
+to the memory used by the header as text (class + the size of SIP headers). </p> </section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-85D006FA-EDCB-4BB4-8FD9-91C658B80DE7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-85D006FA-EDCB-4BB4-8FD9-91C658B80DE7" xml:lang="en"><title>Removed APIs</title><shortdesc>All the APIs removed from Symbian^3 are listed with changes
+required for the existing applications to work on Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following list summarizes the removed APIs:</p>
+<table id="GUID-1A133A2D-D803-4026-AF28-4A96DB25F42B-GENID-1-6-1-1-6-1-5-1-3-2">
+<tgroup cols="3"><colspec colname="col1" colwidth="0.34*"/><colspec colname="COLSPEC0" colwidth="1.66*"/><colspec colname="col2" colwidth="1.66*"/>
+<thead>
+<row>
+<entry>APIs</entry>
+<entry>Affected headers and libraries</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry>CDMA Support</entry>
+<entry><filepath>etelcdma.dll</filepath>, <filepath>etelcdmautils.dll</filepath>, and <filepath>cdmau.dll</filepath>.</entry>
+<entry>All APIs related to CDMA are removed. Device manufacturers
+who want to have Symbian-based CDMA products, must have their own
+CDMA implementation.</entry>
+</row>
+<row>
+<entry><codeph>CFontStore::RemoveLinkedFont()</codeph>, <codeph>CFontStore::IsValidLinkedFontSpecification()</codeph>, <codeph>CBitmapFont::FontWithCharacter()</codeph>, <codeph>CBitmapFont::IsLinkedFont()</codeph>, <codeph>CBitmapFont::LinkedFontInformation()</codeph>, <codeph>CBitmapFont::NextFontClientSpace()</codeph>, <codeph>CLinkedFontInformation</codeph>, <codeph>CLinkedFontSpecification</codeph>, <codeph>CLinkedFontForCache</codeph>, and <codeph>COpenFontForCache</codeph>.</entry>
+<entry><filepath>openfont.h</filepath> and <filepath>fntstr.dll</filepath></entry>
+<entry>All these linked font APIs have been removed. Remove all references
+to these APIs and rebuild the applications.</entry>
+</row>
+<row>
+<entry>Application Engines<ul>
+<li><p>Word Engine (<filepath>wngmodel.h</filepath>, <filepath>wngmodel.inl</filepath>, and <filepath>wngdoor.h</filepath>)</p></li>
+<li><p>Sheet Engine (<filepath>shgapi.h</filepath>, <filepath>shgerr.h</filepath>, <filepath>shgpanic.h</filepath>, <filepath>shgcoord.h</filepath>, <filepath>shgtoken.h</filepath>, <filepath>shgfmlex.h</filepath>, <filepath>shgfmevl.h</filepath>, and <filepath>shgfmvwr.h</filepath>)</p></li>
+<li><p>Chart Engine (<filepath>chtstd.h</filepath> and <filepath>chtstd.inl</filepath>)</p></li>
+<li><p>Text to Word Converter Engine</p></li>
+<li><p>Data Model Engine</p></li>
+</ul></entry>
+<entry><filepath>wpeng.dll</filepath>, <filepath>sheng.dll</filepath>, <filepath>chart.dll</filepath>, and <filepath>txtword.dll</filepath>.</entry>
+<entry>All these application engines are removed. Remove all references
+to the relevant APIs and rebuild the applications. </entry>
+</row>
+<row>
+<entry><codeph>CCHFContentHandler</codeph>, <codeph>CCHFDataSupplier</codeph>, <codeph>CCHFTopParent</codeph>, <codeph>CCHFContentLoader</codeph>, <codeph>CCHFProxySessionObject</codeph>, <codeph>CCHFSession</codeph>, <codeph>CCHFDiscoveryService</codeph>, <codeph>CCHFEventMappingService</codeph>, <codeph>RAbstractEventArray</codeph>, <codeph>MCHFContentLoaderObserver</codeph>, <codeph>MCHFDataSupplierObserver</codeph>, <codeph>MCHFDiscoveryService</codeph>, <codeph>MCHFEventMappingService</codeph>, and <codeph>MCHFParent;CFileDataSupplier</codeph>.</entry>
+<entry><filepath>chf.dll</filepath>, <filepath>filedatasupplier.dll</filepath>, and <filepath>filedatasupplier_shared.dll</filepath>.</entry>
+<entry>All Content Handling Framework APIs are removed. Remove all
+references to these APIs and rebuild the applications. </entry>
+</row>
+<row>
+<entry><codeph>MContactBackupObserver</codeph></entry>
+<entry><filepath>cntmodel.lib</filepath></entry>
+<entry>This API has been removed. Remove implementations of this API
+and rebuild applications.</entry>
+</row>
+<row>
+<entry><codeph>CClkDateTimeView</codeph>and <codeph>MClkModelObserver</codeph></entry>
+<entry/>
+<entry>These APIs have been removed as they were deprecated in the
+earlier platform releases.</entry>
+</row>
+<row>
+<entry><codeph>CVibraControl</codeph>, <codeph>TVibraCtrlPanic</codeph>, <codeph>MVibraControlObserver</codeph>, and <codeph>VibraFactory</codeph>.</entry>
+<entry><filepath>VibraCtrl.DLL</filepath></entry>
+<entry>This API has been removed as it was deprecated in earlier platform
+release. Use the <xref href="GUID-D78DCB72-7CEE-5075-A6FA-58D57AB5BA73.dita">HWRM Vibra API</xref> instead. </entry>
+</row>
+<row>
+<entry>Calendar Interim Utils API</entry>
+<entry><filepath>CalenInterimUtils.h</filepath> and <filepath>CalenInterimUtils.lib</filepath></entry>
+<entry>This API has been replaced with Calendar Interim Utils2 API
+in Symbian^3. So replace all your references to <filepath>CalenInterimUtils.h</filepath> and <filepath>CalenInterimUtils.lib</filepath> with <filepath>CalenInterimUtils2.h</filepath> and <filepath>CalenInterimUtils2.lib</filepath>, and build the application
+binaries.</entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-860DCACE-4C5A-508F-B94C-12336E96D1C7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-860DCACE-4C5A-508F-B94C-12336E96D1C7_d0e383173_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,103 +1,105 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658" xml:lang="en"><title>Tactile
-feedback client API</title><shortdesc>The Tactile feedback client API is used for producing tactile feedback
-for different touch events.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Tactile feedback client API is a library API that has been implemented
-with a client-server technique. A major part of the processing is done on
-the client side, and thus API calls don't necessarily generate a client-server
-transaction immediately. Instead for example, changes to area registry are
-buffered, and then transferred to server-side at once.</p>
-<p>You can use tactile feedback in, for example, the following cases:</p>
-<ul>
-<li>When the user starts to scroll with the scroll bar, user can feel and/or
-hear when the scroll bar thumb has been caught.</li>
-<li>When button is pressed, user can feel and/or hear the button being pressed.</li>
-</ul>
-<p>The concept of logical feedback type is very important from this API's
-point of view. </p>
-<p>In practice it means that, for example, you should not try to use this
-API for producing vibrator feedback only. Instead, logical feedback types
-such as "basic" or "sensitive" are used on this level, and the actual physical
-effect then depends on the settings and device configuration. This way the
-feedback works in a unified way from the end user point of view in the whole
-device.</p>
-<section id="GUID-44CAF194-6B6A-4661-AB29-88BF700BBC60"><p>For user experience
-guidelines on tactile feedback, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
-feedback</xref>.</p><p>For information on using the API, see <xref href="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita">Providing
-tactile feedback for touch events</xref>.</p><p>For the Tactile feedback client
-API classes and header files, see Classes and Definitions.</p></section>
-<section id="GUID-E44747A5-92BF-4D7A-895C-C469112A4D32"><title>API class structure</title><p>All
-functionality of the Tactile feedback client API is provided in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMTouchFeedback.html" format="application/java-archive"><codeph>MTouchFeedback</codeph></xref>.</p></section>
-<section id="GUID-0D0648C0-5AAE-48C1-82BD-025D6908E3B1"><title>Constraints</title><p>This
-API is valid for all platforms running on Symbian OS v9.4 or later.</p></section>
-<section id="GUID-E8D3D7BC-F365-45D7-A4AE-4393CF1B6795"><title>Error handling</title><p>The
-leave mechanism of Symbian environment is used to handle memory exhaustion.
-The panic mechanism is not used.</p> <p>The table below presents possible
-error conditions and responses to them.</p> <table id="GUID-E9186B9F-2C9B-4C09-B054-69D093BBE41D">
-<title>Possible error situations when using Tactile Feedback Client API</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Error situation</entry>
-<entry>Response</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrNoMemory</codeph> in
-case of an OOM situation.</entry>
-<entry>This error can usually be ignored by the application.</entry>
-</row>
-<row>
-<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrArgument</codeph></entry>
-<entry>The given <codeph>CCoeControl</codeph> pointer is a <codeph>NULL</codeph> pointer
-or the control does not have any window associated with it (the feedback area
-setting is attempted before <codeph>SetContainerWindow</codeph> has been called
-on the control).</entry>
-</row>
-<row>
-<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrNotSupported</codeph>.</entry>
-<entry>The given logical feedback type or triggering event type is out of
-range.</entry>
-</row>
-<row>
-<entry>A tactile feedback enabled control is moved with <codeph>CCoeControl::SetPosition</codeph>,
-but the feedback area is not moved.</entry>
-<entry>The control must override the <codeph>CCoeControl::PositionChanged</codeph> function,
-and update the feedback area there the same way as in the <codeph>SizeChanged</codeph> function.</entry>
-</row>
-<row>
-<entry>Area registry updates not are effective fast enough. This might happen
-in some applications which use very many frequently running active objects,
-so that the <codeph>CIdle</codeph> object used by the implementation of this
-API gets no change to run.</entry>
-<entry>Use the <codeph>FlushRegistryUpdates</codeph> function for forcing
-an update to the server side after doing all updates on the client side.</entry>
-</row>
-<row>
-<entry>A control's feedback areas are not automatically disabled when the
-control is dimmed.</entry>
-<entry><codeph>CCoeControl::SetMopParent</codeph> has not been called on the
-control, and thus the object provider hierarchy is broken.</entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-<section id="GUID-2190CCB3-0569-4A43-A300-BBE83AAD64B6"><title>Memory overhead</title><p>Using
-direct feedback does not cause additional memory overhead.</p> <p>Area registry
-based feedback consumes approximately 32 bytes for each feedback area.</p></section>
-<section id="GUID-F903AC63-2526-4767-B326-56D43344B23B"><title>Extensions
-to the API</title><p>New logical feedback types can be added in later releases.
-Otherwise the Tactile feedback client API does not explicitly support any
-kinds of extensions to it.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8661A7E0-F19A-41F8-9062-FBFAE70CF658" xml:lang="en"><title>Tactile
+feedback client API</title><shortdesc>The Tactile feedback client API is used for producing tactile feedback
+for different touch events.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Tactile feedback client API is a library API that has been implemented
+with a client-server technique. A major part of the processing is done on
+the client side, and thus API calls don't necessarily generate a client-server
+transaction immediately. Instead for example, changes to area registry are
+buffered, and then transferred to server-side at once.</p>
+<p>You can use tactile feedback in, for example, the following cases:</p>
+<ul>
+<li>When the user starts to scroll with the scroll bar, user can feel and/or
+hear when the scroll bar thumb has been caught.</li>
+<li>When button is pressed, user can feel and/or hear the button being pressed.</li>
+</ul>
+<p>The concept of logical feedback type is very important from this API's
+point of view. </p>
+<p>In practice it means that, for example, you should not try to use this
+API for producing vibrator feedback only. Instead, logical feedback types
+such as "basic" or "sensitive" are used on this level, and the actual physical
+effect then depends on the settings and device configuration. This way the
+feedback works in a unified way from the end user point of view in the whole
+device.</p>
+<section id="GUID-44CAF194-6B6A-4661-AB29-88BF700BBC60"><p>For user experience
+guidelines on tactile feedback, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
+feedback</xref>.</p><p>For information on using the API, see <xref href="GUID-786D76B7-B827-43B7-8202-BA7A7E5EE03E.dita">Providing
+tactile feedback for touch events</xref>.</p><p>For the Tactile feedback client
+API classes and header files, see Classes and Definitions.</p></section>
+<section id="GUID-E44747A5-92BF-4D7A-895C-C469112A4D32"><title>API class structure</title><p>All
+functionality of the Tactile feedback client API is provided in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMTouchFeedback.html" format="application/java-archive"><codeph>MTouchFeedback</codeph></xref>.</p></section>
+<section id="GUID-2C1211DF-0E59-44C1-B7D7-94C17E7F5ABD"><title>Changes and release information</title><p>The Tactile feedback
+client API is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-0D0648C0-5AAE-48C1-82BD-025D6908E3B1"><title>Constraints</title><p>This
+API is valid for all platforms running on Symbian OS v9.4 or later.</p></section>
+<section id="GUID-E8D3D7BC-F365-45D7-A4AE-4393CF1B6795"><title>Error handling</title><p>The
+leave mechanism of Symbian environment is used to handle memory exhaustion.
+The panic mechanism is not used.</p> <p>The table below presents possible
+error conditions and responses to them.</p> <table id="GUID-E9186B9F-2C9B-4C09-B054-69D093BBE41D">
+<title>Possible error situations when using Tactile Feedback Client API</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Error situation</entry>
+<entry>Response</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrNoMemory</codeph> in
+case of an OOM situation.</entry>
+<entry>This error can usually be ignored by the application.</entry>
+</row>
+<row>
+<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrArgument</codeph></entry>
+<entry>The given <codeph>CCoeControl</codeph> pointer is a <codeph>NULL</codeph> pointer
+or the control does not have any window associated with it (the feedback area
+setting is attempted before <codeph>SetContainerWindow</codeph> has been called
+on the control).</entry>
+</row>
+<row>
+<entry><codeph>SetFeedbackArea</codeph> returns <codeph>KErrNotSupported</codeph>.</entry>
+<entry>The given logical feedback type or triggering event type is out of
+range.</entry>
+</row>
+<row>
+<entry>A tactile feedback enabled control is moved with <codeph>CCoeControl::SetPosition</codeph>,
+but the feedback area is not moved.</entry>
+<entry>The control must override the <codeph>CCoeControl::PositionChanged</codeph> function,
+and update the feedback area there the same way as in the <codeph>SizeChanged</codeph> function.</entry>
+</row>
+<row>
+<entry>Area registry updates not are effective fast enough. This might happen
+in some applications which use very many frequently running active objects,
+so that the <codeph>CIdle</codeph> object used by the implementation of this
+API gets no change to run.</entry>
+<entry>Use the <codeph>FlushRegistryUpdates</codeph> function for forcing
+an update to the server side after doing all updates on the client side.</entry>
+</row>
+<row>
+<entry>A control's feedback areas are not automatically disabled when the
+control is dimmed.</entry>
+<entry><codeph>CCoeControl::SetMopParent</codeph> has not been called on the
+control, and thus the object provider hierarchy is broken.</entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section id="GUID-2190CCB3-0569-4A43-A300-BBE83AAD64B6"><title>Memory overhead</title><p>Using
+direct feedback does not cause additional memory overhead.</p> <p>Area registry
+based feedback consumes approximately 32 bytes for each feedback area.</p></section>
+<section id="GUID-F903AC63-2526-4767-B326-56D43344B23B"><title>Extensions
+to the API</title><p>New logical feedback types can be added in later releases.
+Otherwise the Tactile feedback client API does not explicitly support any
+kinds of extensions to it.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8675AC01-E2D8-425C-899F-12BE99345AA9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8675AC01-E2D8-425C-899F-12BE99345AA9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,163 +1,163 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8675AC01-E2D8-425C-899F-12BE99345AA9" xml:lang="en"><title>C++
-and Machine Architecture</title><shortdesc>The C++ language, following its foundation in C, is close to the
-machine architecture. This allows applications to be implemented efficiently,
-but, especially for developers new to the language, presents some issues of
-which you need to be aware. This topic reviews the basic language features
-from this perspective, and discusses how the resulting issues are handled.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4E54823B-31A2-4FFB-997D-6FF6056F2643">       <title>Arithmetic types</title>       <p>An <codeph>int</codeph> is
-usually implemented as the natural machine word size of the particular implementation.
-This is 32 bits in most modern machines. It was 16 bits in older machines,
-and in a few machines it may even be 64 bits.     </p><p>Similarly, a pointer
-(a <codeph>void*</codeph>, for instance) is usually implemented as a machine
-word but, in some machines with special architectures, a pointer may be more
-complex.     </p><p>It is assumed that Symbian is implemented on a machine
-with a 32-bit or greater machine word, and 32-bit pointers. The types <codeph>TInt</codeph> and <codeph>TUint</codeph> are<codeph> typedefed</codeph> onto the built-in <codeph>int</codeph> and <codeph>unsigned int</codeph> types,
-and are guaranteed to be at least 32 bits.     </p><p>When you need a specific
-size, regardless of implementation, use a sized type. Several of these are
-available: </p><table id="GUID-8E1CEF20-AF41-4980-AA56-5CBF2B7F6A9E">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<tbody>
-<row>
-<entry><p><codeph>TInt32</codeph>, <codeph>TUint32</codeph> </p> </entry>
-<entry><p>32-bit signed and unsigned integer</p>    <p> In each case, the
-representation is a 32-bit machine word which, in the ARM architecture, must
-be aligned to a four-byte boundary. The compiler ensures that this is always
-the case.</p>  </entry>
-</row>
-<row>
-<entry><p><codeph>TInt8</codeph>, <codeph>TUint8</codeph>, <codeph>TText8</codeph></p>  </entry>
-<entry><p>8-bit signed and unsigned integer, and 8-bit character     </p><p>In
-each case, the representation is an 8-bit byte, which has no specific alignment
-requirements.  </p></entry>
-</row>
-<row>
-<entry><p><codeph>TInt16</codeph>, <codeph>TUint16</codeph>, <codeph>TText16</codeph> </p></entry>
-<entry><p>16-bit signed and unsigned integer, and 16-bit character     </p><p>In
-each case, the representation is a 16-bit halfword, which should be aligned
-to a two-byte boundary.  </p></entry>
-</row>
-<row>
-<entry><p><codeph>TInt64</codeph>, <codeph>TUint64</codeph>  </p></entry>
-<entry><p>64-bit signed and unsigned integer     </p><p>These are typedefed
-to appropriate built-in types for the compiler being used (long long, and
-unsigned long long for ARM RVCT).  </p></entry>
-</row>
-<row>
-<entry><p><codeph>TReal</codeph>, <codeph>TReal64</codeph> </p></entry>
-<entry><p>Double-precision floating point, IEEE754 64-bit representation 
-   This is the floating-point type recommended for general use.     </p><p>You
-are recommended to perform operations in integer arithmetic if possible (for
-instance, most GUI calculations), and to use floating-point only when the
-problem demands it (for instance, a spreadsheet application).     </p><p>On
-processors that have floating point hardware, the compiler generates host
-instructions which use that hardware directly. On processors which don't have
-a floating point unit, the compiler implements the calculations in software.
- </p></entry>
-</row>
-<row>
-<entry><p><codeph>TReal32</codeph> </p></entry>
-<entry><p>32-bit floating point     </p><p>This is smaller and quicker, but
-should only be used when space and/or time are at a true premium, as its precision
-is unsatisfactory for many applications.  </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>     </section>
-<section id="GUID-A89DBA31-B739-48E3-92E1-E00F50029269"><title>Compound types</title><p>Apart from classes, C++ inherits
-from C various other types of compounding.     </p><p>A struct maps an area
-of memory: </p><codeblock xml:space="preserve">struct TEg
-    {
-    TInt iInt; // offset 0, 4 bytes
-    TText8 iText; // offset 4, 1 byte
-        // 3 wasted bytes
-    TReal iReal; // offset 8, 8 bytes
-    } // total length = 16 bytes</codeblock><fig id="GUID-70477651-EC14-4321-ACA5-79CEE4AEC69E">
-<image href="GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e5815_href.png" placement="inline"/>
-</fig><p>Structures are regarded as <codeph>T</codeph> types: that is they
-may not own heap-allocated resources such as <codeph>C</codeph> type classes.
-    </p><p>An array contains many built-ins or other types </p><codeblock xml:space="preserve">TInt a[32]; // 32 TInts, = 128 bytes  
-S b[3]; // 3 Ss, = 48 bytes </codeblock><p>The main disadvantage of using
-C++ arrays is that there is no automatic checking of index values. For this
-reason, and to support more complex containers, C++ has evolved the Standard
-Template Library (STL). Symbian does not use STL, but provides its own range
-of efficient container classes, for fixed, dynamic, and associative arrays.
-For details, see <xref href="GUID-2F64B579-73D3-548A-9104-16483AF77BCB.dita">Dynamic
-Arrays</xref>. </p></section>
-<section id="GUID-F925F040-C1A3-420A-A9A9-BDFBCDA212B2"><title>Pointers</title><p>A pointer is a memory address. If you can
-take the address of an object, then you can refer to it by pointer:</p><codeblock xml:space="preserve">S* ps; // pointer to an S
-ps=&amp;s // take address of existing S
-</codeblock><p>A pointer is a 32-bit machine word, and could point to anything.</p><fig id="GUID-D33AB198-0B62-4391-B86D-088595AE6B8B">
-<image href="GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e5846_href.png" placement="inline"/>
-</fig><p>The specifier is placed next to the type rather than the name.   </p><p>There
-is often a need to refer to memory as anything: for this, a <codeph>void*</codeph> pointer
-is used in C++. In Symbian, a <codeph>TAny*</codeph> may be referred to instead.
-A <codeph>TAny*</codeph> is a pointer to anything. </p></section>
-<section id="GUID-51EBCCA6-8E19-43CC-819E-8A7F0560DE4C"><title>Strings</title><p>In C++, the basic string is an array of
-characters:</p><codeblock xml:space="preserve">char* hello="hello";</codeblock><p>This statement
-does two things: firstly, it sets aside six bytes of memory containing the
-characters 'h', 'e', 'l', 'l', 'o', '\0'. Secondly, it sets the pointer hello
-to contain the address of the first of those bytes. </p><fig id="GUID-08C1AF40-8D93-414E-B103-1E57AB17480F">
-<image href="GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e5873_href.png" placement="inline"/>
-</fig><p>Functions accessing the string rely on this address as its starting
-point, and the terminating <codeph>\0</codeph> to indicate its end. Functions
-which manipulate the string must either deliberately not extend it, or must
-have some cue as to the amount of memory reserved for the string (beyond the
-trailing<codeph>\0</codeph>) so they know how much it can be extended. This
-leads to an awkward programming style, and every C++ library provides a way
-to manipulate strings more elegantly. The Symbian platform solution is <i>descriptors</i>:
-these are introduced in <xref href="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita">Descriptors</xref></p></section>
-<section id="GUID-9D9ED4A6-5C8A-4369-BCFB-0082A3A97599"><title>Functions</title><p>Functions are a piece of code which can
-be called and executed from anywhere else in a program. The stack is used
-to pass parameters and to contain local variables. The stack is often augmented
-by machine registers, especially in a register-rich processor such as the
-ARM, so that memory is often not used. But, conceptually, there is a stack,
-and for the purposes of this explanation it is convenient to consider the
-stack as if it were implemented entirely in memory.   </p><p>Parameters are
-passed by copying or evaluating onto the called functions stack frame. It
-is bad practice to pass large parameters, such as an entire struct, or, in
-fact, anything beyond two machine words in size, because this involves excessive
-copying. Instead, a pointer or a reference should be used to pass the address,
-instead of the data itself.   </p><p>In a multi-tasking system such as Symbian,
-each thread has its own stack, which is a pre-allocated area of memory. Each
-function then allocates its own frame from the stack on entry, and de-allocates
-it on exit. The advantage of the stack mechanism is that allocation and de-allocation
-are very rapid indeed— just a couple of instructions. Also, the lifetime of
-any variable on the stack is very well defined: it is the lifetime of its
-owning function, or, in fact, its owning block, since functions may have blocks
-within them.   </p><p>When a function returns, its stack memory is still there:
-it is just not allocated. The stack memory will be re-used by the next function
-that is called. A potential source of error is to allocate an object on a
-functions stack frame, and then return a pointer to it: </p><codeblock xml:space="preserve">TEg* foo()
-    {
-    TEg s;
-    TEg* ps=&amp;s
-    return ps; // !! error !!
-    }
-</codeblock><p>This pointer will not be valid for long, because the memory
-will be re-used when the next function is called. You should never allow this
-to happen. This error is so obvious that a compiler will trap it. But it can
-occur in more subtle forms: </p><codeblock xml:space="preserve">foo(CContainer* aContainer)
-    {
-    TEg s;
-    TEg* ps=&amp;s
-    aContainer-&gt;iMember=ps;
-    }
-</codeblock><p>These cannot be trapped so easily. </p></section>
-<section id="GUID-19A4F40C-1177-4F71-B547-A00DE447CF55"><title>Heap</title><p>Each thread also has a heap. You can allocate
-and de-allocate objects on the heap at will, and refer to them by pointer.
-The benefit of a heap is that the lifetime of an object is entirely within
-your control. This power comes with responsibility: you must not forget to
-de-allocate objects once you have finished with them, and you must not use
-pointers to objects that have been de-allocated. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8675AC01-E2D8-425C-899F-12BE99345AA9" xml:lang="en"><title>C++
+and Machine Architecture</title><shortdesc>The C++ language, following its foundation in C, is close to the
+machine architecture. This allows applications to be implemented efficiently,
+but, especially for developers new to the language, presents some issues of
+which you need to be aware. This topic reviews the basic language features
+from this perspective, and discusses how the resulting issues are handled.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4E54823B-31A2-4FFB-997D-6FF6056F2643">       <title>Arithmetic types</title>       <p>An <codeph>int</codeph> is
+usually implemented as the natural machine word size of the particular implementation.
+This is 32 bits in most modern machines. It was 16 bits in older machines,
+and in a few machines it may even be 64 bits.     </p><p>Similarly, a pointer
+(a <codeph>void*</codeph>, for instance) is usually implemented as a machine
+word but, in some machines with special architectures, a pointer may be more
+complex.     </p><p>It is assumed that Symbian is implemented on a machine
+with a 32-bit or greater machine word, and 32-bit pointers. The types <codeph>TInt</codeph> and <codeph>TUint</codeph> are<codeph> typedefed</codeph> onto the built-in <codeph>int</codeph> and <codeph>unsigned int</codeph> types,
+and are guaranteed to be at least 32 bits.     </p><p>When you need a specific
+size, regardless of implementation, use a sized type. Several of these are
+available: </p><table id="GUID-8E1CEF20-AF41-4980-AA56-5CBF2B7F6A9E">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p><codeph>TInt32</codeph>, <codeph>TUint32</codeph> </p> </entry>
+<entry><p>32-bit signed and unsigned integer</p>    <p> In each case, the
+representation is a 32-bit machine word which, in the ARM architecture, must
+be aligned to a four-byte boundary. The compiler ensures that this is always
+the case.</p>  </entry>
+</row>
+<row>
+<entry><p><codeph>TInt8</codeph>, <codeph>TUint8</codeph>, <codeph>TText8</codeph></p>  </entry>
+<entry><p>8-bit signed and unsigned integer, and 8-bit character     </p><p>In
+each case, the representation is an 8-bit byte, which has no specific alignment
+requirements.  </p></entry>
+</row>
+<row>
+<entry><p><codeph>TInt16</codeph>, <codeph>TUint16</codeph>, <codeph>TText16</codeph> </p></entry>
+<entry><p>16-bit signed and unsigned integer, and 16-bit character     </p><p>In
+each case, the representation is a 16-bit halfword, which should be aligned
+to a two-byte boundary.  </p></entry>
+</row>
+<row>
+<entry><p><codeph>TInt64</codeph>, <codeph>TUint64</codeph>  </p></entry>
+<entry><p>64-bit signed and unsigned integer     </p><p>These are typedefed
+to appropriate built-in types for the compiler being used (long long, and
+unsigned long long for ARM RVCT).  </p></entry>
+</row>
+<row>
+<entry><p><codeph>TReal</codeph>, <codeph>TReal64</codeph> </p></entry>
+<entry><p>Double-precision floating point, IEEE754 64-bit representation 
+   This is the floating-point type recommended for general use.     </p><p>You
+are recommended to perform operations in integer arithmetic if possible (for
+instance, most GUI calculations), and to use floating-point only when the
+problem demands it (for instance, a spreadsheet application).     </p><p>On
+processors that have floating point hardware, the compiler generates host
+instructions which use that hardware directly. On processors which don't have
+a floating point unit, the compiler implements the calculations in software.
+ </p></entry>
+</row>
+<row>
+<entry><p><codeph>TReal32</codeph> </p></entry>
+<entry><p>32-bit floating point     </p><p>This is smaller and quicker, but
+should only be used when space and/or time are at a true premium, as its precision
+is unsatisfactory for many applications.  </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>     </section>
+<section id="GUID-A89DBA31-B739-48E3-92E1-E00F50029269"><title>Compound types</title><p>Apart from classes, C++ inherits
+from C various other types of compounding.     </p><p>A struct maps an area
+of memory: </p><codeblock xml:space="preserve">struct TEg
+    {
+    TInt iInt; // offset 0, 4 bytes
+    TText8 iText; // offset 4, 1 byte
+        // 3 wasted bytes
+    TReal iReal; // offset 8, 8 bytes
+    } // total length = 16 bytes</codeblock><fig id="GUID-70477651-EC14-4321-ACA5-79CEE4AEC69E">
+<image href="GUID-7E801A44-4509-5AC0-88D5-7DEA1AF7969D_d0e7090_href.png" placement="inline"/>
+</fig><p>Structures are regarded as <codeph>T</codeph> types: that is they
+may not own heap-allocated resources such as <codeph>C</codeph> type classes.
+    </p><p>An array contains many built-ins or other types </p><codeblock xml:space="preserve">TInt a[32]; // 32 TInts, = 128 bytes  
+S b[3]; // 3 Ss, = 48 bytes </codeblock><p>The main disadvantage of using
+C++ arrays is that there is no automatic checking of index values. For this
+reason, and to support more complex containers, C++ has evolved the Standard
+Template Library (STL). Symbian does not use STL, but provides its own range
+of efficient container classes, for fixed, dynamic, and associative arrays.
+For details, see <xref href="GUID-2F64B579-73D3-548A-9104-16483AF77BCB.dita">Dynamic
+Arrays</xref>. </p></section>
+<section id="GUID-F925F040-C1A3-420A-A9A9-BDFBCDA212B2"><title>Pointers</title><p>A pointer is a memory address. If you can
+take the address of an object, then you can refer to it by pointer:</p><codeblock xml:space="preserve">S* ps; // pointer to an S
+ps=&amp;s // take address of existing S
+</codeblock><p>A pointer is a 32-bit machine word, and could point to anything.</p><fig id="GUID-D33AB198-0B62-4391-B86D-088595AE6B8B">
+<image href="GUID-045F3455-2B5A-5B20-ABCE-ED202DC5078A_d0e7121_href.png" placement="inline"/>
+</fig><p>The specifier is placed next to the type rather than the name.   </p><p>There
+is often a need to refer to memory as anything: for this, a <codeph>void*</codeph> pointer
+is used in C++. In Symbian, a <codeph>TAny*</codeph> may be referred to instead.
+A <codeph>TAny*</codeph> is a pointer to anything. </p></section>
+<section id="GUID-51EBCCA6-8E19-43CC-819E-8A7F0560DE4C"><title>Strings</title><p>In C++, the basic string is an array of
+characters:</p><codeblock xml:space="preserve">char* hello="hello";</codeblock><p>This statement
+does two things: firstly, it sets aside six bytes of memory containing the
+characters 'h', 'e', 'l', 'l', 'o', '\0'. Secondly, it sets the pointer hello
+to contain the address of the first of those bytes. </p><fig id="GUID-08C1AF40-8D93-414E-B103-1E57AB17480F">
+<image href="GUID-512D0DA7-0BC2-534F-9233-11F46D285CA6_d0e7148_href.png" placement="inline"/>
+</fig><p>Functions accessing the string rely on this address as its starting
+point, and the terminating <codeph>\0</codeph> to indicate its end. Functions
+which manipulate the string must either deliberately not extend it, or must
+have some cue as to the amount of memory reserved for the string (beyond the
+trailing<codeph>\0</codeph>) so they know how much it can be extended. This
+leads to an awkward programming style, and every C++ library provides a way
+to manipulate strings more elegantly. The Symbian platform solution is <i>descriptors</i>:
+these are introduced in <xref href="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita">Descriptors</xref></p></section>
+<section id="GUID-9D9ED4A6-5C8A-4369-BCFB-0082A3A97599"><title>Functions</title><p>Functions are a piece of code which can
+be called and executed from anywhere else in a program. The stack is used
+to pass parameters and to contain local variables. The stack is often augmented
+by machine registers, especially in a register-rich processor such as the
+ARM, so that memory is often not used. But, conceptually, there is a stack,
+and for the purposes of this explanation it is convenient to consider the
+stack as if it were implemented entirely in memory.   </p><p>Parameters are
+passed by copying or evaluating onto the called functions stack frame. It
+is bad practice to pass large parameters, such as an entire struct, or, in
+fact, anything beyond two machine words in size, because this involves excessive
+copying. Instead, a pointer or a reference should be used to pass the address,
+instead of the data itself.   </p><p>In a multi-tasking system such as Symbian,
+each thread has its own stack, which is a pre-allocated area of memory. Each
+function then allocates its own frame from the stack on entry, and de-allocates
+it on exit. The advantage of the stack mechanism is that allocation and de-allocation
+are very rapid indeed— just a couple of instructions. Also, the lifetime of
+any variable on the stack is very well defined: it is the lifetime of its
+owning function, or, in fact, its owning block, since functions may have blocks
+within them.   </p><p>When a function returns, its stack memory is still there:
+it is just not allocated. The stack memory will be re-used by the next function
+that is called. A potential source of error is to allocate an object on a
+functions stack frame, and then return a pointer to it: </p><codeblock xml:space="preserve">TEg* foo()
+    {
+    TEg s;
+    TEg* ps=&amp;s
+    return ps; // !! error !!
+    }
+</codeblock><p>This pointer will not be valid for long, because the memory
+will be re-used when the next function is called. You should never allow this
+to happen. This error is so obvious that a compiler will trap it. But it can
+occur in more subtle forms: </p><codeblock xml:space="preserve">foo(CContainer* aContainer)
+    {
+    TEg s;
+    TEg* ps=&amp;s
+    aContainer-&gt;iMember=ps;
+    }
+</codeblock><p>These cannot be trapped so easily. </p></section>
+<section id="GUID-19A4F40C-1177-4F71-B547-A00DE447CF55"><title>Heap</title><p>Each thread also has a heap. You can allocate
+and de-allocate objects on the heap at will, and refer to them by pointer.
+The benefit of a heap is that the lifetime of an object is entirely within
+your control. This power comes with responsibility: you must not forget to
+de-allocate objects once you have finished with them, and you must not use
+pointers to objects that have been de-allocated. </p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8" xml:lang="en"><title>System
-events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>System events are enumerated in <xref href="GUID-95954F7F-E214-309C-AF32-3A9BD77BDC31.dita"><apiname>TApaSystemEvent</apiname></xref>,
-which is defined in the <parmname>apgtask.h</parmname>. You must override <xref href="GUID-92361912-7768-3D2C-835E-BD3EF1366D6D.dita#GUID-92361912-7768-3D2C-835E-BD3EF1366D6D/GUID-71190B7E-A39E-3F20-A0D6-A519776A1480"><apiname>CCoeAppUI::HandleSystemEventL()</apiname></xref> to
-handle these events, which should be done in the UI controller. The default
-implementation is empty. The possible events are as follows:</p>
-<codeblock id="GUID-F0606F71-729A-4D6B-AAC6-876A526DDFAC" xml:space="preserve">enum TApaSystemEvent
-    {
-    EApaSystemEventShutdown = 1,
-    EApaSystemEventBackupStarting,
-    EApaSystemEventBackupComplete,
-    EApaSystemEventBroughtToForeground
-    };
-</codeblock>
-<p>The following is a code example of system event handling:</p>
-<codeblock id="GUID-86877508-AD28-4576-B9D5-55565B0F4A4A" xml:space="preserve">void CExampleAppUI::HandleSystemEvent( const TWsEvent&amp; aEvent )
-    {
-    switch( *( TApaSystemEvent* )( aEvent.EventData() ) )
-        {
-        case EApaSystemEventBackupStarting:
-            {
-            // Handle backup starting
-            //...
-            break;
-            }
-        case EApaSystemEventBackupComplete:
-            {
-            // Handle backup complete
-            //...
-            break;
-            }
-        case EApaSystemEventShutdown:
-            {
-            // Handle shutdown
-            //...
-            break;
-            }
-        }
-        // Call the base class implementation
-        CAknAppUi::HandleSystemEvent( aEvent );
-    }
-</codeblock>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-868C1A38-3CD0-4082-8106-DC3EE1F815D8" xml:lang="en"><title>System
+events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>System events are enumerated in <xref href="GUID-95954F7F-E214-309C-AF32-3A9BD77BDC31.dita"><apiname>TApaSystemEvent</apiname></xref>,
+which is defined in the <parmname>apgtask.h</parmname>. You must override <xref href="GUID-92361912-7768-3D2C-835E-BD3EF1366D6D.dita#GUID-92361912-7768-3D2C-835E-BD3EF1366D6D/GUID-71190B7E-A39E-3F20-A0D6-A519776A1480"><apiname>CCoeAppUI::HandleSystemEventL()</apiname></xref> to
+handle these events, which should be done in the UI controller. The default
+implementation is empty. The possible events are as follows:</p>
+<codeblock id="GUID-F0606F71-729A-4D6B-AAC6-876A526DDFAC" xml:space="preserve">enum TApaSystemEvent
+    {
+    EApaSystemEventShutdown = 1,
+    EApaSystemEventBackupStarting,
+    EApaSystemEventBackupComplete,
+    EApaSystemEventBroughtToForeground
+    };
+</codeblock>
+<p>The following is a code example of system event handling:</p>
+<codeblock id="GUID-86877508-AD28-4576-B9D5-55565B0F4A4A" xml:space="preserve">void CExampleAppUI::HandleSystemEvent( const TWsEvent&amp; aEvent )
+    {
+    switch( *( TApaSystemEvent* )( aEvent.EventData() ) )
+        {
+        case EApaSystemEventBackupStarting:
+            {
+            // Handle backup starting
+            //...
+            break;
+            }
+        case EApaSystemEventBackupComplete:
+            {
+            // Handle backup complete
+            //...
+            break;
+            }
+        case EApaSystemEventShutdown:
+            {
+            // Handle shutdown
+            //...
+            break;
+            }
+        default:
+            {
+            break;
+            }
+
+        }
+        // Call the base class implementation
+        CAknAppUi::HandleSystemEvent( aEvent );
+    }
+</codeblock>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA" xml:lang="en"><title>Menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Mobile device users can use the Menu to access applications. Pressing the
-Home / Menu key opens the Menu, where the user may browse and select an application.
-The Menu was previously called <i>Application Shell</i> and the Home / Menu
-key was called <i>Applications key</i>. In addition to direct access to applications,
-related applications can be collected in folders.</p>
-<p>Applications are presented as a grid of items by default. User can select
-a customized version of the Menu layout, such as a list. The recommended grid
-layout is 3 x 4 (portrait) or 4 x 3 (landscape), that is 12 icons. Pressing
-the Selection key opens an application and closes the Menu.</p>
-<fig id="GUID-80CBAFCA-F952-4C96-8738-02D82261F4B4">
-<title>Menu with a 3 x 4 grid in portrait (left) and 4 x 3 grid in landscape
-(right)</title>
-<image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e64364_href.png" placement="inline"/>
-</fig>
-<p>For more details on the landscape orientation, see <xref href="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita">Symbian
-UI with rotation</xref>.</p>
-<section id="GUID-D50A0D9B-B093-4529-971A-7239FFBA0880"><title>Shortcuts</title>When
-the Menu is opened, numeric keys 1-9 can be used as shortcuts to select an
-application. The keys are mapped directly to the nine icons in Menu’s initial
-view, so that the Numeric key 1 corresponds to the top-left application and
-the Numeric key 9 to the bottom-right one.</section>
-<section id="GUID-84905F51-FD23-48EB-9C36-2022DB91DDF5"><title>Customizing
-Menu</title><p>The user can organize the order of applications, create folders
-and move applications into folders within the Menu. The folders created in
-a Menu are customizable (the user can add and remove folders) and can have
-unlimited sub-folders to allow a hierarchically organized structures. The
-customizing functions are available in the <b>Options</b> menu.
-In addition, the layout of the Menu can also be customized.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA" xml:lang="en"><title>Menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Mobile device users can use the Menu to access applications. Pressing the
+Home / Menu key opens the Menu, where the user may browse and select an application.
+The Menu was previously called <i>Application Shell</i> and the Home / Menu
+key was called <i>Applications key</i>. In addition to direct access to applications,
+related applications can be collected in folders.</p>
+<p>Applications are presented as a grid of items by default. User can select
+a customized version of the Menu layout, such as a list. The default grid
+layout is 3 x 4 (portrait) or 4 x 3 (landscape), that is 12 icons. Pressing
+the Selection key opens an application and closes the Menu.</p>
+<fig id="GUID-80CBAFCA-F952-4C96-8738-02D82261F4B4">
+<title>Menu with a 3 x 4 grid in portrait (left) and 4 x 3 grid in landscape
+(right)</title>
+<image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e58819_href.png" placement="inline"/>
+</fig>
+<p>For more details on the landscape orientation, see <xref href="GUID-685C3F33-1530-4984-B125-E4EF8EBB2EE8.dita">Symbian
+UI with rotation</xref>.</p>
+<section id="GUID-D50A0D9B-B093-4529-971A-7239FFBA0880"><title>Shortcuts</title>When
+the Menu is opened, numeric keys 1-9 can be used as shortcuts to select an
+application. The keys are mapped directly to the nine icons in Menu’s initial
+view, so that the Numeric key 1 corresponds to the top-left application and
+the Numeric key 9 to the bottom-right one.</section>
+<section id="GUID-84905F51-FD23-48EB-9C36-2022DB91DDF5"><title>Customizing
+Menu</title><p>The user can organize the order of applications, create folders
+and move applications into folders within the Menu. The folders created in
+a Menu are customizable (the user can add and remove folders) and can have
+unlimited sub-folders to allow a hierarchically organized structures. The
+customizing functions are available in the <b>Options</b> menu. In addition,
+the layout of the Menu can also be customized.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429248_href.png has changed
Binary file Symbian3/SDK/Source/GUID-873186CE-9723-558F-9C7E-0CEE607F076C_d0e429410_href.png has changed
--- a/Symbian3/SDK/Source/GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,70 +1,82 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486" xml:lang="en"><title>Confirmation
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Confirmation notes inform the user about a successfully completed operation.
-They have a short duration and a subtle tone (they should not be used after
-every kind of successful action).</p>
-<fig id="GUID-E4323AE0-295E-42C0-8B7F-248F43CA33D6">
-<title>Confirmation note</title>
-<image href="GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64639_href.png" placement="inline"/>
-</fig>
-<section id="GUID-8204F49B-E601-4CBB-8778-33912E4EF76F"><title>Guidelines
-for using confirmation notes</title><p>Use a confirmation note when:</p><ul>
-<li>         <p>The effect of the operation cannot be seen directly by some
-other means. For example, <uicontrol>Message sent</uicontrol>.</p>       </li>
-<li>         <p>There is some relevant information to be communicated by it.
-For example, <uicontrol>Last call duration</uicontrol>.</p>       </li>
-</ul><p>Confirmation notes should not be used after every completed operation,
-as this would easily start to annoy users. Confirmation notes should not be
-used when:</p><ul>
-<li>         <p>There is already another dialogue in the procedure, for example <uicontrol>Do
-you want to remove this message? Y/N</uicontrol>.</p>       </li>
-<li>         <p>A progress indication is visible during the procedure.</p> 
-     </li>
-<li>         <p>The user can see the result of the operation when it is performed.
-For example, when adding or removing objects in a list.</p>       </li>
-<li>         <p>A setting has been changed. The new value of the setting is
-visible in the setting item.</p>       </li>
-<li>         <p>The operation can be considered minor or so frequent that
-a note would be annoying. For example, Copy-Paste actions.</p>       </li>
-</ul></section>
-<section id="GUID-6EFD99CB-F754-4398-9526-7E51E16013A5"><title>Using
-confirmation notes in C++ applications</title><p>You can create either a basic
-confirmation note that is displayed only when your application is in the foreground
-or a global note that stays displayed even if the application launching the
-note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
-API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use a confirmation
-note with the default icon, text, sound, and duration, create an instance
-of the note class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknConfirmationNote.html" format="application/java-archive"><codeph>CAknConfirmationNote</codeph></xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.1" scope="peer">Creating a waiting confirmation (basic) note</xref>. </p><p>To
-create a global confirmation note, use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref> in the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For
-basic notes, you can change the icon or text displayed in the note, use a
-different kind of sound, or change the note duration using the setter methods
-in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
-tone, and softkeys using the methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#cee323af0704e07d3f1887a4a13c1639" format="application/java-archive"><codeph>SetGraphic()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#d23699273b28a39c0817bc575be767ab" format="application/java-archive"><codeph>SetAnimation()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#a8748ee0b3342c24a11b8ed0ea9121bc" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#f31895e5838994b1c70300cfd3d7d127" format="application/java-archive"><codeph>SetSoftkeys()</codeph></xref>.</p></section>
-
-
-
-</conbody><related-links>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486" xml:lang="en"><title>Confirmation
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Confirmation notes inform the user about a successfully completed operation.
+They have a short duration and a subtle tone (they should not be used after
+every kind of successful action).</p>
+<fig id="GUID-E4323AE0-295E-42C0-8B7F-248F43CA33D6">
+<title>Confirmation note</title>
+<image href="GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e59093_href.png" placement="inline"/>
+</fig>
+<section id="GUID-8204F49B-E601-4CBB-8778-33912E4EF76F"><title>Guidelines
+for using confirmation notes</title><p>Use a confirmation note when:</p><ul>
+<li>         <p>The effect of the operation cannot be seen directly by some
+other means. For example, <uicontrol>Message sent</uicontrol>.</p>       </li>
+<li>         <p>There is some relevant information to be communicated by it.
+For example, <uicontrol>Last call duration</uicontrol>.</p>       </li>
+</ul><p>Confirmation notes should not be used after every completed operation,
+as this would easily start to annoy users. Confirmation notes should not be
+used when:</p><ul>
+<li>         <p>There is already another dialogue in the procedure, for example <uicontrol>Do
+you want to remove this message? Y/N</uicontrol>.</p>       </li>
+<li>         <p>A progress indication is visible during the procedure.</p> 
+     </li>
+<li>         <p>The user can see the result of the operation when it is performed.
+For example, when adding or removing objects in a list.</p>       </li>
+<li>         <p>A setting has been changed. The new value of the setting is
+visible in the setting item.</p>       </li>
+<li>         <p>The operation can be considered minor or so frequent that
+a note would be annoying. For example, Copy-Paste actions.</p>       </li>
+</ul></section>
+<section id="GUID-6EFD99CB-F754-4398-9526-7E51E16013A5"><title>Using
+confirmation notes in applications</title><p>You can create either a basic
+confirmation note that is displayed only when your application is in the foreground
+or a global note that stays displayed even if the application launching the
+note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
+API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use a confirmation
+note with the default icon, text, sound, and duration, create an instance
+of the note class <xref href="GUID-965D0CA6-7D89-3A3B-AEB5-D45FFBB29FD8.dita"><apiname>CAknConfirmationNote</apiname></xref>. For implementation
+information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.1" scope="peer">Creating a waiting confirmation (basic) note</xref>. </p><p>To
+create a global confirmation note, use the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> in
+the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the
+class <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref>:<ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul> </p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref>:<ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul></p></section>
+
+
+
+</conbody><related-links>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e383456_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8761F82E-5DC4-5BD5-A422-2EC45A92925B_d0e388502_href.png has changed
--- a/Symbian3/SDK/Source/GUID-87BEA6F9-B236-50CF-9DB3-36234A6EB797.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-87BEA6F9-B236-50CF-9DB3-36234A6EB797" xml:lang="en"><title>System GUI
-Framework example code</title><shortdesc>This describes the example code for the System GUI Framework module. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-3-1-1-7-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-3-1-1-7-1-4-1"><title>Multiple Screens Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-3CAFBA33-DED4-572F-8CCC-03A1204397F5-GENID-1-8-1-3-1-1-7-1-4-1-2-1"><title>Purpose</title> <p>Multiple screens allow an application to be displayed on more than one screen simultaneously, and also to react to a change in the active screen whilst the application is running. Prior to the implementation of this feature, applications could only display on one screen during its lifetime. </p> <p>When an application creates a view it will be allowed to specify which screen that view will be displayed on. The view will be fixed to that screen, but the application can then create another view on a different screen. If the characteristics (for example, size or colour depth) of the screens are similar, the view on the second screen could just be a second instance of the original view. </p> <p>Some typical uses for taking advantage of multiple screens could be: </p> <ul><li id="GUID-981E73A1-7B5B-5286-94FB-B6A46B2FA90F-GENID-1-8-1-3-1-1-7-1-4-1-2-1-5-1"><p>A clamshell device with a screen on the inside and one on the outside. The user is working on an application on one screen. The device is opened or closed and the application switches itself to the other screen. </p> </li> <li id="GUID-22C700DD-AC66-5DF1-B35C-509E5C097773-GENID-1-8-1-3-1-1-7-1-4-1-2-1-5-2"><p>A clamshell device with two screens one on each side of the inside. An application shows part of its data on each screen. </p> </li> <li id="GUID-BC79265B-6156-5B76-908F-B1FC1D808A07-GENID-1-8-1-3-1-1-7-1-4-1-2-1-5-3"><p>A phone application which displays itself on all screens when the user is not using them for other purposes. </p> </li> </ul> </section> <section><title>Architectural Relationships</title> <p><b>Component Changes</b> </p> <p>The CONE component (which provides the control environment) has been extended to support multiple screens.<codeph>iCoeEnv-&gt;ScreenDevice(</codeph> <i>screennumber</i> <codeph>)</codeph> will return a pointer to the requested screen. </p> <p>WSERV has also been extended to support multiple screens. Specifically, <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-D784A90A-C7C0-37A9-A6AF-A83A50E78F72"><apiname>RWindowGroup::ConstructL()</apiname></xref> has been overloaded so that a screen device that is associated with a screen can be passed as a parameter during the construction of a window group. </p> </section> <section><title>Description</title> <p><b>Finding out information about a screen</b> </p> <p>The class <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref> can be used to query WSERV about the window groups on a particular screen and the number of screens on the device. </p> <p>The class <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> can be used to query the physical characteristics of the screen, and set the parameters of the corresponding logical screen associated with it. </p> <p>The class <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> is the client side handle to the server side window group. </p> <p>Both <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> and <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> are needed as a pair to draw on a screen. </p> <p>The Cone component maintains the array of screen devices and window group pairs through its <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-0179374E-3601-3C6C-BC0F-168C7F34BC14"><apiname>RWsSession::WsSession()</apiname></xref> method. The screen number is used to index this array in order to retrieve a particular window group and its corresponding screen device. This array can be queried in order to find out information such as: </p> <ul><li id="GUID-D93FCD79-B12B-525B-8A2F-BA28436DCFEC-GENID-1-8-1-3-1-1-7-1-4-1-2-3-8-1"><p>the window group with the current keyboard focus </p> </li> <li id="GUID-EECD3D6D-D0A1-566A-B1DF-05AF59A7995F-GENID-1-8-1-3-1-1-7-1-4-1-2-3-8-2"><p>the window group with focus on a particular screen </p> </li> <li id="GUID-C4733651-B987-5990-962D-40A83A1F4B81-GENID-1-8-1-3-1-1-7-1-4-1-2-3-8-3"><p>the maximum colour and display mode on a particular screen </p> </li> <li id="GUID-B8617AA3-A46A-5866-8E0E-BD9763FB9EA7-GENID-1-8-1-3-1-1-7-1-4-1-2-3-8-4"><p>the list of colour modes for a particular screen </p> </li> </ul> <p><b>Creating a control on a particular screen</b> </p> <p>A control is associated with a window and a particular window group. A window group is associated with a screen device, which in turn is associated with a screen. To create a control on a particular screen, retrieve an appropriate window group on that screen and use it as the parameter in the control’s <codeph>ConstructL()</codeph>. The window for that control will then be created on that screen </p> <p><b>Graphics Context</b> </p> <p>The class <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> provides the interface for the application’s window graphics context and can be activated on any window in the application. This means that it can be used on any screen on the phone </p> <p><b>Window Group Focus Policy</b> </p> <p>There are two focus policies supported by WSERV. The default focus policy is that it is only the focused window group on the focused screen that receives focus gained and focus lost events. The new policy is that any window group can receive focus gained and lost events and can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in the <codeph>wsini.ini</codeph> file. </p> <p><b>Limitations</b> </p> <p><b>Pointer Events </b> </p> <p>The first screen created is also the primary screen in the system. It is important to note that only the primary screen can respond to pointer events. This is due to the fact that the kernel supports only one screen digitiser. </p> <p>For information about further limitations specifically related to the legacy nature of Cone, please see <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita">How To Multiple Screens</xref>. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-6-1-1-4-1-6-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A-GENID-1-8-1-6-1-1-4-1-6-1-4-1"><title>Multiple Screens Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-3CAFBA33-DED4-572F-8CCC-03A1204397F5-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-1"><title>Purpose</title> <p>Multiple screens allow an application to be displayed on more than one screen simultaneously, and also to react to a change in the active screen whilst the application is running. Prior to the implementation of this feature, applications could only display on one screen during its lifetime. </p> <p>When an application creates a view it will be allowed to specify which screen that view will be displayed on. The view will be fixed to that screen, but the application can then create another view on a different screen. If the characteristics (for example, size or colour depth) of the screens are similar, the view on the second screen could just be a second instance of the original view. </p> <p>Some typical uses for taking advantage of multiple screens could be: </p> <ul><li id="GUID-981E73A1-7B5B-5286-94FB-B6A46B2FA90F-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-1-5-1"><p>A clamshell device with a screen on the inside and one on the outside. The user is working on an application on one screen. The device is opened or closed and the application switches itself to the other screen. </p> </li> <li id="GUID-22C700DD-AC66-5DF1-B35C-509E5C097773-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-1-5-2"><p>A clamshell device with two screens one on each side of the inside. An application shows part of its data on each screen. </p> </li> <li id="GUID-BC79265B-6156-5B76-908F-B1FC1D808A07-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-1-5-3"><p>A phone application which displays itself on all screens when the user is not using them for other purposes. </p> </li> </ul> </section> <section><title>Architectural Relationships</title> <p><b>Component Changes</b> </p> <p>The CONE component (which provides the control environment) has been extended to support multiple screens.<codeph>iCoeEnv-&gt;ScreenDevice(</codeph> <i>screennumber</i> <codeph>)</codeph> will return a pointer to the requested screen. </p> <p>WSERV has also been extended to support multiple screens. Specifically, <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-D784A90A-C7C0-37A9-A6AF-A83A50E78F72"><apiname>RWindowGroup::ConstructL()</apiname></xref> has been overloaded so that a screen device that is associated with a screen can be passed as a parameter during the construction of a window group. </p> </section> <section><title>Description</title> <p><b>Finding out information about a screen</b> </p> <p>The class <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref> can be used to query WSERV about the window groups on a particular screen and the number of screens on the device. </p> <p>The class <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> can be used to query the physical characteristics of the screen, and set the parameters of the corresponding logical screen associated with it. </p> <p>The class <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> is the client side handle to the server side window group. </p> <p>Both <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> and <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> are needed as a pair to draw on a screen. </p> <p>The Cone component maintains the array of screen devices and window group pairs through its <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-0179374E-3601-3C6C-BC0F-168C7F34BC14"><apiname>RWsSession::WsSession()</apiname></xref> method. The screen number is used to index this array in order to retrieve a particular window group and its corresponding screen device. This array can be queried in order to find out information such as: </p> <ul><li id="GUID-D93FCD79-B12B-525B-8A2F-BA28436DCFEC-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-3-8-1"><p>the window group with the current keyboard focus </p> </li> <li id="GUID-EECD3D6D-D0A1-566A-B1DF-05AF59A7995F-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-3-8-2"><p>the window group with focus on a particular screen </p> </li> <li id="GUID-C4733651-B987-5990-962D-40A83A1F4B81-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-3-8-3"><p>the maximum colour and display mode on a particular screen </p> </li> <li id="GUID-B8617AA3-A46A-5866-8E0E-BD9763FB9EA7-GENID-1-8-1-6-1-1-4-1-6-1-4-1-2-3-8-4"><p>the list of colour modes for a particular screen </p> </li> </ul> <p><b>Creating a control on a particular screen</b> </p> <p>A control is associated with a window and a particular window group. A window group is associated with a screen device, which in turn is associated with a screen. To create a control on a particular screen, retrieve an appropriate window group on that screen and use it as the parameter in the control’s <codeph>ConstructL()</codeph>. The window for that control will then be created on that screen </p> <p><b>Graphics Context</b> </p> <p>The class <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> provides the interface for the application’s window graphics context and can be activated on any window in the application. This means that it can be used on any screen on the phone </p> <p><b>Window Group Focus Policy</b> </p> <p>There are two focus policies supported by WSERV. The default focus policy is that it is only the focused window group on the focused screen that receives focus gained and focus lost events. The new policy is that any window group can receive focus gained and lost events and can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in the <codeph>wsini.ini</codeph> file. </p> <p><b>Limitations</b> </p> <p><b>Pointer Events </b> </p> <p>The first screen created is also the primary screen in the system. It is important to note that only the primary screen can respond to pointer events. This is due to the fact that the kernel supports only one screen digitiser. </p> <p>For information about further limitations specifically related to the legacy nature of Cone, please see <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE-GENID-1-8-1-3-1-1-7-1-11-1.dita">How To Multiple Screens</xref>. </p> </section> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-87DB3E71-AAE1-57B6-BC79-CBAF8382614A"><title>Multiple Screens Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-3CAFBA33-DED4-572F-8CCC-03A1204397F5"><title>Purpose</title> <p>Multiple screens allow an application to be displayed on more than one screen simultaneously, and also to react to a change in the active screen whilst the application is running. Prior to the implementation of this feature, applications could only display on one screen during its lifetime. </p> <p>When an application creates a view it will be allowed to specify which screen that view will be displayed on. The view will be fixed to that screen, but the application can then create another view on a different screen. If the characteristics (for example, size or colour depth) of the screens are similar, the view on the second screen could just be a second instance of the original view. </p> <p>Some typical uses for taking advantage of multiple screens could be: </p> <ul><li id="GUID-981E73A1-7B5B-5286-94FB-B6A46B2FA90F"><p>A clamshell device with a screen on the inside and one on the outside. The user is working on an application on one screen. The device is opened or closed and the application switches itself to the other screen. </p> </li> <li id="GUID-22C700DD-AC66-5DF1-B35C-509E5C097773"><p>A clamshell device with two screens one on each side of the inside. An application shows part of its data on each screen. </p> </li> <li id="GUID-BC79265B-6156-5B76-908F-B1FC1D808A07"><p>A phone application which displays itself on all screens when the user is not using them for other purposes. </p> </li> </ul> </section> <section><title>Architectural Relationships</title> <p><b>Component Changes</b> </p> <p>The CONE component (which provides the control environment) has been extended to support multiple screens.<codeph>iCoeEnv-&gt;ScreenDevice(</codeph> <i>screennumber</i> <codeph>)</codeph> will return a pointer to the requested screen. </p> <p>WSERV has also been extended to support multiple screens. Specifically, <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-D784A90A-C7C0-37A9-A6AF-A83A50E78F72"><apiname>RWindowGroup::ConstructL()</apiname></xref> has been overloaded so that a screen device that is associated with a screen can be passed as a parameter during the construction of a window group. </p> </section> <section><title>Description</title> <p><b>Finding out information about a screen</b> </p> <p>The class <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref> can be used to query WSERV about the window groups on a particular screen and the number of screens on the device. </p> <p>The class <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> can be used to query the physical characteristics of the screen, and set the parameters of the corresponding logical screen associated with it. </p> <p>The class <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> is the client side handle to the server side window group. </p> <p>Both <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> and <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref> are needed as a pair to draw on a screen. </p> <p>The Cone component maintains the array of screen devices and window group pairs through its <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-0179374E-3601-3C6C-BC0F-168C7F34BC14"><apiname>RWsSession::WsSession()</apiname></xref> method. The screen number is used to index this array in order to retrieve a particular window group and its corresponding screen device. This array can be queried in order to find out information such as: </p> <ul><li id="GUID-D93FCD79-B12B-525B-8A2F-BA28436DCFEC"><p>the window group with the current keyboard focus </p> </li> <li id="GUID-EECD3D6D-D0A1-566A-B1DF-05AF59A7995F"><p>the window group with focus on a particular screen </p> </li> <li id="GUID-C4733651-B987-5990-962D-40A83A1F4B81"><p>the maximum colour and display mode on a particular screen </p> </li> <li id="GUID-B8617AA3-A46A-5866-8E0E-BD9763FB9EA7"><p>the list of colour modes for a particular screen </p> </li> </ul> <p><b>Creating a control on a particular screen</b> </p> <p>A control is associated with a window and a particular window group. A window group is associated with a screen device, which in turn is associated with a screen. To create a control on a particular screen, retrieve an appropriate window group on that screen and use it as the parameter in the control’s <codeph>ConstructL()</codeph>. The window for that control will then be created on that screen </p> <p><b>Graphics Context</b> </p> <p>The class <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> provides the interface for the application’s window graphics context and can be activated on any window in the application. This means that it can be used on any screen on the phone </p> <p><b>Window Group Focus Policy</b> </p> <p>There are two focus policies supported by WSERV. The default focus policy is that it is only the focused window group on the focused screen that receives focus gained and focus lost events. The new policy is that any window group can receive focus gained and lost events and can be switched on by defining the keyword <codeph>MULTIFOCUSPOLICY</codeph> in the <codeph>wsini.ini</codeph> file. </p> <p><b>Limitations</b> </p> <p><b>Pointer Events </b> </p> <p>The first screen created is also the primary screen in the system. It is important to note that only the primary screen can respond to pointer events. This is due to the fact that the kernel supports only one screen digitiser. </p> <p>For information about further limitations specifically related to the legacy nature of Cone, please see <xref href="GUID-779893C2-A9B5-591A-8A5B-6419C4244ACE.dita">How To Multiple Screens</xref>. </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e4619_href.png has changed
Binary file Symbian3/SDK/Source/GUID-881C353C-6482-4DFE-9D43-CFB80DEB77A5_d0e5894_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406639_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406801_href.png has changed
Binary file Symbian3/SDK/Source/GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e190349_href.png has changed
Binary file Symbian3/SDK/Source/GUID-89185EBD-223F-5F52-B1CA-9F9692F7D21F_d0e195357_href.png has changed
--- a/Symbian3/SDK/Source/GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,101 +1,166 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-894AB487-C127-532D-852B-37CB0DEA1440" xml:lang="en"><title>Symbian-Specific
-Behavior</title><shortdesc>This topic provides information about the points that the EGL specification
-explicitly states are platform-specific. This information is aimed at both
-users and implementers of EGL on the Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5F4317DF-EEDE-434C-906D-A354367AE38D"><title>Symbian windows</title> <p>EGL
-window surfaces are tied to Symbian windows. To create an on-screen rendering
-surface, a Window Server window with attributes corresponding to the desired <codeph>EGLConfig</codeph> must
-be created first. The <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class is a handle to a server-side
-window that can be displayed and drawn to, and whose redraws are performed
-by the application. </p> <p><b>Threading</b>. Because of the limitations of
-the Window Server API, clients <b>must</b> create and use an EGL window surface
-in the thread in which its <codeph>RWindow</codeph> was created. This means
-that the following are <b>not</b> supported and will lead to undefined behavior:</p><ul>
-<li><p>Creating an EGL window surface in thread <i>B</i> using an <codeph>RWindow</codeph> that
-was created in thread <i>A</i>. </p></li>
-<li><p>Using an EGL window surface in thread <i>B</i> when that EGL window
-surface and its <codeph>RWindow</codeph> were created in thread <i>A</i>. </p></li>
-</ul><p>For example, in the second scenario, EGL in thread <i>B</i> may fail
-when it attempts to get the window size from the <codeph>RWindow</codeph> in
-thread <i>A</i>.</p><p><b>Buffer handling</b>. EGL window surfaces have two
-buffers, known as the front and back buffers. This means that the client application
-can draw to the back buffer, while the front buffer is being composed to the
-screen. The client must call <codeph>eglSwapBuffers()</codeph> to post the
-back buffer to the screen. </p><p>EGL 1.4 introduces a preserve buffer feature.
-When this is supported by the implementation, the content of the buffer can
-be preserved from one frame to the next. This means that the client can provide
-incremental drawing operations rather than the entire drawing operations for
-each frame. When the implementation supports this feature, it is usually off
-by default. This means that legacy applications that do not expect
-this feature are not slowed down by the unnecessary copying of the buffer
-contents.</p> <p><b>Window resizing</b>. A window can be resized using one
-of the Window Server or UI Framework APIs, such as <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-BCD76117-54A3-3CD5-8911-E867512BF85B"><apiname>RWindow::SetExtent()</apiname></xref> or <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-B680C675-2146-3162-AAAC-F3E88FA8B045"><apiname>CCoeControl::SetExtent()</apiname></xref>.
-When these APIs are called on a window that is bound to an EGL window surface,
-the EGL implementation is expected to handle the situation by adjusting its
-internal buffers. Applications need not do anything specific with regard to
-EGL APIs. Depending on the type of application, APIs may want to adjust their
-rendering operations—for example, clip or scale the contents. </p> <p>EGL
-handles the resize in the next call to <codeph>eglSwapBuffers()</codeph> by
-creating a new surface for the resized window. If the preserve buffer option
-is in use, this function also copies across all the pixels from the old surface
-that overlap the new surface, although the exact details depend on the implementation.
-A client application may therefore need to provide extra drawing operations,
-for example, if the window is made larger.</p> <p> <b>Screen rotation</b>.
-There is no specific EGL handling for screen rotation—instead screen rotation
-is handled in the same way as a change of screen resolution. Applications
-can detect screen rotation by listening to the Window Server event <xref href="GUID-CC1E6B2E-F68F-3A00-B4EA-4917007F7320.dita"><apiname>EEventScreenDeviceChanged</apiname></xref>.
-However, applications do not normally use the Window Server API directly,
-because they are built on top of the UI Framework layer. This layer provides
-a different mechanism to notify applications using—for example, <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita#GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90/GUID-5723655E-FC84-35F1-A0E1-FCE92CEBC196"><apiname>CCoeAppUi::HandleScreenDeviceChangedL()</apiname></xref>. </p> <p>When
-one of the these events is detected, the application may need to resize its
-windows and update its content accordingly. If the application wants to accept
-the system rotation, it does not need to rotate its content. However, some
-applications may want to maintain a fixed physical orientation. They would
-then need to rotate the window content in order to counteract the physical
-rotation. </p> </section>
-<section id="GUID-9BC770D9-3736-495E-8485-19D71700C50D"><title>Symbian pixmap
-types</title> <p>An EGL implementation can support the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> pointer
-as an <codeph>EGLNativePixmapType</codeph>. This means that it is possible
-to create an <codeph>EGLSurface</codeph> to render to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. </p> <p> <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> bitmaps
-are managed by the <xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Font
-and Bitmap Server</xref>. The format is internal to Symbian, but the Image
-Converter API can be used to convert them to standard formats. The <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> type
-has limitations with regard to hardware acceleration. </p> </section>
-<section id="GUID-44553B50-C48E-4E6B-AD9C-F3BC7D9D5347"><title>Display handling</title> <p>Most
-EGL calls include an <codeph>EGLDisplay</codeph> parameter. The EGL specification
-describes this as "the abstract display on which graphics are drawn". On some
-systems, this corresponds to a physical screen. However, the details are platform
-specific and on Symbian systems, it does <i>not</i> correspond to a physical
-screen. When working on the Symbian platform, it is generally more useful
-to think of an <codeph>EGLDisplay</codeph> as the EGL session. </p> <p>On
-Symbian systems, you usually use a single <codeph>EGLDisplay</codeph>. You
-get this by a call to <codeph>eglGetDisplay()</codeph> and passing <codeph>EGL_DEFAULT_DISPLAY</codeph> as
-the <codeph>&lt;display id&gt;</codeph> parameter. </p> <p>The physical screen
-on which the content is displayed is determined by the window's parent window
-group. In Symbian, every window (<xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>) has a parent
-window group (<xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref>), as shown in the following
-diagram. When you create a window group, you can specify the screen on which
-it is to be shown. </p> <fig id="GUID-5D5F3C6A-4CFA-5307-8B2D-D2881799D664">
-<title>Each window has a parent window group which is associated with a screen</title>
-<image href="GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e211044_href.png" placement="inline"/>
-</fig> <p>When you create a window surface in EGL using <codeph>eglCreateWindowSurface</codeph>,
-you pass in the <codeph>RWindow</codeph> as an argument. The window surface
-is then displayed on the screen associated with that window's parent window
-group. Currently a window can exist on only one screen. </p> </section>
-</conbody><related-links>
-<link href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita"><linktext>EGL Interface
-Component</linktext></link>
-<link href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita"><linktext>EGL Collection
-Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-894AB487-C127-532D-852B-37CB0DEA1440" xml:lang="en"><title>Symbian-Specific Behavior</title><shortdesc>This topic provides information about the points that the
+EGL specification explicitly states are platform-specific. This information
+is aimed at both users and implementers of EGL on the Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-E6A596AC-1BCE-4B99-89CF-67EE28A45068"><title>ScreenPlay
+(NGA)</title><p>Applications can find out whether ScreenPlay (also
+known as the New Graphics Architecture or NGA) is supported on the
+device at runtime.  </p><p>To do this, call <codeph>eglQueryString(display,
+EGL_EXTENSIONS)</codeph> and search for the string <codeph>EGL_SYMBIAN_COMPOSITION</codeph> within the string returned. If <codeph>EGL_SYMBIAN_COMPOSITION</codeph> is present, it means that ScreenPlay is supported. For further information,
+see <xref href="GUID-2923A42C-1C0E-553D-8563-7B9FC51F153F.dita">EGL Functions
+with Symbian-Specific Behavior</xref>.</p><p>By checking for the presence
+of the <codeph>EGL_SYMBIAN_COMPOSITION</codeph> string, you can create
+applications that can work on both ScreenPlay devices and those with
+the non-ScreenPlay architecture.</p></section>
+<section id="GUID-5F4317DF-EEDE-434C-906D-A354367AE38D"><title>Symbian
+windows</title> <p>EGL window surfaces are on-screen rendering surfaces
+that are tied to Symbian windows. The <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class
+is a client-side handle to a Symbian Window Server window. You must
+create the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> before creating the EGL window
+surface for on-screen rendering.</p><p>Because the EGL window surface
+is implemented differently depending on whether ScreenPlay is in use,
+there are some differences in how you create an EGL window surface:</p><ul>
+<li><p>In ScreenPlay, the pixel format of the EGL window surface is
+determined entirely by the EGL config passed to <codeph>eglCreateWindowSurface()</codeph> and not by the properties of the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>.</p></li>
+<li><p>On a non-ScreenPlay device, the display mode of the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> must match the buffer size of the EGL window surface.
+You can call <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita#GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34/GUID-FE6998EA-7B17-3270-B487-04D98EBB8424"><apiname>RWindowBase::DisplayMode() const</apiname></xref> to
+retrieve the window’s display mode and use it to determine the buffer
+size when retrieving the EGL config to pass to <codeph>eglCreateWindowSurface()</codeph>. </p></li>
+</ul> <p><b>Threading</b>. Because of the limitations of the Window
+Server API, clients <b>must</b> create and use an EGL window surface
+in the thread in which its <codeph>RWindow</codeph> was created. This
+means that the following are <b>not</b> supported and will lead to
+undefined behavior:</p><ul>
+<li><p>Creating an EGL window surface in thread <i>B</i> using an <codeph>RWindow</codeph> that was created in thread <i>A</i>. </p></li>
+<li><p>Using an EGL window surface in thread <i>B</i> when that EGL
+window surface and its <codeph>RWindow</codeph> were created in thread <i>A</i>. </p></li>
+</ul><p>For example, in the second scenario, EGL in thread <i>B</i> will fail (with a WSERV panic) when it attempts to get the window
+size from the <codeph>RWindow</codeph> in thread <i>A</i>.</p><p><b>Buffer handling</b>. By default EGL window surfaces have multiple
+buffers, which means that the client can draw to a back buffer, while
+the front buffer is being composed to the screen. The client must
+call <codeph>eglSwapBuffers()</codeph> to post the back buffer to
+the screen.</p><p> EGL 1.4 introduces a preserve buffer feature, which
+enables the content of the front buffer to be preserved from one frame
+to the next. This means that the client can provide incremental drawing
+operations rather than the entire drawing operations for each frame.
+This feature is usually off by default. This means that legacy applications
+that do not expect this feature are not slowed down by the unnecessary
+copying of the buffer contents.</p> <p><b>Window resizing</b>. The
+size of an application’s view can be changed by a variety of external
+events, such as a UI layout switch, a change in the size of the status
+pane or the rotation of the screen.  An application can also resize
+a window directly, such as through a call to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-BCD76117-54A3-3CD5-8911-E867512BF85B"><apiname>RWindow::SetExtent()</apiname></xref>, <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-B680C675-2146-3162-AAAC-F3E88FA8B045"><apiname>CCoeControl::SetExtent()</apiname></xref> or <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5A63E1BD-BCCA-356E-BB39-D4BB7B6DC22E"><apiname>CCoeControl::SetExtentToWholeScreen()</apiname></xref>.</p><p>When there is a change in the size of a window that is bound
+to an EGL window surface, the application must take appropriate action
+in its <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-FFF07CE8-61C4-34F9-B9E9-D315782C8476"><apiname>CCoeControl::SizeChanged(</apiname></xref>) or <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-1BC64D91-2796-3F16-AA41-13836BC00701"><apiname>CCoeControl::HandleResourceChange()</apiname></xref> implementation. The action depends on the nature of the application
+but might include clipping or scaling the contents to fit the resized
+window.</p><p>On the Symbian platform, EGL handles the window resize
+in the next call to <codeph>eglSwapBuffers()</codeph>, which resizes
+the surface to match the new window size. If the preserve buffer option
+is in use, this function also copies across all the pixels from the
+old surface that overlap the new surface, although the exact details
+depend on the implementation.</p><p>If the surface resize fails, <codeph>eglSwapBuffers()</codeph> returns <codeph>EGL_FALSE</codeph> and
+an <codeph>EGL_BAD_ALLOC</codeph> error is raised. This may mean that
+the implementation does not support the resizing of a surface or that
+there is not enough memory available (on a platform with GPU, this
+would be GPU rather than system memory). Applications must always
+monitor whether <xref href="GUID-7F4F23A8-26FA-33E5-87DA-4EE1D3DC65AE.dita"><apiname>eglSwapBuffers()</apiname></xref> fails after a
+window resize. When it does fail, the application should do the following:</p><ol>
+<li id="GUID-81762FDD-72AD-410E-8E18-FFFF75CF6A32"><p>Call <codeph>eglDestroySurface()</codeph> to destroy the current EGL window surface.</p></li>
+<li id="GUID-79FFA30C-1F31-47C0-9084-F72FF0E57FC6"><p>Call <codeph>eglCreateWindowSurface()</codeph> to recreate the EGL window surface.</p></li>
+</ol> <p>This may cause a noticeable flicker and so should be done
+only when necessary.</p><p> <b>Screen rotation</b>. There is no specific
+EGL handling for screen rotation—instead screen rotation is handled
+in the same way as a change of screen resolution. An application typically
+handles changes in screen resolution and rotation in its <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita#GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90/GUID-5723655E-FC84-35F1-A0E1-FCE92CEBC196"><apiname>CCoeAppUi::HandleScreenDeviceChangedL()</apiname></xref> or <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-A925DD23-4531-3BA5-AF17-E6289F9E370A"><apiname>CCoeControl::HandleResourceChange(TInt)</apiname></xref> implementation. When there is a change in screen rotation, the application
+may need to resize its windows and update the content accordingly. </p> <p>The EGL implementation updates the surface size on the next call
+to <codeph>eglSwapBuffers()</codeph>.  However, the interim frames
+appear in the new orientation, and so an application may want to adjust
+the contents to minimize flicker. If the application wants to accept
+the system rotation, it does not need to rotate its content. However,
+some applications may require a fixed physical orientation. These
+need to rotate the window content in order to counteract the physical
+rotation. </p><p>Sometimes a screen rotation simply results in the
+swapping of the window’s width and height dimensions—for example,
+when the application is running in full screen mode and the device
+is rotated from portrait to landscape or vice versa. This is guaranteed
+to succeed on all Symbian EGL implementations.</p><p>In other situations
+the screen rotation must be treated like a window resize and the application
+must monitor whether <codeph>eglSwapBuffers()</codeph> succeeds and
+take appropriate action if it fails, as described above. For example,
+if the application is not in full screen mode, rotating the device
+from portrait to landscape may not result in the swapping of the width
+and height of the window.</p> <p><b>UI content</b>. Applications that
+want to make use of the ScreenPlay ability to place semi-transparent <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> rendering above the EGL window surface should
+check whether ScreenPlay is supported on the device as described above. </p><p>On ScreenPlay devices, you can combine <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing and OpenVG/OpenGL ES drawing in the same window, provided
+the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> content is drawn using a semi-transparent
+pen or brush color or bitmap. It is also possible to create semi-transparent <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing in another Symbian window placed over
+the EGL window. To do this, make the Symbian window semi-transparent
+by calling <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-47275C08-0C58-3A03-B96F-38F881F49C08"><apiname>RWindow::SetTransparencyAlphaChannel()</apiname></xref>. <xref href="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita">Transparent
+Windows</xref> has more detail on implementing semi-transparent windows.</p><p>On non-ScreenPlay devices, you need to place the <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing in an opaque child window over the EGL window surface or
+implement the UI by using OpenVG/OpenGL ES drawing that is directed
+to the EGL window surface itself.</p><p><b>Window lifetime</b>. Clients
+must maintain the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> associated with the EGL
+window surface for the lifetime of that window surface, provided they
+follow the good practice guidelines of unbinding the EGL window surface
+from the current context before destroying it. If these guidelines
+are not followed, it may be necessary to maintain the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> for the entire duration of EGL usage within the client application.</p><p>For example,  the following pseudocode demonstrates good practice.
+The <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> must be valid until <codeph>eglDestroySurface()</codeph> is called:</p><codeblock xml:space="preserve">// Unbind the window surface from the current context.
+eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+
+// Destroy the window surface.
+eglDestroySurface(display, surface);
+
+...
+
+eglTerminate(display)</codeblock><p>When the application does not
+follow this good practice and destroys the surface before unbinding
+it from the current context, the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> must be
+valid for longer. For example in the following pseudocode, <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> must be valid until after <codeph>eglMakeCurrent()</codeph> is called:</p><codeblock xml:space="preserve">eglDestroySurface(display, surface);
+eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+
+...
+
+eglTerminate(display)</codeblock><p>If <xref href="GUID-2095B4FC-106B-3839-9EE1-9F6B5E8C47B6.dita"><apiname>eglMakeCurrent(</apiname></xref>) is not called with a null surface and null context at all, the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> must be valid until <codeph>eglTerminate()</codeph> is called.</p> </section>
+<section id="GUID-9BC770D9-3736-495E-8485-19D71700C50D"><title>Symbian
+pixmap types</title> <p>An EGL implementation can support the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> pointer as an <codeph>EGLNativePixmapType</codeph>. This means that it is possible to create an <codeph>EGLSurface</codeph> to render to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. However, it is not
+guaranteed to be supported on all EGL implementations.</p> </section>
+<section id="GUID-44553B50-C48E-4E6B-AD9C-F3BC7D9D5347"><title>Display
+handling</title> <p>Most EGL calls include an <codeph>EGLDisplay</codeph> parameter. The EGL specification describes this as "the abstract
+display on which graphics are drawn". On some systems, this corresponds
+to a physical screen. However, the details are platform specific and
+on Symbian systems, it does <i>not</i> correspond to a physical screen.
+When working on the Symbian platform, it is generally more useful
+to think of an <codeph>EGLDisplay</codeph> as the EGL session. </p> <p>On Symbian systems, you usually use a single <codeph>EGLDisplay</codeph>. You get this by a call to <codeph>eglGetDisplay()</codeph> and
+passing <codeph>EGL_DEFAULT_DISPLAY</codeph> as the <codeph>&lt;display
+id&gt;</codeph> parameter. </p> <p>The physical screen on which the content
+is displayed is determined by the window's parent window group. In
+Symbian, every window (<xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref>) has a parent window
+group (<xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref>), as shown in the following
+diagram. When you create a window group, you can specify the screen
+on which it is to be shown. </p> <fig id="GUID-5D5F3C6A-4CFA-5307-8B2D-D2881799D664">
+<title>Each window has a parent window group which is associated with
+a screen</title>
+<image href="GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e206241_href.png" placement="inline"/>
+</fig> <p>When you create a window surface in EGL using <codeph>eglCreateWindowSurface</codeph>, you pass in the <codeph>RWindow</codeph> as an argument. The window
+surface is then displayed on the screen associated with that window's
+parent window group. Currently a window can exist on only one screen. </p> </section>
+</conbody><related-links>
+<link href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita"><linktext>EGL
+Interface Component</linktext></link>
+<link href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita"><linktext>EGL
+Collection Overview</linktext></link>
+<link href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita"><linktext>Coverflow:
+using ScreenPlay</linktext></link>
+<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Drawing
+with CWindowGc</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e220940_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8983A095-3F5A-5262-8920-8A13ADD045DC_d0e224677_href.png has changed
--- a/Symbian3/SDK/Source/GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E" xml:lang="en"><title>Migrating
-from C Standard Library (ESTLIB) to P.I.P.S.</title><shortdesc>If you are using ESTLIB, it is recommended that you migrate to
-P.I.P.S. available from Symbian^1, as P.I.P.S. is much more POSIX compliant
-and feature-rich.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-8A3B8F03-A4E9-41C9-A600-C038D79FCB90">       <p>P.I.P.S.
-is supported from Symbian^1 onwards on ROM. ESTLIB applications
-can be ported to use P.I.P.S., by keeping the base source as it is while making
-changes to the MMP files and rebuilding the code.</p>     </prereq>
-<context id="GUID-963EA55A-3033-40AC-83AE-00687F7F185E">       <p>To migrate
-from C Standard Library (ESTLIB) to P.I.P.S., perform the following steps:</p> 
-   </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-5-1-3-1-10-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-5-1-3-1-10-1-3-3-1"><cmd/>
-<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
-from <filepath>estlib.lib</filepath> to <filepath>libc.lib libm.lib libpthread.lib</filepath>.</p></info>
-</step>
-<step id="GUID-BB644CB0-A911-4C80-A28D-361319D15580"><cmd/>
-<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
-from <filepath>ecrt0.lib</filepath> to <filepath>libcrt0.lib</filepath>.</p></info>
-</step>
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-5-1-3-1-10-1-3-3-3"><cmd/>
-<info><p>Replace the <codeph>SYSTEMINCLUDE</codeph> path from <filepath>\epoc32\include\libc</filepath> to <filepath>\epoc32\include\stdapis</filepath>.</p></info>
-<stepresult><p><b>Important</b>: If any non-POSIX worked around code (written
-to satisfy POSIX-deviated ESTLIB return codes) is present in your existing
-application, you will also need to modify it to make them POSIX complaint.</p></stepresult>
-</step>
-</steps>
-<postreq id="GUID-3BF4A7A3-6876-4987-8F17-B8A7BDA639D4"><p><b>Note</b>: For
-more information about using P.I.P.S. on Symbian platform, see <xref href="GUID-D79380CF-22B5-5865-9366-44118E8ECA2E.dita">Open
-Environment Core (P.I.P.S.)</xref>. </p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-89C5B56D-0846-4D32-94E5-CEF8BFA47D4E" xml:lang="en"><title>Migrating
+from C Standard Library (ESTLIB) to P.I.P.S.</title><shortdesc>If you are using ESTLIB, it is recommended that you migrate to
+P.I.P.S. available from Symbian^1, as P.I.P.S. is much more POSIX compliant
+and feature-rich.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-8A3B8F03-A4E9-41C9-A600-C038D79FCB90">       <p>P.I.P.S.
+is supported from Symbian^1 onwards on ROM. ESTLIB applications
+can be ported to use P.I.P.S., by keeping the base source as it is while making
+changes to the MMP files and rebuilding the code.</p>     </prereq>
+<context id="GUID-963EA55A-3033-40AC-83AE-00687F7F185E">       <p>To migrate
+from C Standard Library (ESTLIB) to P.I.P.S., perform the following steps:</p> 
+   </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-5-1-3-1-10-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-5-1-3-1-10-1-3-3-1"><cmd/>
+<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
+from <filepath>estlib.lib</filepath> to <filepath>libc.lib libm.lib libpthread.lib</filepath>.</p></info>
+</step>
+<step id="GUID-BB644CB0-A911-4C80-A28D-361319D15580"><cmd/>
+<info><p>Replace the <codeph>LIBRARY</codeph> entry in the <filepath>.MMP</filepath> file
+from <filepath>ecrt0.lib</filepath> to <filepath>libcrt0.lib</filepath>.</p></info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-5-1-3-1-10-1-3-3-3"><cmd/>
+<info><p>Replace the <codeph>SYSTEMINCLUDE</codeph> path from <filepath>\epoc32\include\libc</filepath> to <filepath>\epoc32\include\stdapis</filepath>.</p></info>
+<stepresult><p><b>Important</b>: If any non-POSIX worked around code (written
+to satisfy POSIX-deviated ESTLIB return codes) is present in your existing
+application, you will also need to modify it to make them POSIX complaint.</p></stepresult>
+</step>
+</steps>
+<postreq id="GUID-3BF4A7A3-6876-4987-8F17-B8A7BDA639D4"><p><b>Note</b>: For
+more information about using P.I.P.S. on Symbian platform, see <xref href="GUID-D79380CF-22B5-5865-9366-44118E8ECA2E.dita">Open
+Environment Core (P.I.P.S.)</xref>. </p></postreq>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F"><title>Types of Email</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes the types of email that Messaging Middleware supports and the structure of email messages. </p> <p>The following are the types of email that are supported. The diagrams represent the structure of the message entries in the Message Server. </p> <section><title>Plain text messages</title> <p>Non-MIME emails are the simplest type of mail message and contain only a plain text message body. </p> <fig id="GUID-7831EE1E-4F8D-526E-8B2F-28B88EF47590"><title>
-             Plain text messages 
-          </title> <image href="GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e275756_href.jpg" placement="inline"/></fig> </section> <section><title> UUEncoded messages</title> <p>To allow for binary files to be ‘attached’ to non-MIME emails, it is possible to UUEncode the binary data and include it as text within the message. A typical message would consist of some text, followed by the UUEncoded data, followed by more text and UUEncoded data. </p> <fig id="GUID-EE589E7D-D61D-53BB-BE6C-D987155511AA"><title>
-             UUEncoded messages 
-          </title> <image href="GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e275770_href.jpg" placement="inline"/></fig> </section> <section><title>Multipart messages</title> <p>The multipart messages are the most popular form of modern emails. Multipart messages contain a sequence of body parts which can in turn contain additional nested body parts. The simplest example would be a text message with a single binary attachment. Binary data is typically encoded using BASE64 encoding. </p> <fig id="GUID-73EA864D-7C20-56CF-8CAD-903AE24A3C57"><title>
-             Multipart messages 
-          </title> <image href="GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e275784_href.jpg" placement="inline"/></fig> </section> <section><title>HTML text messages</title> <p>HTML text messages contain an HTML representation of the message body text (complete with all text formatting) and a corresponding plain text version. The email client can then decide which to display to the user based in its capabilities. </p> <fig id="GUID-8C5A76B3-70E8-5419-9503-4D91D00940EA"><title>
-             HTML text messages 
-          </title> <image href="GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e275798_href.jpg" placement="inline"/></fig> </section> <section><title>HTML messages with attachments</title> <p>As with HTML text messages, these contain plain and HTML versions of the body text, as well as additional body parts containing potentially encoded attachment data. </p> <fig id="GUID-248A862E-F582-5E58-AEEF-07FEF662EC78"><title>
-             HTML messages with attachments 
-          </title> <image href="GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e275812_href.jpg" placement="inline"/></fig> </section> <section><title>HTML messages with embedded message</title> <p>Messages can contain embedded messages within their body parts. This example shows a message with parts consisting of plain text, an attachment, and an embedded message. The embedded message in turn contains an attachment as well a plain and html versions of the body text. </p> <fig id="GUID-E943461D-8FEE-5C72-82BA-24D8A4979283"><title>
-             HTML messages with embedded message 
-          </title> <image href="GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e275826_href.jpg" placement="inline"/></fig> </section> <section><title>Storage of email parts</title> <p>The majority of the message data is stored within a single file. This contain separate streams for header information, MIME headers, attachment information and the rich text store. If the message contained attachments, a corresponding folder exists that stores each attachment as a separate decoded file. </p> </section> </conbody><related-links><link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext> Message Server and Store</linktext> </link> <link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext> Message Type Module</linktext> </link> <link href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita"><linktext>IMAP4
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-89D8ECA6-23C3-5573-8DC6-10F7FF7B491F"><title>Types of Email</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes the types of email that Messaging Middleware supports and the structure of email messages. </p> <p>The following are the types of email that are supported. The diagrams represent the structure of the message entries in the Message Server. </p> <section><title>Plain text messages</title> <p>Non-MIME emails are the simplest type of mail message and contain only a plain text message body. </p> <fig id="GUID-7831EE1E-4F8D-526E-8B2F-28B88EF47590"><title>
+             Plain text messages 
+          </title> <image href="GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e272075_href.jpg" placement="inline"/></fig> </section> <section><title> UUEncoded messages</title> <p>To allow for binary files to be ‘attached’ to non-MIME emails, it is possible to UUEncode the binary data and include it as text within the message. A typical message would consist of some text, followed by the UUEncoded data, followed by more text and UUEncoded data. </p> <fig id="GUID-EE589E7D-D61D-53BB-BE6C-D987155511AA"><title>
+             UUEncoded messages 
+          </title> <image href="GUID-6E161670-EBC6-599B-8EB8-2E48C8EA57CC_d0e272089_href.jpg" placement="inline"/></fig> </section> <section><title>Multipart messages</title> <p>The multipart messages are the most popular form of modern emails. Multipart messages contain a sequence of body parts which can in turn contain additional nested body parts. The simplest example would be a text message with a single binary attachment. Binary data is typically encoded using BASE64 encoding. </p> <fig id="GUID-73EA864D-7C20-56CF-8CAD-903AE24A3C57"><title>
+             Multipart messages 
+          </title> <image href="GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e272103_href.jpg" placement="inline"/></fig> </section> <section><title>HTML text messages</title> <p>HTML text messages contain an HTML representation of the message body text (complete with all text formatting) and a corresponding plain text version. The email client can then decide which to display to the user based in its capabilities. </p> <fig id="GUID-8C5A76B3-70E8-5419-9503-4D91D00940EA"><title>
+             HTML text messages 
+          </title> <image href="GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e272117_href.jpg" placement="inline"/></fig> </section> <section><title>HTML messages with attachments</title> <p>As with HTML text messages, these contain plain and HTML versions of the body text, as well as additional body parts containing potentially encoded attachment data. </p> <fig id="GUID-248A862E-F582-5E58-AEEF-07FEF662EC78"><title>
+             HTML messages with attachments 
+          </title> <image href="GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e272131_href.jpg" placement="inline"/></fig> </section> <section><title>HTML messages with embedded message</title> <p>Messages can contain embedded messages within their body parts. This example shows a message with parts consisting of plain text, an attachment, and an embedded message. The embedded message in turn contains an attachment as well a plain and html versions of the body text. </p> <fig id="GUID-E943461D-8FEE-5C72-82BA-24D8A4979283"><title>
+             HTML messages with embedded message 
+          </title> <image href="GUID-192C7AC8-DCBD-5AA8-984A-35D9602C0ADB_d0e272145_href.jpg" placement="inline"/></fig> </section> <section><title>Storage of email parts</title> <p>The majority of the message data is stored within a single file. This contain separate streams for header information, MIME headers, attachment information and the rich text store. If the message contained attachments, a corresponding folder exists that stores each attachment as a separate decoded file. </p> </section> </conbody><related-links><link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext> Message Server and Store</linktext> </link> <link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext> Message Type Module</linktext> </link> <link href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita"><linktext>IMAP4
                 MTM</linktext> </link> <link href="GUID-EADCDE6F-127E-528C-B2E0-F13E5C7FD4EF.dita"><linktext>POP3 MTM</linktext> </link> <link href="GUID-3988C2DE-3FC5-5AF8-BB9F-499E7082F7D5.dita"><linktext>SMTP MTM</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE" xml:lang="en"><title>How
-to Create an Explicitly Bound Socket</title><shortdesc>This topic describes how create an explicitly bound socket. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context><p>Start the network interface connection with <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> to
-create an explicitly bound socket. </p> <p><b>Creating an explicitly bound
-socket</b></p><p>  Explicitly bound sockets can be created in two ways: </p> </context>
-<steps id="GUID-46A5DC4D-4DF0-400D-ACA1-D34F7DC7D2AD">
-<step id="GUID-AF44E5D1-D088-4F16-A801-129E443B52F2"><cmd>Open a socket and bind the socket to a network interface connection.</cmd>
-<stepxmp><ul>
-<li><p>  Call <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> and pass an  <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p>  <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> binds
-to an interface  corresponding to the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p> 
-In the following example code, if <codeph>iConn</codeph> corresponds  to a
-WiFi <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> then, after a calling  <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> the
-socket is explicitly bound to WiFi. </p> <codeblock xml:space="preserve">iRecvSock.Open( ss, KAfInet, KSockStream, KProtocolInetTcp, iConn );</codeblock> </li>
-</ul></stepxmp>
-</step>
-<step id="GUID-8F737ED5-AEE8-4E3F-BBBF-F5EB4B05F815"><cmd>Open a socket and bind the socket to an IP address of the network
-interface connection.</cmd>
-<stepxmp><ul>
-<li><p>  Call <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-5550C9E4-2A1B-3F52-A6CF-F5822AB9DBC9"><apiname>RSocket::Bind()</apiname></xref> and bind the socket to  an
-IP address of the network interface connection. </p> <p>  <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-5550C9E4-2A1B-3F52-A6CF-F5822AB9DBC9"><apiname>RSocket::Bind()</apiname></xref> binds
-the socket to a unique  IP address of the network interface connection. </p> <p> 
-The following example code shows how to open a socket and bind  the socket
-to a unique IP address of the WiFi connection. </p>  <codeblock xml:space="preserve">// open an implicit socket
-TInt err = iRecvSock.Open( iSs, KAfInet, KSockDatagram, KProtocolInetUdp); 
-User::LeaveIfError( err );
-// This IP address maps to WiFi in the ced.cfg file
-_LIT(KRasAddr,"192.168.220.4");
-const TInt KPort = 7000;
-TInetAddr addr;
-err = addr.Input( KRasAddr ); 
-User::LeaveIfError( err );
-addr.SetPort( KPort );
-// Now the socket is explicitly bound to WiFi  
-err = iRecvSock.Bind( addr ); 
-RDebug::Print( _L("testapp: ETH Bind() = %d"), err ); 
-User::LeaveIfError( err );
-</codeblock> </li>
-</ul><p> The following code block shows an extract from the <filepath>ced.cfg</filepath> file.
- </p><codeblock xml:space="preserve">
-## 
-[LANService]
-ADD_SECTION
-# COMMDB_ID = 1
-Name=Ethernet
-IfNetworks=ip
-IpNetMask=255.0.0.0
-IpGateway=0.0.0.0
-IpAddrFromServer=FALSE
-IpAddr=192.168.1.1
-IpDNSAddrFromServer=FALSE
-ConfigDaemonManagerName=NetCfgExtnDhcp
-ConfigDaemonName=!DhcpServ
-FIELD_COUNT=9
-END_ADD
-
-ADD_SECTION
-# COMMDB_ID = 2
-Name=Ethernet WiFi
-IfNetworks=ip
-IpNetMask=255.0.0.0
-IpGateway=0.0.0.0
-IpAddrFromServer=FALSE
--// This IP address maps to WiFi
-IpAddr=192.168.220.4
-IpDNSAddrFromServer=FALSE
-IpNameServer1=194.72.6.51
-IpNameServer2=194.72.6.52
-ConfigDaemonManagerName=NetCfgExtnDhcp
-ConfigDaemonName=!DhcpServ
-LanServiceExtensionTableName=WLANServiceExtensionTable
-LanServiceExtensionTableRecordId=4
-FIELD_COUNT=13
-END_ADD
-</codeblock></stepxmp>
-</step>
-</steps>
-<result><p>The socket is explicitly bound to the specific IP address of the
-network interface connection. </p> </result>
-<example><title>Explicit binding example</title> <p>Client A creates a socket
-with explicit binding using the specified interface connection. </p> <codeblock id="GUID-8CE9B83F-0091-5230-8F80-C27793E86437" xml:space="preserve">sock1 = RSocket.Open(srv,conn);</codeblock> <p>ESock
-creates the socket within the default connection and subconnection. </p> <fig id="GUID-BE26EF30-B103-5C3B-95A8-7ED66ECFE44C">
-<image href="GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e120436_href.png" placement="inline"/>
-</fig> </example>
-<postreq><p>A socket can also be opened over a sub-connection using <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>.
-When the socket is opened, a new Service Access Point (SAP) is created for
-the socket in <xref href="GUID-BE7D196E-357B-36BE-80BB-CCBBE00DFA90.dita"><apiname>ESock</apiname></xref>. The SAP is used to handle inbound
-and outbound data. </p> </postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE" xml:lang="en"><title>How
+to Create an Explicitly Bound Socket</title><shortdesc>This topic describes how create an explicitly bound socket. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context><p>Start the network interface connection with <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-CB62E838-A380-309C-8B08-1F804EDB4387"><apiname>RConnection::Start()</apiname></xref> to
+create an explicitly bound socket. </p> <p><b>Creating an explicitly bound
+socket</b></p><p>  Explicitly bound sockets can be created in two ways: </p> </context>
+<steps id="GUID-46A5DC4D-4DF0-400D-ACA1-D34F7DC7D2AD">
+<step id="GUID-AF44E5D1-D088-4F16-A801-129E443B52F2"><cmd>Open a socket and bind the socket to a network interface connection.</cmd>
+<stepxmp><ul>
+<li><p>  Call <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> and pass an  <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p>  <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> binds
+to an interface  corresponding to the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref>. </p> <p> 
+In the following example code, if <codeph>iConn</codeph> corresponds  to a
+WiFi <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> then, after a calling  <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-3491CE2A-A94D-34E0-B0DD-D476EE3334D7"><apiname>RSocket::Open()</apiname></xref> the
+socket is explicitly bound to WiFi. </p> <codeblock xml:space="preserve">iRecvSock.Open( ss, KAfInet, KSockStream, KProtocolInetTcp, iConn );</codeblock> </li>
+</ul></stepxmp>
+</step>
+<step id="GUID-8F737ED5-AEE8-4E3F-BBBF-F5EB4B05F815"><cmd>Open a socket and bind the socket to an IP address of the network
+interface connection.</cmd>
+<stepxmp><ul>
+<li><p>  Call <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-5550C9E4-2A1B-3F52-A6CF-F5822AB9DBC9"><apiname>RSocket::Bind()</apiname></xref> and bind the socket to  an
+IP address of the network interface connection. </p> <p>  <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-5550C9E4-2A1B-3F52-A6CF-F5822AB9DBC9"><apiname>RSocket::Bind()</apiname></xref> binds
+the socket to a unique  IP address of the network interface connection. </p> <p> 
+The following example code shows how to open a socket and bind  the socket
+to a unique IP address of the WiFi connection. </p>  <codeblock xml:space="preserve">// open an implicit socket
+TInt err = iRecvSock.Open( iSs, KAfInet, KSockDatagram, KProtocolInetUdp); 
+User::LeaveIfError( err );
+// This IP address maps to WiFi in the ced.cfg file
+_LIT(KRasAddr,"192.168.220.4");
+const TInt KPort = 7000;
+TInetAddr addr;
+err = addr.Input( KRasAddr ); 
+User::LeaveIfError( err );
+addr.SetPort( KPort );
+// Now the socket is explicitly bound to WiFi  
+err = iRecvSock.Bind( addr ); 
+RDebug::Print( _L("testapp: ETH Bind() = %d"), err ); 
+User::LeaveIfError( err );
+</codeblock> </li>
+</ul><p> The following code block shows an extract from the <filepath>ced.cfg</filepath> file.
+ </p><codeblock xml:space="preserve">
+## 
+[LANService]
+ADD_SECTION
+# COMMDB_ID = 1
+Name=Ethernet
+IfNetworks=ip
+IpNetMask=255.0.0.0
+IpGateway=0.0.0.0
+IpAddrFromServer=FALSE
+IpAddr=192.168.1.1
+IpDNSAddrFromServer=FALSE
+ConfigDaemonManagerName=NetCfgExtnDhcp
+ConfigDaemonName=!DhcpServ
+FIELD_COUNT=9
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+Name=Ethernet WiFi
+IfNetworks=ip
+IpNetMask=255.0.0.0
+IpGateway=0.0.0.0
+IpAddrFromServer=FALSE
+-// This IP address maps to WiFi
+IpAddr=192.168.220.4
+IpDNSAddrFromServer=FALSE
+IpNameServer1=194.72.6.51
+IpNameServer2=194.72.6.52
+ConfigDaemonManagerName=NetCfgExtnDhcp
+ConfigDaemonName=!DhcpServ
+LanServiceExtensionTableName=WLANServiceExtensionTable
+LanServiceExtensionTableRecordId=4
+FIELD_COUNT=13
+END_ADD
+</codeblock></stepxmp>
+</step>
+</steps>
+<result><p>The socket is explicitly bound to the specific IP address of the
+network interface connection. </p> </result>
+<example><title>Explicit binding example</title> <p>Client A creates a socket
+with explicit binding using the specified interface connection. </p> <codeblock id="GUID-8CE9B83F-0091-5230-8F80-C27793E86437" xml:space="preserve">sock1 = RSocket.Open(srv,conn);</codeblock> <p>ESock
+creates the socket within the default connection and subconnection. </p> <fig id="GUID-BE26EF30-B103-5C3B-95A8-7ED66ECFE44C">
+<image href="GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e113898_href.png" placement="inline"/>
+</fig> </example>
+<postreq><p>A socket can also be opened over a sub-connection using <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>.
+When the socket is opened, a new Service Access Point (SAP) is created for
+the socket in <xref href="GUID-BE7D196E-357B-36BE-80BB-CCBBE00DFA90.dita"><apiname>ESock</apiname></xref>. The SAP is used to handle inbound
+and outbound data. </p> </postreq>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8A7B837D-4069-5364-A596-686EEBAE351D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8A7B837D-4069-5364-A596-686EEBAE351D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-8A7B837D-4069-5364-A596-686EEBAE351D"><title>Plug-In Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Plug-in (ECom) framework is a generic framework that provides a single mechanism to register and discover plug-ins and load an appropriate plug-in. </p> <section><title>Purpose</title> <p>In early versions of Symbian platform, plug-ins were provided by <xref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita">polymorphic interface DLLs</xref>. All the frameworks within the Symbian platform that needed to use plug-ins had to provide their own mechanisms for the clients to discover and instantiate the implementations. This resulted in duplication of functionality. </p> <p>The Plug-In framework is intended to provide a common and system-wide mechanism for instantiating a dynamically determined component. </p> <p>Three distinct users of the plug-in framework are: </p> <ul><li id="GUID-B72B2ED5-545F-54BA-89F3-9F014A17D9D8"><p>Framework or Application designers </p> <p>These users need to understand interface definition design and platform security implications. </p> </li> <li id="GUID-F0961823-257F-553D-B58E-8061ECA03FCD"><p>Plug-in writers </p> <p>These users need to understand interface implementation, DLL creation and platform security implementation issue. </p> </li> <li id="GUID-939853D9-4C52-5C6E-9804-E0594DE2B152"><p>Plug-in users </p> <p>These users need to understand that the plug-in framework helps in selecting the plug-in but sometimes may need to specify which implementation the framework should choose. </p> </li> </ul> </section> <section><title>Required background</title> <p> <b>Run-time Binding</b>: This is called dynamic binding or late binding. The linking of a routine or object is performed during runtime based on the requirements. </p> <p> <b>DLL (Dynamic Link Library)</b>: Is a piece of code (a library) that is linked to a program at runtime rather than during the build process. The code inside a DLL can be shared by several clients at the same time without being duplicated in the mobile memory. </p> <p>In addition , the user should be aware of the<xref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita"> Platform Security Considerations</xref> of the plug-in framework architecture. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt> Plug-in</dt> <dd><p>In computing, a plug-in(extension) consists of a computer program that interacts with a host application(a web browser or an email client) to provide a very specific function on demand. </p> <p>Applications support plugins to: </p> <ul><li id="GUID-E5F6B556-5957-50CE-9309-1013335A3911"><p>Enable third-party developers to create capabilities to extend an application. </p> </li> <li id="GUID-F882F8D5-A744-5079-9A15-DC5DD166C8BC"><p>Reduce the size of an application. </p> </li> <li id="GUID-6FC7254E-3CCF-58A2-810A-0B750CA178D5"><p>Separate source code from an application. </p> </li> </ul> </dd> </dlentry> <dlentry><dt>Plug-in System</dt> <dd><p>A client wishes to access a plug-in. The plug-in details are known only at run-time. The general characteristics of the plug-in are defined in an interface. Multiple variants of the plug-in can co-exist. </p> <p>The four clearly-defined roles of a plug-in system are: </p> <ul><li id="GUID-30A0D998-79B7-5039-B4B7-602C6C74F08B"><p>The <b>Client</b> that wishes to access services. </p> </li> <li id="GUID-8ED5CDA4-F17A-5BB2-A657-76ECE561844A"><p>The <b>Interface Definition</b> that defines how to request services. </p> </li> <li id="GUID-C371204A-5D56-52B9-AD55-D69BCCA5812B"><p>The <b>Interface Implementation/Plug-in </b> that provides the required processing. </p> </li> <li id="GUID-E89C937D-0DA1-5CDD-BDFC-6F4E3FD40FD2"><p>The <b>Framework</b> that provides the clients with the required access to the implementations. </p> </li> </ul> <p>The relationships can be represented as follows: </p> <fig id="GUID-47C384EC-4F9E-55EA-B50B-7DAD9E990865"><title>
-                  Plug-in relationships 
-                </title> <image href="GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e179306_href.png" placement="inline"/></fig> <p>The instantiation mechanism is responsible for providing the services that identify, and load the correct implementation at run-time. </p> </dd> </dlentry> <dlentry><dt> Interface</dt> <dd><p>Is an abstraction that an entity provides of itself to the outside. This separates the methods of external communication from internal operation. It allows internal modification and this modification does not affect the outside entities interaction with the interface. An interface can provide multiple abstractions. </p> </dd> </dlentry> <dlentry><dt> Interface API / Interface Definition</dt> <dd><p>Is a template for an interface implementation. </p> </dd> </dlentry> <dlentry><dt>Interface Client/Client</dt> <dd><p>Is an application that uses the interface definition. </p> </dd> </dlentry> <dlentry><dt>Interface Implementation Collection</dt> <dd><p>Is a collection of interface implementations/plug-ins. </p> </dd> </dlentry> <dlentry><dt>Registry</dt> <dd><p>Is a collection of plug-ins registered with the framework. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>The plug-in framework employs the client server architecture. The client session is a singleton per process thread. </p> <fig id="GUID-7B34EF3B-5C56-5CA8-ABC0-60AB4F5652A1"><title>
-             Plug-in framework architecture 
-          </title> <image href="GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e179376_href.jpg" placement="inline"/></fig> <p>The functional components of the plug-in framework are: </p> <ul><li id="GUID-57437172-8AE4-5355-8776-E14C3298A6A1"><p>The <b> Client /Interface Client</b> that invokes the available services via the interface definition. </p> </li> <li id="GUID-807D6C07-9202-549D-9250-17806FBE1C40"><p>The <b>Server / Framework</b> controls access to a registry of available implementations that is used for interface implementation resolution and loading. </p> <p>The server facilitates: </p> <ul><li id="GUID-5A87C3FF-3576-5EAD-BD49-E2B498A09340"><p>Addition and removal of interface implementations. </p> <p>The addition, removal or modifications to an implementation is notified to the server. The server updates the changes in the registry. </p> </li> <li id="GUID-7D2957EE-C6BF-5687-84AA-A44C1EFBFD42"><p>Search/Access mechanisms. </p> <p>The registry data is maintained as a hierarchical arrangement of implementations. The complete data is scanned and matching interface implementation list is produced as a result of search. </p> </li> <li id="GUID-B44DA453-D953-515C-8B6C-D6F315CD03BD"><p>Resolution mechanisms. </p> <p>The best fit implementation from the resultant search is identified. </p> </li> <li id="GUID-1ABE83FD-E2DE-5A72-BBEA-F6F216961C9D"><p>Load control. </p> <p>Controls access to a single instance of the available implementations. The implementation identification information is used to load the appropriate collection. </p> </li> </ul> </li> </ul> </section> <section><title>APIs</title> <table id="GUID-1B7014F2-7210-554B-BE78-35560FF68FE0"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita"><apiname>REComSession</apiname></xref>  </p> </entry> <entry><p>Resolves, instantiates, and destroys interface class implementations requested by the plug-in framework clients. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The plug-in framework allows: </p> <ul><li id="GUID-593D6FAD-EF95-53E8-B4C2-A60EF4A9DB1A"><p>Framework developers to write interface definitions and extend interfaces. </p> </li> <li id="GUID-DD0929A4-F9E4-5B70-8D3D-7D5697A09C27"><p>Plug-in writer to implement the interfaces. </p> </li> <li id="GUID-272F59F3-8EF6-58C4-9F61-9532D1D0EC46"><p>Plug-in user to use the interfaces. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-41D80358-473F-5B50-A09A-4F5601EAC4A9.dita"><linktext>Framework Developer Tutorials</linktext> </link> <link href="GUID-57F29787-B425-53EA-9DB4-372B77543584.dita"><linktext>Plug-in Writer's Tutorials</linktext> </link> <link href="GUID-DE9CB4F7-5129-5450-A6D6-9B0BA253FC81.dita"><linktext>Plug-in User's Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-8A7B837D-4069-5364-A596-686EEBAE351D"><title>Plug-In Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Plug-in (ECom) framework is a generic framework that provides a single mechanism to register and discover plug-ins and load an appropriate plug-in. </p> <section><title>Purpose</title> <p>In early versions of Symbian platform, plug-ins were provided by <xref href="GUID-6482956D-C3A3-5B68-A37F-4250C85B0D82.dita">polymorphic interface DLLs</xref>. All the frameworks within the Symbian platform that needed to use plug-ins had to provide their own mechanisms for the clients to discover and instantiate the implementations. This resulted in duplication of functionality. </p> <p>The Plug-In framework is intended to provide a common and system-wide mechanism for instantiating a dynamically determined component. </p> <p>Three distinct users of the plug-in framework are: </p> <ul><li id="GUID-B72B2ED5-545F-54BA-89F3-9F014A17D9D8"><p>Framework or Application designers </p> <p>These users need to understand interface definition design and platform security implications. </p> </li> <li id="GUID-F0961823-257F-553D-B58E-8061ECA03FCD"><p>Plug-in writers </p> <p>These users need to understand interface implementation, DLL creation and platform security implementation issue. </p> </li> <li id="GUID-939853D9-4C52-5C6E-9804-E0594DE2B152"><p>Plug-in users </p> <p>These users need to understand that the plug-in framework helps in selecting the plug-in but sometimes may need to specify which implementation the framework should choose. </p> </li> </ul> </section> <section><title>Required background</title> <p> <b>Run-time Binding</b>: This is called dynamic binding or late binding. The linking of a routine or object is performed during runtime based on the requirements. </p> <p> <b>DLL (Dynamic Link Library)</b>: Is a piece of code (a library) that is linked to a program at runtime rather than during the build process. The code inside a DLL can be shared by several clients at the same time without being duplicated in the mobile memory. </p> <p>In addition , the user should be aware of the<xref href="GUID-9E4D75C0-D797-5541-8E52-3C6D154CC74A.dita"> Platform Security Considerations</xref> of the plug-in framework architecture. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt> Plug-in</dt> <dd><p>In computing, a plug-in(extension) consists of a computer program that interacts with a host application(a web browser or an email client) to provide a very specific function on demand. </p> <p>Applications support plugins to: </p> <ul><li id="GUID-E5F6B556-5957-50CE-9309-1013335A3911"><p>Enable third-party developers to create capabilities to extend an application. </p> </li> <li id="GUID-F882F8D5-A744-5079-9A15-DC5DD166C8BC"><p>Reduce the size of an application. </p> </li> <li id="GUID-6FC7254E-3CCF-58A2-810A-0B750CA178D5"><p>Separate source code from an application. </p> </li> </ul> </dd> </dlentry> <dlentry><dt>Plug-in System</dt> <dd><p>A client wishes to access a plug-in. The plug-in details are known only at run-time. The general characteristics of the plug-in are defined in an interface. Multiple variants of the plug-in can co-exist. </p> <p>The four clearly-defined roles of a plug-in system are: </p> <ul><li id="GUID-30A0D998-79B7-5039-B4B7-602C6C74F08B"><p>The <b>Client</b> that wishes to access services. </p> </li> <li id="GUID-8ED5CDA4-F17A-5BB2-A657-76ECE561844A"><p>The <b>Interface Definition</b> that defines how to request services. </p> </li> <li id="GUID-C371204A-5D56-52B9-AD55-D69BCCA5812B"><p>The <b>Interface Implementation/Plug-in </b> that provides the required processing. </p> </li> <li id="GUID-E89C937D-0DA1-5CDD-BDFC-6F4E3FD40FD2"><p>The <b>Framework</b> that provides the clients with the required access to the implementations. </p> </li> </ul> <p>The relationships can be represented as follows: </p> <fig id="GUID-47C384EC-4F9E-55EA-B50B-7DAD9E990865"><title>
+                  Plug-in relationships 
+                </title> <image href="GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e172711_href.png" placement="inline"/></fig> <p>The instantiation mechanism is responsible for providing the services that identify, and load the correct implementation at run-time. </p> </dd> </dlentry> <dlentry><dt> Interface</dt> <dd><p>Is an abstraction that an entity provides of itself to the outside. This separates the methods of external communication from internal operation. It allows internal modification and this modification does not affect the outside entities interaction with the interface. An interface can provide multiple abstractions. </p> </dd> </dlentry> <dlentry><dt> Interface API / Interface Definition</dt> <dd><p>Is a template for an interface implementation. </p> </dd> </dlentry> <dlentry><dt>Interface Client/Client</dt> <dd><p>Is an application that uses the interface definition. </p> </dd> </dlentry> <dlentry><dt>Interface Implementation Collection</dt> <dd><p>Is a collection of interface implementations/plug-ins. </p> </dd> </dlentry> <dlentry><dt>Registry</dt> <dd><p>Is a collection of plug-ins registered with the framework. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>The plug-in framework employs the client server architecture. The client session is a singleton per process thread. </p> <fig id="GUID-7B34EF3B-5C56-5CA8-ABC0-60AB4F5652A1"><title>
+             Plug-in framework architecture 
+          </title> <image href="GUID-2E3A91F9-5538-5E23-8D23-CE97B677A668_d0e172781_href.jpg" placement="inline"/></fig> <p>The functional components of the plug-in framework are: </p> <ul><li id="GUID-57437172-8AE4-5355-8776-E14C3298A6A1"><p>The <b> Client /Interface Client</b> that invokes the available services via the interface definition. </p> </li> <li id="GUID-807D6C07-9202-549D-9250-17806FBE1C40"><p>The <b>Server / Framework</b> controls access to a registry of available implementations that is used for interface implementation resolution and loading. </p> <p>The server facilitates: </p> <ul><li id="GUID-5A87C3FF-3576-5EAD-BD49-E2B498A09340"><p>Addition and removal of interface implementations. </p> <p>The addition, removal or modifications to an implementation is notified to the server. The server updates the changes in the registry. </p> </li> <li id="GUID-7D2957EE-C6BF-5687-84AA-A44C1EFBFD42"><p>Search/Access mechanisms. </p> <p>The registry data is maintained as a hierarchical arrangement of implementations. The complete data is scanned and matching interface implementation list is produced as a result of search. </p> </li> <li id="GUID-B44DA453-D953-515C-8B6C-D6F315CD03BD"><p>Resolution mechanisms. </p> <p>The best fit implementation from the resultant search is identified. </p> </li> <li id="GUID-1ABE83FD-E2DE-5A72-BBEA-F6F216961C9D"><p>Load control. </p> <p>Controls access to a single instance of the available implementations. The implementation identification information is used to load the appropriate collection. </p> </li> </ul> </li> </ul> </section> <section><title>APIs</title> <table id="GUID-1B7014F2-7210-554B-BE78-35560FF68FE0"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita"><apiname>REComSession</apiname></xref>  </p> </entry> <entry><p>Resolves, instantiates, and destroys interface class implementations requested by the plug-in framework clients. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The plug-in framework allows: </p> <ul><li id="GUID-593D6FAD-EF95-53E8-B4C2-A60EF4A9DB1A"><p>Framework developers to write interface definitions and extend interfaces. </p> </li> <li id="GUID-DD0929A4-F9E4-5B70-8D3D-7D5697A09C27"><p>Plug-in writer to implement the interfaces. </p> </li> <li id="GUID-272F59F3-8EF6-58C4-9F61-9532D1D0EC46"><p>Plug-in user to use the interfaces. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-41D80358-473F-5B50-A09A-4F5601EAC4A9.dita"><linktext>Framework Developer Tutorials</linktext> </link> <link href="GUID-57F29787-B425-53EA-9DB4-372B77543584.dita"><linktext>Plug-in Writer's Tutorials</linktext> </link> <link href="GUID-DE9CB4F7-5129-5450-A6D6-9B0BA253FC81.dita"><linktext>Plug-in User's Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-8AB9527A-1C7E-5D3A-9AB2-A3FA1F5A2D5B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,675 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8AB9527A-1C7E-5D3A-9AB2-A3FA1F5A2D5B" xml:lang="en"><title>UIDs</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D577F130-EBFF-4526-BB1B-C09C2D1AE41F"><title>Symmetric cipher
+algorithm UIDs</title> <table id="GUID-8DF2D162-47BE-5B6F-992E-81EF1BA45AEA">
+<tgroup cols="4"><colspec colname="col0" colwidth="0.59*"/><colspec colname="col1" colwidth="1.14*"/><colspec colname="col2" colwidth="0.57*"/><colspec colname="col3" colwidth="1.73*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KDesUid </p> </entry>
+<entry><p>DES (Data Encryption Standard) algorithm </p> </entry>
+<entry><p>0x10283179 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2406.txt" scope="external"> RFC
+2406</xref> </p> </entry>
+</row>
+<row>
+<entry><p>K3DesUid </p> </entry>
+<entry><p>3DES (Triple Data Encryption Standard) algorithm </p> </entry>
+<entry><p>0x1028317a </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2405.txt" scope="external">RFC
+2405</xref>  </p> <p> <xref href="http://www.ietf.org/rfc/rfc2420.txt" scope="external">RFC
+2420</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KRc2Uid </p> </entry>
+<entry><p>RC2 algorithm </p> </entry>
+<entry><p>0x1028317b </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2268.txt" scope="external"> RFC
+2268</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KArc4Uid </p> </entry>
+<entry><p>ARC4 ('alleged' RC4) algorithm (strong random number generator) </p> </entry>
+<entry><p>0x1028317c </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2144.txt" scope="external"> RFC
+2144 </xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KAesUid </p> </entry>
+<entry><p>AES (Advanced Encryption Standard) </p> </entry>
+<entry><p>0x1028317d </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc3268.txt" scope="external"> RFC
+3268</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KMisty1Uid </p> </entry>
+<entry><p>Misty1 algorithm </p> </entry>
+<entry><p>0x102831be </p> </entry>
+<entry><p> <xref href="http://tools.ietf.org/html/rfc2994" scope="external">RFC
+2994</xref> </p> </entry>
+</row>
+<row>
+<entry><p>KMisty2Uid </p> </entry>
+<entry><p>Misty2 algorithm </p> </entry>
+<entry><p>0x102831bf </p> </entry>
+<entry/>
+</row>
+<row>
+<entry><p>KKasumiUid </p> </entry>
+<entry><p>Kasumi algorithm </p> </entry>
+<entry><p>0x102831c0 </p> </entry>
+<entry><p> <xref href="http://tools.ietf.org/html/rfc3711" scope="external">RFC
+3711</xref> </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The symmetric cipher algorithm UIDs are used by the following
+CryptoSPI APIs: </p><ul>
+<li><p><xref href="GUID-D13C874A-A34F-3DAD-8E58-C6E518E40C9B.dita#GUID-D13C874A-A34F-3DAD-8E58-C6E518E40C9B/GUID-E0E5C018-973F-3704-9B61-233E977E0224"><apiname>CSymmetricCipherFactory::CreateSymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-751A1919-E6F3-3445-B011-2AED64768544"><apiname>CRuleSelector::CreateSymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A.dita#GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A/GUID-CCA2D456-B208-384C-B74A-B06B83EFCC16"><apiname>CCryptoPluginEntry::CreateSymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-DEB128B1-EC5F-363B-AE73-9232771F5FB4"><apiname>CAsymmetricCipherFactory::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-781533FC-C92E-34C5-9848-A98A836A952D"><apiname>CRuleSelector::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A.dita#GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A/GUID-B3B34A75-353E-3D39-8A5C-AA0391F8F15B"><apiname>CCryptoPluginEntry::CreateAsymmetricCipherL()</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-D2728977-CA7E-4DDB-AE35-9AC8A6577D27"><title>Asymmetric
+cipher algorithm UIDs</title> <table id="GUID-1B15D4D7-208B-568C-8411-E0F715614C85">
+<tgroup cols="4"><colspec colname="col0" colwidth="0.63*"/><colspec colname="col1" colwidth="0.53*"/><colspec colname="col2" colwidth="0.57*"/><colspec colname="col3" colwidth="2.29*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KRsaCipherUid </p> </entry>
+<entry><p>RSA </p> </entry>
+<entry><p>0x1028317e </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2437.txt" scope="external">RFC
+2437: PKCS #1</xref>: RSA Cryptography Specifications Version 2.0 </p> <p> <xref href="http://tools.ietf.org/html/rfc2313" scope="external">RFC 2313 - PKCS
+#1</xref>: RSA Encryption Version 1.5 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The asymmetric cipher algorithm UIDs are used by the following
+ CryptoSPI APIs: </p><ul>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-DEB128B1-EC5F-363B-AE73-9232771F5FB4"><apiname>CAsymmetricCipherFactory::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-781533FC-C92E-34C5-9848-A98A836A952D"><apiname>CRuleSelector::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A.dita#GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A/GUID-B3B34A75-353E-3D39-8A5C-AA0391F8F15B"><apiname>CCryptoPluginEntry::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-EDC16E45-F72F-3E1A-ABDA-762CFAA3E82B"><apiname>CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-12050906-942F-342B-9B40-1AAA7010ECB6"><apiname>CRuleSelector::CreateAsyncAsymmetricCipherL()</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-07EFE951-61E0-4F53-BBDA-43B189051BAA"><title>Signer algorithm
+UIDs</title> <table id="GUID-9AA786D9-4884-5765-906B-E917729A1871">
+<tgroup cols="4"><colspec colname="col0" colwidth="1.00*"/><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="0.48*"/><colspec colname="col3" colwidth="1.52*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KRsaSignerUid </p> </entry>
+<entry><p>RSA Signer algorithm </p> </entry>
+<entry><p>0x1028317f </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc4853.txt" scope="external">RFC
+4853</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KDsaSignerUid </p> </entry>
+<entry><p>DSA Signer algorithm </p> </entry>
+<entry><p>0x10283180 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc3279.txt" scope="external">RFC
+3279</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The signer algorithm UIDs are used by the following CryptoSPI
+APIs: </p><ul>
+<li><p><xref href="GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC.dita#GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC/GUID-686038A5-6F90-32C1-960E-E286B59370EE"><apiname>CSignatureFactory::CreateSignerL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-B4EEB1B5-C068-36B3-BE72-7597113ED55F"><apiname>CRuleSelector::CreateSignerL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC.dita#GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC/GUID-DCF8148C-9781-385D-BC46-BB3DC8873F9B"><apiname>CSignatureFactory::CreateAsyncSignerL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-B2194066-ABAE-3810-A77C-B734B49D5FC7"><apiname>CRuleSelector::CreateAsyncSignerL()</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-D056A982-5E83-4501-BDB1-693A7A503756"><title>Verifier algorithm
+UIDs</title> <table id="GUID-4D36FD6F-EB37-5D3E-87DC-DE75CFFCF683">
+<tgroup cols="4"><colspec colname="col0" colwidth="1.00*"/><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="0.57*"/><colspec colname="col3" colwidth="1.43*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KRsaVerifierUid </p> </entry>
+<entry><p>RSA Verifier algorithm </p> </entry>
+<entry><p>0x10283181 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc4853.txt" scope="external">RFC
+4853</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KDsaVerifierUid </p> </entry>
+<entry><p>DSA Verifier algorithm </p> </entry>
+<entry><p>0x10283182 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc3279.txt" scope="external">RFC
+3279</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The verifier algorithm UIDs are used by the following CryptoSPI
+APIs: </p><ul>
+<li><p><xref href="GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC.dita#GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC/GUID-3DD66A5A-5B9F-3BDB-84B4-DB95BD386100"><apiname>CSignatureFactory::CreateVerifierL()</apiname></xref></p></li>
+<li><p><xref href="GUID-E564F6AF-9D01-3D3F-AA3E-5956A7221552.dita#GUID-E564F6AF-9D01-3D3F-AA3E-5956A7221552/GUID-3227DC19-D09F-30FB-91BB-93B56D669BE7"><apiname>MPluginSelector::CreateVerifierL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC.dita#GUID-3ED5D4BF-0EDD-30ED-B7BA-C62EE2981DAC/GUID-D0C7C0BB-72E5-3BA5-864F-B047A49BD237"><apiname>CSignatureFactory::CreateAsyncVerifierL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-1CA31AAD-CD01-3F06-864F-A2B37EA1177A"><apiname>CRuleSelector::CreateAsyncVerifierL()</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-B2C80B22-9EB3-4AC1-B377-5DC957EB6AEE"><title>Key Agreement
+algorithm UIDs</title> <table id="GUID-60895D3B-D766-5E65-9392-CCF7A55281D1">
+<tgroup cols="4"><colspec colname="col0" colwidth="1.00*"/><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="0.55*"/><colspec colname="col3" colwidth="1.46*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KDHAgreementUid </p> </entry>
+<entry><p>Diffie-Hellman Key Agreement algorithm </p> </entry>
+<entry><p>0x10283183 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc2631.txt" scope="external">RFC
+2631</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The Key Agreement algorithm UIDs are used by the following CryptoSPI
+APIs: </p><ul>
+<li><p><xref href="GUID-7DF57CF7-F165-3648-A434-7963F2491D1A.dita#GUID-7DF57CF7-F165-3648-A434-7963F2491D1A/GUID-D3EFC9F7-D0E8-36EB-80E4-03B7716ABED4"><apiname>CKeyAgreementFactory::CreateKeyAgreementL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-88221CC1-77C4-30D3-86F0-A365D1A03F84"><apiname>CRuleSelector::CreateKeyAgreementL()</apiname></xref></p></li>
+<li><p><xref href="GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A.dita#GUID-3CDC62B1-2CC9-3546-9E75-772CC1D9546A/GUID-EE365359-41F8-3270-9449-C5A58D89C54A"><apiname>CCryptoPluginEntry::CreateKeyAgreementL()</apiname></xref></p></li>
+<li><p><xref href="GUID-7DF57CF7-F165-3648-A434-7963F2491D1A.dita#GUID-7DF57CF7-F165-3648-A434-7963F2491D1A/GUID-A327708D-7089-34C0-B717-D3A10D8B5FAF"><apiname>CKeyAgreementFactory::CreateAsyncKeyAgreementL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-FB7A80AE-3AB8-300F-8FA3-E14C5D3B6E52"><apiname>CRuleSelector::CreateAsyncKeyAgreementL()</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-3BF50684-42E8-4BAA-95C5-73448C048B2F"><title>Key Pair Generator
+algorithm UIDs</title> <table id="GUID-8CB20C6D-8C7A-5D2B-AD7F-6F04B7204A5F">
+<tgroup cols="4"><colspec colname="col0" colwidth="1.00*"/><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="0.56*"/><colspec colname="col3" colwidth="1.45*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KDHKeyPairGeneratorUid </p> </entry>
+<entry><p>DH Key Pair Generator algorithm </p> </entry>
+<entry><p>0x10283184 </p> </entry>
+<entry><p> <xref href="http://www.isi.edu/in-notes/rfc2539.txt" scope="external"> RFC
+2539</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KRSAKeyPairGeneratorUid </p> </entry>
+<entry><p>RSA Key Pair Generator algorithm </p> </entry>
+<entry><p>0x10283185 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc4055.txt" scope="external">RFC
+4055</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KDSAKeyPairGeneratorUid </p> </entry>
+<entry><p>DSA Key Pair Generator algorithm </p> </entry>
+<entry><p>0x10283186 </p> </entry>
+<entry/>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The Key Pair Generator algorithm UIDs are used by the following
+CryptoSPI APIs: </p><ul>
+<li><p><xref href="GUID-F6E699CD-2B2F-36A6-AD82-BD2CC58A7A29.dita#GUID-F6E699CD-2B2F-36A6-AD82-BD2CC58A7A29/GUID-733E6326-0886-3BC3-83BE-67CE02724200"><apiname>CKeyPairGeneratorFactory::CreateAsyncKeyPairGeneratorL()</apiname></xref></p></li>
+<li><p><xref href="GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79.dita#GUID-253D228B-4210-3906-B5AC-31C7DDBCCD79/GUID-199FAC0D-A9C2-32B9-897A-3A95D795D3CE"><apiname>CRuleSelector::CreateAsyncKeyPairGeneratorL()</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-3485CB77-BD12-4798-886A-F876E2C97FEE"><title>Padding modes</title> <table id="GUID-22EE4534-D4C8-5B74-BF1D-FED85D52D706">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KPaddingModeNoneUid </p> </entry>
+<entry><p>Padding Mode None Uid </p> </entry>
+<entry><p>0x10283188 </p> </entry>
+</row>
+<row>
+<entry><p>KPaddingModeSSLv3Uid </p> </entry>
+<entry><p>SSLv3 Padding Mode Uid </p> </entry>
+<entry><p>0x10283189 </p> </entry>
+</row>
+<row>
+<entry><p>KPaddingModePKCS7Uid </p> </entry>
+<entry><p>PKCS7 Padding Mode Uid </p> </entry>
+<entry><p>0x1028318a </p> </entry>
+</row>
+<row>
+<entry><p>KPaddingModePkcs1_v1_5_EncryptionUid </p> </entry>
+<entry><p>Pkcs1 v1.5 Encryption Padding mode Uid </p> </entry>
+<entry><p>0x1028318b </p> </entry>
+</row>
+<row>
+<entry><p>KPaddingModePkcs1_v1_5_SignatureUid </p> </entry>
+<entry><p>Pkcs1 v1.5 Signature Padding mode Uid </p> </entry>
+<entry><p>0x1028318c </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The padding modes are used by the following CryptoSPI APIs: </p><ul>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-DEB128B1-EC5F-363B-AE73-9232771F5FB4"><apiname>CAsymmetricCipherFactory::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-EDC16E45-F72F-3E1A-ABDA-762CFAA3E82B"><apiname>CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-47A7F1B3-12A7-4567-ABE9-21539CE6D737"><title>Cryptography
+modes</title> <table id="GUID-1E4937C9-0E59-547D-8B56-1BAC3F8ED38C">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KCryptoModeEncryptUid </p> </entry>
+<entry><p>Crypto Encrypt Mode Uid </p> </entry>
+<entry><p>0x1028318d </p> </entry>
+</row>
+<row>
+<entry><p>KCryptoModeDecryptUid </p> </entry>
+<entry><p>Crypto Decrypt Mode Uid </p> </entry>
+<entry><p>0x1028318e </p> </entry>
+</row>
+<row>
+<entry><p>KCryptoModeNoneUid </p> </entry>
+<entry><p>Crypto None Mode Uid </p> </entry>
+<entry><p>0x1028318f </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The cryptography modes are used by the following CryptoSPI APIs: </p><ul>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-DEB128B1-EC5F-363B-AE73-9232771F5FB4"><apiname>CAsymmetricCipherFactory::CreateAsymmetricCipherL()</apiname></xref></p></li>
+<li><p><xref href="GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170.dita#GUID-F9DF2529-463B-3D0C-853A-42E1B9DDD170/GUID-EDC16E45-F72F-3E1A-ABDA-762CFAA3E82B"><apiname>CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-4C67EEC6-151D-4BF9-A2A4-12FE450B9CC3"><title>Hash algorithm UIDs</title> <table id="GUID-419E5D6D-17A7-5454-92A1-E7EDEF618ED6">
+<tgroup cols="4"><colspec colname="col0" colwidth="1.00*"/><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="0.72*"/><colspec colname="col3" colwidth="1.28*"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+<entry>RFC standard</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KMd2Uid </p> </entry>
+<entry><p>MD2, Message-Digest Algorithm </p> </entry>
+<entry><p>0x10283173 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC
+1319</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KMd4Uid </p> </entry>
+<entry><p>MD4, Message-Digest Algorithm (Output: 128 bit message digest) </p> </entry>
+<entry><p>0x2000B341 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
+1320</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KMd5Uid </p> </entry>
+<entry><p>MD5 ,Message-Digest Algorithm (output:128-bit "fingerprint" or "message
+digest) </p> </entry>
+<entry><p>0x10283174 </p> </entry>
+<entry><p> <xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
+1321</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KSha1Uid </p> </entry>
+<entry><p>Secure Hash Algorithm(output: 160-bit message digest) </p> </entry>
+<entry><p>0x10283175 </p> </entry>
+<entry><p> <xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
+180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
+3174</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KSha224Uid </p> </entry>
+<entry><p>Sha224 algorithm </p> </entry>
+<entry><p>0x2000E258 </p> </entry>
+<entry><p> <xref href="http://all.net/books/standards/NIST-CSRC/csrc.nist.gov/publications/fips/fips180-2/FIPS180-2_changenotice.pdf" scope="external">FIPS 180-2 (with change notice)</xref>, <xref href="http://www.ietf.org/rfc/rfc3874.txt" scope="external">RFC3874</xref> and <xref href="http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf" scope="external">FIPS 180-3</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KSha256Uid </p> </entry>
+<entry><p>Sha256 algorithm </p> </entry>
+<entry><p>0x2000E259 </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KSha384Uid </p> </entry>
+<entry><p>Sha384 algorithm </p> </entry>
+<entry><p>0x2000E25A </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
+</row>
+<row>
+<entry><p>KSha512Uid </p> </entry>
+<entry><p>Sha512 algorithm </p> </entry>
+<entry><p>0x2000E25B </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" scope="external">FIPS 180-2</xref> and <xref href="http://tools.ietf.org/html/rfc4634" scope="external">RFC 4634 </xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The hash algorithm UIDs are used by the following APIs: </p> <ul>
+<li id="GUID-FAD44CE7-B0C3-523C-895F-DB58122ACA9D"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateHashL()</apiname></xref>  </p> </li>
+<li id="GUID-B206FCF6-A9B4-5330-AC91-148D2A18C292"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateHashL()</apiname></xref>  </p> </li>
+<li id="GUID-DE3E3CC4-7041-5D50-9C38-409D37858CA0"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CCryptoPluginEntry::CreateHashL()</apiname></xref>  </p> </li>
+<li id="GUID-17E00247-8550-53C2-9484-3BD0B7BB8350"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateAsyncHashL()</apiname></xref>  </p> </li>
+<li id="GUID-3FAA4591-64B1-55BF-9A07-D8E4318F9DA7"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateAsyncHashL()</apiname></xref>  </p> </li>
+</ul> </section>
+<section id="GUID-A558F4E2-F9A7-4CE1-86DC-A6E75646D9A7"><title>Random algorithm UIDs</title> <table id="GUID-7080EBEE-F16E-58E7-86D4-55B06AEE3F9C">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KRandomUid </p> </entry>
+<entry><p>Random algorithm UID </p> </entry>
+<entry><p>0x10283178 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The random algorithm UIDs are used by the following APIs: </p> <ul>
+<li id="GUID-60CD845B-520E-5A92-9D98-7060DFAFBE2A"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRandomFactory::CreateRandomL()</apiname></xref>  </p> </li>
+<li id="GUID-F78A3F91-F0FC-5B97-B09C-377B84DAB442"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname> CryptoSpi::CRuleSelector::CreateRandomL()</apiname></xref>  </p> </li>
+<li id="GUID-43703C40-4FB3-5233-BF18-34320FC50D8E"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRandomFactory::CreateAsyncRandomL()</apiname></xref> </p> </li>
+<li id="GUID-E98800A8-4C96-52CE-AE42-0D780065FBDE"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CRuleSelector::CreateAsyncRandomL()</apiname></xref> </p> </li>
+</ul> </section>
+<section id="GUID-C0A00B5D-4499-41D5-A81D-372AFF2F0E98"><title>Symmetric key algorithm UIDs</title> <table id="GUID-21816DBD-BC04-5F12-9972-8FEF5CEA3F5A">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KDesUid </p> </entry>
+<entry><p>Des algorithm UID </p> </entry>
+<entry><p>0x10283179 </p> </entry>
+</row>
+<row>
+<entry><p>K3DesUid </p> </entry>
+<entry><p>3Des algorithm UID </p> </entry>
+<entry><p>0x1028317a </p> </entry>
+</row>
+<row>
+<entry><p>KRc2Uid </p> </entry>
+<entry><p>RC2 algorithm UID </p> </entry>
+<entry><p>0x1028317b </p> </entry>
+</row>
+<row>
+<entry><p>KArc4Uid </p> </entry>
+<entry><p>ARC4 algorithm UID </p> </entry>
+<entry><p>0x1028317c </p> </entry>
+</row>
+<row>
+<entry><p>KAesUid </p> </entry>
+<entry><p>AES algorithm UID </p> </entry>
+<entry><p>0x1028317d </p> </entry>
+</row>
+<row>
+<entry><p>KMisty1Uid </p> </entry>
+<entry><p>Misty1 algorithm UID </p> </entry>
+<entry><p>0x102831be </p> </entry>
+</row>
+<row>
+<entry><p>KMisty2Uid </p> </entry>
+<entry><p>Misty2 algorithm UID </p> </entry>
+<entry><p>0x102831bf </p> </entry>
+</row>
+<row>
+<entry><p>KKasumiUid </p> </entry>
+<entry><p>Kasumi algorithm UID </p> </entry>
+<entry><p>0x102831c0 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The symmetric key algorithm UIDs are used by the following API: </p> <ul>
+<li id="GUID-CF4CBD6B-F8AE-5034-9A3D-7D85D35DDCC4"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CSymmetricCipher::CSymmetricCipher()</apiname></xref> </p> </li>
+</ul> </section>
+<section id="GUID-6A2F6C81-F91D-4453-8A5C-2B5D797681DD"><title>Asymmetric key algorithm UIDs</title> <table id="GUID-FB96DF5A-16F9-535F-B754-52FCEE1337C5">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KRsaCipherUid </p> </entry>
+<entry><p>RSA Cipher algorithm UID </p> </entry>
+<entry><p>0x1028317e </p> </entry>
+</row>
+<row>
+<entry><p>KRsaSignerUid </p> </entry>
+<entry><p>RSA Signer algorithm UID </p> </entry>
+<entry><p>0x1028317f </p> </entry>
+</row>
+<row>
+<entry><p>KRsaVerifierUid </p> </entry>
+<entry><p>RSA Verifier algorithm UID </p> </entry>
+<entry><p>0x10283181 </p> </entry>
+</row>
+<row>
+<entry><p>KRSAKeyPairGeneratorUid </p> </entry>
+<entry><p>RSA Key Pair Generator algorithm UID </p> </entry>
+<entry><p>0x10283185 </p> </entry>
+</row>
+<row>
+<entry><p>KDsaSignerUid </p> </entry>
+<entry><p>DSA Signer algorithm UID </p> </entry>
+<entry><p>0x10283180 </p> </entry>
+</row>
+<row>
+<entry><p>KDsaVerifierUid </p> </entry>
+<entry><p>DSA Verifier algorithm UID </p> </entry>
+<entry><p>0x10283182 </p> </entry>
+</row>
+<row>
+<entry><p>KDSAKeyPairGeneratorUid </p> </entry>
+<entry><p>DSA Key Pair Generator algorithm UID </p> </entry>
+<entry><p>0x10283186 </p> </entry>
+</row>
+<row>
+<entry><p>KDHAgreementUid </p> </entry>
+<entry><p>DH Agreement algorithm UID </p> </entry>
+<entry><p>0x10283183 </p> </entry>
+</row>
+<row>
+<entry><p>KDHKeyPairGeneratorUid </p> </entry>
+<entry><p>DH Key Pair Generator algorithm UID </p> </entry>
+<entry><p>0x10283184 </p> </entry>
+</row>
+<row>
+<entry><p>KEccCipherUid </p> </entry>
+<entry><p>ECC Key Cipher algorithm UID </p> </entry>
+<entry><p>0x20024482 </p> </entry>
+</row>
+<row>
+<entry><p>KEccSignerUid </p> </entry>
+<entry><p>ECC Key Signer algorithm UID </p> </entry>
+<entry><p>0x20024483 </p> </entry>
+</row>
+<row>
+<entry><p>KEccVerifierUid </p> </entry>
+<entry><p>ECC Key Verifier algorithm UID </p> </entry>
+<entry><p>0x20024486 </p> </entry>
+</row>
+<row>
+<entry><p>KEccKeyPairGeneratorUid </p> </entry>
+<entry><p>ECC Key Pair Generator algorithm UID </p> </entry>
+<entry><p>0x20024487 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <b>Note:</b> The ECC key UIDs are enabled only if the macros <codeph>SYMBIAN_ENABLE_SDP_ECC</codeph> and <codeph>SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT</codeph> are enabled. </p> <p>The asymmetric key algorithm UIDs are used by the following
+API: </p> <ul>
+<li id="GUID-6121C646-5898-51C4-A51D-063A6841BDF7"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CAsymmetricCipher::CAsymmetricCipher()</apiname></xref> </p> </li>
+</ul> </section>
+<section id="GUID-CF0ECFB3-C28B-41D2-AE47-6C360F47DA17"><title>Other UIDs</title> <table id="GUID-58122807-15E8-5919-BE4B-6E52BB425319">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KPassedHandleToKeyUid </p> </entry>
+<entry><p>Use this UID as <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CKey</apiname></xref> key parameter,
+whenever the CryptoSPI user has just the handle and not the actual key. The
+CryptoSPI plug-in searches for this ID and invokes the appropriate APIs for
+providing access to the key. </p> <p> <b>Note:</b> This UID is enabled only
+if the <codeph>SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT</codeph> macro is enabled. </p> </entry>
+<entry><p>0x20025161 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Example usage of KPassedHandleToKeyUid</b> </p> <p>The following
+sequence of steps explains the use of <codeph>KPassedHandleToKeyUid</codeph> in
+the key parameter, which, along with the key property creates a <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CKey</apiname></xref> object.
+This <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CKey</apiname></xref> object is one of the parameters
+in the creation of a signer object, which can be used for performing signing
+operations. </p> <ol id="GUID-90F8CE15-EFDA-5330-A8A0-722EFC5714B0">
+<li id="GUID-809C4C15-873A-51CE-B1E8-CCFAAD66C8A7"><p>Define the key property. </p> <p>Create
+a <codeph>CCryptoParams</codeph> object for the key parameter. Add the key
+handle and <codeph>KPassedHandleToKeyUid</codeph> to the CCryptoParams object
+by using <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CCryptoParams::AddL()</apiname></xref>. </p> </li>
+<li id="GUID-D6732C41-74A4-59A3-A099-D7CA9AE2C634"><p>Create a <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CKey</apiname></xref> object
+by passing instance of the key property and the <codeph>CCryptoParams</codeph> object
+containing <codeph>KPassedHandleToKeyUid</codeph>. </p> </li>
+<li id="GUID-ADA7CF45-9A3B-5888-9BF7-11465E78A04B"><p>Create a signer object
+by using the <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CKey</apiname></xref> object as one of the
+parameters. This signer object can be used for performing signing operations. </p> </li>
+</ol> <p>The following code snippet demonstrates the use of <codeph>KPassedHandleToKeyUid</codeph>: </p> <codeblock id="GUID-2BDD4700-C5EA-56A9-ACE7-5CB703B43886" xml:space="preserve">
+.
+.
+.
+// Define the key property
+TKeyProperty keyProperty;
+keyProperty.iAlgorithmUid = KRsaSignerUid;
+
+// Create the key parameter object
+CCryptoParams* keyParameters = CCryptoParams::NewLC();
+
+// iHandle is of type TCTTokenObjectHandle. It contains handle to the key
+keyParameters-&gt;AddL(iHandle.iObjectId, KPassedHandleToKeyUid);
+
+// Create a CKey object
+CKey* newKey = CKey::NewL(keyProperty, *keyParameters);
+
+// Create a signer plug-in object
+CSigner * implsig = NULL;    
+
+// Create the signer object
+CSignatureFactory::CreateSignerL(implsig, KRsaSignerUid, *newKey, KPaddingModePkcs1_v1_5_SignatureUid, NULL);
+.
+.
+.
+</codeblock> </section>
+<section id="GUID-0086C0B8-AE57-4653-9F77-A8594441D7AE"><title>Operation modes</title> <table id="GUID-DE9AE866-8A93-5876-A083-30A054D35651">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>UID</entry>
+<entry>Description</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>KOperationModeNoneUid </p> </entry>
+<entry><p>None Mode UID </p> </entry>
+<entry><p>0x10283190 </p> </entry>
+</row>
+<row>
+<entry><p>KOperationModeECBUid </p> </entry>
+<entry><p>ECB Mode UID </p> </entry>
+<entry><p>0x10283191 </p> </entry>
+</row>
+<row>
+<entry><p>KOperationModeCBCUid </p> </entry>
+<entry><p>CBC Mode UID </p> </entry>
+<entry><p>0x10283192 </p> </entry>
+</row>
+<row>
+<entry><p>KOperationModeOFBUid </p> </entry>
+<entry><p>OFB Mode UID </p> </entry>
+<entry><p>0x10283193 </p> </entry>
+</row>
+<row>
+<entry><p>KOperationModeCFBUid </p> </entry>
+<entry><p>CFB Mode UID </p> </entry>
+<entry><p>0x10283194 </p> </entry>
+</row>
+<row>
+<entry><p>KOperationModeCTRUid </p> </entry>
+<entry><p>CTR Mode UID </p> </entry>
+<entry><p>0x10283195 </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The operation modes are used by the following APIs: </p> <ul>
+<li id="GUID-3A02B850-7569-58CD-9D70-0A978DDA2963"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname>CryptoSpi::CHashFactory::CreateHashL()</apiname></xref>  </p> </li>
+<li id="GUID-81EA0218-CCFE-563D-9709-3DBA86260262"><p> <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita"><apiname> CryptoSpi::CHashFactory::CreateAsyncHashL()</apiname></xref>  </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e52168_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e74508_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e357317_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e363397_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091" xml:lang="en"><title>Control
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Control pane occupies the bottom part of the screen and displays the
-labels associated with the softkeys. </p>
-<fig id="GUID-3B64A270-FF5A-4F7E-9D8E-903846944485">
-<title>Control pane</title>
-<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e72845_href.png" placement="inline"/>
-</fig>
-<p>Normal touch down and release functionality applies to the softkeys in
-control pane. Activation is performed on touch release. However, activation
-can be cancelled by dragging the touch from the softkey area and performing
-a touch release.</p>
-<p>The Control pane is also active during <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options
-menus</xref>, <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">queries</xref>,
-and other states using <xref href="GUID-2922758C-37A4-436E-B0F3-358944F84E2A.dita">pop-up
-windows</xref>, although it does not itself reside in a pop-up window.</p>
-<p>The actual physical softkeys should be positioned directly beneath the
-screen so that the association between the keys and their respective labels
-is evident. Note, however, that the middle label refers to the Selection key
-(see <xref href="GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E.dita">Labeling the Selection
-key</xref> for further details).</p>
-<section id="GUID-E372B9B2-8E4A-4D39-8857-CC0A66F9BC75"><title>Using
-the control pane in C++ applications</title><p>The APIs to use for the control
-pane are the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref> for the softkeys and the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options menu API</xref> for the menus.</p><p>For implementation
-information on using the softkeys, see <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html#Buttons_API_Specification.topic3" scope="peer">Using the Buttons API</xref>. For implementation information
-on the menus, see <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html#Options_Menu_API_Specification.topic3" scope="peer">Using the Options menu API</xref>.</p><p>The Symbian
-platform uses Control Button Area (CBA) resources to set the options in the
-control pane above the softkeys. CBA resources map the text that appears above
-the softkeys in the control pane with commands that are collected by the event
-loop of the application framework and delivered to your application for <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">command handling</xref>.</p><p>When
-a mobile device user selects an Options softkey, the application framework
-displays the Options menu based upon the definitions in the menu bar's resources.</p><p>The
-Symbian platform uses MENU_BAR resources to create the Options menu, when
-a mobile device user selects the Options softkey. The options that appear
-above the softkeys are determined by CBA resources. The MENU_BAR resources
-map the text that appears in the Options menu with commands that are collected
-by the event loop of the application framework and delivered to your application
-for command handling. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091" xml:lang="en"><title>Control
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The control pane occupies the bottom part of the screen and displays the
+labels associated with the softkeys. </p>
+<fig id="GUID-3B64A270-FF5A-4F7E-9D8E-903846944485">
+<title>Control pane</title>
+<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e67708_href.png" placement="inline"/>
+</fig>
+<note> In landscape orientation, a part of the status pane (the clock and
+indicator pane) is inside the control pane.</note>
+<p>Normal touch down and release functionality applies to the softkeys in
+control pane. Activation is performed on touch release. However, activation
+can be cancelled by dragging the touch from the softkey area and performing
+a touch release.</p>
+<p>The actual physical softkeys should be positioned directly beneath the
+screen so that the association between the keys and their respective labels
+is evident. Note, however, that the middle label refers to the Selection key
+(see <xref href="GUID-2F264A2A-FA7A-4718-A6B6-9A764C1D1E0E.dita">Labeling the Selection
+key</xref> for further details).</p>
+<section id="GUID-E372B9B2-8E4A-4D39-8857-CC0A66F9BC75"><title>Using
+the control pane in applications</title><p>The APIs to use for the control
+pane are the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref> for the softkeys and the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options menu API</xref> for the menus.</p><p>For implementation
+information on using the softkeys, see <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html#Buttons_API_Specification.topic3" scope="peer">Using the Buttons API</xref>. For implementation information
+on the menus, see <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html#Options_Menu_API_Specification.topic3" scope="peer">Using the Options menu API</xref>.</p><p>The Symbian platform
+uses MENU_BAR resources to create the Options menu, when a mobile device user
+selects the Options softkey. The options that appear above the
+softkeys are determined by CBA resources. The MENU_BAR resources map the text
+that appears in the Options menu with commands that are collected by the event
+loop of the application framework and delivered to your application for command
+handling. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e355357_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e361437_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e15221_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e45567_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8B37A2C7-B4DB-5826-B6C2-3C21012EF9EA_d0e51123_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,158 +1,158 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27" xml:lang="en"><title>Sensors
-Framework Overview</title><shortdesc>The Sensors Framework consists of a sensor server and channel based
-client APIs for supporting an extensible set of sensor hardware. The sensor
-server defines a plug-in interface for adding sensor plug-ins for any type
-of sensor hardware. The channel APIs enable client applications to interact
-with the sensor hardware.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-8-1-9-1-1-6-1-4-1-3-1-3-1"><title>Key Concepts
-and Terms</title><dl>
-<dlentry>
-<dt>Sensor Channel</dt>
-<dd><p>The sensor channel forms a medium of interaction between the sensor
-hardware and client applications. </p><p>The data from one physical sensor
-can be mapped to several channels. For example, the Sensor System handling
-an acceleration sensor can provide raw data on one channel and preprocessed
-tap events on another.</p></dd>
-</dlentry>
-<dlentry>
-<dt>Channel Properties</dt>
-<dd><p>Channel properties contain properties of a specific channel, such as
-data rate, availability, connection type and so on.</p></dd>
-</dlentry>
-<dlentry>
-<dt>Data item</dt>
-<dd><p>A data item is a discrete data package that contains sensor data or
-an event parsed from sensor data and related values, such as timestamp. Each
-channel provides a single type of data item only. </p></dd>
-</dlentry>
-<dlentry>
-<dt>Channel condition</dt>
-<dd><p> A value-operator pair targeting a single value inside a data item,
-indicated by an index. A condition is met when the channel data value in comparison
-with the condition value using condition operator is true. The conditions
-are gathered in condition sets.</p><p>There are two condition types: single
-limit conditions and range conditions. Range conditions are formed from two
-separate conditions, representing the lower and upper limits of the range.</p></dd>
-</dlentry>
-<dlentry>
-<dt>Channel Condition Set</dt>
-<dd><p>A set of channel conditions. Following are the two types of condition
-sets: <ul>
-<li><p>AND condition set: An AND condition is met only if a data value satisfies
-all conditions in the set.</p></li>
-<li><p>OR condition: An OR condition is met if a data value satisfies even
-one single condition in the set.</p></li>
-</ul></p></dd>
-</dlentry>
-</dl>           </section>
-<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-8-1-9-1-1-6-1-4-1-3-1-3-2"><title>Description</title><p>The
-sensor server provides a plug-in interface (Sensor Definitions APIs) that
-enables platform developers to create sensor plug-ins for required sensors
-hardware. The sensor plug-ins enable the interaction between a client application
-and the sensor hardware through sensor channels. The Sensor Channel APIs provides
-access to each sensor channel.</p><p>One physical sensor can
-provide several different types of data.  For example, the physical magnetometer
-can provide data for the Magnetometer channel and the Magnetic North channel.
-Each sensor channel has its own sensor channel data definition in the Sensor
-Definitions APIs that defines the format of the data package supplied by the
-sensor channel. The data definition can also define properties for each data
-item in the data package.</p><p>The sensor server facilitates the transfer
-of data from one sensor hardware to multiple clients simultaneously. It also
-resolves any contention between client applications for opening channels or
-configuring a sensor device.</p>           </section>
-<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-8-1-9-1-1-6-1-4-1-3-1-3-3">       <title>APIs</title> 
-     <table id="GUID-4D61C176-6A42-4F06-96A2-950F6ACD1C25">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.44*"/><colspec colname="col2" colwidth="1.56*"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>CSensrvChannelFinder</entry>
-<entry>The channel finder provides functions to search and find sensor channels
-that are supported by the Symbian device. </entry>
-</row>
-<row>
-<entry>CSensrvChannel</entry>
-<entry>The sensor channel provides functions to open and control a sensor
-channel.</entry>
-</row>
-<row>
-<entry>CSensrvChannelCondition</entry>
-<entry>The sensor channel provides functions for notifying when a specific
-condition is met.</entry>
-</row>
-<row>
-
-<entry>CSensrvChannelConditionSet</entry>
-<entry>The sensor channel condition set provides functions for adding one
-or more channel conditions to a condition set.</entry>
-</row>
-<row>
-<entry>MSensrvChannelListener</entry>
-<entry>The sensor channel listener is a callback interface that tracks for
-new channels installed on the Symbian device.</entry>
-</row>
-<row>
-<entry>MSensrvChannelConditionListener</entry>
-<entry>The sensor channel condition listener is a callback interface that
-notifies the clients when a condition-set is satisfied.</entry>
-</row>
-<row>
-<entry>MSensrvDataListener</entry>
-<entry>The sensor data listener is a callback interface that notifies the
-clients when the sensor data is available.</entry>
-</row>
-<row>
-<entry>MSensrvPropertyListener</entry>
-<entry>The sensor property listener is a callback interface that notifies
-the client when a channel property changes.</entry>
-</row>
-</tbody>
-</tgroup>
-</table>  <fig id="GUID-90C26AB4-F003-444C-B9AF-422BB816557C">
-<image href="GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e134835_href.png" placement="inline"/>
-</fig><p>A physical sensor can supply data to several sensor channels (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCSensrvChannel.html" format="application/java-archive"><codeph>CSensrvChannel</codeph></xref>)
-. A sensor channel provides data to an application in a channel-specific data
-format (for example, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/Sensor_definitions_APIClassesIndexPage.html" format="application/java-archive"><codeph>TSensrvXyzData</codeph></xref>) through a callback to the <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMSensrvDataListener.html#7ddce5c72a9d429ddb9e69f9e3a0a9b6" format="application/java-archive"><codeph>MSensrvDataListener::DataReceived()</codeph></xref> interface. A
-sensor channel has a single channel info item (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classTSensrvChannelInfo.html" format="application/java-archive"><codeph>TSensrvChannelInfo</codeph></xref>) that describes the channel in general. A sensor channel has multiple
-property items (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classTSensrvProperty.html" format="application/java-archive"><codeph>TSensrvProperty</codeph></xref>)
-that describe the channel in more detail. Each property item is referenced
-by a property id and an index.</p>   </section>
-<section id="GUID-7D9F56F7-0301-4FCF-8D88-1DDC6688E9CB"><title>Typical Uses</title><p>Using
-the sensor channel APIs, you can perform the following operations:<ul>
-<li><p>List all the sensor channels that are available for a particular sensor
-type. For details, see <xref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita">Querying
-for Sensor Channels</xref></p></li>
-<li><p>Receive and control periodic sensor data. </p>For details, see <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receiving Data from Sensors</xref></li>
-<li><p>Configure sensor channels. </p> For details, see <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Retrieving
-Channel Properties</xref> and <xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Setting
-Channel Properties</xref></li>
-<li><p>Receive notifications about sensor channel additions and removal. For
-details, see <xref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita">Receiving
-Notifications about Channel Changes</xref></p></li>
-<li><p>Configure a sensor channel to support conditional listening. This means
-that you can configure it to notify you when the data on the channel matches
-some particular values, or exceeds specified boundaries. For details, see <xref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita">Receiving Channel Data based
-on Conditions</xref>.</p></li>
-</ul></p></section>
-</conbody><related-links>
-<link href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita"><linktext>Using Sensor
-Channels APIs</linktext></link>
-<link href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita"><linktext>Compensating
-Sensor Data for Display Orientation </linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8B4CC1A0-1A39-4AF0-826B-8DDB9A837A27" xml:lang="en"><title>Sensors
+Framework Overview</title><shortdesc>The Sensors Framework consists of a sensor server and channel based
+client APIs for supporting an extensible set of sensor hardware. The sensor
+server defines a plug-in interface for adding sensor plug-ins for any type
+of sensor hardware. The channel APIs enable client applications to interact
+with the sensor hardware.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-10-1-9-1-1-6-1-4-1-3-1-3-1"><title>Key Concepts
+and Terms</title><dl>
+<dlentry>
+<dt>Sensor Channel</dt>
+<dd><p>The sensor channel forms a medium of interaction between the sensor
+hardware and client applications. </p><p>The data from one physical sensor
+can be mapped to several channels. For example, the Sensor System handling
+an acceleration sensor can provide raw data on one channel and preprocessed
+tap events on another.</p></dd>
+</dlentry>
+<dlentry>
+<dt>Channel Properties</dt>
+<dd><p>Channel properties contain properties of a specific channel, such as
+data rate, availability, connection type and so on.</p></dd>
+</dlentry>
+<dlentry>
+<dt>Data item</dt>
+<dd><p>A data item is a discrete data package that contains sensor data or
+an event parsed from sensor data and related values, such as timestamp. Each
+channel provides a single type of data item only. </p></dd>
+</dlentry>
+<dlentry>
+<dt>Channel condition</dt>
+<dd><p> A value-operator pair targeting a single value inside a data item,
+indicated by an index. A condition is met when the channel data value in comparison
+with the condition value using condition operator is true. The conditions
+are gathered in condition sets.</p><p>There are two condition types: single
+limit conditions and range conditions. Range conditions are formed from two
+separate conditions, representing the lower and upper limits of the range.</p></dd>
+</dlentry>
+<dlentry>
+<dt>Channel Condition Set</dt>
+<dd><p>A set of channel conditions. Following are the two types of condition
+sets: <ul>
+<li><p>AND condition set: An AND condition is met only if a data value satisfies
+all conditions in the set.</p></li>
+<li><p>OR condition: An OR condition is met if a data value satisfies even
+one single condition in the set.</p></li>
+</ul></p></dd>
+</dlentry>
+</dl>           </section>
+<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-10-1-9-1-1-6-1-4-1-3-1-3-2"><title>Description</title><p>The
+sensor server provides a plug-in interface (Sensor Definitions APIs) that
+enables platform developers to create sensor plug-ins for required sensors
+hardware. The sensor plug-ins enable the interaction between a client application
+and the sensor hardware through sensor channels. The Sensor Channel APIs provides
+access to each sensor channel.</p><p>One physical sensor can
+provide several different types of data.  For example, the physical magnetometer
+can provide data for the Magnetometer channel and the Magnetic North channel.
+Each sensor channel has its own sensor channel data definition in the Sensor
+Definitions APIs that defines the format of the data package supplied by the
+sensor channel. The data definition can also define properties for each data
+item in the data package.</p><p>The sensor server facilitates the transfer
+of data from one sensor hardware to multiple clients simultaneously. It also
+resolves any contention between client applications for opening channels or
+configuring a sensor device.</p>           </section>
+<section id="GUID-AB7AB8C8-DEB2-445C-A216-1FE142592C7D-GENID-1-10-1-9-1-1-6-1-4-1-3-1-3-3">       <title>APIs</title> 
+     <table id="GUID-4D61C176-6A42-4F06-96A2-950F6ACD1C25">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.44*"/><colspec colname="col2" colwidth="1.56*"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>CSensrvChannelFinder</entry>
+<entry>The channel finder provides functions to search and find sensor channels
+that are supported by the Symbian device. </entry>
+</row>
+<row>
+<entry>CSensrvChannel</entry>
+<entry>The sensor channel provides functions to open and control a sensor
+channel.</entry>
+</row>
+<row>
+<entry>CSensrvChannelCondition</entry>
+<entry>The sensor channel provides functions for notifying when a specific
+condition is met.</entry>
+</row>
+<row>
+
+<entry>CSensrvChannelConditionSet</entry>
+<entry>The sensor channel condition set provides functions for adding one
+or more channel conditions to a condition set.</entry>
+</row>
+<row>
+<entry>MSensrvChannelListener</entry>
+<entry>The sensor channel listener is a callback interface that tracks for
+new channels installed on the Symbian device.</entry>
+</row>
+<row>
+<entry>MSensrvChannelConditionListener</entry>
+<entry>The sensor channel condition listener is a callback interface that
+notifies the clients when a condition-set is satisfied.</entry>
+</row>
+<row>
+<entry>MSensrvDataListener</entry>
+<entry>The sensor data listener is a callback interface that notifies the
+clients when the sensor data is available.</entry>
+</row>
+<row>
+<entry>MSensrvPropertyListener</entry>
+<entry>The sensor property listener is a callback interface that notifies
+the client when a channel property changes.</entry>
+</row>
+</tbody>
+</tgroup>
+</table>  <fig id="GUID-90C26AB4-F003-444C-B9AF-422BB816557C">
+<image href="GUID-600DCD27-ADC0-40D7-B061-1D44238363BA_d0e128297_href.png" placement="inline"/>
+</fig><p>A physical sensor can supply data to several sensor channels (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCSensrvChannel.html" format="application/java-archive"><codeph>CSensrvChannel</codeph></xref>)
+. A sensor channel provides data to an application in a channel-specific data
+format (for example, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/Sensor_definitions_APIClassesIndexPage.html" format="application/java-archive"><codeph>TSensrvXyzData</codeph></xref>) through a callback to the <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMSensrvDataListener.html#7ddce5c72a9d429ddb9e69f9e3a0a9b6" format="application/java-archive"><codeph>MSensrvDataListener::DataReceived()</codeph></xref> interface. A
+sensor channel has a single channel info item (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classTSensrvChannelInfo.html" format="application/java-archive"><codeph>TSensrvChannelInfo</codeph></xref>) that describes the channel in general. A sensor channel has multiple
+property items (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classTSensrvProperty.html" format="application/java-archive"><codeph>TSensrvProperty</codeph></xref>)
+that describe the channel in more detail. Each property item is referenced
+by a property id and an index.</p>   </section>
+<section id="GUID-7D9F56F7-0301-4FCF-8D88-1DDC6688E9CB"><title>Typical Uses</title><p>Using
+the sensor channel APIs, you can perform the following operations:<ul>
+<li><p>List all the sensor channels that are available for a particular sensor
+type. For details, see <xref href="GUID-44FDDA27-1A5D-42B5-8DE0-D9E88EB75C93.dita">Querying
+for Sensor Channels</xref></p></li>
+<li><p>Receive and control periodic sensor data. </p>For details, see <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Receiving Data from Sensors</xref></li>
+<li><p>Configure sensor channels. </p> For details, see <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita">Retrieving
+Channel Properties</xref> and <xref href="GUID-0CA7F22E-59D7-4D65-9D6C-735E4E0F0454.dita">Setting
+Channel Properties</xref></li>
+<li><p>Receive notifications about sensor channel additions and removal. For
+details, see <xref href="GUID-09E44FE5-6BEE-49FF-8BBF-CBB3C066EE10.dita">Receiving
+Notifications about Channel Changes</xref></p></li>
+<li><p>Configure a sensor channel to support conditional listening. This means
+that you can configure it to notify you when the data on the channel matches
+some particular values, or exceeds specified boundaries. For details, see <xref href="GUID-60EE22AA-402D-4FC2-9AD1-B3AEF822E8DC.dita">Receiving Channel Data based
+on Conditions</xref>.</p></li>
+</ul></p></section>
+</conbody><related-links>
+<link href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita"><linktext>Using Sensor
+Channels APIs</linktext></link>
+<link href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita"><linktext>Compensating
+Sensor Data for Display Orientation </linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e36995_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e42562_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e57289_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60154_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60783_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e61412_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e65577_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e68958_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e74100_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8C134C72-0552-59FE-AA19-F72250A8A947.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8C134C72-0552-59FE-AA19-F72250A8A947.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,32 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8C134C72-0552-59FE-AA19-F72250A8A947" xml:lang="en"><title>CustomControls:
-custom control example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Note: </b> This example only works properly with Techview and there
-is no guarantee that it will work with other interfaces. </p>
-<section id="GUID-FFDEB4FB-DFC9-4DB6-9987-D1140ADFA912"><title>Description</title> <p> <filepath>CustomControls</filepath> demonstrates
-customised simple and compound UI Control Framework control classes. Compound
-controls are used as on-screen containers for other controls, either simple
-or compound. The custom controls are subclasses of the class <codeph>CCoeControl</codeph>,
-with implementations of its virtual functions for construction, drawing, and
-accepting user input. </p> <p>Note that the <filepath>CustomControls</filepath> example
-has dependencies on GUI components that may not be present on all SDKs. </p> </section>
-<section id="GUID-C506CD9E-BB64-4038-A65B-218A1A8CE1DA"><title>Download</title><p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-50a91c4c-d6c0-4699-9531-befb26574240.zip" scope="external">CustomControls.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-50a91c4c-d6c0-4699-9531-befb26574240.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-842D73D6-9805-481A-BE65-28A0318B5E58"><title>Usage</title> <p>When the application starts, it displays
-two smiling faces (smiley) controls. The mood of the smileys can be changed
-by selecting a smiley using the left/right keys or pointer, and pressing space/clicking.
-A dialog containing the smiley controls can be started from the application’s
-menu. </p> </section>
-<section id="GUID-7C8B38C5-DFF0-4988-96D4-0BF3594D0F55"><title>Class Summary</title><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>  </p><p><xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> </p><p> <xref href="GUID-DC21E927-18B3-3BBF-9B67-496F2D158B03.dita"><apiname>CEikDialog</apiname></xref></p><p>  <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>  </p><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref></p><p><xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication
- </apiname></xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8C134C72-0552-59FE-AA19-F72250A8A947" xml:lang="en"><title>CustomControls: custom control example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Note: </b> This example only works properly with Techview and
+there is no guarantee that it will work with other interfaces. </p>
+<section id="GUID-FFDEB4FB-DFC9-4DB6-9987-D1140ADFA912"><title>Description</title> <p> <filepath>CustomControls</filepath> demonstrates customised
+simple and compound UI Control Framework control classes. Compound
+controls are used as on-screen containers for other controls, either
+simple or compound. The custom controls are subclasses of the class <codeph>CCoeControl</codeph>, with implementations of its virtual functions
+for construction, drawing, and accepting user input. </p> <p>Note
+that the <filepath>CustomControls</filepath> example has dependencies
+on GUI components that may not be present on all SDKs. </p> </section>
+<section id="GUID-C506CD9E-BB64-4038-A65B-218A1A8CE1DA"><title>Download</title><p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-50a91c4c-d6c0-4699-9531-befb26574240.zip" scope="external">CustomControls.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-50a91c4c-d6c0-4699-9531-befb26574240.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-842D73D6-9805-481A-BE65-28A0318B5E58"><title>Usage</title> <p>When the application starts, it displays two smiling faces (smiley)
+controls. The mood of the smileys can be changed by selecting a smiley
+using the left/right keys or pointer, and pressing space/clicking.
+A dialog containing the smiley controls can be started from the application’s
+menu. </p> </section>
+<section id="GUID-7C8B38C5-DFF0-4988-96D4-0BF3594D0F55"><title>Class
+Summary</title><ul>
+<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref></p></li>
+<li><p><xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref></p></li>
+<li><p><xref href="GUID-DC21E927-18B3-3BBF-9B67-496F2D158B03.dita"><apiname>CEikDialog</apiname></xref></p></li>
+<li><p><xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref></p></li>
+<li><p><xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref></p></li>
+<li><p><xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8C5A65E6-D753-472F-B885-FD0409589036.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8C5A65E6-D753-472F-B885-FD0409589036.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8C5A65E6-D753-472F-B885-FD0409589036" xml:lang="en"><title>HTTP
-Whole Message Filter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following diagram illustrates the class relationship between the <codeph>MHTTPDataOptimiser</codeph> interface
-and the <codeph>RHTTPSession</codeph> class: </p>
-<fig id="GUID-25859A19-F3C8-5FBD-B491-C58E5C973424">
-<title>              Class relationship between MHTTPDataOptimiser and   
-          RHTTPSession            </title>
-<image href="GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e214846_href.png" placement="inline"/>
-</fig>
-<p>For more information about <xref href="GUID-F34F7481-00CF-3A1B-8D45-D053AD6769A8.dita"><apiname>MHTTPTransactionCallback</apiname></xref>,
-see <xref href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita">A simple HTTP Client
-session</xref>. </p>
-<p>The following code segment illustrates how to define the header file required
-for implementing the HTTP Whole Message Filter APIs: </p>
-<codeblock id="GUID-1D7FA528-68D6-5AEE-B9F3-CBACC03855AB" xml:space="preserve">#include &lt;http.h&gt;
-
-class CMyHTTPClient: public CBase,
-                    public MHTTPTransactionCallback,
-                    public MHttpDataOptimiser
-{
-public: // methods from MHTTPTransactionCallback
-    virtual void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent);
-    virtual TInt MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent);
-    
-public: // methods from MHttpDataOptimiser
-    virtual void EncodeL (const TDesC8&amp; aHttpData, HBufC8*&amp; aEncodedData);
-    virtual void DecodeL (const TDesC8&amp; aData, HBufC8*&amp; aHttpData, TBool&amp; aTransFail);
-};</codeblock>
-<p>The following code segment illustrates how HTTP Whole Message Filter APIs
-can be used to enable support for Web Acceleration: </p>
-<codeblock id="GUID-2F062305-2D15-534C-8239-FAE4002DB79E" xml:space="preserve">#include "CMyHTTPClient.h"
-
-//    CMyHTTPClient.cpp
-//
-//    defines CMyHTTPClient class: CMyHTTPClient
-// Literals used in the file
-_LIT8(KHttpAuthenticationUrl,        "http://remix.kwed.org");
-
-
-void CMyHTTPClient::CreateTransactionL()
-    {
-    TUriParser8 up;
-    up.Parse(KHttpAuthenticationUrl);
-
-    RHTTPSession session;
-    RHTTPTransaction trans;
-    
-    // Open the HTTP session
-    session.OpenL();
-    CleanupClosePushL(session);
-
-    RStringPool strP = session.StringPool();
-
-  //To enable MHTTPDataOptimiser for transaction
-
-    // Open a GET transaction, specifying this object as the request body data supplier
-    trans = session.OpenTransactionL(up, *this, strP.StringF(HTTP::EGET,RHTTPSession::GetTable()));
-    CleanupClosePushL(trans);
-    trans.SetupHttpDataOptimiser(*this);
-
- trans.SubmitL();
-    CleanupStack::PopAndDestroy(&amp;trans);
-    CActiveScheduler::Start();
-    
-    CleanupStack::PopAndDestroy(&amp;session); //Closes the session
-
-    }
-
-TInt CMyHTTPClient::MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent)
-    {
-    // Handle Error appropriately
-    }
-
-void CMyHTTPClient::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent)
-    {
-    // Handle events from the framework.
-    switch (aEvent.iStatus)
-        {
-        case KErrHttpOptimiserFailsTrans:
-            {
-            INFO_PRINTF1(_L("Cancelling/Failing Transaction\n"));
-            aTransaction.Fail(THTTPFilterHandle::EProtocolHandler);
-            } break;
-
-        }
-    return;
-    //The following statement is used to eliminate leavescan errors
-    User::Leave(KErrGeneral);
-    }
-
-void CMyHTTPClient::EncodeL (const TDesC8&amp; aHttpData, HBufC8* &amp;aEncodedData)
-    {
-    //Provide your own custom encoding implementation
-    }
-
-void CMyHTTPClient::DecodeL (const TDesC8&amp; aData, HBufC8*&amp; aHttpData, TBool&amp; aTransFail)
-    {
-    //Provide your own custom decoding implementation
-    }</codeblock>
-<p>This code enables the <codeph>MHTTPDataOptimiser</codeph> for a transaction
-by using <codeph>RHTTPTransaction::SetupHTTPDataOptimiser()</codeph> and also
-illustrates where custom encoding and decoding mechanisms are implemented. </p>
-<p> <b>Note:</b> Alternatively, in this code, you can use the following code
-segment to enable <codeph>MHTTPDataOptimiser</codeph> for a particular session. </p>
-<p> <codeph>session.SetupHttpDataOptimiser(*this); </codeph>  </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8C5A65E6-D753-472F-B885-FD0409589036" xml:lang="en"><title>HTTP
+Whole Message Filter Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following diagram illustrates the class relationship between the <codeph>MHTTPDataOptimiser</codeph> interface
+and the <codeph>RHTTPSession</codeph> class: </p>
+<fig id="GUID-25859A19-F3C8-5FBD-B491-C58E5C973424">
+<title>              Class relationship between MHTTPDataOptimiser and   
+          RHTTPSession            </title>
+<image href="GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e210051_href.png" placement="inline"/>
+</fig>
+<p>For more information about <xref href="GUID-F34F7481-00CF-3A1B-8D45-D053AD6769A8.dita"><apiname>MHTTPTransactionCallback</apiname></xref>,
+see <xref href="GUID-1D32D093-1B7B-5CE8-B57D-5469C1E8E4B9.dita">A simple HTTP Client
+session</xref>. </p>
+<p>The following code segment illustrates how to define the header file required
+for implementing the HTTP Whole Message Filter APIs: </p>
+<codeblock id="GUID-1D7FA528-68D6-5AEE-B9F3-CBACC03855AB" xml:space="preserve">#include &lt;http.h&gt;
+
+class CMyHTTPClient: public CBase,
+                    public MHTTPTransactionCallback,
+                    public MHttpDataOptimiser
+{
+public: // methods from MHTTPTransactionCallback
+    virtual void MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent);
+    virtual TInt MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent);
+    
+public: // methods from MHttpDataOptimiser
+    virtual void EncodeL (const TDesC8&amp; aHttpData, HBufC8*&amp; aEncodedData);
+    virtual void DecodeL (const TDesC8&amp; aData, HBufC8*&amp; aHttpData, TBool&amp; aTransFail);
+};</codeblock>
+<p>The following code segment illustrates how HTTP Whole Message Filter APIs
+can be used to enable support for Web Acceleration: </p>
+<codeblock id="GUID-2F062305-2D15-534C-8239-FAE4002DB79E" xml:space="preserve">#include "CMyHTTPClient.h"
+
+//    CMyHTTPClient.cpp
+//
+//    defines CMyHTTPClient class: CMyHTTPClient
+// Literals used in the file
+_LIT8(KHttpAuthenticationUrl,        "http://remix.kwed.org");
+
+
+void CMyHTTPClient::CreateTransactionL()
+    {
+    TUriParser8 up;
+    up.Parse(KHttpAuthenticationUrl);
+
+    RHTTPSession session;
+    RHTTPTransaction trans;
+    
+    // Open the HTTP session
+    session.OpenL();
+    CleanupClosePushL(session);
+
+    RStringPool strP = session.StringPool();
+
+  //To enable MHTTPDataOptimiser for transaction
+
+    // Open a GET transaction, specifying this object as the request body data supplier
+    trans = session.OpenTransactionL(up, *this, strP.StringF(HTTP::EGET,RHTTPSession::GetTable()));
+    CleanupClosePushL(trans);
+    trans.SetupHttpDataOptimiser(*this);
+
+ trans.SubmitL();
+    CleanupStack::PopAndDestroy(&amp;trans);
+    CActiveScheduler::Start();
+    
+    CleanupStack::PopAndDestroy(&amp;session); //Closes the session
+
+    }
+
+TInt CMyHTTPClient::MHFRunError(TInt aError, RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent)
+    {
+    // Handle Error appropriately
+    }
+
+void CMyHTTPClient::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent&amp; aEvent)
+    {
+    // Handle events from the framework.
+    switch (aEvent.iStatus)
+        {
+        case KErrHttpOptimiserFailsTrans:
+            {
+            INFO_PRINTF1(_L("Cancelling/Failing Transaction\n"));
+            aTransaction.Fail(THTTPFilterHandle::EProtocolHandler);
+            } break;
+
+        }
+    return;
+    //The following statement is used to eliminate leavescan errors
+    User::Leave(KErrGeneral);
+    }
+
+void CMyHTTPClient::EncodeL (const TDesC8&amp; aHttpData, HBufC8* &amp;aEncodedData)
+    {
+    //Provide your own custom encoding implementation
+    }
+
+void CMyHTTPClient::DecodeL (const TDesC8&amp; aData, HBufC8*&amp; aHttpData, TBool&amp; aTransFail)
+    {
+    //Provide your own custom decoding implementation
+    }</codeblock>
+<p>This code enables the <codeph>MHTTPDataOptimiser</codeph> for a transaction
+by using <codeph>RHTTPTransaction::SetupHTTPDataOptimiser()</codeph> and also
+illustrates where custom encoding and decoding mechanisms are implemented. </p>
+<p> <b>Note:</b> Alternatively, in this code, you can use the following code
+segment to enable <codeph>MHTTPDataOptimiser</codeph> for a particular session. </p>
+<p> <codeph>session.SetupHttpDataOptimiser(*this); </codeph>  </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e38310_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8C8D6B06-E794-4269-B4DF-D2BE4DDB9E8B_d0e43877_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e51707_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57262_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57411_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e61778_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e68938_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e74080_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e252803_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e256511_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e190606_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e195614_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,22 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F" xml:lang="en"><title>S60
-Platform: DBMS Example</title><shortdesc>This is an example of database manipulation using the DBMS. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-1C4FE7EE-E2B5-4A62-96C8-53F2F35DCE3B"><title>Description</title><p>The
-DBMS (Database Management System) example application demonstrates the usage
-of DBMS APIs. The example includes a bookstore database engine and a simple
-Avkon GUI for testing the engine. The example has been tested to support S60
-5th Edition and touch UI. Main classes: RDbStoreDatabase, RFs. For more details,
-look into this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/14550222-2975-4efa-96fa-2238a97b2cc3/S60_Platform_DBMS_Example.html" scope="external">DBMS Example</xref></p> </section>
-<section id="GUID-7432DB27-245E-4C9D-8012-B006FF48E0FC"><title>Download</title> <p>Download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-36e49706-602c-4aee-91d3-5083679e1d3d.zip" scope="external">DBMS.zip</xref> </p><p>View the source code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-36e49706-602c-4aee-91d3-5083679e1d3d.html" scope="peer">browse</xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F" xml:lang="en"><title>DBMS
+Example</title><shortdesc>This is an example of database manipulation using the DBMS. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-1C4FE7EE-E2B5-4A62-96C8-53F2F35DCE3B"><title>Description</title><p>The
+DBMS (Database Management System) example application demonstrates the usage
+of DBMS APIs. The example includes a bookstore database engine and a simple
+Avkon GUI for testing the engine.</p> </section>
+<section id="GUID-7432DB27-245E-4C9D-8012-B006FF48E0FC"><title>Download</title> <p>Download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-36e49706-602c-4aee-91d3-5083679e1d3d.zip" scope="external">DBMS.zip</xref> </p><p>View the source code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-36e49706-602c-4aee-91d3-5083679e1d3d.html" scope="peer">browse</xref>. </p> </section>
+<section id="GUID-7ECBE552-C6B6-4CBC-B5A7-3A3F53B3A18C"><title>Class Summary</title> <p><xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref></p><p><xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref></p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC" xml:lang="en"><title>Types
-of package</title><shortdesc>Describes the three types of package descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Three types of package are available:</p>
-<ul>
-<li id="GUID-F6734EA9-F7C3-5BAD-8D3D-31E74459DE60"><p>a packaged modifiable
-buffer descriptor</p> </li>
-<li id="GUID-F445EFBB-BD50-5277-9C2B-89D1F23A3A8A"><p>a packaged non-modifiable
-pointer descriptor</p> </li>
-<li id="GUID-E9DA31C2-63B8-5A6F-B139-E165CE56F104"><p>a packaged modifiable
-pointer descriptor</p> </li>
-</ul>
-<section id="GUID-894BE487-84FA-4182-85F1-636A985819A9"><title>Packaged modifiable buffer descriptor</title> <p>This is an
-object of type <codeph>TPckgBuf</codeph> and is a modifiable buffer descriptor.
-The class is templated; the template parameter defines the type of object
-that this descriptor can contain.</p> <p>For example, a package descriptor
-of type <codeph>TPckgBuf&lt;TExample&gt;</codeph> is a modifiable buffer descriptor
-that only contains objects of type <codeph>TExample</codeph>.</p> <p>The package
-class also allows functions to be called on the contained class.</p> <fig id="GUID-7EE59907-F6E0-5200-A4BF-6AD5C9BE2D67">
-<image href="GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e232716_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-C7714A6F-0E8D-43D4-B168-1EB333D8BCC7"><title>Packaged non-modifiable pointer descriptor</title> <p>This
-is an object of type <codeph>TPckgC</codeph> and is a non-modifiable pointer
-descriptor. The class is templated; the template parameter defines the type
-of object that this descriptor can represent.</p> <p>For example, a package
-descriptor of type <codeph>TPckgC&lt;TExample&gt;</codeph> is a non- modifiable
-pointer descriptor that only represents objects of type <codeph>TExample</codeph>.</p> <p>The
-package class also allows functions to be called on the contained class.</p> <fig id="GUID-31860379-F6A7-5D65-8160-EEDABBB73AD3">
-<image href="GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e232744_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-3AD2BB30-93E0-4E1F-B2BC-15693CE45A3E"><title>Packaged modifiable pointer descriptor</title> <p>This is
-an object of type <codeph>TPckg</codeph> and is a modifiable pointer descriptor.
-The class is templated; the template parameter defines the type of object
-that this descriptor can represent.</p> <p>For example, a package descriptor
-of type <codeph>TPckg&lt;TExample&gt;</codeph> is a modifiable pointer descriptor
-that only represents objects of type <codeph>TExample</codeph>.</p> <p>The
-package class also allows functions to be called on the contained class.</p> <fig id="GUID-5BB0AF3B-33FF-5374-A867-0BD49A15DC74">
-<image href="GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e232772_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-2A10BADF-1BD3-4F78-B321-180132E8EA88"><title>See also</title> <p><xref href="GUID-0B9C8884-6BFF-35E2-AA6F-E4057B85AFCF.dita"><apiname>TBuf</apiname></xref> </p> <p><xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> </p> <p><xref href="GUID-EA7DEFA4-D4D9-3B2B-86A3-C3FB1A682E61.dita"><apiname>TPtr</apiname></xref> </p> </section>
-</conbody><related-links>
-<link>
-<desc><xref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita">Descriptor concepts</xref></desc>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8D4AD37E-6B96-5B82-8313-F88D97531DEC" xml:lang="en"><title>Types
+of package</title><shortdesc>Describes the three types of package descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Three types of package are available:</p>
+<ul>
+<li id="GUID-F6734EA9-F7C3-5BAD-8D3D-31E74459DE60"><p>a packaged modifiable
+buffer descriptor</p> </li>
+<li id="GUID-F445EFBB-BD50-5277-9C2B-89D1F23A3A8A"><p>a packaged non-modifiable
+pointer descriptor</p> </li>
+<li id="GUID-E9DA31C2-63B8-5A6F-B139-E165CE56F104"><p>a packaged modifiable
+pointer descriptor</p> </li>
+</ul>
+<section id="GUID-894BE487-84FA-4182-85F1-636A985819A9"><title>Packaged modifiable buffer descriptor</title> <p>This is an
+object of type <codeph>TPckgBuf</codeph> and is a modifiable buffer descriptor.
+The class is templated; the template parameter defines the type of object
+that this descriptor can contain.</p> <p>For example, a package descriptor
+of type <codeph>TPckgBuf&lt;TExample&gt;</codeph> is a modifiable buffer descriptor
+that only contains objects of type <codeph>TExample</codeph>.</p> <p>The package
+class also allows functions to be called on the contained class.</p> <fig id="GUID-7EE59907-F6E0-5200-A4BF-6AD5C9BE2D67">
+<image href="GUID-541C8505-335F-5C93-8C0E-96BCEE39D1E6_d0e228979_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-C7714A6F-0E8D-43D4-B168-1EB333D8BCC7"><title>Packaged non-modifiable pointer descriptor</title> <p>This
+is an object of type <codeph>TPckgC</codeph> and is a non-modifiable pointer
+descriptor. The class is templated; the template parameter defines the type
+of object that this descriptor can represent.</p> <p>For example, a package
+descriptor of type <codeph>TPckgC&lt;TExample&gt;</codeph> is a non- modifiable
+pointer descriptor that only represents objects of type <codeph>TExample</codeph>.</p> <p>The
+package class also allows functions to be called on the contained class.</p> <fig id="GUID-31860379-F6A7-5D65-8160-EEDABBB73AD3">
+<image href="GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e229007_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-3AD2BB30-93E0-4E1F-B2BC-15693CE45A3E"><title>Packaged modifiable pointer descriptor</title> <p>This is
+an object of type <codeph>TPckg</codeph> and is a modifiable pointer descriptor.
+The class is templated; the template parameter defines the type of object
+that this descriptor can represent.</p> <p>For example, a package descriptor
+of type <codeph>TPckg&lt;TExample&gt;</codeph> is a modifiable pointer descriptor
+that only represents objects of type <codeph>TExample</codeph>.</p> <p>The
+package class also allows functions to be called on the contained class.</p> <fig id="GUID-5BB0AF3B-33FF-5374-A867-0BD49A15DC74">
+<image href="GUID-72B7B5CC-2E04-53CE-8414-C362DFD40D52_d0e229035_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-2A10BADF-1BD3-4F78-B321-180132E8EA88"><title>See also</title> <p><xref href="GUID-0B9C8884-6BFF-35E2-AA6F-E4057B85AFCF.dita"><apiname>TBuf</apiname></xref> </p> <p><xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> </p> <p><xref href="GUID-EA7DEFA4-D4D9-3B2B-86A3-C3FB1A682E61.dita"><apiname>TPtr</apiname></xref> </p> </section>
+</conbody><related-links>
+<link>
+<desc><xref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita">Descriptor concepts</xref></desc>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e396870_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e397032_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e220696_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e224433_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,213 +1,213 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495" xml:lang="en"><title>Versit
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This topic describes the Versit component, which can be used to import
-and export contact and calendar information. </p>
-<section id="GUID-AECE894E-FC12-4A34-85C6-DA1693678E0C"><title>Purpose</title> <p>The
-Versit component provides a set of classes that can be used by application
-or system developers, to import and export data formatted according to a set
-of standards initially prescribed by the Versit consortium. </p> <p>The plain-text
-formatted data can be included in emails, saved to disk or transferred from
-one application to another using streams. Two specifications have been published,
-one for the transmission of contact information and the other for the transmission
-of calendaring information in the form of vCards and vCalendars. </p> <p>Although
-the information contained in vCard is different from that contained in vCalendar,
-the basic formatting of the information follows the same style. </p> </section>
-<section id="GUID-D85D8717-F895-4AA2-A8F7-7BA3F7F2C1FF"><title>Required background</title> <p>Some
-knowledge of vCard and vCalendar specifications, which are documented on the
-Internet Mail Consortium's website at <xref href="http://www.imc.org/pdi/" scope="external">http://www.imc.org</xref>. </p> </section>
-<section id="GUID-928B9A7F-5A93-4549-877E-19B48F747422"><title>Key concepts</title> <p>In
-this component a vCard or vCalendar is referred to as an entity. An entity
-has an array of properties. Entities can be nested, making them sub-entities. </p> <p>The
-component has the following key concepts: </p> <dl>
-<dlentry>
-<dt>Parser</dt>
-<dd><p>The parser converts the vCard and vCal data into a format understandable
-by the current system and vice-a-versa. The vCard and vCal are common standards
-used for exchanging contact and calendar data across different systems such
-as handheld devices, PDA and so on. Each handheld device or PDA store and
-interpret these kind of personal information in their own way. A parser reads
-and writes properties and sub-entities for an entity. The base class for parsers
-is provided by <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref> which provides the basic functionality
-for both vCard and vCal. </p> <p>The <codeph>CVersitParser</codeph> class
-is extended to provide separate implementations for vCard, vCal and their
-sub-entities such as vEvent, vTodo and so on. The following are few such classes: </p> <ul>
-<li id="GUID-9D84C4F1-1802-56F6-AA12-611759FE04D5"><p> <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> is
-a vCard parser that converts between a vCard entities, stored in a stream
-using the format standard set by the Internet Mail Consortium, and a vCard
-entities stored on a Symbian phone. </p> </li>
-<li id="GUID-F03F393F-4D4C-5CD3-A914-CA9FA90BC3DE"><p> <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> is
-a vCalendar parser that converts between a vCalendar entities stored in a
-stream, and vCalender entities stored on a Symbian phone. </p> </li>
-<li id="GUID-078030ED-1974-55DF-948F-2F56544EE0F2"><p> <xref href="GUID-7E0772C1-42AC-3204-95CB-E0D2FB7FA17A.dita"><apiname>CParserVCalEntity</apiname></xref> is
-a parser for vCalendar sub-entities such as, events and to-do lists. </p> </li>
-</ul> <p>The <codeph>CVersitParser</codeph> class provides support for vCard
-version 2.1 and vCalendar version 1.0 by default. But this class is not compatible
-with higher versions of vCard, and these compatibility issues are addressed
-in <codeph>MVersitPlugIn</codeph> abstract class. An implementation of <codeph>MVersitPlugIn</codeph> class
-along with a derived class of <codeph>CParserVCard</codeph> can extend the
-parser support to vCard versions above 2.1. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Property</dt>
-<dd><p>A property consists of a property name, a property value and optionally
-one or more property parameters. They have the general form: </p> <codeblock id="GUID-52BCA483-C9AD-5F54-9733-3A1D45E638A0" xml:space="preserve">Property Name (; Parameter Name(= Parameter Value))* : Property Value</codeblock> <p>where
-items in brackets are optional and * indicates that the item may be repeated. </p> <p>For
-example, </p> <codeblock id="GUID-1AF7B9AA-6D83-5BF8-8CB4-919F069310D6" xml:space="preserve">TEL; HOME; ENCODING=QUOTED-PRINTABLE; CHARSET=US-ASCII : 01234 567890</codeblock> <p>Here, TEL is the property name, HOME, ENCODING and CHARSET are property
-parameter names and QUOTED-PRINTABLE and US-ASCII are property parameter values.
-The component following the colon is the property value. </p> <p>The property
-interface is provided by <xref href="GUID-895C3D03-FE10-329C-9437-2948686509C5.dita"><apiname>CParserProperty</apiname></xref>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Property parameter</dt>
-<dd><p>A property parameter describes an aspect of a property. A property
-may have multiple aspects. In the above example the TEL property has several
-aspects (parameters), such as HOME, ENCODING and CHARSET with their associated
-values QUOTED-PRINTABLE and US-ASCII. </p> <p>The property parameter interface
-is provided by <xref href="GUID-4A02E5BD-39D3-34AD-B70B-8177144FF12C.dita"><apiname>CParserParam</apiname></xref>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Property value</dt>
-<dd><p>A property value may be of any type, such as date/time, integer, string
-etc. </p> <p>A number of classes are provided to support any type of data
-as a property value, these classes are derived from <xref href="GUID-76E6CCFA-5BAC-34F1-A5B2-FB505A68E784.dita"><apiname>CParserPropertyValue</apiname></xref>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Observer</dt>
-<dd><p>The versit parser observer can find out the version of the entity being
-parsed, which is the version number of the vCard/vCalendar. Then the behaviour
-of the parser is adjusted according to the version number detected. The observer
-is implemented as a pure virtual plug-in class <xref href="GUID-509B56E6-FA7B-3903-9DBC-908EC5363CFB.dita"><apiname>MVersitObserver</apiname></xref>,
-for use in conjunction with <codeph>MVersitPlugIn</codeph> class. </p> <p>The
-implementor of <codeph>MVersitObserver</codeph> class can respond to new parser
-creation by setting <codeph>MVersitPlugIn</codeph> as the parser, and itself
-as the observer to parse the embedded sub-entity. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-4E0DF6B1-B9B1-4A6C-966F-2C0237307E83"><title>Architectural
-relationships</title> <p>Any application or system intending to import or
-export vCards or vCalendars can use this component. At present, it is used
-by <xref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita">Contacts Model</xref> and <xref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita">Calendar</xref> components
-to support import and export of contact and calendar information. </p> <p>The
-Versit libraries export a set of utility classes that allow clients to parse
-and generate data formatted according to the specifications first published
-by the Versit consortium (The specifications are now owned by the IMC). </p> <p>In
-broad terms, the Versit API allows clients to: </p> <ul>
-<li id="GUID-F1CAD47E-986F-5BFD-906A-70FCEF8CAD56"><p>Internalise Versit formatted
-data into container classes. </p> </li>
-<li id="GUID-34EC2D80-F27E-54FE-827C-36EFC3692442"><p>Externalise contact
-and calendar data. </p> </li>
-<li id="GUID-FF90C782-49BE-57F8-8FEB-F97D62D7451B"><p>Derive a custom Versit
-parser from the base classes. </p> </li>
-<li id="GUID-DA2EDC5F-DD00-5F68-8EB8-D28CEDEDC5C5"><p>Perform various utility
-functions (searching, modifying etc.) on the data. </p> </li>
-</ul> <p>It delivers four files: </p> <ul>
-<li id="GUID-56543C10-C588-5B03-A78D-4B473DF9DCEA"><p>Versit.dll - defines
-the client API common to all versit parser. </p> </li>
-<li id="GUID-BD75E9BB-DB18-5121-985D-B342D9920854"><p>VCard.dll - implements
-a vCard v2.1 parser &amp; generator. </p> </li>
-<li id="GUID-830FF6FC-A5F1-54C1-AE99-67BC447F704D"><p>VCal.dll - implements
-a vCalendar 1.0 parser &amp; generator. </p> </li>
-<li id="GUID-212C14CC-7D30-54B0-812D-1BEEA041D348"><p>RVERSIT.MDL - implements
-a Recognizer which recognises Versit vCalendar and vCard files and reports
-their file type. This is according to the standard Symbian file recognizer
-pattern. For more information about recognizers, refer to <xref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita">Using
-MIME</xref>. </p> </li>
-</ul> <p><b>Internal Relationships </b> </p> <p>The Versit libraries are designed
-to provide a self contained set of tools. As such, they have no internal dependencies
-with other App-Services components. The diagram below gives an abstract illustration
-of the internal dependencies of the Versit components themselves. </p> <fig id="GUID-EF3BAA2A-3072-551A-B89C-99AB7F0A70DF">
-<title>              Abstraction of Versit deliverables            </title>
-<image href="GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e381534_href.png" placement="inline"/>
-</fig> <p>As the diagram above illustrates, it is possible to make use of
-the Versit.dll library on its own. If vCard or vCalendar support is required
-then the Versit library must be included as both vCard.dll and vCal.dll depend
-on it. </p> <p>It is also possible for users to develop their own Versit parsers
-using the base classes provided in Versit.dll and not include the vCard and
-vCalendar libraries. </p> <p><b>External Relationships </b> </p> <p>It is possible for any third party
-code to make use of the Versit libraries. The only Symbian components that
-have a dependency on Versit are the App-Engines. The application engines provide
-API’s which allow their users to import and export Versit formatted data. </p> <p>The
-mechanism used to allow these operations differs depending on the application
-engine and the documentation associated to each should be referred to for
-more detail. The two application engines that make use of Versit are the <xref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita">Contacts Model</xref> and <xref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita">Calendar</xref> components. </p> </section>
-<section id="GUID-10536254-0D16-475C-82B3-451ADAFEC983"><title>API summary </title> <fig id="GUID-41DFB840-D409-5B34-949E-27E9B62A0F1E">
-<title>              Relationship between different classes of the Versit
-component            </title>
-<image href="GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e381570_href.png" placement="inline"/>
-</fig> <table id="GUID-B009CAB5-2555-5AB2-AF90-41C7E61C2401">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Class Name</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref>  </p> </entry>
-<entry><p>This is a generic parser class which provides functions implementing
-behaviour common to both vCalendar and vCard parsers. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref>  </p> </entry>
-<entry><p>This is a vCard parser class derived from <codeph>CVersitParser</codeph>.
-It implements additional functionality needed to parse vCards, other than
-the generic functionality inherited from <codeph>CVersitParser</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref>  </p> </entry>
-<entry><p>This is a vCalendar parser class derived from <codeph>CVersitParser</codeph>.
-It also implements additional functionality needed to parse vCalendar, other
-than the generic functionality inherited from <codeph>CVersitParser</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-7E0772C1-42AC-3204-95CB-E0D2FB7FA17A.dita"><apiname>CParserVCalEntity</apiname></xref>  </p> </entry>
-<entry><p>This is a parser for vCalendar sub-entities. A vCalendar sub-entity
-is a vEvent or vToDo contained in a vCalendar. vEvents and vToDos are derived
-from <xref href="GUID-5C95B1DF-4BBC-3196-AFA6-DC839837CF02.dita"><apiname>CRecurrenceParser</apiname></xref>, which provides recurrence functionality. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-895C3D03-FE10-329C-9437-2948686509C5.dita"><apiname>CParserProperty</apiname></xref>  </p> </entry>
-<entry><p>This is a property class used to store properties of vCard and vCalendar,
-and also sub-entities of vCalendar such as vEvent and vToDo. Each property
-has a name, an optional value and one or more optional parameters. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-2BC8DF31-058E-447F-A186-A563CBFAE550"><title>Typical uses</title> <p>The
-Versit component can be used by any application which needs to import or export
-vCards or vCalendars. The following are the typical use cases for this API. </p> <p><b>Importing contact and calendar data </b> </p> <p>Any application can import
-contact and/or calendar data using this API. To import contact or calendar
-data from an external source, the client has to make use of appropriate parsers.
-That is, vCard parser to import contact data, and vCalendar parser to import
-calendar data. For more information, refer to <xref href="GUID-2A39CCBD-CADB-56B7-872A-1EC617AC7D93.dita">How
-to Import Contact and Calendar Data</xref>. </p> <p><b>Exporting contact and calendar data </b> </p> <p>Any application can export
-contact and/or calendar data using this API. To export contact or calendar
-data to an external source, clients have to make use of appropriate parsers.
-That is, vCard parser to export contact data, and vCalendar parser to export
-calendar data. For more information, refer to <xref href="GUID-082E47B3-8AAB-51B7-93F9-3C528B97D0A9.dita">How
-to Export Contact and Calendar Data</xref>. </p> <p><b>Creating a custom Versit parser </b> </p> <p>Apart from the typical vCard
-and vCalendar parsers, custom versit parser can be implemented using the <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref> class
-as the base class. These kind of parsers are needed, when the functionality
-provided by <codeph>CVersitParser</codeph>, <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> and <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> classes
-are not sufficient. </p> <p><b>Using various utility functions </b> </p> <p>In addition to the normal
-import and export functionality, the client applications can use these APIs
-for character set conversions and to parse character strings using the <xref href="GUID-71CCD94C-4F1B-3F80-A1F1-C8708B4181C6.dita"><apiname>VersitUtils</apiname></xref> class. </p> </section>
-</conbody><related-links>
-<link href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita"><linktext>Contacts
-Model Overview</linktext></link>
-<link href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita"><linktext>Calendar
-Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8D7AEB5A-9A88-5B6D-B6B0-7126A56AA495" xml:lang="en"><title>Versit
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This topic describes the Versit component, which can be used to import
+and export contact and calendar information. </p>
+<section id="GUID-AECE894E-FC12-4A34-85C6-DA1693678E0C"><title>Purpose</title> <p>The
+Versit component provides a set of classes that can be used by application
+or system developers, to import and export data formatted according to a set
+of standards initially prescribed by the Versit consortium. </p> <p>The plain-text
+formatted data can be included in emails, saved to disk or transferred from
+one application to another using streams. Two specifications have been published,
+one for the transmission of contact information and the other for the transmission
+of calendaring information in the form of vCards and vCalendars. </p> <p>Although
+the information contained in vCard is different from that contained in vCalendar,
+the basic formatting of the information follows the same style. </p> </section>
+<section id="GUID-D85D8717-F895-4AA2-A8F7-7BA3F7F2C1FF"><title>Required background</title> <p>Some
+knowledge of vCard and vCalendar specifications, which are documented on the
+Internet Mail Consortium's website at <xref href="http://www.imc.org/pdi/" scope="external">http://www.imc.org</xref>. </p> </section>
+<section id="GUID-928B9A7F-5A93-4549-877E-19B48F747422"><title>Key concepts</title> <p>In
+this component a vCard or vCalendar is referred to as an entity. An entity
+has an array of properties. Entities can be nested, making them sub-entities. </p> <p>The
+component has the following key concepts: </p> <dl>
+<dlentry>
+<dt>Parser</dt>
+<dd><p>The parser converts the vCard and vCal data into a format understandable
+by the current system and vice-a-versa. The vCard and vCal are common standards
+used for exchanging contact and calendar data across different systems such
+as handheld devices, PDA and so on. Each handheld device or PDA store and
+interpret these kind of personal information in their own way. A parser reads
+and writes properties and sub-entities for an entity. The base class for parsers
+is provided by <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref> which provides the basic functionality
+for both vCard and vCal. </p> <p>The <codeph>CVersitParser</codeph> class
+is extended to provide separate implementations for vCard, vCal and their
+sub-entities such as vEvent, vTodo and so on. The following are few such classes: </p> <ul>
+<li id="GUID-9D84C4F1-1802-56F6-AA12-611759FE04D5"><p> <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> is
+a vCard parser that converts between a vCard entities, stored in a stream
+using the format standard set by the Internet Mail Consortium, and a vCard
+entities stored on a Symbian phone. </p> </li>
+<li id="GUID-F03F393F-4D4C-5CD3-A914-CA9FA90BC3DE"><p> <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> is
+a vCalendar parser that converts between a vCalendar entities stored in a
+stream, and vCalender entities stored on a Symbian phone. </p> </li>
+<li id="GUID-078030ED-1974-55DF-948F-2F56544EE0F2"><p> <xref href="GUID-7E0772C1-42AC-3204-95CB-E0D2FB7FA17A.dita"><apiname>CParserVCalEntity</apiname></xref> is
+a parser for vCalendar sub-entities such as, events and to-do lists. </p> </li>
+</ul> <p>The <codeph>CVersitParser</codeph> class provides support for vCard
+version 2.1 and vCalendar version 1.0 by default. But this class is not compatible
+with higher versions of vCard, and these compatibility issues are addressed
+in <codeph>MVersitPlugIn</codeph> abstract class. An implementation of <codeph>MVersitPlugIn</codeph> class
+along with a derived class of <codeph>CParserVCard</codeph> can extend the
+parser support to vCard versions above 2.1. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Property</dt>
+<dd><p>A property consists of a property name, a property value and optionally
+one or more property parameters. They have the general form: </p> <codeblock id="GUID-52BCA483-C9AD-5F54-9733-3A1D45E638A0" xml:space="preserve">Property Name (; Parameter Name(= Parameter Value))* : Property Value</codeblock> <p>where
+items in brackets are optional and * indicates that the item may be repeated. </p> <p>For
+example, </p> <codeblock id="GUID-1AF7B9AA-6D83-5BF8-8CB4-919F069310D6" xml:space="preserve">TEL; HOME; ENCODING=QUOTED-PRINTABLE; CHARSET=US-ASCII : 01234 567890</codeblock> <p>Here, TEL is the property name, HOME, ENCODING and CHARSET are property
+parameter names and QUOTED-PRINTABLE and US-ASCII are property parameter values.
+The component following the colon is the property value. </p> <p>The property
+interface is provided by <xref href="GUID-895C3D03-FE10-329C-9437-2948686509C5.dita"><apiname>CParserProperty</apiname></xref>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Property parameter</dt>
+<dd><p>A property parameter describes an aspect of a property. A property
+may have multiple aspects. In the above example the TEL property has several
+aspects (parameters), such as HOME, ENCODING and CHARSET with their associated
+values QUOTED-PRINTABLE and US-ASCII. </p> <p>The property parameter interface
+is provided by <xref href="GUID-4A02E5BD-39D3-34AD-B70B-8177144FF12C.dita"><apiname>CParserParam</apiname></xref>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Property value</dt>
+<dd><p>A property value may be of any type, such as date/time, integer, string
+etc. </p> <p>A number of classes are provided to support any type of data
+as a property value, these classes are derived from <xref href="GUID-76E6CCFA-5BAC-34F1-A5B2-FB505A68E784.dita"><apiname>CParserPropertyValue</apiname></xref>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Observer</dt>
+<dd><p>The versit parser observer can find out the version of the entity being
+parsed, which is the version number of the vCard/vCalendar. Then the behaviour
+of the parser is adjusted according to the version number detected. The observer
+is implemented as a pure virtual plug-in class <xref href="GUID-509B56E6-FA7B-3903-9DBC-908EC5363CFB.dita"><apiname>MVersitObserver</apiname></xref>,
+for use in conjunction with <codeph>MVersitPlugIn</codeph> class. </p> <p>The
+implementor of <codeph>MVersitObserver</codeph> class can respond to new parser
+creation by setting <codeph>MVersitPlugIn</codeph> as the parser, and itself
+as the observer to parse the embedded sub-entity. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-4E0DF6B1-B9B1-4A6C-966F-2C0237307E83"><title>Architectural
+relationships</title> <p>Any application or system intending to import or
+export vCards or vCalendars can use this component. At present, it is used
+by <xref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita">Contacts Model</xref> and <xref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita">Calendar</xref> components
+to support import and export of contact and calendar information. </p> <p>The
+Versit libraries export a set of utility classes that allow clients to parse
+and generate data formatted according to the specifications first published
+by the Versit consortium (The specifications are now owned by the IMC). </p> <p>In
+broad terms, the Versit API allows clients to: </p> <ul>
+<li id="GUID-F1CAD47E-986F-5BFD-906A-70FCEF8CAD56"><p>Internalise Versit formatted
+data into container classes. </p> </li>
+<li id="GUID-34EC2D80-F27E-54FE-827C-36EFC3692442"><p>Externalise contact
+and calendar data. </p> </li>
+<li id="GUID-FF90C782-49BE-57F8-8FEB-F97D62D7451B"><p>Derive a custom Versit
+parser from the base classes. </p> </li>
+<li id="GUID-DA2EDC5F-DD00-5F68-8EB8-D28CEDEDC5C5"><p>Perform various utility
+functions (searching, modifying etc.) on the data. </p> </li>
+</ul> <p>It delivers four files: </p> <ul>
+<li id="GUID-56543C10-C588-5B03-A78D-4B473DF9DCEA"><p>Versit.dll - defines
+the client API common to all versit parser. </p> </li>
+<li id="GUID-BD75E9BB-DB18-5121-985D-B342D9920854"><p>VCard.dll - implements
+a vCard v2.1 parser &amp; generator. </p> </li>
+<li id="GUID-830FF6FC-A5F1-54C1-AE99-67BC447F704D"><p>VCal.dll - implements
+a vCalendar 1.0 parser &amp; generator. </p> </li>
+<li id="GUID-212C14CC-7D30-54B0-812D-1BEEA041D348"><p>RVERSIT.MDL - implements
+a Recognizer which recognises Versit vCalendar and vCard files and reports
+their file type. This is according to the standard Symbian file recognizer
+pattern. For more information about recognizers, refer to <xref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita">Using
+MIME</xref>. </p> </li>
+</ul> <p><b>Internal Relationships </b> </p> <p>The Versit libraries are designed
+to provide a self contained set of tools. As such, they have no internal dependencies
+with other App-Services components. The diagram below gives an abstract illustration
+of the internal dependencies of the Versit components themselves. </p> <fig id="GUID-EF3BAA2A-3072-551A-B89C-99AB7F0A70DF">
+<title>              Abstraction of Versit deliverables            </title>
+<image href="GUID-48D06D0E-C4D6-54F1-B603-7A75DEF669AA_d0e375455_href.png" placement="inline"/>
+</fig> <p>As the diagram above illustrates, it is possible to make use of
+the Versit.dll library on its own. If vCard or vCalendar support is required
+then the Versit library must be included as both vCard.dll and vCal.dll depend
+on it. </p> <p>It is also possible for users to develop their own Versit parsers
+using the base classes provided in Versit.dll and not include the vCard and
+vCalendar libraries. </p> <p><b>External Relationships </b> </p> <p>It is possible for any third party
+code to make use of the Versit libraries. The only Symbian components that
+have a dependency on Versit are the App-Engines. The application engines provide
+API’s which allow their users to import and export Versit formatted data. </p> <p>The
+mechanism used to allow these operations differs depending on the application
+engine and the documentation associated to each should be referred to for
+more detail. The two application engines that make use of Versit are the <xref href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita">Contacts Model</xref> and <xref href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita">Calendar</xref> components. </p> </section>
+<section id="GUID-10536254-0D16-475C-82B3-451ADAFEC983"><title>API summary </title> <fig id="GUID-41DFB840-D409-5B34-949E-27E9B62A0F1E">
+<title>              Relationship between different classes of the Versit
+component            </title>
+<image href="GUID-2A109FEC-5173-55FD-ACA8-3CAE48A93540_d0e375491_href.png" placement="inline"/>
+</fig> <table id="GUID-B009CAB5-2555-5AB2-AF90-41C7E61C2401">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Class Name</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref>  </p> </entry>
+<entry><p>This is a generic parser class which provides functions implementing
+behaviour common to both vCalendar and vCard parsers. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref>  </p> </entry>
+<entry><p>This is a vCard parser class derived from <codeph>CVersitParser</codeph>.
+It implements additional functionality needed to parse vCards, other than
+the generic functionality inherited from <codeph>CVersitParser</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref>  </p> </entry>
+<entry><p>This is a vCalendar parser class derived from <codeph>CVersitParser</codeph>.
+It also implements additional functionality needed to parse vCalendar, other
+than the generic functionality inherited from <codeph>CVersitParser</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-7E0772C1-42AC-3204-95CB-E0D2FB7FA17A.dita"><apiname>CParserVCalEntity</apiname></xref>  </p> </entry>
+<entry><p>This is a parser for vCalendar sub-entities. A vCalendar sub-entity
+is a vEvent or vToDo contained in a vCalendar. vEvents and vToDos are derived
+from <xref href="GUID-5C95B1DF-4BBC-3196-AFA6-DC839837CF02.dita"><apiname>CRecurrenceParser</apiname></xref>, which provides recurrence functionality. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-895C3D03-FE10-329C-9437-2948686509C5.dita"><apiname>CParserProperty</apiname></xref>  </p> </entry>
+<entry><p>This is a property class used to store properties of vCard and vCalendar,
+and also sub-entities of vCalendar such as vEvent and vToDo. Each property
+has a name, an optional value and one or more optional parameters. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-2BC8DF31-058E-447F-A186-A563CBFAE550"><title>Typical uses</title> <p>The
+Versit component can be used by any application which needs to import or export
+vCards or vCalendars. The following are the typical use cases for this API. </p> <p><b>Importing contact and calendar data </b> </p> <p>Any application can import
+contact and/or calendar data using this API. To import contact or calendar
+data from an external source, the client has to make use of appropriate parsers.
+That is, vCard parser to import contact data, and vCalendar parser to import
+calendar data. For more information, refer to <xref href="GUID-2A39CCBD-CADB-56B7-872A-1EC617AC7D93.dita">How
+to Import Contact and Calendar Data</xref>. </p> <p><b>Exporting contact and calendar data </b> </p> <p>Any application can export
+contact and/or calendar data using this API. To export contact or calendar
+data to an external source, clients have to make use of appropriate parsers.
+That is, vCard parser to export contact data, and vCalendar parser to export
+calendar data. For more information, refer to <xref href="GUID-082E47B3-8AAB-51B7-93F9-3C528B97D0A9.dita">How
+to Export Contact and Calendar Data</xref>. </p> <p><b>Creating a custom Versit parser </b> </p> <p>Apart from the typical vCard
+and vCalendar parsers, custom versit parser can be implemented using the <xref href="GUID-6D7CB0C1-2311-30A3-B0E8-A9B5BBBA395C.dita"><apiname>CVersitParser</apiname></xref> class
+as the base class. These kind of parsers are needed, when the functionality
+provided by <codeph>CVersitParser</codeph>, <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> and <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> classes
+are not sufficient. </p> <p><b>Using various utility functions </b> </p> <p>In addition to the normal
+import and export functionality, the client applications can use these APIs
+for character set conversions and to parse character strings using the <xref href="GUID-71CCD94C-4F1B-3F80-A1F1-C8708B4181C6.dita"><apiname>VersitUtils</apiname></xref> class. </p> </section>
+</conbody><related-links>
+<link href="GUID-40E64445-CBA3-59E4-A777-937609B311C9.dita"><linktext>Contacts
+Model Overview</linktext></link>
+<link href="GUID-3A6BEF56-ADBF-543E-B70A-52195DE3E92A.dita"><linktext>Calendar
+Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1" xml:lang="en"><title>MmfExCodec:
-Multimedia Framework codec plug-in example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExCodec</filepath> demonstrates
-how to implement a codec plug-in for the Multimedia Framework. A codec converts
-media data in one encoding into another encoding. The example converts audio
-data encoded with PCM8 into PCM16. </p> <p>The program is an ECom plug-in
-that implements the codec interface <codeph>CMMFCodec</codeph> by the class <codeph>CMMFExPcm8Pcm16Codec</codeph>.
-When a client or media format requires a PCM8 to PCM16 codec, the Multimedia
-Framework will instantiate a <codeph>CMMFExPcm8Pcm16Codec</codeph> object,
-and call its <codeph>ProcessL()</codeph> member function to convert data supplied
-a source buffer. As converting PCM8 into PCM16 only requires expanding each
-byte in the source buffer into two bytes in the destination buffer, <codeph>CMMFExPcm8Pcm16Codec::ProcessL()</codeph> is
-not very complex. </p> </section>
-<section id="GUID-98F50184-E319-592D-A350-785799248B3C-GENID-1-8-1-18-1-1-4-1-9-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.zip" scope="external"> MmfExCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-18F4082A-D301-3007-88DD-0E13AB81C74A.dita"><apiname>CMMFCodec </apiname></xref>  <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname>CMMFDataBuffer </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-5-1-7-1-6-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-5-1-7-1-6-1-5-1" xml:lang="en"><title>MmfExCodec:
-Multimedia Framework codec plug-in example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExCodec</filepath> demonstrates
-how to implement a codec plug-in for the Multimedia Framework. A codec converts
-media data in one encoding into another encoding. The example converts audio
-data encoded with PCM8 into PCM16. </p> <p>The program is an ECom plug-in
-that implements the codec interface <codeph>CMMFCodec</codeph> by the class <codeph>CMMFExPcm8Pcm16Codec</codeph>.
-When a client or media format requires a PCM8 to PCM16 codec, the Multimedia
-Framework will instantiate a <codeph>CMMFExPcm8Pcm16Codec</codeph> object,
-and call its <codeph>ProcessL()</codeph> member function to convert data supplied
-a source buffer. As converting PCM8 into PCM16 only requires expanding each
-byte in the source buffer into two bytes in the destination buffer, <codeph>CMMFExPcm8Pcm16Codec::ProcessL()</codeph> is
-not very complex. </p> </section>
-<section id="GUID-98F50184-E319-592D-A350-785799248B3C-GENID-1-8-1-18-1-1-5-1-7-1-6-1-5-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.zip" scope="external"> MmfExCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-18F4082A-D301-3007-88DD-0E13AB81C74A.dita"><apiname>CMMFCodec </apiname></xref>  <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname>CMMFDataBuffer </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340" xml:lang="en"><title>MmfExCodec:
+Multimedia Framework codec plug-in example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p> <filepath>MmfExCodec</filepath> demonstrates
+how to implement a codec plug-in for the Multimedia Framework. A codec converts
+media data in one encoding into another encoding. The example converts audio
+data encoded with PCM8 into PCM16. </p> <p>The program is an ECom plug-in
+that implements the codec interface <codeph>CMMFCodec</codeph> by the class <codeph>CMMFExPcm8Pcm16Codec</codeph>.
+When a client or media format requires a PCM8 to PCM16 codec, the Multimedia
+Framework will instantiate a <codeph>CMMFExPcm8Pcm16Codec</codeph> object,
+and call its <codeph>ProcessL()</codeph> member function to convert data supplied
+a source buffer. As converting PCM8 into PCM16 only requires expanding each
+byte in the source buffer into two bytes in the destination buffer, <codeph>CMMFExPcm8Pcm16Codec::ProcessL()</codeph> is
+not very complex. </p> </section>
+<section id="GUID-98F50184-E319-592D-A350-785799248B3C"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.zip" scope="external"> MmfExCodec.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-03d20b19-4462-40f7-bb6a-d91aaeea30b0.html" scope="peer">browse </xref> to view the example code. </p> </section>
+<section><title>Class summary</title><p> <xref href="GUID-18F4082A-D301-3007-88DD-0E13AB81C74A.dita"><apiname>CMMFCodec </apiname></xref>  <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname>CMMFDataBuffer </apiname></xref>  </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e336582_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8D9FE811-3F8A-5C2A-B76A-5C0248179590_d0e342779_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,140 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027"><title>Redraw Drawing</title><shortdesc>This topic provides background information about redraw drawing and tips for updating old code to comply with the recommendation that all drawing is migrated to redraw drawing. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>: Application developers. </p> <section><title>About Redraw Drawing</title> <p>Symbian recommends that all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing is <b>redraw drawing</b>, which means that it takes place between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls. <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita">The UI Control Framework (CONE)</xref> automatically takes care of this for you if you use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref> methods. </p> <p>For example, suppose an application wants to write the text "Hello!" to a window and then add a red diagonal line below it (A in following diagram). When this is performed as redraw drawing, the application calculates the bounding rectangles of the "Hello!" text and the red line (B). For each one, the application passes the rectangle to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-E50F6710-937C-32EC-A101-01E2EABD0160"><apiname>RWindow::BeginRedraw(const
-          TRect&amp;)</apiname></xref>, then calls the draw commands and afterwards calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> <fig id="GUID-53B962F7-D425-5D72-8148-F822A3462243"><image href="GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e194717_href.png" placement="inline"/></fig> <p>This has the advantage that the Window Server knows that the area of the window that has the "Hello!" text is not affected by the drawing of the red line. There are also advantages when some or all of the window needs to be repainted. For example, suppose another window (such as an OK dialog box) appears above the window (as shown in C). When the dialog box is closed, the Window Server repaints the screen behind the dialog box. Because in this example the OK dialog box was entirely within the red line's bounding rectangle, the Window Server simply replays that rectangle's drawing operations (D). This is more efficient than repainting the whole window. </p> <p>However, in earlier versions of Symbian you could, for example, draw the red line without bracketing it within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. This is called <b>non-redraw drawing</b>. In ScreenPlay, each non-redraw drawing operation triggers the Window Server to invalidate the entire window. This means that the client application must then perform a full window redraw, as shown in the next diagram. </p> <fig id="GUID-A36DF80C-6B53-5D9D-878B-0854BB36E44A"><title>
-             Non-redraw drawing sequence 
-          </title> <image href="GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e194738_href.png" placement="inline"/></fig> <p>This is less efficient than the Window Server replaying the draw operations for the affected area. </p> <p>Symbian recommends that all drawing is now performed as redraw drawing. Typically this involves dividing the window up into rectangular areas that represent different aspects of the user interface—for example, as shown in the following diagram. If anything spoils the screen, the Window Server then only needs to redraw the corresponding portions of the user interface. </p> <fig id="GUID-BAD0C762-0EBD-51E2-BC64-DF38749CA7D8"><image href="GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e194747_href.png" placement="inline"/></fig> <p>In earlier versions of Symbian, before the introduction of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-DE01101D-52D5-37DC-A397-94C23CBB36CE"><apiname>CCoeControl::DrawNow(TRect&amp;)</apiname></xref> overload, developers sometimes used non-redraw drawing to update a small part of a control. This technique has often been used for virtual keyboards and calendar controls. This type of use case is now particularly unsuited to non-redraw drawing because in ScreenPlay each non-redraw drawing command triggers a server-initiated client redraw of the entire window. This can be very slow if the window requires many drawing operations to redraw the scene. </p> <p>Symbian recommends that all non-redraw drawing is changed to redraw drawing. Sometimes this causes some subtle changes in behavior, as explained below. </p> </section> <section><title>Restrictions</title> <ol id="GUID-3BE36F7E-CFEC-5BFD-A311-E36D67D9097D"><li id="GUID-C6236CD8-C83E-5252-BCC6-336FE8677DCF"><p>You must supply <b>only</b> drawing operations between the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. For example, you must not change the window extent between a <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> call. </p> </li> <li id="GUID-652DF093-046F-58A3-961F-2A51DEB2FD74"><p>You must <b>not</b> call any functions that can leave between the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. This is because drawing operations must never leave. </p> </li> </ol> <p>Note: A redrawer's <codeph>RunL()</codeph> function must <b>never</b> perform any non-redraw drawing. See <xref href="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita">Server-Initiated vs. Application-Initiated Redrawing</xref> for more information. </p> </section> <section><title>Tips for migrating old code</title> <p>Migrating non-redraw drawing to redraw drawing means that you must enclose all drawing operations between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls or migrate it to use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref> methods. The main points to note are provided below under separate subheadings. </p> <p><b>Performance </b> </p> <p>You can improve performance by passing the smallest possible bounding rectangle to the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> methods. If this still results in poor performance, because, for example, there is a large amount of incremental screen updating, the recommended solution in ScreenPlay is to render to a surface. </p> <p><b>Delay of execution </b> </p> <p>After you migrate non-redraw drawing to redraw drawing, the execution of the drawing operations is deferred compared to previously. This means that if the arguments of the drawing operations result in a panic, the panic also appears later than before. </p> <p><b>CRemoteGc usage </b> </p> <p>Device creators can use <xref href="GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE.dita"><apiname>CRemoteGc</apiname></xref> to create a data buffer containing a series of drawing operations. These can then be executed to display the drawing on the screen by using <xref href="GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86.dita#GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86/GUID-35C68602-7684-3A1C-ADA2-9C8822E18DE0"><apiname>CCommandBuffer::Play()</apiname></xref>. </p> <p>For example, consider a weather program that has one sub-system responsible for deciding the drawing operations that comprise a weather symbol and another sub-system that places weather symbols at different locations on the screen. Here we potentially have a Cloud symbol buffer created once and played many times. </p> <p>The points to note are: </p> <ul><li id="GUID-A8DCB4C4-9D80-5F0F-A894-512A432A9E11"><p>Any <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> commands that are placed into the <codeph>CRemoteGc</codeph> buffer are <b>not</b> transferred to the target window when the buffer is played </p> </li> <li id="GUID-4D5FB2B7-44F0-50F1-AB60-3A12B0AF287B"><p>You <b>must</b> bracket any call to <xref href="GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86.dita#GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86/GUID-35C68602-7684-3A1C-ADA2-9C8822E18DE0"><apiname>CCommandBuffer::Play()</apiname></xref> within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. </p> </li> </ul> <p>It may be puzzling to understand why any <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> commands would be placed in the <codeph>CRemoteGc</codeph> buffer at all. This facility is to allow the commands already in the <codeph>CRemoteGc</codeph> buffer to be replaced with new drawing operations. In the weather example, it might be done to allow a "7<sup>o</sup> Celsius" label to partially occlude a cloud graphic placed earlier into the <codeph>CRemoteGc</codeph> buffer. </p> </section> <section><title>Configuring the emulator to panic clients that ignore the
-          convention</title> <p>In both ScreenPlay and the non-ScreenPlay variant, you can configure the TechView emulator to panic clients that ignore the convention (described above) that all drawing operations are performed as redraw drawing. </p> <p>To enable this feature, add the following line to the <filepath>epoc32/data/epoc.ini</filepath> file: </p> <codeblock id="GUID-50D79AD9-BB89-5A49-91A3-DDDAF9543551" xml:space="preserve">debug_wserv_exe_EnforceRedrawCallingConvention 1</codeblock> <p>This feature is disabled if you do not specify this parameter or if you set it to zero, like this: </p> <codeblock id="GUID-ACCA692B-42C6-593E-BA02-43D2EF52E9C8" xml:space="preserve">debug_wserv_exe_EnforceRedrawCallingConvention 0</codeblock> <p>The feature takes effect in debug emulator (WINSCW) builds only—it never affects ARM builds. </p> <p>When a Window Server panic code 79 (<codeph>EWservPanicWindowBeginRedrawNotCalled</codeph>) then occurs, it means that a non-redraw drawing operation has occurred. </p> <p>However, the Window Server buffers client requests. This means that the drawing that is at fault may have been issued by the client some time earlier. It is therefore helpful to enable <i>autoflushing</i>, because this removes the buffering between the client issuing the drawing operations and the Window Server processing them. This makes it easier to identify the drawing operation that is at fault. </p> <p>There are three ways to enable autoflushing: </p> <ol id="GUID-22E4AACD-5718-5774-B9B1-BF28D287ED76"><li id="GUID-EF604CC8-5138-5747-AD4F-CA8BE8DC335A"><p>To enable autoflushing globally across all clients, define <codeph>__AUTO_FLUSH</codeph> in <filepath>client/client.h</filepath> and re-compile the Window Server code. </p> </li> <li id="GUID-ACC8C257-1530-5808-9838-B905D2483455"><p>To enable autoflushing in your client-side code only, call <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-85232F8B-9FB8-3E19-9ECD-E64B63748A11"><apiname>RWsSession::SetAutoFlush(ETrue)</apiname></xref>. </p> </li> <li id="GUID-3CCA44EB-5375-59AA-B96B-E3C3E241D88B"><p>To enable autoflushing on an ad hoc basis in the TechView emulator, press <userinput>Ctrl-Alt-Shift-F</userinput>. </p> </li> </ol> </section> </conbody><related-links><link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics and Drawing </linktext> </link> <link href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-8-1-3-1-1-7-1.dita"><linktext>The UI Control Framework (CONE)</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8DB1C618-597C-560C-95A2-C0AB2CEBB027" xml:lang="en"><title>Redraw Drawing</title><shortdesc>This topic provides background information about redraw
+drawing and tips for updating old code to comply with the recommendation
+that all drawing is migrated to redraw drawing. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target
+audience</b>: Application developers. </p>
+<section id="GUID-71199005-1F00-434D-B130-47886DD53E92"><title>About
+Redraw Drawing</title> <p>Symbian recommends that all <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref> drawing is <b>redraw drawing</b>, which means that it takes place
+between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls. <xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita">The
+UI Control Framework (CONE)</xref> automatically takes care of this
+for you if you use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-250ED45A-76F3-3623-BA4B-22D31613A2EF"><apiname>CCoeControl::DrawNow(const TRect &amp;)const</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-33A19096-F8D1-373C-862F-EF627981C782"><apiname>CCoeControl::DrawDeferred()const</apiname></xref> methods. </p> <p>For example, suppose an application wants to write the text "Hello!"
+to a window and then add a red diagonal line below it (A in following
+diagram). When this is performed as redraw drawing, the application
+calculates the bounding rectangles of the "Hello!" text and the red
+line (B). For each one, the application passes the rectangle to <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-F5E85A7B-0DAE-32C1-AF71-8FC2F5F01509"><apiname>RWindow::BeginRedraw(const TRect &amp;)</apiname></xref>, then calls the
+draw commands and afterwards calls <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>. </p> <fig id="GUID-53B962F7-D425-5D72-8148-F822A3462243">
+<image href="GUID-1DDFFB60-BBA8-500E-A9B1-F048EE5BFBD0_d0e189660_href.png" placement="inline"/>
+</fig> <p>This has the advantage that the Window Server knows that
+the area of the window that has the "Hello!" text is not affected
+by the drawing of the red line. There are also advantages when some
+or all of the window needs to be repainted. For example, suppose another
+window (such as an OK dialog box) appears above the window (as shown
+in C). When the dialog box is closed, the Window Server repaints the
+screen behind the dialog box. Because in this example the OK dialog
+box was entirely within the red line's bounding rectangle, the Window
+Server simply replays that rectangle's drawing operations (D). This
+is more efficient than repainting the whole window. </p> <p>However,
+in earlier versions of Symbian you could, for example, draw the red
+line without bracketing it within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. This is called <b>non-redraw drawing</b>. In ScreenPlay, each non-redraw drawing operation triggers the Window
+Server to invalidate the entire window. This means that the client
+application must then perform a full window redraw, as shown in the
+next diagram. </p> <fig id="GUID-A36DF80C-6B53-5D9D-878B-0854BB36E44A">
+<title>              Non-redraw drawing sequence            </title>
+<image href="GUID-7C51BC7A-CB97-5A7E-A5EF-BB3623DFFFED_d0e189683_href.png" placement="inline"/>
+</fig> <p>This is less efficient than the Window Server replaying
+the draw operations for the affected area. </p> <p>Symbian recommends
+that all drawing is now performed as redraw drawing. Typically this
+involves dividing the window up into rectangular areas that represent
+different aspects of the user interface—for example, as shown in the
+following diagram. If anything spoils the screen, the Window Server
+then only needs to redraw the corresponding portions of the user interface. </p> <fig id="GUID-BAD0C762-0EBD-51E2-BC64-DF38749CA7D8">
+<image href="GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e189694_href.png" placement="inline"/>
+</fig> <p>In earlier versions of Symbian, before the introduction
+of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-250ED45A-76F3-3623-BA4B-22D31613A2EF"><apiname>CCoeControl::DrawNow(const TRect &amp;)const</apiname></xref> overload, developers sometimes used non-redraw drawing to update
+a small part of a control. This technique has often been used for
+virtual keyboards and calendar controls. This type of use case is
+now particularly unsuited to non-redraw drawing because in ScreenPlay
+each non-redraw drawing command triggers a server-initiated client
+redraw of the entire window. This can be very slow if the window requires
+many drawing operations to redraw the scene. </p> <p>Symbian recommends
+that all non-redraw drawing is changed to redraw drawing. Migrating
+non-redraw drawing to redraw drawing means that you must enclose all
+drawing operations between <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref> calls or migrate it
+to use the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref> methods. Sometimes this causes
+some subtle changes in behavior, as explained in the Notes below. </p></section>
+<section id="GUID-E88E139C-F852-4CAB-B6EB-7E5861D607D6"><title>Restrictions</title> <ol id="GUID-3BE36F7E-CFEC-5BFD-A311-E36D67D9097D">
+<li id="GUID-C6236CD8-C83E-5252-BCC6-336FE8677DCF"><p>You must supply <b>only</b> drawing operations between the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. For example, you must not
+change the window extent between a <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> call. </p> </li>
+<li id="GUID-616C81BF-6296-4D10-BA9F-5A037995D773"><p>For opaque windows,
+you must define pixel content for the <b>entire area</b> being redrawn.
+For example, when calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-250ED45A-76F3-3623-BA4B-22D31613A2EF"><apiname>CCoeControl::DrawNow(const TRect
+&amp;)const</apiname></xref>, you must supply drawing operations for the
+entire rectangle passed to the function. Similarly when calling the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-8DE580DF-459C-3FCF-8ABA-B26741C294CC"><apiname>CCoeControl::DrawNow()const</apiname></xref> overload, you must supply drawing
+operations for the entire window. However, this is not necessary for
+transparent windows.</p></li>
+<li id="GUID-652DF093-046F-58A3-961F-2A51DEB2FD74"><p>You must <b>not</b> call any functions that can leave between the <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. This is because drawing
+operations must never leave. </p> </li>
+</ol> <p>Note: A redrawer's <codeph>RunL()</codeph> function must <b>never</b> perform any non-redraw drawing. See <xref href="GUID-7C75642D-C0C9-5392-9354-711F42DC2C61.dita">Server-Initiated
+vs. Application-Initiated Redrawing</xref> for more information. </p> </section>
+<section id="GUID-620268C0-2F67-4D87-BF99-E1843DBE9BCA"><title>Notes</title> <p><b>Performance </b> </p> <p>You can improve performance by passing
+the smallest possible bounding rectangle to the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-D5458F8C-E199-37DD-B821-050B749122C6"><apiname>CCoeControl::DrawNow()</apiname></xref> methods. If this still
+results in poor performance, because, for example, there is a large
+amount of incremental screen updating, the recommended solution in
+ScreenPlay is to render to a surface. </p><p><b>High frequency rendering</b> </p><p>It is possible for a client to provide batches of redraw
+drawing (that is, drawing bracketed in <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls) for the same region of a
+window faster than they can be displayed on the screen.
+When this happens, the Window Server may discard the drawing commands
+in one or more of the earlier batches of redraw drawing and simply
+draw the pixels defined in a later redraw batch to the screen. This
+can result in missing frames, but is only likely to be noticeable
+in an application like a game that performs high-frequency rendering.</p><p>The solution is to call <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B431DC60-D11F-3239-8F52-4257B9B0E0C9"><apiname>RWsSession::Finish()</apiname></xref> after each <codeph>EndRedraw()</codeph> call. This slows the client
+so that it does not generate pixel content faster than the Window
+Server can display it on the screen. </p><p>To summarize: When you
+want to ensure that every single frame is shown on the screen, call <codeph>Finish()</codeph> after each <codeph>EndRedraw()</codeph> call.</p> <p><b>Delay of execution </b> </p> <p>After you migrate non-redraw
+drawing to redraw drawing, the execution of the drawing operations
+is deferred compared to previously. This means that if the arguments
+of the drawing operations result in a panic, the panic also appears
+later than before. </p> <p><b>CRemoteGc usage </b> </p> <p>Device
+creators can use <xref href="GUID-9965F9F1-ACEE-398C-BDAB-B3D5D61D4EBE.dita"><apiname>CRemoteGc</apiname></xref> to create a data buffer
+containing a series of drawing operations. These can then be executed
+to display the drawing on the screen by using <xref href="GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86.dita#GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86/GUID-35C68602-7684-3A1C-ADA2-9C8822E18DE0"><apiname>CCommandBuffer::Play()</apiname></xref>. </p> <p>For example, consider a weather program that has one sub-system
+responsible for deciding the drawing operations that comprise a weather
+symbol and another sub-system that places weather symbols at different
+locations on the screen. Here we potentially have a Cloud symbol buffer
+created once and played many times. </p> <p>The points to note are: </p> <ul>
+<li id="GUID-A8DCB4C4-9D80-5F0F-A894-512A432A9E11"><p>Any <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> commands
+that are placed into the <codeph>CRemoteGc</codeph> buffer are <b>not</b> transferred to the target window when the buffer is played </p> </li>
+<li id="GUID-4D5FB2B7-44F0-50F1-AB60-3A12B0AF287B"><p>You <b>must</b> bracket any call to <xref href="GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86.dita#GUID-B25363C2-8757-36D4-93D2-769CDA1BDF86/GUID-35C68602-7684-3A1C-ADA2-9C8822E18DE0"><apiname>CCommandBuffer::Play()</apiname></xref> within <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> calls. </p> </li>
+</ul> <p>It may be puzzling to understand why any <codeph>BeginRedraw()</codeph> and <codeph>EndRedraw()</codeph> commands would be placed in the <codeph>CRemoteGc</codeph> buffer at all. This facility is to allow the commands
+already in the <codeph>CRemoteGc</codeph> buffer to be replaced with
+new drawing operations. In the weather example, it might be done to
+allow a "7<sup>o</sup> Celsius" label to partially occlude a cloud
+graphic placed earlier into the <codeph>CRemoteGc</codeph> buffer. </p> </section>
+<section id="GUID-D263317D-ED6F-45D2-8F89-95891F6B7540"><title>Configuring
+the emulator to panic clients that ignore the           convention</title> <p>In both ScreenPlay and the non-ScreenPlay variant, you can configure
+the TechView emulator to panic clients that ignore the convention
+(described above) that all drawing operations are performed as redraw
+drawing. </p> <p>To enable this feature, add the following line to
+the <filepath>epoc32/data/epoc.ini</filepath> file: </p> <codeblock id="GUID-50D79AD9-BB89-5A49-91A3-DDDAF9543551" xml:space="preserve">debug_wserv_exe_EnforceRedrawCallingConvention 1</codeblock> <p>This feature is disabled if you do not specify this parameter
+or if you set it to zero, like this: </p> <codeblock id="GUID-ACCA692B-42C6-593E-BA02-43D2EF52E9C8" xml:space="preserve">debug_wserv_exe_EnforceRedrawCallingConvention 0</codeblock> <p>The feature takes effect in debug emulator (WINSCW) builds only—it
+never affects ARM builds. </p> <p>When a Window Server panic code
+79 (<codeph>EWservPanicWindowBeginRedrawNotCalled</codeph>) then occurs,
+it means that a non-redraw drawing operation has occurred. </p> <p>However, the Window Server buffers client requests. This means that
+the drawing that is at fault may have been issued by the client some
+time earlier. It is therefore helpful to enable <i>autoflushing</i>, because this removes the buffering between the client issuing the
+drawing operations and the Window Server processing them. This makes
+it easier to identify the drawing operation that is at fault. </p> <p>There are three ways to enable autoflushing: </p> <ol id="GUID-22E4AACD-5718-5774-B9B1-BF28D287ED76">
+<li id="GUID-EF604CC8-5138-5747-AD4F-CA8BE8DC335A"><p>To enable autoflushing
+globally across all clients, define <codeph>__AUTO_FLUSH</codeph> in <filepath>client/client.h</filepath> and re-compile the Window Server code. </p> </li>
+<li id="GUID-ACC8C257-1530-5808-9838-B905D2483455"><p>To enable autoflushing
+in your client-side code only, call <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-85232F8B-9FB8-3E19-9ECD-E64B63748A11"><apiname>RWsSession::SetAutoFlush(ETrue)</apiname></xref>. </p> </li>
+<li id="GUID-3CCA44EB-5375-59AA-B96B-E3C3E241D88B"><p>To enable autoflushing
+on an ad hoc basis in the TechView emulator, press <userinput>Ctrl-Alt-Shift-F</userinput>. </p> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-484B51EC-2209-5492-8E9C-9D792AB0DF35.dita"><linktext>Graphics
+and Drawing </linktext></link>
+<link href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita"><linktext>The
+UI Control Framework (CONE)</linktext></link>
+</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,107 +1,107 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B" xml:lang="en"><title> Opening
-a Socket Server connection: Tutorial</title><shortdesc>This tutorial describes how an application can open and manage
-a connection to the Socket Server. Other Socket Server tutorials build upon
-this tutorial. The Socket Server is also known as ESock. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Connecting to the Socket Server</title><p>The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> class
-provides the <xref href="GUID-408D4D7E-FCD1-3ECF-AD62-6DA52E9580F5.dita"><apiname>Connect()</apiname></xref> function to create a session to
-the socket server. </p></section>
-<section><title>Procedure</title><p>The steps to connect and then close a
-session with the Socket Server are: </p><ul>
-<li><p>   Call one of the <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-C9E237C5-DCFB-3F66-87E5-63425156995C"><apiname>RSocketServ::Connect()</apiname></xref>    functions.
- </p> </li>
-<li><p>   Perform socket operations  </p> </li>
-<li><p>   Call <codeph>Close</codeph> to end the session with the Socket Server
-   </p> </li>
-</ul></section>
-<section><title>Example</title><codeblock xml:space="preserve">RSocketServ ss;
-
-// Connect to ESOCK
-ss.Connect();
-
-// Perform operations on the socket server
-...
-
-// Close the connection
-ss.Close();
-</codeblock></section>
-<section><title>Further considerations</title><p> The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-C9E237C5-DCFB-3F66-87E5-63425156995C"><apiname>RSocketServ::Connect()</apiname></xref> function
-allows optional extra information to be sent to the Socket Server to change
-the performance of the connection. Two optional parameters are available:
- </p><ol>
-<li id="GUID-A41FB7DA-2EE4-460F-9698-70A50FB682EB"><p><b>Message Slots</b> - If the client application expects to   keep
-a large number of requests open at the same time, then the client   application
-can increase the message slots available to the connection.</p></li>
-<li id="GUID-FDEF0A30-F872-49DF-A7EC-3B975040E5DC"><p><b>Protocol Preference</b> - If the client application will   use the
-connection to interact with only one protocol, then this protocol   should
-be specified. The Socket Server uses the preferred protocol to improve   the
-efficiency of the messages between the client application and the protocol</p></li>
-</ol></section>
-<section id="GUID-5AA882EF-269B-54A6-8CDB-B1E9F26BB7D5"><p>The <codeph>RSocketServ</codeph> connection
-allows a number of <xref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita">sub-connections</xref> that
-offer more functionality. The sub-connections available are: </p> <ul>
-<li id="GUID-8C317F12-D19A-5B61-A88E-E1BC10BBFE78"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RConnection</apiname></xref>  </p> </li>
-<li id="GUID-DA08493B-DB72-57F0-9CB9-CF4BE80A94E9"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSubConnection</apiname></xref>  </p> </li>
-<li id="GUID-28A3F706-7A81-5F72-8E66-0D236EDE6A40"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocket</apiname></xref>  </p> </li>
-<li id="GUID-F0D169F8-7C22-5AC1-BF22-EAC4D07B9E21"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RHostResolver</apiname></xref>  </p> </li>
-<li id="GUID-3A4ADFEA-4FCD-54DD-8367-0A42D21A67A6"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RNetDatabase</apiname></xref>  </p> </li>
-</ul> <p>The purpose of each of these sub-connections is described in the
-. </p> <p><b>Procedure</b> </p> <p>The
-procedure to attach any of these sub-connections is: </p> <ol id="GUID-E146CDDE-DE2C-579C-901F-073C63C61F6D">
-<li id="GUID-E67862A6-17E4-5F5D-8A45-F7F8BEA01E04"><p>Create or use an existing <codeph>RSocketServ</codeph> session. </p> </li>
-<li id="GUID-C2AD2B55-F247-5D27-B368-4467E05D5800"><p>Call the <codeph>Open()</codeph> function
-on the object for the sub-connection class. Pass into the <codeph>Open()</codeph> function
-a reference to the <codeph>RSocketServ</codeph> session. </p> </li>
-<li id="GUID-18FF884F-8930-5851-9ECD-6B9BA55A48B2"><p>Perform sub-connection
-operations </p> </li>
-<li id="GUID-0A21C702-5125-55D1-8313-E1E7D1949C54"><p>Call <codeph>Close</codeph> to
-end the sub-session </p> </li>
-</ol> <p id="GUID-F5AEE180-B9A9-542E-84C9-2C505FD75AA4-GENID-1-8-1-8-1-1-10-1-5-1-4-1-3-1-3-5-7"><b>Example 1: Socket (RSocket)</b> </p> <codeblock id="GUID-FB43255E-E22E-5818-B00D-9351DA7B1BFF" xml:space="preserve">RSocketServ ss;
-RSocket sock;
-
-// Connect to the Sockets Server
-ss.Connect();
-
-// open a socket
-sock.Open(ss);
-
-// Perform operations on the socket
-...
-
-// Close the socket connection
-sock.Close();
-</codeblock> <p id="GUID-F5AEE180-B9A9-542E-84C9-2C505FD75AA4-GENID-1-8-1-8-1-1-10-1-5-1-4-1-3-1-3-5-9"><b>Example 2: Connection Management
-(RConnection)</b> </p> <codeblock id="GUID-BA4575AA-B370-594C-AAE0-8D2D970CA4E0" xml:space="preserve">RSocketServ ss;
-RConnection conn;
-
-// Connect to the Sockets Server
-ss.Connect();
-
-// Open the Connection Management sub-connection
-conn.Open(ss);
-
-// Perform operations on the connection
-...
-
-// Close the sub-connection and connection
-ss.Close();
-</codeblock> <p>This example shows that you do not need to close sub-connections
-explicitly. If you close the RSocketServ connection, the Comms Framework closes
-all attached sub-connections. </p> </section>
-</conbody><related-links>
-<link href="GUID-E34D0F11-4B34-575C-BE78-8EAD13E9CD64.dita"><linktext>How to  
-              Start and Close a Management Plane session: Tutorial</linktext>
-</link>
-<link href="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita"><linktext>Socket Server
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8E158109-AE22-5216-90E8-63A4BD4CC90B" xml:lang="en"><title> Opening
+a Socket Server connection: Tutorial</title><shortdesc>This tutorial describes how an application can open and manage
+a connection to the Socket Server. Other Socket Server tutorials build upon
+this tutorial. The Socket Server is also known as ESock. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Connecting to the Socket Server</title><p>The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> class
+provides the <xref href="GUID-408D4D7E-FCD1-3ECF-AD62-6DA52E9580F5.dita"><apiname>Connect()</apiname></xref> function to create a session to
+the socket server. </p></section>
+<section><title>Procedure</title><p>The steps to connect and then close a
+session with the Socket Server are: </p><ul>
+<li><p>   Call one of the <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-C9E237C5-DCFB-3F66-87E5-63425156995C"><apiname>RSocketServ::Connect()</apiname></xref>    functions.
+ </p> </li>
+<li><p>   Perform socket operations  </p> </li>
+<li><p>   Call <codeph>Close</codeph> to end the session with the Socket Server
+   </p> </li>
+</ul></section>
+<section><title>Example</title><codeblock xml:space="preserve">RSocketServ ss;
+
+// Connect to ESOCK
+ss.Connect();
+
+// Perform operations on the socket server
+...
+
+// Close the connection
+ss.Close();
+</codeblock></section>
+<section><title>Further considerations</title><p> The <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-C9E237C5-DCFB-3F66-87E5-63425156995C"><apiname>RSocketServ::Connect()</apiname></xref> function
+allows optional extra information to be sent to the Socket Server to change
+the performance of the connection. Two optional parameters are available:
+ </p><ol>
+<li id="GUID-A41FB7DA-2EE4-460F-9698-70A50FB682EB"><p><b>Message Slots</b> - If the client application expects to   keep
+a large number of requests open at the same time, then the client   application
+can increase the message slots available to the connection.</p></li>
+<li id="GUID-FDEF0A30-F872-49DF-A7EC-3B975040E5DC"><p><b>Protocol Preference</b> - If the client application will   use the
+connection to interact with only one protocol, then this protocol   should
+be specified. The Socket Server uses the preferred protocol to improve   the
+efficiency of the messages between the client application and the protocol</p></li>
+</ol></section>
+<section id="GUID-5AA882EF-269B-54A6-8CDB-B1E9F26BB7D5"><p>The <codeph>RSocketServ</codeph> connection
+allows a number of <xref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita">sub-connections</xref> that
+offer more functionality. The sub-connections available are: </p> <ul>
+<li id="GUID-8C317F12-D19A-5B61-A88E-E1BC10BBFE78"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RConnection</apiname></xref>  </p> </li>
+<li id="GUID-DA08493B-DB72-57F0-9CB9-CF4BE80A94E9"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSubConnection</apiname></xref>  </p> </li>
+<li id="GUID-28A3F706-7A81-5F72-8E66-0D236EDE6A40"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocket</apiname></xref>  </p> </li>
+<li id="GUID-F0D169F8-7C22-5AC1-BF22-EAC4D07B9E21"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RHostResolver</apiname></xref>  </p> </li>
+<li id="GUID-3A4ADFEA-4FCD-54DD-8367-0A42D21A67A6"><p> <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RNetDatabase</apiname></xref>  </p> </li>
+</ul> <p>The purpose of each of these sub-connections is described in the
+. </p> <p><b>Procedure</b> </p> <p>The
+procedure to attach any of these sub-connections is: </p> <ol id="GUID-E146CDDE-DE2C-579C-901F-073C63C61F6D">
+<li id="GUID-E67862A6-17E4-5F5D-8A45-F7F8BEA01E04"><p>Create or use an existing <codeph>RSocketServ</codeph> session. </p> </li>
+<li id="GUID-C2AD2B55-F247-5D27-B368-4467E05D5800"><p>Call the <codeph>Open()</codeph> function
+on the object for the sub-connection class. Pass into the <codeph>Open()</codeph> function
+a reference to the <codeph>RSocketServ</codeph> session. </p> </li>
+<li id="GUID-18FF884F-8930-5851-9ECD-6B9BA55A48B2"><p>Perform sub-connection
+operations </p> </li>
+<li id="GUID-0A21C702-5125-55D1-8313-E1E7D1949C54"><p>Call <codeph>Close</codeph> to
+end the sub-session </p> </li>
+</ol> <p id="GUID-F5AEE180-B9A9-542E-84C9-2C505FD75AA4-GENID-1-10-1-8-1-1-10-1-5-1-4-1-3-1-3-5-7"><b>Example 1: Socket (RSocket)</b> </p> <codeblock id="GUID-FB43255E-E22E-5818-B00D-9351DA7B1BFF" xml:space="preserve">RSocketServ ss;
+RSocket sock;
+
+// Connect to the Sockets Server
+ss.Connect();
+
+// open a socket
+sock.Open(ss);
+
+// Perform operations on the socket
+...
+
+// Close the socket connection
+sock.Close();
+</codeblock> <p id="GUID-F5AEE180-B9A9-542E-84C9-2C505FD75AA4-GENID-1-10-1-8-1-1-10-1-5-1-4-1-3-1-3-5-9"><b>Example 2: Connection Management
+(RConnection)</b> </p> <codeblock id="GUID-BA4575AA-B370-594C-AAE0-8D2D970CA4E0" xml:space="preserve">RSocketServ ss;
+RConnection conn;
+
+// Connect to the Sockets Server
+ss.Connect();
+
+// Open the Connection Management sub-connection
+conn.Open(ss);
+
+// Perform operations on the connection
+...
+
+// Close the sub-connection and connection
+ss.Close();
+</codeblock> <p>This example shows that you do not need to close sub-connections
+explicitly. If you close the RSocketServ connection, the Comms Framework closes
+all attached sub-connections. </p> </section>
+</conbody><related-links>
+<link href="GUID-E34D0F11-4B34-575C-BE78-8EAD13E9CD64.dita"><linktext>How to  
+              Start and Close a Management Plane session: Tutorial</linktext>
+</link>
+<link href="GUID-12C9C36B-8AD4-544E-A6A3-54A799EF0280.dita"><linktext>Socket Server
+Reference</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e304490_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8E2303E9-DB60-5F38-A4D4-8BF8F7A1EF9F_d0e310505_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e272075_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8E322085-07E7-542C-B0FD-54431F7B4BB7_d0e275756_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393399_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393561_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e110788_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e117326_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e123728_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e130266_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,226 +1,226 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223" xml:lang="en"><title>JPEG
-Image Transform Extension Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document introduces you to the JPEG image transform extensions. </p>
-<section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-8-1-18-1-1-5-1-6-1-12-1-4-1-3-1-3-1-3-1-2-2"><title>Purpose</title> <p>The
-Image Transform framework supports standard extensions for advanced JPEG functions. </p> <p>The
-functions are, </p> <ul>
-<li id="GUID-5AEE7F00-B5AE-5D17-8280-BB86E1C3F309"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-3F1A77BC-C5C3-5A3D-B823-7310B97D449A">Orientation</xref> (Rotation and Mirror over horizontal and vertical Axis) </p> </li>
-<li id="GUID-48438448-064A-5FE4-96D4-769336CFC50E"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-3132C68A-4A30-51FD-9259-9425E3E5B5AE">Overlay</xref>  </p> </li>
-<li id="GUID-03E14C2D-A7D9-532F-9E3A-BB8A38770929"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-AAD925E2-9450-5ADC-B2D2-FF106392FC4C"> Squeeze</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-3F1A77BC-C5C3-5A3D-B823-7310B97D449A"><title>Orientation</title> <p>The
-COrientationTransformExtension extension to CImageTransform allows you to
-rotate in steps of 90 degrees or to mirror a JPEG file either from file or
-memory. </p> <p>When you require an Image Transform plugin which supports
-the Orientation extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-429C3968-9EB4-3B6E-85FF-13244E4505D2"><apiname>CImageTransform::EOrientation()</apiname></xref>.
-The client must get the COrientationTransformExtension extension and use this
-to set up the required transformation: </p> <codeblock id="GUID-12531AE6-3383-50F3-8D89-629010D967E1" xml:space="preserve">
-
-IMPORT_C  void COrientationTransformExtension::SetOrientationL(TOrientation aOrientation);
-
-</codeblock> <p>The orientation changes supported by the <xref href="GUID-593AD11D-3CE7-39E7-B5FE-EDEDABE8D936.dita"><apiname>COrientationTransformExtension</apiname></xref> are, </p> <ul>
-<li id="GUID-E3056EBA-DC74-5D99-95D5-3016AEAADA4A"><p>90 degree clockwise </p> </li>
-<li id="GUID-9E607A83-0846-56FC-95D4-CD7250934EC0"><p>180 degree clockwise </p> </li>
-<li id="GUID-27A48EA1-7774-5DA8-9FCB-201965A9EA59"><p>270 degree clockwise </p> </li>
-<li id="GUID-53B7C705-D2EE-5729-BE74-91291D7F30C5"><p>mirroring over the vertical
-axis </p> </li>
-<li id="GUID-D7806048-D30A-5D77-BA5E-1F581E76D5CC"><p>mirroring over the horizontal
-axis </p> </li>
-<li id="GUID-88EDAE03-DB13-5BF9-BAE8-60C20065D114"><p>transpose over the main
-diagonal </p> </li>
-<li id="GUID-8E508BFF-714C-58B4-A0BB-82B6507FC7EA"><p>transpose over the minor
-diagonal. </p> </li>
-</ul> <p>In the example function below a JPEG image is rotated by 90 degrees: </p> <codeblock id="GUID-9C13D4D9-1772-5FC1-A294-F0B52A5EFFA2" xml:space="preserve">
-
-    // Create the image transform
-       CImageTransform* imageTransform = CImageTransform::NewL(iFs);
-       CleanupStack::PushL(imageTransform);
-
-    // Setup the image transform
-       imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
-       imageTransform-&gt;SetDestFilenameL(aDestFileName);
-       imageTransform-&gt;SetTransformationsL(CImageTransform::EOrientation);
-       imageTransform-&gt;SetupL();
-
-    // Get the extension plugin supporting orientation
-       TUid lRotateUid = {KUidOrientationTransformExtension    };
-       TInt err = KErrNone;
-    COrientationTransformExtension* lRotateExt = static_cast&lt;COrientationTransformExtension*&gt;
-    (imageTransform-&gt;Extension(lRotateUid, err));
-
- // Check here whether the plugin supports this extension or not set the orientation on 
- // the plugin    
- lRotateExt-&gt;SetOrientationL(COrientationTransformExtension::ERotation90DegreesClockwise);
-
-    // Perform the transformation
-      imageTransform-&gt;Transform(aStatus);
-
-    // CImageTransform::Transform() is an asynchronous function
-    // and the result of the transformation would be known in the
-    // RunL() function of the active object associated with the aStatus
-
-</codeblock> <p>The image rotation can be performed in the compressed domain
-allowing a transformation of the image. Benefits of speed and memory usage
-can be obtained dependent on the implementation of the plugin. </p> </section>
-<section id="GUID-3132C68A-4A30-51FD-9259-9425E3E5B5AE"><title>Overlay</title> <p> <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> extension
-to Image Transform framework allows lossless overlay or blend of images. Examples
-of the use of <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> include adding
-timestamp or place-stamp, some text or inserting a company logo. The images
-below show an example of overlay functionality: </p> <fig id="GUID-BA901C57-D744-5353-8B25-2195EA084016">
-<image href="GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e309541_href.jpg" placement="inline"/>
-</fig> <p>The image overlay transformation can, depending on its implementation,
-be very fast eliminating the need to decode the whole image making it very
-useful, for example a camera application. The types of image that can be overlaid
-onto the main JPEG image can be discovered through the extension. It is also
-possible to overlay a <codeph>CFbsBitmap</codeph>. If you need transparency,
-then you have to choose an image format supporting a transparency channel
-such as PNG. </p> <p>When you require an Image Transform plugin which supports
-the Overlay extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-198CAB14-A6CB-3D51-9404-C4DED1DCF215"><apiname>CImageTransform::EOverlay()</apiname></xref>.
-The client must get the COverlayTransformExtension extension and use this
-to set up the required transformation. The client can control the desired
-position for overlay, and the transparency for image. The example below show
-the successful setup for <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> with
-the JPEG image overlaid by an image at (0,0) position co-ordinates: </p> <codeblock id="GUID-648E2DC3-9BA2-59D3-88DA-3E9C31BC3F18" xml:space="preserve">
-
-    // Create the image transform
-    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
-    CleanupStack::PushL(imageTransform);
-
-    // Setup the image transform
-    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
-    imageTransform-&gt;SetDestFilenameL(aDestFileName);
-    imageTransform-&gt;SetTransformationsL(CImageTransform::EOverlay);
-    imageTransform-&gt;SetupL();
-
-    // Get the extension plugin supporting overlay
-    TUid lOverlayUid = {KUidOverlayTransformExtension    };
-    TInt err = KErrNone;
-    COverlayTransformExtension * lOverlayExt = static_cast&lt; COverlayTransformExtension *&gt;
- (imageTransform-&gt;Extension(lOverlayUid, err));
-
-    // Check here whether the plugin supports this extension or not Set the position on 
- //  the plugin
-    lOverlayExt-&gt;Position(TPoint(0,0));
-
-    // Set the overlay file and its type
-    lOverlayExt-&gt;SetOverlayFileL(aOverlayFileName, KImageTypeJPGUid);
-
-    // Perform the transformation
-    imageTransform-&gt;Transform(aStatus);
-
-    // CImageTransform::Transform() is an asynchronous function
-    // and the result of the transformation would be known in the
-    // RunL() function of the active object associated with the aStatus
-
-</codeblock> </section>
-<section id="GUID-AAD925E2-9450-5ADC-B2D2-FF106392FC4C"><title>Squeeze</title> <p>The <xref href="GUID-1B022316-410D-328C-AFB2-E3A339E1609B.dita"><apiname>CSqueezeTransformExtension()</apiname></xref> extension
-to the Image Transform framework allows, </p> <ul>
-<li id="GUID-485ED69C-7895-5B8F-B2DC-D8A165F74D59"><p>Auto-resize </p> </li>
-<li id="GUID-8DDD9BE0-F079-5F6F-B4D7-26DC45170BEC"><p>Squeeze. </p> </li>
-</ul> <p>A auto-resize adjusts the image size and encoding quality to achieve
-a desired file size. If the file size requirement has not been met, then you
-can use squeeze to compress the image even further. The JPEG squeeze module
-is a convenient tool when creating MMS. </p> <p>When you require an Image
-Transform plugin which supports the Squeeze extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-FC837A02-243D-3A5B-A81D-63802678F6C6"><apiname>CImageTransform::ESqueeze()</apiname></xref>. </p> <p>Squeezing an image can be accomplished through: </p> <codeblock id="GUID-12A6E7C4-8627-5ACC-8692-64F247FB518D" xml:space="preserve">
-
-IMPORT_C void CSqueezeTransformExtension::SetDestSizeInBytes(TUint aMaxDestDataSize ) ;
-
-</codeblock> <p>Or </p> <codeblock id="GUID-97A7CE4F-A227-51EE-B8E6-CC04C5A2491A" xml:space="preserve">
-    IMPORT_C void SetAdvancedSqueezeModeL(TAdvancedSqueezeParams* aSqueezeAutoResizeParams ) ;
-</codeblock> <p>In the latter case can be made through the use of <xref href="GUID-4372B86B-111B-3B9E-838A-511D247846D4.dita#GUID-4372B86B-111B-3B9E-838A-511D247846D4/GUID-15AB4D19-1FDE-3D29-AED2-7776E3E08C10"><apiname>TAdvancedSqueezeParams::TAutoResizeAction</apiname></xref>.
-The enumeration to do auto resize are, </p> <ul>
-<li id="GUID-3240A4EE-6904-536C-BA05-5995738CE048"><p> <xref href="GUID-DAEB147E-2A50-30F5-85C8-863DC8C21AF7.dita"><apiname>         
-       EAutoResizeActionPreserveSourceEncodingQuality</apiname></xref> for preserving
-the source encoding quality while shrinking the width and height of the image </p> </li>
-<li id="GUID-B29AE145-B946-59CD-879E-6F77F0E48563"><p> <xref href="GUID-EAF60EAB-3E65-34AE-BD3F-C32BA331BCEE.dita"><apiname> EAutoResizeActionPrioritizeLargeImageSize</apiname></xref> for
-preserving the maxImageSize while lowering the encoding quality </p> </li>
-<li id="GUID-2B98FA22-2853-5DB0-B9A2-7B2BC6080522"><p> <xref href="GUID-EAF42079-109B-36E7-940F-C10C10743E31.dita"><apiname>EAutoResizeActionResizePrioritizeHighEncodingQuality</apiname></xref> for
-preserving the highest possible encoding quality while shrinking the width
-and height of the image </p> </li>
-<li id="GUID-3848F63C-D0CF-5888-BC68-127AA29DFE81"><p> <xref href="GUID-D8807BBD-5EAE-3BBE-B408-5841D7554287.dita"><apiname>EAutoResizeActionMiddleCourse</apiname></xref> for
-simultaneously lower the encoding quality and shrink the width and height
-of the image. </p> </li>
-</ul> <p>These settings are used by the auto resize to determine size and
-encoding quality for the new image file. </p> <p>The JPEG squeeze enblaes
-images to be set to a enblaes pre-defined size. This is useful if storage
-size is critical or if there are limitations when sending images i.e. MMS
-file size. The dimensions of the image are preserved; the JPEG compression
-ratio being changed to maintain the image size. </p> <p> <b>Note:</b> The
-JPEG squeeze functionality must be used with care. Drastically decreasing
-file size will result in poor image quality. </p> <p>In the below example,
-the JPEG image is squeezed to get a file size less than the specified maxium
-size: </p> <codeblock id="GUID-9E529BC6-0042-5EBE-A5AE-8F2ADAA8E4D8" xml:space="preserve">
-
-    // Create the image transform
-    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
-    CleanupStack::PushL(imageTransform);
-    // Setup the image transform
-    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
-    imageTransform-&gt;SetDestFilenameL(aDestFileName);
-    imageTransform-&gt;SetTransformationsL(CImageTransform::ESqueeze);
-    imageTransform-&gt;SetupL();
-    // Get the extension plugin supporting squeeze
-    TUid lSqueezeUid = {KUidSqueezeTransformExtension    };
-    TInt err = KErrNone;
-    CSqueezeTransformExtension * lSqueezeExt = static_cast&lt; CSqueezeTransformExtension*&gt;
-(imageTransform-&gt;Extension(lSqueezeUid, err));
-    // Check here whether the plugin supports this extension or not
-    // Set the max dest size in bytes    
-    lSqueezeExt-&gt; SetDestSizeInBytes(aMaxSizeInBytes);
-    // Perform the transformation
-    imageTransform-&gt;Transform(aStatus);
-    // CImageTransform::Transform() is an asynchronous function
-    // and the result of the transformation would be known in the
-    // RunL() function of the active object associated with the aStatus
-
-</codeblock> <p>The example code below show how the JPEG squeeze image is
-used to make an image fulfill the MMS ‘Image Rich’ class constraints, i.e.
-file size less than 100k bytes and image size no more than 640*480 pixels. </p> <codeblock id="GUID-C04CB828-3307-5079-91CD-BEA7A15F0215" xml:space="preserve">
-
-    // Create the image transform
-    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
-    CleanupStack::PushL(imageTransform);
-    // Setup the image transform
-    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
-    imageTransform-&gt;SetDestFilenameL(aDestFileName);
-    imageTransform-&gt;SetTransformationsL(CImageTransform::ESqueeze);
-    imageTransform-&gt;SetupL();
-    // Get the extension plugin supporting squeeze
-    TUid lSqueezeUid = {KUidSqueezeTransformExtension    };
-    TInt err = KErrNone;
-    CSqueezeTransformExtension * lSqueezeExt = static_cast&lt; CSqueezeTransformExtension*&gt;
-(imageTransform-&gt;Extension(lSqueezeUid, err));
-    TInt res = KErrNone;
-    TInt newSize = 0;
-    TAdvancedSqueezeParams info ;
-
-    // MMS Image Rich
-    info.iMaxDestSizeInBytes = 100000;
-    info.iMaxImageSize.iWidth = 640;
-    info.iMaxImageSize.iHeight = 480;
-    info.iMinImageSize. iWidth = 160;
-    info.iMinImageSize. iHeight = 120;
-    info.iResizeAction = EAutoResizeActionPrioritizeLargeImageSize;
-    info.iMinEncodingQuality = 0.5f;
-    info.iSamplingUid = KUidSamplingColor420;
-    lSqueezeExt-&gt;SetAdvancedSqueezeModeL(&amp;info);
-    // Perform the transformation
-    imageTransform-&gt;Transform(aStatus);
-    // CImageTransform::Transform() is an asynchronous function
-    // and the result of the transformation would be known in the
-    // RunL() function of the active object associated with the aStatus
-
-</codeblock> </section>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223" xml:lang="en"><title>JPEG
+Image Transform Extension Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces you to the JPEG image transform extensions. </p>
+<section id="GUID-3333CA2A-EF84-5E7B-B9BE-8FF00523897F-GENID-1-10-1-19-1-1-5-1-6-1-11-1-4-1-3-1-3-1-3-1-2-2"><title>Purpose</title> <p>The
+Image Transform framework supports standard extensions for advanced JPEG functions. </p> <p>The
+functions are, </p> <ul>
+<li id="GUID-5AEE7F00-B5AE-5D17-8280-BB86E1C3F309"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-3F1A77BC-C5C3-5A3D-B823-7310B97D449A">Orientation</xref> (Rotation and Mirror over horizontal and vertical Axis) </p> </li>
+<li id="GUID-48438448-064A-5FE4-96D4-769336CFC50E"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-3132C68A-4A30-51FD-9259-9425E3E5B5AE">Overlay</xref>  </p> </li>
+<li id="GUID-03E14C2D-A7D9-532F-9E3A-BB8A38770929"><p><xref href="GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223.dita#GUID-8E794D5A-9C83-54EB-AD5A-6A74BB155223/GUID-AAD925E2-9450-5ADC-B2D2-FF106392FC4C"> Squeeze</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-3F1A77BC-C5C3-5A3D-B823-7310B97D449A"><title>Orientation</title> <p>The
+COrientationTransformExtension extension to CImageTransform allows you to
+rotate in steps of 90 degrees or to mirror a JPEG file either from file or
+memory. </p> <p>When you require an Image Transform plugin which supports
+the Orientation extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-429C3968-9EB4-3B6E-85FF-13244E4505D2"><apiname>CImageTransform::EOrientation()</apiname></xref>.
+The client must get the COrientationTransformExtension extension and use this
+to set up the required transformation: </p> <codeblock id="GUID-12531AE6-3383-50F3-8D89-629010D967E1" xml:space="preserve">
+
+IMPORT_C  void COrientationTransformExtension::SetOrientationL(TOrientation aOrientation);
+
+</codeblock> <p>The orientation changes supported by the <xref href="GUID-593AD11D-3CE7-39E7-B5FE-EDEDABE8D936.dita"><apiname>COrientationTransformExtension</apiname></xref> are, </p> <ul>
+<li id="GUID-E3056EBA-DC74-5D99-95D5-3016AEAADA4A"><p>90 degree clockwise </p> </li>
+<li id="GUID-9E607A83-0846-56FC-95D4-CD7250934EC0"><p>180 degree clockwise </p> </li>
+<li id="GUID-27A48EA1-7774-5DA8-9FCB-201965A9EA59"><p>270 degree clockwise </p> </li>
+<li id="GUID-53B7C705-D2EE-5729-BE74-91291D7F30C5"><p>mirroring over the vertical
+axis </p> </li>
+<li id="GUID-D7806048-D30A-5D77-BA5E-1F581E76D5CC"><p>mirroring over the horizontal
+axis </p> </li>
+<li id="GUID-88EDAE03-DB13-5BF9-BAE8-60C20065D114"><p>transpose over the main
+diagonal </p> </li>
+<li id="GUID-8E508BFF-714C-58B4-A0BB-82B6507FC7EA"><p>transpose over the minor
+diagonal. </p> </li>
+</ul> <p>In the example function below a JPEG image is rotated by 90 degrees: </p> <codeblock id="GUID-9C13D4D9-1772-5FC1-A294-F0B52A5EFFA2" xml:space="preserve">
+
+    // Create the image transform
+       CImageTransform* imageTransform = CImageTransform::NewL(iFs);
+       CleanupStack::PushL(imageTransform);
+
+    // Setup the image transform
+       imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
+       imageTransform-&gt;SetDestFilenameL(aDestFileName);
+       imageTransform-&gt;SetTransformationsL(CImageTransform::EOrientation);
+       imageTransform-&gt;SetupL();
+
+    // Get the extension plugin supporting orientation
+       TUid lRotateUid = {KUidOrientationTransformExtension    };
+       TInt err = KErrNone;
+    COrientationTransformExtension* lRotateExt = static_cast&lt;COrientationTransformExtension*&gt;
+    (imageTransform-&gt;Extension(lRotateUid, err));
+
+ // Check here whether the plugin supports this extension or not set the orientation on 
+ // the plugin    
+ lRotateExt-&gt;SetOrientationL(COrientationTransformExtension::ERotation90DegreesClockwise);
+
+    // Perform the transformation
+      imageTransform-&gt;Transform(aStatus);
+
+    // CImageTransform::Transform() is an asynchronous function
+    // and the result of the transformation would be known in the
+    // RunL() function of the active object associated with the aStatus
+
+</codeblock> <p>The image rotation can be performed in the compressed domain
+allowing a transformation of the image. Benefits of speed and memory usage
+can be obtained dependent on the implementation of the plugin. </p> </section>
+<section id="GUID-3132C68A-4A30-51FD-9259-9425E3E5B5AE"><title>Overlay</title> <p> <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> extension
+to Image Transform framework allows lossless overlay or blend of images. Examples
+of the use of <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> include adding
+timestamp or place-stamp, some text or inserting a company logo. The images
+below show an example of overlay functionality: </p> <fig id="GUID-BA901C57-D744-5353-8B25-2195EA084016">
+<image href="GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e303526_href.jpg" placement="inline"/>
+</fig> <p>The image overlay transformation can, depending on its implementation,
+be very fast eliminating the need to decode the whole image making it very
+useful, for example a camera application. The types of image that can be overlaid
+onto the main JPEG image can be discovered through the extension. It is also
+possible to overlay a <codeph>CFbsBitmap</codeph>. If you need transparency,
+then you have to choose an image format supporting a transparency channel
+such as PNG. </p> <p>When you require an Image Transform plugin which supports
+the Overlay extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-198CAB14-A6CB-3D51-9404-C4DED1DCF215"><apiname>CImageTransform::EOverlay()</apiname></xref>.
+The client must get the COverlayTransformExtension extension and use this
+to set up the required transformation. The client can control the desired
+position for overlay, and the transparency for image. The example below show
+the successful setup for <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension</apiname></xref> with
+the JPEG image overlaid by an image at (0,0) position co-ordinates: </p> <codeblock id="GUID-648E2DC3-9BA2-59D3-88DA-3E9C31BC3F18" xml:space="preserve">
+
+    // Create the image transform
+    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
+    CleanupStack::PushL(imageTransform);
+
+    // Setup the image transform
+    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
+    imageTransform-&gt;SetDestFilenameL(aDestFileName);
+    imageTransform-&gt;SetTransformationsL(CImageTransform::EOverlay);
+    imageTransform-&gt;SetupL();
+
+    // Get the extension plugin supporting overlay
+    TUid lOverlayUid = {KUidOverlayTransformExtension    };
+    TInt err = KErrNone;
+    COverlayTransformExtension * lOverlayExt = static_cast&lt; COverlayTransformExtension *&gt;
+ (imageTransform-&gt;Extension(lOverlayUid, err));
+
+    // Check here whether the plugin supports this extension or not Set the position on 
+ //  the plugin
+    lOverlayExt-&gt;Position(TPoint(0,0));
+
+    // Set the overlay file and its type
+    lOverlayExt-&gt;SetOverlayFileL(aOverlayFileName, KImageTypeJPGUid);
+
+    // Perform the transformation
+    imageTransform-&gt;Transform(aStatus);
+
+    // CImageTransform::Transform() is an asynchronous function
+    // and the result of the transformation would be known in the
+    // RunL() function of the active object associated with the aStatus
+
+</codeblock> </section>
+<section id="GUID-AAD925E2-9450-5ADC-B2D2-FF106392FC4C"><title>Squeeze</title> <p>The <xref href="GUID-1B022316-410D-328C-AFB2-E3A339E1609B.dita"><apiname>CSqueezeTransformExtension()</apiname></xref> extension
+to the Image Transform framework allows, </p> <ul>
+<li id="GUID-485ED69C-7895-5B8F-B2DC-D8A165F74D59"><p>Auto-resize </p> </li>
+<li id="GUID-8DDD9BE0-F079-5F6F-B4D7-26DC45170BEC"><p>Squeeze. </p> </li>
+</ul> <p>A auto-resize adjusts the image size and encoding quality to achieve
+a desired file size. If the file size requirement has not been met, then you
+can use squeeze to compress the image even further. The JPEG squeeze module
+is a convenient tool when creating MMS. </p> <p>When you require an Image
+Transform plugin which supports the Squeeze extension, call <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-141A948E-6070-335D-B0B2-1F4AD283EC1A"><apiname>CImageTransform::SetTransformationsL()</apiname></xref> or <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita#GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4/GUID-FC837A02-243D-3A5B-A81D-63802678F6C6"><apiname>CImageTransform::ESqueeze()</apiname></xref>. </p> <p>Squeezing an image can be accomplished through: </p> <codeblock id="GUID-12A6E7C4-8627-5ACC-8692-64F247FB518D" xml:space="preserve">
+
+IMPORT_C void CSqueezeTransformExtension::SetDestSizeInBytes(TUint aMaxDestDataSize ) ;
+
+</codeblock> <p>Or </p> <codeblock id="GUID-97A7CE4F-A227-51EE-B8E6-CC04C5A2491A" xml:space="preserve">
+    IMPORT_C void SetAdvancedSqueezeModeL(TAdvancedSqueezeParams* aSqueezeAutoResizeParams ) ;
+</codeblock> <p>In the latter case can be made through the use of <xref href="GUID-4372B86B-111B-3B9E-838A-511D247846D4.dita#GUID-4372B86B-111B-3B9E-838A-511D247846D4/GUID-15AB4D19-1FDE-3D29-AED2-7776E3E08C10"><apiname>TAdvancedSqueezeParams::TAutoResizeAction</apiname></xref>.
+The enumeration to do auto resize are, </p> <ul>
+<li id="GUID-3240A4EE-6904-536C-BA05-5995738CE048"><p> <xref href="GUID-DAEB147E-2A50-30F5-85C8-863DC8C21AF7.dita"><apiname>         
+       EAutoResizeActionPreserveSourceEncodingQuality</apiname></xref> for preserving
+the source encoding quality while shrinking the width and height of the image </p> </li>
+<li id="GUID-B29AE145-B946-59CD-879E-6F77F0E48563"><p> <xref href="GUID-EAF60EAB-3E65-34AE-BD3F-C32BA331BCEE.dita"><apiname> EAutoResizeActionPrioritizeLargeImageSize</apiname></xref> for
+preserving the maxImageSize while lowering the encoding quality </p> </li>
+<li id="GUID-2B98FA22-2853-5DB0-B9A2-7B2BC6080522"><p> <xref href="GUID-EAF42079-109B-36E7-940F-C10C10743E31.dita"><apiname>EAutoResizeActionResizePrioritizeHighEncodingQuality</apiname></xref> for
+preserving the highest possible encoding quality while shrinking the width
+and height of the image </p> </li>
+<li id="GUID-3848F63C-D0CF-5888-BC68-127AA29DFE81"><p> <xref href="GUID-D8807BBD-5EAE-3BBE-B408-5841D7554287.dita"><apiname>EAutoResizeActionMiddleCourse</apiname></xref> for
+simultaneously lower the encoding quality and shrink the width and height
+of the image. </p> </li>
+</ul> <p>These settings are used by the auto resize to determine size and
+encoding quality for the new image file. </p> <p>The JPEG squeeze enblaes
+images to be set to a enblaes pre-defined size. This is useful if storage
+size is critical or if there are limitations when sending images i.e. MMS
+file size. The dimensions of the image are preserved; the JPEG compression
+ratio being changed to maintain the image size. </p> <p> <b>Note:</b> The
+JPEG squeeze functionality must be used with care. Drastically decreasing
+file size will result in poor image quality. </p> <p>In the below example,
+the JPEG image is squeezed to get a file size less than the specified maxium
+size: </p> <codeblock id="GUID-9E529BC6-0042-5EBE-A5AE-8F2ADAA8E4D8" xml:space="preserve">
+
+    // Create the image transform
+    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
+    CleanupStack::PushL(imageTransform);
+    // Setup the image transform
+    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
+    imageTransform-&gt;SetDestFilenameL(aDestFileName);
+    imageTransform-&gt;SetTransformationsL(CImageTransform::ESqueeze);
+    imageTransform-&gt;SetupL();
+    // Get the extension plugin supporting squeeze
+    TUid lSqueezeUid = {KUidSqueezeTransformExtension    };
+    TInt err = KErrNone;
+    CSqueezeTransformExtension * lSqueezeExt = static_cast&lt; CSqueezeTransformExtension*&gt;
+(imageTransform-&gt;Extension(lSqueezeUid, err));
+    // Check here whether the plugin supports this extension or not
+    // Set the max dest size in bytes    
+    lSqueezeExt-&gt; SetDestSizeInBytes(aMaxSizeInBytes);
+    // Perform the transformation
+    imageTransform-&gt;Transform(aStatus);
+    // CImageTransform::Transform() is an asynchronous function
+    // and the result of the transformation would be known in the
+    // RunL() function of the active object associated with the aStatus
+
+</codeblock> <p>The example code below show how the JPEG squeeze image is
+used to make an image fulfill the MMS ‘Image Rich’ class constraints, i.e.
+file size less than 100k bytes and image size no more than 640*480 pixels. </p> <codeblock id="GUID-C04CB828-3307-5079-91CD-BEA7A15F0215" xml:space="preserve">
+
+    // Create the image transform
+    CImageTransform* imageTransform = CImageTransform::NewL(iFs);
+    CleanupStack::PushL(imageTransform);
+    // Setup the image transform
+    imageTransform-&gt;SetSourceFilenameL(aSrcFileName);
+    imageTransform-&gt;SetDestFilenameL(aDestFileName);
+    imageTransform-&gt;SetTransformationsL(CImageTransform::ESqueeze);
+    imageTransform-&gt;SetupL();
+    // Get the extension plugin supporting squeeze
+    TUid lSqueezeUid = {KUidSqueezeTransformExtension    };
+    TInt err = KErrNone;
+    CSqueezeTransformExtension * lSqueezeExt = static_cast&lt; CSqueezeTransformExtension*&gt;
+(imageTransform-&gt;Extension(lSqueezeUid, err));
+    TInt res = KErrNone;
+    TInt newSize = 0;
+    TAdvancedSqueezeParams info ;
+
+    // MMS Image Rich
+    info.iMaxDestSizeInBytes = 100000;
+    info.iMaxImageSize.iWidth = 640;
+    info.iMaxImageSize.iHeight = 480;
+    info.iMinImageSize. iWidth = 160;
+    info.iMinImageSize. iHeight = 120;
+    info.iResizeAction = EAutoResizeActionPrioritizeLargeImageSize;
+    info.iMinEncodingQuality = 0.5f;
+    info.iSamplingUid = KUidSamplingColor420;
+    lSqueezeExt-&gt;SetAdvancedSqueezeModeL(&amp;info);
+    // Perform the transformation
+    imageTransform-&gt;Transform(aStatus);
+    // CImageTransform::Transform() is an asynchronous function
+    // and the result of the transformation would be known in the
+    // RunL() function of the active object associated with the aStatus
+
+</codeblock> </section>
+
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e337751_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E8F1999-4DE0-5CA0-9656-C54127FDB3D4_d0e343948_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e230483_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E907968-E6F8-5792-9B04-664971762FFF_d0e234220_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53-master.png has changed
Binary file Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e52050_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8E995178-F3F2-4391-B99D-7A3451880F53_d0e75139_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8EAF5A96-EB48-4A58-82D7-0583A22A51D0" xml:lang="en"><title>Information
-pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Information pop-up notes are used to provide additional information to
-the user, most typically regarding a focused item. Although the Information
-pop-up can be used in various applications and components, it should not be
-used too frequently as constantly appearing and disappearing notes may disturb
-smooth user experience.</p>
-<p>The Information pop-up does not have focus, its content cannot be scrolled,
-and the control always remains in the main pane. The maximum number of rows
-in the Information pop-up is four. In a typical case, the pop-up emerges one
-second after the user has taken the focus on an item but has not made any
-further actions. The pop-up is timed so that it (typically) remains visible
-for ten seconds or until some event interrupts it. Time-outs are application-specific
-and variation is possible.</p>
-<fig id="GUID-F7BBCA95-5754-44C1-9CCF-3A5B837E98B5">
-<title>Information pop-up related to the focused day</title>
-<image href="GUID-1D399C05-6CC0-4781-A6E1-1C94CFF8995B_d0e67264_href.png" placement="inline"/>
-</fig>
-<section id="GUID-7B349F1D-0D04-483A-895A-24B5EC12A902"><title>Using
-information pop-ups in C++ applications</title><p>The API to use for the information
-pop-up is the <xref format="html" href="specs/guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer">Info pop-up API</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e307907_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e314301_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e149865_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8EE8E38C-7CA1-5F1B-86D0-1A0B03AAC5F2_d0e156386_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e337871_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e344068_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA" xml:lang="en"><title>Displaying
-commands in a context menu </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To use a stylus pop-up menu in your application, implement the following
-use cases: </p>
-<ul>
-<li><p><xref href="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita">Creating stylus
-pop-up menu</xref> </p></li>
-<li><p><xref href="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita">Handling stylus
-pop-up menu events and commands</xref></p></li>
-<li><p><xref href="GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24.dita">Handling user
-command selection</xref></p></li>
-<li><p><xref href="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita">Showing and
-hiding stylus pop-up menu</xref></p></li>
-<li><p><xref href="GUID-7B863846-7666-4FBF-90B2-52F847710C45.dita">Adding and removing
-menu items</xref></p></li>
-</ul>
-<p><draft-comment time="2008-05-15T13:43" translate="no">We need to provide more clarity
-on the required order of implementing the use cases and clarify whether there
-are alternative approaches for achieving the same results.</draft-comment></p>
-<p>The following use cases are optional, allowing you to set additional properties
-for your stylus pop-up menu: </p>
-<ul>
-<li><p><xref href="GUID-D932955F-30AA-40C7-9653-63E48C38BECB.dita">Setting stylus
-pop-up menu position</xref></p></li>
-<li><p><xref href="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita">Hiding and showing
-stylus pop-up menu items</xref></p></li>
-</ul>
-<section><title>Implementation file</title><p>The implementation file for
-the Stylus pop-up menu API is <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/aknstyluspopupmenu_8h-source.html" format="application/java-archive"><codeph>aknstyluspopupmenu.h</codeph></xref>.</p></section>
-</conbody><related-links>
-<link href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita"><linktext>Stylus pop-up
-menu API description</linktext></link>
-<link href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita"><linktext>Look and
-feel guidelines for the stylus pop-up menu</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA" xml:lang="en"><title>Displaying
+commands in a stylus pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To use a stylus pop-up menu in your application, implement the following
+use cases: </p>
+<ul>
+<li><p><xref href="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita">Creating stylus
+pop-up menu</xref> </p></li>
+<li><p><xref href="GUID-405F7AB8-0F0E-4171-95E6-3524D76917DE.dita">Handling stylus
+pop-up menu events and commands</xref></p></li>
+<li><p><xref href="GUID-2045A3D6-88DB-41ED-905B-079A8DC35E24.dita">Handling user
+command selection</xref></p></li>
+<li><p><xref href="GUID-4A66B46E-8A23-42E4-ADAD-B124A36B180A.dita">Showing and
+hiding stylus pop-up menu</xref></p></li>
+<li><p><xref href="GUID-7B863846-7666-4FBF-90B2-52F847710C45.dita">Adding and removing
+menu items</xref></p></li>
+</ul>
+<p><draft-comment time="2008-05-15T13:43" translate="no">We need to provide more clarity
+on the required order of implementing the use cases and clarify whether there
+are alternative approaches for achieving the same results.</draft-comment></p>
+<p>The following use cases are optional, allowing you to set additional properties
+for your stylus pop-up menu: </p>
+<ul>
+<li><p><xref href="GUID-D932955F-30AA-40C7-9653-63E48C38BECB.dita">Setting stylus
+pop-up menu position</xref></p></li>
+<li><p><xref href="GUID-494AF38D-CE0C-4B4C-BE44-2FC7482F4B7B.dita">Hiding and showing
+stylus pop-up menu items</xref></p></li>
+</ul>
+<section id="GUID-2A041837-914E-4117-A1C5-E975B738EC63"><title>Implementation
+file</title><p>The implementation file for the Stylus pop-up menu API is <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/aknstyluspopupmenu_8h-source.html" format="application/java-archive"><codeph>aknstyluspopupmenu.h</codeph></xref>.</p></section>
+</conbody><related-links>
+<link href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita"><linktext>Stylus pop-up
+menu API description</linktext></link>
+<link href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita"><linktext>Look and
+feel guidelines for the stylus pop-up menu</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,121 +1,121 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8F1567B4-6957-5B93-9499-35489AD610F5" xml:lang="en"><title>Chunks</title><shortdesc>Chunks map RAM or memory-mapped I/O devices into contiguous virtual
-addresses.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> A chunk consists of a <i>reserved</i> region and a <i>committed</i> region.
-The reserved region is the contiguous set of virtual addresses accessible
-to running code. The committed region is the region in which RAM (or memory-mapped
-I/O) is actually mapped. The size of a chunk is dynamically alterable, allowing
-the committed region to vary in size from zero up to the reserved region size,
-in integer multiples of the processor page size. This allows processes to
-obtain more memory on demand. Generally the committed region starts at the
-bottom of the reserved region. </p>
-<p>A chunk also has a maximum size, which is defined when the chunk is created.
-The reserved region can be smaller than this maximum size, but it can also
-be made bigger by reallocating it. The reserved region cannot be made bigger
-than the maximum size. </p>
-<p>The size of the reserved region of a chunk is always an integer multiple
-of the virtual address range of a single entry in the processor page directory
-(PDE size). This means that the reserved region of a chunk is mapped by a
-number of consecutive page directory entries (PDEs). Any given PDE maps part
-of the reserved region of at most one chunk. </p>
-<p>Symbian platform has a number of chunk types, but for user side code, the
-chunks of interest are <i>User chunks</i> and <i>Shared chunks</i>. </p>
-<p>A chunk is a kernel side entity, and like all other kernel side entities,
-it is accessed from the user side using a handle, an instance of the <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> class.
-The concept of <i>local</i> and <i>global</i> also applies to chunks. </p>
-<ul>
-<li id="GUID-8F4C6D46-8A0D-582F-9CA3-B6E256A32A04"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-F16E4C51-975B-58D6-808B-A865389AEF08">User chunks</xref>  </p> </li>
-<li id="GUID-FF713424-EAAA-576A-8559-5DC69FCE92DB"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33">Shared chunks</xref>  </p> </li>
-<li id="GUID-DE72ABC0-787D-5CB9-90B8-E5B9CA230105"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-8E371955-C475-5980-A04F-B33EAADE1B1B">Local and global chunks</xref>  </p> </li>
-</ul>
-<section id="GUID-F16E4C51-975B-58D6-808B-A865389AEF08"><title>User chunks</title> <p>On
-systems with an MMU, Symbian platform provides three types of user chunks.
-Each type is characterised by having a different subset of the reserved address
-range containing committed memory: </p> <ul>
-<li id="GUID-7466E379-0AEE-5302-B553-D2983612B0E7"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F">Normal chunks</xref>  </p> </li>
-<li id="GUID-12C654CE-8608-55AB-A8F9-D261E5286521"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44">Double-ended chunks</xref> </p> </li>
-<li id="GUID-26A7095A-36D4-508A-A2EB-6525540B5C3F"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-230B66B1-7FD8-5944-9284-354C7564156B">Disconnected chunks</xref>  </p> </li>
-</ul> <p id="GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F"><b>Normal chunks</b> </p> <p>These
-chunks have a committed region consisting of a single contiguous range starting
-at the chunk's base address and a size that is a multiple of the MMU page
-size. The following diagram is an example of this kind of chunk: </p> <fig id="GUID-BD64E013-2750-5298-8C5A-8DAC9AB30E14">
-<title>Normal chunks</title>
-<image href="GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e243804_href.png" placement="inline"/>
-</fig> <p id="GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44"><b>Double-ended chunks</b> </p> <p>These
-chunks have a committed region consisting of a single contiguous range starting
-at arbitrary lower and upper endpoints within the reserved region. The only
-condition is that the lower and upper endpoints must be a multiple of the
-MMU page size. Both the bottom and top of the committed region can be altered
-dynamically. The following diagram shows an example of this kind of chunk: </p> <fig id="GUID-62D7BB5C-3BF1-5AA1-88A2-45D09D8684C9">
-<title>Double-ended chunks</title>
-<image href="GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e243820_href.png" placement="inline"/>
-</fig> <p id="GUID-230B66B1-7FD8-5944-9284-354C7564156B"><b>Disconnected chunks</b> </p> <p>These
-chunks have a committed region consisting of an arbitrary set of MMU pages
-within the reserved region. Each page-sized address range within the reserved
-region starting on a page boundary can be committed independently. The following
-diagram shows an example of this kind of chunk: </p> <fig id="GUID-13C9EED8-9C28-5289-A558-378DE49A0DAF">
-<title>Disconnected chunks</title>
-<image href="GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e243836_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33"><title>Shared chunks</title> <p>A
-shared chunk is a mechanism that allows kernel-side code to share memory buffers
-safely with user-side code. By kernel-side code, we usually mean device driver
-code. </p> <p>The main points to note about shared chunks are: </p> <ul>
-<li id="GUID-256C4B04-4B8E-5FDF-AF3B-703936BB2674"><p>They can only be created
-and destroyed by device drivers. It is typical behaviour for user-side code,
-which in this context we refer to as the client of the device driver, to pass
-a request to the device driver to open a handle to a shared chunk. This causes
-the device driver to open a handle to the chunk and return the handle <i>value</i> to
-the client. Successful handle creation also causes the chunk's memory to be
-mapped into the address space of the process to which the client's thread
-belongs. Note, however, that it is the driver that dictates exactly when the
-chunk itself is created, and when memory is committed. The precise protocol
-depends on the design of the driver; you need to refer to that driver's documentation
-for programming guidance. </p> </li>
-<li id="GUID-8FACA759-AE5C-5723-A01C-4E39B50B55C0"><p>Like all kernel side
-objects, a shared chunk is reference counted. This means that it remains in
-existence for as long as the reference count is greater than zero. Once all
-opened references to the shared chunk have been <i>closed</i>, regardless
-of whether the references are user-side, or kernel-side, then it is destroyed. </p> </li>
-<li id="GUID-FD61FB5B-E0E8-52B2-8DE0-1E9425B28C2F"><p>User-side code that
-has gained access to a shared chunk from one device driver can pass this to
-a second device driver. The second device driver must <i>open</i> the chunk
-before it can be used. </p> </li>
-<li id="GUID-989692D2-60C2-5B71-879F-6C4A9C7F348B"><p>More than one user side
-application can access the data in a shared chunk. A handle to a shared chunk
-can be passed from one process to another process using standard handle passing
-mechanisms. In practice, handles would be passed in a client-server context,
-either from client to server or from server to client using inter-process
-communication (IPC). </p> </li>
-<li id="GUID-20FF4363-CC7D-5CFB-863C-420A16362B21"><p>Processes that share
-data inside a chunk should communicate the location of that data as an offset
-from the start of the chunk, and <i>not</i> as an absolute address. The shared
-chunk may appear at different addresses within the address spaces of different
-user processes. </p> </li>
-</ul> </section>
-<section id="GUID-8E371955-C475-5980-A04F-B33EAADE1B1B"><title>Local and global
-chunks</title> <p><b>Local chunks </b> </p> <p>A chunk is local when it is private to the process
-creating it and is not intended for access by other user processes. </p> <p>A
-local chunk cannot be mapped into any other process and is, therefore, used
-for memory that does not need to be shared. </p> <p>A local chunk does not
-have a name. </p> <p><b>Global chunks </b> </p> <p>A chunk is global if it is intended to be accessed
-by other processes. </p> <p>Global chunks have names that can be used to identify
-the chunk to another process wishing to access it. A process can open a global
-chunk by name; this maps the chunk into that process's address space, allowing
-direct access and enabling the sharing of data between processes. </p> <p>If
-the name of the global chunk to be opened is known, use <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-A6557BEE-D545-362E-AD00-A23DC64D5CEE"><apiname>RChunk::OpenGlobal()</apiname></xref>.
-If a part of the name is known, use the <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-BE5915FF-4C43-30D8-A6E3-45C33973CD9D"><apiname>RChunk::Open()</apiname></xref> variant
-that takes a <xref href="GUID-DA41F070-0E54-3F8A-B301-39A0C6AFAB38.dita"><apiname>TFindChunk</apiname></xref>. </p> <p>A process can only access
-an unnamed global chunk if it is passed a handle to that chunk from another
-process. See <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-BE5915FF-4C43-30D8-A6E3-45C33973CD9D"><apiname>RChunk::Open()</apiname></xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8F1567B4-6957-5B93-9499-35489AD610F5" xml:lang="en"><title>Chunks</title><shortdesc>Chunks map RAM or memory-mapped I/O devices into contiguous virtual
+addresses.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> A chunk consists of a <i>reserved</i> region and a <i>committed</i> region.
+The reserved region is the contiguous set of virtual addresses accessible
+to running code. The committed region is the region in which RAM (or memory-mapped
+I/O) is actually mapped. The size of a chunk is dynamically alterable, allowing
+the committed region to vary in size from zero up to the reserved region size,
+in integer multiples of the processor page size. This allows processes to
+obtain more memory on demand. Generally the committed region starts at the
+bottom of the reserved region. </p>
+<p>A chunk also has a maximum size, which is defined when the chunk is created.
+The reserved region can be smaller than this maximum size, but it can also
+be made bigger by reallocating it. The reserved region cannot be made bigger
+than the maximum size. </p>
+<p>The size of the reserved region of a chunk is always an integer multiple
+of the virtual address range of a single entry in the processor page directory
+(PDE size). This means that the reserved region of a chunk is mapped by a
+number of consecutive page directory entries (PDEs). Any given PDE maps part
+of the reserved region of at most one chunk. </p>
+<p>Symbian platform has a number of chunk types, but for user side code, the
+chunks of interest are <i>User chunks</i> and <i>Shared chunks</i>. </p>
+<p>A chunk is a kernel side entity, and like all other kernel side entities,
+it is accessed from the user side using a handle, an instance of the <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita"><apiname>RChunk</apiname></xref> class.
+The concept of <i>local</i> and <i>global</i> also applies to chunks. </p>
+<ul>
+<li id="GUID-8F4C6D46-8A0D-582F-9CA3-B6E256A32A04"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-F16E4C51-975B-58D6-808B-A865389AEF08">User chunks</xref>  </p> </li>
+<li id="GUID-FF713424-EAAA-576A-8559-5DC69FCE92DB"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33">Shared chunks</xref>  </p> </li>
+<li id="GUID-DE72ABC0-787D-5CB9-90B8-E5B9CA230105"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-8E371955-C475-5980-A04F-B33EAADE1B1B">Local and global chunks</xref>  </p> </li>
+</ul>
+<section id="GUID-F16E4C51-975B-58D6-808B-A865389AEF08"><title>User chunks</title> <p>On
+systems with an MMU, Symbian platform provides three types of user chunks.
+Each type is characterised by having a different subset of the reserved address
+range containing committed memory: </p> <ul>
+<li id="GUID-7466E379-0AEE-5302-B553-D2983612B0E7"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F">Normal chunks</xref>  </p> </li>
+<li id="GUID-12C654CE-8608-55AB-A8F9-D261E5286521"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44">Double-ended chunks</xref> </p> </li>
+<li id="GUID-26A7095A-36D4-508A-A2EB-6525540B5C3F"><p> <xref href="GUID-8F1567B4-6957-5B93-9499-35489AD610F5.dita#GUID-8F1567B4-6957-5B93-9499-35489AD610F5/GUID-230B66B1-7FD8-5944-9284-354C7564156B">Disconnected chunks</xref>  </p> </li>
+</ul> <p id="GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F"><b>Normal chunks</b> </p> <p>These
+chunks have a committed region consisting of a single contiguous range starting
+at the chunk's base address and a size that is a multiple of the MMU page
+size. The following diagram is an example of this kind of chunk: </p> <fig id="GUID-BD64E013-2750-5298-8C5A-8DAC9AB30E14">
+<title>Normal chunks</title>
+<image href="GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e240067_href.png" placement="inline"/>
+</fig> <p id="GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44"><b>Double-ended chunks</b> </p> <p>These
+chunks have a committed region consisting of a single contiguous range starting
+at arbitrary lower and upper endpoints within the reserved region. The only
+condition is that the lower and upper endpoints must be a multiple of the
+MMU page size. Both the bottom and top of the committed region can be altered
+dynamically. The following diagram shows an example of this kind of chunk: </p> <fig id="GUID-62D7BB5C-3BF1-5AA1-88A2-45D09D8684C9">
+<title>Double-ended chunks</title>
+<image href="GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e240083_href.png" placement="inline"/>
+</fig> <p id="GUID-230B66B1-7FD8-5944-9284-354C7564156B"><b>Disconnected chunks</b> </p> <p>These
+chunks have a committed region consisting of an arbitrary set of MMU pages
+within the reserved region. Each page-sized address range within the reserved
+region starting on a page boundary can be committed independently. The following
+diagram shows an example of this kind of chunk: </p> <fig id="GUID-13C9EED8-9C28-5289-A558-378DE49A0DAF">
+<title>Disconnected chunks</title>
+<image href="GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e240099_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33"><title>Shared chunks</title> <p>A
+shared chunk is a mechanism that allows kernel-side code to share memory buffers
+safely with user-side code. By kernel-side code, we usually mean device driver
+code. </p> <p>The main points to note about shared chunks are: </p> <ul>
+<li id="GUID-256C4B04-4B8E-5FDF-AF3B-703936BB2674"><p>They can only be created
+and destroyed by device drivers. It is typical behaviour for user-side code,
+which in this context we refer to as the client of the device driver, to pass
+a request to the device driver to open a handle to a shared chunk. This causes
+the device driver to open a handle to the chunk and return the handle <i>value</i> to
+the client. Successful handle creation also causes the chunk's memory to be
+mapped into the address space of the process to which the client's thread
+belongs. Note, however, that it is the driver that dictates exactly when the
+chunk itself is created, and when memory is committed. The precise protocol
+depends on the design of the driver; you need to refer to that driver's documentation
+for programming guidance. </p> </li>
+<li id="GUID-8FACA759-AE5C-5723-A01C-4E39B50B55C0"><p>Like all kernel side
+objects, a shared chunk is reference counted. This means that it remains in
+existence for as long as the reference count is greater than zero. Once all
+opened references to the shared chunk have been <i>closed</i>, regardless
+of whether the references are user-side, or kernel-side, then it is destroyed. </p> </li>
+<li id="GUID-FD61FB5B-E0E8-52B2-8DE0-1E9425B28C2F"><p>User-side code that
+has gained access to a shared chunk from one device driver can pass this to
+a second device driver. The second device driver must <i>open</i> the chunk
+before it can be used. </p> </li>
+<li id="GUID-989692D2-60C2-5B71-879F-6C4A9C7F348B"><p>More than one user side
+application can access the data in a shared chunk. A handle to a shared chunk
+can be passed from one process to another process using standard handle passing
+mechanisms. In practice, handles would be passed in a client-server context,
+either from client to server or from server to client using inter-process
+communication (IPC). </p> </li>
+<li id="GUID-20FF4363-CC7D-5CFB-863C-420A16362B21"><p>Processes that share
+data inside a chunk should communicate the location of that data as an offset
+from the start of the chunk, and <i>not</i> as an absolute address. The shared
+chunk may appear at different addresses within the address spaces of different
+user processes. </p> </li>
+</ul> </section>
+<section id="GUID-8E371955-C475-5980-A04F-B33EAADE1B1B"><title>Local and global
+chunks</title> <p><b>Local chunks </b> </p> <p>A chunk is local when it is private to the process
+creating it and is not intended for access by other user processes. </p> <p>A
+local chunk cannot be mapped into any other process and is, therefore, used
+for memory that does not need to be shared. </p> <p>A local chunk does not
+have a name. </p> <p><b>Global chunks </b> </p> <p>A chunk is global if it is intended to be accessed
+by other processes. </p> <p>Global chunks have names that can be used to identify
+the chunk to another process wishing to access it. A process can open a global
+chunk by name; this maps the chunk into that process's address space, allowing
+direct access and enabling the sharing of data between processes. </p> <p>If
+the name of the global chunk to be opened is known, use <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-A6557BEE-D545-362E-AD00-A23DC64D5CEE"><apiname>RChunk::OpenGlobal()</apiname></xref>.
+If a part of the name is known, use the <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-BE5915FF-4C43-30D8-A6E3-45C33973CD9D"><apiname>RChunk::Open()</apiname></xref> variant
+that takes a <xref href="GUID-DA41F070-0E54-3F8A-B301-39A0C6AFAB38.dita"><apiname>TFindChunk</apiname></xref>. </p> <p>A process can only access
+an unnamed global chunk if it is passed a handle to that chunk from another
+process. See <xref href="GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07.dita#GUID-326A2F4D-0E99-31C0-A35D-E8BF45913F07/GUID-BE5915FF-4C43-30D8-A6E3-45C33973CD9D"><apiname>RChunk::Open()</apiname></xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402513_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402675_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e323093_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8F29E5C9-0EEA-569C-ADB2-82FD61D87378_d0e329250_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e193631_href.png has changed
Binary file Symbian3/SDK/Source/GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e198639_href.png has changed
--- a/Symbian3/SDK/Source/GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,124 +1,120 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265" xml:lang="en"><title>Generic
-button</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Button is a generic component, which may have touch down and release and/or
-touch down and hold functionality. Touch down and hold can be interpreted
-as touch down and hold or key repeat. Generic buttons can be placed, for example,
-inside the toolbar. </p>
-<p>The generic button can have the following properties:<ul>
-<li><p><b>ON/OFF button</b> - it can be used for active/inactive type of functions
-such as Loudspeaker or Font italics.</p></li>
-<li><p><b>Mode toggle button</b> - can be used for switching between several
-modes as in Flash.</p></li>
-<li><p><b>Command button</b> - it offers direct action (functions/view access)
-such as Send or New contact with a button press feedback. </p></li>
-</ul> </p>
-<p>Buttons can have the following states:<ul>
-<li><p><i>Unavailable / dimmed</i> when button function is not available</p></li>
-<li><p><i>Available and not pressed with or without focus</i> when the button
-is active but has not been pressed</p></li>
-<li><p><i>Latched down with or without focus</i>, for example, in case where
-there are many different text formatting options ON at the same time. In multiple
-mode buttons, user can switch between the different ’selected’ modes by touching
-the multiple mode button again. States change after touch release and current
-mode’s function is executed. Button states loop when the user touches those
-again</p></li>
-<li><p><i>Pressed with or without focus</i> - This state indicates to the
-user that touch down has activated the button</p></li>
-</ul></p>
-<table id="GUID-ED68DB7B-934F-4ABA-93F6-ECE636CF3760"><title>Default touch
-events for generic button</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>Button pressed effect. On down event application specific functionality.</p></entry>
-<entry><p>Graphical indication and possible tooltip </p><p>Tactile: Basic
-button effect and audio feedback is provided with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Activates the button, launches other view or event. </p><p>Button
-is latched down or set to available and non-pressed.</p></entry>
-<entry><p>Switches between down look and non-pressed look of the button.</p><p> When
-the toolbar button launches another view or event, the button does not appear
-latched down. </p><p>Tactile: Basic button effect is provided with touch release.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on a multiple mode button</p></entry>
-<entry><p>Button is pressed.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on a multiple mode button</p></entry>
-<entry><p>Current mode’s function is executed.</p><p> User can switch between
-different modes by touching the multiple mode button again. State changes
-after touch release and current mode’s functions are executed. Button states
-loop when the user touches those again.</p></entry>
-<entry><p>Tactile: Basic button effect given with touch release. No audio
-feedback given.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (also known as long tap)</p></entry>
-<entry><p>Activates the button functionality, assigned for the touch down
-and hold event. </p><p>Application specific</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold (also known as key repeat</p></entry>
-<entry><p>May or may not have key repeat functionality</p><p>Application specific</p></entry>
-<entry><p>Tactile: Basic button effect is provide with touch down. In case
-of key repeat, sensitive button effect is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move out from the button and releasing</p></entry>
-<entry><p>If the drag moves outside the container, button functionality is
-canceled with release event.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback with touch down
-is provided. No feedback with release.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move out from the button and then back before up
-event</p></entry>
-<entry><p>As in touch down and release.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided with
-touch down. If release activates a function, then basic button effect is also
-provided with touch release. No audio feedback with touch release.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move out from a button to another button and then
-releasing</p></entry>
-<entry><p>If the drag goes outside the container, button functionality is
-canceled with release event and does not activate the other button.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback with touch down.
-No feedback with release.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-6A8BFD02-3F77-4C95-BFC4-180D2DD211EF"><title>Using generic
-buttons in C++ applications</title>The API to use for creating the generic
-button component is the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
-Button API</xref>. </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265" xml:lang="en"><title>Generic
+button</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Button is a generic component, which may have touch down and release and/or
+touch down and hold functionality. Touch down and hold can be interpreted
+as touch down and hold or key repeat. Generic buttons can be placed, for example,
+inside the toolbar. </p>
+<p>The generic button can have properties such as ON/OFF button, Mode toggle
+button and Command button. For more details, see <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref>: </p>
+<fig id="GUID-3D7CD4D9-206C-462E-9C87-B7D73D39C810">
+<image href="GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e52168_href.png" placement="inline"/>
+</fig>
+<p>Buttons can have the following states:<ul>
+<li><p><i>Unavailable / dimmed</i> when button function is not available</p></li>
+<li><p><i>Available and not pressed with or without focus</i> when the button
+is active but has not been pressed</p></li>
+<li><p><i>Latched down with or without focus</i>, for example, in case where
+there are many different text formatting options ON at the same time. In multiple
+mode buttons, user can switch between the different ’selected’ modes by touching
+the multiple mode button again. States change after touch release and current
+mode’s function is executed. Button states loop when the user touches those
+again</p></li>
+<li><p><i>Pressed with or without focus</i> - This state indicates to the
+user that touch down has activated the button</p></li>
+</ul></p>
+<table id="GUID-ED68DB7B-934F-4ABA-93F6-ECE636CF3760"><title>Default touch
+events for generic button</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>Button pressed effect. On down event application specific functionality.</p></entry>
+<entry><p>Graphical indication and possible tooltip </p><p>Tactile: Basic
+button effect and audio feedback is provided with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Activates the button, launches another view or event. </p><p>Button
+is latched down or set to available and non-pressed.</p></entry>
+<entry><p>Switches between down look and non-pressed look of the button.</p><p> When
+the toolbar button launches another view or event, the button does not appear
+latched down. </p><p>Tactile: Basic button effect is provided with touch release.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on a multiple mode button.</p></entry>
+<entry><p>Button is pressed.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on a multiple mode button.</p></entry>
+<entry><p>Current mode’s function is executed.</p><p> User can switch between
+different modes by touching the multiple mode button again. State changes
+after touch release and current mode’s functions are executed. Button states
+loop when the user touches those again.</p></entry>
+<entry><p>Tactile: Basic button effect given with touch release. No audio
+feedback given.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (also known as long tap).</p></entry>
+<entry><p>Activates the button functionality, assigned for the touch down
+and hold event. </p><p>Application specific.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold (also known as key repeat).</p></entry>
+<entry><p>May or may not have key repeat functionality</p><p>Application specific.</p></entry>
+<entry><p>Tactile: Basic button effect is provide with touch down. In case
+of key repeat, sensitive button effect is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out from the button and releasing.</p></entry>
+<entry><p>If the drag moves outside the container, button functionality is
+canceled with release event.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback with touch down
+is provided. No feedback with release.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out from the button and then back before up
+event.</p></entry>
+<entry><p>As in touch down and release.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided with
+touch down. If release activates a function, then basic button effect is also
+provided with touch release. No audio feedback with touch release.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out from a button to another button and then
+releasing.</p></entry>
+<entry><p>If the drag goes outside the container, button functionality is
+canceled with release event and does not activate the another button.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback with touch down.
+No feedback with release.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-6A8BFD02-3F77-4C95-BFC4-180D2DD211EF"><title>Using generic
+buttons in applications</title>The API to use for creating the generic button
+component is the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
+Button API</xref>. </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F" xml:lang="en"><title>Changing
-the Priority</title><shortdesc>This section describes how an application (internal or third-party)
-can change its priority by using OOM Monitor APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-FD9A15E9-6313-4BD3-A52A-7E3B71D39B37-GENID-1-8-1-10-1-1-8-1-5-1-6-1-4-1-3-1"><p>An application
-which is processing a task in the background can change its priority at runtime
-to protect itself from being closed by the OOM Monitor. For example:</p><ul>
-<li><p>Music Player playing music in the background</p></li>
-<li><p>Download Manager downloading a file in the background</p></li>
-</ul><p>If an application is processing a task for the user in the background,
-the application is said to be <codeph>Busy</codeph> and the OOM Monitor must
-not close a <codeph>Busy</codeph> application. An application can declare
-itself to be <codeph>Busy</codeph> using <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-420ECF8B-970A-381A-9035-DC1FCE8B566C"><apiname>ROomMonitorSession::SetOomPriority(EOomPriorityBusy)</apiname></xref> method.
-When the application finishes its background job and becomes idle, it should
-change its priority to <codeph>Normal</codeph>.</p></context>
-<steps id="GUID-01A482C7-3004-484D-9948-B0B892E913AF-GENID-1-8-1-10-1-1-8-1-5-1-6-1-4-1-3-2">
-<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-8-1-10-1-1-8-1-5-1-6-1-4-1-3-2-1"><cmd>Create an OOM Monitor
-session</cmd>
-<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
-CleanUpClosePushL(ioomMonitorSession);
-User::LeaveIfError(ioomMonitorSession.Connect());
-</codeblock></info>
-</step>
-<step id="GUID-3033BB28-ACC5-440C-9BDB-D1BC36CD001C-GENID-1-8-1-10-1-1-8-1-5-1-6-1-4-1-3-2-2"><cmd>Set the priority
-for the application to <codeph>Busy</codeph> before performing the background
-task</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityBusy);
-DoCriticalBackgroundProcessingL();
-</codeblock></info>
-</step>
-<step id="GUID-33674FB1-56E4-46C6-B267-107A42FA3B57"><cmd>Set the priority
-for the application to <codeph>Normal</codeph> after the task is completed.</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityNormal);
-</codeblock></info>
-</step>
-<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-8-1-10-1-1-8-1-5-1-6-1-4-1-3-2-4"><cmd>Close the session.</cmd>
-<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
-</codeblock></info>
-</step>
-</steps>
-</taskbody><related-links>
-<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
-Priority</linktext></link>
-<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
-Overview</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-8F8E3814-7ED6-4218-BEEF-741AE0E9366F" xml:lang="en"><title>Changing
+the Priority</title><shortdesc>This section describes how an application (internal or third-party)
+can change its priority by using OOM Monitor APIs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-FD9A15E9-6313-4BD3-A52A-7E3B71D39B37-GENID-1-10-1-10-1-1-8-1-5-1-6-1-4-1-3-1"><p>An application
+which is processing a task in the background can change its priority at runtime
+to protect itself from being closed by the OOM Monitor. For example:</p><ul>
+<li><p>Music Player playing music in the background</p></li>
+<li><p>Download Manager downloading a file in the background</p></li>
+</ul><p>If an application is processing a task for the user in the background,
+the application is said to be <codeph>Busy</codeph> and the OOM Monitor must
+not close a <codeph>Busy</codeph> application. An application can declare
+itself to be <codeph>Busy</codeph> using <xref href="GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73.dita#GUID-02D1911A-D2E5-3D28-9B05-75DA0A75DE73/GUID-420ECF8B-970A-381A-9035-DC1FCE8B566C"><apiname>ROomMonitorSession::SetOomPriority(EOomPriorityBusy)</apiname></xref> method.
+When the application finishes its background job and becomes idle, it should
+change its priority to <codeph>Normal</codeph>.</p></context>
+<steps id="GUID-01A482C7-3004-484D-9948-B0B892E913AF-GENID-1-10-1-10-1-1-8-1-5-1-6-1-4-1-3-2">
+<step id="GUID-83631E4F-71D0-4FD2-8FD6-46689AAFA761-GENID-1-10-1-10-1-1-8-1-5-1-6-1-4-1-3-2-1"><cmd>Create an OOM Monitor
+session</cmd>
+<info><codeblock xml:space="preserve">ROomMonitorSession ioomMonitorSession;
+CleanUpClosePushL(ioomMonitorSession);
+User::LeaveIfError(ioomMonitorSession.Connect());
+</codeblock></info>
+</step>
+<step id="GUID-3033BB28-ACC5-440C-9BDB-D1BC36CD001C-GENID-1-10-1-10-1-1-8-1-5-1-6-1-4-1-3-2-2"><cmd>Set the priority
+for the application to <codeph>Busy</codeph> before performing the background
+task</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityBusy);
+DoCriticalBackgroundProcessingL();
+</codeblock></info>
+</step>
+<step id="GUID-33674FB1-56E4-46C6-B267-107A42FA3B57"><cmd>Set the priority
+for the application to <codeph>Normal</codeph> after the task is completed.</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityNormal);
+</codeblock></info>
+</step>
+<step id="GUID-5B3E8176-528F-45E7-B1CE-57ADCFAB5C6C-GENID-1-10-1-10-1-1-8-1-5-1-6-1-4-1-3-2-4"><cmd>Close the session.</cmd>
+<info><codeblock xml:space="preserve">iOomMonitorSession.Close();
+</codeblock></info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
+Priority</linktext></link>
+<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
+Overview</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e76273_href.png has changed
Binary file Symbian3/SDK/Source/GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e82985_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F"><title>Accessing and Power Control of Camera</title><shortdesc>This tutorial describes how to access camera and control its power settings using Ecam APIs: </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The purpose of the tutorial is to explain you how to use Ecam APIs to access and control power settings of a camera on a phone. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref> introduces the camera utilities. </p> <p>Camera is implemented as Ecom plug-ins, the Ecom plug-in implements <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> interface defined in <filepath>ECam.h</filepath>. When you need to create a new camera object, the Ecam library requests a camera plug-in from the ECOM framework. </p> <p><b>Introduction</b> </p> <p>Ecam is a component of the Symbian platform Multimedia subsystem that represents the Onboard Camera API. Licensees may provide customised implementation for snapshots, histogram and image processing depending on the camera mode in which it is operated. </p> </section> <section><title>Using Camera </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-1CE9E3AF-96C6-59E6-8242-798055D4FAFE"><p><xref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita#GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F/GUID-4000B2F3-A948-5C35-AE2A-804CEF1EAA8E">Accessing the Camera</xref>  </p> <p> </p> </li> <li id="GUID-8A0C2A5D-AD79-55B3-AFEF-8EB20A6E10FF"><p><xref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita#GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F/GUID-8A587F65-EDFB-5609-BE96-4869047F3E71">Power Control</xref>  </p> </li> </ul> <p id="GUID-4000B2F3-A948-5C35-AE2A-804CEF1EAA8E"><b>Accessing the Camera</b> </p> <p>The high level steps to access specific camera connected to the device are shown here: </p> <ol id="GUID-087EC84C-8EAC-5BF1-B5D7-00CDA28941B3"><li id="GUID-8FF5D72F-1719-5D2C-B301-69E547CBB391"><p>Make sure that you configure the initial settings and use <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AE298F30-D55B-3812-95A8-8BAE319C2FB6"><apiname>CCamera::CamerasAvailable()</apiname></xref> method to get the number of cameras available for usage. </p> <codeblock id="GUID-2C77F771-E42B-5E94-B6BB-C46DA34F4671" xml:space="preserve">TInt numCameras = CCamera::CamerasAvailable();
-if (numCameras &lt;= 0)
-    {
-    INFO_PRINTF2(_L("Error %d returned"), numCameras);
-    return EFail;
-    }
-INFO_PRINTF2(_L("Available cameras  %d returned"), numCameras);
-return EPass;
-</codeblock> </li> <li id="GUID-6BB8429D-3580-53A6-BD6B-797CF7F63BB1"><p>Create a new camera object using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-9EAAE04E-9C9B-357A-B73E-55574E7CA02D"><apiname>CCamera::New2L()</apiname></xref> API. </p> <codeblock id="GUID-4B290B75-289E-58F6-BCB9-D6C618C417D4" xml:space="preserve">CCamera* camera = NULL;
-MCameraObserver2* observer2L; //exists beforehand
-
-camera = CCamera::New2L(*observer2, 0, 0);
-</codeblock> </li> <li id="GUID-CBF8CF4A-A558-5D81-B4A3-9FA55A22B52C"><p>Use <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita#GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E/GUID-069D6532-4D43-3547-94BF-D0E5E6CDD78B"><apiname>Ccamera::NewDuplicate2L</apiname></xref>, if collaborative clients wants to share the same camera device. This makes sure that the client can receive unrecognised enum, UIDs and so on. </p> <p> <b>Note</b>: This is true if <xref href="GUID-94C66CB9-328A-3275-B5A9-198EC6D0DD30.dita"><apiname>New2L</apiname></xref> method instead of <xref href="GUID-E6F013A6-6413-3691-A70D-0289916ACD8A.dita"><apiname>NewL</apiname></xref> and <xref href="GUID-14200C39-1435-31B0-9768-363BD3D4331E.dita"><apiname>NewDuplicate2L</apiname></xref> method is instead of over <xref href="GUID-0DB8D81E-AEC1-364B-B404-996B35B449FD.dita"><apiname>NewDuplicateL</apiname></xref> method. </p> <codeblock id="GUID-A3E2D65F-B3A6-59DD-812E-5C940391CE1B" xml:space="preserve">CCamera* sharingCamera = NULL;
-sharingCamera = CCamera::NewDuplicate2L(*observer2, 0);</codeblock> </li> <li id="GUID-53C83699-8ACC-5F75-8F26-D6F21241DB7F"><p>Use <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-2B806D39-5C5C-357E-A4CC-240CE0C4D786"><apiname>CCamera::Reserve</apiname></xref>, an asynchronous method to gain exclusive access to a particular camera. </p> <p>Even if a camera object is created successfully based on specified camera index, the client cannot use it, if it is not reserved. </p> <ul><li id="GUID-E6677D62-D0C5-52A9-8A08-1DE41C79EA35"><p>The <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-2B806D39-5C5C-357E-A4CC-240CE0C4D786"><apiname>CCamera::Reserve</apiname></xref> call will be unsuccessful if a higher priority client is already using the camera and <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-1E3D825C-1924-3A1E-9B0F-1359504633E7"><apiname>MCameraObserver2::HandleEvent</apiname></xref> call back will return an error. </p> </li> <li id="GUID-C008313B-9AD6-5EFB-B01C-21D6ABF9EAB4"><p>Event UID <xref href="GUID-3D4AC57E-B975-3F91-A1FC-13AC526AD4A6.dita"><apiname>KUidECamEventCameraNoLongerReserved</apiname></xref> notifies that a high priority client has gained control over another client. </p> </li> </ul> </li> <li id="GUID-F8BE95D3-27CE-5323-9177-86B54F836C13"><p>Use <xref href="GUID-54A053B1-2B90-3A69-A6DD-B0A7A4B46BBA.dita"><apiname>HandleEvent()</apiname></xref> method to notify the client that the call is unsuccessful and the camera is not available. This can be due to completion of a call to <xref href="GUID-C318ACF6-1959-3BF4-9698-B7F0E228528E.dita"><apiname>Reserve()</apiname></xref>, a call to <xref href="GUID-97444FAF-67EB-3648-B4AA-22AFE912F68A.dita"><apiname>PowerOn()</apiname></xref> or a notification that the client has lost control of the camera. </p> <p>This provides a reference to a <xref href="GUID-2773C25B-19DF-38B0-84F7-CABC89F43DD2.dita"><apiname>TECAMEvent</apiname></xref> with uid <xref href="GUID-81136EE6-71EF-3D84-AD1A-B74BD3DE674E.dita"><apiname>KUidECamEventReserveComplete</apiname></xref> and error as <xref href="GUID-6CA4F1ED-7947-3087-B618-D35858FAA3BC.dita"><apiname>KErrNone</apiname></xref>. </p> <codeblock id="GUID-9A58EC65-5065-51FF-BFFA-2C32B6208545" xml:space="preserve">    void HandleEvent(const TECAMEvent&amp; aEvent); 
-void TDummyObserver::HandleEvent(const TECAMEvent&amp; /*aEvent*/)
-    {
-    return;
-    }</codeblock> </li> <li id="GUID-2E45D548-C1B0-51C7-9AF1-6113DBD5307F"><p>Use <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-635500E6-055A-36A0-8993-21BF2584A35C"><apiname>CCamera::Release()</apiname></xref> method to de-initialize and withdraw the client's access to the camera such that other clients might use it. </p> </li> </ol> <p> <b>Note</b>: Clients should not use the legacy call-back interface <xref href="GUID-F2DC0AB8-A896-3F7A-BBED-848A3F463853.dita"><apiname>MCameraObserver</apiname></xref> which is still supported. </p> <p id="GUID-8A587F65-EDFB-5609-BE96-4869047F3E71"><b>Power Control</b> </p> <p>The high level steps to control the power settings of the camera are shown here: </p> <ol id="GUID-45695F99-1C19-5D58-806C-1BF11DDDE704"><li id="GUID-33CA1CE5-72BE-58A4-AEDA-82570F448EB9"><p>Use <xref href="GUID-97444FAF-67EB-3648-B4AA-22AFE912F68A.dita"><apiname>PowerOn()</apiname></xref>, an asynchronous method, to switch on the camera, when the client gains exclusive access for the given camera. </p> <p>When power on is complete, client receives notification through <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-1E3D825C-1924-3A1E-9B0F-1359504633E7"><apiname>MCameraObserver2::HandleEvent</apiname></xref> callback with uid <xref href="GUID-0683BF83-B8F7-3582-99D8-1448B8CEA92C.dita"><apiname>KUidECamEventPowerOnComplete</apiname></xref> and the appropriate error code. If the camera is not successfully reserved, <xref href="GUID-B6FDA0AB-750D-321C-BC7E-BEDE099006EB.dita"><apiname>PowerOn</apiname></xref> will fail. </p> </li> <li id="GUID-3FEDAA32-C41C-5201-80A1-32B41CC7ACA0"><p>The callback interface is notified when power on is complete via MCameraObserver2::HandleEvent() notification. The event used is KUidECamEventPowerOnComplete. </p> <codeblock id="GUID-7EF4B115-6C98-59AC-A280-683ED4FDAF23" xml:space="preserve">void CCamMyPlugin::PowerOn()
-    {
-    }</codeblock> </li> <li id="GUID-A669B86A-8878-5634-98BF-53B80E781833"><p>Once the processing is complete, use <xref href="GUID-816450E5-A395-3220-BEA0-1C1571CACD3F.dita"><apiname>PowerOff()</apiname></xref>, a synchronous method to switch off the camera power. </p> <codeblock id="GUID-9A062705-A90E-5B09-BC1F-07B49DC7F663" xml:space="preserve">void CCamMyPlugin::PowerOff()
-    {
-    }</codeblock> </li> </ol> </section> <section><title>Miscellaneous</title> <p>This section details miscellaneous camera access and control APIsl. </p> <p><b> Reserve Status Retrieval</b> </p> <p>Licensees need to implement <xref href="GUID-36BA124F-A7BE-3449-9C00-C2F2D4F15293.dita"><apiname>MSecureIdPlugin</apiname></xref> (<filepath>ecaminfoplugin.h)</filepath> to retrieve the secure ID of the process where serialized part of the ECam implementation runs, such as Ecam server. </p> <p>Clients can retrieve the reservation status of a particular camera prior to creating an instance of the <xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref> class. This saves time, if the client is denied control to reserve the camera after creating an instance of the<xref href="GUID-4E8A5141-5E4A-322A-9892-8DC49D04986E.dita"><apiname>Ccamera</apiname></xref> class. Client needs to subscribe for receiving the reserve status by calling static method <xref href="GUID-AE32A954-5A26-367B-8F3F-99A19F93430A.dita#GUID-AE32A954-5A26-367B-8F3F-99A19F93430A/GUID-A56B25A1-B2F1-306E-952F-1FD0BA43B833"><apiname>TreservedInfo::SubscribeReserveInfoL()</apiname></xref> and this provides a reference to <xref href="GUID-104B8CDA-8F7E-3E41-BDE9-6EC5A9D7AA9C.dita"><apiname>CcameraStatusWatch</apiname></xref>. </p> <p>Symbian must provide implementation of <xref href="GUID-6C0DAE0A-F64C-3AE0-9F53-63E767E79E9B.dita"><apiname>CCameraStatusWatch</apiname></xref> class. Clients can use this to asynchronously receive the reserve status of a camera index through <xref href="GUID-FFC680A5-8BE5-355C-816E-F3B0625AC5CF.dita"><apiname>MReserveObserver</apiname></xref>. Client must implement <xref href="GUID-FFC680A5-8BE5-355C-816E-F3B0625AC5CF.dita"><apiname>MReserveObserver</apiname></xref> to handle the notifications of Reserve status and take appropriate steps accordingly. <b>Note</b>: If the client needs to unsubscribe, it must make sure to delete the <xref href="GUID-104B8CDA-8F7E-3E41-BDE9-6EC5A9D7AA9C.dita"><apiname>CcameraStatusWatch</apiname></xref> object. </p> <p>Get the reserve status of the camera using <xref href="GUID-0F901FF4-4F24-317B-9B0A-4733E0612AAF.dita"><apiname>ReserveStatus</apiname></xref> API. This can be used, when a low priority client interrupts a high priority client in a phone supporting multiple cameras. </p> </section> </conbody><related-links><link href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita"><linktext>Camera Preset Support</linktext> </link> <link href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita"><linktext> Capturing Image</linktext> </link> <link href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita"><linktext>Capturing Video</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e111104_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9022E900-2BDD-5B64-9802-4EBA5BFEB4B2_d0e117642_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e196262_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9045FC43-162E-52B8-ABE2-5EC1EC88BD99_d0e201270_href.png has changed
--- a/Symbian3/SDK/Source/GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-90644B52-69D7-595C-95E3-D6F7A30C060D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,212 +1,212 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D" xml:lang="en"><title>Font
-and Text Services Collection Overview</title><shortdesc>A font is a set of characters of matching size (height) and appearance.
-In order to be displayed each character must ultimately be drawn as a series
-of pixels (a bitmap). Symbian can store fonts in bitmap or vector form. A
-vector font (for example, an OpenType font) must be converted to bitmaps (or
-rasterized) before it can be drawn. Symbian caches and shares bitmaps for
-performance and memory efficiency. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-DB17AE5F-54E9-5288-89DB-7A38473D9C94"><p> <b>Application developers</b> can
-use Font and Text Services for selecting fonts for displaying text according
-to various criteria (size and typeface). </p> </li>
-<li id="GUID-ECFA8635-D278-5A1F-A8E8-8BADB73FE092"><p> <b> Device creators</b> can
-add fonts and font rasterizers. Fonts can be included in the ROM or installed
-on user drives. </p> </li>
-</ul>
-<section id="GUID-9F33DD34-F5E5-5EA0-8559-7A933D230129"><title>Concepts and
-terms</title> <dl>
-<dlentry>
-<dt>Points, twips and pixels</dt>
-<dd><p>Points (1/72th inch) and twips (a twentieth of a point) are absolute
-measurements of distance and specify device-independent size. Pixel sizes
-are only relevant for a specific graphics device. Each graphics device (screen
-or printer) must provide a mechanism for converting between pixels and twips. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Font</dt>
-<dd><p>A named set of characters of matching size (height) and <b>font style</b> (normal,
-bold, italic, underline). <b>Times Roman 14 point bold</b> is an example of
-a font. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Typeface</dt>
-<dd><p>A group of fonts with similar appearance. The typeface does not include
-the size or font style. <b>Times</b> is an example of a typeface. Typefaces
-are sometimes referred to as <b>font families</b>. </p> <p>Typefaces are grouped
-generically as mono-spaced, variable width, serif, sans-serif and symbol.
-This allows the grouping of typefaces that have similar characteristics, so
-that an alternative font can be selected when an exact match is not found.
-This means that applications can display text relatively accurately when a
-specific font is not available. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>OpenType font </dt>
-<dd><p>A font that is stored as vector data, which can be rasterized to any
-pixel size. OpenType fonts are sometimes simply called <b>open fonts</b>.
-An open font can only be used with a corresponding font rasterizer. The <xref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita">Font and Bitmap Server</xref> caches
-rasterized fonts into bitmap form. </p> <p>OpenType is an open source vector
-font format, which is similar to TrueType. Like TrueType fonts, OpenType fonts
-can contain font hinting information. However the font rasterizer's use of
-the font hinting information in OpenType fonts is restricted by a software
-patent. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Character</dt>
-<dd><p>A single element (such as a letter, number, ligature, symbol or punctuation
-mark) of written language. Each character has a unique number (its <xref href="http://www.unicode.org/standard/WhatIsUnicode.html" scope="external">Unicode</xref> code point). </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Glyph</dt>
-<dd><p>A graphical representation of a character in a specific font. The mapping
-between a character and a glyph is not always direct. For example, a character
-may be represented by different glyphs, depending on the context. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Font metrics</dt>
-<dd><p>Measurements (such as maximum height) that are common to all of the
-characters in a font. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Character metrics</dt>
-<dd><p>Measurements (such as character width) that apply to an individual
-character within a font. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Bitmap font</dt>
-<dd><p>A font stored as bitmap glyphs. The size of a font is described in
-pixels. However, the actual size is dependent on the pixel size of the graphics
-device. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Rasterizing</dt>
-<dd><p>The process of converting drawing instructions into bitmap data. Fonts
-provided in vector form (OpenType fonts) must be rasterized into fixed size
-fonts before they can be used. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Linked font</dt>
-<dd><p>A virtual font or typeface created from characters from other fonts.
-The component fonts must be open fonts or other linked fonts. Linked fonts
-are typically used where a preferred font does not contain all of the characters
-in the character set. One of the typefaces in a linked font must be designated
-as the principal typeface from which any unspecified default metrics or characters
-are used. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Contextual shaping</dt>
-<dd><p>In some scripts some characters are drawn differently depending on
-the adjacent characters. This means that different glyphs are used to represent
-a particular character in different contexts. Contextual shaping is the selection
-of the appropriate glyph from several glyphs that represent a particular character
-depending on the context. </p> <p>In Latin scripts, contextual shaping is
-normally used only when simulating handwriting. For example, the glyph used
-for the letter <b>p</b> might depend on whether the letter is at the start,
-middle or end of a word, as shown in the following diagram. For example, when
-it is in the middle of the word, it might have a "tail" on both sides to join
-it to the letters that appear before and after. </p> <fig id="GUID-30A9DA99-E1C5-5EE5-AEB3-0BCD6DB0A692">
-<title>                   Figure 1: Handwriting simulation might use different
-glyphs for                   the letter p depending on its position in a word
-                 </title>
-<image href="GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402675_href.png" placement="inline"/>
-</fig> <p>Contextual shaping is an essential feature of some scripts, including
-Arabic and many Indian and East Asian scripts, such as Devanagari, Kannada,
-Telugu, Tamil, Bengali, Malayalam and Gurmukhi. For this reason, support for
-contextual shaping is sometimes referred to as <b>Brahmic support</b>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Text shaper</dt>
-<dd><p>A plug-in that performs the contextual shaping for scripts that require
-this feature. Text shapers are font and language specific. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>System font</dt>
-<dd><p>A default font that is used when no font is specified. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architectural relationships</title> <p>The Font and Text Services
-components are closely integrated with the Font and Bitmap Server, GDI, BitGDI
-and Window Server components in the <xref href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita">Graphics
-package</xref>. Font size is only meaningful in the context of the current
-graphics device and its pixel size. Open fonts must be rasterized in the context
-of the current graphics device. The diagram below shows how BitGDI implements
-Graphics Devices and Contexts. </p> <fig id="GUID-36165480-E5BC-50F3-B205-5668EA7F0306">
-<title>              Figure 2: The Graphics Device and Context Architecture.
-           </title>
-<desc><p>Note that the names of the BitGDI classes begin with <codeph>CFbs</codeph>. </p> </desc>
-<image href="GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402733_href.png" placement="inline"/>
-</fig> <p>Applications access font services through the <xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Font
-and Bitmap Server (FBSERV)</xref> which caches font bitmaps in a shared heap.
-The Font and Bitmap Server ensures that there is only ever a single instance
-of a particular glyph bitmap in memory. However, eXecute In Place (XIP) ROM-based
-bitmaps (including fonts) are used in place and are not copied into the heap. </p> <p>Use
-of the Font and Bitmap Server is transparent to clients of the Window Server.
-The Window Server client session (<xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>) automatically
-creates an <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> and stores it in thread local storage
-(TLS). The Font and Bitmap Server provides two client-side classes for fonts: <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-5E287BF6-08C1-36A2-9085-F6B61CC52550.dita"><apiname>CFbsTypefaceStore</apiname></xref>. These find and use the session in TLS automatically. Clients of the Window
-Server are therefore automatically clients of the Font and Bitmap Server and
-need perform no explicit session management. </p> <p>Classes representing
-fonts, such as <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> (on the client side) and <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref> (on
-the server side), are derived from the abstract class <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref>. </p> <p>The <xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font Store</xref> lives in
-the <xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Font and Bitmap
-Server</xref> and contains all of the fonts on the device and the font rasterizers
-required to render them. The Font Store loads font files when the phone starts
-up. It scans all of the drives on the device so that new fonts can be installed
-from user drives. Font files can be loaded by the Font Store while the phone
-is running. However, font rasterizers can only be installed by restarting
-the phone. If a new font requires a font rasterizer to be installed, the phone
-must be restarted before the font can be used. </p> <p>Open font rasterizers
-are implemented as ECOM plug-ins. An open font file (represented by <xref href="GUID-FC62EDD7-A3F7-3611-A899-CA5F17BB2EEE.dita"><apiname>COpenFontFile</apiname></xref>)
-can contain one or more open fonts in proprietary vector format. A corresponding
-font rasterizer plug-in (<xref href="GUID-CA16238D-478A-302A-9671-97B62B0E738A.dita"><apiname>COpenFontRasterizer</apiname></xref>) must convert
-the vector data into bitmaps that the Font and Bitmap Server can cache and
-access using the <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref> and <xref href="GUID-039375D3-AFD9-3E31-9C1C-ACEDC10E27CE.dita"><apiname>COpenFont</apiname></xref> APIs.
-Applications use rasterized open fonts by using <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> in
-exactly the same way as native bitmap fonts. The open font framework means
-that Symbian can support any font in any format. There is a performance impact
-associated with open fonts, however, as they must be rasterized. </p> <p>Text
-shapers (<xref href="GUID-FF3DFCCC-DCFE-3DD9-B497-B96C46B4FDD1.dita"><apiname>CShaper</apiname></xref>) are used for contextual scripts, which
-require their glyphs to be modified according to the adjacent characters.
-Text shapers are font and language specific. </p> </section>
-<section><title>Components</title> <p>The Font and Text Services collection
-is made up of the following components: </p> <ul>
-<li id="GUID-0C4363B1-4340-5638-8A59-ECDF2AFFA088"><p><xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font
-Store</xref>. This manages font matching, ownership and rasterizing. </p> </li>
-<li id="GUID-AAE1BCA4-B9B4-5AD1-AC79-3308F231FCE7"><p> <xref href="GUID-75C5A614-CEC1-5832-ACEA-E3C31B8A0DE8.dita">FreeType
-Font Rasterizer</xref>. This open source plug-in rasterizes OpenType fonts.
-More information can be found at <xref href="http://www.freetype.org/" scope="external">www.freetype.org</xref>.
-This rasterizer is normally loaded by default. </p> </li>
-<li id="GUID-7EB97752-0F44-5625-8474-FDCF64654AE6"><p><xref href="GUID-DB453F9B-55B6-50C7-984D-7154F1E84AE6.dita">ICU
-Layout Engine Component</xref>. A plug-in that performs contextual shaping
-for specific scripts that require this feature. When a function, such as <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita#GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2/GUID-176B0A61-867E-35A6-AE53-0BABA48741D9"><apiname>CFbsBitGc::DrawText()</apiname></xref> draws
-text in one of these scripts, internally a text shaper is used to convert
-the string of characters into the appropriate series of glyphs. </p> </li>
-<li id="GUID-DED869DB-C45B-51A6-B594-BA1321BC272B"><p><xref href="GUID-F4C53728-B54B-5680-82FC-9A365B45F4B5.dita">Reference
-Fonts</xref>. This provides a collection of reference font files including
-bitmap and OpenType fonts. By default the Symbian platform supports the DejaVu
-OpenType typeface (which includes variable-width, monospaced, serif and sans
-serif fonts) and legacy Calculator and Agenda symbols (which are bitmap fonts). </p> </li>
-</ul> <p> <i>Note</i>: The <xref href="GUID-771AC6EC-348D-5535-9D91-5A0232BB9576.dita"> iType
-Font Rasterizer</xref> is an OpenType font rasterizer from MonoType Imaging®.
-This provides additional features compared to the FreeType font rasterizer,
-such as four color blending, which is required for outline and shadow fonts.
-This component is not provided by the Symbian Foundation because it belongs
-to Monotype. However, the Symbian platform has test cases for the four color
-blending that the iType Font Rasterizer provides. These test cases can be
-used by device creators who obtain this font rasterizer from MonoType. </p> </section>
-</conbody><related-links>
-<link href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita"><linktext>Font and
-Bitmap Server Component Overview </linktext></link>
-<link href="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita"><linktext> Font Store
-Component Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-90644B52-69D7-595C-95E3-D6F7A30C060D" xml:lang="en"><title>Font
+and Text Services Collection Overview</title><shortdesc>A font is a set of characters of matching size (height) and appearance.
+In order to be displayed each character must ultimately be drawn as a series
+of pixels (a bitmap). Symbian can store fonts in bitmap or vector form. A
+vector font (for example, an OpenType font) must be converted to bitmaps (or
+rasterized) before it can be drawn. Symbian caches and shares bitmaps for
+performance and memory efficiency. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-DB17AE5F-54E9-5288-89DB-7A38473D9C94"><p> <b>Application developers</b> can
+use Font and Text Services for selecting fonts for displaying text according
+to various criteria (size and typeface). </p> </li>
+<li id="GUID-ECFA8635-D278-5A1F-A8E8-8BADB73FE092"><p> <b> Device creators</b> can
+add fonts and font rasterizers. Fonts can be included in the ROM or installed
+on user drives. </p> </li>
+</ul>
+<section id="GUID-9F33DD34-F5E5-5EA0-8559-7A933D230129"><title>Concepts and
+terms</title> <dl>
+<dlentry>
+<dt>Points, twips and pixels</dt>
+<dd><p>Points (1/72th inch) and twips (a twentieth of a point) are absolute
+measurements of distance and specify device-independent size. Pixel sizes
+are only relevant for a specific graphics device. Each graphics device (screen
+or printer) must provide a mechanism for converting between pixels and twips. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Font</dt>
+<dd><p>A named set of characters of matching size (height) and <b>font style</b> (normal,
+bold, italic, underline). <b>Times Roman 14 point bold</b> is an example of
+a font. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Typeface</dt>
+<dd><p>A group of fonts with similar appearance. The typeface does not include
+the size or font style. <b>Times</b> is an example of a typeface. Typefaces
+are sometimes referred to as <b>font families</b>. </p> <p>Typefaces are grouped
+generically as mono-spaced, variable width, serif, sans-serif and symbol.
+This allows the grouping of typefaces that have similar characteristics, so
+that an alternative font can be selected when an exact match is not found.
+This means that applications can display text relatively accurately when a
+specific font is not available. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>OpenType font </dt>
+<dd><p>A font that is stored as vector data, which can be rasterized to any
+pixel size. OpenType fonts are sometimes simply called <b>open fonts</b>.
+An open font can only be used with a corresponding font rasterizer. The <xref href="GUID-A03FB1BF-F67B-519D-A904-74CA3F8375D9.dita">Font and Bitmap Server</xref> caches
+rasterized fonts into bitmap form. </p> <p>OpenType is an open source vector
+font format, which is similar to TrueType. Like TrueType fonts, OpenType fonts
+can contain font hinting information. However the font rasterizer's use of
+the font hinting information in OpenType fonts is restricted by a software
+patent. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Character</dt>
+<dd><p>A single element (such as a letter, number, ligature, symbol or punctuation
+mark) of written language. Each character has a unique number (its <xref href="http://www.unicode.org/standard/WhatIsUnicode.html" scope="external">Unicode</xref> code point). </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Glyph</dt>
+<dd><p>A graphical representation of a character in a specific font. The mapping
+between a character and a glyph is not always direct. For example, a character
+may be represented by different glyphs, depending on the context. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Font metrics</dt>
+<dd><p>Measurements (such as maximum height) that are common to all of the
+characters in a font. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Character metrics</dt>
+<dd><p>Measurements (such as character width) that apply to an individual
+character within a font. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Bitmap font</dt>
+<dd><p>A font stored as bitmap glyphs. The size of a font is described in
+pixels. However, the actual size is dependent on the pixel size of the graphics
+device. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Rasterizing</dt>
+<dd><p>The process of converting drawing instructions into bitmap data. Fonts
+provided in vector form (OpenType fonts) must be rasterized into fixed size
+fonts before they can be used. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Linked font</dt>
+<dd><p>A virtual font or typeface created from characters from other fonts.
+The component fonts must be open fonts or other linked fonts. Linked fonts
+are typically used where a preferred font does not contain all of the characters
+in the character set. One of the typefaces in a linked font must be designated
+as the principal typeface from which any unspecified default metrics or characters
+are used. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Contextual shaping</dt>
+<dd><p>In some scripts some characters are drawn differently depending on
+the adjacent characters. This means that different glyphs are used to represent
+a particular character in different contexts. Contextual shaping is the selection
+of the appropriate glyph from several glyphs that represent a particular character
+depending on the context. </p> <p>In Latin scripts, contextual shaping is
+normally used only when simulating handwriting. For example, the glyph used
+for the letter <b>p</b> might depend on whether the letter is at the start,
+middle or end of a word, as shown in the following diagram. For example, when
+it is in the middle of the word, it might have a "tail" on both sides to join
+it to the letters that appear before and after. </p> <fig id="GUID-30A9DA99-E1C5-5EE5-AEB3-0BCD6DB0A692">
+<title>                   Figure 1: Handwriting simulation might use different
+glyphs for                   the letter p depending on its position in a word
+                 </title>
+<image href="GUID-8F19C257-9A41-5D38-BC8A-285D0EB16E1B_d0e402513_href.png" placement="inline"/>
+</fig> <p>Contextual shaping is an essential feature of some scripts, including
+Arabic and many Indian and East Asian scripts, such as Devanagari, Kannada,
+Telugu, Tamil, Bengali, Malayalam and Gurmukhi. For this reason, support for
+contextual shaping is sometimes referred to as <b>Brahmic support</b>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Text shaper</dt>
+<dd><p>A plug-in that performs the contextual shaping for scripts that require
+this feature. Text shapers are font and language specific. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>System font</dt>
+<dd><p>A default font that is used when no font is specified. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architectural relationships</title> <p>The Font and Text Services
+components are closely integrated with the Font and Bitmap Server, GDI, BitGDI
+and Window Server components in the <xref href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita">Graphics
+package</xref>. Font size is only meaningful in the context of the current
+graphics device and its pixel size. Open fonts must be rasterized in the context
+of the current graphics device. The diagram below shows how BitGDI implements
+Graphics Devices and Contexts. </p> <fig id="GUID-36165480-E5BC-50F3-B205-5668EA7F0306">
+<title>              Figure 2: The Graphics Device and Context Architecture.
+           </title>
+<desc><p>Note that the names of the BitGDI classes begin with <codeph>CFbs</codeph>. </p> </desc>
+<image href="GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402571_href.png" placement="inline"/>
+</fig> <p>Applications access font services through the <xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Font
+and Bitmap Server (FBSERV)</xref> which caches font bitmaps in a shared heap.
+The Font and Bitmap Server ensures that there is only ever a single instance
+of a particular glyph bitmap in memory. However, eXecute In Place (XIP) ROM-based
+bitmaps (including fonts) are used in place and are not copied into the heap. </p> <p>Use
+of the Font and Bitmap Server is transparent to clients of the Window Server.
+The Window Server client session (<xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>) automatically
+creates an <xref href="GUID-E5B29AC0-4953-385F-84C5-13EE6CB77D46.dita"><apiname>RFbsSession</apiname></xref> and stores it in thread local storage
+(TLS). The Font and Bitmap Server provides two client-side classes for fonts: <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> and <xref href="GUID-5E287BF6-08C1-36A2-9085-F6B61CC52550.dita"><apiname>CFbsTypefaceStore</apiname></xref>. These find and use the session in TLS automatically. Clients of the Window
+Server are therefore automatically clients of the Font and Bitmap Server and
+need perform no explicit session management. </p> <p>Classes representing
+fonts, such as <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> (on the client side) and <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref> (on
+the server side), are derived from the abstract class <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref>. </p> <p>The <xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font Store</xref> lives in
+the <xref href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita">Font and Bitmap
+Server</xref> and contains all of the fonts on the device and the font rasterizers
+required to render them. The Font Store loads font files when the phone starts
+up. It scans all of the drives on the device so that new fonts can be installed
+from user drives. Font files can be loaded by the Font Store while the phone
+is running. However, font rasterizers can only be installed by restarting
+the phone. If a new font requires a font rasterizer to be installed, the phone
+must be restarted before the font can be used. </p> <p>Open font rasterizers
+are implemented as ECOM plug-ins. An open font file (represented by <xref href="GUID-FC62EDD7-A3F7-3611-A899-CA5F17BB2EEE.dita"><apiname>COpenFontFile</apiname></xref>)
+can contain one or more open fonts in proprietary vector format. A corresponding
+font rasterizer plug-in (<xref href="GUID-CA16238D-478A-302A-9671-97B62B0E738A.dita"><apiname>COpenFontRasterizer</apiname></xref>) must convert
+the vector data into bitmaps that the Font and Bitmap Server can cache and
+access using the <xref href="GUID-25D4B920-6158-3014-8E7D-4E1C5267C5EF.dita"><apiname>CBitmapFont</apiname></xref> and <xref href="GUID-039375D3-AFD9-3E31-9C1C-ACEDC10E27CE.dita"><apiname>COpenFont</apiname></xref> APIs.
+Applications use rasterized open fonts by using <xref href="GUID-DE966D8B-6E00-39B6-B136-6CF29EA384D3.dita"><apiname>CFbsFont</apiname></xref> in
+exactly the same way as native bitmap fonts. The open font framework means
+that Symbian can support any font in any format. There is a performance impact
+associated with open fonts, however, as they must be rasterized. </p> <p>Text
+shapers (<xref href="GUID-FF3DFCCC-DCFE-3DD9-B497-B96C46B4FDD1.dita"><apiname>CShaper</apiname></xref>) are used for contextual scripts, which
+require their glyphs to be modified according to the adjacent characters.
+Text shapers are font and language specific. </p> </section>
+<section><title>Components</title> <p>The Font and Text Services collection
+is made up of the following components: </p> <ul>
+<li id="GUID-0C4363B1-4340-5638-8A59-ECDF2AFFA088"><p><xref href="GUID-B798C19D-4030-564A-A208-D84738259D72.dita">Font
+Store</xref>. This manages font matching, ownership and rasterizing. </p> </li>
+<li id="GUID-AAE1BCA4-B9B4-5AD1-AC79-3308F231FCE7"><p> <xref href="GUID-75C5A614-CEC1-5832-ACEA-E3C31B8A0DE8.dita">FreeType
+Font Rasterizer</xref>. This open source plug-in rasterizes OpenType fonts.
+More information can be found at <xref href="http://www.freetype.org/" scope="external">www.freetype.org</xref>.
+This rasterizer is normally loaded by default. </p> </li>
+<li id="GUID-7EB97752-0F44-5625-8474-FDCF64654AE6"><p><xref href="GUID-DB453F9B-55B6-50C7-984D-7154F1E84AE6.dita">ICU
+Layout Engine Component</xref>. A plug-in that performs contextual shaping
+for specific scripts that require this feature. When a function, such as <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita#GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2/GUID-176B0A61-867E-35A6-AE53-0BABA48741D9"><apiname>CFbsBitGc::DrawText()</apiname></xref> draws
+text in one of these scripts, internally a text shaper is used to convert
+the string of characters into the appropriate series of glyphs. </p> </li>
+<li id="GUID-DED869DB-C45B-51A6-B594-BA1321BC272B"><p><xref href="GUID-F4C53728-B54B-5680-82FC-9A365B45F4B5.dita">Reference
+Fonts</xref>. This provides a collection of reference font files including
+bitmap and OpenType fonts. By default the Symbian platform supports the DejaVu
+OpenType typeface (which includes variable-width, monospaced, serif and sans
+serif fonts) and legacy Calculator and Agenda symbols (which are bitmap fonts). </p> </li>
+</ul> <p> <i>Note</i>: The <xref href="GUID-771AC6EC-348D-5535-9D91-5A0232BB9576.dita"> iType
+Font Rasterizer</xref> is an OpenType font rasterizer from MonoType Imaging®.
+This provides additional features compared to the FreeType font rasterizer,
+such as four color blending, which is required for outline and shadow fonts.
+This component is not provided by the Symbian Foundation because it belongs
+to Monotype. However, the Symbian platform has test cases for the four color
+blending that the iType Font Rasterizer provides. These test cases can be
+used by device creators who obtain this font rasterizer from MonoType. </p> </section>
+</conbody><related-links>
+<link href="GUID-71DADA82-3ABC-52D2-8360-33FAEB2E5DE9.dita"><linktext>Font and
+Bitmap Server Component Overview </linktext></link>
+<link href="GUID-416A3756-B5D5-5BCD-830E-2371C5F6B502.dita"><linktext> Font Store
+Component Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-90B58A30-8BE8-48E8-ADB2-57E8A0AD8376.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-90B58A30-8BE8-48E8-ADB2-57E8A0AD8376" xml:lang="en"><title>HDMI</title><shortdesc>This section describes HDMI functionality within the Multimedia
+subsystem.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413239_href.png has changed
Binary file Symbian3/SDK/Source/GUID-90B593E2-F38B-5B38-9367-E2BF344A2834_d0e413401_href.png has changed
--- a/Symbian3/SDK/Source/GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,101 +1,101 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-90DF40EF-7D3F-551D-9957-A3756317A254" xml:lang="en"><title>OCSP
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Online Certificate Status Protocol (OCSP) is an internet protocol that
-determines whether a given <xref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita">certificate</xref> or
-a list of certificates has been revoked, and therefore, determines whether
-the certificate can be trusted. The protocol is defined in <xref href="http://www.ietf.org/rfc/rfc2560.txt" scope="external">RFC2560</xref>. </p>
-<p>On the Symbian platform, <xref href="GUID-0AED3485-D498-57F1-9532-116EA5C8F68B.dita">Secure
-Software Install (SWI)</xref> uses OCSP to verify whether a certificate associated
-with an application to be installed has been revoked. For details of how SWI
-uses OCSP revocation check, see <xref href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita">OCSP
-SWI Integration</xref>. </p>
-<section id="GUID-F07B2071-BF8B-4D22-B6F6-1282B2040376"><title>OCSP request and response</title> <p>OCSP primarily consists
-of two parts: a request and a response, each specified in the Abstract Syntax
-Notation One - Distinguished Encoding Rules (<xref href="http://tools.ietf.org/html/rfc4792" scope="external">ASN.1</xref> -DER) format. A client application that wants
-to get information on the revocation status of a certificate, forms an OCSP
-request and sends this to an OCSP server. In its simplest form, an OCSP request
-consists of one or more identifiers for the certificates whose status is in
-question. The request is sent to the OCSP server identified by a Uniform Resource
-Identifier (URI). The URI is specified either in the Authority Information
-Access (AIA) extension of the certificate whose revocation status is to be
-checked, or as a global URI with the OCSP client. AIA is defined in <xref href="http://www.ietf.org/rfc/rfc2459.txt" scope="external">RFC2459</xref>. </p> <p>The
-OCSP server maintains information about the revocation of certificates. The
-server replies to the client with a signed OCSP response, mentioning the revocation
-status for each certificate. A response being signed with a key pair is trusted
-as authoritative by the client. Alternatively, a server can also return an
-error code as response (refer to <xref href="http://www.ietf.org/rfc/rfc2560.txt" scope="external">RFC2560</xref> for details of the various OCSP errors). OCSP
-is transport-neutral with the URI of the server indicating the required transport
-mechanism. Currently, only Hypertext Transfer Protocol (HTTP) is supported. </p> <p>The
-client, in turn, verifies whether the response is valid and is from a trusted
-entity. </p> </section>
-<section id="GUID-B4A093DA-6968-4B17-A3A7-7FF4800DED3B"><title>OCSP client-server interaction</title> <p>The server to which
-the request for revocation check is sent may not actually be the server which
-is authoritative to answer the request, but may act as a proxy to the destination
-server. For information on the server to which the request actually gets routed,
-the client includes a <i>serviceLocator</i> extension (containing the URI)
-in the OCSP request. </p> <p>There may be a <i>serviceLocator</i> extension
-for each certificate in the request. Therefore, it is syntactically possible
-for the request to be split into multiple parts, with each part routed to
-a different OCSP responder (the server that actually responds to the OCSP
-request). The intermediate server collates the individual responses into one
-and returns this to the client. This response is signed only by the intermediate
-server. In such a situation, the client must trust this intermediate server. </p> <p>Three
-scenarios are associated with the routing of OCSP requests to the appropriate
-responder through intermediate servers. They are as follows: </p> <ul>
-<li id="GUID-CD8AAEA0-AA94-58EA-978F-3C2E21A2FE9F"><p> <b>Single OCSP responder</b>  </p> <p>One
-OCSP server contains the revocation information for all the certificates to
-be checked. One request containing all the certificates is sent to the responder
-(in this case, the OCSP server), which replies with a single response. The
-following figure illustrates the interaction between the OCSP client and a
-single destination responder. </p> <fig id="GUID-11F6D229-29D0-510A-AB8A-64A906DC00F7">
-<image href="GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393561_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-185C0C91-CC3F-5198-8EAB-BB1BF748A3D0"><p> <b>Multiple OCSP responders
-using an intermediate OCSP server</b>  </p> <p>Multiple OCSP responders use
-an intermediate OCSP server to route requests to the appropriate destination
-responders. One request is sent to the intermediate server, which sends multiple
-individual requests to the destination responders. The responses are collated,
-and one response is sent back to the client. The following figure shows the
-interaction between an OCSP client and multiple destination responders by
-using an intermediate responder. </p> <fig id="GUID-964E18AA-E4F7-5A71-A2F3-19F3007C24C6">
-<image href="GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393577_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-F092252F-79EF-58E2-A596-77D3FC07CC54"><p> <b>Multiple OCSP responders
-without an intermediate server</b>  </p> <p>The client does the work of sending
-each request to the appropriate responder. The client collates the responses
-received. The following figure shows the interaction between the client and
-multiple destination responders. </p> <fig id="GUID-223A3DB6-538E-5A4E-946C-87AA03449857">
-<image href="GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393593_href.png" placement="inline"/>
-</fig> </li>
-</ul> <p>The choice of the correct method of interaction between the client
-and the responders depends on the nature of the Public Key Infrastructure
-(PKI) and the availability of OCSP responders for routing requests as intermediates. </p> </section>
-<section id="GUID-891303A3-070F-40D2-9382-40A1165928DE"><title>Revocation check results</title> <p>If the response sent by
-the OCSP server passes all the validation, the application that sends the
-OCSP request determines the outcome by applying the following rules to the
-certificate statuses in the response: </p> <ul>
-<li id="GUID-124E3CDE-7F74-5960-A92C-98B101644036"><p>If any certificate is
-revoked, the result is <b>Revoked</b>  </p> </li>
-<li id="GUID-C0AF0A69-28C4-528B-9E14-1AAF13CEA497"><p>If all certificates
-are valid, the result is <b>Good</b>  </p> </li>
-<li id="GUID-7BA5DACD-19B1-55CC-9378-28F4A47AAE12"><p>Otherwise, the result
-is <b>Unknown</b>. </p> </li>
-</ul> <p> <b>Note:</b> A certificate status of <b>Good</b> does not indicate
-that the certificate may be trusted. It merely indicates that the certificate
-has not been revoked. The normal validation of that certificate (or the <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita">certificate chain</xref> in
-which it lies) must still be performed. </p> </section>
-</conbody><related-links>
-<link href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita"><linktext>OCSP SWI
-Integration</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-90DF40EF-7D3F-551D-9957-A3756317A254" xml:lang="en"><title>OCSP
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Online Certificate Status Protocol (OCSP) is an internet protocol that
+determines whether a given <xref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita">certificate</xref> or
+a list of certificates has been revoked, and therefore, determines whether
+the certificate can be trusted. The protocol is defined in <xref href="http://www.ietf.org/rfc/rfc2560.txt" scope="external">RFC2560</xref>. </p>
+<p>On the Symbian platform, <xref href="GUID-0AED3485-D498-57F1-9532-116EA5C8F68B.dita">Secure
+Software Install (SWI)</xref> uses OCSP to verify whether a certificate associated
+with an application to be installed has been revoked. For details of how SWI
+uses OCSP revocation check, see <xref href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita">OCSP
+SWI Integration</xref>. </p>
+<section id="GUID-F07B2071-BF8B-4D22-B6F6-1282B2040376"><title>OCSP request and response</title> <p>OCSP primarily consists
+of two parts: a request and a response, each specified in the Abstract Syntax
+Notation One - Distinguished Encoding Rules (<xref href="http://tools.ietf.org/html/rfc4792" scope="external">ASN.1</xref> -DER) format. A client application that wants
+to get information on the revocation status of a certificate, forms an OCSP
+request and sends this to an OCSP server. In its simplest form, an OCSP request
+consists of one or more identifiers for the certificates whose status is in
+question. The request is sent to the OCSP server identified by a Uniform Resource
+Identifier (URI). The URI is specified either in the Authority Information
+Access (AIA) extension of the certificate whose revocation status is to be
+checked, or as a global URI with the OCSP client. AIA is defined in <xref href="http://www.ietf.org/rfc/rfc2459.txt" scope="external">RFC2459</xref>. </p> <p>The
+OCSP server maintains information about the revocation of certificates. The
+server replies to the client with a signed OCSP response, mentioning the revocation
+status for each certificate. A response being signed with a key pair is trusted
+as authoritative by the client. Alternatively, a server can also return an
+error code as response (refer to <xref href="http://www.ietf.org/rfc/rfc2560.txt" scope="external">RFC2560</xref> for details of the various OCSP errors). OCSP
+is transport-neutral with the URI of the server indicating the required transport
+mechanism. Currently, only Hypertext Transfer Protocol (HTTP) is supported. </p> <p>The
+client, in turn, verifies whether the response is valid and is from a trusted
+entity. </p> </section>
+<section id="GUID-B4A093DA-6968-4B17-A3A7-7FF4800DED3B"><title>OCSP client-server interaction</title> <p>The server to which
+the request for revocation check is sent may not actually be the server which
+is authoritative to answer the request, but may act as a proxy to the destination
+server. For information on the server to which the request actually gets routed,
+the client includes a <i>serviceLocator</i> extension (containing the URI)
+in the OCSP request. </p> <p>There may be a <i>serviceLocator</i> extension
+for each certificate in the request. Therefore, it is syntactically possible
+for the request to be split into multiple parts, with each part routed to
+a different OCSP responder (the server that actually responds to the OCSP
+request). The intermediate server collates the individual responses into one
+and returns this to the client. This response is signed only by the intermediate
+server. In such a situation, the client must trust this intermediate server. </p> <p>Three
+scenarios are associated with the routing of OCSP requests to the appropriate
+responder through intermediate servers. They are as follows: </p> <ul>
+<li id="GUID-CD8AAEA0-AA94-58EA-978F-3C2E21A2FE9F"><p> <b>Single OCSP responder</b>  </p> <p>One
+OCSP server contains the revocation information for all the certificates to
+be checked. One request containing all the certificates is sent to the responder
+(in this case, the OCSP server), which replies with a single response. The
+following figure illustrates the interaction between the OCSP client and a
+single destination responder. </p> <fig id="GUID-11F6D229-29D0-510A-AB8A-64A906DC00F7">
+<image href="GUID-8E3F3745-7875-51A2-BDA1-AA537C7B220E_d0e393399_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-185C0C91-CC3F-5198-8EAB-BB1BF748A3D0"><p> <b>Multiple OCSP responders
+using an intermediate OCSP server</b>  </p> <p>Multiple OCSP responders use
+an intermediate OCSP server to route requests to the appropriate destination
+responders. One request is sent to the intermediate server, which sends multiple
+individual requests to the destination responders. The responses are collated,
+and one response is sent back to the client. The following figure shows the
+interaction between an OCSP client and multiple destination responders by
+using an intermediate responder. </p> <fig id="GUID-964E18AA-E4F7-5A71-A2F3-19F3007C24C6">
+<image href="GUID-2EF123C9-62A2-52FF-9792-66EF41F37452_d0e393415_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-F092252F-79EF-58E2-A596-77D3FC07CC54"><p> <b>Multiple OCSP responders
+without an intermediate server</b>  </p> <p>The client does the work of sending
+each request to the appropriate responder. The client collates the responses
+received. The following figure shows the interaction between the client and
+multiple destination responders. </p> <fig id="GUID-223A3DB6-538E-5A4E-946C-87AA03449857">
+<image href="GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393431_href.png" placement="inline"/>
+</fig> </li>
+</ul> <p>The choice of the correct method of interaction between the client
+and the responders depends on the nature of the Public Key Infrastructure
+(PKI) and the availability of OCSP responders for routing requests as intermediates. </p> </section>
+<section id="GUID-891303A3-070F-40D2-9382-40A1165928DE"><title>Revocation check results</title> <p>If the response sent by
+the OCSP server passes all the validation, the application that sends the
+OCSP request determines the outcome by applying the following rules to the
+certificate statuses in the response: </p> <ul>
+<li id="GUID-124E3CDE-7F74-5960-A92C-98B101644036"><p>If any certificate is
+revoked, the result is <b>Revoked</b>  </p> </li>
+<li id="GUID-C0AF0A69-28C4-528B-9E14-1AAF13CEA497"><p>If all certificates
+are valid, the result is <b>Good</b>  </p> </li>
+<li id="GUID-7BA5DACD-19B1-55CC-9378-28F4A47AAE12"><p>Otherwise, the result
+is <b>Unknown</b>. </p> </li>
+</ul> <p> <b>Note:</b> A certificate status of <b>Good</b> does not indicate
+that the certificate may be trusted. It merely indicates that the certificate
+has not been revoked. The normal validation of that certificate (or the <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita">certificate chain</xref> in
+which it lies) must still be performed. </p> </section>
+</conbody><related-links>
+<link href="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita"><linktext>OCSP SWI
+Integration</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-91224821-8094-59ED-A100-4174193A25EE_d0e264846_href.png has changed
Binary file Symbian3/SDK/Source/GUID-91224821-8094-59ED-A100-4174193A25EE_d0e268554_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9126A296-0301-4077-A183-3D703F77C548" xml:lang="en"><title>Multi-Touch
-Support in the Emulator Overview</title><shortdesc>This topic provides an overview of multi-touch support in the emulator.
-Two mice are used to provide two independent pointer positions. The emulator
-responds to the mice’s individual button-clicks, moves, and mouse wheel scrolls
-as if two human fingers are moving, touching or hovering over the screen.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The emulator can be extended to support more than two mice or other pointer
-devices.</p>
-<p><b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
-audience</b>: Application developers. </p>
-<p>The following figure shows two Windows pointers on the emulator screen,
-each representing a mouse device. The ordinal integer (starting from 0) beside
-each pointer is the unique device identifier. The position of each mouse on
-the screen is represented by the X and Y coordinates. The pressure (a positive
-value) and proximity (a negative value) information captured by the mouse
-wheel is represented by the Z coordinate. Notice that the status bar shows
-the identifier and the dynamic X, Y and Z values of each pointer.</p>
-<fig id="GUID-03428614-06B1-4821-A284-C3B6DB8E053C">
-<title>Two pointers are displayed in the emulator</title>
-<image href="GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e199057_href.png" placement="inline"/>
-</fig>
-<p>The delivery of pointer events from the emulator driver to the Window Server
-is the same in the multi-touch environment as in the single pointer environment.
-This means the raw events for a mouse move, button click and mouse wheel movement
-are delivered to the Window Server as usual. Each mouse has a unique device
-identifier, which makes it possible to ascertain which mouse the events relate
-to. The raw events for each individual mouse include the following: </p>
-<ul>
-<li><p><codeph>TRawEvent::EPointerMove</codeph> indicates a mouse move or
-a mouse wheel movement event.</p></li>
-<li><p><codeph>TRawEvent::EButton1Down</codeph> indicates that the left mouse
-button is pressed down.</p></li>
-<li><p><codeph>TRawEvent::EButton1Up</codeph> indicates that the left mouse
-button is released.</p></li>
-<li><p><codeph>TRawEvent::EPointerOutOfRange</codeph> indicates that the proximity
-of a mouse is out of range. This means that the Z coordinate value of the
-mouse has reached <codeph>HALData::EPointer3DMaxProximity</codeph>.</p></li>
-</ul>
-<section id="GUID-44C3561D-92A1-421E-9AD3-0D8648919C46-GENID-1-8-1-12-1-1-7-1-5-1-6-1-8-1-9-1-8-1-5-1-3-7">       <title>Pressure
-and proximity emulation</title><p>The Z coordinate value is used to represent
-the pressure and proximity to the screen. In the emulator, the Z value is
-captured and tuned by the mouse wheel movement.</p><ul>
-<li><p>Z &lt; 0 indicates the proximity of the device from the screen.</p></li>
-<li><p>Z &gt; 0 indicates pressure.</p></li>
-</ul><p>See <xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
-Pointer Overview</xref> for more information about pressure and proximity.</p><p>The
-mouse wheel combines the features of a wheel and a mouse button. The wheel
-has discrete, evenly spaced notches. Rotating the wheel backwards or forwards
-has the effect of changing the pressure or proximity.</p><ul>
-<li><p>When the mouse wheel is rotated, a device-specific message is sent
-to the emulator window that has focus as each notch is encountered.</p></li>
-<li><p>The Z coordinate is initiated as 0. Then when the wheel is moved forward,
-the Z value enters the pressure range and increases by one pressure step.
-When the wheel is moved backward, the Z value enters the proximity range and
-decreases by one proximity step.</p><p>The pressure or proximity step can
-be customized in the <filepath>epoc.ini</filepath> file. See <xref href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita">Enabling
-Multi-Touch in the Emulator Tutorial</xref> for more information.</p></li>
-<li><p>When the Z value is in the pressure range (Z &gt; 0), moving the wheel
-forward by one notch increases Z by one pressure step. Moving the wheel backward
-by one notch decreases Z by one pressure step, until Z returns to 0.</p></li>
-<li><p>When the Z value is in the proximity range (Z &lt; 0), moving the wheel
-backward by one notch decreases Z by one proximity step. Moving the wheel
-forward by one notch increases Z by one proximity step, until Z returns to
-0. </p></li>
-<li><p>There are limits to the values of the Z coordinate. This
-means that the Symbian emulator does not allow Z to exceed the upper boundary <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita#GUID-8BE90160-2C60-3582-82C8-4A108C7C0317/GUID-BF464EF0-D685-3B12-9E13-65A86BAED610"><apiname>HALData::EPointer3DMaxPressure</apiname></xref> (a
-positive value) and lower boundary <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita#GUID-8BE90160-2C60-3582-82C8-4A108C7C0317/GUID-7FCDA198-1E26-3BC9-A5A1-C4AF67016615"><apiname>HALData::EPointer3DMaxProximity</apiname></xref> (a
-negative value).  If Z is at the lower boundary, when the mouse wheel is moved
-backward next time, Z does not change. A new <codeph>Out of Range</codeph> pointer
-event is generated and sent to the Window Server. Similarly when Z is at the
-upper boundary, Z does not change when the mouse wheel is moved forward.</p></li>
-<li><p>When the mouse button down or up event (<codeph>TRawEvent::EButton1Down</codeph> or <codeph>TRawEvent::EButton1Up</codeph>)
-is generated, Z is reset to 0.</p></li>
-</ul>     </section>
-</conbody><related-links>
-<link href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita"><linktext>Advanced
-Pointers</linktext></link>
-<link href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita"><linktext>Enabling
-Multi-Touch in the Emulator Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9126A296-0301-4077-A183-3D703F77C548" xml:lang="en"><title>Multi-Touch
+Support in the Emulator Overview</title><shortdesc>This topic provides an overview of multi-touch support in the emulator.
+Two mice are used to provide two independent pointer positions. The emulator
+responds to the mice’s individual button-clicks, moves, and mouse wheel scrolls
+as if two human fingers are moving, touching or hovering over the screen.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The emulator can be extended to support more than two mice or other pointer
+devices.</p>
+<p><b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
+audience</b>: Application developers. </p>
+<p>The following figure shows two Windows pointers on the emulator screen,
+each representing a mouse device. The ordinal integer (starting from 0) beside
+each pointer is the unique device identifier. The position of each mouse on
+the screen is represented by the X and Y coordinates. The pressure (a positive
+value) and proximity (a negative value) information captured by the mouse
+wheel is represented by the Z coordinate. Notice that the status bar shows
+the identifier and the dynamic X, Y and Z values of each pointer.</p>
+<fig id="GUID-03428614-06B1-4821-A284-C3B6DB8E053C">
+<title>Two pointers are displayed in the emulator</title>
+<image href="GUID-3E80A006-F8D8-45C5-9773-7CC239AE86D9_d0e194049_href.png" placement="inline"/>
+</fig>
+<p>The delivery of pointer events from the emulator driver to the Window Server
+is the same in the multi-touch environment as in the single pointer environment.
+This means the raw events for a mouse move, button click and mouse wheel movement
+are delivered to the Window Server as usual. Each mouse has a unique device
+identifier, which makes it possible to ascertain which mouse the events relate
+to. The raw events for each individual mouse include the following: </p>
+<ul>
+<li><p><codeph>TRawEvent::EPointerMove</codeph> indicates a mouse move or
+a mouse wheel movement event.</p></li>
+<li><p><codeph>TRawEvent::EButton1Down</codeph> indicates that the left mouse
+button is pressed down.</p></li>
+<li><p><codeph>TRawEvent::EButton1Up</codeph> indicates that the left mouse
+button is released.</p></li>
+<li><p><codeph>TRawEvent::EPointerOutOfRange</codeph> indicates that the proximity
+of a mouse is out of range. This means that the Z coordinate value of the
+mouse has reached <codeph>HALData::EPointer3DMaxProximity</codeph>.</p></li>
+</ul>
+<section id="GUID-44C3561D-92A1-421E-9AD3-0D8648919C46-GENID-1-10-1-12-1-1-7-1-6-1-6-1-9-1-9-1-8-1-5-1-3-7">       <title>Pressure
+and proximity emulation</title><p>The Z coordinate value is used to represent
+the pressure and proximity to the screen. In the emulator, the Z value is
+captured and tuned by the mouse wheel movement.</p><ul>
+<li><p>Z &lt; 0 indicates the proximity of the device from the screen.</p></li>
+<li><p>Z &gt; 0 indicates pressure.</p></li>
+</ul><p>See <xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
+Pointer Overview</xref> for more information about pressure and proximity.</p><p>The
+mouse wheel combines the features of a wheel and a mouse button. The wheel
+has discrete, evenly spaced notches. Rotating the wheel backwards or forwards
+has the effect of changing the pressure or proximity.</p><ul>
+<li><p>When the mouse wheel is rotated, a device-specific message is sent
+to the emulator window that has focus as each notch is encountered.</p></li>
+<li><p>The Z coordinate is initiated as 0. Then when the wheel is moved forward,
+the Z value enters the pressure range and increases by one pressure step.
+When the wheel is moved backward, the Z value enters the proximity range and
+decreases by one proximity step.</p><p>The pressure or proximity step can
+be customized in the <filepath>epoc.ini</filepath> file. See <xref href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita">Enabling
+Multi-Touch in the Emulator Tutorial</xref> for more information.</p></li>
+<li><p>When the Z value is in the pressure range (Z &gt; 0), moving the wheel
+forward by one notch increases Z by one pressure step. Moving the wheel backward
+by one notch decreases Z by one pressure step, until Z returns to 0.</p></li>
+<li><p>When the Z value is in the proximity range (Z &lt; 0), moving the wheel
+backward by one notch decreases Z by one proximity step. Moving the wheel
+forward by one notch increases Z by one proximity step, until Z returns to
+0. </p></li>
+<li><p>There are limits to the values of the Z coordinate. This
+means that the Symbian emulator does not allow Z to exceed the upper boundary <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita#GUID-8BE90160-2C60-3582-82C8-4A108C7C0317/GUID-BF464EF0-D685-3B12-9E13-65A86BAED610"><apiname>HALData::EPointer3DMaxPressure</apiname></xref> (a
+positive value) and lower boundary <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita#GUID-8BE90160-2C60-3582-82C8-4A108C7C0317/GUID-7FCDA198-1E26-3BC9-A5A1-C4AF67016615"><apiname>HALData::EPointer3DMaxProximity</apiname></xref> (a
+negative value).  If Z is at the lower boundary, when the mouse wheel is moved
+backward next time, Z does not change. A new <codeph>Out of Range</codeph> pointer
+event is generated and sent to the Window Server. Similarly when Z is at the
+upper boundary, Z does not change when the mouse wheel is moved forward.</p></li>
+<li><p>When the mouse button down or up event (<codeph>TRawEvent::EButton1Down</codeph> or <codeph>TRawEvent::EButton1Up</codeph>)
+is generated, Z is reset to 0.</p></li>
+</ul>     </section>
+</conbody><related-links>
+<link href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita"><linktext>Advanced
+Pointers</linktext></link>
+<link href="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita"><linktext>Enabling
+Multi-Touch in the Emulator Tutorial</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9169062F-3B6D-544C-847C-BA859DAB33B9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9169062F-3B6D-544C-847C-BA859DAB33B9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,92 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9169062F-3B6D-544C-847C-BA859DAB33B9" xml:lang="en"><title>Sessions
-and requests</title><shortdesc>Describes communication between the client and the server in the
-client-server framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Communication between client and server is represented by a <i>session</i>;
-this is initiated by the client. A client thread may have several sessions
-with a server. A session can also be shared by all the client threads in a
-process, if supported by the server, and also by all threads across all processes,
-again if supported by the server. </p>
-<p>Sessions are maintained by the Kernel and the important points are: </p>
-<ul>
-<li id="GUID-C8D3B5F7-6BCE-5AB2-A11D-F0436F8CE20C"><p>The client has an <codeph>RSessionBase</codeph> handle
-to the session. </p> </li>
-<li id="GUID-80F84FC0-AA11-5C5E-A067-A23D6069DE00"><p>The server uses a <codeph>CSession2</codeph> -derived
-class to represent the session. </p> </li>
-<li id="GUID-B6405FDE-1ECB-543E-BA11-6280A5CD8DF8"><p>A session may be sharable
-between the threads in the client process, between all threads across all
-processes, or it can be restricted to the thread connecting to the server. </p> </li>
-</ul>
-<p>If a call to the client interface requires a service from the server, the
-client interface must set up and send a message. The message has a 32-bit
-operation code to identify the request, and up to four 32-bit parameters.
-The message is encapsulated within a <xref href="GUID-4AD02F14-1142-372F-9D11-224595932034.dita"><apiname>TIpcArgs</apiname></xref> object. The
-process can be summarised as follows: </p>
-<ul>
-<li id="GUID-2810FEA1-D51E-534E-963C-425D9A3B09C0"><p>The client sends the
-message to the server using <codeph>RSessionBase::SendReceive()</codeph>.
-This call eventually returns with the completion code. </p> </li>
-<li id="GUID-785468D3-7D69-5A2C-818D-5961DCCB7FCA"><p>The Kernel packages
-the operation code and parameters and delivers an <codeph>RMessage2</codeph> to
-the server. </p> </li>
-<li id="GUID-7BF7D799-7999-51C8-BEBF-88822703F113"><p>The server delivers
-the message to the appropriate <codeph>CSession2</codeph> object, which deals
-with the request. The request is handled by <xref href="GUID-D5A30C75-E22C-34E8-913B-7D2CA6AD5C51.dita#GUID-D5A30C75-E22C-34E8-913B-7D2CA6AD5C51/GUID-B37413F7-D8FD-35AD-A037-99023D7CE986"><apiname>CSession2::ServiceL()</apiname></xref>.
-This is defined as pure virtual in <codeph>CSession2</codeph>, and is implemented
-by the class derived from <codeph>CSession2</codeph>. When the session has
-finished dealing with the request, it calls <codeph>RMessage2::Complete()</codeph> to
-indicate that the service has been performed and to return a 32-bit result
-to the client - this is returned from the <codeph>SendReceive()</codeph>. </p> </li>
-</ul>
-<p>The client-server framework also supports the sending of requests asynchronously
-to the server. </p>
-<p>The following diagram illustrates this: </p>
-<fig id="GUID-97810C53-3BF6-5ECF-B413-86EEE99E68DA">
-<image href="GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e240610_href.png" placement="inline"/>
-<p>Sending messages asynchronously to the server</p>
-</fig>
-<p>A server can support multiple connections from a client in a number of
-distinct ways: </p>
-<ul>
-<li id="GUID-DFBDEB83-48DE-5A94-A07B-B9BA1715FDE7"><p>The client may have
-a number of concurrent sessions with a particular server. </p> </li>
-<li id="GUID-C382BBE4-A94B-593E-9C9E-1E2E4DA60587"><p>Each session is independent
-of any other within the client thread; <codeph>Connect()</codeph> must be
-called to initialise each new connection. </p> </li>
-<li id="GUID-343295A2-AAE6-51AA-AFCF-5CD3CD39A510"><p>The client may create
-a number of <i>subsessions</i> within a single session. </p> </li>
-<li id="GUID-7228AA13-B73F-5996-8535-0C959B7C7788"><p>Each <i>client subsession </i> corresponds
-to a <i>subsession object</i> in the server. The client subsession contains
-a handle to this subsession object. All communication is via the owning session;
-the handle is used to match up corresponding client subsessions and subsession
-objects. </p> </li>
-<li id="GUID-8D01708B-CCC3-5B6C-9C26-4A4BE26A3D0C"><p>Subsessions use fewer
-Kernel resources than sessions, although they are slightly more complex to
-use. </p> </li>
-</ul>
-<p>A server can support the creation of sharable sessions allowing either
-all the threads in a client process to share a single session, or allowing
-all threads across all processes to share a single session. The important
-points are: </p>
-<ul>
-<li id="GUID-81929E38-1251-51C9-A3B0-CD82AD519D82"><p>The server must support
-the sharing of sessions. </p> </li>
-<li id="GUID-AE8DF750-FABF-55CE-A633-41E96A50413B"><p>The connecting thread
-can make the session sharable after creation, or it can create the session
-as sharable. </p> </li>
-<li id="GUID-E1962030-B977-5A90-AC3C-5419C2FAAF68"><p>Up to 255 threads can
-be concurrently attached to a session. </p> </li>
-</ul>
-<section id="GUID-8C971096-BD4A-408A-AF20-15810FAB9D4C"><title>See also</title> <p> <xref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita">Subsessions
-within a session</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9169062F-3B6D-544C-847C-BA859DAB33B9" xml:lang="en"><title>Sessions
+and requests</title><shortdesc>Describes communication between the client and the server in the
+client-server framework.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Communication between client and server is represented by a <i>session</i>;
+this is initiated by the client. A client thread may have several sessions
+with a server. A session can also be shared by all the client threads in a
+process, if supported by the server, and also by all threads across all processes,
+again if supported by the server. </p>
+<p>Sessions are maintained by the Kernel and the important points are: </p>
+<ul>
+<li id="GUID-C8D3B5F7-6BCE-5AB2-A11D-F0436F8CE20C"><p>The client has an <codeph>RSessionBase</codeph> handle
+to the session. </p> </li>
+<li id="GUID-80F84FC0-AA11-5C5E-A067-A23D6069DE00"><p>The server uses a <codeph>CSession2</codeph> -derived
+class to represent the session. </p> </li>
+<li id="GUID-B6405FDE-1ECB-543E-BA11-6280A5CD8DF8"><p>A session may be sharable
+between the threads in the client process, between all threads across all
+processes, or it can be restricted to the thread connecting to the server. </p> </li>
+</ul>
+<p>If a call to the client interface requires a service from the server, the
+client interface must set up and send a message. The message has a 32-bit
+operation code to identify the request, and up to four 32-bit parameters.
+The message is encapsulated within a <xref href="GUID-4AD02F14-1142-372F-9D11-224595932034.dita"><apiname>TIpcArgs</apiname></xref> object. The
+process can be summarised as follows: </p>
+<ul>
+<li id="GUID-2810FEA1-D51E-534E-963C-425D9A3B09C0"><p>The client sends the
+message to the server using <codeph>RSessionBase::SendReceive()</codeph>.
+This call eventually returns with the completion code. </p> </li>
+<li id="GUID-785468D3-7D69-5A2C-818D-5961DCCB7FCA"><p>The Kernel packages
+the operation code and parameters and delivers an <codeph>RMessage2</codeph> to
+the server. </p> </li>
+<li id="GUID-7BF7D799-7999-51C8-BEBF-88822703F113"><p>The server delivers
+the message to the appropriate <codeph>CSession2</codeph> object, which deals
+with the request. The request is handled by <xref href="GUID-D5A30C75-E22C-34E8-913B-7D2CA6AD5C51.dita#GUID-D5A30C75-E22C-34E8-913B-7D2CA6AD5C51/GUID-B37413F7-D8FD-35AD-A037-99023D7CE986"><apiname>CSession2::ServiceL()</apiname></xref>.
+This is defined as pure virtual in <codeph>CSession2</codeph>, and is implemented
+by the class derived from <codeph>CSession2</codeph>. When the session has
+finished dealing with the request, it calls <codeph>RMessage2::Complete()</codeph> to
+indicate that the service has been performed and to return a 32-bit result
+to the client - this is returned from the <codeph>SendReceive()</codeph>. </p> </li>
+</ul>
+<p>The client-server framework also supports the sending of requests asynchronously
+to the server. </p>
+<p>The following diagram illustrates this: </p>
+<fig id="GUID-97810C53-3BF6-5ECF-B413-86EEE99E68DA">
+<image href="GUID-08E31D57-A84D-5B6B-B16F-3F7025A763E9_d0e236873_href.png" placement="inline"/>
+<p>Sending messages asynchronously to the server</p>
+</fig>
+<p>A server can support multiple connections from a client in a number of
+distinct ways: </p>
+<ul>
+<li id="GUID-DFBDEB83-48DE-5A94-A07B-B9BA1715FDE7"><p>The client may have
+a number of concurrent sessions with a particular server. </p> </li>
+<li id="GUID-C382BBE4-A94B-593E-9C9E-1E2E4DA60587"><p>Each session is independent
+of any other within the client thread; <codeph>Connect()</codeph> must be
+called to initialise each new connection. </p> </li>
+<li id="GUID-343295A2-AAE6-51AA-AFCF-5CD3CD39A510"><p>The client may create
+a number of <i>subsessions</i> within a single session. </p> </li>
+<li id="GUID-7228AA13-B73F-5996-8535-0C959B7C7788"><p>Each <i>client subsession </i> corresponds
+to a <i>subsession object</i> in the server. The client subsession contains
+a handle to this subsession object. All communication is via the owning session;
+the handle is used to match up corresponding client subsessions and subsession
+objects. </p> </li>
+<li id="GUID-8D01708B-CCC3-5B6C-9C26-4A4BE26A3D0C"><p>Subsessions use fewer
+Kernel resources than sessions, although they are slightly more complex to
+use. </p> </li>
+</ul>
+<p>A server can support the creation of sharable sessions allowing either
+all the threads in a client process to share a single session, or allowing
+all threads across all processes to share a single session. The important
+points are: </p>
+<ul>
+<li id="GUID-81929E38-1251-51C9-A3B0-CD82AD519D82"><p>The server must support
+the sharing of sessions. </p> </li>
+<li id="GUID-AE8DF750-FABF-55CE-A633-41E96A50413B"><p>The connecting thread
+can make the session sharable after creation, or it can create the session
+as sharable. </p> </li>
+<li id="GUID-E1962030-B977-5A90-AC3C-5419C2FAAF68"><p>Up to 255 threads can
+be concurrently attached to a session. </p> </li>
+</ul>
+<section id="GUID-8C971096-BD4A-408A-AF20-15810FAB9D4C"><title>See also</title> <p> <xref href="GUID-1CC6FEF0-7D1E-5329-8276-22ACFE3DE362.dita">Subsessions
+within a session</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e144644_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-917790B7-A71D-511C-AFAB-BB46EFD046C6_d0e151178_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3" xml:lang="en"><title>Touch
-UI utilities API</title><shortdesc>The Touch UI utilities API is used for detecting long-tap events
-and showing an animation for them. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A long tap, also called a touch down and hold event, means that the user
-holds the stylus down on the screen at the same point for a long time.</p>
-<fig id="GUID-1E6C16F9-51AA-45CC-8E50-AB5E51DB9E4E">
-<title>Long-tap event used for opening a stylus pop-up menu</title>
-<image href="GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e80408_href.png" scale="40" placement="inline"/>
-</fig>
-<p>The Touch UI utilities API can be used in all GUI applications. It is a
-library API that provides an interface for constructing and using the long-tap
-detector component.</p>
-<p>For user experience guidelines on the long-tap component, see <xref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita">Touch
-down and hold</xref>.</p>
-<p>For the Touch UI utilities API classes and header files, see Classes and
-Definitions.</p>
-<p>For implementation information, see <xref href="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita">Receiving
-long tap events</xref>.</p>
-<section id="GUID-139D3102-1273-4F4D-9239-309677968281"><title>Error handling</title><p>The
-leave mechanism of the Symbian platform environment is used for handling memory
-exhaustion.</p></section>
-<section id="GUID-A4320820-D2A9-44C1-B2F0-C47A8C6CED6B"><title>Constraints</title><p>This
-API is valid for all touch enabled Symbian platforms.</p></section>
-<section id="GUID-C1463788-923F-4AF2-884B-3B16C93E7536"><title>Emulator support</title><p>This
-API is fully supported in the WINS/WINSCW emulator environment.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3" xml:lang="en"><title>Touch
+UI utilities API</title><shortdesc>The Touch UI utilities API is used for detecting long-tap events
+and showing an animation for them. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A long tap, also called a touch down and hold event, means that the user
+holds the stylus down on the screen at the same point for a long time.</p>
+<fig id="GUID-1E6C16F9-51AA-45CC-8E50-AB5E51DB9E4E">
+<title>Long-tap event used for opening a stylus pop-up menu</title>
+<image href="GUID-78989363-A405-4A1D-8F13-DC52FE6FAD80_d0e75280_href.png" scale="40" placement="inline"/>
+</fig>
+<p>The Touch UI utilities API can be used in all GUI applications. It is a
+library API that provides an interface for constructing and using the long-tap
+detector component.</p>
+<p>For user experience guidelines on the long-tap component, see <xref href="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita">Touch
+down and hold</xref>.</p>
+<p>For the Touch UI utilities API classes and header files, see Classes and
+Definitions.</p>
+<p>For implementation information, see <xref href="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita">Receiving
+long tap events</xref>.</p>
+<section id="GUID-139D3102-1273-4F4D-9239-309677968281"><title>Error handling</title><p>The
+leave mechanism of the Symbian platform environment is used for handling memory
+exhaustion.</p></section>
+<section id="GUID-F1F9BC02-416D-4224-A14A-59AE112A423C"><title>Changes and release information</title><p>The Touch UI utilities
+API is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-A4320820-D2A9-44C1-B2F0-C47A8C6CED6B"><title>Constraints</title><p>This
+API is valid for all touch enabled Symbian platforms.</p></section>
+<section id="GUID-C1463788-923F-4AF2-884B-3B16C93E7536"><title>Emulator support</title><p>This
+API is fully supported in the WINS/WINSCW emulator environment.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e71873_href.png has changed
Binary file Symbian3/SDK/Source/GUID-92067BE3-40F0-4652-A882-FFDE2816C9BD_d0e77022_href.png has changed
Binary file Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6-master.png has changed
Binary file Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e67660_href.png has changed
Binary file Symbian3/SDK/Source/GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e72782_href.png has changed
Binary file Symbian3/SDK/Source/GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e215705_href.png has changed
Binary file Symbian3/SDK/Source/GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e219442_href.png has changed
--- a/Symbian3/SDK/Source/GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,129 +1,149 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-92966ADC-17CF-5411-A829-1201C182B59F" xml:lang="en"><title>ETel3rdParty:
-Using the Telephony Independent Software Vendor (ISV) API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This set of seven example applications demonstrate the use of the Telephony
-ISV API provided by the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> public interface to
-the phone’s telephony system. This interface enables developers to access
-common mobile telephony services, such as finding phone information, dialling
-and answering voice calls. </p>
-<p>Each example demonstrates a different set of mobile telephony services,
-and is stored in a subdirectory of <filepath>ETel3rdPartyExample</filepath>.
-These subdirectories are explained in the description section. </p>
-<section id="GUID-CD1C71CD-AB0C-4C39-93CA-50E57E4A80FE"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7bdecae0-8d0b-407e-b387-2543550d99e7.zip" scope="external"> ETel3rdParty.zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7bdecae0-8d0b-407e-b387-2543550d99e7.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-BF0DBC82-2432-54B9-9A5F-78900F3FDA6C"><title>Description</title> <p><b>AutoDTMFDialler</b> </p> <p>This
-example performs the following operations: </p> <ul>
-<li id="GUID-AAA9F2D1-839B-5B68-A8AC-4C67E2573BBD"><p>Retrieves the line status
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-8075BB6F-29D6-3BD1-BDE2-6E287E475E5E"><apiname>CTelephony::GetLineStatus()</apiname></xref> function. </p> </li>
-<li id="GUID-2F14CEC3-9000-50B9-856E-E0BED7A0F617"><p>Retrieves the call status
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-AA41B779-3A44-3D14-8FB4-3DFF00065C41"><apiname>CTelephony::GetCallStatus()</apiname></xref> function </p> </li>
-<li id="GUID-698A96D0-3669-59C5-B81C-34D0DC651562"><p>Retrieves the current
-network registration status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6F919102-C5AA-39AB-8C58-64854C808154"><apiname>CTelephony::GetNetworkRegistrationStatus()</apiname></xref> function </p> </li>
-<li id="GUID-6725066A-EAA5-5530-807C-FA7D7FF510E0"><p>Retrieves the current
-flight mode status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-FE20245B-0DC3-35A2-995A-2002E360443C"><apiname>CTelephony::GetFlightMode()</apiname></xref> function. </p> </li>
-<li id="GUID-A6E7E73E-D31F-5D0D-895F-FABBEA5FECFD"><p>Initiates a call using
-the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref> function </p> </li>
-<li id="GUID-541A9C02-ACAA-5017-BE5C-98FED025FF06"><p>Transmits DTMF tones
-across all the current active voice calls one after the other using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-21377F08-7A28-3D54-8B71-8C01140EB0A2"><apiname>CTelephony::SendDTMFTones()</apiname></xref> function </p> </li>
-<li id="GUID-6FA24CD2-FB5E-57B2-92A1-CE4D69969306"><p>Disconnects a call using
-the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-D4EEA60D-306E-358E-A1F8-9F93554D70BD"><apiname>CTelephony::Hangup()</apiname></xref> function. </p> </li>
-</ul> <p><b>Configs</b> </p> <p>This example directory contains the <filepath>config.txt</filepath> and
-the <filepath>TelephonyISVAppConfig.cfg</filepath> files, which are required
-to configure the SIM TSY to run the application. For more information, see
-the <xref href="GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita#GUID-92966ADC-17CF-5411-A829-1201C182B59F/GUID-F065BEFB-810D-5C25-97FD-8D953515D249">Configuring
-the Simulator TSY</xref> section. </p> <p><b>IncomingCalls</b> </p> <p>This
-example answers incoming calls using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-6D12DBA4-8902-3649-B144-47C91F16C4B3"><apiname>CTelephony::AnswerIncomingCall()</apiname></xref> function.
-It also retrieves information about the call using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-4B0493B4-A6C4-3289-A72E-B274C4EACD12"><apiname>CTelephony::GetCallInfo()</apiname></xref> function.
-It uses a test plug-in named Simulator TSY (SIMTSY) which simulates telephony
-functions like phonebook, voicecall, SMS etc. </p> <p><b>NetworkInformation</b> </p> <p>This
-example retrieves the over-the-air network information about the currently
-registered mobile network using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-5CE72D6B-06FA-32A3-B242-B89308FF4412"><apiname>CTelephony::GetCurrentNetworkInfo()</apiname></xref> function
-and also requests notification of changes to this information using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-2310069E-D6D2-3478-B358-2C3DB45771DC"><apiname>CTelephony::NotifyChange()</apiname></xref> function. </p> <p><b>OutgoingCalls</b> </p> <p>This uses a test plug-in named Simulator TSY (SIMTSY) which simulates
-telephony functions like phonebook, voicecall, SMS etc. This example performs
-the following operations: </p> <ul>
-<li id="GUID-6D961227-F152-5107-8495-EA7F25E4769A"><p>Initiates a call using
-the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7A25EB6-B7FD-31DF-9A03-F100F93D7138"><apiname>CTelephony::DialNewCall()</apiname></xref> function. </p> </li>
-<li id="GUID-E080260D-97EA-51B5-9DB3-A00818ACEE5D"><p>Places a call on hold
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-1CF45E69-84C7-3548-8C83-05C106304D9F"><apiname>CTelephony::Hold()</apiname></xref> function. </p> </li>
-<li id="GUID-A2B396AE-38AE-5776-AE15-782BAF848F19"><p>Swaps between calls
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-1EDFE08F-2C36-3193-AF73-2D7AC37079DA"><apiname>CTelephony::Swap()</apiname></xref> function. </p> </li>
-<li id="GUID-6224A13F-A467-583D-9A47-7945081DFD0E"><p>Resumes a call on hold
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-EFF39B1C-4685-3E79-93B3-5D0FB5AFAD02"><apiname>CTelephony::Resume()</apiname></xref> function. </p> </li>
-<li id="GUID-0E611A4B-B748-5FEC-9F8F-A1AA84B9BA7E"><p>Retrieves the status
-of ICC locks using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-FEAE2A06-DC15-3DE0-8F19-69E3B40875E2"><apiname>CTelephony::GetLockInfo()</apiname></xref> function. </p> </li>
-<li id="GUID-ED64D75F-7792-5009-B457-CB0871273F64"><p>Retrieves ICC-stored
-information about the (preferred) name of the currently registered mobile
-network using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-D51174DE-5CCD-3FCD-A9C4-AC1F2413F95D"><apiname>CTelephony::GetCurrentNetworkName()</apiname></xref> function
-and the network name using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-DB5E2992-B720-3194-91D2-66FF6655BCCC"><apiname>CTelephony::GetOperatorName()</apiname></xref> function. </p> </li>
-<li id="GUID-4521E90B-4E15-5087-AE9A-3FB3DFE5162C"><p> </p> <p>Retrieves the
-dynamic call capabilities for the calls that was dialled or answered using
-the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-3013F98E-4E22-3E1E-A871-5F892CFFC9F7"><apiname>CTelephony::GetCallDynamicCaps()</apiname></xref> function. </p> </li>
-</ul> <p><b>PhoneId</b> </p> <p>This example retrieves information about a
-phone, such as the manufacturer name, serial number, phone and SIM card number
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-A3C550FC-0D46-35C4-9DEC-D7EA01E10ED8"><apiname>CTelephony::GetPhoneId()</apiname></xref> function, and current
-subscriber information using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-CFF2D182-A13F-30A2-AE9C-9C8CE7209387"><apiname>CTelephony::GetSubscriberId()</apiname></xref> function.
-It then prints this information to the console. </p> <p><b>PhoneMonitoring</b> </p> <p>This
-example performs the following operations: </p> <ul>
-<li id="GUID-99718553-06A4-5BB3-986E-EA9B73EF0FCC"><p>Retrieves the status
-and charge level of the phone battery using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-9D545601-9C85-3EB5-AB5D-4233C93C9802"><apiname>CTelephony::GetBatteryInfo()</apiname></xref> function. </p> </li>
-<li id="GUID-DC238197-472A-5408-9F66-28F61FD185D0"><p>Indicates whether a
-phone battery is being charged using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-FA962113-84DB-3562-A072-42613FD05E98"><apiname>CTelephony::GetIndicator()</apiname></xref> function. </p> </li>
-<li id="GUID-A800C543-4FB4-5A62-B6CC-BBF4CFE0970A"><p>Retrieves the current
-signal strength of the phone using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-080BF320-A91A-3FF6-AA0E-7E1C7D256BC1"><apiname>CTelephony::GetSignalStrength()</apiname></xref> function. </p> </li>
-<li id="GUID-D8B692C0-C8A7-5CE9-8643-6C7B2150C57B"><p>Retrieves the current
-flight mode status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-FE20245B-0DC3-35A2-995A-2002E360443C"><apiname>CTelephony::GetFlightMode()</apiname></xref> function. </p> </li>
-</ul> <p><b>Shared</b> </p> <p>This example directory contains the shared
-files to be used by other directories for synchronous and asynchronous operations. </p> <p><b>SuppleServices</b> </p> <p>This
-example retrieves the current status of the following services: </p> <ul>
-<li id="GUID-E1D17AB9-54A7-5EFB-A20F-5AA9A1D4BF3C"><p>call barring services
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-EDBA2DB4-976B-3FC6-9CED-ACD74A081788"><apiname>CTelephony::GetCallBarringStatus()</apiname></xref> function, </p> </li>
-<li id="GUID-F9338E27-96B4-54A6-BB27-8EDFB61DAE26"><p>call forwarding services
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-3D885BC3-1BBE-3673-A647-48F221D1A687"><apiname>CTelephony::GetCallForwardingStatus()</apiname></xref> function, </p> </li>
-<li id="GUID-70CEDAB7-6BD2-5F8B-BEFB-36B79223C9FC"><p>call waiting services
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-2B8C749F-5614-388E-B368-0EEFB32219B5"><apiname>CTelephony::GetCallWaitingStatus()</apiname></xref> function, </p> </li>
-<li id="GUID-D2A45950-D676-54F8-A365-AAC53160CE86"><p>call identity services
-using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-768817E6-D985-3C18-AD12-448D192B460F"><apiname>CTelephony::GetIdentityServiceStatus()</apiname></xref> function. </p> </li>
-</ul> </section>
-<section id="GUID-A4801049-45DC-4705-B43B-9F2CD37E130E"><title>Class summary</title> <p>The principal class used in this
-example is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref>. </p> </section>
-<section id="GUID-F065BEFB-810D-5C25-97FD-8D953515D249"><title>Configuring
-the simulator TSY</title> <p>To run the application you must configure the
-Simulator TSY. To do this, install the configuration files by performing the
-following steps: </p> <ol id="GUID-A72585E2-49F7-56CA-957F-2AAA6D2ADF9B">
-<li id="GUID-38B9A560-6511-5EC7-BB96-DD1ECBED96E2"><p>Copy the <filepath>config.txt</filepath> file
-and the <filepath>TelephonyISVAppConfig.cfg</filepath> file into the <filepath>\epoc32\winscw\c\</filepath> directory
-of the phone. </p> </li>
-<li id="GUID-3422372C-9843-55A2-9DB8-83A28EF61C94"><p>From the command prompt,
-go to the source root directory. </p> </li>
-<li id="GUID-A86CA3CE-500B-575F-BB3B-D4825579BA97"><p>Change directory to <filepath>\epoc32\release\winscw\udeb</filepath> and
-run the following command: </p> <p><userinput>ced c:\TelephonyISVAppConfig.cfg </userinput> </p> </li>
-<li id="GUID-8AFA4C77-F78F-5672-AF9C-E999930E1E51"><p>Check the <filepath>ced.log</filepath> file
-to ensure that the configuration file has been read successfully. </p> </li>
-</ol> </section>
-<section id="GUID-67006F52-C18C-576E-B645-20AE6CCD61C4"><title>Building and
-running</title> <p> <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build an application. </p> <p>The <codeph>ETel3rdPartyExample</codeph> builds
-the following executables in the standard location (<filepath>\epoc32\release\winscw\&lt;build_variant&gt;</filepath> for
-CodeWarrior): </p> <ul>
-<li id="GUID-443AF336-E3B4-507E-9A13-A6AB7912B79F"><p> <filepath> phoneid.exe</filepath>  </p> </li>
-<li id="GUID-DAB579A4-B8D2-570E-BD25-5C5F9F5B90B5"><p> <filepath>phonemonitor.exe</filepath>  </p> </li>
-<li id="GUID-243981B3-581D-5716-AA4E-44FA6392E7D4"><p> <filepath>networkinformation.exe</filepath>  </p> </li>
-<li id="GUID-0799DF67-6E1E-5584-B9B5-5F146977E10A"><p> <filepath>suppleservices.exe</filepath>  </p> </li>
-<li id="GUID-1D7E2526-E35C-5522-BF06-C1CC72E5B15D"><p> <filepath>outgoingcalls.exe</filepath>  </p> </li>
-<li id="GUID-717B32F7-2DBE-5088-8B42-AC3437B39315"><p> <filepath>autodtmf.exe</filepath>  </p> </li>
-<li id="GUID-85027887-4C27-56FF-8A11-7ADE2BC89F93"><p> <filepath>incomingcalls.exe</filepath>  </p> </li>
-</ul> <p>Each executable must be run separately. </p> <p> <b>Note:</b> Set
-the <codeph>StartUpMode</codeph> mode to <codeph>1</codeph> in the <filepath>\epoc32\data\epoc.ini</filepath> file
-to start the emulator in text shell mode as the applications use a console
-based interface. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-92966ADC-17CF-5411-A829-1201C182B59F" xml:lang="en"><title>ETel3rdParty: Using the Telephony Independent Software Vendor
+(ISV) API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This set of seven example applications demonstrate the use of the
+Telephony ISV API provided by the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref> public
+interface to the phone’s telephony system. This interface enables
+developers to access common mobile telephony services, such as finding
+phone information, dialling and answering voice calls. </p>
+<p>Each example demonstrates a different set of mobile telephony services,
+and is stored in a subdirectory of <filepath>ETel3rdPartyExample</filepath>. These subdirectories are explained in the description section. </p>
+<section id="GUID-CD1C71CD-AB0C-4C39-93CA-50E57E4A80FE"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7bdecae0-8d0b-407e-b387-2543550d99e7.zip" scope="external"> ETel3rdParty.zip</xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7bdecae0-8d0b-407e-b387-2543550d99e7.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-BF0DBC82-2432-54B9-9A5F-78900F3FDA6C"><title>Description</title> <p><b>AutoDTMFDialler</b> </p> <p>This example performs the following
+operations: </p> <ul>
+<li id="GUID-AAA9F2D1-839B-5B68-A8AC-4C67E2573BBD"><p>Retrieves the
+line status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-0586CC93-2F37-31BB-804B-E4EAF56E705D"><apiname>CTelephony::GetLineStatus(const TPhoneLine&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-2F14CEC3-9000-50B9-856E-E0BED7A0F617"><p>Retrieves the
+call status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-623CA9E2-6474-3ED8-8608-D74AF33E34E2"><apiname>CTelephony::GetCallStatus(const TCallId&amp;
+, TDes8&amp;)</apiname></xref> function </p> </li>
+<li id="GUID-698A96D0-3669-59C5-B81C-34D0DC651562"><p>Retrieves the
+current network registration status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-B515E4EB-C263-31B4-BAEA-059DDE4FA0EB"><apiname>CTelephony::GetNetworkRegistrationStatus(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function </p> </li>
+<li id="GUID-6725066A-EAA5-5530-807C-FA7D7FF510E0"><p>Retrieves the
+current flight mode status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-735C3095-6DBB-356F-87B6-C474AEB2A1B8"><apiname>CTelephony::GetFlightMode(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-A6E7E73E-D31F-5D0D-895F-FABBEA5FECFD"><p>Initiates a
+call using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-A0BB7D4A-563D-36C9-ADD9-91C1BA702980"><apiname>CTelephony::DialNewCall(TRequestStatus&amp;
+, TDes8&amp; , const TTelNumber&amp; , TCallId&amp; , const TPhoneLine)</apiname></xref> function </p> </li>
+<li id="GUID-541A9C02-ACAA-5017-BE5C-98FED025FF06"><p>Transmits DTMF
+tones across all the current active voice calls one after the other
+using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-33950E77-9502-3698-8135-0B01C42EE0FD"><apiname>CTelephony::SendDTMFTones(TRequestStatus&amp; ,
+const TDesC&amp;)</apiname></xref> function </p> </li>
+<li id="GUID-6FA24CD2-FB5E-57B2-92A1-CE4D69969306"><p>Disconnects
+a call using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-15D52797-E697-3C27-89EB-845592958E8F"><apiname>CTelephony::Hangup(TRequestStatus&amp; ,
+const TCallId&amp;)</apiname></xref> function. </p> </li>
+</ul> <p><b>Configs</b> </p> <p>This example directory contains the <filepath>config.txt</filepath> and the <filepath>TelephonyISVAppConfig.cfg</filepath> files, which are required to configure the SIM TSY to run the application.
+For more information, see the <xref href="GUID-92966ADC-17CF-5411-A829-1201C182B59F.dita#GUID-92966ADC-17CF-5411-A829-1201C182B59F/GUID-F065BEFB-810D-5C25-97FD-8D953515D249">Configuring the Simulator TSY</xref> section. </p> <p><b>IncomingCalls</b> </p> <p>This example answers incoming calls using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E3B87047-020B-3889-A2C1-9E6D2A818419"><apiname>CTelephony::AnswerIncomingCall(TRequestStatus&amp;
+, TCallId&amp; , const TPhoneLine)</apiname></xref> function. It also retrieves
+information about the call using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-F1B513A2-1B64-3BD3-A2FC-02145165AA0B"><apiname>CTelephony::GetCallInfo(TDes8&amp;
+, TDes8&amp; , TDes8&amp;)</apiname></xref> function. It uses a test plug-in
+named Simulator TSY (SIMTSY) which simulates telephony functions like
+phonebook, voicecall, SMS etc. </p> <p><b>NetworkInformation</b> </p> <p>This example retrieves the over-the-air network information about
+the currently registered mobile network using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-5E5C9D21-C9B6-36E0-B2AB-17EBBF1223FE"><apiname>CTelephony::GetCurrentNetworkInfo(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function and also requests notification of
+changes to this information using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E5DE0420-F112-3198-AF19-C65603B391C9"><apiname>CTelephony::NotifyChange(TRequestStatus&amp;
+, const TNotificationEvent&amp; , TDes8&amp;)</apiname></xref> function. </p> <p><b>OutgoingCalls</b> </p> <p>This uses a test plug-in named Simulator
+TSY (SIMTSY) which simulates telephony functions like phonebook, voicecall,
+SMS etc. This example performs the following operations: </p> <ul>
+<li id="GUID-6D961227-F152-5107-8495-EA7F25E4769A"><p>Initiates a
+call using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-A0BB7D4A-563D-36C9-ADD9-91C1BA702980"><apiname>CTelephony::DialNewCall(TRequestStatus&amp;
+, TDes8&amp; , const TTelNumber&amp; , TCallId&amp; , const TPhoneLine)</apiname></xref> function. </p> </li>
+<li id="GUID-E080260D-97EA-51B5-9DB3-A00818ACEE5D"><p>Places a call
+on hold using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-AE5CE716-FDC9-3981-822C-DD1CE2E524F9"><apiname>CTelephony::Hold(TRequestStatus&amp; ,
+const TCallId&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-A2B396AE-38AE-5776-AE15-782BAF848F19"><p>Swaps between
+calls using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-E7EF7DF4-7841-321F-8205-04ABDB2043D2"><apiname>CTelephony::Swap(TRequestStatus&amp; , const
+TCallId&amp; , const TCallId&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-6224A13F-A467-583D-9A47-7945081DFD0E"><p>Resumes a call
+on hold using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-76F65E9F-4909-3327-80CB-AB0D9F3D811E"><apiname>CTelephony::Resume(TRequestStatus&amp;
+, const TCallId&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-0E611A4B-B748-5FEC-9F8F-A1AA84B9BA7E"><p>Retrieves the
+status of ICC locks using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-C56BF3F8-834F-3D8E-AECF-B284718AFE19"><apiname>CTelephony::GetLockInfo(TRequestStatus&amp;
+, const TIccLock&amp; , TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-ED64D75F-7792-5009-B457-CB0871273F64"><p>Retrieves ICC-stored
+information about the (preferred) name of the currently registered
+mobile network using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-2DF79C5B-5BF7-3761-81B3-24FEC4994C37"><apiname>CTelephony::GetCurrentNetworkName(TRequestStatus&amp;
+, TDes8&amp; )</apiname></xref> function and the network name using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-2F54B3D9-81C0-30D2-AD60-8EA7D2BC59CA"><apiname>CTelephony::GetOperatorName(TRequestStatus&amp; , TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-4521E90B-4E15-5087-AE9A-3FB3DFE5162C"><p> </p> <p>Retrieves
+the dynamic call capabilities for the calls that was dialled or answered
+using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-5ED0B26D-0D47-37C6-8523-B0D171ACD753"><apiname>CTelephony::GetCallDynamicCaps(const TCallId&amp;,
+TDes8&amp;)</apiname></xref> function. </p> </li>
+</ul> <p><b>PhoneId</b> </p> <p>This example retrieves information
+about a phone, such as the manufacturer name, serial number, phone
+and SIM card number using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-BD7848B1-0FE6-344F-9D85-4673F7412DDF"><apiname>CTelephony::GetPhoneId(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function, and current subscriber information
+using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-AB2BD2FA-C508-3866-8AFA-A36D59E4E75D"><apiname>CTelephony::GetSubscriberId(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. It then prints this information
+to the console. </p> <p><b>PhoneMonitoring</b> </p> <p>This example
+performs the following operations: </p> <ul>
+<li id="GUID-99718553-06A4-5BB3-986E-EA9B73EF0FCC"><p>Retrieves the
+status and charge level of the phone battery using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-1A94F22F-02CF-304E-876C-1ED3889DA74D"><apiname>CTelephony::GetBatteryInfo(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-DC238197-472A-5408-9F66-28F61FD185D0"><p>Indicates whether
+a phone battery is being charged using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-849590A1-3DC8-3995-A27E-845F316596E1"><apiname>CTelephony::GetIndicator(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-A800C543-4FB4-5A62-B6CC-BBF4CFE0970A"><p>Retrieves the
+current signal strength of the phone using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-A242726A-8A71-3508-B537-5534D6B447B3"><apiname>CTelephony::GetSignalStrength(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+<li id="GUID-D8B692C0-C8A7-5CE9-8643-6C7B2150C57B"><p>Retrieves the
+current flight mode status using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-735C3095-6DBB-356F-87B6-C474AEB2A1B8"><apiname>CTelephony::GetFlightMode(TRequestStatus&amp;
+, TDes8&amp;)</apiname></xref> function. </p> </li>
+</ul> <p><b>Shared</b> </p> <p>This example directory contains the
+shared files to be used by other directories for synchronous and asynchronous
+operations. </p> <p><b>SuppleServices</b> </p> <p>This example retrieves
+the current status of the following services: </p> <ul>
+<li id="GUID-E1D17AB9-54A7-5EFB-A20F-5AA9A1D4BF3C"><p>call barring
+services using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-C2972477-3671-381C-9D40-46D9C9C6E54A"><apiname>CTelephony::GetCallBarringStatus(TRequestStatus&amp;
+, const TCallBarringCondition , TDes8&amp; , const TServiceGroup)</apiname></xref> function, </p> </li>
+<li id="GUID-F9338E27-96B4-54A6-BB27-8EDFB61DAE26"><p>call forwarding
+services using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-CE3C3D05-2313-3ED2-9AAF-D172D6A6F9FD"><apiname>CTelephony::GetCallForwardingStatus(TRequestStatus&amp;
+, const TCallForwardingCondition , TDes8&amp; , const TServiceGroup)</apiname></xref> function, </p> </li>
+<li id="GUID-70CEDAB7-6BD2-5F8B-BEFB-36B79223C9FC"><p>call waiting
+services using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-BBFA4B72-3CDE-3585-91AB-3331F7B973BA"><apiname>CTelephony::GetCallWaitingStatus(TRequestStatus&amp;
+, TDes8&amp; , const TServiceGroup)</apiname></xref> function, </p> </li>
+<li id="GUID-D2A45950-D676-54F8-A365-AAC53160CE86"><p>call identity
+services using the <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita#GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A/GUID-DCD53D66-0812-35F7-B1D5-2E436D4729DD"><apiname>CTelephony::GetIdentityServiceStatus(TRequestStatus&amp;
+, const TIdentityService&amp; , TDes8&amp;)</apiname></xref> function. </p> </li>
+</ul> </section>
+<section id="GUID-A4801049-45DC-4705-B43B-9F2CD37E130E"><title>Class
+summary</title> <p>The principal class used in this example is <xref href="GUID-97D402C8-B4B7-385A-92B3-D3FCC0CA575A.dita"><apiname>CTelephony</apiname></xref>. </p> </section>
+<section id="GUID-F065BEFB-810D-5C25-97FD-8D953515D249"><title>Configuring
+the simulator TSY</title> <p>To run the application you must configure
+the Simulator TSY. To do this, install the configuration files by
+performing the following steps: </p> <ol id="GUID-A72585E2-49F7-56CA-957F-2AAA6D2ADF9B">
+<li id="GUID-38B9A560-6511-5EC7-BB96-DD1ECBED96E2"><p>Copy the <filepath>config.txt</filepath> file and the <filepath>TelephonyISVAppConfig.cfg</filepath> file into the <filepath>\epoc32\winscw\c\</filepath> directory of
+the phone. </p> </li>
+<li id="GUID-3422372C-9843-55A2-9DB8-83A28EF61C94"><p>From the command
+prompt, go to the source root directory. </p> </li>
+<li id="GUID-A86CA3CE-500B-575F-BB3B-D4825579BA97"><p>Change directory
+to <filepath>\epoc32\release\winscw\udeb</filepath> and run the following
+command: </p> <p><userinput>ced c:\TelephonyISVAppConfig.cfg </userinput> </p> </li>
+<li id="GUID-8AFA4C77-F78F-5672-AF9C-E999930E1E51"><p>Check the <filepath>ced.log</filepath> file to ensure that the configuration file has
+been read successfully. </p> </li>
+</ol> </section>
+<section id="GUID-67006F52-C18C-576E-B645-20AE6CCD61C4"><title>Building
+and running</title> <p> <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The Symbian build
+process</xref> describes how to build an application. </p> <p>The <codeph>ETel3rdPartyExample</codeph> builds the following executables in
+the standard location (<filepath>\epoc32\release\winscw\&lt;build_variant&gt;</filepath> for CodeWarrior): </p> <ul>
+<li id="GUID-443AF336-E3B4-507E-9A13-A6AB7912B79F"><p> <filepath> phoneid.exe</filepath>  </p> </li>
+<li id="GUID-DAB579A4-B8D2-570E-BD25-5C5F9F5B90B5"><p> <filepath>phonemonitor.exe</filepath>  </p> </li>
+<li id="GUID-243981B3-581D-5716-AA4E-44FA6392E7D4"><p> <filepath>networkinformation.exe</filepath>  </p> </li>
+<li id="GUID-0799DF67-6E1E-5584-B9B5-5F146977E10A"><p> <filepath>suppleservices.exe</filepath>  </p> </li>
+<li id="GUID-1D7E2526-E35C-5522-BF06-C1CC72E5B15D"><p> <filepath>outgoingcalls.exe</filepath>  </p> </li>
+<li id="GUID-717B32F7-2DBE-5088-8B42-AC3437B39315"><p> <filepath>autodtmf.exe</filepath>  </p> </li>
+<li id="GUID-85027887-4C27-56FF-8A11-7ADE2BC89F93"><p> <filepath>incomingcalls.exe</filepath>  </p> </li>
+</ul> <p>Each executable must be run separately. </p> <p> <b>Note:</b> Set the <codeph>StartUpMode</codeph> mode to <codeph>1</codeph> in
+the <filepath>\epoc32\data\epoc.ini</filepath> file to start the emulator
+in text shell mode as the applications use a console based interface. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692" xml:lang="en"><title>Sensor
-Data Compensator Overview</title><shortdesc>The Sensor Data Compensator provides APIs to correct sensor data,
-based on device or display orientation. That is, using the APIs, the coordinate
-system can be adjusted appropriately to get correct sensor axis data in relation
-to the Symbian device user's current display orientation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-173CC4BB-4C2D-43B0-9ADD-85C716B9297B"><title>Description</title> 
-     <p>The sensor channel APIs retrieve coordinate information and angle
-data from different sensors when a display or device orientation change is
-detected. The data is bound to the device form factor and hardware configuration
-using device based coordinate system. Using the data, the sensor data compensator
-APIs can adjust the coordinate system to match the changed system characteristics.
-This procedure is called sensor data compensation. </p><p>For example, if
-a display orientation change (as illustrated in the following figure) is detected,
-the accelerometer sensor provides axis data using the device base coordinate
-system. To convert the axis data to match the current display orientation,
-sensor data compensator APIs can be used. The data compensator APIs enable
-you to adjust the coordinate system to match the changed system characteristics.</p><fig id="GUID-CB810DA3-6532-47DF-878E-A0D8A07ACC7C">
-<title>Example to illustrate adjustment of the coordinate system due to device
-orientation change</title>
-<image href="GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e135898_href.png" placement="inline"/>
-</fig><p>To convert the sensor data to the compensated values, the adjustment
-values (for example, interchanged x-axis with y-axis) for each device state
-that the compensation is applied to, must be configured and taken as an input
-for calculations.</p><fig id="GUID-15844543-6586-43AE-87C8-B90A4D24404D">
-<title>Correcting the coordinate system of a Symbian device</title>
-<desc>The figure depicts the correction of coordinate system in the Symbian
-device</desc>
-<image href="GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e135910_href.png" placement="inline"/>
-</fig><p>The following example explains how the sensor data compensation works,
-by illustrating the behavior of maps application of the Symbian device when
-the keyboard is in opened and closed state. </p><table id="GUID-6CF1E7CE-0076-415F-BF6A-E92034B6F6D4">
-<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry valign="top">Symbian device position</entry>
-<entry valign="top">Symbian device movement</entry>
-<entry valign="top">Application behavior</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>The keyboard is closed and the display is upward and parallel with
-the table surface</entry>
-<entry>The Symbian device spins around the z-axis</entry>
-<entry>The compass needle points to the north and the map does not move on
-the screen.</entry>
-</row>
-<row>
-<entry>The keyboard is opened and the display is upward and parallel with
-the table surface</entry>
-<entry>The Symbian device spins around the z-axis</entry>
-<entry>The compass needle points to the north and the map is always in the
-north-south direction on the screen.</entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-983C07BB-4B1A-4030-A533-22728BDCF281"><title>APIs</title><table id="GUID-B0112D3A-0CCB-47FF-BF2C-6DC4EE1217A7">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>CSensorDataCompensator</entry>
-<entry>The sensor data compensator class provides functions to
-compensate sensor data.</entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-<section id="GUID-E046AE53-A268-4085-8BF4-293873115857"><title>Typical Uses</title><ul>
-<li><p><xref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita">Compensating
-Sensor Data</xref></p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-92AD13DF-216A-4B5A-9C6D-5FA50BB0D692" xml:lang="en"><title>Sensor
+Data Compensator Overview</title><shortdesc>The Sensor Data Compensator provides APIs to correct sensor data,
+based on device or display orientation. That is, using the APIs, the coordinate
+system can be adjusted appropriately to get correct sensor axis data in relation
+to the Symbian device user's current display orientation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-173CC4BB-4C2D-43B0-9ADD-85C716B9297B"><title>Description</title> 
+     <p>The sensor channel APIs retrieve coordinate information and angle
+data from different sensors when a display or device orientation change is
+detected. The data is bound to the device form factor and hardware configuration
+using device based coordinate system. Using the data, the sensor data compensator
+APIs can adjust the coordinate system to match the changed system characteristics.
+This procedure is called sensor data compensation. </p><p>For example, if
+a display orientation change (as illustrated in the following figure) is detected,
+the accelerometer sensor provides axis data using the device base coordinate
+system. To convert the axis data to match the current display orientation,
+sensor data compensator APIs can be used. The data compensator APIs enable
+you to adjust the coordinate system to match the changed system characteristics.</p><fig id="GUID-CB810DA3-6532-47DF-878E-A0D8A07ACC7C">
+<title>Example to illustrate adjustment of the coordinate system due to device
+orientation change</title>
+<image href="GUID-24B8686D-727A-47A8-B01D-1BA1FBC8F771_d0e129360_href.png" placement="inline"/>
+</fig><p>To convert the sensor data to the compensated values, the adjustment
+values (for example, interchanged x-axis with y-axis) for each device state
+that the compensation is applied to, must be configured and taken as an input
+for calculations.</p><fig id="GUID-15844543-6586-43AE-87C8-B90A4D24404D">
+<title>Correcting the coordinate system of a Symbian device</title>
+<desc>The figure depicts the correction of coordinate system in the Symbian
+device</desc>
+<image href="GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e129372_href.png" placement="inline"/>
+</fig><p>The following example explains how the sensor data compensation works,
+by illustrating the behavior of maps application of the Symbian device when
+the keyboard is in opened and closed state. </p><table id="GUID-6CF1E7CE-0076-415F-BF6A-E92034B6F6D4">
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry valign="top">Symbian device position</entry>
+<entry valign="top">Symbian device movement</entry>
+<entry valign="top">Application behavior</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>The keyboard is closed and the display is upward and parallel with
+the table surface</entry>
+<entry>The Symbian device spins around the z-axis</entry>
+<entry>The compass needle points to the north and the map does not move on
+the screen.</entry>
+</row>
+<row>
+<entry>The keyboard is opened and the display is upward and parallel with
+the table surface</entry>
+<entry>The Symbian device spins around the z-axis</entry>
+<entry>The compass needle points to the north and the map is always in the
+north-south direction on the screen.</entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-983C07BB-4B1A-4030-A533-22728BDCF281"><title>APIs</title><table id="GUID-B0112D3A-0CCB-47FF-BF2C-6DC4EE1217A7">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>CSensorDataCompensator</entry>
+<entry>The sensor data compensator class provides functions to
+compensate sensor data.</entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+<section id="GUID-E046AE53-A268-4085-8BF4-293873115857"><title>Typical Uses</title><ul>
+<li><p><xref href="GUID-64AC6F53-A9A5-46FD-BCC6-4A9BD8D4DB5C.dita">Compensating
+Sensor Data</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-92DF40DF-3C7C-5052-A78A-A47B8A455C32.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-92DF40DF-3C7C-5052-A78A-A47B8A455C32"><title>About the Window server example code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>These examples show how to use the Window Server Client-Side API. Note that these examples create windows directly rather than going through the UI Control Framework, as standard applications would do. </p> <p>The source files for the examples can be found under: <filepath>examples\Graphics\WS\</filepath>. The following files are common to several of them: </p> <ul><li id="GUID-E1C16CA2-D759-5BB9-A4F4-FF6ED569C7E2"><p> <filepath>AppHolder.cpp</filepath> provides the standard GUI application framework classes. The only command handling provided is a menu with a <codeph>Close</codeph> command. </p> </li> <li id="GUID-D5B94922-F499-5E9A-B591-2DD414D204E9"><p> <filepath>Base.cpp</filepath> provides base classes that use the window server. <codeph>CWsClient</codeph> handles the connection to the window server: it is an active object that issues a request for window server events, and handles them in its <codeph>RunL()</codeph>. <codeph>CWindow</codeph> encapsulates a basic window. </p> </li> <li id="GUID-ED0CD7E0-464B-5B01-9DA0-CA6EB04990D5"><p> <varname>project-name</varname> <filepath>.cpp</filepath> provides most of the code specific to a particular example. Typically, they sub-class <codeph>CWsClient</codeph> and <codeph>CWindow</codeph>. </p> </li> </ul> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,58 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD" xml:lang="en"><title>Enabling
-Multi-Touch in the Emulator Tutorial</title><shortdesc>This topic describes how to configure the Symbian emulator to enable
-a multi-touch environment. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
-audience</b>: Application developers. </p>
-<p>This topic builds on <xref href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita">Multi-Touch
-Support in the Emulator Overview</xref>.</p>
-<section id="GUID-4F4F8E71-517D-4C5D-96A4-BB17CD49FD4C">       <title>Configuring
-the emulator</title> <p>Make sure that two or more mice are plugged in and
-detected on the Windows PC on which the emulator will run.  The number of
-detected mice can be from two up to the maximum number defined in the HAL <codeph>HALData::EPointerMaxPointers</codeph> attribute. </p><ol>
-<li id="GUID-63F317A2-E4EA-48BD-8F2B-40B54BF35EC6"><p>Add the following lines
-to the <filepath>\epoc32\data\epoc.ini</filepath> file. These lines enable
-ScreenPlay and multi-touch.</p><codeblock xml:space="preserve">SYMBIAN_BASE_USE_GCE ON
-EnableMultiTouch ON</codeblock></li>
-<li id="GUID-CA823DAB-C8C4-4E09-8491-0C0BCD57BAE4"><p>Specify the <codeph>MultiTouchProximityStep</codeph> and <codeph>MultiTouchPressureStep</codeph> values in the <filepath>\epoc32\data\epoc.ini</filepath> file to define
-the proximity and pressure steps.</p><codeblock xml:space="preserve">MultiTouchProximityStep 10
-MultiTouchPressureStep 200
-</codeblock><p>If the above two options are not defined in the <filepath>epoc.ini</filepath> file,
-the default proximity and pressure steps are taken from the following HAL
-attributes.</p><codeblock xml:space="preserve">HALData::EPointer3DProximityStep
-HALData::EPointer3DPressureStep</codeblock></li>
-</ol><p><b>Result</b>: Launch the emulator to verify that the mice are detected
-and displayed inside the application window area. When you move a mouse or
-scroll the mouse wheel, its X, Y and Z values are reflected in the status
-bar.</p>     </section>
-<section id="GUID-44C3561D-92A1-421E-9AD3-0D8648919C46-GENID-1-8-1-12-1-1-7-1-5-1-6-1-8-1-9-1-8-1-6-1-3-4">       <title>Enabling
-and disabling multi-touch</title><p>Multi-touch is only required by UI applications.
-Therefore, multi-touch is enabled inside the orange rectangular area shown
-on the following diagram. Inside the area two Windows pointers are displayed.
-The one numbered zero is the system pointer and the other is used only for
-multi-touch purposes. The first mouse to report events to the emulator is
-automatically taken as the primary mouse, which owns the Windows system pointer.</p><fig id="GUID-C62E31A2-65F8-4976-A3A9-058BFE3D30D3">
-<title>Multi-touch area</title>
-<image href="GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e199268_href.png" placement="inline"/>
-</fig><p><b>System pointer</b>. Once the system pointer moves outside multi-touch
-area, multi-touch is temporarily disabled and standard emulator pointer behavior
-is resumed. This means that only one Windows system pointer is displayed and
-it is controlled by both mice.</p>     <p><b>Non-system pointer</b>. If the
-non-system pointer moves out of the multi-touch area, the pointer just disappears
-from the screen. Disabling multi-touch is then not necessary because the system
-pointer behaves normally inside the multi-touch area. Moving the non-system
-pointer back into the area makes it reappear on the screen.</p>     </section>
-</conbody><related-links>
-<link href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita"><linktext>Multi-Touch
-Support in the Emulator Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-930F1E88-2A03-4BD1-AA2A-3A0128A844BD" xml:lang="en"><title>Enabling
+Multi-Touch in the Emulator Tutorial</title><shortdesc>This topic describes how to configure the Symbian emulator to enable
+a multi-touch environment. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
+audience</b>: Application developers. </p>
+<p>This topic builds on <xref href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita">Multi-Touch
+Support in the Emulator Overview</xref>.</p>
+<section id="GUID-4F4F8E71-517D-4C5D-96A4-BB17CD49FD4C">       <title>Configuring
+the emulator</title> <p>Make sure that two or more mice are plugged in and
+detected on the Windows PC on which the emulator will run.  The number of
+detected mice can be from two up to the maximum number defined in the HAL <codeph>HALData::EPointerMaxPointers</codeph> attribute. </p><ol>
+<li id="GUID-63F317A2-E4EA-48BD-8F2B-40B54BF35EC6"><p>Add the following lines
+to the <filepath>\epoc32\data\epoc.ini</filepath> file. These lines enable
+ScreenPlay and multi-touch.</p><codeblock xml:space="preserve">SYMBIAN_BASE_USE_GCE ON
+EnableMultiTouch ON</codeblock></li>
+<li id="GUID-CA823DAB-C8C4-4E09-8491-0C0BCD57BAE4"><p>Specify the <codeph>MultiTouchProximityStep</codeph> and <codeph>MultiTouchPressureStep</codeph> values in the <filepath>\epoc32\data\epoc.ini</filepath> file to define
+the proximity and pressure steps.</p><codeblock xml:space="preserve">MultiTouchProximityStep 10
+MultiTouchPressureStep 200
+</codeblock><p>If the above two options are not defined in the <filepath>epoc.ini</filepath> file,
+the default proximity and pressure steps are taken from the following HAL
+attributes.</p><codeblock xml:space="preserve">HALData::EPointer3DProximityStep
+HALData::EPointer3DPressureStep</codeblock></li>
+</ol><p><b>Result</b>: Launch the emulator to verify that the mice are detected
+and displayed inside the application window area. When you move a mouse or
+scroll the mouse wheel, its X, Y and Z values are reflected in the status
+bar.</p>     </section>
+<section id="GUID-44C3561D-92A1-421E-9AD3-0D8648919C46-GENID-1-10-1-12-1-1-7-1-6-1-6-1-9-1-9-1-8-1-6-1-3-4">       <title>Enabling
+and disabling multi-touch</title><p>Multi-touch is only required by UI applications.
+Therefore, multi-touch is enabled inside the orange rectangular area shown
+on the following diagram. Inside the area two Windows pointers are displayed.
+The one numbered zero is the system pointer and the other is used only for
+multi-touch purposes. The first mouse to report events to the emulator is
+automatically taken as the primary mouse, which owns the Windows system pointer.</p><fig id="GUID-C62E31A2-65F8-4976-A3A9-058BFE3D30D3">
+<title>Multi-touch area</title>
+<image href="GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e194260_href.png" placement="inline"/>
+</fig><p><b>System pointer</b>. Once the system pointer moves outside multi-touch
+area, multi-touch is temporarily disabled and standard emulator pointer behavior
+is resumed. This means that only one Windows system pointer is displayed and
+it is controlled by both mice.</p>     <p><b>Non-system pointer</b>. If the
+non-system pointer moves out of the multi-touch area, the pointer just disappears
+from the screen. Disabling multi-touch is then not necessary because the system
+pointer behaves normally inside the multi-touch area. Moving the non-system
+pointer back into the area makes it reappear on the screen.</p>     </section>
+</conbody><related-links>
+<link href="GUID-9126A296-0301-4077-A183-3D703F77C548.dita"><linktext>Multi-Touch
+Support in the Emulator Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e214529_href.png has changed
Binary file Symbian3/SDK/Source/GUID-935057C9-8FA9-5B41-A36C-03A825C51B32_d0e218266_href.png has changed
Binary file Symbian3/SDK/Source/GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e176542_href.png has changed
Binary file Symbian3/SDK/Source/GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e183136_href.png has changed
--- a/Symbian3/SDK/Source/GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827"><title>Active Backup Client Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Active Backup Client enables Symbian Developers to write backup and restore software with complete control of which data is backed up and restored. </p> <p>The backup client application is often referred to as the data owner as it owns the data. The data owner is automatically invoked to prepare and supply the data to the Backup Engine at backup time. Similarly, the data is automatically supplied back to the data owner on restore. </p> <section><title>Required Background</title> <p>Before you start, you must understand the following architecture and concepts: </p> <ul><li id="GUID-D8AE221E-2356-5A98-B338-39847C69A845"><p><xref href="GUID-5CA933B9-7987-5DDE-AE12-B0D5AFD31451.dita">Symbian backup and restore architecture</xref>  </p> </li> <li id="GUID-1BC9B7B5-9DE9-5E7A-8E66-F1752111134B"><p><xref href="GUID-7FDD9FEC-5017-5E5D-A50A-5F343A3C7F6C.dita"> Backup and restore modes</xref> (active, passive and proxy). </p> </li> </ul> </section> <section><title>Key concepts and terms</title> <p> <b>Data owner </b>  </p> <p>A Symbian process that owns the data to be backed up or restored is a data owner. It can be an application or a server. </p> <p> <b>Initiator/Responder</b>  </p> <p>There are two roles in MTP exchanges, an initiator and a responder. An initiator is the device which initiates requests and operations to the connected responder. A responder is the device which passively responds the requests and operations. Symbian MTP is implemented as a responder role only. A host PC or a portable device on a Symbian device is usually an initiator. </p> </section> <section><title>Architecture</title> <p>The following flowchart shows how the Active Backup Client (data owner application) works with other components for data backup and restore. The components provided by Symbian are in green. The components that a device vendor must implement are in blue. </p> <fig id="GUID-A32E2101-8CF4-5DCB-B200-B4219A21733A"><title>
-             Active Backup Client 
-          </title> <image href="GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e170970_href.jpg" placement="inline"/></fig> <ul><li id="GUID-EA86CFF4-6504-5C52-9B48-961EE80D8C4F"><p>The <b>Backup Server</b> communicates directly with the backup and restore initiator, for example a host PC. </p> <p>The Backup Server receives a request from a host PC for a backup or restore operation. It then calls the Backup Engine using the Backup Engine Client API (<xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-FB671D02-0F15-396F-9FB7-EE3E9372093C"><apiname>conn::CSBEClient</apiname></xref>) for lists of data sets. It also transfers data during a backup or a restore. </p> <p> <b>Note</b>: The Symbian platform includes a backup server which a device vendor may replace. </p> </li> <li id="GUID-D533320B-B8E6-5660-A423-BDD4B36227FC"><p>The<b> Backup Engine</b> component contains the logic related to the data backup and restore. It signals the start or completion of a backup or restore to all data owners. </p> <p> <b>Note</b>: This component runs in a separate process which allows the Backup Server to operate synchronously and asynchronously. </p> </li> <li id="GUID-121E55AE-5E5A-5533-AB57-3521DDCB6894"><p>An active <b>Data Owner Application</b> responds to signals from the Backup Engine. It releases resources in case of file lock or data confliction. It must define a <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> instance to connect to the Backup Engine and must provide a pointer to an <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation. The <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation prepares and transfers data to the Backup Engine for a backup and restore. </p> </li> </ul> </section> <section><title>APIs</title> <p>The Active Backup Client includes the following APIs: </p> <table id="GUID-78B19C43-C9D9-56F0-823F-7CF3F26238B8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref>  </p> </entry> <entry><p>Establishes a connection to the Backup Engine for the data owing process. </p> </entry> </row> <row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref>  </p> </entry> <entry><p>The data owner application must implement this interface to provide the data to the Backup Engine. It is passed to the <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> constructor. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Active Backup Client can be used to prepare and transfer data for the Backup Engine to do a backup and restore. </p> </section> </conbody><related-links><link href="GUID-DFF9DFC5-1BE0-5CA2-A2B9-27FA2DECFF59.dita"><linktext>Writing an Active Backup Client Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827"><title>Active Backup Client Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Active Backup Client enables Symbian Developers to write backup and restore software with complete control of which data is backed up and restored. </p> <p>The backup client application is often referred to as the data owner as it owns the data. The data owner is automatically invoked to prepare and supply the data to the Backup Engine at backup time. Similarly, the data is automatically supplied back to the data owner on restore. </p> <section><title>Required Background</title> <p>Before you start, you must understand the following architecture and concepts: </p> <ul><li id="GUID-D8AE221E-2356-5A98-B338-39847C69A845"><p><xref href="GUID-5CA933B9-7987-5DDE-AE12-B0D5AFD31451.dita">Symbian backup and restore architecture</xref>  </p> </li> <li id="GUID-1BC9B7B5-9DE9-5E7A-8E66-F1752111134B"><p><xref href="GUID-7FDD9FEC-5017-5E5D-A50A-5F343A3C7F6C.dita"> Backup and restore modes</xref> (active, passive and proxy). </p> </li> </ul> </section> <section><title>Key concepts and terms</title> <p> <b>Data owner </b>  </p> <p>A Symbian process that owns the data to be backed up or restored is a data owner. It can be an application or a server. </p> <p> <b>Initiator/Responder</b>  </p> <p>There are two roles in MTP exchanges, an initiator and a responder. An initiator is the device which initiates requests and operations to the connected responder. A responder is the device which passively responds the requests and operations. Symbian MTP is implemented as a responder role only. A host PC or a portable device on a Symbian device is usually an initiator. </p> </section> <section><title>Architecture</title> <p>The following flowchart shows how the Active Backup Client (data owner application) works with other components for data backup and restore. The components provided by Symbian are in green. The components that a device vendor must implement are in blue. </p> <fig id="GUID-A32E2101-8CF4-5DCB-B200-B4219A21733A"><title>
+             Active Backup Client 
+          </title> <image href="GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e164369_href.jpg" placement="inline"/></fig> <ul><li id="GUID-EA86CFF4-6504-5C52-9B48-961EE80D8C4F"><p>The <b>Backup Server</b> communicates directly with the backup and restore initiator, for example a host PC. </p> <p>The Backup Server receives a request from a host PC for a backup or restore operation. It then calls the Backup Engine using the Backup Engine Client API (<xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-FB671D02-0F15-396F-9FB7-EE3E9372093C"><apiname>conn::CSBEClient</apiname></xref>) for lists of data sets. It also transfers data during a backup or a restore. </p> <p> <b>Note</b>: The Symbian platform includes a backup server which a device vendor may replace. </p> </li> <li id="GUID-D533320B-B8E6-5660-A423-BDD4B36227FC"><p>The<b> Backup Engine</b> component contains the logic related to the data backup and restore. It signals the start or completion of a backup or restore to all data owners. </p> <p> <b>Note</b>: This component runs in a separate process which allows the Backup Server to operate synchronously and asynchronously. </p> </li> <li id="GUID-121E55AE-5E5A-5533-AB57-3521DDCB6894"><p>An active <b>Data Owner Application</b> responds to signals from the Backup Engine. It releases resources in case of file lock or data confliction. It must define a <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> instance to connect to the Backup Engine and must provide a pointer to an <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation. The <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation prepares and transfers data to the Backup Engine for a backup and restore. </p> </li> </ul> </section> <section><title>APIs</title> <p>The Active Backup Client includes the following APIs: </p> <table id="GUID-78B19C43-C9D9-56F0-823F-7CF3F26238B8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref>  </p> </entry> <entry><p>Establishes a connection to the Backup Engine for the data owing process. </p> </entry> </row> <row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref>  </p> </entry> <entry><p>The data owner application must implement this interface to provide the data to the Backup Engine. It is passed to the <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> constructor. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Active Backup Client can be used to prepare and transfer data for the Backup Engine to do a backup and restore. </p> </section> </conbody><related-links><link href="GUID-DFF9DFC5-1BE0-5CA2-A2B9-27FA2DECFF59.dita"><linktext>Writing an Active Backup Client Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e270526_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e274234_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e202480_href.png has changed
Binary file Symbian3/SDK/Source/GUID-93A4CD14-A3CD-57B2-BF32-57EF38F59ECF_d0e207488_href.png has changed
--- a/Symbian3/SDK/Source/GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD" xml:lang="en"><title>Wait
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Wait notes contain a wait graphic of indefinite duration. They are used
-during operations that take a long time when it is not possible to estimate
-the duration of the operation. Whenever possible, the user should be able
-to stop the operation. For this, a softkey labeled for example,<uicontrol>Cancel</uicontrol> is
-provided.</p>
-<fig id="GUID-12944F1C-48F3-4E80-804B-A585B911F0C8-GENID-1-8-1-6-1-1-5-1-13-1-1-8-1-2-2">
-<title>Wait note</title>
-<image href="GUID-3637DBF8-BABF-4F84-9A7D-8FF66A118261_d0e65306_href.png" scale="33" placement="inline"/>
-</fig>
-<section id="GUID-C5FFA38F-BBFD-44D7-979A-5B0A46420D17"> 
-     <title>Using wait notes in C++ applications</title>     <p>You can create
-either a basic wait note that is displayed only when your application is in
-the foreground or a global note that stays displayed even if the application
-launching the note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes). </p><p>Wait notes are
-predefined notes that cannot be used just by instantiating a simple note class.
-These notes' lifetime is based on a background process, and client code has
-to provide an interface to retrieve this information. For implementation information,
-see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.3" scope="peer">Creating a wait note</xref>.</p><p>To create a global wait note,
-use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref> in
-the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
-notes, you can change the icon or text displayed in the note, use a different
-kind of sound, or change the note duration using the setter methods in the
-class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p><p>For information on customizing
-global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
-tone, and softkeys using the methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#cee323af0704e07d3f1887a4a13c1639" format="application/java-archive"><codeph>SetGraphic()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#d23699273b28a39c0817bc575be767ab" format="application/java-archive"><codeph>SetAnimation()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#a8748ee0b3342c24a11b8ed0ea9121bc" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#f31895e5838994b1c70300cfd3d7d127" format="application/java-archive"><codeph>SetSoftkeys</codeph></xref>.</p></section>
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD" xml:lang="en"><title>Wait note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Wait notes contain a wait graphic of indefinite duration. They are used
+during operations that take a long time when it is not possible to estimate
+the duration of the operation. Whenever possible, the user should be able
+to stop the operation. For this, a softkey labeled for example,<uicontrol>Cancel</uicontrol> is
+provided.</p>
+<fig id="GUID-1D916CB1-020D-4BD6-A9DD-D22EFDB1ADC3">
+<title>Wait note</title>
+<image href="GUID-3C61E57D-BBBB-4E52-8C99-F359CB83D1BC_d0e59856_href.png" placement="inline"/>
+</fig>
+<section id="GUID-C5FFA38F-BBFD-44D7-979A-5B0A46420D17"> 
+     <title>Using wait notes in applications</title>     <p>You can create
+either a basic wait note that is displayed only when your application is in
+the foreground or a global note that stays displayed even if the application
+launching the note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes). </p><p>Wait notes are
+predefined notes that cannot be used just by instantiating a simple note class.
+These notes' lifetime is based on a background process, and client code has
+to provide an interface to retrieve this information. For implementation information,
+see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.3" scope="peer">Creating a wait note</xref>.</p><p>To create a global wait note,
+use the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref> class: <ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul> </p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class: <ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul></p></section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e53249_href.png has changed
Binary file Symbian3/SDK/Source/GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e59044_href.png has changed
--- a/Symbian3/SDK/Source/GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,63 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Arbortext, Inc., 1988-2004, v.4002-->
-<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
- "concept.dtd">
-<!-- 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" 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: 
--->
-<concept id="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50" xml:lang="en"><title>Classic
-UI Guide</title>
-<prolog>
-<metadata>
-<keywords></keywords>
-</metadata>
-</prolog>
-<conbody>
-<p>Classic UI provides the native UI support library, AVKON, including standard
-controls, views, dialogs and some services for UI applications.  </p>
-<section id="GUID-CF554F82-ABFF-4BD8-BC09-4BAA90FB3787"><table id="GUID-FB49FC91-126A-4D94-B79A-A3B172F6417B">
-<tgroup cols="2"><colspec colname="col1" colwidth="0.83*"/><colspec colname="col2"
-colwidth="1.17*"/>
-<thead>
-<row>
-<entry valign="top"><p>What you want to do</p></entry>
-<entry valign="top"><p>Where to start</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>I want to understand the fundamental architecture of a GUI application.</p></entry>
-<entry><xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application
-and UI frameworks</xref></entry>
-</row>
-<row>
-<entry><p>I want to design my application for a phone with a touch screen.</p></entry>
-<entry><xref href="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita">Touch UI<?Pub Caret?></xref></entry>
-</row>
-<row>
-<entry><p>I want to use the standard controls and dialogs that Classic UI
-provides.</p></entry>
-<entry><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI components</xref></entry>
-</row>
-<row>
-<entry><p>I want to create my own controls and animations.</p></entry>
-<entry><xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4-GENID-1-10-1-3-1-1-7-1.dita">The
-UI Control Framework (CONE)</xref></entry>
-</row>
-<row>
-<entry><p>I want to understand the user experience in Symbian platform devices
-without touch</p></entry>
-<entry><xref href="GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF.dita">Symbian
-device user experience for non-touch devices</xref></entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
-</conbody>
-</concept>
-<?Pub *0000002458?>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50" xml:lang="en"><title>Classic
+UI Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Classic UI provides the native UI support library, AVKON, including standard
+controls, views, dialogs and some services for UI applications.  </p>
+<section id="GUID-CF554F82-ABFF-4BD8-BC09-4BAA90FB3787"><table id="GUID-FB49FC91-126A-4D94-B79A-A3B172F6417B">
+<tgroup cols="2"><colspec colname="col1" colwidth="0.83*"/><colspec colname="col2" colwidth="1.17*"/>
+<thead>
+<row>
+<entry valign="top"><p>What you want to do</p></entry>
+<entry valign="top"><p>Where to start</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>I want to understand the fundamental architecture of a GUI application.</p></entry>
+<entry><xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application
+and UI frameworks</xref></entry>
+</row>
+<row>
+<entry><p>I want to design my application for a phone with a touch screen.</p></entry>
+<entry><xref href="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita">Touch
+UI</xref></entry>
+</row>
+<row>
+<entry><p>I want to use the standard controls and dialogs that Classic UI
+provides.</p></entry>
+<entry><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">UI components</xref></entry>
+</row>
+<row>
+<entry><p>I want to create my own controls and animations.</p></entry>
+<entry><xref href="GUID-6C16417B-5B37-5310-B59A-750D971AA6D4.dita">The UI Control Framework (CONE)</xref></entry>
+</row>
+<row>
+<entry><p>I want to understand the user experience in Symbian platform devices
+without touch</p></entry>
+<entry><xref href="GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF.dita"/></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e129840_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e136378_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,177 +1,177 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB" xml:lang="en"><title>Application
-Architecture Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>APPARC provides access to a cached list of applications, and their properties,
-on the device. APPARC also provides a mechanism for launching applications
-and switching between tasks. </p>
-<section><title>Purpose</title> <p>The main purpose of APPARC is to </p> <ul>
-<li id="GUID-869A9DDC-5BCE-58FE-A404-8B10B00ED539"><p>manage and register
-applications with the device </p> </li>
-<li id="GUID-C4C659F3-027E-5216-A0FD-DEA4A135081F"><p>scan the device for
-installed applications and associate data types to the applications based
-on the information in the registration file </p> </li>
-<li id="GUID-37BADDBF-EFFF-56C6-9348-9CB8D162B8CF"><p>load applications and
-manage the creation and destruction of application objects and document objects </p> </li>
-<li id="GUID-4FBABF6C-D3E5-5086-A45B-90A5927185CF"><p>support the registration
-of non-native applications </p> </li>
-<li id="GUID-5A799FDF-A676-5538-BDE0-FCDAB7857631"><p>define a Server Application
-Framework, which allows applications to communicate through the client-server
-architecture </p> </li>
-<li id="GUID-907A3B8B-EF8B-5280-B825-7C8D15038E50"><p>support multiple service
-types over the client-server link and establish a client-server connection
-to an already running server application </p> </li>
-<li id="GUID-F4DCD71D-2713-5C7E-83AC-DE976DCD6ECD"><p>monitor the lifetime
-of the server application </p> </li>
-<li id="GUID-B11E42C5-4326-5A59-A07C-95AE266AEAE3"><p>define the basic polymorphic
-interfaces that applications must conform to, such as, <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </li>
-<li id="GUID-AED566ED-D731-5A2D-956A-41A5AD0B0943"><p>provide a list of available
-control panel applications present on the device. </p> </li>
-</ul> </section>
-<section><title>Key concepts and terms</title> <dl>
-<dlentry>
-<dt>Server Application Framework</dt>
-<dd><p>The Server Application Framework provides generic service support over
-a client-server link, on which real services can be created. A service typically
-provides a client-side interface that clients can use directly, and a server-side
-interface that server applications have to implement. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>The following diagram shows the interaction
-of APPARC with other components. </p> <fig id="GUID-B597764E-2919-55D3-848B-D8579A4E0A98">
-<image href="GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e136378_href.jpg" placement="inline"/>
-</fig> <p>The following list describes the interaction between APPARC and
-each of the components depicted in the APPARC architectural diagram: </p> <ul>
-<li id="GUID-BAA2F511-151F-5B24-9B31-B6203C8905C4"><p>APPARC provides the
-basic behavior for GUI-based applications. APPARC also provides basic behavior
-for documents in a document-view based application. Uikon builds on the basic
-behavior that APPARC provides for GUI applications. PIM application components
-(Contacts and Calendar) derive the basic behavior for GUI-based applications
-from APPARC. </p> </li>
-<li id="GUID-6E250526-6427-5D7C-BED6-AA903C27E342"><p>APPARC maintains a list
-of installed applications on the device. APPARC supports rule-based application
-launching which is implemented as ECOM plug-ins. These plug-ins define rules
-that enable APPARC to either deny or accept the application launch requests. </p> </li>
-<li id="GUID-EF948E8F-3540-5346-BC63-FCEAD9AA80A7"><p>Software Install (SWI)
-allows installing, uninstalling and upgrading of native software on the device.
-When an application needs to be installed, SWI uses APPARC for launching applications
-if run-on-install or run-on-uninstall is specified. </p> </li>
-<li id="GUID-30282950-6E98-5988-A05B-2B5D8E86848C"><p>When an application
-is launched APPARC interacts with the GDI and BIT GDI components to associate
-the application with the appropriate application icon, caption and display
-screen. </p> </li>
-</ul> </section>
-<section><title>API summary</title> <table id="GUID-8AE3BE8D-64A7-5356-B7C8-9C399A2C09D7">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry><p><b>API</b></p></entry>
-<entry><p><b>Description</b></p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref>  </p> </entry>
-<entry><p>A class that defines the basic twin roles of an application class: </p> <ul>
-<li id="GUID-D25C2518-DEAB-54F1-AD7D-64D5C98C230E"><p>as a factory that creates
-concrete document objects </p> </li>
-<li id="GUID-5807892A-1432-5CD9-BF89-B9FF1DE369B5"><p>as a supplier of utility
-functions not specific to any particular instance of a document. </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A7C7B19A-66D8-38A7-B5D6-03B81D2F2C93.dita"><apiname>CApaAppListNotifier</apiname></xref>  </p> </entry>
-<entry><p>An application list change notifier that provides a notification
-whenever an application is added or deleted. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-0510F0C4-2D81-3C4A-A3FC-95B9F624FF14.dita"><apiname>CApaCommandLine</apiname></xref>  </p> </entry>
-<entry><p>A class that provides information for launching an application.
-This class is often referred to as a command line and it contains </p> <ul>
-<li id="GUID-41D2C6FB-1E60-5BCB-B478-0DC4D0ECCCD6"><p>the name of the application
-EXE to be launched </p> </li>
-<li id="GUID-4D1DB1CC-8D6A-5A8C-921B-A6885F1B0336"><p>the document name </p> </li>
-<li id="GUID-A7E91EAD-7C40-56F6-83E2-106FA9E98F1D"><p>a command code that
-defines the way an application is launched (the structure of this depends
-on the application to be launched). </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </entry>
-<entry><p>The base class for all documents. A document contains the data associated
-with the content of the application. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4FB064FC-210C-384A-BE92-35CA399B34C3.dita"><apiname>CApaSystemControlList</apiname></xref>  </p> </entry>
-<entry><p>A class that provides a list of all available control panel applications
-present on the device. This class is implemented as a linked list of <xref href="GUID-460DE2A7-6E12-3B0D-9026-63119F093EB6.dita"><apiname>CApaSystemControl</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-C4F91485-6386-36EC-982B-DC2B7AAE7B7A.dita"><apiname>CServiceRegistry</apiname></xref>  </p> </entry>
-<entry><p>The Service Registry stores associations between service-datatype
-pairs and applications. The service-datatype pair is the primary key for the
-registry. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-2E824A1A-078A-3D43-8B49-DF6328330B51.dita"><apiname>RApaAppServiceBase</apiname></xref>  </p> </entry>
-<entry><p>The base class that provides a client-side interface for accessing
-server applications. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry>
-<entry><p>A session with the APPARC server providing access to a cached list
-of applications on the device. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p><b>Developing a GUI-based application</b> </p> <p>A
-GUI-based application can be developed using the <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref> interfaces.
-For more information, see <xref href="GUID-1D7BD70F-40A3-53FF-8150-A9CAFA4D01D8.dita"> A
-Minimal UI Application</xref>. </p> <p><b>Enumerating applications</b> </p> <p>APPARC
-provides a set of APIs that can enumerate the list of applications on the
-device. For more information, see <xref href="GUID-4E1B057E-5291-54FC-A0C0-37234CBFBD8E.dita">Enumerating
-applications</xref>. </p> <p><b>Accessing running applications</b> </p> <p>Applications
-running on a device are known as tasks. The <xref href="GUID-E1A1806C-8757-35DF-A4FB-AE3C63DED364.dita"><apiname>TApaTaskList</apiname></xref> class
-is used to access applications running on a device, where each task can be
-an instance of the <xref href="GUID-851055CF-D5E6-34EA-8D4B-53FC50D90C24.dita"><apiname>TApaTask</apiname></xref> class, which is used to manipulate
-or query tasks. For more information, see <xref href="GUID-0F1CB874-391F-5D44-B960-517E447DC712.dita">Accessing
-and manipulating running applications</xref>. </p> <p><b>Creating a control
-panel application</b> </p> <p>APPARC provides an API to create a control panel
-application. For more information, see <xref href="GUID-86AB2626-27F1-5761-85F7-5644C5D0A675.dita">Creating
-control panel applications</xref>. </p> <p><b>Creating a new service</b> </p> <p>The
-server application framework supports platform-level services between client
-and server applications. These services must be defined for client and server
-applications to communicate. For more information, see <xref href="GUID-5862F14F-5BB7-584B-A8B1-447975C42D49.dita">Creating
-a new service</xref>. </p> <p><b>Using a service in a client</b> </p> <p>Clients
-and server applications interact through a common service, which adheres to
-a protocol defining the communication channel between the two. This inter-process
-communication channel also provides a security checkpoint for application
-capability checking and so on. Services provide useful functionality to clients.
-For more information, see <xref href="GUID-B12A3024-44BF-51FF-9B84-14DB99ADC907.dita">Using
-a service in a client</xref>. </p> <p><b>Implementing services in a server
-application</b> </p> <p>Server applications can have one or many services.
-Each service type has a unique identification (UID). For more information,
-see <xref href="GUID-A5E4A8AD-8A40-5567-AE97-8CC6B496093E.dita">Implementing services
-in a server application</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita"><linktext>Generic Application
-Support</linktext></link>
-<link href="GUID-827AFAA3-75A4-5F08-8F83-1E36DAD8533D.dita"><linktext>Secure Software
-Install</linktext></link>
-<link href="GUID-FC2F5CDE-D140-5893-894D-D9B93AF6BDC2.dita"><linktext>Using Uikon</linktext>
-</link>
-<link href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"><linktext>Graphics
-Device Interface (GDI)</linktext></link>
-<link href="GUID-638C061E-49BE-4297-8C02-E3EE261C7F26.dita"><linktext>Calendar
-Guide</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB" xml:lang="en"><title>Application
+Architecture Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>APPARC provides access to a cached list of applications, and their properties,
+on the device. APPARC also provides a mechanism for launching applications
+and switching between tasks. </p>
+<section><title>Purpose</title> <p>The main purpose of APPARC is to </p> <ul>
+<li id="GUID-869A9DDC-5BCE-58FE-A404-8B10B00ED539"><p>manage and register
+applications with the device </p> </li>
+<li id="GUID-C4C659F3-027E-5216-A0FD-DEA4A135081F"><p>scan the device for
+installed applications and associate data types to the applications based
+on the information in the registration file </p> </li>
+<li id="GUID-37BADDBF-EFFF-56C6-9348-9CB8D162B8CF"><p>load applications and
+manage the creation and destruction of application objects and document objects </p> </li>
+<li id="GUID-4FBABF6C-D3E5-5086-A45B-90A5927185CF"><p>support the registration
+of non-native applications </p> </li>
+<li id="GUID-5A799FDF-A676-5538-BDE0-FCDAB7857631"><p>define a Server Application
+Framework, which allows applications to communicate through the client-server
+architecture </p> </li>
+<li id="GUID-907A3B8B-EF8B-5280-B825-7C8D15038E50"><p>support multiple service
+types over the client-server link and establish a client-server connection
+to an already running server application </p> </li>
+<li id="GUID-F4DCD71D-2713-5C7E-83AC-DE976DCD6ECD"><p>monitor the lifetime
+of the server application </p> </li>
+<li id="GUID-B11E42C5-4326-5A59-A07C-95AE266AEAE3"><p>define the basic polymorphic
+interfaces that applications must conform to, such as, <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </li>
+<li id="GUID-AED566ED-D731-5A2D-956A-41A5AD0B0943"><p>provide a list of available
+control panel applications present on the device. </p> </li>
+</ul> </section>
+<section><title>Key concepts and terms</title> <dl>
+<dlentry>
+<dt>Server Application Framework</dt>
+<dd><p>The Server Application Framework provides generic service support over
+a client-server link, on which real services can be created. A service typically
+provides a client-side interface that clients can use directly, and a server-side
+interface that server applications have to implement. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>The following diagram shows the interaction
+of APPARC with other components. </p> <fig id="GUID-B597764E-2919-55D3-848B-D8579A4E0A98">
+<image href="GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e129840_href.jpg" placement="inline"/>
+</fig> <p>The following list describes the interaction between APPARC and
+each of the components depicted in the APPARC architectural diagram: </p> <ul>
+<li id="GUID-BAA2F511-151F-5B24-9B31-B6203C8905C4"><p>APPARC provides the
+basic behavior for GUI-based applications. APPARC also provides basic behavior
+for documents in a document-view based application. Uikon builds on the basic
+behavior that APPARC provides for GUI applications. PIM application components
+(Contacts and Calendar) derive the basic behavior for GUI-based applications
+from APPARC. </p> </li>
+<li id="GUID-6E250526-6427-5D7C-BED6-AA903C27E342"><p>APPARC maintains a list
+of installed applications on the device. APPARC supports rule-based application
+launching which is implemented as ECOM plug-ins. These plug-ins define rules
+that enable APPARC to either deny or accept the application launch requests. </p> </li>
+<li id="GUID-EF948E8F-3540-5346-BC63-FCEAD9AA80A7"><p>Software Install (SWI)
+allows installing, uninstalling and upgrading of native software on the device.
+When an application needs to be installed, SWI uses APPARC for launching applications
+if run-on-install or run-on-uninstall is specified. </p> </li>
+<li id="GUID-30282950-6E98-5988-A05B-2B5D8E86848C"><p>When an application
+is launched APPARC interacts with the GDI and BIT GDI components to associate
+the application with the appropriate application icon, caption and display
+screen. </p> </li>
+</ul> </section>
+<section><title>API summary</title> <table id="GUID-8AE3BE8D-64A7-5356-B7C8-9C399A2C09D7">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry><p><b>API</b></p></entry>
+<entry><p><b>Description</b></p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref>  </p> </entry>
+<entry><p>A class that defines the basic twin roles of an application class: </p> <ul>
+<li id="GUID-D25C2518-DEAB-54F1-AD7D-64D5C98C230E"><p>as a factory that creates
+concrete document objects </p> </li>
+<li id="GUID-5807892A-1432-5CD9-BF89-B9FF1DE369B5"><p>as a supplier of utility
+functions not specific to any particular instance of a document. </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A7C7B19A-66D8-38A7-B5D6-03B81D2F2C93.dita"><apiname>CApaAppListNotifier</apiname></xref>  </p> </entry>
+<entry><p>An application list change notifier that provides a notification
+whenever an application is added or deleted. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-0510F0C4-2D81-3C4A-A3FC-95B9F624FF14.dita"><apiname>CApaCommandLine</apiname></xref>  </p> </entry>
+<entry><p>A class that provides information for launching an application.
+This class is often referred to as a command line and it contains </p> <ul>
+<li id="GUID-41D2C6FB-1E60-5BCB-B478-0DC4D0ECCCD6"><p>the name of the application
+EXE to be launched </p> </li>
+<li id="GUID-4D1DB1CC-8D6A-5A8C-921B-A6885F1B0336"><p>the document name </p> </li>
+<li id="GUID-A7E91EAD-7C40-56F6-83E2-106FA9E98F1D"><p>a command code that
+defines the way an application is launched (the structure of this depends
+on the application to be launched). </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </entry>
+<entry><p>The base class for all documents. A document contains the data associated
+with the content of the application. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4FB064FC-210C-384A-BE92-35CA399B34C3.dita"><apiname>CApaSystemControlList</apiname></xref>  </p> </entry>
+<entry><p>A class that provides a list of all available control panel applications
+present on the device. This class is implemented as a linked list of <xref href="GUID-460DE2A7-6E12-3B0D-9026-63119F093EB6.dita"><apiname>CApaSystemControl</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-C4F91485-6386-36EC-982B-DC2B7AAE7B7A.dita"><apiname>CServiceRegistry</apiname></xref>  </p> </entry>
+<entry><p>The Service Registry stores associations between service-datatype
+pairs and applications. The service-datatype pair is the primary key for the
+registry. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-2E824A1A-078A-3D43-8B49-DF6328330B51.dita"><apiname>RApaAppServiceBase</apiname></xref>  </p> </entry>
+<entry><p>The base class that provides a client-side interface for accessing
+server applications. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry>
+<entry><p>A session with the APPARC server providing access to a cached list
+of applications on the device. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p><b>Developing a GUI-based application</b> </p> <p>A
+GUI-based application can be developed using the <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref> interfaces.
+For more information, see <xref href="GUID-1D7BD70F-40A3-53FF-8150-A9CAFA4D01D8.dita"> A
+Minimal UI Application</xref>. </p> <p><b>Enumerating applications</b> </p> <p>APPARC
+provides a set of APIs that can enumerate the list of applications on the
+device. For more information, see <xref href="GUID-4E1B057E-5291-54FC-A0C0-37234CBFBD8E.dita">Enumerating
+applications</xref>. </p> <p><b>Accessing running applications</b> </p> <p>Applications
+running on a device are known as tasks. The <xref href="GUID-E1A1806C-8757-35DF-A4FB-AE3C63DED364.dita"><apiname>TApaTaskList</apiname></xref> class
+is used to access applications running on a device, where each task can be
+an instance of the <xref href="GUID-851055CF-D5E6-34EA-8D4B-53FC50D90C24.dita"><apiname>TApaTask</apiname></xref> class, which is used to manipulate
+or query tasks. For more information, see <xref href="GUID-0F1CB874-391F-5D44-B960-517E447DC712.dita">Accessing
+and manipulating running applications</xref>. </p> <p><b>Creating a control
+panel application</b> </p> <p>APPARC provides an API to create a control panel
+application. For more information, see <xref href="GUID-86AB2626-27F1-5761-85F7-5644C5D0A675.dita">Creating
+control panel applications</xref>. </p> <p><b>Creating a new service</b> </p> <p>The
+server application framework supports platform-level services between client
+and server applications. These services must be defined for client and server
+applications to communicate. For more information, see <xref href="GUID-5862F14F-5BB7-584B-A8B1-447975C42D49.dita">Creating
+a new service</xref>. </p> <p><b>Using a service in a client</b> </p> <p>Clients
+and server applications interact through a common service, which adheres to
+a protocol defining the communication channel between the two. This inter-process
+communication channel also provides a security checkpoint for application
+capability checking and so on. Services provide useful functionality to clients.
+For more information, see <xref href="GUID-B12A3024-44BF-51FF-9B84-14DB99ADC907.dita">Using
+a service in a client</xref>. </p> <p><b>Implementing services in a server
+application</b> </p> <p>Server applications can have one or many services.
+Each service type has a unique identification (UID). For more information,
+see <xref href="GUID-A5E4A8AD-8A40-5567-AE97-8CC6B496093E.dita">Implementing services
+in a server application</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita"><linktext>Generic Application
+Support</linktext></link>
+<link href="GUID-827AFAA3-75A4-5F08-8F83-1E36DAD8533D.dita"><linktext>Secure Software
+Install</linktext></link>
+<link href="GUID-FC2F5CDE-D140-5893-894D-D9B93AF6BDC2.dita"><linktext>Using Uikon</linktext>
+</link>
+<link href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"><linktext>Graphics
+Device Interface (GDI)</linktext></link>
+<link href="GUID-638C061E-49BE-4297-8C02-E3EE261C7F26.dita"><linktext>Calendar
+Guide</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426550_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9482CC98-2600-539D-A243-639CF11A2599_d0e426712_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,585 +1,614 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2" xml:lang="en"><title>List
-of Example Code Use Cases</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document lists all the example code programs available for each module,
-organised by use case. </p>
-<section id="GUID-2E20A530-17B3-4D82-AE38-33832BE1EE5F"><title>Symbian Platform
-Fundamentals</title> <ul>
-<li id="GUID-1B1B8502-164E-55B1-A922-FC10F631719D"><p><xref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita">Basic
-helloworld application</xref>  </p> </li>
-<li id="GUID-C418B11F-2806-5C26-9D0C-D2BBA08C49A5"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How
-to create a C class</xref>  </p> </li>
-<li id="GUID-C49BC6C1-5DD9-5CD1-B78D-F58E446C8702"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How
-to do single phase construction</xref>  </p> </li>
-<li id="GUID-D2DBFCF1-50A9-5632-8279-129366248751"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How
-to do two-phase construction</xref>  </p> </li>
-<li id="GUID-A2B894D2-1A35-5FC2-8FF9-637F2FA63595"><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita"> How
-to use an R class</xref>  </p> </li>
-<li id="GUID-E2958219-436C-550E-A9B3-26CB402C431E"><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita"> How
-to use a T class</xref>  </p> </li>
-<li id="GUID-17416CA0-E455-535A-A06B-8C546D95D08D"><p><xref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita">How
-to use a mixin class</xref>  </p> </li>
-<li id="GUID-35E98BB5-E747-53DC-BCC5-87968FF87913"><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita"> How
-to create a static DLL</xref>  </p> </li>
-<li id="GUID-0A9F3C9F-C957-5ECA-A06F-5A3D3F42FFD9"><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita"> How
-to use a static DLL</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-EFBCC960-EDCD-48FB-9BB0-9609A633ECE4"><title>Application
-Framework</title> <ul>
-
-
-
-
-
-
-
-<li id="GUID-C0CFA5C6-0039-59FB-9A15-322A1752F9C2"><p><xref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita">How
-to implement a simple GUI application with a single view</xref>  </p> </li>
-<li id="GUID-71EC6DCA-2989-5E40-8015-0F3F24508103"><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">How to create an animation
-using the Bitmap Animation framework</xref>  </p> </li>
-<li id="GUID-70E03963-92C8-5274-8F2A-0B42A9502C4D"><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">How to view an animation
-inside a window</xref>  </p> </li>
-</ul> </section>
-
-<section id="GUID-6B6D9D19-C847-44F8-A649-B168DD700042"><title>Communication
-Framework</title> <p><b>Data Server</b></p><ul>
-<li id="GUID-794A4BED-FAC8-5CAF-B57E-DD1222C11BC5"><p><xref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita">How
-to do connection monitoring and management using the RConnection API</xref>  </p> </li>
-</ul> </section>
-
-<section id="GUID-25D09F03-F721-4270-81E6-CD5F43859E3E"><title>High Level
-Internet Protocols </title> <ul>
-<li id="GUID-C8E2CFB4-F3B2-5F1E-AF0D-C6A7D4B46066"><p><xref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita">How
-to use HTTP APIs</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-D84ED617-A6BF-4563-BBFF-FDADBC46F3D1"><title>Generic Application
-Support</title> <ul>
-<li id="GUID-8DD3CBC3-FFEE-5399-B0A0-EFB98F3DA09F"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How
-to add a floating alarm to the alarm server</xref>  </p> </li>
-<li id="GUID-5F232D0C-A2EA-5C63-B308-F60C8B67FCCF"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How
-to add a fixed alarm to the alarm server</xref>  </p> </li>
-<li id="GUID-474F7658-3DEB-56A4-AF63-69A23FBFD0D8"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How
-to get notification from the alarm server</xref>  </p> </li>
-
-
-
-</ul> </section>
-<section id="GUID-ED27F9A8-98CD-4DE1-B916-EFD2FC52C425"><title>Generic OS
-Services</title> <ul>
-<li id="GUID-6DA76648-D820-59B7-B51C-35FB18D9FA99"><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">How
-to compress data using the EZLIB API</xref>  </p> </li>
-<li id="GUID-501BF7D9-2B8E-5056-8229-73CC61961C28"><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">How
-to decompress data using the EZLIB API</xref>  </p> </li>
-<li id="GUID-BF304C4A-FD6F-588C-9F54-E9F7036FFB50"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How
-to create a secure directory using PIPS</xref>  </p> </li>
-<li id="GUID-81D08636-1D94-5E37-91FD-5D225042198B"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How
-to read data from a file using PIPS</xref> </p> </li>
-<li id="GUID-DB774EFB-B96D-5792-B97B-4F14AA30C9AF"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How
-to write data to a file using PIPS</xref>  </p> </li>
-<li id="GUID-E77A4C18-6F2F-5B67-A4E3-4F8E6AD00577"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How
-to remove the secure directory using PIPS</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-7"><p><xref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita">How
-to use the P.I.P.S. standard C maths library, libm.dll</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-8"><p><xref href="guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.dita">How
-to compress/ decompress a file using Open C library.</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-9"><p><xref href="guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.dita">How
-to compress/ decompress a string using Open C library.</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-10"><p><xref href="guid-4e9f70e8-96f8-45be-90fc-00c9071cf562.dita">How
-to do filtered data compression and Huffman compression using Open C library.</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-11"><p><xref href="guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.dita">How
-to send/receive messages using open C message queue library</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-12"><p><xref href="guid-ef84586b-da53-4132-b481-aef6ba5a0994.dita">Shows
-string utility using open C libraries</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-13"><p><xref href="guid-b9259541-c444-400a-8f6e-8daaa5381a79.dita">How
-to write solution for Producer/ Consumer Problem using Open C</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-14"><p><xref href="guid-b83a4952-b5e5-4ef5-a1c9-ee48705964a1.dita">how
-to redirect stdio to a file using libc library </xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-15"><p><xref href="guid-72f72df3-653c-414c-a357-7613ad8bc169.dita">How
-to 	convert a MS-word document (i.e. .doc) file in to a plain text(i.e. .txt)
-file/Adobe acrobat(i.e. .pdf) file/ post-script (i.e. .ps) file/ xml (i.e.
-.xml) file. </xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-16"><p><xref href="guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.dita">How
-to handle global variables within the library code</xref>  </p> </li>
-<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-12-1-1-5-1-2-7-2-17"><p><xref href="guid-723e559a-ab8e-435f-a34c-78b7a32f1fb9.dita">How
-to solve WSD (Writable Static Data) problem</xref>  </p> </li>
-<li id="GUID-7EDFF698-152D-5175-9C5A-CEC646857A71"><p><xref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita">How
-to write a simple console-based STDLIB (C Standard library) program</xref>  </p> </li>
-<li id="GUID-F7ADF2C8-A3B5-59FD-BD84-CDD4F41B7B88"><p><xref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita">How
-to write a Techview GUI application whose engine is written using STDLIB</xref>  </p> </li>
-<li id="GUID-0E9CD40B-98F4-54B9-AFB6-696597537A8C"><p><xref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita">How
-to create the most basic STDLIB application</xref>  </p> </li>
-<li id="GUID-42554490-3FB6-5919-99CF-A47EAA96958F"><p><xref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita">How
-to develop hybrid application which uses both pure C and native Symbian C++
-APIs</xref>  </p> </li>
-<li id="GUID-D06B9590-D071-5F03-86EB-205D0EDFF691"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How
-to create a named pipe</xref>  </p> </li>
-<li id="GUID-5E873B57-54DB-583F-BE06-62E2E83A4611"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How
-a parent process communicates with its child process using named pipes (FIFO)</xref>  </p> </li>
-<li id="GUID-1C7E92C2-A51D-5E85-A549-3066274F12D3"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How
-a parent process communicates with its child process using a single pipe (popen())</xref>  </p> </li>
-<li id="GUID-598317ED-3B57-5CD6-9C7A-FFE1A5031DEC"><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">How
-to create multiple threads in PIPS using libpthread</xref>  </p> </li>
-<li id="GUID-C1817157-E53E-5E11-BC94-8F93BCFC1E7D"><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">How
-to synchronize among multi threads in PIPS</xref>  </p> </li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to handle
-a signal using the default handler</xref> </p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to handle
-a signal using a customized signal handler</xref> </p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to ignore
-an incoming signal</xref></p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to block
-and release a signal</xref></p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to wait
-for a signal</xref></p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to handle
-a SIGPIPE signal</xref></p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to gracefully
-terminate a process</xref></p></li>
-<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How to handle
-an asynchronous event using signals</xref></p></li>
-<li id="GUID-BD1B9524-EC3A-5D15-8A8C-F3F737ABB0B3"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to create a data recognizer</xref>  </p> </li>
-<li id="GUID-AA15D870-5CA0-50FB-9CB0-B2FBBCADB828"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to get the MIME type(s)
-that a data recognizer is capable of recognizing</xref>  </p> </li>
-<li id="GUID-C0913B8A-CB5E-5526-93FE-D8F8380CD77D"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to do data recognition</xref>  </p> </li>
-<li id="GUID-84B5F4AF-8813-59DC-85D8-4120862DEC77"><p><xref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita">How
-to run tasks using the task scheduler</xref>  </p> </li>
-<li id="GUID-87AC8A91-5C48-5B49-BAB1-07DCA7C8DEAA"><p><xref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita">How
-to use the XML framework to parse XML and WBXML files</xref>  </p> </li>
-<li id="GUID-105BAEF8-1C52-5F96-A8C4-5C5386ADCA87"><p><xref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita">How
-to read data from a resource file into an array</xref>  </p> </li>
-<li id="GUID-F323A1E9-35F5-5309-A5BD-882B43AC6807"><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">How
-to use a resource reader to read data from a resource file into the data members
-of a class</xref>  </p> </li>
-<li id="GUID-722045B8-B596-5C93-B963-69E4A35A07DD"><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">How
-to read a resource from a resource file</xref>  </p> </li>
-<li id="GUID-4B800C0B-1547-5E51-9B79-3EE85F6D714F"><p><xref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita">How
-to read a string resource and print it</xref>  </p> </li>
-<li id="GUID-898F03EA-581C-5D7E-8456-42CF585125CA"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How
-the signature of a resource file is checked before it is used</xref>  </p> </li>
-<li id="GUID-68031BED-04CA-5E0F-BDA7-79F9FA12DD49"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How
-to read a text string from a resource file</xref>  </p> </li>
-<li id="GUID-9D47352E-2F93-59F9-A45C-E3C0F160BBA3"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How
-to check the identity of a resource file</xref>  </p> </li>
-<li id="GUID-F8F236F3-E6A7-5632-80B7-537229AA0A51"><p><xref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita">How
-to read multiple resource files</xref>  </p> </li>
-<li id="GUID-8C50391F-C16B-5228-A4A3-F48A4BE38A2E"><p><xref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita">How
-to use multiple resource files with cross-referenced resources</xref>  </p> </li>
-<li id="GUID-02DC7916-A015-525E-9DD6-2CBBE7E66F1F"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How
-to write an interface definition for an ECOM plug-in</xref>  </p> </li>
-<li id="GUID-FCD351BC-4518-561B-BED4-0F683C591EF6"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How
-to implement an interface in an ECOM plug-in</xref>  </p> </li>
-<li id="GUID-7E344DA7-73C1-5C86-B67D-9EB4D2543BD6"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How
-to obtain the default implementation of an interface in an ECOM plug-in</xref>  </p> </li>
-<li id="GUID-C82E4427-24A6-5BC6-BA7C-602EB76ADADD"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How
-to obtain an implementation of an interface in an ECOM plug-in</xref>  </p> </li>
-<li id="GUID-69600CAF-72D8-5158-AC0A-881384657285"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How
-a client application uses the interface in an ECOM plug-in</xref>  </p> </li>
-<li id="GUID-E080B95A-6D75-5680-B14F-903C6AA5C7C8"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to do string handling
-with EUserHl</xref>  </p> </li>
-<li id="GUID-DA38E7D3-1DEC-5E9B-823B-87AA91F33A80"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to do resource management
-using EUserHl</xref>  </p> </li>
-<li id="GUID-6C633D8B-06C8-53B8-8F47-ABFAEAE9F932"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to get the memory overhead
-of using EUserHl</xref>  </p> </li>
-
-
-
-
-
-</ul> </section>
-<section id="GUID-F934D199-D090-47D0-AD6F-98E44F54D7CB"><title>Graphics</title> <ul>
-<li id="GUID-8CFA8A2F-FA0F-5D05-B3CE-CBE7040414E2"><p><xref href="GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259.dita">How
-to create an animated sprite from a bitmap</xref>  </p> </li>
-<li id="GUID-3D66363D-CA14-500B-A0CD-DE7D872D3544"><p><xref href="GUID-A15C553D-9D64-5C48-9274-6DD1642CDC23.dita">How
-to use the window server's direct screen access interface</xref>  </p> </li>
-<li id="GUID-5B1C7A2D-39E6-5ECA-840E-463B1BC3DF9F"><p><xref href="GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939.dita">How
-to do ordinal positioning of windows</xref>  </p> </li>
-<li id="GUID-3E3251BB-5439-5D18-ABA1-9091009F5E24"><p><xref href="GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504.dita">How
-to implement simple freehand drawing using a pointer buffer</xref>  </p> </li>
-<li id="GUID-9CF75FE1-DEAA-5005-8EC7-8AF3C80020A8"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How
-to load a bitmap</xref>  </p> </li>
-<li id="GUID-E9332993-C8C5-5742-9855-3FC28CB80342"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How
-to draw a bitmap</xref>  </p> </li>
-<li id="GUID-A1AC068A-A4AD-5929-82A8-C29C2EFD2EF4"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How
-to construct a control</xref>  </p> </li>
-<li id="GUID-63D12F06-952F-5092-B896-250051A870A3"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How
-to rotate a bitmap</xref>  </p> </li>
-<li id="GUID-F59C6098-3065-5270-A21C-BC4CA88C8D67"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How
-to create a label</xref>  </p> </li>
-
-
-
-
-
-
-
-<li id="GUID-DDF37255-B1FF-5D9D-95E2-7D19599AD606"><p><xref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita">How
-to draw various shapes in a window</xref> </p> </li>
-
-
-
-
-
-
-
-
-
-</ul> </section>
-<section id="GUID-8F0535DB-E323-470B-BCC3-F35A527B0B23"><title>Kernel and
-Hardware Services</title> <ul>
-<li id="GUID-B9AF4BF9-D13A-532B-85C4-8A8DEE66926A"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to insert elements into a dynamic array</xref>  </p> </li>
-<li id="GUID-5F9B9C90-3B69-594E-8E7A-3A7771F86278"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to append elements to a dynamic array</xref>  </p> </li>
-<li id="GUID-6A803B5C-AF53-58E2-85B8-568FC26E8DF7"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to access elements of a dynamic array</xref>  </p> </li>
-<li id="GUID-E981FB4E-F595-55C1-81AA-C6A43E17AE14"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to remove elements from a dynamic array</xref>  </p> </li>
-<li id="GUID-BF576282-EC17-500A-8E1D-3726FDCA1323"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to search a dynamic array</xref>  </p> </li>
-<li id="GUID-A72ADF94-4282-5903-AAF9-A6CA8E5B9BAD"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to sort a dynamic array</xref>  </p> </li>
-<li id="GUID-4C3AB0F9-701C-5AF0-BF45-FFD2C356AC02"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How
-to destroy a dynamic array</xref>  </p> </li>
-<li id="GUID-A1DFC448-5720-59AB-89DD-21BE564E8C4B"><p><xref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita">How
-to check the range for fixed arrays</xref>  </p> </li>
-<li id="GUID-0D2E7F06-DF31-5A56-86C0-8D1BD188DAE7"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How
-to create a circular buffer</xref>  </p> </li>
-<li id="GUID-3E8971F3-B124-5FAF-B391-4007993E477D"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How
-to add elements to a circular buffer</xref> </p> </li>
-<li id="GUID-B2BB5D48-BFC3-55D1-A884-A326949E4D0E"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How
-to remove elements from a circular buffer</xref>  </p> </li>
-<li id="GUID-E78BFE47-4582-5C6D-8934-11AF7265C78B"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to insert elements into a dynamic buffer</xref>  </p> </li>
-<li id="GUID-E357C3D7-0DFB-50E7-A9E4-19F3E1DE1EFF"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to read the elements of a dynamic buffer</xref>  </p> </li>
-<li id="GUID-2DAA2B32-151A-5200-84B3-57AA43FC3948"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to overwrite a dynamic buffer</xref>  </p> </li>
-<li id="GUID-BDACC340-C731-5148-8F5B-1A7F96DBA787"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to expand a dynamic buffer</xref>  </p> </li>
-<li id="GUID-517FE433-E380-5ED4-BB51-ADA8C2AA9149"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to delete elements from a dynamic buffer</xref>  </p> </li>
-<li id="GUID-87491CAD-BB7D-5C13-8AC6-F1CB924226EB"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to compress a dynamic buffer</xref>  </p> </li>
-<li id="GUID-3C510F10-67FB-51C8-8CDC-555141A71220"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How
-to display the contents of a buffer</xref>  </p> </li>
-<li id="GUID-8BAD3A0C-AA33-5750-BB8E-853654D4D010"><p><xref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita">How
-to do lexical analysis</xref>  </p> </li>
-<li id="GUID-13F6DCF7-9F80-5D10-A22B-482AE9F6E198"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How
-to create a resizable buffer</xref>  </p> </li>
-<li id="GUID-2AB464C2-4DEE-5655-90F3-BA88F319D0B0"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How
-to swap two resizable buffers</xref>  </p> </li>
-<li id="GUID-EDF5B370-7BCE-5FF7-8CF1-891D2C70716F"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How
-to assign data to a resizable buffer</xref>  </p> </li>
-<li id="GUID-4124AC74-6CBB-57A2-B00D-D414F9FB2DD4"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How
-to reallocate a resizable buffer</xref>  </p> </li>
-<li id="GUID-705B09E5-6B31-57B3-B590-E8AB0860DE73"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How
-to replace and modify the data in a resizable buffer</xref>  </p> </li>
-<li id="GUID-454A84B6-73DC-51A9-A4AA-8EA04CBD5230"><p><xref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita">How
-to do date and time handling</xref>  </p> </li>
-<li id="GUID-1C77044F-C139-50F1-820B-5E2C8F14591B"><p><xref href="GUID-E8492B87-481E-56FA-8503-FF93DFE122F5.dita">How
-to connect to the file server</xref>  </p> </li>
-<li id="GUID-268A5CD1-A201-521E-9489-A1A0379242E9"><p><xref href="GUID-E8492B87-481E-56FA-8503-FF93DFE122F5.dita">How
-to disconnect from the file server</xref>  </p> </li>
-<li id="GUID-D49289A6-47A2-5481-9900-6E7C29019B4C"><p><xref href="GUID-5ABEF28F-ADB2-5BA8-A946-FFA1F678F28E.dita">How
-to create a file</xref>  </p> </li>
-<li id="GUID-EEC58769-4B78-5FB6-A930-CAD804C4CA7F"><p><xref href="GUID-5ABEF28F-ADB2-5BA8-A946-FFA1F678F28E.dita">How
-to retrieve the attributes of a file</xref>  </p> </li>
-<li id="GUID-741574C5-1B9C-59DD-BC48-E7E52A1AF134"><p><xref href="GUID-576C8098-85C5-597B-8497-187E39A26E55.dita">How
-to create a file server session</xref>  </p> </li>
-<li id="GUID-94DF054B-5F1E-5393-B636-624FFA91E89C"><p><xref href="GUID-576C8098-85C5-597B-8497-187E39A26E55.dita">How
-to retrieve default paths</xref>  </p> </li>
-<li id="GUID-BA0B4915-0EB0-5C2C-9D3C-29792BE5FEC4"><p><xref href="GUID-576C8098-85C5-597B-8497-187E39A26E55.dita">How
-to change the session and system path</xref>  </p> </li>
-<li id="GUID-FB7187A9-9B6B-5632-9210-BA13B019C230"><p><xref href="GUID-55A2D518-CDC7-5B96-84AB-9E16FFF4AE57.dita">How
-to obtain information about the available drives</xref>  </p> </li>
-<li id="GUID-5E256C6C-CA5D-510D-B371-9A59B49C9A76"><p><xref href="GUID-05E27705-47E5-5B27-849A-D2A6BA4F40E5.dita">How
-to parse filenames</xref>  </p> </li>
-<li id="GUID-CF80ADEA-740C-57D8-A258-ACBFA04B1F65"><p><xref href="GUID-24C80C7D-F330-5ADA-A8C8-AB882E2C57C2.dita">How
-to monitor the progress of a file copy</xref>  </p> </li>
-<li id="GUID-9ED882FE-8F56-5E73-8B31-036EB06540A1"><p><xref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita">How
-to use the Publish and Subscribe mechanism</xref>  </p> </li>
-<li id="GUID-B5EED50E-D5DD-524D-BCAA-6F3F7F5BE696"><p><xref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita">How
-to do security checking on a client by a server</xref>  </p> </li>
-<li id="GUID-FB6E72CF-900E-5DF3-873E-8990F606DD5B"><p><xref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita">How
-to get locale-specific currency values and symbols</xref>  </p> </li>
-<li id="GUID-D9CE44C7-837A-5B54-AE4B-9B20AF84884D"><p><xref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita">How
-to synchronise threads</xref>  </p> </li>
-<li id="GUID-D66D4BF6-CA9E-54F9-A06A-E528F55DFC34"><p><xref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita">How
-to use thread local storage</xref>  </p> </li>
-<li id="GUID-4787D6BE-2AFF-51D5-A739-9F543E0518FE"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How
-to implement an asynchronous timer</xref>  </p> </li>
-<li id="GUID-A8CE6217-E740-50C9-8164-F884D387E0AC"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How
-to implement a periodic timer</xref>  </p> </li>
-<li id="GUID-AA4CAC71-08E4-5590-908F-35B0A79FCADA"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How
-to implement a heartbeat timer</xref>  </p> </li>
-<li id="GUID-C615EDD0-7FC3-5458-BCB4-7FF878ED316D"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How
-to create a global message queue</xref>  </p> </li>
-<li id="GUID-A3EC156E-D822-50AF-9FB5-3F0879053D9E"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How
-to send a message to another process</xref>  </p> </li>
-<li id="GUID-DCB96FA1-FFBB-5195-A45F-D761F6DD40DC"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How
-to receive a message from another process</xref>  </p> </li>
-<li id="GUID-A578BBD4-4902-59AB-8323-0090655DD2AB"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-to load and unload a driver</xref>  </p> </li>
-<li id="GUID-6DB5EA21-904C-501F-833A-E4611E219953"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-to create multiple connections to a server</xref>  </p> </li>
-<li id="GUID-C331EF86-4FFF-5255-99E8-A58437D1CAA5"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How
-to use active objects and an active scheduler</xref>  </p> </li>
-<li id="GUID-C3341B19-6227-5305-9614-A731BC295457"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How
-a wait loop can be used to identify request completion</xref>  </p> </li>
-<li id="GUID-81471C2B-D2A8-5DE8-A5AC-92EE52A31554"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How
-to accept and print keyboard inputs to a console </xref>  </p> </li>
-<li id="GUID-A2E42CBB-BEE7-5D1F-9B5B-5CCEA33F8F2F"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-544EE3A6-86A2-57FF-A13B-94658F1DCA16">How to create multiple subsessions within a session</xref>  </p> </li>
-<li id="GUID-D829FBD5-233D-55BC-936C-DCDCA86B9AC6"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita">How
-to start a server</xref>  </p> </li>
-<li id="GUID-3F025DEA-1229-53F3-B085-B1181C58EE33"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita">How
-to create a single session with a server</xref>  </p> </li>
-
-<li id="GUID-8CD6FFB9-D79E-5680-B49E-5A37CE218735"><p><xref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita">How
-to load and read from the locale DLL</xref>  </p> </li>
-<li id="GUID-5B1A7E4A-F173-52BF-B0F6-5E0E6B4E3906"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to construct an object and leave on failure</xref>  </p> </li>
-<li id="GUID-7728E27C-4879-5A03-8D31-4663EF80083D"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to construct an object and return an error code on failure</xref>  </p> </li>
-<li id="GUID-F85C5C38-ACF3-58F6-96B1-8E567214C6E7"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to cleanup compound classes</xref>  </p> </li>
-<li id="GUID-7FD774CF-9FBD-5855-A8DA-B73D5876401E"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to implement the NewL() static function</xref>  </p> </li>
-<li id="GUID-D59260AF-8874-5343-8BD4-9326AE35B2BA"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to implement the NewLC() static function</xref>  </p> </li>
-<li id="GUID-5A1CCECE-9201-579C-855D-E42AFFDD7587"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use the cleanup stack</xref>  </p> </li>
-<li id="GUID-33156820-0599-5B81-AC4E-C4ED6AABC4EF"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use the TRAPD macro</xref>  </p> </li>
-<li id="GUID-13EDD518-D5ED-5B98-A790-20AB1B3A6727"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use CleanupDeletePushL()</xref>  </p> </li>
-<li id="GUID-9E066777-2A91-5F07-A021-1DC79600EAF7"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use CleanupClosePushL()</xref>  </p> </li>
-<li id="GUID-3E03AE4E-FD85-5C77-9AD0-32C7F9055576"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use CleanupReleasePushL()</xref>  </p> </li>
-<li id="GUID-9341CEA6-16DD-50B1-9CD3-65211BDBDF64"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How
-to use CleanupArrayDeletePushL()</xref>  </p> </li>
-<li id="GUID-24CD2B7C-11E2-578F-BF3B-25405AC0BB50"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD">How to use a doubly linked list </xref>  </p> </li>
-<li id="GUID-A4FB7405-06CD-54D5-BF0E-EC776EFF0654"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D">How to use a singly linked list</xref>  </p> </li>
-<li id="GUID-BE35252C-EDEB-533B-9D10-253C712FFB56"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0">How to use a delta queue</xref>  </p> </li>
-<li id="GUID-1EC9C3EE-B34E-5947-A236-78218D9F86AB"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0">How to generate timer events</xref>  </p> </li>
-<li id="GUID-57D999E0-60FE-5B80-ADD2-53B40516EF67"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-to use a logical device driver (LDD) and a physical device driver (PDD)</xref>  </p> </li>
-<li id="GUID-589090A1-AC62-573F-83B5-19C4B6EF7918"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How
-to use a global condition variable</xref>  </p> </li>
-<li id="GUID-D9615395-2D69-5F1A-8CB3-6B0042A6A590"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How
-to implement a write operation on a shared memory block</xref>  </p> </li>
-<li id="GUID-25EE3478-CCEC-5EED-A6D1-D08C5C326961"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How
-to use a local condition variable</xref>  </p> </li>
-<li id="GUID-3378721F-E348-52B0-9ADA-F1B320190D98"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How
-to create a queue of integer tokens</xref>  </p> </li>
-<li id="GUID-9243C325-C2F9-5711-8B93-45056FEB64AB"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-to load and unload an ldd and pdd</xref>  </p> </li>
-<li id="GUID-AE3E44A5-99A7-51D7-919D-A64E7D955E99"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-to cancel an asynchronous request</xref>  </p> </li>
-<li id="GUID-EE3A5240-D313-592F-9B9C-D3753321EB1F"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How
-multiple clients in different processes connect to a server</xref>  </p> </li>
-<li id="GUID-E7C950DB-E82A-5959-B873-4D0367FACA89"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-90645A43-313B-55FC-91D0-547C237B680B">How to handle binary data using 8 bit descriptors</xref>  </p> </li>
-<li id="GUID-734CBC47-1D3E-5AE4-8193-E29DFB007BB5"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-FC2B9B70-F849-5F19-9F3C-25D5FDCC576D">How to use basic buffer descriptors</xref>  </p> </li>
-<li id="GUID-B2E541C5-6529-524E-B2DA-069D8B98FF44"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-CE601E1E-AF03-56E8-B7FB-0CDFF4EA4386">How to create and use a heap buffer descriptor</xref>  </p> </li>
-<li id="GUID-63E8CEC2-B65D-54A2-93CD-123FD5D1EADA"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5040249B-55ED-5ACD-837B-6B0FD4AF24FE">How to use descriptors as function arguments</xref>  </p> </li>
-<li id="GUID-8583B379-AA83-507E-8435-D1F5986D5750"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-C79042EB-4ACF-5972-9F57-E7C0F37DECF6">How to use modifiable descriptors</xref>  </p> </li>
-<li id="GUID-D2B9845D-7CA8-51F7-AB75-5FBA74D7A45E"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-927CFF04-C0D1-5BDE-B221-4245113924F7">How to use non-modifiable descriptors</xref>  </p> </li>
-<li id="GUID-8A90092C-7536-56A6-B108-7BC273DAF79A"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5AEFA6EB-A100-5B96-935D-2537EEFB56F5">How to use pointer descriptors</xref>  </p> </li>
-<li id="GUID-98FD0272-1A6D-51FB-8936-B77B62096C16"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get the number of available power-related resources</xref>  </p> </li>
-<li id="GUID-082AD630-9B2B-5907-84C3-66AFE3E36179"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get information about a power-related resource</xref>  </p> </li>
-<li id="GUID-13DDA999-E886-5217-BFF8-CEB3955211AC"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get information about all power-related resources</xref>  </p> </li>
-<li id="GUID-B96F159D-D327-5F55-9840-FC58C581DB7F"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get the state of a power-related resource</xref>  </p> </li>
-<li id="GUID-5C31B8AB-C524-5C5F-9DA6-F5EF9AACB74D"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get the number of clients using a particular power-related resource</xref>  </p> </li>
-<li id="GUID-2F1F01B3-6439-5B6D-A5FE-796592EFBD06"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get the number of power-related resources used by a client</xref>  </p> </li>
-<li id="GUID-CF45E4C4-9680-51E3-B320-29220427089A"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get information about all the power-related resources in use by a particular
-client</xref>  </p> </li>
-<li id="GUID-143AAF5A-BB38-5886-A525-A61886E572F9"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get information about all clients using a particular power-related resource</xref>  </p> </li>
-<li id="GUID-111416B6-9534-530C-9532-103A4F824CF0"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get the names of all Resource Manager clients</xref>  </p> </li>
-<li id="GUID-62B7DDDC-3114-529F-9FE7-5D4196E4CA83"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to change the state of a power-related resource</xref>  </p> </li>
-<li id="GUID-3F6EAE14-60E5-5C9F-9E78-8D6A64300CC9"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How
-to get notification about a state change to a power-related resource</xref>  </p> </li>
-
-<li><p id="BD60698B-5F00-4693-BDF7-849B3BFBD61F"><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">How
-to use semaphore in a multithreaded application</xref></p></li>
-<li><p><xref href="GUID-C7B748CF-D080-5448-98AF-1634D821E713.dita">How to understand
-the differences between multithreaded code running in a unicore environment
-and in a multiprocessor environment</xref></p></li>
-<li><p><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">How to use a
-named database using RdbNamedDatabase</xref></p></li>
-</ul> </section>
-<section id="GUID-04145381-C665-41F9-8BC8-D5AEED089166"><title>Messaging</title> <ul>
-<li id="GUID-4AA84CE0-D56D-5998-818B-719B4A72E62F"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to create a client registry</xref>  </p> </li>
-<li id="GUID-58084600-8859-5796-A17A-BD90065CD2DC"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to create an IMAP account</xref>  </p> </li>
-<li id="GUID-0DFC0FE0-4535-5533-907F-75880C5CB925"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to create an SMTP account</xref>  </p> </li>
-<li id="GUID-A849443E-2C9E-5984-88EF-E33F36038CA6"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to create an SMTP message</xref>  </p> </li>
-<li id="GUID-EF57114C-9A49-57FD-A171-E8FB310108B2"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to send an SMTP message</xref>  </p> </li>
-<li id="GUID-1CA17BBF-E65F-5117-BC61-C7AFBF07FFAB"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How
-to connect to the IMAP server and download mail sent using SMTP</xref>  </p> </li>
-<li id="GUID-FFB38E67-9107-57E3-BD36-6D0A2B003FA2"><p><xref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita">How
-to update registry information when MTM groups are installed or uninstalled</xref>  </p> </li>
-<li id="GUID-BCD5A910-504E-5B25-8CC5-ACA08E183FD9"><p><xref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita">How
-to create a POP3 account</xref>  </p> </li>
-<li id="GUID-2E5717A2-4264-5509-976D-ACBCEDF2DB47"><p><xref href="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita">How
-to connect to a POP3 server and download mail sent using SMTP</xref>  </p> </li>
-<li id="GUID-BBA241A4-03C4-562C-9B87-E615FE99E755"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How
-to create a SendAs message</xref>  </p> </li>
-<li id="GUID-EFB6D825-F707-5810-8B01-6260FF55AB57"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How
-to display account names</xref>  </p> </li>
-<li id="GUID-3F3DCFB7-FDE0-59F5-BC2E-E78D9F75E6F3"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How
-to define the connected session's available message types</xref>  </p> </li>
-<li id="GUID-0DE038F8-2097-5FF9-B5FD-5036B469DCDC"><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">How
-to forward a message from an MTM account</xref>  </p> </li>
-<li id="GUID-800A0E22-81B1-5F13-B1A2-B819989A85CD"><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">How
-to query for the capability of an MTM account</xref> </p> </li>
-<li id="GUID-7C3A69D9-471C-57AF-AC84-BBD37A0F95E0"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to create a BIO message</xref>  </p> </li>
-<li id="GUID-D07978C9-ED82-50C9-B6DA-C5E80E19D7BC"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to create a session with the message server</xref>  </p> </li>
-<li id="GUID-3B655259-C85B-5F5B-B06D-618BFE2787BD"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to send a BIO message</xref>  </p> </li>
-<li id="GUID-FEF9C70E-DFB1-557C-90BD-26D73DEE3A09"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to create a BIO message parser</xref>  </p> </li>
-<li id="GUID-F75DB020-0138-5AE2-A8DD-8A4D1B3F5ACA"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to read messages from the message store</xref>  </p> </li>
-<li id="GUID-F4782CB0-9900-57DC-98A0-58DBAB2A96F7"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How
-to parse a message's body text using the BIO message parser</xref>  </p> </li>
-<li id="GUID-F28AB654-9D9D-5663-9D3A-6B6410169BEC"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How
-to display the header information for message entries</xref>  </p> </li>
-<li id="GUID-DE272737-9608-5CC6-9B02-2820E64D920B"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How
-to search and sort a message store</xref>  </p> </li>
-<li id="GUID-DC3279E7-A022-5346-A8CA-365FA2D4FD8C"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How
-to do a combined search/sort of a message store</xref>  </p> </li>
-<li id="GUID-178FB7F7-02E3-53F3-AE67-AFE3F1BF79DD"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How
-to search and sort a message store iteratively</xref>  </p> </li>
-<li id="GUID-890C761F-ECDB-5669-A4B9-9BEAFF7A4919"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How
-to search and sort a message store using a query ID</xref>  </p> </li>
-<li id="GUID-83A45635-37BC-5707-9214-2C684D3FB168"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How
-to create an SMS service</xref>  </p> </li>
-<li id="GUID-64DAC51E-C7AF-573E-80A9-17307B2ED090"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How
-to create an SMS</xref>  </p> </li>
-<li id="GUID-EF1EBCF8-83FE-5DCB-B5B4-2EFB19660C0B"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How
-to send an SMS</xref>  </p> </li>
-<li id="GUID-9CCD6A6F-C790-51DF-B62F-D2627BE04279"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How
-to access and display SMS messages in the inbox, outbox and sent folders</xref>  </p> </li>
-<li id="GUID-948F5BFC-A4A3-59F9-9EE9-0E51D43B7BB0"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How
-to delete SMS messages</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-EC20ACAC-6D20-4B90-94FD-2319894574AE"><title>Multimedia</title> <ul>
-<li id="GUID-7826DEB9-FCBE-5DD2-BA4E-8EB44E789EF2"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to play an audio tone</xref>  </p> </li>
-<li id="GUID-DDB7E337-F93B-50E4-B240-70A23A651038"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to play audio from a file</xref>  </p> </li>
-<li id="GUID-38FED1E9-F5BD-5EAB-BCD8-F56E676DE47E"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to convert an audio file to another format</xref>  </p> </li>
-<li id="GUID-9D0588BF-E93C-58E6-8800-D2FAE67BB4A9"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to record an audio file</xref>  </p> </li>
-<li id="GUID-10B9E43D-9CE9-5E6C-9AD2-8A5CD35C8A71"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to stream data</xref>  </p> </li>
-<li id="GUID-EC97DF41-57EF-58F4-9B2D-1A1CCDC1E2DE"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15-GENID-1-8-1-18-1-1-4-1-4-1.dita">How
-to set the volume of an audio file</xref>  </p> </li>
-<li id="GUID-CE92ADF3-F82A-502B-85D3-9EB722FBE5DC"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">How
-to capture a still image</xref>  </p> </li>
-<li id="GUID-BBF7D525-7513-5ABD-89D4-A05F0206BDD7"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">How
-to capture video</xref>  </p> </li>
-<li id="GUID-12C2E2C4-85F1-5969-B40A-CFE6BE077227"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">How
-to transfer viewfinder data</xref>  </p> </li>
-<li id="GUID-63DD72DF-288B-599E-95DA-9A2C8ECA4BC2"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">How
-to perform image processing</xref>  </p> </li>
-<li id="GUID-403BF127-9187-5B72-86A5-ABA1D2C1812A"><p><xref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9-GENID-1-8-1-18-1-1-4-1-11-1.dita">How
-to implement sink and source plug-ins for the Multimedia Framework</xref>  </p> </li>
-<li id="GUID-469A8390-F73A-50E8-908E-F52E4CC4FF70"><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita">How
-to convert images from one format to another</xref>  </p> </li>
-<li id="GUID-546639BE-E94F-5077-BDEE-0C3CAE07D2DB"><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E-GENID-1-8-1-18-1-1-4-1-8-1.dita">How
-to manipulate images, for instance rotate, flip and zoom</xref>  </p> </li>
-<li id="GUID-23687B6B-FCA5-5DA7-936F-B98133C38C4F"><p><xref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita">How
-to record audio clips</xref>  </p> </li>
-<li id="GUID-B86BDF2F-844D-5B05-BEAE-0B83CF685054"><p><xref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita">How
-to get the list of audio formats supported</xref>  </p> </li>
-<li id="GUID-B4DDC9F9-0A89-5A5D-9B6C-04A663AF6EA1"><p><xref href="GUID-7082D222-72B8-580F-B4FD-D2934F1B3800-GENID-1-8-1-18-1-1-4-1-12-1.dita">How
-to record audio</xref>  </p> </li>
-<li id="GUID-66BE6C7C-FAEB-518B-A5E0-58512602B36E"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita">How
-to implement a codec plug-in for the Multimedia Framework</xref>  </p> </li>
-<li id="GUID-62E53F5E-8063-5512-B46D-F5D925A516EA"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita">How
-to convert media data from one encoding into another</xref>  </p> </li>
-<li id="GUID-2F04ACBF-09B1-5ECE-A8F3-21A2F056ABC6"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340-GENID-1-8-1-18-1-1-4-1-9-1.dita">How
-to convert PCM8 into PCM16 encoded audio data</xref>  </p> </li>
-<li id="GUID-D89C563F-BACC-5196-83B5-FA5E6BCBF432"><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita">How
-to implement a format encoder plug-in to the Multimedia Framework</xref>  </p> </li>
-<li id="GUID-04F3E1E8-8A34-55DB-89EC-C181374D0C6A"><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita">How
-to implement a format decoder plug-in to the Multimedia Framework</xref>  </p> </li>
-<li id="GUID-3FDF0ACE-45EE-5278-84F6-08C81C43C0BB"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Basic
-panorama stitching</xref>  </p> </li>
-<li id="GUID-51DF46BE-2CFC-51FF-9E91-8CCAF6C8C21F"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Panorama
-stitching based on viewfinder tracking</xref>  </p> </li>
-<li id="GUID-1FDEC249-5192-5A4A-9A8A-03C024FF609B"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Image
-processing with some basic effects</xref> </p> </li>
-<li id="GUID-18137A68-6625-5325-B921-31FCE84405D3"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Generating
-Scalado SpeedView objects (Spmo)</xref>  </p> </li>
-<li id="GUID-0C7A22A6-6949-57AF-9B40-3CCE0E633FBF"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Removing
-effects from the images</xref>  </p> </li>
-<li id="GUID-8252C68E-415F-567E-A939-B73401AA2BEF"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Adding
-effects to the images and generating a preview</xref>  </p> </li>
-<li id="GUID-E9375C6A-95F9-5AB2-BB58-1C315EB4E421"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Adding
-effects to the images and generating an overlay</xref>  </p> </li>
-<li id="GUID-4E682084-B10C-5D3D-B344-6477F3FBE5EC"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Adding
-a SpeedView object to the image</xref>  </p> </li>
-<li id="GUID-649A6953-F093-5718-8A32-D459262FC8A5"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Squeeze
-an image from a file to a file</xref>  </p> </li>
-<li id="GUID-2B35C292-8A02-591A-8EF6-02DB51BCAD34"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Squeeze
-an image from buffer to buffer</xref>  </p> </li>
-<li id="GUID-D5270FFE-ED95-58F8-95DB-8AFFC9E0DB04"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Auto
-squeeze an image from file to file</xref>  </p> </li>
-<li id="GUID-ABF292DF-AB48-52F9-9FDC-FBE2A8F05D35"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Rotate
-an image from file to file</xref>  </p> </li>
-<li id="GUID-016DB7F9-F00D-5D37-8586-16CE2E52D87B"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-8-1-18-1-1-4-1-7-1.dita">Blend
-a jpg data in file to a file and squeeze it</xref>  </p> </li>
-</ul> </section>
-
-<section id="GUID-EE7772E0-6231-47A0-AE20-0A597DF287F2"><title>PC Tools</title> <ul>
-<li><p><xref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita">How to create
-a simple installation file for an application</xref></p></li>
-<li id="GUID-86649DD7-42E4-5D82-BB79-A883ADE3689C"><p><xref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita">How
-to create an installation file for a multilingual application</xref>  </p> </li>
-</ul> </section>
-
-
-
-<section id="GUID-70C7D0D2-3C97-4AA6-BAF7-5C2CD110161D"><title>System GUI
-Framework</title> <ul>
-
-
-<li id="GUID-903653B0-8D2E-5A39-899B-FA811F011DC1"><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita">How to create and display
-a digital clock</xref>  </p> </li>
-<li id="GUID-931FD18A-086F-57F7-84E6-B25424DD046F"><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C-GENID-1-8-1-3-1-1-3-1-3-1-3-1-3-1.dita">How to create and display
-an analog clock</xref>  </p> </li>
-
-
-
-</ul> </section>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-94EAB348-DB29-5814-BB93-968D9A2A8AD2" xml:lang="en"><title>List of Example Code Use Cases</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document lists all the example code programs available for
+each module, organised by use case. </p>
+<section id="GUID-2E20A530-17B3-4D82-AE38-33832BE1EE5F"><title>Symbian
+Platform Fundamentals</title> <ul>
+<li id="GUID-1B1B8502-164E-55B1-A922-FC10F631719D"><p><xref href="GUID-3603126B-661E-509B-8CCF-04A99F9ACE07.dita">Basic helloworld
+application</xref>  </p> </li>
+<li id="GUID-C418B11F-2806-5C26-9D0C-D2BBA08C49A5"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How to create a
+C class</xref>  </p> </li>
+<li id="GUID-C49BC6C1-5DD9-5CD1-B78D-F58E446C8702"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How to do single
+phase construction</xref>  </p> </li>
+<li id="GUID-D2DBFCF1-50A9-5632-8279-129366248751"><p><xref href="GUID-C9BEF1C4-F14A-5386-9DA8-29358694D7AA.dita"> How to do two-phase
+construction</xref>  </p> </li>
+<li id="GUID-A2B894D2-1A35-5FC2-8FF9-637F2FA63595"><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita"> How to use an R
+class</xref>  </p> </li>
+<li id="GUID-E2958219-436C-550E-A9B3-26CB402C431E"><p><xref href="GUID-D7DF85A8-1F90-5EC8-9EA1-EB33382849B0.dita"> How to use a T class</xref>  </p> </li>
+<li id="GUID-17416CA0-E455-535A-A06B-8C546D95D08D"><p><xref href="GUID-07791D92-4B0F-5D11-9874-4C03FA1A2C02.dita">How to use a mixin
+class</xref>  </p> </li>
+<li id="GUID-35E98BB5-E747-53DC-BCC5-87968FF87913"><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita"> How to create a
+static DLL</xref>  </p> </li>
+<li id="GUID-0A9F3C9F-C957-5ECA-A06F-5A3D3F42FFD9"><p><xref href="GUID-176FD8C9-B4A9-5B50-B683-AB5DA7D5D6F4.dita"> How to use a static
+DLL</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-EFBCC960-EDCD-48FB-9BB0-9609A633ECE4"><title>Application
+Framework</title> <ul>
+
+
+
+
+
+
+
+<li id="GUID-C0CFA5C6-0039-59FB-9A15-322A1752F9C2"><p><xref href="GUID-F64B88E0-49DA-5563-896E-29BAB8A244C9.dita">How to implement
+a simple GUI application with a single view</xref>  </p> </li>
+<li id="GUID-71EC6DCA-2989-5E40-8015-0F3F24508103"><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">How to create an
+animation using the Bitmap Animation framework</xref>  </p> </li>
+<li id="GUID-70E03963-92C8-5274-8F2A-0B42A9502C4D"><p><xref href="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita">How to view an animation
+inside a window</xref>  </p> </li>
+</ul> </section>
+
+<section id="GUID-6B6D9D19-C847-44F8-A649-B168DD700042"><title>Communication
+Framework</title> <p><b>Data Server</b></p><ul>
+<li id="GUID-794A4BED-FAC8-5CAF-B57E-DD1222C11BC5"><p><xref href="GUID-D24D5F17-462E-5424-99A7-9B16E9FEDC93.dita">How to do connection
+monitoring and management using the RConnection API</xref>  </p> </li>
+</ul> </section>
+
+<section id="GUID-25D09F03-F721-4270-81E6-CD5F43859E3E"><title>High
+Level Internet Protocols </title> <ul>
+<li id="GUID-C8E2CFB4-F3B2-5F1E-AF0D-C6A7D4B46066"><p><xref href="GUID-6B8BA8A8-AD56-55BA-9659-15091E988FB7.dita">How to use HTTP APIs</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-D84ED617-A6BF-4563-BBFF-FDADBC46F3D1"><title>Generic
+Application Support</title> <ul>
+<li id="GUID-8DD3CBC3-FFEE-5399-B0A0-EFB98F3DA09F"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How to add a floating
+alarm to the alarm server</xref>  </p> </li>
+<li id="GUID-5F232D0C-A2EA-5C63-B308-F60C8B67FCCF"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How to add a fixed
+alarm to the alarm server</xref>  </p> </li>
+<li id="GUID-474F7658-3DEB-56A4-AF63-69A23FBFD0D8"><p><xref href="GUID-74153585-D483-5761-85B6-2CF2D2615C00.dita">How to get notification
+from the alarm server</xref>  </p> </li>
+
+
+
+</ul> </section>
+<section id="GUID-ED27F9A8-98CD-4DE1-B916-EFD2FC52C425"><title>Generic
+OS Services</title> <ul>
+<li id="GUID-6DA76648-D820-59B7-B51C-35FB18D9FA99"><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">How to compress data
+using the EZLIB API</xref>  </p> </li>
+<li id="GUID-501BF7D9-2B8E-5056-8229-73CC61961C28"><p><xref href="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita">How to decompress
+data using the EZLIB API</xref>  </p> </li>
+<li id="GUID-BF304C4A-FD6F-588C-9F54-E9F7036FFB50"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How to create a secure
+directory using PIPS</xref>  </p> </li>
+<li id="GUID-81D08636-1D94-5E37-91FD-5D225042198B"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How to read data
+from a file using PIPS</xref> </p> </li>
+<li id="GUID-DB774EFB-B96D-5792-B97B-4F14AA30C9AF"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How to write data
+to a file using PIPS</xref>  </p> </li>
+<li id="GUID-E77A4C18-6F2F-5B67-A4E3-4F8E6AD00577"><p><xref href="GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita">How to remove the
+secure directory using PIPS</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-7"><p><xref href="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita">How to use the P.I.P.S.
+standard C maths library, libm.dll</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-8"><p><xref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita">How to compress/
+decompress a file using Open C library.</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-9"><p><xref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita">How to compress/
+decompress a string using Open C library.</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-10"><p><xref href="GUID-4CC4D912-810B-4542-AFCD-58CEE8E0128C.dita">How to do filtered
+data compression and Huffman compression using Open C library.</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-11"><p><xref href="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita">How to send/receive
+messages using open C message queue library</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-12"><p><xref href="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita">Shows string utility
+using open C libraries</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-13"><p><xref href="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita">How to write solution
+for Producer/ Consumer Problem using Open C</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-14"><p><xref href="GUID-063020E5-51C0-45C3-8B8B-015385FA0928.dita">how to redirect stdio
+to a file using libc library </xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-15"><p><xref href="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita">How to handle global
+variables within the library code</xref>  </p> </li>
+<li id="GUID-16BAB341-EEC2-5724-A7B3-C65ED0EB90D2-GENID-1-14-1-1-5-1-2-7-2-16"><p><xref href="GUID-1FE5D4D5-B2BF-4090-9F69-D538B2220DA3.dita">How to solve WSD
+(Writable Static Data) problem</xref>  </p> </li>
+<li id="GUID-7EDFF698-152D-5175-9C5A-CEC646857A71"><p><xref href="GUID-C5E99BB6-0CBE-51AE-882D-37D004106A2F.dita">How to write a simple
+console-based STDLIB (C Standard library) program</xref>  </p> </li>
+<li id="GUID-F7ADF2C8-A3B5-59FD-BD84-CDD4F41B7B88"><p><xref href="GUID-30DBE93F-1255-533F-9B02-4E19E248D065.dita">How to write a Techview
+GUI application whose engine is written using STDLIB</xref>  </p> </li>
+<li id="GUID-0E9CD40B-98F4-54B9-AFB6-696597537A8C"><p><xref href="GUID-F1BDE1DB-2749-52F4-AC9B-74A5D9A32A67.dita">How to create the
+most basic STDLIB application</xref>  </p> </li>
+<li id="GUID-42554490-3FB6-5919-99CF-A47EAA96958F"><p><xref href="GUID-6E4CAA18-635E-5476-8CE4-DCA69C05CC07.dita">How to develop hybrid
+application which uses both pure C and native Symbian C++ APIs</xref>  </p> </li>
+<li id="GUID-D06B9590-D071-5F03-86EB-205D0EDFF691"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How to create a named
+pipe</xref>  </p> </li>
+<li id="GUID-5E873B57-54DB-583F-BE06-62E2E83A4611"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How a parent process
+communicates with its child process using named pipes (FIFO)</xref>  </p> </li>
+<li id="GUID-1C7E92C2-A51D-5E85-A549-3066274F12D3"><p><xref href="GUID-4AEBF49C-E62A-5D0D-8181-600BF29DFFC7.dita">How a parent process
+communicates with its child process using a single pipe (popen())</xref>  </p> </li>
+<li id="GUID-598317ED-3B57-5CD6-9C7A-FFE1A5031DEC"><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">How to create multiple
+threads in PIPS using libpthread</xref>  </p> </li>
+<li id="GUID-C1817157-E53E-5E11-BC94-8F93BCFC1E7D"><p><xref href="GUID-092C18D4-A525-5562-9BF6-41435E400290.dita">How to synchronize
+among multi threads in PIPS</xref>  </p> </li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to handle a signal using the default handler</xref> </p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to handle a signal using a customized signal handler</xref> </p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to ignore an incoming signal</xref></p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to block and release a signal</xref></p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to wait for a signal</xref></p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to handle a SIGPIPE signal</xref></p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to gracefully terminate a process</xref></p></li>
+<li><p><xref href="GUID-301037F1-1983-565A-88F9-633BBF0EBB91.dita">How
+to handle an asynchronous event using signals</xref></p></li>
+<li id="GUID-BD1B9524-EC3A-5D15-8A8C-F3F737ABB0B3"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to create a data
+recognizer</xref>  </p> </li>
+<li id="GUID-AA15D870-5CA0-50FB-9CB0-B2FBBCADB828"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to get the MIME
+type(s) that a data recognizer is capable of recognizing</xref>  </p> </li>
+<li id="GUID-C0913B8A-CB5E-5526-93FE-D8F8380CD77D"><p><xref href="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita">How to do data recognition</xref>  </p> </li>
+<li id="GUID-84B5F4AF-8813-59DC-85D8-4120862DEC77"><p><xref href="GUID-8B938FEF-4D70-4589-921C-C99667193E20.dita">How to run tasks
+using the task scheduler</xref>  </p> </li>
+<li id="GUID-87AC8A91-5C48-5B49-BAB1-07DCA7C8DEAA"><p><xref href="GUID-5012D63B-4353-5616-BBFB-DB04DAF71679.dita">How to use the XML
+framework to parse XML and WBXML files</xref>  </p> </li>
+<li id="GUID-105BAEF8-1C52-5F96-A8C4-5C5386ADCA87"><p><xref href="GUID-E736B50D-F671-5CCB-A245-BA9791ADA395.dita">How to read data
+from a resource file into an array</xref>  </p> </li>
+<li id="GUID-F323A1E9-35F5-5309-A5BD-882B43AC6807"><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">How to use a resource
+reader to read data from a resource file into the data members of
+a class</xref>  </p> </li>
+<li id="GUID-722045B8-B596-5C93-B963-69E4A35A07DD"><p><xref href="GUID-4820CA37-982D-57BC-8829-498192801B1E.dita">How to read a resource
+from a resource file</xref>  </p> </li>
+<li id="GUID-4B800C0B-1547-5E51-9B79-3EE85F6D714F"><p><xref href="GUID-1DF62CB5-FB81-5802-9071-E492B0C81065.dita">How to read a string
+resource and print it</xref>  </p> </li>
+<li id="GUID-898F03EA-581C-5D7E-8456-42CF585125CA"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How the signature
+of a resource file is checked before it is used</xref>  </p> </li>
+<li id="GUID-68031BED-04CA-5E0F-BDA7-79F9FA12DD49"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How to read a text
+string from a resource file</xref>  </p> </li>
+<li id="GUID-9D47352E-2F93-59F9-A45C-E3C0F160BBA3"><p><xref href="GUID-9A1317EE-A101-5ACA-A1D4-9D07168157D0.dita">How to check the
+identity of a resource file</xref>  </p> </li>
+<li id="GUID-F8F236F3-E6A7-5632-80B7-537229AA0A51"><p><xref href="GUID-0552E177-B824-5E2D-A5A6-0F0694EC13EE.dita">How to read multiple
+resource files</xref>  </p> </li>
+<li id="GUID-8C50391F-C16B-5228-A4A3-F48A4BE38A2E"><p><xref href="GUID-D5B6519B-E902-56C3-80CF-DCEE3F8501BB.dita">How to use multiple
+resource files with cross-referenced resources</xref>  </p> </li>
+<li id="GUID-02DC7916-A015-525E-9DD6-2CBBE7E66F1F"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How to write an interface
+definition for an ECOM plug-in</xref>  </p> </li>
+<li id="GUID-FCD351BC-4518-561B-BED4-0F683C591EF6"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How to implement
+an interface in an ECOM plug-in</xref>  </p> </li>
+<li id="GUID-7E344DA7-73C1-5C86-B67D-9EB4D2543BD6"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How to obtain the
+default implementation of an interface in an ECOM plug-in</xref>  </p> </li>
+<li id="GUID-C82E4427-24A6-5BC6-BA7C-602EB76ADADD"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How to obtain an
+implementation of an interface in an ECOM plug-in</xref>  </p> </li>
+<li id="GUID-69600CAF-72D8-5158-AC0A-881384657285"><p><xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">How a client application
+uses the interface in an ECOM plug-in</xref>  </p> </li>
+<li id="GUID-E080B95A-6D75-5680-B14F-903C6AA5C7C8"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to do string
+handling with EUserHl</xref>  </p> </li>
+<li id="GUID-DA38E7D3-1DEC-5E9B-823B-87AA91F33A80"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to do resource
+management using EUserHl</xref>  </p> </li>
+<li id="GUID-6C633D8B-06C8-53B8-8F47-ABFAEAE9F932"><p><xref href="GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita">How to get the memory
+overhead of using EUserHl</xref>  </p> </li>
+
+
+
+
+
+</ul> </section>
+<section id="GUID-F934D199-D090-47D0-AD6F-98E44F54D7CB"><title>Graphics</title> <ul>
+<li id="GUID-8CFA8A2F-FA0F-5D05-B3CE-CBE7040414E2"><p><xref href="GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259.dita">How to create an
+animated sprite from a bitmap</xref>  </p> </li>
+<li id="GUID-3D66363D-CA14-500B-A0CD-DE7D872D3544"><p><xref href="GUID-A15C553D-9D64-5C48-9274-6DD1642CDC23.dita">How to use the window
+server's direct screen access interface</xref>  </p> </li>
+<li id="GUID-5B1C7A2D-39E6-5ECA-840E-463B1BC3DF9F"><p><xref href="GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939.dita">How to do ordinal
+positioning of windows</xref>  </p> </li>
+<li id="GUID-3E3251BB-5439-5D18-ABA1-9091009F5E24"><p><xref href="GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504.dita">How to implement
+simple freehand drawing using a pointer buffer</xref>  </p> </li>
+<li id="GUID-9CF75FE1-DEAA-5005-8EC7-8AF3C80020A8"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How to load a bitmap</xref>  </p> </li>
+<li id="GUID-E9332993-C8C5-5742-9855-3FC28CB80342"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How to draw a bitmap</xref>  </p> </li>
+<li id="GUID-A1AC068A-A4AD-5929-82A8-C29C2EFD2EF4"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How to construct
+a control</xref>  </p> </li>
+<li id="GUID-63D12F06-952F-5092-B896-250051A870A3"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How to rotate a bitmap</xref>  </p> </li>
+<li id="GUID-F59C6098-3065-5270-A21C-BC4CA88C8D67-GENID-1-14-1-1-5-1-2-8-2-9"><p><xref href="GUID-4BAA1BE9-E590-564E-8D5C-C7191AB4D8A6.dita">How to create a label</xref>  </p> </li>
+<li id="GUID-F59C6098-3065-5270-A21C-BC4CA88C8D67-GENID-1-14-1-1-5-1-2-8-2-10"><p><xref href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita">how to create OpenVG
+content on a semi-transparent or transparent UI using the new Graphics
+architecture using ScreenPlay</xref>  </p> </li>
+
+
+
+
+
+
+
+<li id="GUID-DDF37255-B1FF-5D9D-95E2-7D19599AD606"><p><xref href="GUID-30382EFD-90D5-570C-A6CD-19D34360F329.dita">How to draw various
+shapes in a window</xref> </p> </li>
+
+
+
+
+
+
+
+
+
+</ul> </section>
+<section id="GUID-8F0535DB-E323-470B-BCC3-F35A527B0B23"><title>Kernel
+and Hardware Services</title> <ul>
+<li id="GUID-B9AF4BF9-D13A-532B-85C4-8A8DEE66926A"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to insert elements
+into a dynamic array</xref>  </p> </li>
+<li id="GUID-5F9B9C90-3B69-594E-8E7A-3A7771F86278"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to append elements
+to a dynamic array</xref>  </p> </li>
+<li id="GUID-6A803B5C-AF53-58E2-85B8-568FC26E8DF7"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to access elements
+of a dynamic array</xref>  </p> </li>
+<li id="GUID-E981FB4E-F595-55C1-81AA-C6A43E17AE14"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to remove elements
+from a dynamic array</xref>  </p> </li>
+<li id="GUID-BF576282-EC17-500A-8E1D-3726FDCA1323"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to search a dynamic
+array</xref>  </p> </li>
+<li id="GUID-A72ADF94-4282-5903-AAF9-A6CA8E5B9BAD"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to sort a dynamic
+array</xref>  </p> </li>
+<li id="GUID-4C3AB0F9-701C-5AF0-BF45-FFD2C356AC02"><p><xref href="GUID-B7482AEB-9E7E-5F9C-A69D-60E1FE82CCE1.dita">How to destroy a
+dynamic array</xref>  </p> </li>
+<li id="GUID-A1DFC448-5720-59AB-89DD-21BE564E8C4B"><p><xref href="GUID-CEB1E9D7-3FAB-58D4-BD07-E924D0B87555.dita">How to check the
+range for fixed arrays</xref>  </p> </li>
+<li id="GUID-0D2E7F06-DF31-5A56-86C0-8D1BD188DAE7"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How to create a circular
+buffer</xref>  </p> </li>
+<li id="GUID-3E8971F3-B124-5FAF-B391-4007993E477D"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How to add elements
+to a circular buffer</xref> </p> </li>
+<li id="GUID-B2BB5D48-BFC3-55D1-A884-A326949E4D0E"><p><xref href="GUID-0DEDC917-05C9-5D43-B839-73C043624BE9.dita">How to remove elements
+from a circular buffer</xref>  </p> </li>
+<li id="GUID-E78BFE47-4582-5C6D-8934-11AF7265C78B"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to insert elements
+into a dynamic buffer</xref>  </p> </li>
+<li id="GUID-E357C3D7-0DFB-50E7-A9E4-19F3E1DE1EFF"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to read the elements
+of a dynamic buffer</xref>  </p> </li>
+<li id="GUID-2DAA2B32-151A-5200-84B3-57AA43FC3948"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to overwrite
+a dynamic buffer</xref>  </p> </li>
+<li id="GUID-BDACC340-C731-5148-8F5B-1A7F96DBA787"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to expand a dynamic
+buffer</xref>  </p> </li>
+<li id="GUID-517FE433-E380-5ED4-BB51-ADA8C2AA9149"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to delete elements
+from a dynamic buffer</xref>  </p> </li>
+<li id="GUID-87491CAD-BB7D-5C13-8AC6-F1CB924226EB"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to compress a
+dynamic buffer</xref>  </p> </li>
+<li id="GUID-3C510F10-67FB-51C8-8CDC-555141A71220"><p><xref href="GUID-56FB0E4F-23BF-5B4E-B1F6-C485F0E0CC9D.dita">How to display the
+contents of a buffer</xref>  </p> </li>
+<li id="GUID-8BAD3A0C-AA33-5750-BB8E-853654D4D010"><p><xref href="GUID-3321A4E7-8652-511F-8A17-E816F5731E94.dita">How to do lexical
+analysis</xref>  </p> </li>
+<li id="GUID-13F6DCF7-9F80-5D10-A22B-482AE9F6E198"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How to create a resizable
+buffer</xref>  </p> </li>
+<li id="GUID-2AB464C2-4DEE-5655-90F3-BA88F319D0B0"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How to swap two resizable
+buffers</xref>  </p> </li>
+<li id="GUID-EDF5B370-7BCE-5FF7-8CF1-891D2C70716F"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How to assign data
+to a resizable buffer</xref>  </p> </li>
+<li id="GUID-4124AC74-6CBB-57A2-B00D-D414F9FB2DD4"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How to reallocate
+a resizable buffer</xref>  </p> </li>
+<li id="GUID-705B09E5-6B31-57B3-B590-E8AB0860DE73"><p><xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita">How to replace and
+modify the data in a resizable buffer</xref>  </p> </li>
+<li id="GUID-454A84B6-73DC-51A9-A4AA-8EA04CBD5230"><p><xref href="GUID-6B6532D0-6346-51E4-BC7A-6E8487EF8BA1.dita">How to do date and
+time handling</xref>  </p> </li>
+
+
+
+
+
+
+
+
+
+
+<li id="GUID-9ED882FE-8F56-5E73-8B31-036EB06540A1"><p><xref href="GUID-3472798D-CEC5-5BA9-A3A7-D4245661DEDB.dita">How to use the Publish
+and Subscribe mechanism</xref>  </p> </li>
+<li id="GUID-B5EED50E-D5DD-524D-BCAA-6F3F7F5BE696"><p><xref href="GUID-1F6DA049-AC03-5122-8B91-32C007A41526.dita">How to do security
+checking on a client by a server</xref>  </p> </li>
+<li id="GUID-FB6E72CF-900E-5DF3-873E-8990F606DD5B"><p><xref href="GUID-09FC1F03-B5EB-5228-832B-C64D95AEA05B.dita">How to get locale-specific
+currency values and symbols</xref>  </p> </li>
+<li id="GUID-D9CE44C7-837A-5B54-AE4B-9B20AF84884D"><p><xref href="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita">How to synchronise
+threads</xref>  </p> </li>
+<li id="GUID-D66D4BF6-CA9E-54F9-A06A-E528F55DFC34"><p><xref href="GUID-47F14C10-3ACD-583C-9E7D-84641229A771.dita">How to use thread
+local storage</xref>  </p> </li>
+<li id="GUID-4787D6BE-2AFF-51D5-A739-9F543E0518FE"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How to implement
+an asynchronous timer</xref>  </p> </li>
+<li id="GUID-A8CE6217-E740-50C9-8164-F884D387E0AC"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How to implement
+a periodic timer</xref>  </p> </li>
+<li id="GUID-AA4CAC71-08E4-5590-908F-35B0A79FCADA"><p><xref href="GUID-086939FA-D381-5705-BEE6-6DF2D3624849.dita">How to implement
+a heartbeat timer</xref>  </p> </li>
+<li id="GUID-C615EDD0-7FC3-5458-BCB4-7FF878ED316D"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How to create a global
+message queue</xref>  </p> </li>
+<li id="GUID-A3EC156E-D822-50AF-9FB5-3F0879053D9E"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How to send a message
+to another process</xref>  </p> </li>
+<li id="GUID-DCB96FA1-FFBB-5195-A45F-D761F6DD40DC"><p><xref href="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita">How to receive a
+message from another process</xref>  </p> </li>
+<li id="GUID-A578BBD4-4902-59AB-8323-0090655DD2AB"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How to load and unload
+a driver</xref>  </p> </li>
+<li id="GUID-6DB5EA21-904C-501F-833A-E4611E219953"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How to create multiple
+connections to a server</xref>  </p> </li>
+<li id="GUID-C331EF86-4FFF-5255-99E8-A58437D1CAA5"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How to use active
+objects and an active scheduler</xref>  </p> </li>
+<li id="GUID-C3341B19-6227-5305-9614-A731BC295457"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How a wait loop can
+be used to identify request completion</xref>  </p> </li>
+<li id="GUID-81471C2B-D2A8-5DE8-A5AC-92EE52A31554"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita">How to accept and
+print keyboard inputs to a console </xref>  </p> </li>
+<li id="GUID-A2E42CBB-BEE7-5D1F-9B5B-5CCEA33F8F2F"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita#GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75/GUID-544EE3A6-86A2-57FF-A13B-94658F1DCA16">How to create multiple subsessions within a session</xref>  </p> </li>
+<li id="GUID-D829FBD5-233D-55BC-936C-DCDCA86B9AC6"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita">How to start a server</xref>  </p> </li>
+<li id="GUID-3F025DEA-1229-53F3-B085-B1181C58EE33"><p><xref href="GUID-D4DD2109-3A5B-557D-BCF2-89691CDA5C75.dita">How to create a single
+session with a server</xref>  </p> </li>
+
+<li id="GUID-8CD6FFB9-D79E-5680-B49E-5A37CE218735"><p><xref href="GUID-24EFD1EC-333C-537C-89FF-A77627D962C3.dita">How to load and read
+from the locale DLL</xref>  </p> </li>
+<li id="GUID-5B1A7E4A-F173-52BF-B0F6-5E0E6B4E3906"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to construct
+an object and leave on failure</xref>  </p> </li>
+<li id="GUID-7728E27C-4879-5A03-8D31-4663EF80083D"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to construct
+an object and return an error code on failure</xref>  </p> </li>
+<li id="GUID-F85C5C38-ACF3-58F6-96B1-8E567214C6E7"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to cleanup compound
+classes</xref>  </p> </li>
+<li id="GUID-7FD774CF-9FBD-5855-A8DA-B73D5876401E"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to implement
+the NewL() static function</xref>  </p> </li>
+<li id="GUID-D59260AF-8874-5343-8BD4-9326AE35B2BA"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to implement
+the NewLC() static function</xref>  </p> </li>
+<li id="GUID-5A1CCECE-9201-579C-855D-E42AFFDD7587"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use the cleanup
+stack</xref>  </p> </li>
+<li id="GUID-33156820-0599-5B81-AC4E-C4ED6AABC4EF"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use the TRAPD
+macro</xref>  </p> </li>
+<li id="GUID-13EDD518-D5ED-5B98-A790-20AB1B3A6727"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use CleanupDeletePushL()</xref>  </p> </li>
+<li id="GUID-9E066777-2A91-5F07-A021-1DC79600EAF7"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use CleanupClosePushL()</xref>  </p> </li>
+<li id="GUID-3E03AE4E-FD85-5C77-9AD0-32C7F9055576"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use CleanupReleasePushL()</xref>  </p> </li>
+<li id="GUID-9341CEA6-16DD-50B1-9CD3-65211BDBDF64"><p><xref href="GUID-16DD2138-617F-57EA-9A35-70155AA7F7D1.dita">How to use CleanupArrayDeletePushL()</xref>  </p> </li>
+<li id="GUID-24CD2B7C-11E2-578F-BF3B-25405AC0BB50"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD">How to use a doubly linked list </xref>  </p> </li>
+<li id="GUID-A4FB7405-06CD-54D5-BF0E-EC776EFF0654"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D">How to use a singly linked list</xref>  </p> </li>
+<li id="GUID-BE35252C-EDEB-533B-9D10-253C712FFB56"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0">How to use a delta queue</xref>  </p> </li>
+<li id="GUID-1EC9C3EE-B34E-5947-A236-78218D9F86AB"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0">How to generate timer events</xref>  </p> </li>
+<li id="GUID-57D999E0-60FE-5B80-ADD2-53B40516EF67"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How to use a logical
+device driver (LDD) and a physical device driver (PDD)</xref>  </p> </li>
+<li id="GUID-589090A1-AC62-573F-83B5-19C4B6EF7918"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How to use a global
+condition variable</xref>  </p> </li>
+<li id="GUID-D9615395-2D69-5F1A-8CB3-6B0042A6A590"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How to implement
+a write operation on a shared memory block</xref>  </p> </li>
+<li id="GUID-25EE3478-CCEC-5EED-A6D1-D08C5C326961"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How to use a local
+condition variable</xref>  </p> </li>
+<li id="GUID-3378721F-E348-52B0-9ADA-F1B320190D98"><p><xref href="GUID-5C1E776D-5AEF-5326-BEA6-F2108F42CB71.dita">How to create a queue
+of integer tokens</xref>  </p> </li>
+<li id="GUID-9243C325-C2F9-5711-8B93-45056FEB64AB"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How to load and unload
+an ldd and pdd</xref>  </p> </li>
+<li id="GUID-AE3E44A5-99A7-51D7-919D-A64E7D955E99"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How to cancel an
+asynchronous request</xref>  </p> </li>
+<li id="GUID-EE3A5240-D313-592F-9B9C-D3753321EB1F"><p><xref href="GUID-5B9DE39D-61D0-51FF-948E-15691CD673B5.dita">How multiple clients
+in different processes connect to a server</xref>  </p> </li>
+<li id="GUID-E7C950DB-E82A-5959-B873-4D0367FACA89"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-90645A43-313B-55FC-91D0-547C237B680B">How to handle binary data using 8 bit descriptors</xref>  </p> </li>
+<li id="GUID-734CBC47-1D3E-5AE4-8193-E29DFB007BB5"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-FC2B9B70-F849-5F19-9F3C-25D5FDCC576D">How to use basic buffer descriptors</xref>  </p> </li>
+<li id="GUID-B2E541C5-6529-524E-B2DA-069D8B98FF44"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-CE601E1E-AF03-56E8-B7FB-0CDFF4EA4386">How to create and use a heap buffer descriptor</xref>  </p> </li>
+<li id="GUID-63E8CEC2-B65D-54A2-93CD-123FD5D1EADA"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5040249B-55ED-5ACD-837B-6B0FD4AF24FE">How to use descriptors as function arguments</xref>  </p> </li>
+<li id="GUID-8583B379-AA83-507E-8435-D1F5986D5750"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-C79042EB-4ACF-5972-9F57-E7C0F37DECF6">How to use modifiable descriptors</xref>  </p> </li>
+<li id="GUID-D2B9845D-7CA8-51F7-AB75-5FBA74D7A45E"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-927CFF04-C0D1-5BDE-B221-4245113924F7">How to use non-modifiable descriptors</xref>  </p> </li>
+<li id="GUID-8A90092C-7536-56A6-B108-7BC273DAF79A"><p><xref href="GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9.dita#GUID-14FAE656-7CDE-56ED-ACB2-7853276C24E9/GUID-5AEFA6EB-A100-5B96-935D-2537EEFB56F5">How to use pointer descriptors</xref>  </p> </li>
+<li id="GUID-98FD0272-1A6D-51FB-8936-B77B62096C16"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get the number
+of available power-related resources</xref>  </p> </li>
+<li id="GUID-082AD630-9B2B-5907-84C3-66AFE3E36179"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get information
+about a power-related resource</xref>  </p> </li>
+<li id="GUID-13DDA999-E886-5217-BFF8-CEB3955211AC"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get information
+about all power-related resources</xref>  </p> </li>
+<li id="GUID-B96F159D-D327-5F55-9840-FC58C581DB7F"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get the state
+of a power-related resource</xref>  </p> </li>
+<li id="GUID-5C31B8AB-C524-5C5F-9DA6-F5EF9AACB74D"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get the number
+of clients using a particular power-related resource</xref>  </p> </li>
+<li id="GUID-2F1F01B3-6439-5B6D-A5FE-796592EFBD06"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get the number
+of power-related resources used by a client</xref>  </p> </li>
+<li id="GUID-CF45E4C4-9680-51E3-B320-29220427089A"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get information
+about all the power-related resources in use by a particular client</xref>  </p> </li>
+<li id="GUID-143AAF5A-BB38-5886-A525-A61886E572F9"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get information
+about all clients using a particular power-related resource</xref>  </p> </li>
+<li id="GUID-111416B6-9534-530C-9532-103A4F824CF0"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get the names
+of all Resource Manager clients</xref>  </p> </li>
+<li id="GUID-62B7DDDC-3114-529F-9FE7-5D4196E4CA83"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to change the
+state of a power-related resource</xref>  </p> </li>
+<li id="GUID-3F6EAE14-60E5-5C9F-9E78-8D6A64300CC9"><p><xref href="GUID-34614E31-45F1-5BD8-963D-9526AAD31734.dita">How to get notification
+about a state change to a power-related resource</xref>  </p> </li>
+
+<li><p id="BD60698B-5F00-4693-BDF7-849B3BFBD61F"><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">How to use semaphore
+in a multithreaded application</xref></p></li>
+<li><p><xref href="GUID-C7B748CF-D080-5448-98AF-1634D821E713.dita">How
+to understand the differences between multithreaded code running in
+a unicore environment and in a multiprocessor environment</xref></p></li>
+<li><p><xref href="GUID-056B9A65-EC59-4B2E-9F10-E487343B5F5F.dita">How
+to use a named database using RdbNamedDatabase</xref></p></li>
+</ul> </section>
+<section id="GUID-04145381-C665-41F9-8BC8-D5AEED089166"><title>Messaging</title> <ul>
+<li id="GUID-4AA84CE0-D56D-5998-818B-719B4A72E62F"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to create a client
+registry</xref>  </p> </li>
+<li id="GUID-58084600-8859-5796-A17A-BD90065CD2DC"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to create an
+IMAP account</xref>  </p> </li>
+<li id="GUID-0DFC0FE0-4535-5533-907F-75880C5CB925"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to create an
+SMTP account</xref>  </p> </li>
+<li id="GUID-A849443E-2C9E-5984-88EF-E33F36038CA6"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to create an
+SMTP message</xref>  </p> </li>
+<li id="GUID-EF57114C-9A49-57FD-A171-E8FB310108B2"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to send an SMTP
+message</xref>  </p> </li>
+<li id="GUID-1CA17BBF-E65F-5117-BC61-C7AFBF07FFAB"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to connect to
+the IMAP server and download mail sent using SMTP</xref>  </p> </li>
+<li id="GUID-FFB38E67-9107-57E3-BD36-6D0A2B003FA2"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to update registry
+information when MTM groups are installed or uninstalled</xref>  </p> </li>
+<li id="GUID-BCD5A910-504E-5B25-8CC5-ACA08E183FD9"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to create a POP3
+account</xref>  </p> </li>
+<li id="GUID-2E5717A2-4264-5509-976D-ACBCEDF2DB47"><p><xref href="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita">How to connect to
+a POP3 server and download mail sent using SMTP</xref>  </p> </li>
+<li id="GUID-BBA241A4-03C4-562C-9B87-E615FE99E755"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How to create a SendAs
+message</xref>  </p> </li>
+<li id="GUID-EFB6D825-F707-5810-8B01-6260FF55AB57"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How to display account
+names</xref>  </p> </li>
+<li id="GUID-3F3DCFB7-FDE0-59F5-BC2E-E78D9F75E6F3"><p><xref href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita">How to define the
+connected session's available message types</xref>  </p> </li>
+<li id="GUID-0DE038F8-2097-5FF9-B5FD-5036B469DCDC"><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">How to forward a
+message from an MTM account</xref>  </p> </li>
+<li id="GUID-800A0E22-81B1-5F13-B1A2-B819989A85CD"><p><xref href="GUID-5B9F2EEE-A5F6-5833-BFC4-3B063EA7EDF2.dita">How to query for
+the capability of an MTM account</xref> </p> </li>
+<li id="GUID-7C3A69D9-471C-57AF-AC84-BBD37A0F95E0"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to create a BIO
+message</xref>  </p> </li>
+<li id="GUID-D07978C9-ED82-50C9-B6DA-C5E80E19D7BC"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to create a session
+with the message server</xref>  </p> </li>
+<li id="GUID-3B655259-C85B-5F5B-B06D-618BFE2787BD"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to send a BIO
+message</xref>  </p> </li>
+<li id="GUID-FEF9C70E-DFB1-557C-90BD-26D73DEE3A09"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to create a BIO
+message parser</xref>  </p> </li>
+<li id="GUID-F75DB020-0138-5AE2-A8DD-8A4D1B3F5ACA"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to read messages
+from the message store</xref>  </p> </li>
+<li id="GUID-F4782CB0-9900-57DC-98A0-58DBAB2A96F7"><p><xref href="GUID-0CBD2728-DB7E-55FF-929A-E5BF279A1B66.dita">How to parse a message's
+body text using the BIO message parser</xref>  </p> </li>
+<li id="GUID-F28AB654-9D9D-5663-9D3A-6B6410169BEC"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How to display the
+header information for message entries</xref>  </p> </li>
+<li id="GUID-DE272737-9608-5CC6-9B02-2820E64D920B"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How to search and
+sort a message store</xref>  </p> </li>
+<li id="GUID-DC3279E7-A022-5346-A8CA-365FA2D4FD8C"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How to do a combined
+search/sort of a message store</xref>  </p> </li>
+<li id="GUID-178FB7F7-02E3-53F3-AE67-AFE3F1BF79DD"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How to search and
+sort a message store iteratively</xref>  </p> </li>
+<li id="GUID-890C761F-ECDB-5669-A4B9-9BEAFF7A4919"><p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">How to search and
+sort a message store using a query ID</xref>  </p> </li>
+<li id="GUID-83A45635-37BC-5707-9214-2C684D3FB168"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How to create an
+SMS service</xref>  </p> </li>
+<li id="GUID-64DAC51E-C7AF-573E-80A9-17307B2ED090"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How to create an
+SMS</xref>  </p> </li>
+<li id="GUID-EF1EBCF8-83FE-5DCB-B5B4-2EFB19660C0B"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How to send an SMS</xref>  </p> </li>
+<li id="GUID-9CCD6A6F-C790-51DF-B62F-D2627BE04279"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How to access and
+display SMS messages in the inbox, outbox and sent folders</xref>  </p> </li>
+<li id="GUID-948F5BFC-A4A3-59F9-9EE9-0E51D43B7BB0"><p><xref href="GUID-2D9B17E7-2B7A-5E16-AB06-D9507457A85D.dita">How to delete SMS
+messages</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-EC20ACAC-6D20-4B90-94FD-2319894574AE"><title>Multimedia</title> <ul>
+<li id="GUID-7826DEB9-FCBE-5DD2-BA4E-8EB44E789EF2"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to play an audio
+tone</xref>  </p> </li>
+<li id="GUID-DDB7E337-F93B-50E4-B240-70A23A651038"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to play audio
+from a file</xref>  </p> </li>
+<li id="GUID-38FED1E9-F5BD-5EAB-BCD8-F56E676DE47E"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to convert an
+audio file to another format</xref>  </p> </li>
+<li id="GUID-9D0588BF-E93C-58E6-8800-D2FAE67BB4A9"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to record an
+audio file</xref>  </p> </li>
+<li id="GUID-10B9E43D-9CE9-5E6C-9AD2-8A5CD35C8A71"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to stream data</xref>  </p> </li>
+<li id="GUID-EC97DF41-57EF-58F4-9B2D-1A1CCDC1E2DE"><p><xref href="GUID-21D0D9D5-B57F-5F16-A2AF-17BC00DC1B15.dita">How to set the volume
+of an audio file</xref>  </p> </li>
+<li id="GUID-CE92ADF3-F82A-502B-85D3-9EB722FBE5DC"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">How to capture a
+still image</xref>  </p> </li>
+<li id="GUID-BBF7D525-7513-5ABD-89D4-A05F0206BDD7"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">How to capture video</xref>  </p> </li>
+<li id="GUID-12C2E2C4-85F1-5969-B40A-CFE6BE077227"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">How to transfer viewfinder
+data</xref>  </p> </li>
+<li id="GUID-63DD72DF-288B-599E-95DA-9A2C8ECA4BC2"><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">How to perform image
+processing</xref>  </p> </li>
+<li id="GUID-403BF127-9187-5B72-86A5-ABA1D2C1812A"><p><xref href="GUID-22446D23-3CF7-5E1B-B479-4DCA6B6A3DA9.dita">How to implement
+sink and source plug-ins for the Multimedia Framework</xref>  </p> </li>
+<li id="GUID-469A8390-F73A-50E8-908E-F52E4CC4FF70"><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita">How to convert images
+from one format to another</xref>  </p> </li>
+<li id="GUID-546639BE-E94F-5077-BDEE-0C3CAE07D2DB"><p><xref href="GUID-7594A012-166F-5F10-A3ED-256465B4623E.dita">How to manipulate
+images, for instance rotate, flip and zoom</xref>  </p> </li>
+<li id="GUID-66BE6C7C-FAEB-518B-A5E0-58512602B36E"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita">How to implement
+a codec plug-in for the Multimedia Framework</xref>  </p> </li>
+<li id="GUID-62E53F5E-8063-5512-B46D-F5D925A516EA"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita">How to convert media
+data from one encoding into another</xref>  </p> </li>
+<li id="GUID-2F04ACBF-09B1-5ECE-A8F3-21A2F056ABC6"><p><xref href="GUID-8D8202BB-1070-5EE2-85C0-E37AABA67340.dita">How to convert PCM8
+into PCM16 encoded audio data</xref>  </p> </li>
+<li id="GUID-D89C563F-BACC-5196-83B5-FA5E6BCBF432"><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita">How to implement
+a format encoder plug-in to the Multimedia Framework</xref>  </p> </li>
+<li id="GUID-04F3E1E8-8A34-55DB-89EC-C181374D0C6A"><p><xref href="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita">How to implement
+a format decoder plug-in to the Multimedia Framework</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-4CCC6738-1107-4B59-98C3-22444301577B"><title>Networking
+Services</title> <ul>
+<li id="GUID-AA0E827F-816A-5999-B65C-6D30EA8C2CE1"><p><xref href="GUID-F3913401-83F6-5A12-BCA8-ABA232C2BF3D.dita">How to send an http
+page request to the server</xref>  </p> </li>
+<li id="GUID-396E2E72-9205-5072-B3E1-CFB461509FC9"><p><xref href="GUID-F3913401-83F6-5A12-BCA8-ABA232C2BF3D.dita">How to get the server
+response</xref>  </p> </li>
+<li id="GUID-AE7AB802-3C7F-5AD0-83C7-A0FF7B07BF24"><p><xref href="GUID-F3913401-83F6-5A12-BCA8-ABA232C2BF3D.dita">How to read the server
+response</xref>  </p> </li>
+<li id="GUID-295ED516-4BA6-5916-A69C-A439087438F7"><p><xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">How to connect to
+a socket using an IP address</xref>  </p> </li>
+<li id="GUID-43C81C6C-EA69-5E0E-BF81-28C1D6501B30"><p><xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">How to connect to
+a socket using the host name</xref>  </p> </li>
+<li id="GUID-D6DEF0A7-C91F-54AB-948F-5643D77324A5"><p><xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">How to read/write
+data to/from a stream socket</xref>  </p> </li>
+<li id="GUID-EAAB94C6-202F-519B-AFE3-1A6761D32E89"><p><xref href="GUID-2274DE87-8D6B-5376-A9AE-03ABE4DEE495.dita">How to read/write
+data to/from a datagram socket</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-EE7772E0-6231-47A0-AE20-0A597DF287F2"><title>PC
+Tools</title> <ul>
+<li><p><xref href="GUID-AED57265-6106-4217-ADE6-1327CA3FDE7E.dita">How
+to create a simple installation file for an application</xref></p></li>
+<li id="GUID-86649DD7-42E4-5D82-BB79-A883ADE3689C"><p><xref href="GUID-5D508751-C824-48E4-A6E3-0C5EA05DEC99.dita">How to create an
+installation file for a multilingual application</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-AE03DB6F-771B-4759-AEDE-643A6C86E63F"><title>Persistent
+Data Services</title> <ul>
+<li id="GUID-11CDD2CA-BE90-59B5-A295-21A75718A61A"><p><xref href="GUID-AA5DEEB2-0B13-5FA8-8494-EC2F5C654FEF.dita">How to store data
+in a central repository</xref>  </p> </li>
+<li id="GUID-0D58A8B2-8E82-555A-BADA-76328A071FA6"><p><xref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita">How to use the SQL
+API for data creation</xref>  </p> </li>
+<li id="GUID-F7BAEC44-12FF-5FDB-BA32-C780C22BD8F6"><p><xref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita">How to copy one database
+to another using the SQL API</xref>  </p> </li>
+<li id="GUID-650F0FB7-7463-590F-867E-2A31EF28BBA3"><p><xref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita">How to attach two
+databases using the SQL API </xref>  </p> </li>
+<li id="GUID-36509295-E416-595F-ABC3-D14C5587DD85"><p><xref href="GUID-271E14D1-7B9B-5048-B1F0-1E25B4EA4E16.dita">How to query a database
+using the SQL API</xref>  </p> </li>
+<li id="GUID-378D4F1F-9A82-5552-9042-E7847CAC4B1F"><p><xref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita">How to create a clipboard </xref>  </p> </li>
+<li id="GUID-D9582BCE-C48D-57F5-8194-D296E55BB2F6"><p><xref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita">How to copy an object
+to the clipboard</xref>  </p> </li>
+<li id="GUID-40AC1CBA-1033-5043-9A48-E2891AA0668D"><p><xref href="GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita">How to fetch content
+from the clipboard</xref>  </p> </li>
+<li id="GUID-A6B84C20-4DC0-5449-AD69-485505F653DC"><p><xref href="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita">How to create a database
+using the DBMS API.</xref>  </p> </li>
+<li id="GUID-B9778C36-4F8B-54C9-A890-5B2CDD95F33D"><p><xref href="GUID-8D130FC5-3AB8-5C70-A9D2-C753957E729F.dita">How to use a database
+for indexing using the DBMS API</xref>  </p> </li>
+<li id="GUID-FE697473-1C75-5102-91B0-4586A65FACCF"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-8C6125A5-AB9A-5D5D-BED6-7EE040400CA4">How to create and replace a direct file store</xref>  </p> </li>
+<li id="GUID-0B8696C8-F36B-5993-BF3E-318EFC762845"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-8C6125A5-AB9A-5D5D-BED6-7EE040400CA4">How to write objects to a single stream</xref>  </p> </li>
+<li id="GUID-39FD310D-C25D-5859-9633-E2042EE18BF2"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-8C6125A5-AB9A-5D5D-BED6-7EE040400CA4">How to close a file stream</xref>  </p> </li>
+<li id="GUID-AD245440-D8FA-5F0D-B77F-8DCB48C582B9"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-8C6125A5-AB9A-5D5D-BED6-7EE040400CA4">How to restore objects from a root stream</xref>  </p> </li>
+<li id="GUID-234D820C-0B64-5815-B897-126EC42AB96E"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-BB30B109-E407-5253-841F-5BBBA4079A06">How to externalize a network of objects to a direct file store</xref>  </p> </li>
+<li id="GUID-B24E7506-1A21-565D-8004-BEEE8C4B105A"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-BB30B109-E407-5253-841F-5BBBA4079A06">How to internalize a network of objects from a direct file store</xref>  </p> </li>
+<li id="GUID-47DCB7E3-97DD-56B8-83F2-01B886AF9563"><p><xref href="GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E.dita#GUID-15967AB3-B03C-5DAA-A784-D25ABFFC995E/GUID-394D948C-13AB-505F-97E8-5AB3DCAEED45">How to construct and write a network of objects to a permanent file
+store</xref>  </p> </li>
+<li id="GUID-B3E567D3-FA6C-54EB-95B3-A73E35593943"><p><xref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita">How to write two
+different types of object to a single stream contained in the memory
+store</xref>  </p> </li>
+<li id="GUID-B53A145B-636C-5D43-9560-BFD0E8324592"><p><xref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita">How to restrore objects
+from a memory store</xref>  </p> </li>
+<li id="GUID-AD5F2C20-B832-522B-8A0F-36B15AAC49A9"><p><xref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita#GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8/GUID-F831D318-2C97-571A-B2DB-26172B22288E">How to externalize a compound object to a memory stream</xref>  </p> </li>
+<li id="GUID-CB27639E-AC58-55D6-9295-3228D01D93C6"><p><xref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita#GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8/GUID-F831D318-2C97-571A-B2DB-26172B22288E">How to internalize a compound object from a memory stream</xref>  </p> </li>
+<li id="GUID-97FD4EB5-A9B2-57AB-9B5D-B20B5F3BD6AC"><p><xref href="GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8.dita#GUID-BB67D4AA-EE75-559D-8180-D1BE923F22D8/GUID-CAA3834A-2781-5259-A0BC-4D40F39595E4">How to stream a simple class to and from a single stream</xref>  </p> </li>
+<li id="GUID-B32D4081-9173-59BB-BF64-B7CFC87EA34F"><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-4C25485D-7FE0-5699-86E7-F92BEE6BFADA">How to stream a compound object to multiple streams using a store
+map</xref>  </p> </li>
+<li id="GUID-270043BB-DFC7-52A1-A2A0-5A4C30D492AF"><p><xref href="GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB.dita#GUID-7FF63B82-B719-5E42-B007-94E2FB9548CB/GUID-909F271F-2546-5F1D-A948-FC7D8D6FC57B">How to externalize objects to a single stream in a non-persistent
+store</xref>  </p> </li>
+<li id="GUID-C1FF6E8E-7B1D-5C66-AD67-D647B2695A83"><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-8E522D0B-C74C-5B14-9483-827DC79DEF46">How to externalize an object to a store embedded within a permanent
+file store</xref>  </p> </li>
+<li id="GUID-290C7A7A-CB16-59EF-8C6A-3F4F68857852"><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-CFC06048-6EAF-563E-A7BC-7CB4C99AA4C7">How to write a network of objects to more than one stream in a direct
+file store</xref>  </p> </li>
+<li id="GUID-E232B8C7-A395-5049-9A50-9EF7599F3707"><p><xref href="GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7.dita#GUID-9372CB71-2C75-5B3D-81EA-B4257C3162C7/GUID-CFC06048-6EAF-563E-A7BC-7CB4C99AA4C7">How to defer the loading of an object from the store into memory</xref>  </p> </li>
+<li id="GUID-D43E52AE-B29C-5F0C-BFFF-1A82779D2B24"><p><xref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita">How to get the list
+of available features in a device</xref>  </p> </li>
+<li id="GUID-9708D5E4-88B6-5945-9DF1-A56DE68981EF"><p><xref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita">How to add a new
+feature to the device</xref>  </p> </li>
+<li id="GUID-C2E4FD21-6A55-5DDA-AC19-48536574A932"><p><xref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita">How to modify or
+delete a feature</xref>  </p> </li>
+<li id="GUID-83D1E45A-EAB6-5810-907A-59E1E490FA6C"><p><xref href="GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita">How to get notification
+about a feature change</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-E8A65248-643D-4CB7-B67F-861EFDE1AC09"><title>PIM</title> <ul>
+<li id="GUID-D66E926A-1C37-53B2-BA15-0AC53683E94C"><p><xref href="GUID-A0C0BEBA-1976-5D68-B4EF-C3727DF163A9.dita">How to view a contact
+database</xref>  </p> </li>
+<li id="GUID-A48D7BA5-12F4-53A5-B041-D1F94C880ADC"><p><xref href="GUID-F8E4D4AC-878A-52C5-A04D-9E116A0087D5.dita">How to create and
+use a calendar file</xref>  </p> </li>
+<li id="GUID-7CE16423-0156-58F3-A3A2-D10C852912FA"><p><xref href="GUID-F8E4D4AC-878A-52C5-A04D-9E116A0087D5.dita">How to create and
+open a calendar file</xref>  </p> </li>
+<li id="GUID-EFA503A3-EA87-5F76-9A5B-E8F0D815F323"><p><xref href="GUID-F8E4D4AC-878A-52C5-A04D-9E116A0087D5.dita">How to create a view
+of the entries in a calendar file</xref>  </p> </li>
+<li id="GUID-3F1925C4-02D4-5A5E-96E5-77FBB1BC9DC3"><p><xref href="GUID-F8E4D4AC-878A-52C5-A04D-9E116A0087D5.dita">How to add properties
+to a calendar file</xref>  </p> </li>
+<li id="GUID-B24ABF74-0389-5C54-834F-A74DEE818F11"><p><xref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita">How to create a vCard
+parser</xref>  </p> </li>
+<li id="GUID-17E6D07A-94EA-5954-B41D-D1401C0DF265"><p><xref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita">How to export a vCard
+to a file</xref>  </p> </li>
+<li id="GUID-C09961EE-051E-5D92-9E90-82B811EEA0BD"><p><xref href="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita">How to import a vCard
+from a file</xref>  </p> </li>
+</ul> </section>
+
+<section id="GUID-70C7D0D2-3C97-4AA6-BAF7-5C2CD110161D"><title>System
+GUI Framework</title> <ul>
+
+
+<li id="GUID-903653B0-8D2E-5A39-899B-FA811F011DC1"><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita">How to create and
+display a digital clock</xref>  </p> </li>
+<li id="GUID-931FD18A-086F-57F7-84E6-B25424DD046F"><p><xref href="GUID-79B02562-B6E6-5DF9-BF98-F015C73A448C.dita">How to create and
+display an analog clock</xref>  </p> </li>
+
+
+
+</ul> </section>
+
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Telnet refers to the client-side software implementation and TelnetD (Telnet Daemon) to the server-side implementation. A Telnet client (for example, host PC) is connected to a TelnetD (for example, device). Here the purpose is to run and control a shell on a device using a PC as a terminal with a keyboard. </p> <p>The main purpose of using Zsh connected through TelnetD is to launch utilities (such as, external programs), debug applications, generate logs and retrieve information (such as, contents of the file) from public directories. The Utilities are executables whose output can be made available to the remote Telnet user by viewing text, or archiving as files or as an another program. </p> <p>Zsh transfers characters to the Telnet client and vice versa using TelnetD. Zsh interface is provided to enable programs to be conveniently launched for testing purposes. The shell also supports a number of <xref href="GUID-3F577531-9798-537F-8F8B-7CAB0257560C.dita">built-in commands</xref>. </p> <section id="GUID-B6A34708-CA62-5B2C-918B-595B78D80EDA"><title>Using TelnetD and Zsh</title> <p>Zsh can be launched by selecting the <b>Zsh</b> icon on the device. It starts TelnetD automatically. A connection can then be established from the Telnet client (host PC) to TelnetD by giving the following command at a Windows® or a UNIX® command prompt: </p> <p><userinput>Telnet &lt;ip-address of the device&gt;</userinput> </p> <p>For information on retrieving the IP address refer to <xref href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita">Setup</xref>. </p> <p>Every login to Zsh is through a key handshake. The device prompts for a key when you try to connect from the host PC. The same key given to the device has to be given at the host PC for the login to be successful. If the login is successful then the device starts the Zsh application. The maximum number of characters a key can accept is eight. The characters can be a combination of alphabets, numerals, and special characters. </p> <p>For existing Telnet clients on the host PC such as Microsoft Windows or Linux to connect to the server running on the device, the device needs an IP address. </p> <p>TelnetD supports send and receive functionality: TelnetD sends any data to and from Zsh to the host PC. TelnetD runs only when it is connected through a TCP/IP network. When the Telnet client places a request, TelnetD starts Zsh on the device, executes the specified command on the device, and sends the resultant data back to the host PC. </p> <fig id="GUID-0E8BE92D-447E-5C52-8179-F3FE045E8E13"><title>
-          Connection between the client (host PC) and the server (device) 
-        </title> <image href="GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e141739_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-643BECA3-FC08-58D0-8E1B-D3ECAEB25CB5.dita"><linktext>Reference</linktext> </link> <link href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita"><linktext>Setup</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Telnet refers to the client-side software implementation and TelnetD (Telnet Daemon) to the server-side implementation. A Telnet client (for example, host PC) is connected to a TelnetD (for example, device). Here the purpose is to run and control a shell on a device using a PC as a terminal with a keyboard. </p> <p>The main purpose of using Zsh connected through TelnetD is to launch utilities (such as, external programs), debug applications, generate logs and retrieve information (such as, contents of the file) from public directories. The Utilities are executables whose output can be made available to the remote Telnet user by viewing text, or archiving as files or as an another program. </p> <p>Zsh transfers characters to the Telnet client and vice versa using TelnetD. Zsh interface is provided to enable programs to be conveniently launched for testing purposes. The shell also supports a number of <xref href="GUID-3F577531-9798-537F-8F8B-7CAB0257560C.dita">built-in commands</xref>. </p> <section id="GUID-B6A34708-CA62-5B2C-918B-595B78D80EDA"><title>Using TelnetD and Zsh</title> <p>Zsh can be launched by selecting the <b>Zsh</b> icon on the device. It starts TelnetD automatically. A connection can then be established from the Telnet client (host PC) to TelnetD by giving the following command at a Windows® or a UNIX® command prompt: </p> <p><userinput>Telnet &lt;ip-address of the device&gt;</userinput> </p> <p>For information on retrieving the IP address refer to <xref href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita">Setup</xref>. </p> <p>Every login to Zsh is through a key handshake. The device prompts for a key when you try to connect from the host PC. The same key given to the device has to be given at the host PC for the login to be successful. If the login is successful then the device starts the Zsh application. The maximum number of characters a key can accept is eight. The characters can be a combination of alphabets, numerals, and special characters. </p> <p>For existing Telnet clients on the host PC such as Microsoft Windows or Linux to connect to the server running on the device, the device needs an IP address. </p> <p>TelnetD supports send and receive functionality: TelnetD sends any data to and from Zsh to the host PC. TelnetD runs only when it is connected through a TCP/IP network. When the Telnet client places a request, TelnetD starts Zsh on the device, executes the specified command on the device, and sends the resultant data back to the host PC. </p> <fig id="GUID-0E8BE92D-447E-5C52-8179-F3FE045E8E13"><title>
+          Connection between the client (host PC) and the server (device) 
+        </title> <image href="GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e135205_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-643BECA3-FC08-58D0-8E1B-D3ECAEB25CB5.dita"><linktext>Reference</linktext> </link> <link href="GUID-A34D9893-C9AE-5C43-85D3-E14BC5DE2A92.dita"><linktext>Setup</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E"><title>The object container index</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>All object containers must be held within a special type of container known as an object container index. </p> <p>An object container index is an instance of a <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> class. </p> <p>An object container index not only acts as a container for object containers, but also provides the mechanism through which object containers are created. </p> <p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita#GUID-72761B3C-ECB6-34B2-87ED-C972E479357A/GUID-8D0B0EC9-AE35-3D06-AEA0-648E107F8189"><apiname>CObjectConIx::CreateL()</apiname></xref> creates an object container and is responsible for assigning a unique ID to it. This unique ID forms part of the identity of all reference counting objects which that object container will, in due course, hold. </p> <p>For example, the sever creates a single object container index; from this it creates a number of object containers, each of which, in turn, holds reference counting objects. The following drawing shows the idea. </p> <fig id="GUID-253D9535-D893-575C-8970-D9A94799952B"><image href="GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e248523_href.png" placement="inline"/></fig> <p>An object container index is implemented as a simple array where each element of the array contains a pointer to an object container. <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita#GUID-72761B3C-ECB6-34B2-87ED-C972E479357A/GUID-8D0B0EC9-AE35-3D06-AEA0-648E107F8189"><apiname>CObjectConIx::CreateL()</apiname></xref> constructs an object container, assigns a unique ID to it and adds it into the <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> array. </p> <p>See also: </p> <ul><li id="GUID-7766067F-FB87-57F4-B1C9-EB299B8F7F20"><p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref>  </p> </li> <li id="GUID-74D1FD14-DA1C-5C93-9036-9863A6C8ACC2"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-FE6D8C1C-5F56-5C5F-855C-DE1386FAEB44"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> </p> </li> </ul> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-95259B6D-19A0-569E-B04B-F75B8DADC80E"><title>The object container index</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>All object containers must be held within a special type of container known as an object container index. </p> <p>An object container index is an instance of a <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> class. </p> <p>An object container index not only acts as a container for object containers, but also provides the mechanism through which object containers are created. </p> <p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita#GUID-72761B3C-ECB6-34B2-87ED-C972E479357A/GUID-8D0B0EC9-AE35-3D06-AEA0-648E107F8189"><apiname>CObjectConIx::CreateL()</apiname></xref> creates an object container and is responsible for assigning a unique ID to it. This unique ID forms part of the identity of all reference counting objects which that object container will, in due course, hold. </p> <p>For example, the sever creates a single object container index; from this it creates a number of object containers, each of which, in turn, holds reference counting objects. The following drawing shows the idea. </p> <fig id="GUID-253D9535-D893-575C-8970-D9A94799952B"><image href="GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e244786_href.png" placement="inline"/></fig> <p>An object container index is implemented as a simple array where each element of the array contains a pointer to an object container. <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita#GUID-72761B3C-ECB6-34B2-87ED-C972E479357A/GUID-8D0B0EC9-AE35-3D06-AEA0-648E107F8189"><apiname>CObjectConIx::CreateL()</apiname></xref> constructs an object container, assigns a unique ID to it and adds it into the <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> array. </p> <p>See also: </p> <ul><li id="GUID-7766067F-FB87-57F4-B1C9-EB299B8F7F20"><p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref>  </p> </li> <li id="GUID-74D1FD14-DA1C-5C93-9036-9863A6C8ACC2"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-FE6D8C1C-5F56-5C5F-855C-DE1386FAEB44"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> </p> </li> </ul> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-95493C3D-58C6-5EBF-85E1-167D58E68658.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-95493C3D-58C6-5EBF-85E1-167D58E68658.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,131 +1,131 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-95493C3D-58C6-5EBF-85E1-167D58E68658" xml:lang="en"><title>Bluetooth
-Remote Control Framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The Bluetooth Remote Control Framework
-provides the APIs needed to send (<xref href="GUID-45209316-9B3A-3384-8345-63638CA55705.dita"><apiname>CRemConCoreApiController</apiname></xref>)
-and receive (<xref href="GUID-723FC8F2-DB48-3C70-976F-D027E19F480B.dita"><apiname>CRemConCoreApiTarget</apiname></xref>) remote control commands
-to/from a Bluetooth enabled device. </p> <p><b>In this overview </b> </p> <p>You
-will learn about the Bluetooth Remote Control Framework. Several tutorials
-are provided, links are at the end of the overview, to help get you started
-writing remote control applications. </p> </section>
-<section><title>Architectural relationships</title> <p>The Bluetooth subsystem
-provides a number of APIs that you will use to establish a connection to a
-Bluetooth device that provides the required services. The APIs you need to
-know about include: </p> <ul>
-<li id="GUID-2CE04B62-CBF3-5051-808A-ED69036ED66A"><p><xref href="GUID-5FE7D4DB-B853-57C4-8A90-16DF92F6231A.dita">Bluetooth
-User</xref>  </p> <p>Establishing a Bluetooth connection. </p> </li>
-<li id="GUID-4677DB2E-5D9F-5FBC-A2A6-5C0C909C84C7"><p><xref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita">Bluetooth
-SDP</xref>  </p> <p>Finding a device that can provide the necessary services. </p> </li>
-<li id="GUID-9990C09D-EEFA-5F00-B6E8-85BD96BFB685"><p><xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
-Comms C32</xref>  </p> <p>The serial communications framework. </p> </li>
-<li id="GUID-6D927D93-DD66-507A-99C6-4301CAA9F9D7"><p><xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Socket
-Server</xref>  </p> <p>The interface to protocols. </p> </li>
-</ul> <p>The <xref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita#GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7/GUID-7251B0E5-D6B1-524B-9714-6A469F8E1CB3">Audio
-Video Remote Control Profile</xref> (AVRCP) is implemented by the Remote Control
-Framework. A remote control bearer plug-in is required, which uses socket
-APIs internally to send and receive Audio Video Control Transport Protocol
-(AVCTP) data over ESock. </p> </section>
-<section><title>Key Concepts</title><dl>
-<dlentry>
-<dt>Controller</dt>
-<dd><p>The controller is a device that sends a control message or command
-to a target device and is ready to capture responses. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Target</dt>
-<dd><p>The target is a device that accepts the control message or command
-from the controller, invokes necessary procedures and sends out responses
-to controller. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Bearer</dt>
-<dd><p>The bearer is a carrier that acts like a vehicle of transmission for
-remote control messages. The bearer here is an Ecom plugin to the RemCon server. </p> </dd>
-</dlentry>
-<dlentry>
-<dt> Audio Video Remote Control Profile (AVRCP)</dt>
-<dd><p>The bearer that plugs into the RemCon server and transmits remote control
-messages (commands) and status responses. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Converter</dt>
-<dd><p>This is an ECom plug-in that converts the message format from the Client
-side API to the bearer format and vice versa. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Audio Video Control Transport Protocol (AVCTP)</dt>
-<dd><p>The protocol that defines the methods and messages used for controlling
-Audio/Video devices. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Audio Video Distribution Transport Protocol (AVDTP)</dt>
-<dd><p>The AVDTP is used to send frames of encoded multimedia data over Bluetooth. </p> </dd>
-</dlentry>
-</dl></section>
-<section><title>Description</title> <p>The Bluetooth Remote Control Framework
-provides APIs that make it possible for a device to participate in remote
-control relationship. The framework can be used to create an application with
-one of three behavior sets, they are: </p> <ul>
-<li id="GUID-B46D2342-789A-5503-B208-8685A07BEB3C"><p>Device acts as a remote
-controller </p> </li>
-<li id="GUID-85E8A346-1EAC-5A7C-A976-26E3ADC0FEDD"><p>Device is controlled
-remotely </p> </li>
-<li id="GUID-901A5D9A-B7A0-5429-A8EA-0D4E6B458CF6"><p>Combination of the above
-in a single device / application. </p> </li>
-</ul> <p><b>Remote Controller</b> </p> <p>As a controller the device will
-send commands to a target device. A controller can be connection-orientated,
-meaning it identifies a specific device to control and maintains a connection
-with that device, or connectionless, meaning remote control commands are sent
-out into the air for any receptive device to accept. </p> <p>The Controller
-APIs allow an application to send commands to a remote controlled device. </p> <p>Controller
-APIs include: </p> <ol id="GUID-C467E8F2-446E-5FFA-8703-81D1F8329C98">
-<li id="GUID-9D5A6982-FA04-5AC9-A0AE-D38CBC6A2E34"><p> <xref href="GUID-45209316-9B3A-3384-8345-63638CA55705.dita"><apiname>CRemConCoreApiController</apiname></xref>  </p> </li>
-<li id="GUID-E26F43AD-B427-57AB-B2AE-9E38C39B3F28"><p> <xref href="GUID-73C622B9-A91F-35B2-82D5-4D0AFCE0E220.dita"><apiname>CRemConTargetSelectorPlugin</apiname></xref>  </p> </li>
-<li id="GUID-DDDCFAFE-FD7D-5DB4-98A8-CD958048CC12"><p> <xref href="GUID-E11AC4F0-EFBF-3AED-9FB5-EE3974A54768.dita"><apiname>CRemConBearerPlugin</apiname></xref>  </p> </li>
-<li id="GUID-FB5D8C52-CCF2-52A4-8184-CF5E96C0FE17"><p> <xref href="GUID-AB5FFF47-430A-3F2D-AA0F-CA6D33FC3DB3.dita"><apiname> CRemConInterfaceBase</apiname></xref>  </p> </li>
-<li id="GUID-D6069C5A-2693-59E7-90B1-39EFD170D734"><p> <xref href="GUID-81EE9382-D501-3FCE-ACD9-7BC5236FC462.dita"><apiname>CRemConInterfaceSelector</apiname></xref>  </p> </li>
-</ol> <p><b>Controlled Remotely</b> </p> <p>Known as the target device, this
-device receives commands from a controller. Target devices may only be connectionless,
-meaning they will always respond to valid remote control commands, regardless
-of the source of said commands. </p> <p>The Target API enables applications
-to receive commands and to query for information from the controller. </p> <p>Target
-APIs include: </p> <ol id="GUID-B773F2C2-D2BE-5B86-94BE-536C7A1FB903">
-<li id="GUID-FD6A5629-FC0A-5BA1-A7FD-F2237DBB5883"><p> <xref href="GUID-723FC8F2-DB48-3C70-976F-D027E19F480B.dita"><apiname>CRemConCoreApiTarget</apiname></xref>  </p> </li>
-<li id="GUID-2E055556-D061-5993-95FB-66FA9DDAF0A8"><p> <xref href="GUID-7750ED3F-322E-3933-A3F7-6BB8AEE3F627.dita"><apiname>MRemConInterfaceIf</apiname></xref>  </p> </li>
-<li id="GUID-FCA09A7B-5DBB-50BB-92F9-B10706C3AC06"><p> <xref href="GUID-AB5FFF47-430A-3F2D-AA0F-CA6D33FC3DB3.dita"><apiname> CRemConInterfaceBase</apiname></xref>  </p> </li>
-</ol> <p><b>How Remote Control Works</b> </p> <p>The following diagram shows
-how the Remote Control Framework works for a handsfree headset example. </p> <fig id="GUID-C42AEF1A-3E1E-5CD1-84AE-80657ACEA1E1">
-<title>                 Bluetooth Remote Control Headset               </title>
-<desc><p>The controller application uses the Controller API, which is connected
-to the RemCon Server. The ECom plugin or AVRCP in this case is plugged into
-the RemCon server. The message format from the Controller API is converted
-into AVRCP format by the Converter plugin which in turn converts it into target
-API format at the other end. The target APIs invoke the necessary actions
-on the application and update the RemCon server of the status. The applicable
-Audio Video Distribution Transport Protocol (AVDTP) is used to deliver the
-output stream from the multimedia application to the controller device. The
-RemCon Server status is updated to the Controller through the AVRCP bearer. </p> </desc>
-<image href="GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e130266_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>What's next?</title> <p>The following tutorial series has
-been provided to make writing remote control applications easier. </p> <ul>
-<li id="GUID-5C8E6A29-4F25-58FD-9622-D23F81670953"><p><xref href="GUID-C4A072E1-4385-5C98-98C1-56F297132F11.dita">Remote
-Control Basics</xref>  </p> </li>
-<li id="GUID-27F6911B-0072-5324-9645-D9BDA3ABA7F3"><p><xref href="GUID-E25A5C1E-83D7-51D5-8F11-9C44C6CEEDCE.dita">Starting
-as Controller</xref>  </p> </li>
-<li id="GUID-25FD58EC-A89C-5C25-A9BB-37A305BA0084"><p><xref href="GUID-8E25E84C-E8F3-50B2-82E5-0611A341ED27.dita">Starting
-as Target</xref>  </p> </li>
-<li id="GUID-567F3EF0-B3CD-5482-A7C8-7CDEBDF4F034"><p><xref href="GUID-7DDF477A-1744-589A-82CB-3CB32D56D7CE.dita">Commands
-and Responses</xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-95493C3D-58C6-5EBF-85E1-167D58E68658" xml:lang="en"><title>Bluetooth
+Remote Control Framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The Bluetooth Remote Control Framework
+provides the APIs needed to send (<xref href="GUID-45209316-9B3A-3384-8345-63638CA55705.dita"><apiname>CRemConCoreApiController</apiname></xref>)
+and receive (<xref href="GUID-723FC8F2-DB48-3C70-976F-D027E19F480B.dita"><apiname>CRemConCoreApiTarget</apiname></xref>) remote control commands
+to/from a Bluetooth enabled device. </p> <p><b>In this overview </b> </p> <p>You
+will learn about the Bluetooth Remote Control Framework. Several tutorials
+are provided, links are at the end of the overview, to help get you started
+writing remote control applications. </p> </section>
+<section><title>Architectural relationships</title> <p>The Bluetooth subsystem
+provides a number of APIs that you will use to establish a connection to a
+Bluetooth device that provides the required services. The APIs you need to
+know about include: </p> <ul>
+<li id="GUID-2CE04B62-CBF3-5051-808A-ED69036ED66A"><p><xref href="GUID-5FE7D4DB-B853-57C4-8A90-16DF92F6231A.dita">Bluetooth
+User</xref>  </p> <p>Establishing a Bluetooth connection. </p> </li>
+<li id="GUID-4677DB2E-5D9F-5FBC-A2A6-5C0C909C84C7"><p><xref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita">Bluetooth
+SDP</xref>  </p> <p>Finding a device that can provide the necessary services. </p> </li>
+<li id="GUID-9990C09D-EEFA-5F00-B6E8-85BD96BFB685"><p><xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
+Comms C32</xref>  </p> <p>The serial communications framework. </p> </li>
+<li id="GUID-6D927D93-DD66-507A-99C6-4301CAA9F9D7"><p><xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Socket
+Server</xref>  </p> <p>The interface to protocols. </p> </li>
+</ul> <p>The <xref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita#GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7/GUID-7251B0E5-D6B1-524B-9714-6A469F8E1CB3">Audio
+Video Remote Control Profile</xref> (AVRCP) is implemented by the Remote Control
+Framework. A remote control bearer plug-in is required, which uses socket
+APIs internally to send and receive Audio Video Control Transport Protocol
+(AVCTP) data over ESock. </p> </section>
+<section><title>Key Concepts</title><dl>
+<dlentry>
+<dt>Controller</dt>
+<dd><p>The controller is a device that sends a control message or command
+to a target device and is ready to capture responses. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Target</dt>
+<dd><p>The target is a device that accepts the control message or command
+from the controller, invokes necessary procedures and sends out responses
+to controller. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Bearer</dt>
+<dd><p>The bearer is a carrier that acts like a vehicle of transmission for
+remote control messages. The bearer here is an Ecom plugin to the RemCon server. </p> </dd>
+</dlentry>
+<dlentry>
+<dt> Audio Video Remote Control Profile (AVRCP)</dt>
+<dd><p>The bearer that plugs into the RemCon server and transmits remote control
+messages (commands) and status responses. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Converter</dt>
+<dd><p>This is an ECom plug-in that converts the message format from the Client
+side API to the bearer format and vice versa. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Audio Video Control Transport Protocol (AVCTP)</dt>
+<dd><p>The protocol that defines the methods and messages used for controlling
+Audio/Video devices. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Audio Video Distribution Transport Protocol (AVDTP)</dt>
+<dd><p>The AVDTP is used to send frames of encoded multimedia data over Bluetooth. </p> </dd>
+</dlentry>
+</dl></section>
+<section><title>Description</title> <p>The Bluetooth Remote Control Framework
+provides APIs that make it possible for a device to participate in remote
+control relationship. The framework can be used to create an application with
+one of three behavior sets, they are: </p> <ul>
+<li id="GUID-B46D2342-789A-5503-B208-8685A07BEB3C"><p>Device acts as a remote
+controller </p> </li>
+<li id="GUID-85E8A346-1EAC-5A7C-A976-26E3ADC0FEDD"><p>Device is controlled
+remotely </p> </li>
+<li id="GUID-901A5D9A-B7A0-5429-A8EA-0D4E6B458CF6"><p>Combination of the above
+in a single device / application. </p> </li>
+</ul> <p><b>Remote Controller</b> </p> <p>As a controller the device will
+send commands to a target device. A controller can be connection-orientated,
+meaning it identifies a specific device to control and maintains a connection
+with that device, or connectionless, meaning remote control commands are sent
+out into the air for any receptive device to accept. </p> <p>The Controller
+APIs allow an application to send commands to a remote controlled device. </p> <p>Controller
+APIs include: </p> <ol id="GUID-C467E8F2-446E-5FFA-8703-81D1F8329C98">
+<li id="GUID-9D5A6982-FA04-5AC9-A0AE-D38CBC6A2E34"><p> <xref href="GUID-45209316-9B3A-3384-8345-63638CA55705.dita"><apiname>CRemConCoreApiController</apiname></xref>  </p> </li>
+<li id="GUID-E26F43AD-B427-57AB-B2AE-9E38C39B3F28"><p> <xref href="GUID-73C622B9-A91F-35B2-82D5-4D0AFCE0E220.dita"><apiname>CRemConTargetSelectorPlugin</apiname></xref>  </p> </li>
+<li id="GUID-DDDCFAFE-FD7D-5DB4-98A8-CD958048CC12"><p> <xref href="GUID-E11AC4F0-EFBF-3AED-9FB5-EE3974A54768.dita"><apiname>CRemConBearerPlugin</apiname></xref>  </p> </li>
+<li id="GUID-FB5D8C52-CCF2-52A4-8184-CF5E96C0FE17"><p> <xref href="GUID-AB5FFF47-430A-3F2D-AA0F-CA6D33FC3DB3.dita"><apiname> CRemConInterfaceBase</apiname></xref>  </p> </li>
+<li id="GUID-D6069C5A-2693-59E7-90B1-39EFD170D734"><p> <xref href="GUID-81EE9382-D501-3FCE-ACD9-7BC5236FC462.dita"><apiname>CRemConInterfaceSelector</apiname></xref>  </p> </li>
+</ol> <p><b>Controlled Remotely</b> </p> <p>Known as the target device, this
+device receives commands from a controller. Target devices may only be connectionless,
+meaning they will always respond to valid remote control commands, regardless
+of the source of said commands. </p> <p>The Target API enables applications
+to receive commands and to query for information from the controller. </p> <p>Target
+APIs include: </p> <ol id="GUID-B773F2C2-D2BE-5B86-94BE-536C7A1FB903">
+<li id="GUID-FD6A5629-FC0A-5BA1-A7FD-F2237DBB5883"><p> <xref href="GUID-723FC8F2-DB48-3C70-976F-D027E19F480B.dita"><apiname>CRemConCoreApiTarget</apiname></xref>  </p> </li>
+<li id="GUID-2E055556-D061-5993-95FB-66FA9DDAF0A8"><p> <xref href="GUID-7750ED3F-322E-3933-A3F7-6BB8AEE3F627.dita"><apiname>MRemConInterfaceIf</apiname></xref>  </p> </li>
+<li id="GUID-FCA09A7B-5DBB-50BB-92F9-B10706C3AC06"><p> <xref href="GUID-AB5FFF47-430A-3F2D-AA0F-CA6D33FC3DB3.dita"><apiname> CRemConInterfaceBase</apiname></xref>  </p> </li>
+</ol> <p><b>How Remote Control Works</b> </p> <p>The following diagram shows
+how the Remote Control Framework works for a handsfree headset example. </p> <fig id="GUID-C42AEF1A-3E1E-5CD1-84AE-80657ACEA1E1">
+<title>                 Bluetooth Remote Control Headset               </title>
+<desc><p>The controller application uses the Controller API, which is connected
+to the RemCon Server. The ECom plugin or AVRCP in this case is plugged into
+the RemCon server. The message format from the Controller API is converted
+into AVRCP format by the Converter plugin which in turn converts it into target
+API format at the other end. The target APIs invoke the necessary actions
+on the application and update the RemCon server of the status. The applicable
+Audio Video Distribution Transport Protocol (AVDTP) is used to deliver the
+output stream from the multimedia application to the controller device. The
+RemCon Server status is updated to the Controller through the AVRCP bearer. </p> </desc>
+<image href="GUID-8E759F53-8DA7-5AA3-B004-7D989CCF8755_d0e123728_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>What's next?</title> <p>The following tutorial series has
+been provided to make writing remote control applications easier. </p> <ul>
+<li id="GUID-5C8E6A29-4F25-58FD-9622-D23F81670953"><p><xref href="GUID-C4A072E1-4385-5C98-98C1-56F297132F11.dita">Remote
+Control Basics</xref>  </p> </li>
+<li id="GUID-27F6911B-0072-5324-9645-D9BDA3ABA7F3"><p><xref href="GUID-E25A5C1E-83D7-51D5-8F11-9C44C6CEEDCE.dita">Starting
+as Controller</xref>  </p> </li>
+<li id="GUID-25FD58EC-A89C-5C25-A9BB-37A305BA0084"><p><xref href="GUID-8E25E84C-E8F3-50B2-82E5-0611A341ED27.dita">Starting
+as Target</xref>  </p> </li>
+<li id="GUID-567F3EF0-B3CD-5482-A7C8-7CDEBDF4F034"><p><xref href="GUID-7DDF477A-1744-589A-82CB-3CB32D56D7CE.dita">Commands
+and Responses</xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e277871_href.png has changed
Binary file Symbian3/SDK/Source/GUID-95580D64-315E-51E8-99C3-6C0B8FFF1522_d0e281557_href.png has changed
--- a/Symbian3/SDK/Source/GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,94 +1,94 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662" xml:lang="en"><title>Enabling
-quick access to functions with a toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To use the Toolbar API, follow the steps below.</p>
-<ol>
-<li id="GUID-EE77C9E2-8E00-4267-81D7-348CEA8196D5">Link the <codeph>AVKON</codeph> libraries
-(<codeph>avkon.lib</codeph>, <codeph>eikcoctl.lib</codeph>) to the project
-file of the application.</li>
-<li id="GUID-ACA972C5-9E34-4220-9161-AFC18AD3194F">Define the toolbar in the
-application resources. Set it as application or view specific.</li>
-<li id="GUID-5B1DAC49-E8B3-4602-A1DF-B9071FAD8587">Provide a class that implements
-the toolbar observer (<codeph><xref href="GUID-4C4ADE30-EE2A-31FE-B029-D0C62632064F.dita"><apiname>MAknToolbarObserver</apiname></xref></codeph>)
-interface. Set the class as the observer of the toolbar (<codeph><xref href="GUID-9E7F4397-3DE4-36A3-A55B-56D9E39BEFF2.dita"><apiname>CAknToolbar</apiname></xref></codeph>)
-created in the previous step.</li>
-<li id="GUID-37161421-986B-4DBA-8E81-57CF8AA3CBBC">If the toolbar items were
-not defined in the resources, add them dynamically in the application code.</li>
-<li id="GUID-FDCAC051-D66D-4061-98A7-7A0DDAE8F916">In the case of a floating
-toolbar, set the toolbar visible. (The framework sets the fixed toolbar automatically
-visible when activating the application/view.)</li>
-<li id="GUID-32345118-A446-458E-A91D-2AEEE33E13C3">Handle toolbar events using
-the observer interface methods.</li>
-</ol>
-<fig id="GUID-DF6096FC-49A1-4120-81BB-141A1B3ADC8B">
-<title>Fixed toolbar with implementation classes</title>
-<image href="GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e79634_href.png" scale="50" placement="inline"/>
-</fig>
-<section id="GUID-96305ADF-504C-416D-9CE8-8727830FC287"><title>Implementing
-a toolbar</title><p>To use a toolbar in your application, implement the following
-use cases:</p><ul>
-<li><p><xref href="GUID-402C3EE7-8852-49B6-BE62-8588753FAC8F.dita">Constructing
-the toolbar</xref></p></li>
-<li><p><xref href="GUID-58318BAB-2EC4-4C9E-A7CA-580E701EE54F.dita">Adding and removing
-toolbar items</xref> (the toolbar buttons are defined in the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
-button API</xref>)</p></li>
-<li><p><xref href="GUID-BC3207BF-9E9F-4BA0-8F01-B72228110A61.dita">Accessing the
-toolbar from applications or application views</xref></p></li>
-<li><p><xref href="GUID-3FE04A31-C35F-47E2-B615-6C1202FB8485.dita">Accessing toolbar
-items</xref></p></li>
-<li><p><xref href="GUID-7AE34C8A-50C6-49BA-9E43-AE76873B5E12.dita">Handling toolbar
-item events</xref></p></li>
-</ul><p><draft-comment time="2008-05-12T14:05" translate="no">We need to provide more clarity
-on the required order of implementing the use cases and clarify whether there
-are alternative approaches for achieving the same results.</draft-comment></p><p>The
-following use cases are optional, allowing you to set additional properties
-for your toolbar:</p><ul>
-<li><p><xref href="GUID-81424A53-F598-4E25-BA0A-E2FFA8BCDF2B.dita">Controlling
-toolbar visibility</xref></p></li>
-<li><p><xref href="GUID-8845AFD6-F238-43FF-BD7B-902CD8CD3973.dita">Showing and
-hiding toolbar items</xref></p></li>
-<li><p><xref href="GUID-A32FFE7A-A531-48D4-AD23-1CC13CB7F4B7.dita">Dynamic initialization
-of the toolbar</xref></p></li>
-<li><p><xref href="GUID-A4D8326E-E72F-443D-9CA5-7835D6AE171F.dita">Setting toolbar
-properties</xref></p></li>
-</ul></section>
-<section id="GUID-E4F98084-4639-47DF-8E0F-2ADECFF42930"><title>Implementing
-a toolbar extension (optional)</title><p>To use a toolbar extension in your
-application, implement the following use cases:</p><ul>
-<li><p><xref href="GUID-2D390781-4467-403D-8FFC-8ED5B2319993.dita">Creating the
-toolbar extension</xref></p></li>
-<li><p><xref href="GUID-6113CC3B-F994-4AA8-81E9-50433A3266E2.dita">Adding and removing
-toolbar extension items</xref></p></li>
-<li><p><xref href="GUID-A168E5EB-4CF7-4B74-B67C-EDFD5378C5BF.dita">Accessing toolbar
-extension items</xref></p></li>
-</ul><p>The following use cases are optional, allowing you to set additional
-properties for your toolbar extension:</p><ul>
-<li><p><xref href="GUID-270FC83E-1D47-4CF9-A560-FB5DDA53111E.dita">Showing or hiding
-the toolbar extension</xref></p></li>
-<li><p><xref href="GUID-8F2D8656-B7F4-4BDA-81CB-8440A2FDDD82.dita">Dimming or hiding
-toolbar extension items</xref></p></li>
-</ul></section>
-<section id="GUID-1E0250E3-DEB8-4F42-BD6F-D7FB30A411FE"><title>Main implementation
-files</title><p>The main implementation files for the Toolbar API are:</p><ul>
-<li><p><codeph>akntoolbar.h</codeph> for creating the toolbar and setting
-its properties</p></li>
-<li><p><codeph>akntoolbarobserver.h</codeph> for handling toolbar events</p></li>
-<li><p><codeph>akntoolbarextension.h</codeph> for creating the toolbar extension
-and setting its properties</p></li>
-</ul></section>
-</conbody><related-links>
-<link href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita"><linktext>Toolbar API
-description</linktext></link>
-<link href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita"><linktext>Look and
-feel guidelines for the toolbar</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662" xml:lang="en"><title>Enabling
+quick access to functions with a toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To use the Toolbar API, follow the steps below.</p>
+<ol>
+<li id="GUID-EE77C9E2-8E00-4267-81D7-348CEA8196D5">Link the <codeph>AVKON</codeph> libraries
+(<codeph>avkon.lib</codeph>, <codeph>eikcoctl.lib</codeph>) to the project
+file of the application.</li>
+<li id="GUID-ACA972C5-9E34-4220-9161-AFC18AD3194F">Define the toolbar in the
+application resources. Set it as application or view specific.</li>
+<li id="GUID-5B1DAC49-E8B3-4602-A1DF-B9071FAD8587">Provide a class that implements
+the toolbar observer (<codeph><xref href="GUID-4C4ADE30-EE2A-31FE-B029-D0C62632064F.dita"><apiname>MAknToolbarObserver</apiname></xref></codeph>)
+interface. Set the class as the observer of the toolbar (<codeph><xref href="GUID-9E7F4397-3DE4-36A3-A55B-56D9E39BEFF2.dita"><apiname>CAknToolbar</apiname></xref></codeph>)
+created in the previous step.</li>
+<li id="GUID-37161421-986B-4DBA-8E81-57CF8AA3CBBC">If the toolbar items were
+not defined in the resources, add them dynamically in the application code.</li>
+<li id="GUID-FDCAC051-D66D-4061-98A7-7A0DDAE8F916">In the case of a floating
+toolbar, set the toolbar visible. (The framework sets the fixed toolbar automatically
+visible when activating the application/view.)</li>
+<li id="GUID-32345118-A446-458E-A91D-2AEEE33E13C3">Handle toolbar events using
+the observer interface methods.</li>
+</ol>
+<fig id="GUID-DF6096FC-49A1-4120-81BB-141A1B3ADC8B">
+<title>Fixed toolbar with implementation classes</title>
+<image href="GUID-8AEE1966-D348-41BB-8513-61C379945DB8_d0e74508_href.png" placement="inline"/>
+</fig>
+<section id="GUID-96305ADF-504C-416D-9CE8-8727830FC287"><title>Implementing
+a toolbar</title><p>To use a toolbar in your application, implement the following
+use cases:</p><ul>
+<li><p><xref href="GUID-402C3EE7-8852-49B6-BE62-8588753FAC8F.dita">Constructing
+the toolbar</xref></p></li>
+<li><p><xref href="GUID-58318BAB-2EC4-4C9E-A7CA-580E701EE54F.dita">Adding and removing
+toolbar items</xref> (the toolbar buttons are defined in the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
+button API</xref>)</p></li>
+<li><p><xref href="GUID-BC3207BF-9E9F-4BA0-8F01-B72228110A61.dita">Accessing the
+toolbar from applications or application views</xref></p></li>
+<li><p><xref href="GUID-3FE04A31-C35F-47E2-B615-6C1202FB8485.dita">Accessing toolbar
+items</xref></p></li>
+<li><p><xref href="GUID-7AE34C8A-50C6-49BA-9E43-AE76873B5E12.dita">Handling toolbar
+item events</xref></p></li>
+</ul><p><draft-comment time="2008-05-12T14:05" translate="no">We need to provide more clarity
+on the required order of implementing the use cases and clarify whether there
+are alternative approaches for achieving the same results.</draft-comment></p><p>The
+following use cases are optional, allowing you to set additional properties
+for your toolbar:</p><ul>
+<li><p><xref href="GUID-81424A53-F598-4E25-BA0A-E2FFA8BCDF2B.dita">Controlling
+toolbar visibility</xref></p></li>
+<li><p><xref href="GUID-8845AFD6-F238-43FF-BD7B-902CD8CD3973.dita">Showing and
+hiding toolbar items</xref></p></li>
+<li><p><xref href="GUID-A32FFE7A-A531-48D4-AD23-1CC13CB7F4B7.dita">Dynamic initialization
+of the toolbar</xref></p></li>
+<li><p><xref href="GUID-A4D8326E-E72F-443D-9CA5-7835D6AE171F.dita">Setting toolbar
+properties</xref></p></li>
+</ul></section>
+<section id="GUID-E4F98084-4639-47DF-8E0F-2ADECFF42930"><title>Implementing
+a toolbar extension (optional)</title><p>To use a toolbar extension in your
+application, implement the following use cases:</p><ul>
+<li><p><xref href="GUID-2D390781-4467-403D-8FFC-8ED5B2319993.dita">Creating the
+toolbar extension</xref></p></li>
+<li><p><xref href="GUID-6113CC3B-F994-4AA8-81E9-50433A3266E2.dita">Adding and removing
+toolbar extension items</xref></p></li>
+<li><p><xref href="GUID-A168E5EB-4CF7-4B74-B67C-EDFD5378C5BF.dita">Accessing toolbar
+extension items</xref></p></li>
+</ul><p>The following use cases are optional, allowing you to set additional
+properties for your toolbar extension:</p><ul>
+<li><p><xref href="GUID-270FC83E-1D47-4CF9-A560-FB5DDA53111E.dita">Showing or hiding
+the toolbar extension</xref></p></li>
+<li><p><xref href="GUID-8F2D8656-B7F4-4BDA-81CB-8440A2FDDD82.dita">Dimming or hiding
+toolbar extension items</xref></p></li>
+</ul></section>
+<section id="GUID-1E0250E3-DEB8-4F42-BD6F-D7FB30A411FE"><title>Main implementation
+files</title><p>The main implementation files for the Toolbar API are:</p><ul>
+<li><p><codeph>akntoolbar.h</codeph> for creating the toolbar and setting
+its properties</p></li>
+<li><p><codeph>akntoolbarobserver.h</codeph> for handling toolbar events</p></li>
+<li><p><codeph>akntoolbarextension.h</codeph> for creating the toolbar extension
+and setting its properties</p></li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita"><linktext>Toolbar API
+description</linktext></link>
+<link href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita"><linktext>Look and
+feel guidelines for the toolbar</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-95E557D0-9A84-514C-B51E-0556F26B3C98.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98" xml:lang="en"><title>EzlibExample:
-Using EZLIB to Compress and Decompress Files</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This overview describes the example application that demonstrates the usage
-of the EZLIB API. </p>
-<section id="GUID-20CDC26E-BD41-564A-A1CC-A271388CCE8C"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dd523979-cb61-4784-b344-53a63f82e63f.zip" scope="external">EzlibExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dd523979-cb61-4784-b344-53a63f82e63f.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-145D1AC6-E536-5C44-93EC-B468AC68FBF2"><title>Description</title> <p>EZLIB
-is a utility API used to compress and decompress data. The API is an extension
-of ZLIB compression library. For more information on ZLIB compression library,
-refer to <xref href="http://www.ietf.org/rfc/rfc1950.txt" scope="external">RFC1950</xref>. </p> <p>This
-example application uses the EZLIB API to extract files from a <filepath>.zip</filepath> and
-a <filepath>.gz</filepath> file into specified folders, and to compress a <filepath>.wav</filepath> file
-into a <filepath>.gz</filepath> file. The application reads input files and
-stores the extracted files in <filepath>c:\private\E80000B7\</filepath>. </p> <p>The
-application uses an object of the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class to open the <filepath>EzlibZipFolder.zip</filepath> file.
-It reads the properties of each file in the archive using the <xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref> object
-and prints it to the console. </p> <p>After reading all the properties of
-each file in the archive, the application extracts all the files to the specified
-folder using the <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita#GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00/GUID-FAD44863-E938-34A7-B1D1-BD08521535F9"><apiname>CZipFile::GetInputStreamL()</apiname></xref> method. </p> <p>Other
-than extracting all the files in the archive, the application also searches
-for a specific file using the <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita#GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00/GUID-3D64677E-0D19-3B29-9D22-34773FB61C73"><apiname>CZipFile::CaseInsensitiveMemberL()</apiname></xref> method
-and extracts it. </p> <p>The application also opens the <filepath>icon.bmp.gz</filepath> file
-and extracts its contents to the specified location. The GZip file is represented
-by an object of the <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref> class and its contents
-are extracted using the <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita#GUID-8DE05785-D058-3855-A11F-7132EB4DE078/GUID-4A30D99E-EC51-359F-90B5-9CFA3841A538"><apiname>CEZGZipToFile::InflateL()</apiname></xref> method. </p> <p>Finally,
-the application compresses the <filepath>error.wav</filepath> file to a <filepath>.gz</filepath> file.
-The GZip file being created is represented by an object of the <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref> class
-and the <filepath>.wav</filepath> file is compressed using the <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita#GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162/GUID-4E51D7C5-C624-3F27-A5CD-01E92F96F72B"><apiname>CEZFileToGZip::DeflateL()</apiname></xref> method. </p> </section>
-<section id="GUID-922B4740-7F7D-4A12-B92A-FE9720E2C7CD"><title>Class Summary</title><p><xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita"><apiname>CZipFile</apiname></xref></p><p><xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref></p><p><xref href="GUID-D458AE6A-EC64-3882-BCEA-A44A43DAA99A.dita"><apiname>CZipFileMemberIterator</apiname></xref></p><p><xref href="GUID-62F9728B-9C39-3496-BAEB-6E1456E6F197.dita"><apiname>RZipFileMemberReaderStream</apiname></xref></p><p><xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref></p><p><xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref></p></section>
-<section id="GUID-986B5547-0C87-57E1-893C-21444F82BE45"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build
-process</xref> describes how to build an application. </p> <p>The <codeph>EzlibExample</codeph> builds
-an executable file called <filepath>ezlibexample.exe</filepath> in the standard
-location (<filepath>\epoc32\release\winscw\</filepath> &lt;<varname>build_variant</varname> &gt;
-for CodeWarrior). After launching the executable, depending on the emulator
-you are using, you may need to navigate using the application launcher or
-the <codeph>eshell</codeph> screen to view the console. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-95E557D0-9A84-514C-B51E-0556F26B3C98" xml:lang="en"><title>EzlibExample: Using EZLIB to Compress and Decompress Files</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This overview describes the example application that demonstrates
+the usage of the EZLIB API. </p>
+<section id="GUID-20CDC26E-BD41-564A-A1CC-A271388CCE8C"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dd523979-cb61-4784-b344-53a63f82e63f.zip" scope="external">EzlibExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dd523979-cb61-4784-b344-53a63f82e63f.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-145D1AC6-E536-5C44-93EC-B468AC68FBF2"><title>Description</title> <p>EZLIB is a utility API used to compress and decompress data.
+The API is an extension of ZLIB compression library. For more information
+on ZLIB compression library, refer to <xref href="http://www.ietf.org/rfc/rfc1950.txt" scope="external">RFC1950</xref>. </p> <p>This example application uses the EZLIB API to extract
+files from a <filepath>.zip</filepath> and a <filepath>.gz</filepath> file into specified folders, and to compress a <filepath>.wav</filepath> file into a <filepath>.gz</filepath> file. The application reads
+input files and stores the extracted files in <filepath>c:\private\E80000B7\</filepath>. </p> <p>The application uses an object of the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class to open the <filepath>EzlibZipFolder.zip</filepath> file.
+It reads the properties of each file in the archive using the <xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref> object and prints it to the console. </p> <p>After reading all the properties of each file in the archive,
+the application extracts all the files to the specified folder using
+the <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita#GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00/GUID-FAD44863-E938-34A7-B1D1-BD08521535F9"><apiname>CZipFile::GetInputStreamL()</apiname></xref> method. </p> <p>Other than extracting all the files in the archive, the application
+also searches for a specific file using the <xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita#GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00/GUID-3D64677E-0D19-3B29-9D22-34773FB61C73"><apiname>CZipFile::CaseInsensitiveMemberL()</apiname></xref> method and extracts it. </p> <p>The application also opens the <filepath>icon.bmp.gz</filepath> file and extracts its contents to the specified
+location. The GZip file is represented by an object of the <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref> class and its contents are extracted using
+the <xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita#GUID-8DE05785-D058-3855-A11F-7132EB4DE078/GUID-4A30D99E-EC51-359F-90B5-9CFA3841A538"><apiname>CEZGZipToFile::InflateL()</apiname></xref> method. </p> <p>Finally,
+the application compresses the <filepath>error.wav</filepath> file
+to a <filepath>.gz</filepath> file. The GZip file being created is
+represented by an object of the <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref> class
+and the <filepath>.wav</filepath> file is compressed using the <xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita#GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162/GUID-4E51D7C5-C624-3F27-A5CD-01E92F96F72B"><apiname>CEZFileToGZip::DeflateL()</apiname></xref> method. </p> </section>
+<section id="GUID-922B4740-7F7D-4A12-B92A-FE9720E2C7CD"><title>Class
+Summary</title><ul>
+<li><p><xref href="GUID-79C613E8-35F8-319B-BE8B-1411CBE5AF00.dita"><apiname>CZipFile</apiname></xref></p></li>
+<li><p><xref href="GUID-02A8BC62-D653-39A3-BE0C-92A5F3F43E85.dita"><apiname>CZipFileMember</apiname></xref></p></li>
+<li><p><xref href="GUID-D458AE6A-EC64-3882-BCEA-A44A43DAA99A.dita"><apiname>CZipFileMemberIterator</apiname></xref></p></li>
+<li><p><xref href="GUID-62F9728B-9C39-3496-BAEB-6E1456E6F197.dita"><apiname>RZipFileMemberReaderStream</apiname></xref></p></li>
+<li><p><xref href="GUID-8DE05785-D058-3855-A11F-7132EB4DE078.dita"><apiname>CEZGZipToFile</apiname></xref></p></li>
+<li><p><xref href="GUID-417AB4E0-FF07-34CB-A4A8-CEF31C48A162.dita"><apiname>CEZFileToGZip</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-986B5547-0C87-57E1-893C-21444F82BE45"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build an application. </p> <p>The <codeph>EzlibExample</codeph> builds an executable file called <filepath>ezlibexample.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> &lt;<varname>build_variant</varname> &gt; for CodeWarrior). After launching
+the executable, depending on the emulator you are using, you may need
+to navigate using the application launcher or the <codeph>eshell</codeph> screen to view the console. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-95EA435B-918A-4B68-8983-1D22B7840BA7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-95EA435B-918A-4B68-8983-1D22B7840BA7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,21 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-95EA435B-918A-4B68-8983-1D22B7840BA7" xml:lang="en"><title>Using
-the Camera in Applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Camera API allows your application to use the device camera to capture
-still images and video clips, and store them in the internal memory or on
-removable media. </p>
-<p>You can implement applications that make use of the camera to capture images,
-record videos, or use the display as a viewfinder. </p>
-<p>To capture images or to record videos, you need a combination of Symbian
-APIs and classes, and device-specific components. </p>
-</conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-95EA435B-918A-4B68-8983-1D22B7840BA7" xml:lang="en"><title>Concepts</title><shortdesc>This section provides additional information about the Camera.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-3-1-1-8-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-3-1-1-8-1-7-1" xml:lang="en"><title>String
-resource reader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-AF5A789B-6F00-42A9-86AE-CB972F97BE00-GENID-1-8-1-3-1-1-8-1-7-1-2-1"><title>Purpose</title> <p>String
-Resource Reader is part of the Symbian Text Utilities component. It reads
-strings from resource files without using the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance.
-This module is mainly for server usage, where there is a need for reading
-resources, but there is no <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance
-present. </p> </section>
-<section id="GUID-F336660C-3F54-4B65-85AA-F6D557FE1DC2-GENID-1-8-1-3-1-1-8-1-7-1-2-2"><title>Architectural
-Relationships</title> <p>The key relationships between String Resource Reader
-and the components in its environment are shown below. It uses the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile</apiname></xref> class to access
-the actual resource files. </p> <fig id="GUID-EF915116-AF30-58ED-A3AC-ED104AF22687-GENID-1-8-1-3-1-1-8-1-7-1-2-2-3">
-<title>              String Resource Reader environment            </title>
-<image href="GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e18988_href.png" placement="inline"/>
-</fig> <p>String Resource Reader consists of one class, <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>.
-String Resource Reader uses <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>BaflUtils</apiname></xref> and <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile.</apiname></xref>  </p> <fig id="GUID-497C1945-CD4F-5396-8B45-E809380A129C-GENID-1-8-1-3-1-1-8-1-7-1-2-2-5">
-<title>              Class diagram            </title>
-<image href="GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e19011_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9595A884-0840-41D5-9448-E0297941DBA9-GENID-1-8-1-3-1-1-8-1-7-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>String
-Resource Reader is designed to load strings from normal resource files. The
-interface can be accessed through the <codeph>tulstringresourcereader.h</codeph> file </p> <ul>
-<li id="GUID-9EEA6DC6-06BC-50B3-BB0B-9CCFCE21F852-GENID-1-8-1-3-1-1-8-1-7-1-2-3-4-1"><p>1. The user must first
-create an instance of the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref> class
-using one of the factory methods <codeph>NewL()</codeph> or <codeph>NewLC()</codeph>. </p> </li>
-<li id="GUID-B35D9F76-F4F8-5B43-8FEA-F044F2D63468-GENID-1-8-1-3-1-1-8-1-7-1-2-3-4-2"><p>2. The user can then
-call the exported <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>ReadResourceString()</apiname></xref> method
-to read resources </p> </li>
-<li id="GUID-51C7AB86-F420-584A-81A4-F652C7338714-GENID-1-8-1-3-1-1-8-1-7-1-2-3-4-3"><p>3. After usage the created
-instance must be deleted. </p> </li>
-</ul> <p>If the resource file that is given to a constructor is not found,
-the constructor leaves. The standard Symbian platform error codes are used. </p> <p><b>Example</b> </p> <p>An
-example of using the interface is given below: </p> <codeblock id="GUID-D484CAC5-5BA0-5666-B1DF-082E0A2A27BA-GENID-1-8-1-3-1-1-8-1-7-1-2-3-8" xml:space="preserve">#include &lt;tulstringresourcereader.h&gt;
-#include &lt;errorres.rsg&gt; // Resource to be read header 
-
-//...
-TFileName myFileName( _L("z:\\system\\data\\errorres.rsc") );
-TulTextResourceUtils* test = TulTextResourceUtils::NewL( myFileName );
-
-TPtrC buf;
-buf.Set(test-&gt; ReadResourceString(R_ERROR_RES_GENERAL)); 
-   
-// Note that buf will only be valid as long as TulTextResourceUtils 
-// instance is alive and no new string is read by the same instance.
-// If you need to read multiple strings, make copies.
-
-delete test;
-</codeblock> <p>For more information on individual methods, see the reference
-API for <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-6-1-1-4-1-7-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9620407B-0560-5D95-A862-5AE406C48983-GENID-1-8-1-6-1-1-4-1-7-1-7-1" xml:lang="en"><title>String
-resource reader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-AF5A789B-6F00-42A9-86AE-CB972F97BE00-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-1"><title>Purpose</title> <p>String
-Resource Reader is part of the Symbian Text Utilities component. It reads
-strings from resource files without using the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance.
-This module is mainly for server usage, where there is a need for reading
-resources, but there is no <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance
-present. </p> </section>
-<section id="GUID-F336660C-3F54-4B65-85AA-F6D557FE1DC2-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-2"><title>Architectural
-Relationships</title> <p>The key relationships between String Resource Reader
-and the components in its environment are shown below. It uses the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile</apiname></xref> class to access
-the actual resource files. </p> <fig id="GUID-EF915116-AF30-58ED-A3AC-ED104AF22687-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-2-3">
-<title>              String Resource Reader environment            </title>
-<image href="GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e54890_href.png" placement="inline"/>
-</fig> <p>String Resource Reader consists of one class, <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>.
-String Resource Reader uses <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>BaflUtils</apiname></xref> and <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile.</apiname></xref>  </p> <fig id="GUID-497C1945-CD4F-5396-8B45-E809380A129C-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-2-5">
-<title>              Class diagram            </title>
-<image href="GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e54913_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9595A884-0840-41D5-9448-E0297941DBA9-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>String
-Resource Reader is designed to load strings from normal resource files. The
-interface can be accessed through the <codeph>tulstringresourcereader.h</codeph> file </p> <ul>
-<li id="GUID-9EEA6DC6-06BC-50B3-BB0B-9CCFCE21F852-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-3-4-1"><p>1. The user must first
-create an instance of the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref> class
-using one of the factory methods <codeph>NewL()</codeph> or <codeph>NewLC()</codeph>. </p> </li>
-<li id="GUID-B35D9F76-F4F8-5B43-8FEA-F044F2D63468-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-3-4-2"><p>2. The user can then
-call the exported <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>ReadResourceString()</apiname></xref> method
-to read resources </p> </li>
-<li id="GUID-51C7AB86-F420-584A-81A4-F652C7338714-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-3-4-3"><p>3. After usage the created
-instance must be deleted. </p> </li>
-</ul> <p>If the resource file that is given to a constructor is not found,
-the constructor leaves. The standard Symbian platform error codes are used. </p> <p><b>Example</b> </p> <p>An
-example of using the interface is given below: </p> <codeblock id="GUID-D484CAC5-5BA0-5666-B1DF-082E0A2A27BA-GENID-1-8-1-6-1-1-4-1-7-1-7-1-2-3-8" xml:space="preserve">#include &lt;tulstringresourcereader.h&gt;
-#include &lt;errorres.rsg&gt; // Resource to be read header 
-
-//...
-TFileName myFileName( _L("z:\\system\\data\\errorres.rsc") );
-TulTextResourceUtils* test = TulTextResourceUtils::NewL( myFileName );
-
-TPtrC buf;
-buf.Set(test-&gt; ReadResourceString(R_ERROR_RES_GENERAL)); 
-   
-// Note that buf will only be valid as long as TulTextResourceUtils 
-// instance is alive and no new string is read by the same instance.
-// If you need to read multiple strings, make copies.
-
-delete test;
-</codeblock> <p>For more information on individual methods, see the reference
-API for <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-9620407B-0560-5D95-A862-5AE406C48983.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9620407B-0560-5D95-A862-5AE406C48983" xml:lang="en"><title>String
+resource reader overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-AF5A789B-6F00-42A9-86AE-CB972F97BE00"><title>Purpose</title> <p>String
+Resource Reader is part of the Symbian Text Utilities component. It reads
+strings from resource files without using the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance.
+This module is mainly for server usage, where there is a need for reading
+resources, but there is no <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CCoeEnv</apiname></xref> instance
+present. </p> </section>
+<section id="GUID-F336660C-3F54-4B65-85AA-F6D557FE1DC2"><title>Architectural
+Relationships</title> <p>The key relationships between String Resource Reader
+and the components in its environment are shown below. It uses the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile</apiname></xref> class to access
+the actual resource files. </p> <fig id="GUID-EF915116-AF30-58ED-A3AC-ED104AF22687">
+<title>              String Resource Reader environment            </title>
+<image href="GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e49332_href.png" placement="inline"/>
+</fig> <p>String Resource Reader consists of one class, <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>.
+String Resource Reader uses <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>BaflUtils</apiname></xref> and <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>RResourceFile.</apiname></xref>  </p> <fig id="GUID-497C1945-CD4F-5396-8B45-E809380A129C">
+<title>              Class diagram            </title>
+<image href="GUID-5DB0F7C7-6132-552B-BA42-B47D267D1143_d0e49355_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-9595A884-0840-41D5-9448-E0297941DBA9"><title>Description</title> <p><b>Usage</b> </p> <p>String
+Resource Reader is designed to load strings from normal resource files. The
+interface can be accessed through the <codeph>tulstringresourcereader.h</codeph> file </p> <ul>
+<li id="GUID-9EEA6DC6-06BC-50B3-BB0B-9CCFCE21F852"><p>1. The user must first
+create an instance of the <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref> class
+using one of the factory methods <codeph>NewL()</codeph> or <codeph>NewLC()</codeph>. </p> </li>
+<li id="GUID-B35D9F76-F4F8-5B43-8FEA-F044F2D63468"><p>2. The user can then
+call the exported <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>ReadResourceString()</apiname></xref> method
+to read resources </p> </li>
+<li id="GUID-51C7AB86-F420-584A-81A4-F652C7338714"><p>3. After usage the created
+instance must be deleted. </p> </li>
+</ul> <p>If the resource file that is given to a constructor is not found,
+the constructor leaves. The standard Symbian platform error codes are used. </p> <p><b>Example</b> </p> <p>An
+example of using the interface is given below: </p> <codeblock id="GUID-D484CAC5-5BA0-5666-B1DF-082E0A2A27BA" xml:space="preserve">#include &lt;tulstringresourcereader.h&gt;
+#include &lt;errorres.rsg&gt; // Resource to be read header 
+
+//...
+TFileName myFileName( _L("z:\\system\\data\\errorres.rsc") );
+TulTextResourceUtils* test = TulTextResourceUtils::NewL( myFileName );
+
+TPtrC buf;
+buf.Set(test-&gt; ReadResourceString(R_ERROR_RES_GENERAL)); 
+   
+// Note that buf will only be valid as long as TulTextResourceUtils 
+// instance is alive and no new string is read by the same instance.
+// If you need to read multiple strings, make copies.
+
+delete test;
+</codeblock> <p>For more information on individual methods, see the reference
+API for <xref href="GUID-0AAAEFCF-ACFC-302C-81FA-388AACEE979C.dita"><apiname>CTulStringResourceReader</apiname></xref>. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9665C072-EA52-54B8-87A3-A7F818940DCD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9665C072-EA52-54B8-87A3-A7F818940DCD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,39 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9665C072-EA52-54B8-87A3-A7F818940DCD" xml:lang="en"><title>What
-is the CommsDat API</title><shortdesc>This topic is an intrdouction to the CommsDat API. Tools and applications
-use the CommsDat API to access the data in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The CommsDat DLL implements the CommsDat API. Symbian platform
-loads the CommsDat DLL at boot time. Tools and applications do not load the
-DLL. </p>
-<p>The API made available by the CommsDat DLL is the only method that users
-can use to access the data in the Comms Database. The API maps between client-side
-representations of the data and the data stored in the database. </p>
-<p>Tools and applications see the data as a set of tables. A table is a set
-of records, where each record is an ordered set of fields. Each field holds
-a specified piece of information. A field at a given position in a record
-contains the same type of data in all records. You can consider that each
-field at a given location in a record is in a column. A table can also be
-called a record set. </p>
-<fig id="GUID-5ABD88C0-67E4-5091-BE8F-56ABFED4FEC8">
-<image href="GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e85838_href.png" placement="inline"/>
-</fig>
-<p>Tables, records, columns and fields are all CommsDat elements. An element
-is an item that can be stored in the Comms Database. </p>
-<p>The CommsDat API gives tools and applications a set of classes to retrieve,
-create and change the elements in the Comms Database. The API also gives the
-functionality to access the Comms Database. </p>
-<p> </p>
-</conbody><related-links>
-<link href="GUID-B89D2828-0FEE-5206-97D2-C7D4BBD35799.dita"><linktext>How is the
-                Comms Database secured</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9665C072-EA52-54B8-87A3-A7F818940DCD" xml:lang="en"><title>What
+is the CommsDat API</title><shortdesc>This topic is an intrdouction to the CommsDat API. Tools and applications
+use the CommsDat API to access the data in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The CommsDat DLL implements the CommsDat API. Symbian platform
+loads the CommsDat DLL at boot time. Tools and applications do not load the
+DLL. </p>
+<p>The API made available by the CommsDat DLL is the only method that users
+can use to access the data in the Comms Database. The API maps between client-side
+representations of the data and the data stored in the database. </p>
+<p>Tools and applications see the data as a set of tables. A table is a set
+of records, where each record is an ordered set of fields. Each field holds
+a specified piece of information. A field at a given position in a record
+contains the same type of data in all records. You can consider that each
+field at a given location in a record is in a column. A table can also be
+called a record set. </p>
+<fig id="GUID-5ABD88C0-67E4-5091-BE8F-56ABFED4FEC8">
+<image href="GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e79126_href.png" placement="inline"/>
+</fig>
+<p>Tables, records, columns and fields are all CommsDat elements. An element
+is an item that can be stored in the Comms Database. </p>
+<p>The CommsDat API gives tools and applications a set of classes to retrieve,
+create and change the elements in the Comms Database. The API also gives the
+functionality to access the Comms Database. </p>
+<p> </p>
+</conbody><related-links>
+<link href="GUID-B89D2828-0FEE-5206-97D2-C7D4BBD35799.dita"><linktext>How is the
+                Comms Database secured</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e3380_href.png has changed
Binary file Symbian3/SDK/Source/GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e4655_href.png has changed
--- a/Symbian3/SDK/Source/GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E" xml:lang="en"><title>Soft
-indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Soft indicators are textual indicators displayed in the main pane of the
-Idle state. Examples of cases where a soft indicator can be used are call
-charges indication and MCN (Micro-Cellular Network) area indication.</p>
-<section id="GUID-311CA5F4-93B4-4DDD-830C-914B7DCE4D4E"><title>Using
-soft indicators in C++ applications</title><p>The soft indicators
-are not accessible to applications.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-96BCE05D-2984-4A85-9633-69ECE5BE945E" xml:lang="en"><title>Soft
+indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Soft indicators are textual indicators displayed in the main pane of the
+homescreen. Examples of cases where a soft indicator can be used
+are call charges indication and MCN (Micro-Cellular Network) area indication.</p>
+<section id="GUID-311CA5F4-93B4-4DDD-830C-914B7DCE4D4E"><title>Using
+soft indicators in applications</title><p>The soft indicators are not accessible
+to applications.</p></section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-96E46D0E-1CE3-58B4-AE99-6B2E622ADAF9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-96E46D0E-1CE3-58B4-AE99-6B2E622ADAF9" xml:lang="en"><title>Transparent: Drawing Transparent Windows</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-51F2B6AB-A086-58C5-A08C-117666483C98"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-30acccf3-7e22-4243-91ea-48f857e9a053.zip" scope="external">Transparent.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-30acccf3-7e22-4243-91ea-48f857e9a053.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-6CF38BB1-2366-4086-856D-B1C0F65B6913"><title>Description</title> <p>This example application demonstrates how to implement the following: </p> <ul>
+<li id="GUID-C4C7ECAB-D57F-5E74-93A2-B64C477FA8D8"><p>creating transparent,
+non-transparent and blank windows, </p> </li>
+<li id="GUID-EBE379F4-5F98-50ED-8B9C-9311B1CF534D"><p>changing the
+transparency of a window, </p> </li>
+<li id="GUID-5A9447AD-598F-5463-9C35-D051628DA7E5"><p>drawing content
+on a window. </p> </li>
+</ul> <p><b>Creating transparent windows</b> </p> <p>This example
+creates a background and a foreground window using the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> class. The <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> class triggers periodic
+redraws on the window. The following functions are used to re-draw
+content on the window: </p> <ul>
+<li id="GUID-C511264A-1FC4-5BD2-854B-B3739D2E3E79"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-2C194479-3F1C-32BA-A17B-0A4DB1F23F04"><apiname>RWindow::Invalidate(const
+TRect &amp;)</apiname></xref>  </p> </li>
+<li id="GUID-8ECB575C-F838-5993-AEC1-AC2277CAE069"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-9337538E-7A53-3153-A330-968B5E4F2FF2"><apiname>RWindow::BeginRedraw()</apiname></xref>  </p> </li>
+<li id="GUID-AC222F59-26B4-5BA0-9949-B750F551C4D6"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-3DE16607-AD3B-3946-BEB3-88512EAAB9CE"><apiname>RWindow::EndRedraw()</apiname></xref>  </p> </li>
+<li id="GUID-603B5C7D-EA52-5EEA-A057-D49D55F70835"><p> <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-65C8A51B-DE23-370A-AE9F-1354E7DFD679"><apiname>CWindowGc::Activate(RDrawableWindow
+&amp;)</apiname></xref>  </p> </li>
+</ul> <p>The transparency of the foreground window is changed using
+the following functions: </p> <ul>
+<li id="GUID-018046D6-FA87-5616-986B-223D40A82227"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-47275C08-0C58-3A03-B96F-38F881F49C08"><apiname>RWindow::SetTransparencyAlphaChannel()</apiname></xref>: this function enables the use of an alpha channel to vary a window's
+transparency. The alpha value can be varied from 0 (fully transparent)
+to 255 (fully opaque). </p></li>
+<li id="GUID-4537F6DA-1880-5351-A194-079C4ECDE81D"><p> <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-BED44E59-A6A3-3302-8E11-487F005A3AB2"><apiname>RWindow::SetTransparentRegion(const
+TRegion&amp;)</apiname></xref>: this function restricts the transparency
+to a specified region of the window. </p> </li>
+</ul> <p><b>Handling window server events</b> </p> <p>The user-defined class <codeph>CEventHandler</codeph> handles
+pointer events when transparent areas of the window are clicked by
+the pointer device. An appropriate message is displayed when a <i>click</i> event is detected. </p> </section>
+<section id="GUID-0EBE02D4-1591-49ED-9B75-2383E8420E58"><title>Build</title> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The Symbian
+build process</xref> describes how to build this example. </p> <p>The <codeph>Transparent</codeph> example builds an executable called <filepath>transparent.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\&lt;build_variant&gt;</filepath> for Carbide.c++). </p> </section>
+<section id="GUID-45BFAED8-FC21-423F-BA86-0C6A2D6BD010"><title>Running
+the example</title> <p>The example creates three windows: </p> <ul>
+<li id="GUID-A8AD34F4-034C-5359-861E-25807691B7A5"><p>One background
+window with height equal to the full emulator screen and width of
+half the emulator screen. The "Background Window" label is set for
+this window. </p> </li>
+<li id="GUID-DF6E6F57-0057-5D2D-BB93-80D7AB077DF4"><p>Two foreground
+windows each half the size of the background window are used to demonstrate
+the change in transparency . These windows can be identified by their
+labels. </p> </li>
+</ul> <p>1. Press the <userinput>VaryTransparency</userinput> button
+located at the bottom of the window to vary the first foreground window's
+transparency. The alpha value varies gradually from 0 to 255. This
+demonstrates calling the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-47275C08-0C58-3A03-B96F-38F881F49C08"><apiname>RWindow::SetTransparencyAlphaChannel()</apiname></xref> API. </p> <p>2. Press the <userinput>SetTransparent</userinput> button
+to call <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-BED44E59-A6A3-3302-8E11-487F005A3AB2"><apiname>RWindow::SetTransparentRegion(const TRegion&amp;)</apiname></xref> on the bottom half of the second foreground window. This makes that
+half of the window transparent while the upper half stays opaque.</p> <p>3. Click different mouse buttons to display the various popup
+messages </p> </section>
+<section id="GUID-98B1DE6E-91E4-4C1C-89A1-727DF95C9903"><title>Related
+information</title><ul>
+<li><p><xref href="GUID-02BD38E7-A579-5BD5-9444-4E7C14C7809A.dita">Transparent
+Windows</xref></p></li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-3-1-1-7-1-8-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-3-1-1-7-1-8-1-3-1" xml:lang="en"><title>The
-control stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The control stack is a mechanism provided by the control framework for
-handling key press events. The Window Server, which generates events for control
-framework applications, channels all key press events to the application that
-currently has keyboard focus (Strictly speaking it channels key press events
-to the <keyword>window group</keyword> ). It is up to the application itself
-to channel the event to the correct destination as the Window Server does
-not associate a key press event with a particular control. </p>
-<p>In control framework applications using the <keyword>standard app     
-   UI</keyword> the control stack contains a list of controls that wish to
-receive keyboard events. Controls are added to the stack using <codeph>CCoeAppUi::AddToStackL()</codeph> and
-their ordering on the stack determines their priority in receiving key events:
-The one with the lowest position on the stack receiving key events first.
-When a key press event occurs, it is offered to each control on the stack
-in turn until it is consumed (i.e. used by that control). </p>
-<p>The ordering of controls on the stack is determined by their priority,
-a value passed to <codeph>CCoeAppUi::AddToStackL()</codeph>. If several controls
-on the stack have the same priority, their ordering is determined by the order
-in which they were added to the stack. </p>
-<codeblock id="GUID-02BC135C-66C4-5FBD-9085-2F6946A24660-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-4" xml:space="preserve">enum
-    {
-    ECoeStackPriorityDefault=0,  // Low Priority
-    ECoeStackPriorityMenu=10,
-    ECoeStackPriorityDialog=50,
-    ECoeStackPriorityCba=60,
-    ECoeStackPriorityAlert=200,
-    ECoeStackPriorityFep=250,
-    ECoeStackPriorityEnvironmentFilter=300  // High Priority
-    };
-</codeblock>
-<p>The diagram below shows a hypothetical stack containing 4 controls added
-in the following order: control A (priority <codeph>ECoeStackPriorityDialog</codeph>),
-control B (<codeph>ECoeStackPriorityMenu</codeph>), control C (<codeph>ECoeStackPriorityDefault</codeph> —
-used for application views) and control D (<codeph>ECoeStackPriorityDialog</codeph>). </p>
-<fig id="GUID-02308139-5BC5-5098-BE15-178434158843-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-6">
-<title>           Example showing the order and priority of controls on the
-control stack                    </title>
-<image href="GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e16895_href.png" placement="inline"/>
-</fig>
-<p>On the stack shown in the diagram key-press events will be offered first
-to control D, followed by A, B and C in that order. A control on the stack
-can refuse key press events by setting a flag. This might be done by a dialogs
-when it is not visible. </p>
-<p>Applications use the control stack to channel key press events to destinations
-in decreasing order of priority, such as: </p>
-<ul>
-<li id="GUID-EA1211C7-F2F1-5469-8EEB-66D44BC7542D-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-9-1"><p>debug keys </p> </li>
-<li id="GUID-D4063EC0-102F-563D-9D56-84760F447F7A-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-9-2"><p>any active dialog </p> </li>
-<li id="GUID-1ABFD001-B3A4-55C1-9D6A-F268457B8619-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-9-3"><p>any menu bar (i.e.,
-its <keyword>hot-keys</keyword>) </p> </li>
-<li id="GUID-DAD2BC72-CC2A-501A-BD40-E2234D4AE1F2-GENID-1-8-1-3-1-1-7-1-8-1-3-1-2-9-4"><p>the application view </p> </li>
-</ul>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-971C9B81-1D6F-59E7-9416-385A0787D642-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1" xml:lang="en"><title>The
-control stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The control stack is a mechanism provided by the control framework for
-handling key press events. The Window Server, which generates events for control
-framework applications, channels all key press events to the application that
-currently has keyboard focus (Strictly speaking it channels key press events
-to the <keyword>window group</keyword> ). It is up to the application itself
-to channel the event to the correct destination as the Window Server does
-not associate a key press event with a particular control. </p>
-<p>In control framework applications using the <keyword>standard app     
-   UI</keyword> the control stack contains a list of controls that wish to
-receive keyboard events. Controls are added to the stack using <codeph>CCoeAppUi::AddToStackL()</codeph> and
-their ordering on the stack determines their priority in receiving key events:
-The one with the lowest position on the stack receiving key events first.
-When a key press event occurs, it is offered to each control on the stack
-in turn until it is consumed (i.e. used by that control). </p>
-<p>The ordering of controls on the stack is determined by their priority,
-a value passed to <codeph>CCoeAppUi::AddToStackL()</codeph>. If several controls
-on the stack have the same priority, their ordering is determined by the order
-in which they were added to the stack. </p>
-<codeblock id="GUID-02BC135C-66C4-5FBD-9085-2F6946A24660-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-4" xml:space="preserve">enum
-    {
-    ECoeStackPriorityDefault=0,  // Low Priority
-    ECoeStackPriorityMenu=10,
-    ECoeStackPriorityDialog=50,
-    ECoeStackPriorityCba=60,
-    ECoeStackPriorityAlert=200,
-    ECoeStackPriorityFep=250,
-    ECoeStackPriorityEnvironmentFilter=300  // High Priority
-    };
-</codeblock>
-<p>The diagram below shows a hypothetical stack containing 4 controls added
-in the following order: control A (priority <codeph>ECoeStackPriorityDialog</codeph>),
-control B (<codeph>ECoeStackPriorityMenu</codeph>), control C (<codeph>ECoeStackPriorityDefault</codeph> —
-used for application views) and control D (<codeph>ECoeStackPriorityDialog</codeph>). </p>
-<fig id="GUID-02308139-5BC5-5098-BE15-178434158843-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-6">
-<title>           Example showing the order and priority of controls on the
-control stack                    </title>
-<image href="GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e52797_href.png" placement="inline"/>
-</fig>
-<p>On the stack shown in the diagram key-press events will be offered first
-to control D, followed by A, B and C in that order. A control on the stack
-can refuse key press events by setting a flag. This might be done by a dialogs
-when it is not visible. </p>
-<p>Applications use the control stack to channel key press events to destinations
-in decreasing order of priority, such as: </p>
-<ul>
-<li id="GUID-EA1211C7-F2F1-5469-8EEB-66D44BC7542D-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-9-1"><p>debug keys </p> </li>
-<li id="GUID-D4063EC0-102F-563D-9D56-84760F447F7A-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-9-2"><p>any active dialog </p> </li>
-<li id="GUID-1ABFD001-B3A4-55C1-9D6A-F268457B8619-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-9-3"><p>any menu bar (i.e.,
-its <keyword>hot-keys</keyword>) </p> </li>
-<li id="GUID-DAD2BC72-CC2A-501A-BD40-E2234D4AE1F2-GENID-1-8-1-6-1-1-4-1-6-1-8-1-3-1-2-9-4"><p>the application view </p> </li>
-</ul>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-971C9B81-1D6F-59E7-9416-385A0787D642" xml:lang="en"><title>The
+control stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The control stack is a mechanism provided by the control framework for
+handling key press events. The Window Server, which generates events for control
+framework applications, channels all key press events to the application that
+currently has keyboard focus (Strictly speaking it channels key press events
+to the <keyword>window group</keyword> ). It is up to the application itself
+to channel the event to the correct destination as the Window Server does
+not associate a key press event with a particular control. </p>
+<p>In control framework applications using the <keyword>standard app     
+   UI</keyword> the control stack contains a list of controls that wish to
+receive keyboard events. Controls are added to the stack using <codeph>CCoeAppUi::AddToStackL()</codeph> and
+their ordering on the stack determines their priority in receiving key events:
+The one with the lowest position on the stack receiving key events first.
+When a key press event occurs, it is offered to each control on the stack
+in turn until it is consumed (i.e. used by that control). </p>
+<p>The ordering of controls on the stack is determined by their priority,
+a value passed to <codeph>CCoeAppUi::AddToStackL()</codeph>. If several controls
+on the stack have the same priority, their ordering is determined by the order
+in which they were added to the stack. </p>
+<codeblock id="GUID-02BC135C-66C4-5FBD-9085-2F6946A24660" xml:space="preserve">enum
+    {
+    ECoeStackPriorityDefault=0,  // Low Priority
+    ECoeStackPriorityMenu=10,
+    ECoeStackPriorityDialog=50,
+    ECoeStackPriorityCba=60,
+    ECoeStackPriorityAlert=200,
+    ECoeStackPriorityFep=250,
+    ECoeStackPriorityEnvironmentFilter=300  // High Priority
+    };
+</codeblock>
+<p>The diagram below shows a hypothetical stack containing 4 controls added
+in the following order: control A (priority <codeph>ECoeStackPriorityDialog</codeph>),
+control B (<codeph>ECoeStackPriorityMenu</codeph>), control C (<codeph>ECoeStackPriorityDefault</codeph> —
+used for application views) and control D (<codeph>ECoeStackPriorityDialog</codeph>). </p>
+<fig id="GUID-02308139-5BC5-5098-BE15-178434158843">
+<title>           Example showing the order and priority of controls on the
+control stack                    </title>
+<image href="GUID-7AC4C1C2-D796-508F-93CF-21F061F49A30_d0e47241_href.png" placement="inline"/>
+</fig>
+<p>On the stack shown in the diagram key-press events will be offered first
+to control D, followed by A, B and C in that order. A control on the stack
+can refuse key press events by setting a flag. This might be done by a dialogs
+when it is not visible. </p>
+<p>Applications use the control stack to channel key press events to destinations
+in decreasing order of priority, such as: </p>
+<ul>
+<li id="GUID-EA1211C7-F2F1-5469-8EEB-66D44BC7542D"><p>debug keys </p> </li>
+<li id="GUID-D4063EC0-102F-563D-9D56-84760F447F7A"><p>any active dialog </p> </li>
+<li id="GUID-1ABFD001-B3A4-55C1-9D6A-F268457B8619"><p>any menu bar (i.e.,
+its <keyword>hot-keys</keyword>) </p> </li>
+<li id="GUID-DAD2BC72-CC2A-501A-BD40-E2234D4AE1F2"><p>the application view </p> </li>
+</ul>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e270252_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e273960_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595" xml:lang="en"><title>Graphics Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Find everything you need to know about the Symbian Graphics package in
-this section. </p>
-<p>The graphics documentation is organized around the collections and components
-in the Graphics package in the Symbian System Model. </p>
-
-<fig id="GUID-135CE360-B441-42A7-81E9-A702ADD5BB82">
-<title>The collections and components in the Graphics package       </title>
-<image href="GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e190745_href.png" placement="inline"/>
-</fig>
-
-<p>The following list gives links to high-level Graphics topics and the collections
-that make up the Graphics package: </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595" xml:lang="en"><title>Graphics Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Find everything you need to know about the Symbian Graphics package in
+this section. </p>
+<p>The graphics documentation is organized around the collections and components
+in the Graphics package in the Symbian System Model. </p>
+
+<fig id="GUID-135CE360-B441-42A7-81E9-A702ADD5BB82">
+<title>The collections and components in the Graphics package       </title>
+<image href="GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e184149_href.png" placement="inline"/>
+</fig>
+
+<p>The following list gives links to high-level Graphics topics and the collections
+that make up the Graphics package: </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9770F3B4-998D-474F-9A82-1B134A4C2869_d0e294365_href.png has changed
--- a/Symbian3/SDK/Source/GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-97712509-84AD-462F-8FFB-E1E6D8278938" xml:lang="en"><title>Enabling
-touch support for buttons</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To use a touch-enabled button in your application, implement the following
-use cases:</p>
-<ul>
-<li><p><xref href="GUID-CDBBD44F-C5F6-4D51-B4BA-23DA9BB58D69.dita">Creating generic
-button</xref></p></li>
-<li><p><xref href="GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita">Setting button
-properties not specific to any state</xref></p></li>
-<li><p><xref href="GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita">Using button
-states</xref></p></li>
-<li><p><xref href="GUID-089FE9FA-44C8-48D5-A473-9486BF763283.dita">Setting properties
-for button states</xref></p></li>
-<li><p><xref href="GUID-E1A2872E-6E8D-4C02-B3C0-23213FD56106.dita">Handling button
-events</xref></p></li>
-</ul>
-<p><draft-comment time="2008-05-12T14:05" translate="no">We need to provide more clarity
-on the required order of implementing the use cases and clarify whether there
-are alternative approaches for achieving the same results.</draft-comment></p>
-<p>The following use cases are optional, allowing you to set additional properties
-for your button:</p>
-<ul>
-<li><p><xref href="GUID-62DF565C-8121-429F-99D0-B5FBDE634AA9.dita">Using long-tap
-events</xref></p></li>
-<li><p><xref href="GUID-79B4468A-2CF6-45E2-BC05-064CA300C12C.dita">Using skin support
-in buttons</xref></p></li>
-</ul>
-<section><title>Implementation file</title><p>The implementation file for
-the Generic button API is <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/aknbutton_8h-source.html" format="application/java-archive"><codeph>aknbutton.h</codeph></xref>.</p></section>
-</conbody><related-links>
-<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
-API description</linktext></link>
-<link href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita"><linktext>Look and
-feel guidelines for the generic button in a toolbar</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-97712509-84AD-462F-8FFB-E1E6D8278938" xml:lang="en"><title>Enabling
+touch support for buttons</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To use a touch-enabled button in your application, implement the following
+use cases:</p>
+<ul>
+<li><p><xref href="GUID-CDBBD44F-C5F6-4D51-B4BA-23DA9BB58D69.dita">Creating generic
+button</xref></p></li>
+<li><p><xref href="GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita">Setting button
+properties not specific to any state</xref></p></li>
+<li><p><xref href="GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita">Using button
+states</xref></p></li>
+<li><p><xref href="GUID-089FE9FA-44C8-48D5-A473-9486BF763283.dita">Setting properties
+for button states</xref></p></li>
+<li><p><xref href="GUID-E1A2872E-6E8D-4C02-B3C0-23213FD56106.dita">Handling button
+events</xref></p></li>
+</ul>
+<p><draft-comment time="2008-05-12T14:05" translate="no">We need to provide more clarity
+on the required order of implementing the use cases and clarify whether there
+are alternative approaches for achieving the same results.</draft-comment></p>
+<p>The following use cases are optional, allowing you to set additional properties
+for your button:</p>
+<ul>
+<li><p><xref href="GUID-62DF565C-8121-429F-99D0-B5FBDE634AA9.dita">Using long-tap
+events</xref></p></li>
+<li><p><xref href="GUID-79B4468A-2CF6-45E2-BC05-064CA300C12C.dita">Using skin support
+in buttons</xref></p></li>
+</ul>
+<section id="GUID-94C1D4C3-7904-4DF7-8D58-497EDDEA5983"><title>Implementation
+file</title><p>The implementation file for the Generic button API is <codeph>aknbutton.h</codeph>.</p></section>
+</conbody><related-links>
+<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
+API description</linktext></link>
+<link href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita"><linktext>Look and
+feel guidelines for the generic button in a toolbar</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0"><title>Bluetooth Manager Overview</title><shortdesc>The Bluetooth Manager component provides non-volatile storage of details of Bluetooth devices in the Bluetooth Registry. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-91B15415-B73F-54E5-9594-5653EA049A42"><title>Purpose</title> <p>The Bluetooth Manager enables you to store details of devices in the Bluetooth Registry. It also enables you to retrieve, modify and delete the information about devices. </p> </section> <section><title>Key concepts and terms</title> <p>Documentation on the Bluetooth Manager component uses the following key concepts and terms: </p> <dl><dlentry><dt>Cookie</dt> <dd><p>Stored data that can be used by the UI whenever it is needed. </p> </dd> </dlentry> <dlentry><dt>EIR (Extended Inquiry Response)</dt> <dd><p>Information that is supplied by the host and transmitted in the inquiry responses sub-state. </p> </dd> </dlentry> <dlentry><dt>'Bonded' settings</dt> <dd><p>Details of peer devices with which a device has formed secure relationships in the past. </p> </dd> </dlentry> <dlentry><dt>'Last used' settings</dt> <dd><p>Details of when devices were last connected. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p> </p> <fig id="GUID-7E2B3D62-0831-5DE3-AC04-E52452462219"><title>
-             Diagram showing Bluetooth Manager relationships 
-          </title> <image href="GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398815_href.png" placement="inline"/></fig> </section> <section><title>Bluetooth Manager summary</title> <p>The Bluetooth Manager component provides the following: </p> <ul><li id="GUID-4F873B73-56D7-50A0-A613-E2F729F8BE2B"><p> <b>BT Device</b>  </p> <p> <filepath>btdevice.dll </filepath>  </p> <p>Provides a mechanism for discovering, setting and retreiving information about the various properties of a Bluetooth device. </p> </li> <li id="GUID-44EC161A-6BBD-5831-81C6-0F0C19C5F39A"><p> <b>BT Manager Client</b>  </p> <p> <filepath>btmanclient.dll</filepath>  </p> <p>Provides access to the Bluetooth Manager server. </p> </li> <li id="GUID-ECD90A67-CBDC-5AEA-8DA5-AA6CFD20432F"><p> <b>BT Manager Server</b>  </p> <p> <filepath>btmanserver.exe </filepath>  </p> <p>Provides access to the Bluetooth Registry. </p> </li> <li id="GUID-32617F23-964F-5EE1-8742-25646D4BA933"><p> <b>EIR Client</b>  </p> <p> <filepath>eirclient.dll</filepath>  </p> <p>Provides ways of publishing information over the Bluetooth EIR mechanism. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-979D7C71-A61A-5A49-AF67-8BB9CF67AFF0"><title>Bluetooth Manager Overview</title><shortdesc>The Bluetooth Manager component provides non-volatile storage of details of Bluetooth devices in the Bluetooth Registry. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-91B15415-B73F-54E5-9594-5653EA049A42"><title>Purpose</title> <p>The Bluetooth Manager enables you to store details of devices in the Bluetooth Registry. It also enables you to retrieve, modify and delete the information about devices. </p> </section> <section><title>Key concepts and terms</title> <p>Documentation on the Bluetooth Manager component uses the following key concepts and terms: </p> <dl><dlentry><dt>Cookie</dt> <dd><p>Stored data that can be used by the UI whenever it is needed. </p> </dd> </dlentry> <dlentry><dt>EIR (Extended Inquiry Response)</dt> <dd><p>Information that is supplied by the host and transmitted in the inquiry responses sub-state. </p> </dd> </dlentry> <dlentry><dt>'Bonded' settings</dt> <dd><p>Details of peer devices with which a device has formed secure relationships in the past. </p> </dd> </dlentry> <dlentry><dt>'Last used' settings</dt> <dd><p>Details of when devices were last connected. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p> </p> <fig id="GUID-7E2B3D62-0831-5DE3-AC04-E52452462219"><title>
+             Diagram showing Bluetooth Manager relationships 
+          </title> <image href="GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398653_href.png" placement="inline"/></fig> </section> <section><title>Bluetooth Manager summary</title> <p>The Bluetooth Manager component provides the following: </p> <ul><li id="GUID-4F873B73-56D7-50A0-A613-E2F729F8BE2B"><p> <b>BT Device</b>  </p> <p> <filepath>btdevice.dll </filepath>  </p> <p>Provides a mechanism for discovering, setting and retreiving information about the various properties of a Bluetooth device. </p> </li> <li id="GUID-44EC161A-6BBD-5831-81C6-0F0C19C5F39A"><p> <b>BT Manager Client</b>  </p> <p> <filepath>btmanclient.dll</filepath>  </p> <p>Provides access to the Bluetooth Manager server. </p> </li> <li id="GUID-ECD90A67-CBDC-5AEA-8DA5-AA6CFD20432F"><p> <b>BT Manager Server</b>  </p> <p> <filepath>btmanserver.exe </filepath>  </p> <p>Provides access to the Bluetooth Registry. </p> </li> <li id="GUID-32617F23-964F-5EE1-8742-25646D4BA933"><p> <b>EIR Client</b>  </p> <p> <filepath>eirclient.dll</filepath>  </p> <p>Provides ways of publishing information over the Bluetooth EIR mechanism. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Session Description Protocol (SDP) provides the users with a standard representation for media details, transport addresses, and session description metadata. This representation is independent of the method the information is transported. The SDP Codec subsystem enables its clients the SDP Codec API do the following: </p> <ul><li id="GUID-F23DAFF5-DEA1-5461-9D63-5DD2EB14B604"><p>encode SDP descriptions into an internal form </p> </li> <li id="GUID-4004AFE6-86E9-5B41-919A-44B28F0229FB"><p>decode the descriptions from an internal form </p> </li> <li id="GUID-5EB2D0EE-B445-55C1-B01F-0094191DF6DB"><p>set and get the SDP field values </p> </li> </ul> <section id="GUID-3391D293-B505-5A83-A65F-327EBB6DC8D1"><title>Architectural Relationships</title> <p>The calls to the SDP Codec API are synchronous. The SDP Codec API does not require capabilities and it cannot be extended. </p> </section> <section id="GUID-992D636B-1616-5406-9781-4AF7C5920E76"><title>SDP Codec API class structure</title> <p>The client uses some or all the <xref href="GUID-390AECC6-C8FF-34ED-8717-7BFCC4CF92BE.dita"><apiname>SDP Codec API</apiname></xref> classes during the handling of a SDP description. The interface classes are derived from <xref href="GUID-8F6FE089-E2A8-30F4-B67E-10F286347681.dita"><apiname>CBase</apiname></xref>. The client has a 'use' relationship with the SDP Codec API library. </p> <p>The following illustration shows the SDP Codec API class structure. </p> <fig id="GUID-32BE2AEF-3C5C-5A3E-9A3D-0A438C63AB90"><image href="GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e343040_href.png" placement="inline"/></fig> </section> <section id="GUID-43570589-DEDC-5C5C-B26B-E848E05DA782"><title>Memory used</title> <p>The amount of memory used by every header object of the SDP Codec API is equivalent to the memory used by the header as text. </p> </section> <section><title>See also</title> <ul><li id="GUID-A789B4B4-EBEC-5503-9F0F-B89243ACEB4B"><p> <xref scope="external" href="http://www.ietf.org/html.charters/mmusic-charter.html">Multiparty Multimedia Session Control (mmusic)</xref>  </p> </li> <li id="GUID-7F67EFC9-D5B5-5398-99BC-6FBBA06F63C3"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc2326.txt?number=2326"> Real Time Streaming Protocol (RTSP)</xref>  </p> </li> <li id="GUID-09246FFB-A8D0-59D6-9C70-31554115EDD2"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3312.txt?number=3312">Integration of Resource Management and Session Initiation Protocol (SIP)</xref>  </p> </li> <li id="GUID-3CB30366-70AE-5EB6-A2C0-B1A56BAC4C5C"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3388.txt?number=3388">Grouping of Media Lines in the Session Description Protocol (SDP)</xref>  </p> </li> <li id="GUID-5507546A-0BDB-5CB6-B9C3-A730E7D38875"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3264.txt?number=3264">An Offer/Answer Model with the Session Description Protocol (SDP)</xref>  </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-97ACFC53-4B55-5880-988D-7C376D8AFB16"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Session Description Protocol (SDP) provides the users with a standard representation for media details, transport addresses, and session description metadata. This representation is independent of the method the information is transported. The SDP Codec subsystem enables its clients the SDP Codec API do the following: </p> <ul><li id="GUID-F23DAFF5-DEA1-5461-9D63-5DD2EB14B604"><p>encode SDP descriptions into an internal form </p> </li> <li id="GUID-4004AFE6-86E9-5B41-919A-44B28F0229FB"><p>decode the descriptions from an internal form </p> </li> <li id="GUID-5EB2D0EE-B445-55C1-B01F-0094191DF6DB"><p>set and get the SDP field values </p> </li> </ul> <section id="GUID-3391D293-B505-5A83-A65F-327EBB6DC8D1"><title>Architectural Relationships</title> <p>The calls to the SDP Codec API are synchronous. The SDP Codec API does not require capabilities and it cannot be extended. </p> </section> <section id="GUID-992D636B-1616-5406-9781-4AF7C5920E76"><title>SDP Codec API class structure</title> <p>The client uses some or all the <xref href="GUID-390AECC6-C8FF-34ED-8717-7BFCC4CF92BE.dita"><apiname>SDP Codec API</apiname></xref> classes during the handling of a SDP description. The interface classes are derived from <xref href="GUID-8F6FE089-E2A8-30F4-B67E-10F286347681.dita"><apiname>CBase</apiname></xref>. The client has a 'use' relationship with the SDP Codec API library. </p> <p>The following illustration shows the SDP Codec API class structure. </p> <fig id="GUID-32BE2AEF-3C5C-5A3E-9A3D-0A438C63AB90"><image href="GUID-51D6F328-82C4-5224-A51B-3EB9D4FF7B4C_d0e336843_href.png" placement="inline"/></fig> </section> <section id="GUID-43570589-DEDC-5C5C-B26B-E848E05DA782"><title>Memory used</title> <p>The amount of memory used by every header object of the SDP Codec API is equivalent to the memory used by the header as text. </p> </section> <section><title>See also</title> <ul><li id="GUID-A789B4B4-EBEC-5503-9F0F-B89243ACEB4B"><p> <xref scope="external" href="http://www.ietf.org/html.charters/mmusic-charter.html">Multiparty Multimedia Session Control (mmusic)</xref>  </p> </li> <li id="GUID-7F67EFC9-D5B5-5398-99BC-6FBBA06F63C3"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc2326.txt?number=2326"> Real Time Streaming Protocol (RTSP)</xref>  </p> </li> <li id="GUID-09246FFB-A8D0-59D6-9C70-31554115EDD2"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3312.txt?number=3312">Integration of Resource Management and Session Initiation Protocol (SIP)</xref>  </p> </li> <li id="GUID-3CB30366-70AE-5EB6-A2C0-B1A56BAC4C5C"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3388.txt?number=3388">Grouping of Media Lines in the Session Description Protocol (SDP)</xref>  </p> </li> <li id="GUID-5507546A-0BDB-5CB6-B9C3-A730E7D38875"><p> <xref scope="external" href="http://www.ietf.org/rfc/rfc3264.txt?number=3264">An Offer/Answer Model with the Session Description Protocol (SDP)</xref>  </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,68 +1,68 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0" xml:lang="en"><title>Query
-input</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Query input is a component for displaying data query with direct possibility
-to touch input and uses the full screen. It is a standalone component from
-input methods and thus user cannot change the input method from the Query
-input. </p>
-<p>In addition to data query content, it has Backspace button and ITU-T keypad
-buttons. Softkeys are also displayed as buttons next to the editor, instead
-of Control pane. This component is used for (PIN, PUK, time and date) queries
-in start-up, and also in password editors. </p>
-<p>Prompt text can be displayed in three lines, for example, “PIN code blocked”
-and “Enter PIN code”, and is always aligned close to input field.</p>
-<fig id="GUID-F92C4319-A768-41A0-99E8-07CA89C4BB08">
-<title>Example of alpha-numeric input mode in portrait and landscape.</title>
-<image href="GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e68992_href.png" placement="inline"/>
-</fig>
-<p>If only number entry is enabled, the Query input displays number buttons.</p>
-<fig id="GUID-01C7366B-3342-4A0C-9112-16D32FECAE96">
-<title>Example of numeric input mode in portrait and landscape.</title>
-<image href="GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e69003_href.png" placement="inline"/>
-</fig>
-<p>In other data queries, the touch input is opened with touch down and release
-to the editor. In query input, the input is instantly available for immediate
-usage. Some buttons may be dimmed if needed. Both portrait and landscape orientations
-are available for Query input. </p>
-<p>Tactile feedback follows the virtual ITU-T feedback.</p>
-<p>The following table lists the default touch events for query input:</p>
-<table id="GUID-8281913F-8956-402B-B0F6-D3AD2347C83B"><title>The default touch
-events for query input</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release on <i><codeph>SK1</codeph></i> <i>§key_SK1_softkey§</i></p></entry>
-<entry><p>Confirms the query. </p><p>It is initially dimmed and changed active
-when first character is entered.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback are provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on <i><codeph>SK2</codeph> §key_SK2_softkey§</i></p></entry>
-<entry><p>Cancels the query.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback are provided with
-touch down and basic button effect with release events.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-97C9A782-A7DE-480B-9DE0-97B213AAEDD0" xml:lang="en"><title>Query
+input</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Query input is a full screen component for displaying data query with direct
+possibility for touch input. It uses the full screen. It is a standalone component
+from input methods and thus user cannot change the input method from the Query
+input. </p>
+<p>In addition to data query content, it has Backspace button and ITU-T keypad
+buttons. Softkeys are also displayed as buttons next to the editor, instead
+of Control pane. This component is used for (PIN, PUK, time and date) queries
+in start-up, and also in password editors. </p>
+<p>Prompt text can be displayed in three lines, for example, “PIN code blocked”
+and “Enter PIN code”, and is always aligned close to input field.</p>
+<fig id="GUID-F92C4319-A768-41A0-99E8-07CA89C4BB08">
+<title>Example of alpha-numeric input mode in portrait and landscape.</title>
+<image href="GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e63770_href.png" placement="inline"/>
+</fig>
+<p>If only number entry is enabled, the Query input displays number buttons.</p>
+<fig id="GUID-01C7366B-3342-4A0C-9112-16D32FECAE96">
+<title>Example of numeric input mode in portrait and landscape.</title>
+<image href="GUID-56E67157-08EE-414A-9EC5-ADAF27E0D36A_d0e63781_href.png" placement="inline"/>
+</fig>
+<p>In other data queries, the touch input is opened with touch down and release
+to the editor. In query input, the input is instantly available for immediate
+usage. Some buttons may be dimmed if needed. Both portrait and landscape orientations
+are available for Query input. </p>
+<p>Tactile feedback follows the virtual ITU-T feedback.</p>
+<p>The following table lists the default touch events for query input:</p>
+<table id="GUID-8281913F-8956-402B-B0F6-D3AD2347C83B"><title>The default touch
+events for query input</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release on left softkey.</p></entry>
+<entry><p>Confirms the query. </p><p>It is initially dimmed and changed active
+when first character is entered.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback are provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on right softkey.</p></entry>
+<entry><p>Cancels the query.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback are provided with
+touch down and basic button effect with release events.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,21 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254" xml:lang="en"><title>List
-stretch</title><shortdesc>List stretching is commonly used in lists (that have two lines)
-viewed in landscape mode. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This also includes the settings list and lists with icons. By default,
-list stretching is ON. Applications can turn it off if needed.</p>
-<fig id="GUID-5E954C2C-5CCB-4270-98D3-1EB9C3B1B1B1">
-<title>Example image of list stretch</title>
-<image href="GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e63312_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-97F216EE-B7EA-4A8A-A038-83E1548AE254" xml:lang="en"><title>List
+stretch</title><shortdesc>List stretching is commonly used in lists (that have two lines)
+viewed in landscape mode. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This also includes the settings list and lists with icons. By default,
+list stretching is ON. Applications can turn it OFF if needed.</p>
+<p><note> The list stretching can be turned ON or OFF using <codeph>KAknAutomaticListStretching</codeph>.
+The possible values of <codeph>KAknAutomaticListStretching</codeph> are <codeph>0</codeph> (list
+stretching OFF) and <codeph>1</codeph> (list stretching ON).</note></p>
+<fig id="GUID-5E954C2C-5CCB-4270-98D3-1EB9C3B1B1B1">
+<title>Example image of list stretch</title>
+<image href="GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e55415_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-983C5DB9-85EF-541E-B494-19E3E617914A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-983C5DB9-85EF-541E-B494-19E3E617914A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-983C5DB9-85EF-541E-B494-19E3E617914A" xml:lang="en"><title>Introduction
-to embedded stores </title><shortdesc>Data contained in a stream can represent a store in its own right
-rather than just objects. Such a store is known as an embedded store.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The stream containing the embedded store is known as the host stream.</p>
-<p>It is often convenient, and sometimes necessary, to collect the streams
-representing a partial object network into an embedded store. This makes it
-easier for the streams representing such a partial object network to be deleted,
-by deleting (from the top level store) the stream containing the embedded
-store.</p>
-<p> The alternative is to traverse the individual streams representing the
-partial object network and deleting them in the correct sequence; this can
-be difficult.</p>
-<p>The following diagram shows the idea:</p>
-<fig id="GUID-612A6C2C-D706-50BB-A6C4-F2B5639685F8">
-<title>Embedded store within stream</title>
-<image href="GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e361437_href.png" placement="inline"/>
-</fig>
-<p>An embedded store can contain an arbitrarily complex network of streams.
-As well as being easy to delete, this stream network can also be copied by
-simply copying the host stream from the containing store.</p>
-<p>Embedded stores are persistent stores.</p>
-<p>The embedded store is constructed on a write stream in its containing store
-and, for writing, the embedded store behaves like a direct file store — once
-streams within the embedded store have been committed and closed, they cannot
-subsequently be changed, i.e. streams cannot be replaced, deleted, extended
-or changed in any way.</p>
-<p>Embedded stores are used for object embedding by the application architecture.
-Because the embedded store behaves like a direct file store, only document
-types with direct representations can be embedded. In particular, documents
-using permanent-type stores, such as the database or the agenda, cannot be
-embedded. Such documents may, however, contain any type of embeddable document.</p>
-<section id="GUID-72E3A832-7DE7-41F0-B021-BC37C6BB40DF"><title>See also</title> <p><xref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita">File stores</xref> </p> <p><xref href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita">Direct file store</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-983C5DB9-85EF-541E-B494-19E3E617914A" xml:lang="en"><title>Introduction
+to embedded stores </title><shortdesc>Data contained in a stream can represent a store in its own right
+rather than just objects. Such a store is known as an embedded store.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The stream containing the embedded store is known as the host stream.</p>
+<p>It is often convenient, and sometimes necessary, to collect the streams
+representing a partial object network into an embedded store. This makes it
+easier for the streams representing such a partial object network to be deleted,
+by deleting (from the top level store) the stream containing the embedded
+store.</p>
+<p> The alternative is to traverse the individual streams representing the
+partial object network and deleting them in the correct sequence; this can
+be difficult.</p>
+<p>The following diagram shows the idea:</p>
+<fig id="GUID-612A6C2C-D706-50BB-A6C4-F2B5639685F8">
+<title>Embedded store within stream</title>
+<image href="GUID-8B1C7778-0C6D-5DEE-90FD-3B016EC0E3CE_d0e355357_href.png" placement="inline"/>
+</fig>
+<p>An embedded store can contain an arbitrarily complex network of streams.
+As well as being easy to delete, this stream network can also be copied by
+simply copying the host stream from the containing store.</p>
+<p>Embedded stores are persistent stores.</p>
+<p>The embedded store is constructed on a write stream in its containing store
+and, for writing, the embedded store behaves like a direct file store — once
+streams within the embedded store have been committed and closed, they cannot
+subsequently be changed, i.e. streams cannot be replaced, deleted, extended
+or changed in any way.</p>
+<p>Embedded stores are used for object embedding by the application architecture.
+Because the embedded store behaves like a direct file store, only document
+types with direct representations can be embedded. In particular, documents
+using permanent-type stores, such as the database or the agenda, cannot be
+embedded. Such documents may, however, contain any type of embeddable document.</p>
+<section id="GUID-72E3A832-7DE7-41F0-B021-BC37C6BB40DF"><title>See also</title> <p><xref href="GUID-C9D8D913-C65F-5A69-A606-30F59BFB38E2.dita">File stores</xref> </p> <p><xref href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita">Direct file store</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e76851_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e83563_href.png has changed
--- a/Symbian3/SDK/Source/GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD"><title>RTP overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Multimedia Protocols RTP (Real-Time Transport Protocol) component provides RTP communication services. This overview shows the usage of the RTP/RTCP protocol as defined in RFC 3550. </p> </section> <section><title>Required background</title> <p>The clients that make use of this API need to be familiar with <xref scope="external" href="http://www.faqs.org/ftp/rfc/rfc3550.pdf">RFC 3550</xref> standard. </p> </section> <section><title>Key concepts</title> <p>The component has the following key concepts: </p> <dl><dlentry><dt>RTP</dt> <dd><p>RTP provides end-to-end network transport services for data with real-time characteristics, such as interactive audio and video. It is built on top of the User Datagram Protocol (UDP). </p> <p>RTP contains two closely linked parts: </p> <ul><li id="GUID-B54B151C-BEBF-5747-9FD9-C46960E81153"><p> <b>RTP:</b> Real-Time Transport Protocol to carry data that has real-time properties. </p> </li> <li id="GUID-038C9C19-BF66-51B5-AF06-06B7DF132C0D"><p> <b>RTCP:</b> RTP Control Protocol to provide feedback on the quality of service being provided by RTP. </p> </li> </ul> </dd> </dlentry> <dlentry><dt>RTCP</dt> <dd><p>RTP Control Protocol used to provide feedback on the quality of service being provided by RTP. RTP and RTCP support transmission of the data and the control packets. </p> </dd> </dlentry> </dl> </section> <section><title>Architectural Relationship</title> <p>The RTP component of MM-protocols uses the following: </p> <ul><li id="GUID-E50A8973-7050-5986-9ED2-CB4B0955F446"><p>Comms-infras ESOCK  </p> </li> <li id="GUID-628BE20E-C415-52E0-B6CC-1DA781F6CF6B"><p>Networking INSOCK </p> </li> </ul> </section> <section><title>API summary</title> <p>The following are some of the main classes used for RTP communication. </p> <table id="GUID-589CE9B8-D2DF-5125-BC78-6261C6138DF0"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class Name</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-97FC8566-E4AD-3881-8669-134798A88779.dita"><apiname>RRtpSession</apiname></xref>  </p> </entry> <entry><p>A handle to an RTP session that abstracts all RTP information going to and from an RTP socket, and its corresponding RTCP data. </p> </entry> </row> <row><entry><p> <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref>  </p> </entry> <entry><p>A handle to an RTP packet used to access the packet through the interface provided by this handle. </p> </entry> </row> <row><entry><p> <xref href="GUID-0720D1BD-7F73-3EF6-80A6-17127EF17C91.dita"><apiname>RRtpSendPacket</apiname></xref>  </p> </entry> <entry><p>Derived from <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref> and used as a handle to an RTP send packet. </p> </entry> </row> <row><entry><p> <xref href="GUID-3E4F47A8-0432-307A-B871-A2F7F3A7505F.dita"><apiname>RRtpReceivePacket</apiname></xref>  </p> </entry> <entry><p>Derived from <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref> and used as a handle to an RTP receive packet. </p> </entry> </row> <row><entry><p> <xref href="GUID-3690BFA1-A4EA-34EA-AD63-5FCC14CB67A2.dita"><apiname>RRtpReceiveSource</apiname></xref>  </p> </entry> <entry><p>A handle to a receive stream. An object of this type represents the stream of data on a single SSRC and delivers the RTP packets and RTCP information in the order they arrive. </p> </entry> </row> <row><entry><p> <xref href="GUID-EF30A0A3-612A-362D-9AC5-07FD314E5CDC.dita"><apiname>RRtpSendSource</apiname></xref>  </p> </entry> <entry><p>A handle to a send stream, used to manage the creation and sending of packets. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following diagram shows the RTP classes and their relationships. </p> <fig id="GUID-BE272665-0B86-5F96-BB2D-53ADCCB1B620"><title>
-             Class diagram for RTP classes 
-          </title> <image href="GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e336234_href.png" placement="inline"/></fig> </section> <section><title>Typical uses</title> <p>Any application requiring RTP as its transport protocol should use this API. RTP provides the following key services: </p> <ul><li id="GUID-7AD5E984-BD60-56A8-BDD6-2F64343B4027"><p>Payload-type identification </p> </li> <li id="GUID-CC6E6950-0A3C-54A8-8298-EBEB463536D4"><p>Sequence numbering </p> </li> <li id="GUID-9B2044AC-135E-5F9E-AF7D-E0DDED1F4FF9"><p>Time stamping </p> </li> <li id="GUID-FD863CED-3C19-5050-9E15-35758A9C18AB"><p>Delivery monitoring </p> </li> </ul> <p>The RTP API allows you to perform the following tasks: </p> <ol id="GUID-05A64980-7516-5D26-BFA0-DCD146132B40"><li id="GUID-7948F75D-8FB6-52B9-B24C-22875FC56764"><p><xref href="GUID-5287A403-1094-5682-A443-A6C2A04A1F23.dita">Creating and Managing an RTP session</xref>  </p> </li> <li id="GUID-6A5300CB-19FE-51E3-96A5-607C81EFD2CE"><p><xref href="GUID-9652782C-D5A7-584F-A61C-1340D49478A2.dita">Registering for and handling events</xref>  </p> </li> <li id="GUID-948EA33A-37BA-5233-BCC7-4066B4D2BB6F"><p><xref href="GUID-FBA52F3B-0A7A-5FE3-82CD-72F88788D432.dita">Accessing an RTP packet</xref>  </p> </li> <li id="GUID-B12DF03E-1117-5BE9-9776-B556429A042F"><p><xref href="GUID-D7A8E007-CCCD-5E4F-A7DE-4D474C864104.dita">Creating a send stream</xref>  </p> </li> <li id="GUID-F32FE481-F916-5428-8562-13B5AE73B974"><p><xref href="GUID-46047253-4471-502D-B48E-E1990E7F7962.dita">Sending an RTP packet</xref>  </p> </li> <li id="GUID-A5440B31-C0F2-567D-9647-4F8F224968C9"><p><xref href="GUID-A81854C9-25F1-5C3B-AF3F-ECB7CFA26677.dita">Creating receive stream</xref>  </p> </li> <li id="GUID-14432538-9217-5EA0-81F4-F3089DD0E5AA"><p> <xref href="GUID-765F43E2-39E8-53F5-881F-593F379623CA.dita">Sending and receiving non RTP-data</xref>  </p> </li> <li id="GUID-90AE2FC2-0ABA-5F40-A50F-7BED93BCE9F0"><p><xref href="GUID-0ACAFB87-0D45-5BAA-B40A-9A7DC1646B01.dita">Managing RTCP packets and reports</xref>  </p> </li> <li id="GUID-832ADC62-982E-5ED7-A270-74B708B706C6"><p><xref href="GUID-D5F57D81-6B59-5C7E-A2C8-A5E29873346B.dita">Managing send and receive reports</xref>  </p> </li> <li id="GUID-E07027C3-5F87-5F33-BB6B-5D5F03F8D0C2"><p> <xref href="GUID-7D1E2DBD-004B-5047-BDA5-21CD55D0A95C.dita">Securing RTP with SRTP</xref> </p> </li> </ol> <p> <b> Note:</b> Before using any of these services, a connection to the socket server must have been made and the socket must be open. </p> </section> <section><title>See also</title> <p><xref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita">RTPExample: RTP packet streaming</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-993629CB-17B4-5E87-8DE1-06A4AC473FDD"><title>RTP overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The Multimedia Protocols RTP (Real-Time Transport Protocol) component provides RTP communication services. This overview shows the usage of the RTP/RTCP protocol as defined in RFC 3550. </p> </section> <section><title>Required background</title> <p>The clients that make use of this API need to be familiar with <xref scope="external" href="http://www.faqs.org/ftp/rfc/rfc3550.pdf">RFC 3550</xref> standard. </p> </section> <section><title>Key concepts</title> <p>The component has the following key concepts: </p> <dl><dlentry><dt>RTP</dt> <dd><p>RTP provides end-to-end network transport services for data with real-time characteristics, such as interactive audio and video. It is built on top of the User Datagram Protocol (UDP). </p> <p>RTP contains two closely linked parts: </p> <ul><li id="GUID-B54B151C-BEBF-5747-9FD9-C46960E81153"><p> <b>RTP:</b> Real-Time Transport Protocol to carry data that has real-time properties. </p> </li> <li id="GUID-038C9C19-BF66-51B5-AF06-06B7DF132C0D"><p> <b>RTCP:</b> RTP Control Protocol to provide feedback on the quality of service being provided by RTP. </p> </li> </ul> </dd> </dlentry> <dlentry><dt>RTCP</dt> <dd><p>RTP Control Protocol used to provide feedback on the quality of service being provided by RTP. RTP and RTCP support transmission of the data and the control packets. </p> </dd> </dlentry> </dl> </section> <section><title>Architectural Relationship</title> <p>The RTP component of MM-protocols uses the following: </p> <ul><li id="GUID-E50A8973-7050-5986-9ED2-CB4B0955F446"><p>Comms-infras ESOCK  </p> </li> <li id="GUID-628BE20E-C415-52E0-B6CC-1DA781F6CF6B"><p>Networking INSOCK </p> </li> </ul> </section> <section><title>API summary</title> <p>The following are some of the main classes used for RTP communication. </p> <table id="GUID-589CE9B8-D2DF-5125-BC78-6261C6138DF0"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class Name</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-97FC8566-E4AD-3881-8669-134798A88779.dita"><apiname>RRtpSession</apiname></xref>  </p> </entry> <entry><p>A handle to an RTP session that abstracts all RTP information going to and from an RTP socket, and its corresponding RTCP data. </p> </entry> </row> <row><entry><p> <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref>  </p> </entry> <entry><p>A handle to an RTP packet used to access the packet through the interface provided by this handle. </p> </entry> </row> <row><entry><p> <xref href="GUID-0720D1BD-7F73-3EF6-80A6-17127EF17C91.dita"><apiname>RRtpSendPacket</apiname></xref>  </p> </entry> <entry><p>Derived from <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref> and used as a handle to an RTP send packet. </p> </entry> </row> <row><entry><p> <xref href="GUID-3E4F47A8-0432-307A-B871-A2F7F3A7505F.dita"><apiname>RRtpReceivePacket</apiname></xref>  </p> </entry> <entry><p>Derived from <xref href="GUID-2A2D5CCF-1B51-3B68-BE48-CF2125FEA65F.dita"><apiname>RRtpPacket</apiname></xref> and used as a handle to an RTP receive packet. </p> </entry> </row> <row><entry><p> <xref href="GUID-3690BFA1-A4EA-34EA-AD63-5FCC14CB67A2.dita"><apiname>RRtpReceiveSource</apiname></xref>  </p> </entry> <entry><p>A handle to a receive stream. An object of this type represents the stream of data on a single SSRC and delivers the RTP packets and RTCP information in the order they arrive. </p> </entry> </row> <row><entry><p> <xref href="GUID-EF30A0A3-612A-362D-9AC5-07FD314E5CDC.dita"><apiname>RRtpSendSource</apiname></xref>  </p> </entry> <entry><p>A handle to a send stream, used to manage the creation and sending of packets. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following diagram shows the RTP classes and their relationships. </p> <fig id="GUID-BE272665-0B86-5F96-BB2D-53ADCCB1B620"><title>
+             Class diagram for RTP classes 
+          </title> <image href="GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e330077_href.png" placement="inline"/></fig> </section> <section><title>Typical uses</title> <p>Any application requiring RTP as its transport protocol should use this API. RTP provides the following key services: </p> <ul><li id="GUID-7AD5E984-BD60-56A8-BDD6-2F64343B4027"><p>Payload-type identification </p> </li> <li id="GUID-CC6E6950-0A3C-54A8-8298-EBEB463536D4"><p>Sequence numbering </p> </li> <li id="GUID-9B2044AC-135E-5F9E-AF7D-E0DDED1F4FF9"><p>Time stamping </p> </li> <li id="GUID-FD863CED-3C19-5050-9E15-35758A9C18AB"><p>Delivery monitoring </p> </li> </ul> <p>The RTP API allows you to perform the following tasks: </p> <ol id="GUID-05A64980-7516-5D26-BFA0-DCD146132B40"><li id="GUID-7948F75D-8FB6-52B9-B24C-22875FC56764"><p><xref href="GUID-5287A403-1094-5682-A443-A6C2A04A1F23.dita">Creating and Managing an RTP session</xref>  </p> </li> <li id="GUID-6A5300CB-19FE-51E3-96A5-607C81EFD2CE"><p><xref href="GUID-9652782C-D5A7-584F-A61C-1340D49478A2.dita">Registering for and handling events</xref>  </p> </li> <li id="GUID-948EA33A-37BA-5233-BCC7-4066B4D2BB6F"><p><xref href="GUID-FBA52F3B-0A7A-5FE3-82CD-72F88788D432.dita">Accessing an RTP packet</xref>  </p> </li> <li id="GUID-B12DF03E-1117-5BE9-9776-B556429A042F"><p><xref href="GUID-D7A8E007-CCCD-5E4F-A7DE-4D474C864104.dita">Creating a send stream</xref>  </p> </li> <li id="GUID-F32FE481-F916-5428-8562-13B5AE73B974"><p><xref href="GUID-46047253-4471-502D-B48E-E1990E7F7962.dita">Sending an RTP packet</xref>  </p> </li> <li id="GUID-A5440B31-C0F2-567D-9647-4F8F224968C9"><p><xref href="GUID-A81854C9-25F1-5C3B-AF3F-ECB7CFA26677.dita">Creating receive stream</xref>  </p> </li> <li id="GUID-14432538-9217-5EA0-81F4-F3089DD0E5AA"><p> <xref href="GUID-765F43E2-39E8-53F5-881F-593F379623CA.dita">Sending and receiving non RTP-data</xref>  </p> </li> <li id="GUID-90AE2FC2-0ABA-5F40-A50F-7BED93BCE9F0"><p><xref href="GUID-0ACAFB87-0D45-5BAA-B40A-9A7DC1646B01.dita">Managing RTCP packets and reports</xref>  </p> </li> <li id="GUID-832ADC62-982E-5ED7-A270-74B708B706C6"><p><xref href="GUID-D5F57D81-6B59-5C7E-A2C8-A5E29873346B.dita">Managing send and receive reports</xref>  </p> </li> <li id="GUID-E07027C3-5F87-5F33-BB6B-5D5F03F8D0C2"><p> <xref href="GUID-7D1E2DBD-004B-5047-BDA5-21CD55D0A95C.dita">Securing RTP with SRTP</xref> </p> </li> </ol> <p> <b> Note:</b> Before using any of these services, a connection to the socket server must have been made and the socket must be open. </p> </section> <section><title>See also</title> <p><xref href="GUID-59230503-7E2E-505D-9BC9-C2D2DB96B3E9.dita">RTPExample: RTP packet streaming</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF" xml:lang="en"><title>Class
-structure for the toolbar API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Toolbar API consists of following classes: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbar.html" format="application/java-archive"><codeph>CAknToolbar</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbarExtension.html" format="application/java-archive"><codeph>CAknToolbarExtension</codeph></xref>,
-and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMAknToolbarObserver.html" format="application/java-archive"><codeph>MAknToolbarObserver</codeph></xref>.
-The Toolbar API class structure and its simplified environment is described
-in the figure below.</p>
-<fig id="GUID-3E08B03E-BE4C-481A-82BB-B7EB03BC806A">
-<title>Toolbar API class structure</title>
-<image href="GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e79541_href.png" placement="inline"/>
-</fig>
-<p><codeph>CAknToolbar</codeph> is the API main class that provides the most
-of the API functionality. The UI framework classes <codeph>CEikAppUiFactory</codeph>, <codeph>CAknView</codeph>,
-and <codeph>CAknAppUi</codeph> take care of creating and destructing the <codeph>CAknToolbar</codeph> object.
-Moreover, you can access the toolbar in your application through these UI
-framework classes.  </p>
-<p><codeph>CAknToolbar</codeph> is a compound (window-owning) control that
-contains simple (non-window-owning) controls that are the toolbar items. Toolbar
-items can be for example <codeph>CAknButton</codeph> type controls. Each toolbar
-can also have one extension that expands the toolbar. The extension contains
-also for example <codeph>CAknButton</codeph> type controls.  </p>
-<p><codeph>MAknToolbarObserver</codeph> is an interface that can be used to
-observe toolbar events. The application class can implement this interface
-and register itself as the toolbar observer. <codeph>CAknToolbar</codeph> then
-informs the observer when toolbar events occur (when toolbar is about to be
-shown and when some toolbar item state has changed e.g. a button is pressed).</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-993A732B-13F8-48B6-B0C5-7246FA6828DF" xml:lang="en"><title>Class
+structure for the toolbar API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Toolbar API consists of following classes: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbar.html" format="application/java-archive"><codeph>CAknToolbar</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbarExtension.html" format="application/java-archive"><codeph>CAknToolbarExtension</codeph></xref>,
+and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMAknToolbarObserver.html" format="application/java-archive"><codeph>MAknToolbarObserver</codeph></xref>.
+The Toolbar API class structure and its simplified environment is described
+in the figure below.</p>
+<fig id="GUID-3E08B03E-BE4C-481A-82BB-B7EB03BC806A">
+<title>Toolbar API class structure</title>
+<image href="GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e74415_href.png" placement="inline"/>
+</fig>
+<p><codeph>CAknToolbar</codeph> is the API main class that provides the most
+of the API functionality. The UI framework classes <codeph>CEikAppUiFactory</codeph>, <codeph>CAknView</codeph>,
+and <codeph>CAknAppUi</codeph> take care of creating and destructing the <codeph>CAknToolbar</codeph> object.
+Moreover, you can access the toolbar in your application through these UI
+framework classes.  </p>
+<p><codeph>CAknToolbar</codeph> is a compound (window-owning) control that
+contains simple (non-window-owning) controls that are the toolbar items. Toolbar
+items can be for example <codeph>CAknButton</codeph> type controls. Each toolbar
+can also have one extension that expands the toolbar. The extension contains
+also for example <codeph>CAknButton</codeph> type controls.  </p>
+<p><codeph>MAknToolbarObserver</codeph> is an interface that can be used to
+observe toolbar events. The application class can implement this interface
+and register itself as the toolbar observer. <codeph>CAknToolbar</codeph> then
+informs the observer when toolbar events occur (when toolbar is about to be
+shown and when some toolbar item state has changed e.g. a button is pressed).</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9955D228-75CE-45B3-9714-AF635D04E553-master.png has changed
Binary file Symbian3/SDK/Source/GUID-9955D228-75CE-45B3-9714-AF635D04E553_d0e56643_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67"><title>How to use the SIP Profile API</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-D9ED74C5-20D0-5636-993B-06C05CD90E6A"><title>Protocols</title> <p>This section provides the information about the protocol and error handling related to the SIP Profile API: </p> <ul><li id="GUID-71AB3403-EAD0-5444-8B54-8F9A9F463942"><p>When you create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object, the client connects to the shared SIP Profile server. <b>Note</b>: If the server is not running, it is started by the API implementation. </p> <p>When the <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object is deleted, the corresponding connection to the server is closed. The server stops if it has no other users. </p> </li> <li id="GUID-35DDE98D-1135-5556-8C8B-0CD5F65CA642"><p>The profile data is transferred from the server to the client when a user retrieves a <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object through <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref>. </p> <p>When the client holds an instance of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> in its memory, all events related to the corresponding profile use <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> callback functions to notify the client. The callback functions are implemented by the client. </p> <p> <b>Note</b>: A <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object is created each time a profile is retrieved. </p> </li> <li id="GUID-12B99D92-A992-5C77-8E3E-65472E1994AF"><p>When the client deletes the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object, the client is not notified about events. </p> </li> <li id="GUID-B13A5C15-B9EB-5AEF-A490-C4295762D0F8"><p>The profile must be active before a <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object is used by the SIP Client API. Use the <xref href="GUID-F0663140-8AF3-3831-A741-483D276BF91C.dita#GUID-F0663140-8AF3-3831-A741-483D276BF91C/GUID-2CDFD2CB-C3C2-3765-9155-2899F76B0A40"><apiname>MSIPRegistrationContext::IsContextActive()</apiname></xref> function to check. A profile becomes active when it is enabled by the client and the state of the profile is <codeph>ERegistered</codeph>. <codeph>ERegistered</codeph> is an enum value of the <codeph>TSIPProfileState</codeph> enum defined in the class <xref href="GUID-F324C2F6-1336-361C-B270-EFBAA256C46A.dita"><apiname>CSIPProfileAgent</apiname></xref>. </p> </li> <li id="GUID-9B116C46-DE47-5838-9753-A7C05844F886"><p>All profiles are automatically registered when they are enabled. If a profile is not registered before being enabled, the registration status change is acknowledged through <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. If the enabled profile is already registered, no additional registration or status change events are sent. </p> </li> <li id="GUID-5F49EEA6-523D-5080-92BA-344EDBE71C57"><p>When a profile is enabled and registered, the client can use it and the SIP Client API to create SIP sessions. An enabled profile cannot be removed from the system while it is used by the client. </p> </li> <li id="GUID-0E0CD639-0976-5B47-A0D1-CB84BFF759D0"><p>When a profile is not needed by the client, it is disabled. When you delete an instance of the profile the profile is disabled. </p> </li> </ul> <p>The following illustration shows use of the SIP Profile API. </p> <fig id="GUID-191B67CA-9715-5A3F-A571-1353BF69F5A4"><image href="GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e341917_href.png" placement="inline"/></fig> </section> <section id="GUID-7DDA5B21-FC36-54DC-A717-0BF360DD961B"><title>Error handling</title> <p>The errors are indicated by return codes, by functions leaving, or by calling callback functions. If an error occurs during a synchronous operation initiated by the client, the called function leaves with a correct error code. </p> <p>If an error occurs during an asynchronous operation, the error is passed to the client through the callback function <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita#GUID-91663686-42B7-3C88-B773-3C5343CDCFCE/GUID-8CDFC758-2BA9-3262-9A98-D2C9EC6E65C0"><apiname>MSIPProfileRegistryObserver::ProfileRegistryErrorOccurred()</apiname></xref>. In this case, both the profile identifier and an error code are passed to the client. Any error passed to the client means that the indicated profile is not registered or enabled by the client. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9971A0B9-B2D7-59D3-8834-FDDEEC57AC67"><title>How to use the SIP Profile API</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-D9ED74C5-20D0-5636-993B-06C05CD90E6A"><title>Protocols</title> <p>This section provides the information about the protocol and error handling related to the SIP Profile API: </p> <ul><li id="GUID-71AB3403-EAD0-5444-8B54-8F9A9F463942"><p>When you create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object, the client connects to the shared SIP Profile server. <b>Note</b>: If the server is not running, it is started by the API implementation. </p> <p>When the <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object is deleted, the corresponding connection to the server is closed. The server stops if it has no other users. </p> </li> <li id="GUID-35DDE98D-1135-5556-8C8B-0CD5F65CA642"><p>The profile data is transferred from the server to the client when a user retrieves a <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object through <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref>. </p> <p>When the client holds an instance of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> in its memory, all events related to the corresponding profile use <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> callback functions to notify the client. The callback functions are implemented by the client. </p> <p> <b>Note</b>: A <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object is created each time a profile is retrieved. </p> </li> <li id="GUID-12B99D92-A992-5C77-8E3E-65472E1994AF"><p>When the client deletes the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object, the client is not notified about events. </p> </li> <li id="GUID-B13A5C15-B9EB-5AEF-A490-C4295762D0F8"><p>The profile must be active before a <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object is used by the SIP Client API. Use the <xref href="GUID-F0663140-8AF3-3831-A741-483D276BF91C.dita#GUID-F0663140-8AF3-3831-A741-483D276BF91C/GUID-2CDFD2CB-C3C2-3765-9155-2899F76B0A40"><apiname>MSIPRegistrationContext::IsContextActive()</apiname></xref> function to check. A profile becomes active when it is enabled by the client and the state of the profile is <codeph>ERegistered</codeph>. <codeph>ERegistered</codeph> is an enum value of the <codeph>TSIPProfileState</codeph> enum defined in the class <xref href="GUID-F324C2F6-1336-361C-B270-EFBAA256C46A.dita"><apiname>CSIPProfileAgent</apiname></xref>. </p> </li> <li id="GUID-9B116C46-DE47-5838-9753-A7C05844F886"><p>All profiles are automatically registered when they are enabled. If a profile is not registered before being enabled, the registration status change is acknowledged through <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. If the enabled profile is already registered, no additional registration or status change events are sent. </p> </li> <li id="GUID-5F49EEA6-523D-5080-92BA-344EDBE71C57"><p>When a profile is enabled and registered, the client can use it and the SIP Client API to create SIP sessions. An enabled profile cannot be removed from the system while it is used by the client. </p> </li> <li id="GUID-0E0CD639-0976-5B47-A0D1-CB84BFF759D0"><p>When a profile is not needed by the client, it is disabled. When you delete an instance of the profile the profile is disabled. </p> </li> </ul> <p>The following illustration shows use of the SIP Profile API. </p> <fig id="GUID-191B67CA-9715-5A3F-A571-1353BF69F5A4"><image href="GUID-269D6756-98B5-5928-9A83-261C3F729BCE_d0e335760_href.png" placement="inline"/></fig> </section> <section id="GUID-7DDA5B21-FC36-54DC-A717-0BF360DD961B"><title>Error handling</title> <p>The errors are indicated by return codes, by functions leaving, or by calling callback functions. If an error occurs during a synchronous operation initiated by the client, the called function leaves with a correct error code. </p> <p>If an error occurs during an asynchronous operation, the error is passed to the client through the callback function <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita#GUID-91663686-42B7-3C88-B773-3C5343CDCFCE/GUID-8CDFC758-2BA9-3262-9A98-D2C9EC6E65C0"><apiname>MSIPProfileRegistryObserver::ProfileRegistryErrorOccurred()</apiname></xref>. In this case, both the profile identifier and an error code are passed to the client. Any error passed to the client means that the indicated profile is not registered or enabled by the client. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title><p>The File Converter Framework converts data
-from one format to another format. For example, HTML files can be converted
-to Symbian word documents. </p> </section>
-<section><title>Architecture</title><p>The File Converter Framework
-architecture provides a framework for ECOM plug-ins, called converters, that
-can convert data between different formats. When an application requests to
-convert data from one format to another format, the framework checks the list
-of available converters. If there is a converter that can do the conversion,
-then the framework assigns the request to that converter. </p> <p>The following
-diagram shows the File converter framework architecture. </p> <fig id="GUID-E4ECB2BD-53D8-53F7-B248-2D2EE5888F1E">
-<image href="GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e140807_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>API summary</title> <table id="GUID-82B5BE7F-1DE7-5FBA-9770-05D9B8A74E2F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-D7356C00-8DFE-33D5-937D-59A90CC0412E.dita"><apiname>CCnaConverter</apiname></xref>  </p> </entry>
-<entry><p>A class that contains the properties of a converter. These are a
-UID and the data types that the converter supports. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-66797353-CD46-36C1-A719-4CF50A75250C.dita"><apiname>CConverterBase</apiname></xref>  </p> </entry>
-<entry><p>A class that provides an interface to access the converters. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-583F9530-59DD-3546-B2F9-94D130A3EDD1.dita"><apiname>CConverterBase2</apiname></xref>  </p> </entry>
-<entry><p>A base class for converters. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6C51F1E2-7794-3830-9D52-CA98827C0156.dita"><apiname>CCnaConverterList</apiname></xref>  </p> </entry>
-<entry><p>A class that provides a list of available converters. It allows
-clients to search for and obtain converters for specific source and target
-data types. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3C5F0946-1A4F-3ADA-A41A-BC408F9B9414.dita"><apiname>CCnaConvInfoFileReader2</apiname></xref>  </p> </entry>
-<entry><p>A class that encapsulates a collection of converter properties, <xref href="GUID-D7356C00-8DFE-33D5-937D-59A90CC0412E.dita"><apiname>CCnaConverter</apiname></xref>,
-read from a converter information <filepath>.rsc</filepath> file. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6AF2AE70-9FA4-3B06-B01F-86DE3581AE10.dita"><apiname>CMimeInfo</apiname></xref>  </p> </entry>
-<entry><p>A class that contains the localized names for a data type. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AC297E11-FD37-3572-9612-042F68324F6E.dita"><apiname>MConverterUiObserver</apiname></xref>  </p> </entry>
-<entry><p>An interface implemented by the client of a conversion operation
-to observe conversion progress. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p><b>Using a converter</b> </p> <p>File
-Converter Framework provides APIs to list and search for converters. It also
-provides an observer interface through which the progress and success or failure
-of the conversion can be reported. For more information, see <xref href="GUID-C1C0E7DF-6519-5648-AE5E-6D149AF1A89A.dita">Using
-a converter</xref>. </p> <p><b>Writing a converter</b> </p> <p>File Converter
-Framework specifies a plug-in interface for converters. For more information,
-see <xref href="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita">Writing a Converter</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-99ACBD00-2F61-5984-BE77-91D5EF547289.dita"><linktext>File Converter
-Tutorials</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-99AC84AE-C4C0-53AA-8984-51AE84EE7651" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title><p>The File Converter Framework converts data
+from one format to another format. For example, HTML files can be converted
+to Symbian word documents. </p> </section>
+<section><title>Architecture</title><p>The File Converter Framework
+architecture provides a framework for ECOM plug-ins, called converters, that
+can convert data between different formats. When an application requests to
+convert data from one format to another format, the framework checks the list
+of available converters. If there is a converter that can do the conversion,
+then the framework assigns the request to that converter. </p> <p>The following
+diagram shows the File converter framework architecture. </p> <fig id="GUID-E4ECB2BD-53D8-53F7-B248-2D2EE5888F1E">
+<image href="GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e134273_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>API summary</title> <table id="GUID-82B5BE7F-1DE7-5FBA-9770-05D9B8A74E2F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-D7356C00-8DFE-33D5-937D-59A90CC0412E.dita"><apiname>CCnaConverter</apiname></xref>  </p> </entry>
+<entry><p>A class that contains the properties of a converter. These are a
+UID and the data types that the converter supports. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-66797353-CD46-36C1-A719-4CF50A75250C.dita"><apiname>CConverterBase</apiname></xref>  </p> </entry>
+<entry><p>A class that provides an interface to access the converters. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-583F9530-59DD-3546-B2F9-94D130A3EDD1.dita"><apiname>CConverterBase2</apiname></xref>  </p> </entry>
+<entry><p>A base class for converters. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6C51F1E2-7794-3830-9D52-CA98827C0156.dita"><apiname>CCnaConverterList</apiname></xref>  </p> </entry>
+<entry><p>A class that provides a list of available converters. It allows
+clients to search for and obtain converters for specific source and target
+data types. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3C5F0946-1A4F-3ADA-A41A-BC408F9B9414.dita"><apiname>CCnaConvInfoFileReader2</apiname></xref>  </p> </entry>
+<entry><p>A class that encapsulates a collection of converter properties, <xref href="GUID-D7356C00-8DFE-33D5-937D-59A90CC0412E.dita"><apiname>CCnaConverter</apiname></xref>,
+read from a converter information <filepath>.rsc</filepath> file. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6AF2AE70-9FA4-3B06-B01F-86DE3581AE10.dita"><apiname>CMimeInfo</apiname></xref>  </p> </entry>
+<entry><p>A class that contains the localized names for a data type. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-AC297E11-FD37-3572-9612-042F68324F6E.dita"><apiname>MConverterUiObserver</apiname></xref>  </p> </entry>
+<entry><p>An interface implemented by the client of a conversion operation
+to observe conversion progress. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p><b>Using a converter</b> </p> <p>File
+Converter Framework provides APIs to list and search for converters. It also
+provides an observer interface through which the progress and success or failure
+of the conversion can be reported. For more information, see <xref href="GUID-C1C0E7DF-6519-5648-AE5E-6D149AF1A89A.dita">Using
+a converter</xref>. </p> <p><b>Writing a converter</b> </p> <p>File Converter
+Framework specifies a plug-in interface for converters. For more information,
+see <xref href="GUID-46121F24-AB53-5B44-A082-EF13A72EB7FF.dita">Writing a Converter</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-99ACBD00-2F61-5984-BE77-91D5EF547289.dita"><linktext>File Converter
+Tutorials</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e240083_href.png has changed
Binary file Symbian3/SDK/Source/GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e243820_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC" xml:lang="en"><title>libmexample:
-Using the Standard C Math Library</title><shortdesc>This example demonstrates the use of math functions, such as <codeph>gamma(double)</codeph>,
-that are part of the Standard C Maths support library (<codeph>libm.dll</codeph>). </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-D3589080-5DD4-5DDF-A269-A7D1687F4705"><title>Purpose</title> <p>This
-example application shows how to use the <filepath>libm.dll</filepath> library.
-It: </p> <ol id="GUID-BDAA52E1-6D3C-520C-9C3F-74A558955A86">
-<li id="GUID-85A5E6A3-19BD-5060-A92E-CFAA7E522DF4"><p>reads an input value
-supplied by the user </p> </li>
-<li id="GUID-7D292EC7-FE00-5E35-9261-C11CB406CF32"><p>applies the gamma function
-on the input value </p> </li>
-<li id="GUID-B1C92272-17F9-5520-AC5D-A55B0C11963C"><p>prints the output. </p> </li>
-</ol> </section>
-<section id="GUID-2638D79E-A3D2-5A08-AFC3-00AF68C3C194-GENID-1-8-1-11-1-1-5-1-3-1-11-1-8-1-3-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b6b7503f-d331-4664-a6c8-a3e72b1f6c5b.zip" scope="external"> libmexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b6b7503f-d331-4664-a6c8-a3e72b1f6c5b.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-C3619B7E-3AF5-58D1-99D1-45CADE74B54C"><title>Class summary</title> <p>The
-example shows the use of the following API: </p> <ul>
-<li id="GUID-3DF01930-3A0E-5645-8D7E-F70321CB2B31"><p> <xref href="GUID-D1B12DAA-B281-3D8C-9CFF-A2062EA72A0A.dita"><apiname>gamma(double)</apiname></xref> from
-the Standard C Maths support library (<filepath>libm.dll</filepath>). </p> </li>
-</ul> </section>
-<section id="GUID-7D90F88D-B6DC-5287-AC55-AAF46443874A"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-A00084B3-336E-57DE-A399-33DE044E6021"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-91962C9F-6048-588E-8100-352354DC49C9"><p>For the emulator, the
-example builds an executable called <filepath>libmexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or                 urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-<section id="GUID-97F66C8D-36A9-50D4-8318-2A19BE9832D6"><title>Running the
-example</title> <p>Run the <filepath>libmexample.exe</filepath> executable.
-The example application waits for the user to enter an input value. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-9A38894D-98B8-5AFA-A36A-AC8B494EC2CC" xml:lang="en"><title>libmexample: Using the Standard C Math Library</title><shortdesc>This example demonstrates the use of math functions, such
+as <codeph>gamma(double)</codeph>, that are part of the Standard C
+Maths support library (<codeph>libm.dll</codeph>). </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-D3589080-5DD4-5DDF-A269-A7D1687F4705"><title>Purpose</title> <p>This example application shows how to use the <filepath>libm.dll</filepath> library. It: </p> <ol id="GUID-BDAA52E1-6D3C-520C-9C3F-74A558955A86">
+<li id="GUID-85A5E6A3-19BD-5060-A92E-CFAA7E522DF4"><p>reads an input
+value supplied by the user </p> </li>
+<li id="GUID-7D292EC7-FE00-5E35-9261-C11CB406CF32"><p>applies the
+gamma function on the input value </p> </li>
+<li id="GUID-B1C92272-17F9-5520-AC5D-A55B0C11963C"><p>prints the output. </p> </li>
+</ol> </section>
+<section id="GUID-2638D79E-A3D2-5A08-AFC3-00AF68C3C194-GENID-1-10-1-11-1-1-5-1-3-1-11-1-8-1-3-2"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b6b7503f-d331-4664-a6c8-a3e72b1f6c5b.zip" scope="external"> libmexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b6b7503f-d331-4664-a6c8-a3e72b1f6c5b.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-C3619B7E-3AF5-58D1-99D1-45CADE74B54C"><title>Class
+summary</title> <p>The example shows the use of the following API: </p> <ul>
+<li id="GUID-3DF01930-3A0E-5645-8D7E-F70321CB2B31"><p> <xref href="GUID-D1B12DAA-B281-3D8C-9CFF-A2062EA72A0A.dita"><apiname>gamma(double)</apiname></xref> from the Standard C Maths support library (<filepath>libm.dll</filepath>). </p> </li>
+</ul> </section>
+<section id="GUID-7D90F88D-B6DC-5287-AC55-AAF46443874A"><title>Building
+and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-A00084B3-336E-57DE-A399-33DE044E6021"><p>You can build
+the example from your IDE or the command line. </p> <p>If you use
+an IDE, import the <filepath>bld.inf</filepath> file of the example
+into your IDE, and use the build command of the IDE. </p> <p>If you
+use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the
+example with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake bldfiles</userinput> </p> <p><userinput>abld
+build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to
+use abld</xref> describe how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-91962C9F-6048-588E-8100-352354DC49C9"><p>For the emulator,
+the example builds an executable called <filepath>libmexample.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+<section id="GUID-97F66C8D-36A9-50D4-8318-2A19BE9832D6"><title>Running
+the example</title> <p>Run the <filepath>libmexample.exe</filepath> executable. The example application waits for the user to enter
+an input value. </p> </section>
 </refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e262222_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e265930_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e304377_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9AB5481B-C321-56C9-937D-2397AA80DE8E_d0e310392_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,97 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9" xml:lang="en"><title>Librt
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Support for the Librt library on the Symbian platform enables
-you to port Librt-based applications onto the Symbian platform quickly and
-easily. With knowledge of the Librt library you can also develop Librt-based
-applications on the Symbian platform with minimal coding effort and without
-much knowledge of the native Symbian Utility C++ APIs. </p>
-<section id="GUID-699E9C23-54DB-497E-A27A-260720FD18F6"><title>Librt library details</title> <p>The <filepath>librt.dll</filepath> provides
-the Librt functionality and your code must link to <filepath>librt.lib</filepath>. </p> <p> <b>Important:</b> Your
-application or library that uses the Librt library for the clock solutions
-must link to <filepath>librt.dll</filepath> prior to all other libraries in
-the link order. This is because both <filepath>libc.dll</filepath> and <filepath>librt.dll</filepath> provide
-similar clock interfaces but only the Librt library is modified to behave
-according to the LSB 3.1 specification. </p> </section>
-<section id="GUID-9E5D545A-0D4C-47A1-BC47-1B12162D0F49"><title>Architecture</title> <p>The following image illustrates how
-the Librt library interacts with the components of the P.I.P.S. environment
-and also with the Symbian platform: </p> <fig id="GUID-A29F100E-2726-501C-B141-BED577C50768">
-<title>              The Librt library interacting with P.I.P.S. and the Symbian
-platform           </title>
-<image href="GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e167412_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-572AF6E2-9F24-4CEB-BCF8-CCE7BCFE4E77"><title>APIs</title> <p>The following table is a comprehensive list
-of Librt APIs as per the <xref href="http://refspecs.linux-foundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/librt.html" scope="external">LSB 3.1 specification</xref>: </p> <table id="GUID-843027AF-D604-5C35-9879-BE79121EE94D">
-<tgroup cols="1"><colspec colname="col0"/>
-<thead>
-<row>
-<entry>API</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b>Shared Memory APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-FF8FD54D-4CD3-3DC7-9A48-56043F26E5DD.dita"><apiname>shm_open()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-BF359599-0088-3F3E-BD80-B09C1F5DA380.dita"><apiname>shm_unlink()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Clock APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D4D30F8D-82D9-3919-9711-DFEE78946DBE.dita"><apiname>clock_getcpuclockid()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-B27CD3ED-C472-3226-8B9F-C920E42FA918.dita"><apiname>clock_getres()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-2E94C94E-6D65-3B18-959D-60E6224E6C40.dita"><apiname>clock_gettime()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-24155E9E-530A-3D43-9B71-CF59153B33C9.dita"><apiname>clock_nanosleep()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-7FA65BF7-2F4F-3AA9-A52F-2CF655053AB7.dita"><apiname>clock_settime()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <b>Timer APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-FD961A81-8D92-38D6-A2CE-F3215D5CCF38.dita"><apiname>timer_create()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3C9E5145-5A20-3AE6-88C1-2D76BD68B2F0.dita"><apiname>timer_delete()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-C77553E5-ABEA-3253-B119-2F71C6241EAA.dita"><apiname>timer_getoverrun()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F2DCFCBA-65B7-3184-B870-A63C6CF7EBA9.dita"><apiname>timer_gettime()</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-5FE65EC4-4F2A-30C1-BA89-A92B1F9B1B2E.dita"><apiname>timer_settime</apiname></xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section id="GUID-603A829A-AF5D-496D-9FFE-8EA3ADEAADBB"><title>Using Librt</title> <p>The following tutorials describe some
-high-level usage scenarios of the Librt library functions: </p> <ul>
-<li id="GUID-81EAC75C-5233-5440-95B9-E950AA7527BF"><p><xref href="GUID-8B37D53D-77E1-58C6-9A44-3376A450228B.dita">Shared
-Memory Tutorial</xref>  </p> </li>
-<li id="GUID-BA00DA3A-FD9A-52CA-AA40-F1CB0CC571A5"><p><xref href="GUID-66402932-5C44-556B-A7AC-1C2D245C8B05.dita">Clocks
-and Timers Tutorial</xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9AC6774A-41E9-5298-8696-0A317A09E1E9" xml:lang="en"><title>Librt
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Support for the Librt library on the Symbian platform enables
+you to port Librt-based applications onto the Symbian platform quickly and
+easily. With knowledge of the Librt library you can also develop Librt-based
+applications on the Symbian platform with minimal coding effort and without
+much knowledge of the native Symbian Utility C++ APIs. </p>
+<section id="GUID-699E9C23-54DB-497E-A27A-260720FD18F6"><title>Librt library details</title> <p>The <filepath>librt.dll</filepath> provides
+the Librt functionality and your code must link to <filepath>librt.lib</filepath>. </p> <p> <b>Important:</b> Your
+application or library that uses the Librt library for the clock solutions
+must link to <filepath>librt.dll</filepath> prior to all other libraries in
+the link order. This is because both <filepath>libc.dll</filepath> and <filepath>librt.dll</filepath> provide
+similar clock interfaces but only the Librt library is modified to behave
+according to the LSB 3.1 specification. </p> </section>
+<section id="GUID-9E5D545A-0D4C-47A1-BC47-1B12162D0F49"><title>Architecture</title> <p>The following image illustrates how
+the Librt library interacts with the components of the P.I.P.S. environment
+and also with the Symbian platform: </p> <fig id="GUID-A29F100E-2726-501C-B141-BED577C50768">
+<title>              The Librt library interacting with P.I.P.S. and the Symbian
+platform           </title>
+<image href="GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e160811_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-572AF6E2-9F24-4CEB-BCF8-CCE7BCFE4E77"><title>APIs</title> <p>The following table is a comprehensive list
+of Librt APIs as per the <xref href="http://refspecs.linux-foundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/librt.html" scope="external">LSB 3.1 specification</xref>: </p> <table id="GUID-843027AF-D604-5C35-9879-BE79121EE94D">
+<tgroup cols="1"><colspec colname="col0"/>
+<thead>
+<row>
+<entry>API</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>Shared Memory APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-FF8FD54D-4CD3-3DC7-9A48-56043F26E5DD.dita"><apiname>shm_open()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-BF359599-0088-3F3E-BD80-B09C1F5DA380.dita"><apiname>shm_unlink()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Clock APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D4D30F8D-82D9-3919-9711-DFEE78946DBE.dita"><apiname>clock_getcpuclockid()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-B27CD3ED-C472-3226-8B9F-C920E42FA918.dita"><apiname>clock_getres()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-2E94C94E-6D65-3B18-959D-60E6224E6C40.dita"><apiname>clock_gettime()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-24155E9E-530A-3D43-9B71-CF59153B33C9.dita"><apiname>clock_nanosleep()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-7FA65BF7-2F4F-3AA9-A52F-2CF655053AB7.dita"><apiname>clock_settime()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <b>Timer APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-FD961A81-8D92-38D6-A2CE-F3215D5CCF38.dita"><apiname>timer_create()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3C9E5145-5A20-3AE6-88C1-2D76BD68B2F0.dita"><apiname>timer_delete()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-C77553E5-ABEA-3253-B119-2F71C6241EAA.dita"><apiname>timer_getoverrun()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F2DCFCBA-65B7-3184-B870-A63C6CF7EBA9.dita"><apiname>timer_gettime()</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-5FE65EC4-4F2A-30C1-BA89-A92B1F9B1B2E.dita"><apiname>timer_settime</apiname></xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-603A829A-AF5D-496D-9FFE-8EA3ADEAADBB"><title>Using Librt</title> <p>The following tutorials describe some
+high-level usage scenarios of the Librt library functions: </p> <ul>
+<li id="GUID-81EAC75C-5233-5440-95B9-E950AA7527BF"><p><xref href="GUID-8B37D53D-77E1-58C6-9A44-3376A450228B.dita">Shared
+Memory Tutorial</xref>  </p> </li>
+<li id="GUID-BA00DA3A-FD9A-52CA-AA40-F1CB0CC571A5"><p><xref href="GUID-66402932-5C44-556B-A7AC-1C2D245C8B05.dita">Clocks
+and Timers Tutorial</xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,291 +1,291 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5" xml:lang="en"><title>Advanced
-Pointer States and Event Communication</title><shortdesc>The Window Server provides advanced pointer features, such as support
-for multiple pointers and proximity and pressure coordinates. This topic provides
-a summary of advanced pointer states and the events that communicate changes
-of their state. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
-audience</b>: Application developers. </p>
-<p>This topic builds on the <xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
-Pointer Overview</xref>. </p>
-<section id="GUID-4B7318D7-29AB-4DE4-B37A-2AFAE055982E"><title>Communication
-between an input driver and the Window Server</title> <p>The following diagram
-shows how an input driver communicates changes in pointer state to the Window
-Server. The diagram shows the logical pointer states and how <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> types
-change those states. From the driver's perspective, the pointer can be in
-one of three basic logical states: <i>Up</i>, <i>Down</i> or <i>OutOfRange</i>. </p> <p>The
-driver sends a number of types of event to move the pointer between these
-states. For example, <xref href="GUID-0FD31DF6-3EA2-3EB3-8940-05F187B98B86.dita"><apiname>EButton1Up</apiname></xref> is an <i>Up</i> event that
-changes the pointer from the <i>Down</i> to the <i>Up</i> state. <xref href="GUID-2786B13B-B95C-3D15-B7D2-205E99A64FBC.dita"><apiname>EButton1Down</apiname></xref> is
-a <i>Down</i> event. <codeph>EButton1Down</codeph> changes the pointer from
-the <i>Up</i> to the <i>Down</i> state, and from <i>OutOfRange</i> to the <i>Down</i> state. </p> <p>There
-can be any number of pointers, and each pointer has a maximum of three buttons.
-A platform UI is free to implement buttons in any way. However, the Window
-Server interprets only Button1 as an <b>action</b> and does not interpret
-the other buttons. </p> <fig id="GUID-2664573F-C5E8-573F-9427-783074351585">
-<title> Driver communicates pointer state changes to the Window Server   
-        </title>
-<image href="GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e197572_href.png" placement="inline"/>
-</fig> <p>For a complete list of pointer states, the events that can be sent
-by the driver, and the associated events that the Window Server sends to the
-client, see the <xref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita#GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5/GUID-EC2B9C82-D678-5DFE-89A8-8CFCF5376244">Pointer
-states and event communication</xref> table below. </p> </section>
-<section id="GUID-3698CDAC-A904-5C44-BFD1-669D9673D02B"><title> Pointer states</title> <p>Pointing
-devices can be in one of the following basic states: </p> <table id="GUID-5255E70E-EF7C-5AA6-9F94-AF720B5B805F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>State</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b>Out of range</b>  </p> </entry>
-<entry><p>Not detected by the device's sensors. </p> </entry>
-</row>
-<row>
-<entry><p> <b>Up</b>  </p> </entry>
-<entry><p>Detected by sensors, coordinates available, not performing an action. </p> </entry>
-</row>
-<row>
-<entry><p> <b>Down</b>  </p> </entry>
-<entry><p>Detected by sensors, coordinates available, performing an action
-(as defined above). </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following diagram shows the extension of the <i>Up</i> and <i>Down</i> states
-with additional substates. <i>Up</i> is extended with substates describing
-the <b>closeness</b> of the pointer to the screen. <i>Down</i> is extended
-with substates describing <b>pressing</b>. </p> <fig id="GUID-54DA3BEC-A650-5223-8E46-5B68F414A909">
-<title> Extension of Up and Down states with substates            </title>
-<image href="GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e197686_href.png" placement="inline"/>
-</fig> <p>The Window Server generates the following events for changes of
-closeness and pressing: </p> <ul>
-<li id="GUID-72265325-882B-5B38-ABE7-EFDF05758B97"><p> <codeph>EExitCloseProximity</codeph>  </p> </li>
-<li id="GUID-D22BF039-8D17-53A4-83C1-3390EBDFBE46"><p> <codeph>EEnterCloseProximity</codeph>  </p> </li>
-<li id="GUID-5968A499-B87B-54D2-9926-EF446ED1BCCD"><p> <codeph>EExitHighPressure</codeph>  </p> </li>
-<li id="GUID-4FB8633D-29F1-5794-A922-65603035F23A"><p> <codeph>EEnterHighPressure</codeph>  </p> </li>
-</ul> <p>These are all types of <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>. Because
-these state changes depend on the pressure and proximity of the pointer, both
-of these values are checked each time a new <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> concerning
-the pointer arrives from the driver. <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> means
-that the proximity is infinite and pressure is zero. </p> <p>These events
-are based on four thresholds: </p> <ul>
-<li id="GUID-6B27FB3B-EFFE-5D25-B039-FA84F0BFCE66"><p>The <codeph>EExitHighPressure</codeph> threshold
-(<codeph>EPointer3DExitHighPressureThreshold</codeph> in HAL) </p> <p>This
-is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
-this threshold by decreasing pressure (thus decreasing its Z coordinate),
-the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-9062D892-DE16-3F74-AC0D-76A7F047B52B"><apiname>TPointerEvent::EExitHighPressure</apiname></xref> and
-sends it to the client. </p> </li>
-<li id="GUID-6F8E2E38-59A5-5FF3-B332-5D68252749B9"><p>The <codeph>EEnterHighPressure</codeph> threshold
-(<codeph>EPointer3DEnterHighPressureThreshold</codeph> in HAL) </p> <p>This
-is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
-this threshold by increasing pressure (thus increasing its Z coordinate),
-the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-39963088-400D-3F0B-B7B1-36064CE92A67"><apiname>TPointerEvent::EEnterHighPressure</apiname></xref> and
-sends it to the client. </p> </li>
-<li id="GUID-CB32D252-B1CD-56D4-A5CF-88E99C2BCDD8"><p>The <codeph>EEnterCloseProximity</codeph> threshold
-(<codeph>                 EPointer3DEnterCloseProximityThreshold</codeph> in
-HAL) </p> <p>This is a threshold on the pointer's Z coordinate. In general,
-if the pointer crosses this threshold by decreasing its proximity from the
-device (thus increasing its Z coordinate), the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-7BDBA988-0D3A-35B2-A5AE-FFA56CC48D12"><apiname>TPointerEvent::EEnterCloseProximity</apiname></xref> and
-sends it to the client. </p> </li>
-<li id="GUID-C60E937A-E786-55CE-BEEC-655E78B6ED41"><p>The <codeph>EExitCloseProximity</codeph> threshold
-(<codeph>EPointer3DExitCloseProximityThreshold</codeph> in HAL) </p> <p>This
-is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
-this threshold by increasing its proximity from the device (thus decreasing
-its Z coordinate), the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-C9226074-F285-3934-83C1-5533485FE6A6"><apiname>TPointerEvent::EExitCloseProximity</apiname></xref> and
-sends it to the client. </p> </li>
-</ul> <p>Applications can configure these thresholds at runtime by using Window
-Server APIs in <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>. All applications can read these
-thresholds. However, only code with <codeph>WriteDeviceData</codeph> capability
-can change them because these changes should be made only by the device's
-configuration application. </p> </section>
-<section id="GUID-EC2B9C82-D678-5DFE-89A8-8CFCF5376244"><title>Pointer states
-and event communication</title> <p>The table below shows all possible pointer
-states. For each state it shows all of the events that can be sent by the
-driver and all of the events that are sent by the Window Server to the client.
-The end state of the pointer is also shown. There are five pointer zones (states)
-and four thresholds. An event is generated when the pointer's z position crosses
-a threshold. </p> <table id="GUID-630982B7-0367-558B-A1B0-B115EB7625A9">
-<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry> Pointer state</entry>
-<entry>  <codeph>TRawEvent</codeph> received from driver</entry>
-<entry>  <codeph>TPointerEvent</codeph> sent by Window Server</entry>
-<entry>Resulting pointer state</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>OutOfRange </p> </entry>
-<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
-<entry><p>— </p> </entry>
-<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p>OutOfRange </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EMove</codeph>  </p> </entry>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>OutOfRange </p> </entry>
-<entry><p> <codeph> EMove</codeph> (Z &gt;= <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EEnterCloseProximity</codeph>  </p> </entry>
-<entry><p>Up/InCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>OutOfRange </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
-<entry><p>Down/NotPressing </p> </entry>
-</row>
-<row>
-<entry><p>OutOfRange </p> </entry>
-<entry><p> <codeph> EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
-<entry><p>Down/Pressing </p> </entry>
-</row>
-<row>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
-<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
-<entry><p>OutOfRange </p> </entry>
-</row>
-<row>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EMove</codeph>  </p> </entry>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EEnterCloseProximity</codeph>  </p> </entry>
-<entry><p>Up/InCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
-<entry><p>Down/InHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Up/InCloseProximity </p> </entry>
-<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
-<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
-<entry><p>OutOfRange </p> </entry>
-</row>
-<row>
-<entry><p>Up/InCloseProximity </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EExitCloseProximity</codeph>  </p> </entry>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Up/InCloseProximity </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EMove</codeph>  </p> </entry>
-<entry><p>Up/InCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Up/InCloseProximity </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Up/InCloseProximity </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
-<entry><p>Down/InHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph>, <codeph>EExitCloseProximity</codeph>  </p> </entry>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph>  </p> </entry>
-<entry><p>Up/InCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EDrag</codeph>  </p> </entry>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EEnterHighPressure</codeph>  </p> </entry>
-<entry><p>Down/InHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Down/InHighPressure </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph>, <codeph>EExitCloseProximity</codeph>  </p> </entry>
-<entry><p>Up/OutOfCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Down/InHighPressure </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EButton1Up</codeph>  </p> </entry>
-<entry><p>Up/InCloseProximity </p> </entry>
-</row>
-<row>
-<entry><p>Down/InHighPressure </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EExitHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EExitHighPressure</codeph>  </p> </entry>
-<entry><p>Down/OutOfHighPressure </p> </entry>
-</row>
-<row>
-<entry><p>Down/InHighPressure </p> </entry>
-<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EExitHighPressure</codeph> threshold) </p> </entry>
-<entry><p> <codeph>EDrag</codeph>  </p> </entry>
-<entry><p>Down/InHighPressure </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The driver is prohibited from sending <codeph>EPointer3DOutOfRange</codeph> when
-the pointer is in the Down state. Therefore this is not included in this table.
-Because <codeph>TRawEvent</codeph>'s <codeph>EPointer3DOutOfRange</codeph> events
-do not have coordinates, the Window Server makes sure the event is delivered
-to the place where the previous event for the same pointer occurred. It does
-this by maintaining the last state of the pointer. </p> <p>The following diagram
-shows the events sent from the Window Server to the client while
-the pointer traverses the full cycle of events—from OutOfRange, through Down/InHighPressure
-and back to OutOfRange. This diagram does not show all of the possible state
-transitions that are described in the table above. </p> <fig id="GUID-C39B447C-0908-5F9A-95EC-2F97E56E2C20">
-<title> Events sent from Window Server to client while the pointer traverses
-the full cycle of states.            </title>
-<image href="GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e198639_href.png" placement="inline"/>
-</fig> </section>
-</conbody><related-links>
-<link href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita"><linktext>Advanced
-Pointer Overview</linktext></link>
-<link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext>Advanced
-Pointer Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5" xml:lang="en"><title>Advanced
+Pointer States and Event Communication</title><shortdesc>The Window Server provides advanced pointer features, such as support
+for multiple pointers and proximity and pressure coordinates. This topic provides
+a summary of advanced pointer states and the events that communicate changes
+of their state. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
+audience</b>: Application developers. </p>
+<p>This topic builds on the <xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
+Pointer Overview</xref>. </p>
+<section id="GUID-4B7318D7-29AB-4DE4-B37A-2AFAE055982E"><title>Communication
+between an input driver and the Window Server</title> <p>The following diagram
+shows how an input driver communicates changes in pointer state to the Window
+Server. The diagram shows the logical pointer states and how <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> types
+change those states. From the driver's perspective, the pointer can be in
+one of three basic logical states: <i>Up</i>, <i>Down</i> or <i>OutOfRange</i>. </p> <p>The
+driver sends a number of types of event to move the pointer between these
+states. For example, <xref href="GUID-0FD31DF6-3EA2-3EB3-8940-05F187B98B86.dita"><apiname>EButton1Up</apiname></xref> is an <i>Up</i> event that
+changes the pointer from the <i>Down</i> to the <i>Up</i> state. <xref href="GUID-2786B13B-B95C-3D15-B7D2-205E99A64FBC.dita"><apiname>EButton1Down</apiname></xref> is
+a <i>Down</i> event. <codeph>EButton1Down</codeph> changes the pointer from
+the <i>Up</i> to the <i>Down</i> state, and from <i>OutOfRange</i> to the <i>Down</i> state. </p> <p>There
+can be any number of pointers, and each pointer has a maximum of three buttons.
+A platform UI is free to implement buttons in any way. However, the Window
+Server interprets only Button1 as an <b>action</b> and does not interpret
+the other buttons. </p> <fig id="GUID-2664573F-C5E8-573F-9427-783074351585">
+<title> Driver communicates pointer state changes to the Window Server   
+        </title>
+<image href="GUID-35521A99-3F1F-5EE1-8078-FFD8A298C0BD_d0e192564_href.png" placement="inline"/>
+</fig> <p>For a complete list of pointer states, the events that can be sent
+by the driver, and the associated events that the Window Server sends to the
+client, see the <xref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita#GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5/GUID-EC2B9C82-D678-5DFE-89A8-8CFCF5376244">Pointer
+states and event communication</xref> table below. </p> </section>
+<section id="GUID-3698CDAC-A904-5C44-BFD1-669D9673D02B"><title> Pointer states</title> <p>Pointing
+devices can be in one of the following basic states: </p> <table id="GUID-5255E70E-EF7C-5AA6-9F94-AF720B5B805F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>State</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>Out of range</b>  </p> </entry>
+<entry><p>Not detected by the device's sensors. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Up</b>  </p> </entry>
+<entry><p>Detected by sensors, coordinates available, not performing an action. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Down</b>  </p> </entry>
+<entry><p>Detected by sensors, coordinates available, performing an action
+(as defined above). </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following diagram shows the extension of the <i>Up</i> and <i>Down</i> states
+with additional substates. <i>Up</i> is extended with substates describing
+the <b>closeness</b> of the pointer to the screen. <i>Down</i> is extended
+with substates describing <b>pressing</b>. </p> <fig id="GUID-54DA3BEC-A650-5223-8E46-5B68F414A909">
+<title> Extension of Up and Down states with substates            </title>
+<image href="GUID-4E1D4E5D-7CE6-5A93-9170-BEF2937FC953_d0e192678_href.png" placement="inline"/>
+</fig> <p>The Window Server generates the following events for changes of
+closeness and pressing: </p> <ul>
+<li id="GUID-72265325-882B-5B38-ABE7-EFDF05758B97"><p> <codeph>EExitCloseProximity</codeph>  </p> </li>
+<li id="GUID-D22BF039-8D17-53A4-83C1-3390EBDFBE46"><p> <codeph>EEnterCloseProximity</codeph>  </p> </li>
+<li id="GUID-5968A499-B87B-54D2-9926-EF446ED1BCCD"><p> <codeph>EExitHighPressure</codeph>  </p> </li>
+<li id="GUID-4FB8633D-29F1-5794-A922-65603035F23A"><p> <codeph>EEnterHighPressure</codeph>  </p> </li>
+</ul> <p>These are all types of <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>. Because
+these state changes depend on the pressure and proximity of the pointer, both
+of these values are checked each time a new <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> concerning
+the pointer arrives from the driver. <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> means
+that the proximity is infinite and pressure is zero. </p> <p>These events
+are based on four thresholds: </p> <ul>
+<li id="GUID-6B27FB3B-EFFE-5D25-B039-FA84F0BFCE66"><p>The <codeph>EExitHighPressure</codeph> threshold
+(<codeph>EPointer3DExitHighPressureThreshold</codeph> in HAL) </p> <p>This
+is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
+this threshold by decreasing pressure (thus decreasing its Z coordinate),
+the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-9062D892-DE16-3F74-AC0D-76A7F047B52B"><apiname>TPointerEvent::EExitHighPressure</apiname></xref> and
+sends it to the client. </p> </li>
+<li id="GUID-6F8E2E38-59A5-5FF3-B332-5D68252749B9"><p>The <codeph>EEnterHighPressure</codeph> threshold
+(<codeph>EPointer3DEnterHighPressureThreshold</codeph> in HAL) </p> <p>This
+is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
+this threshold by increasing pressure (thus increasing its Z coordinate),
+the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-39963088-400D-3F0B-B7B1-36064CE92A67"><apiname>TPointerEvent::EEnterHighPressure</apiname></xref> and
+sends it to the client. </p> </li>
+<li id="GUID-CB32D252-B1CD-56D4-A5CF-88E99C2BCDD8"><p>The <codeph>EEnterCloseProximity</codeph> threshold
+(<codeph>                 EPointer3DEnterCloseProximityThreshold</codeph> in
+HAL) </p> <p>This is a threshold on the pointer's Z coordinate. In general,
+if the pointer crosses this threshold by decreasing its proximity from the
+device (thus increasing its Z coordinate), the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-7BDBA988-0D3A-35B2-A5AE-FFA56CC48D12"><apiname>TPointerEvent::EEnterCloseProximity</apiname></xref> and
+sends it to the client. </p> </li>
+<li id="GUID-C60E937A-E786-55CE-BEEC-655E78B6ED41"><p>The <codeph>EExitCloseProximity</codeph> threshold
+(<codeph>EPointer3DExitCloseProximityThreshold</codeph> in HAL) </p> <p>This
+is a threshold on the pointer's Z coordinate. In general, if the pointer crosses
+this threshold by increasing its proximity from the device (thus decreasing
+its Z coordinate), the Window Server generates <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-C9226074-F285-3934-83C1-5533485FE6A6"><apiname>TPointerEvent::EExitCloseProximity</apiname></xref> and
+sends it to the client. </p> </li>
+</ul> <p>Applications can configure these thresholds at runtime by using Window
+Server APIs in <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>. All applications can read these
+thresholds. However, only code with <codeph>WriteDeviceData</codeph> capability
+can change them because these changes should be made only by the device's
+configuration application. </p> </section>
+<section id="GUID-EC2B9C82-D678-5DFE-89A8-8CFCF5376244"><title>Pointer states
+and event communication</title> <p>The table below shows all possible pointer
+states. For each state it shows all of the events that can be sent by the
+driver and all of the events that are sent by the Window Server to the client.
+The end state of the pointer is also shown. There are five pointer zones (states)
+and four thresholds. An event is generated when the pointer's z position crosses
+a threshold. </p> <table id="GUID-630982B7-0367-558B-A1B0-B115EB7625A9">
+<tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry> Pointer state</entry>
+<entry>  <codeph>TRawEvent</codeph> received from driver</entry>
+<entry>  <codeph>TPointerEvent</codeph> sent by Window Server</entry>
+<entry>Resulting pointer state</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>OutOfRange </p> </entry>
+<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
+<entry><p>— </p> </entry>
+<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p>OutOfRange </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EMove</codeph>  </p> </entry>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>OutOfRange </p> </entry>
+<entry><p> <codeph> EMove</codeph> (Z &gt;= <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EEnterCloseProximity</codeph>  </p> </entry>
+<entry><p>Up/InCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>OutOfRange </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
+<entry><p>Down/NotPressing </p> </entry>
+</row>
+<row>
+<entry><p>OutOfRange </p> </entry>
+<entry><p> <codeph> EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
+<entry><p>Down/Pressing </p> </entry>
+</row>
+<row>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
+<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
+<entry><p>OutOfRange </p> </entry>
+</row>
+<row>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EMove</codeph>  </p> </entry>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EEnterCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EEnterCloseProximity</codeph>  </p> </entry>
+<entry><p>Up/InCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
+<entry><p>Down/InHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Up/InCloseProximity </p> </entry>
+<entry><p> <codeph>EPointer3DOutOfRange</codeph>  </p> </entry>
+<entry><p> <codeph>EOutOfRange</codeph>  </p> </entry>
+<entry><p>OutOfRange </p> </entry>
+</row>
+<row>
+<entry><p>Up/InCloseProximity </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EExitCloseProximity</codeph>  </p> </entry>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Up/InCloseProximity </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EMove</codeph>  </p> </entry>
+<entry><p>Up/InCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Up/InCloseProximity </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>  </p> </entry>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Up/InCloseProximity </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Down</codeph>, <codeph>EEnterHighPressure</codeph>  </p> </entry>
+<entry><p>Down/InHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph>, <codeph>EExitCloseProximity</codeph>  </p> </entry>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph>  </p> </entry>
+<entry><p>Up/InCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EDrag</codeph>  </p> </entry>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EEnterHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EEnterHighPressure</codeph>  </p> </entry>
+<entry><p>Down/InHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Down/InHighPressure </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph> (Z &lt; <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph>, <codeph>EExitCloseProximity</codeph>  </p> </entry>
+<entry><p>Up/OutOfCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Down/InHighPressure </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph> (Z &gt;= <codeph>EExitCloseProximity</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EButton1Up</codeph>  </p> </entry>
+<entry><p>Up/InCloseProximity </p> </entry>
+</row>
+<row>
+<entry><p>Down/InHighPressure </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &lt; <codeph>EExitHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EExitHighPressure</codeph>  </p> </entry>
+<entry><p>Down/OutOfHighPressure </p> </entry>
+</row>
+<row>
+<entry><p>Down/InHighPressure </p> </entry>
+<entry><p> <codeph>EMove</codeph> (Z &gt;= <codeph>EExitHighPressure</codeph> threshold) </p> </entry>
+<entry><p> <codeph>EDrag</codeph>  </p> </entry>
+<entry><p>Down/InHighPressure </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The driver is prohibited from sending <codeph>EPointer3DOutOfRange</codeph> when
+the pointer is in the Down state. Therefore this is not included in this table.
+Because <codeph>TRawEvent</codeph>'s <codeph>EPointer3DOutOfRange</codeph> events
+do not have coordinates, the Window Server makes sure the event is delivered
+to the place where the previous event for the same pointer occurred. It does
+this by maintaining the last state of the pointer. </p> <p>The following diagram
+shows the events sent from the Window Server to the client while
+the pointer traverses the full cycle of events—from OutOfRange, through Down/InHighPressure
+and back to OutOfRange. This diagram does not show all of the possible state
+transitions that are described in the table above. </p> <fig id="GUID-C39B447C-0908-5F9A-95EC-2F97E56E2C20">
+<title> Events sent from Window Server to client while the pointer traverses
+the full cycle of states.            </title>
+<image href="GUID-8F4C626F-3490-50BC-A97F-FD1972FFF65B_d0e193631_href.png" placement="inline"/>
+</fig> </section>
+</conbody><related-links>
+<link href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita"><linktext>Advanced
+Pointer Overview</linktext></link>
+<link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext>Advanced
+Pointer Tutorial</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9BB849A2-8F69-580D-8A52-C7002D919521.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9BB849A2-8F69-580D-8A52-C7002D919521.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9BB849A2-8F69-580D-8A52-C7002D919521"><title>Email Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Email collection provides support for sending and receiving emails using the individual email protocols, such as IMAP4, POP3 and SMTP, and also has support for parsing and generating plain and rich text, MIME and M-HTML format emails. </p> <section><title>Architecture</title> <p>The Email collection consists of a set of utilities and <xref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita">MTMs</xref> for the POP3, IMAP4 and SMTP messaging protocols. </p> <fig id="GUID-3CF863C6-7627-55E4-951B-36BE4B4C43B9"><title>
-             Email architecture 
-          </title> <image href="GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e275517_href.jpg" placement="inline"/></fig> <dl><dlentry><dt>Autosend</dt> <dd><p>Autosend is an executable file that is executed by the POP3 and IMAP4 client MTMs if the send on next connection setting is set. This executable makes a request to the SMTP server MTM to send messages associated with the SMTP service related to the POP3 or IMAP4 service, wait for the operation to finish and then exit. </p> </dd> </dlentry> <dlentry><dt>Server MTM</dt> <dd><p>A Server MTM provides specific message type storage and transport. It interacts with the Message Server to store and manage entries and provide a transport mechanism. </p> </dd> </dlentry> <dlentry><dt>Email client MTMs</dt> <dd><p>Email client MTMs provide client-side APIs (<filepath>IMCM DLL</filepath>) for IMAP4, POP3 and SMTP. </p> <p>The email client MTMs are used directly by clients to access parts of email messages for display. The <xref href="GUID-323E701E-EA22-3CC8-AE84-C16880608D44.dita"><apiname>CImEmailMessage</apiname></xref> class provides the functionality used by clients to display email messages, including listing attachments, getting body text and resolving URIs in M-HTML messages. </p> </dd> </dlentry> <dlentry><dt>Email client utilities </dt> <dd><p>The email client MTM uses the email client utilities when they are requested to create, reply to and forward messages. The <xref href="GUID-3F7DC1AB-D13C-31E9-967B-526AD72CD498.dita"><apiname>CImEmailOperation</apiname></xref> class provides the functionality to perform these operations. Each email is represented by a parent message entry with child entries that represent MIME folders and MIME parts. Adding or deleting MIME parts involves navigating the tree of entries and inserting or removing entries as appropriate. </p> </dd> </dlentry> <dlentry><dt>Email server utilities</dt> <dd><p>Email server utilities are responsible for generating and parsing of RFC2822 format email messages and providing an API to wrap up a TCP/IP connection to a remote email server. </p> </dd> </dlentry> </dl> </section> <section id="GUID-0E61C259-29CC-5FE3-AD4D-B2755F62A015"><title>Description</title> <p>Email messages are represented in a common format whether they are being sent by SMTP and downloaded by POP3 or IMAP4. Messaging clients can use the email client MTMs to create and compose email messages with attachments and a <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-6E7D52CF-F18C-5C92-9DB2-611EDD018048">vCard</xref> signature. They can reply to or forward email messages. When connecting to a POP3 mailbox, just the header can be downloaded, or the entire message including attachments. However, when connecting to an IMAP4 mailbox, any or all of the following can be downloaded: </p> <ul><li id="GUID-4DBC9D2A-06F3-5282-A434-05AE87D82ABE"><p>the header </p> </li> <li id="GUID-BD0B15B3-713C-557B-9C01-2E73BB95DC7E"><p>the header and body text </p> </li> <li id="GUID-309E9C9C-EBB0-5363-847F-31986B64A10A"><p>the entire message including attachments </p> </li> <li id="GUID-98BFABA1-3706-5DE4-8990-AC29E249FAB7"><p>partial body text where the body text size limit is specified </p> </li> <li id="GUID-887FD8E3-BDEC-50E9-AA4B-3619DFF9CFA4"><p>download attachments if the attachment size is less then or equal to attachment size limit </p> </li> </ul> <p>Messaging clients can access any part of the message for display to the user. Messages can be moved or copied within folders on the local device and, for IMAP4 only, within the mailbox as well. </p> <p>Email client MTMs provide APIs that allow configuration information, such as secure or non-secure TCP/IP connection, username, password and message limits to be stored on the local device. Email client MTMs can be commanded to stay online during a client session, or connect and disconnect only when necessary. Operations such as moving, deleting, or sending a message while not connected can be queued for execution when the next connection to the subscriber's mailbox is established. </p> <p> <b>Note:</b> Email client MTMs are not responsible for any graphical or user interface associated functionality, such as rendering HTML or images, although they do provide access to images and HTML downloaded to the local device. </p> <p>For each email account a pair of services entries is created in the Message Store. For a POP3 account there will be an SMTP service and a POP3 service. For an IMAP4 account there will be an SMTP service and an IMAP4 service. These entries are used to store the settings for the email transport. Each of the service entry has its related ID that is set to the other member of the pair. The SMTP service is invisible, so that the user only sees the POP3 or IMAP4 service entry. Copying a message to the SMTP service causes the SMTP server MTM to attempt to send the message. The POP3 and IMAP4 MTMs provide functionality to synchronise with a remote email server by using the client MTM interface through the <xref href="GUID-0BD3DB31-2F8B-36B1-AF55-22E649D56164.dita"><apiname>InvokeAsync</apiname></xref> API. </p> <fig id="GUID-6BA2DAFE-B804-5D65-B350-5638DB31A366"><title>
-             Email operation sequence diagram 
-          </title> <image href="GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e275646_href.jpg" placement="inline"/></fig> </section> <section><title>Components</title> <p>The Email collection constitutes the following components: </p> <ul><li id="GUID-EA99CD44-E4C6-5067-954C-363FD6841440"><p><xref href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita">IMAP4 MTM</xref>  </p> </li> <li id="GUID-DE41A457-509E-505A-8229-506AEA78F9B1"><p><xref href="GUID-EADCDE6F-127E-528C-B2E0-F13E5C7FD4EF.dita">POP3 MTM</xref> </p> </li> <li id="GUID-CC0575AC-F1BC-5983-B589-83C2D048B2AC"><p><xref href="GUID-3988C2DE-3FC5-5AF8-BB9F-499E7082F7D5.dita">SMTP MTM</xref>  </p> </li> </ul> </section> <section><title>Using Email</title> <p>Email client applications can use the following functionality provided by the Email collection to: </p> <ul><li id="GUID-9C57E57B-F5E7-5087-ABEA-16431C8E6919"><p>Store emails including MIME headers, RFC2822 headers, attachments, body text and encoding information in the Message Store. </p> </li> <li id="GUID-54CDD32C-FEFB-57D1-BEFD-50B30FD6A03E"><p>Manipulate email messages, for example, adding attachments and replying. </p> </li> <li id="GUID-9C3725B3-738F-540A-8E36-6482FDE15AEA"><p>Encapsulate the character converters, which are used to convert between standard character sets and Unicode. </p> </li> <li id="GUID-4D56BD8D-9B80-55B6-9EF7-DB9847E69459"><p>Store email settings in the central repository. </p> </li> <li id="GUID-68F54B38-09EF-5D9D-B844-930E33B38BE4"><p>Get progress information for email operations. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type Module</linktext> </link> <link href="GUID-8832AED4-6B9F-5B35-8211-0C6661CD6DCA.dita"><linktext>Email Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9BB849A2-8F69-580D-8A52-C7002D919521"><title>Email Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Email collection provides support for sending and receiving emails using the individual email protocols, such as IMAP4, POP3 and SMTP, and also has support for parsing and generating plain and rich text, MIME and M-HTML format emails. </p> <section><title>Architecture</title> <p>The Email collection consists of a set of utilities and <xref href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita">MTMs</xref> for the POP3, IMAP4 and SMTP messaging protocols. </p> <fig id="GUID-3CF863C6-7627-55E4-951B-36BE4B4C43B9"><title>
+             Email architecture 
+          </title> <image href="GUID-51B0D0A9-C9FA-59DA-82B1-5834980CB35D_d0e271836_href.jpg" placement="inline"/></fig> <dl><dlentry><dt>Autosend</dt> <dd><p>Autosend is an executable file that is executed by the POP3 and IMAP4 client MTMs if the send on next connection setting is set. This executable makes a request to the SMTP server MTM to send messages associated with the SMTP service related to the POP3 or IMAP4 service, wait for the operation to finish and then exit. </p> </dd> </dlentry> <dlentry><dt>Server MTM</dt> <dd><p>A Server MTM provides specific message type storage and transport. It interacts with the Message Server to store and manage entries and provide a transport mechanism. </p> </dd> </dlentry> <dlentry><dt>Email client MTMs</dt> <dd><p>Email client MTMs provide client-side APIs (<filepath>IMCM DLL</filepath>) for IMAP4, POP3 and SMTP. </p> <p>The email client MTMs are used directly by clients to access parts of email messages for display. The <xref href="GUID-323E701E-EA22-3CC8-AE84-C16880608D44.dita"><apiname>CImEmailMessage</apiname></xref> class provides the functionality used by clients to display email messages, including listing attachments, getting body text and resolving URIs in M-HTML messages. </p> </dd> </dlentry> <dlentry><dt>Email client utilities </dt> <dd><p>The email client MTM uses the email client utilities when they are requested to create, reply to and forward messages. The <xref href="GUID-3F7DC1AB-D13C-31E9-967B-526AD72CD498.dita"><apiname>CImEmailOperation</apiname></xref> class provides the functionality to perform these operations. Each email is represented by a parent message entry with child entries that represent MIME folders and MIME parts. Adding or deleting MIME parts involves navigating the tree of entries and inserting or removing entries as appropriate. </p> </dd> </dlentry> <dlentry><dt>Email server utilities</dt> <dd><p>Email server utilities are responsible for generating and parsing of RFC2822 format email messages and providing an API to wrap up a TCP/IP connection to a remote email server. </p> </dd> </dlentry> </dl> </section> <section id="GUID-0E61C259-29CC-5FE3-AD4D-B2755F62A015"><title>Description</title> <p>Email messages are represented in a common format whether they are being sent by SMTP and downloaded by POP3 or IMAP4. Messaging clients can use the email client MTMs to create and compose email messages with attachments and a <xref href="GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B.dita#GUID-17DE7D55-00C9-5D40-8AE4-39BDB20FCC5B/GUID-6E7D52CF-F18C-5C92-9DB2-611EDD018048">vCard</xref> signature. They can reply to or forward email messages. When connecting to a POP3 mailbox, just the header can be downloaded, or the entire message including attachments. However, when connecting to an IMAP4 mailbox, any or all of the following can be downloaded: </p> <ul><li id="GUID-4DBC9D2A-06F3-5282-A434-05AE87D82ABE"><p>the header </p> </li> <li id="GUID-BD0B15B3-713C-557B-9C01-2E73BB95DC7E"><p>the header and body text </p> </li> <li id="GUID-309E9C9C-EBB0-5363-847F-31986B64A10A"><p>the entire message including attachments </p> </li> <li id="GUID-98BFABA1-3706-5DE4-8990-AC29E249FAB7"><p>partial body text where the body text size limit is specified </p> </li> <li id="GUID-887FD8E3-BDEC-50E9-AA4B-3619DFF9CFA4"><p>download attachments if the attachment size is less then or equal to attachment size limit </p> </li> </ul> <p>Messaging clients can access any part of the message for display to the user. Messages can be moved or copied within folders on the local device and, for IMAP4 only, within the mailbox as well. </p> <p>Email client MTMs provide APIs that allow configuration information, such as secure or non-secure TCP/IP connection, username, password and message limits to be stored on the local device. Email client MTMs can be commanded to stay online during a client session, or connect and disconnect only when necessary. Operations such as moving, deleting, or sending a message while not connected can be queued for execution when the next connection to the subscriber's mailbox is established. </p> <p> <b>Note:</b> Email client MTMs are not responsible for any graphical or user interface associated functionality, such as rendering HTML or images, although they do provide access to images and HTML downloaded to the local device. </p> <p>For each email account a pair of services entries is created in the Message Store. For a POP3 account there will be an SMTP service and a POP3 service. For an IMAP4 account there will be an SMTP service and an IMAP4 service. These entries are used to store the settings for the email transport. Each of the service entry has its related ID that is set to the other member of the pair. The SMTP service is invisible, so that the user only sees the POP3 or IMAP4 service entry. Copying a message to the SMTP service causes the SMTP server MTM to attempt to send the message. The POP3 and IMAP4 MTMs provide functionality to synchronise with a remote email server by using the client MTM interface through the <xref href="GUID-0BD3DB31-2F8B-36B1-AF55-22E649D56164.dita"><apiname>InvokeAsync</apiname></xref> API. </p> <fig id="GUID-6BA2DAFE-B804-5D65-B350-5638DB31A366"><title>
+             Email operation sequence diagram 
+          </title> <image href="GUID-6E2F23B0-4765-5E4E-9B15-9F1D0EC5C28B_d0e271965_href.jpg" placement="inline"/></fig> </section> <section><title>Components</title> <p>The Email collection constitutes the following components: </p> <ul><li id="GUID-EA99CD44-E4C6-5067-954C-363FD6841440"><p><xref href="GUID-AFF7DA70-E993-5943-A27A-266541922E2F.dita">IMAP4 MTM</xref>  </p> </li> <li id="GUID-DE41A457-509E-505A-8229-506AEA78F9B1"><p><xref href="GUID-EADCDE6F-127E-528C-B2E0-F13E5C7FD4EF.dita">POP3 MTM</xref> </p> </li> <li id="GUID-CC0575AC-F1BC-5983-B589-83C2D048B2AC"><p><xref href="GUID-3988C2DE-3FC5-5AF8-BB9F-499E7082F7D5.dita">SMTP MTM</xref>  </p> </li> </ul> </section> <section><title>Using Email</title> <p>Email client applications can use the following functionality provided by the Email collection to: </p> <ul><li id="GUID-9C57E57B-F5E7-5087-ABEA-16431C8E6919"><p>Store emails including MIME headers, RFC2822 headers, attachments, body text and encoding information in the Message Store. </p> </li> <li id="GUID-54CDD32C-FEFB-57D1-BEFD-50B30FD6A03E"><p>Manipulate email messages, for example, adding attachments and replying. </p> </li> <li id="GUID-9C3725B3-738F-540A-8E36-6482FDE15AEA"><p>Encapsulate the character converters, which are used to convert between standard character sets and Unicode. </p> </li> <li id="GUID-4D56BD8D-9B80-55B6-9EF7-DB9847E69459"><p>Store email settings in the central repository. </p> </li> <li id="GUID-68F54B38-09EF-5D9D-B844-930E33B38BE4"><p>Get progress information for email operations. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type Module</linktext> </link> <link href="GUID-8832AED4-6B9F-5B35-8211-0C6661CD6DCA.dita"><linktext>Email Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429704_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9BF177DF-9E59-5C30-95BA-70A8250579E0_d0e429866_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A" xml:lang="en"><title>Open
-C Producer Consumer Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>OpenCProducerConsumerEx is a hybrid application that depicts solution for
-producer consumer problem using Open C. This application uses main() as an
-entry point for the application. It uses <codeph>libc</codeph> and <codeph>libpthread</codeph> </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-14-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b9259541-c444-400a-8f6e-8daaa5381a79.zip" scope="external">opencproducerconsumerex.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b9259541-c444-400a-8f6e-8daaa5381a79.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-14-1-2-3"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example. </p> <p><b>Capabilities</b> </p> The program
-capability is defined in: <filepath>ProducerConsumer.mmp</filepath> (EXE -
-application):<codeph> CAPABILITY NONE</codeph>. <p><b>Implementation details
-of EXE</b> </p>This is a simple console based application. Main thread of
-the application will create a thread named as Producer that will produce the
-item and push it on to the stack. There will be N consumers which want to
-consume some N(i) items from the Producer. Producer will produce N items at
-a time and pushes them to the stack and totally it will produce sum(N(i))
-items. The consumer thread will try to pop items from the stack and each consumer
-will pop N(i) items from the stack. The application will create one thread
-for each consumer. Producer and all the consumer threads will be synchronized
-using a semaphore. The main thread, Producer and the consumer codes are pure
-C-code. the stack used by Producer and the consumer threads is Standard C++
-code. Apart from these threads, there is another thread named as Observer
-that is created using Symbian platform API. Producer and the consumers will
-establish a message queue with this thread and Observer will read message
-from all other threads and will log them to a file wich is opened/written
-using Symbian APIs. Hence, this application is a hybrid application with:
- <p>Standard C code -&gt; <filepath>Consumer.c</filepath>, <filepath>Producer.c</filepath>, <filepath>ProducerConsumer.c</filepath>, <filepath>CommanHeader.h</filepath> </p><p>Standard C++ code -&gt; <filepath>Stack.cpp</filepath>,<filepath>Stack.h</filepath>, <filepath>CommanHeader.h</filepath></p><p>Symbian
-platform code that uses <codeph>libc</codeph> APIs and Observer.cpp.</p><p> 
-The application has its own icon and can be launched from the UI both in the
-emulator and in the device. </p><p><b>API Usage</b></p><p><codeph>string APIs</codeph> </p><p><codeph>IPC
-APIs (message queue and semaphore)</codeph> </p><p> <codeph>Threading APIs
-(from pthread)</codeph> </p><p><codeph>console I/O APIs</codeph>  </p><p><codeph>File
-APIs of Symbian platform</codeph></p><p> <codeph>Threading APIs of Symbian
-platform</codeph></p></section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-14-1-2-4"><title>Building and
-Using</title> To build the OpenCProducerConsumerEx application, go to the
-OpenCProducerConsumerEx\group directory and build the application. The definition
-for the whole application can be found in the<filepath> bld.inf</filepath>in
-the group subdirectory of the applications main directory. <p>The application
-is simple console based application. It has its own default icon and can be
-launched from the UI both in the emulator and in the device. The application
-can be launched by: Executing OpenCProducerConsumerEx from eshell. Clicking
-default icon with display text OpenCProducerConsumerEx within the install
-folder launcher application. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9BFF0271-F5C3-45B6-AD4D-9179107F300A" xml:lang="en"><title>Open
+C Producer Consumer Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>OpenCProducerConsumerEx is a hybrid application that depicts solution for
+producer consumer problem using Open C. This application uses main() as an
+entry point for the application. It uses <codeph>libc</codeph> and <codeph>libpthread</codeph> </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-13-1-2-2"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-b9259541-c444-400a-8f6e-8daaa5381a79.zip" scope="external">opencproducerconsumerex.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-b9259541-c444-400a-8f6e-8daaa5381a79.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-13-1-2-3"><title>Design and
+Implementation</title> <p>The following sections provide information about
+the implementation of the example. </p> <p><b>Capabilities</b> </p> The program
+capability is defined in: <filepath>ProducerConsumer.mmp</filepath> (EXE -
+application):<codeph> CAPABILITY NONE</codeph>. <p><b>Implementation details
+of EXE</b> </p>This is a simple console based application. Main thread of
+the application will create a thread named as Producer that will produce the
+item and push it on to the stack. There will be N consumers which want to
+consume some N(i) items from the Producer. Producer will produce N items at
+a time and pushes them to the stack and totally it will produce sum(N(i))
+items. The consumer thread will try to pop items from the stack and each consumer
+will pop N(i) items from the stack. The application will create one thread
+for each consumer. Producer and all the consumer threads will be synchronized
+using a semaphore. The main thread, Producer and the consumer codes are pure
+C-code. the stack used by Producer and the consumer threads is Standard C++
+code. Apart from these threads, there is another thread named as Observer
+that is created using Symbian platform API. Producer and the consumers will
+establish a message queue with this thread and Observer will read message
+from all other threads and will log them to a file wich is opened/written
+using Symbian APIs. Hence, this application is a hybrid application with:
+ <p>Standard C code -&gt; <filepath>Consumer.c</filepath>, <filepath>Producer.c</filepath>, <filepath>ProducerConsumer.c</filepath>, <filepath>CommanHeader.h</filepath> </p><p>Standard C++ code -&gt; <filepath>Stack.cpp</filepath>,<filepath>Stack.h</filepath>, <filepath>CommanHeader.h</filepath></p><p>Symbian
+platform code that uses <codeph>libc</codeph> APIs and Observer.cpp.</p><p> 
+The application has its own icon and can be launched from the UI both in the
+emulator and in the device. </p><p><b>API Usage</b></p><p><codeph>string APIs</codeph> </p><p><codeph>IPC
+APIs (message queue and semaphore)</codeph> </p><p> <codeph>Threading APIs
+(from pthread)</codeph> </p><p><codeph>console I/O APIs</codeph>  </p><p><codeph>File
+APIs of Symbian platform</codeph></p><p> <codeph>Threading APIs of Symbian
+platform</codeph></p></section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-13-1-2-4"><title>Building and
+Using</title> To build the OpenCProducerConsumerEx application, go to the
+OpenCProducerConsumerEx\group directory and build the application. The definition
+for the whole application can be found in the<filepath> bld.inf</filepath>in
+the group subdirectory of the applications main directory. <p>The application
+is simple console based application. It has its own default icon and can be
+launched from the UI both in the emulator and in the device. The application
+can be launched by: Executing OpenCProducerConsumerEx from eshell. Clicking
+default icon with display text OpenCProducerConsumerEx within the install
+folder launcher application. </p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B"><title>Advanced Pointer Overview </title><shortdesc>This is an overview of the Window Server extensions that support the use of advanced pointers. These extensions enable mobile devices to respond to events from multiple pointers, including their proximity and pressure. These extensions are available only in ScreenPlay. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target audience</b>: Application developers. </p> <section id="GUID-773C3275-F562-5428-A34C-7D54F10D4BC1"><title>Architecture</title> <p>In response to multi-touch pointer movements, an input driver generates a pointer event for each touch. The Window Server changes and delivers the pointer events to the client application, as shown in the following diagram. </p> <fig id="GUID-4A02299F-8401-5761-863C-91F0338731DA"><title>
-             Pointer events 
-          </title> <image href="GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e196967_href.png" placement="inline"/></fig> <p>Pointer-related events move from the driver to the application. The <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>, <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref> and <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref> classes encapsulate the event information. </p> </section> <section><title>Key concepts/terms</title> <p>The following terms are introduced here and are used throughout the advanced pointer documentation: </p> <dl><dlentry><dt>Pointer</dt> <dd><p>A device that points at the screen, for example, a mouse, pen, finger, or touchpad. </p> </dd> </dlentry> <dlentry><dt>Multi-pointer support</dt> <dd><p>Handling more than one pointer at the same time. </p> </dd> </dlentry> <dlentry><dt>Proximity</dt> <dd><p>Proximity in this context means the distance of the pointer from the mobile device. Sensors detect the value of the proximity of the pointer from the mobile device. </p> </dd> </dlentry> <dlentry><dt>Pressure</dt> <dd><p>Pressure in this context is a value that indicates the force applied to the mobile device by the pointer. Sensors detect the value of the pressure of the pointer on the mobile device. </p> </dd> </dlentry> </dl> </section> <section><title>Logical model of pointing devices</title> <p>A logical model is used to handle all of the different pointing devices correctly. In this logical model, the pointer is <b>performing an action</b> when any of the following scenarios occur: </p> <ul><li id="GUID-3A57E7AE-A8FB-5C2B-AC54-4F60DDD35783"><p>An <codeph>EButton1Down</codeph> event is sent to the client. </p> </li> <li id="GUID-BBD5660A-2A72-5F14-9A28-D7F31761F963"><p> <codeph>EDrag</codeph> events are sent to the client (optional). </p> </li> <li id="GUID-54B774E8-6BD8-51EB-9854-9953F95AFBF5"><p>An <codeph>EButton1Up</codeph> event is sent to the client. </p> </li> </ul> <p>Pointing devices can be in one of the following states: </p> <table id="GUID-AAE663FE-E94F-556B-B635-93DDD6C27902"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>State</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <b>Out of range</b>  </p> </entry> <entry><p>Not detected by the device's sensors. </p> </entry> </row> <row><entry><p> <b>Up</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, not performing an action. </p> </entry> </row> <row><entry><p> <b>Down</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, performing an action (as defined above). </p> </entry> </row> </tbody> </tgroup> </table> <p>The mapping between these states and physical actions performed by the user vary for different pointing device types (mouse, finger) and different phone models. Here are two example interpretations of physical pointing device states: </p> <ul><li id="GUID-E01E8EC4-8535-5FD4-980E-214FC7542717"><p> <b>Mouse</b>. An example interpretation by a driver of the physical state of a mouse is as follows: It is always in the <i>up</i> state except when the left button is pressed, when it is in the <i>down</i> state. It is never out of range. </p> </li> <li id="GUID-7CC705BF-FC6C-534B-B00B-0C07A6B9A856"><p> <b>Fingers with proximity support</b>. The following is an example interpretation of finger physical states when the device has proximity support (that is, it can measure the finger's proximity from the screen): </p> <ul><li id="GUID-F4F27FC9-F4F3-5475-8DA5-771B804828CD"><p> <i>Out of range</i> when proximity &gt; 10cm </p> </li> <li id="GUID-0B8F3832-24C1-5421-A224-5FFFC6EBA3F4"><p> <i>Up</i> when 1cm &lt; proximity &lt;= 10cm </p> </li> <li id="GUID-CE65B2EC-AD8E-5B9D-A514-07EC73137518"><p> <i> Down</i> when proximity &lt;= 1cm </p> </li> </ul> <p>In this way the finger can perform actions (for example, press buttons, drag items) without touching the screen. </p> </li> </ul> </section> <section><title>Multiple pointers</title> <p>The system handles multiple pointers at the same time by identifying each one with a number and sending pointer events separately for each of them. A field (<codeph>iPointerNumber</codeph>) in the pointer event classes (<xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> and the <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref> class which extends <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>) identifies the pointer for which the event occurred. The order and frequency of pointer events depends on the driver of the pointing device. </p> <p>On each phone there is a pool of available pointer numbers, ranging from 0 to <codeph>HALData::EPointerNumberOfPointers</codeph> - 1. Every time the driver detects a new pointer coming into the range of the device, the driver assigns a number from the pool. After the pointer goes out of the range of the device, the number no longer identifies that particular pointer and the driver sends <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> with this pointer number. The number is then released back to the pool and may be reused to identify another pointer coming into the device's range. </p> </section> <section><title>Pressure and proximity</title> <p>The pressure of the pointer on the screen is represented as a positive integer. The proximity of the pointer to the screen is represented as a negative integer. It is up to the UI Platform to define units of pressure and proximity, which may be non-linear. In the <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> class, pressure and proximity are expressed in terms of the Z coordinate of the pointer. The definition of the Z coordinate is based on the assumption that the pointer is either hovering over the screen (proximity &lt; 0, pressure = 0) or touching the screen (proximity = 0, pressure &gt;= 0): </p> <ul><li id="GUID-21CB6F60-3076-5EBE-9900-D870C670FE5B"><p>If proximity &lt; 0 and pressure = 0 then the Z coordinate = proximity. </p> </li> <li id="GUID-B5EA992D-4F86-54E1-A64C-673691460945"><p>If proximity = 0 and pressure &gt;= 0 then the Z coordinate = pressure. </p> </li> </ul> <fig id="GUID-FCE3CEAF-CCF3-5472-AC15-5DF5F092AA5E"><title>
-             Relationships between the pointer proximity, pressure and z
-             coordinate 
-          </title> <image href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e197254_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <table id="GUID-07002499-484E-500E-AC57-4089AB0197E8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita"><apiname>HALData</apiname></xref>  </p> </entry> <entry><p>Includes z coordinate, pressure precision and number of pointers. Also contains threshold values for proximity and pressure. </p> </entry> </row> <row><entry><p> <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>  </p> </entry> <entry><p>Includes the pointer number and a structure for proximity and pressure data. </p> </entry> </row> <row><entry><p> <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>  </p> </entry> <entry><p>Enables advanced pointer events for the window. </p> </entry> </row> <row><entry><p> <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref>  </p> </entry> <entry><p>Supports <codeph>TAdvancedPointerEvent</codeph> (derived from <codeph>TPointerEvent)</codeph>. </p> </entry> </row> <row><entry><p> <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>  </p> </entry> <entry><p>Includes event types for pressing and closeness. </p> </entry> </row> <row><entry><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref>  </p> </entry> <entry><p>Inherits from <codeph>TPointerEvent</codeph>. </p> <p>Provides capabilities for pressure, proximity and multi-touch support. </p> </entry> </row> <row><entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>  </p> </entry> <entry><p>Provides get and set methods to manipulate threshold values for proximity and pressure. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <ul><li id="GUID-CA055058-AAD6-5A89-BC7E-7B5E81FA8963"><p> <b>Enabling many pointers for a window</b>  </p> <p>Enables multiple pointers to act on one window. </p> </li> <li id="GUID-DBD49B85-207D-5722-8AE3-B00946899559"><p> <b>Enabling concurrent control of many objects</b>  </p> <p>Controls many objects on one or more windows with many pointers. </p> </li> <li id="GUID-AF442CD4-FDEC-5FF4-B8F9-6ED8CDB9E957"><p> <b>Getting z coordinates from TPointerEvent</b>  </p> <p>Reads the pressure and proximity values for a pointer. </p> </li> <li id="GUID-13E0E5DA-609A-52B3-A90A-9A84C3A8BF22"><p> <b>Pinch zooming</b>  </p> <p>Enables the user to zoom in and out of data by using two fingers to pinch an area of the screen. Pinch zooming is normally used in web-page, map, picture, chart and control applications. </p> </li> <li id="GUID-C038F18F-94DE-5391-A1F8-BEF83274D143"><p> <b>Responding to high pressure events</b>  </p> <p>As the pointer state changes, the pressure value can be checked. When it passes over a threshold value, the Window Server responds appropriately to the client. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext>Pointer States and Event
-                Communication</linktext> </link> <link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext>Advanced Pointer
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B"><title>Advanced Pointer Overview </title><shortdesc>This is an overview of the Window Server extensions that support the use of advanced pointers. These extensions enable mobile devices to respond to events from multiple pointers, including their proximity and pressure. These extensions are available only in ScreenPlay. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target audience</b>: Application developers. </p> <section id="GUID-773C3275-F562-5428-A34C-7D54F10D4BC1"><title>Architecture</title> <p>In response to multi-touch pointer movements, an input driver generates a pointer event for each touch. The Window Server changes and delivers the pointer events to the client application, as shown in the following diagram. </p> <fig id="GUID-4A02299F-8401-5761-863C-91F0338731DA"><title>
+             Pointer events 
+          </title> <image href="GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e191959_href.png" placement="inline"/></fig> <p>Pointer-related events move from the driver to the application. The <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>, <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref> and <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref> classes encapsulate the event information. </p> </section> <section><title>Key concepts/terms</title> <p>The following terms are introduced here and are used throughout the advanced pointer documentation: </p> <dl><dlentry><dt>Pointer</dt> <dd><p>A device that points at the screen, for example, a mouse, pen, finger, or touchpad. </p> </dd> </dlentry> <dlentry><dt>Multi-pointer support</dt> <dd><p>Handling more than one pointer at the same time. </p> </dd> </dlentry> <dlentry><dt>Proximity</dt> <dd><p>Proximity in this context means the distance of the pointer from the mobile device. Sensors detect the value of the proximity of the pointer from the mobile device. </p> </dd> </dlentry> <dlentry><dt>Pressure</dt> <dd><p>Pressure in this context is a value that indicates the force applied to the mobile device by the pointer. Sensors detect the value of the pressure of the pointer on the mobile device. </p> </dd> </dlentry> </dl> </section> <section><title>Logical model of pointing devices</title> <p>A logical model is used to handle all of the different pointing devices correctly. In this logical model, the pointer is <b>performing an action</b> when any of the following scenarios occur: </p> <ul><li id="GUID-3A57E7AE-A8FB-5C2B-AC54-4F60DDD35783"><p>An <codeph>EButton1Down</codeph> event is sent to the client. </p> </li> <li id="GUID-BBD5660A-2A72-5F14-9A28-D7F31761F963"><p> <codeph>EDrag</codeph> events are sent to the client (optional). </p> </li> <li id="GUID-54B774E8-6BD8-51EB-9854-9953F95AFBF5"><p>An <codeph>EButton1Up</codeph> event is sent to the client. </p> </li> </ul> <p>Pointing devices can be in one of the following states: </p> <table id="GUID-AAE663FE-E94F-556B-B635-93DDD6C27902"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>State</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <b>Out of range</b>  </p> </entry> <entry><p>Not detected by the device's sensors. </p> </entry> </row> <row><entry><p> <b>Up</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, not performing an action. </p> </entry> </row> <row><entry><p> <b>Down</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, performing an action (as defined above). </p> </entry> </row> </tbody> </tgroup> </table> <p>The mapping between these states and physical actions performed by the user vary for different pointing device types (mouse, finger) and different phone models. Here are two example interpretations of physical pointing device states: </p> <ul><li id="GUID-E01E8EC4-8535-5FD4-980E-214FC7542717"><p> <b>Mouse</b>. An example interpretation by a driver of the physical state of a mouse is as follows: It is always in the <i>up</i> state except when the left button is pressed, when it is in the <i>down</i> state. It is never out of range. </p> </li> <li id="GUID-7CC705BF-FC6C-534B-B00B-0C07A6B9A856"><p> <b>Fingers with proximity support</b>. The following is an example interpretation of finger physical states when the device has proximity support (that is, it can measure the finger's proximity from the screen): </p> <ul><li id="GUID-F4F27FC9-F4F3-5475-8DA5-771B804828CD"><p> <i>Out of range</i> when proximity &gt; 10cm </p> </li> <li id="GUID-0B8F3832-24C1-5421-A224-5FFFC6EBA3F4"><p> <i>Up</i> when 1cm &lt; proximity &lt;= 10cm </p> </li> <li id="GUID-CE65B2EC-AD8E-5B9D-A514-07EC73137518"><p> <i> Down</i> when proximity &lt;= 1cm </p> </li> </ul> <p>In this way the finger can perform actions (for example, press buttons, drag items) without touching the screen. </p> </li> </ul> </section> <section><title>Multiple pointers</title> <p>The system handles multiple pointers at the same time by identifying each one with a number and sending pointer events separately for each of them. A field (<codeph>iPointerNumber</codeph>) in the pointer event classes (<xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> and the <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref> class which extends <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>) identifies the pointer for which the event occurred. The order and frequency of pointer events depends on the driver of the pointing device. </p> <p>On each phone there is a pool of available pointer numbers, ranging from 0 to <codeph>HALData::EPointerNumberOfPointers</codeph> - 1. Every time the driver detects a new pointer coming into the range of the device, the driver assigns a number from the pool. After the pointer goes out of the range of the device, the number no longer identifies that particular pointer and the driver sends <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> with this pointer number. The number is then released back to the pool and may be reused to identify another pointer coming into the device's range. </p> </section> <section><title>Pressure and proximity</title> <p>The pressure of the pointer on the screen is represented as a positive integer. The proximity of the pointer to the screen is represented as a negative integer. It is up to the UI Platform to define units of pressure and proximity, which may be non-linear. In the <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> class, pressure and proximity are expressed in terms of the Z coordinate of the pointer. The definition of the Z coordinate is based on the assumption that the pointer is either hovering over the screen (proximity &lt; 0, pressure = 0) or touching the screen (proximity = 0, pressure &gt;= 0): </p> <ul><li id="GUID-21CB6F60-3076-5EBE-9900-D870C670FE5B"><p>If proximity &lt; 0 and pressure = 0 then the Z coordinate = proximity. </p> </li> <li id="GUID-B5EA992D-4F86-54E1-A64C-673691460945"><p>If proximity = 0 and pressure &gt;= 0 then the Z coordinate = pressure. </p> </li> </ul> <fig id="GUID-FCE3CEAF-CCF3-5472-AC15-5DF5F092AA5E"><title>
+             Relationships between the pointer proximity, pressure and z
+             coordinate 
+          </title> <image href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e192246_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <table id="GUID-07002499-484E-500E-AC57-4089AB0197E8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita"><apiname>HALData</apiname></xref>  </p> </entry> <entry><p>Includes z coordinate, pressure precision and number of pointers. Also contains threshold values for proximity and pressure. </p> </entry> </row> <row><entry><p> <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>  </p> </entry> <entry><p>Includes the pointer number and a structure for proximity and pressure data. </p> </entry> </row> <row><entry><p> <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>  </p> </entry> <entry><p>Enables advanced pointer events for the window. </p> </entry> </row> <row><entry><p> <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref>  </p> </entry> <entry><p>Supports <codeph>TAdvancedPointerEvent</codeph> (derived from <codeph>TPointerEvent)</codeph>. </p> </entry> </row> <row><entry><p> <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>  </p> </entry> <entry><p>Includes event types for pressing and closeness. </p> </entry> </row> <row><entry><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref>  </p> </entry> <entry><p>Inherits from <codeph>TPointerEvent</codeph>. </p> <p>Provides capabilities for pressure, proximity and multi-touch support. </p> </entry> </row> <row><entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>  </p> </entry> <entry><p>Provides get and set methods to manipulate threshold values for proximity and pressure. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <ul><li id="GUID-CA055058-AAD6-5A89-BC7E-7B5E81FA8963"><p> <b>Enabling many pointers for a window</b>  </p> <p>Enables multiple pointers to act on one window. </p> </li> <li id="GUID-DBD49B85-207D-5722-8AE3-B00946899559"><p> <b>Enabling concurrent control of many objects</b>  </p> <p>Controls many objects on one or more windows with many pointers. </p> </li> <li id="GUID-AF442CD4-FDEC-5FF4-B8F9-6ED8CDB9E957"><p> <b>Getting z coordinates from TPointerEvent</b>  </p> <p>Reads the pressure and proximity values for a pointer. </p> </li> <li id="GUID-13E0E5DA-609A-52B3-A90A-9A84C3A8BF22"><p> <b>Pinch zooming</b>  </p> <p>Enables the user to zoom in and out of data by using two fingers to pinch an area of the screen. Pinch zooming is normally used in web-page, map, picture, chart and control applications. </p> </li> <li id="GUID-C038F18F-94DE-5391-A1F8-BEF83274D143"><p> <b>Responding to high pressure events</b>  </p> <p>As the pointer state changes, the pressure value can be checked. When it passes over a threshold value, the Window Server responds appropriately to the client. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext>Pointer States and Event
+                Communication</linktext> </link> <link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext>Advanced Pointer
                 Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230"><title>Descriptors</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Descriptors are the classes that Symbian platform C++ uses to manage strings. They are fundamental to the Symbian platform, and an excellent example of the difference of approach between non-OO and OO designs. </p> <section><title>Overview</title> <p>In C, a string such as </p> <codeblock id="GUID-D12A339F-7ADE-5BDE-A8B3-59AB67E2BD8B" xml:space="preserve">char* hello="hello";</codeblock> <p>causes some memory to be set aside containing the six characters 'h', 'e', 'l', 'l', 'o', '\0'. A function such as <codeph>strlen()</codeph> works by scanning the bytes starting from the beginning, and counting until it reaches the trailing null character. If you wish to extend the string, you need to know how much memory is allocated to it. </p> <p>In Symbian platform C++ however, strings are managed using a family of classes called descriptors. The abstract descriptor classes define common interfaces for all descriptor classes. Buffer, pointer, and heap descriptor classes provide implementations of the abstract descriptor interfaces, and provide different methods of storing the data. </p> </section> <section><title>Abstract descriptors</title> <p>We can represent the basic requirements for strings by two abstract classes: <codeph>TDesC</codeph> and <codeph>TDes</codeph>. </p> <p> <codeph>TDesC</codeph> is a constant, or non-modifiable, descriptor. It has an address and a length. Using a class like this, you can do any manipulations to a string, provided they do not alter the data. As a consequence, the <codeph>TDesC</codeph> class has many non-modifying functions. </p> <p> <codeph>TDes</codeph> is a modifiable descriptor: it has, in addition, a maximum length. This allows the data to be manipulated, extended or contracted, provided it does not exceed the maximum length. As a consequence, <codeph>TDes</codeph> has many modifying functions which allow string manipulation. </p> <p>It is a fundamental aspect of descriptors that they do not allow modification to exceed the allocated length. Other classes are provided to allow this, for instance <codeph>CBufBase</codeph> and derived classes. If a <codeph>TDes</codeph> function causes overflow, a panic will occur. </p> <p>Because <codeph>TDesC</codeph> and <codeph>TDes</codeph> define all the functions needed to access and manipulate string and memory data, many functions take a <codeph>const TDesC&amp;</codeph> parameter if they need to access data, or a <codeph>TDes&amp;</codeph> parameter if they need to modify it. </p> </section> <section><title>Pointer descriptor</title> <p>The abstract descriptor classes have several implementations. The simplest are pointer descriptors. </p> <p> <codeph>TPtrC</codeph> just has length and address: its representation needs just two machine words. A <codeph>TPtrC</codeph> may be set up to describe any existing data. A <codeph>TPtr</codeph> adds a maximum length, and so may be used to describe a buffer which is perhaps only partially allocated. </p> <fig id="GUID-07AAB2BD-6645-5E19-A69D-C7BDD770FBF6"><image href="GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e7010_href.png" placement="inline"/></fig> <p> <codeph>TPtrC</codeph> and <codeph>TPtr</codeph> are somewhat like C <codeph>char*</codeph> pointers. But because the length is contained in the descriptor itself, there is no need to scan for trailing null characters, or to allocate room for them. </p> </section> <section><title>Buffer descriptors</title> <p>Buffer descriptors, <codeph>TBufC</codeph> and <codeph>TBuf</codeph>, contain their data as part of themselves, like <codeph>char[]</codeph> arrays in C. </p> <fig id="GUID-2D00C669-3E47-5352-9730-73035D059B15"><image href="GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e7042_href.png" placement="inline"/></fig> <p>These descriptor classes exploit C++'s template mechanism, using an integer parameter to specify the length. </p> </section> <section><title>Heap descriptors</title> <p>Heap descriptors contain their data in heap cell. These are used when you do not know the length required for a buffer at build time, but decide it at run-time. This is like <codeph>(char*) malloc(length+1)</codeph> in C. </p> <p>The non-modifiable heap descriptor type, <codeph>HBufC</codeph>, is allocated on the heap. They are always referred to through an <codeph>HBufC*</codeph>, rather than an <codeph>HBufC</codeph> directly: </p> <fig id="GUID-C2909A73-C585-5A0B-B0B8-15BBB05EBCAE"><image href="GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e7071_href.png" placement="inline"/></fig> <p>The modifiable heap descriptor type, <codeph>RBuf</codeph>, can be created on the stack, but contains a pointer to data on the heap. This is similar to a <codeph>TPtr</codeph> pointer descriptor, but an <codeph>RBuf</codeph> owns the data that it points to, and is responsible for freeing the memory when it is closed. An <codeph>RBuf</codeph> object can allocate its own buffer, take ownership of a pre-existing section of allocated memory, or take ownership of a pre-existing heap descriptor. </p> <fig id="GUID-084AC324-8928-53FE-8CF5-75A544522AD8"><image href="GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e7089_href.png" placement="inline"/></fig> <p> <codeph>RBuf</codeph> is easier to use than <codeph>HBufC</codeph>, so should generally be preferred. <codeph>RBuf</codeph> was only introduced in version 8.0, however, so older code and APIs use <codeph>HBufC</codeph>. </p> </section> <section><title>Descriptor classes</title> <p>The complete descriptor class hierarchy is </p> <fig id="GUID-9FA30B6B-12C7-58CB-92B6-684053EE9FCD"><image href="GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e7115_href.png" placement="inline"/></fig> <p>It represents an elegant use of OO. The <codeph>TBufCBase</codeph> class is used as an implementation convenience, which is also a frequent OO idiom (though it should be used with caution). </p> <p>Versions of the descriptors classes are available that store 16-bit or 8-bit wide items. When using descriptors for strings, you should always use classes such as <codeph>TDes</codeph> etc. These classes are <codeph>typedef</codeph> ed to use the 16-bit implementations, such as <codeph>TDes16</codeph> etc. </p> <p>Because descriptors may contain any data, including nulls, they may also be used to refer to byte data and general buffers. In these contexts, you should use the 8-bit implementations, such as <codeph>TDes8</codeph>, directly. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9C51D27D-BEDB-59D1-8F0E-8426B8FF2230"><title>Descriptors</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Descriptors are the classes that Symbian platform C++ uses to manage strings. They are fundamental to the Symbian platform, and an excellent example of the difference of approach between non-OO and OO designs. </p> <section><title>Overview</title> <p>In C, a string such as </p> <codeblock id="GUID-D12A339F-7ADE-5BDE-A8B3-59AB67E2BD8B" xml:space="preserve">char* hello="hello";</codeblock> <p>causes some memory to be set aside containing the six characters 'h', 'e', 'l', 'l', 'o', '\0'. A function such as <codeph>strlen()</codeph> works by scanning the bytes starting from the beginning, and counting until it reaches the trailing null character. If you wish to extend the string, you need to know how much memory is allocated to it. </p> <p>In Symbian platform C++ however, strings are managed using a family of classes called descriptors. The abstract descriptor classes define common interfaces for all descriptor classes. Buffer, pointer, and heap descriptor classes provide implementations of the abstract descriptor interfaces, and provide different methods of storing the data. </p> </section> <section><title>Abstract descriptors</title> <p>We can represent the basic requirements for strings by two abstract classes: <codeph>TDesC</codeph> and <codeph>TDes</codeph>. </p> <p> <codeph>TDesC</codeph> is a constant, or non-modifiable, descriptor. It has an address and a length. Using a class like this, you can do any manipulations to a string, provided they do not alter the data. As a consequence, the <codeph>TDesC</codeph> class has many non-modifying functions. </p> <p> <codeph>TDes</codeph> is a modifiable descriptor: it has, in addition, a maximum length. This allows the data to be manipulated, extended or contracted, provided it does not exceed the maximum length. As a consequence, <codeph>TDes</codeph> has many modifying functions which allow string manipulation. </p> <p>It is a fundamental aspect of descriptors that they do not allow modification to exceed the allocated length. Other classes are provided to allow this, for instance <codeph>CBufBase</codeph> and derived classes. If a <codeph>TDes</codeph> function causes overflow, a panic will occur. </p> <p>Because <codeph>TDesC</codeph> and <codeph>TDes</codeph> define all the functions needed to access and manipulate string and memory data, many functions take a <codeph>const TDesC&amp;</codeph> parameter if they need to access data, or a <codeph>TDes&amp;</codeph> parameter if they need to modify it. </p> </section> <section><title>Pointer descriptor</title> <p>The abstract descriptor classes have several implementations. The simplest are pointer descriptors. </p> <p> <codeph>TPtrC</codeph> just has length and address: its representation needs just two machine words. A <codeph>TPtrC</codeph> may be set up to describe any existing data. A <codeph>TPtr</codeph> adds a maximum length, and so may be used to describe a buffer which is perhaps only partially allocated. </p> <fig id="GUID-07AAB2BD-6645-5E19-A69D-C7BDD770FBF6"><image href="GUID-0268102D-D238-5C5E-818F-6ACC4A85B022_d0e8285_href.png" placement="inline"/></fig> <p> <codeph>TPtrC</codeph> and <codeph>TPtr</codeph> are somewhat like C <codeph>char*</codeph> pointers. But because the length is contained in the descriptor itself, there is no need to scan for trailing null characters, or to allocate room for them. </p> </section> <section><title>Buffer descriptors</title> <p>Buffer descriptors, <codeph>TBufC</codeph> and <codeph>TBuf</codeph>, contain their data as part of themselves, like <codeph>char[]</codeph> arrays in C. </p> <fig id="GUID-2D00C669-3E47-5352-9730-73035D059B15"><image href="GUID-356B54BB-E389-5562-A2D9-80A472EAC9A3_d0e8317_href.png" placement="inline"/></fig> <p>These descriptor classes exploit C++'s template mechanism, using an integer parameter to specify the length. </p> </section> <section><title>Heap descriptors</title> <p>Heap descriptors contain their data in heap cell. These are used when you do not know the length required for a buffer at build time, but decide it at run-time. This is like <codeph>(char*) malloc(length+1)</codeph> in C. </p> <p>The non-modifiable heap descriptor type, <codeph>HBufC</codeph>, is allocated on the heap. They are always referred to through an <codeph>HBufC*</codeph>, rather than an <codeph>HBufC</codeph> directly: </p> <fig id="GUID-C2909A73-C585-5A0B-B0B8-15BBB05EBCAE"><image href="GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e8346_href.png" placement="inline"/></fig> <p>The modifiable heap descriptor type, <codeph>RBuf</codeph>, can be created on the stack, but contains a pointer to data on the heap. This is similar to a <codeph>TPtr</codeph> pointer descriptor, but an <codeph>RBuf</codeph> owns the data that it points to, and is responsible for freeing the memory when it is closed. An <codeph>RBuf</codeph> object can allocate its own buffer, take ownership of a pre-existing section of allocated memory, or take ownership of a pre-existing heap descriptor. </p> <fig id="GUID-084AC324-8928-53FE-8CF5-75A544522AD8"><image href="GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e8364_href.png" placement="inline"/></fig> <p> <codeph>RBuf</codeph> is easier to use than <codeph>HBufC</codeph>, so should generally be preferred. <codeph>RBuf</codeph> was only introduced in version 8.0, however, so older code and APIs use <codeph>HBufC</codeph>. </p> </section> <section><title>Descriptor classes</title> <p>The complete descriptor class hierarchy is </p> <fig id="GUID-9FA30B6B-12C7-58CB-92B6-684053EE9FCD"><image href="GUID-7E7BCC57-E14F-56A4-B948-B9FB9E7AB598_d0e8390_href.png" placement="inline"/></fig> <p>It represents an elegant use of OO. The <codeph>TBufCBase</codeph> class is used as an implementation convenience, which is also a frequent OO idiom (though it should be used with caution). </p> <p>Versions of the descriptors classes are available that store 16-bit or 8-bit wide items. When using descriptors for strings, you should always use classes such as <codeph>TDes</codeph> etc. These classes are <codeph>typedef</codeph> ed to use the 16-bit implementations, such as <codeph>TDes16</codeph> etc. </p> <p>Because descriptors may contain any data, including nulls, they may also be used to refer to byte data and general buffers. In these contexts, you should use the 8-bit implementations, such as <codeph>TDes8</codeph>, directly. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1" xml:lang="en"><title>Resource
-compiler tool: rcomp</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1-2-1"><title>Purpose</title> <p>The
-resource compiler, <filepath>rcomp</filepath>, compiles source <filepath>rss</filepath> resource
-files into a <filepath>rsc</filepath> resource data file which can be used
-by applications, and a <filepath>rsg</filepath> resource header file. The
-operation of the resource compiler is usually wrapped in an <filepath>abld</filepath> batch
-file. That provides the most commonly used <filepath>rcomp</filepath> functionality,
-but does not provide some of the debugging options available directly through <filepath>rcomp</filepath>. </p><p><b>Note</b>:
-From Symbian^4 onwards, <filepath>rcomp</filepath> supports long strings and
-supplementary characters (not included in code point range of BMP) of the
-range <codeph>0x10000</codeph> to <codeph>0x10ffff</codeph> in rss files.</p> </section>
-<section id="GUID-C8BD2B09-0D01-4CE3-B575-0A076F1E926D"><title>Command line syntax</title><userinput>rcomp [—v] [—p] [—l]
-[—force] [—u] [—o <varname>DataOutputFile</varname>] [-{<varname>uid2</varname>,<varname>uid3</varname> }]
-[—h <varname>HeaderOutputFile</varname>] [—s <varname>SourceFileName</varname>]
-[—i <varname>BaseInputFileName</varname>]</userinput> <p><b>Arguments</b> </p> <table id="GUID-787D72D2-564C-569A-B7C4-B244DD46C87E">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <codeph>-v</codeph>  </p> </entry>
-<entry><p>verbose output. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-p</codeph>  </p> </entry>
-<entry><p>parser debugging </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-l</codeph>  </p> </entry>
-<entry><p>Check localisation comments </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-force</codeph>  </p> </entry>
-<entry><p>Emit warnings if the localisation comment tags are not present </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-u</codeph>  </p> </entry>
-<entry><p>generate Unicode resource binary </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-o</codeph>  <varname>DataOutputFile</varname>  </p> </entry>
-<entry><p>Specify full path and name for data output file <varname>DataOutputFile</varname>.
-If this is not specified, no data output file is created. </p> </entry>
-</row>
-<row>
-<entry><p>[-{<varname>uid2</varname>,<varname>uid3</varname> }] </p> </entry>
-<entry><p>Second and third UIDs for the resource file </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-h</codeph>  <varname>HeaderOutputFile</varname>  </p> </entry>
-<entry><p>Specify header output file <varname>HeaderOutputFile</varname>;
-this is the name only, and does not include the path. If this is not specified,
-no header output file is created. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-s</codeph>  <varname>SourceFileName</varname>  </p> </entry>
-<entry><p>Specify resource compiler source file <varname>SourceFileName</varname> (output
-of pre-processor <varname>BaseInputFileName</varname>.rpp). If not specified,
-or specified as <codeph>-s-</codeph>, source is read from the standard input. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>-i</codeph>  <varname>BaseInputFileName</varname>  </p> </entry>
-<entry><p>The file given to the pre-processor </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Output files</b> </p> <table id="GUID-2CF9D84F-B657-56FF-8AB3-DF14CE693ED5">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <varname>DataOutputFile</varname>  </p> </entry>
-<entry><p>The resource data referred to by the application at run-time. Note
-that the generated file can have any name. However, before the resource file
-can be used it must be renamed to have an extension <filepath>.rsc</filepath>. </p> </entry>
-</row>
-<row>
-<entry><p> <varname>HeaderOutputFile</varname>  </p> </entry>
-<entry><p>The generated header file, which contains <codeph>#define</codeph> statements
-for each resource defined in the source file. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1" xml:lang="en"><title>Resource
+compiler tool: rcomp</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1-2-1"><title>Purpose</title> <p>The
+resource compiler, <filepath>rcomp</filepath>, compiles source <filepath>rss</filepath> resource
+files into a <filepath>rsc</filepath> resource data file which can be used
+by applications, and a <filepath>rsg</filepath> resource header file. The
+operation of the resource compiler is usually wrapped in an <filepath>abld</filepath> batch
+file. That provides the most commonly used <filepath>rcomp</filepath> functionality,
+but does not provide some of the debugging options available directly through <filepath>rcomp</filepath>. </p><p><b>Note</b>:
+From Symbian^4 onwards, <filepath>rcomp</filepath> supports long strings and
+supplementary characters (not included in code point range of BMP) of the
+range <codeph>0x10000</codeph> to <codeph>0x10ffff</codeph> in rss files.</p> </section>
+<section id="GUID-C8BD2B09-0D01-4CE3-B575-0A076F1E926D"><title>Command line syntax</title><userinput>rcomp [—v] [—p] [—l]
+[—force] [—u] [—o <varname>DataOutputFile</varname>] [-{<varname>uid2</varname>,<varname>uid3</varname> }]
+[—h <varname>HeaderOutputFile</varname>] [—s <varname>SourceFileName</varname>]
+[—i <varname>BaseInputFileName</varname>]</userinput> <p><b>Arguments</b> </p> <table id="GUID-787D72D2-564C-569A-B7C4-B244DD46C87E">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <codeph>-v</codeph>  </p> </entry>
+<entry><p>verbose output. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-p</codeph>  </p> </entry>
+<entry><p>parser debugging </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-l</codeph>  </p> </entry>
+<entry><p>Check localisation comments </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-force</codeph>  </p> </entry>
+<entry><p>Emit warnings if the localisation comment tags are not present </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-u</codeph>  </p> </entry>
+<entry><p>generate Unicode resource binary </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-o</codeph>  <varname>DataOutputFile</varname>  </p> </entry>
+<entry><p>Specify full path and name for data output file <varname>DataOutputFile</varname>.
+If this is not specified, no data output file is created. </p> </entry>
+</row>
+<row>
+<entry><p>[-{<varname>uid2</varname>,<varname>uid3</varname> }] </p> </entry>
+<entry><p>Second and third UIDs for the resource file </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-h</codeph>  <varname>HeaderOutputFile</varname>  </p> </entry>
+<entry><p>Specify header output file <varname>HeaderOutputFile</varname>;
+this is the name only, and does not include the path. If this is not specified,
+no header output file is created. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-s</codeph>  <varname>SourceFileName</varname>  </p> </entry>
+<entry><p>Specify resource compiler source file <varname>SourceFileName</varname> (output
+of pre-processor <varname>BaseInputFileName</varname>.rpp). If not specified,
+or specified as <codeph>-s-</codeph>, source is read from the standard input. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>-i</codeph>  <varname>BaseInputFileName</varname>  </p> </entry>
+<entry><p>The file given to the pre-processor </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Output files</b> </p> <table id="GUID-2CF9D84F-B657-56FF-8AB3-DF14CE693ED5">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <varname>DataOutputFile</varname>  </p> </entry>
+<entry><p>The resource data referred to by the application at run-time. Note
+that the generated file can have any name. However, before the resource file
+can be used it must be renamed to have an extension <filepath>.rsc</filepath>. </p> </entry>
+</row>
+<row>
+<entry><p> <varname>HeaderOutputFile</varname>  </p> </entry>
+<entry><p>The generated header file, which contains <codeph>#define</codeph> statements
+for each resource defined in the source file. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e376410_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9C837724-B00E-58F4-8B71-53ECDBFF5CCE_d0e382477_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9C848E60-DD02-4787-90F3-1857AC3C3D1A_d0e68886_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e262298_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e266006_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e264555_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e268263_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,198 +1,198 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B" xml:lang="en"><title>How
-to construct and manipulate a singly linked list</title><shortdesc>Code fragments showing how to create a singly linked list and how
-to manipulate the list and the elements of the list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following code fragments show how a singly linked list can be constructed
-and manipulated. The list consists of instances of an example class, <codeph>CItem</codeph>,
-which forms items on a stack implemented as a singly linked list using the <codeph>iSlink</codeph> data
-member as the link object. In this example, a <codeph>CItem</codeph> object
-can contain an item of text implemented as an <codeph>HBufC</codeph>.</p>
-<p>The class is declared as:</p>
-<codeblock id="GUID-EF742BDF-7292-51DF-B7D4-6219D9CDFFCE" xml:space="preserve">class CItem : public CBase
-    {
-public  :
-    static CItem* NewL(const TDesC&amp; aText);
-    static CItem* NewLC(const TDesC&amp; aText); 
-                  CItem();
-    virtual       ~CItem();
-    const HBufC*  GetText(); 
-public  :        
-    static const  TInt iOffset;
-private :
-    void          ConstructL(const TDesC&amp; aText);
-private :    
-    TSglQueLink   iSlink;
-    HBufC*        iText;
-    friend  class CStack;
-    };</codeblock>
-<p>The <codeph>CItem</codeph> member functions are implemented as:</p>
-<codeblock id="GUID-2B4A1C64-7C4C-5950-93F0-2A80A0AEF343" xml:space="preserve">const TInt CItem::iOffset = _FOFF(CItem,iSlink);</codeblock>
-<codeblock id="GUID-67788B52-9B64-556B-B4BF-D940C49B2E3E" xml:space="preserve">CItem* CItem::NewLC(const TDesC&amp; aText)
-    {
-    CItem* self = new (ELeave) CItem();
-    CleanupStack::PushL(self);
-    self-&gt;ConstructL(aText);
-    return self;
-    }</codeblock>
-<codeblock id="GUID-5CC6AD98-E877-5699-9BAC-14DE0A4413E2" xml:space="preserve">CItem* CItem::NewL(const TDesC&amp; aText)
-    {
-    CItem* self = CItem::NewLC(aText);
-    CleanupStack::Pop();
-    return self;
-    }</codeblock>
-<codeblock id="GUID-14D5FB76-1FC9-5D7D-A35C-9AC87222DA64" xml:space="preserve">void CItem::ConstructL(const TDesC&amp; aText)
-    {
-    iText    = aText.AllocL();
-    }</codeblock>
-<codeblock id="GUID-44FB4D1A-D567-5181-B425-D988BF364A55" xml:space="preserve">CItem::CItem()
-    {}</codeblock>
-<codeblock id="GUID-DF4603B2-56E0-5CC1-8920-27C04FCE2899" xml:space="preserve">CItem::~CItem()
-    {
-    delete iText;
-    }</codeblock>
-<codeblock id="GUID-E306FFA8-9A93-5047-9999-A36DE087D9BF" xml:space="preserve">const HBufC* CItem::GetText()
-    {
-    return (iText);
-    }
-</codeblock>
-<p>As part of the construction process, a <codeph>CItem</codeph> constructs
-an <codeph>HBufC</codeph> of the correct length and copies the content of
-the descriptor parameter into it.</p>
-<p>The stack is implemented by an instance of the example class <codeph>CStack</codeph>.
-This maintains the stack by adding <codeph>CItem</codeph> objects onto the
-end of the list and removing them from the end of the list. When removing
-them from the end of the list, a pointer to the removed <codeph>CItem</codeph> object
-is returned.</p>
-<p>In this example, the list header, <codeph>iStack</codeph>, and the iterator, <codeph>iStackIter</codeph>,
-are declared as data members of the class and are constructed when the <codeph>CStack</codeph> object
-is constructed. A C++ constructor must be supplied so that <codeph>iStackIter</codeph> can
-be constructed. (<codeph>TSglQueIter</codeph> has no default constructor).</p>
-<p><codeph>AddToStack()</codeph> takes a <codeph>CItem</codeph> object and
-adds it to the end of the singly linked list.</p>
-<p><codeph>RemoveFromStack()</codeph> takes the <codeph>CItem</codeph> object
-at the end of the singly linked list, removes it from the list and returns
-a pointer to it.</p>
-<p>The <codeph>CStack</codeph> class is declared as:</p>
-<codeblock id="GUID-9640ACCC-5C02-5238-9866-C3E5F24BF256" xml:space="preserve">class CStack : public CBase
-    {
-public :
-    static CStack* NewL();
-    static CStack* NewLC();
-                   CStack();
-    void           Construct();
-    virtual        ~CStack();
-    CItem*         RemoveFromStack();
-    void           AddToStack(CItem&amp; anItem);
-private :
-    TSglQue&lt;CItem&gt;     iStack; 
-    TSglQueIter&lt;CItem&gt; iStackIter;
-    };
-</codeblock>
-<p>The <codeph>CStack</codeph> member functions are implemented as:</p>
-<codeblock id="GUID-6DB67609-DFD9-5C3E-B0DE-DCBF24E2004B" xml:space="preserve">CStack* CStack::NewLC()
-    {
-    CStack* self = CStack::NewL();
-    CleanupStack::PushL(self);
-    return self;
-    }</codeblock>
-<codeblock id="GUID-1A43592A-6670-5DB7-A66C-586F054DA96B" xml:space="preserve">CStack* CStack::NewL()
-    {
-    CStack* self = new (ELeave) CStack;
-    return self;
-    }</codeblock>
-<codeblock id="GUID-7B084689-CEFA-5F12-A112-F57E3969EF64" xml:space="preserve">CStack::CStack()
-    : iStack(CItem::iOffset),iStackIter(iStack) 
-    {}</codeblock>
-<section id="GUID-6C00AE42-5876-4C9B-8530-4E3BCEC12295"><title>Using the list
-iterator</title> <p>The C++ constructor is needed so that the list header
-(<codeph>iStack</codeph>) and the list iterator (<codeph>iStackIter</codeph>)
-can be properly constructed.</p> <p>Before destroying a <codeph>CStack</codeph> object,
-the list is destroyed. This is achieved using the iterator (<codeph>iStackIter</codeph>).
-The iterator pointer is set to point to each element in turn, removing that
-element from the list before destroying it.</p> <p>Once the iterator has reached
-the end of the list, the operator<codeph>++</codeph> returns <codeph>NULL</codeph>.</p> <p>The
-destruction process is safe if the list is empty; the statement <codeph>iStackIter.SetToFirst()</codeph> is
-harmless, the operator<codeph>++</codeph> returns <codeph>NULL</codeph> and
-execution of the body of the <codeph>while</codeph> loop never happens.</p> <codeblock id="GUID-05A85DC1-BA5A-52BD-BC3A-6DD27F050B3A" xml:space="preserve">CStack::~CStack()
-    {
-    CItem*  item;
-    
-    iStackIter.SetToFirst(); 
-    while ((item = iStackIter++) != NULL)
-        {
-        iStack.Remove(*item);
-        delete item;
-        };
-    }</codeblock> </section>
-<section id="GUID-9B58504D-1C1C-4D2C-93BB-085F04EA62B3"><title>Adding an element
-to the stack</title> <p>Adding an element to the stack simply involves adding
-the <codeph>CItem</codeph> object to the end of the list.</p> <codeblock id="GUID-819F3511-AFC1-57CB-A6B6-0A3A778B9737" xml:space="preserve">void CStack::AddToStack(CItem&amp; anItem)
-    {
-    iStack.AddLast(anItem);
-    }</codeblock> </section>
-<section id="GUID-99C58AE1-4EA3-41FA-82AF-C1B9D08FB57F"><title>Removing an
-element from the stack</title> <p>The <codeph>RemoveFromStack()</codeph> function
-returns <codeph>NULL</codeph>, if the list is empty, otherwise it just uses
-the <codeph>Last()</codeph> member function to return a pointer to the last
-element in the list before removing it.</p> <codeblock id="GUID-5BDC3F9B-1C99-534B-82CC-18731E3C22B9" xml:space="preserve">CItem* CStack::RemoveFromStack()
-    {
-    CItem* lastitem;
-    
-    if (iStack.IsEmpty())
-        return NULL;
-    
-    lastitem = iStack.Last();
-    iStack.Remove(*lastitem); 
-    
-    return (lastitem);
-    }</codeblock> </section>
-<section id="GUID-BC25EB70-D1D2-4045-8345-C002C17D9114"><title>Executing the
-code</title> <p>Executing the code results in a singly linked list of <codeph>CItem</codeph> objects
-each containing a pointer to an <codeph>HBufC</codeph> descriptor each of
-which, in turn, contains the text “8”, “89”, and so on through to “89ABCDEF”:</p> <codeblock id="GUID-F00B6DDF-54C8-541D-8688-FDD227DC48F4" xml:space="preserve">    {
-    CStack*  stack;
-    CItem*   item;
-    TBuf&lt;16&gt; buffer;
-    
-    TRAPD(leavecode,stack = CStack::NewL());
-    if (leavecode != KErrNone)
-        {
-        // Cannot create stack
-        return;
-        }</codeblock> <codeblock id="GUID-18506411-26D8-5866-A80E-D36BD20DFD01" xml:space="preserve">    for (TUint jj = 8; jj &lt; 16; jj++)
-        {
-        buffer.AppendNumUC(jj,EHex); 
-        TRAPD(leavecode,item = CItem::NewL(buffer));
-        if (leavecode != KErrNone)
-            {
-            // Cannot create item
-            delete stack;
-            return;
-            }
-        stack-&gt;AddToStack(*item);
-        }</codeblock> <p>as the following shows:</p> <fig id="GUID-27C947C7-3035-54A4-BA6E-C701C3007DD6">
-<title>Example singly linked list</title>
-<image href="GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e218642_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-CB47362B-7068-45AD-9D60-7D93174ED858"><title>Removing elements
-from list</title> <p>The following code removes each <codeph>CItem</codeph> element
-from the list, starting with the last and working through to the first until
-the list is empty.</p> <codeblock id="GUID-36122717-2CA8-5E9E-B223-4921860A4027" xml:space="preserve">    while ((item = stack-&gt;RemoveFromStack()) != NULL)
-        {
-        // item-&gt;GetText());can be used to access the text.
-        delete item;
-        };</codeblock> <codeblock id="GUID-7A4C3458-9676-5ED2-82DB-703C48F347DB" xml:space="preserve">    delete stack;</codeblock> <p>Note
-that unlike doubly linked lists, elements can only be added to the start or
-the end of a singly linked list. Elements <i>cannot</i> be added to the middle
-of the list.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9D3637D4-43BD-51ED-B4BC-1F234F09E24B" xml:lang="en"><title>How
+to construct and manipulate a singly linked list</title><shortdesc>Code fragments showing how to create a singly linked list and how
+to manipulate the list and the elements of the list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following code fragments show how a singly linked list can be constructed
+and manipulated. The list consists of instances of an example class, <codeph>CItem</codeph>,
+which forms items on a stack implemented as a singly linked list using the <codeph>iSlink</codeph> data
+member as the link object. In this example, a <codeph>CItem</codeph> object
+can contain an item of text implemented as an <codeph>HBufC</codeph>.</p>
+<p>The class is declared as:</p>
+<codeblock id="GUID-EF742BDF-7292-51DF-B7D4-6219D9CDFFCE" xml:space="preserve">class CItem : public CBase
+    {
+public  :
+    static CItem* NewL(const TDesC&amp; aText);
+    static CItem* NewLC(const TDesC&amp; aText); 
+                  CItem();
+    virtual       ~CItem();
+    const HBufC*  GetText(); 
+public  :        
+    static const  TInt iOffset;
+private :
+    void          ConstructL(const TDesC&amp; aText);
+private :    
+    TSglQueLink   iSlink;
+    HBufC*        iText;
+    friend  class CStack;
+    };</codeblock>
+<p>The <codeph>CItem</codeph> member functions are implemented as:</p>
+<codeblock id="GUID-2B4A1C64-7C4C-5950-93F0-2A80A0AEF343" xml:space="preserve">const TInt CItem::iOffset = _FOFF(CItem,iSlink);</codeblock>
+<codeblock id="GUID-67788B52-9B64-556B-B4BF-D940C49B2E3E" xml:space="preserve">CItem* CItem::NewLC(const TDesC&amp; aText)
+    {
+    CItem* self = new (ELeave) CItem();
+    CleanupStack::PushL(self);
+    self-&gt;ConstructL(aText);
+    return self;
+    }</codeblock>
+<codeblock id="GUID-5CC6AD98-E877-5699-9BAC-14DE0A4413E2" xml:space="preserve">CItem* CItem::NewL(const TDesC&amp; aText)
+    {
+    CItem* self = CItem::NewLC(aText);
+    CleanupStack::Pop();
+    return self;
+    }</codeblock>
+<codeblock id="GUID-14D5FB76-1FC9-5D7D-A35C-9AC87222DA64" xml:space="preserve">void CItem::ConstructL(const TDesC&amp; aText)
+    {
+    iText    = aText.AllocL();
+    }</codeblock>
+<codeblock id="GUID-44FB4D1A-D567-5181-B425-D988BF364A55" xml:space="preserve">CItem::CItem()
+    {}</codeblock>
+<codeblock id="GUID-DF4603B2-56E0-5CC1-8920-27C04FCE2899" xml:space="preserve">CItem::~CItem()
+    {
+    delete iText;
+    }</codeblock>
+<codeblock id="GUID-E306FFA8-9A93-5047-9999-A36DE087D9BF" xml:space="preserve">const HBufC* CItem::GetText()
+    {
+    return (iText);
+    }
+</codeblock>
+<p>As part of the construction process, a <codeph>CItem</codeph> constructs
+an <codeph>HBufC</codeph> of the correct length and copies the content of
+the descriptor parameter into it.</p>
+<p>The stack is implemented by an instance of the example class <codeph>CStack</codeph>.
+This maintains the stack by adding <codeph>CItem</codeph> objects onto the
+end of the list and removing them from the end of the list. When removing
+them from the end of the list, a pointer to the removed <codeph>CItem</codeph> object
+is returned.</p>
+<p>In this example, the list header, <codeph>iStack</codeph>, and the iterator, <codeph>iStackIter</codeph>,
+are declared as data members of the class and are constructed when the <codeph>CStack</codeph> object
+is constructed. A C++ constructor must be supplied so that <codeph>iStackIter</codeph> can
+be constructed. (<codeph>TSglQueIter</codeph> has no default constructor).</p>
+<p><codeph>AddToStack()</codeph> takes a <codeph>CItem</codeph> object and
+adds it to the end of the singly linked list.</p>
+<p><codeph>RemoveFromStack()</codeph> takes the <codeph>CItem</codeph> object
+at the end of the singly linked list, removes it from the list and returns
+a pointer to it.</p>
+<p>The <codeph>CStack</codeph> class is declared as:</p>
+<codeblock id="GUID-9640ACCC-5C02-5238-9866-C3E5F24BF256" xml:space="preserve">class CStack : public CBase
+    {
+public :
+    static CStack* NewL();
+    static CStack* NewLC();
+                   CStack();
+    void           Construct();
+    virtual        ~CStack();
+    CItem*         RemoveFromStack();
+    void           AddToStack(CItem&amp; anItem);
+private :
+    TSglQue&lt;CItem&gt;     iStack; 
+    TSglQueIter&lt;CItem&gt; iStackIter;
+    };
+</codeblock>
+<p>The <codeph>CStack</codeph> member functions are implemented as:</p>
+<codeblock id="GUID-6DB67609-DFD9-5C3E-B0DE-DCBF24E2004B" xml:space="preserve">CStack* CStack::NewLC()
+    {
+    CStack* self = CStack::NewL();
+    CleanupStack::PushL(self);
+    return self;
+    }</codeblock>
+<codeblock id="GUID-1A43592A-6670-5DB7-A66C-586F054DA96B" xml:space="preserve">CStack* CStack::NewL()
+    {
+    CStack* self = new (ELeave) CStack;
+    return self;
+    }</codeblock>
+<codeblock id="GUID-7B084689-CEFA-5F12-A112-F57E3969EF64" xml:space="preserve">CStack::CStack()
+    : iStack(CItem::iOffset),iStackIter(iStack) 
+    {}</codeblock>
+<section id="GUID-6C00AE42-5876-4C9B-8530-4E3BCEC12295"><title>Using the list
+iterator</title> <p>The C++ constructor is needed so that the list header
+(<codeph>iStack</codeph>) and the list iterator (<codeph>iStackIter</codeph>)
+can be properly constructed.</p> <p>Before destroying a <codeph>CStack</codeph> object,
+the list is destroyed. This is achieved using the iterator (<codeph>iStackIter</codeph>).
+The iterator pointer is set to point to each element in turn, removing that
+element from the list before destroying it.</p> <p>Once the iterator has reached
+the end of the list, the operator<codeph>++</codeph> returns <codeph>NULL</codeph>.</p> <p>The
+destruction process is safe if the list is empty; the statement <codeph>iStackIter.SetToFirst()</codeph> is
+harmless, the operator<codeph>++</codeph> returns <codeph>NULL</codeph> and
+execution of the body of the <codeph>while</codeph> loop never happens.</p> <codeblock id="GUID-05A85DC1-BA5A-52BD-BC3A-6DD27F050B3A" xml:space="preserve">CStack::~CStack()
+    {
+    CItem*  item;
+    
+    iStackIter.SetToFirst(); 
+    while ((item = iStackIter++) != NULL)
+        {
+        iStack.Remove(*item);
+        delete item;
+        };
+    }</codeblock> </section>
+<section id="GUID-9B58504D-1C1C-4D2C-93BB-085F04EA62B3"><title>Adding an element
+to the stack</title> <p>Adding an element to the stack simply involves adding
+the <codeph>CItem</codeph> object to the end of the list.</p> <codeblock id="GUID-819F3511-AFC1-57CB-A6B6-0A3A778B9737" xml:space="preserve">void CStack::AddToStack(CItem&amp; anItem)
+    {
+    iStack.AddLast(anItem);
+    }</codeblock> </section>
+<section id="GUID-99C58AE1-4EA3-41FA-82AF-C1B9D08FB57F"><title>Removing an
+element from the stack</title> <p>The <codeph>RemoveFromStack()</codeph> function
+returns <codeph>NULL</codeph>, if the list is empty, otherwise it just uses
+the <codeph>Last()</codeph> member function to return a pointer to the last
+element in the list before removing it.</p> <codeblock id="GUID-5BDC3F9B-1C99-534B-82CC-18731E3C22B9" xml:space="preserve">CItem* CStack::RemoveFromStack()
+    {
+    CItem* lastitem;
+    
+    if (iStack.IsEmpty())
+        return NULL;
+    
+    lastitem = iStack.Last();
+    iStack.Remove(*lastitem); 
+    
+    return (lastitem);
+    }</codeblock> </section>
+<section id="GUID-BC25EB70-D1D2-4045-8345-C002C17D9114"><title>Executing the
+code</title> <p>Executing the code results in a singly linked list of <codeph>CItem</codeph> objects
+each containing a pointer to an <codeph>HBufC</codeph> descriptor each of
+which, in turn, contains the text “8”, “89”, and so on through to “89ABCDEF”:</p> <codeblock id="GUID-F00B6DDF-54C8-541D-8688-FDD227DC48F4" xml:space="preserve">    {
+    CStack*  stack;
+    CItem*   item;
+    TBuf&lt;16&gt; buffer;
+    
+    TRAPD(leavecode,stack = CStack::NewL());
+    if (leavecode != KErrNone)
+        {
+        // Cannot create stack
+        return;
+        }</codeblock> <codeblock id="GUID-18506411-26D8-5866-A80E-D36BD20DFD01" xml:space="preserve">    for (TUint jj = 8; jj &lt; 16; jj++)
+        {
+        buffer.AppendNumUC(jj,EHex); 
+        TRAPD(leavecode,item = CItem::NewL(buffer));
+        if (leavecode != KErrNone)
+            {
+            // Cannot create item
+            delete stack;
+            return;
+            }
+        stack-&gt;AddToStack(*item);
+        }</codeblock> <p>as the following shows:</p> <fig id="GUID-27C947C7-3035-54A4-BA6E-C701C3007DD6">
+<title>Example singly linked list</title>
+<image href="GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e214905_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-CB47362B-7068-45AD-9D60-7D93174ED858"><title>Removing elements
+from list</title> <p>The following code removes each <codeph>CItem</codeph> element
+from the list, starting with the last and working through to the first until
+the list is empty.</p> <codeblock id="GUID-36122717-2CA8-5E9E-B223-4921860A4027" xml:space="preserve">    while ((item = stack-&gt;RemoveFromStack()) != NULL)
+        {
+        // item-&gt;GetText());can be used to access the text.
+        delete item;
+        };</codeblock> <codeblock id="GUID-7A4C3458-9676-5ED2-82DB-703C48F347DB" xml:space="preserve">    delete stack;</codeblock> <p>Note
+that unlike doubly linked lists, elements can only be added to the start or
+the end of a singly linked list. Elements <i>cannot</i> be added to the middle
+of the list.</p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e334781_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9D5641BC-226B-538F-B805-48511781B7C1_d0e340938_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125"><title>Bitmap Transform Library Guide</title><shortdesc>This topic provides more detailed information about and code snippets for the Bitmap Transform library. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-7D1E45F2-2793-5BE5-8F9E-1F92228A4C06"><title>Purpose</title> <p>Bitmap Transform makes it possible for bitmap images to be resized and rotated as described below. </p> </section> <section><title>Introducing Bitmap Transformation</title> <p>The resizing or scale (<xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref>) and rotation (<xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref>) actions are asynchronous operations that take a pointer to a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object, which is signalled on completion of the requested action. The client application or calling DLL will hold the <codeph>TRequestStatus</codeph> values within active objects. As with any use of an active object it is necessary to have an active scheduler present in the same thread as the application making use of the object. </p> <p> <b>Note:</b>  <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref> and <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref> are not able them to run in their own thread. </p> </section> <section><title>Bitmap Transformation Example - Bitmap scaling</title> <p>There are two variants of the <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-CCE10188-A9FD-38C8-89EC-3908C91DD25A"><apiname>CBitmapScaler::Scale()</apiname></xref> function. The first variant performs rescaling on an image contained in one <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object and places the result in another object. The second variant rescales an image contained in a <codeph>CFbsBitmap</codeph> object and places the result back in the same object. This is illustrated below. </p> <codeblock id="GUID-0979C855-4592-5652-BE58-4DA92C54CEFD" xml:space="preserve">void Scale(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aSrcBitmap, CFbsBitmap&amp; aTgtBitmap, TBool aMaintainAspectRatio = ETrue);
-void Scale(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aBitmap, const TSize&amp; aDestinationSize, TBool aMaintainAspectRatio = ETrue);</codeblock> <p>If two <codeph>CFbsBitmap</codeph> objects are specified in the scale operation, the dimensions of the destination object are used as the rescaling factors, subject to the aspect ratio setting (described below). </p> <p>If only the one <codeph>CFbsBitmap</codeph> object is specified in the scale operation, the scaling factor is taken from <xref href="GUID-938244B2-5E1A-39F7-8ACA-E6DE4C44A313.dita"><apiname>TSize</apiname></xref> subject to the aspect ratio setting. </p> <p>The aspect ratio is maintained if <codeph>aMaintainAspectRatio</codeph> is <codeph>ETrue</codeph>. If the ratio is used, then the image is rescaled to the smaller of the horizontal and vertical scaling factors. This is best explained by use of an example. </p> <p>In this example, the source image is 50 pixels wide by 150 pixels high (an aspect ratio of 1:3), <codeph>aMaintainAspectRatio</codeph> is set to <codeph>ETrue</codeph>, and the proposed rescaling is to 75 pixels wide by 300 high. Applying this ratio to the smaller of the horizontal and vertical factors means using a new value for the larger rescaling factor so that the aspect ratio matches that of the source image. The smaller value is 75 pixels, the aspect ratio required is 1:3 so the larger value will be 75*3 which is 225. The image will be rescaled to 75 wide by 225 high. </p> </section> <section><title>Bitmap Transformation Example - Bitmap rotation</title> <p>There are two variants of the <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-A655241C-5339-35E2-8BDE-EDAF13ECC87A"><apiname>CBitmapScaler::Rotate()</apiname></xref> function. The first performs a rotational action on an image contained in one <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object and places the result in another object. The second variant performs a rotational action on an image contained in a <codeph>CFbsBitmap</codeph> object and places the result back in the same object. Valid rotational increments are specified in <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita#GUID-D0835677-6790-3038-8893-83E7186F47E7/GUID-D89261A3-D59C-38BC-BF55-B0C758AC9C85"><apiname>CBitmapRotator::TRotationAngle</apiname></xref>. </p> <p>Note: <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-A655241C-5339-35E2-8BDE-EDAF13ECC87A"><apiname>CBitmapScaler::Rotate()</apiname></xref> does not support user specified rotational angles. The only values allowed are those specified in <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita#GUID-D0835677-6790-3038-8893-83E7186F47E7/GUID-D89261A3-D59C-38BC-BF55-B0C758AC9C85"><apiname>CBitmapRotator::TRotationAngle</apiname></xref>. </p> <codeblock id="GUID-4FF39951-1B71-5267-813B-32828EB4A73B" xml:space="preserve">void Rotate(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aSrcBitmap, CFbsBitmap&amp; aTgtBitmap, TRotationAngle aAngle);
-
-void Rotate(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aBitmap, TRotationAngle aAngle);
-</codeblock> <table id="GUID-A207445C-18A1-5BA0-9E98-2D1C8A3126E7"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><fig id="GUID-E8157802-DA4E-5C30-94CE-E91DCD632187"><image href="GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e305299_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation90DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-FEF7BCE4-26B8-552A-9E86-C7F21AA8D88A"><image href="GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e305314_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation180DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-A12CB5D1-599B-5F85-B879-610EA9CD2CF9"><image href="GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e305329_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation270DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-37EC2688-E3AC-51A4-86F9-95124DDF40F8"><image href="GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e305344_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>EMirrorHorizontalAxis</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-DFFCC6D6-B7F7-5047-B93D-CF79B2D47F17"><image href="GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e305359_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>EMirrorVerticalAxis</codeph>  </p> </entry> </row> </tbody> </tgroup> </table> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks overview</linktext> </link> <link href="GUID-C0B39D73-0A3C-5289-A774-7BE590037404.dita"><linktext> Bitmap Transform Library
-                Overview</linktext> </link> <link href="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita"><linktext>Bitmap Transform Library Guide</linktext> </link> <link href="GUID-E6692CDA-9E24-57AE-9BC2-14D68D6480C3.dita"><linktext>Enhanced Features for Encoder and
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125"><title>Bitmap Transform Library Guide</title><shortdesc>This topic provides more detailed information about and code snippets for the Bitmap Transform library. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-7D1E45F2-2793-5BE5-8F9E-1F92228A4C06"><title>Purpose</title> <p>Bitmap Transform makes it possible for bitmap images to be resized and rotated as described below. </p> </section> <section><title>Introducing Bitmap Transformation</title> <p>The resizing or scale (<xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref>) and rotation (<xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref>) actions are asynchronous operations that take a pointer to a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object, which is signalled on completion of the requested action. The client application or calling DLL will hold the <codeph>TRequestStatus</codeph> values within active objects. As with any use of an active object it is necessary to have an active scheduler present in the same thread as the application making use of the object. </p> <p> <b>Note:</b>  <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref> and <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref> are not able them to run in their own thread. </p> </section> <section><title>Bitmap Transformation Example - Bitmap scaling</title> <p>There are two variants of the <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-CCE10188-A9FD-38C8-89EC-3908C91DD25A"><apiname>CBitmapScaler::Scale()</apiname></xref> function. The first variant performs rescaling on an image contained in one <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object and places the result in another object. The second variant rescales an image contained in a <codeph>CFbsBitmap</codeph> object and places the result back in the same object. This is illustrated below. </p> <codeblock id="GUID-0979C855-4592-5652-BE58-4DA92C54CEFD" xml:space="preserve">void Scale(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aSrcBitmap, CFbsBitmap&amp; aTgtBitmap, TBool aMaintainAspectRatio = ETrue);
+void Scale(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aBitmap, const TSize&amp; aDestinationSize, TBool aMaintainAspectRatio = ETrue);</codeblock> <p>If two <codeph>CFbsBitmap</codeph> objects are specified in the scale operation, the dimensions of the destination object are used as the rescaling factors, subject to the aspect ratio setting (described below). </p> <p>If only the one <codeph>CFbsBitmap</codeph> object is specified in the scale operation, the scaling factor is taken from <xref href="GUID-938244B2-5E1A-39F7-8ACA-E6DE4C44A313.dita"><apiname>TSize</apiname></xref> subject to the aspect ratio setting. </p> <p>The aspect ratio is maintained if <codeph>aMaintainAspectRatio</codeph> is <codeph>ETrue</codeph>. If the ratio is used, then the image is rescaled to the smaller of the horizontal and vertical scaling factors. This is best explained by use of an example. </p> <p>In this example, the source image is 50 pixels wide by 150 pixels high (an aspect ratio of 1:3), <codeph>aMaintainAspectRatio</codeph> is set to <codeph>ETrue</codeph>, and the proposed rescaling is to 75 pixels wide by 300 high. Applying this ratio to the smaller of the horizontal and vertical factors means using a new value for the larger rescaling factor so that the aspect ratio matches that of the source image. The smaller value is 75 pixels, the aspect ratio required is 1:3 so the larger value will be 75*3 which is 225. The image will be rescaled to 75 wide by 225 high. </p> </section> <section><title>Bitmap Transformation Example - Bitmap rotation</title> <p>There are two variants of the <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-A655241C-5339-35E2-8BDE-EDAF13ECC87A"><apiname>CBitmapScaler::Rotate()</apiname></xref> function. The first performs a rotational action on an image contained in one <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object and places the result in another object. The second variant performs a rotational action on an image contained in a <codeph>CFbsBitmap</codeph> object and places the result back in the same object. Valid rotational increments are specified in <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita#GUID-D0835677-6790-3038-8893-83E7186F47E7/GUID-D89261A3-D59C-38BC-BF55-B0C758AC9C85"><apiname>CBitmapRotator::TRotationAngle</apiname></xref>. </p> <p>Note: <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita#GUID-2008D827-A84A-3170-A8BD-86002BA37979/GUID-A655241C-5339-35E2-8BDE-EDAF13ECC87A"><apiname>CBitmapScaler::Rotate()</apiname></xref> does not support user specified rotational angles. The only values allowed are those specified in <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita#GUID-D0835677-6790-3038-8893-83E7186F47E7/GUID-D89261A3-D59C-38BC-BF55-B0C758AC9C85"><apiname>CBitmapRotator::TRotationAngle</apiname></xref>. </p> <codeblock id="GUID-4FF39951-1B71-5267-813B-32828EB4A73B" xml:space="preserve">void Rotate(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aSrcBitmap, CFbsBitmap&amp; aTgtBitmap, TRotationAngle aAngle);
+
+void Rotate(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aBitmap, TRotationAngle aAngle);
+</codeblock> <table id="GUID-A207445C-18A1-5BA0-9E98-2D1C8A3126E7"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><fig id="GUID-E8157802-DA4E-5C30-94CE-E91DCD632187"><image href="GUID-27529BB0-8034-56B0-82FA-3E4CFDEBC99A_d0e299272_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation90DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-FEF7BCE4-26B8-552A-9E86-C7F21AA8D88A"><image href="GUID-29F55D74-A206-5862-9C83-2C5045B2DB7F_d0e299287_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation180DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-A12CB5D1-599B-5F85-B879-610EA9CD2CF9"><image href="GUID-37888891-DFB2-5A93-9547-3B22410906BF_d0e299302_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>ERotation270DegreesClockwise</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-37EC2688-E3AC-51A4-86F9-95124DDF40F8"><image href="GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e299317_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>EMirrorHorizontalAxis</codeph>  </p> </entry> </row> <row><entry><fig id="GUID-DFFCC6D6-B7F7-5047-B93D-CF79B2D47F17"><image href="GUID-399F7F7D-3E8E-58BB-9925-9F34C561C39A_d0e299332_href.png" placement="inline"/></fig> </entry> <entry><p> <codeph>EMirrorVerticalAxis</codeph>  </p> </entry> </row> </tbody> </tgroup> </table> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks overview</linktext> </link> <link href="GUID-C0B39D73-0A3C-5289-A774-7BE590037404.dita"><linktext> Bitmap Transform Library
+                Overview</linktext> </link> <link href="GUID-9D6C086F-7621-5522-AE0B-81CBD5E99125.dita"><linktext>Bitmap Transform Library Guide</linktext> </link> <link href="GUID-E6692CDA-9E24-57AE-9BC2-14D68D6480C3.dita"><linktext>Enhanced Features for Encoder and
                 Decoder Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402571_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9D6D07D3-A93C-5290-AC08-15750AD34802_d0e402733_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e210051_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9DCAB1DC-D085-576C-A0B9-713E3BF2CAD5_d0e214846_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e272117_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9DD43E77-FB3D-5931-899B-F17198F726D0_d0e275798_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629"><title>Camera API</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document gives you more information about the Camera API. </p> <section><title>Purpose</title> <p>The clients can use the Camera API to access the camera on a phone. This includes configuring the camera, running viewfinder and capturing still images and video. </p> <p> <b> Note:</b> The functionality that can be obtained through the API is camera hardware dependent. The API includes functions that you should call to check if functionality is available before using it. </p> <p><b>Required Background</b> </p> <p>The camera client is a component of the Multimedia subsystem. </p> <p><b>Introduction</b> </p> <p>Ecam is an API which allows an application to access and control any camera hardware which is attached to the device. The API provides functions to query the status of the camera, adjust camera settings, and capture still images and video. </p> </section> <section><title>Using Camera</title> <p>The camera can be used for: </p> <ul><li id="GUID-A330317B-BF54-59E9-BF96-8E6822AEF8AA"><p>Capturing still images </p> </li> <li id="GUID-1AADB8FE-7372-5189-8EBD-6CC84FAAF6D6"><p>Capturing video </p> </li> </ul> <p><b>What's Next?</b> </p> <p>The following tasks will be covered in this tutorial series: </p> <ul><li id="GUID-2E46B521-F169-5DC5-A424-2422DD0DF5BA"><p><xref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita">Accessing and Power Control of Camera </xref>  </p> </li> <li id="GUID-AA4B4913-7F22-5DEE-90CF-5D4666E4A831"><p><xref href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita">Capturing Image</xref>  </p> </li> <li id="GUID-4F278DFE-49AE-549A-BB0E-445C8B648134"><p><xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Capturing Video</xref>  </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9E00A9B2-9656-5569-B164-B7EFD2B2A9F6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9E00A9B2-9656-5569-B164-B7EFD2B2A9F6" xml:lang="en"><title>Example Code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>An example application that demonstrates the use of the Camera Frameworks is shown below: </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e66389_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e71631_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e304473_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9E12593C-38EF-5052-A2E8-0AB25EEFF4D0_d0e310488_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-3-1-1-7-1-7-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-3-1-1-7-1-7-1-10-1" xml:lang="en"><title>Text
-and Zooming</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5E27D8F4-E5F7-4589-801A-4ADE62E9BD59-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-1"><title>Text Style and Colour</title><p>Note that the following does
-not yet apply for S60 and MOAP. </p><p>The style (plain, bold, shadowed etc.)
-and colour of text in a control typically depends upon the state or properties
-of its parent control. Prior to Symbian OS 9.1 a control was able to use the <codeph>MCoeControlContext</codeph> interface
-to share properties. That interface is now deprecated. Text is now drawn using
-a Text Drawer. The Text Drawer takes the text itself as a parameter along
-with the font, graphics context and text location rectangle. </p><p>The text
-drawer is provided by the run-time hierarchy. Each control in the hierarchy,
-from the topmost downwards, has the option of modifying or replacing the text
-drawer. </p><p>Text drawers are derived from <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> (a
-default <xref href="GUID-4941BB90-573F-3582-AD7D-0769E463ECC6.dita"><apiname>CCoePlainTextDrawer</apiname></xref> is provided by Cone) and require
-special use to avoid multiple allocations on the heap. Instead of being allocated
-directly text drawers must be used through the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class
-which acts as a smart-pointer to a single <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> derived
-class on the heap. The smart-pointer deletes or resets the text drawer on
-the heap if necessary and provides fail-safe measures to ensure that a valid
-text drawer is returned. </p><p>A control that draws text calls its <codeph>TextDrawer()</codeph> function
-to retrieve the appropriate text drawer from the run-time hierarchy </p><codeblock id="GUID-42C036D2-539B-51CF-94DD-594612EE7B60-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-1-7" xml:space="preserve">XCoeTextDrawer textDrawer( TextDrawer() );
-textDrawer-&gt;SetAlignment( iAlignment ); 
-textDrawer-&gt;SetMargins( iMargin );
-textDrawer-&gt;SetLineGapInPixels( iGapBetweenLines );
-textDrawer.SetClipRect( aRect );
-
-textDrawer.DrawText( gc, *iTextToDraw, Rect(), *Font() );
-</codeblock><p>Note that <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>'s <codeph>-&gt;()</codeph> operator
-is overriden to return a pointer to the <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> object.
-i.e. </p><codeblock id="GUID-27F4D9F1-0AAF-57C5-9783-C26F4B0046ED-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-1-9" xml:space="preserve">
-    textDrawer-&gt;SetAlignment(iAlignment); 
-</codeblock><p>is equivalent to </p><codeblock id="GUID-7AE5D018-8EC8-55AF-BFCE-5D9B5E0A402F-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-1-11" xml:space="preserve">
-    textDrawer.(iTextDrawer*).SetAlignment(iAlignment); 
-</codeblock><p>Unfortunately, as <codeph>SetClipRect()</codeph> is not a function
-of <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref>, but of <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>,
-it can only be accessed through the . [dot] operator. There are worse things
-in life. </p><p>A control that wishes to provide its own text drawer, or to
-modify its parent's text drawer, may do so by providing its own implementation
-of the virtual function <codeph>GetTextDrawer()</codeph>. </p></section>
-<section id="GUID-BFE5E25F-A36C-4B33-A283-095F2E60FDBA-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-2"><title>Fonts</title><p>The control framework provides a mechanism
-for delivering the correct font at run-time. The mechanism consists of a Font
-Provider (<xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>) and a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> class,
-which represents a font's size (logical or absolute in pixels) and style (plain,
-bold, italic, subscript or superscript). Along similar lines to the Text Drawer,
-the Font Provider is attached to a parent control and serves controls further
-down the run-time hierarchy. </p><p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> includes a
-default <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>: UI-variant specific libraries
-are expected to provide their own. </p><p>The desired font is affected by
-the control's zoom state (see below) which must be included when requesting
-a font from a font provider. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> includes
-a <codeph>ScreenFont()         </codeph> method which encapsulates the font
-provider and zoom APIs to provide a simple means of obtaining a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-for drawing text. </p><p>The final line of the code snippet above should,
-therefore, look like this: </p><codeblock id="GUID-D4C2C0E7-740B-52B2-9945-8855F4D07F45-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-2-7" xml:space="preserve">textDrawer.DrawText(gc, *iTextToDraw, Rect(), ScreenFont(TCoeFont::NormalFont());</codeblock><p>Controls must not keep references or pointers to <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects
-in member data. Nor should they use the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> functions <codeph>NormalFont()</codeph>, <codeph>LegendFont()</codeph>, <codeph>TitleFont()</codeph>, <codeph>AnnotationFont()</codeph> and <codeph>DenseFont()</codeph>.
-Moreover, instances of these calls should be removed from old code and replaced
-with code like that above. This is so that run-time font changes can be propagated
-and is essential for zoom support. </p></section>
-<section id="GUID-881F77D3-383F-4D48-B56C-35A68B51A57B-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-3"><title>Zooming</title><p>Each control may have a <xref href="GUID-DDE4C9C0-7218-385E-B239-0DEFDE19FCCC.dita"><apiname>TZoomFactor</apiname></xref> attached.
-It applies to the control itself and all of its component controls. The factor
-can be absolute or relative to a control's parent and influences the size
-of the font in the control and all of its children. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> has
-an <codeph>AccumulatedZoom()</codeph> function which aggregates its own zoom
-factor with those of its parents. </p></section>
-<section id="GUID-45183B25-33F2-4EB7-A3CB-8A6922B097F1-GENID-1-8-1-3-1-1-7-1-7-1-10-1-2-4"><title>See also</title> <ul>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control
-hierarchy</xref></p></li>
-<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write
-controls</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1" xml:lang="en"><title>Text
-and Zooming</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5E27D8F4-E5F7-4589-801A-4ADE62E9BD59-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-1"><title>Text Style and Colour</title><p>Note that the following does
-not yet apply for S60 and MOAP. </p><p>The style (plain, bold, shadowed etc.)
-and colour of text in a control typically depends upon the state or properties
-of its parent control. Prior to Symbian OS 9.1 a control was able to use the <codeph>MCoeControlContext</codeph> interface
-to share properties. That interface is now deprecated. Text is now drawn using
-a Text Drawer. The Text Drawer takes the text itself as a parameter along
-with the font, graphics context and text location rectangle. </p><p>The text
-drawer is provided by the run-time hierarchy. Each control in the hierarchy,
-from the topmost downwards, has the option of modifying or replacing the text
-drawer. </p><p>Text drawers are derived from <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> (a
-default <xref href="GUID-4941BB90-573F-3582-AD7D-0769E463ECC6.dita"><apiname>CCoePlainTextDrawer</apiname></xref> is provided by Cone) and require
-special use to avoid multiple allocations on the heap. Instead of being allocated
-directly text drawers must be used through the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class
-which acts as a smart-pointer to a single <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> derived
-class on the heap. The smart-pointer deletes or resets the text drawer on
-the heap if necessary and provides fail-safe measures to ensure that a valid
-text drawer is returned. </p><p>A control that draws text calls its <codeph>TextDrawer()</codeph> function
-to retrieve the appropriate text drawer from the run-time hierarchy </p><codeblock id="GUID-42C036D2-539B-51CF-94DD-594612EE7B60-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-1-7" xml:space="preserve">XCoeTextDrawer textDrawer( TextDrawer() );
-textDrawer-&gt;SetAlignment( iAlignment ); 
-textDrawer-&gt;SetMargins( iMargin );
-textDrawer-&gt;SetLineGapInPixels( iGapBetweenLines );
-textDrawer.SetClipRect( aRect );
-
-textDrawer.DrawText( gc, *iTextToDraw, Rect(), *Font() );
-</codeblock><p>Note that <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>'s <codeph>-&gt;()</codeph> operator
-is overriden to return a pointer to the <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> object.
-i.e. </p><codeblock id="GUID-27F4D9F1-0AAF-57C5-9783-C26F4B0046ED-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-1-9" xml:space="preserve">
-    textDrawer-&gt;SetAlignment(iAlignment); 
-</codeblock><p>is equivalent to </p><codeblock id="GUID-7AE5D018-8EC8-55AF-BFCE-5D9B5E0A402F-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-1-11" xml:space="preserve">
-    textDrawer.(iTextDrawer*).SetAlignment(iAlignment); 
-</codeblock><p>Unfortunately, as <codeph>SetClipRect()</codeph> is not a function
-of <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref>, but of <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>,
-it can only be accessed through the . [dot] operator. There are worse things
-in life. </p><p>A control that wishes to provide its own text drawer, or to
-modify its parent's text drawer, may do so by providing its own implementation
-of the virtual function <codeph>GetTextDrawer()</codeph>. </p></section>
-<section id="GUID-BFE5E25F-A36C-4B33-A283-095F2E60FDBA-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-2"><title>Fonts</title><p>The control framework provides a mechanism
-for delivering the correct font at run-time. The mechanism consists of a Font
-Provider (<xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>) and a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> class,
-which represents a font's size (logical or absolute in pixels) and style (plain,
-bold, italic, subscript or superscript). Along similar lines to the Text Drawer,
-the Font Provider is attached to a parent control and serves controls further
-down the run-time hierarchy. </p><p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> includes a
-default <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>: UI-variant specific libraries
-are expected to provide their own. </p><p>The desired font is affected by
-the control's zoom state (see below) which must be included when requesting
-a font from a font provider. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> includes
-a <codeph>ScreenFont()         </codeph> method which encapsulates the font
-provider and zoom APIs to provide a simple means of obtaining a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-for drawing text. </p><p>The final line of the code snippet above should,
-therefore, look like this: </p><codeblock id="GUID-D4C2C0E7-740B-52B2-9945-8855F4D07F45-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-2-7" xml:space="preserve">textDrawer.DrawText(gc, *iTextToDraw, Rect(), ScreenFont(TCoeFont::NormalFont());</codeblock><p>Controls must not keep references or pointers to <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects
-in member data. Nor should they use the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> functions <codeph>NormalFont()</codeph>, <codeph>LegendFont()</codeph>, <codeph>TitleFont()</codeph>, <codeph>AnnotationFont()</codeph> and <codeph>DenseFont()</codeph>.
-Moreover, instances of these calls should be removed from old code and replaced
-with code like that above. This is so that run-time font changes can be propagated
-and is essential for zoom support. </p></section>
-<section id="GUID-881F77D3-383F-4D48-B56C-35A68B51A57B-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-3"><title>Zooming</title><p>Each control may have a <xref href="GUID-DDE4C9C0-7218-385E-B239-0DEFDE19FCCC.dita"><apiname>TZoomFactor</apiname></xref> attached.
-It applies to the control itself and all of its component controls. The factor
-can be absolute or relative to a control's parent and influences the size
-of the font in the control and all of its children. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> has
-an <codeph>AccumulatedZoom()</codeph> function which aggregates its own zoom
-factor with those of its parents. </p></section>
-<section id="GUID-45183B25-33F2-4EB7-A3CB-8A6922B097F1-GENID-1-8-1-6-1-1-4-1-6-1-7-1-10-1-2-4"><title>See also</title> <ul>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control
-hierarchy</xref></p></li>
-<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write
-controls</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9E2AEFF3-6C6E-5F09-B5C0-A70AECB421B0" xml:lang="en"><title>Text
+and Zooming</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-5E27D8F4-E5F7-4589-801A-4ADE62E9BD59"><title>Text Style and Colour</title><p>Note that the following does
+not yet apply for S60 and MOAP. </p><p>The style (plain, bold, shadowed etc.)
+and colour of text in a control typically depends upon the state or properties
+of its parent control. Prior to Symbian OS 9.1 a control was able to use the <codeph>MCoeControlContext</codeph> interface
+to share properties. That interface is now deprecated. Text is now drawn using
+a Text Drawer. The Text Drawer takes the text itself as a parameter along
+with the font, graphics context and text location rectangle. </p><p>The text
+drawer is provided by the run-time hierarchy. Each control in the hierarchy,
+from the topmost downwards, has the option of modifying or replacing the text
+drawer. </p><p>Text drawers are derived from <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> (a
+default <xref href="GUID-4941BB90-573F-3582-AD7D-0769E463ECC6.dita"><apiname>CCoePlainTextDrawer</apiname></xref> is provided by Cone) and require
+special use to avoid multiple allocations on the heap. Instead of being allocated
+directly text drawers must be used through the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class
+which acts as a smart-pointer to a single <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> derived
+class on the heap. The smart-pointer deletes or resets the text drawer on
+the heap if necessary and provides fail-safe measures to ensure that a valid
+text drawer is returned. </p><p>A control that draws text calls its <codeph>TextDrawer()</codeph> function
+to retrieve the appropriate text drawer from the run-time hierarchy </p><codeblock id="GUID-42C036D2-539B-51CF-94DD-594612EE7B60" xml:space="preserve">XCoeTextDrawer textDrawer( TextDrawer() );
+textDrawer-&gt;SetAlignment( iAlignment ); 
+textDrawer-&gt;SetMargins( iMargin );
+textDrawer-&gt;SetLineGapInPixels( iGapBetweenLines );
+textDrawer.SetClipRect( aRect );
+
+textDrawer.DrawText( gc, *iTextToDraw, Rect(), *Font() );
+</codeblock><p>Note that <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>'s <codeph>-&gt;()</codeph> operator
+is overriden to return a pointer to the <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> object.
+i.e. </p><codeblock id="GUID-27F4D9F1-0AAF-57C5-9783-C26F4B0046ED" xml:space="preserve">
+    textDrawer-&gt;SetAlignment(iAlignment); 
+</codeblock><p>is equivalent to </p><codeblock id="GUID-7AE5D018-8EC8-55AF-BFCE-5D9B5E0A402F" xml:space="preserve">
+    textDrawer.(iTextDrawer*).SetAlignment(iAlignment); 
+</codeblock><p>Unfortunately, as <codeph>SetClipRect()</codeph> is not a function
+of <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref>, but of <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref>,
+it can only be accessed through the . [dot] operator. There are worse things
+in life. </p><p>A control that wishes to provide its own text drawer, or to
+modify its parent's text drawer, may do so by providing its own implementation
+of the virtual function <codeph>GetTextDrawer()</codeph>. </p></section>
+<section id="GUID-BFE5E25F-A36C-4B33-A283-095F2E60FDBA"><title>Fonts</title><p>The control framework provides a mechanism
+for delivering the correct font at run-time. The mechanism consists of a Font
+Provider (<xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>) and a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> class,
+which represents a font's size (logical or absolute in pixels) and style (plain,
+bold, italic, subscript or superscript). Along similar lines to the Text Drawer,
+the Font Provider is attached to a parent control and serves controls further
+down the run-time hierarchy. </p><p> <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> includes a
+default <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>: UI-variant specific libraries
+are expected to provide their own. </p><p>The desired font is affected by
+the control's zoom state (see below) which must be included when requesting
+a font from a font provider. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> includes
+a <codeph>ScreenFont()         </codeph> method which encapsulates the font
+provider and zoom APIs to provide a simple means of obtaining a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
+for drawing text. </p><p>The final line of the code snippet above should,
+therefore, look like this: </p><codeblock id="GUID-D4C2C0E7-740B-52B2-9945-8855F4D07F45" xml:space="preserve">textDrawer.DrawText(gc, *iTextToDraw, Rect(), ScreenFont(TCoeFont::NormalFont());</codeblock><p>Controls must not keep references or pointers to <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects
+in member data. Nor should they use the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref> functions <codeph>NormalFont()</codeph>, <codeph>LegendFont()</codeph>, <codeph>TitleFont()</codeph>, <codeph>AnnotationFont()</codeph> and <codeph>DenseFont()</codeph>.
+Moreover, instances of these calls should be removed from old code and replaced
+with code like that above. This is so that run-time font changes can be propagated
+and is essential for zoom support. </p></section>
+<section id="GUID-881F77D3-383F-4D48-B56C-35A68B51A57B"><title>Zooming</title><p>Each control may have a <xref href="GUID-DDE4C9C0-7218-385E-B239-0DEFDE19FCCC.dita"><apiname>TZoomFactor</apiname></xref> attached.
+It applies to the control itself and all of its component controls. The factor
+can be absolute or relative to a control's parent and influences the size
+of the font in the control and all of its children. </p><p> <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> has
+an <codeph>AccumulatedZoom()</codeph> function which aggregates its own zoom
+factor with those of its parents. </p></section>
+<section id="GUID-45183B25-33F2-4EB7-A3CB-8A6922B097F1"><title>See also</title> <ul>
+<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">Run-time control
+hierarchy</xref></p></li>
+<li><p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita">How to write
+controls</xref></p></li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9E3ADEB4-C000-525D-B220-2BAFF5DC6B0C"><title>Password Based Encryption (PBE) example support code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Below is the supporting code for the <xref href="GUID-3385079E-84F4-534F-B937-BD3A568D71BC.dita">PBE example code</xref>. </p> <section id="GUID-8EC8BE08-9961-487A-83C9-766B61C22BB7"><title/><codeblock id="GUID-E9CCC5E6-FDB6-53A0-B7F3-85CFD57FE290" xml:space="preserve">
+#include "e32std.h"
+#include "f32file.h"
+#include "s32file.h"
+#include "pbe.h"
+#include "pbedata.h"
+            </codeblock> <codeblock id="GUID-A6FDAAD3-8418-59BD-BE62-6F4C31F0F3CF" xml:space="preserve">
+/*
+ * Class to demonstrate the use of the PBE API.
+ */
+class CPBEExample : public CBase
+         {
+public:
+         static CPBEExample* NewLC();
+         virtual ~CPBEExample();
+         
+         void WriteEncryptedDataL(const TDesC8&amp; aInput, const TDesC&amp; aFilename, const TDesC&amp; aPassword);
+         HBufC8* ReadEncryptedDataLC(const TDesC&amp; aFilename, const TDesC&amp; aPassword);
+private:
+         CPBEExample();
+         void ConstructL();
+private:
+         RFs iFs;
+         };
+            </codeblock> <codeblock id="GUID-4F7B60AF-62C3-55B3-B1F9-3084D68A97AB" xml:space="preserve">
+CPBEExample* CPBEExample::NewLC()
+         {
+         CPBEExample* self = new (ELeave) CPBEExample();
+         CleanupStack::PushL(self);
+         self-&gt;ConstructL();
+         return self;
+         }
+
+CPBEExample::CPBEExample()
+         {
+         }
+
+void CPBEExample::ConstructL()
+         {
+         User::LeaveIfError(iFs.Connect());
+         }
+
+CPBEExample::~CPBEExample()
+         {
+         iFs.Close();
+         }
+            </codeblock> <codeblock id="GUID-17DECEE0-FE01-5F1F-9143-02462DE3C418" xml:space="preserve">
+LOCAL_D void RunPBEExampleL()
+         {
+         _LIT(KFilename, "c:\\pbe_example_data.dat");
+         _LIT8(KInputData, "This is the data to be encrypted");
+         _LIT(KPassword, "pa55w0rd");
+
+         CPBEExample* main = CPBEExample::NewLC();
+         main-&gt;WriteEncryptedDataL(KInputData, KFilename, KPassword);
+         HBufC8* outputData = main-&gt;ReadEncryptedDataLC(KFilename, KPassword);
+         ASSERT(*outputData == KInputData);
+         CleanupStack::PopAndDestroy(2, main);
+         }
+            </codeblock> <codeblock id="GUID-589330F6-B593-5722-AD3B-73CA53BEDB76" xml:space="preserve">
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+         __UHEAP_MARK;
+         CTrapCleanup* cleanup = CTrapCleanup::New(); // get clean-up stack
+         TRAPD(error, RunPBEExampleL());
+         __ASSERT_ALWAYS(!error,User::Panic(_L("pbe_example_code"),error));
+         delete cleanup; // destroy clean-up stack
+         __UHEAP_MARKEND;
+         return 0;
+    }
+            </codeblock> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e356932_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E3D71A2-34FA-5A66-B0B9-550816021D79_d0e363012_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800-master.png has changed
Binary file Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e52568_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E705383-5D3F-45D9-82F7-EB76112F2800_d0e58503_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e278090_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e281776_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1"><title>How to use the audio tone player utility</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Audio Tone Player, provided by the class <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>, has an interface for generating the following tones on all audio capable devices. Using this class you can play the following tones: </p> <ul><li id="GUID-6F7555FF-A11D-5D34-9602-75E9B9F4E70E"><p>Single tone of a specified duration and frequency </p> </li> <li id="GUID-B99BA7D8-E58F-5206-AAEE-55D47DC0629B"><p>Dual Tone Multi Frequency (DTMF) strings </p> </li> <li id="GUID-97874FB6-0884-53D7-9667-EC96604DEF30"><p>Sequences of tones held in files or descriptors </p> </li> <li id="GUID-B4704DBA-54C9-5B74-B518-2F5EBA1396C9"><p>Predefined (fixed) sequences of tones held in any mobile equipment </p> </li> </ul> <p>Client applications such as ringtone applications, use <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to generate the tones they produce. The tone player in turn uses MMF for playing sounds and is also credited for interfacing with the audio hardware. An active scheduler is needed for all the clients applications for the use of active objects and callbacks. </p> <section id="GUID-B86646DF-E472-556C-B9AF-F82CBAEE468A"><title>Using the tone player</title> <p>The tone player provides a simple interface to generate single and multiple tones. Once the tone player object has been constructed, multiple tones and tone sequences can be played without having to create new instances of the object. </p> <p>Using the tone player typically involves the following steps: </p> <fig id="GUID-BF7D8243-53BE-5AF8-B9EF-4E7DC202AA1F"><title>
-             Tone Player Utility 
-          </title> <image href="GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e314301_href.png" placement="inline"/></fig> <ol id="GUID-11853890-B5E8-5797-918B-A1105C35F5BC"><li id="GUID-C1ED28E3-AF25-562B-B2BC-E70F2790961C"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-B5EAD538-CB1F-556C-B38D-26A4327B6454">Constructing a tone player </xref>  </p> </li> <li id="GUID-ED14F3E0-7FCF-5B7C-B9B3-FCC048480302"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-60775FAF-EB16-5462-9EDD-B18E9831CB70">Preparing a tone player </xref>  </p> </li> <li id="GUID-657C713C-82D4-5579-ACBD-1DA372972012"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-BA2A90F5-C36C-547E-B415-C877C22F321A">Playing a tone </xref>  </p> </li> <li id="GUID-18F9686A-740F-582C-B4C7-547338231F28"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED">Cancelling a tone </xref>  </p> </li> <li id="GUID-BB3FE6DE-FE3B-5E1E-A482-2359D638EE69"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-9D861D80-F6E4-577F-80AB-BD321D413764">Retrieving a custom interface </xref>  </p> </li> </ol> <p id="GUID-B5EAD538-CB1F-556C-B38D-26A4327B6454"><b>Constructing a tone player</b> </p> <p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> object can be constructed using the <codeph>NewL()</codeph> member function. There are two versions of this constructor function: </p> <ul><li id="GUID-A395EF84-C992-57B2-9A7A-2F9EE94E4E1E"><p>create a tone player with default priority settings: </p> <codeblock id="GUID-C4C5F891-A369-5819-965E-D879941247D1" xml:space="preserve">static CMdaAudioToneUtility* NewL(MMdaAudioToneObserver&amp; aObserver, CMdaServer* aServer=NULL);</codeblock> </li> <li id="GUID-9152BA40-7543-5915-A508-1E98EAD288FD"><p>create a tone player with your own settings: </p> <codeblock id="GUID-F5D92EE4-66D5-5BA5-9328-113F2AD289A1" xml:space="preserve">static CMdaAudioToneUtility* NewL(MMdaAudioToneObserver&amp; aObserver, CMdaServer* aServer, TInt aPriority,
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1"><title>How to use the audio tone player utility</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Audio Tone Player, provided by the class <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>, has an interface for generating the following tones on all audio capable devices. Using this class you can play the following tones: </p> <ul><li id="GUID-6F7555FF-A11D-5D34-9602-75E9B9F4E70E"><p>Single tone of a specified duration and frequency </p> </li> <li id="GUID-B99BA7D8-E58F-5206-AAEE-55D47DC0629B"><p>Dual Tone Multi Frequency (DTMF) strings </p> </li> <li id="GUID-97874FB6-0884-53D7-9667-EC96604DEF30"><p>Sequences of tones held in files or descriptors </p> </li> <li id="GUID-B4704DBA-54C9-5B74-B518-2F5EBA1396C9"><p>Predefined (fixed) sequences of tones held in any mobile equipment </p> </li> </ul> <p>Client applications such as ringtone applications, use <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to generate the tones they produce. The tone player in turn uses MMF for playing sounds and is also credited for interfacing with the audio hardware. An active scheduler is needed for all the clients applications for the use of active objects and callbacks. </p> <section id="GUID-B86646DF-E472-556C-B9AF-F82CBAEE468A"><title>Using the tone player</title> <p>The tone player provides a simple interface to generate single and multiple tones. Once the tone player object has been constructed, multiple tones and tone sequences can be played without having to create new instances of the object. </p> <p>Using the tone player typically involves the following steps: </p> <fig id="GUID-BF7D8243-53BE-5AF8-B9EF-4E7DC202AA1F"><title>
+             Tone Player Utility 
+          </title> <image href="GUID-8ECEF376-CB27-52FC-A9DD-933ACC24FDDC_d0e307907_href.png" placement="inline"/></fig> <ol id="GUID-11853890-B5E8-5797-918B-A1105C35F5BC"><li id="GUID-C1ED28E3-AF25-562B-B2BC-E70F2790961C"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-B5EAD538-CB1F-556C-B38D-26A4327B6454">Constructing a tone player </xref>  </p> </li> <li id="GUID-ED14F3E0-7FCF-5B7C-B9B3-FCC048480302"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-60775FAF-EB16-5462-9EDD-B18E9831CB70">Preparing a tone player </xref>  </p> </li> <li id="GUID-657C713C-82D4-5579-ACBD-1DA372972012"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-BA2A90F5-C36C-547E-B415-C877C22F321A">Playing a tone </xref>  </p> </li> <li id="GUID-18F9686A-740F-582C-B4C7-547338231F28"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED">Cancelling a tone </xref>  </p> </li> <li id="GUID-BB3FE6DE-FE3B-5E1E-A482-2359D638EE69"><p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-9D861D80-F6E4-577F-80AB-BD321D413764">Retrieving a custom interface </xref>  </p> </li> </ol> <p id="GUID-B5EAD538-CB1F-556C-B38D-26A4327B6454"><b>Constructing a tone player</b> </p> <p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> object can be constructed using the <codeph>NewL()</codeph> member function. There are two versions of this constructor function: </p> <ul><li id="GUID-A395EF84-C992-57B2-9A7A-2F9EE94E4E1E"><p>create a tone player with default priority settings: </p> <codeblock id="GUID-C4C5F891-A369-5819-965E-D879941247D1" xml:space="preserve">static CMdaAudioToneUtility* NewL(MMdaAudioToneObserver&amp; aObserver, CMdaServer* aServer=NULL);</codeblock> </li> <li id="GUID-9152BA40-7543-5915-A508-1E98EAD288FD"><p>create a tone player with your own settings: </p> <codeblock id="GUID-F5D92EE4-66D5-5BA5-9328-113F2AD289A1" xml:space="preserve">static CMdaAudioToneUtility* NewL(MMdaAudioToneObserver&amp; aObserver, CMdaServer* aServer, TInt aPriority,
 TMdaPriorityPreference aPref=EMdaPriorityPreferenceTimeAndQuality); </codeblock> </li> </ul> <p>Both functions pass a reference of the <xref href="GUID-A6D27F43-AC44-38EA-B16F-31A14390582E.dita"><apiname>MMdaAudioToneObserver</apiname></xref> object to the tone player. The <xref href="GUID-A6D27F43-AC44-38EA-B16F-31A14390582E.dita"><apiname>MMdaAudioToneObserver</apiname></xref> is an observer interface to notifications from the member functions <xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-60775FAF-EB16-5462-9EDD-B18E9831CB70">Prepare</xref>, <xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-BA2A90F5-C36C-547E-B415-C877C22F321A">Play</xref>, and, <xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED">CancelPlay</xref> callback functions. </p> <p id="GUID-60775FAF-EB16-5462-9EDD-B18E9831CB70"><b>Preparing a tone player</b> </p> <p>Once the tone player object is created, it has to be prepared to play a tone or a DTMF string. use one of the following prepare member functions to get it ready for playing the corresponding tone. </p> <ul><li id="GUID-6B9AFA66-9748-5E38-A712-188A8CA6BA77"><p> <codeph> PrepareToPlayTone()</codeph> - to play a single tone of a fixed frequency (Hz) and duration (microseconds). For example: </p> <codeblock id="GUID-B6943FB2-A5E5-5A92-A0BC-31AC567FE647" xml:space="preserve">virtual void PrepareToPlayTone(TInt    aFrequency, const TTimeIntervalMicroSeconds&amp; aDuration);</codeblock> </li> <li id="GUID-28A30DA0-F52D-59E4-B05D-9A1D8CFBCE2A"><p> <codeph>PrepareToPlayDTMFString()</codeph> - to play a DTMF string held in a descriptor. For example: </p> <codeblock id="GUID-2D18C9CF-86CC-554C-9336-5C656EDD71E5" xml:space="preserve">virtual void PrepareToPlayDTMFString(const TDesC&amp; aDTMF);</codeblock> </li> <li id="GUID-0F67C0F8-E60F-5B42-9536-231FE9086AB7"><p> <codeph>PrepareToPlayFileSequence()</codeph> - to play a sequence of non-DTMF tones held in a file. For example: </p> <codeblock id="GUID-7BCD3441-7CA9-581B-96E0-D230FBF6A7E4" xml:space="preserve">virtual void PrepareToPlayFileSequence(const TDesC&amp; aFilename);</codeblock> </li> <li id="GUID-09048A04-0869-5208-B3BE-51217690527D"><p> <codeph>PrepareToPlayDesSequence()</codeph> - to play a sequence of non-DTMF tones held in a descriptor. For example: </p> <codeblock id="GUID-52063B5D-1131-5236-A06F-BFD67A09CF71" xml:space="preserve">virtual void PrepareToPlayDesSequence(const TDesC8&amp; aSequence);</codeblock> </li> <li id="GUID-6328FB13-16F3-51BC-9B13-F00E8B8532DB"><p> <codeph> PrepareToPlayFixedSequence()</codeph> - to play a sequence of non-DTMF tones stored on the mobile equipment. For example: </p> <codeblock id="GUID-839C7AFA-0D3E-5D05-BA0C-34CEF841D3F7" xml:space="preserve">virtual void PrepareToPlayFixedSequence(TInt aSequenceNumber); </codeblock> </li> <li id="GUID-EB7F1FA3-849F-5169-B88F-49512CD1E14C"><p> <codeph>PrepareToPlayDualTone()</codeph> - to play a dual tone. For example: </p> <codeblock id="GUID-FBE9AAAE-E188-58C9-8167-0B7049BCAB13" xml:space="preserve">void PrepareToPlayDualTone(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds&amp; aDuration); </codeblock> <p>The two tones, aFrequencyOne and aFrequencyTwo, are measured in Hz, and the duration of the tone, aDuration, is measured in microseconds. </p> </li> </ul> <p>All the prepare member functions are asynchronous. In response to each, <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> creates a <codeph>CMMFToneConfig</codeph> derived object that stores the data for the type of tone to play. </p> <p>On completion of a prepare, the observer function <xref href="GUID-A6D27F43-AC44-38EA-B16F-31A14390582E.dita#GUID-A6D27F43-AC44-38EA-B16F-31A14390582E/GUID-6B3BF4AC-3E50-3927-A09F-E4E5DDD1AECA"><apiname>MMdaAudioToneObserver::MatoPrepareComplete()</apiname></xref> is called, indicating the success or failure of the prepare operation. If successful you can play the tone. </p> <p>You can cancel any prepare function using <xref href="GUID-D4BCECEA-A42F-372D-85D7-66762D2F7B0D.dita"><apiname>CancelPrepare()</apiname></xref> (the observer callback function is <i>not</i> called on completion of the cancel). </p> <p id="GUID-BA2A90F5-C36C-547E-B415-C877C22F321A"><b>Playing a tone</b> </p> <p>Once the player is prepared successfully, certain configurations can be done before playing the tone as listed below: </p> <ul><li id="GUID-6FAFAB95-55B7-5C74-BF0B-31962859DF32"><p> <xref href="GUID-657CDF11-EA74-3074-9872-412D2C26F3E6.dita"><apiname>Volume()</apiname></xref> and <xref href="GUID-171667CD-06F4-3DF5-A4E1-360422F362D2.dita"><apiname>SetVolume()</apiname></xref> - This retrieves the current volume settings and sets to a new value specified by the user respectively. </p> </li> <li id="GUID-F5BC6F5F-57C0-5BEC-9783-AF06358A59E2"><p> <xref href="GUID-C2B76645-A50F-3DFF-943B-4F3D5A33ED31.dita"><apiname>GetBalanceL()</apiname></xref> and <xref href="GUID-D1856981-6A17-3CD9-80B5-65781A803BA4.dita"><apiname>SetBalanceL()</apiname></xref> - This retrieves the current balance of the audio device and sets the audio balance specified by the user respectively.. </p> </li> <li id="GUID-06D4BAEF-52CF-5CD8-90A2-8163336B016F"><p> <xref href="GUID-A2BDF5F7-06F0-3788-905E-D53FC9C67446.dita"><apiname>SetPriority()</apiname></xref> - This sets the priority of the audio device. The priority is defined to arbitrate between multiple objects trying to access the controller at the same time. </p> </li> <li id="GUID-0109EFE3-8CA8-5E5A-B4F5-693E87BEEE0E"><p> <xref href="GUID-5B03528A-E19C-3782-95E0-179E0C03B349.dita"><apiname>SetVolumeRamp()</apiname></xref> - This defines the period over which the volume level is to rise (in microseconds) smoothly from zero to the specified volume level. A value of <codeph>0</codeph> causes the tone to be played at the <codeph>SetVolume()</codeph> level for the full duration of the playback. A value that is longer than the duration of the tone sequence means that the tone never reaches the specified volume. </p> <codeblock id="GUID-AB8860AD-2E15-5DF1-97B2-BA9BDA2D5D38" xml:space="preserve">virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds &amp;aRampDuration);</codeblock> </li> <li id="GUID-47A3F620-FA41-5A85-B9E4-3D8BA3D9251B"><p> <xref href="GUID-9BBB8929-42B9-3862-BEFF-D845D4EC8E4E.dita"><apiname>SetDTMFLengths() </apiname></xref> - This alters the duration of DTMF tone, the gaps between two DTMF tones, and the pauses in microseconds. </p> </li> <li id="GUID-5AC9A8EF-995D-5FD7-9AAD-309673819F33"><p> <xref href="GUID-CD5229CE-04B7-3CED-B997-688C9251D1B9.dita"><apiname>FixedSequenceCount() </apiname></xref> - This returns the number of available pre-defined tone sequences, the number always being greater than zero. </p> </li> <li id="GUID-A5118A3F-43BF-5A34-B552-C0B57937928B"><p> <xref href="GUID-ECB22EFB-F630-35FB-9153-6D130945412E.dita"><apiname>FixedSequenceName()</apiname></xref> - This returns the name of the specified fixed tone sequence. </p> </li> </ul> <p>Upon successful configuration, the Play() can be called as shown below. </p> <p> <codeph> Play()</codeph> - plays the tone, DTMF or tone sequence specified by the prepare statement. For example: </p> <codeblock id="GUID-D152802E-768B-5001-B362-05F7438B5106" xml:space="preserve">virtual void Play();</codeblock> <p>Here, the tone player uses the <xref href="GUID-E9006092-2ED1-3486-985A-0A4821FF90EC.dita"><apiname>Play()</apiname></xref> from the audio player utility to play the tone. </p> <p>This function is asynchronous. It retrieves the details of the type of tone to play from the previous <codeph>Prepare</codeph> statement. When the tone has been played to completion, the observer callback function <xref href="GUID-A6D27F43-AC44-38EA-B16F-31A14390582E.dita#GUID-A6D27F43-AC44-38EA-B16F-31A14390582E/GUID-65AAF2C6-FD4F-3365-99F7-FCD15287A1B9"><apiname>MMdaAudioToneObserver::MatoPlayComplete()</apiname></xref> is called, indicating the success or failure of the play operation. The play operation can be cancelled by calling the <xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED">CancelPlay()</xref> member function. </p> <p>Playing the tone or DTMF string can be customised using the following member functions as mentioned below: </p> <ul><li id="GUID-03F93CEA-1B61-5262-B720-2313E79662E6"><p> <codeph>SetRepeats()</codeph> - sets the number of times the tone sequence (plus an optional trailing silent period, measured in microseconds) is repeated during the play operation. For example: </p> <codeblock id="GUID-7B2A1D5A-BB07-5CAA-86F3-CF7C011A939A" xml:space="preserve">virtual void SetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds &amp;aTrailingSilence);</codeblock> <p>You can repeat the tone sequence indefinitely by setting <codeph>aRepeatNumberOfTimes</codeph> to <codeph>KMdaRepeatForever</codeph>. </p> </li> <li id="GUID-5E34283D-17EF-59FC-842E-AD54DF7659C4"><p> <codeph>State()</codeph> - returns the current state of the tone player (an enum): </p> <ul><li id="GUID-A997198F-F638-5071-9333-6835E24EB23B"><p> <codeph>EMdaAudioToneUtilityNotReady</codeph> - not prepared to play a tone </p> </li> <li id="GUID-CAF8DAEB-E147-5F08-B86C-E3C3735690EB"><p> <codeph>EMdaAudioToneUtilityPrepared</codeph> - prepared and ready to play a tone </p> </li> <li id="GUID-F10E01C6-F237-58E9-8213-423FEAAE3DDC"><p> <codeph>EMdaAudioToneUtilityPlaying</codeph> - currently playing a tone </p> </li> </ul> <p>For example: </p> <codeblock id="GUID-B2BB2135-C055-5A5E-B66B-63118DD7F654" xml:space="preserve">virtual TMdaAudioToneUtilityState State();</codeblock> </li> </ul> <p>To play another tone or sequence, either wait for <xref href="GUID-A6D27F43-AC44-38EA-B16F-31A14390582E.dita#GUID-A6D27F43-AC44-38EA-B16F-31A14390582E/GUID-65AAF2C6-FD4F-3365-99F7-FCD15287A1B9"><apiname>MMdaAudioToneObserver::MatoPlayComplete()</apiname></xref> callback to be issued when the current tone or DTMF string completes playing, or use <xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita#GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1/GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED">CancelPlay()</xref> and then issue the relevant prepare statement. The <xref href="GUID-E9006092-2ED1-3486-985A-0A4821FF90EC.dita"><apiname>Play()</apiname></xref> function following the prepare statement plays the tone or DTMF string based on the previously issued prepare statement. </p> <p id="GUID-0E2324A3-9290-56B4-BF68-A00FEF8B26ED"><b>Cancelling a tone</b> </p> <p> <xref href="GUID-E5898C2C-12A4-3803-BB97-A9C3F3CDDDE4.dita"><apiname>CancelPlay()</apiname></xref> - cancels the tone, DTMF, or tone sequence currently playing. For example: </p> <codeblock id="GUID-5F4A763E-BB07-5ACC-BC6C-6EA78DC85A44" xml:space="preserve">virtual void CancelPlay();</codeblock> <p>The observer callback function is <i>not</i> called on completion of the cancel. </p> <p id="GUID-9D861D80-F6E4-577F-80AB-BD321D413764"><b>Retrieving a custom interface</b> </p> <p>To retrieve a custom interface to the underlying device, use the <codeph>CustomInterface()</codeph> member function. For example: </p> <codeblock id="GUID-AC62D116-853B-5216-9E22-FB9A68A53179" xml:space="preserve">IMPORT_C TAny *CustomInterface(TUid aInterfaceId);</codeblock> <p> <codeph>aInterfaceId</codeph> is the UID of the interface function required. </p> <p>The function returns a pointer to the interface implementation, or NULL if the device does not implement the interface requested. You must cast the return value to the correct type. </p> </section> <section><title>See Also</title> <p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player utility</xref>  </p> <p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio convert utility</xref>  </p> <p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use audio recorder utility</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e404850_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e405012_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3400_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e3531_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4675_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4806_href.png has changed
--- a/Symbian3/SDK/Source/GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference xml:lang="en" id="GUID-9F96807F-25DC-5DE1-B327-3E339665FF64"><title>Reference</title><shortdesc>This topic contains all reference information for the Network Interface Manager (NifMan). </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody><section><title>Time-out values in the CommDb bearer table</title> <p>There are three time-out values, which are set in the CommDb bearer table: </p> <table id="GUID-42A9DBFC-A6D5-5934-ABD8-59919C564143"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Name</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-F3CC7887-8BB4-3A7E-8236-E80268FFDB7E.dita"><apiname>LAST_SESSION_CLOSED_TIMEOUT</apiname></xref>  </p> </entry> <entry><p>This time-out is used if there are no ESock <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> objects and no sockets for the interface. </p> </entry> </row> <row><entry><p> <xref href="GUID-954BA47C-8EE3-3E89-B05E-0A135052C103.dita"><apiname>LAST_SOCKET_CLOSED_TIMEOUT</apiname></xref>  </p> </entry> <entry><p>This time-out used if there are <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> objects, but no sockets for the interface. </p> </entry> </row> <row><entry><p> <xref href="GUID-C9C979F4-48C8-37F1-9FA9-47B9EFC1832B.dita"><apiname>LAST_SOCKET_ACTIVITY_TIMEOUT</apiname></xref> </p> </entry> <entry><p>This time-out used if there are any sockets for the interface. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Progress Notification Types</title> </section> <section><p>The NIFMAN configuration plug-in that calls the daemon provides progress notifications for a range of generic events. These are: </p> </section> <table id="GUID-054AB529-02A5-5279-91BE-EC4750285750"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Progress type</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <xref href="GUID-6DD2FDE1-DED1-31DC-AA6B-CCC7FF64EAD9.dita"><apiname>KConfigDaemonLoading</apiname></xref>  </p> </entry> <entry><p>Generated before the daemon is loaded </p> </entry> </row> <row><entry><p> <xref href="GUID-DE9C3BA7-D5BD-3F32-94FF-A15E9C3449D0.dita"><apiname>KConfigDaemonLoaded</apiname></xref>  </p> </entry> <entry><p>Generated after the daemon was successfully loaded </p> </entry> </row> <row><entry><p> <xref href="GUID-B9BBF996-55CE-3F79-A518-D274FBC1AA8C.dita"><apiname>KConfigDaemonStartingRegistration</apiname></xref>  </p> </entry> <entry><p>Generated before the <xref href="GUID-4F97FE50-2E9C-3527-92E0-F1221184B7FD.dita"><apiname>EConfigDaemonConfigure</apiname></xref> message is sent </p> </entry> </row> <row><entry><p> <xref href="GUID-75C817CC-39BD-34B1-ADE8-FB7AC90418E7.dita"><apiname>KConfigDaemonFinishedRegistration</apiname></xref>  </p> </entry> <entry><p>Generated after the <xref href="GUID-4F97FE50-2E9C-3527-92E0-F1221184B7FD.dita"><apiname>EConfigDaemonConfigure</apiname></xref> message is completed by the daemon </p> </entry> </row> <row><entry><p> <xref href="GUID-02E2F5FD-9A76-3274-9AC7-018DAD07E6E3.dita"><apiname>KConfigDaemonStartingDeregistration</apiname></xref>  </p> </entry> <entry><p>Generated before the <xref href="GUID-274DF45D-B3A7-334B-9688-5161FA8B3327.dita"><apiname>EConfigDaemonDeregister</apiname></xref> message is sent </p> </entry> </row> <row><entry><p> <xref href="GUID-E7C83D74-D06E-3AFC-BBFE-0A041169C6FE.dita"><apiname>KConfigDaemonFinishedDeregistrationStop</apiname></xref>  </p> </entry> <entry><p>Generated after the <xref href="GUID-274DF45D-B3A7-334B-9688-5161FA8B3327.dita"><apiname>EConfigDaemonDeregister</apiname></xref> message is completed by the daemon indicating that the NIF is to be stopped (<xref href="GUID-04AD3BC8-5581-3305-B3CC-F59829E3FF42.dita"><apiname>EConfigDaemonDeregisterActionStop</apiname></xref>) </p> </entry> </row> <row><entry><p> <xref href="GUID-63B8B96B-EADD-38E2-A86D-133D3DE648C1.dita"><apiname>KConfigDaemonFinishedDeregistrationPreserve</apiname></xref>  </p> </entry> <entry><p>Generated after the <xref href="GUID-274DF45D-B3A7-334B-9688-5161FA8B3327.dita"><apiname>EConfigDaemonDeregister</apiname></xref> message is is completed by the daemon indicating that the system is in dormant mode (<xref href="GUID-B8FAD27D-432A-395C-852C-FC5E8A1D8813.dita"><apiname>EConfigDaemonDeregisterActionPreserve</apiname></xref>) </p> </entry> </row> <row><entry><p> <xref href="GUID-5D39682D-E0CB-3DA6-AE53-04078ADAB0D8.dita"><apiname>KConfigDaemonUnloading</apiname></xref>  </p> </entry> <entry><p>Generated immediately before the session to the daemon is closed </p> </entry> </row> <row><entry><p> <xref href="GUID-5C591AAA-5E34-3E3D-99B5-C63A42A664F9.dita"><apiname>KConfigDaemonUnloaded</apiname></xref>  </p> </entry> <entry><p>Generated after the session to the daemon is closed </p> </entry> </row> </tbody> </tgroup> </table> </refbody><related-links><link href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"><linktext>What is Network Interface Management
-                (NifMan)?</linktext> </link> <link href="GUID-B380482B-CF42-50BF-B09C-F4B3BDAA1679.dita"><linktext>What are the daemon message
-                types?</linktext> </link> </related-links></reference>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-9F96807F-25DC-5DE1-B327-3E339665FF64" xml:lang="en"><title>Reference</title><shortdesc>This topic contains all reference information for the Network Interface
+Manager (NifMan). </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-B80B4CBE-FD19-4898-8917-7ECC659CB085"><title>Time-out values in the CommDb bearer table</title> <p>There
+are three time-out values, which are set in the CommDb bearer table: </p> <table id="GUID-42A9DBFC-A6D5-5934-ABD8-59919C564143">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Name</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>LAST_SESSION_CLOSED_TIMEOUT</codeph>  </p> </entry>
+<entry><p>This time-out is used if there are no ESock <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> objects
+and no sockets for the interface. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>LAST_SOCKET_CLOSED_TIMEOUT</codeph>  </p> </entry>
+<entry><p>This time-out used if there are <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> objects,
+but no sockets for the interface. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>LAST_SOCKET_ACTIVITY_TIMEOUT</codeph> </p> </entry>
+<entry><p>This time-out used if there are any sockets for the interface. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-74445B08-CF47-45BB-9310-1AF7C7742FBA"><title>Progress Notification Types</title> </section>
+
+<section id="GUID-DB553A5A-EFA0-4908-9F3A-7DEA3FCE25CF"><p>The NIFMAN configuration plug-in that calls the daemon provides
+progress notifications for a range of generic events. These are: </p> </section>
+<table id="GUID-054AB529-02A5-5279-91BE-EC4750285750">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Progress type</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonLoading</codeph>  </p> </entry>
+<entry><p>Generated before the daemon is loaded </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonLoaded</codeph>  </p> </entry>
+<entry><p>Generated after the daemon was successfully loaded </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonStartingRegistration</codeph>  </p> </entry>
+<entry><p>Generated before the <codeph>EConfigDaemonConfigure</codeph> message
+is sent </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonFinishedRegistration</codeph>  </p> </entry>
+<entry><p>Generated after the <codeph>EConfigDaemonConfigure</codeph> message
+is completed by the daemon </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonStartingDeregistration</codeph>  </p> </entry>
+<entry><p>Generated before the <codeph>EConfigDaemonDeregister</codeph> message
+is sent </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonFinishedDeregistrationStop</codeph>  </p> </entry>
+<entry><p>Generated after the <codeph>EConfigDaemonDeregister</codeph> message
+is completed by the daemon indicating that the NIF is to be stopped (<codeph>EConfigDaemonDeregisterActionStop</codeph>) </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonFinishedDeregistrationPreserve</codeph>  </p> </entry>
+<entry><p>Generated after the <codeph>EConfigDaemonDeregister</codeph> message
+is is completed by the daemon indicating that the system is in dormant mode
+(<codeph>EConfigDaemonDeregisterActionPreserve</codeph>) </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonUnloading</codeph>  </p> </entry>
+<entry><p>Generated immediately before the session to the daemon is closed </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KConfigDaemonUnloaded</codeph>  </p> </entry>
+<entry><p>Generated after the session to the daemon is closed </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table></refbody><related-links>
+<link href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"><linktext>What is Network
+Interface Management                 (NifMan)?</linktext></link>
+<link href="GUID-B380482B-CF42-50BF-B09C-F4B3BDAA1679.dita"><linktext>What are
+the daemon message                 types?</linktext></link>
+</related-links></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e107398_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e113936_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e77328_href.png has changed
Binary file Symbian3/SDK/Source/GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e84040_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-9FDF961E-D6CA-599C-8D1C-605ECA50F504" xml:lang="en"><title>PtBuffer:
+the pointer move buffer</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p>This example implements simple freehand
+drawing. The example illustrates the use of <codeph>RWindowBase</codeph>'s
+pointer move buffer functions: <codeph>AllocPointerMoveBuffer()</codeph>, <codeph>EnablePointerMoveBuffer()</codeph>, <codeph>RetrievePointerMoveBuffer()</codeph> and <codeph>DisablePointerMoveBuffer()</codeph>. </p> </section>
+<section id="GUID-D0C987E2-987E-551D-BF3A-8AA324FEFD9E"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4b2e9231-4444-4174-a111-eb16f9ab4ab5.zip" scope="external">PtBuffer.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4b2e9231-4444-4174-a111-eb16f9ab4ab5.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section><title>Class Summary</title><p><xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref></p></section>
+<section><title>Running on the emulator</title> <p>Hold down the <userinput>shift</userinput> key
+and drag the mouse (with left mouse button down) for freehand drawing. </p> </section>
+<section><title>Running on the target phone</title> <p>Hold down the <userinput>shift</userinput> key
+and draw using the pointer device. </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e336695_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e342892_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e51905_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e57512_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e67708_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e69130_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e72845_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e74273_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,69 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B" xml:lang="en"><title>Buffer
-descriptors</title><shortdesc>Describes modifiable and non-modifiable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A buffer descriptor provides a fixed length buffer to contain and access
-data. The data is part of the descriptor object.</p>
-<p>A buffer descriptor object is an instance of a templated class, where the
-template parameter is an integer value that defines the size of the descriptor's
-data area.</p>
-<p>A buffer descriptor comes in two forms:</p>
-<ul>
-<li id="GUID-9F038469-EA34-5086-84AC-DEA306CC63FD"><p>a non-modifiable buffer
-descriptor.</p> </li>
-<li id="GUID-B4A065D3-31DE-5F2D-863F-C91B7A7200FF"><p>a modifiable buffer
-descriptor.</p> </li>
-</ul>
-<section id="GUID-96A5D9DD-7754-4AD7-9C8F-1F664DB4719D"><title>Non-modifiable buffer descriptor</title> <p>The data contained
-in a non-modifiable buffer descriptor can be accessed, but not changed, through
-this descriptor. The data can, however, be completely replaced using the assignment
-operators.</p> <p>Data is accessed through functions provided by the base
-class.</p> <p>A non-modifiable buffer descriptor is supplied in two variants:</p> <ul>
-<li id="GUID-30B702C6-238F-573A-8604-8CE126432723"><p>the 16 bit variant,
-a <codeph>TBufC16&lt;TInt&gt;</codeph>, to contain Unicode strings.</p> </li>
-<li id="GUID-EC2B5476-257C-5DDC-B8AE-4F7F2AF8723E"><p>the 8 bit variant, a <codeph>TBufC8&lt;TInt&gt;</codeph>,
-to contain non-Unicode strings and binary data.</p> </li>
-</ul> <p>There is also a build independent type, <codeph>TBufC&lt;TInt&gt;</codeph>.
-This is the type which is most commonly used in program code; the appropriate
-variant is selected at build time.</p> <p>An explicit 8 bit variant is chosen
-for binary data. The explicit 16 bit variant is rarely used.</p> <p>The base
-class, <codeph>TDesC</codeph>, contains a data member which holds the length
-of the data. The following drawing shows the layout of a <codeph>TBufC&lt;5&gt;</codeph> object
-initialised with the string of five characters representing the English word
-"Hello".</p> <fig id="GUID-12064B13-BA8E-5552-9907-AD4F28329A24">
-<image href="GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e224367_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-4FE409A2-F70B-4755-8C0F-E86799728550"><title>Modifiable buffer descriptor</title> <p>The data contained
-in a modifiable buffer descriptor can be both accessed and changed through
-this descriptor.</p> <p>The template parameter, as well as determining the
-size of the data area created as part of the descriptor object, also defines
-the maximum length of the descriptor.</p> <p>The length of the data can vary
-between zero and the maximum length. When the length of the data is less than
-the maximum, a portion of the data area within the descriptor is unused.</p> <p>Data
-is accessed and modified through functions provided by the base classes.</p> <p>A
-modifiable buffer descriptor is supplied in two variants:</p> <ul>
-<li id="GUID-6FA9F924-4EBF-5AAE-B2E8-DD67CE15C8EE"><p>the 16 bit variant,
-a <codeph>TBuf16&lt;TInt&gt;</codeph>, to contain Unicode strings.</p> </li>
-<li id="GUID-F0C6A0B2-2ADF-5457-A910-6038816D95FD"><p>the 8 bit variant, a <codeph>TBuf8&lt;TInt&gt;</codeph>,
-to contain non-Unicode strings and binary data.</p> </li>
-</ul> <p>There is also a build independent type, <codeph>TBuf&lt;TInt&gt;</codeph>.
-This is the type which is most commonly used in program code; the appropriate
-variant is selected at build time.</p> <p>An explicit 8 bit variant is chosen
-for binary data. The explicit 16 bit variant is rarely used.</p> <p>The base
-class <codeph>TDesC</codeph>, contains a data member that holds the length
-of the data. The base class <codeph>TDes</codeph>, contains a data member
-that holds the maximum length of the data. The following drawing shows the
-layout of a <codeph>TBuf&lt;12&gt;</codeph> object initialised with the string
-of five characters representing the English word "Hello".</p> <fig id="GUID-1988349D-C4DF-5CA4-A913-D6E0AF4DB104">
-<image href="GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e224433_href.png" placement="inline"/>
-</fig> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A049B0C2-5C30-5B07-AC4F-32A75046B60B" xml:lang="en"><title>Buffer
+descriptors</title><shortdesc>Describes modifiable and non-modifiable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A buffer descriptor provides a fixed length buffer to contain and access
+data. The data is part of the descriptor object.</p>
+<p>A buffer descriptor object is an instance of a templated class, where the
+template parameter is an integer value that defines the size of the descriptor's
+data area.</p>
+<p>A buffer descriptor comes in two forms:</p>
+<ul>
+<li id="GUID-9F038469-EA34-5086-84AC-DEA306CC63FD"><p>a non-modifiable buffer
+descriptor.</p> </li>
+<li id="GUID-B4A065D3-31DE-5F2D-863F-C91B7A7200FF"><p>a modifiable buffer
+descriptor.</p> </li>
+</ul>
+<section id="GUID-96A5D9DD-7754-4AD7-9C8F-1F664DB4719D"><title>Non-modifiable buffer descriptor</title> <p>The data contained
+in a non-modifiable buffer descriptor can be accessed, but not changed, through
+this descriptor. The data can, however, be completely replaced using the assignment
+operators.</p> <p>Data is accessed through functions provided by the base
+class.</p> <p>A non-modifiable buffer descriptor is supplied in two variants:</p> <ul>
+<li id="GUID-30B702C6-238F-573A-8604-8CE126432723"><p>the 16 bit variant,
+a <codeph>TBufC16&lt;TInt&gt;</codeph>, to contain Unicode strings.</p> </li>
+<li id="GUID-EC2B5476-257C-5DDC-B8AE-4F7F2AF8723E"><p>the 8 bit variant, a <codeph>TBufC8&lt;TInt&gt;</codeph>,
+to contain non-Unicode strings and binary data.</p> </li>
+</ul> <p>There is also a build independent type, <codeph>TBufC&lt;TInt&gt;</codeph>.
+This is the type which is most commonly used in program code; the appropriate
+variant is selected at build time.</p> <p>An explicit 8 bit variant is chosen
+for binary data. The explicit 16 bit variant is rarely used.</p> <p>The base
+class, <codeph>TDesC</codeph>, contains a data member which holds the length
+of the data. The following drawing shows the layout of a <codeph>TBufC&lt;5&gt;</codeph> object
+initialised with the string of five characters representing the English word
+"Hello".</p> <fig id="GUID-12064B13-BA8E-5552-9907-AD4F28329A24">
+<image href="GUID-5971E713-9CA1-5D75-AE9F-2EF9CBDE39F4_d0e220630_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-4FE409A2-F70B-4755-8C0F-E86799728550"><title>Modifiable buffer descriptor</title> <p>The data contained
+in a modifiable buffer descriptor can be both accessed and changed through
+this descriptor.</p> <p>The template parameter, as well as determining the
+size of the data area created as part of the descriptor object, also defines
+the maximum length of the descriptor.</p> <p>The length of the data can vary
+between zero and the maximum length. When the length of the data is less than
+the maximum, a portion of the data area within the descriptor is unused.</p> <p>Data
+is accessed and modified through functions provided by the base classes.</p> <p>A
+modifiable buffer descriptor is supplied in two variants:</p> <ul>
+<li id="GUID-6FA9F924-4EBF-5AAE-B2E8-DD67CE15C8EE"><p>the 16 bit variant,
+a <codeph>TBuf16&lt;TInt&gt;</codeph>, to contain Unicode strings.</p> </li>
+<li id="GUID-F0C6A0B2-2ADF-5457-A910-6038816D95FD"><p>the 8 bit variant, a <codeph>TBuf8&lt;TInt&gt;</codeph>,
+to contain non-Unicode strings and binary data.</p> </li>
+</ul> <p>There is also a build independent type, <codeph>TBuf&lt;TInt&gt;</codeph>.
+This is the type which is most commonly used in program code; the appropriate
+variant is selected at build time.</p> <p>An explicit 8 bit variant is chosen
+for binary data. The explicit 16 bit variant is rarely used.</p> <p>The base
+class <codeph>TDesC</codeph>, contains a data member that holds the length
+of the data. The base class <codeph>TDes</codeph>, contains a data member
+that holds the maximum length of the data. The following drawing shows the
+layout of a <codeph>TBuf&lt;12&gt;</codeph> object initialised with the string
+of five characters representing the English word "Hello".</p> <fig id="GUID-1988349D-C4DF-5CA4-A913-D6E0AF4DB104">
+<image href="GUID-8D5FFAE9-7E8A-5144-B0CC-B56A34D42A3F_d0e220696_href.png" placement="inline"/>
+</fig> </section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1" xml:lang="en"><title>How
+to stop a periodic timer</title><shortdesc>Describes how to stop a periodic timer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To stop a periodic timer, call <codeph>Cancel()</codeph>. After the cancel,
+the <codeph>CPeriodic</codeph> may be started again, and so on until it is
+destroyed.</p>
+<codeblock id="GUID-2A0611B0-FBCE-5D1D-89F2-39502F68A7BF-GENID-1-10-1-15-1-1-4-1-4-1-22-1-6-1-4-1-3-2" xml:space="preserve">
+iPeriodic-&gt;Cancel();
+</codeblock>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-7-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-10-1-15-1-1-4-1-4-1-22-1-7-1-4-1" xml:lang="en"><title>How
+to stop a periodic timer</title><shortdesc>Describes how to stop a periodic timer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To stop a periodic timer, call <codeph>Cancel()</codeph>. After the cancel,
+the <codeph>CPeriodic</codeph> may be started again, and so on until it is
+destroyed.</p>
+<codeblock id="GUID-2A0611B0-FBCE-5D1D-89F2-39502F68A7BF-GENID-1-10-1-15-1-1-4-1-4-1-22-1-7-1-4-1-3-2" xml:space="preserve">
+iPeriodic-&gt;Cancel();
+</codeblock>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1" xml:lang="en"><title>How
-to stop a periodic timer</title><shortdesc>Describes how to stop a periodic timer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To stop a periodic timer, call <codeph>Cancel()</codeph>. After the cancel,
-the <codeph>CPeriodic</codeph> may be started again, and so on until it is
-destroyed.</p>
-<codeblock id="GUID-2A0611B0-FBCE-5D1D-89F2-39502F68A7BF-GENID-1-8-1-14-1-1-4-1-4-1-22-1-6-1-4-1-3-2" xml:space="preserve">
-iPeriodic-&gt;Cancel();
-</codeblock>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-7-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A0531C8B-22F2-5FAE-9F37-92BACBBD9EEB-GENID-1-8-1-14-1-1-4-1-4-1-22-1-7-1-4-1" xml:lang="en"><title>How
-to stop a periodic timer</title><shortdesc>Describes how to stop a periodic timer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To stop a periodic timer, call <codeph>Cancel()</codeph>. After the cancel,
-the <codeph>CPeriodic</codeph> may be started again, and so on until it is
-destroyed.</p>
-<codeblock id="GUID-2A0611B0-FBCE-5D1D-89F2-39502F68A7BF-GENID-1-8-1-14-1-1-4-1-4-1-22-1-7-1-4-1-3-2" xml:space="preserve">
-iPeriodic-&gt;Cancel();
-</codeblock>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-4-1-10-1" xml:lang="en"><title>MmfExFormatPlugin:
-Multimedia Framework format encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExFormatPlugin</filepath> demonstrates
-how to implement format encoder and decoder plug-ins for the Multimedia Framework.
-Multimedia data is usually packaged in a particular format, which specify
-the properties of the data (e.g. duration, frame intervals), and how the buffers
-for holding the data are organised. A format decoder plug-in is responsible
-for reading a particular format; a format encoder plug-in for writing a particular
-format. </p> <p>The example handles the RAW audio format (PCM data with no
-headers). The decoder plug-in <codeph>CMMFRawFormatRead</codeph> reads RAW
-audio; it implements the ECom interface <codeph>CMMFFormatDecode</codeph>.
-The encoder plug-in <codeph>CMMFRawFormatWrite</codeph> writes RAW audio:
-it implements the ECom interface <codeph>CMMFFormatEncode</codeph>. </p> </section>
-<section id="GUID-274A59C1-E06A-584E-A014-6DBDFA772CB8-GENID-1-8-1-18-1-1-4-1-10-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.zip" scope="external">MmfExFormatPlugin.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-765257E7-403F-3D8E-8A5E-E1679F247F33.dita"><apiname>CMMFFormatDecode </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref> <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname> CMMFDataBuffer </apiname></xref>  <xref href="GUID-3E6BEFFD-698D-397A-9112-C9D330B5244B.dita"><apiname>CMMFChannelAndSampleRateConverterFactory </apiname></xref>  <xref href="GUID-A032838C-1F41-328E-900A-2683B1EBF1A7.dita"><apiname>CMMFChannelAndSampleRateConverter </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref> <xref href="GUID-9CD77063-1956-3EA9-9A82-17FDD6497CC7.dita"><apiname> CMMFFormatEncode </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-5-1-7-1-6-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716-GENID-1-8-1-18-1-1-5-1-7-1-6-1-6-1" xml:lang="en"><title>MmfExFormatPlugin:
-Multimedia Framework format encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Description</title> <p> <filepath>MmfExFormatPlugin</filepath> demonstrates
-how to implement format encoder and decoder plug-ins for the Multimedia Framework.
-Multimedia data is usually packaged in a particular format, which specify
-the properties of the data (e.g. duration, frame intervals), and how the buffers
-for holding the data are organised. A format decoder plug-in is responsible
-for reading a particular format; a format encoder plug-in for writing a particular
-format. </p> <p>The example handles the RAW audio format (PCM data with no
-headers). The decoder plug-in <codeph>CMMFRawFormatRead</codeph> reads RAW
-audio; it implements the ECom interface <codeph>CMMFFormatDecode</codeph>.
-The encoder plug-in <codeph>CMMFRawFormatWrite</codeph> writes RAW audio:
-it implements the ECom interface <codeph>CMMFFormatEncode</codeph>. </p> </section>
-<section id="GUID-274A59C1-E06A-584E-A014-6DBDFA772CB8-GENID-1-8-1-18-1-1-5-1-7-1-6-1-6-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.zip" scope="external">MmfExFormatPlugin.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.html" scope="peer">browse </xref> to view the example code. </p> </section>
-<section><title>Class summary</title><p> <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-765257E7-403F-3D8E-8A5E-E1679F247F33.dita"><apiname>CMMFFormatDecode </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref> <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname> CMMFDataBuffer </apiname></xref>  <xref href="GUID-3E6BEFFD-698D-397A-9112-C9D330B5244B.dita"><apiname>CMMFChannelAndSampleRateConverterFactory </apiname></xref>  <xref href="GUID-A032838C-1F41-328E-900A-2683B1EBF1A7.dita"><apiname>CMMFChannelAndSampleRateConverter </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref> <xref href="GUID-9CD77063-1956-3EA9-9A82-17FDD6497CC7.dita"><apiname> CMMFFormatEncode </apiname></xref>  </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A0620D7E-F54C-5DE1-BED9-B34C5B851716" xml:lang="en"><title>MmfExFormatPlugin:
+Multimedia Framework format encoder/decoder plug-ins example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p> <filepath>MmfExFormatPlugin</filepath> demonstrates
+how to implement format encoder and decoder plug-ins for the Multimedia Framework.
+Multimedia data is usually packaged in a particular format, which specify
+the properties of the data (e.g. duration, frame intervals), and how the buffers
+for holding the data are organised. A format decoder plug-in is responsible
+for reading a particular format; a format encoder plug-in for writing a particular
+format. </p> <p>The example handles the RAW audio format (PCM data with no
+headers). The decoder plug-in <codeph>CMMFRawFormatRead</codeph> reads RAW
+audio; it implements the ECom interface <codeph>CMMFFormatDecode</codeph>.
+The encoder plug-in <codeph>CMMFRawFormatWrite</codeph> writes RAW audio:
+it implements the ECom interface <codeph>CMMFFormatEncode</codeph>. </p> </section>
+<section id="GUID-274A59C1-E06A-584E-A014-6DBDFA772CB8"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.zip" scope="external">MmfExFormatPlugin.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c45b20eb-0700-4957-9e3a-d7c3e5a2180f.html" scope="peer">browse </xref> to view the example code. </p> </section>
+<section><title>Class summary</title><p> <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink </apiname></xref>  <xref href="GUID-765257E7-403F-3D8E-8A5E-E1679F247F33.dita"><apiname>CMMFFormatDecode </apiname></xref>  <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource </apiname></xref> <xref href="GUID-AE26E6A4-C1AD-3B35-B5F7-CE0AB60169BB.dita"><apiname> CMMFDataBuffer </apiname></xref>  <xref href="GUID-3E6BEFFD-698D-397A-9112-C9D330B5244B.dita"><apiname>CMMFChannelAndSampleRateConverterFactory </apiname></xref>  <xref href="GUID-A032838C-1F41-328E-900A-2683B1EBF1A7.dita"><apiname>CMMFChannelAndSampleRateConverter </apiname></xref>  <xref href="GUID-9A7A83ED-592B-3A0C-BABB-3B90099BCF7C.dita"><apiname>CMMFBuffer </apiname></xref> <xref href="GUID-9CD77063-1956-3EA9-9A82-17FDD6497CC7.dita"><apiname> CMMFFormatEncode </apiname></xref>  </p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e237205_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A10EAF58-6B9F-55A5-B3E4-3D4B91A93C41_d0e240942_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE"><title>What are Access Points</title><shortdesc>This topic describes the concept of an <i>Access Point</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Layer can make a service available to the Layer immediately above it. The service is called an Access Point. </p> <p>Each Layer except the highest Layer can have an Access Point. The highest Layer is called the Application Layer. The Communications Framework can limit the use of an Access Point to selected clients. </p> <p>The following diagram shows five Access Points. Each Access Point offers a service to the Layer above it. </p> <fig id="GUID-C002DF58-616A-5F4F-A0C7-5C66C6B9B597"><title>
-          Access Points in the Communications Framework
-        </title> <image href="GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e82985_href.png" placement="inline"/></fig> <p>In this diagram the Link Layer has three bearers. Each bearer has an Access Point. An application or a Layer above the Link Layer does not need to know which bearer in the Link Layer is in use during the connection. The Communication Framework can replace the bearer with another bearer. The Communication Framework does not need to tell the application when the bearer changes. An application can continue to send and receive data when the change occurs. </p> <p>For example, consider an email application on a device. The device connects over a GPRS network. A short time later the device detects that a Wi-Fi connection is available. This event can occur if the device has moved from an office location to a coffee shop. The device can have a selection policy. The policy can state that the device switch to WiFi without the creation of a new connection. </p> <p>The selection policy contains a list of Access Points in order of priority. Device manufacturers, Network Operators and users can configure the order of priority. The priority can be based on items like available bandwidth and cost. An alternative to selection policy is the concept of connection preference. For example, a device connects with a specific bearer (for example, GPRS) unless the application changes the bearer explicitly. </p> <p>It is useful to note that an Internet Access Point (IAP) is a specialisation of the Access Point concept for a Link Layer. IAPs identify a service to be accessed through a concrete link-layer bearer. Each IAP has an associated Access Point with the same physical value. </p> </conbody><related-links><link href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-57197DDE-9DE0-5978-8F2F-D2E370489E3C"><linktext> IAP</linktext> </link> <link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE"><title>What are Access Points</title><shortdesc>This topic describes the concept of an <i>Access Point</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>A Layer can make a service available to the Layer immediately above it. The service is called an Access Point. </p> <p>Each Layer except the highest Layer can have an Access Point. The highest Layer is called the Application Layer. The Communications Framework can limit the use of an Access Point to selected clients. </p> <p>The following diagram shows five Access Points. Each Access Point offers a service to the Layer above it. </p> <fig id="GUID-C002DF58-616A-5F4F-A0C7-5C66C6B9B597"><title>
+          Access Points in the Communications Framework
+        </title> <image href="GUID-90076A13-E062-5A7B-BB0F-168F7C8A96DD_d0e76273_href.png" placement="inline"/></fig> <p>In this diagram the Link Layer has three bearers. Each bearer has an Access Point. An application or a Layer above the Link Layer does not need to know which bearer in the Link Layer is in use during the connection. The Communication Framework can replace the bearer with another bearer. The Communication Framework does not need to tell the application when the bearer changes. An application can continue to send and receive data when the change occurs. </p> <p>For example, consider an email application on a device. The device connects over a GPRS network. A short time later the device detects that a Wi-Fi connection is available. This event can occur if the device has moved from an office location to a coffee shop. The device can have a selection policy. The policy can state that the device switch to WiFi without the creation of a new connection. </p> <p>The selection policy contains a list of Access Points in order of priority. Device manufacturers, Network Operators and users can configure the order of priority. The priority can be based on items like available bandwidth and cost. An alternative to selection policy is the concept of connection preference. For example, a device connects with a specific bearer (for example, GPRS) unless the application changes the bearer explicitly. </p> <p>It is useful to note that an Internet Access Point (IAP) is a specialisation of the Access Point concept for a Link Layer. IAPs identify a service to be accessed through a concrete link-layer bearer. Each IAP has an associated Access Point with the same physical value. </p> </conbody><related-links><link href="GUID-387A8240-0765-52F2-98A4-8F9FC809E03E.dita#GUID-387A8240-0765-52F2-98A4-8F9FC809E03E/GUID-57197DDE-9DE0-5978-8F2F-D2E370489E3C"><linktext> IAP</linktext> </link> <link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA" xml:lang="en"><title>Receiving
-long-tap events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To  receive long-tap events in your application using the Touch UI utilities
-API, follow the steps below:</p>
-<ol>
-<li id="GUID-4726E563-99AA-42E8-8AED-63BC9F176A83"><p>Link the AVKON libraries <codeph>avkon.lib</codeph> and <codeph>eikcoctl.lib</codeph> to
-the project file of the application.</p></li>
-<li id="GUID-95DE053E-A494-4C33-8FDB-125C77370EC1"><p>Provide an observer
-class that implements the <codeph>MAknLongTapDetectorCallBack</codeph> interface.</p></li>
-<li id="GUID-3E2B0808-78F8-48B6-8A58-B1A41C8DB5D6"><p>Create an instance of
-the class <codeph>CAknLongTapDetector</codeph> and pass pointer events to
-the long-tap detector.</p></li>
-<li id="GUID-C7E73EDE-6BC3-4E51-9E18-675FD3B32881"><p>Receive long-tap events
-through the observer interface.</p></li>
-<li id="GUID-04839B40-D170-484E-A4BC-C724FB715814"><p>Delete the long-tap
-detector.</p></li>
-</ol>
-<p>Use cases for the long-tap detector are shown in the figure below.</p>
-<fig id="GUID-1439445E-81AB-4AA4-86E0-00F53CD46D8F">
-<title>Touch UI utilities API use cases</title>
-<image href="GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e80545_href.png" scale="70" placement="inline"/>
-</fig>
-<p>To use the Touch UI utilities long-tap detector in your application, implement
-the following use cases.</p>
-<ul>
-<li><p><xref href="GUID-4102F39E-6215-44AD-9E30-6D8E86114D7D.dita">Creating the
-long-tap detector</xref></p></li>
-<li><p><xref href="GUID-C0C93B8A-C63C-424E-9C30-5D69C1578660.dita">Handling long-tap
-events</xref></p></li>
-<li><p><xref href="GUID-96228425-F2C8-4767-95AD-520C655B73C5.dita">Deleting long-tap
-detector</xref></p></li>
-</ul>
-<p>The following use cases are optional, allowing you to set additional properties
-for your long-tap detector.</p>
-<ul>
-<li><p><xref href="GUID-92281C52-4F2E-4D9A-9D5A-E0C5F0433339.dita">Enabling and
-disabling the long-tap detector</xref></p></li>
-<li><p><xref href="GUID-BEA5E4F1-B355-47A1-99DC-8E8EDB7B1CB3.dita">Setting the
-time after which the long-tap event is sent</xref></p></li>
-<li><p><xref href="GUID-BF3767E9-054E-4894-9216-00866FC9C3D8.dita">Setting the
-time before the long-tap animation starts</xref></p></li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A15EDC87-A6EF-40D8-AA78-B52449465FEA" xml:lang="en"><title>Receiving
+long-tap events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To  receive long-tap events in your application using the Touch UI utilities
+API, follow the steps below:</p>
+<ol>
+<li id="GUID-4726E563-99AA-42E8-8AED-63BC9F176A83"><p>Link the AVKON libraries <codeph>avkon.lib</codeph> and <codeph>eikcoctl.lib</codeph> to
+the project file of the application.</p></li>
+<li id="GUID-95DE053E-A494-4C33-8FDB-125C77370EC1"><p>Provide an observer
+class that implements the <codeph>MAknLongTapDetectorCallBack</codeph> interface.</p></li>
+<li id="GUID-3E2B0808-78F8-48B6-8A58-B1A41C8DB5D6"><p>Create an instance of
+the class <codeph>CAknLongTapDetector</codeph> and pass pointer events to
+the long-tap detector.</p></li>
+<li id="GUID-C7E73EDE-6BC3-4E51-9E18-675FD3B32881"><p>Receive long-tap events
+through the observer interface.</p></li>
+<li id="GUID-04839B40-D170-484E-A4BC-C724FB715814"><p>Delete the long-tap
+detector.</p></li>
+</ol>
+<p>Use cases for the long-tap detector are shown in the figure below.</p>
+<fig id="GUID-1439445E-81AB-4AA4-86E0-00F53CD46D8F">
+<title>Touch UI utilities API use cases</title>
+<image href="GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e75413_href.png" scale="70" placement="inline"/>
+</fig>
+<p>To use the Touch UI utilities long-tap detector in your application, implement
+the following use cases.</p>
+<ul>
+<li><p><xref href="GUID-4102F39E-6215-44AD-9E30-6D8E86114D7D.dita">Creating the
+long-tap detector</xref></p></li>
+<li><p><xref href="GUID-C0C93B8A-C63C-424E-9C30-5D69C1578660.dita">Handling long-tap
+events</xref></p></li>
+<li><p><xref href="GUID-96228425-F2C8-4767-95AD-520C655B73C5.dita">Deleting long-tap
+detector</xref></p></li>
+</ul>
+<p>The following use cases are optional, allowing you to set additional properties
+for your long-tap detector.</p>
+<ul>
+<li><p><xref href="GUID-92281C52-4F2E-4D9A-9D5A-E0C5F0433339.dita">Enabling and
+disabling the long-tap detector</xref></p></li>
+<li><p><xref href="GUID-BEA5E4F1-B355-47A1-99DC-8E8EDB7B1CB3.dita">Setting the
+time after which the long-tap event is sent</xref></p></li>
+<li><p><xref href="GUID-BF3767E9-054E-4894-9216-00866FC9C3D8.dita">Setting the
+time before the long-tap animation starts</xref></p></li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A188606F-4A8E-5A85-A241-E15219960EFA" xml:lang="en"><title>Loader
-Overview</title><shortdesc>This topic describes the overview, purpose, key concepts and architecture
-of loader.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-AE825AB3-3799-5A7A-A74D-D6E457A6997E"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-E36370EC-CD5E-54AE-AD62-2BA3B70F5379">Purpose</xref>  </p> </li>
-<li id="GUID-9D2C951C-6092-53BB-BFA9-4D33230721FA"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-89A8CABD-6B31-5D10-87F6-922CCFB83186">Key concepts</xref>  </p> </li>
-<li id="GUID-B21577D8-3B8B-596F-A3B6-6AC2538F6F28"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-64154337-D706-5DE1-9319-4FEA6181EFC4">Architectural relationships</xref>  </p> </li>
-</ul>
-<section id="GUID-E36370EC-CD5E-54AE-AD62-2BA3B70F5379"><title>Purpose</title> <p>The
-loader makes EXEs and DLLs ready to run. </p> <p>The build tools compile the
-source code into an executable file. An executable file is called a binary.
-The build tools arrange the compiled code into EXEs and DLLs. The source code,
-header files and other information that defines an executable file is defined
-in an mmp file. The loader applies relocation information to the code and
-data sections of EXEs and DLLs. The loader also loads DLLs that are referred
-to by other EXEs and DLLs. EXEs and DLLs can then run in the process into
-which they are loaded. </p> </section>
-<section id="GUID-89A8CABD-6B31-5D10-87F6-922CCFB83186"><title>Key concepts</title> <p><b>The loader server</b> </p> <p>The Symbian platform loader is a server.
-The loader server has no public client interface. The client interface is
-internal to Symbian platform. Requests to load an EXE or a DLL are passed
-to the loader when you do the following: </p> <ul>
-<li id="GUID-5DFBB7F5-2F30-50C7-9144-3D6D85C0ACA1"><p>start a new process
-- a call to <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>  </p> </li>
-<li id="GUID-B88FC041-7643-5CA0-9796-A51E64CAA1DF"><p>load a DLL - a call
-to <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>  </p> </li>
-<li id="GUID-A7578989-6BDB-5CEA-B3C3-0B5A08E57166"><p>load a logical device
-driver - a call to <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-AE0D51B7-7ADC-3C9F-ACAA-8F6D9EA0AEFA"><apiname>User::LoadLogicalDevice()</apiname></xref>. A logical
-device driver is a type of DLL. </p> </li>
-<li id="GUID-34DC54FE-FCEF-5F83-B205-9BA5B7140680"><p>load a physical device
-driver - a call to <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-A0F4BF4A-9C58-3E5E-88E1-6D98597DDA18"><apiname>User::LoadPhysicalDevice()</apiname></xref>. A physical
-device driver is a type of DLL. </p> </li>
-<li id="GUID-51318E5E-4534-589B-B4BD-92D73F832A6F"><p>load a file system -
-a call to <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-51353BE2-9133-39F5-83F3-A5DB88D858CA"><apiname>RFs::AddFileSystem()</apiname></xref>. A file system is a type
-of DLL. A call to <codeph>RFs::AddFileSystem()</codeph> requires DiskAdmin
-capability. See <xref href="GUID-99D8A4E8-BC4F-39FF-A3DF-832CF0411629.dita"><apiname>ECapabilityDiskAdmin</apiname></xref>. </p> </li>
-<li id="GUID-8394C231-341B-5EA6-B9C2-01F75685813D"><p>load a file server extension
-- call to <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D45FD363-EEF9-3F77-8FA1-49270D8E89A0"><apiname>RFs::AddExtension()</apiname></xref>. A file server extension
-is a type of DLL. This function requires DiskAdmin capability. See <xref href="GUID-99D8A4E8-BC4F-39FF-A3DF-832CF0411629.dita"><apiname>ECapabilityDiskAdmin</apiname></xref>. </p> </li>
-<li id="GUID-F1889916-80EB-55B6-BEAF-F66164F3838C"><p>load a locale - a call
-to <xref href="GUID-454ACAB5-1573-323C-820E-AF542B149D2A.dita#GUID-454ACAB5-1573-323C-820E-AF542B149D2A/GUID-9F04584E-DD0B-39CE-8666-88F67F3B83BF"><apiname>TExtendedLocale::LoadLocale()</apiname></xref>. </p> </li>
-</ul> <p><b>Version
-numbers</b> </p> <p><b>The
-reason for version numbers</b> </p> <p>More than one version of an EXE can
-exist on a device at the same time. More than one version of a DLL can exist
-on a device at the same time. A device can store versions of an EXE or DLL
-that are not compatible with an older version of that EXE or DLL. </p> <p>A
-version number is a set of two numbers. The loader uses these numbers to identify
-copies of the executable file. The two numbers are called the major version
-number and the minor version number. The build tools encode the two numbers
-into the header of the executable file. When a DLL is built, the version numbers
-are encoded into the import library. </p> <p><b>The
-structure of version information</b> </p> <p>DLLs are the most common users
-of versions. You assign new values to the version numbers of a DLL when you
-change the published API of the DLL. Symbian recommends the following procedure: </p> <ul>
-<li id="GUID-A3D6B7C6-E48E-5374-8EFE-29EB129FEE04"><p>change the minor version
-number if you make a change to a DLL that is backward compatible. An example
-is a new function in the DLL. </p> </li>
-<li id="GUID-F6813400-1E6A-58B9-8360-7FD364F2153A"><p>change the major version
-number if you make a change to a DLL that breaks an interface. An example
-is the removal of a function or a change to the signature of a function. An
-interface break is disruptive and must be prevented. </p> </li>
-</ul> <p>The major and minor version numbers are defined in the <filepath>.mmp</filepath> file
-that defines the source code, header files and other options that apply to
-the executable file. </p> <p>If you do not specify version numbers, the build
-tools apply the following default values: </p> <ul>
-<li id="GUID-CBF4D098-3A83-53E6-9E54-0A9B487D6E22"><p>Major version number
-: 10 </p> </li>
-<li id="GUID-46E7516E-988B-5F92-9877-FEE17D3F26A7"><p>Minor version number
-: 0 </p> </li>
-</ul> <p>The major version number and the minor version number are stored
-in the header of an EXE and DLL. The two numbers are stored in a single 32
-bit value. The high 16 bits hold the major version number. The low 16 bits
-hold the minor version number. </p> <p>When you build a DLL, the build tools
-encode the version numbers into the filename of the import library (the <filepath>.lib</filepath> file).
-The build tools also create an import library that does not have the version
-numbers encoded as part of the filename.The following example shows how the
-version numbers are encoded in the filename. The major version number is (decimal)
-11 and the minor version number is (decimal) 2. The version numbers in the
-filename are in hexadecimal. </p> <p> <filepath>abcdsrv{000B0002}.lib</filepath>  </p> <p>Notes: </p> <ul>
-<li id="GUID-7DC90016-5A54-5939-84B1-DDB0B2D4D9F5"><p>The left bracket and
-the right bracket are part of the name. </p> </li>
-<li id="GUID-BC291976-EB6D-59D2-8941-64F6ED3AC191"><p>The first four digits
-after the open bracket are the hexadecimal representation of the major version
-number. </p> </li>
-<li id="GUID-51590778-985F-5DCC-9191-E937B1058F51"><p>The second four digits
-are the hexadecimal representation of the minor version number. </p> </li>
-</ul> <p>The build tools do not encode the version numbers in the filename
-of the executable file. </p> <p><b>Loader
-search rules</b> </p> <p>EXEs and DLLs can exist on more than one drive. There
-can be more than one version of an EXE and more than one version of a DLL.
-The loader uses search rules to select the EXE and DLL to load. </p> <p>See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita">Loader search rules</xref>  </p> <p><b>Emulator</b> </p> <p>Version numbers are stored in import files for DLLs
-that run on devices and the emulator. Version numbers change how the loader
-functions on devices, but not in the emulator. You cannot encode the version
-numbers in the import library file name on the emulator. </p> <p><b>Tools support</b> </p> <p>Use the build tools to apply version numbers
-to EXEs and DLLs. You specify version numbers in the <filepath>.mmp</filepath> file
-that describes the EXE or DLL. </p> <p>See also <xref href="GUID-BBBB5000-90A2-503A-9521-2FC6DEC69DC8.dita">mmp
-file syntax</xref> and <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build
-tools guide</xref>. </p> </section>
-<section id="GUID-64154337-D706-5DE1-9319-4FEA6181EFC4"><title>Architectural
-relationships</title> <p>The loader is a server that runs in a separate thread
-in the file server process. The loader is built as part of the file server. </p> <p>The
-loader server starts when the file server starts. The file server starts after
-the kernel is loaded at system start. </p> <p>The loader runs on the user
-side, but calls the kernel for services that are not available to general
-applications. Examples of services are process creation and code segment creation.
-A code segment is an object that represents a piece of code loaded into RAM.
-A code segment also represents a piece of code that runs directly from ROM.
-The kernel services that the loader uses are protected. The file server process
-only is allowed to access these services. </p> <p>The following picture is
-an example of program flow. In this example, a client calls <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>,
-which exists in <filepath>euser.dll</filepath>. Internal functions make client-server
-calls to the loader server. The loader server code exists in <filepath>efile.exe</filepath>.
-The loader server uses kernel services. </p> <fig id="GUID-5FCAE81A-19BC-5BE7-89D2-096A87735381">
-<image href="GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e267853_href.png" placement="inline"/>
-</fig> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A188606F-4A8E-5A85-A241-E15219960EFA" xml:lang="en"><title>Loader
+Overview</title><shortdesc>This topic describes the overview, purpose, key concepts and architecture
+of loader.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-AE825AB3-3799-5A7A-A74D-D6E457A6997E"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-E36370EC-CD5E-54AE-AD62-2BA3B70F5379">Purpose</xref>  </p> </li>
+<li id="GUID-9D2C951C-6092-53BB-BFA9-4D33230721FA"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-89A8CABD-6B31-5D10-87F6-922CCFB83186">Key concepts</xref>  </p> </li>
+<li id="GUID-B21577D8-3B8B-596F-A3B6-6AC2538F6F28"><p> <xref href="GUID-A188606F-4A8E-5A85-A241-E15219960EFA.dita#GUID-A188606F-4A8E-5A85-A241-E15219960EFA/GUID-64154337-D706-5DE1-9319-4FEA6181EFC4">Architectural relationships</xref>  </p> </li>
+</ul>
+<section id="GUID-E36370EC-CD5E-54AE-AD62-2BA3B70F5379"><title>Purpose</title> <p>The
+loader makes EXEs and DLLs ready to run. </p> <p>The build tools compile the
+source code into an executable file. An executable file is called a binary.
+The build tools arrange the compiled code into EXEs and DLLs. The source code,
+header files and other information that defines an executable file is defined
+in an mmp file. The loader applies relocation information to the code and
+data sections of EXEs and DLLs. The loader also loads DLLs that are referred
+to by other EXEs and DLLs. EXEs and DLLs can then run in the process into
+which they are loaded. </p> </section>
+<section id="GUID-89A8CABD-6B31-5D10-87F6-922CCFB83186"><title>Key concepts</title> <p><b>The loader server</b> </p> <p>The Symbian platform loader is a server.
+The loader server has no public client interface. The client interface is
+internal to Symbian platform. Requests to load an EXE or a DLL are passed
+to the loader when you do the following: </p> <ul>
+<li id="GUID-5DFBB7F5-2F30-50C7-9144-3D6D85C0ACA1"><p>start a new process
+- a call to <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>  </p> </li>
+<li id="GUID-B88FC041-7643-5CA0-9796-A51E64CAA1DF"><p>load a DLL - a call
+to <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>  </p> </li>
+<li id="GUID-A7578989-6BDB-5CEA-B3C3-0B5A08E57166"><p>load a logical device
+driver - a call to <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-AE0D51B7-7ADC-3C9F-ACAA-8F6D9EA0AEFA"><apiname>User::LoadLogicalDevice()</apiname></xref>. A logical
+device driver is a type of DLL. </p> </li>
+<li id="GUID-34DC54FE-FCEF-5F83-B205-9BA5B7140680"><p>load a physical device
+driver - a call to <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-A0F4BF4A-9C58-3E5E-88E1-6D98597DDA18"><apiname>User::LoadPhysicalDevice()</apiname></xref>. A physical
+device driver is a type of DLL. </p> </li>
+<li id="GUID-51318E5E-4534-589B-B4BD-92D73F832A6F"><p>load a file system -
+a call to <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-51353BE2-9133-39F5-83F3-A5DB88D858CA"><apiname>RFs::AddFileSystem()</apiname></xref>. A file system is a type
+of DLL. A call to <codeph>RFs::AddFileSystem()</codeph> requires DiskAdmin
+capability. See <xref href="GUID-99D8A4E8-BC4F-39FF-A3DF-832CF0411629.dita"><apiname>ECapabilityDiskAdmin</apiname></xref>. </p> </li>
+<li id="GUID-8394C231-341B-5EA6-B9C2-01F75685813D"><p>load a file server extension
+- call to <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D45FD363-EEF9-3F77-8FA1-49270D8E89A0"><apiname>RFs::AddExtension()</apiname></xref>. A file server extension
+is a type of DLL. This function requires DiskAdmin capability. See <xref href="GUID-99D8A4E8-BC4F-39FF-A3DF-832CF0411629.dita"><apiname>ECapabilityDiskAdmin</apiname></xref>. </p> </li>
+<li id="GUID-F1889916-80EB-55B6-BEAF-F66164F3838C"><p>load a locale - a call
+to <xref href="GUID-454ACAB5-1573-323C-820E-AF542B149D2A.dita#GUID-454ACAB5-1573-323C-820E-AF542B149D2A/GUID-9F04584E-DD0B-39CE-8666-88F67F3B83BF"><apiname>TExtendedLocale::LoadLocale()</apiname></xref>. </p> </li>
+</ul> <p><b>Version
+numbers</b> </p> <p><b>The
+reason for version numbers</b> </p> <p>More than one version of an EXE can
+exist on a device at the same time. More than one version of a DLL can exist
+on a device at the same time. A device can store versions of an EXE or DLL
+that are not compatible with an older version of that EXE or DLL. </p> <p>A
+version number is a set of two numbers. The loader uses these numbers to identify
+copies of the executable file. The two numbers are called the major version
+number and the minor version number. The build tools encode the two numbers
+into the header of the executable file. When a DLL is built, the version numbers
+are encoded into the import library. </p> <p><b>The
+structure of version information</b> </p> <p>DLLs are the most common users
+of versions. You assign new values to the version numbers of a DLL when you
+change the published API of the DLL. Symbian recommends the following procedure: </p> <ul>
+<li id="GUID-A3D6B7C6-E48E-5374-8EFE-29EB129FEE04"><p>change the minor version
+number if you make a change to a DLL that is backward compatible. An example
+is a new function in the DLL. </p> </li>
+<li id="GUID-F6813400-1E6A-58B9-8360-7FD364F2153A"><p>change the major version
+number if you make a change to a DLL that breaks an interface. An example
+is the removal of a function or a change to the signature of a function. An
+interface break is disruptive and must be prevented. </p> </li>
+</ul> <p>The major and minor version numbers are defined in the <filepath>.mmp</filepath> file
+that defines the source code, header files and other options that apply to
+the executable file. </p> <p>If you do not specify version numbers, the build
+tools apply the following default values: </p> <ul>
+<li id="GUID-CBF4D098-3A83-53E6-9E54-0A9B487D6E22"><p>Major version number
+: 10 </p> </li>
+<li id="GUID-46E7516E-988B-5F92-9877-FEE17D3F26A7"><p>Minor version number
+: 0 </p> </li>
+</ul> <p>The major version number and the minor version number are stored
+in the header of an EXE and DLL. The two numbers are stored in a single 32
+bit value. The high 16 bits hold the major version number. The low 16 bits
+hold the minor version number. </p> <p>When you build a DLL, the build tools
+encode the version numbers into the filename of the import library (the <filepath>.lib</filepath> file).
+The build tools also create an import library that does not have the version
+numbers encoded as part of the filename.The following example shows how the
+version numbers are encoded in the filename. The major version number is (decimal)
+11 and the minor version number is (decimal) 2. The version numbers in the
+filename are in hexadecimal. </p> <p> <filepath>abcdsrv{000B0002}.lib</filepath>  </p> <p>Notes: </p> <ul>
+<li id="GUID-7DC90016-5A54-5939-84B1-DDB0B2D4D9F5"><p>The left bracket and
+the right bracket are part of the name. </p> </li>
+<li id="GUID-BC291976-EB6D-59D2-8941-64F6ED3AC191"><p>The first four digits
+after the open bracket are the hexadecimal representation of the major version
+number. </p> </li>
+<li id="GUID-51590778-985F-5DCC-9191-E937B1058F51"><p>The second four digits
+are the hexadecimal representation of the minor version number. </p> </li>
+</ul> <p>The build tools do not encode the version numbers in the filename
+of the executable file. </p> <p><b>Loader
+search rules</b> </p> <p>EXEs and DLLs can exist on more than one drive. There
+can be more than one version of an EXE and more than one version of a DLL.
+The loader uses search rules to select the EXE and DLL to load. </p> <p>See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita">Loader search rules</xref>  </p> <p><b>Emulator</b> </p> <p>Version numbers are stored in import files for DLLs
+that run on devices and the emulator. Version numbers change how the loader
+functions on devices, but not in the emulator. You cannot encode the version
+numbers in the import library file name on the emulator. </p> <p><b>Tools support</b> </p> <p>Use the build tools to apply version numbers
+to EXEs and DLLs. You specify version numbers in the <filepath>.mmp</filepath> file
+that describes the EXE or DLL. </p> <p>See also <xref href="GUID-BBBB5000-90A2-503A-9521-2FC6DEC69DC8.dita">mmp
+file syntax</xref> and <xref href="GUID-B21141D4-3BFE-59C9-8D5F-147A93BE1C95.dita">Build
+tools guide</xref>. </p> </section>
+<section id="GUID-64154337-D706-5DE1-9319-4FEA6181EFC4"><title>Architectural
+relationships</title> <p>The loader is a server that runs in a separate thread
+in the file server process. The loader is built as part of the file server. </p> <p>The
+loader server starts when the file server starts. The file server starts after
+the kernel is loaded at system start. </p> <p>The loader runs on the user
+side, but calls the kernel for services that are not available to general
+applications. Examples of services are process creation and code segment creation.
+A code segment is an object that represents a piece of code loaded into RAM.
+A code segment also represents a piece of code that runs directly from ROM.
+The kernel services that the loader uses are protected. The file server process
+only is allowed to access these services. </p> <p>The following picture is
+an example of program flow. In this example, a client calls <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>,
+which exists in <filepath>euser.dll</filepath>. Internal functions make client-server
+calls to the loader server. The loader server code exists in <filepath>efile.exe</filepath>.
+The loader server uses kernel services. </p> <fig id="GUID-5FCAE81A-19BC-5BE7-89D2-096A87735381">
+<image href="GUID-2735BDAF-295F-5F1E-8925-8F4212D95CD1_d0e264145_href.png" placement="inline"/>
+</fig> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,124 +1,130 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE" xml:lang="en"><title>Capturing
-still images</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To capture still images or to use the display as a viewfinder, build
-your application around the Symbian Ecam camera utility. To make use of the
-device camera to capture an image, the application needs to repeat the steps
-described in the illustration below.</p>
-<fig id="GUID-65212152-6862-4990-9869-CF643B9A5845"><title>The steps required to capture a still image</title><image href="GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e293561_href.png"/></fig>
-<note>
-<p>The settings you can use in your application depend on what the camera
-hardware on the device supports.</p>
-</note>
-<p>To capture images, use the methods of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html" format="application/java-archive"><codeph>CCamera</codeph></xref> and <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html" format="application/java-archive"><codeph>MCameraObserver2</codeph></xref> classes to construct your application. <codeph>MCameraObserver2</codeph> uses
-the advanced camera features of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCCameraAdvancedSettings" format="application/java-archive"><codeph>CCamera::CCameraAdvancedSettings</codeph></xref> class. </p>
-<p>For reference examples, see: </p>
-<ul>
-<li><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">Camera
-Example: Capturing and controlling the images using Camera</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/wiki/index.php/Introduction_to_the_Camera_API" scope="external">Introduction to the Camera API</xref> on the Symbian Foundation</p>
-</li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/9a3e1226-79db-4c8e-bd70-7d9d22aaa6eb/S60_Platform_Camera_Example.html" scope="external">S60 Platform: Camera Example</xref> on Forum Nokia.</p></li>
-</ul>
-<section id="GUID-7AE307AA-8E1E-4F6C-AFC7-4CED1341D785"><title>To capture still images on a mobile device</title>
-<ol>
-<li id="GUID-9E819F98-B4C6-4C0B-A723-F82494E8655B"><p>Initialize
-the onboard camera.</p>
-<ul>
-<li><p>Create a camera object using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aNew2L%28MCameraObserver2%20%26amp%3b%2cTInt%2cTInt%29" format="application/java-archive"><codeph>CCamera::New2L()</codeph></xref> method.</p></li>
-<li><p>Reserve the camera for your application using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aReserve%28%29" format="application/java-archive"><codeph>CCamera::Reserve()</codeph></xref> method. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html#%3a%3aMCameraObserver2%3a%3aHandleEvent%28const%20TECAMEvent%20%26amp%3b%29" format="application/java-archive"><codeph>MCameraObserver2::HandleEvent</codeph></xref> is called upon
-completion.</p></li>
-<li><p>Switch on the camera power using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aPowerOn%28%29" format="application/java-archive"><codeph>CCamera::PowerOn()</codeph></xref> method. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html#%3a%3aMCameraObserver2%3a%3aHandleEvent%28const%20TECAMEvent%20%26amp%3b%29" format="application/java-archive"><codeph>MCameraObserver2::HandleEvent</codeph></xref> is called upon
-completion.</p></li>
-<li><p>If needed, share the camera between multiple clients using
-the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aNewDuplicate2L%28MCameraObserver2%20%26amp%3b%2cTInt%29" format="application/java-archive"><codeph>CCamera::NewDuplicate2L()</codeph></xref> function. This function
-needs the handle of an existing camera object (use <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aHandle%28%29" format="application/java-archive"><codeph>CCamera::Handle()</codeph></xref>).</p></li>
-</ul>
-</li>
-<li id="GUID-1A42718C-0158-4BB6-B99F-48278369C3F3"><p>Configure
-the camera settings.</p>
-<ul>
-<li><p>Before you adjust the settings, make sure the camera hardware
-supports the particular option. Use <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCameraInfo%28TCameraInfo%20%26amp%3b%29const" format="application/java-archive"><codeph>CCamera::CameraInfo()</codeph></xref> to retrieve and <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/TCameraInfoClass.html" format="application/java-archive"><codeph>TCameraInfo</codeph></xref> to
-specify the camera information.</p><p>For example, to find out what
-image formats are supported by the onboard camera, use the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/TCameraInfoClass.html#%3a%3aTCameraInfo%3a%3aiImageFormatsSupported" format="application/java-archive"><codeph>TCameraInfo::iImageFormatsSupported</codeph></xref> member variable.</p></li>
-<li><p>Specify the image format using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aPrepareImageCaptureL%28TFormat%2cTInt%29" format="application/java-archive"><codeph>CCamera::PrepareImageCaptureL</codeph></xref> method. For a list of
-possible formats, see <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aTFormat" format="application/java-archive"><codeph>CCamera::TFormat</codeph></xref>.</p><p>Devices support image capture in EXIF JPEG format (<xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aEFormatExif" format="application/java-archive"><codeph>CCamera::EFormatExif</codeph></xref>), which is encoded with
-JPEG and requires no additional conversion.</p></li>
-<li><p>Specify the desired image size using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aEnumerateCaptureSizes%28TSize%20%26amp%3b%2cTInt%2cTFormat%29const" format="application/java-archive"><codeph>CCamera::EnumerateCaptureSizes()</codeph></xref> method.</p>
-</li>
-<li><p>Additionally, you can set, for example, the brightness, contrast,
-zoom level, flash mode, exposure and white balance of the image. For more
-information on the options, see the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCCameraAdvancedSettings" format="application/java-archive"><codeph>CCamera::CCameraAdvancedSettings</codeph></xref> class. You can also use the settings directly under <codeph>CCamera</codeph>.</p>
-</li>
-</ul>
-<ul>
-<li><p>Before you can call <codeph>CCamera::CaptureImage()</codeph>,
-allocate memory and set up image format, size and clipping rectangle using
-the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aPrepareImageCaptureL%28TFormat%2cTInt%29" format="application/java-archive"><codeph>CCamera::PrepareImageCaptureL()</codeph></xref> method. This
-needs to be called only once for multiple captures.</p></li>
-</ul>
-</li>
-<li id="GUID-A7ED7A90-1432-4905-A0A5-0CC725997127"><p>Use the display
-of the device as a viewfinder by transferring image data from the camera to
-the display memory.</p>
-<ul>
-<li><p>Start the transfer of viewfinder data with direct screen
-access using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aStartViewFinderDirectL%28RWsSession%20%26amp%3b%2cCWsScreenDevice%20%26amp%3b%2cRWindowBase%20%26amp%3b%2cTRect%20%26amp%3b%29" format="application/java-archive"><codeph>CCamera::StartViewFinderDirectL()</codeph></xref> method.</p>
-</li>
-<li><p>Transfer viewfinder data as a bitmap using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aStartViewFinderBitmapsL%28TSize%20%26amp%3b%29" format="application/java-archive"><codeph>CCamera::StartViewFinderBitmapsL()</codeph></xref> method.
- <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html#%3a%3aMCameraObserver2%3a%3aViewFinderReady%28MCameraBuffer%20%26amp%3b%2cTInt%29" format="application/java-archive"><codeph>MCameraObserver2::ViewFinderReady</codeph></xref> is called
-upon completion.</p></li>
-<li><p>Set viewfinder mirroring on and flip the image horizontally
-using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aSetViewFinderMirrorL%28TBool%29" format="application/java-archive"><codeph>CCamera::SetViewFinderMirrorL()</codeph></xref> method.</p>
-</li>
-<li><p>Stop the transfer of viewfinder data to the screen using
-the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aStopViewFinder%28%29" format="application/java-archive"><codeph>CCamera::StopViewFinder()</codeph></xref> method.</p></li>
-</ul>
-</li>
-<li id="GUID-136AEB7B-B618-456E-A7AA-27105A50B9DE"><p>Capture one
-or multiple images using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCaptureImage%28%29" format="application/java-archive"><codeph>CCamera::CaptureImage()</codeph></xref> method. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html#%3a%3aMCameraObserver2%3a%3aImageBufferReady%28MCameraBuffer%20%26amp%3b%2cTInt%29" format="application/java-archive"><codeph>MCameraObserver2::ImageBufferReady()</codeph></xref> is called
-upon completion.</p></li>
-<li id="GUID-9EF06D1B-EB64-4406-A97F-FE0C9DA1664F"><p>To exit the
-application or to switch it to the background, switch off the camera power
-using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aPowerOff%28%29" format="application/java-archive"><codeph>CCamera::PowerOff()</codeph></xref> method and release the
-camera for other applications using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aRelease%28%29" format="application/java-archive"><codeph>CCamera::Release()</codeph></xref> method.</p></li>
-<li id="GUID-DDC63446-DACC-434D-B6EE-E661C4FC2813"><p>The <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html" format="application/java-archive"><codeph>CCamera</codeph></xref> and <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/MCameraObserver2Class.html" format="application/java-archive"><codeph>MCameraObserver2</codeph></xref> classes
-are defined in the <codeph>ecam.h</codeph> header file. Add the following
-line to the <codeph>.h</codeph> file, which is used to deploy the API:</p>
-<codeblock id="GUID-BB25E774-4122-47AE-BDDD-6691BEAEB15E" xml:space="preserve">#include &lt;ecam.h&gt;</codeblock>
-</li>
-<li id="GUID-0053A8A8-8664-4E35-8D80-EA579503C463"><p>Make sure
-you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
-set for your application. You need at least the <codeph>UserEnvironment</codeph> capability.</p>
-</li>
-<li id="GUID-CE8449BB-25A8-462A-8010-6B64F0120603"><p>Make sure <codeph>ecam.lib</codeph> is
-accessible to your linker when compiling your application by including it
-in your <codeph>mmp</codeph> file or by editing the project properties in
-your IDE, depending on your build environment.</p></li>
-</ol>
-</section>
-<section id="GUID-D10C038A-76EF-4E4A-9008-3FB1F5F487EA"><title>See also</title>
-<p><xref href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita">Capturing Image</xref></p>
-<p><xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita">Controlling Pre-Image
-Capture </xref></p>
-<p><xref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita">Controlling Captured
-Image</xref></p>
-<p><xref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita">Controlling Still-image
-Capture</xref></p>
-<p><xref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita">Using Time Nudge
-Capture Drive Mode </xref></p>
-<p><xref href="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita">Background Processing
-for Ecam</xref></p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE" xml:lang="en"><title>Capturing
+Still Images</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To capture still images or to use the display as a viewfinder, build
+your application around the Symbian Ecam camera utility. To make use of the
+device camera to capture an image, the application needs to repeat the steps
+described in the illustration below.</p>
+<fig id="GUID-65212152-6862-4990-9869-CF643B9A5845"><title>The steps required to capture a still image</title><image href="GUID-5FE10ECA-1FAB-4E4F-A1D9-67D379EE8CB3_d0e290304_href.png"/></fig>
+<p>Important implementation considerations include:</p>
+<ul>
+<li><p>The settings you can use in your application depend on what
+the camera hardware on the device supports.</p></li>
+<li><p>To capture images, use the methods of the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> and <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref> classes
+to construct your application. <codeph>MCameraObserver2</codeph> uses the
+advanced camera features of the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref> class.
+The <codeph>CCamera</codeph> and <codeph>MCameraObserver2</codeph> classes
+are defined in the <codeph>ecam.h</codeph> header file. Add the following
+line to the <codeph>.h</codeph> file, which is used to deploy the API:</p>
+<codeblock id="GUID-BB25E774-4122-47AE-BDDD-6691BEAEB15E" xml:space="preserve">#include &lt;ecam.h&gt;</codeblock>
+</li>
+<li><p>Make sure you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
+set for your application. You need at least the <codeph>UserEnvironment</codeph> capability.</p>
+</li>
+<li><p>Make sure <codeph>ecam.lib</codeph> is accessible to your
+linker when compiling your application by including it in your <codeph>mmp</codeph> file
+or by editing the project properties in your IDE, depending on your build
+environment.</p></li>
+</ul>
+<section id="GUID-7AE307AA-8E1E-4F6C-AFC7-4CED1341D785"><title>To capture still
+images on a mobile device</title>
+<ol>
+<li id="GUID-9E819F98-B4C6-4C0B-A723-F82494E8655B"><p>Initialize
+the onboard camera.</p>
+<ul>
+<li><p>Create a camera object using the <codeph>CCamera::New2L()</codeph> method.</p>
+</li>
+<li><p>Reserve the camera for your application using the <codeph>CCamera::Reserve()</codeph> method. <codeph>MCameraObserver2::HandleEvent</codeph> is called upon completion.</p></li>
+<li><p>Switch on the camera power using the <codeph>CCamera::PowerOn()</codeph> method. <codeph>MCameraObserver2::HandleEvent</codeph> is
+called upon completion.</p></li>
+<li><p>If needed, share the camera between multiple clients using
+the <codeph>CCamera::NewDuplicate2L()</codeph> function. This function needs
+the handle of an existing camera object (use <codeph>CCamera::Handle()</codeph>).</p>
+</li>
+</ul>
+</li>
+<li id="GUID-1A42718C-0158-4BB6-B99F-48278369C3F3"><p>Configure
+the camera settings.</p>
+<ul>
+<li><p>Before you adjust the settings, make sure the camera hardware
+supports the particular option. Use <codeph>CCamera::CameraInfo()</codeph> to
+retrieve and <codeph>TCameraInfo</codeph> to specify the camera information.</p>
+<p>For example, to find out what image formats are supported by the onboard
+camera, use the <codeph>TCameraInfo::iImageFormatsSupported</codeph> member
+variable.</p></li>
+<li><p>Specify the image format using the <codeph>CCamera::PrepareImageCaptureL</codeph> method.
+For a list of possible formats, see <codeph>CCamera::TFormat</codeph>.</p>
+<p>Devices support image capture in EXIF JPEG format (<codeph>CCamera::EFormatExif</codeph>),
+which is encoded with JPEG and requires no additional conversion.</p></li>
+<li><p>Specify the desired image size using the <codeph>CCamera::EnumerateCaptureSizes()</codeph> method.</p>
+</li>
+<li><p>Additionally, you can set, for example, the brightness, contrast,
+zoom level, flash mode, exposure and white balance of the image. For more
+information on the options, see the <codeph>CCamera::CCameraAdvancedSettings</codeph> class.
+You can also use the settings directly under <codeph>CCamera</codeph>.</p>
+</li>
+</ul>
+<ul>
+<li><p>Before you can call <codeph>CCamera::CaptureImage()</codeph>,
+allocate memory and set up image format, size and clipping rectangle using
+the <codeph>CCamera::PrepareImageCaptureL()</codeph> method. This needs to
+be called only once for multiple captures.</p></li>
+</ul>
+</li>
+<li id="GUID-A7ED7A90-1432-4905-A0A5-0CC725997127"><p>Use the display
+of the device as a viewfinder by transferring image data from the camera to
+the display memory.</p>
+<ul>
+<li><p>Start the transfer of viewfinder data with direct screen
+access using the <codeph>CCamera::StartViewFinderDirectL()</codeph> method.</p>
+</li>
+<li><p>Transfer viewfinder data as a bitmap using the <codeph>CCamera::StartViewFinderBitmapsL()</codeph> method.
+ <codeph>MCameraObserver2::ViewFinderReady</codeph> is called upon completion.</p>
+</li>
+<li><p>Set viewfinder mirroring on and flip the image horizontally
+using the <codeph>CCamera::SetViewFinderMirrorL()</codeph> method.</p>
+</li>
+<li><p>Stop the transfer of viewfinder data to the screen using
+the <codeph>CCamera::StopViewFinder()</codeph> method.</p></li>
+</ul>
+</li>
+<li id="GUID-136AEB7B-B618-456E-A7AA-27105A50B9DE"><p>Capture one
+or multiple images using the <codeph>CCamera::CaptureImage()</codeph> method. <codeph>MCameraObserver2::ImageBufferReady()</codeph> is
+called upon completion.</p></li>
+<li id="GUID-9EF06D1B-EB64-4406-A97F-FE0C9DA1664F"><p>To exit the
+application or to switch it to the background, switch off the camera power
+using the <codeph>CCamera::PowerOff()</codeph> method and release the camera
+for other applications using the <codeph>CCamera::Release()</codeph> method.</p>
+</li>
+</ol>
+</section>
+<section id="GUID-6DC48744-EF5E-4234-8C48-7A9692338F76"><title>Additional information
+on capturing still images</title>
+<p>For reference examples, see: </p>
+<ul>
+<li><p><xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">Camera
+Example: Capturing and controlling the images using Camera</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/Introduction_to_the_Camera_API" scope="external">Introduction to the Camera API</xref> on the Symbian Foundation</p>
+</li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/9a3e1226-79db-4c8e-bd70-7d9d22aaa6eb/S60_Platform_Camera_Example.html" scope="external">S60 Platform: Camera Example</xref> on Forum Nokia.</p></li>
+</ul>
+<p>For information on how to capture an image using Time-Nudge-Capture
+drive mode, see <xref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita">Using
+Time Nudge Capture Drive Mode </xref>.</p>
+<p>For information on how to capture an image using standalone background
+processing, see <xref href="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita">Background
+Processing for Ecam</xref>.</p>
+<p>For information on displaying images on the screen, see <xref href="GUID-27220B08-B2E7-5106-9BCC-C86938D3E37D.dita">Image
+Display Library Overview</xref></p>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD" xml:lang="en"><title>Themes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term <i>theme</i> refers to a set of design elements installed in
-a package in a mobile device based on the Symbian platform that determines
-the visual appearance of the UI. Themes, also known as <i>skins</i>, only
-affect the visual appearance of the UI, the underlying architecture, interaction
-style, language settings, and general functionality are not affected.</p>
-<fig id="GUID-E0A0BDE6-1863-44E6-8158-B36DD6DD69FD"><title>Personalization through themes</title><image href="GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e46220_href.png"/></fig>
-<p> The Symbian platform provides an API to allow you to support themes
-in your applications. Although a mobile device based on the Symbian platform
-can contain several themes, mobile device users can only activate one theme
-at a time. When a new theme is activated, the appearance of all applications
-that support themes is altered.</p>
-<p>The following list contains some of the UI design elements that can
-change:</p>
-<ul>
-<li><p>display background</p></li>
-<li><p>color palette</p></li>
-<li><p>highlights</p></li>
-<li><p>pop-up window appearance</p></li>
-<li><p>ring tones</p></li>
-<li><p>common component look and feel</p></li>
-</ul>
-<p>Themes also support SVG-T graphics, which allow them to be scalable.
-Themes can contain bitmaps or SVG graphics or a mixture of both. </p>
-<p>For more information on the API that enables theme support in applications,
-see the <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="external">Skins
-API</xref> documentation.</p>
-<p>For information on tools available for creating and modifying themes,
-see <xref href="http://www.forum.nokia.com/main/resources/technologies/nokia_themes.html" scope="external">Forum
-Nokia</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A1DBE03F-728E-4F31-BE74-5BDA3906C8DD" xml:lang="en"><title>Themes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term <i>theme</i> refers to a set of design elements installed in
+a package in a mobile device based on the Symbian platform that determines
+the visual appearance of the UI. Themes, also known as <i>skins</i>, only
+affect the visual appearance of the UI, the underlying architecture, interaction
+style, language settings, and general functionality are not affected.</p>
+<fig id="GUID-E0A0BDE6-1863-44E6-8158-B36DD6DD69FD"><title>Personalization through themes</title><image href="GUID-4C859177-7B45-4569-9E27-B207300A7A1C_d0e40663_href.png"/></fig>
+<p> The Symbian platform provides an API to allow you to support themes
+in your applications. Although a mobile device based on the Symbian platform
+can contain several themes, mobile device users can only activate one theme
+at a time. When a new theme is activated, the appearance of all applications
+that support themes is altered.</p>
+<p>The following list contains some of the UI design elements that can
+change:</p>
+<ul>
+<li><p>display background</p></li>
+<li><p>color palette</p></li>
+<li><p>highlights</p></li>
+<li><p>pop-up window appearance</p></li>
+<li><p>ring tones</p></li>
+<li><p>common component look and feel</p></li>
+</ul>
+<p>Themes also support SVG-T graphics, which allow them to be scalable.
+Themes can contain bitmaps or SVG graphics or a mixture of both. </p>
+<p>For more information on the API that enables theme support in applications,
+see the <xref format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="external">Skins
+API</xref> documentation.</p>
+<p>For information on tools available for creating and modifying themes,
+see <xref href="http://www.forum.nokia.com/main/resources/technologies/nokia_themes.html" scope="external">Forum
+Nokia</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A2031A61-3319-4FBA-BC71-AC1327182053.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A2031A61-3319-4FBA-BC71-AC1327182053.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,91 +1,91 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A2031A61-3319-4FBA-BC71-AC1327182053" xml:lang="en"><title>Getting
-started with C++ Standard Library</title><shortdesc>The Standard C++ library depends on P.I.P.S.. The user must have
-the P.I.P.S. components installed before using the library.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D42A187D-603E-4D66-BAA8-86782B9C2717"><title>C++ IOstream
-and Standard Template Library Documentation</title><p>C++ IOStream library
-documentation can be found at <xref href="http://www.slac.stanford.edu/comp/unix/gnu-info/iostream_toc.html" scope="external">http://www.slac.stanford.edu/comp/unix/gnu-info/iostream_toc.html</xref>.</p><p>Similarly,
-Standard Template Library (STL) documentation can be found at <xref href="http://www.informatik.uni-freiburg.de/~danlee/fun/STL-doc/STL.html" scope="external">http://www.informatik.uni-freiburg.de/~danlee/fun/STL-doc/STL.html</xref>.</p></section>
-<section id="GUID-BF521201-7BE5-4AC5-8D35-1E15AC4887C7-GENID-1-8-1-11-1-1-9-1-5-1-3-2"><title>Changes to
-the MMP file</title><p><b>Add needed libraries used by the MMP file structure: </b></p><p>If
-developers want to use any of Standard C++ library, they must link to the
-corresponding library in the MMP file using the <codeph>LIBRARY</codeph> keyword.</p><p>If
-the application has <codeph>main()</codeph> as the entry point, the library <filepath>libcrt0.lib</filepath> must
-be specified as the first library otherwise, it results in linker errors.
-The user must link to the Symbian platform <filepath>euser.dll</filepath>.
-This is required since the static library uses some of the services of the
-Symbian platform, such as, creating cleanup stack, and having a top level
-TRAP. All these details are hidden from the developer. The developer will
-write the application as if it were for the UNIX environment.</p><codeblock xml:space="preserve">STATICLIBRARY  libcrt0.lib
-LIBRARY        libc.lib 
-LIBRARY        euser.lib  // Needed in order to use Symbian services
-</codeblock><p>The <filepath>libcrt0.lib</filepath> library is required for
-writing to <codeph>E32Main</codeph> within our application (EXE). This static
-library has an implementation of <codeph>E32Main</codeph> within which it
-calls the library initialization method followed by calling main written by
-the developer. This static library also retrieves command-line arguments and
-passes the same to main.</p><p>If the application has <codeph>E32Main()</codeph> as
-an entry point, there is no need to link to <filepath>libcrt0.lib</filepath> like
-in the example below.</p><codeblock xml:space="preserve">LIBRARY         libc.lib 
-LIBRARY         euser.lib</codeblock><p><b>Add required include paths</b></p><codeblock xml:space="preserve">SYSTEMINCLUDE   \epoc32\include\stdapis
-SYSTEMINCLUDE   \epoc32\include\stdapis\sys
-SYSTEMINCLUDE   \epoc32\include\stdapis\stlport 
-</codeblock><p><b>Linking of <codeph>libstdcpp</codeph></b></p><p>Following
-snippet shows how to perform the linking to <codeph>libstdcpp</codeph> on
-an emulator: </p><codeblock xml:space="preserve">#ifdef EPOC32
-LIBRARY  libstdcpp.lib
-#else
-FIRSTLIB ../udeb/libstdcpp.lib
-STATICLIBRARY    eexe.lib 
-#endif</codeblock><p>Add the below option and macro in the MMP file</p><codeblock xml:space="preserve">//This is required even if the wchar type is not used.
-OPTION CW -wchar_t on 
-MACRO  _WCHAR_T_DECLARED</codeblock><note> Standard C++ applications may require
-more stack space. The recommended stack size is 10K. To set the stack size
-to 10K add: </note><codeblock xml:space="preserve">EPOCSTACKSIZE 0x10000</codeblock><p>in the MMP
-file.</p></section>
-<section id="GUID-BF521201-7BE5-4AC5-8D35-1E15AC4887C7-GENID-1-8-1-11-1-1-9-1-5-1-3-3"><title>Example using <codeph>main()</codeph></title> 
-     <p>A simple example using <codeph>main()</codeph> as an entry point is
-described below. The example writes a text to a console.</p><ul>
-<li><p>Modify the MMP file as mentioned before.</p></li>
-<li><p>Do usual C++ style coding.</p></li>
-</ul><codeblock xml:space="preserve">//  Include Files  
-#include &lt;iostream&gt;
-#include &lt;cstring&gt;
-// This is a GCCE toolchain workaround needed when compiling with GCCE
-// and using main() entry point
-#ifdef __GCCE__
-
-// This is a GCCE toolchain workaround needed when compiling with GCCE
-// and using main() entry point
-#ifdef __GCCE__
-
-#include &lt;staticlibinit_gcce.h&gt;
-#endif
-
-using namespace std;
-
-class myclass {
-public:
-  void show(){cout&lt;&lt;"Hello World\n"; }
-} ;
-
-int main()
-{
-  myclass obj;
-  obj.show();
-  cout&lt;&lt;"Press a character to exit!";
-  int c = getchar();
-  return 0;
-}
-</codeblock></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A2031A61-3319-4FBA-BC71-AC1327182053" xml:lang="en"><title>Getting
+started with C++ Standard Library</title><shortdesc>The Standard C++ library depends on P.I.P.S.. The user must have
+the P.I.P.S. components installed before using the library.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D42A187D-603E-4D66-BAA8-86782B9C2717"><title>C++ IOstream
+and Standard Template Library Documentation</title><p>C++ IOStream library
+documentation can be found at <xref href="http://www.slac.stanford.edu/comp/unix/gnu-info/iostream_toc.html" scope="external">http://www.slac.stanford.edu/comp/unix/gnu-info/iostream_toc.html</xref>.</p><p>Similarly,
+Standard Template Library (STL) documentation can be found at <xref href="http://www.informatik.uni-freiburg.de/~danlee/fun/STL-doc/STL.html" scope="external">http://www.informatik.uni-freiburg.de/~danlee/fun/STL-doc/STL.html</xref>.</p></section>
+<section id="GUID-BF521201-7BE5-4AC5-8D35-1E15AC4887C7-GENID-1-10-1-11-1-1-9-1-5-1-3-2"><title>Changes to
+the MMP file</title><p><b>Add needed libraries used by the MMP file structure: </b></p><p>If
+developers want to use any of Standard C++ library, they must link to the
+corresponding library in the MMP file using the <codeph>LIBRARY</codeph> keyword.</p><p>If
+the application has <codeph>main()</codeph> as the entry point, the library <filepath>libcrt0.lib</filepath> must
+be specified as the first library otherwise, it results in linker errors.
+The user must link to the Symbian platform <filepath>euser.dll</filepath>.
+This is required since the static library uses some of the services of the
+Symbian platform, such as, creating cleanup stack, and having a top level
+TRAP. All these details are hidden from the developer. The developer will
+write the application as if it were for the UNIX environment.</p><codeblock xml:space="preserve">STATICLIBRARY  libcrt0.lib
+LIBRARY        libc.lib 
+LIBRARY        euser.lib  // Needed in order to use Symbian services
+</codeblock><p>The <filepath>libcrt0.lib</filepath> library is required for
+writing to <codeph>E32Main</codeph> within our application (EXE). This static
+library has an implementation of <codeph>E32Main</codeph> within which it
+calls the library initialization method followed by calling main written by
+the developer. This static library also retrieves command-line arguments and
+passes the same to main.</p><p>If the application has <codeph>E32Main()</codeph> as
+an entry point, there is no need to link to <filepath>libcrt0.lib</filepath> like
+in the example below.</p><codeblock xml:space="preserve">LIBRARY         libc.lib 
+LIBRARY         euser.lib</codeblock><p><b>Add required include paths</b></p><codeblock xml:space="preserve">SYSTEMINCLUDE   \epoc32\include\stdapis
+SYSTEMINCLUDE   \epoc32\include\stdapis\sys
+SYSTEMINCLUDE   \epoc32\include\stdapis\stlport 
+</codeblock><p><b>Linking of <codeph>libstdcpp</codeph></b></p><p>Following
+snippet shows how to perform the linking to <codeph>libstdcpp</codeph> on
+an emulator: </p><codeblock xml:space="preserve">#ifdef EPOC32
+LIBRARY  libstdcpp.lib
+#else
+FIRSTLIB ../udeb/libstdcpp.lib
+STATICLIBRARY    eexe.lib 
+#endif</codeblock><p>Add the below option and macro in the MMP file</p><codeblock xml:space="preserve">//This is required even if the wchar type is not used.
+OPTION CW -wchar_t on 
+MACRO  _WCHAR_T_DECLARED</codeblock><note> Standard C++ applications may require
+more stack space. The recommended stack size is 10K. To set the stack size
+to 10K add: </note><codeblock xml:space="preserve">EPOCSTACKSIZE 0x10000</codeblock><p>in the MMP
+file.</p></section>
+<section id="GUID-BF521201-7BE5-4AC5-8D35-1E15AC4887C7-GENID-1-10-1-11-1-1-9-1-5-1-3-3"><title>Example using <codeph>main()</codeph></title> 
+     <p>A simple example using <codeph>main()</codeph> as an entry point is
+described below. The example writes a text to a console.</p><ul>
+<li><p>Modify the MMP file as mentioned before.</p></li>
+<li><p>Do usual C++ style coding.</p></li>
+</ul><codeblock xml:space="preserve">//  Include Files  
+#include &lt;iostream&gt;
+#include &lt;cstring&gt;
+// This is a GCCE toolchain workaround needed when compiling with GCCE
+// and using main() entry point
+#ifdef __GCCE__
+
+// This is a GCCE toolchain workaround needed when compiling with GCCE
+// and using main() entry point
+#ifdef __GCCE__
+
+#include &lt;staticlibinit_gcce.h&gt;
+#endif
+
+using namespace std;
+
+class myclass {
+public:
+  void show(){cout&lt;&lt;"Hello World\n"; }
+} ;
+
+int main()
+{
+  myclass obj;
+  obj.show();
+  cout&lt;&lt;"Press a character to exit!";
+  int c = getchar();
+  return 0;
+}
+</codeblock></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A24491E4-867F-4006-9798-07281553EA51.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A24491E4-867F-4006-9798-07281553EA51.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,82 +1,103 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A24491E4-867F-4006-9798-07281553EA51" xml:lang="en"><title>Release
-Notes</title><shortdesc>This library is intended for application developers for the Symbian^3
-platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A425EC89-28E2-4185-94DA-538E53EFF44C"><title>Major changes
-between the week 03 2010 release and week 12 2010 release</title><p>Since
-the week 03 2010 documentation submission to the Symbian Foundation, the following
-major additions have been made:</p><ul>
-<li><p>Inclusion of API reference extracted from the Symbian^3 source code.</p></li>
-<li><p>Inclusion of API specifications.</p></li>
-<li><p>A new <xref href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita">About
-Symbian^3</xref> topic, including What's new and Porting applications from
-S60 5th Edition to Symbian^3.</p></li>
-<li><p>A new <xref href="GUID-AFAD9FAE-D09B-4778-8981-47A8073BC044.dita">Getting
-Started</xref>, consisting of the Symbian Foundation's C++ Quick Start and
-Going Beyond Hello tutorials.</p></li>
-<li><p>Integration of the <xref href="GUID-A294084E-B5BB-54C6-A622-49F20E8C927B.dita">Panic
-Codes Reference</xref>.</p></li>
-<li><p>Addition of new topics: <xref href="GUID-620CD3E3-61C4-4643-8922-48DEA9EF0A6E.dita">Common
-Email Guide</xref> and <xref href="GUID-C3919681-BB41-4CFA-812F-2D7989E952DC.dita">System
-Resource Monitoring</xref>.</p></li>
-<li><p>The Graphics Guide has been updated for Symbian^3. For details, see <xref href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita">What's New in Graphics in
-Symbian^3</xref>.</p></li>
-<li><p>The <xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic
-UI Guide</xref> has been updated for Symbian^3. </p></li>
-<li><p>All guides have been updated to refer to the Symbian platform rather
-than to Symbian OS and to S60, apart from where it is necessary to refer to
-past releases. </p></li>
-</ul><p><b>Bug fixes</b>:</p><p>This release contains fixes for the following
-bugs:</p><ul>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1892" scope="external">Change section headings in Symbian^3 product/app reference </xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1522" scope="external">Fix up the links in the Platform security architecture page</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1520" scope="external">Link to sample chapter of quick recipes book in SDK docs</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=394" scope="external">Remove "Using the Indexes"</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1319" scope="external">ambiguous documentation of text-options</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=344" scope="external">Remove references to SDN and SDN++ from Symbian Developer
-Library</xref></p></li>
-<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1897" scope="external">Guide landing page is empty</xref></p></li>
-</ul></section>
-<section id="GUID-C454C6AE-8348-45C4-A374-11598B78193A"><title>Major changes
-between the week 43 2009 release and week 03 2010 release</title><p><b>New
-content:</b></p><ul>
-<li><p><xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic UI Guide</xref></p></li>
-<li><p><xref href="GUID-C0D38954-2FC5-4E8B-BC11-229464DCF16C.dita">High Level Internet
-Protocols Guide</xref></p></li>
-<li><p><xref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita">Short Link Services
-Guide</xref></p></li>
-<li><p><xref href="GUID-F9F53050-AAFA-4685-8C62-033E585F061B.dita">Web Guide</xref></p></li>
-</ul><p>The following S60 5th Edition C++ Developer's Library 'Technology
-area guides' have been integrated into the Symbian guide:</p><ul>
-<li><p><xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application
-and UI frameworks</xref> is now in Classic UI Guide.</p></li>
-<li><p><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">S60 UI components</xref> is
-now in Classic UI Guide.</p></li>
-<li><p><xref href="GUID-3E341F9F-2635-589B-A59A-B999FE7DF9BE.dita">Multimedia</xref> is
-now in Multimedia Guide.</p></li>
-<li><p><xref href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita">Browsing and
-downloading</xref> is now in Web Guide. </p></li>
-<li><p><xref href="GUID-1E158DE6-33F5-4B45-8923-28117EBAB68A.dita">Location</xref> is
-now in Location Based Services (LBS).</p></li>
-<li><p><xref href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita">Security</xref> is
-now found at the top level. </p></li>
-</ul><p>The S60 Open C and Open C++ documentation has been merged into the
-Symbian P.I.P.S. documentation and is now in <xref href="GUID-5072BE46-B1B4-5C3A-BF55-BEA7443E7657.dita">Generic
-OS Services Guide</xref>.</p><p><b>Other changes:</b> </p><p>The Symbian Developer
-Library for Application Developers is released under the <xref href="http://www.eclipse.org/legal/epl-v10.html" scope="external">Eclipse Public License</xref> (EPL). </p></section>
-<section id="GUID-6DECC8BE-0CEB-4C47-8028-56EF53C29C7B"><title>Upcoming releases
-and improvements in the Symbian Developer Library for Application Developers</title><p>See
-the <xref href="http://developer.symbian.org/wiki/index.php/Docscontent/Backlog" scope="external">Documentation Content Package Backlog</xref>.</p></section>
-<section id="GUID-24E1938C-E8AA-4B82-8FE5-3F35F31CCA3E"><title>Feedback</title><p>To
-give feedback, please go to the <xref href="http://developer.symbian.org/bugs/enter_bug.cgi?product=Documentation%20Content" scope="external">Symbian Foundation Bugtracker</xref> (login required).</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A24491E4-867F-4006-9798-07281553EA51" xml:lang="en"><title>Release Notes</title><shortdesc>This library is intended for application developers for
+the Symbian^3 platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-DDD419D6-5B81-4564-A5CF-CD80FB4AE7F5"><title>Major changes between the week 12 2010 release and
+week 22 2010 release</title><p>Since the week 12 2010 documentation
+submission to the Symbian Foundation, the following major additions
+have been made:</p><ul>
+<li><p><xref href="GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7.dita">CryptoSPI
+ documentation</xref>.</p></li>
+<li><p><xref href="GUID-E7A53792-5ABC-460C-87EA-36E8C6989A2C.dita">API
+changes and compatibility breaks</xref>.</p></li>
+<li><p><xref href="GUID-D280276A-6E4C-41B7-B6EA-700B33B04981.dita">IP Connection
+Management</xref>.</p></li>
+</ul><p><b>Bug fixes</b>:</p><p>This release contains fixes for the
+following bugs and known issues:</p><ul>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=2714" scope="external">Symbian^3 documentation</xref>.</p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=462" scope="external">Buildrom content is missing</xref>.</p></li>
+<li><p>Some links to Multimedia example code occur more than once
+in the table of contents and in landing pages.</p></li>
+<li><p>Links to the Open C examples in the full example code list
+are broken.</p></li>
+<li><p>Broken and incorrect links in Platform security architecture
+and Optional resource file statements topics.</p></li>
+<li><p>The breadcrumb trails for Application framework guide, Multimedia
+example code and System GUI Framework example code are wrong and contains
+duplicates.</p></li>
+</ul></section>
+<section id="GUID-A425EC89-28E2-4185-94DA-538E53EFF44C"><title>Major
+changes between the week 03 2010 release and week 12 2010 release</title><p>Since the week 03 2010 documentation submission to the Symbian
+Foundation, the following major additions have been made:</p><ul>
+<li><p>Inclusion of API reference extracted from the Symbian^3 source
+code.</p></li>
+<li><p>Inclusion of API specifications.</p></li>
+<li><p>A new <xref href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita">About Symbian^3</xref> topic, including What's new and Porting applications
+from S60 5th Edition to Symbian^3.</p></li>
+<li><p>A new <xref href="GUID-AFAD9FAE-D09B-4778-8981-47A8073BC044.dita">Getting Started</xref>, consisting of the Symbian Foundation's C++
+Quick Start and Going Beyond Hello tutorials.</p></li>
+<li><p>Integration of the <xref href="GUID-A294084E-B5BB-54C6-A622-49F20E8C927B.dita">Panic Codes Reference</xref>.</p></li>
+<li><p>Addition of new topics: <xref href="GUID-620CD3E3-61C4-4643-8922-48DEA9EF0A6E.dita">Common Email Guide</xref> and <xref href="GUID-C3919681-BB41-4CFA-812F-2D7989E952DC.dita">System
+Resource Monitoring</xref>.</p></li>
+<li><p>The Graphics Guide has been updated for Symbian^3. For details,
+see <xref href="GUID-D0C84E1D-A625-4F79-8515-399B8153727B.dita">What's
+New in Graphics in Symbian^3</xref>.</p></li>
+<li><p>The <xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic UI Guide</xref> has been updated for Symbian^3. </p></li>
+<li><p>All guides have been updated to refer to the Symbian platform
+rather than to Symbian OS and to S60, apart from where it is necessary
+to refer to past releases. </p></li>
+</ul><p><b>Bug fixes</b>:</p><p>This release contains fixes for the
+following bugs:</p><ul>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1892" scope="external">Change section headings in Symbian^3 product/app
+reference </xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1522" scope="external">Fix up the links in the Platform security architecture
+page</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1520" scope="external">Link to sample chapter of quick recipes book in SDK
+docs</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=394" scope="external">Remove "Using the Indexes"</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1319" scope="external">ambiguous documentation of text-options</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=344" scope="external">Remove references to SDN and SDN++ from Symbian Developer
+Library</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/bugs/show_bug.cgi?id=1897" scope="external">Guide landing page is empty</xref></p></li>
+</ul></section>
+<section id="GUID-C454C6AE-8348-45C4-A374-11598B78193A"><title>Major
+changes between the week 43 2009 release and week 03 2010 release</title><p><b>New content:</b></p><ul>
+<li><p><xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic
+UI Guide</xref></p></li>
+<li><p><xref href="GUID-C0D38954-2FC5-4E8B-BC11-229464DCF16C.dita">High
+Level Internet Protocols Guide</xref></p></li>
+<li><p><xref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita">Short
+Link Services Guide</xref></p></li>
+<li><p><xref href="GUID-F9F53050-AAFA-4685-8C62-033E585F061B.dita">Web
+Guide</xref></p></li>
+</ul><p>The following S60 5th Edition C++ Developer's Library 'Technology
+area guides' have been integrated into the Symbian guide:</p><ul>
+<li><p><xref href="GUID-29486886-CB54-4A83-AD6D-70F971A86DFC.dita">Application
+and UI frameworks</xref> is now in Classic UI Guide.</p></li>
+<li><p><xref href="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita">S60
+UI components</xref> is now in Classic UI Guide.</p></li>
+<li><p><xref href="GUID-3E341F9F-2635-589B-A59A-B999FE7DF9BE.dita">Multimedia</xref> is now in Multimedia Guide.</p></li>
+<li><p><xref href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita">Browsing
+and downloading</xref> is now in Web Guide. </p></li>
+<li><p><xref href="GUID-1E158DE6-33F5-4B45-8923-28117EBAB68A.dita">Location</xref> is now in Location Based Services (LBS).</p></li>
+<li><p><xref href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita">Security</xref> is now found at the top level. </p></li>
+</ul><p>The S60 Open C and Open C++ documentation has been merged
+into the Symbian P.I.P.S. documentation and is now in <xref href="GUID-5072BE46-B1B4-5C3A-BF55-BEA7443E7657.dita">Generic OS Services
+Guide</xref>.</p><p><b>Other changes:</b> </p><p>The Symbian Developer
+Library for Application Developers is released under the <xref href="http://www.eclipse.org/legal/epl-v10.html" scope="external">Eclipse Public License</xref> (EPL). </p></section>
+<section id="GUID-46DCF0AE-3161-4838-9062-5C8C833FA9CE"><title>Known issues in the week 22 2010 release</title><p>See <xref href="http://developer.symbian.org/wiki/index.php/Known_issues_with_Symbian3_product_developers_library" scope="external">Known issues with Symbian3 product developers
+library</xref>.</p></section>
+<section id="GUID-6DECC8BE-0CEB-4C47-8028-56EF53C29C7B"><title>Upcoming
+releases and improvements in the Symbian Developer Library for Application
+Developers</title><p>See the <xref href="http://developer.symbian.org/wiki/index.php/Docscontent/Backlog" scope="external">Documentation Content Package Backlog</xref>.</p></section>
+<section id="GUID-24E1938C-E8AA-4B82-8FE5-3F35F31CCA3E"><title>Feedback</title><p>To give feedback, please go to the <xref href="http://developer.symbian.org/bugs/enter_bug.cgi?product=Documentation%20Content" scope="external">Symbian Foundation Bugtracker</xref> (login required).</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,185 +1,185 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP Client API manages the multimedia sessions, subscribes to events,
-and sends SIP messages. It also provides access to the basic services of the
-SIP stack such as: </p>
-<ul>
-<li id="GUID-E9BF6031-1DAF-5238-A306-C44F0F91682D"><p>Sending and receiving
-of SIP messages </p> </li>
-<li id="GUID-C6A3FA97-1F09-587E-9504-9685D8306B04"><p>Creating registrations </p> </li>
-<li id="GUID-A02F02C7-A903-53E0-A64E-F0B62C93A90F"><p>Forming and tearing
-down dialogs initiated by INVITE, REFER and SUBSCRIBE requests </p> </li>
-</ul>
-<section id="GUID-8D3D5FB3-6037-5956-B3F0-DB14BD1BB17B"><title>Architectural
-relationships</title> <p>The SIP Client API uses the client-server mechanism
-to interact with the SIP stack. This means more than one client can use the
-SIP stack at the same time. The calls to the SIP Client API are synchronous.
-The SIP Client API implements a set of callback functions to pass the events
-back to the application. </p> <p><b>Capability information</b> </p> <p>The
-following table describes the capabilities required to use the SIP Client
-API and the conditions in which they are required: </p> <table id="GUID-B3DCF31A-C6D5-58B9-87FA-B2CD3E0ABA1F">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Capability </entry>
-<entry>Reason needed </entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>NetworkServices </p> </entry>
-<entry><p>to send or receive SIP messages </p> </entry>
-</row>
-<row>
-<entry><p>WriteDeviceData </p> </entry>
-<entry><p>to create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class </p> </entry>
-</row>
-<row>
-<entry><p>NetworkControl </p> <p>Location </p> <p>ReadDeviceData </p> </entry>
-<entry><p>to use the function <codeph>CSIPConnection::SetOptL()</codeph>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Extending the API</b> </p> <p>SIP Client API cannot be extended. </p> </section>
-<section id="GUID-E055BF09-9605-57E6-9502-CB3F4CAC29B8"><title>SIP Client
-API class structure</title> <ul>
-<li id="GUID-3E500E7D-ECB9-50F8-B996-A212EE294E68"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"> CSIP, MSIPObserver, CSIPConnection and MSIPConnectionObserver</xref>  </p> </li>
-<li id="GUID-461F8201-ED85-582A-945C-7471F9BF27AA"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0E726099-31C4-5DD4-9AEA-67765589F462">Registration services</xref>  </p> </li>
-<li id="GUID-F69AEAB7-0E13-5673-B696-843957CC4C72"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"> SIP dialog associations</xref>  </p> </li>
-<li id="GUID-BFE257A7-EF1A-58BF-A047-00E0B11B1FD3"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B0D208E4-D1F9-5C5F-B937-11118E778074">Requests sent to, and received from, the network</xref>  </p> </li>
-<li id="GUID-D0AC4583-B181-501C-A97A-63F094AD4046"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0427709F-CD4B-5363-9377-10402B8A5819">SIP message related classes</xref>  </p> </li>
-<li id="GUID-31ED307B-2285-5DE0-A83B-D0CB7A8C585D"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154">Automatically refreshing a SIP request</xref>  </p> </li>
-<li id="GUID-B6E46736-A250-5064-B4F8-595A20025478"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85">Managing HTTP digest security settings</xref>  </p> </li>
-</ul> <p id="GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"><b> CSIP, MSIPObserver,
-CSIPConnection and MSIPConnectionObserver </b> </p> <fig id="GUID-0834012C-083F-5FA0-B29D-E3E852165528">
-<image href="GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e338573_href.png" placement="inline"/>
-</fig> <p>An application creates a single instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class,
-and implements the callback functions defined by <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref>.
-The <codeph>CSIP</codeph> uses the <codeph>MSIPObserver</codeph> functions.
-The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class asks the supported security mechanisms and
-determines whether a <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object exists for a
-given IAP. </p> <p>The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object creates an instance
-of <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> that allows you to send standalone SIP
-requests and ask for the state of the network connection. Responses are received
-through the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> interface that defines
-a set of callback functions that an application must implement. </p> <p>An
-application can have many <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects, but each
-of them must have a different IAP. </p> <p id="GUID-0E726099-31C4-5DD4-9AEA-67765589F462"><b>Registration
-services</b> </p> <fig id="GUID-63E38B2E-975E-554C-8EDC-65B8BBA86838">
-<image href="GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e338630_href.png" placement="inline"/>
-</fig> <p>An existing <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> is required to create
-an instance of <codeph>CSIPRegistrationBinding</codeph>. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class
-provides services for registration, updating the registration, and deregistration.
-This class also provides instructions to the SIP stack to automatically refresh
-the registration, and to query and set the outbound proxy used by the registration. </p> <p id="GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"><b> SIP dialog
-associations</b> </p> <fig id="GUID-4870BE80-44B6-50F0-B77E-73FEAD136304">
-<image href="GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e338655_href.png" placement="inline"/>
-</fig> <p> <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> is the base class for SIP
-dialog associations, such as <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref>. The <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> class
-is used to obtain the associated SIP dialog, for the associated <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance,
-and for sending a non-target Refresh request within the dialog. </p> <p> <b> Note: </b> The
-SIP Client API creates the <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance, it cannot
-be created by the application. </p> <p>If any of the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref> objects
-are associated, they are bound to an existing <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> object,
-or they can be used to create a new <codeph>CSIPDialog</codeph> object. </p> <p> <b>Note:</b>  </p> <ul>
-<li id="GUID-6A085F6F-C243-53AD-B33C-F37D14DFE0A4"><p> <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> allows
-an application to initiate a dialog and to send <codeph>INVITE</codeph>,,<codeph>PRACK</codeph>,,<codeph>ACK</codeph>, <codeph>UPDATE,</codeph> and <codeph>BYE</codeph> requests related to the dialog. </p> </li>
-<li id="GUID-19C504F0-EAD5-524A-82E9-2D15BFA2A6D2"><p> <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> allows
-an application to subscribe to different events by sending SUBSCRIBE and UNSUBSCRIBE
-requests. It also orders the SIP stack to automatically refresh the SUBSCRIBE
-request. </p> </li>
-<li id="GUID-C47B74D8-2251-5FCC-A356-1364EB61CF05"><p> <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> allows
-an application to define and send REFER requests. </p> </li>
-<li id="GUID-18AD2000-2A37-5CD9-8118-8B3322211D28"><p> <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname> CSIPNotifyDialogAssoc</apiname></xref> allows
-an application to define and send NOTIFY requests. </p> </li>
-</ul> <p id="GUID-B0D208E4-D1F9-5C5F-B937-11118E778074"><b>Sent and received
-network requests</b> </p> <fig id="GUID-2E0C9020-1863-5644-BF7E-62B4DB9104D2">
-<image href="GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e338792_href.png" placement="inline"/>
-</fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
-creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
-the application. A <codeph>CSIPClientTransaction</codeph> object represents
-the SIP transaction and consists of the SIP request and the SIP response.
-After receiving a response, the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
-the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
-transactions can also be cancelled or refreshed. </p> <p>When a SIP request
-is received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
-The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
-A <codeph>CSIPRequestElements</codeph> object describes the kind of SIP request
-received. After the application determines the type of response to send, it
-uses the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
-the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
-It provides the functions to obtain the current state of the transaction and
-the transaction type. Some operations are only allowed when the transaction
-is in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-0427709F-CD4B-5363-9377-10402B8A5819"><b>SIP
-message related classes</b> </p> <fig id="GUID-B99CF040-E91F-5281-8AAC-2151049C0EA8">
-<image href="GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e338869_href.png" placement="inline"/>
-</fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
-creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
-the application. A <codeph>CSIPClientTransaction</codeph> object represents
-the SIP transaction and consists of the SIP request and the SIP response.
-After receiving a response the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
-the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
-transactions can be cancelled or refreshed. </p> <p>When a SIP request is
-received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
-The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
-A <codeph>CSIPRequestElements</codeph> object describes the type of SIP request
-received. After the application determines the type of response to send, it
-uses the <codeph>CSIPServerTransaction</codeph> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
-the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
-It provides functions to obtain the current state of the transaction and the
-transaction type. Some operations are only allowed when the transaction is
-in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154"><b> Automatically
-refreshing a SIP request</b> </p> <fig id="GUID-49ACB697-512C-5FCF-AD48-20D6AAB0FEFC">
-<image href="GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e338945_href.png" placement="inline"/>
-</fig> <p>The SIP stack automatically refreshes a SIP request using the <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object. <codeph>REGISTER</codeph>, <codeph>SUBSCRIBE</codeph> and a request outside the dialog are refreshed. After
-sending a refresh request, the application queries the state of the refresh
-from <codeph>CSIPRefresh</codeph>. </p> <p> <codeph>CSIPRefresh</codeph> provides
-functions for updating and terminating the refresh, for requests outside the
-dialog. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> and <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> classes
-are used to update and terminate a refreshed <codeph>REGISTER</codeph> or <codeph>SUBSCRIBE</codeph>. </p> <p id="GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85"><b> Managing HTTP digest security
-settings </b> </p> <fig id="GUID-7C296C1B-67E3-569F-A5E9-92A4F7922088">
-<image href="GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e338991_href.png" placement="inline"/>
-</fig> <p>An application must create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class
-to use <codeph>CSIPHttpDigest</codeph>. The <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> class
-manages HTTP digest security settings and contains only static functions. </p> </section>
-<section id="GUID-4195FAF9-D0D7-5046-BD62-9A314791BEFE"><title>Memory used</title> <p>After
-the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> and <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects
-are created, most of the memory consumed is by <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref>, <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> classes. <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> holds the most recent SIP
-response in a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object. When another
-response is received, the previous <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object
-is deleted and a new one is created. </p> <p> <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> contains
-a <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object until the SIP request is transferred
-to the server side of the SIP stack. <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> contains
-the SIP request as <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref>. The application
-owns the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> objects.
-When the transaction terminates, the application deletes these objects to
-conserve memory. </p> <p>A non-<codeph>INVITE</codeph>  <codeph>CSIPClientTransaction</codeph> is
-deleted when it has received a final response or when the <codeph>ErrorOccured()</codeph> callback
-is called. A non-<codeph>INVITE</codeph> <codeph>CSIPServerTransaction</codeph> is
-deleted after the application sends a final response. </p> <p>The <codeph>INVITE</codeph> related
-transactions are deleted if the <codeph>ErrorOccured()</codeph> callback function
-is called. These transactions behave differently because of the presence of
-an <codeph>ACK</codeph>. </p> <p>When the application sends a 2xx response
-to an <codeph>INVITE</codeph> related <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>,
-it enters the <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita#GUID-93256B64-49C9-37F1-9A4E-72C521759749/GUID-DF7E4DCE-1F6D-3F2A-A638-5516A733AA9D"><apiname>CSIPTransactionBase::ETerminated</apiname></xref> state and
-it is deleted at this point. A new <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object
-receives the ACK. </p> <p>When the application sends an <codeph>INVITE</codeph> request
-and the <codeph>CSIPClientTransaction</codeph> receives a 2xx response, the
-transaction enters the <codeph>CSIPTransactionBase::ETerminated</codeph> state.
-The associated <codeph>CSIPClientTransaction</codeph> must not be deleted
-as it is required to send the <codeph>ACK</codeph> and also to receive the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-2E76BDA0-CE87-3538-A791-963A90230FD4"><apiname>MSIPConnectionObserver::InviteCompleted()</apiname></xref> callback.
-An <codeph>INVITE</codeph> related <codeph>CSIPClientTransaction</codeph> must
-be deleted only after a <codeph>MSIPConnectionObserver::InviteCompleted</codeph> or <xref href="GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95.dita#GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95/GUID-DED382FB-A6D5-37D7-B8E4-05262F690068"><apiname>MSIPConnectionObserver
-::ErrorOccured</apiname></xref> event is received, or if the state of the associated <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> goes
-to <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-68DD22DC-67E4-387B-BBE9-B9B96D9C9016"><apiname>CSIPConnection::EInactive</apiname></xref> or <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-5963A947-BD5C-3B34-9D10-2CB5DC413774"><apiname>CSIPConnection::EUnavailable</apiname></xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP Client API manages the multimedia sessions, subscribes to events,
+and sends SIP messages. It also provides access to the basic services of the
+SIP stack such as: </p>
+<ul>
+<li id="GUID-E9BF6031-1DAF-5238-A306-C44F0F91682D"><p>Sending and receiving
+of SIP messages </p> </li>
+<li id="GUID-C6A3FA97-1F09-587E-9504-9685D8306B04"><p>Creating registrations </p> </li>
+<li id="GUID-A02F02C7-A903-53E0-A64E-F0B62C93A90F"><p>Forming and tearing
+down dialogs initiated by INVITE, REFER and SUBSCRIBE requests </p> </li>
+</ul>
+<section id="GUID-8D3D5FB3-6037-5956-B3F0-DB14BD1BB17B"><title>Architectural
+relationships</title> <p>The SIP Client API uses the client-server mechanism
+to interact with the SIP stack. This means more than one client can use the
+SIP stack at the same time. The calls to the SIP Client API are synchronous.
+The SIP Client API implements a set of callback functions to pass the events
+back to the application. </p> <p><b>Capability information</b> </p> <p>The
+following table describes the capabilities required to use the SIP Client
+API and the conditions in which they are required: </p> <table id="GUID-B3DCF31A-C6D5-58B9-87FA-B2CD3E0ABA1F">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Capability </entry>
+<entry>Reason needed </entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>NetworkServices </p> </entry>
+<entry><p>to send or receive SIP messages </p> </entry>
+</row>
+<row>
+<entry><p>WriteDeviceData </p> </entry>
+<entry><p>to create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class </p> </entry>
+</row>
+<row>
+<entry><p>NetworkControl </p> <p>Location </p> <p>ReadDeviceData </p> </entry>
+<entry><p>to use the function <codeph>CSIPConnection::SetOptL()</codeph>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Extending the API</b> </p> <p>SIP Client API cannot be extended. </p> </section>
+<section id="GUID-E055BF09-9605-57E6-9502-CB3F4CAC29B8"><title>SIP Client
+API class structure</title> <ul>
+<li id="GUID-3E500E7D-ECB9-50F8-B996-A212EE294E68"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"> CSIP, MSIPObserver, CSIPConnection and MSIPConnectionObserver</xref>  </p> </li>
+<li id="GUID-461F8201-ED85-582A-945C-7471F9BF27AA"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0E726099-31C4-5DD4-9AEA-67765589F462">Registration services</xref>  </p> </li>
+<li id="GUID-F69AEAB7-0E13-5673-B696-843957CC4C72"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"> SIP dialog associations</xref>  </p> </li>
+<li id="GUID-BFE257A7-EF1A-58BF-A047-00E0B11B1FD3"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B0D208E4-D1F9-5C5F-B937-11118E778074">Requests sent to, and received from, the network</xref>  </p> </li>
+<li id="GUID-D0AC4583-B181-501C-A97A-63F094AD4046"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0427709F-CD4B-5363-9377-10402B8A5819">SIP message related classes</xref>  </p> </li>
+<li id="GUID-31ED307B-2285-5DE0-A83B-D0CB7A8C585D"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154">Automatically refreshing a SIP request</xref>  </p> </li>
+<li id="GUID-B6E46736-A250-5064-B4F8-595A20025478"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85">Managing HTTP digest security settings</xref>  </p> </li>
+</ul> <p id="GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"><b> CSIP, MSIPObserver,
+CSIPConnection and MSIPConnectionObserver </b> </p> <fig id="GUID-0834012C-083F-5FA0-B29D-E3E852165528">
+<image href="GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e332416_href.png" placement="inline"/>
+</fig> <p>An application creates a single instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class,
+and implements the callback functions defined by <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref>.
+The <codeph>CSIP</codeph> uses the <codeph>MSIPObserver</codeph> functions.
+The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class asks the supported security mechanisms and
+determines whether a <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object exists for a
+given IAP. </p> <p>The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object creates an instance
+of <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> that allows you to send standalone SIP
+requests and ask for the state of the network connection. Responses are received
+through the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> interface that defines
+a set of callback functions that an application must implement. </p> <p>An
+application can have many <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects, but each
+of them must have a different IAP. </p> <p id="GUID-0E726099-31C4-5DD4-9AEA-67765589F462"><b>Registration
+services</b> </p> <fig id="GUID-63E38B2E-975E-554C-8EDC-65B8BBA86838">
+<image href="GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e332473_href.png" placement="inline"/>
+</fig> <p>An existing <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> is required to create
+an instance of <codeph>CSIPRegistrationBinding</codeph>. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class
+provides services for registration, updating the registration, and deregistration.
+This class also provides instructions to the SIP stack to automatically refresh
+the registration, and to query and set the outbound proxy used by the registration. </p> <p id="GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"><b> SIP dialog
+associations</b> </p> <fig id="GUID-4870BE80-44B6-50F0-B77E-73FEAD136304">
+<image href="GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e332498_href.png" placement="inline"/>
+</fig> <p> <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> is the base class for SIP
+dialog associations, such as <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref>. The <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> class
+is used to obtain the associated SIP dialog, for the associated <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance,
+and for sending a non-target Refresh request within the dialog. </p> <p> <b> Note: </b> The
+SIP Client API creates the <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance, it cannot
+be created by the application. </p> <p>If any of the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref> objects
+are associated, they are bound to an existing <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> object,
+or they can be used to create a new <codeph>CSIPDialog</codeph> object. </p> <p> <b>Note:</b>  </p> <ul>
+<li id="GUID-6A085F6F-C243-53AD-B33C-F37D14DFE0A4"><p> <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> allows
+an application to initiate a dialog and to send <codeph>INVITE</codeph>,,<codeph>PRACK</codeph>,,<codeph>ACK</codeph>, <codeph>UPDATE,</codeph> and <codeph>BYE</codeph> requests related to the dialog. </p> </li>
+<li id="GUID-19C504F0-EAD5-524A-82E9-2D15BFA2A6D2"><p> <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> allows
+an application to subscribe to different events by sending SUBSCRIBE and UNSUBSCRIBE
+requests. It also orders the SIP stack to automatically refresh the SUBSCRIBE
+request. </p> </li>
+<li id="GUID-C47B74D8-2251-5FCC-A356-1364EB61CF05"><p> <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> allows
+an application to define and send REFER requests. </p> </li>
+<li id="GUID-18AD2000-2A37-5CD9-8118-8B3322211D28"><p> <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname> CSIPNotifyDialogAssoc</apiname></xref> allows
+an application to define and send NOTIFY requests. </p> </li>
+</ul> <p id="GUID-B0D208E4-D1F9-5C5F-B937-11118E778074"><b>Sent and received
+network requests</b> </p> <fig id="GUID-2E0C9020-1863-5644-BF7E-62B4DB9104D2">
+<image href="GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e332635_href.png" placement="inline"/>
+</fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
+creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
+the application. A <codeph>CSIPClientTransaction</codeph> object represents
+the SIP transaction and consists of the SIP request and the SIP response.
+After receiving a response, the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
+the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
+transactions can also be cancelled or refreshed. </p> <p>When a SIP request
+is received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
+The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
+A <codeph>CSIPRequestElements</codeph> object describes the kind of SIP request
+received. After the application determines the type of response to send, it
+uses the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
+the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
+It provides the functions to obtain the current state of the transaction and
+the transaction type. Some operations are only allowed when the transaction
+is in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-0427709F-CD4B-5363-9377-10402B8A5819"><b>SIP
+message related classes</b> </p> <fig id="GUID-B99CF040-E91F-5281-8AAC-2151049C0EA8">
+<image href="GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e332712_href.png" placement="inline"/>
+</fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
+creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
+the application. A <codeph>CSIPClientTransaction</codeph> object represents
+the SIP transaction and consists of the SIP request and the SIP response.
+After receiving a response the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
+the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
+transactions can be cancelled or refreshed. </p> <p>When a SIP request is
+received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
+The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
+A <codeph>CSIPRequestElements</codeph> object describes the type of SIP request
+received. After the application determines the type of response to send, it
+uses the <codeph>CSIPServerTransaction</codeph> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
+the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
+It provides functions to obtain the current state of the transaction and the
+transaction type. Some operations are only allowed when the transaction is
+in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154"><b> Automatically
+refreshing a SIP request</b> </p> <fig id="GUID-49ACB697-512C-5FCF-AD48-20D6AAB0FEFC">
+<image href="GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e332788_href.png" placement="inline"/>
+</fig> <p>The SIP stack automatically refreshes a SIP request using the <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object. <codeph>REGISTER</codeph>, <codeph>SUBSCRIBE</codeph> and a request outside the dialog are refreshed. After
+sending a refresh request, the application queries the state of the refresh
+from <codeph>CSIPRefresh</codeph>. </p> <p> <codeph>CSIPRefresh</codeph> provides
+functions for updating and terminating the refresh, for requests outside the
+dialog. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> and <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> classes
+are used to update and terminate a refreshed <codeph>REGISTER</codeph> or <codeph>SUBSCRIBE</codeph>. </p> <p id="GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85"><b> Managing HTTP digest security
+settings </b> </p> <fig id="GUID-7C296C1B-67E3-569F-A5E9-92A4F7922088">
+<image href="GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e332834_href.png" placement="inline"/>
+</fig> <p>An application must create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class
+to use <codeph>CSIPHttpDigest</codeph>. The <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> class
+manages HTTP digest security settings and contains only static functions. </p> </section>
+<section id="GUID-4195FAF9-D0D7-5046-BD62-9A314791BEFE"><title>Memory used</title> <p>After
+the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> and <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects
+are created, most of the memory consumed is by <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref>, <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> classes. <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> holds the most recent SIP
+response in a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object. When another
+response is received, the previous <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object
+is deleted and a new one is created. </p> <p> <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> contains
+a <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object until the SIP request is transferred
+to the server side of the SIP stack. <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> contains
+the SIP request as <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref>. The application
+owns the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> objects.
+When the transaction terminates, the application deletes these objects to
+conserve memory. </p> <p>A non-<codeph>INVITE</codeph>  <codeph>CSIPClientTransaction</codeph> is
+deleted when it has received a final response or when the <codeph>ErrorOccured()</codeph> callback
+is called. A non-<codeph>INVITE</codeph> <codeph>CSIPServerTransaction</codeph> is
+deleted after the application sends a final response. </p> <p>The <codeph>INVITE</codeph> related
+transactions are deleted if the <codeph>ErrorOccured()</codeph> callback function
+is called. These transactions behave differently because of the presence of
+an <codeph>ACK</codeph>. </p> <p>When the application sends a 2xx response
+to an <codeph>INVITE</codeph> related <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>,
+it enters the <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita#GUID-93256B64-49C9-37F1-9A4E-72C521759749/GUID-DF7E4DCE-1F6D-3F2A-A638-5516A733AA9D"><apiname>CSIPTransactionBase::ETerminated</apiname></xref> state and
+it is deleted at this point. A new <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object
+receives the ACK. </p> <p>When the application sends an <codeph>INVITE</codeph> request
+and the <codeph>CSIPClientTransaction</codeph> receives a 2xx response, the
+transaction enters the <codeph>CSIPTransactionBase::ETerminated</codeph> state.
+The associated <codeph>CSIPClientTransaction</codeph> must not be deleted
+as it is required to send the <codeph>ACK</codeph> and also to receive the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-2E76BDA0-CE87-3538-A791-963A90230FD4"><apiname>MSIPConnectionObserver::InviteCompleted()</apiname></xref> callback.
+An <codeph>INVITE</codeph> related <codeph>CSIPClientTransaction</codeph> must
+be deleted only after a <codeph>MSIPConnectionObserver::InviteCompleted</codeph> or <xref href="GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95.dita#GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95/GUID-DED382FB-A6D5-37D7-B8E4-05262F690068"><apiname>MSIPConnectionObserver
+::ErrorOccured</apiname></xref> event is received, or if the state of the associated <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> goes
+to <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-68DD22DC-67E4-387B-BBE9-B9B96D9C9016"><apiname>CSIPConnection::EInactive</apiname></xref> or <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-5963A947-BD5C-3B34-9D10-2CB5DC413774"><apiname>CSIPConnection::EUnavailable</apiname></xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e34881_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A2EFD9AD-F230-545C-8C5D-193F717B9FE2_d0e40447_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A2F691C8-9525-4028-BF82-70E9D50630C6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-A2F691C8-9525-4028-BF82-70E9D50630C6" xml:lang="en"><title>Prompting
+the User to Select a Destination Network</title><shortdesc>If there is no connection specified in the connection setup and
+no default connection has been defined, your application can
+prompt the user to select the connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-0577782B-4D55-42BF-8028-8531DF343265">       <p>To prompt
+the user select the destination network:</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-7-1-5-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-7-1-5-1-3-2-1"><cmd>Start the connection
+with <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-A299EA7A-29FD-30B4-A077-762200433627"><apiname>RConnection::Start(ECommDbDialogPrefPrompt)</apiname></xref>.  RConnection
+handle is returned to the application. </cmd>
+</step>
+<step id="GUID-5E21239D-0A4F-43A1-A51A-7E9F5863D9B1"><cmd>The user makes a selection.  A destination network is the preferred
+selection, but the user can also select a specific access point with this
+dialog. </cmd>
+</step>
+<step id="GUID-DA2AF32D-AECD-406A-82D0-88556A6FE649"><cmd>Link layer is now ready for the application.</cmd>
+</step>
+<step id="GUID-27736BF6-FDD6-4426-ADFA-65EBD73BF86D"><cmd>Send <xref href="GUID-12D64410-F872-3BBD-9B95-CAF939ED56F6.dita"><apiname>NewL(RConnection handle, MMobilityProtocolResp()</apiname></xref>.
+ The application can now use the mobility API, but if the user selected an
+access point this has no meaning, because roaming cannot be used.  For information
+on how to start the connection through a destination network, see Starting
+the connection through the destination network. </cmd>
+</step>
+</steps>
+<example><codeblock xml:space="preserve">RSocketServ ss;
+
+// Connect to ESOCK
+ss.Connect();
+
+// Open an RConnection object.  Note that you must provide an RSocketServ object
+RConnection conn;
+conn.Open( ss );
+
+// Create overrides
+TCommDbConnPref prefs;
+prefs.SetDialogPreference( ECommDbDialogPrefPrompt );
+
+// Start an Outgoing Connection with overrides
+conn.Start( prefs );</codeblock></example>
+</taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e158775_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e165376_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A3155AA1-8D42-5855-AD49-089DC510BCB0-master.png has changed
Binary file Symbian3/SDK/Source/GUID-A3155AA1-8D42-5855-AD49-089DC510BCB0_d0e383259_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e3331_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e4606_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-3-1-1-6-1-3-1" xml:lang="en"><title>Clock
-Overview</title><shortdesc>Provides the graphical display of digital and analogue clocks. The
-clocks are animated to change with system time. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-E3C63EE0-9955-469D-BAE5-34D6B237B309-GENID-1-8-1-3-1-1-6-1-3-1-3-1"><title>Architectural relationships</title> <p>The animation
-of the clocks is performed by an animation DLL that plugs-in to the Window
-Server. The key classes in this API are client-side animation classes, derived
-from the animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> </section>
-<section id="GUID-61371D21-F9AE-46A5-BE3F-BDEC6050DAE0-GENID-1-8-1-3-1-1-6-1-3-1-3-2"><title>Description</title> <p>The API has three key concepts: clock
-base classes, analogue clock, and digital clock. </p> <p><b>Clock base classes</b> </p> <p>A
-number of base classes provide shared functionality for the clocks, including
-basic display control, and time setting. They derive ultimately from <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>,
-and are, in inheritance order, <xref href="GUID-9DE6D2BB-2563-3196-B9A7-D9CD34C09BA5.dita"><apiname>RAnimWithUtils</apiname></xref>, <xref href="GUID-88506D0C-7206-3571-BCF8-1BED522849D4.dita"><apiname>RTimeDevice</apiname></xref>,
-and <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>. </p> <p><b>Analogue clock</b> </p> <p>Derived
-from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname>RAnalogClock</apiname></xref> provides
-an analogue clock with configurable color, size, position, and number of hands. </p> <p>How
-a hand is drawn is specified by a <xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname>TAnalogDisplayHand</apiname></xref> object.
-The settings for displaying an AM/PM indicator is provided by <xref href="GUID-5B7850F6-F0D8-3009-AB9A-5B67A534314C.dita"><apiname>SAnalogDisplayAmPm</apiname></xref>. </p> <p><b>Digital
-clock</b> </p> <p>Derived from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname>RDigitalClock</apiname></xref> provides
-a digital clock with configurable color, size, position, and font. What time
-information is displayed is configured through one or more <xref href="GUID-0BF934F0-6B1D-3B73-87BE-8DA87F40CB4F.dita"><apiname>TDigitalDisplayTextSection</apiname></xref> objects. </p> </section>
-<section id="GUID-979F2DEE-519E-4040-ACD9-2E5628C932BD-GENID-1-8-1-3-1-1-6-1-3-1-3-3"><title>See also</title><ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-6-1-1-4-1-5-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891-GENID-1-8-1-6-1-1-4-1-5-1-3-1" xml:lang="en"><title>Clock
-Overview</title><shortdesc>Provides the graphical display of digital and analogue clocks. The
-clocks are animated to change with system time. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-E3C63EE0-9955-469D-BAE5-34D6B237B309-GENID-1-8-1-6-1-1-4-1-5-1-3-1-3-1"><title>Architectural relationships</title> <p>The animation
-of the clocks is performed by an animation DLL that plugs-in to the Window
-Server. The key classes in this API are client-side animation classes, derived
-from the animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> </section>
-<section id="GUID-61371D21-F9AE-46A5-BE3F-BDEC6050DAE0-GENID-1-8-1-6-1-1-4-1-5-1-3-1-3-2"><title>Description</title> <p>The API has three key concepts: clock
-base classes, analogue clock, and digital clock. </p> <p><b>Clock base classes</b> </p> <p>A
-number of base classes provide shared functionality for the clocks, including
-basic display control, and time setting. They derive ultimately from <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>,
-and are, in inheritance order, <xref href="GUID-9DE6D2BB-2563-3196-B9A7-D9CD34C09BA5.dita"><apiname>RAnimWithUtils</apiname></xref>, <xref href="GUID-88506D0C-7206-3571-BCF8-1BED522849D4.dita"><apiname>RTimeDevice</apiname></xref>,
-and <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>. </p> <p><b>Analogue clock</b> </p> <p>Derived
-from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname>RAnalogClock</apiname></xref> provides
-an analogue clock with configurable color, size, position, and number of hands. </p> <p>How
-a hand is drawn is specified by a <xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname>TAnalogDisplayHand</apiname></xref> object.
-The settings for displaying an AM/PM indicator is provided by <xref href="GUID-5B7850F6-F0D8-3009-AB9A-5B67A534314C.dita"><apiname>SAnalogDisplayAmPm</apiname></xref>. </p> <p><b>Digital
-clock</b> </p> <p>Derived from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname>RDigitalClock</apiname></xref> provides
-a digital clock with configurable color, size, position, and font. What time
-information is displayed is configured through one or more <xref href="GUID-0BF934F0-6B1D-3B73-87BE-8DA87F40CB4F.dita"><apiname>TDigitalDisplayTextSection</apiname></xref> objects. </p> </section>
-<section id="GUID-979F2DEE-519E-4040-ACD9-2E5628C932BD-GENID-1-8-1-6-1-1-4-1-5-1-3-1-3-3"><title>See also</title><ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-</ul></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A36C2DE6-21D8-5558-B223-1E81CEB16891" xml:lang="en"><title>Clock
+Overview</title><shortdesc>Provides the graphical display of digital and analogue clocks. The
+clocks are animated to change with system time. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-E3C63EE0-9955-469D-BAE5-34D6B237B309"><title>Architectural relationships</title> <p>The animation
+of the clocks is performed by an animation DLL that plugs-in to the Window
+Server. The key classes in this API are client-side animation classes, derived
+from the animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> </section>
+<section id="GUID-61371D21-F9AE-46A5-BE3F-BDEC6050DAE0"><title>Description</title> <p>The API has three key concepts: clock
+base classes, analogue clock, and digital clock. </p> <p><b>Clock base classes</b> </p> <p>A
+number of base classes provide shared functionality for the clocks, including
+basic display control, and time setting. They derive ultimately from <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>,
+and are, in inheritance order, <xref href="GUID-9DE6D2BB-2563-3196-B9A7-D9CD34C09BA5.dita"><apiname>RAnimWithUtils</apiname></xref>, <xref href="GUID-88506D0C-7206-3571-BCF8-1BED522849D4.dita"><apiname>RTimeDevice</apiname></xref>,
+and <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>. </p> <p><b>Analogue clock</b> </p> <p>Derived
+from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-6D7509CD-7AD9-3C5D-AFDB-6F23D17224C7.dita"><apiname>RAnalogClock</apiname></xref> provides
+an analogue clock with configurable color, size, position, and number of hands. </p> <p>How
+a hand is drawn is specified by a <xref href="GUID-0D6ECBF5-EC03-3BF7-9C74-C0EC9BAF0CE6.dita"><apiname>TAnalogDisplayHand</apiname></xref> object.
+The settings for displaying an AM/PM indicator is provided by <xref href="GUID-5B7850F6-F0D8-3009-AB9A-5B67A534314C.dita"><apiname>SAnalogDisplayAmPm</apiname></xref>. </p> <p><b>Digital
+clock</b> </p> <p>Derived from <xref href="GUID-4185D78E-3C41-3597-9F62-6D968C92E415.dita"><apiname>RClock</apiname></xref>, the class <xref href="GUID-17CFBF88-1C4A-3CAD-9299-C1698FA20401.dita"><apiname>RDigitalClock</apiname></xref> provides
+a digital clock with configurable color, size, position, and font. What time
+information is displayed is configured through one or more <xref href="GUID-0BF934F0-6B1D-3B73-87BE-8DA87F40CB4F.dita"><apiname>TDigitalDisplayTextSection</apiname></xref> objects. </p> </section>
+<section id="GUID-979F2DEE-519E-4040-ACD9-2E5628C932BD"><title>See also</title><ul>
+<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
+<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A3B58436-07E4-565B-800B-86435D205461.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A3B58436-07E4-565B-800B-86435D205461.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,181 +1,181 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A3B58436-07E4-565B-800B-86435D205461" xml:lang="en"><title>Certificate
-Validation in PKIX</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Certificates of different types are trusted by different applications.
-Therefore certificates need to be signed by certification authority (CA) and
-the signature must be verified and validated. This section describes about
-certificate chain and certificate validation processes. </p>
-<section><title>Certificate Chain</title> <p>Certificate validation is a recursive
-process. It begins with the need to verify the signature on some data presented
-by an End Entity (EE). This involves checking that the key pair is actually
-owned by that EE. To do this the public signing key of that EE is acquired
-by getting its certificate. That certificate would have been signed by the
-EE's certification authority (CA), so the signature on the certificate can
-be verified by getting the CA's public signing key. In turn the CA's certificate
-might require verifying in which case the process is repeated until the process
-bottoms out when an entity which is already trusted is reached; that entity
-is usually self signed. This process is illustrated in the figure below: </p> <fig id="GUID-A0956B2A-B12F-58E1-9172-C1EDBBE593CE">
-<title>              Certificate chain            </title>
-<image href="GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390371_href.png" placement="inline"/>
-</fig> <p>The set of certificates from an EE up to a trusted root CA certificate
-is called a <keyword>certificate chain</keyword>. Once a certificate chain
-has been constructed ,the EE's key pair at the start can be validated. </p> </section>
-<section><title> Input to Certificate Validation</title> <p id="GUID-21CE5C18-856E-57B6-A5B6-3C1104EB8151"><b> End
-Entity &amp; Intermediate Certificates</b> </p> <p>A set of certificates,
-from the entity requesting authentication up to, but not including, one already
-trusted by the relying party. </p> <p>Where these certificates come from is
-potentially a difficult problem if certificate management is expected to search
-for intermediate certificates in remote repositories; however for TLS at least
-servers are required to supply a complete, ordered set of certificates in
-the form of DER-encoded ASN.1; so client code can just pass this into the
-certificate chain object. </p> <p id="GUID-2533ACD8-29FC-5297-A462-7D93BF029A59"><b> Trusted
-Root Certificates</b> </p> <p>Authentication cannot be done entirely by software:
-there must be a point at which the user confirms that they trust a particular
-entity. The validation algorithm can only ascertain that if the user trusts
-certificate X then they may also trust certificate Y. Certificates which the
-user trusts directly are called root certificates because they are the root
-of the validation chain. They are usually self-signed. </p> <p>It is likely
-that different applications will have different requirements about which certificates
-may be considered trust roots and for the level of protection they require
-for trust roots. To this end, applications will pass in a unique ID (<codeph>TUid</codeph>)
-which Certificate and Key Management will use to identify the application,
-and so work out which certificates can be considered trusted for that application. </p> <p>For
-additional flexibility, an overload is provided enabling clients to pass a
-set of root certificates directly into the validation function. </p> <p>For
-more detailed discussion of the storage and management of root certificates
-see <xref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita">Root Certificate
-Management, Storage, and Client registration</xref>. </p> <p id="GUID-0E4B09EF-74B8-5272-98F4-60C423614F50"><b> Validation
-Time</b> </p> <p>The time for which validation will be performed. </p> <p id="GUID-288B55BA-E0B0-5F67-BD62-A08832A09889"><b> Acceptable Policies</b> </p> <p>A
-set of OIDs, each of which represents a certification policy acceptable to
-the application. This enables client code to restrict the certificates that
-may occur in a valid certificate chain. Client code does not have to specify
-any preferred policies here. An empty set is interpreted as any policy. </p> </section>
-<section id="GUID-AE46492C-5F13-5B73-B1F5-81DD6C15AFAF"><title>Configuring
-for Certificate Validation</title> <p>The following settings can be configured
-for the validation process: </p> <table id="GUID-D88105DD-347A-5E33-8B79-1A75CCC28ED0">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p>Supported critical extensions </p> </entry>
-<entry><p>You can list supported X.509 v3 critical extensions. Once you have
-set a list, you have full control over the processing of X.509 v3 critical
-extensions. If a critical extension is found whose OID matches an element
-in this list, certificate validation treats this as a warning instead of an
-error. </p> <p>You can set, add, remove and reset the list of supported critical
-extensions. </p> <p>If critical extensions are not configured, the validation
-process uses a default set. This includes standard X.509 critical extensions
-and Symbian specific critical extensions. </p> </entry>
-</row>
-<row>
-<entry><p>Date validity checks </p> </entry>
-<entry><p>You can specify whether a failed check on the certificate validity
-date is treated as an error or a warning. You can use this to verify the certificate
-validity period post-installation. By default the certificate validity period
-only needs to be checked at installation. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title> Chain Validation</title> <p><b> Chain Construction</b> </p> <p>The
-chain object parses the encoded set of certificates. The first certificate
-is considered to be the EE certificate, and subsequent certificates must each
-certify the preceding one. The chain object then searches the set of trusted
-root certificates for a certificate trusted by the client and whose subject
-name matches the issuer name in the last certificate in the decoded set. If
-two or more match, it will attempt to resolve this be comparing the authority
-key ID in the last certificate with the subject key ID in each candidate root.
-If this extension is not present, it will attempt to find a single root by
-signature verification. If no root is found validation will fail immediately
-with an error. </p> <p><b> Initialisation of Chain Validation Algorithm</b> </p> <p>The
-certificate chain initialises the following state variables: </p> <ul>
-<li id="GUID-00BFA3CA-ECE2-5D69-B90F-B1B01D40006D"><p>Validation Time: time
-for which validation is calculated. Initialised to the time supplied by client
-code. </p> </li>
-<li id="GUID-266D360B-2793-5963-B2B2-D79E9745AF4D"><p>Initial Policies: set
-of policy OIDs, initialised to the policies supplied by client code </p> </li>
-<li id="GUID-4DEBA756-99FA-54CB-9E93-85F8F54301B7"><p>Acceptable Policies:
-set of X.509 policy information objects, initially any policy </p> </li>
-<li id="GUID-B7FD8FF3-61E1-5CAB-8B6E-25092186727E"><p>Mapped Policies: set
-of policy OIDs, initially empty </p> </li>
-<li id="GUID-280A775A-4F34-5A1B-9A9A-BAFFE7A4E77B"><p>Excluded Subtrees: set
-of X.500 General Name objects, initially empty </p> </li>
-<li id="GUID-C4059DDE-16AC-5B3F-8001-09DC1FF789A8"><p>Permitted Subtrees:
-set of X.500 General Name objects, initially any subtree </p> </li>
-<li id="GUID-A27F8096-0F6B-5942-9019-3D7685AE3E10"><p>Max Path Length: integer
-representing the maximum path length. Initially the actual path length </p> </li>
-<li id="GUID-89B057B9-E26E-594C-B23F-E73FA97E07C8"><p>Inhibit Policy Mapping:
-integer whose value is the number of certificates that may appear after the
-current one before policy mapping is no longer permitted. Initially the chain
-length </p> </li>
-<li id="GUID-3D92E10D-2BF5-5DD3-B061-9CB332631880"><p>Require Explicit Policy:
-integer whose value is the number of certificates that may appear after the
-current one before an acceptable policy OID must appear in the certificate.
-Initially the chain length </p> </li>
-<li id="GUID-1CEA8529-2141-5083-9279-F464B217BDE1"><p>Current Cert: integer
-whose value is the position of the current certificate in the chain. Initially
-the chain length -1 </p> </li>
-</ul> <p><b> Validation Algorithm</b> </p> <p>Validation of a certificate
-chain starts at the root and ends at the End Entity. </p> <p><i>Validation
-warnings </i></p> <p>Validation returns warnings. Warnings enable client code
-to evaluate whether irregularities are errors. </p> <p>From Version 9.3, validation
-returns a warning object for every certificate in the chain. Each warning
-object has the following characteristics: </p> <ul>
-<li id="GUID-4C016BA3-99EF-5D7C-9EDC-AC958C9AA937"><p>It includes the object's
-index. Clients use the index to get the certificate from the certificate chain
-object (<xref href="GUID-A919BE84-8257-3911-9AD1-B1DB736346CE.dita#GUID-A919BE84-8257-3911-9AD1-B1DB736346CE/GUID-9A843DCB-54C7-3BF4-BF30-2515969079A9"><apiname>CX509CertChain::Cert()</apiname></xref>). </p> </li>
-<li id="GUID-81C9B8B1-F8B4-50E8-B7DC-53C131B646B9"><p>It encapsulates the
-warnings and the critical extensions' OID values for that certificate. </p> <p> </p> </li>
-</ul> <p>Clients can query the object for two sets of data: </p> <ul>
-<li id="GUID-A7E6D671-1966-5DA7-821C-C7AD3880D7F1"><p>the critical extensions
-for the certificate </p> </li>
-<li id="GUID-5FCA36E5-CEDB-567C-8E95-759C13A64362"><p>a set of warning values,
-each consisting of a reason for the warning and an integer identifying the
-certificate that the warning is associated with. </p> </li>
-</ul> <p>After querying the warning object for the critical extension, the
-client must process any custom critical extensions it supplied that are not
-in the supported list. This meets the X.509 certificate specification. </p><note> Prior
-to version 9.3, the set of warning values returned included any warnings about
-critical extensions. Warning values no longer include this information. But
-backward compatibility has been maintained for warning objects prior to version
-9.3. </note> <p><i>Certificate validation step</i>s </p> <p>Certificate
-validation takes place through the following steps: </p> <ul>
-<li id="GUID-70351BB4-CE56-559E-81A2-1EE0DBA19AFD"><p>Signature Verification
-&amp; Name Chaining </p> <p>Each certificate must be signed by, and its subject
-name should match the issuer name in, the certificate above it in the chain.
-The only exception is the root certificate, which, if it claims to be self
-signed (i.e. its subject and issuer names match) must really be self signed;
-otherwise its signature is not verified, but a warning is generated. </p> </li>
-<li id="GUID-9597F61C-7ECE-5754-85BC-12D50035D7D1"><p>Validity Period Checking </p> <p>For
-each certificate, the Validation Time must lie within the validity period
-in the certificate. The check is always carried out. The check treats a failure
-as an error or a warning depending on how the validation process is configured
-(See Date validity checks in <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita#GUID-A3B58436-07E4-565B-800B-86435D205461/GUID-AE46492C-5F13-5B73-B1F5-81DD6C15AFAF">Configuring
-for Certificate Validation</xref>). By default the check treats the failure
-as an error. </p> </li>
-<li id="GUID-1EB6F83B-C10D-5809-B5A8-4AF45FFA9A92"><p>Extension Processing </p> <p>Extensions
-can be marked critical. All critical extensions must be in the supported list
-to be recognized and processed. When a critical extension that is not in the
-supported list is encountered, an error results and validation fails. The
-client must process critical extensions that are not in the supported list. </p> </li>
-<li id="GUID-463F6C6E-7C3B-514E-A7E8-91D07CFFD102"><p>Revocation Checking </p> </li>
-</ul> <p>Additionally, for each certificate: </p> <ul>
-<li id="GUID-91579F6C-2C98-50DF-9637-E08EBDEC4CDE"><p>the <i>Max Path Length</i>, <i>Inhibit
-Policy Mapping</i> and <i>Require Explicit Policy</i> variables are decremented, </p> </li>
-<li id="GUID-05687909-8111-53D0-9760-88FF557C26AA"><p>and Current Cert must
-be less than or equal to <i>Max Path Length</i>. </p> </li>
-</ul> <p>When validation is complete the <i>Acceptable Policies</i> variable
-will be copied into the set of policies in the result object. </p> </section>
-<section><title>See also</title> <ul>
-<li id="GUID-A6095947-6CFF-50CC-BBAC-181B91CD9132"><p><xref href="GUID-E326C00B-6E07-5902-AB19-F00D1761795C.dita">PKIXCert</xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A3B58436-07E4-565B-800B-86435D205461" xml:lang="en"><title>Certificate
+Validation in PKIX</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Certificates of different types are trusted by different applications.
+Therefore certificates need to be signed by certification authority (CA) and
+the signature must be verified and validated. This section describes about
+certificate chain and certificate validation processes. </p>
+<section><title>Certificate Chain</title> <p>Certificate validation is a recursive
+process. It begins with the need to verify the signature on some data presented
+by an End Entity (EE). This involves checking that the key pair is actually
+owned by that EE. To do this the public signing key of that EE is acquired
+by getting its certificate. That certificate would have been signed by the
+EE's certification authority (CA), so the signature on the certificate can
+be verified by getting the CA's public signing key. In turn the CA's certificate
+might require verifying in which case the process is repeated until the process
+bottoms out when an entity which is already trusted is reached; that entity
+is usually self signed. This process is illustrated in the figure below: </p> <fig id="GUID-A0956B2A-B12F-58E1-9172-C1EDBBE593CE">
+<title>              Certificate chain            </title>
+<image href="GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390209_href.png" placement="inline"/>
+</fig> <p>The set of certificates from an EE up to a trusted root CA certificate
+is called a <keyword>certificate chain</keyword>. Once a certificate chain
+has been constructed ,the EE's key pair at the start can be validated. </p> </section>
+<section><title> Input to Certificate Validation</title> <p id="GUID-21CE5C18-856E-57B6-A5B6-3C1104EB8151"><b> End
+Entity &amp; Intermediate Certificates</b> </p> <p>A set of certificates,
+from the entity requesting authentication up to, but not including, one already
+trusted by the relying party. </p> <p>Where these certificates come from is
+potentially a difficult problem if certificate management is expected to search
+for intermediate certificates in remote repositories; however for TLS at least
+servers are required to supply a complete, ordered set of certificates in
+the form of DER-encoded ASN.1; so client code can just pass this into the
+certificate chain object. </p> <p id="GUID-2533ACD8-29FC-5297-A462-7D93BF029A59"><b> Trusted
+Root Certificates</b> </p> <p>Authentication cannot be done entirely by software:
+there must be a point at which the user confirms that they trust a particular
+entity. The validation algorithm can only ascertain that if the user trusts
+certificate X then they may also trust certificate Y. Certificates which the
+user trusts directly are called root certificates because they are the root
+of the validation chain. They are usually self-signed. </p> <p>It is likely
+that different applications will have different requirements about which certificates
+may be considered trust roots and for the level of protection they require
+for trust roots. To this end, applications will pass in a unique ID (<codeph>TUid</codeph>)
+which Certificate and Key Management will use to identify the application,
+and so work out which certificates can be considered trusted for that application. </p> <p>For
+additional flexibility, an overload is provided enabling clients to pass a
+set of root certificates directly into the validation function. </p> <p>For
+more detailed discussion of the storage and management of root certificates
+see <xref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita">Root Certificate
+Management, Storage, and Client registration</xref>. </p> <p id="GUID-0E4B09EF-74B8-5272-98F4-60C423614F50"><b> Validation
+Time</b> </p> <p>The time for which validation will be performed. </p> <p id="GUID-288B55BA-E0B0-5F67-BD62-A08832A09889"><b> Acceptable Policies</b> </p> <p>A
+set of OIDs, each of which represents a certification policy acceptable to
+the application. This enables client code to restrict the certificates that
+may occur in a valid certificate chain. Client code does not have to specify
+any preferred policies here. An empty set is interpreted as any policy. </p> </section>
+<section id="GUID-AE46492C-5F13-5B73-B1F5-81DD6C15AFAF"><title>Configuring
+for Certificate Validation</title> <p>The following settings can be configured
+for the validation process: </p> <table id="GUID-D88105DD-347A-5E33-8B79-1A75CCC28ED0">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>Supported critical extensions </p> </entry>
+<entry><p>You can list supported X.509 v3 critical extensions. Once you have
+set a list, you have full control over the processing of X.509 v3 critical
+extensions. If a critical extension is found whose OID matches an element
+in this list, certificate validation treats this as a warning instead of an
+error. </p> <p>You can set, add, remove and reset the list of supported critical
+extensions. </p> <p>If critical extensions are not configured, the validation
+process uses a default set. This includes standard X.509 critical extensions
+and Symbian specific critical extensions. </p> </entry>
+</row>
+<row>
+<entry><p>Date validity checks </p> </entry>
+<entry><p>You can specify whether a failed check on the certificate validity
+date is treated as an error or a warning. You can use this to verify the certificate
+validity period post-installation. By default the certificate validity period
+only needs to be checked at installation. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title> Chain Validation</title> <p><b> Chain Construction</b> </p> <p>The
+chain object parses the encoded set of certificates. The first certificate
+is considered to be the EE certificate, and subsequent certificates must each
+certify the preceding one. The chain object then searches the set of trusted
+root certificates for a certificate trusted by the client and whose subject
+name matches the issuer name in the last certificate in the decoded set. If
+two or more match, it will attempt to resolve this be comparing the authority
+key ID in the last certificate with the subject key ID in each candidate root.
+If this extension is not present, it will attempt to find a single root by
+signature verification. If no root is found validation will fail immediately
+with an error. </p> <p><b> Initialisation of Chain Validation Algorithm</b> </p> <p>The
+certificate chain initialises the following state variables: </p> <ul>
+<li id="GUID-00BFA3CA-ECE2-5D69-B90F-B1B01D40006D"><p>Validation Time: time
+for which validation is calculated. Initialised to the time supplied by client
+code. </p> </li>
+<li id="GUID-266D360B-2793-5963-B2B2-D79E9745AF4D"><p>Initial Policies: set
+of policy OIDs, initialised to the policies supplied by client code </p> </li>
+<li id="GUID-4DEBA756-99FA-54CB-9E93-85F8F54301B7"><p>Acceptable Policies:
+set of X.509 policy information objects, initially any policy </p> </li>
+<li id="GUID-B7FD8FF3-61E1-5CAB-8B6E-25092186727E"><p>Mapped Policies: set
+of policy OIDs, initially empty </p> </li>
+<li id="GUID-280A775A-4F34-5A1B-9A9A-BAFFE7A4E77B"><p>Excluded Subtrees: set
+of X.500 General Name objects, initially empty </p> </li>
+<li id="GUID-C4059DDE-16AC-5B3F-8001-09DC1FF789A8"><p>Permitted Subtrees:
+set of X.500 General Name objects, initially any subtree </p> </li>
+<li id="GUID-A27F8096-0F6B-5942-9019-3D7685AE3E10"><p>Max Path Length: integer
+representing the maximum path length. Initially the actual path length </p> </li>
+<li id="GUID-89B057B9-E26E-594C-B23F-E73FA97E07C8"><p>Inhibit Policy Mapping:
+integer whose value is the number of certificates that may appear after the
+current one before policy mapping is no longer permitted. Initially the chain
+length </p> </li>
+<li id="GUID-3D92E10D-2BF5-5DD3-B061-9CB332631880"><p>Require Explicit Policy:
+integer whose value is the number of certificates that may appear after the
+current one before an acceptable policy OID must appear in the certificate.
+Initially the chain length </p> </li>
+<li id="GUID-1CEA8529-2141-5083-9279-F464B217BDE1"><p>Current Cert: integer
+whose value is the position of the current certificate in the chain. Initially
+the chain length -1 </p> </li>
+</ul> <p><b> Validation Algorithm</b> </p> <p>Validation of a certificate
+chain starts at the root and ends at the End Entity. </p> <p><i>Validation
+warnings </i></p> <p>Validation returns warnings. Warnings enable client code
+to evaluate whether irregularities are errors. </p> <p>From Version 9.3, validation
+returns a warning object for every certificate in the chain. Each warning
+object has the following characteristics: </p> <ul>
+<li id="GUID-4C016BA3-99EF-5D7C-9EDC-AC958C9AA937"><p>It includes the object's
+index. Clients use the index to get the certificate from the certificate chain
+object (<xref href="GUID-A919BE84-8257-3911-9AD1-B1DB736346CE.dita#GUID-A919BE84-8257-3911-9AD1-B1DB736346CE/GUID-9A843DCB-54C7-3BF4-BF30-2515969079A9"><apiname>CX509CertChain::Cert()</apiname></xref>). </p> </li>
+<li id="GUID-81C9B8B1-F8B4-50E8-B7DC-53C131B646B9"><p>It encapsulates the
+warnings and the critical extensions' OID values for that certificate. </p> <p> </p> </li>
+</ul> <p>Clients can query the object for two sets of data: </p> <ul>
+<li id="GUID-A7E6D671-1966-5DA7-821C-C7AD3880D7F1"><p>the critical extensions
+for the certificate </p> </li>
+<li id="GUID-5FCA36E5-CEDB-567C-8E95-759C13A64362"><p>a set of warning values,
+each consisting of a reason for the warning and an integer identifying the
+certificate that the warning is associated with. </p> </li>
+</ul> <p>After querying the warning object for the critical extension, the
+client must process any custom critical extensions it supplied that are not
+in the supported list. This meets the X.509 certificate specification. </p><note> Prior
+to version 9.3, the set of warning values returned included any warnings about
+critical extensions. Warning values no longer include this information. But
+backward compatibility has been maintained for warning objects prior to version
+9.3. </note> <p><i>Certificate validation step</i>s </p> <p>Certificate
+validation takes place through the following steps: </p> <ul>
+<li id="GUID-70351BB4-CE56-559E-81A2-1EE0DBA19AFD"><p>Signature Verification
+&amp; Name Chaining </p> <p>Each certificate must be signed by, and its subject
+name should match the issuer name in, the certificate above it in the chain.
+The only exception is the root certificate, which, if it claims to be self
+signed (i.e. its subject and issuer names match) must really be self signed;
+otherwise its signature is not verified, but a warning is generated. </p> </li>
+<li id="GUID-9597F61C-7ECE-5754-85BC-12D50035D7D1"><p>Validity Period Checking </p> <p>For
+each certificate, the Validation Time must lie within the validity period
+in the certificate. The check is always carried out. The check treats a failure
+as an error or a warning depending on how the validation process is configured
+(See Date validity checks in <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita#GUID-A3B58436-07E4-565B-800B-86435D205461/GUID-AE46492C-5F13-5B73-B1F5-81DD6C15AFAF">Configuring
+for Certificate Validation</xref>). By default the check treats the failure
+as an error. </p> </li>
+<li id="GUID-1EB6F83B-C10D-5809-B5A8-4AF45FFA9A92"><p>Extension Processing </p> <p>Extensions
+can be marked critical. All critical extensions must be in the supported list
+to be recognized and processed. When a critical extension that is not in the
+supported list is encountered, an error results and validation fails. The
+client must process critical extensions that are not in the supported list. </p> </li>
+<li id="GUID-463F6C6E-7C3B-514E-A7E8-91D07CFFD102"><p>Revocation Checking </p> </li>
+</ul> <p>Additionally, for each certificate: </p> <ul>
+<li id="GUID-91579F6C-2C98-50DF-9637-E08EBDEC4CDE"><p>the <i>Max Path Length</i>, <i>Inhibit
+Policy Mapping</i> and <i>Require Explicit Policy</i> variables are decremented, </p> </li>
+<li id="GUID-05687909-8111-53D0-9760-88FF557C26AA"><p>and Current Cert must
+be less than or equal to <i>Max Path Length</i>. </p> </li>
+</ul> <p>When validation is complete the <i>Acceptable Policies</i> variable
+will be copied into the set of policies in the result object. </p> </section>
+<section><title>See also</title> <ul>
+<li id="GUID-A6095947-6CFF-50CC-BBAC-181B91CD9132"><p><xref href="GUID-E326C00B-6E07-5902-AB19-F00D1761795C.dita">PKIXCert</xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674"><title>Drawing Bitmaps</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides example code that demonstrates blitting a bitmap to the screen, blitting a rectangular piece of a bitmap to the screen and blitting a bitmap under a mask. </p> <p>These examples assume that <codeph>bitmap</codeph> is a pointer to a valid <codeph>CFbsBitmap</codeph> object. </p> <section><title>Bitmap block transfer</title> <p>Use <codeph>CBitmapContext::BitBlt()</codeph> to blit a <codeph>CFbsBitmap</codeph> to the screen. </p> <codeblock id="GUID-C40381A2-3729-5606-824F-7208421C76C2" xml:space="preserve">// draw the bitmap using bitmap block transfer
-TPoint pos(50,50);
-gc.BitBlt(pos, bitmap);</codeblock> </section> <section><title>Block transfer of a rectangular piece of a bitmap</title> <p>You can blit a rectangular piece of a bitmap to the screen. </p> <codeblock id="GUID-F216FE85-C2B4-586B-86D1-F6C859FA9891" xml:space="preserve">...
-// set a rectangle for the top-left quadrant of the source bitmap
-TSize bmpSizeInPixels=bitmap-&gt;SizeInPixels();
-TSize bmpPieceSize(bmpSizeInPixels.iWidth/2,bmpSizeInPixels.iHeight/2);
-TRect bmpPieceRect(TPoint(0,0),bmpPieceSize); 
-    
-// blit only the piece of the bitmap indicated by bmpPieceRect
-TPoint pos(100,100);
-gc.BitBlt(pos, bitmap, bmpPieceRect);</codeblock> </section> <section id="GUID-22430013-D8A8-5A09-8DD9-D95A6EF00B2D"><title>Masked bitmap block transfer</title> <p>Masks can be used to select which parts of a bitmap are drawn by <codeph>CBitmapContext::BitBltMasked()</codeph>. </p> <p>Masks can be used to not display pixels of the source bitmap if their corresponding mask pixel is black, or, alternatively, where the mask is white (called an inverted mask). </p> <p>The following figure shows successively a source bitmap, a mask, and the outcome when they are blitted with <codeph>BitBltMasked()</codeph>. </p> <fig id="GUID-425B6A42-6B3B-5FE4-BDD6-59CD7E695C4A"><image href="GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e208830_href.png" placement="inline"/></fig> <codeblock id="GUID-8D967F91-A768-5DA7-A7D7-D5CA2D40B8D9" xml:space="preserve">// Load the mask bitmap, just like any other
-CFbsBitmap* maskBitmap = new (ELeave) CFbsBitmap();
-CleanupStack::PushL(maskBitmap);
-User::LeaveIfError(maskBitmap-&gt;
-  Load(multiBitmapFile,EMbmGrbmap2Smilmask));
-    
-// Calculate rectangle for the whole bitmap
-TRect bmpPieceRect(TPoint(0,0),bitmap-&gt;SizeInPixels());
-    
-// Blit using a masking bitmap, with no inversion
-gc.BitBltMasked(TPoint(50,50),bitmap,bmpPieceRect,maskBitmap,EFalse);
-    
-...
-// clean up
-CleanupStack::PopAndDestroy();
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A3EBB297-1494-579C-83D5-8FDBBD01B674"><title>Drawing Bitmaps</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides example code that demonstrates blitting a bitmap to the screen, blitting a rectangular piece of a bitmap to the screen and blitting a bitmap under a mask. </p> <p>These examples assume that <codeph>bitmap</codeph> is a pointer to a valid <codeph>CFbsBitmap</codeph> object. </p> <section><title>Bitmap block transfer</title> <p>Use <codeph>CBitmapContext::BitBlt()</codeph> to blit a <codeph>CFbsBitmap</codeph> to the screen. </p> <codeblock id="GUID-C40381A2-3729-5606-824F-7208421C76C2" xml:space="preserve">// draw the bitmap using bitmap block transfer
+TPoint pos(50,50);
+gc.BitBlt(pos, bitmap);</codeblock> </section> <section><title>Block transfer of a rectangular piece of a bitmap</title> <p>You can blit a rectangular piece of a bitmap to the screen. </p> <codeblock id="GUID-F216FE85-C2B4-586B-86D1-F6C859FA9891" xml:space="preserve">...
+// set a rectangle for the top-left quadrant of the source bitmap
+TSize bmpSizeInPixels=bitmap-&gt;SizeInPixels();
+TSize bmpPieceSize(bmpSizeInPixels.iWidth/2,bmpSizeInPixels.iHeight/2);
+TRect bmpPieceRect(TPoint(0,0),bmpPieceSize); 
+    
+// blit only the piece of the bitmap indicated by bmpPieceRect
+TPoint pos(100,100);
+gc.BitBlt(pos, bitmap, bmpPieceRect);</codeblock> </section> <section id="GUID-22430013-D8A8-5A09-8DD9-D95A6EF00B2D"><title>Masked bitmap block transfer</title> <p>Masks can be used to select which parts of a bitmap are drawn by <codeph>CBitmapContext::BitBltMasked()</codeph>. </p> <p>Masks can be used to not display pixels of the source bitmap if their corresponding mask pixel is black, or, alternatively, where the mask is white (called an inverted mask). </p> <p>The following figure shows successively a source bitmap, a mask, and the outcome when they are blitted with <codeph>BitBltMasked()</codeph>. </p> <fig id="GUID-425B6A42-6B3B-5FE4-BDD6-59CD7E695C4A"><image href="GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e203822_href.png" placement="inline"/></fig> <codeblock id="GUID-8D967F91-A768-5DA7-A7D7-D5CA2D40B8D9" xml:space="preserve">// Load the mask bitmap, just like any other
+CFbsBitmap* maskBitmap = new (ELeave) CFbsBitmap();
+CleanupStack::PushL(maskBitmap);
+User::LeaveIfError(maskBitmap-&gt;
+  Load(multiBitmapFile,EMbmGrbmap2Smilmask));
+    
+// Calculate rectangle for the whole bitmap
+TRect bmpPieceRect(TPoint(0,0),bitmap-&gt;SizeInPixels());
+    
+// Blit using a masking bitmap, with no inversion
+gc.BitBltMasked(TPoint(50,50),bitmap,bmpPieceRect,maskBitmap,EFalse);
+    
+...
+// clean up
+CleanupStack::PopAndDestroy();
 </codeblock> <p><b>Notes </b> </p> <ul><li id="GUID-4CDB8020-D42D-517D-BA3A-2D6FDD2DEA33"><p>Unlike with an ordinary <codeph>BitBlit()</codeph>, with <codeph>BitBltMasked()</codeph> you always have to specify what part of the bitmap to display: here we just set <codeph>bmpPieceRect</codeph> so that the whole bitmap is displayed. </p> </li> <li id="GUID-67FFCC84-B364-50DF-ACDA-54FF865FB423"><p>If the mask bitmap is smaller than the source bitmap, then it is tiled across the bitmap. </p> </li> <li id="GUID-A2A17DA3-5B03-56EF-B5FE-E6C8837F26F6"><p>For an inverted mask, set the last argument to <codeph>BitBltMasked()</codeph> to <codeph>ETrue</codeph>. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-AFE8A9CC-E026-5396-8E0C-616338B5F5C3.dita"><linktext>BitGDI Tutorials</linktext> </link> <link href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita"><linktext>BitGDI Component</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539" xml:lang="en"><title>Relationship
-between framework and applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><draft-comment time="2007-03-05T10:12">Comment for reviewers: we will
-be adding a picture to illustrate this point in future releases of the CDL.</draft-comment></p>
-<p>The displays and keys for the mobile device are shared between all running
-applications. The Symbian platform controls and coordinates access to them.
-When you meet the <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">application
-framework architecture</xref> requirements, the application framework manages
-connections to the underlying architecture and also controls some of the elements
-on the display. While the details of what is controlled by default by the
-Symbian platform and what is controlled by your application are covered in
-the relevant sections of this UI section, the following cases illustrate some
-divisions about what is managed where: </p>
-<ul>
-<li><p>in the status pane: </p>
-<itemgroup>
-<p>The drawing of the status pane is managed by the Symbian platform.</p>
-<p>The <i>battery pane/universal indicator pane</i> and <i>signal pane</i> are
-managed by the Symbian platform.</p>
-<p>The <i>title pane</i>, <i>context pane,</i> and <i>navi pane</i> are
-managed by your application, although a default behavior is provided by the
-application framework.</p>
-</itemgroup>
-</li>
-<li><p>in the control pane:</p>
-<itemgroup>
-<p>The drawing of the control pane is managed by the Symbian platform.</p>
-<p>The labels associated with the two softkeys are provided by application
-resources.</p>
-<p>The event loop that collects the commands that result from selections
-and the passing of these commands on to your application are handled by the
-application framework.</p>
-<p>The <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">handling
-of the commands</xref> received from the application framework need to be
-handled in your application.</p>
-<p>For more details, see <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA buttons</xref> and <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">Menu
-bars</xref>.</p>
-</itemgroup>
-</li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A4560E99-C124-49A1-ADA1-D1B1F18EE539" xml:lang="en"><title>Relationship
+between framework and applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><draft-comment time="2007-03-05T10:12">Comment for reviewers: we will
+be adding a picture to illustrate this point in future releases of the CDL.</draft-comment></p>
+<p>The displays and keys for the mobile device are shared between all running
+applications. The Symbian platform controls and coordinates access to them.
+When you meet the <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">application
+framework architecture</xref> requirements, the application framework manages
+connections to the underlying architecture and also controls some of the elements
+on the display. While the details of what is controlled by default by the
+Symbian platform and what is controlled by your application are covered in
+the relevant sections of this UI section, the following cases illustrate some
+divisions about what is managed where: </p>
+<ul>
+<li><p>in the status pane: </p>
+<itemgroup>
+<p>The drawing of the status pane is managed by the Symbian platform.</p>
+<p>The <i>battery pane</i>, <i>universal indicator pane</i>and <i>signal
+pane</i> are managed by the Symbian platform.</p>
+<p>The <i>title pane</i>, <i>context pane,</i> and <i>navi pane</i> are
+managed by your application, although a default behavior is provided by the
+application framework.</p>
+</itemgroup>
+</li>
+<li><p>in the control pane:</p>
+<itemgroup>
+<p>The drawing of the control pane is managed by the Symbian platform.</p>
+<p>The labels associated with the two softkeys are provided by application
+resources.</p>
+<p>The event loop that collects the commands that result from selections
+and the passing of these commands on to your application are handled by the
+application framework.</p>
+<p>The <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">handling
+of the commands</xref> received from the application framework need to be
+handled in your application.</p>
+<p>For more details, see <xref href="GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita">CBA buttons</xref> and <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">Menu bars</xref>.</p>
+</itemgroup>
+</li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A467E933-C4B4-5518-96D6-471E44B216B3"><title> Advanced Pond Guide</title><shortdesc>This topic describes Comms ponds in more detail. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-504F0262-7142-5AE0-8E56-675028D7711B"><title>APIs</title> <p>The following diagram is a partial representation of the class relationships for <xref href="GUID-F5B96520-E8A6-3775-9059-DF5A1668043B.dita"><apiname>RCommsBufPond</apiname></xref>. </p> <fig id="GUID-ECAD1BBF-7319-53E5-9719-0BEEE52CFC0D"><title>
-             Comms pond 
-          </title> <image href="GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e114072_href.png" placement="inline"/></fig> <p> </p> <p>An <xref href="GUID-F5B96520-E8A6-3775-9059-DF5A1668043B.dita"><apiname>RCommsBufPond</apiname></xref> instance manages a number of memory pools. Each pool contains buffers of identical size. </p> <p>The Comms Data Plane uses chains of buffers to transfer data up and down the stack. For more information about buffers and chains, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> </section> <section id="GUID-7BA25CFC-91A4-5A72-A281-FE1CD89179A1"><title>Lifecycle</title> <ol id="GUID-FC7EDD22-6ADB-566F-9DD0-C2B001B86474"><li id="GUID-A0EA1F6F-2E8C-5A0E-AACB-AF799D3B6B27"><p> <codeph>c32start.exe</codeph> reads the pond configuration stored in the <codeph>c32start.ini</codeph> file (see <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita">Pond Configuration Reference</xref>). </p> </li> <li id="GUID-8DF535A1-CE52-575A-85A1-4A88DC275E6C"><p> <codeph>c32start.exe</codeph> provides the configuration information to the Root Server when initializing it. For more information about the C32 process, see <xref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita">Root Server</xref>. </p> </li> <li id="GUID-7D3ED0BE-2616-53A2-9F75-EA3FB491586B"><p>The Root Server creates the pond with the specified pools. </p> </li> <li id="GUID-B9989E00-6052-5D0E-B273-69FDF36C4A74"><p>The Root Server puts the pond handle in the TLS of each thread in <codeph>c32exe.exe</codeph> (see <xref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita">TLS Look-up Reduction Tutorial</xref>). </p> </li> </ol> <fig id="GUID-7DB5C332-6F20-5C84-892A-FBEE2B7A6F25"><image href="GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e114139_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
-                and Comms Chains</linktext> </link> <link href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita"><linktext>Pond Configuration
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A467E933-C4B4-5518-96D6-471E44B216B3"><title> Advanced Pond Guide</title><shortdesc>This topic describes Comms ponds in more detail. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-504F0262-7142-5AE0-8E56-675028D7711B"><title>APIs</title> <p>The following diagram is a partial representation of the class relationships for <xref href="GUID-F5B96520-E8A6-3775-9059-DF5A1668043B.dita"><apiname>RCommsBufPond</apiname></xref>. </p> <fig id="GUID-ECAD1BBF-7319-53E5-9719-0BEEE52CFC0D"><title>
+             Comms pond 
+          </title> <image href="GUID-581FB79B-2DB9-5AB8-AB32-997B05A62070_d0e107534_href.png" placement="inline"/></fig> <p> </p> <p>An <xref href="GUID-F5B96520-E8A6-3775-9059-DF5A1668043B.dita"><apiname>RCommsBufPond</apiname></xref> instance manages a number of memory pools. Each pool contains buffers of identical size. </p> <p>The Comms Data Plane uses chains of buffers to transfer data up and down the stack. For more information about buffers and chains, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita">Comms Buffers (MBuf) and Comms Chains</xref>. </p> </section> <section id="GUID-7BA25CFC-91A4-5A72-A281-FE1CD89179A1"><title>Lifecycle</title> <ol id="GUID-FC7EDD22-6ADB-566F-9DD0-C2B001B86474"><li id="GUID-A0EA1F6F-2E8C-5A0E-AACB-AF799D3B6B27"><p> <codeph>c32start.exe</codeph> reads the pond configuration stored in the <codeph>c32start.ini</codeph> file (see <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita">Pond Configuration Reference</xref>). </p> </li> <li id="GUID-8DF535A1-CE52-575A-85A1-4A88DC275E6C"><p> <codeph>c32start.exe</codeph> provides the configuration information to the Root Server when initializing it. For more information about the C32 process, see <xref href="GUID-2FED5145-58E4-5560-8E52-6BD499EECE13.dita">Root Server</xref>. </p> </li> <li id="GUID-7D3ED0BE-2616-53A2-9F75-EA3FB491586B"><p>The Root Server creates the pond with the specified pools. </p> </li> <li id="GUID-B9989E00-6052-5D0E-B273-69FDF36C4A74"><p>The Root Server puts the pond handle in the TLS of each thread in <codeph>c32exe.exe</codeph> (see <xref href="GUID-F2E86FB3-C634-5CF9-87B2-EAB18BF25C4B.dita">TLS Look-up Reduction Tutorial</xref>). </p> </li> </ol> <fig id="GUID-7DB5C332-6F20-5C84-892A-FBEE2B7A6F25"><image href="GUID-6E3AF264-6149-51FA-BBA0-68E2DB679048_d0e107601_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
+                and Comms Chains</linktext> </link> <link href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita"><linktext>Pond Configuration
                 Reference</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243" xml:lang="en"><title>Duplicating
-handles to Kernel side objects</title><shortdesc>This document describes when you should duplicate a handle in kernel
-side programming.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-E9B67C16-E1D1-42D4-872D-6731F94DBC87"><title>Duplicating a thread-relative handle in another thread</title> <p>A
-handle in one thread (a thread-relative handle) may be duplicated in another
-thread within the same process.</p> <p>Typically, thread B may want to access
-a Kernel object which already exists and for which thread A, within the same
-process, already holds a handle.</p> <p>For example, if thread A has a handle
-on a semaphore, it is insufficient to pass a copy of the handle, an <codeph>RSemaphore</codeph>,
-to thread B. The handle passed to thread B does not refer to anything known
-by thread B. In order for thread B to gain a valid handle on the DLL, the
-handle must be duplicated.</p> <p>Note that, in practice, real code may or
-may not want to duplicate a semaphore handle, however the principle remains
-valid.</p> <p>In thread B, then:</p> <codeblock id="GUID-A6110799-7A92-5EF9-9AE8-CBB532D7542B" xml:space="preserve">...
-RSemaphore cs;
-cs.SetHandle(h.Handle()); 
-                          // ...where  h  is an RSemaphore, the
-                          // handle to the DLL, and
-                          // passed from thread A code.
-                                  
-cs.Duplicate(tA);
-                          // ...where  tA  is an RThread, the handle to
-                          // thread A, and passed from threadA code.
-                          // Duplicate also opens the resulting
-                          // handle, cs.
-...
-</codeblock> <p>The dotted line in the following diagram shows the effect
-of this:</p> <fig id="GUID-731954F6-D85E-5940-96A4-15AC6E3AA5F5">
-<image href="GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e234496_href.png" placement="inline"/>
-</fig> <p>Note that for process-relative handles, there is no need to use <codeph>Duplicate()</codeph>;
-the handle passed from thread A to thread B can be used directly.</p> </section>
-<section id="GUID-83BE173E-F73D-46A8-8267-A1055E486FE3"><title>Making specific handles from generic handles</title> <p>There
-are two types of generic handle, one for threads and one for processes, both
-of which are created using the default constructor of the appropriate handle.</p> <codeblock id="GUID-F42A0EEB-3142-527A-9BD4-724B9969CF5D" xml:space="preserve">RThread  thisThread;  // Generic handle meaning "the current thread"
-RProcess thisProcess; // Generic handle meaning "the current process"
-</codeblock> <p>An important fact about generic handles is that they make
-no claim on the object that they refer to, so you don't need to call <codeph>Close()</codeph> when
-you get rid of them. This is not true of specific handles, which always add
-a reference to the object that they refer to, preventing that object being
-fully destroyed until all specific handles have been closed.</p> <p>Use Duplicate()
-to make a specific handle from a generic handle; for example:</p> <codeblock id="GUID-D5588FB1-8ACE-526F-A8D7-6E2C5C089823" xml:space="preserve">RThread thisThread;                        // generic handle
-TInt err=thisThread.Duplicate(thisThread);    // a specific handle
-...
-thisThread.Close();                        // don't forget.
-</codeblock> </section>
-<section id="GUID-83C281F6-1C91-4F1A-9C69-3C5BF3843DE5"><title>Promoting a thread-relative handle to a process-wide handle</title> <p>The
-second parameter passed to <codeph>Duplicate()</codeph> specifies whether
-the resulting handle is specific to the calling thread, or is valid for all
-threads in the same process.</p> <p><codeph>Duplicate()</codeph> offers a
-way of making a handle, which is specific to a thread, known to all the threads
-in a process.</p> <p>This does not work for all handles but <codeph>RLibrary</codeph> is
-an example of one where it can make sense to promote an <codeph>RLibrary</codeph> thread-relative
-handle to a process-relative handle because this ensures that the library
-will not be automatically unloaded when the original thread terminates. For
-example:</p> <codeblock id="GUID-E02BE012-EE3F-53A0-A3E0-7B57E03B9D28" xml:space="preserve">...
-_LIT(KMyLib,"MYLIB");
-...
-RLibrary threadLibrary;
-err=threadLibrary.Load(KMyLib);        // Load up a DLL, this gives
-                                       // a thread-specific handle.
-RLibrary aDup=threadLibrary;           // Copies handle without
-                                       // doing Open().
-err=threadLibrary.Duplicate(RThread());// Overwrite the original.
-if (err==KErrNone)
-    {
-       aDup.Close();                      // Close the original.
-    }
-...
-</codeblock> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243" xml:lang="en"><title>Duplicating
+handles to Kernel side objects</title><shortdesc>This document describes when you should duplicate a handle in kernel
+side programming.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-E9B67C16-E1D1-42D4-872D-6731F94DBC87"><title>Duplicating a thread-relative handle in another thread</title> <p>A
+handle in one thread (a thread-relative handle) may be duplicated in another
+thread within the same process.</p> <p>Typically, thread B may want to access
+a Kernel object which already exists and for which thread A, within the same
+process, already holds a handle.</p> <p>For example, if thread A has a handle
+on a semaphore, it is insufficient to pass a copy of the handle, an <codeph>RSemaphore</codeph>,
+to thread B. The handle passed to thread B does not refer to anything known
+by thread B. In order for thread B to gain a valid handle on the DLL, the
+handle must be duplicated.</p> <p>Note that, in practice, real code may or
+may not want to duplicate a semaphore handle, however the principle remains
+valid.</p> <p>In thread B, then:</p> <codeblock id="GUID-A6110799-7A92-5EF9-9AE8-CBB532D7542B" xml:space="preserve">...
+RSemaphore cs;
+cs.SetHandle(h.Handle()); 
+                          // ...where  h  is an RSemaphore, the
+                          // handle to the DLL, and
+                          // passed from thread A code.
+                                  
+cs.Duplicate(tA);
+                          // ...where  tA  is an RThread, the handle to
+                          // thread A, and passed from threadA code.
+                          // Duplicate also opens the resulting
+                          // handle, cs.
+...
+</codeblock> <p>The dotted line in the following diagram shows the effect
+of this:</p> <fig id="GUID-731954F6-D85E-5940-96A4-15AC6E3AA5F5">
+<image href="GUID-5BABDDEC-1D81-5847-9ADB-65DF8E404BFA_d0e230759_href.png" placement="inline"/>
+</fig> <p>Note that for process-relative handles, there is no need to use <codeph>Duplicate()</codeph>;
+the handle passed from thread A to thread B can be used directly.</p> </section>
+<section id="GUID-83BE173E-F73D-46A8-8267-A1055E486FE3"><title>Making specific handles from generic handles</title> <p>There
+are two types of generic handle, one for threads and one for processes, both
+of which are created using the default constructor of the appropriate handle.</p> <codeblock id="GUID-F42A0EEB-3142-527A-9BD4-724B9969CF5D" xml:space="preserve">RThread  thisThread;  // Generic handle meaning "the current thread"
+RProcess thisProcess; // Generic handle meaning "the current process"
+</codeblock> <p>An important fact about generic handles is that they make
+no claim on the object that they refer to, so you don't need to call <codeph>Close()</codeph> when
+you get rid of them. This is not true of specific handles, which always add
+a reference to the object that they refer to, preventing that object being
+fully destroyed until all specific handles have been closed.</p> <p>Use Duplicate()
+to make a specific handle from a generic handle; for example:</p> <codeblock id="GUID-D5588FB1-8ACE-526F-A8D7-6E2C5C089823" xml:space="preserve">RThread thisThread;                        // generic handle
+TInt err=thisThread.Duplicate(thisThread);    // a specific handle
+...
+thisThread.Close();                        // don't forget.
+</codeblock> </section>
+<section id="GUID-83C281F6-1C91-4F1A-9C69-3C5BF3843DE5"><title>Promoting a thread-relative handle to a process-wide handle</title> <p>The
+second parameter passed to <codeph>Duplicate()</codeph> specifies whether
+the resulting handle is specific to the calling thread, or is valid for all
+threads in the same process.</p> <p><codeph>Duplicate()</codeph> offers a
+way of making a handle, which is specific to a thread, known to all the threads
+in a process.</p> <p>This does not work for all handles but <codeph>RLibrary</codeph> is
+an example of one where it can make sense to promote an <codeph>RLibrary</codeph> thread-relative
+handle to a process-relative handle because this ensures that the library
+will not be automatically unloaded when the original thread terminates. For
+example:</p> <codeblock id="GUID-E02BE012-EE3F-53A0-A3E0-7B57E03B9D28" xml:space="preserve">...
+_LIT(KMyLib,"MYLIB");
+...
+RLibrary threadLibrary;
+err=threadLibrary.Load(KMyLib);        // Load up a DLL, this gives
+                                       // a thread-specific handle.
+RLibrary aDup=threadLibrary;           // Copies handle without
+                                       // doing Open().
+err=threadLibrary.Duplicate(RThread());// Overwrite the original.
+if (err==KErrNone)
+    {
+       aDup.Close();                      // Close the original.
+    }
+...
+</codeblock> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A4F3738C-CBFD-4151-9132-26FE05966715.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A4F3738C-CBFD-4151-9132-26FE05966715" xml:lang="en"><title>CBA buttons</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-A84D5799-70F3-46CB-90B6-05A455B0499E"><title>Application with Options and Exit softkeys, portrait and landscape
-views</title><image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e72940_href.png"/></fig>
-<p>The Symbian platform uses Control Button Area (CBA) resources to set
-the options in the control pane above the softkeys. CBA resources map the
-text that appears above the softkeys in the control pane with commands that
-are collected by the event loop of the application framework and delivered
-to your application for <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">command
-handling</xref>.</p>
-<p>When a mobile device user selects an <parmname>Options</parmname> softkey,
-the application framework displays the <parmname>Options</parmname> menu based
-upon the definitions in the <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">menu
-bars</xref> resources.</p>
-<p>Depending upon the requirements of your application, you can either:</p>
-<ul>
-<li><p><xref href="GUID-A3AF142B-F9DF-43FD-9D3F-788A74D0C575.dita">use
-precompiled CBA button options contained in <parmname>avkon.hrh</parmname></xref></p>
-</li>
-<li><p><xref href="GUID-5B26AB8E-E20A-4C15-B4F8-812ED9A4A96C.dita">create
-your own buttons</xref></p></li>
-</ul>
-<p>CBA buttons are constructed using the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="external">Buttons
-API</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A4F3738C-CBFD-4151-9132-26FE05966715" xml:lang="en"><title>CBA buttons</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-A84D5799-70F3-46CB-90B6-05A455B0499E"><title>Application with Options and Exit softkeys in portrait
+and landscape views</title><image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e67789_href.png"/></fig>
+<p>The Symbian platform uses Control Button Area (CBA) resources to set
+the options in the control pane above the softkeys. CBA resources map the
+text that appears above the softkeys in the control pane with commands that
+are collected by the event loop of the application framework and delivered
+to your application for <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">command
+handling</xref>.</p>
+<note>
+<ul>
+<li><p>The left softkey and right softkey are placed inside the
+CBA.</p></li>
+<li><p>You must disable item-specific softkeys.</p></li>
+<li><p>If there is no highlight then, the left softkey is hidden.</p>
+</li>
+</ul>
+</note>
+<p>When a mobile device user selects an <parmname>Options</parmname> softkey,
+the application framework displays the <parmname>Options</parmname> menu based
+upon the definitions in the <xref href="GUID-5918ED8A-B26B-41A0-94A6-AB6D51BF80A1.dita">menu
+bars</xref> resources.</p>
+<p>Depending upon the requirements of your application, you can either:</p>
+<ul>
+<li><p><xref href="GUID-A3AF142B-F9DF-43FD-9D3F-788A74D0C575.dita">use
+precompiled CBA button options contained in <parmname>avkon.hrh</parmname></xref></p>
+</li>
+<li><p><xref href="GUID-5B26AB8E-E20A-4C15-B4F8-812ED9A4A96C.dita">create
+your own buttons</xref></p></li>
+</ul>
+<p>CBA buttons are constructed using the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="external">Buttons
+API</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e334165_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e340322_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e184934_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e191530_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4" xml:lang="en"><title>Graphics
-Quick Start</title><shortdesc>The Graphics package provides Symbian devices with a means of visual
-communication. It is responsible for providing a system-wide interface with
-the physical display(s) and handles input events from physical input devices
-such as keypads and touch screens. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>There are two variants of the graphics architecture in Symbian^3. These
-are referred to as <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> (sometimes
-also called the New Graphics Architecture or NGA) and the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
-variant</xref> (sometimes called the non-NGA variant). The Graphics guide
-documentation covers both variants. When the documentation applies to only
-one variant, it is clearly stated at the top of the page. </p>
-
-
-
-<section id="GUID-7CED3F9D-72CC-4C2B-896A-68860CA9703E"><title>System Model</title> <p>The
-following diagram shows the Graphics package within the Symbian^3 System Model.
-The System Model is a high-level overview of the Symbian architecture. The
-components are grouped to show their relationships to each other. Within the
-Graphics package, components are grouped into collections, which are shown
-as white boxes in the diagram. The Graphics documentation is organized according
-to the System Model structure. </p><p>Although the System Model provides a
-useful way of grouping the large number of components that make up the Graphics
-package, it does not completely reflect the architectural relationships between
-the components. </p> <fig id="GUID-73E547BA-5AC2-5B10-8422-3B8BA28E2D40">
-<title>              The Graphics package in the Symbian Foundation System
-Model            </title>
-<image href="GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e190784_href.png" placement="inline"/>
-</fig> <p>This documentation
-only covers collections and components that are relevant to application developers. </p> </section>
-<section id="GUID-7164B04D-C0C6-47DA-9D70-E0924D68C462"><title>Technologies</title> <ul>
-<li id="GUID-BCA14E5B-B637-5A43-8A1E-4A945507CF35"><p>For information on the
-two architectures, see <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">The
-ScreenPlay Architecture</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">The
-Non-ScreenPlay Architecture</xref>. </p> </li>
-
-<li id="GUID-28824D17-7E98-57CD-B618-AFA2109E95D8"><p>The graphics architecture
-enables device creators to take advantage of graphics processing hardware
-when it is available, and to use software implementations when it is not.
-For more information, see <xref href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita">Graphics
-Hardware Acceleration</xref>. </p> </li>
-<li id="GUID-BEB89CAC-B735-5D45-925F-1C35C15A4B36"><p>Symbian provides support
-for a number of APIs defined and administered by the Khronos group. These
-enable the authoring and playback of dynamic media on a wide variety of platforms
-and devices. For more information, see <xref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita">Khronos
-API Support </xref>. </p> </li>
-<li id="GUID-27F78BF4-FA0E-5A3D-B64B-A1596E212724"><p>Application developers
-use the Window Server client-side library to control windows and respond to
-key and pointer events in their applications. For more information, see <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window Server Client-Side
-Library</xref>. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-47851718-8DCA-57F5-8520-7044048A5852.dita"><linktext>Graphics
-Example Code</linktext></link>
-<link href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita"><linktext>Graphics
-                Guide</linktext></link>
-<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
-Concepts</linktext></link>
-
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4" xml:lang="en"><title>Graphics
+Quick Start</title><shortdesc>The Graphics package provides Symbian devices with a means of visual
+communication. It is responsible for providing a system-wide interface with
+the physical display(s) and handles input events from physical input devices
+such as keypads and touch screens. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>There are two variants of the graphics architecture in Symbian^3. These
+are referred to as <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> (sometimes
+also called the New Graphics Architecture or NGA) and the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
+variant</xref> (sometimes called the non-NGA variant). The Graphics guide
+documentation covers both variants. When the documentation applies to only
+one variant, it is clearly stated at the top of the page. </p>
+
+
+
+<section id="GUID-7CED3F9D-72CC-4C2B-896A-68860CA9703E"><title>System Model</title> <p>The
+following diagram shows the Graphics package within the Symbian^3 System Model.
+The System Model is a high-level overview of the Symbian architecture. The
+components are grouped to show their relationships to each other. Within the
+Graphics package, components are grouped into collections, which are shown
+as white boxes in the diagram. The Graphics documentation is organized according
+to the System Model structure. </p><p>Although the System Model provides a
+useful way of grouping the large number of components that make up the Graphics
+package, it does not completely reflect the architectural relationships between
+the components. </p> <fig id="GUID-73E547BA-5AC2-5B10-8422-3B8BA28E2D40">
+<title>              The Graphics package in the Symbian Foundation System
+Model            </title>
+<image href="GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e184188_href.png" placement="inline"/>
+</fig> <p>This documentation
+only covers collections and components that are relevant to application developers. </p> </section>
+<section id="GUID-7164B04D-C0C6-47DA-9D70-E0924D68C462"><title>Technologies</title> <ul>
+<li id="GUID-BCA14E5B-B637-5A43-8A1E-4A945507CF35"><p>For information on the
+two architectures, see <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">The
+ScreenPlay Architecture</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">The
+Non-ScreenPlay Architecture</xref>. </p> </li>
+
+<li id="GUID-28824D17-7E98-57CD-B618-AFA2109E95D8"><p>The graphics architecture
+enables device creators to take advantage of graphics processing hardware
+when it is available, and to use software implementations when it is not.
+For more information, see <xref href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita">Graphics
+Hardware Acceleration</xref>. </p> </li>
+<li id="GUID-BEB89CAC-B735-5D45-925F-1C35C15A4B36"><p>Symbian provides support
+for a number of APIs defined and administered by the Khronos group. These
+enable the authoring and playback of dynamic media on a wide variety of platforms
+and devices. For more information, see <xref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita">Khronos
+API Support </xref>. </p> </li>
+<li id="GUID-27F78BF4-FA0E-5A3D-B64B-A1596E212724"><p>Application developers
+use the Window Server client-side library to control windows and respond to
+key and pointer events in their applications. For more information, see <xref href="GUID-DC5E8C7D-D697-53E8-87F4-344301430E61.dita">Window Server Client-Side
+Library</xref>. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-47851718-8DCA-57F5-8520-7044048A5852.dita"><linktext>Graphics
+Example Code</linktext></link>
+<link href="GUID-975CBC70-81E6-5FA2-80CE-88DD2ABE9595.dita"><linktext>Graphics
+                Guide</linktext></link>
+<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
+Concepts</linktext></link>
+
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A5693758-495B-598E-A514-24C48D459BB6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A5693758-495B-598E-A514-24C48D459BB6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A5693758-495B-598E-A514-24C48D459BB6"><title>Drawing Arcs and Ellipses</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw ellipses and arcs. The first draws the whole ellipse; the second, one section of the ellipse; and in the third, the other section of the ellipse is drawn (also illustrating construction lines and points). It also shows how to draw two pie slices making an ellipse. </p> <p>The code assumes that the ellipse and arc examples all use a common pre-defined rectangle: </p> <codeblock id="GUID-E2CBAA84-72BA-5E97-97F9-52AEB00C6E5C" xml:space="preserve">...
-TRect ellipseRect=Rect(); // for arcs and ellipse
-ellipseRect.Shrink(10,10); // set size so inside the border rectangle
-...</codeblock> <p>The arc and pie slice examples use two construction points as arguments: </p> <codeblock id="GUID-A701FA54-8AB4-5622-9DCC-4BF6B55C8C8F" xml:space="preserve">...
-TPoint screenCenterPoint=rect.Center(); // the center of the screen
-    
-// set up a pair of construction points for arc and pie slice drawing
-TPoint constructionPoint1(15,15); // outside the construction ellipse
-TPoint constructionPoint2(200,150); // inside the construction ellipse
-...</codeblock> <p>The center point is drawn in the second arc example to clarify arc construction. </p> <section><title>How to draw an ellipse</title> <p>You can use <codeph>DrawEllipse()</codeph> to draw an ellipse. </p> <codeblock id="GUID-076DE9D4-9F7F-56E7-8A13-AA546C8672E2" xml:space="preserve">...
-// draw an ellipse centered in the rectangle
-gc.DrawEllipse(ellipseRect);
-...</codeblock> </section> <section><title>How to draw an arc</title> <p>An arc is drawn as a portion of an ellipse. As well as the ellipse rectangle, the call must specify the two points: the first defines one end of a line from the geometric center of the ellipse; the point of intersection between this line and the ellipse defines the start point of the arc. The second specified point acts in the same way for the end of the arc. </p> <fig id="GUID-ED34ADD7-004F-5BE6-822F-B5592E4F1A9A"><title>
-             Arc construction 
-          </title> <image href="GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e207300_href.png" placement="inline"/></fig> <p>The example code here shows how an arc is drawn in an anti-clockwise direction using <codeph>constructionPoint1</codeph> and <codeph>constructionPoint2</codeph> as the start to the end points. </p> <codeblock id="GUID-956A154F-EE60-5286-97BA-B05ABBA2C949" xml:space="preserve">...
-// draw an arc centered in the rectangle
-gc.DrawArc(ellipseRect,constructionPoint1,constructionPoint2);
-...</codeblock> <p>You can reverse the pair of construction point arguments to draw the other half of the ellipse. The construction points and screen center are also drawn, with dotted construction lines: </p> <codeblock id="GUID-CAB960B4-66DC-5996-9D2E-094B0171BFB5" xml:space="preserve">...
-// draw an arc centered in the rectangle
-// that is the other portion of the ellipse
- gc.DrawArc(ellipseRect,constructionPoint2,constructionPoint1);
-    
-// draw construction lines and points
-gc.SetPenStyle(CGraphicsContext::EDottedPen);
-gc.MoveTo(constructionPoint1);
-gc.DrawLineTo(screenCenterPoint);
-gc.DrawLineTo(constructionPoint2);
-gc.SetPenSize(penSizeBold);
-gc.Plot(constructionPoint1);
-gc.Plot(constructionPoint2);
-gc.Plot(screenCenterPoint);
-...</codeblock> </section> <section><title>Drawing pie slices</title> <p>The example code here shows how two pie slices are drawn. A pie slice is the area bounded by: </p> <p>an arc as used above </p> <p>the straight line from the start point from the geometric center of the ellipse </p> <p>the straight line from the end point from the geometric center of the ellipse </p> <fig id="GUID-71C67896-8B38-5D1E-B34A-0425CF135915"><title>
-             Pie slice construction 
-          </title> <image href="GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e207341_href.png" placement="inline"/></fig> <p>Solid and patterned brush styles are used to fill the portions of the elliptical disc. </p> <ol id="GUID-8A734874-8E67-5ABF-9C65-308B136D25D4"><li id="GUID-31A563CE-3043-5713-9FBA-A42C6902F544"><p>Use <codeph>SetBrushStyle()</codeph> to set the brush style to solid. </p> </li> <li id="GUID-0F8D5C04-DD38-5B8A-9BAA-B2E9F9C53C1E"><p>Use <codeph>SetBrushColour()</codeph> to set the brush color to black. </p> </li> <li id="GUID-6EDBBFE4-640C-5E40-8AFE-8B0E99F843A3"><p>Use <codeph>DrawPie()</codeph> to draw a pie slice. </p> </li> <li id="GUID-5ADA6FF4-D9B8-5624-AE74-8C58FF06B624"><p>Use <codeph>SetBrushStyle()</codeph> to set the patterned brush style. </p> </li> <li id="GUID-FA09E650-1E1E-5565-8329-41490F77A974"><p>Use <codeph>DrawPie()</codeph> and reverse the pair of construction point arguments so that the two pie slices together form a whole ellipse. </p> </li> </ol> <codeblock id="GUID-79463D92-F260-52BD-BF5B-5917365E9C19" xml:space="preserve">...
-// draw a pie slice centered in the rectangle
-gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-gc.SetBrushColor(black);
-gc.DrawPie(ellipseRect,constructionPoint1,constructionPoint2);
-    
-// draw the other portion of the elliptical disc
-gc.SetBrushStyle(CGraphicsContext::EVerticalHatchBrush);
-gc.DrawPie(ellipseRect,constructionPoint2,constructionPoint1);
-...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A5693758-495B-598E-A514-24C48D459BB6"><title>Drawing Arcs and Ellipses</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides examples that demonstrate how to draw ellipses and arcs. The first draws the whole ellipse; the second, one section of the ellipse; and in the third, the other section of the ellipse is drawn (also illustrating construction lines and points). It also shows how to draw two pie slices making an ellipse. </p> <p>The code assumes that the ellipse and arc examples all use a common pre-defined rectangle: </p> <codeblock id="GUID-E2CBAA84-72BA-5E97-97F9-52AEB00C6E5C" xml:space="preserve">...
+TRect ellipseRect=Rect(); // for arcs and ellipse
+ellipseRect.Shrink(10,10); // set size so inside the border rectangle
+...</codeblock> <p>The arc and pie slice examples use two construction points as arguments: </p> <codeblock id="GUID-A701FA54-8AB4-5622-9DCC-4BF6B55C8C8F" xml:space="preserve">...
+TPoint screenCenterPoint=rect.Center(); // the center of the screen
+    
+// set up a pair of construction points for arc and pie slice drawing
+TPoint constructionPoint1(15,15); // outside the construction ellipse
+TPoint constructionPoint2(200,150); // inside the construction ellipse
+...</codeblock> <p>The center point is drawn in the second arc example to clarify arc construction. </p> <section><title>How to draw an ellipse</title> <p>You can use <codeph>DrawEllipse()</codeph> to draw an ellipse. </p> <codeblock id="GUID-076DE9D4-9F7F-56E7-8A13-AA546C8672E2" xml:space="preserve">...
+// draw an ellipse centered in the rectangle
+gc.DrawEllipse(ellipseRect);
+...</codeblock> </section> <section><title>How to draw an arc</title> <p>An arc is drawn as a portion of an ellipse. As well as the ellipse rectangle, the call must specify the two points: the first defines one end of a line from the geometric center of the ellipse; the point of intersection between this line and the ellipse defines the start point of the arc. The second specified point acts in the same way for the end of the arc. </p> <fig id="GUID-ED34ADD7-004F-5BE6-822F-B5592E4F1A9A"><title>
+             Arc construction 
+          </title> <image href="GUID-6A5D0445-5D53-5293-A501-136203C80BEE_d0e202292_href.png" placement="inline"/></fig> <p>The example code here shows how an arc is drawn in an anti-clockwise direction using <codeph>constructionPoint1</codeph> and <codeph>constructionPoint2</codeph> as the start to the end points. </p> <codeblock id="GUID-956A154F-EE60-5286-97BA-B05ABBA2C949" xml:space="preserve">...
+// draw an arc centered in the rectangle
+gc.DrawArc(ellipseRect,constructionPoint1,constructionPoint2);
+...</codeblock> <p>You can reverse the pair of construction point arguments to draw the other half of the ellipse. The construction points and screen center are also drawn, with dotted construction lines: </p> <codeblock id="GUID-CAB960B4-66DC-5996-9D2E-094B0171BFB5" xml:space="preserve">...
+// draw an arc centered in the rectangle
+// that is the other portion of the ellipse
+ gc.DrawArc(ellipseRect,constructionPoint2,constructionPoint1);
+    
+// draw construction lines and points
+gc.SetPenStyle(CGraphicsContext::EDottedPen);
+gc.MoveTo(constructionPoint1);
+gc.DrawLineTo(screenCenterPoint);
+gc.DrawLineTo(constructionPoint2);
+gc.SetPenSize(penSizeBold);
+gc.Plot(constructionPoint1);
+gc.Plot(constructionPoint2);
+gc.Plot(screenCenterPoint);
+...</codeblock> </section> <section><title>Drawing pie slices</title> <p>The example code here shows how two pie slices are drawn. A pie slice is the area bounded by: </p> <p>an arc as used above </p> <p>the straight line from the start point from the geometric center of the ellipse </p> <p>the straight line from the end point from the geometric center of the ellipse </p> <fig id="GUID-71C67896-8B38-5D1E-B34A-0425CF135915"><title>
+             Pie slice construction 
+          </title> <image href="GUID-20B364FB-FC12-5EF1-B0EC-1A845693EFFD_d0e202333_href.png" placement="inline"/></fig> <p>Solid and patterned brush styles are used to fill the portions of the elliptical disc. </p> <ol id="GUID-8A734874-8E67-5ABF-9C65-308B136D25D4"><li id="GUID-31A563CE-3043-5713-9FBA-A42C6902F544"><p>Use <codeph>SetBrushStyle()</codeph> to set the brush style to solid. </p> </li> <li id="GUID-0F8D5C04-DD38-5B8A-9BAA-B2E9F9C53C1E"><p>Use <codeph>SetBrushColour()</codeph> to set the brush color to black. </p> </li> <li id="GUID-6EDBBFE4-640C-5E40-8AFE-8B0E99F843A3"><p>Use <codeph>DrawPie()</codeph> to draw a pie slice. </p> </li> <li id="GUID-5ADA6FF4-D9B8-5624-AE74-8C58FF06B624"><p>Use <codeph>SetBrushStyle()</codeph> to set the patterned brush style. </p> </li> <li id="GUID-FA09E650-1E1E-5565-8329-41490F77A974"><p>Use <codeph>DrawPie()</codeph> and reverse the pair of construction point arguments so that the two pie slices together form a whole ellipse. </p> </li> </ol> <codeblock id="GUID-79463D92-F260-52BD-BF5B-5917365E9C19" xml:space="preserve">...
+// draw a pie slice centered in the rectangle
+gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+gc.SetBrushColor(black);
+gc.DrawPie(ellipseRect,constructionPoint1,constructionPoint2);
+    
+// draw the other portion of the elliptical disc
+gc.SetBrushStyle(CGraphicsContext::EVerticalHatchBrush);
+gc.DrawPie(ellipseRect,constructionPoint2,constructionPoint1);
+...</codeblock> </section> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
                 to a Graphics Context Tutorials</linktext> </link> <link href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"><linktext>Drawing and Graphics Contexts</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,162 +1,161 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683" xml:lang="en"><title>Form
-items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Empty items (that contain no data) can be hidden in a form's View state.
-However, this is not a requirement; forms can be designed either way, whichever
-is better for the given application.</p>
-<p>Unlike ordinary list items, the form items may have different sizes in
-the layout but only in the Edit state. A long data field may occupy more than
-one line in the Edit state, but in the View state it is truncated to the first
-line.</p>
-<p>The user may be able to add and remove form items. This is done with commands
-in the Options menu.</p>
-<p>Form items always have a label. The label has a text part, or a text and
-a graphical part; however, all items in one form must have the same column
-layout (see <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List layouts</xref> for
-detailed information about layouts). Field label cannot be directly edited
-even if the form is in Edit state. However, it is possible to let the user
-edit the label text when the form is in edit state. User can choose to edit
-the label with an option, which can be found in the <b>Options</b> menu.</p>
-<p>The form field types that can be used are described in the following table:</p>
-<table id="GUID-A22394D3-9C39-4DC2-8A65-255F985F97E9"><title> Form field types</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.30*"/><colspec colname="col2" colwidth="1.70*"/>
-<thead>
-<row>
-<entry>Field</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Text field (alphanumeric or numeric content)</p></entry>
-<entry><p>A text field contains some type of numeric or alphanumeric data.
-It can be edited directly using the usual editing functions when the form
-is in the Edit state. The text field can expand to more than one lines if
-necessary.</p><p>In the View state, a text field looks identical to a corresponding
-list item.</p></entry>
-</row>
-<row>
-<entry><p>Pop-up field</p></entry>
-<entry><p>A pop-up field offers the possibility to choose one value from a
-pre-defined list. In the View state, a pop-up field looks identical to a list
-item; the text is the current value of the field. In the Edit state, it has
-a distinct look that identifies the field as a pop-up list.</p><p>To edit
-an item in the Edit state, the user can press the Selection key or with single
-click (in tap enabled devices), which opens a menu list that contains the
-available values. The highlight is on the current value. When the list is
-open, the softkeys are <b>OK</b> and <b>Cancel</b>, as usual with a menu list.
-Both the softkeys return to the Edit state in the form.</p><p>A pop-up field
-may also allow the user to enter a textual value in addition to the pre-defined
-values. In this case, the last option is named for example <b>Other</b>, and
-selecting it opens a Data query.</p><p>See figure below.</p></entry>
-</row>
-<row>
-<entry><p>Slider</p></entry>
-<entry><p>With a slider, the user can adjust a numeric value (although it
-is not necessary to present the actual value to the user as a number). In
-the View state, the item is presented as a textual item. In the Edit state,
-the value of the slider is immediately adjustable using the Arrow left and
-Arrow right keys.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-AA0170E3-BBB2-478A-A9A1-24C48BCF917F">
-<title>Pop-up field</title>
-<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e64122_href.png" scale="40" placement="inline"/>
-</fig>
-<p>Any combination of these types is possible within one form.</p>
-<p>When a form is in the Edit state, the user can move the focus up and down
-like in a list. The highlight in the Edit state is different from the highlight
-in the View state, acting as a visual cue. The cursor blinks in the text field
-that is in focus. There is no need to save each field separately; the user
-can browse and modify the fields in any order and then accept all modifications.
-During the browsing of a form in the Edit state, the keypad functions are
-as follows:</p>
-<p>The field types are described in the following table:</p>
-<table id="GUID-437191CE-D3E0-4CFB-875C-9C308B18F7E9"><title>Default key events
-in editing state of a form</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.30*"/><colspec colname="col2" colwidth="1.70*"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Arrow up / down</p></entry>
-<entry><p>Move the focus between form items (when in a text field, move the
-cursor within an item line by line).</p></entry>
-</row>
-<row>
-<entry><p>Arrow left / right</p></entry>
-<entry><ul>
-<li><p>In a pop-up field: change the value without opening the list. </p></li>
-<li><p>In a text field: move the cursor character by character. </p></li>
-<li><p>In a slider: adjust the slider value.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><ul>
-<li><p>In a pop-up field: opens the list. </p></li>
-<li><p>In a text field: opens the context sensitive <b>Options</b> menu or
-no action.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Left softkey (Options)</p></entry>
-<entry><p>Opens the <b>Options</b> menu (in a form without the <b>Options</b> menu,
-the left softkey is <b>Done</b>).</p></entry>
-</row>
-<row>
-<entry><p>Right softkey (Done)</p></entry>
-<entry><p>Accepts the contents and returns to the previous state (in a form
-without the Options menu, the right softkey is Cancel.)</p></entry>
-</row>
-<row>
-<entry><p>Clear</p></entry>
-<entry><ul>
-<li><p>Pop-up: ignored. </p></li>
-<li><p>Text: deletes characters. </p></li>
-<li><p>Slider: ignored.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Edit</p></entry>
-<entry><ul>
-<li><p>Pop-up: ignored. </p></li>
-<li><p>Text: opens the editing menu; selects text. </p></li>
-<li><p>Slider: ignored.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Numeric keypad</p></entry>
-<entry><ul>
-<li><p>Pop-up: ignored. </p></li>
-<li><p>Text: input. </p></li>
-<li><p>Slider: ignored.</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Other keys</p></entry>
-<entry><p>The default action of the key.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-E6A426E6-FC7E-4620-9CAE-BA9214AC17F8"><title>Using
-forms in C++ applications</title><p>The API to use for creating forms is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information,
-see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683" xml:lang="en"><title>Form items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Form items can either be displayed or hidden (for empty items that
+contain no data) in a form's View state. </p>
+<p>Unlike ordinary list items, the form items may have different sizes
+in the layout but only in the Edit state. A long data field may occupy
+more than one line in the Edit state, but in the View state it is
+truncated to the first line.</p>
+<p>The user may be able to add and remove form items. This is done
+with commands in the <uicontrol>Options</uicontrol> menu.</p>
+<p>Form items always have a label. The label has a text part, or a
+text and a graphical part; however, all items in one form must have
+the same column layout (see <xref href="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita">List layouts</xref> for detailed information about layouts). Field label cannot be directly
+edited even if the form is in Edit state. However, it is possible
+to let the user edit the label text when the form is in edit state.
+User can choose to edit the label with an option, which can be found
+in the <b>Options</b> menu.</p>
+<p>The form field types that can be used are described in the following
+table:</p>
+<table id="GUID-A22394D3-9C39-4DC2-8A65-255F985F97E9"><title> Form
+field types</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.30*"/><colspec colname="col2" colwidth="1.70*"/>
+<thead>
+<row>
+<entry>Field</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Text field (alphanumeric or numeric content)</p></entry>
+<entry><p>A text field contains some type of numeric or alphanumeric
+data. It can be edited directly using the usual editing functions
+when the form is in the Edit state. The text field can expand to more
+than one lines if necessary.</p><p>In the View state, a text field
+looks identical to a corresponding list item.</p></entry>
+</row>
+<row>
+<entry><p>Pop-up field</p></entry>
+<entry><p>A pop-up field offers the possibility to choose one value
+from a pre-defined list. In the View state, a pop-up field looks identical
+to a list item; the text is the current value of the field. In the
+Edit state, it has a distinct look that identifies the field as a
+pop-up list.</p><p>To edit an item in the Edit state, the user can
+press the Selection key or with single tap (in devices supporting
+touch), which opens a menu list that contains the available values.
+The highlight is on the current value. When the list is open, the
+softkeys are <b>OK</b> and <b>Cancel</b>, as usual with a menu list.
+Both the softkeys return to the Edit state in the form.</p><p>A pop-up
+field may also allow the user to enter a textual value in addition
+to the pre-defined values. In this case, the last option is named
+for example <b>Other</b>, and selecting it opens a Data query.</p><p>See figure below.</p></entry>
+</row>
+<row>
+<entry><p>Slider</p></entry>
+<entry><p>With a slider, the user can adjust a numeric value (although
+it is not necessary to present the actual value to the user as a number).
+In the View state, the item is presented as a textual item. In the
+Edit state, the value of the slider is immediately adjustable using
+the Arrow left and Arrow right keys.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-AA0170E3-BBB2-478A-A9A1-24C48BCF917F">
+<title>Pop-up field</title>
+<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e56400_href.png" scale="40" placement="inline">
+</image>
+</fig>
+<p>Any combination of these types is possible within one form.</p>
+<p>When a form is in the Edit state, the user can move the focus up
+and down like in a list. The highlight in the Edit state is different
+from the highlight in the View state, acting as a visual cue. The
+cursor blinks in the text field that is in focus. There is no need
+to save each field separately; the user can browse and modify the
+fields in any order and then accept all modifications. During the
+browsing of a form in the Edit state, the keypad functions are as
+follows:</p>
+<p>The field types are described in the following table:</p>
+<table id="GUID-437191CE-D3E0-4CFB-875C-9C308B18F7E9"><title>Default
+key events in editing state of a form</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.30*"/><colspec colname="col2" colwidth="1.70*"/>
+<thead>
+<row>
+<entry>Key</entry>
+<entry>Action</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Arrow up / down</p></entry>
+<entry><p>Move the focus between form items (when in a text field,
+move the cursor within an item line by line).</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / right</p></entry>
+<entry><ul>
+<li><p>In a pop-up field: change the value without opening the list. </p></li>
+<li><p>In a text field: move the cursor character by character. </p></li>
+<li><p>In a slider: adjust the slider value.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Selection key</p></entry>
+<entry><ul>
+<li><p>In a pop-up field: opens the list. </p></li>
+<li><p>In a text field: opens the context sensitive <b>Options</b> menu or no action.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Left softkey (Options)</p></entry>
+<entry><p>Opens the <b>Options</b> menu (in a form without the <b>Options</b> menu, the left softkey is <b>Done</b>).</p></entry>
+</row>
+<row>
+<entry><p>Right softkey (Done)</p></entry>
+<entry><p>Accepts the contents and returns to the previous state (in
+a form without the Options menu, the right softkey is Cancel.)</p></entry>
+</row>
+<row>
+<entry><p>Clear</p></entry>
+<entry><ul>
+<li><p>Pop-up: ignored. </p></li>
+<li><p>Text: deletes characters. </p></li>
+<li><p>Slider: ignored.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Edit</p></entry>
+<entry><ul>
+<li><p>Pop-up: ignored. </p></li>
+<li><p>Text: opens the editing menu; selects text. </p></li>
+<li><p>Slider: ignored.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Numeric keypad</p></entry>
+<entry><ul>
+<li><p>Pop-up: ignored. </p></li>
+<li><p>Text: input. </p></li>
+<li><p>Slider: ignored.</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Other keys</p></entry>
+<entry><p>The default action of the key.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-E6A426E6-FC7E-4620-9CAE-BA9214AC17F8"><title>Using forms in applications</title><p>The API to use for creating forms is the <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref>. For implementation information, see <xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html#Form_API_Specification.topic3" scope="peer">Using the Form API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e36431_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e41998_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A5F65344-BE05-5295-85BB-E8114505FB82.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,125 +1,125 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A5F65344-BE05-5295-85BB-E8114505FB82" xml:lang="en"><title>Alarm
-Sound Play Control</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section explains the use of sound, which is one of the several ways
-that the Alarm Server can notify the user. </p>
-<section><title>Alarm Play Interval Configuration</title> <p>The alarm sound
-play definition (<xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref>) is set using
-the <xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita"><apiname>RASCliSession</apiname></xref> class. Alarm sounds are played according
-to intervals that consist of a duration and an offset. The <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> class
-defines when alarm sounds are to be played, and for how long. </p> <p>The
-purpose of configuring alarm sound play is to enable the Alarm Server to perform
-the following operations: </p> <ul>
-<li id="GUID-954909FC-2690-50A6-A967-AB4E3C97A319"><p>set the alarm sound
-state to ON or OFF (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-EE45EA45-0289-3946-ACB8-25971D32FDC7"><apiname>RASCliSession::SetAlarmSoundState()</apiname></xref>). </p> </li>
-<li id="GUID-B8D77E1F-0F9C-5AA2-8269-68A04CD73525"><p>silence all alarms until
-a specific time (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-C15F814F-AFB6-3FE4-8674-B961A1EFA6F2"><apiname>RASCliSession::SetAlarmSoundsSilentUntil()</apiname></xref>).
-No sound is played for any alarm that is notified before this time. </p> </li>
-<li id="GUID-7359767C-FFC6-5903-B4C1-099C55EB0C3E"><p>silence all alarms for
-a specified interval (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-D86F97E4-3407-32C9-ADBA-0FD44D5A3ED3"><apiname>RASCliSession::SetAlarmSoundsSilentFor()</apiname></xref>).
-No alarm sound is played for any alarm notified during this period. </p> </li>
-<li id="GUID-79917BFC-C399-5FCB-A1B3-9E3CA16250F7"><p>cancel the silent period,
-turning the alarm sounds ON (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-92A4C2FD-46B9-36CA-A624-002EEFA9671C"><apiname>RASCliSession::CancelAlarmSilence()</apiname></xref>). </p> </li>
-<li id="GUID-D701C819-91AC-55F6-8A2B-99A3B95BB22D"><p>configure alarm sound
-play intervals (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-BB9A298E-C3AE-3E98-A677-E7A028F67602"><apiname>RASCliSession::SetAlarmPlayIntervalsL()</apiname></xref>),
-which specify the duration of the ‘play/silence/play’ when an alarm expires. </p> </li>
-<li id="GUID-4FCCE100-C356-5F22-8300-C4BFD6A64F0B"><p>determine whether the
-alarm server has temporarily silenced the sounds (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-EB8DC5EB-ABA9-3AB9-9D1B-E37DA612C0BB"><apiname>RASCliSession::AlarmSoundsTemporarilySilenced()</apiname></xref>).
-This returns <xref href="GUID-781E8158-805B-3784-8FED-D7A191822FC3.dita"><apiname>ETrue</apiname></xref> if alarm sound playing is temporarily
-silenced, else <xref href="GUID-A759CA2D-8327-348F-9337-4886E619D920.dita"><apiname>EFalse</apiname></xref> is specified. </p> </li>
-</ul> <p> <b>NOTE</b>: These APIs can be used <i>only</i> if the alarm sound
-play control is enabled from the Alarm Server side. </p> <p>To perform these
-operations, the Alarm Server uses a resource file, which defines the sound
-play intervals and durations. </p> <p><b>Resource File</b> </p> <p>The alarm
-play intervals are defined in <codeph>AlarmServer.rss</codeph> resource file.
-The compiled resource file (configuration file) must be named as <codeph>alarmserver.rsc</codeph> and
-be placed in the Alarm Server’s private directory (<codeph>C:\private\101F5027</codeph> on
-emulator, or <codeph>Z:\private\101F5027</codeph> on target platforms). </p> <p>The
-resource file must start with the necessary include directives, resource name,
-and standard signature entry as illustrated in the following code fragment: </p> <codeblock id="GUID-A6885AA2-38C0-54BA-8765-9B10A20B0478" xml:space="preserve">#include &lt;badef.rh&gt;
-#include &lt;alarmserver.rh&gt;
-
-NAME ASRV
-RESOURCE BA_RSS_SIGNATURE
-    {
-    signature = 1;
-    }</codeblock> <p>The resource file specifies only the Offset (in minutes)
-and Duration (in seconds) of the Alarm play intervals. It is used only for
-initial configuration. </p> <p>At runtime, Alarm Server configurations are
-backed up to a file called as <filepath>AlarmServer.ini</filepath>, on the
-PC side. The backup operation performed can be one of the following types: </p> <ul>
-<li id="GUID-46E046BC-44CB-5B8C-90DD-4E022F258145"><p> <b>Secure Backup</b> -
-In this method, <codeph>backuprestorenotification.lib</codeph> (provides a
-notification mechanism) is used for backing and restoring operation to and
-from <codeph>C:\private\101F5027\AlarmServer.ini</codeph>. </p> </li>
-<li id="GUID-B17FCD6F-500A-5D49-9FC2-389B7F41E810"><p> <b>Passive Backup</b> -
-In this method, the required backup behavior is mentioned in a backup registration
-file called <filepath>backup_registration.xml</filepath>, placed in its private
-directory. The list of private directories and files that must be backed up
-are mentioned in this backup registration file. </p> </li>
-</ul> <p> <b>NOTE</b>: The backup file takes precedence over the resource
-file the next time the Alarm Server is started. Therefore, if changes are
-made to the resource file, <filepath>AlarmServer.ini</filepath> must be deleted
-manually before restarting the Alarm Server. </p> <p><b>Alarm Sound Play Intervals
-and Durations</b> </p> <p>The following diagram illustrates the alarm sound
-play intervals: </p> <fig id="GUID-477088D0-57BD-58BF-91BC-BF05E3EF2162">
-<title>                 ALARM SOUND PLAY INTERVALS               </title>
-<image href="GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e139735_href.png" placement="inline"/>
-</fig> <p>Alarm play intervals define the toggling of alarm sound playing/stopping
-and alarm dialog show/hide when an alarm expires. It consists of a duration
-and an offset. The offset is the time, in minutes, from the beginning alarm
-time or the end of the last snooze. The duration is the time period, in seconds,
-during which the alarm sound is played. </p> <p>At each offset, the Alarm
-Server makes a request to the Alarm Alert server to display the alarm dialog
-and play the alarm sound. At the end of each duration period, the Alarm Server
-makes a request to the Alarm Alert server to hide the alarm and stop playing
-the alarm sound. </p> <p>The following is an example code fragment that plays
-the sound for 30 seconds, then pauses for 30 seconds, and repeats the pattern
-two more times: </p> <codeblock id="GUID-7ECBB50D-0C81-5059-A334-81BC979A04B2" xml:space="preserve">RESOURCE sound_controller
-    {
-    intervals =
-        {
-        SOUND_INTERVAL { offset = 0; duration = 30; },
-        SOUND_INTERVAL { offset = 1; duration = 30; },
-        SOUND_INTERVAL { offset = 2; duration = 30; };
-        };
-    }</codeblock> <p>An interval must have an offset of zero if more than
-one offset is specified. </p> <p> <b>NOTE</b>: The <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> class
-is the runtime equivalent of the sound intervals array. It defines <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-79792213-24E6-3862-BEF5-832F8C34BF5A"><apiname>TASCliSoundPlayDefinition::Offset()</apiname></xref> length
-in minutes and defines <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-1900BA63-48B2-32A6-93DB-F77CC7AA3E39"><apiname>TASCliSoundPlayDefinition::Duration()</apiname></xref> length
-in seconds. The API to set a <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> array
-is <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-AB1E72B5-D9CE-3BAD-860D-6C1F443442E8"><apiname>TASCliSoundPlayDefinition::SetAlarmPlayIntervalsL()</apiname></xref>. </p> </section>
-<section><title>Alarm Play Sequence Repeat Option</title> <p>The resource
-file provides an option to repeat the sequence when the end of the alarm play
-sequence is reached. </p> <p>For backward compatibility, the default behavior
-is to restart the sequence when the end of the alarm play sequence is reached
-(see <xref href="GUID-0056DE57-61FD-3452-B65B-EFADC0069B8F.dita"><apiname>EAlarmSoundRepeatSettingStop</apiname></xref>). This occurs if there
-is no resource file, or if the resource file does not specify an option. There
-are two more end-of-sequence options: </p> <ul>
-<li id="GUID-73A1D734-2938-5477-81F7-B17F5237C374"><p> <xref href="GUID-41015640-AD70-3D56-9D89-AFAF67E15BCA.dita"><apiname>EAlarmSoundRepeatSettingLoop</apiname></xref> -
-stop when the end of sequence reached. </p> </li>
-<li id="GUID-F531E88D-AAD6-5F8D-9CDE-B153467D4DB1"><p> <xref href="GUID-98CE95CB-96F7-37A5-8C49-0B11D7CAEE6B.dita"><apiname>EAlarmSoundRepeatSettingRepeatLast</apiname></xref> -
-repeat last interval indefinitely. This is an optional entry in the resource
-file. </p> </li>
-</ul> <p>The following is a resource file example illustrating the use of
-an option to repeat the alarm play sequence: </p> <codeblock id="GUID-07ADF881-C2CE-558A-9237-2BF0E4E28064" xml:space="preserve">RESOURCE sound_controller
-    {
-    option = EAlarmSoundRepeatSettingRepeatLast;
-    intervals = 
-        {
-         ...
-        }
-    }</codeblock> </section>
-<section><title>See also</title> <p><xref href="GUID-59D2B677-63D7-5FE7-98F4-549D9C235E56.dita">Playing
-Alarm Sound Continuously</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A5F65344-BE05-5295-85BB-E8114505FB82" xml:lang="en"><title>Alarm
+Sound Play Control</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section explains the use of sound, which is one of the several ways
+that the Alarm Server can notify the user. </p>
+<section><title>Alarm Play Interval Configuration</title> <p>The alarm sound
+play definition (<xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref>) is set using
+the <xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita"><apiname>RASCliSession</apiname></xref> class. Alarm sounds are played according
+to intervals that consist of a duration and an offset. The <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> class
+defines when alarm sounds are to be played, and for how long. </p> <p>The
+purpose of configuring alarm sound play is to enable the Alarm Server to perform
+the following operations: </p> <ul>
+<li id="GUID-954909FC-2690-50A6-A967-AB4E3C97A319"><p>set the alarm sound
+state to ON or OFF (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-EE45EA45-0289-3946-ACB8-25971D32FDC7"><apiname>RASCliSession::SetAlarmSoundState()</apiname></xref>). </p> </li>
+<li id="GUID-B8D77E1F-0F9C-5AA2-8269-68A04CD73525"><p>silence all alarms until
+a specific time (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-C15F814F-AFB6-3FE4-8674-B961A1EFA6F2"><apiname>RASCliSession::SetAlarmSoundsSilentUntil()</apiname></xref>).
+No sound is played for any alarm that is notified before this time. </p> </li>
+<li id="GUID-7359767C-FFC6-5903-B4C1-099C55EB0C3E"><p>silence all alarms for
+a specified interval (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-D86F97E4-3407-32C9-ADBA-0FD44D5A3ED3"><apiname>RASCliSession::SetAlarmSoundsSilentFor()</apiname></xref>).
+No alarm sound is played for any alarm notified during this period. </p> </li>
+<li id="GUID-79917BFC-C399-5FCB-A1B3-9E3CA16250F7"><p>cancel the silent period,
+turning the alarm sounds ON (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-92A4C2FD-46B9-36CA-A624-002EEFA9671C"><apiname>RASCliSession::CancelAlarmSilence()</apiname></xref>). </p> </li>
+<li id="GUID-D701C819-91AC-55F6-8A2B-99A3B95BB22D"><p>configure alarm sound
+play intervals (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-BB9A298E-C3AE-3E98-A677-E7A028F67602"><apiname>RASCliSession::SetAlarmPlayIntervalsL()</apiname></xref>),
+which specify the duration of the ‘play/silence/play’ when an alarm expires. </p> </li>
+<li id="GUID-4FCCE100-C356-5F22-8300-C4BFD6A64F0B"><p>determine whether the
+alarm server has temporarily silenced the sounds (<xref href="GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4.dita#GUID-3598EAEE-0EF4-35A2-89E5-F3B2555B1AB4/GUID-EB8DC5EB-ABA9-3AB9-9D1B-E37DA612C0BB"><apiname>RASCliSession::AlarmSoundsTemporarilySilenced()</apiname></xref>).
+This returns <xref href="GUID-781E8158-805B-3784-8FED-D7A191822FC3.dita"><apiname>ETrue</apiname></xref> if alarm sound playing is temporarily
+silenced, else <xref href="GUID-A759CA2D-8327-348F-9337-4886E619D920.dita"><apiname>EFalse</apiname></xref> is specified. </p> </li>
+</ul> <p> <b>NOTE</b>: These APIs can be used <i>only</i> if the alarm sound
+play control is enabled from the Alarm Server side. </p> <p>To perform these
+operations, the Alarm Server uses a resource file, which defines the sound
+play intervals and durations. </p> <p><b>Resource File</b> </p> <p>The alarm
+play intervals are defined in <codeph>AlarmServer.rss</codeph> resource file.
+The compiled resource file (configuration file) must be named as <codeph>alarmserver.rsc</codeph> and
+be placed in the Alarm Server’s private directory (<codeph>C:\private\101F5027</codeph> on
+emulator, or <codeph>Z:\private\101F5027</codeph> on target platforms). </p> <p>The
+resource file must start with the necessary include directives, resource name,
+and standard signature entry as illustrated in the following code fragment: </p> <codeblock id="GUID-A6885AA2-38C0-54BA-8765-9B10A20B0478" xml:space="preserve">#include &lt;badef.rh&gt;
+#include &lt;alarmserver.rh&gt;
+
+NAME ASRV
+RESOURCE BA_RSS_SIGNATURE
+    {
+    signature = 1;
+    }</codeblock> <p>The resource file specifies only the Offset (in minutes)
+and Duration (in seconds) of the Alarm play intervals. It is used only for
+initial configuration. </p> <p>At runtime, Alarm Server configurations are
+backed up to a file called as <filepath>AlarmServer.ini</filepath>, on the
+PC side. The backup operation performed can be one of the following types: </p> <ul>
+<li id="GUID-46E046BC-44CB-5B8C-90DD-4E022F258145"><p> <b>Secure Backup</b> -
+In this method, <codeph>backuprestorenotification.lib</codeph> (provides a
+notification mechanism) is used for backing and restoring operation to and
+from <codeph>C:\private\101F5027\AlarmServer.ini</codeph>. </p> </li>
+<li id="GUID-B17FCD6F-500A-5D49-9FC2-389B7F41E810"><p> <b>Passive Backup</b> -
+In this method, the required backup behavior is mentioned in a backup registration
+file called <filepath>backup_registration.xml</filepath>, placed in its private
+directory. The list of private directories and files that must be backed up
+are mentioned in this backup registration file. </p> </li>
+</ul> <p> <b>NOTE</b>: The backup file takes precedence over the resource
+file the next time the Alarm Server is started. Therefore, if changes are
+made to the resource file, <filepath>AlarmServer.ini</filepath> must be deleted
+manually before restarting the Alarm Server. </p> <p><b>Alarm Sound Play Intervals
+and Durations</b> </p> <p>The following diagram illustrates the alarm sound
+play intervals: </p> <fig id="GUID-477088D0-57BD-58BF-91BC-BF05E3EF2162">
+<title>                 ALARM SOUND PLAY INTERVALS               </title>
+<image href="GUID-3E23788D-4D67-5E9B-961F-B67D7471BB71_d0e133201_href.png" placement="inline"/>
+</fig> <p>Alarm play intervals define the toggling of alarm sound playing/stopping
+and alarm dialog show/hide when an alarm expires. It consists of a duration
+and an offset. The offset is the time, in minutes, from the beginning alarm
+time or the end of the last snooze. The duration is the time period, in seconds,
+during which the alarm sound is played. </p> <p>At each offset, the Alarm
+Server makes a request to the Alarm Alert server to display the alarm dialog
+and play the alarm sound. At the end of each duration period, the Alarm Server
+makes a request to the Alarm Alert server to hide the alarm and stop playing
+the alarm sound. </p> <p>The following is an example code fragment that plays
+the sound for 30 seconds, then pauses for 30 seconds, and repeats the pattern
+two more times: </p> <codeblock id="GUID-7ECBB50D-0C81-5059-A334-81BC979A04B2" xml:space="preserve">RESOURCE sound_controller
+    {
+    intervals =
+        {
+        SOUND_INTERVAL { offset = 0; duration = 30; },
+        SOUND_INTERVAL { offset = 1; duration = 30; },
+        SOUND_INTERVAL { offset = 2; duration = 30; };
+        };
+    }</codeblock> <p>An interval must have an offset of zero if more than
+one offset is specified. </p> <p> <b>NOTE</b>: The <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> class
+is the runtime equivalent of the sound intervals array. It defines <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-79792213-24E6-3862-BEF5-832F8C34BF5A"><apiname>TASCliSoundPlayDefinition::Offset()</apiname></xref> length
+in minutes and defines <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-1900BA63-48B2-32A6-93DB-F77CC7AA3E39"><apiname>TASCliSoundPlayDefinition::Duration()</apiname></xref> length
+in seconds. The API to set a <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita"><apiname>TASCliSoundPlayDefinition</apiname></xref> array
+is <xref href="GUID-0075C5BA-8084-33EB-A246-7EED717E2B88.dita#GUID-0075C5BA-8084-33EB-A246-7EED717E2B88/GUID-AB1E72B5-D9CE-3BAD-860D-6C1F443442E8"><apiname>TASCliSoundPlayDefinition::SetAlarmPlayIntervalsL()</apiname></xref>. </p> </section>
+<section><title>Alarm Play Sequence Repeat Option</title> <p>The resource
+file provides an option to repeat the sequence when the end of the alarm play
+sequence is reached. </p> <p>For backward compatibility, the default behavior
+is to restart the sequence when the end of the alarm play sequence is reached
+(see <xref href="GUID-0056DE57-61FD-3452-B65B-EFADC0069B8F.dita"><apiname>EAlarmSoundRepeatSettingStop</apiname></xref>). This occurs if there
+is no resource file, or if the resource file does not specify an option. There
+are two more end-of-sequence options: </p> <ul>
+<li id="GUID-73A1D734-2938-5477-81F7-B17F5237C374"><p> <xref href="GUID-41015640-AD70-3D56-9D89-AFAF67E15BCA.dita"><apiname>EAlarmSoundRepeatSettingLoop</apiname></xref> -
+stop when the end of sequence reached. </p> </li>
+<li id="GUID-F531E88D-AAD6-5F8D-9CDE-B153467D4DB1"><p> <xref href="GUID-98CE95CB-96F7-37A5-8C49-0B11D7CAEE6B.dita"><apiname>EAlarmSoundRepeatSettingRepeatLast</apiname></xref> -
+repeat last interval indefinitely. This is an optional entry in the resource
+file. </p> </li>
+</ul> <p>The following is a resource file example illustrating the use of
+an option to repeat the alarm play sequence: </p> <codeblock id="GUID-07ADF881-C2CE-558A-9237-2BF0E4E28064" xml:space="preserve">RESOURCE sound_controller
+    {
+    option = EAlarmSoundRepeatSettingRepeatLast;
+    intervals = 
+        {
+         ...
+        }
+    }</codeblock> </section>
+<section><title>See also</title> <p><xref href="GUID-59D2B677-63D7-5FE7-98F4-549D9C235E56.dita">Playing
+Alarm Sound Continuously</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-3-1-1-9-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-3-1-1-9-1-4-1-3-1" xml:lang="en"><title>FEP
-Introduction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5917F986-4386-401E-A8F2-4BE111C1A48F-GENID-1-8-1-3-1-1-9-1-4-1-3-1-2-1"> <p>This guide is
-adapted from material originally intended to accompany source code for sample
-front end processors (FEPs) TFEP1Plugin (a keyboard-based FEP) and TFEP2Plugin
-(a mouse/pen-based FEP). </p> <p>TFEP1Plugin and TFEP2Plugin are available
-to Symbian DevKit licensees and may be found in the Symbian platform source
-in the <filepath>app-framework\feptest\</filepath> directory. </p> <p>SDK
-licensees do not have access to the source but must find sufficient information
-within the guide. </p> <p><b>Note:</b> Platform security that was introduced
-in Symbian OS v9.1, brought some changes to the way FEPs are created and loaded. <i>Prospective
-FEP developers must note that FEPs now require a capability of All-Tcb and
-must therefore ensure that they are able to achieve this before commencing.</i> </p> <p>The
-guide is divided into the following sections: </p> <p><xref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita">Implementing
-the FEP API</xref>  </p> <p><xref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita">Fixed
-and Floating Windows</xref>  </p> <p><xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita">Simulating
-and Intercepting Key Events</xref>  </p> <p><xref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita">Processing
-Pen Events</xref>  </p> <p><xref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita">Synchronizing
-FEP Instantiations</xref>  </p> <p><xref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita">Detecting
-Changes in the Environment</xref> </p> <p><xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita">Interacting
-with Text Editor Controls</xref>  </p> <p><xref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita">FEP
-References</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-6-1-1-4-1-8-1-4-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A626197A-3FA7-588C-B649-E33CCA990B99-GENID-1-8-1-6-1-1-4-1-8-1-4-1-3-1" xml:lang="en"><title>FEP
-Introduction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5917F986-4386-401E-A8F2-4BE111C1A48F-GENID-1-8-1-6-1-1-4-1-8-1-4-1-3-1-2-1"> <p>This guide is
-adapted from material originally intended to accompany source code for sample
-front end processors (FEPs) TFEP1Plugin (a keyboard-based FEP) and TFEP2Plugin
-(a mouse/pen-based FEP). </p> <p>TFEP1Plugin and TFEP2Plugin are available
-to Symbian DevKit licensees and may be found in the Symbian platform source
-in the <filepath>app-framework\feptest\</filepath> directory. </p> <p>SDK
-licensees do not have access to the source but must find sufficient information
-within the guide. </p> <p><b>Note:</b> Platform security that was introduced
-in Symbian OS v9.1, brought some changes to the way FEPs are created and loaded. <i>Prospective
-FEP developers must note that FEPs now require a capability of All-Tcb and
-must therefore ensure that they are able to achieve this before commencing.</i> </p> <p>The
-guide is divided into the following sections: </p> <p><xref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0-GENID-1-8-1-3-1-1-9-1-4-1-4-1.dita">Implementing
-the FEP API</xref>  </p> <p><xref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC-GENID-1-8-1-3-1-1-9-1-4-1-5-1.dita">Fixed
-and Floating Windows</xref>  </p> <p><xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita">Simulating
-and Intercepting Key Events</xref>  </p> <p><xref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita">Processing
-Pen Events</xref>  </p> <p><xref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita">Synchronizing
-FEP Instantiations</xref>  </p> <p><xref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3-GENID-1-8-1-3-1-1-9-1-4-1-9-1.dita">Detecting
-Changes in the Environment</xref> </p> <p><xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107-GENID-1-8-1-3-1-1-9-1-4-1-10-1.dita">Interacting
-with Text Editor Controls</xref>  </p> <p><xref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita">FEP
-References</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A626197A-3FA7-588C-B649-E33CCA990B99.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A626197A-3FA7-588C-B649-E33CCA990B99" xml:lang="en"><title>FEP
+Introduction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-5917F986-4386-401E-A8F2-4BE111C1A48F"> <p>This guide is
+adapted from material originally intended to accompany source code for sample
+front end processors (FEPs) TFEP1Plugin (a keyboard-based FEP) and TFEP2Plugin
+(a mouse/pen-based FEP). </p> <p>TFEP1Plugin and TFEP2Plugin are available
+to Symbian DevKit licensees and may be found in the Symbian platform source
+in the <filepath>app-framework\feptest\</filepath> directory. </p> <p>SDK
+licensees do not have access to the source but must find sufficient information
+within the guide. </p> <p><b>Note:</b> Platform security that was introduced
+in Symbian OS v9.1, brought some changes to the way FEPs are created and loaded. <i>Prospective
+FEP developers must note that FEPs now require a capability of All-Tcb and
+must therefore ensure that they are able to achieve this before commencing.</i> </p> <p>The
+guide is divided into the following sections: </p> <p><xref href="GUID-6CEAFE12-EB30-5231-94F4-2D097E79BFE0.dita">Implementing
+the FEP API</xref>  </p> <p><xref href="GUID-1BAF17A9-B71B-5003-AEB5-4631F019C6AC.dita">Fixed
+and Floating Windows</xref>  </p> <p><xref href="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96.dita">Simulating
+and Intercepting Key Events</xref>  </p> <p><xref href="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0.dita">Processing
+Pen Events</xref>  </p> <p><xref href="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4.dita">Synchronizing
+FEP Instantiations</xref>  </p> <p><xref href="GUID-238D6070-96AC-5D8A-86EA-488C59DF2AE3.dita">Detecting
+Changes in the Environment</xref> </p> <p><xref href="GUID-38679CA2-0066-589C-988F-AC14B7E2F107.dita">Interacting
+with Text Editor Controls</xref>  </p> <p><xref href="GUID-31A28040-6C8E-5C65-A697-04B30B441686.dita">FEP
+References</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-10-1-6-1-1-4-1-6-1-7-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-10-1-6-1-1-4-1-6-1-7-1-4-1"><title>Simple controls and compound controls</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>In addition to being window-owning or non-window-owning, each control is either a simple control or a compound control. </p> <section><title>Simple controls</title> <p>A simple control, such as a label or an image, is one which contains no other controls. A simple control may be window-owning or non-window-owning. The majority of simple controls, in practice, are non-window-owning. </p> </section> <section id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-10-1-6-1-1-4-1-6-1-7-1-4-1-2-3"><title>Compound controls</title> <p>A compound control is one which contains one or more simple or compound controls. Compound controls are also known as container controls and may be window-owning or non-window-owning. </p> <p>The controls contained by a compound control are its component controls. Components may also be window-owning or non-window-owning. The majority, in practice, are non-window-owning. </p> <p>The implementation of compound controls changed in version 9.1 of Symbian OS. The previous APIs and the old 'way of working' are still supported but do not support new automated features such as background drawing, font provision, layout managers and accumulated zoom. </p> <p>The new 'way of working' is currently used by UIQ v3. </p> <p>S60, MOAP and older versions of UIQ use the old scheme. </p> <p>Under the old (pre 9.1) scheme the way in which a compound control stored its component controls is not mandated by the framework. Controls derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> are free to store their components as they see fit. They have to implement the virtual function <codeph>CCoeControl::CountComponentControls()</codeph> to return the number of components, and also to provide <codeph>CCoeControl::ComponentControl()</codeph> to return the <codeph>CCoeControl*</codeph> pointing to a particular component. This is very flexible but places a greater burden on application developers and means that it is impossible for tools or agents to make assumptions about the internal structure of controls. </p> <p>Under the new (9.1 and onwards) scheme <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> provides a storage mechanism and an API for adding, retrieving and removing components. Besides simplifying the API and making life easier for developers this ensures consistency which allows run-time agents, such as layout managers and skins managers, to act across all of the controls in the UI. The <codeph>CCoeControl::CountComponentControls()</codeph> and <codeph>CCoeControl::ComponentControl()</codeph> functions are now implemented by the base class. By default, <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> also now takes responsibility for deleting its lodgers. </p> <p>The new scheme provides two methods for identifying component controls - one to be used by the parent, which gives each sibling component a unique ID, and one which allows each control within a view to have a UniqueHandle. The latter is primarily to enable resource driven view construction but is also useful for automated testing. </p> <p>The control framework (both old and new) provides logic to handle redrawing and the distribution of pointer events to component controls. A compound control must handle distribution of key events to its components. Non-window owning lodger components should not overlap* and must be contained within the extent of the compound control. This does not pose a restriction for most UI elements, such as buttons and labels, as they never need to overlap and never need to be displayed outside their containers. </p> <p>Component controls may themselves be compound. There is no limit on the number of levels of compounding. </p> <p> </p> <p>*Overlapping controls may be used in conjunction with <xref href="GUID-48DD4B1F-E056-344F-9311-43D89F3817B8.dita"><apiname>MCoeControlHitTest</apiname></xref>. See <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D">How to write controls</xref>  </p> </section> <section><title>See also</title> <p> <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">Run-time control hierarchy</xref>  </p> <p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita">How to write controls</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1"><title>Simple controls and compound controls</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>In addition to being window-owning or non-window-owning, each control is either a simple control or a compound control. </p> <section><title>Simple controls</title> <p>A simple control, such as a label or an image, is one which contains no other controls. A simple control may be window-owning or non-window-owning. The majority of simple controls, in practice, are non-window-owning. </p> </section> <section id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-3-1-1-7-1-7-1-4-1-2-3"><title>Compound controls</title> <p>A compound control is one which contains one or more simple or compound controls. Compound controls are also known as container controls and may be window-owning or non-window-owning. </p> <p>The controls contained by a compound control are its component controls. Components may also be window-owning or non-window-owning. The majority, in practice, are non-window-owning. </p> <p>The implementation of compound controls changed in version 9.1 of Symbian OS. The previous APIs and the old 'way of working' are still supported but do not support new automated features such as background drawing, font provision, layout managers and accumulated zoom. </p> <p>The new 'way of working' is currently used by UIQ v3. </p> <p>S60, MOAP and older versions of UIQ use the old scheme. </p> <p>Under the old (pre 9.1) scheme the way in which a compound control stored its component controls is not mandated by the framework. Controls derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> are free to store their components as they see fit. They have to implement the virtual function <codeph>CCoeControl::CountComponentControls()</codeph> to return the number of components, and also to provide <codeph>CCoeControl::ComponentControl()</codeph> to return the <codeph>CCoeControl*</codeph> pointing to a particular component. This is very flexible but places a greater burden on application developers and means that it is impossible for tools or agents to make assumptions about the internal structure of controls. </p> <p>Under the new (9.1 and onwards) scheme <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> provides a storage mechanism and an API for adding, retrieving and removing components. Besides simplifying the API and making life easier for developers this ensures consistency which allows run-time agents, such as layout managers and skins managers, to act across all of the controls in the UI. The <codeph>CCoeControl::CountComponentControls()</codeph> and <codeph>CCoeControl::ComponentControl()</codeph> functions are now implemented by the base class. By default, <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> also now takes responsibility for deleting its lodgers. </p> <p>The new scheme provides two methods for identifying component controls - one to be used by the parent, which gives each sibling component a unique ID, and one which allows each control within a view to have a UniqueHandle. The latter is primarily to enable resource driven view construction but is also useful for automated testing. </p> <p>The control framework (both old and new) provides logic to handle redrawing and the distribution of pointer events to component controls. A compound control must handle distribution of key events to its components. Non-window owning lodger components should not overlap* and must be contained within the extent of the compound control. This does not pose a restriction for most UI elements, such as buttons and labels, as they never need to overlap and never need to be displayed outside their containers. </p> <p>Component controls may themselves be compound. There is no limit on the number of levels of compounding. </p> <p> </p> <p>*Overlapping controls may be used in conjunction with <xref href="GUID-48DD4B1F-E056-344F-9311-43D89F3817B8.dita"><apiname>MCoeControlHitTest</apiname></xref>. See <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-3-1-1-7-1-9-1-2-21">How to write controls</xref>  </p> </section> <section><title>See also</title> <p> <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control hierarchy</xref>  </p> <p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write controls</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-6-1-1-4-1-6-1-7-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-6-1-1-4-1-6-1-7-1-4-1"><title>Simple controls and compound controls</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>In addition to being window-owning or non-window-owning, each control is either a simple control or a compound control. </p> <section><title>Simple controls</title> <p>A simple control, such as a label or an image, is one which contains no other controls. A simple control may be window-owning or non-window-owning. The majority of simple controls, in practice, are non-window-owning. </p> </section> <section id="GUID-A62E89DE-0762-5827-856D-F20EEF46EE4B-GENID-1-8-1-6-1-1-4-1-6-1-7-1-4-1-2-3"><title>Compound controls</title> <p>A compound control is one which contains one or more simple or compound controls. Compound controls are also known as container controls and may be window-owning or non-window-owning. </p> <p>The controls contained by a compound control are its component controls. Components may also be window-owning or non-window-owning. The majority, in practice, are non-window-owning. </p> <p>The implementation of compound controls changed in version 9.1 of Symbian OS. The previous APIs and the old 'way of working' are still supported but do not support new automated features such as background drawing, font provision, layout managers and accumulated zoom. </p> <p>The new 'way of working' is currently used by UIQ v3. </p> <p>S60, MOAP and older versions of UIQ use the old scheme. </p> <p>Under the old (pre 9.1) scheme the way in which a compound control stored its component controls is not mandated by the framework. Controls derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> are free to store their components as they see fit. They have to implement the virtual function <codeph>CCoeControl::CountComponentControls()</codeph> to return the number of components, and also to provide <codeph>CCoeControl::ComponentControl()</codeph> to return the <codeph>CCoeControl*</codeph> pointing to a particular component. This is very flexible but places a greater burden on application developers and means that it is impossible for tools or agents to make assumptions about the internal structure of controls. </p> <p>Under the new (9.1 and onwards) scheme <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> provides a storage mechanism and an API for adding, retrieving and removing components. Besides simplifying the API and making life easier for developers this ensures consistency which allows run-time agents, such as layout managers and skins managers, to act across all of the controls in the UI. The <codeph>CCoeControl::CountComponentControls()</codeph> and <codeph>CCoeControl::ComponentControl()</codeph> functions are now implemented by the base class. By default, <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> also now takes responsibility for deleting its lodgers. </p> <p>The new scheme provides two methods for identifying component controls - one to be used by the parent, which gives each sibling component a unique ID, and one which allows each control within a view to have a UniqueHandle. The latter is primarily to enable resource driven view construction but is also useful for automated testing. </p> <p>The control framework (both old and new) provides logic to handle redrawing and the distribution of pointer events to component controls. A compound control must handle distribution of key events to its components. Non-window owning lodger components should not overlap* and must be contained within the extent of the compound control. This does not pose a restriction for most UI elements, such as buttons and labels, as they never need to overlap and never need to be displayed outside their containers. </p> <p>Component controls may themselves be compound. There is no limit on the number of levels of compounding. </p> <p> </p> <p>*Overlapping controls may be used in conjunction with <xref href="GUID-48DD4B1F-E056-344F-9311-43D89F3817B8.dita"><apiname>MCoeControlHitTest</apiname></xref>. See <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-3-1-1-7-1-9-1-2-21">How to write controls</xref>  </p> </section> <section><title>See also</title> <p> <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">Run-time control hierarchy</xref>  </p> <p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How to write controls</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0"><title>Weak and strong cryptography</title><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-468D6A12-8121-5B9D-B90B-E0058B6C76D4"><p> <xref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita#GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0/GUID-4DE8C7E7-E568-5FB3-B44E-D0E8FD01A22B">Introduction</xref>  </p> </li> <li id="GUID-4C1CA7A9-00C8-5E9C-8636-F75DA384FE57"><p> <xref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita#GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0/GUID-F542A25E-A152-58DD-AFA0-F9778F8EC8C6">Weak cryptography</xref>  </p> </li> <li id="GUID-70699AF8-7419-5CB0-92F4-2FF7AC71ECD4"><p> <xref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita#GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0/GUID-6309E669-E4C0-5E3C-8BB6-693F673D560D">Strong cryptography</xref>  </p> </li> <li id="GUID-0568AF73-E52A-5412-B7B0-8DE227584400"><p> <xref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita#GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0/GUID-FB7BC684-B087-597A-BB38-44F211E435C8">Build targets and variants</xref>  </p> </li> </ul> <section id="GUID-4DE8C7E7-E568-5FB3-B44E-D0E8FD01A22B"><title>Introduction</title> <p>The Cryptography library is provided in two separate builds, “weak” and “strong”, in order to comply with governmental export rules. These two builds are identical with the exception that the weak build rejects requests to apply an encryption scheme with key sizes greater than a size specified by the UK Government. </p> <p>Currently, symmetric algorithms with keys greater than 56 bits, and asymmetric with keys greater than 512 are deemed export controlled and are classed within Symbian as strong encryption. Keys of less than 56 and 512 bits respectively are classed as weak. Some algorithms – such as 3DES and AES cannot operate with weak keys, and are therefore strong-only algorithms. </p> <p>At present, two versions of the Cryptography library can be built: </p> <ul><li id="GUID-8AFD58E7-4AF8-51A3-B285-DB467203FF05"><p> <filepath>weak_cryptography.dll</filepath>  </p> </li> <li id="GUID-241F8D66-1B59-54E5-8116-84F22C69F73C"><p> <filepath>strong_cryptography.dll</filepath>  </p> </li> </ul> <p> <b>Clients always link against cryptography.dll</b>. </p> <p>The strong/weak libraries are interchangeable (link compatible) except that the weak one will fail at run-time if an attempt is made to employ keys that are larger than bounds laid down by UK export restrictions. </p> <p>On hardware, the version used is determined at ROM build time by including the appropriate version of the Cryptography library as <filepath>cryptography.dll</filepath>. On the emulator, the crypto switch sub-component supplies <filepath>cryptography.dll</filepath>, and this transparently forwards calls to the appropriate version of the Cryptography library. </p> <p>The strong and weak Cryptography APIs are identical. The <filepath>TCrypto</filepath> API allows higher level components to determine at run-time whether the Cryptography library supports full strength cryptography. See <xref href="GUID-1D60BB43-4FF8-5632-A597-0DF00234F93E.dita">How to find the cryptographic strength</xref>. </p> </section> <section id="GUID-F542A25E-A152-58DD-AFA0-F9778F8EC8C6"><title>Weak cryptography</title> <p>The weak version of the Cryptography library is the default one. This is the version that is exported to the <filepath>\epoc32</filepath> tree as <filepath>cryptography.dll</filepath>. This default version may be replaced with any of the other versions. See <xref href="GUID-D6A2B169-F6DB-5BCE-83C9-7CD4A10C5BE9.dita">How to change the cryptographic strength</xref> for instructions on how to do this. </p> <p>The default weak Cryptography library (<filepath>weak_cryptography.dll</filepath>) is limited as follows: </p> <ul><li id="GUID-C483912B-96E8-5C79-8E76-296C0DF5622A"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8.dita">Symmetric algorithms</xref> (DES, RC2, ARC4) are limited to 56 bit key sizes. </p> </li> <li id="GUID-A73D5C8D-D2D5-5361-881C-117296125A70"><p>The 3DES symmetric algorithm is not supported since this requires key sizes greater than 56 bits. </p> </li> <li id="GUID-3E0EF0D4-3699-57F9-8ACD-924326BFAA11"><p> <xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0.dita">Asymmetric algorithms</xref>, RSA and DSA, may be used for decryption using any key size, but encryption is limited to 512 bits. </p> </li> <li id="GUID-396CCE5C-BB27-5649-A1B2-21F5252F3B04"><p>DH is limited to 512 bits. </p> </li> </ul> <p>If attempts are made to use key lengths not supported by a weak crypto library then the library will return an error. </p> </section> <section id="GUID-6309E669-E4C0-5E3C-8BB6-693F673D560D"><title>Strong cryptography</title> <p>The strong Cryptography library supports any key length. </p> </section> <section id="GUID-FB7BC684-B087-597A-BB38-44F211E435C8"><title>Build targets and variants</title> <p>The two versions of the Cryptography library are available for different build targets and variants in: </p> <p> <filepath>&lt;your-SDK-path&gt;\src\generic\security\cryptalg\import\bin\&lt;target&gt;\&lt;variant&gt;\</filepath> </p> <p>Where <filepath>target</filepath> is one of the following build targets: <filepath>wins</filepath>, <filepath>winscw</filepath>, <filepath>winc</filepath>, <filepath>thumb</filepath>, <filepath>armi</filepath>, or <filepath>arm4</filepath>. And <filepath>variant</filepath> is either <filepath>udeb</filepath> or <filepath>urel</filepath>. </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B-master.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e40575_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e46132_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e58819_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e64364_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e67789_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e72940_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56-master.png has changed
Binary file Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e57198_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6C9E7DF-1ACF-4768-851E-350E3DADEC56_d0e63102_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e359404_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6EE8A2A-8B17-5D3A-A9B9-C8D25C92EA21_d0e365484_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393431_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A6F1F6AC-5D3C-5055-AEF1-B64671941BCB_d0e393593_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e185379_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A719FDFA-903B-5340-AA47-9E5B22DBB253_d0e191975_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917-master.png has changed
Binary file Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e55415_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A780F684-0F67-4A7F-B766-E69A5223F917_d0e63312_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-3-1-1-6-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-3-1-1-6-1-4-1" xml:lang="en"><title>Message
-Window Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-AAE226F2-67D8-4907-9F7E-4F2C64577A7C-GENID-1-8-1-3-1-1-6-1-4-1-2-1"><title>Purpose</title> <p>Provides a window that displays a message
-to the user and then disappears. </p> </section>
-<section id="GUID-5548707A-49A2-4CFD-BA1F-0359A2CF3715-GENID-1-8-1-3-1-1-6-1-4-1-2-2"><title>Architectural relationships</title> <p>The animation of the
-window is performed by an animation DLL that plugs-in to the Window Server.
-The message window class is a client-side animation class, derived from the
-animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> <p>The API is used
-by such higher-level APIs and device-family specific UIs to provide
-information and message windows. Such APIs would normally be used by client
-applications, but this API can be used to implement specialist new types of
-message window. </p> </section>
-<section id="GUID-E8AA90C9-09FF-483B-AEDA-89A055C9B090-GENID-1-8-1-3-1-1-6-1-4-1-2-3"><title>Description</title> <p>A message window is provided by <xref href="GUID-D48FA7A3-09E5-3EF5-90CC-325680071EEA.dita"><apiname>RMessageWindow</apiname></xref>.
-The window's font and colors for background, text, border and plinth can be
-configured. </p> </section>
-<section id="GUID-911756E1-E9E6-4960-B463-B055694C3BEC-GENID-1-8-1-3-1-1-6-1-4-1-2-4"><title>See also</title> <ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-6-1-1-4-1-5-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29-GENID-1-8-1-6-1-1-4-1-5-1-4-1" xml:lang="en"><title>Message
-Window Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-AAE226F2-67D8-4907-9F7E-4F2C64577A7C-GENID-1-8-1-6-1-1-4-1-5-1-4-1-2-1"><title>Purpose</title> <p>Provides a window that displays a message
-to the user and then disappears. </p> </section>
-<section id="GUID-5548707A-49A2-4CFD-BA1F-0359A2CF3715-GENID-1-8-1-6-1-1-4-1-5-1-4-1-2-2"><title>Architectural relationships</title> <p>The animation of the
-window is performed by an animation DLL that plugs-in to the Window Server.
-The message window class is a client-side animation class, derived from the
-animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> <p>The API is used
-by such higher-level APIs and device-family specific UIs to provide
-information and message windows. Such APIs would normally be used by client
-applications, but this API can be used to implement specialist new types of
-message window. </p> </section>
-<section id="GUID-E8AA90C9-09FF-483B-AEDA-89A055C9B090-GENID-1-8-1-6-1-1-4-1-5-1-4-1-2-3"><title>Description</title> <p>A message window is provided by <xref href="GUID-D48FA7A3-09E5-3EF5-90CC-325680071EEA.dita"><apiname>RMessageWindow</apiname></xref>.
-The window's font and colors for background, text, border and plinth can be
-configured. </p> </section>
-<section id="GUID-911756E1-E9E6-4960-B463-B055694C3BEC-GENID-1-8-1-6-1-1-4-1-5-1-4-1-2-4"><title>See also</title> <ul>
-<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
-<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A7884A6F-384E-5A52-B2F4-C2FA1B3BAC29" xml:lang="en"><title>Message
+Window Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-AAE226F2-67D8-4907-9F7E-4F2C64577A7C"><title>Purpose</title> <p>Provides a window that displays a message
+to the user and then disappears. </p> </section>
+<section id="GUID-5548707A-49A2-4CFD-BA1F-0359A2CF3715"><title>Architectural relationships</title> <p>The animation of the
+window is performed by an animation DLL that plugs-in to the Window Server.
+The message window class is a client-side animation class, derived from the
+animation client-side class <xref href="GUID-4180CDBA-E9A5-3A4B-9778-26D172FAFD10.dita"><apiname>RAnim</apiname></xref>. </p> <p>The API is used
+by such higher-level APIs and device-family specific UIs to provide
+information and message windows. Such APIs would normally be used by client
+applications, but this API can be used to implement specialist new types of
+message window. </p> </section>
+<section id="GUID-E8AA90C9-09FF-483B-AEDA-89A055C9B090"><title>Description</title> <p>A message window is provided by <xref href="GUID-D48FA7A3-09E5-3EF5-90CC-325680071EEA.dita"><apiname>RMessageWindow</apiname></xref>.
+The window's font and colors for background, text, border and plinth can be
+configured. </p> </section>
+<section id="GUID-911756E1-E9E6-4960-B463-B055694C3BEC"><title>See also</title> <ul>
+<li><p><xref href="GUID-3D577CFE-A6C7-5C4C-A9AA-9382A062A3BE.dita">Animation</xref></p></li>
+<li><p><xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref></p></li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-3-1-1-9-1-4-1-7-1" xml:lang="en"><title>Processing
-pen events</title><shortdesc>This topic describes various events processed by Pen or Mouse.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FB1CCFC8-F70A-4D6E-BF27-3652413359AE-GENID-1-8-1-3-1-1-9-1-4-1-7-1-3-1"><title>Simple drag
-events</title> <p>In order for the FEP control to receive drag events occurring
-in its window, all that is needed is to call <codeph>EnableDragEvents()</codeph> in
-the control’s construction routine. Having done that, the control will receive
-drag events as calls to its <codeph>HandlePointerEventL()</codeph> virtual
-function. The <codeph>iType</codeph> member of <codeph>HandlePointerEventL()</codeph> ’s <codeph>aPointerEvent</codeph> parameter
-is set to <codeph>TPointerEvent::EDrag</codeph> for drag events. </p> <p>This
-method makes heavy use of IPC (inter-process communication) as the user drags
-the mouse/pen around the FEP control’s window, which means that the FEP does
-not get drag events at optimum frequency. This may be problematic for something
-like handwriting recognition software. If there is a requirement to follow
-the path traced by the mouse/pen as closely as possible, another method can
-be used, namely buffered drag events. </p> </section>
-<section id="GUID-739BD481-1EAF-42B3-B0F0-8C50D01CE488-GENID-1-8-1-3-1-1-9-1-4-1-7-1-3-2"><title>Buffered drag
-events</title> <p>The advantage of buffered drag events over simple drag events
-is that the window server client can receive multiple mouse/pen positions
-in a single event, which reduces the IPC overhead. To enable this, the following
-code needs to be called in the FEP control’s construction routine: </p> <codeblock id="GUID-3247B04E-05FD-534E-8F8D-C15DE2FEA33C-GENID-1-8-1-3-1-1-9-1-4-1-7-1-3-2-3" xml:space="preserve">User::LeaveIfError(DrawableWindow()-&gt;AllocPointerMoveBuffer(ENumberOfPointsInBuffer, 0));</codeblock> <p>This assumes that <codeph>ENumberOfPointsInBuffer</codeph> has been defined
-elsewhere; TFEP2Plugin sets this constant to 32. The control
-then receives drag events as calls to its <codeph>HandlePointerBufferReadyL()</codeph> virtual
-function, rather than as calls to <codeph>HandlePointerEventL()</codeph>.
-To retrieve these drag events, include the following code at the start of
-the FEP control’s <codeph>HandlePointerBufferReadyL()</codeph> function: </p> <codeblock id="GUID-18B4F1EB-7090-5C6C-9EB4-98F6CF37FA88-GENID-1-8-1-3-1-1-9-1-4-1-7-1-3-2-5" xml:space="preserve">TPoint arrayOfPoints[ENumberOfPointsInBuffer];
-TPtr8 bufferOfPoints(REINTERPRET_CAST(TUint8*, arrayOfPoints), 0, ENumberOfPointsInBuffer*sizeof(TPoint));
-User::LeaveIfError(DrawableWindow()-&gt;RetrievePointerMoveBuffer(bufferOfPoints));
-const TInt numberOfPointsInBuffer=bufferOfPoints.Length()/sizeof(TPoint);</codeblock> <p>Having
-done that, <codeph>numberOfPointsInBuffer</codeph> of <codeph>arrayOfPoints</codeph> can
-be used for whatever purpose the FEP requires, for example handwriting recognition.
-Note that <codeph>AllocPointerMoveBuffer()</codeph> ’s counterpart <codeph>FreePointerMoveBuffer()</codeph> does
-not need to be called in the FEP control’s destructor as this happens automatically
-when the control’s window is destroyed. </p></section>
-<section id="GUID-9E66280C-65AE-4AB1-9F00-65FBE6CF218D-GENID-1-8-1-3-1-1-9-1-4-1-7-1-3-3"><title>Intercepting
-pen events anywhere on the screen</title> <p>In order to intercept mouse/pen
-events anywhere on the screen it is necessary to write a plugin into the window
-server (WSERV). This is in addition to the FEP plugin which plugs into the
-FEP architecture. TFEP2plugin provides a working example of this (TFEP2be).
-The details of how to write a window server plugin DLL are beyond the scope
-of this document because the APIs involved belong to the window server. See <xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> and <codeph>CAnimDll</codeph> in
-the SDK for information on this. The way mouse/pen events can be intercepted
-is by returning <codeph>ETrue</codeph> from the function overriding <codeph>MEventHandler::OfferRawEvent()</codeph> (<xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> derives
-from <xref href="GUID-F1B47E38-4585-3903-93C7-0BCB075465AA.dita"><apiname>MEventHandler</apiname></xref>). Events which are handled in this way
-will not be sent to the relevant window server client, in other words, the
-client who would otherwise have received this event. </p> <p>The sprite feature
-of the window server (<xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref>, defined in <filepath>epoc32\include\W32STD.H</filepath>)
-can be used to display to the user the path on the screen being traced out
-by their mouse/pen movements. However, care should be taken when using sprites
-for this purpose. Sprites use bitmaps, which in this context would need to
-be the size of the screen. Because each running application has its own FEP,
-which would have its own sprite, which in turn would have its own screen-sized
-bitmap, it becomes apparent that some optimization must be done to avoid huge
-amounts of memory being consumed. TFEP2Plugin solves this problem by using
-a single bitmap shared between each sprite. It uses the 4 byte thread-local
-storage of the window server plugin DLL to store the identifier of this bitmap.
-The code which constructs the sprite is protected by a mutex (<xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex</apiname></xref>,
-defined in <filepath>epoc32\include\E32STD.H</filepath>) as it tests to see
-if the bitmap to be used by the sprite has already been created by a FEP running
-the same code in another thread. If it has then it merely calls <codeph>CFbsBitmap::Duplicate()</codeph> which
-simply increments the existing bitmap’s reference count, thus only one large
-bitmap is created rather than one per running application. </p> <p>Intercepting
-mouse/pen events anywhere on the screen is likely to be most useful to handwriting-interpreting
-FEPs. Given that using this feature involves two polymorphic DLLs (plugging
-into different frameworks) running in two separate threads in separate processes,
-there is a choice regarding where the bulk of the FEP’s processing is done.
-The advantage of the processing being done outside of the window server process
-(in other words, in the FEP architecture plugin) is that bugs in the processing
-code (for instance crashing or hanging) do not affect the whole machine. The
-advantage of the processing being done inside the window server process (in
-other words, in the window server plugin) is that the long lists of screen
-positions (tracing out the path of where the user has dragged the mouse/pen)
-do not need to be communicated between processes. </p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1" xml:lang="en"><title>Processing
-pen events</title><shortdesc>This topic describes various events processed by Pen or Mouse.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FB1CCFC8-F70A-4D6E-BF27-3652413359AE-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1-3-1"><title>Simple drag
-events</title> <p>In order for the FEP control to receive drag events occurring
-in its window, all that is needed is to call <codeph>EnableDragEvents()</codeph> in
-the control’s construction routine. Having done that, the control will receive
-drag events as calls to its <codeph>HandlePointerEventL()</codeph> virtual
-function. The <codeph>iType</codeph> member of <codeph>HandlePointerEventL()</codeph> ’s <codeph>aPointerEvent</codeph> parameter
-is set to <codeph>TPointerEvent::EDrag</codeph> for drag events. </p> <p>This
-method makes heavy use of IPC (inter-process communication) as the user drags
-the mouse/pen around the FEP control’s window, which means that the FEP does
-not get drag events at optimum frequency. This may be problematic for something
-like handwriting recognition software. If there is a requirement to follow
-the path traced by the mouse/pen as closely as possible, another method can
-be used, namely buffered drag events. </p> </section>
-<section id="GUID-739BD481-1EAF-42B3-B0F0-8C50D01CE488-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1-3-2"><title>Buffered drag
-events</title> <p>The advantage of buffered drag events over simple drag events
-is that the window server client can receive multiple mouse/pen positions
-in a single event, which reduces the IPC overhead. To enable this, the following
-code needs to be called in the FEP control’s construction routine: </p> <codeblock id="GUID-3247B04E-05FD-534E-8F8D-C15DE2FEA33C-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1-3-2-3" xml:space="preserve">User::LeaveIfError(DrawableWindow()-&gt;AllocPointerMoveBuffer(ENumberOfPointsInBuffer, 0));</codeblock> <p>This assumes that <codeph>ENumberOfPointsInBuffer</codeph> has been defined
-elsewhere; TFEP2Plugin sets this constant to 32. The control
-then receives drag events as calls to its <codeph>HandlePointerBufferReadyL()</codeph> virtual
-function, rather than as calls to <codeph>HandlePointerEventL()</codeph>.
-To retrieve these drag events, include the following code at the start of
-the FEP control’s <codeph>HandlePointerBufferReadyL()</codeph> function: </p> <codeblock id="GUID-18B4F1EB-7090-5C6C-9EB4-98F6CF37FA88-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1-3-2-5" xml:space="preserve">TPoint arrayOfPoints[ENumberOfPointsInBuffer];
-TPtr8 bufferOfPoints(REINTERPRET_CAST(TUint8*, arrayOfPoints), 0, ENumberOfPointsInBuffer*sizeof(TPoint));
-User::LeaveIfError(DrawableWindow()-&gt;RetrievePointerMoveBuffer(bufferOfPoints));
-const TInt numberOfPointsInBuffer=bufferOfPoints.Length()/sizeof(TPoint);</codeblock> <p>Having
-done that, <codeph>numberOfPointsInBuffer</codeph> of <codeph>arrayOfPoints</codeph> can
-be used for whatever purpose the FEP requires, for example handwriting recognition.
-Note that <codeph>AllocPointerMoveBuffer()</codeph> ’s counterpart <codeph>FreePointerMoveBuffer()</codeph> does
-not need to be called in the FEP control’s destructor as this happens automatically
-when the control’s window is destroyed. </p></section>
-<section id="GUID-9E66280C-65AE-4AB1-9F00-65FBE6CF218D-GENID-1-8-1-6-1-1-4-1-8-1-4-1-7-1-3-3"><title>Intercepting
-pen events anywhere on the screen</title> <p>In order to intercept mouse/pen
-events anywhere on the screen it is necessary to write a plugin into the window
-server (WSERV). This is in addition to the FEP plugin which plugs into the
-FEP architecture. TFEP2plugin provides a working example of this (TFEP2be).
-The details of how to write a window server plugin DLL are beyond the scope
-of this document because the APIs involved belong to the window server. See <xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> and <codeph>CAnimDll</codeph> in
-the SDK for information on this. The way mouse/pen events can be intercepted
-is by returning <codeph>ETrue</codeph> from the function overriding <codeph>MEventHandler::OfferRawEvent()</codeph> (<xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> derives
-from <xref href="GUID-F1B47E38-4585-3903-93C7-0BCB075465AA.dita"><apiname>MEventHandler</apiname></xref>). Events which are handled in this way
-will not be sent to the relevant window server client, in other words, the
-client who would otherwise have received this event. </p> <p>The sprite feature
-of the window server (<xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref>, defined in <filepath>epoc32\include\W32STD.H</filepath>)
-can be used to display to the user the path on the screen being traced out
-by their mouse/pen movements. However, care should be taken when using sprites
-for this purpose. Sprites use bitmaps, which in this context would need to
-be the size of the screen. Because each running application has its own FEP,
-which would have its own sprite, which in turn would have its own screen-sized
-bitmap, it becomes apparent that some optimization must be done to avoid huge
-amounts of memory being consumed. TFEP2Plugin solves this problem by using
-a single bitmap shared between each sprite. It uses the 4 byte thread-local
-storage of the window server plugin DLL to store the identifier of this bitmap.
-The code which constructs the sprite is protected by a mutex (<xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex</apiname></xref>,
-defined in <filepath>epoc32\include\E32STD.H</filepath>) as it tests to see
-if the bitmap to be used by the sprite has already been created by a FEP running
-the same code in another thread. If it has then it merely calls <codeph>CFbsBitmap::Duplicate()</codeph> which
-simply increments the existing bitmap’s reference count, thus only one large
-bitmap is created rather than one per running application. </p> <p>Intercepting
-mouse/pen events anywhere on the screen is likely to be most useful to handwriting-interpreting
-FEPs. Given that using this feature involves two polymorphic DLLs (plugging
-into different frameworks) running in two separate threads in separate processes,
-there is a choice regarding where the bulk of the FEP’s processing is done.
-The advantage of the processing being done outside of the window server process
-(in other words, in the FEP architecture plugin) is that bugs in the processing
-code (for instance crashing or hanging) do not affect the whole machine. The
-advantage of the processing being done inside the window server process (in
-other words, in the window server plugin) is that the long lists of screen
-positions (tracing out the path of where the user has dragged the mouse/pen)
-do not need to be communicated between processes. </p></section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A7E39E45-02BA-58F4-8807-EFABB8F6E5D0" xml:lang="en"><title>Processing
+pen events</title><shortdesc>This topic describes various events processed by Pen or Mouse.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-FB1CCFC8-F70A-4D6E-BF27-3652413359AE"><title>Simple drag
+events</title> <p>In order for the FEP control to receive drag events occurring
+in its window, all that is needed is to call <codeph>EnableDragEvents()</codeph> in
+the control’s construction routine. Having done that, the control will receive
+drag events as calls to its <codeph>HandlePointerEventL()</codeph> virtual
+function. The <codeph>iType</codeph> member of <codeph>HandlePointerEventL()</codeph> ’s <codeph>aPointerEvent</codeph> parameter
+is set to <codeph>TPointerEvent::EDrag</codeph> for drag events. </p> <p>This
+method makes heavy use of IPC (inter-process communication) as the user drags
+the mouse/pen around the FEP control’s window, which means that the FEP does
+not get drag events at optimum frequency. This may be problematic for something
+like handwriting recognition software. If there is a requirement to follow
+the path traced by the mouse/pen as closely as possible, another method can
+be used, namely buffered drag events. </p> </section>
+<section id="GUID-739BD481-1EAF-42B3-B0F0-8C50D01CE488"><title>Buffered drag
+events</title> <p>The advantage of buffered drag events over simple drag events
+is that the window server client can receive multiple mouse/pen positions
+in a single event, which reduces the IPC overhead. To enable this, the following
+code needs to be called in the FEP control’s construction routine: </p> <codeblock id="GUID-3247B04E-05FD-534E-8F8D-C15DE2FEA33C" xml:space="preserve">User::LeaveIfError(DrawableWindow()-&gt;AllocPointerMoveBuffer(ENumberOfPointsInBuffer, 0));</codeblock> <p>This assumes that <codeph>ENumberOfPointsInBuffer</codeph> has been defined
+elsewhere; TFEP2Plugin sets this constant to 32. The control
+then receives drag events as calls to its <codeph>HandlePointerBufferReadyL()</codeph> virtual
+function, rather than as calls to <codeph>HandlePointerEventL()</codeph>.
+To retrieve these drag events, include the following code at the start of
+the FEP control’s <codeph>HandlePointerBufferReadyL()</codeph> function: </p> <codeblock id="GUID-18B4F1EB-7090-5C6C-9EB4-98F6CF37FA88" xml:space="preserve">TPoint arrayOfPoints[ENumberOfPointsInBuffer];
+TPtr8 bufferOfPoints(REINTERPRET_CAST(TUint8*, arrayOfPoints), 0, ENumberOfPointsInBuffer*sizeof(TPoint));
+User::LeaveIfError(DrawableWindow()-&gt;RetrievePointerMoveBuffer(bufferOfPoints));
+const TInt numberOfPointsInBuffer=bufferOfPoints.Length()/sizeof(TPoint);</codeblock> <p>Having
+done that, <codeph>numberOfPointsInBuffer</codeph> of <codeph>arrayOfPoints</codeph> can
+be used for whatever purpose the FEP requires, for example handwriting recognition.
+Note that <codeph>AllocPointerMoveBuffer()</codeph> ’s counterpart <codeph>FreePointerMoveBuffer()</codeph> does
+not need to be called in the FEP control’s destructor as this happens automatically
+when the control’s window is destroyed. </p></section>
+<section id="GUID-9E66280C-65AE-4AB1-9F00-65FBE6CF218D"><title>Intercepting
+pen events anywhere on the screen</title> <p>In order to intercept mouse/pen
+events anywhere on the screen it is necessary to write a plugin into the window
+server (WSERV). This is in addition to the FEP plugin which plugs into the
+FEP architecture. TFEP2plugin provides a working example of this (TFEP2be).
+The details of how to write a window server plugin DLL are beyond the scope
+of this document because the APIs involved belong to the window server. See <xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> and <codeph>CAnimDll</codeph> in
+the SDK for information on this. The way mouse/pen events can be intercepted
+is by returning <codeph>ETrue</codeph> from the function overriding <codeph>MEventHandler::OfferRawEvent()</codeph> (<xref href="GUID-029C644B-BE0F-37C6-95E2-D27F974E6AD3.dita"><apiname>CAnim</apiname></xref> derives
+from <xref href="GUID-F1B47E38-4585-3903-93C7-0BCB075465AA.dita"><apiname>MEventHandler</apiname></xref>). Events which are handled in this way
+will not be sent to the relevant window server client, in other words, the
+client who would otherwise have received this event. </p> <p>The sprite feature
+of the window server (<xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref>, defined in <filepath>epoc32\include\W32STD.H</filepath>)
+can be used to display to the user the path on the screen being traced out
+by their mouse/pen movements. However, care should be taken when using sprites
+for this purpose. Sprites use bitmaps, which in this context would need to
+be the size of the screen. Because each running application has its own FEP,
+which would have its own sprite, which in turn would have its own screen-sized
+bitmap, it becomes apparent that some optimization must be done to avoid huge
+amounts of memory being consumed. TFEP2Plugin solves this problem by using
+a single bitmap shared between each sprite. It uses the 4 byte thread-local
+storage of the window server plugin DLL to store the identifier of this bitmap.
+The code which constructs the sprite is protected by a mutex (<xref href="GUID-C0FEA3A0-7DD3-3B87-A919-CB973BC05766.dita"><apiname>RMutex</apiname></xref>,
+defined in <filepath>epoc32\include\E32STD.H</filepath>) as it tests to see
+if the bitmap to be used by the sprite has already been created by a FEP running
+the same code in another thread. If it has then it merely calls <codeph>CFbsBitmap::Duplicate()</codeph> which
+simply increments the existing bitmap’s reference count, thus only one large
+bitmap is created rather than one per running application. </p> <p>Intercepting
+mouse/pen events anywhere on the screen is likely to be most useful to handwriting-interpreting
+FEPs. Given that using this feature involves two polymorphic DLLs (plugging
+into different frameworks) running in two separate threads in separate processes,
+there is a choice regarding where the bulk of the FEP’s processing is done.
+The advantage of the processing being done outside of the window server process
+(in other words, in the FEP architecture plugin) is that bugs in the processing
+code (for instance crashing or hanging) do not affect the whole machine. The
+advantage of the processing being done inside the window server process (in
+other words, in the window server plugin) is that the long lists of screen
+positions (tracing out the path of where the user has dragged the mouse/pen)
+do not need to be communicated between processes. </p></section>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A83DBB85-EBA0-44CB-8903-69F5E0C08191.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A83DBB85-EBA0-44CB-8903-69F5E0C08191" xml:lang="en"><title>Extended
+Connection Preference API- Tutorials</title><shortdesc>The Extended Connection Preference API allows the application to
+set preferences prior to connection establishment. These preferences enable
+and manage connections efficiently.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45"><title>How to control Application Level Roaming for SIP Profiles</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Application Level Roaming (ALR) is a facility which allows a SIP Profile to switch between service providers by using Internet Access Points (IAPs). By default, all SIP clients allow the SIP profiles they are using to roam across IAPs. </p> <p>To restrict roaming for a SIP profile to a set of IAPs, configure the profile with a Service Network Access Point (SNAP) ID. A SNAP ID is a unique identifier for a set of IAPs. The SIP profile store must include the SNAP ID that can be used by the SIP profile while roaming. </p> <p>Use the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita"><apiname>CSipProfileAlrController</apiname></xref> and <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> classes to control ALR. </p> <p>To register for ALR events, use an instance of the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita"><apiname>CSipProfileAlrController</apiname></xref> class and implement the <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> interface to register for ALR events. When registered for the ALR event, the <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> interface notifies the client when a SIP profile used by the client tries to migrate to another IAP. Then the client can allow or disallow the migration request using the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita#GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8/GUID-95B63021-C6C7-39AF-8D34-4D860A8E1772"><apiname>CSipProfileAlrController::AllowMigrationL()</apiname></xref> or <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita#GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8/GUID-735767B1-A2B4-3944-B960-C5E6C9A9ADFA"><apiname>CSipProfileAlrController::DisallowMigrationL()</apiname></xref> functions. </p> <p>The following illustration shows the call flow of enabling a SIP profile configured with a SNAP ID. </p> <fig id="GUID-CF28B128-D560-516D-BF6E-DA46ECB96DF2"><title>
-          Call flow of enabling a SIP profile with a SNAP ID 
-        </title> <image href="GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e342892_href.png" placement="inline"/></fig> <p>When the SIP profile is registered with a SNAP ID, you can allow the SIP profile to migrate to another IAP within the SNAP. </p> <p>In the following illustration, the SIP profile is deregistered after migrating to another IAP. To use it again, you must register the profile again. </p> <p>The following illustration shows the call flow of SIP profile migration. </p> <fig id="GUID-CC95AEE1-EABD-5C36-BB2D-C2BC585C6769"><title>
-          Call flow of migrating a SIP profile to another IAP 
-        </title> <image href="GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e342907_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A869BA79-5916-5B60-A02B-EF7D7CCA8C45"><title>How to control Application Level Roaming for SIP Profiles</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Application Level Roaming (ALR) is a facility which allows a SIP Profile to switch between service providers by using Internet Access Points (IAPs). By default, all SIP clients allow the SIP profiles they are using to roam across IAPs. </p> <p>To restrict roaming for a SIP profile to a set of IAPs, configure the profile with a Service Network Access Point (SNAP) ID. A SNAP ID is a unique identifier for a set of IAPs. The SIP profile store must include the SNAP ID that can be used by the SIP profile while roaming. </p> <p>Use the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita"><apiname>CSipProfileAlrController</apiname></xref> and <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> classes to control ALR. </p> <p>To register for ALR events, use an instance of the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita"><apiname>CSipProfileAlrController</apiname></xref> class and implement the <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> interface to register for ALR events. When registered for the ALR event, the <xref href="GUID-2034A76E-DF82-3E1B-810D-D98819C7C153.dita"><apiname>MSipProfileAlrObserver</apiname></xref> interface notifies the client when a SIP profile used by the client tries to migrate to another IAP. Then the client can allow or disallow the migration request using the <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita#GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8/GUID-95B63021-C6C7-39AF-8D34-4D860A8E1772"><apiname>CSipProfileAlrController::AllowMigrationL()</apiname></xref> or <xref href="GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8.dita#GUID-99F30475-E6A5-3B37-A7F0-D186101F60A8/GUID-735767B1-A2B4-3944-B960-C5E6C9A9ADFA"><apiname>CSipProfileAlrController::DisallowMigrationL()</apiname></xref> functions. </p> <p>The following illustration shows the call flow of enabling a SIP profile configured with a SNAP ID. </p> <fig id="GUID-CF28B128-D560-516D-BF6E-DA46ECB96DF2"><title>
+          Call flow of enabling a SIP profile with a SNAP ID 
+        </title> <image href="GUID-A007DDF7-AC6D-5378-B7A6-84CB421E970F_d0e336695_href.png" placement="inline"/></fig> <p>When the SIP profile is registered with a SNAP ID, you can allow the SIP profile to migrate to another IAP within the SNAP. </p> <p>In the following illustration, the SIP profile is deregistered after migrating to another IAP. To use it again, you must register the profile again. </p> <p>The following illustration shows the call flow of SIP profile migration. </p> <fig id="GUID-CC95AEE1-EABD-5C36-BB2D-C2BC585C6769"><title>
+          Call flow of migrating a SIP profile to another IAP 
+        </title> <image href="GUID-296F25B4-8942-5FCB-B0A2-367157B72B72_d0e336710_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,100 +1,100 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066" xml:lang="en"><title>Hardware
-Resource Manager Overview</title><shortdesc>Introduction to topic for overview page or search</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Hardware Resource Manager (HWRM) is a client-server solution, which utilizes
-ECom plug-ins to achieve device independency. ECom plug-ins convert the client
-requests into the hardware control commands. </p>
-<section><title>Purpose</title> <p>HWRM performs the following functions: </p> <ul>
-<li id="GUID-B9558230-898F-51E8-8839-4CEB8C8D3FB4"><p>Provide client APIs
-to control lights, vibra. </p> </li>
-<li id="GUID-6CC6C834-CE06-534C-A39A-D1C617F04094"><p>Retrieve battery information
-of the device. </p> </li>
-<li id="GUID-B45D85ED-6DD6-5445-A51C-561D6C609204"><p>Publish certain power-state
-related Publish and Subscribe properties. </p> </li>
-<li id="GUID-34B70C64-2C40-55F5-9C30-6C851E1351D1"><p>Enable clients to retrieve
-status information on the hardware elements such as light, vibration, power. </p> </li>
-</ul> </section>
-<section><title>Required background</title> <p>Knowledge of the client-server
-architecture, asynchronous processing, and active objects feature of the Symbian
-system model architecture. </p> </section>
-<section><title>HWRM architecture</title> <p>HWRM is made up of the following
-components: </p> <ul>
-<li id="GUID-52035A19-05AF-5C9B-A525-9B84523EFA30"><p><b>Client APIs</b>  </p> </li>
-<li id="GUID-E833B270-2E7A-583B-9177-7F5AB0386D6E"><p><b>HWRM Server</b>  </p> </li>
-</ul> <fig id="GUID-81607D15-1867-51EF-81B8-39AC75FDD4B6">
-<title>              Hardware Resource Manager's Architectural Relationships
-           </title>
-<image href="GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e131270_href.png" placement="inline"/>
-</fig> <p><b>Client APIs </b> </p> <p>HWRM provides client APIs that can control
-various hardware elements. It also provides callback pointers, so that the
-client applications can register to receive notification on the hardware status
-changes. Refer to the <xref href="GUID-2E3BE23C-B9DC-5B5D-A56A-1DB819EFC9A6.dita">tutorials</xref> for
-information on how to use client APIs. Client APIs are useful for both application
-developers and the handset manufacturers. </p> <p><b>HWRM server</b> </p> <p>HWRM
-server uses plug-in handlers to forward the client API requests to appropriate
-plug-ins. The client application communicates with HWRM server through the
-client APIs (Light API, Vibra API, and Power API). HWRM server defines the
-observer classes, which provide the callback pointers. </p> <p>The server
-calls <xref href="GUID-4603653B-34E4-3CC5-9978-95F9532A0616.dita#GUID-4603653B-34E4-3CC5-9978-95F9532A0616/GUID-5FB0A5EF-C2BB-3D0D-ACFD-9C7EE5BF41D2"><apiname>CHWRMPluginService::ProcessCommandL()</apiname></xref> function to
-forward the client requests to plug-ins. An ongoing <xref href="GUID-DC7941A2-9310-3739-AB95-EF080EAEA042.dita"><apiname>ProcessCommandL()</apiname></xref> is
-cancelled by HWRM server using <xref href="GUID-4603653B-34E4-3CC5-9978-95F9532A0616.dita#GUID-4603653B-34E4-3CC5-9978-95F9532A0616/GUID-3BF46D44-ED10-30AC-AE0A-18776FE69A83"><apiname>CHWRMPluginService::CancelCommandL()</apiname></xref>.
-The plug-ins process the server's request and pass the response by calling <xref href="GUID-5F264EF2-6E50-34F7-96E1-99645EC86265.dita#GUID-5F264EF2-6E50-34F7-96E1-99645EC86265/GUID-6DDB5354-C3C1-35F9-B237-9ECA5018BA41"><apiname>CHWRMPluginCallback::ProcessResponseL()</apiname></xref> function.
-The <xref href="GUID-E053425D-3A2F-39A5-B18A-0E2E8883D8F6.dita#GUID-E053425D-3A2F-39A5-B18A-0E2E8883D8F6/GUID-6F02C8B1-B01F-35C5-9010-51B8A3E04FDC"><apiname>MHWRMPluginCallback::EventL()</apiname></xref> method is used to communicate
-various events that takes place in the plug-ins. </p> <p>HWRM uses the central
-repository to store the various values and settings such as the light intensity,
-duration and delays. </p> </section>
-<section><title>APIs</title> <p>The HWRM provides the following client APIs
-and plug-in APIs: </p> <table id="GUID-3EBE4E80-0F05-5BE3-BFCB-440B15246AE8">
-<tgroup cols="2">
-
-<colspec colname="col0" colwidth="0.79*"/><colspec colname="col1" colwidth="1.21*"/>
-<thead>
-<row>
-<entry><b>Class</b></entry>
-<entry><b>Description</b></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><codeph>CHWRMLight</codeph> </p> </entry>
-<entry><p>Abstract class defining Lights client API. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>CHWRMExtendedLight</codeph></p></entry>
-<entry><p>Abstract class defining Extended Lights client API.</p></entry>
-</row>
-<row>
-<entry><p><codeph>CHWRMVibra</codeph> </p> </entry>
-<entry><p>Abstract class defining Vibra client API. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>CHWRMPower</codeph> </p> </entry>
-<entry><p>Class defining Power client API. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical use cases</title> <p>HWRM is used for the following: </p> <ul>
-<li><p>Used to configure a plug-in.</p></li>
-<li id="GUID-EC0ED774-FA8C-5795-A8B8-828915C925B0"><p>Start/stop device vibra. </p> </li>
-<li id="GUID-A7F6688C-3421-566B-96C1-FAC8A27E994E"><p>Release the reserved
-lights </p> </li>
-<li id="GUID-760C9732-6587-55BD-A8B3-C1838A668347"><p>Retrieve the supported
-light targets of the device, current light status, vibra settings and status. </p> </li>
-<li id="GUID-831C3322-D28C-507A-BB5C-EA85944D8BB7"><p>Reserve light targets,
-device vibra. </p> </li>
-<li id="GUID-83313ED4-CC3F-575D-9D5B-01485DC2B7B4"><p>Switch ON/OFF the lights. </p> </li>
-<li id="GUID-9A30DBFC-3CE4-5A85-9E7B-27178872AE5A"><p>Request for tactile
-vibration pulse. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A87610FF-2FBC-4BA3-8F6B-0BBB441F8066" xml:lang="en"><title>Hardware
+Resource Manager Overview</title><shortdesc>Introduction to topic for overview page or search</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Hardware Resource Manager (HWRM) is a client-server solution, which utilizes
+ECom plug-ins to achieve device independency. ECom plug-ins convert the client
+requests into the hardware control commands. </p>
+<section><title>Purpose</title> <p>HWRM performs the following functions: </p> <ul>
+<li id="GUID-B9558230-898F-51E8-8839-4CEB8C8D3FB4"><p>Provide client APIs
+to control lights, vibra. </p> </li>
+<li id="GUID-6CC6C834-CE06-534C-A39A-D1C617F04094"><p>Retrieve battery information
+of the device. </p> </li>
+<li id="GUID-B45D85ED-6DD6-5445-A51C-561D6C609204"><p>Publish certain power-state
+related Publish and Subscribe properties. </p> </li>
+<li id="GUID-34B70C64-2C40-55F5-9C30-6C851E1351D1"><p>Enable clients to retrieve
+status information on the hardware elements such as light, vibration, power. </p> </li>
+</ul> </section>
+<section><title>Required background</title> <p>Knowledge of the client-server
+architecture, asynchronous processing, and active objects feature of the Symbian
+system model architecture. </p> </section>
+<section><title>HWRM architecture</title> <p>HWRM is made up of the following
+components: </p> <ul>
+<li id="GUID-52035A19-05AF-5C9B-A525-9B84523EFA30"><p><b>Client APIs</b>  </p> </li>
+<li id="GUID-E833B270-2E7A-583B-9177-7F5AB0386D6E"><p><b>HWRM Server</b>  </p> </li>
+</ul> <fig id="GUID-81607D15-1867-51EF-81B8-39AC75FDD4B6">
+<title>              Hardware Resource Manager's Architectural Relationships
+           </title>
+<image href="GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e124732_href.png" placement="inline"/>
+</fig> <p><b>Client APIs </b> </p> <p>HWRM provides client APIs that can control
+various hardware elements. It also provides callback pointers, so that the
+client applications can register to receive notification on the hardware status
+changes. Refer to the <xref href="GUID-2E3BE23C-B9DC-5B5D-A56A-1DB819EFC9A6.dita">tutorials</xref> for
+information on how to use client APIs. Client APIs are useful for both application
+developers and the handset manufacturers. </p> <p><b>HWRM server</b> </p> <p>HWRM
+server uses plug-in handlers to forward the client API requests to appropriate
+plug-ins. The client application communicates with HWRM server through the
+client APIs (Light API, Vibra API, and Power API). HWRM server defines the
+observer classes, which provide the callback pointers. </p> <p>The server
+calls <xref href="GUID-4603653B-34E4-3CC5-9978-95F9532A0616.dita#GUID-4603653B-34E4-3CC5-9978-95F9532A0616/GUID-5FB0A5EF-C2BB-3D0D-ACFD-9C7EE5BF41D2"><apiname>CHWRMPluginService::ProcessCommandL()</apiname></xref> function to
+forward the client requests to plug-ins. An ongoing <xref href="GUID-DC7941A2-9310-3739-AB95-EF080EAEA042.dita"><apiname>ProcessCommandL()</apiname></xref> is
+cancelled by HWRM server using <xref href="GUID-4603653B-34E4-3CC5-9978-95F9532A0616.dita#GUID-4603653B-34E4-3CC5-9978-95F9532A0616/GUID-3BF46D44-ED10-30AC-AE0A-18776FE69A83"><apiname>CHWRMPluginService::CancelCommandL()</apiname></xref>.
+The plug-ins process the server's request and pass the response by calling <xref href="GUID-5F264EF2-6E50-34F7-96E1-99645EC86265.dita#GUID-5F264EF2-6E50-34F7-96E1-99645EC86265/GUID-6DDB5354-C3C1-35F9-B237-9ECA5018BA41"><apiname>CHWRMPluginCallback::ProcessResponseL()</apiname></xref> function.
+The <xref href="GUID-E053425D-3A2F-39A5-B18A-0E2E8883D8F6.dita#GUID-E053425D-3A2F-39A5-B18A-0E2E8883D8F6/GUID-6F02C8B1-B01F-35C5-9010-51B8A3E04FDC"><apiname>MHWRMPluginCallback::EventL()</apiname></xref> method is used to communicate
+various events that takes place in the plug-ins. </p> <p>HWRM uses the central
+repository to store the various values and settings such as the light intensity,
+duration and delays. </p> </section>
+<section><title>APIs</title> <p>The HWRM provides the following client APIs
+and plug-in APIs: </p> <table id="GUID-3EBE4E80-0F05-5BE3-BFCB-440B15246AE8">
+<tgroup cols="2">
+
+<colspec colname="col0" colwidth="0.79*"/><colspec colname="col1" colwidth="1.21*"/>
+<thead>
+<row>
+<entry><b>Class</b></entry>
+<entry><b>Description</b></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><codeph>CHWRMLight</codeph> </p> </entry>
+<entry><p>Abstract class defining Lights client API. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>CHWRMExtendedLight</codeph></p></entry>
+<entry><p>Abstract class defining Extended Lights client API.</p></entry>
+</row>
+<row>
+<entry><p><codeph>CHWRMVibra</codeph> </p> </entry>
+<entry><p>Abstract class defining Vibra client API. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>CHWRMPower</codeph> </p> </entry>
+<entry><p>Class defining Power client API. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical use cases</title> <p>HWRM is used for the following: </p> <ul>
+<li><p>Used to configure a plug-in.</p></li>
+<li id="GUID-EC0ED774-FA8C-5795-A8B8-828915C925B0"><p>Start/stop device vibra. </p> </li>
+<li id="GUID-A7F6688C-3421-566B-96C1-FAC8A27E994E"><p>Release the reserved
+lights </p> </li>
+<li id="GUID-760C9732-6587-55BD-A8B3-C1838A668347"><p>Retrieve the supported
+light targets of the device, current light status, vibra settings and status. </p> </li>
+<li id="GUID-831C3322-D28C-507A-BB5C-EA85944D8BB7"><p>Reserve light targets,
+device vibra. </p> </li>
+<li id="GUID-83313ED4-CC3F-575D-9D5B-01485DC2B7B4"><p>Switch ON/OFF the lights. </p> </li>
+<li id="GUID-9A30DBFC-3CE4-5A85-9E7B-27178872AE5A"><p>Request for tactile
+vibration pulse. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e357640_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A89A50B6-2A3B-54E1-8157-6CC86AFE4A57_d0e363720_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e304305_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A8C80AA1-42CF-5866-B223-FCE1AEC9DF63_d0e310320_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e169220_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e175821_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C" xml:lang="en"><title>Battery
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Battery pane displays the remaining energy level of the battery, using
-a graphical indicator. It also acts as a charging indicator. The battery indicator
-is visible in all applications.</p>
-<fig id="GUID-D43D0210-84D8-4288-A2E8-13D43B861F7F">
-<title>Battery pane</title>
-<image href="GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e72805_href.png" placement="inline"/>
-</fig>
-<p>The battery pane is not accessible
-to applications.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C" xml:lang="en"><title>Battery
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Battery pane displays the remaining energy level of the battery, using
+a graphical indicator. It also acts as a charging indicator. The battery indicator
+is visible in all applications.</p>
+<fig id="GUID-D43D0210-84D8-4288-A2E8-13D43B861F7F">
+<title>Battery pane</title>
+<image href="GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e67137_href.png" placement="inline"/>
+</fig>
+<p>The battery pane is not accessible
+to applications.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e276053_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-A950288B-D9D8-59E3-9F4C-0AEE2FC77E38_d0e279739_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757"><title>The object index</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>An object index is used to generate handle-numbers for reference counting objects. </p> <p>An object index is an instance of a <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita"><apiname>CObjectIx</apiname></xref> class. </p> <p>An object index acts as a collector of reference counting objects but, unlike an object container, it does not act as a container for them. The difference is emphasised by the fact that removing a reference counting object from its object container causes that reference counting object to be <i>destroyed</i>, while removing it from an object index causes it to be <i>closed</i>. </p> <p>An object index can hold reference counting objects which belong to different object containers. The same reference counting object can also be added to an object index any number of times; each is regarded as a different instance of that object and each instance generates a different handle-number. </p> <p> <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita#GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E/GUID-03EC7FEC-030F-3F4E-9FF1-669284626DF5"><apiname>CObjectIx::AddL()</apiname></xref> adds a reference counting object to an object index, and is the way in which a unique handle-number can be generated for that object. A handle-number is the way in which an object which is owned or managed by another thread or process can be identified. For example, on the server side, the object representing a thread (a <codeph>DThread</codeph>) maintains an object index for all objects which are open in that thread. Semaphores, mutexes and other threads are examples. Typically, user code running in that thread will have handles, <codeph>RHandleBase</codeph> derived types, open on those objects. </p> <p>The following drawing shows the idea. </p> <fig id="GUID-139E5A87-1E6E-5102-AE60-A707EFC5AD5D"><image href="GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e248612_href.png" placement="inline"/></fig> <p>An object index is implemented as an array where each element of the array contains a pointer to the reference counting object. An object index can index up to 32,768 (0x8000) reference counting objects. </p> <p>See also: </p> <ul><li id="GUID-3BD162E5-C0A7-5D42-94E3-6E2A0468749A"><p> <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita"><apiname>CObjectIx</apiname></xref> </p> </li> <li id="GUID-C7108AB5-3F32-5F1D-B15F-E6DBE5CF9809"><p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> </p> </li> <li id="GUID-00290334-9DA4-5FC0-874A-CD839027FD28"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-25EBCB93-A34E-57C3-BD33-B20398FD3CC0"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> </p> </li> </ul> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757"><title>The object index</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>An object index is used to generate handle-numbers for reference counting objects. </p> <p>An object index is an instance of a <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita"><apiname>CObjectIx</apiname></xref> class. </p> <p>An object index acts as a collector of reference counting objects but, unlike an object container, it does not act as a container for them. The difference is emphasised by the fact that removing a reference counting object from its object container causes that reference counting object to be <i>destroyed</i>, while removing it from an object index causes it to be <i>closed</i>. </p> <p>An object index can hold reference counting objects which belong to different object containers. The same reference counting object can also be added to an object index any number of times; each is regarded as a different instance of that object and each instance generates a different handle-number. </p> <p> <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita#GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E/GUID-03EC7FEC-030F-3F4E-9FF1-669284626DF5"><apiname>CObjectIx::AddL()</apiname></xref> adds a reference counting object to an object index, and is the way in which a unique handle-number can be generated for that object. A handle-number is the way in which an object which is owned or managed by another thread or process can be identified. For example, on the server side, the object representing a thread (a <codeph>DThread</codeph>) maintains an object index for all objects which are open in that thread. Semaphores, mutexes and other threads are examples. Typically, user code running in that thread will have handles, <codeph>RHandleBase</codeph> derived types, open on those objects. </p> <p>The following drawing shows the idea. </p> <fig id="GUID-139E5A87-1E6E-5102-AE60-A707EFC5AD5D"><image href="GUID-6BA9989F-6D45-5D77-BC79-DE4B5DD35A6C_d0e244875_href.png" placement="inline"/></fig> <p>An object index is implemented as an array where each element of the array contains a pointer to the reference counting object. An object index can index up to 32,768 (0x8000) reference counting objects. </p> <p>See also: </p> <ul><li id="GUID-3BD162E5-C0A7-5D42-94E3-6E2A0468749A"><p> <xref href="GUID-70824EE4-9E01-3AC0-9318-4B521A1FDD5E.dita"><apiname>CObjectIx</apiname></xref> </p> </li> <li id="GUID-C7108AB5-3F32-5F1D-B15F-E6DBE5CF9809"><p> <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> </p> </li> <li id="GUID-00290334-9DA4-5FC0-874A-CD839027FD28"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-25EBCB93-A34E-57C3-BD33-B20398FD3CC0"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> </p> </li> </ul> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e246388_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A95FEDD4-106A-5E14-8B64-3E2882C76666_d0e250125_href.png has changed
--- a/Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-3-1-1-4-1-4-1"><title>How to create a basic animation</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The animation framework provides a concrete implementation of the <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref> class called <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> class to create a basic client-side animation. A basic client-side animation needs data, which can range from a simple file to a complex data structure. The data provider is responsible for handling this data and cater to the needs of the animation whenever required. The <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> class acts as a data provider and handles the data needed for any type of animation. </p> <p>To create a basic client-side animation, create an object of the <codeph>CICLAnimationDataProvider</codeph> class. Associate the data required for the animation with the data provider object. In the example used below, the data needed for the animation is a simple animated <filepath>GIF</filepath> file. </p> <p>The following code shows how to create a data provider object and associate a <filepath>GIF</filepath> file with it: </p> <codeblock id="GUID-9E8D5A00-0166-51A1-A4B6-8C3600916CA0-GENID-1-8-1-3-1-1-4-1-4-1-2-4" xml:space="preserve">//Path to the GIF file
-_LIT(KAnimExGuitarPlayer,"Z:\\resource\\apps\\AnimExample\\GuitarPlayer.gif");
-
-//Creating the data provider object and setting the GIF file using the string literal created above.
-//The iEikonEnv macro is used to open a session with the file system, before setting the GIF file to the data provider. 
-CICLAnimationDataProvider* basicDataProvider = new (ELeave)CICLAnimationDataProvider;
-basicDataProvider-&gt;SetFileL(iEikonEnv-&gt;FsSession(), KAnimExGuitarPlayer());</codeblock> <p>Now that the data provider object is ready with the required data, you can create an object of <codeph>CBasicAnimation</codeph> class. The control and behaviour for the animation is defined using the <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> class. You should create such an object and provide it to the animation. The behaviour of the animation can be set to any of the following: </p> <ul><li id="GUID-9A2A1585-3D12-5FFE-8F73-069A5848B5FA-GENID-1-8-1-3-1-1-4-1-4-1-2-6-1"><p>Play in a loop: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ELoop</codeph>, and set the number of cycles the animation should complete using the <codeph>iData</codeph> variable. If you want the animation to be played for an indefinite number of cycles, set <codeph>iData</codeph> to <codeph>-1</codeph>. </p> </li> <li id="GUID-F554156C-6481-5E8E-AADA-3DA956BB29B4-GENID-1-8-1-3-1-1-4-1-4-1-2-6-2"><p>Play immediately: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EStartImmediately</codeph>. By default, the animations will wait till the data is loaded completely. </p> </li> <li id="GUID-A5DF5715-5A9F-5EC5-A1D7-7309B2FA2174-GENID-1-8-1-3-1-1-4-1-4-1-2-6-3"><p>Play only specified number of frames: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ECountFrames</codeph>, and set the number of frames the animation should play using the <codeph>iData</codeph> variable. </p> </li> <li id="GUID-0A7DC95B-0ECC-597E-9008-132C9E67DC95-GENID-1-8-1-3-1-1-4-1-4-1-2-6-4"><p>Stop the animation at the last frame: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EEndOnLastFrame</codeph>. By default, when animations stop they return to the first frame. </p> </li> </ul> <p>In this case, the animation is configured to play in an infinite loop. </p> <p>The following code shows how to create and start a basic client-side animation. It loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop : </p> <codeblock id="GUID-8E743CED-5EAF-5717-B098-F4111F143893-GENID-1-8-1-3-1-1-4-1-4-1-2-9" xml:space="preserve">//Integer constant defining the X and Y co-ordinates of the animation
-const TInt KAnimExBasicPositionX = 300;
-const TInt KAnimExBasicPositionY = 100;
-TPoint position = TPoint(KAnimExBasicPositionX, KAnimExBasicPositionY);
-
-//configure the animation to play in an infinite loop
-TAnimationConfig config;
-config.iFlags = TAnimationConfig::ELoop;
-config.iData = -1;
-
-//Creating the basic animation object using the data provider object and the X and Y coordinates defined above
-iBasicAnim = CBasicAnimation::NewL(basicDataProvider,position, iEikonEnv-&gt;WsSession(), Window());        
-
-//Starting the animation using the configuration created above
-iBasicAnim-&gt;Start(config);</codeblock> <p>The animation will be visible only when it is rendered to the window. To do so, implement a private virtual member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class called <codeph>Draw()</codeph> in your client application view class. This function should in-turn call the <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita#GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8/GUID-07FA25D5-3B07-3611-B838-C850C648006C"><apiname>CBasicAnimation::Draw</apiname></xref> function by passing the windows graphics context as an argument. </p> <p>The following code shows how to draw the animation to the window: </p> <codeblock id="GUID-A1314244-8C18-54E9-A403-3D5786CDD6BF-GENID-1-8-1-3-1-1-4-1-4-1-2-12" xml:space="preserve">void CClientAppView::Draw(const TRect&amp;) const
-{
-    
-    CWindowGc&amp; gc = SystemGc();    
-    if( iBasicAnim )
-        {
-        iBasicAnim-&gt;Draw( gc );    
-        }
-}</codeblock> <p> <i>Note that you should include proper error checks in the given code before using it for production.</i>  </p> <p>When a new frame is required for the animation, the entire window or an area within in the window need to be redrawn using the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref> function. This function will force a client redraw. </p> <p>This code creates a client-side animation which loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop. </p> </conbody><related-links><link href="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita"><linktext>Animation
-                overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-6-1-1-4-1-3-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9-GENID-1-8-1-6-1-1-4-1-3-1-4-1"><title>How to create a basic animation</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The animation framework provides a concrete implementation of the <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref> class called <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> class to create a basic client-side animation. A basic client-side animation needs data, which can range from a simple file to a complex data structure. The data provider is responsible for handling this data and cater to the needs of the animation whenever required. The <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> class acts as a data provider and handles the data needed for any type of animation. </p> <p>To create a basic client-side animation, create an object of the <codeph>CICLAnimationDataProvider</codeph> class. Associate the data required for the animation with the data provider object. In the example used below, the data needed for the animation is a simple animated <filepath>GIF</filepath> file. </p> <p>The following code shows how to create a data provider object and associate a <filepath>GIF</filepath> file with it: </p> <codeblock id="GUID-9E8D5A00-0166-51A1-A4B6-8C3600916CA0-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-4" xml:space="preserve">//Path to the GIF file
-_LIT(KAnimExGuitarPlayer,"Z:\\resource\\apps\\AnimExample\\GuitarPlayer.gif");
-
-//Creating the data provider object and setting the GIF file using the string literal created above.
-//The iEikonEnv macro is used to open a session with the file system, before setting the GIF file to the data provider. 
-CICLAnimationDataProvider* basicDataProvider = new (ELeave)CICLAnimationDataProvider;
-basicDataProvider-&gt;SetFileL(iEikonEnv-&gt;FsSession(), KAnimExGuitarPlayer());</codeblock> <p>Now that the data provider object is ready with the required data, you can create an object of <codeph>CBasicAnimation</codeph> class. The control and behaviour for the animation is defined using the <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> class. You should create such an object and provide it to the animation. The behaviour of the animation can be set to any of the following: </p> <ul><li id="GUID-9A2A1585-3D12-5FFE-8F73-069A5848B5FA-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-6-1"><p>Play in a loop: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ELoop</codeph>, and set the number of cycles the animation should complete using the <codeph>iData</codeph> variable. If you want the animation to be played for an indefinite number of cycles, set <codeph>iData</codeph> to <codeph>-1</codeph>. </p> </li> <li id="GUID-F554156C-6481-5E8E-AADA-3DA956BB29B4-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-6-2"><p>Play immediately: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EStartImmediately</codeph>. By default, the animations will wait till the data is loaded completely. </p> </li> <li id="GUID-A5DF5715-5A9F-5EC5-A1D7-7309B2FA2174-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-6-3"><p>Play only specified number of frames: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ECountFrames</codeph>, and set the number of frames the animation should play using the <codeph>iData</codeph> variable. </p> </li> <li id="GUID-0A7DC95B-0ECC-597E-9008-132C9E67DC95-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-6-4"><p>Stop the animation at the last frame: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EEndOnLastFrame</codeph>. By default, when animations stop they return to the first frame. </p> </li> </ul> <p>In this case, the animation is configured to play in an infinite loop. </p> <p>The following code shows how to create and start a basic client-side animation. It loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop : </p> <codeblock id="GUID-8E743CED-5EAF-5717-B098-F4111F143893-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-9" xml:space="preserve">//Integer constant defining the X and Y co-ordinates of the animation
-const TInt KAnimExBasicPositionX = 300;
-const TInt KAnimExBasicPositionY = 100;
-TPoint position = TPoint(KAnimExBasicPositionX, KAnimExBasicPositionY);
-
-//configure the animation to play in an infinite loop
-TAnimationConfig config;
-config.iFlags = TAnimationConfig::ELoop;
-config.iData = -1;
-
-//Creating the basic animation object using the data provider object and the X and Y coordinates defined above
-iBasicAnim = CBasicAnimation::NewL(basicDataProvider,position, iEikonEnv-&gt;WsSession(), Window());        
-
-//Starting the animation using the configuration created above
-iBasicAnim-&gt;Start(config);</codeblock> <p>The animation will be visible only when it is rendered to the window. To do so, implement a private virtual member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class called <codeph>Draw()</codeph> in your client application view class. This function should in-turn call the <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita#GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8/GUID-07FA25D5-3B07-3611-B838-C850C648006C"><apiname>CBasicAnimation::Draw</apiname></xref> function by passing the windows graphics context as an argument. </p> <p>The following code shows how to draw the animation to the window: </p> <codeblock id="GUID-A1314244-8C18-54E9-A403-3D5786CDD6BF-GENID-1-8-1-6-1-1-4-1-3-1-4-1-2-12" xml:space="preserve">void CClientAppView::Draw(const TRect&amp;) const
-{
-    
-    CWindowGc&amp; gc = SystemGc();    
-    if( iBasicAnim )
-        {
-        iBasicAnim-&gt;Draw( gc );    
-        }
-}</codeblock> <p> <i>Note that you should include proper error checks in the given code before using it for production.</i>  </p> <p>When a new frame is required for the animation, the entire window or an area within in the window need to be redrawn using the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref> function. This function will force a client redraw. </p> <p>This code creates a client-side animation which loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop. </p> </conbody><related-links><link href="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita"><linktext>Animation
-                overview</linktext> </link> </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-A97AD7EB-43C2-545A-9756-57D65A4905D9"><title>How to create a basic animation</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The animation framework provides a concrete implementation of the <xref href="GUID-40CEAB8C-2202-3E88-929F-35DA5BD554A4.dita"><apiname>CAnimation</apiname></xref> class called <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita"><apiname>CBasicAnimation</apiname></xref> class to create a basic client-side animation. A basic client-side animation needs data, which can range from a simple file to a complex data structure. The data provider is responsible for handling this data and cater to the needs of the animation whenever required. The <xref href="GUID-467B3417-C343-3637-B3AE-C1971C4C0BE3.dita"><apiname>CICLAnimationDataProvider</apiname></xref> class acts as a data provider and handles the data needed for any type of animation. </p> <p>To create a basic client-side animation, create an object of the <codeph>CICLAnimationDataProvider</codeph> class. Associate the data required for the animation with the data provider object. In the example used below, the data needed for the animation is a simple animated <filepath>GIF</filepath> file. </p> <p>The following code shows how to create a data provider object and associate a <filepath>GIF</filepath> file with it: </p> <codeblock id="GUID-9E8D5A00-0166-51A1-A4B6-8C3600916CA0" xml:space="preserve">//Path to the GIF file
+_LIT(KAnimExGuitarPlayer,"Z:\\resource\\apps\\AnimExample\\GuitarPlayer.gif");
+
+//Creating the data provider object and setting the GIF file using the string literal created above.
+//The iEikonEnv macro is used to open a session with the file system, before setting the GIF file to the data provider. 
+CICLAnimationDataProvider* basicDataProvider = new (ELeave)CICLAnimationDataProvider;
+basicDataProvider-&gt;SetFileL(iEikonEnv-&gt;FsSession(), KAnimExGuitarPlayer());</codeblock> <p>Now that the data provider object is ready with the required data, you can create an object of <codeph>CBasicAnimation</codeph> class. The control and behaviour for the animation is defined using the <xref href="GUID-7B02B3D6-D460-3274-8CE6-839549E6EFD3.dita"><apiname>TAnimationConfig</apiname></xref> class. You should create such an object and provide it to the animation. The behaviour of the animation can be set to any of the following: </p> <ul><li id="GUID-9A2A1585-3D12-5FFE-8F73-069A5848B5FA"><p>Play in a loop: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ELoop</codeph>, and set the number of cycles the animation should complete using the <codeph>iData</codeph> variable. If you want the animation to be played for an indefinite number of cycles, set <codeph>iData</codeph> to <codeph>-1</codeph>. </p> </li> <li id="GUID-F554156C-6481-5E8E-AADA-3DA956BB29B4"><p>Play immediately: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EStartImmediately</codeph>. By default, the animations will wait till the data is loaded completely. </p> </li> <li id="GUID-A5DF5715-5A9F-5EC5-A1D7-7309B2FA2174"><p>Play only specified number of frames: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>ECountFrames</codeph>, and set the number of frames the animation should play using the <codeph>iData</codeph> variable. </p> </li> <li id="GUID-0A7DC95B-0ECC-597E-9008-132C9E67DC95"><p>Stop the animation at the last frame: Set the <codeph>iFlags</codeph> variable of the <codeph>TAnimationConfig</codeph> class to <codeph>EEndOnLastFrame</codeph>. By default, when animations stop they return to the first frame. </p> </li> </ul> <p>In this case, the animation is configured to play in an infinite loop. </p> <p>The following code shows how to create and start a basic client-side animation. It loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop : </p> <codeblock id="GUID-8E743CED-5EAF-5717-B098-F4111F143893" xml:space="preserve">//Integer constant defining the X and Y co-ordinates of the animation
+const TInt KAnimExBasicPositionX = 300;
+const TInt KAnimExBasicPositionY = 100;
+TPoint position = TPoint(KAnimExBasicPositionX, KAnimExBasicPositionY);
+
+//configure the animation to play in an infinite loop
+TAnimationConfig config;
+config.iFlags = TAnimationConfig::ELoop;
+config.iData = -1;
+
+//Creating the basic animation object using the data provider object and the X and Y coordinates defined above
+iBasicAnim = CBasicAnimation::NewL(basicDataProvider,position, iEikonEnv-&gt;WsSession(), Window());        
+
+//Starting the animation using the configuration created above
+iBasicAnim-&gt;Start(config);</codeblock> <p>The animation will be visible only when it is rendered to the window. To do so, implement a private virtual member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> class called <codeph>Draw()</codeph> in your client application view class. This function should in-turn call the <xref href="GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8.dita#GUID-12B29886-1D43-37ED-8DC0-6F43D3E591E8/GUID-07FA25D5-3B07-3611-B838-C850C648006C"><apiname>CBasicAnimation::Draw</apiname></xref> function by passing the windows graphics context as an argument. </p> <p>The following code shows how to draw the animation to the window: </p> <codeblock id="GUID-A1314244-8C18-54E9-A403-3D5786CDD6BF" xml:space="preserve">void CClientAppView::Draw(const TRect&amp;) const
+{
+    
+    CWindowGc&amp; gc = SystemGc();    
+    if( iBasicAnim )
+        {
+        iBasicAnim-&gt;Draw( gc );    
+        }
+}</codeblock> <p> <i>Note that you should include proper error checks in the given code before using it for production.</i>  </p> <p>When a new frame is required for the animation, the entire window or an area within in the window need to be redrawn using the <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-28202F81-52FE-30F5-8B8C-ABED0915822E"><apiname>RWindow::Invalidate()</apiname></xref> function. This function will force a client redraw. </p> <p>This code creates a client-side animation which loads an animated <filepath>GIF</filepath> file and plays it in an infinite loop. </p> </conbody><related-links><link href="GUID-829761B6-ECF7-5E15-A475-AEE357687067.dita"><linktext>Animation
+                overview</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e333278_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e339435_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e10566_href.png has changed
Binary file Symbian3/SDK/Source/GUID-A9E610B7-505C-41C4-9079-BC83C094982E_d0e11841_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e143085_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AA820231-5C46-46A1-A310-ABBA45593B1F_d0e149619_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e184946_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e191542_href.png has changed
--- a/Symbian3/SDK/Source/GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,198 +1,157 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2" xml:lang="en"><title>New
-C++ APIs in Symbian^3</title><shortdesc>The following new C++ APIs are introduced in Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><table id="GUID-2FD9A877-1A75-4ADD-8B9A-B2FA4A9EB7C4-GENID-1-4-1-1-6-1-3-1">
-<tgroup cols="2"><colspec colname="col2" colwidth="1.23*"/><colspec colname="COLSPEC0" colwidth="1.93*"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-
-
-<row>
-<entry><p><b>Beagle Variant Header APIs</b></p></entry>
-<entry><p>Provides variant layer headers for the Beagle platform. For more
-information, see <xref href="GUID-F495E5B1-C34B-315B-A834-8D8B883C0AE4.dita"><apiname>Beagle</apiname></xref>.</p></entry>
-</row>
-
-
-
-
-
-
-
-
-
-<row>
-<entry><p><b>E-mail Widget API</b></p></entry>
-<entry><p>ECom plugin API that Third-party e-mail solutions implement to publish
-e-mail data to Home Screen widget. </p></entry>
-</row>
-<row>
-<entry><p><b>exFAT File System APIs</b></p></entry>
-<entry><p>Provides the "exFAT" file system. For more information, see <xref href="GUID-1AA5A20B-7CDD-3EF1-86B0-0B66AB1CC94D.dita"><apiname>TVolFormatParam_exFAT</apiname></xref>. </p></entry>
-</row>
-<row>
-<entry><p><b>Extended Content Publisher API</b></p></entry>
-<entry><p>Provides interfaces for Home Screen content publisher plug-ins.</p></entry>
-</row>
-<row>
-<entry><p><b>EUser High Level (EUserHL) Library APIs</b></p></entry>
-<entry><p>Provides APIs to improve string handling, object creation and resource
-management. For more information, see <xref href="GUID-D60B55FA-D8C1-559A-9D99-48845BE32A6C.dita">EUser
-High Level Library</xref>.</p></entry>
-</row>
-
-
-
-<row>
-<entry><p><b>Gstreamer Library APIs</b></p></entry>
-<entry><p>Provides a development framework (<xref href="http://www.gstreamer.net/" scope="external">Open source Multimedia Framework</xref>) for creating applications
-like media player, streaming media broadcasters and video editors. For more
-information, see <xref href="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita">Gstreamer
-Overview</xref>.</p></entry>
-</row>
-<row>
-<entry><p><b>Haptics APIs</b></p></entry>
-<entry><p>Provides methods for controlling the haptics feature of the Symbian
-device. Both synchronous and asynchronous versions are provided for playing
-various types of effects. Only synchronous methods are provided for other
-functionalities, such as opening and closing an actuator, reserving and releasing
-the haptics feature, and for getting various state and system information
-from the haptics. For more information, see <xref href="GUID-1D3AB781-058D-353D-A5CB-49F968160BDF.dita"><apiname>CHWRMHaptics</apiname></xref>.</p></entry>
-</row>
-<row>
-<entry><p><b>Home Screen Widget Publisher API</b></p></entry>
-<entry><p>Provides support for publishing logo and description of a widget.</p></entry>
-</row>
-
-<row>
-<entry><p><b>Libxm2 Library APIs</b></p></entry>
-<entry><p>Provides APIs for XML processing, parsing and validation. For more
-information, see <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">Libxml2
-Overview</xref>.</p></entry>
-</row>
-<row>
-<entry><p><b>Location Centre Utility APIs</b></p></entry>
-<entry><p>Provides the application, service and file launching services to
-Location Centre. For more information, see <xref href="GUID-E941B121-6FA5-3E1C-828F-493CF451C400.dita"><apiname>CLcAppLauncher</apiname></xref>.</p></entry>
-</row>
-
-
-
-
-<row>
-<entry align="justify"><p><b>NFC Discovery API</b></p></entry>
-<entry align="justify"><p>Used for subscribing and discovering Tags and NDEF
-messages.</p></entry>
-</row>
-<row>
-<entry align="justify"><p><b>NFC Tag Extension API</b></p></entry>
-<entry align="justify"><p>Provides implementation and access (read/write)
-methods for different types of NFC targets.</p></entry>
-</row>
-<row>
-<entry align="justify"><p><b>NDEF API</b></p></entry>
-<entry align="justify"><p>Used for handling NDEF messages and accessing NDEF
-messages on Tags. </p></entry>
-</row>
-<row>
-<entry align="justify"><p><b>NFC Peer-to-Peer API</b></p></entry>
-<entry align="justify"><p>Provides LLCP (Logical Link Control Protocol) API
-for peer to peer communication between NFC devices.</p></entry>
-</row>
-<row>
-<entry align="justify"><p><b>NFC Content Handler API</b></p></entry>
-<entry align="justify"><p>ECOM plug-in interface for subscribing and receiving
-NDEF messages.</p></entry>
-</row>
-
-
-
-<row>
-<entry><p><b>OpenWF Composition APIs</b></p></entry>
-<entry><p>Supports the open standard for layered graphics composition developed
-by the <xref href="http://www.khronos.org/" scope="external">Khronos Group</xref>.
-For more information, see <xref href="GUID-3B9AC7E9-3133-505F-9C1E-EB4BB4969838.dita">OpenWF
-Composition Interface Overview</xref>.</p></entry>
-</row>
-<row>
-<entry><p><b>OpenWF Support APIs</b></p></entry>
-<entry><p>Provides a Symbian-specific implementation of platform-specific
-elements of the OpenWF-C specification and abstracts communication between
-the OpenWF-C Engine and other Symbian graphics components. For more information,
-see <xref href="GUID-83510B5B-9725-5272-BF51-23A089178DAC.dita">OpenWF Support
-Component Overview</xref>.</p></entry>
-</row>
-<row>
-<entry><p><b>Puny Code Converter APIs</b></p></entry>
-<entry><p>Provides support for converting the Unicode formatted domain names
-to ASCII format that can be resolved by the external DNS server. For more
-information, see <xref href="GUID-B008D6F3-DCC2-3715-AF89-50CF84BA8F88.dita"><apiname>TPunyCodeDndName</apiname></xref>.</p></entry>
-</row>
-
-<row>
-<entry><p><b>SQLite 3 APIs</b></p></entry>
-<entry><p>Provides an implementation of the native SQLite C APIs. For more
-information, see <xref href="GUID-02C9C31A-6563-59E4-BF46-129F4ED95087.dita">SQLite
-3</xref>.</p></entry>
-</row>
-<row>
-
-<entry><p><b>Standard C++ Library (STLport v5) APIs</b></p></entry>
-<entry><p>Provides a Standard C++ environment with IOStream and STL (Standard
-Template Library) libraries that enable you to develop or port Standard C++
-applications or libraries quickly and easily onto the Symbian platform. For
-more information, see <xref href="GUID-2C5B58F2-6BD2-5C2B-8E1B-CFB3D7EB6ED9.dita">Standard
-C++ Library (STLport v5)</xref>.</p></entry>
-</row>
-
-
-
-
-<row>
-<entry><p><b>System State Manager Mapper Utility APIs</b></p></entry>
-<entry><p>Provides a utility class for mapping UIDs, getting feature and system
-states and <codeph>cenrep</codeph> values. For more information, see <xref href="GUID-E4676CCC-5066-3CC9-A6BB-594C45C7D6F7.dita"><apiname>CSsmMapperUtility</apiname></xref>.</p></entry>
-</row>
-
-
-
-
-
-<row>
-<entry><p><b>User Prompt Service APIs</b></p></entry>
-<entry><p>Allows device creators to choose whether security decisions (for
-example, allowing an application to make a network connection) are processed
-silently or require the user to be prompted. For more information, see <xref href="GUID-5329AE68-39E0-55E7-9878-2D8FF9E29B21.dita">User Prompt Service</xref>.</p></entry>
-</row>
-
-<row>
-<entry><p><b>XML DOM Engine and XPath APIs</b></p></entry>
-<entry><p>Implements the standard DOM API (tree-based XML parsing and editing),
-including XPath and serialization extensions. For more information, see <xref href="GUID-05A3E75B-25F9-54AC-8AF8-3E97F832E626.dita">XML DOM Engine</xref>.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table></conbody><related-links>
-<linklist>
-<link href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita"><linktext>Introduction
-to Symbian^3</linktext></link>
-<link href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita"><linktext>What's new
-in Symbian^3</linktext></link>
-<link href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita"><linktext>Porting applications
-to Symbian^3</linktext></link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AB69D251-7635-4325-BBCE-92F7AFC86DC2" xml:lang="en"><title>New C++ APIs in Symbian^3</title><shortdesc>The following new C++ APIs are introduced in Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><table id="GUID-2FD9A877-1A75-4ADD-8B9A-B2FA4A9EB7C4-GENID-1-4-1-1-6-1-3-1">
+<tgroup cols="2"><colspec colname="col2" colwidth="1.23*"/><colspec colname="COLSPEC0" colwidth="1.93*"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+
+
+<row>
+<entry><p><b>Beagle Variant Header APIs</b></p></entry>
+<entry><p>Provides variant layer headers for the Beagle platform.
+For more information on Beagle plaform, see <xref format="html" href="http://www.beagleboard.org/" scope="external">http://beagleboard.org/</xref>.</p></entry>
+</row>
+
+
+
+
+
+
+
+
+
+<row>
+<entry><p><b>E-mail Widget API</b></p></entry>
+<entry><p>ECom plugin API that Third-party e-mail solutions implement
+to publish e-mail data to Home Screen widget. </p></entry>
+</row>
+<row>
+<entry><p><b>exFAT File System APIs</b></p></entry>
+<entry><p>Provides the "exFAT" file system. For more information,
+see <xref href="GUID-5538A935-C330-3765-AC62-DB92D36D59EB.dita#GUID-5538A935-C330-3765-AC62-DB92D36D59EB/GUID-C816B4EE-F259-316A-8818-3CBD7A9B34B8"><apiname>FileSystem_EXFAT::TVolFormatParam_exFAT</apiname></xref>. </p></entry>
+</row>
+<row>
+<entry><p><b>Extended Content Publisher API</b></p></entry>
+<entry><p>Provides interfaces for Home Screen content publisher plug-ins.</p></entry>
+</row>
+<row>
+<entry><p><b>EUser High Level (EUserHL) Library APIs</b></p></entry>
+<entry><p>Provides APIs to improve string handling, object creation
+and resource management. For more information, see <xref href="GUID-D60B55FA-D8C1-559A-9D99-48845BE32A6C.dita">EUser High Level
+Library</xref>.</p></entry>
+</row>
+
+
+
+<row>
+<entry><p><b>Haptics APIs</b></p></entry>
+<entry><p>Provides methods for controlling the haptics feature of
+the Symbian device. Both synchronous and asynchronous versions are
+provided for playing various types of effects. Only synchronous methods
+are provided for other functionalities, such as opening and closing
+an actuator, reserving and releasing the haptics feature, and for
+getting various state and system information from the haptics. For
+more information, see <xref href="GUID-1D3AB781-058D-353D-A5CB-49F968160BDF.dita"><apiname>CHWRMHaptics</apiname></xref>.</p></entry>
+</row>
+<row>
+<entry><p><b>Home Screen Widget Publisher API</b></p></entry>
+<entry><p>Provides support for publishing logo and description of
+a widget.</p></entry>
+</row>
+
+<row>
+<entry><p><b>Libxm2 Library APIs</b></p></entry>
+<entry><p>Provides APIs for XML processing, parsing and validation.
+For more information, see <xref href="GUID-33D50AB9-AFA8-521F-8A85-031C24EA7D25.dita">Libxml2 Overview</xref>.</p></entry>
+</row>
+
+
+
+
+
+
+<row>
+<entry><p><b>OpenWF Composition APIs</b></p></entry>
+<entry><p>Supports the open standard for layered graphics composition
+developed by the <xref href="http://www.khronos.org/" scope="external">Khronos Group</xref>. For more information, see <xref href="GUID-3B9AC7E9-3133-505F-9C1E-EB4BB4969838.dita">OpenWF Composition
+Interface Overview</xref>.</p></entry>
+</row>
+<row>
+<entry><p><b>OpenWF Support APIs</b></p></entry>
+<entry><p>Provides a Symbian-specific implementation of platform-specific
+elements of the OpenWF-C specification and abstracts communication
+between the OpenWF-C Engine and other Symbian graphics components.
+For more information, see <xref href="GUID-83510B5B-9725-5272-BF51-23A089178DAC.dita">OpenWF Support Component
+Overview</xref>.</p></entry>
+</row>
+<row>
+<entry><p><b>Puny Code Converter APIs</b></p></entry>
+<entry><p>Provides support for converting the Unicode formatted domain
+names to ASCII format that can be resolved by the external DNS server.
+For more information, see <xref href="GUID-B008D6F3-DCC2-3715-AF89-50CF84BA8F88.dita"><apiname>TPunyCodeDndName</apiname></xref>.</p></entry>
+</row>
+
+<row>
+<entry><p><b>SQLite 3 APIs</b></p></entry>
+<entry><p>Provides an implementation of the native SQLite C APIs.
+For more information, see <xref href="GUID-02C9C31A-6563-59E4-BF46-129F4ED95087.dita">SQLite 3</xref>.</p></entry>
+</row>
+<row>
+<entry><p><b>Standard C++ Library (STLport v5) APIs</b></p></entry>
+<entry><p>Provides a Standard C++ environment with IOStream and STL
+(Standard Template Library) libraries that enable you to develop or
+port Standard C++ applications or libraries quickly and easily onto
+the Symbian platform. For more information, see <xref href="GUID-2C5B58F2-6BD2-5C2B-8E1B-CFB3D7EB6ED9.dita">Standard C++ Library
+(STLport v5)</xref>.</p><note type="note">STLport v4 is also supported
+on Symbian^3. For more information STLport v4, see <xref href="GUID-C5103B39-6F67-47E3-938A-32933E75F98E.dita">C++ Standard Library
+(STLport v4)</xref>.</note></entry>
+</row>
+
+
+
+
+
+
+
+
+
+<row>
+<entry><p><b>User Prompt Service APIs</b></p></entry>
+<entry><p>Allows device creators to choose whether security decisions
+(for example, allowing an application to make a network connection)
+are processed silently or require the user to be prompted. For more
+information, see <xref href="GUID-5329AE68-39E0-55E7-9878-2D8FF9E29B21.dita">User Prompt Service</xref>.</p></entry>
+</row>
+
+<row>
+<entry><p><b>XML DOM Engine and XPath APIs</b></p></entry>
+<entry><p>Implements the standard DOM API (tree-based XML parsing
+and editing), including XPath and serialization extensions. For more
+information, see <xref href="GUID-05A3E75B-25F9-54AC-8AF8-3E97F832E626.dita">XML DOM Engine</xref>.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody><related-links>
+<linklist>
+<link href="GUID-13987218-9427-455E-AC77-ADE6B0E9CD7E.dita"><linktext>Introduction
+to Symbian^3</linktext></link>
+<link href="GUID-6F1ED7D0-5F41-4587-89AA-8DDE7AEC916F.dita"><linktext>What's
+new in Symbian^3</linktext></link>
+<link href="GUID-021E8B9C-4A1B-4C6D-B69E-4337A766C39A.dita"><linktext>Porting
+applications to Symbian^3</linktext></link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,87 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41" xml:lang="en"><title>Capturing
-a video clip</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To record video data to a file, descriptor, or an URL, use the video
-recorder utility of the Multimedia Framework (MMF) to develop your application.
-To make use of the onboard camera to capture a video clip, the application
-needs to repeat the steps described in the illustration below.</p>
-<fig id="GUID-FEDF24E9-1171-4814-B3C9-21B4E37003BB"><title>The steps required to capture a video clip</title><image href="GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e294116_href.png"/></fig>
-<p>Important implementation considerations include:</p>
-<ul>
-<li><p>To open a file for recording the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html" format="application/java-archive"><codeph>CVideoRecorderUtility</codeph></xref> class requires the MMF Controller Framework API to specify controller and
-format UIDs.</p></li>
-<li><p>If you need to use the display of the device as a viewfinder
-for your video application, request viewfinder frames using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html" format="application/java-archive"><codeph>CCamera</codeph></xref> class, and draw them yourself. For more information, see step
-3 in <xref href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita#GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE/GUID-A7ED7A90-1432-4905-A0A5-0CC725997127"/>.</p>
-</li>
-<li><p>The settings you can use in your application depend on what
-the camera hardware on the device supports.</p></li>
-</ul>
-<section id="GUID-0C91A376-92FB-4C5F-8DCF-68A24D01CB9C"><title>To capture a
-video clip</title>
-<p>Use the methods of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html" format="application/java-archive"><codeph>CVideoRecorderUtility</codeph></xref> class to construct your application.</p>
-<ol>
-<li id="GUID-77A80BE7-A452-42C4-A815-712402597071"><p>Initialize
-the video recorder.</p>
-<ul>
-<li><p>Create a video recorder object using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aNewL%28MVideoRecorderUtilityObserver%20%26amp%3b%2cTInt%2cTMdaPriorityPreference%29" format="application/java-archive"><codeph>CVideoRecorderUtility::NewL</codeph></xref> method.</p>
-</li>
-<li><p>Resolve the supported video format and retrieve a list of
-controllers using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CMMFControllerPluginSelectionParametersClass.html" format="application/java-archive"><codeph>CMMFControllerPluginSelectionParameters</codeph></xref> and <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CMMFFormatSelectionParametersClass.html" format="application/java-archive"><codeph>CMMFFormatSelectionParameters</codeph></xref> classes, and the respective type definitions <codeph>RMMFControllerImplInfoArray</codeph> and <codeph>RMMFFormatImplInfoArray</codeph>. </p></li>
-<li><p>Open a file, descriptor or an URL to store the video clip
-in using the respective <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aOpenFileL%28const%20TDesC%20%26amp%3b%2cTInt%2cTUid%2cTUid%2cconst%20TDesC8%20%26amp%3b%2cTFourCC%29" format="application/java-archive"><codeph>CVideoRecorderUtility::OpenFileL</codeph></xref>, <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aOpenDesL%28TDes8%20%26amp%3b%2cTInt%2cTUid%2cTUid%2cconst%20TDesC8%20%26amp%3b%2cTFourCC%29" format="application/java-archive"><codeph>CVideoRecorderUtility::OpenDesL</codeph></xref>, or <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aOpenUrlL%28const%20TDesC%20%26amp%3b%2cTInt%2cTInt%2cTUid%2cTUid%2cconst%20TDesC8%20%26amp%3b%2cTFourCC%29" format="application/java-archive"><codeph>CVideoRecorderUtility::OpenUrlL</codeph></xref> method.</p>
-</li>
-<li><p>Set the maximum video clip size using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aSetMaxClipSizeL%28TInt%29" format="application/java-archive"><codeph>CVideoRecorderUtility::SetMaxClipSizeL()</codeph></xref> method.</p>
-</li>
-<li><p>Prepare the record controller using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aPrepare%28%29" format="application/java-archive"><codeph>CVideoRecorderUtility::Prepare()</codeph></xref> method. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/MVideoRecorderUtilityObserverClass.html#%3a%3aMVideoRecorderUtilityObserver%3a%3aMvruoPrepareComplete%28TInt%29" format="application/java-archive"><codeph>MVideoRecorderUtilityObserver::MvruoPrepareComplete</codeph></xref> is
-called upon completion.</p></li>
-</ul>
-</li>
-<li id="GUID-8A46469A-E0BE-4789-ADEE-C900FF7CB331"><p>Configure
-the audio and video settings.</p><p>You can check and set, for example,
-the recording priority, audio track, video frame size and frame rate, audio
-and video codecs and bit rates, and recording gain of the video clip. For
-more information on the options, see the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html" format="application/java-archive"><codeph>CVideoRecorderUtility</codeph></xref> class.</p></li>
-<li id="GUID-CB57B0CC-14AD-464F-82FF-9D80CD369CD5"><p>Capture the
-video clip.</p>
-<ul>
-<li><p>Start recording a video using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aRecord%28%29" format="application/java-archive"><codeph>CVideoRecorderUtility::Record()</codeph></xref> method.</p></li>
-<li><p>Pause recording using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aPauseL%28%29" format="application/java-archive"><codeph>CVideoRecorderUtility::PauseL()</codeph></xref> method.</p></li>
-<li><p>Stop recording using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aStop%28%29" format="application/java-archive"><codeph>CVideoRecorderUtility::Stop()</codeph></xref> method.</p></li>
-</ul>
-</li>
-<li id="GUID-6CB8476D-CC81-4776-B42F-F6AF3EDEBE76"><p>To exit the
-application or to switch it to the background, close audio and video controllers
-using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoRecorderUtilityClass.html#%3a%3aCVideoRecorderUtility%3a%3aClose%28%29" format="application/java-archive"><codeph>CVideoRecorderUtility::Close()</codeph></xref> method.</p>
-</li>
-<li id="GUID-1E55A71D-1A7F-4734-9DC5-713DA776F3C6"><p>Include <codeph>VideoRecorder.h</codeph> and <codeph>mmfcontrollerpluginresolver.h</codeph> header files in the appropriate class files.</p></li>
-<li id="GUID-CA9BF127-499A-4EFE-9E63-74032194200F"><p>Make sure
-you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
-set for your application. You need at least the <codeph>UserEnvironment</codeph> capability.
-If you want to set the recording priority for the video and audio device,
-you need the <codeph>MultimediaDD</codeph> capability.</p></li>
-<li id="GUID-78DDD170-958F-4FD2-87ED-A550CCB4D7E3"><p>Make sure <codeph>mediaclientvideo.lib</codeph> and <codeph>mmfcontrollerframework.lib</codeph> are accessible to your linker when compiling your application by including
-it in your <codeph>mmp</codeph> file or by editing the project properties
-in your IDE, depending on your build environment.</p></li>
-</ol>
-</section>
-<section id="GUID-AA5B55BE-12E2-4CDF-9FA6-717669E07095"><title>Additional information
-on capturing a video</title>
-<p>For a reference example, see the <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551-GENID-1-8-1-18-1-1-4-1-5-1.dita">Camera
-Example: Capturing and controlling the images using Camera</xref>.</p>
-<p>For more information on <codeph>CVideoRecorderUtility</codeph>, see <xref href="http://developer.symbian.org/wiki/index.php/File:Quick_Recipes_Symbian_multimedia_recipes.pdf" scope="external">Multimedia
-recipes</xref> at the Symbian Foundation.</p>
-<p>For more information on <codeph>CVideoRecorderUtility</codeph> see the <xref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita">Recording Video Data</xref> tutorial
-in the Video Client library.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41" xml:lang="en"><title>Capturing
+a Video Clip</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To record video data to a file, descriptor, or an URL, use the video
+recorder utility of the Multimedia Framework (MMF) to develop your application.
+To make use of the onboard camera to capture a video clip, the application
+needs to repeat the steps described in the illustration below.</p>
+<fig id="GUID-FEDF24E9-1171-4814-B3C9-21B4E37003BB"><title>The steps required to capture a video clip</title><image href="GUID-141D8786-9987-4E5E-9395-484C87B323FB_d0e290621_href.png"/></fig>
+<p>Important implementation considerations include:</p>
+<ul>
+<li><p>Make sure you include the <codeph>VideoRecorder.h</codeph> and <codeph>mmfcontrollerpluginresolver.h</codeph> header
+files in the appropriate class files.</p></li>
+<li><p>Make sure you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
+set for your application. You need at least the <codeph>UserEnvironment</codeph> capability.
+If you want to set the recording priority for the video and audio device,
+you need the <codeph>MultimediaDD</codeph> capability.</p></li>
+<li><p>Make sure <codeph>mediaclientvideo.lib</codeph> and <codeph>mmfcontrollerframework.lib</codeph> are
+accessible to your linker when compiling your application by including it
+in your <codeph>mmp</codeph> file or by editing the project properties in
+your IDE, depending on your build environment.</p></li>
+<li><p>To open a file for recording the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref> class
+requires the MMF Controller Framework API to specify controller and format
+UIDs.</p></li>
+<li><p>If you need to use the display of the device as a viewfinder
+for your video application, request viewfinder frames using the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> class,
+and draw them yourself. For more information, see step 3 in <xref href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita#GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE/GUID-A7ED7A90-1432-4905-A0A5-0CC725997127">To capture still images on a mobile device </xref>.</p></li>
+<li><p>The settings you can use in your application depend on what
+the camera hardware on the device supports.</p></li>
+</ul>
+<section id="GUID-0C91A376-92FB-4C5F-8DCF-68A24D01CB9C"><title>To capture a
+video clip</title>
+<p>Use the methods of the <codeph>CVideoRecorderUtility</codeph> class
+to construct your application.</p>
+<ol>
+<li id="GUID-77A80BE7-A452-42C4-A815-712402597071"><p>Initialize
+the video recorder.</p>
+<ul>
+<li><p>Create a video recorder object using the <codeph>CVideoRecorderUtility::NewL</codeph> method.</p>
+</li>
+<li><p>Resolve the supported video format and retrieve a list of
+controllers using the <codeph>CMMFControllerPluginSelectionParameters</codeph> and <codeph>CMMFFormatSelectionParameters</codeph> classes,
+and the respective type definitions <codeph>RMMFControllerImplInfoArray</codeph> and <codeph>RMMFFormatImplInfoArray</codeph>. </p>
+</li>
+<li><p>Open a file, descriptor or an URL to store the video clip
+in using the respective <codeph>CVideoRecorderUtility::OpenFileL</codeph>, <codeph>CVideoRecorderUtility::OpenDesL</codeph>,
+or <codeph>CVideoRecorderUtility::OpenUrlL</codeph> method.</p></li>
+<li><p>Set the maximum video clip size using the <codeph>CVideoRecorderUtility::SetMaxClipSizeL()</codeph> method.</p>
+</li>
+<li><p>Prepare the record controller using the <codeph>CVideoRecorderUtility::Prepare()</codeph> method. <codeph>MVideoRecorderUtilityObserver::MvruoPrepareComplete</codeph> is called upon completion.</p></li>
+</ul>
+</li>
+<li id="GUID-8A46469A-E0BE-4789-ADEE-C900FF7CB331"><p>Configure
+the audio and video settings.</p><p>You can check and set, for example,
+the recording priority, audio track, video frame size and frame rate, audio
+and video codecs and bit rates, and recording gain of the video clip. For
+more information on the options, see the <codeph>CVideoRecorderUtility</codeph> class.</p>
+</li>
+<li id="GUID-CB57B0CC-14AD-464F-82FF-9D80CD369CD5"><p>Capture the
+video clip.</p>
+<ul>
+<li><p>Start recording a video using the <codeph>CVideoRecorderUtility::Record()</codeph> method.</p>
+</li>
+<li><p>Pause recording using the <codeph>CVideoRecorderUtility::PauseL()</codeph> method.</p>
+</li>
+<li><p>Stop recording using the <codeph>CVideoRecorderUtility::Stop()</codeph> method.</p>
+</li>
+</ul>
+</li>
+<li id="GUID-6CB8476D-CC81-4776-B42F-F6AF3EDEBE76"><p>To exit the
+application or to switch it to the background, close audio and video controllers
+using the <codeph>CVideoRecorderUtility::Close()</codeph> method.</p></li>
+</ol>
+</section>
+<section id="GUID-AA5B55BE-12E2-4CDF-9FA6-717669E07095"><title>Additional information
+on capturing a video</title>
+<p>For a reference example, see the <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">Camera
+Example: Capturing and controlling the images using Camera</xref>.</p>
+<p>For more information on <codeph>CVideoRecorderUtility</codeph>, see:</p>
+<ul>
+<li><p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video
+Client Overview</xref></p></li>
+<li><p><xref href="http://developer.symbian.org/wiki/index.php/File:Quick_Recipes_Symbian_multimedia_recipes.pdf" scope="external">Multimedia
+recipes</xref> at the Symbian Foundation</p></li>
+</ul>
+<p>For information on using encoded H264 video frames, see <xref href="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita">Using
+the Encoded H264 Video Frames to Capture Video</xref>.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,38 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6" xml:lang="en"><title>Recognizer:
-Data Recognizer example</title><shortdesc>Shows how to implement a data recogniser. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-F17896C9-F714-5771-81B7-4AC7A02C0139"><title>Purpose</title> <p>This
-example shows how to implement a data recogniser. For more information about
-this example, see the <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Data
-Recogniser tutorial</xref>. </p> </section>
-<section id="GUID-BB99D1FC-1993-51A9-858B-A66ACB787E5C"><title>Download</title><p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7194aafc-2cbf-4587-a306-6f493bbe1f61.zip" scope="external">ExampleRecognizer.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7194aafc-2cbf-4587-a306-6f493bbe1f61.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref></p><p><xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref></p></section>
-<section id="GUID-EBFC36A2-F523-5D8C-8C7D-73B25857ADD9"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-F7656FA4-C77E-55F7-880F-11EDB848A8F3"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-22006F8A-D5D7-56E2-92E2-3FDD444338B4"><p>For the emulator, the
-example builds an dll called <filepath>examplerecognizer.dll</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita"><linktext>Data Recognizer
-Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-AB9D7D52-BCF0-5E89-8A99-A6590FAD7AF6" xml:lang="en"><title>Recognizer: Data Recognizer example</title><shortdesc>Shows how to implement a data recogniser. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-F17896C9-F714-5771-81B7-4AC7A02C0139"><title>Purpose</title> <p>This example shows how to implement a data recogniser. For more
+information about this example, see the <xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Data Recogniser tutorial</xref>. </p> </section>
+<section id="GUID-BB99D1FC-1993-51A9-858B-A66ACB787E5C"><title>Download</title><p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7194aafc-2cbf-4587-a306-6f493bbe1f61.zip" scope="external">ExampleRecognizer.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7194aafc-2cbf-4587-a306-6f493bbe1f61.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-58F6DC14-54F2-479D-B422-830C4A8D47D8"><title>Class Summary</title><ul>
+<li><p><xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref></p></li>
+<li><p><xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-EBFC36A2-F523-5D8C-8C7D-73B25857ADD9"><title>Building
+and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-F7656FA4-C77E-55F7-880F-11EDB848A8F3"><p>You can build
+the example from your IDE or the command line. </p> <p>If you use
+an IDE, import the <filepath>bld.inf</filepath> file of the example
+into your IDE, and use the build command of the IDE. </p> <p>If you
+use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the
+example with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake bldfiles</userinput> </p> <p><userinput>abld
+build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to
+use abld</xref> describe how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-22006F8A-D5D7-56E2-92E2-3FDD444338B4"><p>For the emulator,
+the example builds an dll called <filepath>examplerecognizer.dll</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita"><linktext>Data
+Recognizer Tutorial</linktext></link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D"><title>Position data and info classes</title><shortdesc>This document describes the basic and extended classes that hold position data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Location Acquisition API defines a set of position data classes. Some of these classes store the co-ordinates of a location fix and others store information about course and positioning satellites. The API also defines position info classes that wrap the position data classes. These classes are used to pass data across the Location Acquisition API. Figure 1 illustrates the position data and position info classes with some of the most important methods. </p> <fig id="GUID-F94FF72F-D6F3-5913-BAEF-CF6B682A27D6"><title>
-          Figure 1 Position data and info classes 
-        </title> <image href="GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e270046_href.png" placement="inline"/></fig> <section><title>The position data classes</title> <ul><li id="GUID-4C4B6DB7-B417-5505-8F02-B27102922E8D"><p> <xref href="GUID-DDCBA817-9D88-3332-ABD3-1DDC6E397851.dita"><apiname>TCoordinate</apiname></xref> is the base class for all the position data classes. It holds latitude, longitude and altitude data. All positioning modules must provide latitude and longitude information, but not all modules are guaranteed to provide altitude information. </p> </li> <li id="GUID-B8698831-583A-5527-A5F4-2FCB264CA97F"><p> <xref href="GUID-17A40F7C-E4CD-3F82-832A-AA8142973053.dita"><apiname>TLocality</apiname></xref> adds accuracy information to co-ordinates. </p> </li> <li id="GUID-87EC3A5C-FE30-5D79-9025-64153337CF85"><p> <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> adds the time at which the location fix was obtained and also allows the average speed between two positions to be calculated. </p> </li> </ul> <p>There are two additional position data classes that are not part of this position data class inheritance hierarchy. </p> <ul><li id="GUID-CCE8AC41-C64D-5CB3-8297-4CB5E319080B"><p> <xref href="GUID-E66165C3-6391-39CF-BF88-99A61D69E6FA.dita"><apiname>TCourse</apiname></xref> holds bearing and current speed data. </p> </li> <li id="GUID-A214CDDF-8823-5F61-87C8-0537809A5F8F"><p> <xref href="GUID-5440B1A0-98B0-3689-AC0B-27D5A35BFDA1.dita"><apiname>TSatelliteData</apiname></xref> holds information on one of the satellites used to obtain the location fix. </p> </li> </ul> <p>Note that it is a position info object and not a position data object that is passed across the Location Acquisition API. Client applications extract the position data object from the wrapper position info object. </p> <p>See <xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref> for a description of how the location data is represented inside the position data classes. </p> </section> <section><title>The position info classes</title> <p>Client applications use three position info classes that wrap the position data classes: </p> <ul><li id="GUID-E5BF9465-73F0-5F88-9D26-F74061DC14EB"><p> <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> wraps a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> class </p> </li> <li id="GUID-C65D7549-456B-5AE1-B3E4-5ED7A0F1888A"><p> <xref href="GUID-B4CD3637-0FC6-38B8-AE89-C03EEC83C50D.dita"><apiname>TPositionCourseInfo</apiname></xref> wraps a <xref href="GUID-E66165C3-6391-39CF-BF88-99A61D69E6FA.dita"><apiname>TCourse</apiname></xref> class </p> </li> <li id="GUID-B333B4A1-3D91-5C4A-9711-836769CB4B59"><p> <xref href="GUID-54AE0674-C49D-3329-8B77-3A58EFFC03D7.dita"><apiname>TPositionSatelliteInfo</apiname></xref> wraps a <xref href="GUID-5440B1A0-98B0-3689-AC0B-27D5A35BFDA1.dita"><apiname>TSatelliteData</apiname></xref> class </p> </li> </ul> <p>To get location information, a reference to an object of a class derived from <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita"><apiname>TPositionInfoBase</apiname></xref> is passed in a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> or <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref>. The position info class hierarchy allows simple location information (<codeph>TPositionInfo</codeph>), course information (<codeph>TCourse</codeph> Info) or satellite information (<codeph>TSatelliteInfo</codeph>) to be obtained via the same calls to the Location Acquisition API. </p> <p><b>HPositionGenericInfo</b> </p> <p> <xref href="GUID-C0D87E5C-315E-37E6-829E-73F93E83748E.dita"><apiname>HPositionGenericInfo</apiname></xref> is an extended position info class that allocates memory on the heap. Applications can use the class to retrieve additional position information from positioning hardware that can provide it (such as NMEA strings provided by Bluetooth GPS hardware). </p> <p> <codeph>HPositionGenericInfo</codeph> is only supported by the Location Server <codeph>eposserver.exe</codeph>. It can only be used by applications that link with <filepath>lbs.lib</filepath>. Not all PSYs support this class. </p> </section> <section><title>See also</title> <p><xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D"><title>Position data and info classes</title><shortdesc>This document describes the basic and extended classes that hold position data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Location Acquisition API defines a set of position data classes. Some of these classes store the co-ordinates of a location fix and others store information about course and positioning satellites. The API also defines position info classes that wrap the position data classes. These classes are used to pass data across the Location Acquisition API. Figure 1 illustrates the position data and position info classes with some of the most important methods. </p> <fig id="GUID-F94FF72F-D6F3-5913-BAEF-CF6B682A27D6"><title>
+          Figure 1 Position data and info classes 
+        </title> <image href="GUID-3B2957D0-4D1A-5289-BE2A-AC8CD34A54E6_d0e266338_href.png" placement="inline"/></fig> <section><title>The position data classes</title> <ul><li id="GUID-4C4B6DB7-B417-5505-8F02-B27102922E8D"><p> <xref href="GUID-DDCBA817-9D88-3332-ABD3-1DDC6E397851.dita"><apiname>TCoordinate</apiname></xref> is the base class for all the position data classes. It holds latitude, longitude and altitude data. All positioning modules must provide latitude and longitude information, but not all modules are guaranteed to provide altitude information. </p> </li> <li id="GUID-B8698831-583A-5527-A5F4-2FCB264CA97F"><p> <xref href="GUID-17A40F7C-E4CD-3F82-832A-AA8142973053.dita"><apiname>TLocality</apiname></xref> adds accuracy information to co-ordinates. </p> </li> <li id="GUID-87EC3A5C-FE30-5D79-9025-64153337CF85"><p> <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> adds the time at which the location fix was obtained and also allows the average speed between two positions to be calculated. </p> </li> </ul> <p>There are two additional position data classes that are not part of this position data class inheritance hierarchy. </p> <ul><li id="GUID-CCE8AC41-C64D-5CB3-8297-4CB5E319080B"><p> <xref href="GUID-E66165C3-6391-39CF-BF88-99A61D69E6FA.dita"><apiname>TCourse</apiname></xref> holds bearing and current speed data. </p> </li> <li id="GUID-A214CDDF-8823-5F61-87C8-0537809A5F8F"><p> <xref href="GUID-5440B1A0-98B0-3689-AC0B-27D5A35BFDA1.dita"><apiname>TSatelliteData</apiname></xref> holds information on one of the satellites used to obtain the location fix. </p> </li> </ul> <p>Note that it is a position info object and not a position data object that is passed across the Location Acquisition API. Client applications extract the position data object from the wrapper position info object. </p> <p>See <xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref> for a description of how the location data is represented inside the position data classes. </p> </section> <section><title>The position info classes</title> <p>Client applications use three position info classes that wrap the position data classes: </p> <ul><li id="GUID-E5BF9465-73F0-5F88-9D26-F74061DC14EB"><p> <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> wraps a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> class </p> </li> <li id="GUID-C65D7549-456B-5AE1-B3E4-5ED7A0F1888A"><p> <xref href="GUID-B4CD3637-0FC6-38B8-AE89-C03EEC83C50D.dita"><apiname>TPositionCourseInfo</apiname></xref> wraps a <xref href="GUID-E66165C3-6391-39CF-BF88-99A61D69E6FA.dita"><apiname>TCourse</apiname></xref> class </p> </li> <li id="GUID-B333B4A1-3D91-5C4A-9711-836769CB4B59"><p> <xref href="GUID-54AE0674-C49D-3329-8B77-3A58EFFC03D7.dita"><apiname>TPositionSatelliteInfo</apiname></xref> wraps a <xref href="GUID-5440B1A0-98B0-3689-AC0B-27D5A35BFDA1.dita"><apiname>TSatelliteData</apiname></xref> class </p> </li> </ul> <p>To get location information, a reference to an object of a class derived from <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita"><apiname>TPositionInfoBase</apiname></xref> is passed in a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> or <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref>. The position info class hierarchy allows simple location information (<codeph>TPositionInfo</codeph>), course information (<codeph>TCourse</codeph> Info) or satellite information (<codeph>TSatelliteInfo</codeph>) to be obtained via the same calls to the Location Acquisition API. </p> <p><b>HPositionGenericInfo</b> </p> <p> <xref href="GUID-C0D87E5C-315E-37E6-829E-73F93E83748E.dita"><apiname>HPositionGenericInfo</apiname></xref> is an extended position info class that allocates memory on the heap. Applications can use the class to retrieve additional position information from positioning hardware that can provide it (such as NMEA strings provided by Bluetooth GPS hardware). </p> <p> <codeph>HPositionGenericInfo</codeph> is only supported by the Location Server <codeph>eposserver.exe</codeph>. It can only be used by applications that link with <filepath>lbs.lib</filepath>. Not all PSYs support this class. </p> </section> <section><title>See also</title> <p><xref href="GUID-AD7D9D39-6FF0-5811-9708-98538271BA0D.dita">Position data</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ABD741AE-7F66-564C-895C-6E4682308CEA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ABD741AE-7F66-564C-895C-6E4682308CEA" xml:lang="en"><title>Example Code</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The list of example applications that demonstrates the use of the Imaging Frameworks is shown below: </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ABE77283-EED8-5A33-B574-3B771EF11086.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,156 +1,156 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ABE77283-EED8-5A33-B574-3B771EF11086" xml:lang="en"><title>How
-to Use ULogger with Comms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This tutorial summarises one approach for enabling, retrieving and post-processing
-the <xref href="GUID-B25AB5A9-52A6-50C2-8656-F8ADEE260FC9.dita">ULogger</xref> logs
-for Comms. ULogger is part of the Unified Trace framework which replaces other
-logging mechanisms for Symbian platform including Flogger and
-CDU. </p>
-<p>The Unified Trace framework has greater flexibility and speed compared
-to Flogger and CDU. </p>
-<section id="GUID-6FF10945-4E25-4F91-BDA4-CC363EEC2480"><title>Introduction</title> <p>The Comms logging which has been migrated
-to ULogger is as follows: </p> <ul>
-<li id="GUID-677DDC92-E655-50AD-85A3-7B6817F9E12A"><p>Comms Framework Node
-messages - creation and destruction of Nodes and messages between Nodes. </p> </li>
-<li id="GUID-E496D531-2CF2-5042-8820-BC8CE75CE4C6"><p>Mesh Machine messages </p> </li>
-<li id="GUID-E4892E5F-845B-5672-AB90-944A8B7DAEBE"><p>data to support the
-SVG generation </p> </li>
-</ul> <p>This logging replaces some of what was logged through the "<codeph>LOG
-CFNode *</codeph> ", "<codeph>LOG Mesh *</codeph> " and "<codeph>LOG ESock
-*</codeph> " tags. In the case of the <codeph>ESock</codeph> tag, the logging
-which is written to ULogger is also written to CDU. </p> <p>This usage description
-assumes that the development tools already include ULogger support. </p>  </section>
-<section id="GUID-BB759C19-49DA-48EA-8550-11B897A2E768"><title>Procedure - Using ULogger</title> <p><b>Requirements</b></p> <p> 
-          For this tutorial, the code under observation must be run from <xref href="GUID-D90C86C6-B85D-5941-9919-3725A9FFD548.dita">EShell</xref>.          </p> <p> 
-          The following binaries must include logging:          </p> <ul>
-<li><p>                 <filepath>nodemessages.dll</filepath>            
-   </p> </li>
-<li><p>                 <filepath>meshmachine.dll</filepath>             
-  </p> </li>
-<li><p>                 <filepath>commsfw.dll</filepath>                </p> </li>
-<li><p>                 <filepath>serverden.dll</filepath>                </p> </li>
-<li><p>                 <filepath>esocksvr.dll</filepath>                </p> </li>
-</ul><p> To enable logging for a binary either use the UDEB version of the
- binary or rebuild the binary with the <codeph>SYMBIAN_TRACE_ENABLED</codeph> macro
-defined. </p></section>
-<section id="GUID-72A353DC-CFD8-482E-B2E4-9CCCCD1C9BBA"><title>Steps</title> <ol>
-<li id="GUID-E3B09A4E-C87A-45F9-8DE6-653BA1A2E426"><p>                 <b>Start
-Eshell</b> - ULogger only supports asynchronous                 logging, so
-from EShell start a second instance of EShell.                </p> <codeblock xml:space="preserve">start eshell</codeblock> <p> 
-               This allows ULogger to be stopped even if the code under  
-              observation does not exit normally.                </p> </li>
-<li id="GUID-8A912D95-8D99-4D2A-9A5E-C51132924DAC"><p>                 <b>Set
-the ULogger Filters</b> - To allow Comms logging                 enable the
-following filters:                </p><table id="GUID-56D45DFD-FD08-4B16-AB72-E5DD51C888E1">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Level</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry> <p>                         194                        </p></entry>
-<entry> <p>                         Node Messages                        </p></entry>
-</row>
-<row>
-<entry> <p>                         195                        </p></entry>
-<entry> <p>                         Mesh Machine                        </p></entry>
-</row>
-<row>
-<entry> <p>                         196                        </p></entry>
-<entry> <p>                         SVG Logging - provides extra logging so
-that 194 and 195                         can be displayed in an SVG file 
-                      </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>                 The following filter is also useful:        
-       </p> <table id="GUID-F2BA543D-0396-4552-9546-EF332B6BD747">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Level</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry> <p>                         3</p></entry>
-<entry> <p>                         Kernel Thread ID's - Thread and process
-creation                        </p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>                 Set these filters with the following command:
-               </p> <codeblock xml:space="preserve">ulogger -efv 194 195 3 196
- </codeblock> </li>
-<li id="GUID-72C31641-7F65-4AA8-83BB-752E7A6EE77E"><p>                 <b>Start
-ULogger</b> - The following command starts ULogger                 with the
-filter:                </p> <codeblock xml:space="preserve">
- 
-ulogger -rv</codeblock> </li>
-<li id="GUID-CEDCDC01-1E86-4A67-9822-D94370DAF5E8"><p>                 <b>Run
-the code under observation</b> - In the first Eshell                 session,
-run the code to be tested or debugged.                </p> </li>
-<li id="GUID-8EA473A7-6609-48C2-8E66-BA56D0178669"><p>                 <b>Stop
-ULogger</b> - To stop ULogger and generate the                 logs, use the
-command:                </p> <codeblock xml:space="preserve">ulogger -qv</codeblock> </li>
-<li id="GUID-AC7549F8-4010-45D6-8C76-9322C16C86A1"><p>                 <b>Process
-the binary logs into text</b> - The log file                 created by ULogger
-is in a binary format and is located in the                 <filepath>c:\logs</filepath> folder
-on the device.                </p> <p>                 To use the log file,
-the file must be converted to a text format.                             
-  </p> <p>                 The Comms software has a decoder to interpret the
-ULogger output                 for Comms. This decoder is an MS Windows-compatible
-application and is located                 in <filepath>…\os\commsfw\commsfwtools\</filepath>.
-               </p> <p>                 An example command to run the decoder
-is:                </p> <codeblock xml:space="preserve">utracedecoder - -message-def esockmessages.definition.txt ulogger.log &gt; log.txt</codeblock> <p> 
-               The decoder uses a definition file to decipher the binary data
-in                 the log, and the decoder has definition files configured
-for the current scope                 of Comms logging. This example uses
-the ESock messages definition file, which                 is located in  
-              <filepath>…\os\commsfw\commsfwtools\commstools\utracedecoder\data\esockmessages.definition.txt</filepath>.
-                               </p> <p>                 The output in log.txt
-contains an interpretation of the original                 binary logs.  
-             </p> </li>
-<li id="GUID-73E7C874-4487-492C-875C-642ECEBDF74F"><p>                 <b>Generating
-the SVG diagram</b> - The exchange of                 messages between Nodes
-can be rendered into a diagram.                </p> <p>                 From <filepath>…\os\commsfw\commsfwtools\commstools\svg</filepath> run
-                <filepath>parseit.bat</filepath> specifying the path to the
-generated log.txt file:                </p> <codeblock xml:space="preserve">parseit.bat /log M:\path_to_log_file\log.txt</codeblock><fig id="GUID-F6E85A8D-09B3-40A1-B3DC-5B968C3F1A4C">
-<desc>Example SVG output from the Message Sequence Display Tool </desc>
-<image href="GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e85525_href.png" placement="inline"/>
-</fig> <p>                 Key to the SVG diagram:                </p> <ol>
-<li id="GUID-64C07144-E5BD-465E-915F-1A867AD62FAB"><p>                   
-   Vertical black lines are tagged with names to represent node          
-            lifetimes. For example: <codeph>IPCpr</codeph>               
-     </p> </li>
-<li id="GUID-4BEE656D-9DEB-402B-B3A9-3A5C822B5E99"><p>                   
-   Vertical lines forking from the node lifetime lines are               
-       MeshMachine activity lifetimes.                     </p> </li>
-<li id="GUID-BA5C28EF-856F-45CD-B6B8-AD1C0D663CA1"><p>                   
-   Black horizontal lines are message deliveries.                     </p> </li>
-<li id="GUID-61D41E05-7269-4A95-843D-E536141E56E0"><p>                   
-   Green horizontal lines are message postings.                     </p> </li>
-</ol> <p>                     New message types can be added to the definition
-files. See the documentation with the utracedecoder component.           
-     </p> </li>
-</ol></section>
-</conbody><related-links>
-<link href="GUID-A3E77067-7982-5803-A274-0C8F2562B483.dita"><linktext>Unified Trace
-Solution</linktext></link>
-<link href="GUID-9006B4EE-194E-50FA-A803-F9EAA13E14AA.dita"><linktext>How to Use
-the ULogger Configuration File</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ABE77283-EED8-5A33-B574-3B771EF11086" xml:lang="en"><title>How
+to Use ULogger with Comms</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This tutorial summarises one approach for enabling, retrieving and post-processing
+the <xref href="GUID-B25AB5A9-52A6-50C2-8656-F8ADEE260FC9.dita">ULogger</xref> logs
+for Comms. ULogger is part of the Unified Trace framework which replaces other
+logging mechanisms for Symbian platform including Flogger and
+CDU. </p>
+<p>The Unified Trace framework has greater flexibility and speed compared
+to Flogger and CDU. </p>
+<section id="GUID-6FF10945-4E25-4F91-BDA4-CC363EEC2480"><title>Introduction</title> <p>The Comms logging which has been migrated
+to ULogger is as follows: </p> <ul>
+<li id="GUID-677DDC92-E655-50AD-85A3-7B6817F9E12A"><p>Comms Framework Node
+messages - creation and destruction of Nodes and messages between Nodes. </p> </li>
+<li id="GUID-E496D531-2CF2-5042-8820-BC8CE75CE4C6"><p>Mesh Machine messages </p> </li>
+<li id="GUID-E4892E5F-845B-5672-AB90-944A8B7DAEBE"><p>data to support the
+SVG generation </p> </li>
+</ul> <p>This logging replaces some of what was logged through the "<codeph>LOG
+CFNode *</codeph> ", "<codeph>LOG Mesh *</codeph> " and "<codeph>LOG ESock
+*</codeph> " tags. In the case of the <codeph>ESock</codeph> tag, the logging
+which is written to ULogger is also written to CDU. </p> <p>This usage description
+assumes that the development tools already include ULogger support. </p>  </section>
+<section id="GUID-BB759C19-49DA-48EA-8550-11B897A2E768"><title>Procedure - Using ULogger</title> <p><b>Requirements</b></p> <p> 
+          For this tutorial, the code under observation must be run from <xref href="GUID-D90C86C6-B85D-5941-9919-3725A9FFD548.dita">EShell</xref>.          </p> <p> 
+          The following binaries must include logging:          </p> <ul>
+<li><p>                 <filepath>nodemessages.dll</filepath>            
+   </p> </li>
+<li><p>                 <filepath>meshmachine.dll</filepath>             
+  </p> </li>
+<li><p>                 <filepath>commsfw.dll</filepath>                </p> </li>
+<li><p>                 <filepath>serverden.dll</filepath>                </p> </li>
+<li><p>                 <filepath>esocksvr.dll</filepath>                </p> </li>
+</ul><p> To enable logging for a binary either use the UDEB version of the
+ binary or rebuild the binary with the <codeph>SYMBIAN_TRACE_ENABLED</codeph> macro
+defined. </p></section>
+<section id="GUID-72A353DC-CFD8-482E-B2E4-9CCCCD1C9BBA"><title>Steps</title> <ol>
+<li id="GUID-E3B09A4E-C87A-45F9-8DE6-653BA1A2E426"><p>                 <b>Start
+Eshell</b> - ULogger only supports asynchronous                 logging, so
+from EShell start a second instance of EShell.                </p> <codeblock xml:space="preserve">start eshell</codeblock> <p> 
+               This allows ULogger to be stopped even if the code under  
+              observation does not exit normally.                </p> </li>
+<li id="GUID-8A912D95-8D99-4D2A-9A5E-C51132924DAC"><p>                 <b>Set
+the ULogger Filters</b> - To allow Comms logging                 enable the
+following filters:                </p><table id="GUID-56D45DFD-FD08-4B16-AB72-E5DD51C888E1">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Level</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry> <p>                         194                        </p></entry>
+<entry> <p>                         Node Messages                        </p></entry>
+</row>
+<row>
+<entry> <p>                         195                        </p></entry>
+<entry> <p>                         Mesh Machine                        </p></entry>
+</row>
+<row>
+<entry> <p>                         196                        </p></entry>
+<entry> <p>                         SVG Logging - provides extra logging so
+that 194 and 195                         can be displayed in an SVG file 
+                      </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>                 The following filter is also useful:        
+       </p> <table id="GUID-F2BA543D-0396-4552-9546-EF332B6BD747">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Level</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry> <p>                         3</p></entry>
+<entry> <p>                         Kernel Thread ID's - Thread and process
+creation                        </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>                 Set these filters with the following command:
+               </p> <codeblock xml:space="preserve">ulogger -efv 194 195 3 196
+ </codeblock> </li>
+<li id="GUID-72C31641-7F65-4AA8-83BB-752E7A6EE77E"><p>                 <b>Start
+ULogger</b> - The following command starts ULogger                 with the
+filter:                </p> <codeblock xml:space="preserve">
+ 
+ulogger -rv</codeblock> </li>
+<li id="GUID-CEDCDC01-1E86-4A67-9822-D94370DAF5E8"><p>                 <b>Run
+the code under observation</b> - In the first Eshell                 session,
+run the code to be tested or debugged.                </p> </li>
+<li id="GUID-8EA473A7-6609-48C2-8E66-BA56D0178669"><p>                 <b>Stop
+ULogger</b> - To stop ULogger and generate the                 logs, use the
+command:                </p> <codeblock xml:space="preserve">ulogger -qv</codeblock> </li>
+<li id="GUID-AC7549F8-4010-45D6-8C76-9322C16C86A1"><p>                 <b>Process
+the binary logs into text</b> - The log file                 created by ULogger
+is in a binary format and is located in the                 <filepath>c:\logs</filepath> folder
+on the device.                </p> <p>                 To use the log file,
+the file must be converted to a text format.                             
+  </p> <p>                 The Comms software has a decoder to interpret the
+ULogger output                 for Comms. This decoder is an MS Windows-compatible
+application and is located                 in <filepath>…\os\commsfw\commsfwtools\</filepath>.
+               </p> <p>                 An example command to run the decoder
+is:                </p> <codeblock xml:space="preserve">utracedecoder - -message-def esockmessages.definition.txt ulogger.log &gt; log.txt</codeblock> <p> 
+               The decoder uses a definition file to decipher the binary data
+in                 the log, and the decoder has definition files configured
+for the current scope                 of Comms logging. This example uses
+the ESock messages definition file, which                 is located in  
+              <filepath>…\os\commsfw\commsfwtools\commstools\utracedecoder\data\esockmessages.definition.txt</filepath>.
+                               </p> <p>                 The output in log.txt
+contains an interpretation of the original                 binary logs.  
+             </p> </li>
+<li id="GUID-73E7C874-4487-492C-875C-642ECEBDF74F"><p>                 <b>Generating
+the SVG diagram</b> - The exchange of                 messages between Nodes
+can be rendered into a diagram.                </p> <p>                 From <filepath>…\os\commsfw\commsfwtools\commstools\svg</filepath> run
+                <filepath>parseit.bat</filepath> specifying the path to the
+generated log.txt file:                </p> <codeblock xml:space="preserve">parseit.bat /log M:\path_to_log_file\log.txt</codeblock><fig id="GUID-F6E85A8D-09B3-40A1-B3DC-5B968C3F1A4C">
+<desc>Example SVG output from the Message Sequence Display Tool </desc>
+<image href="GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e78813_href.png" placement="inline"/>
+</fig> <p>                 Key to the SVG diagram:                </p> <ol>
+<li id="GUID-64C07144-E5BD-465E-915F-1A867AD62FAB"><p>                   
+   Vertical black lines are tagged with names to represent node          
+            lifetimes. For example: <codeph>IPCpr</codeph>               
+     </p> </li>
+<li id="GUID-4BEE656D-9DEB-402B-B3A9-3A5C822B5E99"><p>                   
+   Vertical lines forking from the node lifetime lines are               
+       MeshMachine activity lifetimes.                     </p> </li>
+<li id="GUID-BA5C28EF-856F-45CD-B6B8-AD1C0D663CA1"><p>                   
+   Black horizontal lines are message deliveries.                     </p> </li>
+<li id="GUID-61D41E05-7269-4A95-843D-E536141E56E0"><p>                   
+   Green horizontal lines are message postings.                     </p> </li>
+</ol> <p>                     New message types can be added to the definition
+files. See the documentation with the utracedecoder component.           
+     </p> </li>
+</ol></section>
+</conbody><related-links>
+<link href="GUID-A3E77067-7982-5803-A274-0C8F2562B483.dita"><linktext>Unified Trace
+Solution</linktext></link>
+<link href="GUID-9006B4EE-194E-50FA-A803-F9EAA13E14AA.dita"><linktext>How to Use
+the ULogger Configuration File</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e3955_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AC3F5010-ECA6-4257-98B5-77FB26B4987F_d0e5230_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e184188_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AC5ADA77-EBA1-597E-A6B7-80157E9DE2B2_d0e190784_href.png has changed
--- a/Symbian3/SDK/Source/GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672"><title>Positioning Module Status</title><shortdesc>This document describes positioning technology module status, which applications access through the Location Acquisition API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This document describes Positioning Module status, which applications access through the Location Acquisition API. </p> </section> <section><title>Positioning Module status</title> <p>A Positioning Module has a <i>status</i> which is represented by a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> object. The status describes the low-level state of a Positioning Module, such as whether it is disabled, initialising, or ready to retrieve location data, as well as its data quality status. </p> <p>A change in Positioning Module status is indicated by a <i>status event</i>. Details of the event are held in a <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> object. Client applications can receive notification of status events from the location server. </p> <p>Figure 1 illustrates Positioning Module status and event classes. </p> <fig id="GUID-C17083CB-4252-547F-BAAC-4388A105FEC1"><title>
-             Figure 1. TPositionModuleStatus and
-             TPositionModuleStatusEvent classes 
-          </title> <image href="GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e270871_href.png" placement="inline"/></fig> <p><b>TPositionModuleStatus </b> </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> describes the status of a Positioning Module. An application gets information about a Positioning Module's current status by calling <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-676FAC1B-1989-3D3C-84A5-DF82B874D7A3"><apiname>RPositionServer::GetModuleStatus()</apiname></xref>. There are two status types - <i>device status</i> and <i>data quality status</i>. </p> <p><b>Device status </b> </p> <p>Device status is the status of the hardware device utilised by a Positioning Module, such as the chipset used by an A-GPS Positioning Module. </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-3702B7D3-EDE5-3FD9-B0D5-96C5FD4B32E6"><apiname>TPositionModuleStatus::DeviceStatus()</apiname></xref> returns the device status as a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-4C1E0860-4813-3B3F-A766-9F759ADC9E7C"><apiname>TPositionModuleStatus::TDeviceStatus</apiname></xref> value. The value returned can indicate a transient device status, such as whether the hardware is disabled, initialising, or ready. It can also indicate a more serious device error state. </p> <p><b>Data quality status </b> </p> <p>Data quality status describes the accuracy of the location data that a Positioning Module is able to provide at a point in time. </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-FE9B37E2-7302-3818-A5F1-95669500FB14"><apiname>TPositionModuleStatus::DataQualityStatus()</apiname></xref> returns the data quality status as a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-08F4C71A-86B1-3B4C-A6C4-E181E218C533"><apiname>TPositionModuleStatus::TDataQualityStatus</apiname></xref> value. This value indicates whether the quality of location data is normal (the ideal condition), partially degraded or completely degraded. Location data quality can become degraded because the mobile device has moved out of range of any base stations or is in a position where it cannot receive signals from positioning satellites. Note that loss of information quality does not indicate a device error, which would be flagged by a change in the device status. </p> </section> <section><title>Positioning Module status events</title> <p>When a Positioning Module's status changes, a Positioning Module status event occurs. </p> <p>There are three types of Positioning Module status events: </p> <ul><li id="GUID-0852F3C8-9301-53E8-8769-74387D8499F1"><p>Device status events </p> </li> <li id="GUID-21995DC6-54A5-5585-85D2-0B09E7008533"><p>Data quality status events </p> </li> <li id="GUID-66A5D75B-9E5D-588A-872D-CBF2D818A6DF"><p>System level events. These events indicate that a Positioning Module has been added or removed in the system. </p> </li> </ul> <p><b>TPositionModuleStatusEvent </b> </p> <p>An object of class <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> has two functions: </p> <ul><li id="GUID-3389C877-68DE-505E-BB83-F8977D0E1C6D"><p>As the object on which an application defines the types of Positioning Module status events for which it requests notification. These are set by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-132DB32E-6A60-3CEC-9445-146B82E6D9CC"><apiname>TPositionModuleStatusEvent::SetRequestedEvents()</apiname></xref> passing a <xref href="GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B.dita#GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B/GUID-65DC3D52-46D8-33C9-BC70-6289022419A1"><apiname>TPositionModuleStatusEventBase::TModuleEvent</apiname></xref> bitmask value as a parameter to define the combination of events </p> </li> <li id="GUID-4E812AE8-5342-58DA-9690-EFA7E575DA46"><p>As the object on which the location framework sets the type of events that have occurred. These are retrieved by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-56695C9E-B488-3F9A-ADB6-04BB33433BF3"><apiname>TPositionModuleStatusEvent::OccurredEvents()</apiname></xref> and checking the returned <xref href="GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B.dita#GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B/GUID-65DC3D52-46D8-33C9-BC70-6289022419A1"><apiname>TPositionModuleStatusEventBase::TModuleEvent</apiname></xref> value. </p> </li> </ul> <p><b>Event notification </b> </p> <p>An application calls <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-3AA81126-EB13-3F1B-9464-E86CC7769EB5"><apiname>RPositionServer::NotifyModuleStatusEvent()</apiname></xref> to receive notification of Positioning Module status changes, passing a reference to a <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> object on which it has set the requested events. An application also supplies a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object and optionally a <xref href="GUID-1104624D-88F7-36EE-9C9D-470346C10318.dita"><apiname>TPositionModuleId</apiname></xref> object if status changes from only one Positioning Module are required. </p> <p>When the status of a Positioning Module changes, the client application is notified. The <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> <codeph/> object that was supplied to the location server now also contains details of the events that have occurred and these are obtained by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-56695C9E-B488-3F9A-ADB6-04BB33433BF3"><apiname>TPositionModuleStatusEvent::OccurredEvents()</apiname></xref>. </p> <p>The Positioning Module status is obtained by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-7707E844-34A2-3454-88C9-0456382ACD40"><apiname>TPositionModuleStatusEvent::GetModuleStatus()</apiname></xref> providing a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> reference as a parameter. </p> <p>See <xref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita">How to Get Positioning Module Status Changes</xref> for an example. </p> </section> <section><title>Uses of Positioning Module status</title> <p>Quality status events are useful for applications that need to modify their behaviour based on the quality of location information that can be received. For example, an application may need to show a message when a user moves into an area where the accuracy of location information is degraded to a lower quality than is required because of distance from a base station or inability to receive satellite signals. </p> <p>Device status events and system Positioning Module events are most useful to software components that perform administrative operations, such as taking a Positioning Module online or offline. The events can be used to notify when such an administrative operation is complete. </p> <p>Device status events can also be used to keep a user informed as to the status of a particular Positioning Module. For example, a phone status bar could be updated to show that GPS is active when location information is being received. </p> </section> <section><title>See also</title> <p><xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning Modules</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-AC7069ED-8CA5-55FC-9DF6-595C0505C672"><title>Positioning Module Status</title><shortdesc>This document describes positioning technology module status, which applications access through the Location Acquisition API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This document describes Positioning Module status, which applications access through the Location Acquisition API. </p> </section> <section><title>Positioning Module status</title> <p>A Positioning Module has a <i>status</i> which is represented by a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> object. The status describes the low-level state of a Positioning Module, such as whether it is disabled, initialising, or ready to retrieve location data, as well as its data quality status. </p> <p>A change in Positioning Module status is indicated by a <i>status event</i>. Details of the event are held in a <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> object. Client applications can receive notification of status events from the location server. </p> <p>Figure 1 illustrates Positioning Module status and event classes. </p> <fig id="GUID-C17083CB-4252-547F-BAAC-4388A105FEC1"><title>
+             Figure 1. TPositionModuleStatus and
+             TPositionModuleStatusEvent classes 
+          </title> <image href="GUID-7D13B61C-0C9E-5098-87F0-BB9D741E9281_d0e267163_href.png" placement="inline"/></fig> <p><b>TPositionModuleStatus </b> </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> describes the status of a Positioning Module. An application gets information about a Positioning Module's current status by calling <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-676FAC1B-1989-3D3C-84A5-DF82B874D7A3"><apiname>RPositionServer::GetModuleStatus()</apiname></xref>. There are two status types - <i>device status</i> and <i>data quality status</i>. </p> <p><b>Device status </b> </p> <p>Device status is the status of the hardware device utilised by a Positioning Module, such as the chipset used by an A-GPS Positioning Module. </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-3702B7D3-EDE5-3FD9-B0D5-96C5FD4B32E6"><apiname>TPositionModuleStatus::DeviceStatus()</apiname></xref> returns the device status as a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-4C1E0860-4813-3B3F-A766-9F759ADC9E7C"><apiname>TPositionModuleStatus::TDeviceStatus</apiname></xref> value. The value returned can indicate a transient device status, such as whether the hardware is disabled, initialising, or ready. It can also indicate a more serious device error state. </p> <p><b>Data quality status </b> </p> <p>Data quality status describes the accuracy of the location data that a Positioning Module is able to provide at a point in time. </p> <p> <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-FE9B37E2-7302-3818-A5F1-95669500FB14"><apiname>TPositionModuleStatus::DataQualityStatus()</apiname></xref> returns the data quality status as a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita#GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039/GUID-08F4C71A-86B1-3B4C-A6C4-E181E218C533"><apiname>TPositionModuleStatus::TDataQualityStatus</apiname></xref> value. This value indicates whether the quality of location data is normal (the ideal condition), partially degraded or completely degraded. Location data quality can become degraded because the mobile device has moved out of range of any base stations or is in a position where it cannot receive signals from positioning satellites. Note that loss of information quality does not indicate a device error, which would be flagged by a change in the device status. </p> </section> <section><title>Positioning Module status events</title> <p>When a Positioning Module's status changes, a Positioning Module status event occurs. </p> <p>There are three types of Positioning Module status events: </p> <ul><li id="GUID-0852F3C8-9301-53E8-8769-74387D8499F1"><p>Device status events </p> </li> <li id="GUID-21995DC6-54A5-5585-85D2-0B09E7008533"><p>Data quality status events </p> </li> <li id="GUID-66A5D75B-9E5D-588A-872D-CBF2D818A6DF"><p>System level events. These events indicate that a Positioning Module has been added or removed in the system. </p> </li> </ul> <p><b>TPositionModuleStatusEvent </b> </p> <p>An object of class <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> has two functions: </p> <ul><li id="GUID-3389C877-68DE-505E-BB83-F8977D0E1C6D"><p>As the object on which an application defines the types of Positioning Module status events for which it requests notification. These are set by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-132DB32E-6A60-3CEC-9445-146B82E6D9CC"><apiname>TPositionModuleStatusEvent::SetRequestedEvents()</apiname></xref> passing a <xref href="GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B.dita#GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B/GUID-65DC3D52-46D8-33C9-BC70-6289022419A1"><apiname>TPositionModuleStatusEventBase::TModuleEvent</apiname></xref> bitmask value as a parameter to define the combination of events </p> </li> <li id="GUID-4E812AE8-5342-58DA-9690-EFA7E575DA46"><p>As the object on which the location framework sets the type of events that have occurred. These are retrieved by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-56695C9E-B488-3F9A-ADB6-04BB33433BF3"><apiname>TPositionModuleStatusEvent::OccurredEvents()</apiname></xref> and checking the returned <xref href="GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B.dita#GUID-33ED1FC9-3B34-3AB5-A924-C361C712BD1B/GUID-65DC3D52-46D8-33C9-BC70-6289022419A1"><apiname>TPositionModuleStatusEventBase::TModuleEvent</apiname></xref> value. </p> </li> </ul> <p><b>Event notification </b> </p> <p>An application calls <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-3AA81126-EB13-3F1B-9464-E86CC7769EB5"><apiname>RPositionServer::NotifyModuleStatusEvent()</apiname></xref> to receive notification of Positioning Module status changes, passing a reference to a <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> object on which it has set the requested events. An application also supplies a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object and optionally a <xref href="GUID-1104624D-88F7-36EE-9C9D-470346C10318.dita"><apiname>TPositionModuleId</apiname></xref> object if status changes from only one Positioning Module are required. </p> <p>When the status of a Positioning Module changes, the client application is notified. The <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita"><apiname>TPositionModuleStatusEvent</apiname></xref> <codeph/> object that was supplied to the location server now also contains details of the events that have occurred and these are obtained by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-56695C9E-B488-3F9A-ADB6-04BB33433BF3"><apiname>TPositionModuleStatusEvent::OccurredEvents()</apiname></xref>. </p> <p>The Positioning Module status is obtained by calling <xref href="GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA.dita#GUID-6E827E6E-69EF-3EA3-95FF-9A0B38B689EA/GUID-7707E844-34A2-3454-88C9-0456382ACD40"><apiname>TPositionModuleStatusEvent::GetModuleStatus()</apiname></xref> providing a <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> reference as a parameter. </p> <p>See <xref href="GUID-F5944819-2942-5ADA-A0AD-510D20BFBDEB.dita">How to Get Positioning Module Status Changes</xref> for an example. </p> </section> <section><title>Uses of Positioning Module status</title> <p>Quality status events are useful for applications that need to modify their behaviour based on the quality of location information that can be received. For example, an application may need to show a message when a user moves into an area where the accuracy of location information is degraded to a lower quality than is required because of distance from a base station or inability to receive satellite signals. </p> <p>Device status events and system Positioning Module events are most useful to software components that perform administrative operations, such as taking a Positioning Module online or offline. The events can be used to notify when such an administrative operation is complete. </p> <p>Device status events can also be used to keep a user informed as to the status of a particular Positioning Module. For example, a phone status bar could be updated to show that GPS is active when location information is being received. </p> </section> <section><title>See also</title> <p><xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning Modules</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,105 +1,105 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F" xml:lang="en"><title>Hiding
-item-specific commands in menus</title><shortdesc>The item-specific commands and item-action commands in options
-menu must be flagged with the <codeph>EEikMenuItemSpecific</codeph> and <codeph>EEikMenuItemAction</codeph> flags
-introduced in Symbian^3. This enables the UI framework to hide them in the
-options menu and display them only in the stylus pop-up menu. The touch down
-and hold action opens the stylus pop-up menu. Touch down and release performs
-an action.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-29AA14A9-B1E0-4C9A-A5BB-446351A11C87"><p>Actions like opening
-a radio button list and virtual input are performed on the first tap. These
-actions are normally handled by the UI framework. However, if your application
-contains an implementation of its own for handling these actions (for example,
-opening a custom component on the second tap) it must be changed to follow
-the single-tap style.</p>          </context>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-4-1-3-2">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-4-1-1-7-1-4-1-4-1-3-2-1"><cmd>Add the <codeph>EEikMenuItemAction</codeph> flag
-to all item-action commands in your options menu resource definitions. Menu
-item-action commands are functions that are called during touch down and release
-on an item (for example, <b>Open</b> action).</cmd>
-<stepxmp><p>For example, </p><codeblock xml:space="preserve">/**
- *AppList View menuitems (Counters)
- */
-RESOURCE MENU_PANE r_logs_applist_menu
-{
- items =
- {
-  MENU_ITEM
-  {
-   command = ELogsCmdMenuOpen;
-   txt = qtn_logs_cmd_open;
- //---------------------------------------------------------------
-// Include the following line to the list-item action commands
-<b>   flags =EEikMenuItemAction;
-</b>
-//----------------------------------------------------------------
-  }
- };
-}</codeblock></stepxmp>
-</step>
-<step id="GUID-192D8B8E-4521-40F0-81F1-7970D2487AF5"><cmd>Add the <codeph>EEikMenuItemSpecific</codeph> flag
-to all (other than item-action) item-specific commands in options menu resource
-definitions.</cmd>
-<stepxmp><p>For example, </p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_common_event_menu_send_events
-{
- items =
- {
-  MENU_ITEM /* Send */
-  {
-   command = ELogsCmdMenuSendUi;
-   txt = qtn_stm_om_send;
-//-------------------------------------------------------------------------
-//Add the following line to the list item-specific commands
-<b>   flags = EEikMenuItemSpecific;
-</b>//-------------------------------------------------------------------------
-
-  },
-  MENU_ITEM /* Clear list */
-  { command = ELogsCmdMenuDeleteAll;
-   txt = qtn_stm_om_delete_all; }
- };
-}</codeblock></stepxmp>
-<info><note> An application view containing <xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">forms</xref> need
-not flag item-specific commands, as forms are always highlighted.</note></info>
-</step>
-<step id="GUID-D8010D5A-5703-4AC6-AC05-819689785680"><cmd>If your application
-code dynamically adds or removes menu items,  you must change
-the flag value of the menu pane using the <xref href="GUID-F6168582-DFF1-31DF-87F9-FF2AEC5EE0FF.dita#GUID-F6168582-DFF1-31DF-87F9-FF2AEC5EE0FF/GUID-DC63590B-B1CE-3B80-BDFE-6827A381F3AD"><apiname>CEikMenuPane::SetItemSpecific()</apiname></xref> function.</cmd>
-<stepxmp><p>For example, </p><codeblock xml:space="preserve">/* Add send message item to menu above position pos */
-TInt pos = 0;
-
-/* Returns pointer to menu item */
-aMenuPane-&gt;ItemAndPos(ELogsCmdMenuSendUi, pos);
-
-/* Delete marker item from menu */
-aMenuPane-&gt;DeleteMenuItem(ELogsCmdMenuSendUi);
-
-/* No need here yet to tailor subitems in SendUi menu */
-TSendingCapabilities capabilities(0, 0, 0);
-LogsAppUi()
--&gt;
-SendUiL()
--&gt;AddSendMenuItemL
- (
-  *aMenuPane, pos, /* Position in menupane */ ELogsCmdMenuSendUi, /* Command id to be used for "Send" menu item */
-   capabilities
- );
-aMenuPane-&gt;SetItemTextL(ELogsCmdMenuSendUi, iSendUiText-&gt;Des());
-//-------------------------------------------------------------
-// Include the following line to dynamically change the flag value
-<b>
-aMenuPane-&gt;SetItemSpecific(ELogsCmdMenuSendUi, ETrue);
-</b>//-----------------------------------------------------------------</codeblock></stepxmp>
-</step>
-</steps-unordered>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-AC8439C7-7E57-4829-AB4B-70BC394DD66F" xml:lang="en"><title>Hiding
+item-specific commands in menus</title><shortdesc>The item-specific commands and item-action commands in options
+menu must be flagged with the <codeph>EEikMenuItemSpecific</codeph> and <codeph>EEikMenuItemAction</codeph> flags
+introduced in Symbian^3. This enables the UI framework to hide them in the
+options menu and display them only in the stylus pop-up menu. The touch down
+and hold action opens the stylus pop-up menu. Touch down and release performs
+an action.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-29AA14A9-B1E0-4C9A-A5BB-446351A11C87"><p>Actions like opening
+a radio button list and virtual input are performed on the first tap. These
+actions are normally handled by the UI framework. However, if your application
+contains an implementation of its own for handling these actions (for example,
+opening a custom component on the second tap) it must be changed to follow
+the single-tap style.</p>          </context>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-4-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-6-1-1-4-1-4-1-3-2-1"><cmd>Add the <codeph>EEikMenuItemAction</codeph> flag
+to all item-action commands in your options menu resource definitions. Menu
+item-action commands are functions that are called during touch down and release
+on an item (for example, <b>Open</b> action).</cmd>
+<stepxmp><p>For example, </p><codeblock xml:space="preserve">/**
+ *AppList View menuitems (Counters)
+ */
+RESOURCE MENU_PANE r_logs_applist_menu
+{
+ items =
+ {
+  MENU_ITEM
+  {
+   command = ELogsCmdMenuOpen;
+   txt = qtn_logs_cmd_open;
+ //---------------------------------------------------------------
+// Include the following line to the list-item action commands
+<b>   flags =EEikMenuItemAction;
+</b>
+//----------------------------------------------------------------
+  }
+ };
+}</codeblock></stepxmp>
+</step>
+<step id="GUID-192D8B8E-4521-40F0-81F1-7970D2487AF5"><cmd>Add the <codeph>EEikMenuItemSpecific</codeph> flag
+to all (other than item-action) item-specific commands in options menu resource
+definitions.</cmd>
+<stepxmp><p>For example, </p><codeblock xml:space="preserve">RESOURCE MENU_PANE r_common_event_menu_send_events
+{
+ items =
+ {
+  MENU_ITEM /* Send */
+  {
+   command = ELogsCmdMenuSendUi;
+   txt = qtn_stm_om_send;
+//-------------------------------------------------------------------------
+//Add the following line to the list item-specific commands
+<b>   flags = EEikMenuItemSpecific;
+</b>//-------------------------------------------------------------------------
+
+  },
+  MENU_ITEM /* Clear list */
+  { command = ELogsCmdMenuDeleteAll;
+   txt = qtn_stm_om_delete_all; }
+ };
+}</codeblock></stepxmp>
+<info><note> An application view containing <xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">forms</xref> need
+not flag item-specific commands, as forms are always highlighted.</note></info>
+</step>
+<step id="GUID-D8010D5A-5703-4AC6-AC05-819689785680"><cmd>If your application
+code dynamically adds or removes menu items,  you must change
+the flag value of the menu pane using the <xref href="GUID-F6168582-DFF1-31DF-87F9-FF2AEC5EE0FF.dita#GUID-F6168582-DFF1-31DF-87F9-FF2AEC5EE0FF/GUID-DC63590B-B1CE-3B80-BDFE-6827A381F3AD"><apiname>CEikMenuPane::SetItemSpecific()</apiname></xref> function.</cmd>
+<stepxmp><p>For example, </p><codeblock xml:space="preserve">/* Add send message item to menu above position pos */
+TInt pos = 0;
+
+/* Returns pointer to menu item */
+aMenuPane-&gt;ItemAndPos(ELogsCmdMenuSendUi, pos);
+
+/* Delete marker item from menu */
+aMenuPane-&gt;DeleteMenuItem(ELogsCmdMenuSendUi);
+
+/* No need here yet to tailor subitems in SendUi menu */
+TSendingCapabilities capabilities(0, 0, 0);
+LogsAppUi()
+-&gt;
+SendUiL()
+-&gt;AddSendMenuItemL
+ (
+  *aMenuPane, pos, /* Position in menupane */ ELogsCmdMenuSendUi, /* Command id to be used for "Send" menu item */
+   capabilities
+ );
+aMenuPane-&gt;SetItemTextL(ELogsCmdMenuSendUi, iSendUiText-&gt;Des());
+//-------------------------------------------------------------
+// Include the following line to dynamically change the flag value
+<b>
+aMenuPane-&gt;SetItemSpecific(ELogsCmdMenuSendUi, ETrue);
+</b>//-----------------------------------------------------------------</codeblock></stepxmp>
+</step>
+</steps-unordered>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e148518_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ACA2AFE8-4872-42FA-A871-34EB80197495_d0e155039_href.png has changed
--- a/Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-3-1-1-9-1-4-1-8-1" xml:lang="en"><title>Synchronising
-FEP Instantiations</title><shortdesc>This topic describes how to synchronize settings across different
-instances of the same FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>As mentioned previously, the FEP architecture has been designed so that
-each running application has its own instance of the current FEP. <codeph>CCoeFep</codeph> provides
-support for synchronizing attributes across all of these instances, so that
-when one instance changes the value of an attribute, the others are automatically
-updated. In order for this to happen, the FEP has to do several things. </p>
-<ul>
-<li id="GUID-EC8E4D77-BE0E-5A5E-87B0-817109AD5D44-GENID-1-8-1-3-1-1-9-1-4-1-8-1-3-2-1"><p>Override the four pure
-virtual functions that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits from <xref href="GUID-B0007B23-6745-31BE-A832-9ACA4C12E3E6.dita"><apiname>MFepAttributeStore</apiname></xref>: <codeph>NumberOfAttributes()</codeph>, <codeph>AttributeAtIndex()</codeph>, <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph>. <codeph>NumberOfAttributes()</codeph> should return the number of attributes that are to be synchronized across
-all instances of the FEP, <codeph>AttributeAtIndex()</codeph> should return
-the UID of the specified attribute, and <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph> should
-write/read the specified attribute’s data to/from the provided stream. </p> </li>
-<li id="GUID-0163FF77-8495-5812-AF0D-2FB9AB376EC5-GENID-1-8-1-3-1-1-9-1-4-1-8-1-3-2-2"><p>When the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
-class has been fully constructed, call <codeph>CCoeFep::ReadAllAttributesL()</codeph>.
-This calls the <codeph>ReadAttributeDataFromStreamL()</codeph> virtual function
-for each of the UIDs that the FEP requires to be synchronized (as specified
-by <codeph>NumberOfAttributes()</codeph> and <codeph>AttributeAtIndex()</codeph>). </p> </li>
-<li id="GUID-E4435F88-8C8F-5E93-8587-101DBCA7FA03-GENID-1-8-1-3-1-1-9-1-4-1-8-1-3-2-3"><p>After internally changing
-the value of an attribute that is to be synchronized, call <codeph>CCoeFep::WriteAttributeDataAndBroadcastL()</codeph> to
-propagate that change to all the other instances of the FEP. The parameter
-identifies the attributes that are to be synchronized, using UIDs. See the
-Symbian website for information on how to be allocated UIDs. </p> </li>
-</ul>
-<p>The purpose of the <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> exported
-function, which the FEP must provide, is to launch a dialog that allows the
-user to change any settings specific to that FEP. As mentioned above, there
-is no guarantee that any instance of that particular FEP exists when this
-function is called. In order for the dialog launched by <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> to
-be able to edit settings that are required to be synchronized across all running
-applications, the dialog class must derive from <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>.
-The dialog class’ implementation of <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref> ’s
-virtual functions should be the same as the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
-class’ implementation of them. For an example of this, see TFEP1Plugin. When
-the dialog is launched it needs to call <codeph>MFepAttributeStorer::ReadAllAttributesL()</codeph> to
-correctly initialize all the settings. Conversely, the settings in the dialog
-are committed by calling <codeph>MFepAttributeStorer::WriteAttributeDataAndBroadcastL()</codeph>. </p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1" xml:lang="en"><title>Synchronising
-FEP Instantiations</title><shortdesc>This topic describes how to synchronize settings across different
-instances of the same FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>As mentioned previously, the FEP architecture has been designed so that
-each running application has its own instance of the current FEP. <codeph>CCoeFep</codeph> provides
-support for synchronizing attributes across all of these instances, so that
-when one instance changes the value of an attribute, the others are automatically
-updated. In order for this to happen, the FEP has to do several things. </p>
-<ul>
-<li id="GUID-EC8E4D77-BE0E-5A5E-87B0-817109AD5D44-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1-3-2-1"><p>Override the four pure
-virtual functions that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits from <xref href="GUID-B0007B23-6745-31BE-A832-9ACA4C12E3E6.dita"><apiname>MFepAttributeStore</apiname></xref>: <codeph>NumberOfAttributes()</codeph>, <codeph>AttributeAtIndex()</codeph>, <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph>. <codeph>NumberOfAttributes()</codeph> should return the number of attributes that are to be synchronized across
-all instances of the FEP, <codeph>AttributeAtIndex()</codeph> should return
-the UID of the specified attribute, and <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph> should
-write/read the specified attribute’s data to/from the provided stream. </p> </li>
-<li id="GUID-0163FF77-8495-5812-AF0D-2FB9AB376EC5-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1-3-2-2"><p>When the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
-class has been fully constructed, call <codeph>CCoeFep::ReadAllAttributesL()</codeph>.
-This calls the <codeph>ReadAttributeDataFromStreamL()</codeph> virtual function
-for each of the UIDs that the FEP requires to be synchronized (as specified
-by <codeph>NumberOfAttributes()</codeph> and <codeph>AttributeAtIndex()</codeph>). </p> </li>
-<li id="GUID-E4435F88-8C8F-5E93-8587-101DBCA7FA03-GENID-1-8-1-6-1-1-4-1-8-1-4-1-8-1-3-2-3"><p>After internally changing
-the value of an attribute that is to be synchronized, call <codeph>CCoeFep::WriteAttributeDataAndBroadcastL()</codeph> to
-propagate that change to all the other instances of the FEP. The parameter
-identifies the attributes that are to be synchronized, using UIDs. See the
-Symbian website for information on how to be allocated UIDs. </p> </li>
-</ul>
-<p>The purpose of the <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> exported
-function, which the FEP must provide, is to launch a dialog that allows the
-user to change any settings specific to that FEP. As mentioned above, there
-is no guarantee that any instance of that particular FEP exists when this
-function is called. In order for the dialog launched by <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> to
-be able to edit settings that are required to be synchronized across all running
-applications, the dialog class must derive from <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>.
-The dialog class’ implementation of <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref> ’s
-virtual functions should be the same as the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
-class’ implementation of them. For an example of this, see TFEP1Plugin. When
-the dialog is launched it needs to call <codeph>MFepAttributeStorer::ReadAllAttributesL()</codeph> to
-correctly initialize all the settings. Conversely, the settings in the dialog
-are committed by calling <codeph>MFepAttributeStorer::WriteAttributeDataAndBroadcastL()</codeph>. </p>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ACC71D0D-32C4-5DAF-B4D9-66013A073FD4" xml:lang="en"><title>Synchronising
+FEP Instantiations</title><shortdesc>This topic describes how to synchronize settings across different
+instances of the same FEP.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>As mentioned previously, the FEP architecture has been designed so that
+each running application has its own instance of the current FEP. <codeph>CCoeFep</codeph> provides
+support for synchronizing attributes across all of these instances, so that
+when one instance changes the value of an attribute, the others are automatically
+updated. In order for this to happen, the FEP has to do several things. </p>
+<ul>
+<li id="GUID-EC8E4D77-BE0E-5A5E-87B0-817109AD5D44"><p>Override the four pure
+virtual functions that <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> inherits from <xref href="GUID-B0007B23-6745-31BE-A832-9ACA4C12E3E6.dita"><apiname>MFepAttributeStore</apiname></xref>: <codeph>NumberOfAttributes()</codeph>, <codeph>AttributeAtIndex()</codeph>, <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph>. <codeph>NumberOfAttributes()</codeph> should return the number of attributes that are to be synchronized across
+all instances of the FEP, <codeph>AttributeAtIndex()</codeph> should return
+the UID of the specified attribute, and <codeph>WriteAttributeDataToStreamL()</codeph> and <codeph>ReadAttributeDataFromStreamL()</codeph> should
+write/read the specified attribute’s data to/from the provided stream. </p> </li>
+<li id="GUID-0163FF77-8495-5812-AF0D-2FB9AB376EC5"><p>When the object of the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
+class has been fully constructed, call <codeph>CCoeFep::ReadAllAttributesL()</codeph>.
+This calls the <codeph>ReadAttributeDataFromStreamL()</codeph> virtual function
+for each of the UIDs that the FEP requires to be synchronized (as specified
+by <codeph>NumberOfAttributes()</codeph> and <codeph>AttributeAtIndex()</codeph>). </p> </li>
+<li id="GUID-E4435F88-8C8F-5E93-8587-101DBCA7FA03"><p>After internally changing
+the value of an attribute that is to be synchronized, call <codeph>CCoeFep::WriteAttributeDataAndBroadcastL()</codeph> to
+propagate that change to all the other instances of the FEP. The parameter
+identifies the attributes that are to be synchronized, using UIDs. See the
+Symbian website for information on how to be allocated UIDs. </p> </li>
+</ul>
+<p>The purpose of the <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> exported
+function, which the FEP must provide, is to launch a dialog that allows the
+user to change any settings specific to that FEP. As mentioned above, there
+is no guarantee that any instance of that particular FEP exists when this
+function is called. In order for the dialog launched by <codeph>SynchronouslyExecuteSettingsDialogL()</codeph> to
+be able to edit settings that are required to be synchronized across all running
+applications, the dialog class must derive from <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref>.
+The dialog class’ implementation of <xref href="GUID-270424BB-124B-39FF-9CDA-5CAFB5407FAE.dita"><apiname>MFepAttributeStorer</apiname></xref> ’s
+virtual functions should be the same as the <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> -derived
+class’ implementation of them. For an example of this, see TFEP1Plugin. When
+the dialog is launched it needs to call <codeph>MFepAttributeStorer::ReadAllAttributesL()</codeph> to
+correctly initialize all the settings. Conversely, the settings in the dialog
+are committed by calling <codeph>MFepAttributeStorer::WriteAttributeDataAndBroadcastL()</codeph>. </p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ACD9E338-DF75-5811-B696-C3900B498218" xml:lang="en"><title>Privacy
-Requester Classes</title><shortdesc>This document describes the classes that were used in earlier versions
-of the Symbian platform to identify the requester of location information
-to the LBS subsystem. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Use of these classes is now optional. It is recommended that you still
-use them if your LBS applications must run on devices based on earlier versions
-of Symbian. </p>
-<section><title>Purpose</title> <p>The privacy requester classes were defined
-as part of the Location Acquisition API before platform security was introduced
-in Symbian OS v9. On all platforms based on Symbian OS v9 and later, client
-applications are required to have the <codeph>Location</codeph> capability
-to use the Location Acquisition API. Platform security checks fulfil much
-of the role of the privacy requester classes. </p> </section>
-<section><title>Privacy requester classes</title> <p>This section describes
-the privacy requester classes. </p> <p><b>Class
-description</b> </p> <p>Figure 1 shows the Privacy classes provided by the
-Location Acquisition API. </p> <fig id="GUID-BE65E6CB-5286-5DFE-B50C-8C088960432B">
-<title>                 Figure 1. Location Acquisition API privacy classes.
-              </title>
-<image href="GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e270493_href.png" placement="inline"/>
-</fig> <p>A requester is defined as an agent
-that requests location information. There are two requester types: </p> <ul>
-<li id="GUID-79C7473E-C3DD-5011-BE50-F8D1075E9B07"><p>Service requesters </p> <p>A
-service requester represents any terminal or network application or service. </p> </li>
-<li id="GUID-FCEA02C9-CB00-5BD4-89FB-55D703DDE0B4"><p>Contact requesters </p> <p>A
-contact requester represents an individual person requesting the location. </p> </li>
-</ul> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-B484D0AF-BEB1-3D08-8D14-8E510AB8C465"><apiname>CRequestor::RequestorType()</apiname></xref> defines the type
-of the requester. The requester information is sent to Location Server before
-requesting location estimates. </p> <p><b>Defining
-requesters</b> </p> <p>Requesters may be defined in one of two ways: </p> <p><b>Defining a single requester</b> </p> <p>A single requester is defined by
-calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref>. The method signature
-is: <codeph>TInt SetRequestor(CRequestor::TRequestorType aType,          
-      CRequestor::TRequestorFormat aFormat, const TDesC&amp;             
-   aData)</codeph>. </p> <p>The requester is defined directly by the values
-supplied to the function’s parameters. This case is used by applications or
-services if they are the only request source. </p> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-5EE5AFBF-D212-34A9-8DF5-9B193673FA3F"><apiname>CRequestor::TRequestorType</apiname></xref> defines
-the type of requester: a service or contact. </p> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-EF476AFD-2F46-39FA-B6E2-74759B549223"><apiname>CRequestor::TRequestorFormat</apiname></xref> defines
-the format of the requester identifier passed in <codeph>aData</codeph>: an
-application name, contact, email address etc. </p> <p><b>Defining a stack of requesters</b> </p> <p>If an application requests
-location information on behalf of another agent or agents, it can specify
-the chain of requesters by calling a second variant of <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref>.
-The method signature is: <codeph>TInt SetRequestor(const                 RRequestorStack&amp;
-aRequestorStack)</codeph>  </p> <p> <xref href="GUID-BAB32310-D928-3314-B253-9685721EABE0.dita"><apiname>RRequestorStack</apiname></xref> is
-a container for a list of the requesters on behalf of which the request is
-made. Each requester in the stack is represented by a <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita"><apiname>CRequestor</apiname></xref> class. </p> <p>Note: Regardless of the number of requesters, there is always one service
-requester, because the application executing the location request must be
-always shown, even if it made the request on behalf of a contact requester.
-For this reason, the last item in the requester stack must always be a service
-requester (type <xref href="GUID-B59CCB2E-400A-3359-B27D-06F75AC588A6.dita#GUID-B59CCB2E-400A-3359-B27D-06F75AC588A6/GUID-33B2120D-3388-304B-A0DC-E08F86F696FB"><apiname>CRequestorBase::ERequestorService</apiname></xref>). </p> </section>
-</conbody><related-links>
-<link href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita"><linktext>Position
-Area Data Classes</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ACD9E338-DF75-5811-B696-C3900B498218" xml:lang="en"><title>Privacy
+Requester Classes</title><shortdesc>This document describes the classes that were used in earlier versions
+of the Symbian platform to identify the requester of location information
+to the LBS subsystem. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Use of these classes is now optional. It is recommended that you still
+use them if your LBS applications must run on devices based on earlier versions
+of Symbian. </p>
+<section><title>Purpose</title> <p>The privacy requester classes were defined
+as part of the Location Acquisition API before platform security was introduced
+in Symbian OS v9. On all platforms based on Symbian OS v9 and later, client
+applications are required to have the <codeph>Location</codeph> capability
+to use the Location Acquisition API. Platform security checks fulfil much
+of the role of the privacy requester classes. </p> </section>
+<section><title>Privacy requester classes</title> <p>This section describes
+the privacy requester classes. </p> <p><b>Class
+description</b> </p> <p>Figure 1 shows the Privacy classes provided by the
+Location Acquisition API. </p> <fig id="GUID-BE65E6CB-5286-5DFE-B50C-8C088960432B">
+<title>                 Figure 1. Location Acquisition API privacy classes.
+              </title>
+<image href="GUID-24F464D8-36C1-592A-9BDB-673E771A5707_d0e266785_href.png" placement="inline"/>
+</fig> <p>A requester is defined as an agent
+that requests location information. There are two requester types: </p> <ul>
+<li id="GUID-79C7473E-C3DD-5011-BE50-F8D1075E9B07"><p>Service requesters </p> <p>A
+service requester represents any terminal or network application or service. </p> </li>
+<li id="GUID-FCEA02C9-CB00-5BD4-89FB-55D703DDE0B4"><p>Contact requesters </p> <p>A
+contact requester represents an individual person requesting the location. </p> </li>
+</ul> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-B484D0AF-BEB1-3D08-8D14-8E510AB8C465"><apiname>CRequestor::RequestorType()</apiname></xref> defines the type
+of the requester. The requester information is sent to Location Server before
+requesting location estimates. </p> <p><b>Defining
+requesters</b> </p> <p>Requesters may be defined in one of two ways: </p> <p><b>Defining a single requester</b> </p> <p>A single requester is defined by
+calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref>. The method signature
+is: <codeph>TInt SetRequestor(CRequestor::TRequestorType aType,          
+      CRequestor::TRequestorFormat aFormat, const TDesC&amp;             
+   aData)</codeph>. </p> <p>The requester is defined directly by the values
+supplied to the function’s parameters. This case is used by applications or
+services if they are the only request source. </p> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-5EE5AFBF-D212-34A9-8DF5-9B193673FA3F"><apiname>CRequestor::TRequestorType</apiname></xref> defines
+the type of requester: a service or contact. </p> <p> <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita#GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA/GUID-EF476AFD-2F46-39FA-B6E2-74759B549223"><apiname>CRequestor::TRequestorFormat</apiname></xref> defines
+the format of the requester identifier passed in <codeph>aData</codeph>: an
+application name, contact, email address etc. </p> <p><b>Defining a stack of requesters</b> </p> <p>If an application requests
+location information on behalf of another agent or agents, it can specify
+the chain of requesters by calling a second variant of <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref>.
+The method signature is: <codeph>TInt SetRequestor(const                 RRequestorStack&amp;
+aRequestorStack)</codeph>  </p> <p> <xref href="GUID-BAB32310-D928-3314-B253-9685721EABE0.dita"><apiname>RRequestorStack</apiname></xref> is
+a container for a list of the requesters on behalf of which the request is
+made. Each requester in the stack is represented by a <xref href="GUID-AA0D6BF8-DFD6-3A6D-8366-CFCB301D17CA.dita"><apiname>CRequestor</apiname></xref> class. </p> <p>Note: Regardless of the number of requesters, there is always one service
+requester, because the application executing the location request must be
+always shown, even if it made the request on behalf of a contact requester.
+For this reason, the last item in the requester stack must always be a service
+requester (type <xref href="GUID-B59CCB2E-400A-3359-B27D-06F75AC588A6.dita#GUID-B59CCB2E-400A-3359-B27D-06F75AC588A6/GUID-33B2120D-3388-304B-A0DC-E08F86F696FB"><apiname>CRequestorBase::ERequestorService</apiname></xref>). </p> </section>
+</conbody><related-links>
+<link href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita"><linktext>Position
+Area Data Classes</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ACF69260-D643-4709-8DAB-33FD92940F86.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ACF69260-D643-4709-8DAB-33FD92940F86" xml:lang="en"><title>Hierarchical
-application structures</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When browsing within a hierarchical application structure, the Symbian
-user interface offers direct access from one folder to another (sibling) folder
-in the same level. The Arrow left and Arrow right keys are used to accomplish
-this. The Navi pane displays the sibling folders as tabs.</p>
-<fig id="GUID-A99BF5A7-9D80-4CBA-A078-5992079E6728">
-<title>In this example, each displayed state is a folder containing a list
-of items. State 1 contains three folders (1-1, 1-2, 1-3). When the user has
-opened one of these, there is a possibility to move directly into the other
-two folders without first going back to state 1. Folder 1-1 contains two sub-folders
-and folder 1-2 contains one.</title>
-<image href="GUID-1248ED3E-438C-41E5-81D4-19FC721408BA_d0e81910_href.png" scale="70" placement="inline"/>
-</fig>
-<p>This additional navigation feature can be interpreted as a shortcut between
-sibling folders. For navigating hierarchical application structures, the basic
-navigation rules are applied, noticing the following:</p>
-<ul>
-<li><p>Moving from one folder to another has no effect on the function of
-the Back softkey in these views: from all of them, the Back function leads
-to the previous hierarchy level. </p></li>
-<li><p>The navigation shortcuts can only be applied when there is no other
-use for the Arrow left and Arrow right keys in the state.</p></li>
-</ul>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-3-1-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-3-1-1-6-1" xml:lang="en"><title>Clock</title><shortdesc>This section explains how to display digital and analogue clocks.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-6-1-1-4-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AD5F35EC-4459-589F-9C46-94901562E05F-GENID-1-8-1-6-1-1-4-1-5-1" xml:lang="en"><title>Clock</title><shortdesc>This section explains how to display digital and analogue clocks.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-AD5F35EC-4459-589F-9C46-94901562E05F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AD5F35EC-4459-589F-9C46-94901562E05F" xml:lang="en"><title>Clock</title><shortdesc>This section explains how to display digital and analogue clocks.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e144346_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e150880_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e68734_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e73877_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e40470_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ADB3FA27-1DC0-4A04-A443-A174EDADF49D_d0e46030_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e168926_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e175527_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429673_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AE69AA42-E633-5B7A-BAA1-6896950E0E19_d0e429835_href.png has changed
--- a/Symbian3/SDK/Source/GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4" xml:lang="en"><title>Touch
-UI</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When designing a Symbian application, the UI must be designed so that all
-tasks can be performed with touch. Therefore, the design must not rely on
-hardware keys (except for turning the power ON and OFF).  </p>
-<p>The touch UI in the Symbian platform involves various specific touch components,
-component and UI behavior changes, layout changes and additions to the <xref href="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita">user experience</xref>. The
-main differences or additions in touch UI include the following:</p>
-<ul>
-<li><p>Resistive touch screen (HW).</p><p> For more information, see <xref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita">Designing applications for
-touch UI</xref></p></li>
-<li><p>Capacitive touch screen (HW). </p><p>For more information, see <xref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita">Designing applications for
-touch UI</xref></p></li>
-<li><p>Single tap. For more information, see <xref href="GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita">Single
-tap</xref>.</p></li>
-<li><p>Multi-touch</p>.<p>For more information, see <xref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita">Multi-touch</xref>.</p></li>
-
-<li><p>Toolbar component in touch UI</p><p>For
-more information, see <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref>.</p></li>
-<li><p>Touch input component (virtual keyboard, hand-writing recognition and
-virtual ITU-T) </p><p>For more information,
-see <xref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita">Text
-input</xref>.</p></li>
-<li><p>Stylus pop-up menu component </p><p>For
-more information, see <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus
-pop-up menu</xref>.</p></li>
-<li><p>On-screen dialer application </p></li>
-<li><p>Additional touch functionality to some components (for example, Preview
-pop-up) </p><p>For more information,
-see <xref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita">Preview
-pop-up</xref>.</p></li>
-<li><p>Touch-enabled components</p><p>For
-more information, see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for UI components</xref>.</p></li>
-</ul>
-<p>There are two generic layouts for touch UI -portrait orientation and landscape
-orientation, see the following figure. The <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
-pane</xref> in Touch UI has three variants: extended, flat and small.</p>
-<fig id="GUID-81426DEE-7FBB-48C1-AB46-BCFF3944699C">
-<title>Default Symbian Touch UI layouts for portrait and landscape</title>
-<image href="GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e73877_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AE6F03EB-1430-4526-B4D0-57BC6C6029D4" xml:lang="en"><title>Touch
+UI</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When designing a Symbian application, the UI must be designed so that all
+tasks can be performed with touch. Therefore, the design must not rely on
+hardware keys (except for turning the power ON and OFF).  </p>
+<p>The touch UI in the Symbian platform involves various specific touch components,
+component and UI behavior changes, layout changes and additions to the <xref href="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita">user experience</xref>. The
+main differences or additions in touch UI include the following:</p>
+<ul>
+<li><p>Resistive touch screen (HW).</p><p> For more information, see <xref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita">Designing applications for
+touch UI</xref></p></li>
+<li><p>Capacitive touch screen (HW). </p><p>For more information, see <xref href="GUID-1FCD0312-7B28-47F9-BE54-822B74A8934C.dita">Designing applications for
+touch UI</xref></p></li>
+<li><p>Single tap. For more information, see <xref href="GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita">Single
+tap</xref>.</p></li>
+<li><p>Multi-touch.</p><p>For more information, see <xref href="GUID-17C64C2F-9426-4B41-9F0A-23060289D644.dita">Multi-touch</xref>.</p></li>
+
+<li><p>Toolbar component in touch UI</p><p>For
+more information, see <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref>.</p></li>
+<li><p>Touch input component (virtual keyboard, hand-writing recognition and
+virtual ITU-T) </p><p>For more information,
+see <xref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita">Text
+input</xref>.</p></li>
+<li><p>Stylus pop-up menu component </p><p>For
+more information, see <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus
+pop-up menu</xref>.</p></li>
+<li><p>On-screen dialer application </p></li>
+<li><p>Additional touch functionality to some components (for example, Preview
+pop-up) </p><p>For more information,
+see <xref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita">Preview
+pop-up</xref>.</p></li>
+<li><p>Touch-enabled components</p><p>For
+more information, see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch support for UI components</xref>.</p></li>
+</ul>
+<p>There are two generic layouts for touch UI -portrait orientation and landscape
+orientation, see the following figure. The <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
+pane</xref> in Touch UI has three variants: extended, flat and small.</p>
+<fig id="GUID-81426DEE-7FBB-48C1-AB46-BCFF3944699C">
+<title>Default Symbian Touch UI layouts for portrait and landscape</title>
+<image href="GUID-ADA36DA0-4E5D-483D-8AA7-C10A8E55ADD2_d0e68734_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e160811_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AE85751A-77CA-5C41-AF61-C9C9D776B066_d0e167412_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e287887_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e291520_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,291 +1,291 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5" xml:lang="en"><title>Certificate
-and Key Management Overview</title><abstract><p>The Certificate and Key Management component provides authentication
-services for <xref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita">Public
-Key Cryptography</xref>.</p></abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The main purpose of the Certificate and
-Key Management component is to provide validation services according to the
-Public Key Infrastructure (PKI) for <xref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita">X.509</xref> Certificates. </p> <p>The
-Certificate and Key Management component provides interfaces for the following: </p> <ul>
-<li id="GUID-A3109F52-09A5-5ACD-9844-883EB9E6E37B"><p>Storage and retrieval
-of certificates </p> </li>
-<li id="GUID-27F48C66-606E-594D-A1E0-8E1B7C048C6B"><p>Assignment of trust
-status to a certificate on an application-by-application basis </p> </li>
-<li id="GUID-CF4BAB94-8FC1-5375-BDA6-1DA46DF3F68B"><p>Certificate chain construction
-and validation </p> </li>
-<li id="GUID-C44175FE-15D6-5145-8F73-CAC7F10A506A"><p>Verification of trust
-of a certificate </p> </li>
-<li id="GUID-EFDD6039-5F57-5F41-B90C-2776B247F659"><p>Generation of asymmetric
-key pairs </p> </li>
-<li id="GUID-AB119A48-43E3-5C5F-80B6-F1A92E9B6531"><p>Protected storage of
-keys </p> </li>
-<li id="GUID-14E232E1-73F1-58EE-A435-53B3D46680D4"><p>Key import and export </p> </li>
-<li id="GUID-21FCB8AB-8399-50E3-847A-53DF092BBA25"><p>Authenticated execution
-of private key operations </p> </li>
-</ul> </section>
-<section><title>Required background</title> <p>To understand Certificate and
-Key Management in detail, you need to have a basic understanding of the following: </p> <ul>
-<li id="GUID-1A307F21-3BBF-525D-98B1-3AC2035786EC"><p><xref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita">Public
-Key Cryptography</xref>  </p> </li>
-<li id="GUID-0EA3DF92-DFE8-5265-97F6-862D5198E9FF"><p><xref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita">Certificates</xref>  </p> </li>
-<li id="GUID-0D2E1131-4C60-56CB-BCDD-432AC5F660F1"><p><xref href="GUID-5C58F7D1-D672-5B6D-AD48-863EC68F7446.dita">Digital
-Signatures</xref>  </p> </li>
-</ul> </section>
-<section><title>Key concepts and terms</title> <dl>
-<dlentry>
-<dt>Certificate</dt>
-<dd><p>A certificate is an electronic document that binds an identity to a
-particular public or private key pair. It is commonly used to authenticate
-cryptographic public keys. </p> <p>Certificates are issued by a Certification
-Authority (CA). They usually include information such as a label, serial number,
-validity period, certificate format (for example, X.509) and algorithm type
-(for example, MD2RSA). </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Key</dt>
-<dd><p>A cryptography key is a constant value applied using a cryptographic
-algorithm to encrypt text or to decrypt encrypted text. </p> <p>Keys are classified
-as symmetric and asymmetric based on the type of algorithm applied. If the
-same key is used for both encryption and decryption, it is symmetric. If different
-keys are used for encryption and decryption, they are asymmetric. Asymmetric
-keys exist in the form of a public and private key pair, where the public
-key is used for encryption and the private key is used for decryption. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Certificate Store</dt>
-<dd><p>A certificate store is a database or a file that stores and manipulates
-certificates. </p> <p>The certificate store provides the following functionality: </p> <ul>
-<li id="GUID-4FABC2C2-8133-5398-9747-0A247344A52C"><p>Generation, storage
-and retrieval certificates </p> </li>
-<li id="GUID-F527AAE6-DCDE-5ECC-AB89-1299DC0800A4"><p>Assignment of trust
-status to certificates </p> </li>
-<li id="GUID-BA60380A-BAC7-59D4-BD7E-5C28ED24921A"><p>Retrieval of list of
-applications trusting a certificate </p> </li>
-</ul> </dd>
-</dlentry>
-<dlentry>
-<dt>Key Store</dt>
-<dd><p>A key store is a repository of keys that can be retrieved and used
-to accomplish a variety of tasks. </p> <p>The key store provides the following
-functionality: </p> <ul>
-<li id="GUID-F5BC1B3C-B400-5392-A68C-ACDB84ABACFC"><p>Generation, import and
-export of RSA, DSA, and DH key pairs </p> </li>
-<li id="GUID-4A5C1491-C922-5C00-94D6-0E9E05310102"><p>Listing of stored keys </p> </li>
-<li id="GUID-1F7B3427-3EB7-5411-A30C-0BB749C1EE73"><p>Authentication of users </p> </li>
-<li id="GUID-2DB4F4DF-BB77-5B7F-A724-BBAE21D5B4F4"><p>Private key operations
-for authenticated users </p> </li>
-</ul> </dd>
-</dlentry>
-<dlentry>
-<dt>Token</dt>
-<dd><p>A token is a physical instantiation of an object, such as a certificate
-or a key, stored in a phone. Each token belongs to a group of tokens called
-a token type. For example, an X.509 certificate is a token which belongs to
-the X.509 token type. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>The following diagram shows the basic
-architecture of the Certificate and Key Management component. The blocks in
-blue are internal to the component. </p> <fig id="GUID-4532D14E-A9FE-595C-8B75-4FA2AE57B8EA">
-<image href="GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389379_href.jpg" placement="inline"/>
-</fig> <p>The various blocks in the basic architecture diagram of the Certificate
-and Key Management component are explained as follows: </p> <ul>
-<li id="GUID-0FCBBCA0-CD31-51AB-84D1-93994EAC54E2"><p> <b>Client Application</b>:
-This is a typical application that accesses the certificates or the keys of
-the device through Certificate and Key Management component. </p> <p>For example,
-a web browser that wishes to load a bank's web page to perform a money-transfer
-operation (in a secured mode using an <codeph>https</codeph> connection) first
-checks the device's certificate store for a certificate that trusts the bank's
-server and then loads the particular page. </p> </li>
-<li id="GUID-B649A55C-7446-56D8-85FB-98AB4879B8CE"><p> <b>Unified Stores</b>:
-The <xref href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita">Unified Stores</xref> APIs
-form the primary access point for client applications to use certificates
-or keys stored in the device. The <xref href="GUID-0010EB39-8C23-5453-BE96-4EFC520B6F81.dita">Unified
-Certificate Store</xref> provides a unified view of all the certificates in
-the device while the <xref href="GUID-695FCEB8-EA04-5C1C-A197-648275BA0281.dita">Unified
-Key Store</xref> provides a similar view of all the keys in the device. </p> </li>
-<li id="GUID-0A28DE19-3E16-5094-9964-32BE1BF50107"><p> <b>Generic Certificate
-and Key Stores</b>: These are the various certificate and key stores in the
-device. </p> </li>
-<li id="GUID-197709E0-7811-55F1-9EA9-7D80389B3D0A"><p> <b>File-Based Store
-Implementation</b>: The certificate and key stores use Symbian's <xref href="GUID-C7150120-74C2-5FF1-99F0-0A267393E342.dita">file-based
-store implementation</xref>. Based on the operations to be performed on the
-keys and certificates, the file-based implementation updates the physical
-certificate and key store files. </p> </li>
-</ul> </section>
-<section><title>APIs</title> <p>The following table lists the key APIs of
-the Certificate and Key Management component. The table lists APIs that perform
-the following tasks: </p> <ul>
-<li id="GUID-F6DF549D-F1B7-5662-AC36-50453FB56E02"><p>Provide implementation
-for certificate and key stores, and for manipulating various types of certificates. </p> </li>
-<li id="GUID-47864D9B-97A7-596F-9638-978E236212DE"><p>Perform different types
-of ASN.1 (Abstract Syntax Notation One) encoding. </p> </li>
-</ul> <table id="GUID-C78DF93D-7684-52FB-BA00-3A060789E26B">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b>Unified Store APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AD63C29A-17C3-375C-840F-42A92422300D.dita"><apiname>CUnifiedCertStore</apiname></xref>  </p> </entry>
-<entry><p>Provides a common implementation for all certificate stores in the
-device. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita"><apiname>CUnifiedKeyStore</apiname></xref>  </p> </entry>
-<entry><p>Provides a common implementation for all key stores in the device. </p> </entry>
-</row>
-<row>
-<entry><p> <b>Certificate APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4C645733-8F0C-3AC8-A19E-0AB005F4CE7F.dita"><apiname>CX500DistinguishedName</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for parsing and matching the <xref href="GUID-C93D021E-D99A-5839-AB54-3D8D7620214A.dita">X.500</xref> distinguished
-names. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-21954042-44FA-3376-A4C1-D7DE560144C8.dita"><apiname>CX520AttributeTypeAndValue</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for parsing and matching attribute types
-and values, as defined by the X.520 standard. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1309FCDC-229B-36C7-85A9-4540ABC869F9.dita"><apiname>CX509GeneralName</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for manipulation of X.509 certificates. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A919BE84-8257-3911-9AD1-B1DB736346CE.dita"><apiname>CX509CertChain</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for X.509 certificate chain validation. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A9B59AEF-C278-3E20-A57B-15293F833A71.dita"><apiname>CX509RSAPublicKey</apiname></xref>  </p> </entry>
-<entry><p>Provides APIs for encoding and decoding of RSA public keys. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9AD19EB1-44D4-339A-A30A-2B43817DB2CB.dita"><apiname>CX509ExtensionBase</apiname></xref>  </p> </entry>
-<entry><p>Provides APIs for manipulating various X.509 certificate extensions. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3E94241B-3B37-3C64-8CFF-7795063160AF.dita"><apiname>CWTLSCertificate</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for construction and manipulation of <xref href="GUID-A636C1B3-8AB2-52D7-BB19-4CC93F4BDD97.dita">WTLS</xref> (Wireless Transport
-Layer Security) certificates. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-04C4024C-2987-37F9-8D85-ACCB3D4C1293.dita"><apiname>CWTLSName</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for manipulation of WTLS names. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A8600958-D424-366C-A56D-68A77949EA28.dita"><apiname>CWTLSRSAPublicKey</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for manipulation of RSA public keys associated
-with WTLS certificates. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-56E949D5-EA4F-361C-8523-2965A336B009.dita"><apiname>CWTLSCertChain</apiname></xref>  </p> </entry>
-<entry><p>Provides implementation for validation of WTLS certificate chains. </p> </entry>
-</row>
-<row>
-<entry><p> <b>ASN.1 Encoding APIs</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1EBCC3C4-3E57-3424-BB41-E74E8120197E.dita"><apiname>CASN1EncBigInt</apiname></xref>  </p> </entry>
-<entry><p>Encodes Big Integer objects. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6B9883C8-9382-3941-A949-3D8E2B7C7EA5.dita"><apiname>CASN1EncBitString</apiname></xref>  </p> </entry>
-<entry><p>Encodes bit strings (for example, keys). </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-DE64C76D-D70B-36DC-826C-1662CFBD26D4.dita"><apiname>CASN1EncBoolean</apiname></xref>  </p> </entry>
-<entry><p>Encodes Boolean values. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1E9BA30C-729E-3C49-8DB4-5D693EF2C84E.dita"><apiname>CASN1EncEncoding</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates already encoded information. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-964E6C04-4AE0-3085-AF0A-6580264AEF36.dita"><apiname>CASN1EncExplicitTag</apiname></xref>  </p> </entry>
-<entry><p>Wraps other encoding objects and provides them with an explicit
-tag. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-523EA13D-42F1-31DE-95F2-91AC56C58B62.dita"><apiname>CASN1EncGeneralizedTime</apiname></xref>  </p> </entry>
-<entry><p>Encodes time-related objects. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-B4839A2D-E3C1-3405-8776-38A3F5D47FD3.dita"><apiname>CASN1EncInt</apiname></xref>  </p> </entry>
-<entry><p>Encodes <codeph>TInt</codeph> objects. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1ED494A4-503F-3651-946E-E99771348EF6.dita"><apiname>CASN1EncNull</apiname></xref>  </p> </entry>
-<entry><p>Encodes NULL values. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-45B0317A-CBB5-369E-877B-C166F9BAE3DF.dita"><apiname>CASN1EncObjectIdentifier</apiname></xref>  </p> </entry>
-<entry><p>Encodes object identifiers. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4170E6D8-A1A5-3E84-B12D-D737CEC0A698.dita"><apiname>CASN1EncOctetString</apiname></xref>  </p> </entry>
-<entry><p>Encodes octet strings. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-1B53FA4B-3D36-38AF-97CE-6BA64E9520F3.dita"><apiname>CASN1EncPrimitive</apiname></xref>  </p> </entry>
-<entry><p>All ASN.1 primitive type encoding classes derive from this class. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-22AC4FE1-1EB4-341C-9CF8-F153F0346858.dita"><apiname>CASN1EncPrintableString</apiname></xref>  </p> </entry>
-<entry><p>Encodes printable strings. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A0846E03-BC80-3549-B59D-A0F2230E9AC9.dita"><apiname>CASN1EncSequence</apiname></xref>  </p> </entry>
-<entry><p>Encodes the <xref href="http://www.asn1.org/books/Explain.html" scope="external">SEQUENCE</xref> and <xref href="http://www.asn1.org/books/Explain.html" scope="external">SEQUENCE-OF</xref> data types. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-98D3BDD5-8136-3C66-8381-73E0A8EE910E.dita"><apiname>CASN1EncSet</apiname></xref>  </p> </entry>
-<entry><p>Encodes the <xref href="http://www.asn1.org/books/Explain.html" scope="external">SET</xref> and <xref href="http://www.asn1.org/books/Explain.html" scope="external">SET-OF</xref> data types. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>The Certificate and Key Management
-component performs the following tasks: </p> <ul>
-<li id="GUID-1C7ED95B-442D-5D05-8E20-95B0F3E17438"><p>Validating certificates
-in PKIX </p> </li>
-<li id="GUID-8D85F504-F3AB-545E-8FF1-3F6FCEC0D5E8"><p>Adding certificates </p> </li>
-<li id="GUID-AC9BF0B0-1A1B-5995-A443-F4E21123CE56"><p>Finding certificates </p> </li>
-<li id="GUID-24C041AA-A7BF-5887-B993-E1EA5BA35B66"><p>Managing applicability
-and trust settings </p> </li>
-<li id="GUID-1FC9F3D9-69C5-56E1-99F6-31B36644B42D"><p>Removing certificates </p> </li>
-<li id="GUID-2923D772-0455-5B9A-BD9E-0CC20678A729"><p>Retrieving certificates </p> </li>
-<li id="GUID-B1BEDD53-5309-529F-B29A-C42D62ABCC3E"><p>Creating keys </p> </li>
-<li id="GUID-46E25298-08E8-560B-9084-5BD38154FA32"><p>Importing keys </p> </li>
-<li id="GUID-6FFE5197-8FA0-5760-A068-544CBAB21798"><p>Exporting keys </p> </li>
-<li id="GUID-6B1E12DA-6B0C-58F5-8A31-3BF5D2A9D464"><p>Retrieving keys </p> </li>
-<li id="GUID-F13A93BD-B5F5-5FD8-A035-817EFD6A2CF6"><p>Deleting keys </p> </li>
-<li id="GUID-3BC3D476-6DE9-5DF2-AC9E-7952C87C38DE"><p>Signing keys </p> </li>
-<li id="GUID-B9D742CE-C2DE-5930-B3E6-4837B7AC1579"><p>Retrieving key stores </p> </li>
-<li id="GUID-0B2B267D-F907-5E0D-BE31-DDB4D06F51D8"><p>Setting and retrieving
-authentication policies </p> </li>
-<li id="GUID-ED651B05-554A-5B02-BDAF-B61282F7DB4D"><p>Setting use and management
-policies </p> </li>
-</ul> <p>See <xref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita">Unified
-Certificate Store Tutorial</xref> and <xref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita">Unified
-Keystore Tutorials</xref> for details of these tasks. </p> </section>
-</conbody><related-links>
-<link href="GUID-6F73ED8C-E259-5717-AB84-0C2933A866DA.dita"><linktext>OS Security
-Concepts</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AE96F25E-45A2-5C00-9F27-BB3E17C8E6E5" xml:lang="en"><title>Certificate
+and Key Management Overview</title><abstract><p>The Certificate and Key Management component provides authentication
+services for <xref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita">Public
+Key Cryptography</xref>.</p></abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The main purpose of the Certificate and
+Key Management component is to provide validation services according to the
+Public Key Infrastructure (PKI) for <xref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita">X.509</xref> Certificates. </p> <p>The
+Certificate and Key Management component provides interfaces for the following: </p> <ul>
+<li id="GUID-A3109F52-09A5-5ACD-9844-883EB9E6E37B"><p>Storage and retrieval
+of certificates </p> </li>
+<li id="GUID-27F48C66-606E-594D-A1E0-8E1B7C048C6B"><p>Assignment of trust
+status to a certificate on an application-by-application basis </p> </li>
+<li id="GUID-CF4BAB94-8FC1-5375-BDA6-1DA46DF3F68B"><p>Certificate chain construction
+and validation </p> </li>
+<li id="GUID-C44175FE-15D6-5145-8F73-CAC7F10A506A"><p>Verification of trust
+of a certificate </p> </li>
+<li id="GUID-EFDD6039-5F57-5F41-B90C-2776B247F659"><p>Generation of asymmetric
+key pairs </p> </li>
+<li id="GUID-AB119A48-43E3-5C5F-80B6-F1A92E9B6531"><p>Protected storage of
+keys </p> </li>
+<li id="GUID-14E232E1-73F1-58EE-A435-53B3D46680D4"><p>Key import and export </p> </li>
+<li id="GUID-21FCB8AB-8399-50E3-847A-53DF092BBA25"><p>Authenticated execution
+of private key operations </p> </li>
+</ul> </section>
+<section><title>Required background</title> <p>To understand Certificate and
+Key Management in detail, you need to have a basic understanding of the following: </p> <ul>
+<li id="GUID-1A307F21-3BBF-525D-98B1-3AC2035786EC"><p><xref href="GUID-FB2CAA46-8EBB-5F76-847C-F3B953C9D31C.dita">Public
+Key Cryptography</xref>  </p> </li>
+<li id="GUID-0EA3DF92-DFE8-5265-97F6-862D5198E9FF"><p><xref href="GUID-911E9F7E-D0AD-55EC-A3F4-1D427F803780.dita">Certificates</xref>  </p> </li>
+<li id="GUID-0D2E1131-4C60-56CB-BCDD-432AC5F660F1"><p><xref href="GUID-5C58F7D1-D672-5B6D-AD48-863EC68F7446.dita">Digital
+Signatures</xref>  </p> </li>
+</ul> </section>
+<section><title>Key concepts and terms</title> <dl>
+<dlentry>
+<dt>Certificate</dt>
+<dd><p>A certificate is an electronic document that binds an identity to a
+particular public or private key pair. It is commonly used to authenticate
+cryptographic public keys. </p> <p>Certificates are issued by a Certification
+Authority (CA). They usually include information such as a label, serial number,
+validity period, certificate format (for example, X.509) and algorithm type
+(for example, MD2RSA). </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Key</dt>
+<dd><p>A cryptography key is a constant value applied using a cryptographic
+algorithm to encrypt text or to decrypt encrypted text. </p> <p>Keys are classified
+as symmetric and asymmetric based on the type of algorithm applied. If the
+same key is used for both encryption and decryption, it is symmetric. If different
+keys are used for encryption and decryption, they are asymmetric. Asymmetric
+keys exist in the form of a public and private key pair, where the public
+key is used for encryption and the private key is used for decryption. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Certificate Store</dt>
+<dd><p>A certificate store is a database or a file that stores and manipulates
+certificates. </p> <p>The certificate store provides the following functionality: </p> <ul>
+<li id="GUID-4FABC2C2-8133-5398-9747-0A247344A52C"><p>Generation, storage
+and retrieval certificates </p> </li>
+<li id="GUID-F527AAE6-DCDE-5ECC-AB89-1299DC0800A4"><p>Assignment of trust
+status to certificates </p> </li>
+<li id="GUID-BA60380A-BAC7-59D4-BD7E-5C28ED24921A"><p>Retrieval of list of
+applications trusting a certificate </p> </li>
+</ul> </dd>
+</dlentry>
+<dlentry>
+<dt>Key Store</dt>
+<dd><p>A key store is a repository of keys that can be retrieved and used
+to accomplish a variety of tasks. </p> <p>The key store provides the following
+functionality: </p> <ul>
+<li id="GUID-F5BC1B3C-B400-5392-A68C-ACDB84ABACFC"><p>Generation, import and
+export of RSA, DSA, and DH key pairs </p> </li>
+<li id="GUID-4A5C1491-C922-5C00-94D6-0E9E05310102"><p>Listing of stored keys </p> </li>
+<li id="GUID-1F7B3427-3EB7-5411-A30C-0BB749C1EE73"><p>Authentication of users </p> </li>
+<li id="GUID-2DB4F4DF-BB77-5B7F-A724-BBAE21D5B4F4"><p>Private key operations
+for authenticated users </p> </li>
+</ul> </dd>
+</dlentry>
+<dlentry>
+<dt>Token</dt>
+<dd><p>A token is a physical instantiation of an object, such as a certificate
+or a key, stored in a phone. Each token belongs to a group of tokens called
+a token type. For example, an X.509 certificate is a token which belongs to
+the X.509 token type. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>The following diagram shows the basic
+architecture of the Certificate and Key Management component. The blocks in
+blue are internal to the component. </p> <fig id="GUID-4532D14E-A9FE-595C-8B75-4FA2AE57B8EA">
+<image href="GUID-5BB017AA-46AE-5461-9184-98CE7FA898B9_d0e389217_href.jpg" placement="inline"/>
+</fig> <p>The various blocks in the basic architecture diagram of the Certificate
+and Key Management component are explained as follows: </p> <ul>
+<li id="GUID-0FCBBCA0-CD31-51AB-84D1-93994EAC54E2"><p> <b>Client Application</b>:
+This is a typical application that accesses the certificates or the keys of
+the device through Certificate and Key Management component. </p> <p>For example,
+a web browser that wishes to load a bank's web page to perform a money-transfer
+operation (in a secured mode using an <codeph>https</codeph> connection) first
+checks the device's certificate store for a certificate that trusts the bank's
+server and then loads the particular page. </p> </li>
+<li id="GUID-B649A55C-7446-56D8-85FB-98AB4879B8CE"><p> <b>Unified Stores</b>:
+The <xref href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita">Unified Stores</xref> APIs
+form the primary access point for client applications to use certificates
+or keys stored in the device. The <xref href="GUID-0010EB39-8C23-5453-BE96-4EFC520B6F81.dita">Unified
+Certificate Store</xref> provides a unified view of all the certificates in
+the device while the <xref href="GUID-695FCEB8-EA04-5C1C-A197-648275BA0281.dita">Unified
+Key Store</xref> provides a similar view of all the keys in the device. </p> </li>
+<li id="GUID-0A28DE19-3E16-5094-9964-32BE1BF50107"><p> <b>Generic Certificate
+and Key Stores</b>: These are the various certificate and key stores in the
+device. </p> </li>
+<li id="GUID-197709E0-7811-55F1-9EA9-7D80389B3D0A"><p> <b>File-Based Store
+Implementation</b>: The certificate and key stores use Symbian's <xref href="GUID-C7150120-74C2-5FF1-99F0-0A267393E342.dita">file-based
+store implementation</xref>. Based on the operations to be performed on the
+keys and certificates, the file-based implementation updates the physical
+certificate and key store files. </p> </li>
+</ul> </section>
+<section><title>APIs</title> <p>The following table lists the key APIs of
+the Certificate and Key Management component. The table lists APIs that perform
+the following tasks: </p> <ul>
+<li id="GUID-F6DF549D-F1B7-5662-AC36-50453FB56E02"><p>Provide implementation
+for certificate and key stores, and for manipulating various types of certificates. </p> </li>
+<li id="GUID-47864D9B-97A7-596F-9638-978E236212DE"><p>Perform different types
+of ASN.1 (Abstract Syntax Notation One) encoding. </p> </li>
+</ul> <table id="GUID-C78DF93D-7684-52FB-BA00-3A060789E26B">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>Unified Store APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-AD63C29A-17C3-375C-840F-42A92422300D.dita"><apiname>CUnifiedCertStore</apiname></xref>  </p> </entry>
+<entry><p>Provides a common implementation for all certificate stores in the
+device. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita"><apiname>CUnifiedKeyStore</apiname></xref>  </p> </entry>
+<entry><p>Provides a common implementation for all key stores in the device. </p> </entry>
+</row>
+<row>
+<entry><p> <b>Certificate APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4C645733-8F0C-3AC8-A19E-0AB005F4CE7F.dita"><apiname>CX500DistinguishedName</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for parsing and matching the <xref href="GUID-C93D021E-D99A-5839-AB54-3D8D7620214A.dita">X.500</xref> distinguished
+names. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-21954042-44FA-3376-A4C1-D7DE560144C8.dita"><apiname>CX520AttributeTypeAndValue</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for parsing and matching attribute types
+and values, as defined by the X.520 standard. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1309FCDC-229B-36C7-85A9-4540ABC869F9.dita"><apiname>CX509GeneralName</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for manipulation of X.509 certificates. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A919BE84-8257-3911-9AD1-B1DB736346CE.dita"><apiname>CX509CertChain</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for X.509 certificate chain validation. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A9B59AEF-C278-3E20-A57B-15293F833A71.dita"><apiname>CX509RSAPublicKey</apiname></xref>  </p> </entry>
+<entry><p>Provides APIs for encoding and decoding of RSA public keys. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9AD19EB1-44D4-339A-A30A-2B43817DB2CB.dita"><apiname>CX509ExtensionBase</apiname></xref>  </p> </entry>
+<entry><p>Provides APIs for manipulating various X.509 certificate extensions. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3E94241B-3B37-3C64-8CFF-7795063160AF.dita"><apiname>CWTLSCertificate</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for construction and manipulation of <xref href="GUID-A636C1B3-8AB2-52D7-BB19-4CC93F4BDD97.dita">WTLS</xref> (Wireless Transport
+Layer Security) certificates. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-04C4024C-2987-37F9-8D85-ACCB3D4C1293.dita"><apiname>CWTLSName</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for manipulation of WTLS names. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A8600958-D424-366C-A56D-68A77949EA28.dita"><apiname>CWTLSRSAPublicKey</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for manipulation of RSA public keys associated
+with WTLS certificates. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-56E949D5-EA4F-361C-8523-2965A336B009.dita"><apiname>CWTLSCertChain</apiname></xref>  </p> </entry>
+<entry><p>Provides implementation for validation of WTLS certificate chains. </p> </entry>
+</row>
+<row>
+<entry><p> <b>ASN.1 Encoding APIs</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1EBCC3C4-3E57-3424-BB41-E74E8120197E.dita"><apiname>CASN1EncBigInt</apiname></xref>  </p> </entry>
+<entry><p>Encodes Big Integer objects. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6B9883C8-9382-3941-A949-3D8E2B7C7EA5.dita"><apiname>CASN1EncBitString</apiname></xref>  </p> </entry>
+<entry><p>Encodes bit strings (for example, keys). </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-DE64C76D-D70B-36DC-826C-1662CFBD26D4.dita"><apiname>CASN1EncBoolean</apiname></xref>  </p> </entry>
+<entry><p>Encodes Boolean values. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1E9BA30C-729E-3C49-8DB4-5D693EF2C84E.dita"><apiname>CASN1EncEncoding</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates already encoded information. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-964E6C04-4AE0-3085-AF0A-6580264AEF36.dita"><apiname>CASN1EncExplicitTag</apiname></xref>  </p> </entry>
+<entry><p>Wraps other encoding objects and provides them with an explicit
+tag. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-523EA13D-42F1-31DE-95F2-91AC56C58B62.dita"><apiname>CASN1EncGeneralizedTime</apiname></xref>  </p> </entry>
+<entry><p>Encodes time-related objects. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-B4839A2D-E3C1-3405-8776-38A3F5D47FD3.dita"><apiname>CASN1EncInt</apiname></xref>  </p> </entry>
+<entry><p>Encodes <codeph>TInt</codeph> objects. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1ED494A4-503F-3651-946E-E99771348EF6.dita"><apiname>CASN1EncNull</apiname></xref>  </p> </entry>
+<entry><p>Encodes NULL values. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-45B0317A-CBB5-369E-877B-C166F9BAE3DF.dita"><apiname>CASN1EncObjectIdentifier</apiname></xref>  </p> </entry>
+<entry><p>Encodes object identifiers. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4170E6D8-A1A5-3E84-B12D-D737CEC0A698.dita"><apiname>CASN1EncOctetString</apiname></xref>  </p> </entry>
+<entry><p>Encodes octet strings. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-1B53FA4B-3D36-38AF-97CE-6BA64E9520F3.dita"><apiname>CASN1EncPrimitive</apiname></xref>  </p> </entry>
+<entry><p>All ASN.1 primitive type encoding classes derive from this class. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-22AC4FE1-1EB4-341C-9CF8-F153F0346858.dita"><apiname>CASN1EncPrintableString</apiname></xref>  </p> </entry>
+<entry><p>Encodes printable strings. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A0846E03-BC80-3549-B59D-A0F2230E9AC9.dita"><apiname>CASN1EncSequence</apiname></xref>  </p> </entry>
+<entry><p>Encodes the <xref href="http://www.asn1.org/books/Explain.html" scope="external">SEQUENCE</xref> and <xref href="http://www.asn1.org/books/Explain.html" scope="external">SEQUENCE-OF</xref> data types. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-98D3BDD5-8136-3C66-8381-73E0A8EE910E.dita"><apiname>CASN1EncSet</apiname></xref>  </p> </entry>
+<entry><p>Encodes the <xref href="http://www.asn1.org/books/Explain.html" scope="external">SET</xref> and <xref href="http://www.asn1.org/books/Explain.html" scope="external">SET-OF</xref> data types. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>The Certificate and Key Management
+component performs the following tasks: </p> <ul>
+<li id="GUID-1C7ED95B-442D-5D05-8E20-95B0F3E17438"><p>Validating certificates
+in PKIX </p> </li>
+<li id="GUID-8D85F504-F3AB-545E-8FF1-3F6FCEC0D5E8"><p>Adding certificates </p> </li>
+<li id="GUID-AC9BF0B0-1A1B-5995-A443-F4E21123CE56"><p>Finding certificates </p> </li>
+<li id="GUID-24C041AA-A7BF-5887-B993-E1EA5BA35B66"><p>Managing applicability
+and trust settings </p> </li>
+<li id="GUID-1FC9F3D9-69C5-56E1-99F6-31B36644B42D"><p>Removing certificates </p> </li>
+<li id="GUID-2923D772-0455-5B9A-BD9E-0CC20678A729"><p>Retrieving certificates </p> </li>
+<li id="GUID-B1BEDD53-5309-529F-B29A-C42D62ABCC3E"><p>Creating keys </p> </li>
+<li id="GUID-46E25298-08E8-560B-9084-5BD38154FA32"><p>Importing keys </p> </li>
+<li id="GUID-6FFE5197-8FA0-5760-A068-544CBAB21798"><p>Exporting keys </p> </li>
+<li id="GUID-6B1E12DA-6B0C-58F5-8A31-3BF5D2A9D464"><p>Retrieving keys </p> </li>
+<li id="GUID-F13A93BD-B5F5-5FD8-A035-817EFD6A2CF6"><p>Deleting keys </p> </li>
+<li id="GUID-3BC3D476-6DE9-5DF2-AC9E-7952C87C38DE"><p>Signing keys </p> </li>
+<li id="GUID-B9D742CE-C2DE-5930-B3E6-4837B7AC1579"><p>Retrieving key stores </p> </li>
+<li id="GUID-0B2B267D-F907-5E0D-BE31-DDB4D06F51D8"><p>Setting and retrieving
+authentication policies </p> </li>
+<li id="GUID-ED651B05-554A-5B02-BDAF-B61282F7DB4D"><p>Setting use and management
+policies </p> </li>
+</ul> <p>See <xref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita">Unified
+Certificate Store Tutorial</xref> and <xref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita">Unified
+Keystore Tutorials</xref> for details of these tasks. </p> </section>
+</conbody><related-links>
+<link href="GUID-6F73ED8C-E259-5717-AB84-0C2933A866DA.dita"><linktext>OS Security
+Concepts</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AE979B97-5610-42F3-99A7-5A3D66D3C2E6" xml:lang="en"><title>Sensor
-interaction</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following types of interaction are enabled by using the sensors on
-the device:</p>
-<ol>
-<li id="GUID-3EA00C46-70FB-4C6F-8B9D-B766FA8C0692"><p>Tapping the device (for
-example, double tap) to perform a given function.<note> Tapping interaction
-is not recommended for touch devices since the tap might also be interpreted
-as a touch action if you tap on the touch screen area.</note></p></li>
-<li id="GUID-BB715BEE-CB95-4F0E-9676-8CDE8D525C02"><p>Changing the screen
-orientation on the device from portrait to landscape as the device is rotated.</p></li>
-<li id="GUID-69332FF5-EDD2-4EA9-8569-A72BE7DA9961"><p>Silencing an incoming
-call when the device orientation is changed from screen down (for example
-on a table) to screen up and back again).</p></li>
-<li id="GUID-FF0D8D87-D2A9-4206-A6A4-98EDE1A0BAA0"><p>Changing application
-settings based on the ambient light conditions, e.g. bright sunshine or night
-time.</p></li>
-<li id="GUID-D3B06257-1088-43A5-9D2E-513971297EAE"><p>In a map application,
-changing the orientation of a map based on the device's compass orientation.</p></li>
-<li id="GUID-2414DEDE-D503-4798-AA6C-B5F8D85BB147"><p>Allowing movement gestures,
-such as device rotation, to trigger an action.</p></li>
-<li id="GUID-1B8F18AC-08C3-4F6D-8A91-7EAE8CFADD5B"><p>Trigger an action when
-the device comes in close proximity to the user's hand or head.</p></li>
-</ol>
-<p>The supported sensor interactions are configurable on the device. The users
-should be given the option to set their desired interactions.</p>
-<p>Apart from sensing actions, the device can give tactile (vibrating) feedback
-to acknowledge that the interaction has been successful.</p>
-<section id="GUID-4C7164D8-5EAB-45D1-AD32-1DAD8B1F8AC0"><title>Using
-sensor interaction in C++ applications</title><p>The APIs to use for sensor
-interaction are the Sensor channel API and the Sensor definitions API. </p><p>For
-implementation information and description of the APIs, see the <xref href="GUID-2F3883C4-7286-42E4-9196-2F3304298405.dita">API specification</xref> for
-the sensor APIs.</p><p>Sensors channels come in three types based on the kind
-of data that is delivered on the sensor channel: event, status, and continuous
-data. For more information, see <xref href="GUID-7A487E17-8772-4037-8234-A99929476ED7.dita">Definitions
-for the sensor APIs</xref>.</p></section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e11400_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e12675_href.png has changed
--- a/Symbian3/SDK/Source/GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,103 +1,103 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179" xml:lang="en"><title>HTTP
-Utilities Library (InetProtUtils) Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-627EB2DD-530A-5A6E-AC58-854A5C8D636B"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-0ab18a4d-c1a6-49bc-9420-3200f7ead173.zip" scope="external">ExampleInetProtUtil.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-0ab18a4d-c1a6-49bc-9420-3200f7ead173.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Description</title> <p>This example code demonstrates
-the usage of utilities provided by the InetProtUtil API. The users should
-have a prior knowledge of concepts associated with it, such as URLs and URI
-components. </p> <p>The central class is <codeph>CExampleInetProtUtil</codeph>,
-which demonstrates the following functionality: </p> <ul>
-<li id="GUID-52A8E18E-25F2-50F1-820D-5A892160F031"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-E3A0AB40-553E-5689-A703-075C75430B29">Creating a URI</xref>  </p> </li>
-<li id="GUID-C6E9655F-237D-5406-85EF-6D5A0EB5C140"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-FBCF247C-5660-5A72-B837-AFAC9E51FF60">Modifying a URI</xref>  </p> </li>
-<li id="GUID-1397CABB-FCAB-53D8-94EE-0E9A3353FD21"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-DBB7553C-0334-55CB-A5DE-9A233E88780E">Resolving a URI</xref>  </p> </li>
-<li id="GUID-9443407C-F9C3-51FF-B3A9-93AB1DC60955"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-C3DE7478-80E4-5E05-90F9-C32E8C2624B2">Parsing a URI</xref>  </p> </li>
-<li id="GUID-11D5D373-22D0-529D-9B4F-E8DD7470853B"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-F8F98700-948D-542C-9B39-6DE3E257C3F3">Validating a URI</xref>  </p> </li>
-<li id="GUID-9249C891-4F25-53C8-ACBE-C0FA166D64F6"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-B196045B-6DAF-561F-950C-5CDFB8B854A6">Extracting URI components</xref>  </p> </li>
-<li id="GUID-8665CD3D-B632-5863-A0D3-BEEEB64CB017"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-D30B9D97-7ADE-58EA-9AC0-8DC2095BCBEC">Retrieving a filename from a URI</xref>  </p> </li>
-<li id="GUID-29D99927-864E-5FB5-BB61-C96C8636E334"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-20375BA7-F367-5E12-9DC6-F9BDF4146E8A">Adding and removing delimiters from a URI</xref>  </p> </li>
-<li id="GUID-F956A7AA-CA58-53C5-B08A-19E1575E0CC1"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-363D45CC-AC6E-5397-B825-086919FCBF50">Removing whitespace from a URI</xref>  </p> </li>
-<li id="GUID-809AF54B-EBD5-5DC5-9A36-4D02721BF1EB"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-EC077086-FC68-50ED-8BCC-AFBD58205186">Escape encoding and decoding a URI</xref>  </p> </li>
-</ul> <p id="GUID-E3A0AB40-553E-5689-A703-075C75430B29"><b>Creating a URI</b> </p> <codeblock id="GUID-734568B9-1C2F-53A7-9D00-4FDEC52C06C6" xml:space="preserve">void CExampleInetProtUtil::CreateUri();</codeblock> <p>Creates
-a URI with respect to the physical path of a given file. </p> <p>For example,
-the physical path of the file: </p> <p> <codeph>K:/ws/direct/direct.mmp</codeph>  </p> <p>gives
-the following URI file: </p> <p> <codeph>///k/ws/direct/direct.mmp</codeph>  </p> <p>The
-screen output from this example is: </p> <fig id="GUID-2E1622EE-F5BF-57AD-9D1A-49FA6A0450E6">
-<image href="GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e175527_href.jpg" placement="inline"/>
-</fig> <p id="GUID-FBCF247C-5660-5A72-B837-AFAC9E51FF60"><b>Modifying a URI</b> </p> <codeblock id="GUID-8B77F94A-4DCC-5798-A2A6-DC778272D12B" xml:space="preserve">void CExampleInetProtUtil::ModifyUriComponents();</codeblock> <p>Modifies
-URI components, which involves: </p> <ol id="GUID-505AE129-749E-540C-BAB2-5A079EC29B6B">
-<li id="GUID-C4DF42D7-D9BE-5557-A138-B60444172631"><p>Adding URI components,
-where it constructs the URI component by component. For example, you can add
-the following components: </p> <ul>
-<li id="GUID-767B1184-E01F-5FAA-BC14-9E12BA1B121B"><p>scheme: <codeph>http</codeph>  </p> </li>
-<li id="GUID-8F2010FF-238A-53A6-BAB9-790CDDAA7804"><p>host: <codeph>waterlang.org</codeph>  </p> </li>
-<li id="GUID-19457F90-63E1-59AA-B046-C2BB64AA1EC8"><p>path: <codeph>main_page.html</codeph>  </p> </li>
-<li id="GUID-151867C7-8F3C-57FB-A2BE-2622CB16813C"><p>port: <codeph>8080</codeph>  </p> </li>
-</ul> <p>to get the complete URI: </p> <p> <codeph>http://waterlang.org:8080/main_page.html</codeph>  </p> <p>The
-screen output from this example is: </p> <fig id="GUID-C43845C7-9458-546F-A625-857BF63E21A0">
-<image href="GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e175596_href.jpg" placement="inline"/>
-</fig> </li>
-<li id="GUID-E1E71C35-8D25-5F50-ADCD-5441FECEDF67"><p>Removing the specific
-URI component(s) from a constructed URI. For example, the above URI with the
-port number removed: </p> <p> <codeph>http://waterlang.org/main_page.html</codeph>  </p> <p>The
-screen output from this example is: </p> <fig id="GUID-8658720B-DD49-5BF8-B016-0C1FD970E982">
-<image href="GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e175615_href.jpg" placement="inline"/>
-</fig> </li>
-</ol> <p id="GUID-DBB7553C-0334-55CB-A5DE-9A233E88780E"><b>Resolving a URI</b> </p> <codeblock id="GUID-3782F8CB-BA3D-5F9E-AB48-4596DC2E024E" xml:space="preserve">void CExampleInetProtUtil::ResolveUri();</codeblock> <p>Resolves
-the URI, which involves creation of an absolute <xref href="GUID-9D22BBBA-2DF2-36D2-BD07-5DE56F8541AA.dita"><apiname>CUri</apiname></xref> object
-from a given reference URI. </p> <p>The screen output from this example is: </p> <fig id="GUID-10AC8723-7DAE-5DC9-A568-C3011B9DB040">
-<image href="GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e175640_href.jpg" placement="inline"/>
-</fig> <p id="GUID-C3DE7478-80E4-5E05-90F9-C32E8C2624B2"><b>Parsing a URI</b> </p> <codeblock id="GUID-48E262B6-D776-5158-8FFD-1F8C43F9710B" xml:space="preserve">void CExampleInetProtUtil::ParseUri();</codeblock> <p>Parses
-the URI into its components (as given in <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2396.txt" scope="external">RFC2396</xref>). The five URI components are: </p> <ul>
-<li id="GUID-C3E34C3E-82A4-5410-A054-5D05F0E52942"><p>scheme </p> </li>
-<li id="GUID-C4D445B3-B0DB-5969-8E12-38D525C973C2"><p>authority </p> </li>
-<li id="GUID-91A17058-D565-5557-B848-DFA375A0F8D6"><p>path </p> </li>
-<li id="GUID-7ED0DC97-4A46-5307-B2F8-C5BA41AE7C1A"><p>query </p> </li>
-<li id="GUID-2910FC88-DB70-534C-8289-25A4D3DE83E2"><p>fragment. </p> </li>
-</ul> <p>The screen output from this example is: </p> <fig id="GUID-403B3926-A0E1-57A8-ADEF-1ECE198876D1">
-<image href="GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e175690_href.jpg" placement="inline"/>
-</fig> <p id="GUID-F8F98700-948D-542C-9B39-6DE3E257C3F3"><b>Validating a URI</b> </p> <codeblock id="GUID-294998AC-0125-52C0-82EF-C76729E0122C" xml:space="preserve">void CExampleInetProtUtil::ValidateUriComponents();</codeblock> <p>Validates
-a given URI. This function is usually used for URIs with SIP as the scheme. </p> <p>The
-screen output from this example is: </p> <fig id="GUID-16B862C4-804F-5751-ACE4-4C3DDC388617">
-<image href="GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e175709_href.jpg" placement="inline"/>
-</fig> <p id="GUID-B196045B-6DAF-561F-950C-5CDFB8B854A6"><b>Extracting URI
-components</b> </p> <codeblock id="GUID-5FBD44E5-F6B9-55C9-BA71-B350B291C666" xml:space="preserve">void CExampleInetProtUtil::ExtractUriComponents();</codeblock> <p>Extracts
-URI components from the given URI. </p> <p>The screen output from this example
-is: </p> <fig id="GUID-C5AB909C-05DF-5570-A343-B7DD1A8B9EB2">
-<image href="GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e175728_href.jpg" placement="inline"/>
-</fig> <p id="GUID-D30B9D97-7ADE-58EA-9AC0-8DC2095BCBEC"><b>Retrieving a filename
-from a URI</b> </p> <codeblock id="GUID-87962D71-02C6-5553-AB4A-51B3AECC837D" xml:space="preserve">void CExampleInetProtUtil::RetrieveFileName();</codeblock> <p>Extracts
-the actual physical location of the file from its URI. </p> <p>The screen
-output from this example is: </p> <fig id="GUID-45C9AE9D-DBB4-53C3-A547-AB8713039796">
-<image href="GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e175747_href.jpg" placement="inline"/>
-</fig> <p id="GUID-20375BA7-F367-5E12-9DC6-F9BDF4146E8A"><b>Adding and removing
-delimiters from a URI</b> </p> <codeblock id="GUID-A8A9773C-4657-5A21-8C40-6E4DAEC49850" xml:space="preserve">void CExampleInetProtUtil::ModifyDelimiter();</codeblock> <p>Adds the delimiters to and removes the delimiters from a URI. Before
-doing this ensure that: </p> <ul>
-<li id="GUID-072163F7-ECEC-54E5-A664-F4268898DEA9"><p>the delimiter is set
-using <xref href="GUID-F8ED680B-1426-337A-8D78-18D0B7BE1EF2.dita"><apiname>SetDelimiter()</apiname></xref>  </p> </li>
-<li id="GUID-F1482980-93FC-5D5D-A89F-1D16A5F46AAE"><p>the URI has already
-been parsed. </p> </li>
-</ul> <p>The screen output from this example is: </p> <fig id="GUID-A7E7FD6F-3A1D-578A-85FE-7F3F771EE046">
-<image href="GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e175783_href.jpg" placement="inline"/>
-</fig> <p id="GUID-363D45CC-AC6E-5397-B825-086919FCBF50"><b>Removing whitespace
-from a URI</b> </p> <codeblock id="GUID-A3A5053B-B12E-509B-98C7-9EE7095A9E57" xml:space="preserve">void CExampleInetProtUtil::WhiteSpaceRemover();</codeblock> <p>Removes
-the whitespace from the given URI and returns the number of white spaces that
-were removed. </p> <p>The screen output from this example is: </p> <fig id="GUID-0EC52CDC-5D6B-58F1-A817-0674CF66535A">
-<image href="GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e175802_href.jpg" placement="inline"/>
-</fig> <p id="GUID-EC077086-FC68-50ED-8BCC-AFBD58205186"><b>Escape encoding
-and decoding a URI</b> </p> <codeblock id="GUID-C62B11E9-0FE4-5CF4-A96A-5DB0E4E82A33" xml:space="preserve">void CExampleInetProtUtil::EscapeEncodeDecode();</codeblock> <p>Escape encodes the characters in a given URI as escape triplets and decodes
-it to the original one. </p> <p>The screen output from this example is: </p> <fig id="GUID-0AC8D213-9857-56A1-9DC6-E6FBE137B608">
-<image href="GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e175821_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>Class Summary</title><p><xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref></p><p><xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref></p><p><xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref></p><p><xref href="GUID-B647B6DA-5FF1-3C11-9ACD-E4A5E70F3596.dita"><apiname>TDelimitedParserBase8</apiname></xref></p><p><xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname>InetProtTextUtils</apiname></xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179" xml:lang="en"><title>HTTP
+Utilities Library (InetProtUtils) Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-627EB2DD-530A-5A6E-AC58-854A5C8D636B"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-0ab18a4d-c1a6-49bc-9420-3200f7ead173.zip" scope="external">ExampleInetProtUtil.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-0ab18a4d-c1a6-49bc-9420-3200f7ead173.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section><title>Description</title> <p>This example code demonstrates
+the usage of utilities provided by the InetProtUtil API. The users should
+have a prior knowledge of concepts associated with it, such as URLs and URI
+components. </p> <p>The central class is <codeph>CExampleInetProtUtil</codeph>,
+which demonstrates the following functionality: </p> <ul>
+<li id="GUID-52A8E18E-25F2-50F1-820D-5A892160F031"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-E3A0AB40-553E-5689-A703-075C75430B29">Creating a URI</xref>  </p> </li>
+<li id="GUID-C6E9655F-237D-5406-85EF-6D5A0EB5C140"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-FBCF247C-5660-5A72-B837-AFAC9E51FF60">Modifying a URI</xref>  </p> </li>
+<li id="GUID-1397CABB-FCAB-53D8-94EE-0E9A3353FD21"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-DBB7553C-0334-55CB-A5DE-9A233E88780E">Resolving a URI</xref>  </p> </li>
+<li id="GUID-9443407C-F9C3-51FF-B3A9-93AB1DC60955"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-C3DE7478-80E4-5E05-90F9-C32E8C2624B2">Parsing a URI</xref>  </p> </li>
+<li id="GUID-11D5D373-22D0-529D-9B4F-E8DD7470853B"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-F8F98700-948D-542C-9B39-6DE3E257C3F3">Validating a URI</xref>  </p> </li>
+<li id="GUID-9249C891-4F25-53C8-ACBE-C0FA166D64F6"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-B196045B-6DAF-561F-950C-5CDFB8B854A6">Extracting URI components</xref>  </p> </li>
+<li id="GUID-8665CD3D-B632-5863-A0D3-BEEEB64CB017"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-D30B9D97-7ADE-58EA-9AC0-8DC2095BCBEC">Retrieving a filename from a URI</xref>  </p> </li>
+<li id="GUID-29D99927-864E-5FB5-BB61-C96C8636E334"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-20375BA7-F367-5E12-9DC6-F9BDF4146E8A">Adding and removing delimiters from a URI</xref>  </p> </li>
+<li id="GUID-F956A7AA-CA58-53C5-B08A-19E1575E0CC1"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-363D45CC-AC6E-5397-B825-086919FCBF50">Removing whitespace from a URI</xref>  </p> </li>
+<li id="GUID-809AF54B-EBD5-5DC5-9A36-4D02721BF1EB"><p><xref href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita#GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179/GUID-EC077086-FC68-50ED-8BCC-AFBD58205186">Escape encoding and decoding a URI</xref>  </p> </li>
+</ul> <p id="GUID-E3A0AB40-553E-5689-A703-075C75430B29"><b>Creating a URI</b> </p> <codeblock id="GUID-734568B9-1C2F-53A7-9D00-4FDEC52C06C6" xml:space="preserve">void CExampleInetProtUtil::CreateUri();</codeblock> <p>Creates
+a URI with respect to the physical path of a given file. </p> <p>For example,
+the physical path of the file: </p> <p> <codeph>K:/ws/direct/direct.mmp</codeph>  </p> <p>gives
+the following URI file: </p> <p> <codeph>///k/ws/direct/direct.mmp</codeph>  </p> <p>The
+screen output from this example is: </p> <fig id="GUID-2E1622EE-F5BF-57AD-9D1A-49FA6A0450E6">
+<image href="GUID-ADCDEFF9-4B1D-5E46-A63B-808192123E15_d0e168926_href.jpg" placement="inline"/>
+</fig> <p id="GUID-FBCF247C-5660-5A72-B837-AFAC9E51FF60"><b>Modifying a URI</b> </p> <codeblock id="GUID-8B77F94A-4DCC-5798-A2A6-DC778272D12B" xml:space="preserve">void CExampleInetProtUtil::ModifyUriComponents();</codeblock> <p>Modifies
+URI components, which involves: </p> <ol id="GUID-505AE129-749E-540C-BAB2-5A079EC29B6B">
+<li id="GUID-C4DF42D7-D9BE-5557-A138-B60444172631"><p>Adding URI components,
+where it constructs the URI component by component. For example, you can add
+the following components: </p> <ul>
+<li id="GUID-767B1184-E01F-5FAA-BC14-9E12BA1B121B"><p>scheme: <codeph>http</codeph>  </p> </li>
+<li id="GUID-8F2010FF-238A-53A6-BAB9-790CDDAA7804"><p>host: <codeph>waterlang.org</codeph>  </p> </li>
+<li id="GUID-19457F90-63E1-59AA-B046-C2BB64AA1EC8"><p>path: <codeph>main_page.html</codeph>  </p> </li>
+<li id="GUID-151867C7-8F3C-57FB-A2BE-2622CB16813C"><p>port: <codeph>8080</codeph>  </p> </li>
+</ul> <p>to get the complete URI: </p> <p> <codeph>http://waterlang.org:8080/main_page.html</codeph>  </p> <p>The
+screen output from this example is: </p> <fig id="GUID-C43845C7-9458-546F-A625-857BF63E21A0">
+<image href="GUID-6740A668-33A2-52B1-9416-E9F21591D16C_d0e168995_href.jpg" placement="inline"/>
+</fig> </li>
+<li id="GUID-E1E71C35-8D25-5F50-ADCD-5441FECEDF67"><p>Removing the specific
+URI component(s) from a constructed URI. For example, the above URI with the
+port number removed: </p> <p> <codeph>http://waterlang.org/main_page.html</codeph>  </p> <p>The
+screen output from this example is: </p> <fig id="GUID-8658720B-DD49-5BF8-B016-0C1FD970E982">
+<image href="GUID-817D677C-2422-52B1-8D44-D15A0351FDC6_d0e169014_href.jpg" placement="inline"/>
+</fig> </li>
+</ol> <p id="GUID-DBB7553C-0334-55CB-A5DE-9A233E88780E"><b>Resolving a URI</b> </p> <codeblock id="GUID-3782F8CB-BA3D-5F9E-AB48-4596DC2E024E" xml:space="preserve">void CExampleInetProtUtil::ResolveUri();</codeblock> <p>Resolves
+the URI, which involves creation of an absolute <xref href="GUID-9D22BBBA-2DF2-36D2-BD07-5DE56F8541AA.dita"><apiname>CUri</apiname></xref> object
+from a given reference URI. </p> <p>The screen output from this example is: </p> <fig id="GUID-10AC8723-7DAE-5DC9-A568-C3011B9DB040">
+<image href="GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e169039_href.jpg" placement="inline"/>
+</fig> <p id="GUID-C3DE7478-80E4-5E05-90F9-C32E8C2624B2"><b>Parsing a URI</b> </p> <codeblock id="GUID-48E262B6-D776-5158-8FFD-1F8C43F9710B" xml:space="preserve">void CExampleInetProtUtil::ParseUri();</codeblock> <p>Parses
+the URI into its components (as given in <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2396.txt" scope="external">RFC2396</xref>). The five URI components are: </p> <ul>
+<li id="GUID-C3E34C3E-82A4-5410-A054-5D05F0E52942"><p>scheme </p> </li>
+<li id="GUID-C4D445B3-B0DB-5969-8E12-38D525C973C2"><p>authority </p> </li>
+<li id="GUID-91A17058-D565-5557-B848-DFA375A0F8D6"><p>path </p> </li>
+<li id="GUID-7ED0DC97-4A46-5307-B2F8-C5BA41AE7C1A"><p>query </p> </li>
+<li id="GUID-2910FC88-DB70-534C-8289-25A4D3DE83E2"><p>fragment. </p> </li>
+</ul> <p>The screen output from this example is: </p> <fig id="GUID-403B3926-A0E1-57A8-ADEF-1ECE198876D1">
+<image href="GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e169089_href.jpg" placement="inline"/>
+</fig> <p id="GUID-F8F98700-948D-542C-9B39-6DE3E257C3F3"><b>Validating a URI</b> </p> <codeblock id="GUID-294998AC-0125-52C0-82EF-C76729E0122C" xml:space="preserve">void CExampleInetProtUtil::ValidateUriComponents();</codeblock> <p>Validates
+a given URI. This function is usually used for URIs with SIP as the scheme. </p> <p>The
+screen output from this example is: </p> <fig id="GUID-16B862C4-804F-5751-ACE4-4C3DDC388617">
+<image href="GUID-71B31715-3B6A-50F0-86C1-8F7F76985802_d0e169108_href.jpg" placement="inline"/>
+</fig> <p id="GUID-B196045B-6DAF-561F-950C-5CDFB8B854A6"><b>Extracting URI
+components</b> </p> <codeblock id="GUID-5FBD44E5-F6B9-55C9-BA71-B350B291C666" xml:space="preserve">void CExampleInetProtUtil::ExtractUriComponents();</codeblock> <p>Extracts
+URI components from the given URI. </p> <p>The screen output from this example
+is: </p> <fig id="GUID-C5AB909C-05DF-5570-A343-B7DD1A8B9EB2">
+<image href="GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e169127_href.jpg" placement="inline"/>
+</fig> <p id="GUID-D30B9D97-7ADE-58EA-9AC0-8DC2095BCBEC"><b>Retrieving a filename
+from a URI</b> </p> <codeblock id="GUID-87962D71-02C6-5553-AB4A-51B3AECC837D" xml:space="preserve">void CExampleInetProtUtil::RetrieveFileName();</codeblock> <p>Extracts
+the actual physical location of the file from its URI. </p> <p>The screen
+output from this example is: </p> <fig id="GUID-45C9AE9D-DBB4-53C3-A547-AB8713039796">
+<image href="GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e169146_href.jpg" placement="inline"/>
+</fig> <p id="GUID-20375BA7-F367-5E12-9DC6-F9BDF4146E8A"><b>Adding and removing
+delimiters from a URI</b> </p> <codeblock id="GUID-A8A9773C-4657-5A21-8C40-6E4DAEC49850" xml:space="preserve">void CExampleInetProtUtil::ModifyDelimiter();</codeblock> <p>Adds the delimiters to and removes the delimiters from a URI. Before
+doing this ensure that: </p> <ul>
+<li id="GUID-072163F7-ECEC-54E5-A664-F4268898DEA9"><p>the delimiter is set
+using <xref href="GUID-F8ED680B-1426-337A-8D78-18D0B7BE1EF2.dita"><apiname>SetDelimiter()</apiname></xref>  </p> </li>
+<li id="GUID-F1482980-93FC-5D5D-A89F-1D16A5F46AAE"><p>the URI has already
+been parsed. </p> </li>
+</ul> <p>The screen output from this example is: </p> <fig id="GUID-A7E7FD6F-3A1D-578A-85FE-7F3F771EE046">
+<image href="GUID-236C0D1D-AC4C-5C08-9089-1AC59881CD39_d0e169182_href.jpg" placement="inline"/>
+</fig> <p id="GUID-363D45CC-AC6E-5397-B825-086919FCBF50"><b>Removing whitespace
+from a URI</b> </p> <codeblock id="GUID-A3A5053B-B12E-509B-98C7-9EE7095A9E57" xml:space="preserve">void CExampleInetProtUtil::WhiteSpaceRemover();</codeblock> <p>Removes
+the whitespace from the given URI and returns the number of white spaces that
+were removed. </p> <p>The screen output from this example is: </p> <fig id="GUID-0EC52CDC-5D6B-58F1-A817-0674CF66535A">
+<image href="GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e169201_href.jpg" placement="inline"/>
+</fig> <p id="GUID-EC077086-FC68-50ED-8BCC-AFBD58205186"><b>Escape encoding
+and decoding a URI</b> </p> <codeblock id="GUID-C62B11E9-0FE4-5CF4-A96A-5DB0E4E82A33" xml:space="preserve">void CExampleInetProtUtil::EscapeEncodeDecode();</codeblock> <p>Escape encodes the characters in a given URI as escape triplets and decodes
+it to the original one. </p> <p>The screen output from this example is: </p> <fig id="GUID-0AC8D213-9857-56A1-9DC6-E6FBE137B608">
+<image href="GUID-A92CE0FF-113F-55BE-B5EF-7E5C629A4557_d0e169220_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>Class Summary</title><p><xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref></p><p><xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref></p><p><xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref></p><p><xref href="GUID-B647B6DA-5FF1-3C11-9ACD-E4A5E70F3596.dita"><apiname>TDelimitedParserBase8</apiname></xref></p><p><xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname>InetProtTextUtils</apiname></xref></p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e185333_href.png has changed
Binary file Symbian3/SDK/Source/GUID-AFC49653-78E6-5639-911C-E02AEB08AFFC_d0e191929_href.png has changed
--- a/Symbian3/SDK/Source/GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06" xml:lang="en"><title>How
-the target Client is Resolved using CSIPResolvedClient2</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP Client Resolver determines the target clients by comparing the
-Request-URI of the incoming SIP request to the information stored in SIP Client
-Resolver mapping table in the Central Repository. The information required
-to access the map table in the Central Repository is defined in the <filepath>sipclientresolverconfigcrkey.h</filepath> file.
-The incoming SIP request compares with the Request-URI’s user part in the
-Central Repository mapping table. </p>
-<p>If a match is found, the related ECOM plug-in is loaded by its UID. The
-loaded plug-in matches the incoming SIP requests based on their fields. If
-the request matches, the plug-in returns the UID of the matching client. SIP
-Client Resolver requests the resolved ECom plug-in to connect to the Symbian
-platform server that uses SIP. </p>
-<p>The resource (<filepath>.rss</filepath>) file contains the information
-in the Central Repository and also the following information: </p>
-<ul>
-<li id="GUID-6CF8E2D5-5BF3-5E56-93BE-97A0D2054B0E"><p> <codeph> dll_uid</codeph> and <codeph>implementation_uid</codeph>:
-These UIDs are obtained from <xref href="http://www.symbiansigned.com" scope="external">Symbian
-Signed</xref>. </p> <p> <b>Note:</b> Both these UIDs can be the same. </p> </li>
-<li id="GUID-A2F95B01-F707-51D1-AD67-4EB364865C33"><p>The <codeph>interface_uid</codeph> must
-be <codeph>0x10282EE5</codeph>. </p> </li>
-</ul>
-<section id="GUID-D0D9C1C9-C0A1-4C4C-ACA6-14C23D651E38"><title>Resolving the target client using CSIPResolvedClient2</title> <p>The
-following illustration shows how the SIP Client Resolver subsystem resolves
-the target client implementing <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> and
-requests the resolved client to connect to the SIP implementation. </p> <fig id="GUID-750221F0-A98E-5C47-B804-5A6CDD16B2E9">
-<title>              Call flow of resolving a target client implementation
-using              CSIPResolvedClient2            </title>
-<image href="GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e344068_href.jpg" placement="inline"/>
-</fig> <p>The target clients must implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
-to receive SIP requests including SIP dialogs and enable the client resolution
-mechanism. <b/><b>Note</b>: The channel UIDs must be unique across all
-SIP clients. For example clients may use UIDs assigned for binaries. </p> <p>The
-SIP stack uses the plug-ins that implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
-as follows: </p> <ol id="GUID-E0C735BE-BBBD-533B-AB2B-59F8936060BA">
-<li id="GUID-7854B67A-2143-5EA4-949D-B3C96CA51866"><p>If the SIP request does
-not contain an Accept-Contact-header, go to step 2. If it does, the SIP stack
-calls <codeph>CSIPResolvedClient2::MatchAcceptContactsL</codeph> for all the
-plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-E975B348-52DB-519A-9AC0-98821BA27E95"><p>If none of the clients
-match, go to step 2 </p> </li>
-<li id="GUID-99DB2FEE-470B-5E76-8183-AD2C0E1B6FF0"><p>If one of the client
-match, the SIP request is sent to the matching client </p> </li>
-<li id="GUID-5F420FD9-2AEE-5517-A216-FA3868941902"><p>If more than one of
-the clients match, go to step 2 </p> </li>
-</ul> </li>
-<li id="GUID-F28D6940-D404-5E0F-B52A-6A47980ADA68"><p>If the SIP request does
-not contain an Event-header go to step 3. If it does, the SIP stack calls <codeph>CSIPResolvedClient2::MatchEventL</codeph> for
-all the plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-390E2FBC-305E-59C0-BE1F-E7C961B47251"><p>If none of the clients
-match, go to step 3 </p> </li>
-<li id="GUID-6A41D1A5-7636-51CC-864D-F2AB095D97E6"><p>If one of the client
-match, the SIP request is sent to the matching client </p> </li>
-<li id="GUID-8C51B40C-FC7B-566E-B56F-4279233C192E"><p>If more than one of
-the clients match, go to step 3 </p> </li>
-</ul> </li>
-<li id="GUID-9C094348-B7F4-572D-B49B-B99F81C902F2"><p>The SIP stack calls <codeph>CSIPResolvedClient2::MatchRequestL</codeph> for
-all the plug-ins and applies the following logic: </p> <ul>
-<li id="GUID-63351732-E32A-58BC-8F32-7BA3832788FD"><p>If none of the clients
-match, the SIP generates an error response </p> </li>
-<li id="GUID-9E8765F8-A55F-5EA3-A63E-ACBF8A4BEF24"><p>If one of the client
-match, the SIP request is sent to the matching client </p> </li>
-<li id="GUID-AE679FD1-163D-5F3B-ADE8-1C6AEF490552"><p>If more than one of
-the clients match, SIP selects one of these clients randomly and sends the
-request to it. The ROM-based clients are preferred. </p> </li>
-</ul> </li>
-</ol> </section>
-<section id="GUID-026A9B43-E096-4D32-AC3B-2DDC7974FFF6"><title>See also</title> <p> <xref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita">Example
-of a SIP Client Resolver Plug-in</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06" xml:lang="en"><title>How
+the target Client is Resolved using CSIPResolvedClient2</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP Client Resolver determines the target clients by comparing the
+Request-URI of the incoming SIP request to the information stored in SIP Client
+Resolver mapping table in the Central Repository. The information required
+to access the map table in the Central Repository is defined in the <filepath>sipclientresolverconfigcrkey.h</filepath> file.
+The incoming SIP request compares with the Request-URI’s user part in the
+Central Repository mapping table. </p>
+<p>If a match is found, the related ECOM plug-in is loaded by its UID. The
+loaded plug-in matches the incoming SIP requests based on their fields. If
+the request matches, the plug-in returns the UID of the matching client. SIP
+Client Resolver requests the resolved ECom plug-in to connect to the Symbian
+platform server that uses SIP. </p>
+<p>The resource (<filepath>.rss</filepath>) file contains the information
+in the Central Repository and also the following information: </p>
+<ul>
+<li id="GUID-6CF8E2D5-5BF3-5E56-93BE-97A0D2054B0E"><p> <codeph> dll_uid</codeph> and <codeph>implementation_uid</codeph>:
+These UIDs are obtained from <xref href="http://www.symbiansigned.com" scope="external">Symbian
+Signed</xref>. </p> <p> <b>Note:</b> Both these UIDs can be the same. </p> </li>
+<li id="GUID-A2F95B01-F707-51D1-AD67-4EB364865C33"><p>The <codeph>interface_uid</codeph> must
+be <codeph>0x10282EE5</codeph>. </p> </li>
+</ul>
+<section id="GUID-D0D9C1C9-C0A1-4C4C-ACA6-14C23D651E38"><title>Resolving the target client using CSIPResolvedClient2</title> <p>The
+following illustration shows how the SIP Client Resolver subsystem resolves
+the target client implementing <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> and
+requests the resolved client to connect to the SIP implementation. </p> <fig id="GUID-750221F0-A98E-5C47-B804-5A6CDD16B2E9">
+<title>              Call flow of resolving a target client implementation
+using              CSIPResolvedClient2            </title>
+<image href="GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e337871_href.jpg" placement="inline"/>
+</fig> <p>The target clients must implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
+to receive SIP requests including SIP dialogs and enable the client resolution
+mechanism. <b/><b>Note</b>: The channel UIDs must be unique across all
+SIP clients. For example clients may use UIDs assigned for binaries. </p> <p>The
+SIP stack uses the plug-ins that implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
+as follows: </p> <ol id="GUID-E0C735BE-BBBD-533B-AB2B-59F8936060BA">
+<li id="GUID-7854B67A-2143-5EA4-949D-B3C96CA51866"><p>If the SIP request does
+not contain an Accept-Contact-header, go to step 2. If it does, the SIP stack
+calls <codeph>CSIPResolvedClient2::MatchAcceptContactsL</codeph> for all the
+plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-E975B348-52DB-519A-9AC0-98821BA27E95"><p>If none of the clients
+match, go to step 2 </p> </li>
+<li id="GUID-99DB2FEE-470B-5E76-8183-AD2C0E1B6FF0"><p>If one of the client
+match, the SIP request is sent to the matching client </p> </li>
+<li id="GUID-5F420FD9-2AEE-5517-A216-FA3868941902"><p>If more than one of
+the clients match, go to step 2 </p> </li>
+</ul> </li>
+<li id="GUID-F28D6940-D404-5E0F-B52A-6A47980ADA68"><p>If the SIP request does
+not contain an Event-header go to step 3. If it does, the SIP stack calls <codeph>CSIPResolvedClient2::MatchEventL</codeph> for
+all the plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-390E2FBC-305E-59C0-BE1F-E7C961B47251"><p>If none of the clients
+match, go to step 3 </p> </li>
+<li id="GUID-6A41D1A5-7636-51CC-864D-F2AB095D97E6"><p>If one of the client
+match, the SIP request is sent to the matching client </p> </li>
+<li id="GUID-8C51B40C-FC7B-566E-B56F-4279233C192E"><p>If more than one of
+the clients match, go to step 3 </p> </li>
+</ul> </li>
+<li id="GUID-9C094348-B7F4-572D-B49B-B99F81C902F2"><p>The SIP stack calls <codeph>CSIPResolvedClient2::MatchRequestL</codeph> for
+all the plug-ins and applies the following logic: </p> <ul>
+<li id="GUID-63351732-E32A-58BC-8F32-7BA3832788FD"><p>If none of the clients
+match, the SIP generates an error response </p> </li>
+<li id="GUID-9E8765F8-A55F-5EA3-A63E-ACBF8A4BEF24"><p>If one of the client
+match, the SIP request is sent to the matching client </p> </li>
+<li id="GUID-AE679FD1-163D-5F3B-ADE8-1C6AEF490552"><p>If more than one of
+the clients match, SIP selects one of these clients randomly and sends the
+request to it. The ROM-based clients are preferred. </p> </li>
+</ul> </li>
+</ol> </section>
+<section id="GUID-026A9B43-E096-4D32-AC3B-2DDC7974FFF6"><title>See also</title> <p> <xref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita">Example
+of a SIP Client Resolver Plug-in</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,97 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65" xml:lang="en"><title>SendAs
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section describes the overview and functions provided by the SendAs
-component. </p>
-<section><title>Purpose</title> <p>The SendAs component provides a high-level
-APIs for client applications that wish to include a <b>SendAs</b> menu to
-allow users to send content through any of the supported message types. It
-acts as a wrapper that allows access to the common functionality of email,
-SMS, and OBEX components. </p> <p>For example, SendAs allows a word processor
-document to be sent as an email, or a contact as a vCard (either attached
-to an email or as an SMS). </p> </section>
-<section><title>Key terms</title> <dl>
-<dlentry>
-<dt>SendAs Server</dt>
-<dd><p>The server that maintains and controls access to all the SendAs entries. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>Message Type Module (MTM)</dt>
-<dd><p>A group of components that together provide message handling functionality
-for a particular protocol. </p> </dd>
-</dlentry>
-</dl> </section>
-<section><title>Architecture</title> <p>The main client-side API is the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class.
-Client applications use this to connect to the SendAs Server. </p> <p>Client
-applications create messages using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> API.
-Opening an <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> object on SendAs Server session
-creates a SendAs message in the SendAs Server. This allows client applications
-to create multiple messages concurrently. </p> <p> <b>Important:</b> There
-is no exposure to Message Server APIs on the client-side. The SendAs Server
-encapsulates the Message Server completely. </p> <fig id="GUID-4B2E7B20-8C11-5E21-ABA1-AA01129A32DC">
-<title>              SendAs architecture            </title>
-<image href="GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e291337_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-24801AA6-6CDE-584F-A233-F7B68C1C59E3"><title>SendAs Server</title> <p>The <xref href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita">SendAs Server</xref> maintains
-all SendAs entries and controls the access to a Message Store. It allows client
-applications to create messages in the Drafts folder of a Message Store. The
-SendAs APIs also allow a client application to launch an appropriate message
-editor for a given message type. They support two methods of sending messages:
-confirmed or unconfirmed send. A confirmed send requires a confirmation by
-the UI MTM; typically it queries the phone user. An unconfirmed send does
-not require confirmation by the UI MTM. </p> <p>The following are the key
-functions of SendAs Server : </p> <ul>
-<li id="GUID-8235CD94-6D3E-5728-850D-4153386263F6"><p>Get a list of the names
-of the MTMs that have the required capabilities. </p> </li>
-<li id="GUID-946F453E-BAEA-5035-AA6D-2B4AE7C2BCB0"><p>Get a list of the services
-that can be used with the chosen MTM. </p> </li>
-<li id="GUID-A1E21B0F-AAA7-57B3-850D-BB52CEDD74C4"><p>Create a message, define
-the body and attachments for that message, without forcing the client application
-to start any message-specific user interface. </p> </li>
-<li id="GUID-FE2A9EC0-4442-5294-A4FC-F8D2036353C1"><p>Store the message so
-that it is ready for sending from the device next time it is connected to
-the appropriate service. </p> </li>
-<li id="GUID-0E735F08-EAA7-5FBF-A50A-F1FDEB8347AA"><p>Send the message. </p> </li>
-<li id="GUID-7D0587B2-CCD8-54FE-B3D3-F8D74334B292"><p>Start the editor for
-the message type. </p> </li>
-<li id="GUID-F638D1BC-E4D1-5FF7-9142-95EA38E55CBD"><p>Allow client applications
-to query the message type. </p> </li>
-</ul> </section>
-<section><title>API summary</title> <p>The following are the two main SendAs
-Server classes: </p> <ul>
-<li id="GUID-7C72A929-BE6C-557F-A1BB-5923F97573AE"><p>The <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class
-is the main interface to the SendAs Server. </p> </li>
-<li id="GUID-52BF638C-7C93-5F44-A0DB-4EB7651EF837"><p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> class
-encapsulates creating and sending a message. It requires a connected <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> session. </p> </li>
-</ul> </section>
-<section><title>Typical use cases</title> <p>The <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class
-is used for the following tasks: </p> <ul>
-<li id="GUID-0A747A06-DF16-53D2-9B36-A5C0CC9BB538"><p>Connecting to and disconnecting
-from the SendAs Server </p> </li>
-<li id="GUID-D5969E75-99AC-5ED1-A05A-719E60782FC3"><p>Querying the message
-type registry </p> </li>
-</ul> <p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> class is used for the following
-tasks: </p> <ul>
-<li id="GUID-E9F965AB-9B58-5EF0-950D-5AA56FE38927"><p>Creating and managing
-a SendAs message </p> </li>
-<li id="GUID-E343398A-7261-5D21-BADF-96D676A41F81"><p>Launching a message
-editor for the created SendAs message </p> </li>
-<li id="GUID-15195205-3175-5597-9CF0-E70B50F674DD"><p>Modifying a SendAs message </p> </li>
-<li id="GUID-9EED6F4B-83F8-524F-896A-808725A0A729"><p>Sending a SendAs message </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita"><linktext>SendAs Server</linktext>
-</link>
-<link href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita"><linktext>SendAs Example
-Code</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65" xml:lang="en"><title>SendAs
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section describes the overview and functions provided by the SendAs
+component. </p>
+<section><title>Purpose</title> <p>The SendAs component provides a high-level
+APIs for client applications that wish to include a <b>SendAs</b> menu to
+allow users to send content through any of the supported message types. It
+acts as a wrapper that allows access to the common functionality of email,
+SMS, and OBEX components. </p> <p>For example, SendAs allows a word processor
+document to be sent as an email, or a contact as a vCard (either attached
+to an email or as an SMS). </p> </section>
+<section><title>Key terms</title> <dl>
+<dlentry>
+<dt>SendAs Server</dt>
+<dd><p>The server that maintains and controls access to all the SendAs entries. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>Message Type Module (MTM)</dt>
+<dd><p>A group of components that together provide message handling functionality
+for a particular protocol. </p> </dd>
+</dlentry>
+</dl> </section>
+<section><title>Architecture</title> <p>The main client-side API is the <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class.
+Client applications use this to connect to the SendAs Server. </p> <p>Client
+applications create messages using the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> API.
+Opening an <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> object on SendAs Server session
+creates a SendAs message in the SendAs Server. This allows client applications
+to create multiple messages concurrently. </p> <p> <b>Important:</b> There
+is no exposure to Message Server APIs on the client-side. The SendAs Server
+encapsulates the Message Server completely. </p> <fig id="GUID-4B2E7B20-8C11-5E21-ABA1-AA01129A32DC">
+<title>              SendAs architecture            </title>
+<image href="GUID-27EC3C5B-175C-5D27-874C-43D46AA44C08_d0e287704_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-24801AA6-6CDE-584F-A233-F7B68C1C59E3"><title>SendAs Server</title> <p>The <xref href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita">SendAs Server</xref> maintains
+all SendAs entries and controls the access to a Message Store. It allows client
+applications to create messages in the Drafts folder of a Message Store. The
+SendAs APIs also allow a client application to launch an appropriate message
+editor for a given message type. They support two methods of sending messages:
+confirmed or unconfirmed send. A confirmed send requires a confirmation by
+the UI MTM; typically it queries the phone user. An unconfirmed send does
+not require confirmation by the UI MTM. </p> <p>The following are the key
+functions of SendAs Server : </p> <ul>
+<li id="GUID-8235CD94-6D3E-5728-850D-4153386263F6"><p>Get a list of the names
+of the MTMs that have the required capabilities. </p> </li>
+<li id="GUID-946F453E-BAEA-5035-AA6D-2B4AE7C2BCB0"><p>Get a list of the services
+that can be used with the chosen MTM. </p> </li>
+<li id="GUID-A1E21B0F-AAA7-57B3-850D-BB52CEDD74C4"><p>Create a message, define
+the body and attachments for that message, without forcing the client application
+to start any message-specific user interface. </p> </li>
+<li id="GUID-FE2A9EC0-4442-5294-A4FC-F8D2036353C1"><p>Store the message so
+that it is ready for sending from the device next time it is connected to
+the appropriate service. </p> </li>
+<li id="GUID-0E735F08-EAA7-5FBF-A50A-F1FDEB8347AA"><p>Send the message. </p> </li>
+<li id="GUID-7D0587B2-CCD8-54FE-B3D3-F8D74334B292"><p>Start the editor for
+the message type. </p> </li>
+<li id="GUID-F638D1BC-E4D1-5FF7-9142-95EA38E55CBD"><p>Allow client applications
+to query the message type. </p> </li>
+</ul> </section>
+<section><title>API summary</title> <p>The following are the two main SendAs
+Server classes: </p> <ul>
+<li id="GUID-7C72A929-BE6C-557F-A1BB-5923F97573AE"><p>The <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class
+is the main interface to the SendAs Server. </p> </li>
+<li id="GUID-52BF638C-7C93-5F44-A0DB-4EB7651EF837"><p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> class
+encapsulates creating and sending a message. It requires a connected <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> session. </p> </li>
+</ul> </section>
+<section><title>Typical use cases</title> <p>The <xref href="GUID-E1699CAB-423D-3AFA-BE77-3AFF38886EA3.dita"><apiname>RSendAs</apiname></xref> class
+is used for the following tasks: </p> <ul>
+<li id="GUID-0A747A06-DF16-53D2-9B36-A5C0CC9BB538"><p>Connecting to and disconnecting
+from the SendAs Server </p> </li>
+<li id="GUID-D5969E75-99AC-5ED1-A05A-719E60782FC3"><p>Querying the message
+type registry </p> </li>
+</ul> <p>The <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita"><apiname>RSendAsMessage</apiname></xref> class is used for the following
+tasks: </p> <ul>
+<li id="GUID-E9F965AB-9B58-5EF0-950D-5AA56FE38927"><p>Creating and managing
+a SendAs message </p> </li>
+<li id="GUID-E343398A-7261-5D21-BADF-96D676A41F81"><p>Launching a message
+editor for the created SendAs message </p> </li>
+<li id="GUID-15195205-3175-5597-9CF0-E70B50F674DD"><p>Modifying a SendAs message </p> </li>
+<li id="GUID-9EED6F4B-83F8-524F-896A-808725A0A729"><p>Sending a SendAs message </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita"><linktext>SendAs Server</linktext>
+</link>
+<link href="GUID-382B8A9D-9D10-54CD-91A6-B9E7A2477662.dita"><linktext>SendAs Example
+Code</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2" xml:lang="en"><title>Scalability</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term <i>scalability</i> refers to the ability of an application
-UI to function as designed in mobile devices with different screen resolutions
-or orientations. For example, in the figure below, the UI scales to fit both
-portrait and landscape orientations.</p>
-<fig id="GUID-D889D539-AD96-4E67-A52A-EC14FF98E299"><title>Scaling</title><image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e46132_href.png"/></fig>
-<p>When you enable scaling in your application, you allow your application
-to support the different display sizes, resolutions, and layouts for different
-devices based on the Symbian platform. The Symbian platform provides APIs
-and other support to enable scaling in applications. Some scaling issues are
-handled by the application framework if support is enabled, while other issues
-need to be handled by the application. The details of what can be handled
-where depend on the nature of your UI architecture. A general rule of thumb
-is that the greater the degree of customization in your application, the more
-you need to handle scalability issues in the application.</p>
-<p>You are not required to enable scaling in your applications, although
-it is recommended as it enhances usability for mobile device users.</p>
-<p>The following issues should be kept in mind when enabling your application
-for scaling:</p>
-<ul>
-<li><p>Layout information should not be hard-coded.</p>
-<itemgroup>
-<p> The Symbian platform provides the <parmname>AknLayoutUtils</parmname> class
-for building layouts from resource files.</p>
-<p>Note that you also need to <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">override <parmname>CCoeControl::HandleResourceChange()</parmname> and <parmname>CEikAppUi::HandleResourceChangeL()</parmname></xref> in your
-application to draw your application again in the event that the orientation
-of the display changes.</p>
-</itemgroup>
-</li>
-<li><p>Scalable fonts should be used.</p>
-<itemgroup>
-<p>The Symbian platform provides methods in the <parmname>AknLayoutUtils</parmname> for
-using logical fonts from an enumeration in the <parmname>avkon.hrh</parmname> file.</p>
-</itemgroup>
-</li>
-<li><p>Scalable icons should be used.</p>
-<itemgroup>
-<p>Scalable icons are based on SVG Tiny (SVG-T) format <xref href="GUID-D76B1001-BAF5-4557-A07E-61065523ECBE.dita">graphics</xref>.</p>
-</itemgroup>
-</li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2" xml:lang="en"><title>Scalability</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term <i>scalability</i> refers to the ability of an application
+UI to function as designed in mobile devices with different screen resolutions
+or orientations. For example, in the figure below, the UI scales to fit both
+portrait and landscape orientations.</p>
+<fig id="GUID-D889D539-AD96-4E67-A52A-EC14FF98E299"><title>Scaling</title><image href="GUID-A69D2707-CB47-42C2-A6E9-5FB9BD86A30B_d0e40575_href.png"/></fig>
+<p>When you enable scaling in your application, you allow your application
+to support the different display sizes, resolutions, and layouts for different
+devices based on the Symbian platform. The Symbian platform provides APIs
+and other support to enable scaling in applications. Some scaling issues are
+handled by the application framework if support is enabled, while other issues
+need to be handled by the application. The details of what can be handled
+where depend on the nature of your UI architecture. A general rule of thumb
+is that the greater the degree of customization in your application, the more
+you need to handle scalability issues in the application.</p>
+<p>You are not required to enable scaling in your applications, although
+it is recommended as it enhances usability for mobile device users.</p>
+<p>The following issues should be kept in mind when enabling your application
+for scaling:</p>
+<ul>
+<li><p>Layout information should not be hard-coded.</p>
+<itemgroup>
+<p> The Symbian platform provides the <parmname>AknLayoutUtils</parmname> class
+for building layouts from resource files.</p>
+<p>Note that you also need to <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">override <apiname>CCoeControl::HandleResourceChange()</apiname> and <apiname>CEikAppUi::HandleResourceChangeL()</apiname></xref> in your
+application to draw your application again in the event that the orientation
+of the display changes.</p>
+</itemgroup>
+</li>
+<li><p>Scalable fonts should be used.</p>
+<itemgroup>
+<p>The Symbian platform provides methods in the <parmname>AknLayoutUtils</parmname> for
+using logical fonts from an enumeration in the <parmname>avkon.hrh</parmname> file.</p>
+</itemgroup>
+</li>
+<li><p>Scalable icons should be used.</p>
+<itemgroup>
+<p>Scalable icons are based on SVG Tiny (SVG-T) format <xref href="GUID-D76B1001-BAF5-4557-A07E-61065523ECBE.dita">graphics</xref>.</p>
+</itemgroup>
+</li>
+</ul>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e213571_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e217308_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2"><title>Advanced Audio Adaptation Framework Technology Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides additional information about the Advanced Audio Adaptation Framework. </p> <section><title>Purpose</title> <p>The Advanced Audio Adaptation Framework (A3F) provides a common interface for accessing audio resources, playing tones, and configuring audio for playing and recording. </p> </section> <section><title>Understanding A3F</title> <p>A3F functionality is provided by the <xref href="GUID-C4AD7B75-9027-3F62-889C-ADEF5E6DBC73.dita"><apiname>CAudioContextFactory</apiname></xref> class. <xref href="GUID-C4AD7B75-9027-3F62-889C-ADEF5E6DBC73.dita"><apiname>CAudioContextFactory</apiname></xref> is responsible for creating audio contexts. The Audio Context API (<xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref>) maintains all audio components created in a context, where audio components are instances of the <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> and <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> classes. </p> <p>An <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> is created in a context by giving the type of the processing unit such as codec and source sink. <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> allows extension interfaces to set additional audio processing unit settings. </p> <p>The Audio Stream API (<xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref>) is an audio component that links together processing units into an audio stream. <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> manages the audio processing state requested by the client and interacts with the audio processing units added to the stream. <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> provides runtime control over a stream's (composite) behaviour and lifetime management of the entities in a stream (whether the state of the stream is uninitialized, initialized, idle, primed, active or dead). For more information, see <xref href="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita#GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2/GUID-28D6AB9C-8F4F-573A-853D-726138249390">Stream States</xref>. </p> <p>The Audio Context API allows a grouping notion for multimedia allocations. <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref> groups component actions made inside a context. This means any allocation or loss of resources which occurs in any single audio component affects all of the components grouped in the context. </p> <p id="GUID-C13977B1-D855-5D46-913C-15059421C225"><b>The Commit Cycle</b> </p> <p>Changes made to an audio stream are handled in a transactional manner. If changes fail to be applied, then any other changes made to the stream are considered to fail also. The application of changes is dependent on a successful commit cycle. If there is a failure, a “rollback" mechanism is executed and the stream states are reverted to their previous state. </p> <p>The client requests changes through various <codeph>Set()</codeph> calls and then calls the <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita#GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3/GUID-7011BDC1-C4D8-3BB5-9B7C-8729FADCE67E"><apiname>MAudioContext::Commit()</apiname></xref> function. The platform-specific implementation then decides whether the <codeph>Commit()</codeph> request is allowed, possibly dictates new values if needed, and then applies the changes. If successful, the client is informed through callbacks. If there is a need to modify the context because resources are needed in another context, then the platform-specific implementation can take the resources by pre-empting the context. In this case, the client is informed about the pre-emption. </p> <p>The following diagram shows this behaviour: </p> <fig id="GUID-18D00361-18E7-5A5C-B8C0-115E1D2DF29F"><title>
-                A3F Commit / Pre-emption Cycle 
-             </title> <image href="GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e330701_href.png" placement="inline"/></fig> <p><b>Observers</b> </p> <p>Most of the A3F API functions are asynchronous. For example, the functions <codeph>Foo()</codeph> or <codeph>SetFoo()</codeph> are followed with <codeph>FooComplete(Tint aError)</codeph> or <codeph>FooSet(Tint aError)</codeph>. </p> <p>The following A3F observers are defined: </p> <ul><li id="GUID-11C7E019-8628-533E-ACAB-E7A7C4893C65"><p> <xref href="GUID-3336EC2B-4FB8-3FD0-A702-0CB50DE059B4.dita"><apiname>MAudioContextObserver</apiname></xref>  </p> <p>Informs with <codeph>ContextEvent()</codeph> about the commit cycle. Note that <codeph>ContextEvent()</codeph> is in the same thread context as the A3F client. </p> </li> <li id="GUID-1E628CBE-641F-54B2-B144-FFEC88AB2ECF"><p> <xref href="GUID-D2075F61-F6FA-3FAE-9FBB-20CEFE81334C.dita"><apiname>MAudioStreamObserver</apiname></xref>  </p> <p>Informs with <codeph>StateEvent()</codeph> about state changes </p> </li> <li id="GUID-611327B3-9278-5793-9BE2-072B898A5245"><p> <xref href="GUID-805E421D-9143-326D-9455-FF40205AA70A.dita"><apiname>MAudioCodecObserver</apiname></xref>  </p> <p>Informs about completion of setters and getters. </p> </li> <li id="GUID-CD6FC1B2-B581-5CD2-9355-8B3AF8681680"><p> <xref href="GUID-B235174E-E8AC-36EE-8BCC-F466EEB8E720.dita"><apiname>MAudioGainControlObserver</apiname></xref>  </p> <p>Informs about changes in gain or changes in maximum gain values. </p> </li> <li id="GUID-A46EF843-AD06-583E-8E1E-712CC0341421"><p> <xref href="GUID-C070F06A-E77A-3477-90A2-C2E38B0E823C.dita"><apiname>MAudioProcessingUnitObserver</apiname></xref>  </p> <p>Informs about any additional errors in audio processing units. </p> </li> <li id="GUID-178B9281-35A8-519A-A01A-920134606A87"><p> <xref href="GUID-BC675A52-D3B5-3F97-B986-8643A8FEFE59.dita"><apiname>MMMFAudioDataConsumer</apiname></xref>  </p> <p>Informs about recorded buffer to be ready for storing. Also informs the client if there is a buffer to be ignored. </p> </li> <li id="GUID-8F5E2944-DB55-5601-B150-490919C98C4E"><p> <xref href="GUID-5F500DE3-5253-326C-B94A-1CBD7C83C082.dita"><apiname>MMMFAudioDataSupplier</apiname></xref>  </p> <p>Informs about new buffer ready to be filled with audio data. Also informs the client if any requested buffer should be ignored. </p> </li> </ul> <p id="GUID-28D6AB9C-8F4F-573A-853D-726138249390"><b>Stream States</b> </p> <p>Clients using A3F should be aware that requested audio resources can be lost at any time while they are being used. A client with a higher importance can cause requests for resources to be denied or available resources to become unavailable. In these cases, the commit cycle informs the client through pre-emption events and the resulted stream state is usually demoted to the highest non-disturbing state. </p> <p>The possible audio stream states are described in the following table: </p> <table id="GUID-33D9A149-C1CF-52F0-87E1-234CF93F677E"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>State</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <codeph>EUninitialized</codeph>  </p> </entry> <entry><p>This is the state of the chain before it is initialized. However, the settings in the logical chain cannot be related to the adaptation because no adaptation has been selected yet. </p> </entry> </row> <row><entry><p> <codeph>EInitialized</codeph>  </p> </entry> <entry><p>This state is set after a successful initialization request. </p> <p>The physical adaptation has been selected but may not be fully allocated. </p> <p>There should be no externally visible buffers allocated at this point </p> <p> <b>Note</b>: For zero copy and shared chunk buffers, a stream in the <codeph>EInitialized</codeph> state should not require buffer consumption. This is an important issue if the base port only has 16 addressable chunks per process. </p> <p>In terms of DevSound compatibility, some custom interfaces are available at this point (although others may require further construction before they are available). </p> </entry> </row> <row><entry><p> <codeph>EIdle</codeph>  </p> </entry> <entry><p>All the chain resources are allocated. However, no processing time (other than that expended to put the chain into the <codeph>EIdle</codeph> state) is consumed in this phase. </p> <p>In the <codeph>EIdle</codeph> state, any existing allocated buffers continue to exist. </p> <p>The codec is allocated in terms of hardware memory consumption. </p> <p>A stream in the <codeph>EIdle</codeph> state can be ‘mid-file position’. There is no implied reset of position or runtime settings (that is, time played) by returning to <codeph>EIdle</codeph>. </p> </entry> </row> <row><entry><p> <codeph>EPrimed</codeph>  </p> </entry> <entry><p>This state is the same as <codeph>EIdle</codeph> but the stream can consume processing time by filling its buffers. The purpose of this state is to prepare a stream such that it is ready to play in as short a time as possible (for example, low-latency for audio chains which can be pre-buffered). </p> <p>Note that once the buffer is full, the stream may continue to use some processing time. </p> <p>There will not be an automatic transition to the <codeph>EIdle</codeph> state when the buffer is full. If such behaviour is desired, the client must request it. </p> <p>There will not be an automatic transition to <codeph>EActive</codeph> when the buffer is full. If such behaviour is desired, the client must request it. </p> </entry> </row> <row><entry><p> <codeph>EActive</codeph>  </p> </entry> <entry><p>The chain has the resources as <codeph>EIdle</codeph> and <codeph>EPrimed</codeph> but also has started to process the actions requested by the client. </p> <p> <b>Note:</b> A chain can be in the <codeph>EActive</codeph> state and performing a wide range of operations. However the semantics are that it is processing the stream and that it is consuming both processing and memory resources. </p> </entry> </row> <row><entry><p> <codeph>EDead</codeph>  </p> </entry> <entry><p>The stream can no longer function due to a fatal error. The logical chain still exists, but any physical resources should be reclaimed by the adaptation. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following diagram shows the stream states: </p> <fig id="GUID-1FA73F08-1C43-57AA-AEFA-DDEDD9464DDA"><title>
-                A3F State Machine 
-             </title> <image href="GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e331019_href.png" placement="inline"/></fig> </section> <section><title>A3F Tutorials</title> <p>The following tutorials are provided to help you create A3F solutions: </p> <ul><li id="GUID-EC27BD5D-A1DB-53E7-87F1-4A0AD6280F8B"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita">Audio Component Framework Tutorial</xref>  </p> </li> <li id="GUID-4BBFA92A-F174-57A6-B512-9F0D56C0EA6D"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita">Audio Processing Tutorial</xref>  </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita">Advanced Audio Adaptation Framework Overview</xref> </p> <p><xref href="GUID-174D98FF-6782-564E-9FDF-1AE32F770591.dita">Sound Device Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2"><title>Advanced Audio Adaptation Framework Technology Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides additional information about the Advanced Audio Adaptation Framework. </p> <section><title>Purpose</title> <p>The Advanced Audio Adaptation Framework (A3F) provides a common interface for accessing audio resources, playing tones, and configuring audio for playing and recording. </p> </section> <section><title>Understanding A3F</title> <p>A3F functionality is provided by the <xref href="GUID-C4AD7B75-9027-3F62-889C-ADEF5E6DBC73.dita"><apiname>CAudioContextFactory</apiname></xref> class. <xref href="GUID-C4AD7B75-9027-3F62-889C-ADEF5E6DBC73.dita"><apiname>CAudioContextFactory</apiname></xref> is responsible for creating audio contexts. The Audio Context API (<xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref>) maintains all audio components created in a context, where audio components are instances of the <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> and <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> classes. </p> <p>An <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> is created in a context by giving the type of the processing unit such as codec and source sink. <xref href="GUID-0536EF5D-3DA6-3F30-A404-52FE9E21B359.dita"><apiname>MAudioProcessingUnit</apiname></xref> allows extension interfaces to set additional audio processing unit settings. </p> <p>The Audio Stream API (<xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref>) is an audio component that links together processing units into an audio stream. <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> manages the audio processing state requested by the client and interacts with the audio processing units added to the stream. <xref href="GUID-C5B1FE01-DCFC-3CA5-931B-E371AEC918A6.dita"><apiname>MAudioStream</apiname></xref> provides runtime control over a stream's (composite) behaviour and lifetime management of the entities in a stream (whether the state of the stream is uninitialized, initialized, idle, primed, active or dead). For more information, see <xref href="GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2.dita#GUID-B0449B60-B78E-5CC1-8FAF-E5EE24D88EB2/GUID-28D6AB9C-8F4F-573A-853D-726138249390">Stream States</xref>. </p> <p>The Audio Context API allows a grouping notion for multimedia allocations. <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita"><apiname>MAudioContext</apiname></xref> groups component actions made inside a context. This means any allocation or loss of resources which occurs in any single audio component affects all of the components grouped in the context. </p> <p id="GUID-C13977B1-D855-5D46-913C-15059421C225"><b>The Commit Cycle</b> </p> <p>Changes made to an audio stream are handled in a transactional manner. If changes fail to be applied, then any other changes made to the stream are considered to fail also. The application of changes is dependent on a successful commit cycle. If there is a failure, a “rollback" mechanism is executed and the stream states are reverted to their previous state. </p> <p>The client requests changes through various <codeph>Set()</codeph> calls and then calls the <xref href="GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3.dita#GUID-67BE95B2-BE4A-32AF-8BDF-92FD8FBE6DC3/GUID-7011BDC1-C4D8-3BB5-9B7C-8729FADCE67E"><apiname>MAudioContext::Commit()</apiname></xref> function. The platform-specific implementation then decides whether the <codeph>Commit()</codeph> request is allowed, possibly dictates new values if needed, and then applies the changes. If successful, the client is informed through callbacks. If there is a need to modify the context because resources are needed in another context, then the platform-specific implementation can take the resources by pre-empting the context. In this case, the client is informed about the pre-emption. </p> <p>The following diagram shows this behaviour: </p> <fig id="GUID-18D00361-18E7-5A5C-B8C0-115E1D2DF29F"><title>
+                A3F Commit / Pre-emption Cycle 
+             </title> <image href="GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e324544_href.png" placement="inline"/></fig> <p><b>Observers</b> </p> <p>Most of the A3F API functions are asynchronous. For example, the functions <codeph>Foo()</codeph> or <codeph>SetFoo()</codeph> are followed with <codeph>FooComplete(Tint aError)</codeph> or <codeph>FooSet(Tint aError)</codeph>. </p> <p>The following A3F observers are defined: </p> <ul><li id="GUID-11C7E019-8628-533E-ACAB-E7A7C4893C65"><p> <xref href="GUID-3336EC2B-4FB8-3FD0-A702-0CB50DE059B4.dita"><apiname>MAudioContextObserver</apiname></xref>  </p> <p>Informs with <codeph>ContextEvent()</codeph> about the commit cycle. Note that <codeph>ContextEvent()</codeph> is in the same thread context as the A3F client. </p> </li> <li id="GUID-1E628CBE-641F-54B2-B144-FFEC88AB2ECF"><p> <xref href="GUID-D2075F61-F6FA-3FAE-9FBB-20CEFE81334C.dita"><apiname>MAudioStreamObserver</apiname></xref>  </p> <p>Informs with <codeph>StateEvent()</codeph> about state changes </p> </li> <li id="GUID-611327B3-9278-5793-9BE2-072B898A5245"><p> <xref href="GUID-805E421D-9143-326D-9455-FF40205AA70A.dita"><apiname>MAudioCodecObserver</apiname></xref>  </p> <p>Informs about completion of setters and getters. </p> </li> <li id="GUID-CD6FC1B2-B581-5CD2-9355-8B3AF8681680"><p> <xref href="GUID-B235174E-E8AC-36EE-8BCC-F466EEB8E720.dita"><apiname>MAudioGainControlObserver</apiname></xref>  </p> <p>Informs about changes in gain or changes in maximum gain values. </p> </li> <li id="GUID-A46EF843-AD06-583E-8E1E-712CC0341421"><p> <xref href="GUID-C070F06A-E77A-3477-90A2-C2E38B0E823C.dita"><apiname>MAudioProcessingUnitObserver</apiname></xref>  </p> <p>Informs about any additional errors in audio processing units. </p> </li> <li id="GUID-178B9281-35A8-519A-A01A-920134606A87"><p> <xref href="GUID-BC675A52-D3B5-3F97-B986-8643A8FEFE59.dita"><apiname>MMMFAudioDataConsumer</apiname></xref>  </p> <p>Informs about recorded buffer to be ready for storing. Also informs the client if there is a buffer to be ignored. </p> </li> <li id="GUID-8F5E2944-DB55-5601-B150-490919C98C4E"><p> <xref href="GUID-5F500DE3-5253-326C-B94A-1CBD7C83C082.dita"><apiname>MMMFAudioDataSupplier</apiname></xref>  </p> <p>Informs about new buffer ready to be filled with audio data. Also informs the client if any requested buffer should be ignored. </p> </li> </ul> <p id="GUID-28D6AB9C-8F4F-573A-853D-726138249390"><b>Stream States</b> </p> <p>Clients using A3F should be aware that requested audio resources can be lost at any time while they are being used. A client with a higher importance can cause requests for resources to be denied or available resources to become unavailable. In these cases, the commit cycle informs the client through pre-emption events and the resulted stream state is usually demoted to the highest non-disturbing state. </p> <p>The possible audio stream states are described in the following table: </p> <table id="GUID-33D9A149-C1CF-52F0-87E1-234CF93F677E"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>State</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <codeph>EUninitialized</codeph>  </p> </entry> <entry><p>This is the state of the chain before it is initialized. However, the settings in the logical chain cannot be related to the adaptation because no adaptation has been selected yet. </p> </entry> </row> <row><entry><p> <codeph>EInitialized</codeph>  </p> </entry> <entry><p>This state is set after a successful initialization request. </p> <p>The physical adaptation has been selected but may not be fully allocated. </p> <p>There should be no externally visible buffers allocated at this point </p> <p> <b>Note</b>: For zero copy and shared chunk buffers, a stream in the <codeph>EInitialized</codeph> state should not require buffer consumption. This is an important issue if the base port only has 16 addressable chunks per process. </p> <p>In terms of DevSound compatibility, some custom interfaces are available at this point (although others may require further construction before they are available). </p> </entry> </row> <row><entry><p> <codeph>EIdle</codeph>  </p> </entry> <entry><p>All the chain resources are allocated. However, no processing time (other than that expended to put the chain into the <codeph>EIdle</codeph> state) is consumed in this phase. </p> <p>In the <codeph>EIdle</codeph> state, any existing allocated buffers continue to exist. </p> <p>The codec is allocated in terms of hardware memory consumption. </p> <p>A stream in the <codeph>EIdle</codeph> state can be ‘mid-file position’. There is no implied reset of position or runtime settings (that is, time played) by returning to <codeph>EIdle</codeph>. </p> </entry> </row> <row><entry><p> <codeph>EPrimed</codeph>  </p> </entry> <entry><p>This state is the same as <codeph>EIdle</codeph> but the stream can consume processing time by filling its buffers. The purpose of this state is to prepare a stream such that it is ready to play in as short a time as possible (for example, low-latency for audio chains which can be pre-buffered). </p> <p>Note that once the buffer is full, the stream may continue to use some processing time. </p> <p>There will not be an automatic transition to the <codeph>EIdle</codeph> state when the buffer is full. If such behaviour is desired, the client must request it. </p> <p>There will not be an automatic transition to <codeph>EActive</codeph> when the buffer is full. If such behaviour is desired, the client must request it. </p> </entry> </row> <row><entry><p> <codeph>EActive</codeph>  </p> </entry> <entry><p>The chain has the resources as <codeph>EIdle</codeph> and <codeph>EPrimed</codeph> but also has started to process the actions requested by the client. </p> <p> <b>Note:</b> A chain can be in the <codeph>EActive</codeph> state and performing a wide range of operations. However the semantics are that it is processing the stream and that it is consuming both processing and memory resources. </p> </entry> </row> <row><entry><p> <codeph>EDead</codeph>  </p> </entry> <entry><p>The stream can no longer function due to a fatal error. The logical chain still exists, but any physical resources should be reclaimed by the adaptation. </p> </entry> </row> </tbody> </tgroup> </table> <p>The following diagram shows the stream states: </p> <fig id="GUID-1FA73F08-1C43-57AA-AEFA-DDEDD9464DDA"><title>
+                A3F State Machine 
+             </title> <image href="GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e324862_href.png" placement="inline"/></fig> </section> <section><title>A3F Tutorials</title> <p>The following tutorials are provided to help you create A3F solutions: </p> <ul><li id="GUID-EC27BD5D-A1DB-53E7-87F1-4A0AD6280F8B"><p><xref href="GUID-931207BE-3561-562D-8F67-0FB52CFF83CD.dita">Audio Component Framework Tutorial</xref>  </p> </li> <li id="GUID-4BBFA92A-F174-57A6-B512-9F0D56C0EA6D"><p><xref href="GUID-2A543E1C-F3DE-59EF-8A43-1B655F367FBC.dita">Audio Processing Tutorial</xref>  </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-4AAABD77-C08E-5EE2-A02A-3B412EA6D23F.dita">Advanced Audio Adaptation Framework Overview</xref> </p> <p><xref href="GUID-174D98FF-6782-564E-9FDF-1AE32F770591.dita">Sound Device Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,62 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5" xml:lang="en"><title>Toolbar
-API</title><shortdesc>The Toolbar API is used for enabling quick access to functions
-by displaying them in a toolbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A toolbar contains AVKON buttons. The toolbar supports touch, and can be
-with focus or without focus. It contains application-specific buttons (at
-least three) that launch application-specific commands. The toolbar content
-is application-specific, but you can choose whether the toolbar is displayed
-in an application view or not.</p>
-<p>The Toolbar API supports two types of toolbars: a fixed toolbar for touch
-UI, and a floating toolbar which can also be used in non-touch UIs.</p>
-<fig id="GUID-65384C58-D95F-4E3F-A3E8-41B2FBA237BB">
-<title>Fixed toolbar, floating toolbar, and toolbar extension</title>
-<image href="GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e79427_href.png" scale="90" placement="inline"/>
-</fig>
-<p>The fixed toolbar doesn’t have focus, whereas the floating toolbar owns
-the focus and it can be used also with navigation and selection keys. By default,
-the floating toolbar owns the CBA buttons (<uicontrol>Select</uicontrol> and <uicontrol>Close</uicontrol>)
-but the floating toolbar can be defined as not having the CBA buttons with
-suitable flags. </p>
-<p>The toolbars are also located differently: a fixed toolbar has a permanent
-place in the layout but a floating toolbar can be freely located when it is
-defined as having a flexible position.</p>
-<p>The toolbar extension is a toolbar button that expands the fixed or floating
-toolbar. When the extension button is pressed, a grid of toolbar items opens
-up. The extension items can be used as actual toolbar items. </p>
-<p>The extension button itself looks like an ordinary toolbar button. The
-only difference is that there is a default icon for the extension button that
-is shown if the application does not change the icon itself.</p>
-<p>For user experience guidelines on the toolbar component, please see the <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">toolbar UI component description</xref>.</p>
-<section id="GUID-117C4E37-4C55-4D0A-BA1A-D44200FD74F9"><p>For information
-on using the API, see <xref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita">Enabling
-quick access to functions with a toolbar</xref>.</p><p>For the Toolbar API
-classes and header files, see Classes and Definitions.</p></section>
-<section id="GUID-BA1F5361-1F8C-45A0-B476-ECDE87234816"><title>Constraints</title><p>This
-API is valid for all platforms running on Symbian OS v9.3 or later.</p></section>
-<section id="GUID-2C270CBB-6AF6-4416-8F0C-29546BF74FF4"><title>Emulator support</title><p>This
-API is supported in the WINS/WINSCW emulator environment, with the following
-exception:</p><ul>
-<li><p>Tactile feedback is not supported.</p></li>
-</ul></section>
-</conbody><related-links>
-<linklist><title>Related APIs</title>
-<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
-API</linktext>
-<desc> for creating toolbar buttons</desc>
-</link>
-<link format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer"><linktext>Form API</linktext>
-<desc> for including editable fields in fixed toolbar extensions</desc>
-</link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5" xml:lang="en"><title>Toolbar
+API</title><shortdesc>The Toolbar API is used for enabling quick access to functions
+by displaying them in a toolbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A toolbar contains AVKON buttons. The toolbar supports touch, and can be
+with focus or without focus. It contains application-specific buttons (at
+least three) that launch application-specific commands. The toolbar content
+is application-specific, but you can choose whether the toolbar is displayed
+in an application view or not.</p>
+<p>The Toolbar API supports two types of toolbars: a fixed toolbar for touch
+UI, and a floating toolbar which can also be used in non-touch UIs.</p>
+<fig id="GUID-65384C58-D95F-4E3F-A3E8-41B2FBA237BB">
+<title>Fixed toolbar, floating toolbar, and toolbar extension</title>
+<image href="GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e74305_href.png" scale="90" placement="inline"/>
+</fig>
+<p>The fixed toolbar doesn’t have focus, whereas the floating toolbar owns
+the focus and it can be used also with navigation and selection keys. By default,
+the floating toolbar owns the CBA buttons (<uicontrol>Select</uicontrol> and <uicontrol>Close</uicontrol>)
+but the floating toolbar can be defined as not having the CBA buttons with
+suitable flags. </p>
+<p>The toolbars are also located differently: a fixed toolbar has a permanent
+place in the layout but a floating toolbar can be freely located when it is
+defined as having a flexible position.</p>
+<p>The toolbar extension is a toolbar button that expands the fixed or floating
+toolbar. When the extension button is pressed, a grid of toolbar items opens
+up. The extension items can be used as actual toolbar items. </p>
+<p>The extension button itself looks like an ordinary toolbar button. The
+only difference is that there is a default icon for the extension button that
+is shown if the application does not change the icon itself.</p>
+<p>For user experience guidelines on the toolbar component, please see the <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">toolbar UI component description</xref>.</p>
+<section id="GUID-117C4E37-4C55-4D0A-BA1A-D44200FD74F9"><p>For information
+on using the API, see <xref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita">Enabling
+quick access to functions with a toolbar</xref>.</p><p>For the Toolbar API
+classes and header files, see Classes and Definitions.</p></section>
+<section id="GUID-F7848573-C3EE-4AF2-AC95-52D191D25F54"><title>Changes and release information</title><p>The Toolbar API
+is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-BA1F5361-1F8C-45A0-B476-ECDE87234816"><title>Constraints</title><p>This
+API is valid for all platforms running on Symbian OS v9.3 or later.</p></section>
+<section id="GUID-2C270CBB-6AF6-4416-8F0C-29546BF74FF4"><title>Emulator support</title><p>This
+API is supported in the WINS/WINSCW emulator environment, with the following
+exception:</p><ul>
+<li><p>Tactile feedback is not supported.</p></li>
+</ul></section>
+</conbody><related-links>
+<linklist><title>Related APIs</title>
+<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
+API</linktext>
+<desc> for creating toolbar buttons</desc>
+</link>
+<link format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer"><linktext>Form API</linktext>
+<desc> for including editable fields in fixed toolbar extensions</desc>
+</link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e184810_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B0797210-4EE3-557B-A5A6-D215D030BA0E_d0e191406_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693"><title>How to use the SIP Client API</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-DC93FFFF-1981-5EA1-9B88-E3CC56CCCEB7"><title>Protocols</title> <p>The following sections describe how to do the following: </p> <ul><li id="GUID-7E5B3D7B-45E4-543A-8219-A5C1C0D25913"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-AFD6AB5D-1B1B-53CB-ABC7-4585D9A91CE8">Starting the SIP Client</xref>  </p> </li> <li id="GUID-39810F58-A7EB-5F1C-96C6-4A2E62B263EB"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-42784C1C-600A-53AE-9AEB-463EBF34C636">Closing SIP Client</xref>  </p> </li> <li id="GUID-544748CF-463C-546B-A291-08D1C2887C01"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-AC90094E-BF4E-5C2B-81B2-EF9BF5603BA2"> Sending a SIP request</xref>  </p> </li> <li id="GUID-F71538DD-111C-5DFE-88A3-2E025E05429C"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-5E5EC61F-5AB3-55F6-9AB0-463D5D0876DA">Receiving a SIP request</xref>  </p> </li> <li id="GUID-CC881957-ACE4-597F-85B4-1859886B61E7"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-820D689F-6404-5E40-AAC2-A45ABECDBADC">Receiving a SIP request and creating a session</xref>  </p> </li> <li id="GUID-5FBBC17B-D4B7-51F3-8560-13F6730010B6"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-109B933C-1063-577F-9A58-BA809869A0DF">Registration</xref>  </p> </li> <li id="GUID-8E35F949-CC67-546C-9899-3A2C1BF8BBC1"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-E683488B-B7EA-5215-8476-8C39950AC21B">Creating a dialog with INVITE</xref>  </p> </li> <li id="GUID-3246EFA2-48AB-5D54-9E5C-E8095886FCCD"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-E4E6E0C2-7B0F-51AA-B1E3-282E8F728EDC"> Generating a '100 SIP response'</xref>  </p> </li> <li id="GUID-6E4E101D-8638-5AD8-B105-D5FD5D9ED6E5"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-C1ED4FC7-5DEB-5C5B-AE82-549D4577A9A9">Responding to a CANCEL request</xref>  </p> </li> <li id="GUID-010BA345-B521-54AC-8208-B0C5969BA87D"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-CB27D3C3-D28B-5081-B201-8C10DE60CF25">Sending a SIP request and responding to a HTTP Digest challenge</xref>  </p> </li> <li id="GUID-4A8CF777-7379-5AF6-90A9-B15480B2E67E"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-B882D001-CDE9-579F-8DDE-C087D8707C2E">Notification of a failed refresh</xref>  </p> </li> <li id="GUID-79F2A3B3-2CC0-52ED-903B-3D4855E4A274"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-DDD7FDBD-FBC9-5111-BE71-A71E6CCEFB2A">Error handling</xref>  </p> </li> <li id="GUID-AB416C57-9986-54AD-BB8A-7240D8FBCD7D"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-0FC8038A-64AE-5E98-A9F9-ADBC6F05DF2B">Refreshing a Connection</xref>  </p> </li> </ul> </section> <section id="GUID-AFD6AB5D-1B1B-53CB-ABC7-4585D9A91CE8"><title>Starting the SIP Client</title> <p>To start the SIP Client: </p> <ol id="GUID-62B966F0-272C-5A03-9364-7685412436B0"><li id="GUID-626ACA6E-6CA9-5A3C-8582-EDEE7AE823D0"><p>Create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class. The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class creates a <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object and implements the callback functions defined by <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref>. The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object connects the client to a shared server. </p> <p> <b>Note:</b> The server is started if it is not active. This may take a short time while the server side resources are created and initialised. </p> </li> <li id="GUID-BEE4CC97-50C6-5681-ACEB-180CA59B0CD3"><p>Create an instance of the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class to use an IAP. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class must implement the callback functions defined by <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref>. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class creates <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object forms a sub-session between the client and the server. </p> </li> <li id="GUID-1B0B51F8-37DF-5495-AEEC-F49A6C7EE947"><p>Call the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-7F3A8623-2989-3CCE-BF0C-BA4717D29D64"><apiname>CSIPConnection::NewL()</apiname></xref> function to create an active connection. The <codeph>CSIPConnection::EActive</codeph> state indicates that the object can be used to send SIP messages and create registrations and dialogs. The current state is asked by calling <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-A1A6D679-936C-3156-BA7D-5CBC3E2DEF7F"><apiname>CSIPConnection::State()</apiname></xref>. The <codeph>MSIPConnectionObserver::ConnectionStateChanged(CSIPConnection::
-                EActive)</codeph> callback function is called. </p> </li> </ol> <p>The following illustration shows the sequence of events involved in starting the SIP Client API. </p> <fig id="GUID-86E80D26-544B-587A-B2FD-B15CF44E47B4"><image href="GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e339369_href.png" placement="inline"/></fig> </section> <section id="GUID-42784C1C-600A-53AE-9AEB-463EBF34C636"><title>Closing the SIP Client</title> <p>To close the SIP Client: </p> <ul><li id="GUID-9FA5F4F3-9403-5256-9B80-939042BB2A8A"><p>Delete the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object to close the connection to the SIP server. </p> </li> <li id="GUID-2C9F26A2-D5D1-585A-87C8-222A57D05F2F"><p>Delete the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object to close the sub-session between the client and the server. </p> </li> <li id="GUID-78A46553-52E1-57E3-BB0A-AEC70FC36F0F"><p>When the connection has been closed, operations on objects that depend on the connection fail with the <codeph>KErrSIPResourceNotAvailable</codeph> error code. </p> </li> </ul> <p>For example, if an application has <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> and <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> objects, and it deletes the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object, then subsequent attempts to use the <codeph>CSIPRegistrationBinding</codeph> object fails. This is because <codeph>CSIPRegistrationBinding</codeph> cannot communicate with the server side of the SIP stack without the <codeph>CSIPConnection</codeph> object. </p> <p>The following illustration shows the order for deleting SIP Client API objects. </p> <fig id="GUID-5C5F0C8E-76BD-56CC-AA9E-BECF035D1A9F"><image href="GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e339435_href.png" placement="inline"/></fig> </section> <section id="GUID-AC90094E-BF4E-5C2B-81B2-EF9BF5603BA2"><title> Sending a SIP request</title> <p>To send a SIP request: </p> <ul><li id="GUID-C92F9ADF-1BF5-5057-8851-0940E67A3C6A"><p>Create a <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object and enter the required fields of the request. </p> </li> <li id="GUID-E69DA3E7-5C13-5D10-BD82-1D37AEE0EE8A"><p>Call the <codeph>CSIPConnection::SendRequestL(CSIPRequestElements*)</codeph> function to take control of the <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> objects and communicate the request to the server side of the SIP stack. </p> <p> <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname> CSIPConnection</apiname></xref> creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to the application. </p> </li> </ul> <p> <b>Note:</b>  <codeph>SendRequestL()</codeph> starts the server side processing of sending the MESSAGE request. This task takes time as address resolving and socket operations are done only after the <codeph>SendRequestL()</codeph> call is returned. If an error occurs after <codeph>SendRequestL()</codeph> returns, then the error is communicated to the application through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref> callback functions. An example of such a failure is failure to resolve the address. When <codeph>SendRequestL()</codeph> returns, the MESSAGE request is not yet sent to the network, and is being processed on the server side of the SIP stack. </p> <p>After <codeph>SendRequestL()</codeph> returns and the sending of a MESSAGE request is in progress on the shared server, there is no way for the application to cancel that operation. This also applies to other operation types. However the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita#GUID-059F9C3A-EA04-3295-912F-50444F073CE7/GUID-8F7BF1A8-75C4-39A1-BCB3-4E1F7CDE59CC"><apiname>CSIPClientTransaction::CancelL()</apiname></xref> function is used to send a CANCEL request after the application sends an INVITE request. </p> <p>When the SIP response is received from the server side, the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object: </p> <ol id="GUID-0DB00054-27E8-57BF-8BB0-7F8231C7627B"><li id="GUID-D207CF42-5B04-5625-8CF8-4EEAD3451542"><p>creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to represent the SIP response </p> </li> <li id="GUID-7131D953-EFF6-5D31-B20F-64B56C968368"><p>attaches it to the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object </p> </li> <li id="GUID-72C682B2-05BE-58ED-B743-0554C9476CC2"><p>notifies the application through a call to one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-EE7CC7B8-CC03-3814-9177-CFBFBB043426"><apiname>MSIPConnectionObserver:: IncomingResponse()</apiname></xref> callback functions. </p> </li> </ol> <p>The application determines the kind of response received by accessing the <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object through <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. As the response is provisional, the application does not delete the <codeph>CSIPClientTransaction</codeph> object. A '200 response' is received later, and the application then deletes the <codeph>CSIPClientTransaction</codeph> object. </p> <p>Then, create a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to represent the SIP response, attach it to <codeph>CSIPClientTransaction</codeph> and notify the application with <codeph>MSIPConnectionObserver::
-          IncomingResponse</codeph>. </p> <p>The following illustration shows the sequence of events involved in sending a MESSAGE request and receiving two responses to it. </p> <fig id="GUID-6724EF0B-9B98-5225-BABA-3967A5065711"><image href="GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e339581_href.png" placement="inline"/></fig> </section> <section id="GUID-5E5EC61F-5AB3-55F6-9AB0-463D5D0876DA"><title>Receiving a SIP request</title> <p>A standalone SIP request is received through an existing <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> objects before notifying the application through the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-2DF68D26-9787-3D00-B86F-1999D20E4981"><apiname>MSIPConnectionObserver::IncomingRequest()</apiname></xref> callback function. The <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> represent the incoming SIP request </p> <p>The <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object is passed to the <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object through the callback function. The application retrieves information about the request from the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object. </p> <p>To send a response, the application creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object and passes it to <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita#GUID-7E54C95E-5155-30B1-8169-A59778774403/GUID-2D5A77B6-114D-3A22-B622-5342BF235B67"><apiname>CSIPServerTransaction::SendResponseL()</apiname></xref>. This passes the response to the server side for further processing. When <codeph>SendResponseL()</codeph> is returned, the application no longer needs the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object and deletes it. </p> <p>The following illustration shows the sequence of events involved in receiving a MESSAGE request and sending a response to it. </p> <fig id="GUID-8C9A8944-1150-52E2-A031-BA65F16191F4"><image href="GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e339656_href.png" placement="inline"/></fig> </section> <section id="GUID-820D689F-6404-5E40-AAC2-A45ABECDBADC"><title>Receiving a SIP request and creating a session</title> <p>The SIP stack receives a SIP INVITE request from the network acting as a User Agent Server (UAS) and creates an invite server transaction for the received request. The SIP stack sends a '100 SIP response' to the remote UA. After comparing the received request with the stored application capabilities, the SIP stack routes the received INVITE request to the chosen application. </p> <p>The application creates a <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> object and the SIP stack creates an instance of <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref>. The application sends a '200 SIP response' to the remote UA. The remote UA acknowledges the '200 SIP' response with ACK and creates a SIP session is between the local and remote UA. </p> <p>The following illustration shows the sequence of events involved in receiving a SIP request and creating a SIP dialog. </p> <fig id="GUID-8A8D96E1-99DC-5F11-847A-9D407212CA6E"><image href="GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e339681_href.png" placement="inline"/></fig> </section> <section id="GUID-109B933C-1063-577F-9A58-BA809869A0DF"><title>Registration</title> <p>An application creates a <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object to initiate a registration. It then creates a <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> object, passing <codeph>CSIPRefresh</codeph> to it. </p> <p> <b>Note:</b> It is not mandatory to create a <codeph>CSIPRefresh</codeph> object. It is required if the registration is to be refreshed by the SIP stack. </p> <p>After the <codeph>CSIPRegistrationBinding</codeph> object exists, the application initiates the registration process by calling <codeph>RegisterL()</codeph> on the <codeph>CSIPRegistrationBinding</codeph> object. <codeph/>  <codeph>CSIPRegistrationBinding</codeph> forms a REGISTER request and communicates it to the server side of the SIP stack, it instantiates the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to the application. </p> <p>When the '200 SIP response' is received from the server side, <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates the <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to contain the response, and then routes the response to <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref>. <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> attaches the response to <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. The application is informed about the response through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-7DE6337F-4EAA-3AE4-B573-1F7E59EDCFE5"><apiname>MSIPConnectionObserver::IncomingResponse()</apiname></xref> callback functions. </p> <p>The application does not require the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and can delete it. The <codeph>IsContextActive()</codeph> finds out if the registration is successful. </p> <p>The following illustration shows the sequence of events involved in registering with a refresh and receiving a '200 OK response'. </p> <fig id="GUID-7F489E97-2ADE-5753-A03B-5600E4BD1C55"><image href="GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e339773_href.png" placement="inline"/></fig> </section> <section id="GUID-45BEF04F-64A3-5B29-8CE4-8B1F5CA0E64F"><title>Configuring the registration</title> <p>When registering an SIP connection, applications have two options to configure the registration : outbound proxy caching and expiration value removal. To set each of these options, call <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita#GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4/GUID-B3C68013-AF24-3529-8595-5CC9497F2E98"><apiname>CSIPRegistrationBinding::SetProperty()</apiname></xref> with the corresponding property constant, as explained below. </p> <p>The SIP stack resolves the IP address of the outbound proxy during registration. The default behavior is to resolve the address again for each SIP message sent using this registration context. However, you can also cache the address to optimise network traffic. If you set <xref href="GUID-9A7A7547-76EB-3CC7-9C3D-7F1C08A160D0.dita"><apiname>KSIPCacheOutboundProxyIP</apiname></xref> property to <codeph>ETrue</codeph>, the SIP stack reuses the proxy address that was resolved during registration. The proxy address is refreshed by successful REGISTER transactions, which always perform a DNS query. </p> <p>By default, the SIP stack sends the expiration value in the REGISTER request. In the '200 OK' answer to a REGISTER message, the registrar returns an expiration value that may be different from the value that was sent. The SIP stack validates the returned expiration value against the minimum and maximum expiration values: if the returned expiration value is out of range, the SIP stack uses the minimum value or the maximum value. </p> <ul><li id="GUID-478291AE-D709-5AF1-AE4A-F1C115F8BE7C"><p>The minimum expiration value is 30 seconds, to reduce network activity and battery consumption. </p> </li> <li id="GUID-A0C7C631-F4CF-5CC0-BAA7-236C939E87C8"><p>The maximum expiration value is the expiration value that you specify for the REGISTER request. By default, the maximum expiration value is 3600 seconds, to protect the application from DOS attacks that provide '200 OK' responses with a very high expiration value. </p> </li> </ul> <p>If you set <xref href="GUID-C0920ECB-95CC-3152-8D6F-C4751AA8271E.dita"><apiname>KSIPSendWithExpires</apiname></xref> to <codeph>EFalse</codeph>, the SIP stack does not send the application's expiration value in the REGISTER message. </p> </section> <section id="GUID-E683488B-B7EA-5215-8476-8C39950AC21B"><title>Creating a dialog with INVITE</title> <p>To create a dialog with INVITE an application creates <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> and <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref> objects. The application must enter the relevant SIP headers in the <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements </apiname></xref> object before passing it to <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> using the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita#GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8/GUID-D587F38B-3631-3399-9A82-04EA473E7694"><apiname>CSIPInviteDialogAssoc::SendInviteL()</apiname></xref> function. </p> <p> <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> then forms an INVITE request and communicates it to the server side of the SIP stack. It then creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object, and returns it to the application. </p> <p>When the server sends '180 response', the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to contain the response, and then routes the response to <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref>. <codeph>CSIPDialog</codeph> attaches the response to <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. The application is informed about the receipt of the '180 response' through a call to one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-EE7CC7B8-CC03-3814-9177-CFBFBB043426"><apiname>MSIPConnectionObserver:: IncomingResponse()</apiname></xref> callback functions. </p> <p>When the '200 response' is received, processing similar to '180 response' occurs. Then the application responds by sending an ACK request. This is done by invoking the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita#GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8/GUID-DBA0B06D-EC23-3458-9397-402E6CA17106"><apiname>CSIPInviteDialogAssoc::SendAckL()</apiname></xref> function, which forms the ACK request and sends it to the server side of the SIP stack. </p> <p>The INVITE request might fork at a proxy, so the server side of the SIP stack waits for several possible responses. When the forking is does not happen, the server side of the SIP stack sends an <codeph>InviteCompleted</codeph> event. The SIP Client API forwards the <codeph>InviteCompleted</codeph> event to the application, indicating that the application can now delete the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. </p> <p>The following figure shows the sequence of events involved in sending an INVITE, receiving a response and sending an ACK. </p> <fig id="GUID-3AE23155-63D4-5948-855E-9D44F48E4D11"><image href="GUID-C8D04D54-D391-5505-9E80-596589410179_d0e339911_href.png" placement="inline"/></fig> </section> <section id="GUID-E4E6E0C2-7B0F-51AA-B1E3-282E8F728EDC"><title> Generating a '100 SIP response'</title> <p>The SIP stack generates a '100 response' automatically when it receives an <codeph>INVITE</codeph> request from the network. Applications are not allowed to send '100 responses'. </p> </section> <section id="GUID-C1ED4FC7-5DEB-5C5B-AE82-549D4577A9A9"><title>Responding to a CANCEL request</title> <p>When the SIP stack receives a CANCEL request from the network, it automatically responds to it. CANCEL requests are never passed to an application. </p> <p>If the SIP stack: </p> <ul><li id="GUID-05B62303-9453-5E42-8E2A-6D50A5857312"><p>does not find a matching transaction for a CANCEL request, it automatically generates a '481 response'. </p> </li> <li id="GUID-69DBD19D-1871-57C5-AF95-8858A92BE6C5"><p>finds a matching transaction for a CANCEL request, it automatically generates a '200 response'. </p> </li> <li id="GUID-C806FF70-7EBD-5D06-989E-971E2E7589DD"><p>finds a matching INVITE server transaction that is in the <codeph>Proceeding</codeph> state (that is a final response is not yet sent), it also automatically generates a '487 response' to the INVITE transaction. </p> </li> </ul> <p>After these actions are complete, the SIP stack informs the application by calling the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-500F0C1D-6FCF-32DB-B9CC-4F7CEC1A9053"><apiname>MSIPConnectionObserver::InviteCanceled()</apiname></xref> callback function. </p> </section> <section id="GUID-CB27D3C3-D28B-5081-B201-8C10DE60CF25"><title>Sending a SIP request and responding to a HTTP Digest challenge</title> <p>A SIP server in the signalling chain challenges any SIP request initiated by the application with an HTTP Digest challenge by responding with a '401 SIP response', '407 SIP response' or a '494 SIP response'. The responses contain details of the challenge. These responses are never passed directly to the application. Instead, they are passed to the application through a call to the callback function <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref>. </p> <p>To enable an application to respond to a challenge, it must: </p> <ul><li id="GUID-69B100E7-A67F-5F0C-B886-1B0FAE9DBEB4"><p>create a <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> object </p> </li> <li id="GUID-A58199C3-57A0-536F-8EC2-76A29F3003DA"><p>provide an implementation of the callback function <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref> . </p> </li> </ul> <p>The application can either accept or reject the challenge: </p> <ul><li id="GUID-8EFD6F96-73E8-594E-9971-95DB3DA5B5ED"><p>If it accepts the challenge, the callback function must call <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita#GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D/GUID-FBDFE260-789F-3FB1-9884-D958B82E3734"><apiname>CSIPHttpDigest::SetCredentialsL()</apiname></xref>, specifying the username, password, and the realm passed to the callback function. </p> <p>Then, SIP stack re-sends the original SIP request with the HTTP Digest response. </p> </li> <li id="GUID-C1A1BCCC-7E0C-5B4F-A0D9-EDC52F081D59"><p>If it rejects the challenge, the callback function must call <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita#GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D/GUID-2F3A2A6D-B825-30A5-A133-EEBBFCD3F52B"><apiname>CSIPHttpDigest::IgnoreChallenge()</apiname></xref>, specifying the realm passed to the callback function. </p> <p>Then, SIP stack calls the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref>, by passing the error code <xref href="GUID-FF8BB656-99F5-369E-A6CE-56684D329AD5.dita"><apiname>KErrSIPForbidden</apiname></xref>. </p> </li> </ul> <p>If an application does not want to receive the HTTP Digest challenge then it must not create a <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> object. In this event, the SIP stack calls the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref>, passing the error code <xref href="GUID-FF8BB656-99F5-369E-A6CE-56684D329AD5.dita"><apiname>KErrSIPForbidden</apiname></xref>. </p> <p> <b>Note:</b>  </p> <ul><li id="GUID-A028B39A-292E-5556-B4A0-AF801F6131F3"><p>If an application uses the SIP Profile Agent for SIP registration, the SIP Profile Agent handles the HTTP Digest challenges related to the registration procedure according to the SIP profile information. </p> </li> <li id="GUID-19A777A8-E8D0-54F4-A59E-53550B6A802C"><p>The SIP stack maintains a HTTP Digest cache which stores username and password pairs for realms. If the username and password have been configured for a proxy, or if the application has already provided them after being asked through a <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref> call, then the SIP stack uses them to answer subsequent challenges for a matching realm automatically. </p> <p>For example, if the application uses a SIP Profile whose proxy is configured with HTTP Digest passwords and then sends an INVITE, it does not need to provide the passwords for the proxy as the SIP stack gets it from the HTTP Digest cache. </p> </li> </ul> </section> <section id="GUID-B882D001-CDE9-579F-8DDE-C087D8707C2E"><title>Notification of a failed refresh</title> <p>The following example shows how an application is notified when a refresh request within a dialog terminates after an error occurs. In this example the application sends a SUBSCRIBE request with refresh, and receives a <codeph>2xx</codeph> class response. The SIP stack periodically sends a refreshed SUBSCRIBE message. After successfully refreshed SUBSCRIBE requests, the remote server responds with a '481 response', and the application receives the following callback: </p> <codeblock id="GUID-A7F94C80-1224-5A70-B757-98FFAAD92B3B" xml:space="preserve">MSIPConnectionObserver::ErrorOccured(TInt aError, CSIPDialogAssocBase&amp; aDialogAssoc)</codeblock> <p>If the value of <codeph>aError</codeph> is <xref href="GUID-D711A918-6BCE-3A6A-988C-1B1917CD19A6.dita"><apiname>KErrSIPTerminatedWithResponse</apiname></xref>, then the actual SIP response causing the refresh to end can be found as follows: </p> <ul><li id="GUID-76291322-B9F0-55D3-A019-73A9040F2652"><p>Check that <codeph>aDialogAssoc.Type()</codeph> returns <codeph>"SUBSCRIBE"</codeph>. </p> </li> <li id="GUID-52B18DCF-2308-52A9-AB13-5920042C2E5D"><p>Call the function with the following signature to get the refresh instance (<xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object): </p> <codeblock id="GUID-F0E7DFDA-506F-5377-9F87-CE9775436133" xml:space="preserve">const CSIPRefresh* CSIPSubscribeDialogAssoc::SIPRefresh() const</codeblock> </li> <li id="GUID-6AB4677A-19F9-5CD3-8DAB-E1A242A98D54"><p>Use the <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object to get the associated transaction by calling the following function: </p> <codeblock id="GUID-D4889AC1-1281-5367-B19B-2136AE9DA707" xml:space="preserve">const CSIPClientTransaction* CSIPRefresh::SIPTransaction() const</codeblock> <p> <b>Note:</b> The returned <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object is not similar to the one returned from the call to <codeph>SendSubscribeL(),</codeph> that the application originally used to send the SUBSCRIBE request. </p> </li> <li id="GUID-D1B61B14-7B99-59EA-9FDD-5ECEB839C4DA"><p>Call the following function to get the SIP response: </p> <codeblock id="GUID-04849100-2F81-5B03-9B1A-2797AF7F96DD" xml:space="preserve">const CSIPResponseElements* CSIPClientTransaction::ResponseElements() const</codeblock> </li> </ul> </section> <section id="GUID-DDD7FDBD-FBC9-5111-BE71-A71E6CCEFB2A"><title>Error handling</title> <p>Errors are passed to an application by calling the callback functions or by leaving. For more information, see <xref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita">Cleanup support overview</xref>. If an error occurs during the synchronous part of an operation is initiated by the application, functions leave with an error code. If an error occurs during the asynchronous processing stage, the error is passed to the application through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref> callback functions. </p> <p>There are several overloaded variants of <codeph>ErrorOccured()</codeph> functions. Each of them takes the error code and reference to the SIP Client API object that encountered the error: </p> <ul><li id="GUID-2734ECF0-1751-5AB8-BFE3-425965D01CF0"><p>A call to the variants of <codeph>ErrorOccured()</codeph> taking a <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> or <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> parameter means that transaction has entered the state <xref href="GUID-8E445232-29A0-3EED-94C3-43BFDD328358.dita#GUID-8E445232-29A0-3EED-94C3-43BFDD328358/GUID-288F503D-3EEA-3B4B-8D31-B58E3777F875"><apiname>CTransactionBase::ETerminated</apiname></xref>. </p> </li> <li id="GUID-C45D4A2D-F175-542B-92BF-211E1673F3F1"><p>A call to the variant of <codeph>ErrorOccured()</codeph> taking a <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> parameter means that the registration context is no longer active, that is <codeph>CSIPRegistrationBinding::IsContextActive() == EFalse</codeph>. </p> <p>If the registration was being refreshed, then the refresh has also ended and its state is <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita#GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3/GUID-EFEDCA93-E338-32A1-B005-8BA316B3C172"><apiname>CSIPRefresh::ETerminated</apiname></xref>. </p> </li> </ul> <p>If the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref> is called and the <codeph>aState</codeph> parameter is either <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-68DD22DC-67E4-387B-BBE9-B9B96D9C9016"><apiname>CSIPConnection::EInactive</apiname></xref> or <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-5963A947-BD5C-3B34-9D10-2CB5DC413774"><apiname>CSIPConnection::EUnavailable</apiname></xref>, then all dialogs, registrations, and standalone transactions using the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> are terminated. </p> <p>To avoid an overload of callback calls in this type of situation, calls to <codeph>ErrorOccured()</codeph> for the individual dialog, registration and transaction objects are not sent to the application. </p> <p>When the connection state changes, the <codeph>MSIPConnectionObserver::ConnectionStateChanged()</codeph> callback function does not provide a reason. Call <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-B9D5319D-D569-3D4A-AF73-66F057ACF88D"><apiname>CSIPConnection::GetConnectionError()</apiname></xref> to get details about the connection error that caused the change. </p> </section> <section id="GUID-0FC8038A-64AE-5E98-A9F9-ADBC6F05DF2B"><title>Refreshing a Connection</title> <p>To refresh a connection, do the following steps: </p> <ol id="GUID-368431B7-E9FB-56E7-A45F-01B686DBECAA"><li id="GUID-97E972C7-E839-5942-A487-48A9FD1EEC0E"><p>Start the connection on the desired IAP. </p> </li> <li id="GUID-35157131-E6EA-5EB2-8773-33832C45F46E"><p>Monitor the status of the connection using the <xref href="GUID-64C272AA-5727-3AB9-A131-68303E5A75D6.dita#GUID-64C272AA-5727-3AB9-A131-68303E5A75D6/GUID-7984D221-06F6-3F4B-B373-11C96D0A17F3"><apiname>MSIPConnectionObserver::ConnectionStateChanged(CSIPConnection::TState
-                aState)</apiname></xref> function. </p> </li> <li id="GUID-85CDAB12-933A-5748-B2B8-33971F58B7B4"><p>If the connection is inactive, notify the <codeph>EInactive</codeph> state to the application through <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref> function that is, if <xref href="GUID-8239C16D-74EC-3B97-ADB0-B6AE57D30C89.dita#GUID-8239C16D-74EC-3B97-ADB0-B6AE57D30C89/GUID-3380638E-B5BA-3C88-82CB-9E52385F6A38"><apiname>(CSIPConnection::TState == EInactive)</apiname></xref>, then send a <xref href="GUID-7FBF47FB-7D1F-3F20-BBCA-A195BB540D67.dita"><apiname>RefreshConnection()</apiname></xref> function to make it active. </p> <p> <b>Note:</b> This requires a bearer monitor on that IAP to which a refresh request is sent. </p> </li> <li id="GUID-49A770C0-0992-5D27-B8A6-4D68E4B90E09"><p>Any changes to the state of the connection is notified through <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref>. </p> </li> </ol> <p>The following sequence diagram shows how a client refreshes a connection. </p> <fig id="GUID-B3D9E694-31F8-59AA-A722-BE6F9C0D5E89"><image href="GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e340322_href.jpg" placement="inline"/></fig> <p>The following example code describes how to refresh a connection. </p> <codeblock id="GUID-B14ADDEF-1E3C-5B21-8426-4D0FE65FBC28" xml:space="preserve">// It is assumed that the connection is started and is in an Inactive state that is, 
-// (CSIPConnection::TState == EInactive)
-
-// Refresh the IAP ID of the connection by sending a Refresh Request to the Bearer monitor of the IAP
-CSIPConnection:: RefreshConnection()
-
-// Note: The application is notified of the changes in the state of the connection through the 
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693"><title>How to use the SIP Client API</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-DC93FFFF-1981-5EA1-9B88-E3CC56CCCEB7"><title>Protocols</title> <p>The following sections describe how to do the following: </p> <ul><li id="GUID-7E5B3D7B-45E4-543A-8219-A5C1C0D25913"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-AFD6AB5D-1B1B-53CB-ABC7-4585D9A91CE8">Starting the SIP Client</xref>  </p> </li> <li id="GUID-39810F58-A7EB-5F1C-96C6-4A2E62B263EB"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-42784C1C-600A-53AE-9AEB-463EBF34C636">Closing SIP Client</xref>  </p> </li> <li id="GUID-544748CF-463C-546B-A291-08D1C2887C01"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-AC90094E-BF4E-5C2B-81B2-EF9BF5603BA2"> Sending a SIP request</xref>  </p> </li> <li id="GUID-F71538DD-111C-5DFE-88A3-2E025E05429C"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-5E5EC61F-5AB3-55F6-9AB0-463D5D0876DA">Receiving a SIP request</xref>  </p> </li> <li id="GUID-CC881957-ACE4-597F-85B4-1859886B61E7"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-820D689F-6404-5E40-AAC2-A45ABECDBADC">Receiving a SIP request and creating a session</xref>  </p> </li> <li id="GUID-5FBBC17B-D4B7-51F3-8560-13F6730010B6"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-109B933C-1063-577F-9A58-BA809869A0DF">Registration</xref>  </p> </li> <li id="GUID-8E35F949-CC67-546C-9899-3A2C1BF8BBC1"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-E683488B-B7EA-5215-8476-8C39950AC21B">Creating a dialog with INVITE</xref>  </p> </li> <li id="GUID-3246EFA2-48AB-5D54-9E5C-E8095886FCCD"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-E4E6E0C2-7B0F-51AA-B1E3-282E8F728EDC"> Generating a '100 SIP response'</xref>  </p> </li> <li id="GUID-6E4E101D-8638-5AD8-B105-D5FD5D9ED6E5"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-C1ED4FC7-5DEB-5C5B-AE82-549D4577A9A9">Responding to a CANCEL request</xref>  </p> </li> <li id="GUID-010BA345-B521-54AC-8208-B0C5969BA87D"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-CB27D3C3-D28B-5081-B201-8C10DE60CF25">Sending a SIP request and responding to a HTTP Digest challenge</xref>  </p> </li> <li id="GUID-4A8CF777-7379-5AF6-90A9-B15480B2E67E"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-B882D001-CDE9-579F-8DDE-C087D8707C2E">Notification of a failed refresh</xref>  </p> </li> <li id="GUID-79F2A3B3-2CC0-52ED-903B-3D4855E4A274"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-DDD7FDBD-FBC9-5111-BE71-A71E6CCEFB2A">Error handling</xref>  </p> </li> <li id="GUID-AB416C57-9986-54AD-BB8A-7240D8FBCD7D"><p><xref href="GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693.dita#GUID-B0EF8500-0A49-5EA8-B7FF-8149E5F03693/GUID-0FC8038A-64AE-5E98-A9F9-ADBC6F05DF2B">Refreshing a Connection</xref>  </p> </li> </ul> </section> <section id="GUID-AFD6AB5D-1B1B-53CB-ABC7-4585D9A91CE8"><title>Starting the SIP Client</title> <p>To start the SIP Client: </p> <ol id="GUID-62B966F0-272C-5A03-9364-7685412436B0"><li id="GUID-626ACA6E-6CA9-5A3C-8582-EDEE7AE823D0"><p>Create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class. The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class creates a <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object and implements the callback functions defined by <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref>. The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object connects the client to a shared server. </p> <p> <b>Note:</b> The server is started if it is not active. This may take a short time while the server side resources are created and initialised. </p> </li> <li id="GUID-BEE4CC97-50C6-5681-ACEB-180CA59B0CD3"><p>Create an instance of the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class to use an IAP. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class must implement the callback functions defined by <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref>. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> class creates <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object forms a sub-session between the client and the server. </p> </li> <li id="GUID-1B0B51F8-37DF-5495-AEEC-F49A6C7EE947"><p>Call the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-7F3A8623-2989-3CCE-BF0C-BA4717D29D64"><apiname>CSIPConnection::NewL()</apiname></xref> function to create an active connection. The <codeph>CSIPConnection::EActive</codeph> state indicates that the object can be used to send SIP messages and create registrations and dialogs. The current state is asked by calling <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-A1A6D679-936C-3156-BA7D-5CBC3E2DEF7F"><apiname>CSIPConnection::State()</apiname></xref>. The <codeph>MSIPConnectionObserver::ConnectionStateChanged(CSIPConnection::
+                EActive)</codeph> callback function is called. </p> </li> </ol> <p>The following illustration shows the sequence of events involved in starting the SIP Client API. </p> <fig id="GUID-86E80D26-544B-587A-B2FD-B15CF44E47B4"><image href="GUID-15CAB5AF-CAA5-5D1B-9236-7874BF944484_d0e333212_href.png" placement="inline"/></fig> </section> <section id="GUID-42784C1C-600A-53AE-9AEB-463EBF34C636"><title>Closing the SIP Client</title> <p>To close the SIP Client: </p> <ul><li id="GUID-9FA5F4F3-9403-5256-9B80-939042BB2A8A"><p>Delete the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object to close the connection to the SIP server. </p> </li> <li id="GUID-2C9F26A2-D5D1-585A-87C8-222A57D05F2F"><p>Delete the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object to close the sub-session between the client and the server. </p> </li> <li id="GUID-78A46553-52E1-57E3-BB0A-AEC70FC36F0F"><p>When the connection has been closed, operations on objects that depend on the connection fail with the <codeph>KErrSIPResourceNotAvailable</codeph> error code. </p> </li> </ul> <p>For example, if an application has <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> and <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> objects, and it deletes the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object, then subsequent attempts to use the <codeph>CSIPRegistrationBinding</codeph> object fails. This is because <codeph>CSIPRegistrationBinding</codeph> cannot communicate with the server side of the SIP stack without the <codeph>CSIPConnection</codeph> object. </p> <p>The following illustration shows the order for deleting SIP Client API objects. </p> <fig id="GUID-5C5F0C8E-76BD-56CC-AA9E-BECF035D1A9F"><image href="GUID-A9BFB95C-E2B0-5CD0-8B39-C448E3C81400_d0e333278_href.png" placement="inline"/></fig> </section> <section id="GUID-AC90094E-BF4E-5C2B-81B2-EF9BF5603BA2"><title> Sending a SIP request</title> <p>To send a SIP request: </p> <ul><li id="GUID-C92F9ADF-1BF5-5057-8851-0940E67A3C6A"><p>Create a <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object and enter the required fields of the request. </p> </li> <li id="GUID-E69DA3E7-5C13-5D10-BD82-1D37AEE0EE8A"><p>Call the <codeph>CSIPConnection::SendRequestL(CSIPRequestElements*)</codeph> function to take control of the <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> objects and communicate the request to the server side of the SIP stack. </p> <p> <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname> CSIPConnection</apiname></xref> creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to the application. </p> </li> </ul> <p> <b>Note:</b>  <codeph>SendRequestL()</codeph> starts the server side processing of sending the MESSAGE request. This task takes time as address resolving and socket operations are done only after the <codeph>SendRequestL()</codeph> call is returned. If an error occurs after <codeph>SendRequestL()</codeph> returns, then the error is communicated to the application through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref> callback functions. An example of such a failure is failure to resolve the address. When <codeph>SendRequestL()</codeph> returns, the MESSAGE request is not yet sent to the network, and is being processed on the server side of the SIP stack. </p> <p>After <codeph>SendRequestL()</codeph> returns and the sending of a MESSAGE request is in progress on the shared server, there is no way for the application to cancel that operation. This also applies to other operation types. However the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita#GUID-059F9C3A-EA04-3295-912F-50444F073CE7/GUID-8F7BF1A8-75C4-39A1-BCB3-4E1F7CDE59CC"><apiname>CSIPClientTransaction::CancelL()</apiname></xref> function is used to send a CANCEL request after the application sends an INVITE request. </p> <p>When the SIP response is received from the server side, the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object: </p> <ol id="GUID-0DB00054-27E8-57BF-8BB0-7F8231C7627B"><li id="GUID-D207CF42-5B04-5625-8CF8-4EEAD3451542"><p>creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to represent the SIP response </p> </li> <li id="GUID-7131D953-EFF6-5D31-B20F-64B56C968368"><p>attaches it to the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object </p> </li> <li id="GUID-72C682B2-05BE-58ED-B743-0554C9476CC2"><p>notifies the application through a call to one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-EE7CC7B8-CC03-3814-9177-CFBFBB043426"><apiname>MSIPConnectionObserver:: IncomingResponse()</apiname></xref> callback functions. </p> </li> </ol> <p>The application determines the kind of response received by accessing the <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object through <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. As the response is provisional, the application does not delete the <codeph>CSIPClientTransaction</codeph> object. A '200 response' is received later, and the application then deletes the <codeph>CSIPClientTransaction</codeph> object. </p> <p>Then, create a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to represent the SIP response, attach it to <codeph>CSIPClientTransaction</codeph> and notify the application with <codeph>MSIPConnectionObserver::
+          IncomingResponse</codeph>. </p> <p>The following illustration shows the sequence of events involved in sending a MESSAGE request and receiving two responses to it. </p> <fig id="GUID-6724EF0B-9B98-5225-BABA-3967A5065711"><image href="GUID-7712BAB3-5F48-5A28-9EA9-104D8B4A0431_d0e333424_href.png" placement="inline"/></fig> </section> <section id="GUID-5E5EC61F-5AB3-55F6-9AB0-463D5D0876DA"><title>Receiving a SIP request</title> <p>A standalone SIP request is received through an existing <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object. The <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> objects before notifying the application through the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-2DF68D26-9787-3D00-B86F-1999D20E4981"><apiname>MSIPConnectionObserver::IncomingRequest()</apiname></xref> callback function. The <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> represent the incoming SIP request </p> <p>The <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object is passed to the <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object through the callback function. The application retrieves information about the request from the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object. </p> <p>To send a response, the application creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object and passes it to <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita#GUID-7E54C95E-5155-30B1-8169-A59778774403/GUID-2D5A77B6-114D-3A22-B622-5342BF235B67"><apiname>CSIPServerTransaction::SendResponseL()</apiname></xref>. This passes the response to the server side for further processing. When <codeph>SendResponseL()</codeph> is returned, the application no longer needs the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object and deletes it. </p> <p>The following illustration shows the sequence of events involved in receiving a MESSAGE request and sending a response to it. </p> <fig id="GUID-8C9A8944-1150-52E2-A031-BA65F16191F4"><image href="GUID-1158BDD3-69F7-5892-9887-FAE30110E33C_d0e333499_href.png" placement="inline"/></fig> </section> <section id="GUID-820D689F-6404-5E40-AAC2-A45ABECDBADC"><title>Receiving a SIP request and creating a session</title> <p>The SIP stack receives a SIP INVITE request from the network acting as a User Agent Server (UAS) and creates an invite server transaction for the received request. The SIP stack sends a '100 SIP response' to the remote UA. After comparing the received request with the stored application capabilities, the SIP stack routes the received INVITE request to the chosen application. </p> <p>The application creates a <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> object and the SIP stack creates an instance of <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref>. The application sends a '200 SIP response' to the remote UA. The remote UA acknowledges the '200 SIP' response with ACK and creates a SIP session is between the local and remote UA. </p> <p>The following illustration shows the sequence of events involved in receiving a SIP request and creating a SIP dialog. </p> <fig id="GUID-8A8D96E1-99DC-5F11-847A-9D407212CA6E"><image href="GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e333524_href.png" placement="inline"/></fig> </section> <section id="GUID-109B933C-1063-577F-9A58-BA809869A0DF"><title>Registration</title> <p>An application creates a <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object to initiate a registration. It then creates a <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> object, passing <codeph>CSIPRefresh</codeph> to it. </p> <p> <b>Note:</b> It is not mandatory to create a <codeph>CSIPRefresh</codeph> object. It is required if the registration is to be refreshed by the SIP stack. </p> <p>After the <codeph>CSIPRegistrationBinding</codeph> object exists, the application initiates the registration process by calling <codeph>RegisterL()</codeph> on the <codeph>CSIPRegistrationBinding</codeph> object. <codeph/>  <codeph>CSIPRegistrationBinding</codeph> forms a REGISTER request and communicates it to the server side of the SIP stack, it instantiates the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to the application. </p> <p>When the '200 SIP response' is received from the server side, <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates the <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to contain the response, and then routes the response to <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref>. <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> attaches the response to <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. The application is informed about the response through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-7DE6337F-4EAA-3AE4-B573-1F7E59EDCFE5"><apiname>MSIPConnectionObserver::IncomingResponse()</apiname></xref> callback functions. </p> <p>The application does not require the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and can delete it. The <codeph>IsContextActive()</codeph> finds out if the registration is successful. </p> <p>The following illustration shows the sequence of events involved in registering with a refresh and receiving a '200 OK response'. </p> <fig id="GUID-7F489E97-2ADE-5753-A03B-5600E4BD1C55"><image href="GUID-02521DB0-53C4-55D5-856F-BD478E134B73_d0e333616_href.png" placement="inline"/></fig> </section> <section id="GUID-45BEF04F-64A3-5B29-8CE4-8B1F5CA0E64F"><title>Configuring the registration</title> <p>When registering an SIP connection, applications have two options to configure the registration : outbound proxy caching and expiration value removal. To set each of these options, call <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita#GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4/GUID-B3C68013-AF24-3529-8595-5CC9497F2E98"><apiname>CSIPRegistrationBinding::SetProperty()</apiname></xref> with the corresponding property constant, as explained below. </p> <p>The SIP stack resolves the IP address of the outbound proxy during registration. The default behavior is to resolve the address again for each SIP message sent using this registration context. However, you can also cache the address to optimise network traffic. If you set <xref href="GUID-9A7A7547-76EB-3CC7-9C3D-7F1C08A160D0.dita"><apiname>KSIPCacheOutboundProxyIP</apiname></xref> property to <codeph>ETrue</codeph>, the SIP stack reuses the proxy address that was resolved during registration. The proxy address is refreshed by successful REGISTER transactions, which always perform a DNS query. </p> <p>By default, the SIP stack sends the expiration value in the REGISTER request. In the '200 OK' answer to a REGISTER message, the registrar returns an expiration value that may be different from the value that was sent. The SIP stack validates the returned expiration value against the minimum and maximum expiration values: if the returned expiration value is out of range, the SIP stack uses the minimum value or the maximum value. </p> <ul><li id="GUID-478291AE-D709-5AF1-AE4A-F1C115F8BE7C"><p>The minimum expiration value is 30 seconds, to reduce network activity and battery consumption. </p> </li> <li id="GUID-A0C7C631-F4CF-5CC0-BAA7-236C939E87C8"><p>The maximum expiration value is the expiration value that you specify for the REGISTER request. By default, the maximum expiration value is 3600 seconds, to protect the application from DOS attacks that provide '200 OK' responses with a very high expiration value. </p> </li> </ul> <p>If you set <xref href="GUID-C0920ECB-95CC-3152-8D6F-C4751AA8271E.dita"><apiname>KSIPSendWithExpires</apiname></xref> to <codeph>EFalse</codeph>, the SIP stack does not send the application's expiration value in the REGISTER message. </p> </section> <section id="GUID-E683488B-B7EA-5215-8476-8C39950AC21B"><title>Creating a dialog with INVITE</title> <p>To create a dialog with INVITE an application creates <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> and <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref> objects. The application must enter the relevant SIP headers in the <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements </apiname></xref> object before passing it to <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> using the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita#GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8/GUID-D587F38B-3631-3399-9A82-04EA473E7694"><apiname>CSIPInviteDialogAssoc::SendInviteL()</apiname></xref> function. </p> <p> <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> then forms an INVITE request and communicates it to the server side of the SIP stack. It then creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object, and returns it to the application. </p> <p>When the server sends '180 response', the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> creates a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object to contain the response, and then routes the response to <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref>. <codeph>CSIPDialog</codeph> attaches the response to <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. The application is informed about the receipt of the '180 response' through a call to one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-EE7CC7B8-CC03-3814-9177-CFBFBB043426"><apiname>MSIPConnectionObserver:: IncomingResponse()</apiname></xref> callback functions. </p> <p>When the '200 response' is received, processing similar to '180 response' occurs. Then the application responds by sending an ACK request. This is done by invoking the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita#GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8/GUID-DBA0B06D-EC23-3458-9397-402E6CA17106"><apiname>CSIPInviteDialogAssoc::SendAckL()</apiname></xref> function, which forms the ACK request and sends it to the server side of the SIP stack. </p> <p>The INVITE request might fork at a proxy, so the server side of the SIP stack waits for several possible responses. When the forking is does not happen, the server side of the SIP stack sends an <codeph>InviteCompleted</codeph> event. The SIP Client API forwards the <codeph>InviteCompleted</codeph> event to the application, indicating that the application can now delete the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. </p> <p>The following figure shows the sequence of events involved in sending an INVITE, receiving a response and sending an ACK. </p> <fig id="GUID-3AE23155-63D4-5948-855E-9D44F48E4D11"><image href="GUID-C8D04D54-D391-5505-9E80-596589410179_d0e333754_href.png" placement="inline"/></fig> </section> <section id="GUID-E4E6E0C2-7B0F-51AA-B1E3-282E8F728EDC"><title> Generating a '100 SIP response'</title> <p>The SIP stack generates a '100 response' automatically when it receives an <codeph>INVITE</codeph> request from the network. Applications are not allowed to send '100 responses'. </p> </section> <section id="GUID-C1ED4FC7-5DEB-5C5B-AE82-549D4577A9A9"><title>Responding to a CANCEL request</title> <p>When the SIP stack receives a CANCEL request from the network, it automatically responds to it. CANCEL requests are never passed to an application. </p> <p>If the SIP stack: </p> <ul><li id="GUID-05B62303-9453-5E42-8E2A-6D50A5857312"><p>does not find a matching transaction for a CANCEL request, it automatically generates a '481 response'. </p> </li> <li id="GUID-69DBD19D-1871-57C5-AF95-8858A92BE6C5"><p>finds a matching transaction for a CANCEL request, it automatically generates a '200 response'. </p> </li> <li id="GUID-C806FF70-7EBD-5D06-989E-971E2E7589DD"><p>finds a matching INVITE server transaction that is in the <codeph>Proceeding</codeph> state (that is a final response is not yet sent), it also automatically generates a '487 response' to the INVITE transaction. </p> </li> </ul> <p>After these actions are complete, the SIP stack informs the application by calling the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-500F0C1D-6FCF-32DB-B9CC-4F7CEC1A9053"><apiname>MSIPConnectionObserver::InviteCanceled()</apiname></xref> callback function. </p> </section> <section id="GUID-CB27D3C3-D28B-5081-B201-8C10DE60CF25"><title>Sending a SIP request and responding to a HTTP Digest challenge</title> <p>A SIP server in the signalling chain challenges any SIP request initiated by the application with an HTTP Digest challenge by responding with a '401 SIP response', '407 SIP response' or a '494 SIP response'. The responses contain details of the challenge. These responses are never passed directly to the application. Instead, they are passed to the application through a call to the callback function <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref>. </p> <p>To enable an application to respond to a challenge, it must: </p> <ul><li id="GUID-69B100E7-A67F-5F0C-B886-1B0FAE9DBEB4"><p>create a <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> object </p> </li> <li id="GUID-A58199C3-57A0-536F-8EC2-76A29F3003DA"><p>provide an implementation of the callback function <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref> . </p> </li> </ul> <p>The application can either accept or reject the challenge: </p> <ul><li id="GUID-8EFD6F96-73E8-594E-9971-95DB3DA5B5ED"><p>If it accepts the challenge, the callback function must call <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita#GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D/GUID-FBDFE260-789F-3FB1-9884-D958B82E3734"><apiname>CSIPHttpDigest::SetCredentialsL()</apiname></xref>, specifying the username, password, and the realm passed to the callback function. </p> <p>Then, SIP stack re-sends the original SIP request with the HTTP Digest response. </p> </li> <li id="GUID-C1A1BCCC-7E0C-5B4F-A0D9-EDC52F081D59"><p>If it rejects the challenge, the callback function must call <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita#GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D/GUID-2F3A2A6D-B825-30A5-A133-EEBBFCD3F52B"><apiname>CSIPHttpDigest::IgnoreChallenge()</apiname></xref>, specifying the realm passed to the callback function. </p> <p>Then, SIP stack calls the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref>, by passing the error code <xref href="GUID-FF8BB656-99F5-369E-A6CE-56684D329AD5.dita"><apiname>KErrSIPForbidden</apiname></xref>. </p> </li> </ul> <p>If an application does not want to receive the HTTP Digest challenge then it must not create a <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> object. In this event, the SIP stack calls the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref>, passing the error code <xref href="GUID-FF8BB656-99F5-369E-A6CE-56684D329AD5.dita"><apiname>KErrSIPForbidden</apiname></xref>. </p> <p> <b>Note:</b>  </p> <ul><li id="GUID-A028B39A-292E-5556-B4A0-AF801F6131F3"><p>If an application uses the SIP Profile Agent for SIP registration, the SIP Profile Agent handles the HTTP Digest challenges related to the registration procedure according to the SIP profile information. </p> </li> <li id="GUID-19A777A8-E8D0-54F4-A59E-53550B6A802C"><p>The SIP stack maintains a HTTP Digest cache which stores username and password pairs for realms. If the username and password have been configured for a proxy, or if the application has already provided them after being asked through a <xref href="GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF.dita#GUID-FA0A893D-E3E3-33F8-9C63-B2A6A2A053EF/GUID-D12ED59B-FF9F-3AAD-9740-1108B1091421"><apiname>MSIPHttpDigestChallengeObserver::ChallengeReceived()</apiname></xref> call, then the SIP stack uses them to answer subsequent challenges for a matching realm automatically. </p> <p>For example, if the application uses a SIP Profile whose proxy is configured with HTTP Digest passwords and then sends an INVITE, it does not need to provide the passwords for the proxy as the SIP stack gets it from the HTTP Digest cache. </p> </li> </ul> </section> <section id="GUID-B882D001-CDE9-579F-8DDE-C087D8707C2E"><title>Notification of a failed refresh</title> <p>The following example shows how an application is notified when a refresh request within a dialog terminates after an error occurs. In this example the application sends a SUBSCRIBE request with refresh, and receives a <codeph>2xx</codeph> class response. The SIP stack periodically sends a refreshed SUBSCRIBE message. After successfully refreshed SUBSCRIBE requests, the remote server responds with a '481 response', and the application receives the following callback: </p> <codeblock id="GUID-A7F94C80-1224-5A70-B757-98FFAAD92B3B" xml:space="preserve">MSIPConnectionObserver::ErrorOccured(TInt aError, CSIPDialogAssocBase&amp; aDialogAssoc)</codeblock> <p>If the value of <codeph>aError</codeph> is <xref href="GUID-D711A918-6BCE-3A6A-988C-1B1917CD19A6.dita"><apiname>KErrSIPTerminatedWithResponse</apiname></xref>, then the actual SIP response causing the refresh to end can be found as follows: </p> <ul><li id="GUID-76291322-B9F0-55D3-A019-73A9040F2652"><p>Check that <codeph>aDialogAssoc.Type()</codeph> returns <codeph>"SUBSCRIBE"</codeph>. </p> </li> <li id="GUID-52B18DCF-2308-52A9-AB13-5920042C2E5D"><p>Call the function with the following signature to get the refresh instance (<xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object): </p> <codeblock id="GUID-F0E7DFDA-506F-5377-9F87-CE9775436133" xml:space="preserve">const CSIPRefresh* CSIPSubscribeDialogAssoc::SIPRefresh() const</codeblock> </li> <li id="GUID-6AB4677A-19F9-5CD3-8DAB-E1A242A98D54"><p>Use the <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object to get the associated transaction by calling the following function: </p> <codeblock id="GUID-D4889AC1-1281-5367-B19B-2136AE9DA707" xml:space="preserve">const CSIPClientTransaction* CSIPRefresh::SIPTransaction() const</codeblock> <p> <b>Note:</b> The returned <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object is not similar to the one returned from the call to <codeph>SendSubscribeL(),</codeph> that the application originally used to send the SUBSCRIBE request. </p> </li> <li id="GUID-D1B61B14-7B99-59EA-9FDD-5ECEB839C4DA"><p>Call the following function to get the SIP response: </p> <codeblock id="GUID-04849100-2F81-5B03-9B1A-2797AF7F96DD" xml:space="preserve">const CSIPResponseElements* CSIPClientTransaction::ResponseElements() const</codeblock> </li> </ul> </section> <section id="GUID-DDD7FDBD-FBC9-5111-BE71-A71E6CCEFB2A"><title>Error handling</title> <p>Errors are passed to an application by calling the callback functions or by leaving. For more information, see <xref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita">Cleanup support overview</xref>. If an error occurs during the synchronous part of an operation is initiated by the application, functions leave with an error code. If an error occurs during the asynchronous processing stage, the error is passed to the application through one of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-E4E56635-42BB-351A-8356-DB12B5BE24CC"><apiname>MSIPConnectionObserver::ErrorOccured()</apiname></xref> callback functions. </p> <p>There are several overloaded variants of <codeph>ErrorOccured()</codeph> functions. Each of them takes the error code and reference to the SIP Client API object that encountered the error: </p> <ul><li id="GUID-2734ECF0-1751-5AB8-BFE3-425965D01CF0"><p>A call to the variants of <codeph>ErrorOccured()</codeph> taking a <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> or <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> parameter means that transaction has entered the state <xref href="GUID-8E445232-29A0-3EED-94C3-43BFDD328358.dita#GUID-8E445232-29A0-3EED-94C3-43BFDD328358/GUID-288F503D-3EEA-3B4B-8D31-B58E3777F875"><apiname>CTransactionBase::ETerminated</apiname></xref>. </p> </li> <li id="GUID-C45D4A2D-F175-542B-92BF-211E1673F3F1"><p>A call to the variant of <codeph>ErrorOccured()</codeph> taking a <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> parameter means that the registration context is no longer active, that is <codeph>CSIPRegistrationBinding::IsContextActive() == EFalse</codeph>. </p> <p>If the registration was being refreshed, then the refresh has also ended and its state is <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita#GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3/GUID-EFEDCA93-E338-32A1-B005-8BA316B3C172"><apiname>CSIPRefresh::ETerminated</apiname></xref>. </p> </li> </ul> <p>If the callback function <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref> is called and the <codeph>aState</codeph> parameter is either <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-68DD22DC-67E4-387B-BBE9-B9B96D9C9016"><apiname>CSIPConnection::EInactive</apiname></xref> or <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-5963A947-BD5C-3B34-9D10-2CB5DC413774"><apiname>CSIPConnection::EUnavailable</apiname></xref>, then all dialogs, registrations, and standalone transactions using the <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> are terminated. </p> <p>To avoid an overload of callback calls in this type of situation, calls to <codeph>ErrorOccured()</codeph> for the individual dialog, registration and transaction objects are not sent to the application. </p> <p>When the connection state changes, the <codeph>MSIPConnectionObserver::ConnectionStateChanged()</codeph> callback function does not provide a reason. Call <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-B9D5319D-D569-3D4A-AF73-66F057ACF88D"><apiname>CSIPConnection::GetConnectionError()</apiname></xref> to get details about the connection error that caused the change. </p> </section> <section id="GUID-0FC8038A-64AE-5E98-A9F9-ADBC6F05DF2B"><title>Refreshing a Connection</title> <p>To refresh a connection, do the following steps: </p> <ol id="GUID-368431B7-E9FB-56E7-A45F-01B686DBECAA"><li id="GUID-97E972C7-E839-5942-A487-48A9FD1EEC0E"><p>Start the connection on the desired IAP. </p> </li> <li id="GUID-35157131-E6EA-5EB2-8773-33832C45F46E"><p>Monitor the status of the connection using the <xref href="GUID-64C272AA-5727-3AB9-A131-68303E5A75D6.dita#GUID-64C272AA-5727-3AB9-A131-68303E5A75D6/GUID-7984D221-06F6-3F4B-B373-11C96D0A17F3"><apiname>MSIPConnectionObserver::ConnectionStateChanged(CSIPConnection::TState
+                aState)</apiname></xref> function. </p> </li> <li id="GUID-85CDAB12-933A-5748-B2B8-33971F58B7B4"><p>If the connection is inactive, notify the <codeph>EInactive</codeph> state to the application through <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref> function that is, if <xref href="GUID-8239C16D-74EC-3B97-ADB0-B6AE57D30C89.dita#GUID-8239C16D-74EC-3B97-ADB0-B6AE57D30C89/GUID-3380638E-B5BA-3C88-82CB-9E52385F6A38"><apiname>(CSIPConnection::TState == EInactive)</apiname></xref>, then send a <xref href="GUID-7FBF47FB-7D1F-3F20-BBCA-A195BB540D67.dita"><apiname>RefreshConnection()</apiname></xref> function to make it active. </p> <p> <b>Note:</b> This requires a bearer monitor on that IAP to which a refresh request is sent. </p> </li> <li id="GUID-49A770C0-0992-5D27-B8A6-4D68E4B90E09"><p>Any changes to the state of the connection is notified through <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-27DE00DC-5572-3B55-B92B-5325794EE663"><apiname>MSIPConnectionObserver::ConnectionStateChanged()</apiname></xref>. </p> </li> </ol> <p>The following sequence diagram shows how a client refreshes a connection. </p> <fig id="GUID-B3D9E694-31F8-59AA-A722-BE6F9C0D5E89"><image href="GUID-A50BBBE2-2E23-5AEE-BF53-9EF54FD7F00E_d0e334165_href.jpg" placement="inline"/></fig> <p>The following example code describes how to refresh a connection. </p> <codeblock id="GUID-B14ADDEF-1E3C-5B21-8426-4D0FE65FBC28" xml:space="preserve">// It is assumed that the connection is started and is in an Inactive state that is, 
+// (CSIPConnection::TState == EInactive)
+
+// Refresh the IAP ID of the connection by sending a Refresh Request to the Bearer monitor of the IAP
+CSIPConnection:: RefreshConnection()
+
+// Note: The application is notified of the changes in the state of the connection through the 
 // ConnectionStateChanged() function of MSIPConnectionObserver Interface.</codeblock> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,22 +1,330 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A"><title>Image Decoding</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document gives you more information about the Image Decoding functionality. </p> <section><title>Purpose</title> <p>The image decoding class <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> provides functions to decode images held in descriptors or files from standard formats for use with devices such as screens, browsers and viewer applications. </p> <p><b>Required Background</b> </p> <p>Image decoding features are provided through Imaging Frameworks and Imaging plugins. The standard formats supported by the decode plugins are shown in the table in <xref href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita">Imaging Frameworks Overview</xref>. </p> <p><b>Introduction</b> </p> <p>The decoding process comprises the following sections: </p> <ul><li id="GUID-BE3B993F-3793-55B4-9ADB-9456FE73CA19"><p> <b>Creation</b> - The creation of the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object and any requirements necessary. </p> </li> <li id="GUID-D5FE22F6-687F-560D-A336-4F01B5945273"><p> <b>Conversion</b> - Covers the basic form of image decoding. More advanced features such as progressive and buffered decoding are described separately. </p> </li> <li id="GUID-9A4AD0DE-AFCF-5F33-AAC7-007FD9F8A291"><p> <b>Enquiry features</b> - Additional features that enable you to retrieve information stored in certain types of images, for example frame information and comments. </p> </li> <li id="GUID-643CE012-6C73-5068-A7AD-FDA810FBBFD8"><p> <b>Streamed and progressive decoding</b> - Reading partial image files and displaying image data before the entire image is read. </p> </li> <li id="GUID-E3D6BB50-DBE9-5967-9FAC-B56BCBCCADAC"><p> <b>Buffered decoding</b> - The decoding of an image using a buffered input rather than a file or descriptor. </p> </li> </ul> <p><b>Setup and Configuration Requirements</b> </p> <p>The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> classes use synchronous methods to open an image and asynchronous methods to perform conversions or transformations. The asynchronous operations use the standard system of taking a pointer to a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object that is signalled on completion of the requested action. The assumption is that the client application or the calling DLL holds the <codeph>TRequestStatus</codeph> values within active objects. The structure of the active objects is dependent on the code that uses the Imaging Frameworks and its own requirements, particularly its internal architecture and how many images are opened simultaneously. </p> <p>In addition to the use of active objects in the interfacing, many of the Imaging Frameworks internal functions make extensive use of them to provide asynchronous behaviour. As with any use of an active object it is necessary to have an active scheduler in the same thread as the application making use of the object. The Decoders can also be created so the plugin and framework runs in a separate thread. This is achieved by setting the <codeph>EOptionAlwaysThread</codeph> option when constructing the decoder objects. By running the object in its own thread, the application is shielded from any latency that can occur during image conversion, or possibly due to a badly written plugin. </p> </section> <section><title>Using Image Decoding </title> <p>The Following tasks are covered in this tutorial: </p> <ul><li id="GUID-085EEC3C-C78B-5FDC-B630-C3A28DF0CA1F"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0">How to create the object during decoding</xref> </p> </li> <li id="GUID-A5E71C36-E811-509B-A547-04F174B7000B"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-7A3F98C2-C86B-5DC4-9F0E-EAE030341325">How to convert encoded data to decoded data</xref>  </p> </li> <li id="GUID-D6EDE32F-F011-5191-AD15-AD8FAEFC5C75"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394"> How to retrieve the information stored in certain types of images</xref>  </p> </li> <li id="GUID-05966714-BB75-5DB1-86E5-4FE075507C2D"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-AA950124-42DE-5A65-B371-7D85F43D71A6">How to perform the streaming and the progressive during decoding</xref>  </p> </li> <li id="GUID-3BBA8FBB-FB2E-5774-921E-8BBAC95DF55C"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-C7FEA8F9-B367-52B1-9D26-84F9E225D17C">How to perform the buffered decoding</xref>  </p> </li> </ul> <p id="GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0"><b>Basic Procedure For Creation</b> </p> <p>The high level steps to create the object during decoding are as follows: </p> <ol id="GUID-A8F73379-5277-5ACC-82A4-9199BE24142A"><li id="GUID-166216C0-5CAA-5FF4-8B40-BB562EEF3C61"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> decodes images stored in files or in descriptors. The decoder object is owned by the client and must be deleted once decoding is finished. <codeph>CImageDecoder</codeph> objects cannot be reused to decode other images, each image requires its own instance of the decoder. </p> </li> <li id="GUID-BB617D39-8A46-5C7F-A28B-7C334F24594C"><p> <codeph>CImageDecoder</codeph> objects are created using the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-00FB83E8-3759-32BE-B6E8-6F04EC60A909"><apiname>CImageDecoder::DataNewL()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6DA07559-7DDC-32A9-9E09-D557348D46DE"><apiname>CImageDecoder::FileNewL()</apiname></xref> factory functions for images held in descriptors or files respectively. </p> </li> <li id="GUID-F1D28859-A28F-56EA-8755-25C8FF70BB50"><p>When you create a <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object, a suitable plugin must be associated with the image to be decoded. The Imaging plugin depends on the factory function you use to create the object and what parameters you specify. There are four alternatives: </p> <ul><li id="GUID-A40501AD-3679-5612-AA43-06DB6345C79D"><p> <b>MIME type</b> The plugin is determined by looking up a specified MIME type against a list of known MIME type/plugin implementations. Use the following "File" factory function (or its "Data" equivalent). </p> <codeblock id="GUID-FF20429E-3D1D-5D99-9548-9AA701AC1B32" xml:space="preserve">static CImageDecoder* FileNewL(RFs&amp; aFs, const TDesC&amp; aSourceFilename, const TDesC8&amp; aMIMEType, const TOptions aOptions = EOptionNone);
-</codeblock> </li> <li id="GUID-9D96F47A-F784-5252-AAC9-3DDEF2E96764"><p> <b>Image type and sub-type</b> The plugin is determined by looking up the specified image type and sub-types against a list of known type/sub-type plugin implementations. Use the following "File" factory function (or its "Data" equivalent). </p> <codeblock id="GUID-2D5A7779-CBE9-5B3E-B9E7-C5CD7631DB33" xml:space="preserve">static CImageDecoder* FileNewL(RFs&amp; aFs, const TDesC&amp; aSourceFilename, const TOptions aOptions = EOptionNone, const TUid aImageType = KNullUid, const TUid aImageSubType = KNullUid, const TUid aDecoderUid = KNullUid);
-</codeblock> <p> <b>Note:</b> For images types that do not have sub-types use <codeph>KNullUid</codeph>. </p> </li> <li id="GUID-D80A799E-E49E-547C-9286-1AB38F8EB819"><p> <b>Implementation UID</b> The plugin is determined by looking up its specific UID and the image type and sub-type. Use the same <codeph>FileNewL()</codeph> factory function shown in "Image type and sub-type", but in addition to the type and sub-type parameters, also specify the plugin UID using <codeph>aDecoderUid</codeph>. </p> <p> <b>Note:</b> Implementation UID is supported because it is possible to have more than one plugin for a particular image type. This method is recommended if the application or calling DLL needs to exploit features of a particular plugin. </p> </li> <li id="GUID-A08944FA-6BE6-574A-AE00-5F12F5A07F0B"><p> <b>Automatic detection</b> - no MIME type, format type/sub-type or UIDs are specified. The plugin analyses the header information of the specified image. Use the same <codeph>FileNewL()</codeph> factory function shown in "Image type and sub-type", but do not specify any values for <codeph>aImageType</codeph>  <codeph>aImageSubType</codeph> or <codeph>aDecoderUid</codeph>. </p> <p>If a suitable plugin cannot be found, the factory function leaves with <codeph>KErrNotFound</codeph>. If a suitable plugin is found, but that plugin cannot interpret the image data the factory function leaves with <codeph>KErrCorrupt</codeph>. </p> <p>Note: Some image formats cannot be automatically detected because they do not contain sufficient header information, for example, WBMP and OTA images. Under such circumstances, use one of the other three alternative for opening the image. </p> </li> </ul> </li> </ol> <p>It is possible for more than one valid plugin decoder to be available for a specific image format. If a plugin determined by MIME type or type/sub-type fails to open an image due to <codeph>KErrCorrupt</codeph>, it will continue to try with subsequent valid plugins if available. This mechanism is carried out in the system and is not visible to the application. If you require a specific function available within a specific plugin, specify that plugin using <codeph>aDecoderUid</codeph>. </p> <p id="GUID-7A3F98C2-C86B-5DC4-9F0E-EAE030341325"><b>Basic Procedure For Conversion </b> </p> <p>The high level steps to convert encoded data to decoded data are as follow: </p> <ol id="GUID-495365EB-B53D-5229-AD45-F9700A22F2AB"><li id="GUID-4B6AEB44-3426-5B83-A12E-755230627D23"><p>As part of the <codeph>CImageDecoder</codeph> creation basic information about the image is pre-read from the image headers. This information is used to support certain enquiry methods such as <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6506DA99-55E9-3524-BD64-528E145915F4"><apiname>CImageDecoder::FrameCount()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref> (For more information about the retrieve information stored in certain types of images is supplied in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394">Retrieve Information features</xref>). </p> </li> <li id="GUID-18D5494C-BECC-52A5-9C51-60A9E560C816"><p>You can decode any subset of individual frames, in any order, and to repeat the decoding if necessary. To decode an image frame use the asynchronous conversion method <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref>, as follows. </p> </li> </ol> <codeblock id="GUID-557B2DE9-6AA7-593B-A1A7-0D1E4352E184" xml:space="preserve">
-void Convert(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aDestination, TInt aFrameNumber = 0);
-
-void ContinueConvert(TRequestStatus* aRequestStatus);</codeblock> <p> <b> Note:</b> The use of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F4F5A5F6-03E5-3801-93CC-A023363F35F8"><apiname>CImageDecoder::ContinueConvert()</apiname></xref> is described in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-AA950124-42DE-5A65-B371-7D85F43D71A6">Streamed and progressive decoding</xref>. </p> <p>There are different type of sub-procedures which have to be followed before decode conversion, they are: </p> <ul><li id="GUID-1F27341A-4A6A-5269-AA61-CBB0FB620258"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-52CAB4D2-BFA9-528C-ADB6-88515893F2B1">Bitmap Masks conversion</xref>  </p> </li> <li id="GUID-3537322C-B7E7-502D-A773-294DEC45A6DC"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-03A3E6BD-8702-5C0D-8265-F956EC03CD73">Scaling and display modes</xref>  </p> </li> <li id="GUID-D11765E3-CD93-5CF2-A530-B7725F742861"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-9C2E0BFC-61FE-5F83-A78A-C9248C5D6FA3">Animations</xref>  </p> </li> <li id="GUID-EA7899D9-F950-514D-9696-072C14116B44"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-9BD9C48A-B582-5730-B03F-CF6CB00DF6D1">Background colours </xref>  </p> </li> </ul> <p id="GUID-52CAB4D2-BFA9-528C-ADB6-88515893F2B1"><b>Basic Procedure For Bitmap Masks conversion</b> </p> <p>The high level steps to Bitmap Masks conversion are as follows: </p> <ol id="GUID-A330923C-DA1E-55CF-A01C-151CD203D37B"><li id="GUID-E493B5B2-D8A2-5428-846B-0BA902EAF641"><p>There is a second variant of the <codeph>Convert()</codeph> function intended for use when decoding images with bitmap masks. </p> <codeblock id="GUID-F6213C82-A604-57F0-B4C2-5667007CAD53" xml:space="preserve">
-void Convert(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aDestination, CFbsBitmap&amp; aDestinationMask, TInt aFrameNumber = 0);
-</codeblock> </li> <li id="GUID-1E7DC04E-A101-5C33-B6B5-BE5F83E95801"><p>Within the Symbian platform it is normal to store the bitmap mask separately from the main image data. Calls such as <xref href="GUID-2395FA67-5DCD-3CD7-BBB6-66625A3E2B6E.dita"><apiname>BitBltMasked()</apiname></xref> expect this data to be provided separately. This separation is true for both <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects and MBM files. </p> </li> <li id="GUID-B9CE26DF-AE1C-592F-8C0E-DD0AAD69BF60"><p>To determine whether an image contains a bitmap mask use <codeph>FrameInfo()</codeph>, the presence or absence of a mask will be indicated the <codeph>ETransparencyPossible</codeph> flag. </p> <p>The following two types of mask are available: </p> <ul><li id="GUID-1A03053A-C797-57EF-978E-C25A1D32163A"><p> <b>8-bit alpha blend</b> - indicated by the <codeph>EAlphaChannel</codeph> flag of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iFlags</codeph>. The destination mask bitmap must be of type <codeph>EGray256</codeph>. </p> </li> <li id="GUID-9B51A424-66ED-584F-A3CD-55D575B38FEA"><p> <b>Simple on/off mask</b> - if no <codeph>EAlphaChannel</codeph> flag is set. The destination bitmap mask can be either <codeph>EGray2</codeph> or <codeph>EGray256</codeph>. </p> </li> </ul> </li> </ol> <p> <b>Note:</b> Images that contain bitmap masks do not have to have those masks decoded if they are not required. </p> <p id="GUID-03A3E6BD-8702-5C0D-8265-F956EC03CD73"><b>Basic Procedure For Scaling and display modes</b> </p> <p>The high level steps to Scale and display are shown here: </p> <ol id="GUID-DE0D4041-CBBF-5841-BE53-A8F6EA2CDE38"><li id="GUID-921CCDF6-7346-577E-AEC2-217C82329D44"><p>Before <codeph>Convert()</codeph> is used, the destination <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects for image data and bitmap masks are created. The simplest way to do this is to use a 1 to 1 approach, that is, create the <codeph>CFbsBitmap</codeph> object with the same properties as the source image. This is achieved by using something similar to: </p> <codeblock id="GUID-198859CC-C33A-5BE8-B75C-C32746D65DF7" xml:space="preserve">iFrameInfo = &amp;imageDecoder-&gt;FrameInfo(FrameNum);
-
-iBitmap-&gt;Create(iFrameInfo-&gt;iOverallSizeInPixels, iFrameInfo-&gt;iFrameDisplayMode );
-</codeblock> </li> <li id="GUID-B3559310-560A-5671-9560-509F14B729ED"><p>If the <codeph>ECanDither</codeph> flag of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iFlags</codeph> is set then the destination display mode can be adjusted. It is recommended that the window display mode is used as it is more efficient. </p> <p> <b>Note:</b> The mask bitmap must have the same size in pixels as the main image, even though the display mode is generally different. </p> </li> <li id="GUID-B517656C-3294-5D3A-92E3-442CAE099FE1"><p>The size of the image bitmap is available via <codeph>FrameInfo()</codeph> (<codeph>iOverallSizeInPixels</codeph>). However, in addition to a direct mapping of the size of an image, <xref href="GUID-062B8E74-EDEF-3A98-9728-79C3E5A8C829.dita"><apiname>ReducedSize()</apiname></xref> function can be used to calculate the reduced size of the decoded bitmap based on the input parameters. </p> </li> <li id="GUID-52299AC9-377C-5DEB-B16A-BDA0538D91A7"><p>If the <codeph>EFullyScaleable</codeph> flag of <codeph>FrameInfo()</codeph>  <codeph>iFlags</codeph> is set, you can specify any size for the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and the image will be resized accordingly. </p> </li> </ol> <p id="GUID-9C2E0BFC-61FE-5F83-A78A-C9248C5D6FA3"><b>Basic Procedure For Animations</b> </p> <p>The high level steps to decode a GIF multi-frame image are as follow: </p> <ol id="GUID-C7E99D55-48C9-5329-B07B-28A65AB102D6"><li id="GUID-53364690-F9D3-5A80-9FAA-2046F8DB80AB"><p>Included in the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref> result are flags that enable the support of GIF animation. These flags are <codeph>iDelay</codeph>, <codeph>ELeaveInPlace</codeph>, <codeph>ERestoreToBackground</codeph> and <codeph>ERestoreToPrevious</codeph>. ICL provides these flags to enable the application to implement the animation; ICL does not provide functions to display the animation directly. </p> </li> <li id="GUID-3BAC1045-E210-5B1A-93E9-BB15C9FC1871"><p>Processing the information from these flags will inevitably require a state machine, and additional timers, within the application. Requirements will vary depending on the architecture of the client application itself. </p> </li> </ol> <p id="GUID-9BD9C48A-B582-5730-B03F-CF6CB00DF6D1"><b>Basic Procedure For Background colours</b> </p> <ol id="GUID-2D46054E-1344-5B17-B353-8A68A0C97DB0"><li id="GUID-41959955-766E-5AAD-AA6D-65C4F99E5581"><p>Some image formats contain background colour information. This is information is presented through <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iBackgroundColor</codeph>. </p> </li> <li id="GUID-B3419EC0-109F-5A37-9A4F-CD0F7A96FCDC"><p>If a non-masked image with background colour is decoded, the colour is included in the image data. If the decoded image also contains a bitmap mask, then the background colour will be a component of the mask <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object. Depending on your application, you may want to choose your own background colour rather than use the one provided by the source image. </p> </li> </ol> <p id="GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394"><b>Basic Procedure To Retrieve Information From An Image</b> </p> <p>The high level steps to retrieve the information stored in certain types of images are shown here: </p> <ol id="GUID-2D40722B-5BEA-52ED-B143-A4E85CE8EB22"><li id="GUID-B40D32A1-CC43-50B8-A873-A6E14C27D165"><p> <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-7BB6FC3D-2721-3902-B6BD-C99697C35D6D"><apiname>CImageDecode::FrameData()</apiname></xref> Provides access to additional chunks of data within the images, for example, palette and similar lookup tables, copyright information and other strings. This information should be used with care, the returned data is merely a reference to the original data within the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object, and is only valid for the lifetime of the object. </p> </li> <li id="GUID-875B1CFA-CE86-50D7-BD8A-4E7453EEF35F"><p> <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-08674EE0-C31A-3E42-A121-4341983A6B0C"><apiname>CImageDecode::NumberOfImageComments()</apiname></xref> and <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-26AFE814-96FB-333F-B545-1E18B835206B"><apiname>CImageDecode::ImageCommentL()</apiname></xref> Images can have comments embedded in them. These comments are usually either embedded as a single repository which can be retrieved on an image level, or multiple repositories attached to individual frames within the image. The two functions above return the number of comments attached to the entire image and provide a mechanism for retrieving any of those comments. </p> </li> <li id="GUID-6854DEC9-4348-56DD-B5E2-47DEE3DC43AE"><p> <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-AB2B99F5-49E5-37DD-80F1-3776CB9A0D1A"><apiname>CImageDecode::NumberOfFrameComments()</apiname></xref> and <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-A12EAD36-D2F0-3CAA-A6CE-033ABE8DE258"><apiname>CImageDecode::FrameCommentL()</apiname></xref> Similar functionality to above, but these functions return the number of comments attached to individually specified frames and provide a mechanism for retrieving any of those comments. </p> </li> <li id="GUID-F51D81A1-61A7-5C1C-B0FB-99B18C1203DC"><p> <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-BD657401-E04F-331E-B72E-3729CB35C919"><apiname>CImageDecode::FrameInfoStringsLC</apiname></xref> and <xref href="GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B.dita#GUID-5F0CD3F3-8833-3D31-A9B9-B832BAAA588B/GUID-E9107BE1-58BF-3C1A-BBFF-B7027C35331B"><apiname>CImageDecode::FrameInfoStringsL()</apiname></xref> Provide a list of data for a specified frame, including data items such as format, plugin description, size and so on, in a readable format. Although the property strings can be accessed by name, it is recommended that they be generally treated as a list of strings. </p> </li> </ol> <p id="GUID-AA950124-42DE-5A65-B371-7D85F43D71A6"><b>Basic Procedure Streamed and Progressive Decoding</b> </p> <p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> includes facilities to support the simultaneous decoding and display of images as they are being loaded. The decoder does not wait for the entire image to be loaded before processing it, rather it begins as soon as possible, stops when it runs out of data and then carries on when more data is available. </p> <p>The high level steps to perform the streaming and the progressive during decoding are shown here: </p> <ol id="GUID-0E29E833-4435-5E55-908F-938A13473B79"><li id="GUID-CE64D3C8-8923-5BAF-AF29-9BA6470008F8"><p>If there is insufficient data to work out the image format (plugin decoder to use) <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6DA07559-7DDC-32A9-9E09-D557348D46DE"><apiname>CImageDecoder::FileNewL()</apiname></xref> (or its "Data" equivalent) leaves with <codeph>KErrUnderflow</codeph>. This is only applicable to instances where automatic detection of the plugin decoder is used. For more information see, "Automatic detection" in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0">Creation</xref>. </p> </li> <li id="GUID-23175979-940A-507D-B478-0C4ACB5F9071"><p>As soon as the correct plugin decoder has been determined it is opened and whatever addition image data available is scanned. The plugin decoder continues to decode image data as it arrives, updating <codeph>FrameCount()</codeph> whenever it becomes aware of a new frame within the data. The internal flag <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-26084926-42C1-38FC-9F30-E1801AE5167D"><apiname>CImageDecoder::IsHeaderProcessingComplete()</apiname></xref> is maintained at <codeph>EFalse</codeph> until the entire image has been loaded. </p> </li> <li id="GUID-75959B88-7CE2-598E-9F83-EC0189BD2F6C"><p>Frames can be decoded before the entire image is loaded, but the frame to be decoded must be at least partially loaded. If <codeph>IsHeaderProcessingComplete()</codeph> is set to <codeph>EFalse</codeph> and <codeph>FrameCount()</codeph> is equal to or less than the frame to decode, the application must wait for the relevant frame to load. In such circumstances a call to <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-A74CEA6D-ED47-3EA4-8917-FEE4B51B7639"><apiname>CImageDecoder::ContinueProcessingHeadersL()</apiname></xref> should be made that scans for any further headers. <codeph>FrameCount()</codeph> and <codeph>IsHeaderProcessingComplete()</codeph> should then be recalled to determine if the frame has arrived. </p> </li> <li id="GUID-C390495B-840E-541B-A0C5-061D3706AD8A"><p>Once <codeph>FrameCount()</codeph> is greater than the frame the application wants to decode, it is possible to start to decoding the frame using <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref>. Frame headers and their associated data do not always follow each other in some image formats. This has the implication that although <codeph>FrameCount()</codeph> has indicated that the frame is available, it may not yet be fully loaded. Under such circumstances as much decoding as possible is undertaken, and <codeph>Convert()</codeph> then completes with the error code <codeph>KErrUnderflow</codeph>. If the <codeph>EPartialDecodeInvalid</codeph> flag (from <codeph>FrameInfo()</codeph>) is not set, the partially decoded image can be displayed - for some image formats, a partially decoded image is not generally usable, but this facility is supported by most known formats. Obviously, if all of the image is present, <codeph>Convert()</codeph> completes with <codeph>KErrNone</codeph> as normal. </p> </li> <li id="GUID-44864401-5DB5-56A5-BE6D-5B8B4570CCBF"><p>Where only a partial conversion has been completed, <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F4F5A5F6-03E5-3801-93CC-A023363F35F8"><apiname>CImageDecoder::ContinueConvert()</apiname></xref> should be used to continue converting when new data arrives. <codeph>ContinueConvert()</codeph> continues to convert the frame data where the previous call left off. This function should continue to be called until it returns the error code <codeph>KErrNone</codeph> rather than <codeph>KErrUnderflow</codeph>. </p> <p>Note: The <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> must never be resized during a conversion session using <codeph>ContinueConvert()</codeph>, if resizing does occur, a panic will be raised by the function. If resizing or any other parameter changes need to be made to the <codeph>CFbsBitmap</codeph>, frame decoding should be restarted by using <codeph>Convert()</codeph> rather than trying to continue an existing conversion session. </p> </li> </ol> <p>There is no explicit decoder call to say "all of the data is now present". This could be done via inference, continuously checking <codeph>IsHeaderProcessingComplete()</codeph> until it returns <codeph>ETrue</codeph>. However, this is not advisable as it is possible that <codeph>IsHeaderProcessingComplete()</codeph> could continue to return <codeph>EFalse</codeph> even after the application has finished sending image data. Your state machine should be written so that it takes this possibility into account. </p> <p id="GUID-C7FEA8F9-B367-52B1-9D26-84F9E225D17C"><b>Basic Procedure For Buffered Decoding</b> </p> <p> <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita"><apiname>CBufferedImageDecoder</apiname></xref> is a wrapper that encapsulates not only a <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> but also the descriptor used to store the image, and in some circumstances can replace the use of <codeph>CImageDecoder</codeph> itself. <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita"><apiname>CBufferedImageDecoder</apiname></xref> can always be created, even if there is no data available at the time of creation. Another key feature of <codeph>CBufferedImageDecoder</codeph> is that it can be reused to decode multiple images. </p> <p>The high level steps to perform the buffered decoding are shown here: </p> <ol id="GUID-0EEA3303-59C3-5326-8E10-3C54BE69B336"><li id="GUID-8749D5E2-2E9D-578B-A02C-C4C1309E2AC5"><p>The decoder is created using the <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-D255B2EF-1DA0-336E-A173-0FD03210B349"><apiname>CBufferedImageDecoder::NewL()</apiname></xref> factory function, and the decoding process is started with one of the two <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-A8D36C2B-C057-3F6A-A1AF-F7421D204B11"><apiname>CBufferedImageDecoder::OpenL()</apiname></xref> calls, specifying either MIME-type or image type/sub-type and UID, which are similar to <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-00FB83E8-3759-32BE-B6E8-6F04EC60A909"><apiname>CImageDecoder::DataNewL()</apiname></xref>. If not enough data is available to create an internal decoder a call to <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-0C7E0E24-8352-353E-9E55-D216300D1CFA"><apiname>CBufferedImageDecoder::ValidDecoder()</apiname></xref> returns <codeph>EFalse</codeph>. The decoder keeps an internal copy of the data provided so the client can discard its own copy. </p> <p> <b>Warning:</b> The decoding and enquiry functions must not be used until an internal decoder has been created, otherwise calls will panic with <codeph>EDecoderNotCreated</codeph>. </p> </li> <li id="GUID-A1DD251D-D1B2-57EE-9A2D-94AE75DBA35B"><p>Additional data can be supplied to the decoder, when it becomes available, by using <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-5CF4094C-A829-347A-835C-17ABF439445A"><apiname>CBufferedImageDecoder::AppendDataL()</apiname></xref> and <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-B85FD15C-337A-393F-A9DA-65EC1EB546C5"><apiname>CBufferedImageDecoder::ContinueOpenL()</apiname></xref>, which will copy the data and try to find an appropriate plugin. This step should be repeated until enough data is available to create the internal decoder, indicated by <codeph>ValidDecoder()</codeph> returning <codeph>ETrue</codeph>. <codeph>OpenL()</codeph> and <codeph>ContinueOpenL()</codeph> will leave with <codeph>KErrCorrupt</codeph> if a suitable decoder is found, but that decoder was unable to interpret the supplied image data. </p> <p>Note: As with <codeph>OpenL()</codeph>, data provided by <codeph>AppendDataL()</codeph> is kept in an internal buffer by the decoder so the client can discard its own copy. </p> </li> <li id="GUID-E4E67E99-0D9A-5CA9-8FE3-6A32A36C3F42"><p>The process for decoding the image header and frames are the same as for <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> with <codeph>IsHeaderProcessingComplete()</codeph>, <codeph>FrameCount()</codeph>, <codeph>Convert()</codeph> and <codeph>ContinueConvert()</codeph> calls except that the data is not appended to a descriptor, but supplied to the decoder with <codeph>AppendDataL()</codeph>. </p> </li> <li id="GUID-E40CF367-2601-5B9F-9E20-34CD8F2754EB"><p>The decoder can be reused by calling a <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-44030283-5CB8-3317-8498-0B70C0C358A9"><apiname>CBufferedImageDecoder::Reset()</apiname></xref>, which destroys the internal data buffer and decoder. A new decoder plugin can then be started using <codeph>OpenL()</codeph>. </p> </li> </ol> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks overview</linktext> </link> <link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion Overview</linktext> </link> <link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding Tutorial</linktext> </link> <link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to Symbian supplied Codecs </linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A" xml:lang="en"><title>Image
+Decoding</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document gives you more information about the Image Decoding functionality. </p>
+<section id="GUID-41872C2C-A6EB-446B-AA79-62BAA6B69437"><title>Purpose</title> <p>The image decoding class <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> provides
+functions to decode images held in descriptors or files from standard formats
+for use with devices such as screens, browsers and viewer applications. </p> <p><b>Required Background</b> </p> <p>Image decoding features are provided through
+Imaging Frameworks and Imaging plugins. The standard formats supported by
+the decode plugins are shown in the table in <xref href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita">Imaging
+Frameworks Overview</xref>. </p> <p><b>Introduction</b> </p> <p>The decoding process comprises the following sections: </p> <ul>
+<li id="GUID-BE3B993F-3793-55B4-9ADB-9456FE73CA19"><p> <b>Creation</b> - The
+creation of the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object and any requirements
+necessary. </p> </li>
+<li id="GUID-D5FE22F6-687F-560D-A336-4F01B5945273"><p> <b>Conversion</b> -
+Covers the basic form of image decoding. More advanced features such as progressive
+and buffered decoding are described separately. </p> </li>
+<li id="GUID-9A4AD0DE-AFCF-5F33-AAC7-007FD9F8A291"><p> <b>Enquiry features</b> -
+Additional features that enable you to retrieve information stored in certain
+types of images, for example frame information and comments. </p> </li>
+<li id="GUID-643CE012-6C73-5068-A7AD-FDA810FBBFD8"><p> <b>Streamed and progressive
+decoding</b> - Reading partial image files and displaying image data before
+the entire image is read. </p> </li>
+<li id="GUID-E3D6BB50-DBE9-5967-9FAC-B56BCBCCADAC"><p> <b>Buffered decoding</b> -
+The decoding of an image using a buffered input rather than a file or descriptor. </p> </li>
+</ul> <p><b>Setup
+and Configuration Requirements</b> </p> <p>The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> classes
+use synchronous methods to open an image and asynchronous methods to perform
+conversions or transformations. The asynchronous operations use the standard
+system of taking a pointer to a <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> object that
+is signalled on completion of the requested action. The assumption is that
+the client application or the calling DLL holds the <codeph>TRequestStatus</codeph> values
+within active objects. The structure of the active objects is dependent on
+the code that uses the Imaging Frameworks and its own requirements, particularly
+its internal architecture and how many images are opened simultaneously. </p> <p>In
+addition to the use of active objects in the interfacing, many of the Imaging
+Frameworks internal functions make extensive use of them to provide asynchronous
+behaviour. As with any use of an active object it is necessary to have an
+active scheduler in the same thread as the application making use of the object.
+The Decoders can also be created so the plugin and framework runs in a separate
+thread. This is achieved by setting the <codeph>EOptionAlwaysThread</codeph> option
+when constructing the decoder objects. By running the object in its own thread,
+the application is shielded from any latency that can occur during image conversion,
+or possibly due to a badly written plugin. </p> </section>
+<section id="GUID-6741516A-A0A7-4021-9A5A-6855E4AE9E8B"><title>Using Image Decoding </title> <p>The Following tasks are covered
+in this tutorial: </p> <ul>
+<li id="GUID-085EEC3C-C78B-5FDC-B630-C3A28DF0CA1F"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0">How to create the object during decoding</xref> </p> </li>
+<li id="GUID-A5E71C36-E811-509B-A547-04F174B7000B"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-7A3F98C2-C86B-5DC4-9F0E-EAE030341325">How to convert encoded data to decoded data</xref>  </p> </li>
+<li id="GUID-D6EDE32F-F011-5191-AD15-AD8FAEFC5C75"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394"> How to retrieve the information stored in certain types of images</xref>  </p> </li>
+<li id="GUID-05966714-BB75-5DB1-86E5-4FE075507C2D"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-AA950124-42DE-5A65-B371-7D85F43D71A6">How to perform the streaming and the progressive during decoding</xref>  </p> </li>
+<li id="GUID-3BBA8FBB-FB2E-5774-921E-8BBAC95DF55C"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-C7FEA8F9-B367-52B1-9D26-84F9E225D17C">How to perform the buffered decoding</xref>  </p> </li>
+</ul> <p id="GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0"><b>Basic Procedure For Creation</b> </p> <p>The
+high level steps to create the object during decoding are as follows: </p> <ol id="GUID-A8F73379-5277-5ACC-82A4-9199BE24142A">
+<li id="GUID-166216C0-5CAA-5FF4-8B40-BB562EEF3C61"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> decodes
+images stored in files or in descriptors. The decoder object is owned by the
+client and must be deleted once decoding is finished. <codeph>CImageDecoder</codeph> objects
+cannot be reused to decode other images, each image requires its own instance
+of the decoder. </p> </li>
+<li id="GUID-BB617D39-8A46-5C7F-A28B-7C334F24594C"><p> <codeph>CImageDecoder</codeph> objects
+are created using the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-00FB83E8-3759-32BE-B6E8-6F04EC60A909"><apiname>CImageDecoder::DataNewL()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6DA07559-7DDC-32A9-9E09-D557348D46DE"><apiname>CImageDecoder::FileNewL()</apiname></xref> factory
+functions for images held in descriptors or files respectively. </p> </li>
+<li id="GUID-F1D28859-A28F-56EA-8755-25C8FF70BB50"><p>When you create a <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object,
+a suitable plugin must be associated with the image to be decoded. The Imaging
+plugin depends on the factory function you use to create the object and what
+parameters you specify. There are four alternatives: </p> <ul>
+<li id="GUID-A40501AD-3679-5612-AA43-06DB6345C79D"><p> <b>MIME type</b> The
+plugin is determined by looking up a specified MIME type against a list of
+known MIME type/plugin implementations. Use the following "File" factory function
+(or its "Data" equivalent). </p> <codeblock id="GUID-FF20429E-3D1D-5D99-9548-9AA701AC1B32" xml:space="preserve">static CImageDecoder* FileNewL(RFs&amp; aFs, const TDesC&amp; aSourceFilename, const TDesC8&amp; aMIMEType, const TOptions aOptions = EOptionNone);
+</codeblock> </li>
+<li id="GUID-9D96F47A-F784-5252-AAC9-3DDEF2E96764"><p> <b>Image type and sub-type</b> The
+plugin is determined by looking up the specified image type and sub-types
+against a list of known type/sub-type plugin implementations. Use the following
+"File" factory function (or its "Data" equivalent). </p> <codeblock id="GUID-2D5A7779-CBE9-5B3E-B9E7-C5CD7631DB33" xml:space="preserve">static CImageDecoder* FileNewL(RFs&amp; aFs, const TDesC&amp; aSourceFilename, const TOptions aOptions = EOptionNone, const TUid aImageType = KNullUid, const TUid aImageSubType = KNullUid, const TUid aDecoderUid = KNullUid);
+</codeblock> <p> <b>Note:</b> For images types that do not have sub-types
+use <codeph>KNullUid</codeph>. </p> </li>
+<li id="GUID-D80A799E-E49E-547C-9286-1AB38F8EB819"><p> <b>Implementation UID</b> The
+plugin is determined by looking up its specific UID and the image type and
+sub-type. Use the same <codeph>FileNewL()</codeph> factory function shown
+in "Image type and sub-type", but in addition to the type and sub-type parameters,
+also specify the plugin UID using <codeph>aDecoderUid</codeph>. </p> <p> <b>Note:</b> Implementation
+UID is supported because it is possible to have more than one plugin for a
+particular image type. This method is recommended if the application or calling
+DLL needs to exploit features of a particular plugin. </p> </li>
+<li id="GUID-A08944FA-6BE6-574A-AE00-5F12F5A07F0B"><p> <b>Automatic detection</b> -
+no MIME type, format type/sub-type or UIDs are specified. The plugin analyses
+the header information of the specified image. Use the same <codeph>FileNewL()</codeph> factory
+function shown in "Image type and sub-type", but do not specify any values
+for <codeph>aImageType</codeph>  <codeph>aImageSubType</codeph> or <codeph>aDecoderUid</codeph>. </p> <p>If
+a suitable plugin cannot be found, the factory function leaves with <codeph>KErrNotFound</codeph>.
+If a suitable plugin is found, but that plugin cannot interpret the image
+data the factory function leaves with <codeph>KErrCorrupt</codeph>. </p> <p>Note:
+Some image formats cannot be automatically detected because they do not contain
+sufficient header information, for example, WBMP and OTA images. Under such
+circumstances, use one of the other three alternative for opening the image. </p> </li>
+</ul> </li>
+</ol> <p>It is possible for more than one valid plugin decoder to be available
+for a specific image format. If a plugin determined by MIME type or type/sub-type
+fails to open an image due to <codeph>KErrCorrupt</codeph>, it will continue
+to try with subsequent valid plugins if available. This mechanism is carried
+out in the system and is not visible to the application. If you require a
+specific function available within a specific plugin, specify that plugin
+using <codeph>aDecoderUid</codeph>. </p> <p id="GUID-7A3F98C2-C86B-5DC4-9F0E-EAE030341325"><b>Basic Procedure For Conversion </b> </p> <p>The
+high level steps to convert encoded data to decoded data are as follow: </p> <ol id="GUID-495365EB-B53D-5229-AD45-F9700A22F2AB">
+<li id="GUID-4B6AEB44-3426-5B83-A12E-755230627D23"><p>As part of the <codeph>CImageDecoder</codeph> creation
+basic information about the image is pre-read from the image headers. This
+information is used to support certain enquiry methods such as <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6506DA99-55E9-3524-BD64-528E145915F4"><apiname>CImageDecoder::FrameCount()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref> (For more information about the retrieve information stored in certain types
+of images is supplied in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394">Retrieve
+Information features</xref>). </p> </li>
+<li id="GUID-18D5494C-BECC-52A5-9C51-60A9E560C816"><p>You can decode any subset
+of individual frames, in any order, and to repeat the decoding if necessary.
+To decode an image frame use the asynchronous conversion method <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref>,
+as follows. </p> </li>
+</ol> <codeblock id="GUID-557B2DE9-6AA7-593B-A1A7-0D1E4352E184" xml:space="preserve">
+void Convert(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aDestination, TInt aFrameNumber = 0);
+
+void ContinueConvert(TRequestStatus* aRequestStatus);</codeblock> <p> <b> Note:</b> The
+use of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F4F5A5F6-03E5-3801-93CC-A023363F35F8"><apiname>CImageDecoder::ContinueConvert()</apiname></xref> is described in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-AA950124-42DE-5A65-B371-7D85F43D71A6">Streamed
+and progressive decoding</xref>. </p> <p>There are different type of sub-procedures
+which have to be followed before decode conversion, they are: </p> <ul>
+<li id="GUID-1F27341A-4A6A-5269-AA61-CBB0FB620258"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-52CAB4D2-BFA9-528C-ADB6-88515893F2B1">Bitmap Masks conversion</xref>  </p> </li>
+<li id="GUID-3537322C-B7E7-502D-A773-294DEC45A6DC"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-03A3E6BD-8702-5C0D-8265-F956EC03CD73">Scaling and display modes</xref>  </p> </li>
+<li id="GUID-D11765E3-CD93-5CF2-A530-B7725F742861"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-9C2E0BFC-61FE-5F83-A78A-C9248C5D6FA3">Animations</xref>  </p> </li>
+<li id="GUID-EA7899D9-F950-514D-9696-072C14116B44"><p><xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-9BD9C48A-B582-5730-B03F-CF6CB00DF6D1">Background colours </xref>  </p> </li>
+</ul> <p id="GUID-52CAB4D2-BFA9-528C-ADB6-88515893F2B1"><b>Basic Procedure For Bitmap
+Masks conversion</b> </p> <p>The high level steps to Bitmap Masks conversion
+are as follows: </p> <ol id="GUID-A330923C-DA1E-55CF-A01C-151CD203D37B">
+<li id="GUID-E493B5B2-D8A2-5428-846B-0BA902EAF641"><p>There is a second variant
+of the <codeph>Convert()</codeph> function intended for use when decoding
+images with bitmap masks. </p> <codeblock id="GUID-F6213C82-A604-57F0-B4C2-5667007CAD53" xml:space="preserve">
+void Convert(TRequestStatus* aRequestStatus, CFbsBitmap&amp; aDestination, CFbsBitmap&amp; aDestinationMask, TInt aFrameNumber = 0);
+</codeblock> </li>
+<li id="GUID-1E7DC04E-A101-5C33-B6B5-BE5F83E95801"><p>Within the Symbian platform
+it is normal to store the bitmap mask separately from the main image data.
+Calls such as <xref href="GUID-2395FA67-5DCD-3CD7-BBB6-66625A3E2B6E.dita"><apiname>BitBltMasked()</apiname></xref> expect this data to be provided
+separately. This separation is true for both <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects
+and MBM files. </p> </li>
+<li id="GUID-B9CE26DF-AE1C-592F-8C0E-DD0AAD69BF60"><p>To determine whether
+an image contains a bitmap mask use <codeph>FrameInfo()</codeph>, the presence
+or absence of a mask will be indicated the <codeph>ETransparencyPossible</codeph> flag. </p> <p>The
+following two types of mask are available: </p> <ul>
+<li id="GUID-1A03053A-C797-57EF-978E-C25A1D32163A"><p> <b>8-bit alpha blend</b> -
+indicated by the <codeph>EAlphaChannel</codeph> flag of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iFlags</codeph>.
+The destination mask bitmap must be of type <codeph>EGray256</codeph>. </p> </li>
+<li id="GUID-9B51A424-66ED-584F-A3CD-55D575B38FEA"><p> <b>Simple on/off mask</b> -
+if no <codeph>EAlphaChannel</codeph> flag is set. The destination bitmap mask
+can be either <codeph>EGray2</codeph> or <codeph>EGray256</codeph>. </p> </li>
+</ul> </li>
+</ol> <p> <b>Note:</b> Images that contain bitmap masks do not have to have
+those masks decoded if they are not required. </p> <p id="GUID-03A3E6BD-8702-5C0D-8265-F956EC03CD73"><b>Basic Procedure For Scaling
+and display modes</b> </p> <p>The high level steps to Scale and display are
+shown here: </p> <ol id="GUID-DE0D4041-CBBF-5841-BE53-A8F6EA2CDE38">
+<li id="GUID-921CCDF6-7346-577E-AEC2-217C82329D44"><p>Before <codeph>Convert()</codeph> is
+used, the destination <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects for image data
+and bitmap masks are created. The simplest way to do this is to use a 1 to
+1 approach, that is, create the <codeph>CFbsBitmap</codeph> object with the
+same properties as the source image. This is achieved by using something similar
+to: </p> <codeblock id="GUID-198859CC-C33A-5BE8-B75C-C32746D65DF7" xml:space="preserve">iFrameInfo = &amp;imageDecoder-&gt;FrameInfo(FrameNum);
+
+iBitmap-&gt;Create(iFrameInfo-&gt;iOverallSizeInPixels, iFrameInfo-&gt;iFrameDisplayMode );
+</codeblock> </li>
+<li id="GUID-B3559310-560A-5671-9560-509F14B729ED"><p>If the <codeph>ECanDither</codeph> flag
+of <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iFlags</codeph> is
+set then the destination display mode can be adjusted. It is recommended that
+the window display mode is used as it is more efficient. </p> <p> <b>Note:</b> The
+mask bitmap must have the same size in pixels as the main image, even though
+the display mode is generally different. </p> </li>
+<li id="GUID-B517656C-3294-5D3A-92E3-442CAE099FE1"><p>The size of the image
+bitmap is available via <codeph>FrameInfo()</codeph> (<codeph>iOverallSizeInPixels</codeph>).
+However, in addition to a direct mapping of the size of an image, <xref href="GUID-062B8E74-EDEF-3A98-9728-79C3E5A8C829.dita"><apiname>ReducedSize()</apiname></xref> function
+can be used to calculate the reduced size of the decoded bitmap based on the
+input parameters. </p> </li>
+<li id="GUID-52299AC9-377C-5DEB-B16A-BDA0538D91A7"><p>If the <codeph>EFullyScaleable</codeph> flag
+of <codeph>FrameInfo()</codeph>  <codeph>iFlags</codeph> is set, you can specify
+any size for the <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and the image will be resized
+accordingly. </p> </li>
+</ol> <p id="GUID-9C2E0BFC-61FE-5F83-A78A-C9248C5D6FA3"><b>Basic Procedure For Animations</b> </p> <p>The
+high level steps to decode a GIF multi-frame image are as follow: </p> <ol id="GUID-C7E99D55-48C9-5329-B07B-28A65AB102D6">
+<li id="GUID-53364690-F9D3-5A80-9FAA-2046F8DB80AB"><p>Included in the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref> result
+are flags that enable the support of GIF animation. These flags are <codeph>iDelay</codeph>, <codeph>ELeaveInPlace</codeph>, <codeph>ERestoreToBackground</codeph> and <codeph>ERestoreToPrevious</codeph>. ICL provides these flags to enable
+the application to implement the animation; ICL does not provide functions
+to display the animation directly. </p> </li>
+<li id="GUID-3BAC1045-E210-5B1A-93E9-BB15C9FC1871"><p>Processing the information
+from these flags will inevitably require a state machine, and additional timers,
+within the application. Requirements will vary depending on the architecture
+of the client application itself. </p> </li>
+</ol> <p id="GUID-9BD9C48A-B582-5730-B03F-CF6CB00DF6D1"><b>Basic Procedure For Background
+colours</b> </p> <ol id="GUID-2D46054E-1344-5B17-B353-8A68A0C97DB0">
+<li id="GUID-41959955-766E-5AAD-AA6D-65C4F99E5581"><p>Some image formats contain
+background colour information. This is information is presented through <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7CE85F05-6D58-30F1-87D3-324BFB6131FB"><apiname>CImageDecoder::FrameInfo()</apiname></xref>  <codeph>iBackgroundColor</codeph>. </p> </li>
+<li id="GUID-B3419EC0-109F-5A37-9A4F-CD0F7A96FCDC"><p>If a non-masked image
+with background colour is decoded, the colour is included in the image data.
+If the decoded image also contains a bitmap mask, then the background colour
+will be a component of the mask <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> object. Depending
+on your application, you may want to choose your own background colour rather
+than use the one provided by the source image. </p> </li>
+</ol> <p id="GUID-FF418A2D-436B-515F-B9D1-E0A0C87E7394"><b>Basic Procedure To Retrieve
+Information From An Image</b> </p> <p>The high level steps to retrieve the
+information stored in certain types of images are shown here: </p> <ol id="GUID-2D40722B-5BEA-52ED-B143-A4E85CE8EB22">
+<li id="GUID-B40D32A1-CC43-50B8-A873-A6E14C27D165"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-01F212DD-0A35-3702-948B-1CBFB6675456"><apiname>CImageDecoder::FrameData()</apiname></xref> Provides
+access to additional chunks of data within the images, for example, palette
+and similar lookup tables, copyright information and other strings. This information
+should be used with care, the returned data is merely a reference to the original
+data within the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object, and is only valid
+for the lifetime of the object. </p> </li>
+<li id="GUID-875B1CFA-CE86-50D7-BD8A-4E7453EEF35F"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-B237AB64-0A03-3356-AA51-FCFD59E1A513"><apiname>CImageDecoder::NumberOfImageComments()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F7CADA2E-4B76-3B23-B5CA-92CD652E9A97"><apiname>CImageDecoder::ImageCommentL()</apiname></xref> Images can have comments embedded in them. These comments are usually either
+embedded as a single repository which can be retrieved on an image level,
+or multiple repositories attached to individual frames within the image. The
+two functions above return the number of comments attached to the entire image
+and provide a mechanism for retrieving any of those comments. </p> </li>
+<li id="GUID-6854DEC9-4348-56DD-B5E2-47DEE3DC43AE"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-3057B1A5-9F03-363B-9E84-9CFE2A2892EB"><apiname>CImageDecoder::NumberOfFrameComments()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-28A8EF22-C0C8-32BB-B9F3-96588F63A321"><apiname>CImageDecoder::FrameCommentL()</apiname></xref> Similar functionality to above, but these functions return the number of
+comments attached to individually specified frames and provide a mechanism
+for retrieving any of those comments. </p> </li>
+<li id="GUID-F51D81A1-61A7-5C1C-B0FB-99B18C1203DC"><p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-78BF07BC-5338-3A60-B8BF-47DAFE2CA82C"><apiname>CImageDecoder::FrameInfoStringsLC</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-7B3BDF3B-43BA-3206-AF62-174B7C3AF516"><apiname>CImageDecoder::FrameInfoStringsL()</apiname></xref> Provide a list of data for a specified frame, including data items such
+as format, plugin description, size and so on, in a readable format. Although
+the property strings can be accessed by name, it is recommended that they
+be generally treated as a list of strings. </p> </li>
+</ol> <p id="GUID-AA950124-42DE-5A65-B371-7D85F43D71A6"><b>Basic Procedure Streamed
+and Progressive Decoding</b> </p> <p> <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> includes
+facilities to support the simultaneous decoding and display of images as they
+are being loaded. The decoder does not wait for the entire image to be loaded
+before processing it, rather it begins as soon as possible, stops when it
+runs out of data and then carries on when more data is available. </p> <p>The
+high level steps to perform the streaming and the progressive during decoding
+are shown here: </p> <ol id="GUID-0E29E833-4435-5E55-908F-938A13473B79">
+<li id="GUID-CE64D3C8-8923-5BAF-AF29-9BA6470008F8"><p>If there is insufficient
+data to work out the image format (plugin decoder to use) <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6DA07559-7DDC-32A9-9E09-D557348D46DE"><apiname>CImageDecoder::FileNewL()</apiname></xref> (or
+its "Data" equivalent) leaves with <codeph>KErrUnderflow</codeph>. This is
+only applicable to instances where automatic detection of the plugin decoder
+is used. For more information see, "Automatic detection" in <xref href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita#GUID-B10B048F-37FF-53E7-92B9-83F8C197566A/GUID-1F8A0DCC-CB95-5245-9ED0-FE4A775152D0">Creation</xref>. </p> </li>
+<li id="GUID-23175979-940A-507D-B478-0C4ACB5F9071"><p>As soon as the correct
+plugin decoder has been determined it is opened and whatever addition image
+data available is scanned. The plugin decoder continues to decode image data
+as it arrives, updating <codeph>FrameCount()</codeph> whenever it becomes
+aware of a new frame within the data. The internal flag <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-26084926-42C1-38FC-9F30-E1801AE5167D"><apiname>CImageDecoder::IsHeaderProcessingComplete()</apiname></xref> is
+maintained at <codeph>EFalse</codeph> until the entire image has been loaded. </p> </li>
+<li id="GUID-75959B88-7CE2-598E-9F83-EC0189BD2F6C"><p>Frames can be decoded
+before the entire image is loaded, but the frame to be decoded must be at
+least partially loaded. If <codeph>IsHeaderProcessingComplete()</codeph> is
+set to <codeph>EFalse</codeph> and <codeph>FrameCount()</codeph> is equal
+to or less than the frame to decode, the application must wait for the relevant
+frame to load. In such circumstances a call to <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-A74CEA6D-ED47-3EA4-8917-FEE4B51B7639"><apiname>CImageDecoder::ContinueProcessingHeadersL()</apiname></xref> should
+be made that scans for any further headers. <codeph>FrameCount()</codeph> and <codeph>IsHeaderProcessingComplete()</codeph> should
+then be recalled to determine if the frame has arrived. </p> </li>
+<li id="GUID-C390495B-840E-541B-A0C5-061D3706AD8A"><p>Once <codeph>FrameCount()</codeph> is
+greater than the frame the application wants to decode, it is possible to
+start to decoding the frame using <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref>.
+Frame headers and their associated data do not always follow each other in
+some image formats. This has the implication that although <codeph>FrameCount()</codeph> has
+indicated that the frame is available, it may not yet be fully loaded. Under
+such circumstances as much decoding as possible is undertaken, and <codeph>Convert()</codeph> then
+completes with the error code <codeph>KErrUnderflow</codeph>. If the <codeph>EPartialDecodeInvalid</codeph> flag
+(from <codeph>FrameInfo()</codeph>) is not set, the partially decoded image
+can be displayed - for some image formats, a partially decoded image is not
+generally usable, but this facility is supported by most known formats. Obviously,
+if all of the image is present, <codeph>Convert()</codeph> completes with <codeph>KErrNone</codeph> as
+normal. </p> </li>
+<li id="GUID-44864401-5DB5-56A5-BE6D-5B8B4570CCBF"><p>Where only a partial
+conversion has been completed, <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F4F5A5F6-03E5-3801-93CC-A023363F35F8"><apiname>CImageDecoder::ContinueConvert()</apiname></xref> should
+be used to continue converting when new data arrives. <codeph>ContinueConvert()</codeph> continues
+to convert the frame data where the previous call left off. This function
+should continue to be called until it returns the error code <codeph>KErrNone</codeph> rather
+than <codeph>KErrUnderflow</codeph>. </p> <p>Note: The <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> must
+never be resized during a conversion session using <codeph>ContinueConvert()</codeph>,
+if resizing does occur, a panic will be raised by the function. If resizing
+or any other parameter changes need to be made to the <codeph>CFbsBitmap</codeph>,
+frame decoding should be restarted by using <codeph>Convert()</codeph> rather
+than trying to continue an existing conversion session. </p> </li>
+</ol> <p>There is no explicit decoder call to say "all of the data is now
+present". This could be done via inference, continuously checking <codeph>IsHeaderProcessingComplete()</codeph> until
+it returns <codeph>ETrue</codeph>. However, this is not advisable as it is
+possible that <codeph>IsHeaderProcessingComplete()</codeph> could continue
+to return <codeph>EFalse</codeph> even after the application has finished
+sending image data. Your state machine should be written so that it takes
+this possibility into account. </p> <p id="GUID-C7FEA8F9-B367-52B1-9D26-84F9E225D17C"><b>Basic Procedure For Buffered
+Decoding</b> </p> <p> <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita"><apiname>CBufferedImageDecoder</apiname></xref> is a wrapper
+that encapsulates not only a <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> but also the
+descriptor used to store the image, and in some circumstances can replace
+the use of <codeph>CImageDecoder</codeph> itself. <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita"><apiname>CBufferedImageDecoder</apiname></xref> can
+always be created, even if there is no data available at the time of creation.
+Another key feature of <codeph>CBufferedImageDecoder</codeph> is that it can
+be reused to decode multiple images. </p> <p>The high level steps to perform
+the buffered decoding are shown here: </p> <ol id="GUID-0EEA3303-59C3-5326-8E10-3C54BE69B336">
+<li id="GUID-8749D5E2-2E9D-578B-A02C-C4C1309E2AC5"><p>The decoder is created
+using the <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-D255B2EF-1DA0-336E-A173-0FD03210B349"><apiname>CBufferedImageDecoder::NewL()</apiname></xref> factory function,
+and the decoding process is started with one of the two <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-A8D36C2B-C057-3F6A-A1AF-F7421D204B11"><apiname>CBufferedImageDecoder::OpenL()</apiname></xref> calls,
+specifying either MIME-type or image type/sub-type and UID, which are similar
+to <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-00FB83E8-3759-32BE-B6E8-6F04EC60A909"><apiname>CImageDecoder::DataNewL()</apiname></xref>. If not enough data is available
+to create an internal decoder a call to <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-0C7E0E24-8352-353E-9E55-D216300D1CFA"><apiname>CBufferedImageDecoder::ValidDecoder()</apiname></xref> returns <codeph>EFalse</codeph>.
+The decoder keeps an internal copy of the data provided so the client can
+discard its own copy. </p> <p> <b>Warning:</b> The decoding and enquiry functions
+must not be used until an internal decoder has been created, otherwise calls
+will panic with <codeph>EDecoderNotCreated</codeph>. </p> </li>
+<li id="GUID-A1DD251D-D1B2-57EE-9A2D-94AE75DBA35B"><p>Additional data can
+be supplied to the decoder, when it becomes available, by using <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-5CF4094C-A829-347A-835C-17ABF439445A"><apiname>CBufferedImageDecoder::AppendDataL()</apiname></xref> and <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-B85FD15C-337A-393F-A9DA-65EC1EB546C5"><apiname>CBufferedImageDecoder::ContinueOpenL()</apiname></xref>, which will copy the data and try to find an appropriate plugin. This step
+should be repeated until enough data is available to create the internal decoder,
+indicated by <codeph>ValidDecoder()</codeph> returning <codeph>ETrue</codeph>. <codeph>OpenL()</codeph> and <codeph>ContinueOpenL()</codeph> will
+leave with <codeph>KErrCorrupt</codeph> if a suitable decoder is found, but
+that decoder was unable to interpret the supplied image data. </p> <p>Note:
+As with <codeph>OpenL()</codeph>, data provided by <codeph>AppendDataL()</codeph> is
+kept in an internal buffer by the decoder so the client can discard its own
+copy. </p> </li>
+<li id="GUID-E4E67E99-0D9A-5CA9-8FE3-6A32A36C3F42"><p>The process for decoding
+the image header and frames are the same as for <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> with <codeph>IsHeaderProcessingComplete()</codeph>, <codeph>FrameCount()</codeph>, <codeph>Convert()</codeph> and <codeph>ContinueConvert()</codeph> calls
+except that the data is not appended to a descriptor, but supplied to the
+decoder with <codeph>AppendDataL()</codeph>. </p> </li>
+<li id="GUID-E40CF367-2601-5B9F-9E20-34CD8F2754EB"><p>The decoder can be reused
+by calling a <xref href="GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378.dita#GUID-DD2EDAB6-784C-3FC9-A53D-84D133049378/GUID-44030283-5CB8-3317-8498-0B70C0C358A9"><apiname>CBufferedImageDecoder::Reset()</apiname></xref>, which destroys
+the internal data buffer and decoder. A new decoder plugin can then be started
+using <codeph>OpenL()</codeph>. </p> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks
+overview</linktext></link>
+<link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion
+Overview</linktext></link>
+<link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding
+Tutorial</linktext></link>
+<link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to
+Symbian supplied Codecs </linktext></link>
+</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B1254526-3C72-59E7-88C0-667FC051379F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B1254526-3C72-59E7-88C0-667FC051379F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B1254526-3C72-59E7-88C0-667FC051379F"><title>Extended SMS Converter</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Extended SMS Converter uses the lossy mechanism to extend the alphabet of the standard converter. It maps a wider set of input character codes, including commonly-used Eastern European Unicode characters, to the standard 7-bit alphabet. This section describes the Extended SMS Converter and the alphabet it supports. </p> <section><title>Introduction</title> <p>Languages supported by this converter include Croatian, Czech, Estonian, Hungarian, Icelandic, Latvian, Lithuanian, Polish, Romanian, Serbian, Slovak, Slovenian, Turkish, Portuguese and Spanish. This converter is identified by the <codeph>KCharacterSetIdentifierExtendedSms7Bit</codeph> UID, which is defined in the <filepath>charconv.h</filepath> file. </p> <p>Any undefined Unicode is converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section> <section><title>Alphabet</title> <p>The highlighted boxes in Figure 1 illustrate the alphabet of the extended SMS converter: </p> <ul><li id="GUID-8FA8C1B0-6D40-5081-8D55-6EC36A42E7EB"><p>GSM 7-bit default alphabet </p> </li> <li id="GUID-2AA234D6-0592-5AEE-93B2-2CE9833E7AED"><p>GSM 7-bit default alphabet extension table </p> </li> <li id="GUID-189BB933-8DAC-5B20-B57B-90D4864FE362"><p>Extra lossy conversions–exclude 9 characters listed in Table 2 </p> </li> <li id="GUID-EEC2BFAC-81D4-5588-B56A-9A7509CEAD26"><p>Extended lossy conversions–shown as Lossy Characters 2 in Figure 1. </p> </li> </ul> <p>Figure 1 </p> <fig id="GUID-B2B055C3-132F-50D2-A071-AAF782E052E5"><image href="GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409666_href.png" placement="inline"/></fig> <p>Table 1 lists the extra lossy conversions supported by this converter in addition to those supported by the standard converter. </p> <p>Table 1 </p> <table id="GUID-5CDD01C1-99D0-502A-A4E3-7C9514289424"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS </p> </entry> <entry><p>U+038F </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>(NO-BREAK SPACE) </p> </entry> <entry><p>U+00A0 </p> </entry> <entry><p>0x20 </p> </entry> <entry><p>(SPACE) </p> </entry> </row> <row><entry><p>« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK * </p> </entry> <entry><p>U+00AB </p> </entry> <entry><p>0x22 </p> </entry> <entry><p>" QUOTATION MARK </p> </entry> </row> <row><entry><p>» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK * </p> </entry> <entry><p>U+00BB </p> </entry> <entry><p>0x22 </p> </entry> <entry><p>" QUOTATION MARK </p> </entry> </row> <row><entry><p>` GRAVE ACCENT </p> </entry> <entry><p>U+0060 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>´ ACUTE ACCENT </p> </entry> <entry><p>U+00B4 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>΄ GREEK TONOS </p> </entry> <entry><p>U+0384 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>΅ GREEK DIALYTIKA TONOS </p> </entry> <entry><p>U+0385 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>× MULTIPLICATION SIGN </p> </entry> <entry><p>U+00D7 </p> </entry> <entry><p>0x2A </p> </entry> <entry><p>* ASTERISK </p> </entry> </row> <row><entry><p>¸ CEDILLA </p> </entry> <entry><p>U+00B8 </p> </entry> <entry><p>0x2C </p> </entry> <entry><p>, COMMA </p> </entry> </row> <row><entry><p>SOFT HYPHEN </p> </entry> <entry><p>U+00AD </p> </entry> <entry><p>0x2D </p> </entry> <entry><p>- HYPHEN-MINUS </p> </entry> </row> <row><entry><p>· MIDDLE DOT </p> </entry> <entry><p>U+00B7 </p> </entry> <entry><p>0x2E </p> </entry> <entry><p>. FULL STOP </p> </entry> </row> <row><entry><p>÷ DIVISION SIGN </p> </entry> <entry><p>U+00F7 </p> </entry> <entry><p>0x2F </p> </entry> <entry><p>/ SOLIDUS </p> </entry> </row> <row><entry><p>¹ SUPERSCRIPT ONE </p> </entry> <entry><p>U+00B9 </p> </entry> <entry><p>0x31 </p> </entry> <entry><p>1 DIGIT ONE </p> </entry> </row> <row><entry><p>² SUPERSCRIPT TWO </p> </entry> <entry><p>U+00B2 </p> </entry> <entry><p>0x32 </p> </entry> <entry><p>2 DIGIT TWO </p> </entry> </row> <row><entry><p>³ SUPERSCRIPT THREE </p> </entry> <entry><p>U+00B3 </p> </entry> <entry><p>0x33 </p> </entry> <entry><p>3 DIGIT THREE </p> </entry> </row> <row><entry><p>; GREEK QUESTION MARK (Erotimatiko) </p> </entry> <entry><p>U+037E </p> </entry> <entry><p>0x3B </p> </entry> <entry><p>; SEMICOLON </p> </entry> </row> <row><entry><p>Ā LATIN CAPITAL LETTER A WITH MACRON </p> </entry> <entry><p>U+0100 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ă LATIN CAPITAL LETTER A WITH BREVE </p> </entry> <entry><p>U+0102 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ą LATIN CAPITAL LETTER A WITH OGONEK </p> </entry> <entry><p>U+0104 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ć LATIN CAPITAL LETTER C WITH ACUTE </p> </entry> <entry><p>U+0106 </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX </p> </entry> <entry><p>U+0108 </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE </p> </entry> <entry><p>U+010A </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Č LATIN CAPITAL LETTER C WITH CARON </p> </entry> <entry><p>U+010C </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ð LATIN CAPITAL LETTER ETH (Icelandic) </p> </entry> <entry><p>U+00D0 </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Ď LATIN CAPITAL LETTER D WITH CARON </p> </entry> <entry><p>U+010E </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Đ LATIN CAPITAL LETTER D WITH STROKE </p> </entry> <entry><p>U+0110 </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Ē LATIN CAPITAL LETTER E WITH MACRON </p> </entry> <entry><p>U+0112 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ĕ LATIN CAPITAL LETTER E WITH BREVE </p> </entry> <entry><p>U+0114 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ė LATIN CAPITAL LETTER E WITH DOT ABOVE </p> </entry> <entry><p>U+0116 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ę LATIN CAPITAL LETTER E WITH OGONEK </p> </entry> <entry><p>U+0118 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ě LATIN CAPITAL LETTER E WITH CARON </p> </entry> <entry><p>U+011A </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX </p> </entry> <entry><p>U+011C </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ğ LATIN CAPITAL LETTER G WITH BREVE </p> </entry> <entry><p>U+011E </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE </p> </entry> <entry><p>U+0120 </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ģ LATIN CAPITAL LETTER G WITH CEDILLA </p> </entry> <entry><p>U+0122 </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX </p> </entry> <entry><p>U+0124 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ħ LATIN CAPITAL LETTER H WITH STROKE </p> </entry> <entry><p>U+0126 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ĩ LATIN CAPITAL LETTER I WITH TILDE </p> </entry> <entry><p>U+0128 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ī LATIN CAPITAL LETTER I WITH MACRON </p> </entry> <entry><p>U+012A </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ĭ LATIN CAPITAL LETTER I WITH BREVE </p> </entry> <entry><p>U+012C </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Į LATIN CAPITAL LETTER I WITH OGONEK </p> </entry> <entry><p>U+012E </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>İ LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry> <entry><p>U+0130 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX </p> </entry> <entry><p>U+0134 </p> </entry> <entry><p>0x4A </p> </entry> <entry><p>J LATIN CAPITAL LETTER J </p> </entry> </row> <row><entry><p>Ķ LATIN CAPITAL LETTER K WITH CEDILLA </p> </entry> <entry><p>U+0136 </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>Ĺ LATIN CAPITAL LETTER L WITH ACUTE </p> </entry> <entry><p>U+0139 </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ļ LATIN CAPITAL LETTER L WITH CEDILLA </p> </entry> <entry><p>U+013B </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ľ LATIN CAPITAL LETTER L WITH CARON </p> </entry> <entry><p>U+013D </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT </p> </entry> <entry><p>U+013F </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ł LATIN CAPITAL LETTER L WITH STROKE </p> </entry> <entry><p>U+0141 </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ń LATIN CAPITAL LETTER N WITH ACUTE </p> </entry> <entry><p>U+0143 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ņ LATIN CAPITAL LETTER N WITH CEDILLA </p> </entry> <entry><p>U+0145 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ň LATIN CAPITAL LETTER N WITH CARON </p> </entry> <entry><p>U+0147 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ŋ LATIN CAPITAL LETTER ENG (Sami) </p> </entry> <entry><p>U+014A </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ō LATIN CAPITAL LETTER O WITH MACRON </p> </entry> <entry><p>U+014C </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ŏ LATIN CAPITAL LETTER O WITH BREVE </p> </entry> <entry><p>U+014E </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Œ LATIN CAPITAL LIGATURE OE </p> </entry> <entry><p>U+0152 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ŕ LATIN CAPITAL LETTER R WITH ACUTE </p> </entry> <entry><p>U+0154 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ŗ LATIN CAPITAL LETTER R WITH CEDILLA </p> </entry> <entry><p>U+0156 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ř LATIN CAPITAL LETTER R WITH CARON </p> </entry> <entry><p>U+0158 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ś LATIN CAPITAL LETTER S WITH ACUTE </p> </entry> <entry><p>U+015A </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX </p> </entry> <entry><p>U+015C </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Ş LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry> <entry><p>U+015E </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Š LATIN CAPITAL LETTER S WITH CARON </p> </entry> <entry><p>U+0160 </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Þ LATIN CAPITAL LETTER THORN (Icelandic) </p> </entry> <entry><p>U+00DE </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ţ LATIN CAPITAL LETTER T WITH CEDILLA * </p> </entry> <entry><p>U+0162 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ť LATIN CAPITAL LETTER T WITH CARON </p> </entry> <entry><p>U+0164 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ŧ LATIN CAPITAL LETTER T WITH STROKE </p> </entry> <entry><p>U+0166 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ũ LATIN CAPITAL LETTER U WITH TILDE </p> </entry> <entry><p>U+0168 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ū LATIN CAPITAL LETTER U WITH MACRON </p> </entry> <entry><p>U+016A </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ŭ LATIN CAPITAL LETTER U WITH BREVE </p> </entry> <entry><p>U+016C </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ů LATIN CAPITAL LETTER U WITH RING ABOVE </p> </entry> <entry><p>U+016E </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ų LATIN CAPITAL LETTER U WITH OGONEK </p> </entry> <entry><p>U+0172 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX </p> </entry> <entry><p>U+0174 </p> </entry> <entry><p>0x57 </p> </entry> <entry><p>W LATIN CAPITAL LETTER W </p> </entry> </row> <row><entry><p>Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX </p> </entry> <entry><p>U+0176 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS </p> </entry> <entry><p>U+0178 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ź LATIN CAPITAL LETTER Z WITH ACUTE </p> </entry> <entry><p>U+0179 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE </p> </entry> <entry><p>U+017B </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ž LATIN CAPITAL LETTER Z WITH CARON </p> </entry> <entry><p>U+017D </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> <entry><p>U+00D6 </p> </entry> <entry><p>0x5C </p> </entry> <entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0150 </p> </entry> <entry><p>0x5C </p> </entry> <entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0170 </p> </entry> <entry><p>0x5E </p> </entry> <entry><p>Ü LATIN CAPITAL LETTER U WITH DIAERESIS </p> </entry> </row> <row><entry><p>ā LATIN SMALL LETTER A WITH MACRON </p> </entry> <entry><p>U+0101 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ă LATIN SMALL LETTER A WITH BREVE </p> </entry> <entry><p>U+0103 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ą LATIN SMALL LETTER A WITH OGONEK </p> </entry> <entry><p>U+0105 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ª FEMININE ORDINAL INDICATOR </p> </entry> <entry><p>U+00AA </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ć LATIN SMALL LETTER C WITH ACUTE </p> </entry> <entry><p>U+0107 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX </p> </entry> <entry><p>U+0109 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ċ LATIN SMALL LETTER C WITH DOT ABOVE </p> </entry> <entry><p>U+010B </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>č LATIN SMALL LETTER C WITH CARON </p> </entry> <entry><p>U+010D </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>¢ CENT SIGN </p> </entry> <entry><p>U+00A2 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>© COPYRIGHT SIGN </p> </entry> <entry><p>U+00A9 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ð LATIN SMALL LETTER ETH (Icelandic) </p> </entry> <entry><p>U+00F0 </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>ď LATIN SMALL LETTER D WITH CARON </p> </entry> <entry><p>U+010F </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>đ LATIN SMALL LETTER D WITH STROKE </p> </entry> <entry><p>U+0111 </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>ē LATIN SMALL LETTER E WITH MACRON </p> </entry> <entry><p>U+0113 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ĕ LATIN SMALL LETTER E WITH BREVE </p> </entry> <entry><p>U+0115 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ė LATIN SMALL LETTER E WITH DOT ABOVE </p> </entry> <entry><p>U+0117 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ę LATIN SMALL LETTER E WITH OGONEK </p> </entry> <entry><p>U+0119 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ě LATIN SMALL LETTER E WITH CARON </p> </entry> <entry><p>U+011B </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX </p> </entry> <entry><p>U+011D </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ğ LATIN SMALL LETTER G WITH BREVE </p> </entry> <entry><p>U+011F </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ġ LATIN SMALL LETTER G WITH DOT ABOVE </p> </entry> <entry><p>U+0121 </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ģ LATIN SMALL LETTER G WITH CEDILLA </p> </entry> <entry><p>U+0123 </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX </p> </entry> <entry><p>U+0125 </p> </entry> <entry><p>0x68 </p> </entry> <entry><p>h LATIN SMALL LETTER H </p> </entry> </row> <row><entry><p>ħ LATIN SMALL LETTER H WITH STROKE </p> </entry> <entry><p>U+0127 </p> </entry> <entry><p>0x68 </p> </entry> <entry><p>h LATIN SMALL LETTER H </p> </entry> </row> <row><entry><p>ĩ LATIN SMALL LETTER I WITH TILDE </p> </entry> <entry><p>U+0129 </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ī LATIN SMALL LETTER I WITH MACRON </p> </entry> <entry><p>U+012B </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ĭ LATIN SMALL LETTER I WITH BREVE </p> </entry> <entry><p>U+012D </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>į LATIN SMALL LETTER I WITH OGONEK </p> </entry> <entry><p>U+012F </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ı LATIN SMALL LETTER DOTLESS I </p> </entry> <entry><p>U+0131 </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX </p> </entry> <entry><p>U+0135 </p> </entry> <entry><p>0x6A </p> </entry> <entry><p>j LATIN SMALL LETTER J </p> </entry> </row> <row><entry><p>ķ LATIN SMALL LETTER K WITH CEDILLA </p> </entry> <entry><p>U+0137 </p> </entry> <entry><p>0x6B </p> </entry> <entry><p>k LATIN SMALL LETTER K </p> </entry> </row> <row><entry><p>ĸ LATIN SMALL LETTER KRA (Greenlandic) </p> </entry> <entry><p>U+0138 </p> </entry> <entry><p>0x6B </p> </entry> <entry><p>k LATIN SMALL LETTER K </p> </entry> </row> <row><entry><p>ĺ LATIN SMALL LETTER L WITH ACUTE </p> </entry> <entry><p>U+013A </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ļ LATIN SMALL LETTER L WITH CEDILLA </p> </entry> <entry><p>U+013C </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ľ LATIN SMALL LETTER L WITH CARON </p> </entry> <entry><p>U+013E </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ŀ LATIN SMALL LETTER L WITH MIDDLE DOT </p> </entry> <entry><p>U+0140 </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ł LATIN SMALL LETTER L WITH STROKE </p> </entry> <entry><p>U+0142 </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ń LATIN SMALL LETTER N WITH ACUTE </p> </entry> <entry><p>U+0144 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ņ LATIN SMALL LETTER N WITH CEDILLA </p> </entry> <entry><p>U+0146 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ň LATIN SMALL LETTER N WITH CARON </p> </entry> <entry><p>U+0148 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ʼn LATIN SMALL LETTER N PRECEDED BY APOSTROPHE </p> </entry> <entry><p>U+0149 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p> ŋ LATIN SMALL LETTER ENG (Sami) </p> </entry> <entry><p>U+014B </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ō LATIN SMALL LETTER O WITH MACRON </p> </entry> <entry><p>U+014D </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ŏ LATIN SMALL LETTER O WITH BREVE </p> </entry> <entry><p>U+014F </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>° DEGREE SIGN </p> </entry> <entry><p>U+00B0 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>º MASCULINE ORDINAL INDICATOR </p> </entry> <entry><p>U+00BA </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>œ LATIN SMALL LIGATURE OE </p> </entry> <entry><p>U+0153 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ŕ LATIN SMALL LETTER R WITH ACUTE </p> </entry> <entry><p>U+0155 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ŗ LATIN SMALL LETTER R WITH CEDILLA </p> </entry> <entry><p>U+0157 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ř LATIN SMALL LETTER R WITH CARON </p> </entry> <entry><p>U+0159 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>® REGISTERED SIGN </p> </entry> <entry><p>U+00AE </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ś LATIN SMALL LETTER S WITH ACUTE </p> </entry> <entry><p>U+015B </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX </p> </entry> <entry><p>U+015D </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>ş LATIN SMALL LETTER S WITH CEDILLA * </p> </entry> <entry><p>U+015F </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>š LATIN SMALL LETTER S WITH CARON </p> </entry> <entry><p>U+0161 </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>þ LATIN SMALL LETTER THORN (Icelandic) </p> </entry> <entry><p>U+00FE </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ţ LATIN SMALL LETTER T WITH CEDILLA * </p> </entry> <entry><p>U+0163 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ť LATIN SMALL LETTER T WITH CARON </p> </entry> <entry><p>U+0165 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ŧ LATIN SMALL LETTER T WITH STROKE </p> </entry> <entry><p>U+0167 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ũ LATIN SMALL LETTER U WITH TILDE </p> </entry> <entry><p>U+0169 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ū LATIN SMALL LETTER U WITH MACRON </p> </entry> <entry><p>U+016B </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ŭ LATIN SMALL LETTER U WITH BREVE </p> </entry> <entry><p>U+016D </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ů LATIN SMALL LETTER U WITH RING ABOVE </p> </entry> <entry><p>U+016F </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ų LATIN SMALL LETTER U WITH OGONEK </p> </entry> <entry><p>U+0173 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>µ MICRO SIGN </p> </entry> <entry><p>U+00B5 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX </p> </entry> <entry><p>U+0175 </p> </entry> <entry><p>0x77 </p> </entry> <entry><p>w LATIN SMALL LETTER W </p> </entry> </row> <row><entry><p>ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX </p> </entry> <entry><p>U+0177 </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> <row><entry><p>ź LATIN SMALL LETTER Z WITH ACUTE </p> </entry> <entry><p>U+017A </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p> ż LATIN SMALL LETTER Z WITH DOT ABOVE </p> </entry> <entry><p>U+017C </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p>ž LATIN SMALL LETTER Z WITH CARON </p> </entry> <entry><p>U+017E </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p>ő LATIN SMALL LETTER O WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0151 </p> </entry> <entry><p>0x7C </p> </entry> <entry><p>ö LATIN SMALL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>ű LATIN SMALL LETTER U WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0171 </p> </entry> <entry><p>0x7E </p> </entry> <entry><p>ü LATIN SMALL LETTER U WITH DIAERESIS </p> </entry> </row> </tbody> </tgroup> </table> <p>Table 2 lists the 9 characters in Lossy Character 1 supported by Standard SMS Converter but not by Extended SMS Converter. </p> <p>Table 2 </p> <table id="GUID-B6A56A5A-12EB-5AA0-9541-E7916F6509C6"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>ϕ GREEK PHI SYMBOL </p> </entry> <entry><p>0x03D5 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>Ω OHM SIGN </p> </entry> <entry><p>0x2126 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>∏ N-ARY PRODUCT </p> </entry> <entry><p>0x220F </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>∑ N-ARY SUMMATION </p> </entry> <entry><p>0x2211 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>ϑ GREEK THETA SYMBOL </p> </entry> <entry><p>0x03D1 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ϐ GREEK BETA SYMBOL </p> </entry> <entry><p>0x03D0 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>ϒ GREEK UPSILON WITH HOOK SYMBOL </p> </entry> <entry><p>0x03D2 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL </p> </entry> <entry><p>0x03D3 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL </p> </entry> <entry><p>0x03D4 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>See also</title> <p><xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS Encodings and Converters Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B1254526-3C72-59E7-88C0-667FC051379F"><title>Extended SMS Converter</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Extended SMS Converter uses the lossy mechanism to extend the alphabet of the standard converter. It maps a wider set of input character codes, including commonly-used Eastern European Unicode characters, to the standard 7-bit alphabet. This section describes the Extended SMS Converter and the alphabet it supports. </p> <section><title>Introduction</title> <p>Languages supported by this converter include Croatian, Czech, Estonian, Hungarian, Icelandic, Latvian, Lithuanian, Polish, Romanian, Serbian, Slovak, Slovenian, Turkish, Portuguese and Spanish. This converter is identified by the <codeph>KCharacterSetIdentifierExtendedSms7Bit</codeph> UID, which is defined in the <filepath>charconv.h</filepath> file. </p> <p>Any undefined Unicode is converted to a question mark (?)–GSM code <codeph>0x37</codeph>. Any code outside GSM <codeph>0x00</codeph> ~<codeph>0x7F</codeph> is converted to the Unicode replacement character <codeph>0xFFFD</codeph>. </p> </section> <section><title>Alphabet</title> <p>The highlighted boxes in Figure 1 illustrate the alphabet of the extended SMS converter: </p> <ul><li id="GUID-8FA8C1B0-6D40-5081-8D55-6EC36A42E7EB"><p>GSM 7-bit default alphabet </p> </li> <li id="GUID-2AA234D6-0592-5AEE-93B2-2CE9833E7AED"><p>GSM 7-bit default alphabet extension table </p> </li> <li id="GUID-189BB933-8DAC-5B20-B57B-90D4864FE362"><p>Extra lossy conversions–exclude 9 characters listed in Table 2 </p> </li> <li id="GUID-EEC2BFAC-81D4-5588-B56A-9A7509CEAD26"><p>Extended lossy conversions–shown as Lossy Characters 2 in Figure 1. </p> </li> </ul> <p>Figure 1 </p> <fig id="GUID-B2B055C3-132F-50D2-A071-AAF782E052E5"><image href="GUID-7A6342C7-DED3-5BE0-AB1C-F2C7BC57D1D2_d0e409504_href.png" placement="inline"/></fig> <p>Table 1 lists the extra lossy conversions supported by this converter in addition to those supported by the standard converter. </p> <p>Table 1 </p> <table id="GUID-5CDD01C1-99D0-502A-A4E3-7C9514289424"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS </p> </entry> <entry><p>U+038F </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>(NO-BREAK SPACE) </p> </entry> <entry><p>U+00A0 </p> </entry> <entry><p>0x20 </p> </entry> <entry><p>(SPACE) </p> </entry> </row> <row><entry><p>« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK * </p> </entry> <entry><p>U+00AB </p> </entry> <entry><p>0x22 </p> </entry> <entry><p>" QUOTATION MARK </p> </entry> </row> <row><entry><p>» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK * </p> </entry> <entry><p>U+00BB </p> </entry> <entry><p>0x22 </p> </entry> <entry><p>" QUOTATION MARK </p> </entry> </row> <row><entry><p>` GRAVE ACCENT </p> </entry> <entry><p>U+0060 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>´ ACUTE ACCENT </p> </entry> <entry><p>U+00B4 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>΄ GREEK TONOS </p> </entry> <entry><p>U+0384 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>΅ GREEK DIALYTIKA TONOS </p> </entry> <entry><p>U+0385 </p> </entry> <entry><p>0x27 </p> </entry> <entry><p>' APOSTROPHE </p> </entry> </row> <row><entry><p>× MULTIPLICATION SIGN </p> </entry> <entry><p>U+00D7 </p> </entry> <entry><p>0x2A </p> </entry> <entry><p>* ASTERISK </p> </entry> </row> <row><entry><p>¸ CEDILLA </p> </entry> <entry><p>U+00B8 </p> </entry> <entry><p>0x2C </p> </entry> <entry><p>, COMMA </p> </entry> </row> <row><entry><p>SOFT HYPHEN </p> </entry> <entry><p>U+00AD </p> </entry> <entry><p>0x2D </p> </entry> <entry><p>- HYPHEN-MINUS </p> </entry> </row> <row><entry><p>· MIDDLE DOT </p> </entry> <entry><p>U+00B7 </p> </entry> <entry><p>0x2E </p> </entry> <entry><p>. FULL STOP </p> </entry> </row> <row><entry><p>÷ DIVISION SIGN </p> </entry> <entry><p>U+00F7 </p> </entry> <entry><p>0x2F </p> </entry> <entry><p>/ SOLIDUS </p> </entry> </row> <row><entry><p>¹ SUPERSCRIPT ONE </p> </entry> <entry><p>U+00B9 </p> </entry> <entry><p>0x31 </p> </entry> <entry><p>1 DIGIT ONE </p> </entry> </row> <row><entry><p>² SUPERSCRIPT TWO </p> </entry> <entry><p>U+00B2 </p> </entry> <entry><p>0x32 </p> </entry> <entry><p>2 DIGIT TWO </p> </entry> </row> <row><entry><p>³ SUPERSCRIPT THREE </p> </entry> <entry><p>U+00B3 </p> </entry> <entry><p>0x33 </p> </entry> <entry><p>3 DIGIT THREE </p> </entry> </row> <row><entry><p>; GREEK QUESTION MARK (Erotimatiko) </p> </entry> <entry><p>U+037E </p> </entry> <entry><p>0x3B </p> </entry> <entry><p>; SEMICOLON </p> </entry> </row> <row><entry><p>Ā LATIN CAPITAL LETTER A WITH MACRON </p> </entry> <entry><p>U+0100 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ă LATIN CAPITAL LETTER A WITH BREVE </p> </entry> <entry><p>U+0102 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ą LATIN CAPITAL LETTER A WITH OGONEK </p> </entry> <entry><p>U+0104 </p> </entry> <entry><p>0x41 </p> </entry> <entry><p>A LATIN CAPITAL LETTER A </p> </entry> </row> <row><entry><p>Ć LATIN CAPITAL LETTER C WITH ACUTE </p> </entry> <entry><p>U+0106 </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX </p> </entry> <entry><p>U+0108 </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE </p> </entry> <entry><p>U+010A </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Č LATIN CAPITAL LETTER C WITH CARON </p> </entry> <entry><p>U+010C </p> </entry> <entry><p>0x43 </p> </entry> <entry><p>C LATIN CAPITAL LETTER C </p> </entry> </row> <row><entry><p>Ð LATIN CAPITAL LETTER ETH (Icelandic) </p> </entry> <entry><p>U+00D0 </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Ď LATIN CAPITAL LETTER D WITH CARON </p> </entry> <entry><p>U+010E </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Đ LATIN CAPITAL LETTER D WITH STROKE </p> </entry> <entry><p>U+0110 </p> </entry> <entry><p>0x44 </p> </entry> <entry><p>D LATIN CAPITAL LETTER D </p> </entry> </row> <row><entry><p>Ē LATIN CAPITAL LETTER E WITH MACRON </p> </entry> <entry><p>U+0112 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ĕ LATIN CAPITAL LETTER E WITH BREVE </p> </entry> <entry><p>U+0114 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ė LATIN CAPITAL LETTER E WITH DOT ABOVE </p> </entry> <entry><p>U+0116 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ę LATIN CAPITAL LETTER E WITH OGONEK </p> </entry> <entry><p>U+0118 </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ě LATIN CAPITAL LETTER E WITH CARON </p> </entry> <entry><p>U+011A </p> </entry> <entry><p>0x45 </p> </entry> <entry><p>E LATIN CAPITAL LETTER E </p> </entry> </row> <row><entry><p>Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX </p> </entry> <entry><p>U+011C </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ğ LATIN CAPITAL LETTER G WITH BREVE </p> </entry> <entry><p>U+011E </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE </p> </entry> <entry><p>U+0120 </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ģ LATIN CAPITAL LETTER G WITH CEDILLA </p> </entry> <entry><p>U+0122 </p> </entry> <entry><p>0x47 </p> </entry> <entry><p>G LATIN CAPITAL LETTER G </p> </entry> </row> <row><entry><p>Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX </p> </entry> <entry><p>U+0124 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ħ LATIN CAPITAL LETTER H WITH STROKE </p> </entry> <entry><p>U+0126 </p> </entry> <entry><p>0x48 </p> </entry> <entry><p>H LATIN CAPITAL LETTER H </p> </entry> </row> <row><entry><p>Ĩ LATIN CAPITAL LETTER I WITH TILDE </p> </entry> <entry><p>U+0128 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ī LATIN CAPITAL LETTER I WITH MACRON </p> </entry> <entry><p>U+012A </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ĭ LATIN CAPITAL LETTER I WITH BREVE </p> </entry> <entry><p>U+012C </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Į LATIN CAPITAL LETTER I WITH OGONEK </p> </entry> <entry><p>U+012E </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>İ LATIN CAPITAL LETTER I WITH DOT ABOVE </p> </entry> <entry><p>U+0130 </p> </entry> <entry><p>0x49 </p> </entry> <entry><p>I LATIN CAPITAL LETTER I </p> </entry> </row> <row><entry><p>Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX </p> </entry> <entry><p>U+0134 </p> </entry> <entry><p>0x4A </p> </entry> <entry><p>J LATIN CAPITAL LETTER J </p> </entry> </row> <row><entry><p>Ķ LATIN CAPITAL LETTER K WITH CEDILLA </p> </entry> <entry><p>U+0136 </p> </entry> <entry><p>0x4B </p> </entry> <entry><p>K LATIN CAPITAL LETTER K </p> </entry> </row> <row><entry><p>Ĺ LATIN CAPITAL LETTER L WITH ACUTE </p> </entry> <entry><p>U+0139 </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ļ LATIN CAPITAL LETTER L WITH CEDILLA </p> </entry> <entry><p>U+013B </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ľ LATIN CAPITAL LETTER L WITH CARON </p> </entry> <entry><p>U+013D </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT </p> </entry> <entry><p>U+013F </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ł LATIN CAPITAL LETTER L WITH STROKE </p> </entry> <entry><p>U+0141 </p> </entry> <entry><p>0x4C </p> </entry> <entry><p>L LATIN CAPITAL LETTER L </p> </entry> </row> <row><entry><p>Ń LATIN CAPITAL LETTER N WITH ACUTE </p> </entry> <entry><p>U+0143 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ņ LATIN CAPITAL LETTER N WITH CEDILLA </p> </entry> <entry><p>U+0145 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ň LATIN CAPITAL LETTER N WITH CARON </p> </entry> <entry><p>U+0147 </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ŋ LATIN CAPITAL LETTER ENG (Sami) </p> </entry> <entry><p>U+014A </p> </entry> <entry><p>0x4E </p> </entry> <entry><p>N LATIN CAPITAL LETTER N </p> </entry> </row> <row><entry><p>Ō LATIN CAPITAL LETTER O WITH MACRON </p> </entry> <entry><p>U+014C </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ŏ LATIN CAPITAL LETTER O WITH BREVE </p> </entry> <entry><p>U+014E </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Œ LATIN CAPITAL LIGATURE OE </p> </entry> <entry><p>U+0152 </p> </entry> <entry><p>0x4F </p> </entry> <entry><p>O LATIN CAPITAL LETTER O </p> </entry> </row> <row><entry><p>Ŕ LATIN CAPITAL LETTER R WITH ACUTE </p> </entry> <entry><p>U+0154 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ŗ LATIN CAPITAL LETTER R WITH CEDILLA </p> </entry> <entry><p>U+0156 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ř LATIN CAPITAL LETTER R WITH CARON </p> </entry> <entry><p>U+0158 </p> </entry> <entry><p>0x52 </p> </entry> <entry><p>R LATIN CAPITAL LETTER R </p> </entry> </row> <row><entry><p>Ś LATIN CAPITAL LETTER S WITH ACUTE </p> </entry> <entry><p>U+015A </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX </p> </entry> <entry><p>U+015C </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Ş LATIN CAPITAL LETTER S WITH CEDILLA * </p> </entry> <entry><p>U+015E </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Š LATIN CAPITAL LETTER S WITH CARON </p> </entry> <entry><p>U+0160 </p> </entry> <entry><p>0x53 </p> </entry> <entry><p>S LATIN CAPITAL LETTER S </p> </entry> </row> <row><entry><p>Þ LATIN CAPITAL LETTER THORN (Icelandic) </p> </entry> <entry><p>U+00DE </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ţ LATIN CAPITAL LETTER T WITH CEDILLA * </p> </entry> <entry><p>U+0162 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ť LATIN CAPITAL LETTER T WITH CARON </p> </entry> <entry><p>U+0164 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ŧ LATIN CAPITAL LETTER T WITH STROKE </p> </entry> <entry><p>U+0166 </p> </entry> <entry><p>0x54 </p> </entry> <entry><p>T LATIN CAPITAL LETTER T </p> </entry> </row> <row><entry><p>Ũ LATIN CAPITAL LETTER U WITH TILDE </p> </entry> <entry><p>U+0168 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ū LATIN CAPITAL LETTER U WITH MACRON </p> </entry> <entry><p>U+016A </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ŭ LATIN CAPITAL LETTER U WITH BREVE </p> </entry> <entry><p>U+016C </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ů LATIN CAPITAL LETTER U WITH RING ABOVE </p> </entry> <entry><p>U+016E </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ų LATIN CAPITAL LETTER U WITH OGONEK </p> </entry> <entry><p>U+0172 </p> </entry> <entry><p>0x55 </p> </entry> <entry><p>U LATIN CAPITAL LETTER U </p> </entry> </row> <row><entry><p>Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX </p> </entry> <entry><p>U+0174 </p> </entry> <entry><p>0x57 </p> </entry> <entry><p>W LATIN CAPITAL LETTER W </p> </entry> </row> <row><entry><p>Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX </p> </entry> <entry><p>U+0176 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS </p> </entry> <entry><p>U+0178 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>Ź LATIN CAPITAL LETTER Z WITH ACUTE </p> </entry> <entry><p>U+0179 </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE </p> </entry> <entry><p>U+017B </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ž LATIN CAPITAL LETTER Z WITH CARON </p> </entry> <entry><p>U+017D </p> </entry> <entry><p>0x5A </p> </entry> <entry><p>Z LATIN CAPITAL LETTER Z </p> </entry> </row> <row><entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> <entry><p>U+00D6 </p> </entry> <entry><p>0x5C </p> </entry> <entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0150 </p> </entry> <entry><p>0x5C </p> </entry> <entry><p>Ö LATIN CAPITAL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0170 </p> </entry> <entry><p>0x5E </p> </entry> <entry><p>Ü LATIN CAPITAL LETTER U WITH DIAERESIS </p> </entry> </row> <row><entry><p>ā LATIN SMALL LETTER A WITH MACRON </p> </entry> <entry><p>U+0101 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ă LATIN SMALL LETTER A WITH BREVE </p> </entry> <entry><p>U+0103 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ą LATIN SMALL LETTER A WITH OGONEK </p> </entry> <entry><p>U+0105 </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ª FEMININE ORDINAL INDICATOR </p> </entry> <entry><p>U+00AA </p> </entry> <entry><p>0x61 </p> </entry> <entry><p>a LATIN SMALL LETTER A </p> </entry> </row> <row><entry><p>ć LATIN SMALL LETTER C WITH ACUTE </p> </entry> <entry><p>U+0107 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX </p> </entry> <entry><p>U+0109 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ċ LATIN SMALL LETTER C WITH DOT ABOVE </p> </entry> <entry><p>U+010B </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>č LATIN SMALL LETTER C WITH CARON </p> </entry> <entry><p>U+010D </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>¢ CENT SIGN </p> </entry> <entry><p>U+00A2 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>© COPYRIGHT SIGN </p> </entry> <entry><p>U+00A9 </p> </entry> <entry><p>0x63 </p> </entry> <entry><p>c LATIN SMALL LETTER C </p> </entry> </row> <row><entry><p>ð LATIN SMALL LETTER ETH (Icelandic) </p> </entry> <entry><p>U+00F0 </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>ď LATIN SMALL LETTER D WITH CARON </p> </entry> <entry><p>U+010F </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>đ LATIN SMALL LETTER D WITH STROKE </p> </entry> <entry><p>U+0111 </p> </entry> <entry><p>0x64 </p> </entry> <entry><p>d LATIN SMALL LETTER D </p> </entry> </row> <row><entry><p>ē LATIN SMALL LETTER E WITH MACRON </p> </entry> <entry><p>U+0113 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ĕ LATIN SMALL LETTER E WITH BREVE </p> </entry> <entry><p>U+0115 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ė LATIN SMALL LETTER E WITH DOT ABOVE </p> </entry> <entry><p>U+0117 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ę LATIN SMALL LETTER E WITH OGONEK </p> </entry> <entry><p>U+0119 </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ě LATIN SMALL LETTER E WITH CARON </p> </entry> <entry><p>U+011B </p> </entry> <entry><p>0x65 </p> </entry> <entry><p>e LATIN SMALL LETTER E </p> </entry> </row> <row><entry><p>ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX </p> </entry> <entry><p>U+011D </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ğ LATIN SMALL LETTER G WITH BREVE </p> </entry> <entry><p>U+011F </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ġ LATIN SMALL LETTER G WITH DOT ABOVE </p> </entry> <entry><p>U+0121 </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ģ LATIN SMALL LETTER G WITH CEDILLA </p> </entry> <entry><p>U+0123 </p> </entry> <entry><p>0x67 </p> </entry> <entry><p>g LATIN SMALL LETTER G </p> </entry> </row> <row><entry><p>ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX </p> </entry> <entry><p>U+0125 </p> </entry> <entry><p>0x68 </p> </entry> <entry><p>h LATIN SMALL LETTER H </p> </entry> </row> <row><entry><p>ħ LATIN SMALL LETTER H WITH STROKE </p> </entry> <entry><p>U+0127 </p> </entry> <entry><p>0x68 </p> </entry> <entry><p>h LATIN SMALL LETTER H </p> </entry> </row> <row><entry><p>ĩ LATIN SMALL LETTER I WITH TILDE </p> </entry> <entry><p>U+0129 </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ī LATIN SMALL LETTER I WITH MACRON </p> </entry> <entry><p>U+012B </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ĭ LATIN SMALL LETTER I WITH BREVE </p> </entry> <entry><p>U+012D </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>į LATIN SMALL LETTER I WITH OGONEK </p> </entry> <entry><p>U+012F </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ı LATIN SMALL LETTER DOTLESS I </p> </entry> <entry><p>U+0131 </p> </entry> <entry><p>0x69 </p> </entry> <entry><p>i LATIN SMALL LETTER I </p> </entry> </row> <row><entry><p>ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX </p> </entry> <entry><p>U+0135 </p> </entry> <entry><p>0x6A </p> </entry> <entry><p>j LATIN SMALL LETTER J </p> </entry> </row> <row><entry><p>ķ LATIN SMALL LETTER K WITH CEDILLA </p> </entry> <entry><p>U+0137 </p> </entry> <entry><p>0x6B </p> </entry> <entry><p>k LATIN SMALL LETTER K </p> </entry> </row> <row><entry><p>ĸ LATIN SMALL LETTER KRA (Greenlandic) </p> </entry> <entry><p>U+0138 </p> </entry> <entry><p>0x6B </p> </entry> <entry><p>k LATIN SMALL LETTER K </p> </entry> </row> <row><entry><p>ĺ LATIN SMALL LETTER L WITH ACUTE </p> </entry> <entry><p>U+013A </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ļ LATIN SMALL LETTER L WITH CEDILLA </p> </entry> <entry><p>U+013C </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ľ LATIN SMALL LETTER L WITH CARON </p> </entry> <entry><p>U+013E </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ŀ LATIN SMALL LETTER L WITH MIDDLE DOT </p> </entry> <entry><p>U+0140 </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ł LATIN SMALL LETTER L WITH STROKE </p> </entry> <entry><p>U+0142 </p> </entry> <entry><p>0x6C </p> </entry> <entry><p>l LATIN SMALL LETTER L </p> </entry> </row> <row><entry><p>ń LATIN SMALL LETTER N WITH ACUTE </p> </entry> <entry><p>U+0144 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ņ LATIN SMALL LETTER N WITH CEDILLA </p> </entry> <entry><p>U+0146 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ň LATIN SMALL LETTER N WITH CARON </p> </entry> <entry><p>U+0148 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ʼn LATIN SMALL LETTER N PRECEDED BY APOSTROPHE </p> </entry> <entry><p>U+0149 </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p> ŋ LATIN SMALL LETTER ENG (Sami) </p> </entry> <entry><p>U+014B </p> </entry> <entry><p>0x6E </p> </entry> <entry><p>n LATIN SMALL LETTER N </p> </entry> </row> <row><entry><p>ō LATIN SMALL LETTER O WITH MACRON </p> </entry> <entry><p>U+014D </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ŏ LATIN SMALL LETTER O WITH BREVE </p> </entry> <entry><p>U+014F </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>° DEGREE SIGN </p> </entry> <entry><p>U+00B0 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>º MASCULINE ORDINAL INDICATOR </p> </entry> <entry><p>U+00BA </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>œ LATIN SMALL LIGATURE OE </p> </entry> <entry><p>U+0153 </p> </entry> <entry><p>0x6F </p> </entry> <entry><p>o LATIN SMALL LETTER O </p> </entry> </row> <row><entry><p>ŕ LATIN SMALL LETTER R WITH ACUTE </p> </entry> <entry><p>U+0155 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ŗ LATIN SMALL LETTER R WITH CEDILLA </p> </entry> <entry><p>U+0157 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ř LATIN SMALL LETTER R WITH CARON </p> </entry> <entry><p>U+0159 </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>® REGISTERED SIGN </p> </entry> <entry><p>U+00AE </p> </entry> <entry><p>0x72 </p> </entry> <entry><p>r LATIN SMALL LETTER R </p> </entry> </row> <row><entry><p>ś LATIN SMALL LETTER S WITH ACUTE </p> </entry> <entry><p>U+015B </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX </p> </entry> <entry><p>U+015D </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>ş LATIN SMALL LETTER S WITH CEDILLA * </p> </entry> <entry><p>U+015F </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>š LATIN SMALL LETTER S WITH CARON </p> </entry> <entry><p>U+0161 </p> </entry> <entry><p>0x73 </p> </entry> <entry><p>s LATIN SMALL LETTER S </p> </entry> </row> <row><entry><p>þ LATIN SMALL LETTER THORN (Icelandic) </p> </entry> <entry><p>U+00FE </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ţ LATIN SMALL LETTER T WITH CEDILLA * </p> </entry> <entry><p>U+0163 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ť LATIN SMALL LETTER T WITH CARON </p> </entry> <entry><p>U+0165 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ŧ LATIN SMALL LETTER T WITH STROKE </p> </entry> <entry><p>U+0167 </p> </entry> <entry><p>0x74 </p> </entry> <entry><p>t LATIN SMALL LETTER T </p> </entry> </row> <row><entry><p>ũ LATIN SMALL LETTER U WITH TILDE </p> </entry> <entry><p>U+0169 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ū LATIN SMALL LETTER U WITH MACRON </p> </entry> <entry><p>U+016B </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ŭ LATIN SMALL LETTER U WITH BREVE </p> </entry> <entry><p>U+016D </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ů LATIN SMALL LETTER U WITH RING ABOVE </p> </entry> <entry><p>U+016F </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ų LATIN SMALL LETTER U WITH OGONEK </p> </entry> <entry><p>U+0173 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>µ MICRO SIGN </p> </entry> <entry><p>U+00B5 </p> </entry> <entry><p>0x75 </p> </entry> <entry><p>u LATIN SMALL LETTER U </p> </entry> </row> <row><entry><p>ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX </p> </entry> <entry><p>U+0175 </p> </entry> <entry><p>0x77 </p> </entry> <entry><p>w LATIN SMALL LETTER W </p> </entry> </row> <row><entry><p>ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX </p> </entry> <entry><p>U+0177 </p> </entry> <entry><p>0x79 </p> </entry> <entry><p>y LATIN SMALL LETTER Y </p> </entry> </row> <row><entry><p>ź LATIN SMALL LETTER Z WITH ACUTE </p> </entry> <entry><p>U+017A </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p> ż LATIN SMALL LETTER Z WITH DOT ABOVE </p> </entry> <entry><p>U+017C </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p>ž LATIN SMALL LETTER Z WITH CARON </p> </entry> <entry><p>U+017E </p> </entry> <entry><p>0x7A </p> </entry> <entry><p>z LATIN SMALL LETTER Z </p> </entry> </row> <row><entry><p>ő LATIN SMALL LETTER O WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0151 </p> </entry> <entry><p>0x7C </p> </entry> <entry><p>ö LATIN SMALL LETTER O WITH DIAERESIS </p> </entry> </row> <row><entry><p>ű LATIN SMALL LETTER U WITH DOUBLE ACUTE </p> </entry> <entry><p>U+0171 </p> </entry> <entry><p>0x7E </p> </entry> <entry><p>ü LATIN SMALL LETTER U WITH DIAERESIS </p> </entry> </row> </tbody> </tgroup> </table> <p>Table 2 lists the 9 characters in Lossy Character 1 supported by Standard SMS Converter but not by Extended SMS Converter. </p> <p>Table 2 </p> <table id="GUID-B6A56A5A-12EB-5AA0-9541-E7916F6509C6"><tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><tbody><row><entry><p> <b>Character</b>  </p> </entry> <entry><p> <b>Unicode</b>  </p> </entry> <entry><p> <b>GSM</b>  </p> </entry> <entry><p> <b>Converted Character</b>  </p> </entry> </row> <row><entry><p>ϕ GREEK PHI SYMBOL </p> </entry> <entry><p>0x03D5 </p> </entry> <entry><p>0x12 </p> </entry> <entry><p>Φ GREEK CAPITAL LETTER PHI </p> </entry> </row> <row><entry><p>Ω OHM SIGN </p> </entry> <entry><p>0x2126 </p> </entry> <entry><p>0x15 </p> </entry> <entry><p>Ω GREEK CAPITAL LETTER OMEGA </p> </entry> </row> <row><entry><p>∏ N-ARY PRODUCT </p> </entry> <entry><p>0x220F </p> </entry> <entry><p>0x16 </p> </entry> <entry><p>Π GREEK CAPITAL LETTER PI </p> </entry> </row> <row><entry><p>∑ N-ARY SUMMATION </p> </entry> <entry><p>0x2211 </p> </entry> <entry><p>0x18 </p> </entry> <entry><p>Σ GREEK CAPITAL LETTER SIGMA </p> </entry> </row> <row><entry><p>ϑ GREEK THETA SYMBOL </p> </entry> <entry><p>0x03D1 </p> </entry> <entry><p>0x19 </p> </entry> <entry><p>Θ GREEK CAPITAL LETTER THETA </p> </entry> </row> <row><entry><p>ϐ GREEK BETA SYMBOL </p> </entry> <entry><p>0x03D0 </p> </entry> <entry><p>0x42 </p> </entry> <entry><p>B LATIN CAPITAL LETTER B </p> </entry> </row> <row><entry><p>ϒ GREEK UPSILON WITH HOOK SYMBOL </p> </entry> <entry><p>0x03D2 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL </p> </entry> <entry><p>0x03D3 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> <row><entry><p>ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL </p> </entry> <entry><p>0x03D4 </p> </entry> <entry><p>0x59 </p> </entry> <entry><p>Y LATIN CAPITAL LETTER Y </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>See also</title> <p><xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS Encodings and Converters Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e357005_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B12AAA82-0534-5FBB-B9BA-33056B988575_d0e363085_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071-master.png has changed
Binary file Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e53053_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B12EEEF5-311B-49F8-A2DA-D6EF6A705071_d0e58775_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e213742_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e217479_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9" xml:lang="en"><title>Presentation
-of text</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-D15030E7-08E0-4FBD-AA00-90C63DE0A09B"><title>Alignment</title><p>The
-default text alignment in left-to-right languages is on the left. There are
-only a few exceptions to this in specific cases, for example, soft indicators
-in the Idle state, which are right-aligned.</p><p>In right-to-left UI languages,
-the default text alignment is on the right.</p></section>
-<section id="GUID-A95C4D65-947E-4F69-B165-7CE080CF53CD"><title>Truncation</title><p>When
-a text does not fit into the view where it is displayed, it should be truncated.
-By default, texts are truncated from the end, and ellipsis (...) is displayed
-at the end of the truncated text as an indication. There are two exceptions
-to this main rule:</p><ul>
-<li><p>Phone numbers are truncated from the beginning, because the first digits
-of a phone number are usually considered less important than the numbers at
-the end.</p></li>
-<li><p>This general rule may be overridden in certain detailed components,
-where the latter part of the text is more differentiating than the beginning.
-Such might be, for example, queries to select an email address.</p></li>
-</ul></section>
-<section id="GUID-B2BC7CED-1704-4D90-A5A5-7FB434BE3704"><title>Marquee scrolling</title><p>When
-a text does not fit to a list view, the list text can be horizontally scrolling.
-Marquee scrolling should be used for texts that are not generated by the phone
-and for which truncation is not desired for some reason. For example, a Web
-address may not fit to one row of text in a list and it may be important to
-see the whole address.</p><p>Scrolling is done only when the item is highlighted.
-The text is scrolled in only one direction, and it does not loop.</p></section>
-<section id="GUID-6541BB9F-7232-47F3-ACFA-AEC260CA3EA3"><title>Content zooming</title><p>Content
-zooming is supported in the various lists, forms and settings in the Symbian
-UI. In this way, users can either use smaller font sizes to fit more information
-on the screen, or they can increase the text size if necessary. The user can
-choose between three different zoom levels using General Settings.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B16A0370-F18F-4035-B3D6-ED550D8D68F9" xml:lang="en"><title>Presentation
+of text</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D15030E7-08E0-4FBD-AA00-90C63DE0A09B"><title>Alignment</title><p>The
+default text alignment in left-to-right languages is on the left. There are
+only a few exceptions to this in specific cases, for example, soft indicators
+in the home screen, which are right-aligned.</p><p>In right-to-left UI languages,
+the default text alignment is on the right.</p></section>
+<section id="GUID-A95C4D65-947E-4F69-B165-7CE080CF53CD"><title>Truncation</title><p>When
+a text does not fit into the view where it is displayed, it should be truncated.
+By default, texts are truncated from the end, and ellipsis (...) is displayed
+at the end of the truncated text as an indication. There are two exceptions
+to this main rule:</p><ul>
+<li><p>Phone numbers are truncated from the beginning, because the first digits
+of a phone number are usually considered less important than the numbers at
+the end.</p></li>
+<li><p>This general rule may be overridden in certain detailed components,
+where the latter part of the text is more differentiating than the beginning.
+Such might be, for example, queries to select an email address.</p></li>
+</ul></section>
+<section id="GUID-B2BC7CED-1704-4D90-A5A5-7FB434BE3704"><title>Marquee scrolling</title><p>When
+a text does not fit to a list view, the list text can be horizontally scrolling.
+Marquee scrolling should be used for texts that are not generated by the phone
+and for which truncation is not desired for some reason. For example, a Web
+address may not fit to one row of text in a list and it may be important to
+see the whole address.</p><p>Scrolling is done only when the item is highlighted.
+The text is scrolled in only one direction, and it does not loop.</p></section>
+<section id="GUID-6541BB9F-7232-47F3-ACFA-AEC260CA3EA3"><title>Content zooming</title><p>Content
+zooming is supported in the various lists, forms and settings in the Symbian
+UI. In this way, users can either use smaller font sizes to fit more information
+on the screen, or they can increase the text size if necessary. The user can
+choose between three different zoom levels using General Settings.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e341463_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e347660_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B172B71E-10DE-5AC6-9F10-A7EC74CE0B7F-master.png has changed
Binary file Symbian3/SDK/Source/GUID-B172B71E-10DE-5AC6-9F10-A7EC74CE0B7F_d0e382778_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,210 +1,210 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8" xml:lang="en"><title>Display
-Control and Mapping in the Window Server Client</title><shortdesc>ScreenPlay provides support for externally connected displays,
-such as TV-out. Previous versions of Symbian and the non-ScreenPlay variant
-consider the size of each display to be fixed, assuming it to be built into
-the phone. However, for High-Definition Multimedia Interface (HDMI) and composite
-video connectors, there is a range of resolutions that can change dynamically.
-ScreenPlay provides an optional feature that supports switching between resolutions
-at runtime and notifies Window Server clients when there are changes to the
-resolution and connectedness. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This topic builds on the introduction in <xref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita">Dynamic
-Resolution Switching</xref>. </p>
-<p>The <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> Window Server client-side API has
-a <codeph>GetInterface()</codeph> function, which you can use to return pointers
-to the <codeph>MDisplayControl</codeph> and <codeph>MDisplayMapping</codeph> interfaces
-or null if the interface is not supported. For example: </p>
-<codeblock id="GUID-1F87BCBD-F4FB-5C20-8B94-01088F79CD73" xml:space="preserve">// Establish connection and get display control interface.
-class CWindowClient : public CBase
-    {
-    ...
-    RWsSession iSession;
-    CWsScreenDevice* iScreenDevice;
-    MDisplayControl* iDisplayControl;
-    MDisplayMapping* iDisplayMapping;
-    TWsDisplayChangedEvent iLastEvent;
-    }
-    
-void CWindowClient::ConstructL(TInt aDisplayNumber)
-    {
-    User::LeaveIfError(iSession.Connect());
-    iScreenDevice = new(ELeave) CWsScreenDevice(iSession);
-    User::LeaveIfError(iScreenDevice-&gt;Construct(aDisplayNumber));
-    iDisplayControl = iScreenDevice-&gt;GetInterface(EDisplayControl);
-    User::LeaveIfNull(iDisplayControl);
-    iDisplayMapping = iScreenDevice-&gt;GetInterface(EDisplayMapping);
-    User::LeaveIfNull(iDisplayMapping);
-    }</codeblock>
-<p>In addition, <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> provides the <codeph>IsCurrentModeDynamic()</codeph> and <codeph>IsModeDynamic()</codeph> functions
-for querying whether the current screen mode and a given screen mode are dynamic.
-If a screen mode is dynamic, the application extent always fills the full
-UI space and the area returned by <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref> always
-matches the actual resolution that is in use. However, the <codeph>MDisplayMapping</codeph> interface
-also provides features that enable you to draw outside the application UI
-extent. </p>
-<section id="GUID-00B91456-0C70-468E-8974-17DE3836849C"> <title>MDisplayControl</title> <p>The <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface
-provides Window Server clients with functions for setting and getting the
-current display configuration, getting a list of available resolutions and
-enabling display change event notifications (<codeph>EEventDisplayChanged</codeph>).
-The following diagram shows the class hierarchy. </p> <fig id="GUID-F9D95387-151F-5725-8BDD-C44A3D333A97">
-<title> Display control class diagram            </title>
-<image href="GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e193491_href.png" placement="inline"/>
-</fig>  <p>Once you have obtained
-the <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface, you can call <codeph>GetResolutions()</codeph> on
-it. For example: </p> <codeblock id="GUID-C82D0166-0E29-5F90-8087-800EDDE2D895" xml:space="preserve">// Get available resolutions
-RArray&lt;MDisplayControl::TResolution&gt; resolutions;
-User::LeaveIfError(iDisplayControl-&gt;GetResolutions(resolutions));
-          
-// Use resolution list.
-       
-</codeblock> <p>You can use the <codeph>EnableDisplayChangedEvents()</codeph> function
-to register for notifications of the <codeph>EEventDisplayChanged</codeph> event.
-This is generated when the display device is attached or detached or there
-is a change in the current resolution, the resolution list or the current
-configuration. For example, this can be generated by a render stage or the
-composition engine in response to a hardware event (such as an external display
-being connected or disconnected). The event is sometimes, but not always,
-triggered by a change in the screen mode. </p> <p>There are therefore two
-aspects to the event in that it can be triggered by a display change or a
-configuration change. Typically you check the event against the previous one
-to see what has changed. </p> <p>The following table provides a summary of
-how this event compares to <codeph>EEventScreenDeviceChanged</codeph>. </p> <table id="GUID-50D8232A-E394-590F-A762-79567E4424C3">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Action</entry>
-<entry><codeph>EEventScreenDeviceChanged</codeph> </entry>
-<entry><codeph>EEventDisplayChanged</codeph> </entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Screen mode change </p> </entry>
-<entry><p>Always triggers this event </p> </entry>
-<entry><p>Triggers this event only if it causes a change in the configuration. </p> </entry>
-</row>
-<row>
-<entry><p>Display configuration change </p> </entry>
-<entry><p>Generally does not trigger this event </p> </entry>
-<entry><p>Generally triggers this event </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>The following example first registers for notification of <codeph>EEventDisplayChanged</codeph> events
-and then changes the screen mode. The second part illustrates a simplified
-handler for the events. It demonstrates checking the event against the previous
-one to see whether the resolution or configuration has changed. </p> <codeblock id="GUID-E78D2CA8-4C1E-5E19-92EC-7E87B010E5BE" xml:space="preserve">// Establish connection and get display control interface.
-
-iDisplayControl-&gt;EnableDisplayChangeEvents(ETrue);
-
-iScreenDevice-&gt;SetScreenMode(2);    // Number depends on WSINI.INI config.
-iScreenDevice-&gt;SetAppScreenMode(2); // Ensure application windows are
-                                    // shown in the new mode.
-...
-    
-// Simplified event handler.
-TWsEvent event;
-iSession.GetEvent(event);
-    
-switch (event.Type())
-    {
-    case EEventScreenDeviceChanged:
-        {
-        TSize screenSize = iScreenDevice-&gt;SizeInPixels();
-        // Re-layout windows for new application screen dimensions
-        }
-        break;
-    case Redraw:
-        {
-        // Draw content of window
-        }
-        break;
-    case EEventDisplayChanged:
-        {
-        TWsDisplayChangedEvent* newEvent;
-        newEvent = event.DisplayChanged();
-
-        if (newEvent-&gt;iResolutionListChangeId !=
-            iLastEvent.iResolutionListChangeId)
-            {
-            // ...
-            }
-        
-        if (newEvent-&gt;iConfigurationChangeId !=
-            iLastEvent.iConfigurationChangeId)
-            {
-            TDisplayConfiguration config;
-            User::LeaveIfError(
-                iDisplayControl-&gt;GetConfiguration(config)));
-            // Handle updated configuration
-            // May be entirely handled by screen device changed event
-            }
-        iLastEvent = *newEvent;
-        }
-        break;
-    }</codeblock> <p>Here is an example of setting a new display resolution: </p> <codeblock id="GUID-B9C0254D-3990-5B41-9F63-1A81D30A3FB6" xml:space="preserve">TDisplayConfiguration config;
-config.SetResolution(TSize(1280, 720));
-config.SetRotation(MDisplayControl::ERotation180);
-          
-User::LeaveIfError(iDisplayControl-&gt;SetConfiguration(config));
-</codeblock> </section>
-<section id="GUID-EF610977-6881-4542-AEFF-C562A7022B21"> <title>MDisplayMapping</title> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface
-enables Window Server clients to map between coordinate spaces, allowing for
-translation and scaling of coordinates. For example, suppose an application
-is to draw a virtual keyboard outside of the application's extent. This requires
-knowing the extent of both the application and the full UI area. The application
-can use the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface to get this information,
-so that the virtual keyboard can be drawn within the full UI area but outside
-of the application's extent. </p> <fig id="GUID-55BD49C6-9A51-53A7-A587-29A151FACF6B">
-<title> Display mapping class diagram            </title>
-<image href="GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e193629_href.png" placement="inline"/>
-</fig> <p> </p> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface is very
-flexible. UIDs are used to signify the application UI coordinate space, the
-full UI space, the composition/display coordinate space (which may be a different
-scale to the UI coordinate space) and the Direct Screen Access (DSA) space
-(which may match the full UI space, or be offset relative to the application
-UI space). </p> <p>The <codeph>MapCoordinates()</codeph> function
-takes a rectangle, a source space and a target space and returns the correspondingly
-mapped rectangle in the target space. To map a point, use a rectangle with
-a width and height of one pixel, because the scaling between UI space and
-composition/display space may enlarge (or sometimes reduce) the rectangle’s
-size. </p> <p>For example, consider the following diagram, in which the outer
-rectangle represents the display area and the inner one represents the application
-space (screen mode). </p> <fig id="GUID-6935A7BE-C651-5582-8E2A-11A18CDD531F">
-<title>Display area and application extent            </title>
-<image href="GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e193658_href.png" placement="inline"/>
-</fig> <p>The display resolution is 1280 x 720, the application size is 176
-x 208 and a virtual resolution of 426 x 240 has been introduced, which gives
-a scaling factor of three in each direction. All pixels are approximately
-square, for simplicity. The application area has been centered in the display,
-giving an <i>X</i> offset of (426-176)/2 and a <i>Y</i> offset of (240-208)/2,
-or (125, 16). </p> <p>To put a window on screen to fill the display, create
-a rectangle positioned at (0,0) with a size of the current resolution (426
-x 240). Then pass this in with a source space of the full UI and target space
-of the application. This results in a rectangle of the same size but at offset
-(125,16). </p> <p>In addition, to use an external surface at the real resolution,
-pass this rectangle in with a source space of the application UI and a target
-space of the composition/display. This results in a rectangle with size of
-1280 x 720, which you can then use when creating the surface. Because the
-UI surface and external surface are scaled independently, the UI memory requirements
-can remain low, even with high resolution video, viewfinder and games. For
-an example code snippet, see <xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita">External
-Surfaces Overview</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita"><linktext>Window Server
-Client-Side Library                 Concepts</linktext></link>
-<link href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita"><linktext>Dynamic Resolution
-                Switching</linktext></link>
-<link href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita"><linktext>The wsini.ini
-File                 Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B1CB6374-2C2B-5D6C-9A7C-6E49D8F235B8" xml:lang="en"><title>Display
+Control and Mapping in the Window Server Client</title><shortdesc>ScreenPlay provides support for externally connected displays,
+such as TV-out. Previous versions of Symbian and the non-ScreenPlay variant
+consider the size of each display to be fixed, assuming it to be built into
+the phone. However, for High-Definition Multimedia Interface (HDMI) and composite
+video connectors, there is a range of resolutions that can change dynamically.
+ScreenPlay provides an optional feature that supports switching between resolutions
+at runtime and notifies Window Server clients when there are changes to the
+resolution and connectedness. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This topic builds on the introduction in <xref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita">Dynamic
+Resolution Switching</xref>. </p>
+<p>The <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> Window Server client-side API has
+a <codeph>GetInterface()</codeph> function, which you can use to return pointers
+to the <codeph>MDisplayControl</codeph> and <codeph>MDisplayMapping</codeph> interfaces
+or null if the interface is not supported. For example: </p>
+<codeblock id="GUID-1F87BCBD-F4FB-5C20-8B94-01088F79CD73" xml:space="preserve">// Establish connection and get display control interface.
+class CWindowClient : public CBase
+    {
+    ...
+    RWsSession iSession;
+    CWsScreenDevice* iScreenDevice;
+    MDisplayControl* iDisplayControl;
+    MDisplayMapping* iDisplayMapping;
+    TWsDisplayChangedEvent iLastEvent;
+    }
+    
+void CWindowClient::ConstructL(TInt aDisplayNumber)
+    {
+    User::LeaveIfError(iSession.Connect());
+    iScreenDevice = new(ELeave) CWsScreenDevice(iSession);
+    User::LeaveIfError(iScreenDevice-&gt;Construct(aDisplayNumber));
+    iDisplayControl = iScreenDevice-&gt;GetInterface(EDisplayControl);
+    User::LeaveIfNull(iDisplayControl);
+    iDisplayMapping = iScreenDevice-&gt;GetInterface(EDisplayMapping);
+    User::LeaveIfNull(iDisplayMapping);
+    }</codeblock>
+<p>In addition, <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref> provides the <codeph>IsCurrentModeDynamic()</codeph> and <codeph>IsModeDynamic()</codeph> functions
+for querying whether the current screen mode and a given screen mode are dynamic.
+If a screen mode is dynamic, the application extent always fills the full
+UI space and the area returned by <xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita#GUID-30479BE3-296E-3B4D-914D-B080ABD733E4/GUID-8E1B5729-FD1C-3D4A-AC73-C6364E7D5BBF"><apiname>CWsScreenDevice::SizeInPixels()</apiname></xref> always
+matches the actual resolution that is in use. However, the <codeph>MDisplayMapping</codeph> interface
+also provides features that enable you to draw outside the application UI
+extent. </p>
+<section id="GUID-00B91456-0C70-468E-8974-17DE3836849C"> <title>MDisplayControl</title> <p>The <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface
+provides Window Server clients with functions for setting and getting the
+current display configuration, getting a list of available resolutions and
+enabling display change event notifications (<codeph>EEventDisplayChanged</codeph>).
+The following diagram shows the class hierarchy. </p> <fig id="GUID-F9D95387-151F-5725-8BDD-C44A3D333A97">
+<title> Display control class diagram            </title>
+<image href="GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e188429_href.png" placement="inline"/>
+</fig>  <p>Once you have obtained
+the <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface, you can call <codeph>GetResolutions()</codeph> on
+it. For example: </p> <codeblock id="GUID-C82D0166-0E29-5F90-8087-800EDDE2D895" xml:space="preserve">// Get available resolutions
+RArray&lt;MDisplayControl::TResolution&gt; resolutions;
+User::LeaveIfError(iDisplayControl-&gt;GetResolutions(resolutions));
+          
+// Use resolution list.
+       
+</codeblock> <p>You can use the <codeph>EnableDisplayChangedEvents()</codeph> function
+to register for notifications of the <codeph>EEventDisplayChanged</codeph> event.
+This is generated when the display device is attached or detached or there
+is a change in the current resolution, the resolution list or the current
+configuration. For example, this can be generated by a render stage or the
+composition engine in response to a hardware event (such as an external display
+being connected or disconnected). The event is sometimes, but not always,
+triggered by a change in the screen mode. </p> <p>There are therefore two
+aspects to the event in that it can be triggered by a display change or a
+configuration change. Typically you check the event against the previous one
+to see what has changed. </p> <p>The following table provides a summary of
+how this event compares to <codeph>EEventScreenDeviceChanged</codeph>. </p> <table id="GUID-50D8232A-E394-590F-A762-79567E4424C3">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Action</entry>
+<entry><codeph>EEventScreenDeviceChanged</codeph> </entry>
+<entry><codeph>EEventDisplayChanged</codeph> </entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Screen mode change </p> </entry>
+<entry><p>Always triggers this event </p> </entry>
+<entry><p>Triggers this event only if it causes a change in the configuration. </p> </entry>
+</row>
+<row>
+<entry><p>Display configuration change </p> </entry>
+<entry><p>Generally does not trigger this event </p> </entry>
+<entry><p>Generally triggers this event </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following example first registers for notification of <codeph>EEventDisplayChanged</codeph> events
+and then changes the screen mode. The second part illustrates a simplified
+handler for the events. It demonstrates checking the event against the previous
+one to see whether the resolution or configuration has changed. </p> <codeblock id="GUID-E78D2CA8-4C1E-5E19-92EC-7E87B010E5BE" xml:space="preserve">// Establish connection and get display control interface.
+
+iDisplayControl-&gt;EnableDisplayChangeEvents(ETrue);
+
+iScreenDevice-&gt;SetScreenMode(2);    // Number depends on WSINI.INI config.
+iScreenDevice-&gt;SetAppScreenMode(2); // Ensure application windows are
+                                    // shown in the new mode.
+...
+    
+// Simplified event handler.
+TWsEvent event;
+iSession.GetEvent(event);
+    
+switch (event.Type())
+    {
+    case EEventScreenDeviceChanged:
+        {
+        TSize screenSize = iScreenDevice-&gt;SizeInPixels();
+        // Re-layout windows for new application screen dimensions
+        }
+        break;
+    case Redraw:
+        {
+        // Draw content of window
+        }
+        break;
+    case EEventDisplayChanged:
+        {
+        TWsDisplayChangedEvent* newEvent;
+        newEvent = event.DisplayChanged();
+
+        if (newEvent-&gt;iResolutionListChangeId !=
+            iLastEvent.iResolutionListChangeId)
+            {
+            // ...
+            }
+        
+        if (newEvent-&gt;iConfigurationChangeId !=
+            iLastEvent.iConfigurationChangeId)
+            {
+            TDisplayConfiguration config;
+            User::LeaveIfError(
+                iDisplayControl-&gt;GetConfiguration(config)));
+            // Handle updated configuration
+            // May be entirely handled by screen device changed event
+            }
+        iLastEvent = *newEvent;
+        }
+        break;
+    }</codeblock> <p>Here is an example of setting a new display resolution: </p> <codeblock id="GUID-B9C0254D-3990-5B41-9F63-1A81D30A3FB6" xml:space="preserve">TDisplayConfiguration config;
+config.SetResolution(TSize(1280, 720));
+config.SetRotation(MDisplayControl::ERotation180);
+          
+User::LeaveIfError(iDisplayControl-&gt;SetConfiguration(config));
+</codeblock> </section>
+<section id="GUID-EF610977-6881-4542-AEFF-C562A7022B21"> <title>MDisplayMapping</title> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface
+enables Window Server clients to map between coordinate spaces, allowing for
+translation and scaling of coordinates. For example, suppose an application
+is to draw a virtual keyboard outside of the application's extent. This requires
+knowing the extent of both the application and the full UI area. The application
+can use the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface to get this information,
+so that the virtual keyboard can be drawn within the full UI area but outside
+of the application's extent. </p> <fig id="GUID-55BD49C6-9A51-53A7-A587-29A151FACF6B">
+<title> Display mapping class diagram            </title>
+<image href="GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e188567_href.png" placement="inline"/>
+</fig> <p> </p> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface is very
+flexible. UIDs are used to signify the application UI coordinate space, the
+full UI space, the composition/display coordinate space (which may be a different
+scale to the UI coordinate space) and the Direct Screen Access (DSA) space
+(which may match the full UI space, or be offset relative to the application
+UI space). </p> <p>The <codeph>MapCoordinates()</codeph> function
+takes a rectangle, a source space and a target space and returns the correspondingly
+mapped rectangle in the target space. To map a point, use a rectangle with
+a width and height of one pixel, because the scaling between UI space and
+composition/display space may enlarge (or sometimes reduce) the rectangle’s
+size. </p> <p>For example, consider the following diagram, in which the outer
+rectangle represents the display area and the inner one represents the application
+space (screen mode). </p> <fig id="GUID-6935A7BE-C651-5582-8E2A-11A18CDD531F">
+<title>Display area and application extent            </title>
+<image href="GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e188596_href.png" placement="inline"/>
+</fig> <p>The display resolution is 1280 x 720, the application size is 176
+x 208 and a virtual resolution of 426 x 240 has been introduced, which gives
+a scaling factor of three in each direction. All pixels are approximately
+square, for simplicity. The application area has been centered in the display,
+giving an <i>X</i> offset of (426-176)/2 and a <i>Y</i> offset of (240-208)/2,
+or (125, 16). </p> <p>To put a window on screen to fill the display, create
+a rectangle positioned at (0,0) with a size of the current resolution (426
+x 240). Then pass this in with a source space of the full UI and target space
+of the application. This results in a rectangle of the same size but at offset
+(125,16). </p> <p>In addition, to use an external surface at the real resolution,
+pass this rectangle in with a source space of the application UI and a target
+space of the composition/display. This results in a rectangle with size of
+1280 x 720, which you can then use when creating the surface. Because the
+UI surface and external surface are scaled independently, the UI memory requirements
+can remain low, even with high resolution video, viewfinder and games. For
+an example code snippet, see <xref href="GUID-495EA1C8-E95F-54AE-B4D1-0F463003C2D7.dita">External
+Surfaces Overview</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-1F9A47CE-7F4C-52BD-8823-25D5D1BEF42F.dita"><linktext>Window Server
+Client-Side Library                 Concepts</linktext></link>
+<link href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita"><linktext>Dynamic Resolution
+                Switching</linktext></link>
+<link href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita"><linktext>The wsini.ini
+File                 Reference</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,238 +1,238 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03" xml:lang="en"><title>How to
-construct and manipulate a doubly linked list</title><shortdesc>This document describes how to construct and use a doubly linked
-list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following code fragments show how a doubly linked list can be constructed
-and manipulated. The list consists of <codeph>CItem</codeph> objects. In this
-example, a <codeph>CItem</codeph> object can contain an item of text implemented
-as an <codeph>HBufC</codeph>. The <codeph>CItem</codeph> objects can form
-elements of a doubly linked list using the <codeph>iDlink</codeph> data member
-as the link object. </p>
-<p>The class is declared as:</p>
-<codeblock id="GUID-F98B0D2C-486A-59C5-B487-A0F1D7D022FD" xml:space="preserve">class CItem : public CBase
-    {
-public  :
-    static CItem* NewL(const TDesC&amp; aText);
-    static CItem* NewLC(const TDesC&amp; aText); 
-    virtual       ~CItem();
-public   :
-    static const  TInt iOffset;
-private  :
-    void          ConstructL(const TDesC&amp; aText);
-private  :
-    TDblQueLink  iDlink;
-    HBufC*       iText;
-    friend class CXy;
-    };</codeblock>
-<p>The <codeph>CItem</codeph> member functions are implemented as:</p>
-<codeblock id="GUID-1DAC73DB-A599-5BAC-AAB5-707BA89B8382" xml:space="preserve">const TInt CItem::iOffset = _FOFF(CItem,iDlink);</codeblock>
-<codeblock id="GUID-6FEA34D4-0937-56E3-ACA5-3912E1595511" xml:space="preserve">CItem* CItem::NewLC(const TDesC&amp; aText)
-    {
-    CItem* self = new (ELeave) CItem;
-    CleanupStack::PushL(self);
-    self-&gt;ConstructL(aText);
-    return self;
-    }</codeblock>
-<codeblock id="GUID-75110620-3EDC-5B4D-84EB-C4D6C78BF2F9" xml:space="preserve">CItem* CItem::NewL(const TDesC&amp; aText)
-    {
-    CItem* self = CItem::NewLC(aText);
-    CleanupStack::Pop();
-    return self;
-    }</codeblock>
-<codeblock id="GUID-8EABC406-6C95-5139-9A97-AB467D526019" xml:space="preserve">void CItem::ConstructL(const TDesC&amp; aText)
-    {
-    iText    = aText.AllocL();
-    }</codeblock>
-<codeblock id="GUID-235AC477-3C7E-52E2-B85B-57C404C8BC08" xml:space="preserve">CItem::~CItem()
-    {
-    delete (iText);
-    }</codeblock>
-<p>As part of its construction process, a <codeph>CItem</codeph> constructs
-an <codeph>HBufC</codeph> of the correct length and copies the content of
-the descriptor parameter into it.</p>
-<p>A <codeph>CXy</codeph> object maintains the list by:</p>
-<ul>
-<li id="GUID-048EFEF6-B2EC-5333-A835-BC735C334220"><p> creating <codeph>CItem</codeph> objects
-and adding them into the list</p> </li>
-<li id="GUID-310AB703-85C5-5DFC-8AB6-2A0938095134"><p>removing <codeph>CItem</codeph> objects
-from the list and then destroying them</p> </li>
-</ul>
-<p>The class is declared as:</p>
-<codeblock id="GUID-F5CF044D-650A-5446-9713-BE84362FD793" xml:space="preserve">class CXy : public CBase
-    {
-public :
-    CXy();
-    virtual ~CXy();
-    void    DoItems();
-    TBool   AddItem(const TDesC&amp; anItem,TItemPos aPos);
-private :
-    TDblQue&lt;CItem&gt;     iHdr; 
-    TDblQueIter&lt;CItem&gt; iIter;
-    };</codeblock>
-<p>Here, the list header, <codeph>iHdr</codeph>, and the iterator, <codeph>iIter</codeph>,
-are declared as data members of the class and are constructed when the <codeph>CXy</codeph> object
-is constructed. A C++ constructor must be supplied so that <codeph>iIter</codeph> can
-be properly constructed. (<codeph>TDblQueIter</codeph> has no default constructor).</p>
-<p>Specifically:</p>
-<ul>
-<li id="GUID-36B75BBC-B6EA-5717-9E88-8C1FFB4F9119"><p><codeph>AddItem()</codeph> constructs
-a new <codeph>CItem</codeph> and adds it to the list, either after the current
-item or at the end of the list.</p> </li>
-<li id="GUID-B85DEE50-218E-5CC9-B60D-D6EA2176643F"><p><codeph>DoItems()</codeph> scans
-through the list, removing and destroying each element from the list.</p> </li>
-</ul>
-<p>The <codeph>CXy</codeph> member functions are implemented as:</p>
-<codeblock id="GUID-910891C0-DBEF-592F-8CA3-FC354DE16B3E" xml:space="preserve">CXy::CXy()
-    : iHdr(CItem::iOffset),iIter(iHdr) //construct header &amp; iterator
-    {}</codeblock>
-<codeblock id="GUID-C471B1FC-05A6-56AD-B3D6-C65FB045B864" xml:space="preserve">CXy::~CXy()
-    {
-    CItem*  anyitem;
-    
-    iIter.SetToFirst();
-    while ((anyitem = iIter++) != NULL)
-        {
-        anyitem-&gt;iDlink.Deque();
-        delete anyitem;
-        };
-    }</codeblock>
-<p>Before destroying a <codeph>CXy</codeph> object, the list is destroyed.
-This is achieved using the iterator. The iterator pointer is set to point
-to each element in turn, removing that element from the list before destroying
-it.</p>
-<p>Once the iterator has reached the end of the list, the operator<codeph>++</codeph> returns <codeph>NULL</codeph>.</p>
-<p>The destruction process is safe if the list is empty; the statement <codeph>iter.SetToFirst()</codeph> is
-harmless, the operator<codeph>++</codeph> returns <codeph>NULL</codeph> and
-execution of the body of the <codeph>while</codeph> loop never happens.</p>
-<codeblock id="GUID-8E2FD32B-B8FF-5F37-9C66-20695B296079" xml:space="preserve">TBool CXy::AddItem(const TDesC&amp; aText,TItemPos aPos)
-    {
-    CItem* newitem;
-    
-    TRAPD(leavecode,newitem = CItem::NewL(aText));
-    if (leavecode != KErrNone)
-        return EFalse;              // Cannot create a CItem</codeblock>
-<codeblock id="GUID-6A38CF3D-9547-562D-BB4C-F53938943D15" xml:space="preserve">    switch (aPos)
-        {
-    case EAtEnd:
-        iHdr.AddLast(*newitem);     // Add at back of list
-        return ETrue;
-
-    case EAfterCurrent:
-        CItem* currentitem = iIter; 
-        if (currentitem)
-            {
-            newitem-&gt;iDlink.Enque(&amp;currentitem-&gt;iDlink);
-            iIter.Set(*newitem);
-            }
-        else
-            {
-            iHdr.AddFirst(*newitem);
-            iIter.SetToFirst();    
-            }
-        return ETrue;
-        }
-                
-    return EFalse;
-        }</codeblock>
-<p>This member function creates a new <codeph>CItem</codeph> and then, depending
-on the value of <codeph>aPos</codeph>, either adds it at the back of the list
-or after the current element. <codeph>TItemPos</codeph> is just an enumeration
-taking the enumerators <codeph>EAtEnd</codeph> and <codeph>EAfterCurrent</codeph>.</p>
-<p>The statement:</p>
-<codeblock id="GUID-FBCE5C8F-D42A-50E6-BA1E-A6B2887AF0C1" xml:space="preserve">newitem-&gt;iDlink.Enque(&amp;currentitem-&gt;iDlink);</codeblock>
-<p>inserts the newly created <codeph>CItem</codeph> with pointer <codeph>newitem</codeph>, <i>after</i> the
-existing item with pointer <codeph>currentitem</codeph>.</p>
-<p>Note also that the statement:</p>
-<codeblock id="GUID-F875FA76-2768-5713-8462-44610B17F35A" xml:space="preserve">CItem* currentitem = iIter; 
-</codeblock>
-<p>implicitly uses the conversion operator <codeph>T*()</codeph> where, in
-general, <codeph>T</codeph> is the class forming elements of the list. In
-this specific example, the conversion operator returns a pointer to the current
-element, of type <codeph>CItem</codeph>, in the list. Immediately after construction
-of the iterator <codeph>iIter</codeph>, the value of <codeph>currentitem</codeph> is <codeph>NULL</codeph>.</p>
-<codeblock id="GUID-96C01CEC-29F5-537B-9E44-531A313D8796" xml:space="preserve">void CXy::DoItems()
-    {
-    CItem* currentitem;
-
-    iIter.SetToFirst();
-
-    while((currentitem = iIter++) != NULL)
-        {
-        // do something with the text;
-        currentitem-&gt;iDlink.Deque();
-        delete currentitem;
-        };
-    }</codeblock>
-<p>The <codeph>DoItems()</codeph> member function iterates through the whole
-list, removing each <codeph>CItem</codeph> object in turn before destroying
-it. This member function could be modified to include extra functionality
-before the removal and destruction of the <codeph>CItem</codeph> element.</p>
-<p>If the list is empty on entry to this function, the <codeph>iter.SetToFirst()</codeph> statement
-is safe, <codeph>currentitem</codeph> is <codeph>NULL</codeph> on the first
-execution of the <codeph>while</codeph> condition and the body of the <codeph>while</codeph> loop
-is never executed.</p>
-<p>Executing the code:</p>
-<codeblock id="GUID-081282AE-93D7-59FB-93A7-93D7E1F2080C" xml:space="preserve">    {
-    _LIT(KTxtOne,"one");
-    _LIT(KTxtTwo,"two");
-    _LIT(KTxtThree",three");
-    _LIT(KTxtFour,"four");
-    _LIT(KTxtFive,"five");
-    _LIT(KTxtSix,"six");
-
-    CXy* items;
-
-    items = new CXy;
-
-    items-&gt;AddItem(KTxtone,EAfterCurrent);
-    items-&gt;AddItem(KTxttwo,EAtEnd);
-    items-&gt;AddItem(KTxtthree,EAfterCurrent);
-    items-&gt;AddItem(KTxtfour,EAtEnd);
-    items-&gt;AddItem(KTxtfive,EAfterCurrent);
-    items-&gt;AddItem(KTxtsix,EAtEnd);
-    ...
-</codeblock>
-<p>results in the construction of a doubly linked list of <codeph>CItem</codeph> objects
-each containing a pointer to an <codeph>HBufC</codeph> descriptor containing
-the text as shown:</p>
-<fig id="GUID-10DC05B0-64A2-52D0-ABC6-ACD231F402C4">
-<title/>
-<image href="GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e217986_href.png" placement="inline"/>
-</fig>
-<p>The following code destroys the list elements and the <codeph>CXy</codeph> object
-containing the list header and iterator:</p>
-<codeblock id="GUID-37EF4182-834F-51BF-9250-61B479BFD3D1" xml:space="preserve">    ...
-    items-&gt;DoItems();
-    delete items;
-    }</codeblock>
-<p>There are a number of other possible ways to proceed, depending on the
-precise needs of an application. In the previous example, the list header
-and the iterator are declared as members of the class.</p>
-<p>Some situations may demand that a list be created, used and destroyed within
-the scope of a member function. Because list headers and iterators are “<codeph>T</codeph> ”
-types, they can be declared on the stack; for example:</p>
-<codeblock id="GUID-E29EDC0D-C7DE-5E35-B39F-DA63110DF630" xml:space="preserve">void CXy::SomeFunction();
-    {
-    TDblQue&lt;CItem&gt;     iHdr(CItem::iOffset); 
-    TDblQueIter&lt;CItem&gt; iIter(iHdr);
-
-    // the body of the function
-    //
-
-    }
-</codeblock>
-<p>The list header and the iterator go out of scope at the end of the function
-and are destroyed. Unless the list elements themselves are “<codeph>T</codeph> ”
-types and exist on the stack, make sure that they are explicitly destroyed
-before the function terminates.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B1D63E7B-81EB-5F75-96C3-789E5C3E4C03" xml:lang="en"><title>How to
+construct and manipulate a doubly linked list</title><shortdesc>This document describes how to construct and use a doubly linked
+list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following code fragments show how a doubly linked list can be constructed
+and manipulated. The list consists of <codeph>CItem</codeph> objects. In this
+example, a <codeph>CItem</codeph> object can contain an item of text implemented
+as an <codeph>HBufC</codeph>. The <codeph>CItem</codeph> objects can form
+elements of a doubly linked list using the <codeph>iDlink</codeph> data member
+as the link object. </p>
+<p>The class is declared as:</p>
+<codeblock id="GUID-F98B0D2C-486A-59C5-B487-A0F1D7D022FD" xml:space="preserve">class CItem : public CBase
+    {
+public  :
+    static CItem* NewL(const TDesC&amp; aText);
+    static CItem* NewLC(const TDesC&amp; aText); 
+    virtual       ~CItem();
+public   :
+    static const  TInt iOffset;
+private  :
+    void          ConstructL(const TDesC&amp; aText);
+private  :
+    TDblQueLink  iDlink;
+    HBufC*       iText;
+    friend class CXy;
+    };</codeblock>
+<p>The <codeph>CItem</codeph> member functions are implemented as:</p>
+<codeblock id="GUID-1DAC73DB-A599-5BAC-AAB5-707BA89B8382" xml:space="preserve">const TInt CItem::iOffset = _FOFF(CItem,iDlink);</codeblock>
+<codeblock id="GUID-6FEA34D4-0937-56E3-ACA5-3912E1595511" xml:space="preserve">CItem* CItem::NewLC(const TDesC&amp; aText)
+    {
+    CItem* self = new (ELeave) CItem;
+    CleanupStack::PushL(self);
+    self-&gt;ConstructL(aText);
+    return self;
+    }</codeblock>
+<codeblock id="GUID-75110620-3EDC-5B4D-84EB-C4D6C78BF2F9" xml:space="preserve">CItem* CItem::NewL(const TDesC&amp; aText)
+    {
+    CItem* self = CItem::NewLC(aText);
+    CleanupStack::Pop();
+    return self;
+    }</codeblock>
+<codeblock id="GUID-8EABC406-6C95-5139-9A97-AB467D526019" xml:space="preserve">void CItem::ConstructL(const TDesC&amp; aText)
+    {
+    iText    = aText.AllocL();
+    }</codeblock>
+<codeblock id="GUID-235AC477-3C7E-52E2-B85B-57C404C8BC08" xml:space="preserve">CItem::~CItem()
+    {
+    delete (iText);
+    }</codeblock>
+<p>As part of its construction process, a <codeph>CItem</codeph> constructs
+an <codeph>HBufC</codeph> of the correct length and copies the content of
+the descriptor parameter into it.</p>
+<p>A <codeph>CXy</codeph> object maintains the list by:</p>
+<ul>
+<li id="GUID-048EFEF6-B2EC-5333-A835-BC735C334220"><p> creating <codeph>CItem</codeph> objects
+and adding them into the list</p> </li>
+<li id="GUID-310AB703-85C5-5DFC-8AB6-2A0938095134"><p>removing <codeph>CItem</codeph> objects
+from the list and then destroying them</p> </li>
+</ul>
+<p>The class is declared as:</p>
+<codeblock id="GUID-F5CF044D-650A-5446-9713-BE84362FD793" xml:space="preserve">class CXy : public CBase
+    {
+public :
+    CXy();
+    virtual ~CXy();
+    void    DoItems();
+    TBool   AddItem(const TDesC&amp; anItem,TItemPos aPos);
+private :
+    TDblQue&lt;CItem&gt;     iHdr; 
+    TDblQueIter&lt;CItem&gt; iIter;
+    };</codeblock>
+<p>Here, the list header, <codeph>iHdr</codeph>, and the iterator, <codeph>iIter</codeph>,
+are declared as data members of the class and are constructed when the <codeph>CXy</codeph> object
+is constructed. A C++ constructor must be supplied so that <codeph>iIter</codeph> can
+be properly constructed. (<codeph>TDblQueIter</codeph> has no default constructor).</p>
+<p>Specifically:</p>
+<ul>
+<li id="GUID-36B75BBC-B6EA-5717-9E88-8C1FFB4F9119"><p><codeph>AddItem()</codeph> constructs
+a new <codeph>CItem</codeph> and adds it to the list, either after the current
+item or at the end of the list.</p> </li>
+<li id="GUID-B85DEE50-218E-5CC9-B60D-D6EA2176643F"><p><codeph>DoItems()</codeph> scans
+through the list, removing and destroying each element from the list.</p> </li>
+</ul>
+<p>The <codeph>CXy</codeph> member functions are implemented as:</p>
+<codeblock id="GUID-910891C0-DBEF-592F-8CA3-FC354DE16B3E" xml:space="preserve">CXy::CXy()
+    : iHdr(CItem::iOffset),iIter(iHdr) //construct header &amp; iterator
+    {}</codeblock>
+<codeblock id="GUID-C471B1FC-05A6-56AD-B3D6-C65FB045B864" xml:space="preserve">CXy::~CXy()
+    {
+    CItem*  anyitem;
+    
+    iIter.SetToFirst();
+    while ((anyitem = iIter++) != NULL)
+        {
+        anyitem-&gt;iDlink.Deque();
+        delete anyitem;
+        };
+    }</codeblock>
+<p>Before destroying a <codeph>CXy</codeph> object, the list is destroyed.
+This is achieved using the iterator. The iterator pointer is set to point
+to each element in turn, removing that element from the list before destroying
+it.</p>
+<p>Once the iterator has reached the end of the list, the operator<codeph>++</codeph> returns <codeph>NULL</codeph>.</p>
+<p>The destruction process is safe if the list is empty; the statement <codeph>iter.SetToFirst()</codeph> is
+harmless, the operator<codeph>++</codeph> returns <codeph>NULL</codeph> and
+execution of the body of the <codeph>while</codeph> loop never happens.</p>
+<codeblock id="GUID-8E2FD32B-B8FF-5F37-9C66-20695B296079" xml:space="preserve">TBool CXy::AddItem(const TDesC&amp; aText,TItemPos aPos)
+    {
+    CItem* newitem;
+    
+    TRAPD(leavecode,newitem = CItem::NewL(aText));
+    if (leavecode != KErrNone)
+        return EFalse;              // Cannot create a CItem</codeblock>
+<codeblock id="GUID-6A38CF3D-9547-562D-BB4C-F53938943D15" xml:space="preserve">    switch (aPos)
+        {
+    case EAtEnd:
+        iHdr.AddLast(*newitem);     // Add at back of list
+        return ETrue;
+
+    case EAfterCurrent:
+        CItem* currentitem = iIter; 
+        if (currentitem)
+            {
+            newitem-&gt;iDlink.Enque(&amp;currentitem-&gt;iDlink);
+            iIter.Set(*newitem);
+            }
+        else
+            {
+            iHdr.AddFirst(*newitem);
+            iIter.SetToFirst();    
+            }
+        return ETrue;
+        }
+                
+    return EFalse;
+        }</codeblock>
+<p>This member function creates a new <codeph>CItem</codeph> and then, depending
+on the value of <codeph>aPos</codeph>, either adds it at the back of the list
+or after the current element. <codeph>TItemPos</codeph> is just an enumeration
+taking the enumerators <codeph>EAtEnd</codeph> and <codeph>EAfterCurrent</codeph>.</p>
+<p>The statement:</p>
+<codeblock id="GUID-FBCE5C8F-D42A-50E6-BA1E-A6B2887AF0C1" xml:space="preserve">newitem-&gt;iDlink.Enque(&amp;currentitem-&gt;iDlink);</codeblock>
+<p>inserts the newly created <codeph>CItem</codeph> with pointer <codeph>newitem</codeph>, <i>after</i> the
+existing item with pointer <codeph>currentitem</codeph>.</p>
+<p>Note also that the statement:</p>
+<codeblock id="GUID-F875FA76-2768-5713-8462-44610B17F35A" xml:space="preserve">CItem* currentitem = iIter; 
+</codeblock>
+<p>implicitly uses the conversion operator <codeph>T*()</codeph> where, in
+general, <codeph>T</codeph> is the class forming elements of the list. In
+this specific example, the conversion operator returns a pointer to the current
+element, of type <codeph>CItem</codeph>, in the list. Immediately after construction
+of the iterator <codeph>iIter</codeph>, the value of <codeph>currentitem</codeph> is <codeph>NULL</codeph>.</p>
+<codeblock id="GUID-96C01CEC-29F5-537B-9E44-531A313D8796" xml:space="preserve">void CXy::DoItems()
+    {
+    CItem* currentitem;
+
+    iIter.SetToFirst();
+
+    while((currentitem = iIter++) != NULL)
+        {
+        // do something with the text;
+        currentitem-&gt;iDlink.Deque();
+        delete currentitem;
+        };
+    }</codeblock>
+<p>The <codeph>DoItems()</codeph> member function iterates through the whole
+list, removing each <codeph>CItem</codeph> object in turn before destroying
+it. This member function could be modified to include extra functionality
+before the removal and destruction of the <codeph>CItem</codeph> element.</p>
+<p>If the list is empty on entry to this function, the <codeph>iter.SetToFirst()</codeph> statement
+is safe, <codeph>currentitem</codeph> is <codeph>NULL</codeph> on the first
+execution of the <codeph>while</codeph> condition and the body of the <codeph>while</codeph> loop
+is never executed.</p>
+<p>Executing the code:</p>
+<codeblock id="GUID-081282AE-93D7-59FB-93A7-93D7E1F2080C" xml:space="preserve">    {
+    _LIT(KTxtOne,"one");
+    _LIT(KTxtTwo,"two");
+    _LIT(KTxtThree",three");
+    _LIT(KTxtFour,"four");
+    _LIT(KTxtFive,"five");
+    _LIT(KTxtSix,"six");
+
+    CXy* items;
+
+    items = new CXy;
+
+    items-&gt;AddItem(KTxtone,EAfterCurrent);
+    items-&gt;AddItem(KTxttwo,EAtEnd);
+    items-&gt;AddItem(KTxtthree,EAfterCurrent);
+    items-&gt;AddItem(KTxtfour,EAtEnd);
+    items-&gt;AddItem(KTxtfive,EAfterCurrent);
+    items-&gt;AddItem(KTxtsix,EAtEnd);
+    ...
+</codeblock>
+<p>results in the construction of a doubly linked list of <codeph>CItem</codeph> objects
+each containing a pointer to an <codeph>HBufC</codeph> descriptor containing
+the text as shown:</p>
+<fig id="GUID-10DC05B0-64A2-52D0-ABC6-ACD231F402C4">
+<title/>
+<image href="GUID-03AC137D-173A-558C-A2F3-9522870AC43C_d0e214249_href.png" placement="inline"/>
+</fig>
+<p>The following code destroys the list elements and the <codeph>CXy</codeph> object
+containing the list header and iterator:</p>
+<codeblock id="GUID-37EF4182-834F-51BF-9250-61B479BFD3D1" xml:space="preserve">    ...
+    items-&gt;DoItems();
+    delete items;
+    }</codeblock>
+<p>There are a number of other possible ways to proceed, depending on the
+precise needs of an application. In the previous example, the list header
+and the iterator are declared as members of the class.</p>
+<p>Some situations may demand that a list be created, used and destroyed within
+the scope of a member function. Because list headers and iterators are “<codeph>T</codeph> ”
+types, they can be declared on the stack; for example:</p>
+<codeblock id="GUID-E29EDC0D-C7DE-5E35-B39F-DA63110DF630" xml:space="preserve">void CXy::SomeFunction();
+    {
+    TDblQue&lt;CItem&gt;     iHdr(CItem::iOffset); 
+    TDblQueIter&lt;CItem&gt; iIter(iHdr);
+
+    // the body of the function
+    //
+
+    }
+</codeblock>
+<p>The list header and the iterator go out of scope at the end of the function
+and are destroyed. Unless the list elements themselves are “<codeph>T</codeph> ”
+types and exist on the stack, make sure that they are explicitly destroyed
+before the function terminates.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100" xml:lang="en"><title>Cut,
-copy, and paste</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Cut, Copy and Paste functions are available from the <b>Options</b> menu
-in editors. In viewers, Copy command is in a stylus pop-up menu that is opened
-via touch release after text selection. </p>
-<p>Dragging function works both in editors and viewers.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100" xml:lang="en"><title>Cut,
+copy, and paste</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Cut, Copy and Paste functions are available from the <b>Options</b> menu
+in editors. In viewers, Copy command is in a stylus pop-up menu that is opened
+via touch release after text selection. </p>
+<p>Dragging function works both in editors and viewers.</p>
+<section id="GUID-467F7C92-514F-47D1-BCBC-DD9CEA9B9702"><title>See Also</title><ul>
+<li><p><xref href="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita">Selecting text</xref></p></li>
+<li><p><xref href="GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita">Text editing</xref></p></li>
+<li><p><xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing Menu</xref></p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e113898_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B21A4858-162A-50F1-8F88-4259B7F7238E_d0e120436_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D-master.png has changed
Binary file Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e63770_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B2523978-4262-4E32-B50D-4818AC561B6D_d0e68992_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,127 +1,117 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-B26A4743-F331-5AC3-A40A-28B14B785857" xml:lang="en"><title>SearchSortExample:
-enhanced search and sort for Message Store</title><shortdesc>This example demonstrates the enhanced search and sort API for
-message stores. This API was implemented in Symbian^3. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-B702DCF4-5C83-4AE2-95F5-F09D7DC46255"><title>Purpose</title> <p>Prior to Symbian^3, the Message Store API
-had limited support for selecting and sorting message records and fields.
-From Symbian^3, the API implements more extensive search and sort options.</p> <p>This
-example demonstrates the new functionality by implementing the following use
-cases: </p> <ul>
-<li id="GUID-E9B88EDB-8DD1-5CC2-B6DD-CA8498FE1865"><p>Display the header information
-for all message entries. </p> </li>
-<li id="GUID-5D07456E-DEDE-578D-961F-138E9DBD9470"><p>Perform a simple (single
-search criteria) non-iterative search-sort and display the matching entries.
-This has the following options: </p> <ul>
-<li id="GUID-73CAF478-2B69-5883-B7A1-4F8B20D884E8"><p>case sensitivity on
-/ off, </p> </li>
-<li id="GUID-D158CBA7-4947-589F-9C1E-FFB0E36A8CEF"><p>whole word search on
-/ off. </p> </li>
-</ul> </li>
-<li id="GUID-F2FC91DD-8198-53BB-9C77-5DC30C071AE1"><p>Perform a combined (more
-than one search criteria) non-iterative search-sort and display the number
-of matching entries. This has the following options: </p> <ul>
-<li id="GUID-25CDF7E6-9D22-58C8-8832-03B0723A7F6E"><p>case sensitivity on
-/ off, </p> </li>
-<li id="GUID-35902CB3-B4AF-56D0-937A-A840B3F40CDA"><p>whole word search on
-/ off. </p> </li>
-</ul> </li>
-<li id="GUID-54A5DEF1-21F3-5B24-85BA-71450C7E3D2D"><p>Perform an iterative
-search-sort (searches for entries one at a time) and display the number of
-matching entries. </p> </li>
-<li id="GUID-5412D0A2-2A38-5F34-AE9E-AE7940345DDC"><p>Perform a search-sort
-using a query ID. The query ID is generated by a previous search-sort operation. </p> </li>
-</ul> <p>Before implementing these use cases, the example creates a POP3/SMTP
-message store with five message entries. </p> </section>
-<section id="GUID-4FBA245A-78AC-4584-8471-240D504C3ED0"><title>Class summary</title><p>The example demonstrates the following
-classes and enums:</p><p><xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref> <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname> CMsvSearchSortQuery</apiname></xref> <xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname> TMsvMessagePart</apiname></xref> <xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname> TMsvSearchSortResultType</apiname></xref></p></section>
-<section id="GUID-9331568B-0BA3-5138-BDCC-65AC225A5328"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dbb3813f-c947-4359-805e-eeada16f1dbb.zip" scope="external">searchsortexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dbb3813f-c947-4359-805e-eeada16f1dbb.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-F8B3E0E7-FB82-5266-AB40-C1149A782E83"><title>Design
-and implementation</title> <p><b>Project Implementation</b> </p> <p>The project
-implements the following classes: </p> <p> <b>CKeyReader:</b> Derived from <codeph>CActive</codeph>.
-This reads keypresses and calls the appropriate example function. </p> <p> <b>CMessAsyncWaiter:</b> Derived
-from <codeph>CActive</codeph>. This handles the <codeph>CMsvSearchSortOperation::RequestL()</codeph> asynchronous
-request. This <codeph>RequestL()</codeph> function takes <codeph>CMessAsyncWaiter::iStatus</codeph> as
-one of its parameters and then waits on the status. When the search is complete
-the client is notified of the event's completion by <codeph>CMessAsyncWaiter::RunL()</codeph> being
-called, after which the example prepares the buffer and displays the results. </p> <p> <b>CSearchsortExample:</b> Derived
-from <codeph>CBase</codeph> and <codeph>MMsvSessionObserver</codeph>. <codeph>MMsvSessionObserver</codeph> is
-an interface for notification of events from a Message Server session. </p> <p> <codeph>CSearchsortExample</codeph> implements <codeph>HandleSessionEventL()</codeph> to handle the two event types <codeph>EMsvEntriesCreated</codeph> and <codeph>EMsvServerReady</codeph>.
-It also creates the SMTP message entries and carries out searching and sorting. </p> <p><b>Simple
-non-iterative search-sort</b> </p> <p>The example starts by creating a message
-server session using <codeph>CMsvSession</codeph>, which represents a channel
-of communication between a client thread (client-side MTM, user interface
-MTM, or message client application) and the Message Server thread. Then it
-creates an instance of <codeph>CMsvSearchSortOperation</codeph> to perform
-the search-sort operation, and passes the session object into it. </p> <p>A
-search-sort query is created using <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B39D5F47-158A-38C8-8552-B3B5581554F7"><apiname>CMsvSearchSortQuery::NewL()</apiname></xref> and
-is configured using various member functions of class <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> for
-instance whether to search for whole or partial words and the case sensitivity. </p> <p>The
-search and sort options are added to the query using <codeph>CMsvSearchSortQuery::AddSearchOptionL()</codeph> and <codeph>CMsvSearchSortQuery::AddSortOptionL()</codeph>. </p> <p>The search-sort operation is started by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref>,
-passing the query as a parameter. If no iterator parameter is specified, the
-search defaults to non-iterative. </p> <p>An instance of the <codeph>CMessAsyncWaiter</codeph> class
-is created for handling the asynchronous search request. This object is waited
-on until the Message Server completes the request. The results of the search
-are stored in an array using <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1D6974D1-FF31-3B7C-A726-47A8510E9819"><apiname>CMsvSearchSortOperation::GetResultsL()</apiname></xref>. </p> <p>The
-result count is displayed by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-5E95F638-1252-3C63-A408-8FBAB445918D"><apiname>CMsvSearchSortOperation::GetResultCountL()</apiname></xref>. </p> <p>The
-query ID of the search is retrieved from the Message server, for later use,
-using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-989B6F32-DE88-373B-9CA4-5474BB6858CD"><apiname>CMsvSearchSortOperation::GetQueryId()</apiname></xref> function. </p> <p><b>Simple
-iterative search-sort</b> </p> <p>Iterative search-sort follows the same steps
-as described above, except that an iterator parameter is passed to the <codeph>RequestL()</codeph> function.
-To retrieve the results, <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-3F38D82E-D350-3C80-8146-A339F1E189D8"><apiname>CMsvSearchSortOperation::GetNextResultL()</apiname></xref> is
-called in a <codeph>while</codeph> loop to retrieve one entry at a time. Iterative
-searching is useful when the client may not have enough memory to store an
-array of results. </p> <p><b>Combined search-sort</b> </p> <p>A combined search-sort
-is done by adding additional search options using <codeph>CMsvSearchSortQuery::AddSearchOptionL()</codeph>. </p> <p><b>Search-sort
-using a query ID</b> </p> <p>A query ID identifies a search-sort query. It
-is obtained by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1893C3C7-4F77-3630-B115-A161CCA2665A"><apiname>CMsvSearchSortOperation::GetQueryIdL()</apiname></xref> following
-the completion of <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref>.
-In this example, the query ID generated by the simple non-iterative search-sort
-is used to repeat the same search-sort. The overloaded <codeph>CMsvSearchSortOperation::RequestL()</codeph> function
-is used to initiate a search-sort operation with a query ID. </p> <p>After
-the request completes, a list of index entry ID objects (<xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> depending
-on how the query was configured, using <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B040D6BA-670D-3CBF-B1F7-9AFD1F99267B"><apiname>CMsvSearchSortQuery::SetResultType()</apiname></xref>)
-is retrieved using <codeph>CMsvSearchSortOperation::GetResultsL()</codeph>.
-Finally the matching results are displayed in the console. </p> </section>
-<section id="GUID-AE5E0880-9CAB-57E5-83CB-196D487935DE"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-61C94258-567F-575E-A75C-29D2165FC2CA"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-F470E492-C920-58E0-860C-5CCE24B0C7F4"><p>For the emulator, the
-example builds an executable called <filepath>searchsortexample.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb                 or urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-<section id="GUID-B72B706B-BB9F-5A0D-A36A-03135FE99E5C"><title>Running the
-example</title> <p> <filepath>searchsortexample.exe</filepath> takes user
-input from the console. The menu for the current example is as shown below: </p> <fig id="GUID-53020118-A1E3-56C3-AA81-9CED04533E27">
-<image href="GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e290601_href.jpg" placement="inline"/>
-</fig> <p>The user input is handled by <codeph>CKeyReader::RunL()</codeph>. </p> <p>For
-simple and combined non-iterative search-sort, the user provides the following
-inputs: 1) the text in the "To" field to search for, 2) whether case sensitivity
-is on of off, 3) whether whole word searching is on or off. </p> <p>The input
-values are saved in variables which are passed to the function <codeph>CSearchsortExample::SearchSortRequestWithoutIteratorL()</codeph>,
-and the settings are made accordingly. </p> <p>For the combined search-sort
-the 2nd and 3rd search options (size and subject) are hard coded. The iterative
-search-sort searches by size, which is also hard coded. </p> <p>To execute
-a search-sort using a query ID, <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref> must
-first have been called because it generates the query ID. So, either option
-2 or 3 must have been called before option 5. </p> </section>
-<section id="GUID-23202235-0D1E-4D86-83E1-9EC7A315E682"><title>See also</title><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Search-Sort
-Overview</xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-B26A4743-F331-5AC3-A40A-28B14B785857" xml:lang="en"><title>SearchSortExample: enhanced search and sort for Message Store</title><shortdesc>This example demonstrates the enhanced search and sort
+API for message stores. This API was implemented in Symbian^3. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-B702DCF4-5C83-4AE2-95F5-F09D7DC46255"><title>Purpose</title> <p>Prior to Symbian^3, the Message Store API had limited support
+for selecting and sorting message records and fields. From Symbian^3,
+the API implements more extensive search and sort options.</p> <p>This example demonstrates the new functionality by implementing the
+following use cases: </p> <ul>
+<li id="GUID-E9B88EDB-8DD1-5CC2-B6DD-CA8498FE1865"><p>Display the
+header information for all message entries. </p> </li>
+<li id="GUID-5D07456E-DEDE-578D-961F-138E9DBD9470"><p>Perform a simple
+(single search criteria) non-iterative search-sort and display the
+matching entries. This has the following options: </p> <ul>
+<li id="GUID-73CAF478-2B69-5883-B7A1-4F8B20D884E8"><p>case sensitivity
+on / off, </p> </li>
+<li id="GUID-D158CBA7-4947-589F-9C1E-FFB0E36A8CEF"><p>whole word search
+on / off. </p> </li>
+</ul> </li>
+<li id="GUID-F2FC91DD-8198-53BB-9C77-5DC30C071AE1"><p>Perform a combined
+(more than one search criteria) non-iterative search-sort and display
+the number of matching entries. This has the following options: </p> <ul>
+<li id="GUID-25CDF7E6-9D22-58C8-8832-03B0723A7F6E"><p>case sensitivity
+on / off, </p> </li>
+<li id="GUID-35902CB3-B4AF-56D0-937A-A840B3F40CDA"><p>whole word search
+on / off. </p> </li>
+</ul> </li>
+<li id="GUID-54A5DEF1-21F3-5B24-85BA-71450C7E3D2D"><p>Perform an iterative
+search-sort (searches for entries one at a time) and display the number
+of matching entries. </p> </li>
+<li id="GUID-5412D0A2-2A38-5F34-AE9E-AE7940345DDC"><p>Perform a search-sort
+using a query ID. The query ID is generated by a previous search-sort
+operation. </p> </li>
+</ul> <p>Before implementing these use cases, the example creates
+a POP3/SMTP message store with five message entries. </p> </section>
+<section id="GUID-4FBA245A-78AC-4584-8471-240D504C3ED0"><title>Class
+summary</title><p>The example demonstrates the following classes and
+enums:</p><ul>
+<li><p><xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita"><apiname>CMsvSearchSortOperation</apiname></xref></p></li>
+<li><p><xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname> CMsvSearchSortQuery</apiname></xref></p></li>
+<li><p><xref href="GUID-D9BB2EF0-262F-3BCF-8F48-F40FE0D4C107.dita"><apiname> TMsvMessagePart</apiname></xref></p></li>
+<li><p><xref href="GUID-A60B4636-F309-3FD6-8D12-D4EE3AC6BC58.dita"><apiname> TMsvSearchSortResultType</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-9331568B-0BA3-5138-BDCC-65AC225A5328"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-dbb3813f-c947-4359-805e-eeada16f1dbb.zip" scope="external">searchsortexample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-dbb3813f-c947-4359-805e-eeada16f1dbb.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-F8B3E0E7-FB82-5266-AB40-C1149A782E83"><title>Design and implementation</title> <p><b>Project Implementation</b> </p> <p>The project implements the following classes: </p> <p> <b>CKeyReader:</b> Derived from <codeph>CActive</codeph>. This reads
+keypresses and calls the appropriate example function. </p> <p> <b>CMessAsyncWaiter:</b> Derived from <codeph>CActive</codeph>. This
+handles the <codeph>CMsvSearchSortOperation::RequestL()</codeph> asynchronous
+request. This <codeph>RequestL()</codeph> function takes <codeph>CMessAsyncWaiter::iStatus</codeph> as one of its parameters and then waits on the status. When the
+search is complete the client is notified of the event's completion
+by <codeph>CMessAsyncWaiter::RunL()</codeph> being called, after which
+the example prepares the buffer and displays the results. </p> <p> <b>CSearchsortExample:</b> Derived from <codeph>CBase</codeph> and <codeph>MMsvSessionObserver</codeph>. <codeph>MMsvSessionObserver</codeph> is an interface for notification of events from a Message Server
+session. </p> <p> <codeph>CSearchsortExample</codeph> implements <codeph>HandleSessionEventL()</codeph> to handle the two event types <codeph>EMsvEntriesCreated</codeph> and <codeph>EMsvServerReady</codeph>.
+It also creates the SMTP message entries and carries out searching
+and sorting. </p> <p><b>Simple non-iterative search-sort</b> </p> <p>The example starts by creating a message server session using <codeph>CMsvSession</codeph>, which represents a channel of communication
+between a client thread (client-side MTM, user interface MTM, or message
+client application) and the Message Server thread. Then it creates
+an instance of <codeph>CMsvSearchSortOperation</codeph> to perform
+the search-sort operation, and passes the session object into it. </p> <p>A search-sort query is created using <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B39D5F47-158A-38C8-8552-B3B5581554F7"><apiname>CMsvSearchSortQuery::NewL()</apiname></xref> and is configured using various member functions of class <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita"><apiname>CMsvSearchSortQuery</apiname></xref> for instance whether to search for
+whole or partial words and the case sensitivity. </p> <p>The search
+and sort options are added to the query using <codeph>CMsvSearchSortQuery::AddSearchOptionL()</codeph> and <codeph>CMsvSearchSortQuery::AddSortOptionL()</codeph>. </p> <p>The search-sort operation is started by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref>, passing the query as a parameter. If no iterator parameter is specified,
+the search defaults to non-iterative. </p> <p>An instance of the <codeph>CMessAsyncWaiter</codeph> class is created for handling the asynchronous
+search request. This object is waited on until the Message Server
+completes the request. The results of the search are stored in an
+array using <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1D6974D1-FF31-3B7C-A726-47A8510E9819"><apiname>CMsvSearchSortOperation::GetResultsL()</apiname></xref>. </p> <p>The result count is displayed by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-5E95F638-1252-3C63-A408-8FBAB445918D"><apiname>CMsvSearchSortOperation::GetResultCountL()</apiname></xref>. </p> <p>The query ID of the search is retrieved from the Message
+server, for later use, using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-989B6F32-DE88-373B-9CA4-5474BB6858CD"><apiname>CMsvSearchSortOperation::GetQueryId()</apiname></xref> function. </p> <p><b>Simple iterative search-sort</b> </p> <p>Iterative
+search-sort follows the same steps as described above, except that
+an iterator parameter is passed to the <codeph>RequestL()</codeph> function. To retrieve the results, <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-3F38D82E-D350-3C80-8146-A339F1E189D8"><apiname>CMsvSearchSortOperation::GetNextResultL()</apiname></xref> is called in a <codeph>while</codeph> loop to retrieve one entry
+at a time. Iterative searching is useful when the client may not have
+enough memory to store an array of results. </p> <p><b>Combined search-sort</b> </p> <p>A combined search-sort is done by adding additional search
+options using <codeph>CMsvSearchSortQuery::AddSearchOptionL()</codeph>. </p> <p><b>Search-sort using a query ID</b> </p> <p>A query ID
+identifies a search-sort query. It is obtained by calling <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1893C3C7-4F77-3630-B115-A161CCA2665A"><apiname>CMsvSearchSortOperation::GetQueryIdL()</apiname></xref> following the completion
+of <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref>. In this
+example, the query ID generated by the simple non-iterative search-sort
+is used to repeat the same search-sort. The overloaded <codeph>CMsvSearchSortOperation::RequestL()</codeph> function is used to initiate a search-sort operation with a query
+ID. </p> <p>After the request completes, a list of index entry ID
+objects (<xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> or <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> depending on how the query was configured, using <xref href="GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7.dita#GUID-A1ECA70D-1D50-3B5F-9D22-74D0215146E7/GUID-B040D6BA-670D-3CBF-B1F7-9AFD1F99267B"><apiname>CMsvSearchSortQuery::SetResultType()</apiname></xref>) is retrieved using <codeph>CMsvSearchSortOperation::GetResultsL()</codeph>. Finally the matching results are displayed in the console. </p> </section>
+<section id="GUID-AE5E0880-9CAB-57E5-83CB-196D487935DE"><title>Building
+and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-61C94258-567F-575E-A75C-29D2165FC2CA"><p>You can build
+the example from your IDE or the command line. </p> <p>If you use
+an IDE, import the <filepath>bld.inf</filepath> file of the example
+into your IDE, and use the build command of the IDE. </p> <p>If you
+use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the
+example with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake bldfiles</userinput> </p> <p><userinput>abld
+build</userinput> </p> <p> <xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to
+use abld</xref> describe how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-F470E492-C920-58E0-860C-5CCE24B0C7F4"><p>For the emulator,
+the example builds an executable called <filepath>searchsortexample.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb                
+or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+<section id="GUID-B72B706B-BB9F-5A0D-A36A-03135FE99E5C"><title>Running
+the example</title> <p> <filepath>searchsortexample.exe</filepath> takes user input from the console. The menu for the current example
+is as shown below: </p> <fig id="GUID-53020118-A1E3-56C3-AA81-9CED04533E27">
+<image href="GUID-656E2E4F-D7C5-5FDC-B1E6-DFA5970BB3F0_d0e286968_href.jpg" placement="inline"/>
+</fig> <p>The user input is handled by <codeph>CKeyReader::RunL()</codeph>. </p> <p>For simple and combined non-iterative search-sort, the
+user provides the following inputs: 1) the text in the "To" field
+to search for, 2) whether case sensitivity is on of off, 3) whether
+whole word searching is on or off. </p> <p>The input values are saved
+in variables which are passed to the function <codeph>CSearchsortExample::SearchSortRequestWithoutIteratorL()</codeph>, and the settings are made accordingly. </p> <p>For the combined
+search-sort the 2nd and 3rd search options (size and subject) are
+hard coded. The iterative search-sort searches by size, which is also
+hard coded. </p> <p>To execute a search-sort using a query ID, <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-2856FD49-D254-3B1D-9F92-634B8BF7B325"><apiname>CMsvSearchSortOperation::RequestL(CMsvSearchSortQuery *,TBool,TRequestStatus
+&amp;,TInt)</apiname></xref> must first have been called because it generates
+the query ID. So, either option 2 or 3 must have been called before
+option 5. </p> </section>
+<section id="GUID-23202235-0D1E-4D86-83E1-9EC7A315E682"><title>See
+also</title><p><xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Search-Sort Overview</xref></p></section>
 </refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e3348_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e4623_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e185390_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B2E63B13-7B72-5CBF-ACD0-1F2D2E1EEF19_d0e191986_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e176531_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e183125_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF"><title>Drawing a Rounded Rectangle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides an example that demonstrates how to draw a rounded rectangle using <codeph>DrawRoundRect()</codeph>. The dimensions of each corner (corner size and corner height) are given by a <codeph>TSize</codeph> argument. </p> <fig id="GUID-F54B5E46-9C2A-50DF-BAA9-222BD8EEF283"><title>
-          Rounded rectangle construction 
-        </title> <image href="GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e207421_href.png" placement="inline"/></fig> <codeblock id="GUID-50D54618-4C7E-57D1-90BE-8A92CD5F4161" xml:space="preserve">...
-// draw a rectangle with rounded corners, centered in the rectangle
-TSize cornerSize(20,20); // set up the size of a rounded cornerSize
-gc.DrawRoundRect(box,cornerSize);
-...</codeblock> <p>In the following example code, one of the ellipses specified by the corner argument is shown, to illustrate how the rounded rectangle is constructed: </p> <codeblock id="GUID-ABF288C3-C830-5E44-B31A-6E4FCEE29A9E" xml:space="preserve">...
-// draw a rectangle with rounded corners,
-//centered in the rectangle, showing a corner ellipse
-TSize cornerSize(20,20); // size of a rounded corner
-    
-// rect for corner ellipse is twice the corner size
-TSize cornerEllipseSize(cornerSize.iHeight*2,cornerSize.iWidth*2);
-TRect cornerRectTl(box.iTl,cornerEllipseSize);
-gc.DrawRoundRect(box,cornerSize);
-gc.SetPenStyle(CGraphicsContext::EDottedPen);
-gc.DrawEllipse(cornerRectTl); // corner construction ellipse
-...</codeblock> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B32ED85A-913E-5C06-AEEB-1E2D6EF4CECF"><title>Drawing a Rounded Rectangle</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic provides an example that demonstrates how to draw a rounded rectangle using <codeph>DrawRoundRect()</codeph>. The dimensions of each corner (corner size and corner height) are given by a <codeph>TSize</codeph> argument. </p> <fig id="GUID-F54B5E46-9C2A-50DF-BAA9-222BD8EEF283"><title>
+          Rounded rectangle construction 
+        </title> <image href="GUID-2ED8BB5F-27CA-5DD3-BA0F-5773AE14A8CC_d0e202413_href.png" placement="inline"/></fig> <codeblock id="GUID-50D54618-4C7E-57D1-90BE-8A92CD5F4161" xml:space="preserve">...
+// draw a rectangle with rounded corners, centered in the rectangle
+TSize cornerSize(20,20); // set up the size of a rounded cornerSize
+gc.DrawRoundRect(box,cornerSize);
+...</codeblock> <p>In the following example code, one of the ellipses specified by the corner argument is shown, to illustrate how the rounded rectangle is constructed: </p> <codeblock id="GUID-ABF288C3-C830-5E44-B31A-6E4FCEE29A9E" xml:space="preserve">...
+// draw a rectangle with rounded corners,
+//centered in the rectangle, showing a corner ellipse
+TSize cornerSize(20,20); // size of a rounded corner
+    
+// rect for corner ellipse is twice the corner size
+TSize cornerEllipseSize(cornerSize.iHeight*2,cornerSize.iWidth*2);
+TRect cornerRectTl(box.iTl,cornerEllipseSize);
+gc.DrawRoundRect(box,cornerSize);
+gc.SetPenStyle(CGraphicsContext::EDottedPen);
+gc.DrawEllipse(cornerRectTl); // corner construction ellipse
+...</codeblock> </conbody><related-links><link href="GUID-55C8C429-1BEC-5A58-94EC-DA1E51F62867.dita"><linktext>Drawing
                 to a Graphics Context Tutorials</linktext> </link> <link href="GUID-E3AC8F3E-9D5C-5E7D-9760-023B77C7C8A8.dita"><linktext>Drawing and Graphics Contexts</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B340078C-9EFC-4017-8F43-B0BBCE4935DC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B340078C-9EFC-4017-8F43-B0BBCE4935DC" xml:lang="en"><title>Playing
-a video clip</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To open, play and retrieve information about video data stored in a
-file, descriptor, or URL, use the video player utility of the Multimedia Framework
-to develop your application. To play a video clip, the application needs to
-repeat the steps described in the illustration below.</p>
-<fig id="GUID-FC95D96A-BD76-4296-AAA0-832206A27B73"><title>The steps required to play a video clip</title><image href="GUID-9770F3B4-998D-474F-9A82-1B134A4C2869_d0e294365_href.png"/></fig>
-<p>To play a video clip, use the methods of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html" format="application/java-archive"><codeph>CVideoPlayerUtility</codeph></xref> class
-to construct your application.</p>
-<section id="GUID-73B92565-802E-400E-B991-5A1F19B25EBA"><title>To play a video</title>
-<ol>
-<li id="GUID-6BBE2F20-3EF8-4397-B36B-7F8AE0411650"><p>Create a video
-player object, open a video clip and prepare it to be played.</p>
-<ul>
-<li><p>Create a player object using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aNewL%28MVideoPlayerUtilityObserver%20%26amp%3b%2cTInt%2cTMdaPriorityPreference%2cRWsSession%20%26amp%3b%2cCWsScreenDevice%20%26amp%3b%2cRWindowBase%20%26amp%3b%2cconst%20TRect%20%26amp%3b%2cconst%20TRect%20%26amp%3b%29" format="application/java-archive"><codeph>CVideoPlayerUtility::NewL()</codeph></xref> method.</p>
-</li>
-<li><p>Open a video clip from a file, descriptor using the respective <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aOpenFileL%28const%20TDesC%20%26amp%3b%2cTUid%29" format="application/java-archive"><codeph>CVideoPlayerUtility::OpenFileL()</codeph></xref> or <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aOpenDesL%28const%20TDesC8%20%26amp%3b%2cTUid%29" format="application/java-archive"><codeph>CVideoPlayerUtility::OpenDesL()</codeph></xref>. <xref href="GUID-795ED4C0-7C82-41DE-AD5B-AC69A426E2A5.dita">Streamed
-content</xref> can be opened with <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aOpenUrlL%28const%20TDesC%20%26amp%3b%2cTInt%2cconst%20TDesC8%20%26amp%3b%2cTUid%29" format="application/java-archive"><codeph>CVideoPlayerUtility::OpenUrlL()</codeph></xref>. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/MVideoPlayerUtilityObserverClass.html#%3a%3aMVideoPlayerUtilityObserver%3a%3aMvpuoOpenComplete%28TInt%29" format="application/java-archive"><codeph>MVideoPlayerUtilityObserver::MvpuoOpenComplete()</codeph></xref> is
-called upon completion.</p></li>
-<li><p>Prepare the video clip to be read using <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aPrepare%28%29" format="application/java-archive"><codeph>CVideoPlayerUtility::Prepare()</codeph></xref>. <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/MVideoPlayerUtilityObserverClass.html#%3a%3aMVideoPlayerUtilityObserver%3a%3aMvpuoPrepareComplete%28TInt%29" format="application/java-archive"><codeph>MVideoPlayerUtilityObserver::MvpuoPrepareComplete()</codeph></xref> is
-called upon completion.</p></li>
-</ul>
-</li>
-<li id="GUID-3582516A-2E58-4024-BC82-86E79DF253CF"><p>Configure
-the player settings.</p><p>You can check and set, for example, the playback
-priority, display window, audio track, video frame size and frame rate, audio
-and video codecs and bitrates, and the MIME type of the video clip. For more
-information on the options, see the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html" format="application/java-archive"><codeph>CVideoPlayerUtility</codeph></xref> class.</p>
-</li>
-<li id="GUID-FF788EF1-6991-48CE-A43D-50E5F98856BD"><p>Play the video
-clip.</p>
-<ul>
-<li><p>Start the playback of a video clip using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aPlay%28%29" format="application/java-archive"><codeph>CVideoPlayerUtility::Play()</codeph></xref> method.</p>
-</li>
-<li><p>Pause playback using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aPauseL%28%29" format="application/java-archive"><codeph>CVideoPlayerUtility::PauseL()</codeph></xref> method. Resume playback
-by calling <codeph>CVideoPlayerUtility::Play()</codeph> again.</p></li>
-<li><p>Stop playback using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aStop%28%29" format="application/java-archive"><codeph>CVideoPlayerUtility::Stop()</codeph></xref> method. If the playback
-is not explicitly stopped, <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/MVideoPlayerUtilityObserverClass.html" format="application/java-archive"><codeph>MVideoPlayerUtilityObserver::MvpuoPlayComplete()</codeph></xref> is called upon completion.</p></li>
-</ul>
-</li>
-<li id="GUID-C517833F-4A5C-438B-BFAD-05691C805A6F"><p>To exit the
-application or to switch it to the background, close the video clip and unload
-all controllers using the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Multimedia_Framework/CVideoPlayerUtilityClass.html#%3a%3aCVideoPlayerUtility%3a%3aClose%28%29" format="application/java-archive"><codeph>CVideoPlayerUtility::Close()</codeph></xref> method.</p></li>
-<li id="GUID-EDF371B0-40E6-4FE4-AB3B-6E7E7615D888"><p>Include the <codeph>VideoPlayer.h</codeph> header
-file in the appropriate class file(s).</p></li>
-<li id="GUID-F9642238-8046-476A-89C1-78092B67800F"><p>Make sure
-you have correct <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref> information
-set for your application. You need at least the <codeph>UserEnvironment</codeph> capability.
-If you want to set the recording priority for the video/audio device, you
-need the <codeph>MultimediaDD</codeph> capability.</p></li>
-<li id="GUID-7E812E69-C12E-43A5-809F-4A47104F7822"><p>Make sure <codeph>mediaclientvideo.lib</codeph> is
-accessible to your linker when compiling your application by including it
-in your <codeph>mmp</codeph> file or by editing the project properties in
-your IDE, depending on your build environment.</p></li>
-</ol>
-</section>
-<section id="GUID-756A176D-33D2-4A7E-A93A-9874B837BE8C"><title>Additional information
-on playing a video clip</title>
-<p>For code examples, see <xref href="http://wiki.forum.nokia.com/index.php/How_to_play_a_video_file_using_CVideoPlayerUtility" scope="external">How
-to play a video using CVideoPlayerUtility</xref> on Forum Nokia Developer
-Community Wiki.</p>
-<p>For more information on <codeph>CVideoPlayerUtility</codeph>, see <xref href="http://developer.symbian.org/wiki/index.php/File:Quick_Recipes_Symbian_multimedia_recipes.pdf" scope="external">Multimedia
-recipes</xref> at the Symbian Foundation.</p>
-<p>For information on the codecs needed to play a video clip, see <xref href="GUID-536DCEAF-3598-4D3E-A812-E266720F350D.dita">Supported codecs</xref>.</p>
-<p>For more information about <codeph>CVideoPlayerUtility</codeph> in the
-Video Client library see following documents:</p>
-<ul>
-<li><p><xref href="GUID-172F46C1-6066-57FA-A815-5AC23ACE159D.dita">Creating
-and Preparing a Video Player</xref></p></li>
-<li><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita">Configuring
-the Video Player</xref></p></li>
-<li><p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita">Controlling
-Video Playback</xref></p></li>
-<li><p><xref href="GUID-F13C7D36-E4AB-57F1-87A1-EB83AA2258DF.dita">Controlling
-the Video Controller Plugin</xref></p></li>
-</ul>
-</section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C" xml:lang="en"><title>Text
-editing</title><shortdesc>This section describes the common principles of text editing, focusing
-on Latin based scripts. Requirements of other writing systems and input methods,
-such as those used for Chinese or Arabic, are not covered in detail.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Character input is accomplished using the keyboard. S60 supports both a
-full QWERTY keyboard and the ITU-T standard for numeric keypads. It specifies
-the mapping of Latin (English) characters to the keys, assigning three or
-four letters to each Numeric key from 2 to 9. The input of a specific character
-can happen either by repeated key presses within a time-out, or using some
-language-specific algorithm that tries to find the correct characters according
-to the produced key sequence.</p>
-<p>For more information on text input on touch devices, see <xref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita">Text
-input</xref>.</p>
-<p>Some keys, such as the star (*), hash (#) key, clear key, and edit key,
-have specific  functions assigned to them during text editing. The functions
-depend on the keyboard type (ITU-T or QWERTY) and whether text prediction
-or multitapping mode is active. The four available modes are:</p>
-<ul>
-<li><p>ITU-T inmultitapping mode</p></li>
-<li><p>ITU-T with text prediction on</p></li>
-<li><p>QWERTY keyboard with text prediction on</p></li>
-<li><p>QWERTY keyboard with text prediction off</p></li>
-</ul>
-<table id="GUID-BFD539DB-0C98-4FAF-85CC-63EC012C9F48"><title>Specific key
-functions on ITU-T keypad</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry><p>Key</p></entry>
-<entry><p>Function on ITU-T keypad</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Numeric key 1</p></entry>
-<entry><p>Punctuation. The most used punctuation characters are available
-using repeated key presses within a time-out.</p></entry>
-</row>
-<row>
-<entry><p>Star (*) key</p></entry>
-<entry><p>In the alpha mode, offers the next match in Predictive Text input.
-In the alpha mode, a long press opens the special characters table, where
-the complete set of punctuation and other characters are displayed. One character
-can be picked at a time with Selection key. It is also possible to feed in
-more than one character without having to re-open the list by pressing 5 on
-the desired characters one after another and completing the selection by pressing
-Selection key on the last item. In a typical number mode, produces a * character,
-repeated presses produce other characters allowed within phone numbers: +,
-p, w.</p><p>In devices with no Edit key, a short press of the Star (*) key
-opens the editing menu and a long press opens the special characters table.</p></entry>
-</row>
-<row>
-<entry><p>Hash (#) key</p></entry>
-<entry><p>In the alpha mode, changes the character case (upper case, lower
-case, text case). In a typical number mode, produces a # character.In devices
-with no Edit key, a short press changes the current case and the text prediction
-mode (on/off), and a long key press (together with the Arrow keys) selects
-text.</p></entry>
-</row>
-<row>
-<entry><p>Clear key</p></entry>
-<entry><p>Clears the previous character from the cursor. In case more characters
-are selected, clears all the selected characters.</p></entry>
-</row>
-<row>
-<entry><p>Edit key </p></entry>
-<entry><p>Press and release: opens the editing menu (see <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
-menu</xref>). Selects characters when pressed simultaneously with the Arrow
-keys (see <xref href="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita">Selecting
-text</xref>).</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-BD3EF056-DE12-4500-8924-22427DAE2100"><title>Using
-text editing in C++ applications</title><p>The API to use for providing text
-editing functionality is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B35E6CAD-C9C8-467E-85CF-9781DEC8BF7C" xml:lang="en"><title>Text
+editing</title><shortdesc>This section describes the common principles of text editing, focusing
+on Latin based scripts. Requirements of other writing systems and input methods,
+such as those used for Chinese or Arabic, are not covered in detail.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Character input is accomplished using the keyboard. S60 supports both a
+full QWERTY keyboard and the ITU-T standard for numeric keypads. It specifies
+the mapping of Latin (English) characters to the keys, assigning three or
+four letters to each Numeric key from 2 to 9. The input of a specific character
+can happen either by repeated key presses within a time-out, or using some
+language-specific algorithm that tries to find the correct characters according
+to the produced key sequence.</p>
+<p>For more information on text input on touch devices, see <xref href="GUID-57B7DA8C-A62F-4C65-B754-47D9F5E76416.dita">Text
+input</xref>.</p>
+<p>Some keys, such as the star (*), hash (#) key, clear key, and edit key,
+have specific  functions assigned to them during text editing. The functions
+depend on the keyboard type (ITU-T or QWERTY) and whether text prediction
+or multi-tapping mode is active. The four available modes are:</p>
+<ul>
+<li><p>ITU-T in multi-tapping mode.</p></li>
+<li><p>ITU-T with text prediction ON.</p></li>
+<li><p>QWERTY keyboard with text prediction ON.</p></li>
+<li><p>QWERTY keyboard with text prediction OFF.</p></li>
+</ul>
+<table id="GUID-BFD539DB-0C98-4FAF-85CC-63EC012C9F48"><title>Specific key
+functions on ITU-T keypad</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry><p>Key</p></entry>
+<entry><p>Function on ITU-T keypad</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Numeric key 1</p></entry>
+<entry><p>Punctuation. The most used punctuation characters are available
+using repeated key presses within a time-out.</p></entry>
+</row>
+<row>
+<entry><p>Star (*) key</p></entry>
+<entry><p>In the alpha mode, offers the next match in Predictive Text input.
+In the alpha mode, a long press opens the special characters table, where
+the complete set of punctuation and other characters are displayed. One character
+can be picked at a time with Selection key. It is also possible to feed in
+more than one character without having to re-open the list by pressing 5 on
+the desired characters one after another and completing the selection by pressing
+Selection key on the last item. In a typical number mode, produces a * character,
+repeated presses produce other characters allowed within phone numbers: +,
+p, w.</p><p>In devices with no Edit key, a short press of the Star (*) key
+opens the editing menu and a long press opens the special characters table.</p></entry>
+</row>
+<row>
+<entry><p>Hash (#) key</p></entry>
+<entry><p>In the alpha mode, changes the character case (upper case, lower
+case, text case). In a typical number mode, produces a # character.In devices
+with no Edit key, a short press changes the current case and the text prediction
+mode (ON/OFF), and a long key press (together with the Arrow keys) selects
+text.</p></entry>
+</row>
+<row>
+<entry><p>Clear key</p></entry>
+<entry><p>Clears the previous character from the cursor. In case more characters
+are selected, clears all the selected characters.</p></entry>
+</row>
+<row>
+<entry><p>Edit key </p></entry>
+<entry><p>Press and release: opens the editing menu (see <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
+menu</xref>). Selects characters when pressed simultaneously with the Arrow
+keys (see <xref href="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita">Selecting
+text</xref>).</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-BD3EF056-DE12-4500-8924-22427DAE2100"><title>Using
+text editing in applications</title><p>The API to use for providing text editing
+functionality is the <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html" scope="peer">Editors API</xref>. For implementation information, see <xref format="html" href="specs/guides/Editors_API_Specification/Editors_API_Specification.html#Editors_API_Specification.topic3" scope="peer">Using the Editors API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B3760707-2810-4CD9-82C7-6A40DE638D36.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B3760707-2810-4CD9-82C7-6A40DE638D36.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B3760707-2810-4CD9-82C7-6A40DE638D36" xml:lang="en"><title>Submenu
-indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A submenu is at times used for changing the mode or temporary settings
-in applications. Radio buttons are used when only one item may be selected
-and tick marks are used where the user can choose more than one item. The
-indicators show the currently active mode or settings when the submenu is
-opened.</p>
-<fig id="GUID-8FB52F80-B668-4377-9FD0-45C9B0EAF266">
-<title>Submenu indicators: radio buttons</title>
-<image href="GUID-3978E21E-9B7A-4BEA-9B0A-10C247F6451B_d0e65859_href.png" scale="40" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B3760707-2810-4CD9-82C7-6A40DE638D36" xml:lang="en"><title>Submenu
+indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A submenu is at times used for changing the mode or temporary settings
+in applications. Radio buttons are used when only one item may be selected
+and tick marks are used where the user can choose more than one item. The
+indicators show the currently active mode or settings when the submenu is
+opened.</p>
+<fig id="GUID-F40CE011-C433-4D9B-9705-C7DFE86BEBE8">
+<title>Submenu indicators: radio buttons</title>
+<image href="GUID-6820BB9E-F0B9-4493-A4C3-686238527C9B_d0e60647_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B386CA7A-F527-5584-9455-371E623DCF76.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B386CA7A-F527-5584-9455-371E623DCF76.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,172 +1,163 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B386CA7A-F527-5584-9455-371E623DCF76" xml:lang="en"><title> System
-Start Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-e4fe3134-4d3b-443f-80fe-374972df6f9b.zip" scope="external"> SysStart.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-e4fe3134-4d3b-443f-80fe-374972df6f9b.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-F3EFB022-A771-50D2-9C36-FFEFA4924441"><title> Description</title> <p>This
-example demonstrates the use of resource files at the time of System Start-up.
-System starter is an architecture designed to provide a consistent, transparent,
-easily customisable method of starting components (i.e. servers and applications)
-at device boot. It allows an ordering of components according to criticality
-and dependency by means of a Static Start-up Configuration (SSC). </p> </section>
-<section><title>Related APIs</title><p><xref href="GUID-478D0251-D49B-36C5-B9DF-09FFFE7CDB53.dita#GUID-478D0251-D49B-36C5-B9DF-09FFFE7CDB53/GUID-E99F5505-FC87-3232-A933-4C522C04931A"><apiname>egSysStart::E32Main () </apiname></xref></p><p><xref href="GUID-478D0251-D49B-36C5-B9DF-09FFFE7CDB53.dita#GUID-478D0251-D49B-36C5-B9DF-09FFFE7CDB53/GUID-54F036C5-D86E-34B0-B74A-AD4DF2328086"><apiname>egSysStart::Simple
-()</apiname></xref></p></section>
-<section id="GUID-693F8259-B441-50F2-8E2A-EB2A57E5665A"><title>Resource files</title> <p>In
-this example a resource file <codeph>SSCForStartupMode0.rss</codeph> is used
-at Start-up. </p> <p>On a target device booting normally, the SSC <codeph>SSCForStartupMode0.rss</codeph> is
-always used for start-up. This SSC is associated with startup mode zero, which
-is defined as <xref href="GUID-6866563D-8AF5-3F3F-A777-50B264194B83.dita"><apiname>EStartupModeUndefined</apiname></xref> in e32modes.h. The
-System Starter architecture provides an ability to select between a number
-of static Start-up configurations (rss files) depending on the desired Start-up
-Mode, for example: Full, Emergency, Charging, or Test. Each of these modes
-may require different sets of components and order of execution. </p> <p>The
-start-up process in the resource file is staged via an ordering of Start-up
-States or phases. These states cannot be removed or their values altered.
-They appear in the following order: </p> <p> <xref href="GUID-F4C1F118-3580-3D25-AB14-DAD8D20CF302.dita"><apiname>EStartupStateUndefined</apiname></xref> –
-Value before the system enters its first state/ undefined state. </p> <p> <xref href="GUID-DA625784-61CA-3256-9D93-EB447BF9AA62.dita"><apiname>EStartupStateCriticalStatic</apiname></xref> –
-Within this Start-up State all ROM based (static) components or resources
-that are critical to the operation of the phone function are started. </p> <p> <xref href="GUID-737BC60E-ECA2-3B22-A0A4-5F6F5136D6F0.dita"><apiname>EStartupStateCriticalDynamic</apiname></xref> –
-Within this Start-up State all non-ROM based (dynamic) components or resources
-that are critical to the operation of the phone function are started. </p> <p> <xref href="GUID-3C0E080D-7FF1-3347-B129-D2805FCD7840.dita"><apiname>EStartupStateNonCritical</apiname></xref> –
-Within this Start-up State all ROM based (static) or non-ROM based (dynamic)
-components or resources that are non-critical to the operation of the phone
-function are started. All components that have not already been started and
-are required at device boot are started in this Start-up State. </p> <p>This
-allows start-up to be split into separate, distinct states with a defined
-order. Within each state, a <codeph>STATE_INFO</codeph> structure containing
-information regarding that state is located. This contains the following information: </p> <table id="GUID-A370B739-910B-55E5-9C92-FAC72362FDCB">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <codeph>Id</codeph>  </p> </entry>
-<entry><p>The id of the state as defined in the custom header file </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>Name</codeph>  </p> </entry>
-<entry><p>A text string describing the state </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>Command_list</codeph>  </p> </entry>
-<entry><p>The name of the Command array in the SSC which contains the list
-of Commands to invoke in that state </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>Next</codeph>  </p> </entry>
-<entry><p>The name of the Command array corresponding to the next state </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>Following the <codeph>STATE_INFO</codeph> structure in the SSC
-is a <codeph>COMMAND_ARRAY</codeph> structure. This contains details of all
-commands to be executed within that list. Its name matches the command_list
-identifier in the <codeph>STATE_INFO</codeph> struct and contains one array
-entry: Commands. The Command entry contains a list of all commands to be executed.
-Each instance in the rss file is headed with the <codeph>START_PROCESS_INFO </codeph> identifier
-and contains any value needed to override the defaults specified in <codeph>startup.rh</codeph>. </p> <table id="GUID-7E7519BC-54C9-59E7-AB07-46748C6F7A44">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><codeblock id="GUID-44EDEC24-A19F-5991-9528-11804376ABB2" xml:space="preserve">Type</codeblock> </entry>
-<entry><p>Set by default. Should not be specified in the SSC. </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-7559D8D5-DD16-5E7B-86EB-0337ED7ACCE7" xml:space="preserve">Path</codeblock> </entry>
-<entry><p>The location of the binary e.g. path = "Z:\sys\bin\fbserv.exe" </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-C4C5EE86-3E58-552B-8607-F1AC8B6EDCD1" xml:space="preserve">Args</codeblock> </entry>
-<entry><p>Arguments passed to the process. </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-6C04D96F-6B77-5368-9B48-9BC9D35B6710" xml:space="preserve">start_method</codeblock> </entry>
-<entry><p>The enum <codeph>TStartupCommandType</codeph> is defined in <codeph>startup.hrh</codeph>.
-Currently it takes one of three values: </p> <ul>
-<li id="GUID-EB15D58C-A9FC-5C92-A5F6-23CA7D547C86"><p> <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> (the
-default) </p> </li>
-<li id="GUID-FC24705E-4144-5FCA-AA4D-04871C5ED6F9"><p> <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref>  </p> </li>
-<li id="GUID-BE71C616-0E0B-5916-9058-43B0CA5A278F"><p> <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref>  </p> </li>
-</ul> <p>Use <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> if there is no need for the
-process to be started serially in other words as soon as the process has been
-invoked, the System Starter can continue with starting the next process without
-waiting for the process to rendezvous. </p> <p>Use <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> if
-the process needs to get to a certain stage before starting the next process.
-The starter cannot continue with the next Command until a rendezvous has been
-made with the first process. </p> <p>Note that the apparc component must be
-started with mode <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> to allow connection with
-the server to take place. </p> <p>Use <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> if
-there is no need to start the process serially, but at a later stage there
-is a command which cannot be invoked until this process has initialized. Using
-this value allows a number of commands to be started and the System Starter
-to wait for them all at a later point in the SSC. This ensures later on that
-the initializations of all <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> commands
-have completed. </p> <p> <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> and <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> depend
-upon receiving a rendezvous from the started process. By default this is performed
-automatically by EikonEnv. If however, you wish your component to perform
-its own rendezvous, then the following function should be overridden in your
-AppUi class and return <codeph>EFalse.</codeph>  </p> <p> <codeph>TBool CCoeAppUi::FrameworkCallsRendezvous();</codeph>  </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-1E9E11D2-3BAA-54F2-9481-6A1987CF4100" xml:space="preserve">timeout</codeblock> </entry>
-<entry><p>This field is for use with start_method <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> only. </p> <p>Indicate
-if a timer should be started when attempting to start the process by filling
-in this timeout value in milliseconds. The value is 0 by default indicating
-that no timer will be started. </p> <p>Note that if the timer expires before
-a rendezvous with the component is made, the component will be killed. If
-the component is a critical process this will result in a Kern:4 Panic (which
-on licensee phones usually initiates in a system restart). </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-CFDA47D2-551B-5215-8854-6FC63433A22B" xml:space="preserve">retry_failure_recovery_method</codeblock> </entry>
-<entry><p>This specifies the action to take if an error is returned from an
-attempt to start the process. </p> <p>It is set to <xref href="GUID-644CC7B0-3B94-307A-A5A1-D7EC78F10105.dita"><apiname>ERestartOS</apiname></xref> by
-default. This means if the process fails to start the system will restart
-in the default start-up mode. </p> <p>If it is set to <xref href="GUID-1E757E7A-98C8-3455-8D82-28A24FBEA729.dita"><apiname>EIgnoreOnFailure</apiname></xref> then
-the starter will continue with the next Command. This option is intended for
-non-critical components on which nothing critical is dependent. </p> <p>If
-it is set to <xref href="GUID-D7BCDD4C-97A0-3068-AC4C-F10DA31DD636.dita"><apiname>ERestartOSWithMode</apiname></xref> the system will be restarted
-in a specific start-up mode. </p> <p>Note: this field has a slightly different
-use depending on the start mode: in modes <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> and <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> a
-failure will be indicated only if there is an immediate error for example
-the initial process creation/invocation fails. In <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> a
-failure will also be indicated if there is no successful rendezvous. </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-33D3ABEE-9A48-51B7-BFB7-6CEF2AED8DAE" xml:space="preserve">no_of_retries_on_failure</codeblock> </entry>
-<entry><p>For use with start_method <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> only.
-Set to 0 by default. </p> <p>This specifies the maximum number of times the
-starter should try to start a failed process. After the process has been retried
-the specified number of times, the starter will act according to the value
-in the <codeph>retry_failure_recovery_method</codeph> field. This is used
-in conjunction with the timeout value. </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-782C1BA6-D764-5C6C-A232-9CCD5C22AEA3" xml:space="preserve">monitor</codeblock> </entry>
-<entry><p>Indicates whether the started process should be monitored for failure
-by the System Monitor component. The value is 0 by default indicating that
-no monitoring will be done. </p> <p>A value of 1 indicates monitoring should
-be performed. The recovery policy set by <codeph>retry_failure_recovery_method</codeph> (and
-if applicable retry_failure_recovery_startup_mode) will be used by the System
-Monitor if a failure occurs to this process during the lifetime of the system. </p> <p>Note:
-if the component being started is a System Critical process, monitoring must
-not be enabled. </p> </entry>
-</row>
-<row>
-<entry><codeblock id="GUID-8305C64D-3198-5C5B-9AD4-C774D38B9369" xml:space="preserve">retry_failure_recovery_startup_mode</codeblock> </entry>
-<entry><p>For use with retry_failure_recovery_method <xref href="GUID-D7BCDD4C-97A0-3068-AC4C-F10DA31DD636.dita"><apiname>ERestartOSWithMode</apiname></xref> only. </p> <p>Used
-to specify the start-up mode the system should restart with. This is set to <xref href="GUID-6866563D-8AF5-3F3F-A777-50B264194B83.dita"><apiname>EStartupModeUndefined</apiname></xref> by
-default. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B386CA7A-F527-5584-9455-371E623DCF76" xml:lang="en"><title> System Start Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-1B233701-DF98-46DD-A9F0-1DBBBD8F07E3"><title>Download</title> <p>Click on the following link to
+download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-e4fe3134-4d3b-443f-80fe-374972df6f9b.zip" scope="external"> SysStart.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-e4fe3134-4d3b-443f-80fe-374972df6f9b.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-F3EFB022-A771-50D2-9C36-FFEFA4924441"><title> Description</title> <p>This example demonstrates the use of resource files at the time
+of System Start-up. System starter is an architecture designed to
+provide a consistent, transparent, easily customisable method of starting
+components (i.e. servers and applications) at device boot. It allows
+an ordering of components according to criticality and dependency
+by means of a Static Start-up Configuration (SSC). </p> </section>
+<section id="GUID-9C5B0C4B-32F9-4F39-8C3E-F5188A6D54AA"><title>Related APIs</title><ul>
+<li><p><codeph>egSysStart::E32Main ()</codeph></p></li>
+<li><p><codeph>egSysStart::Simple ()</codeph></p></li>
+</ul></section>
+<section id="GUID-693F8259-B441-50F2-8E2A-EB2A57E5665A"><title>Resource
+files</title> <p>In this example a resource file <codeph>SSCForStartupMode0.rss</codeph> is used at Start-up. </p> <p>On a target device booting normally,
+the SSC <codeph>SSCForStartupMode0.rss</codeph> is always used for
+start-up. This SSC is associated with startup mode zero, which is
+defined as <xref href="GUID-6866563D-8AF5-3F3F-A777-50B264194B83.dita"><apiname>EStartupModeUndefined</apiname></xref> in e32modes.h.
+The System Starter architecture provides an ability to select between
+a number of static Start-up configurations (rss files) depending on
+the desired Start-up Mode, for example: Full, Emergency, Charging,
+or Test. Each of these modes may require different sets of components
+and order of execution. </p> <p>The start-up process in the resource
+file is staged via an ordering of Start-up States or phases. These
+states cannot be removed or their values altered. They appear in the
+following order: </p> <p> <xref href="GUID-D3303938-1F27-319A-836A-FE4242E91696.dita#GUID-D3303938-1F27-319A-836A-FE4242E91696/GUID-96874644-A26A-36E6-AFE4-568B2DA8C2E5"><apiname>TStartupCommandType::EStartupStateUndefined</apiname></xref> – Value before the system enters its first state/ undefined state. </p> <p> <xref href="GUID-D3303938-1F27-319A-836A-FE4242E91696.dita#GUID-D3303938-1F27-319A-836A-FE4242E91696/GUID-1FF1DBF6-7AB1-33E0-8D10-AADE02B7D440"><apiname>TStartupCommandType::EStartupStateCriticalStatic</apiname></xref> – Within this Start-up State all ROM based (static) components or
+resources that are critical to the operation of the phone function
+are started. </p> <p> <xref href="GUID-D3303938-1F27-319A-836A-FE4242E91696.dita#GUID-D3303938-1F27-319A-836A-FE4242E91696/GUID-A5FB6340-2EA8-32A3-8138-95DD326BC123"><apiname>TStartupCommandType::EStartupStateCriticalDynamic</apiname></xref> – Within this Start-up State all non-ROM based (dynamic) components
+or resources that are critical to the operation of the phone function
+are started. </p> <p> <xref href="GUID-D3303938-1F27-319A-836A-FE4242E91696.dita#GUID-D3303938-1F27-319A-836A-FE4242E91696/GUID-5883EFE6-36A6-30EB-851B-9FD26C1C9B03"><apiname>TStartupCommandType::EStartupStateNonCritical</apiname></xref> – Within this Start-up State all ROM based (static) or non-ROM based
+(dynamic) components or resources that are non-critical to the operation
+of the phone function are started. All components that have not already
+been started and are required at device boot are started in this Start-up
+State. </p> <p>This allows start-up to be split into separate, distinct
+states with a defined order. Within each state, a <codeph>STATE_INFO</codeph> structure containing information regarding that state is located.
+This contains the following information: </p> <table id="GUID-A370B739-910B-55E5-9C92-FAC72362FDCB">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <codeph>Id</codeph>  </p> </entry>
+<entry><p>The id of the state as defined in the custom header file </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Name</codeph>  </p> </entry>
+<entry><p>A text string describing the state </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Command_list</codeph>  </p> </entry>
+<entry><p>The name of the Command array in the SSC which contains
+the list of Commands to invoke in that state </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Next</codeph>  </p> </entry>
+<entry><p>The name of the Command array corresponding to the next
+state </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>Following the <codeph>STATE_INFO</codeph> structure in
+the SSC is a <codeph>COMMAND_ARRAY</codeph> structure. This contains
+details of all commands to be executed within that list. Its name
+matches the command_list identifier in the <codeph>STATE_INFO</codeph> struct and contains one array entry: Commands. The Command entry
+contains a list of all commands to be executed. Each instance in the
+rss file is headed with the <codeph>START_PROCESS_INFO </codeph> identifier
+and contains any value needed to override the defaults specified in <codeph>startup.rh</codeph>. </p> <table id="GUID-7E7519BC-54C9-59E7-AB07-46748C6F7A44">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><codeblock id="GUID-44EDEC24-A19F-5991-9528-11804376ABB2" xml:space="preserve">Type</codeblock> </entry>
+<entry><p>Set by default. Should not be specified in the SSC. </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-7559D8D5-DD16-5E7B-86EB-0337ED7ACCE7" xml:space="preserve">Path</codeblock> </entry>
+<entry><p>The location of the binary e.g. path = "Z:\sys\bin\fbserv.exe" </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-C4C5EE86-3E58-552B-8607-F1AC8B6EDCD1" xml:space="preserve">Args</codeblock> </entry>
+<entry><p>Arguments passed to the process. </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-6C04D96F-6B77-5368-9B48-9BC9D35B6710" xml:space="preserve">start_method</codeblock> </entry>
+<entry><p>The enum <codeph>TStartupCommandType</codeph> is defined
+in <codeph>startup.hrh</codeph>. Currently it takes one of three values: </p> <ul>
+<li id="GUID-EB15D58C-A9FC-5C92-A5F6-23CA7D547C86"><p> <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> (the default) </p> </li>
+<li id="GUID-FC24705E-4144-5FCA-AA4D-04871C5ED6F9"><p> <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref>  </p> </li>
+<li id="GUID-BE71C616-0E0B-5916-9058-43B0CA5A278F"><p> <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref>  </p> </li>
+</ul> <p>Use <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> if there is no need
+for the process to be started serially in other words as soon as the
+process has been invoked, the System Starter can continue with starting
+the next process without waiting for the process to rendezvous. </p> <p>Use <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> if the process needs to
+get to a certain stage before starting the next process. The starter
+cannot continue with the next Command until a rendezvous has been
+made with the first process. </p> <p>Note that the apparc component
+must be started with mode <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> to allow
+connection with the server to take place. </p> <p>Use <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> if there is no need to start the process serially, but at a later
+stage there is a command which cannot be invoked until this process
+has initialized. Using this value allows a number of commands to be
+started and the System Starter to wait for them all at a later point
+in the SSC. This ensures later on that the initializations of all <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> commands have completed. </p> <p> <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> and <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> depend upon receiving a rendezvous from the started process. By
+default this is performed automatically by EikonEnv. If however, you
+wish your component to perform its own rendezvous, then the following
+function should be overridden in your AppUi class and return <codeph>EFalse.</codeph>  </p> <p> <codeph>TBool CCoeAppUi::FrameworkCallsRendezvous();</codeph>  </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-1E9E11D2-3BAA-54F2-9481-6A1987CF4100" xml:space="preserve">timeout</codeblock> </entry>
+<entry><p>This field is for use with start_method <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> only. </p> <p>Indicate if a timer should be started when attempting
+to start the process by filling in this timeout value in milliseconds.
+The value is 0 by default indicating that no timer will be started. </p> <p>Note that if the timer expires before a rendezvous with the component
+is made, the component will be killed. If the component is a critical
+process this will result in a Kern:4 Panic (which on licensee phones
+usually initiates in a system restart). </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-CFDA47D2-551B-5215-8854-6FC63433A22B" xml:space="preserve">retry_failure_recovery_method</codeblock> </entry>
+<entry><p>This specifies the action to take if an error is returned
+from an attempt to start the process. </p> <p>It is set to <xref href="GUID-644CC7B0-3B94-307A-A5A1-D7EC78F10105.dita"><apiname>ERestartOS</apiname></xref> by default. This means if the process fails
+to start the system will restart in the default start-up mode. </p> <p>If it is set to <xref href="GUID-1E757E7A-98C8-3455-8D82-28A24FBEA729.dita"><apiname>EIgnoreOnFailure</apiname></xref> then the
+starter will continue with the next Command. This option is intended
+for non-critical components on which nothing critical is dependent. </p> <p>If it is set to <xref href="GUID-D7BCDD4C-97A0-3068-AC4C-F10DA31DD636.dita"><apiname>ERestartOSWithMode</apiname></xref> the system
+will be restarted in a specific start-up mode. </p> <p>Note: this
+field has a slightly different use depending on the start mode: in
+modes <xref href="GUID-119A71D6-F979-345B-8AC7-7768F68A36BE.dita"><apiname>EFireAndForget</apiname></xref> and <xref href="GUID-3C5930DE-E84C-3170-AC5A-BCFC16D6AE77.dita"><apiname>EDeferredWaitForStart</apiname></xref> a failure will be indicated only if there is an immediate error
+for example the initial process creation/invocation fails. In <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> a failure will also be indicated if there
+is no successful rendezvous. </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-33D3ABEE-9A48-51B7-BFB7-6CEF2AED8DAE" xml:space="preserve">no_of_retries_on_failure</codeblock> </entry>
+<entry><p>For use with start_method <xref href="GUID-8415D00B-79D9-36BE-9F0B-2DAA3A553CD2.dita"><apiname>EWaitForStart</apiname></xref> only. Set to 0 by default. </p> <p>This specifies the maximum number
+of times the starter should try to start a failed process. After the
+process has been retried the specified number of times, the starter
+will act according to the value in the <codeph>retry_failure_recovery_method</codeph> field. This is used in conjunction with the timeout value. </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-782C1BA6-D764-5C6C-A232-9CCD5C22AEA3" xml:space="preserve">monitor</codeblock> </entry>
+<entry><p>Indicates whether the started process should be monitored
+for failure by the System Monitor component. The value is 0 by default
+indicating that no monitoring will be done. </p> <p>A value of 1 indicates
+monitoring should be performed. The recovery policy set by <codeph>retry_failure_recovery_method</codeph> (and if applicable retry_failure_recovery_startup_mode)
+will be used by the System Monitor if a failure occurs to this process
+during the lifetime of the system. </p> <p>Note: if the component
+being started is a System Critical process, monitoring must not be
+enabled. </p> </entry>
+</row>
+<row>
+<entry><codeblock id="GUID-8305C64D-3198-5C5B-9AD4-C774D38B9369" xml:space="preserve">retry_failure_recovery_startup_mode</codeblock> </entry>
+<entry><p>For use with retry_failure_recovery_method <xref href="GUID-D7BCDD4C-97A0-3068-AC4C-F10DA31DD636.dita"><apiname>ERestartOSWithMode</apiname></xref> only. </p> <p>Used to specify the start-up mode the system should
+restart with. This is set to <xref href="GUID-6866563D-8AF5-3F3F-A777-50B264194B83.dita"><apiname>EStartupModeUndefined</apiname></xref> by default. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,242 +1,244 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324" xml:lang="en"><title>Language-Neutral
-Files</title><abstract><p>Language-Neutral files are files that are required to be installed
-irrespective of the languages supported on the Symbian device.</p><p>This
-Language-Neutral files section specifies the location and name of each file
-on the PC and its target location on the Symbian device. Files are installed
-in the order in which they are specified in the PKG file. </p></abstract><prolog><metadata><keywords/></metadata></prolog><refbody>
-<refsyn id="GUID-744D2F39-8483-44C0-B335-03882385063E"><title>Syntax</title> <codeblock id="GUID-8B696DC5-3F23-5AD6-AECC-651887995037" xml:space="preserve">"source-filename" - "destination-filename"[, install-options]</codeblock> <p>where </p> <table id="GUID-B9A07521-29B4-5F5C-925F-B261E52FB1D6">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <b>Argument</b>  </p> </entry>
-<entry><p> <b>Description</b>  </p> </entry>
-</row>
-<row>
-<entry><p>source-filename </p> </entry>
-<entry><p>Specifies the name and location of the file on computer that must
-be included in the SIS file. </p> </entry>
-</row>
-<row>
-<entry><p>destination-filename </p> </entry>
-<entry><p>Specifies the location on the Symbian device, to which the file
-must be installed. See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-1584AED6-8583-51FC-AF7A-24C135DDC5AA">destination-filename</xref> for more information. </p> </entry>
-</row>
-<row>
-<entry><p>install-options </p> </entry>
-<entry><p>Specifies the type of file and how it affects the installation or
-removal. It is an optional comma-separated list. See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-E2911CFD-7B9D-55B7-86D1-4DA68870944D">install-options</xref>, for more information. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-1584AED6-8583-51FC-AF7A-24C135DDC5AA"><b>destination-filename</b> </p> <p>The <codeph>destination-filename</codeph> must
-specify the full path. A <codeph>!</codeph> character can be used instead
-of a drive letter to enable the Symbian device user to install the file to
-any required location. As an alternative to <codeph>!</codeph>, the <codeph>$</codeph> character
-can be used to denote the system drive. </p> <p>The <codeph>destination-filename</codeph> must
-not be specified if the file is not required to be installed. For example,
-a text file containing a licence agreement to be displayed during the installation
-must not include destination-filename and can be specified with empty quotes. </p> <p>If
-a file can be installed by other packages, for example, a shared DLL, it is
-recommended to install it using an embedded SIS file. </p> <p>The <codeph>destination-filename</codeph> can
-be specified in one of the following formats: </p> <codeblock id="GUID-D15405BA-B72F-5985-8713-966A33F4B257" xml:space="preserve">"drive:path"</codeblock> <codeblock id="GUID-96AF5EF7-B7BA-5B98-83E8-55D49A4C36AF" xml:space="preserve">"!:path"</codeblock> <codeblock id="GUID-50AA0C70-D535-5436-8732-875D24196EA0" xml:space="preserve">""</codeblock> <p id="GUID-E2911CFD-7B9D-55B7-86D1-4DA68870944D"><b> install-options</b> </p> <p>The
-following table provides a list of the <codeph>install-options</codeph>. </p> <table id="GUID-947C0669-A1F7-52F7-985F-3F75FFBB17C4">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Abbreviation</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>FILE</codeph>  </p> </entry>
-<entry><p> <codeph>FF</codeph>  </p> </entry>
-<entry><p>Specifies a standard installable file. For example: </p> <codeblock id="GUID-923A445F-87A5-5D0C-8B28-A6656D7D8830" xml:space="preserve">"text\file1.txt"-"!:\private\E800005A\file1.txt", FF</codeblock> </entry>
-</row>
-<row>
-<entry><p> <codeph>FILETEXT</codeph>  </p> <p> <codeph>[,text-options]</codeph>  </p> </entry>
-<entry><p> <codeph>FT</codeph>  </p> <p> <codeph>[,text-options]</codeph>  </p> </entry>
-<entry><p>A text file that is displayed in a dialog box during installation.
-The dialog type is determined by the <codeph>text-options</codeph> specified.
-See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-E6210579-BFAB-505B-A99F-99175FA0F572">text-options</xref> for
-more information. </p> <p>Text files are not installed on the target device,
-so the target location is empty. An example <codeph>FILETEXT</codeph> line
-is: </p> <codeblock id="GUID-D0728FED-F1A1-5574-BC3B-A24B8A881760" xml:space="preserve">"text\textfilec.txt"-"", FT, TC</codeblock> <p>Any <codeph>FILETEXT</codeph> statements
-present in a PKG file for a preinstalled application are ignored by the software
-installer. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>FILERUN</codeph>  </p> <p> <codeph>[,run-options][,RUNWAITEND]</codeph>  </p> </entry>
-<entry><p> <codeph>FR</codeph>  </p> <p> <codeph>[,run-options][,RW]</codeph>  </p> </entry>
-<entry><p>Specifies a file that is installed on the Symbian device and run
-during installation or uninstallation of packages based on the <codeph>RI</codeph>, <codeph>RR</codeph> and <codeph>RB</codeph> arguments.
-For details, see <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-B913501B-A5AB-5ADB-96FF-8060DD45A87E">run-options</xref>. </p> <p>For
-example: </p> <codeblock id="GUID-D985FEB8-4E60-5897-AFE0-89D723EA9350" xml:space="preserve">"\epoc32\release\armv5\urel\zoom.exe"-"!:\sys\bin\zoom.exe", FILERUN, RUNINSTALL</codeblock> <p> <b>Notes</b>: </p> <ul>
-<li id="GUID-62883591-AE70-5ABA-B86B-232084BCACF1"><p>The file can be an executable
-or a document containing text. </p> </li>
-<li id="GUID-84B90271-D1A2-578B-AC19-52B04DC9284C"><p>The untrusted applications
-are run through the <codeph>FILERUN</codeph> (<codeph/><codeph>FR</codeph>)
-or <codeph>FILEMIME</codeph> (<codeph>FM</codeph>) statements based on configuration
-of the installation policy. </p> </li>
-</ul> </entry>
-</row>
-<row>
-<entry><p> <codeph>FILEMIME,</codeph>  </p> <p> <codeph>mime-type</codeph>  </p> <p> <codeph>,run-options</codeph>  </p> <p> <codeph>[,RUNWAITEND]</codeph>  </p> </entry>
-<entry><p> <codeph>FM,</codeph>  </p> <p> <codeph>mime-type</codeph>  </p> <p> <codeph>,run-options
-[,RW]</codeph>  </p> </entry>
-<entry><p>Instructs the installer to associate the file with the default application
-associated with the given MIME type, for example, <codeph>text or        
-             x-vCard</codeph> is required to be open for contact details. </p> <p>The
-MIME type in quotes must be specified after the <codeph>FM</codeph> argument. <codeph>FILEMIME</codeph> is
-intended for use with files that are launched during the installation or uninstallation
-and not for standard installation files. For example: </p> <codeblock id="GUID-94D600A6-C80A-5EBB-8240-D481CD24E27B" xml:space="preserve">"my_picture.gif"-"", FM, "image/gif", RI</codeblock> <p>The Software Installer ignores any <codeph>FILEMIME</codeph> statements
-present in a PKG file for a preinstalled application. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-E6210579-BFAB-505B-A99F-99175FA0F572"><b>text-options</b> </p> <p> <codeph>text-options</codeph> can
-be used after <codeph>FT</codeph> is specified. It is used by the UI to determine
-the type of dialog that is used to display the text. It can have one of the
-following values. </p> <table id="GUID-2DDEC392-244A-505C-B102-EBE19D8A3CC3">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Abbreviation</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>TEXTCONTINUE</codeph>  </p> </entry>
-<entry><p> <codeph>TC</codeph>  </p> </entry>
-<entry><p>It is recommended that the UI displays a dialog containing a <codeph>Continue</codeph> button. </p> <p>The
-installation continues regardless of the return value of the dialog. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>TEXTABORT</codeph>  </p> </entry>
-<entry><p> <codeph>TA</codeph>  </p> </entry>
-<entry><p>It is recommended that the UI displays a dialog containing <codeph>Yes</codeph> /<codeph>No</codeph> buttons. </p> <p>The
-software installer continues with the installation if the dialog returns true
-(if the Symbian device user selects <codeph>Yes</codeph>). It aborts the installation
-if the dialog returns false (if the Symbian device user selects <codeph>No</codeph>). </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>TEXTEXIT</codeph>  </p> </entry>
-<entry><p> <codeph>TE</codeph>  </p> </entry>
-<entry><p>Same as <codeph>TEXTABORT</codeph>. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>FORCEABORT</codeph>  </p> </entry>
-<entry><p> <codeph> FA </codeph>  </p> </entry>
-<entry><p>It is recommended that the UI displays a dialog containing a <codeph>ForceAbort</codeph> button. </p> <p>On
-selecting this dialog, it aborts the installation. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>TEXTSKIP</codeph></p></entry>
-<entry><p><codeph>TS</codeph></p></entry>
-<entry><p>It is recommended that the UI displays a dialog containing <codeph>Yes</codeph> /<codeph>No</codeph> buttons. </p><p>The
-software installer continues the installation without skipping
-the file mentioned in the next statement if the dialog returns true (if the
-Symbian device user selects <codeph>Yes</codeph>). It skips the installation
-of the file mentioned in the next statement if the dialog returns false (if
-the Symbian device user selects <codeph>No</codeph>).</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p> <b>Note</b>: UIs can implement installation dialogs differently,
-so you must refer to the UI SDK for details about the actual behaviour. </p> <p id="GUID-B913501B-A5AB-5ADB-96FF-8060DD45A87E"><b>run-options</b> </p> <p> <codeph> run-options</codeph> can
-be used after <codeph>FR</codeph> or <codeph>FM</codeph> has been specified.
-It can be any of the following: </p> <table id="GUID-7B193CA1-4057-5680-93E3-9DC931924D3B">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Abbreviation</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>RUNINSTALL</codeph>  </p> </entry>
-<entry><p> <codeph>RI</codeph>  </p> </entry>
-<entry><p>Run on install </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>RUNREMOVE</codeph>  </p> </entry>
-<entry><p> <codeph>RR</codeph>  </p> </entry>
-<entry><p>Run on uninstall and upgrade </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>RUNBOTH</codeph>  </p> </entry>
-<entry><p> <codeph>RB</codeph>  </p> </entry>
-<entry><p>Run on install, uninstall and upgrade </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>RUNBEFORESHUTDOWN</codeph>  </p> </entry>
-<entry><p> <codeph>RBS</codeph>  </p> </entry>
-<entry><p>Run on uninstall before the applications in the package are shut
-down </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>Optionally, <codeph>RW</codeph> (or <codeph>RUNWAITEND</codeph>)
-can be specified in addition to the <codeph>run-options</codeph>. If this
-option is specified, the installation server waits for the program to terminate
-before continuing with the install. If this option is not specified, the installation
-server runs the program and continues with the installation. The program is
-shut down after the installation is complete. </p><p>When uninstalling a package
-with a <codeph>RUNREMOVE</codeph> or <codeph>RUNBOTH</codeph> executable specified,
-the installation server always waits for the executable to terminate or timeout
-before continuing with the uninstall.</p> <p><b>Verification options</b> </p> <p>The
-following option is available for checking the integrity of a file at restore
-time: </p> <table id="GUID-78249B09-3D1C-5A89-AC4B-BA53DA2ACA4F">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Name</entry>
-<entry>Abbreviation</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <codeph>VERIFY</codeph>  </p> </entry>
-<entry><p> <codeph>VR</codeph>  </p> </entry>
-<entry><p>This flag is necessary if the integrity of a file installed in a
-directory outside <filepath>\sys</filepath> or <filepath>\restore</filepath> needs
-to be verified at restore time. For example, an application can check this
-flag to verify that a security policy file restored to its private directory
-is identical to the file delivered by the SIS file. </p> <p>The following
-example illustrates the usage of this option: </p> <codeblock id="GUID-1E310E2B-94BB-5877-91E6-14C5895BCF91" xml:space="preserve">"data\ups_01041000_01041001.rsc"-
-"$:\private\10283558\policies\ups_01041000_01041001.rsc", VERIFY</codeblock> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-90E6B97B-3A6A-5D88-80D1-B66248C82543"><b>Import and Private
-Directories</b> </p> <p>The software installer ensures that files are placed
-in appropriate areas of the file system. The following rules are applied: </p> <ul>
-<li id="GUID-F92635A7-7B97-5CA8-8C2C-E2E52CBB279C"><p>A package can only deliver
-a data file into the private directory belonging to any executable in the
-package. If a package delivers three executables: <codeph>SID1</codeph>, <codeph>SID2</codeph>, <codeph>SID3</codeph> (where
-SID stands for Secure ID), then data files can be delivered to <filepath>/private/SID1/</filepath>, <filepath>/private/SID2/</filepath>,
-or <filepath>/private/SID3/</filepath>. In an upgrade, this is possible by
-associating the upgrade package with the SIDs present in the original package
-unless one of the original executables is to be removed during the upgrade. </p> </li>
-<li id="GUID-AB6861A6-C1DB-5F82-B621-798D8C131417"><p>Any package can deliver
-a file into the <filepath>//private/SID/import</filepath> of an entirely unrelated
-package. However, replacement and eclipsing rules apply. </p> </li>
-</ul> </refsyn>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324" xml:lang="en"><title>Language-Neutral
+Files</title><abstract><p>Language-Neutral files are files that are required to be installed
+irrespective of the languages supported on the Symbian device.</p><p>This
+Language-Neutral files section specifies the location and name of each file
+on the PC and its target location on the Symbian device. Files are installed
+in the order in which they are specified in the PKG file. </p></abstract><prolog><metadata><keywords/></metadata></prolog><refbody>
+<refsyn id="GUID-744D2F39-8483-44C0-B335-03882385063E"><title>Syntax</title> <codeblock id="GUID-8B696DC5-3F23-5AD6-AECC-651887995037" xml:space="preserve">"source-filename" - "destination-filename"[, install-options]</codeblock> <p>where </p> <table id="GUID-B9A07521-29B4-5F5C-925F-B261E52FB1D6">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Argument</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p>source-filename </p> </entry>
+<entry><p>Specifies the name and location of the file on computer that must
+be included in the SIS file. </p> </entry>
+</row>
+<row>
+<entry><p>destination-filename </p> </entry>
+<entry><p>Specifies the location on the Symbian device, to which the file
+must be installed. See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-1584AED6-8583-51FC-AF7A-24C135DDC5AA">destination-filename</xref> for more information. </p> </entry>
+</row>
+<row>
+<entry><p>install-options </p> </entry>
+<entry><p>Specifies the type of file and how it affects the installation or
+removal. It is an optional comma-separated list. See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-E2911CFD-7B9D-55B7-86D1-4DA68870944D">install-options</xref>, for more information. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-1584AED6-8583-51FC-AF7A-24C135DDC5AA"><b>destination-filename</b> </p> <p>The <codeph>destination-filename</codeph> must
+specify the full path. A <codeph>!</codeph> character can be used instead
+of a drive letter to enable the Symbian device user to install the file to
+any required location. As an alternative to <codeph>!</codeph>, the <codeph>$</codeph> character
+can be used to denote the system drive. </p> <p>The <codeph>destination-filename</codeph> must
+not be specified if the file is not required to be installed. For example,
+a text file containing a licence agreement to be displayed during the installation
+must not include destination-filename and can be specified with empty quotes. </p> <p>If
+a file can be installed by other packages, for example, a shared DLL, it is
+recommended to install it using an embedded SIS file. </p> <p>The <codeph>destination-filename</codeph> can
+be specified in one of the following formats: </p> <codeblock id="GUID-D15405BA-B72F-5985-8713-966A33F4B257" xml:space="preserve">"drive:path"</codeblock> <codeblock id="GUID-96AF5EF7-B7BA-5B98-83E8-55D49A4C36AF" xml:space="preserve">"!:path"</codeblock> <codeblock id="GUID-50AA0C70-D535-5436-8732-875D24196EA0" xml:space="preserve">""</codeblock> <p id="GUID-E2911CFD-7B9D-55B7-86D1-4DA68870944D"><b> install-options</b> </p> <p>The
+following table provides a list of the <codeph>install-options</codeph>. </p> <table id="GUID-947C0669-A1F7-52F7-985F-3F75FFBB17C4">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Abbreviation</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <codeph>FILE</codeph>  </p> </entry>
+<entry><p> <codeph>FF</codeph>  </p> </entry>
+<entry><p>Specifies a standard installable file. For example: </p> <codeblock id="GUID-923A445F-87A5-5D0C-8B28-A6656D7D8830" xml:space="preserve">"text\file1.txt"-"!:\private\E800005A\file1.txt", FF</codeblock> </entry>
+</row>
+<row>
+<entry><p> <codeph>FILETEXT</codeph>  </p> <p> <codeph>[,text-options]</codeph>  </p> </entry>
+<entry><p> <codeph>FT</codeph>  </p> <p> <codeph>[,text-options]</codeph>  </p> </entry>
+<entry><p>A text file that is displayed in a dialog box during installation.
+The dialog type is determined by the <codeph>text-options</codeph> specified.
+See, <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-E6210579-BFAB-505B-A99F-99175FA0F572">text-options</xref> for
+more information. </p> <p>Text files are not installed on the target device,
+so the target location is empty. An example <codeph>FILETEXT</codeph> line
+is: </p> <codeblock id="GUID-D0728FED-F1A1-5574-BC3B-A24B8A881760" xml:space="preserve">"text\textfilec.txt"-"", FT, TC</codeblock> <p>Any <codeph>FILETEXT</codeph> statements
+present in a PKG file for a preinstalled application are ignored by the software
+installer. </p><p>For Unicode text files to be displayed correctly, it is
+recommended that the Byte Order Mark (BOM) be specified at the
+beginning of the text files.</p> </entry>
+</row>
+<row>
+<entry><p> <codeph>FILERUN</codeph>  </p> <p> <codeph>[,run-options][,RUNWAITEND]</codeph>  </p> </entry>
+<entry><p> <codeph>FR</codeph>  </p> <p> <codeph>[,run-options][,RW]</codeph>  </p> </entry>
+<entry><p>Specifies a file that is installed on the Symbian device and run
+during installation or uninstallation of packages based on the <codeph>RI</codeph>, <codeph>RR</codeph> and <codeph>RB</codeph> arguments.
+For details, see <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita#GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324/GUID-B913501B-A5AB-5ADB-96FF-8060DD45A87E">run-options</xref>. </p> <p>For
+example: </p> <codeblock id="GUID-D985FEB8-4E60-5897-AFE0-89D723EA9350" xml:space="preserve">"\epoc32\release\armv5\urel\zoom.exe"-"!:\sys\bin\zoom.exe", FILERUN, RUNINSTALL</codeblock> <p> <b>Notes</b>: </p> <ul>
+<li id="GUID-62883591-AE70-5ABA-B86B-232084BCACF1"><p>The file can be an executable
+or a document containing text. </p> </li>
+<li id="GUID-84B90271-D1A2-578B-AC19-52B04DC9284C"><p>The untrusted applications
+are run through the <codeph>FILERUN</codeph> (<codeph/><codeph>FR</codeph>)
+or <codeph>FILEMIME</codeph> (<codeph>FM</codeph>) statements based on configuration
+of the installation policy. </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p> <codeph>FILEMIME,</codeph>  </p> <p> <codeph>mime-type</codeph>  </p> <p> <codeph>,run-options</codeph>  </p> <p> <codeph>[,RUNWAITEND]</codeph>  </p> </entry>
+<entry><p> <codeph>FM,</codeph>  </p> <p> <codeph>mime-type</codeph>  </p> <p> <codeph>,run-options
+[,RW]</codeph>  </p> </entry>
+<entry><p>Instructs the installer to associate the file with the default application
+associated with the given MIME type, for example, <codeph>text or        
+             x-vCard</codeph> is required to be open for contact details. </p> <p>The
+MIME type in quotes must be specified after the <codeph>FM</codeph> argument. <codeph>FILEMIME</codeph> is
+intended for use with files that are launched during the installation or uninstallation
+and not for standard installation files. For example: </p> <codeblock id="GUID-94D600A6-C80A-5EBB-8240-D481CD24E27B" xml:space="preserve">"my_picture.gif"-"", FM, "image/gif", RI</codeblock> <p>The Software Installer ignores any <codeph>FILEMIME</codeph> statements
+present in a PKG file for a preinstalled application. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-E6210579-BFAB-505B-A99F-99175FA0F572"><b>text-options</b> </p> <p> <codeph>text-options</codeph> can
+be used after <codeph>FT</codeph> is specified. It is used by the UI to determine
+the type of dialog that is used to display the text. It can have one of the
+following values. </p> <table id="GUID-2DDEC392-244A-505C-B102-EBE19D8A3CC3">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Abbreviation</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <codeph>TEXTCONTINUE</codeph>  </p> </entry>
+<entry><p> <codeph>TC</codeph>  </p> </entry>
+<entry><p>It is recommended that the UI displays a dialog containing a <codeph>Continue</codeph> button. </p> <p>The
+installation continues regardless of the return value of the dialog. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TEXTABORT</codeph>  </p> </entry>
+<entry><p> <codeph>TA</codeph>  </p> </entry>
+<entry><p>It is recommended that the UI displays a dialog containing <codeph>Yes</codeph> /<codeph>No</codeph> buttons. </p> <p>The
+software installer continues with the installation if the dialog returns true
+(if the Symbian device user selects <codeph>Yes</codeph>). It aborts the installation
+if the dialog returns false (if the Symbian device user selects <codeph>No</codeph>). </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TEXTEXIT</codeph>  </p> </entry>
+<entry><p> <codeph>TE</codeph>  </p> </entry>
+<entry><p>Same as <codeph>TEXTABORT</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>FORCEABORT</codeph>  </p> </entry>
+<entry><p> <codeph> FA </codeph>  </p> </entry>
+<entry><p>It is recommended that the UI displays a dialog containing a <codeph>ForceAbort</codeph> button. </p> <p>On
+selecting this dialog, it aborts the installation. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>TEXTSKIP</codeph></p></entry>
+<entry><p><codeph>TS</codeph></p></entry>
+<entry><p>It is recommended that the UI displays a dialog containing <codeph>Yes</codeph> /<codeph>No</codeph> buttons. </p><p>The
+software installer continues the installation without skipping the file mentioned
+in the next statement if the dialog returns true (if the Symbian device user
+selects <codeph>Yes</codeph>). It skips the installation of the file mentioned
+in the next statement if the dialog returns false (if the Symbian device user
+selects <codeph>No</codeph>).</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <b>Note</b>: UIs can implement installation dialogs differently,
+so you must refer to the UI SDK for details about the actual behaviour. </p> <p id="GUID-B913501B-A5AB-5ADB-96FF-8060DD45A87E"><b>run-options</b> </p> <p> <codeph> run-options</codeph> can
+be used after <codeph>FR</codeph> or <codeph>FM</codeph> has been specified.
+It can be any of the following: </p> <table id="GUID-7B193CA1-4057-5680-93E3-9DC931924D3B">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Abbreviation</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <codeph>RUNINSTALL</codeph>  </p> </entry>
+<entry><p> <codeph>RI</codeph>  </p> </entry>
+<entry><p>Run on install </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RUNREMOVE</codeph>  </p> </entry>
+<entry><p> <codeph>RR</codeph>  </p> </entry>
+<entry><p>Run on uninstall and upgrade </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RUNBOTH</codeph>  </p> </entry>
+<entry><p> <codeph>RB</codeph>  </p> </entry>
+<entry><p>Run on install, uninstall and upgrade </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RUNBEFORESHUTDOWN</codeph>  </p> </entry>
+<entry><p> <codeph>RBS</codeph>  </p> </entry>
+<entry><p>Run on uninstall before the applications in the package are shut
+down </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>Optionally, <codeph>RW</codeph> (or <codeph>RUNWAITEND</codeph>)
+can be specified in addition to the <codeph>run-options</codeph>. If this
+option is specified, the installation server waits for the program to terminate
+before continuing with the install. If this option is not specified, the installation
+server runs the program and continues with the installation. The program is
+shut down after the installation is complete. </p><p>When uninstalling a package
+with a <codeph>RUNREMOVE</codeph> or <codeph>RUNBOTH</codeph> executable specified,
+the installation server always waits for the executable to terminate or timeout
+before continuing with the uninstall.</p> <p><b>Verification options</b> </p> <p>The
+following option is available for checking the integrity of a file at restore
+time: </p> <table id="GUID-78249B09-3D1C-5A89-AC4B-BA53DA2ACA4F">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Name</entry>
+<entry>Abbreviation</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <codeph>VERIFY</codeph>  </p> </entry>
+<entry><p> <codeph>VR</codeph>  </p> </entry>
+<entry><p>This flag is necessary if the integrity of a file installed in a
+directory outside <filepath>\sys</filepath> or <filepath>\restore</filepath> needs
+to be verified at restore time. For example, an application can check this
+flag to verify that a security policy file restored to its private directory
+is identical to the file delivered by the SIS file. </p> <p>The following
+example illustrates the usage of this option: </p> <codeblock id="GUID-1E310E2B-94BB-5877-91E6-14C5895BCF91" xml:space="preserve">"data\ups_01041000_01041001.rsc"-
+"$:\private\10283558\policies\ups_01041000_01041001.rsc", VERIFY</codeblock> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-90E6B97B-3A6A-5D88-80D1-B66248C82543"><b>Import and Private
+Directories</b> </p> <p>The software installer ensures that files are placed
+in appropriate areas of the file system. The following rules are applied: </p> <ul>
+<li id="GUID-F92635A7-7B97-5CA8-8C2C-E2E52CBB279C"><p>A package can only deliver
+a data file into the private directory belonging to any executable in the
+package. If a package delivers three executables: <codeph>SID1</codeph>, <codeph>SID2</codeph>, <codeph>SID3</codeph> (where
+SID stands for Secure ID), then data files can be delivered to <filepath>/private/SID1/</filepath>, <filepath>/private/SID2/</filepath>,
+or <filepath>/private/SID3/</filepath>. In an upgrade, this is possible by
+associating the upgrade package with the SIDs present in the original package
+unless one of the original executables is to be removed during the upgrade. </p> </li>
+<li id="GUID-AB6861A6-C1DB-5F82-B621-798D8C131417"><p>Any package can deliver
+a file into the <filepath>//private/SID/import</filepath> of an entirely unrelated
+package. However, replacement and eclipsing rules apply. </p> </li>
+</ul> </refsyn>
 </refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e18988_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e49332_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B409C23A-F89E-5D30-B172-1F39C3F6A57F_d0e54890_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4" xml:lang="en"><title>Text
-setting</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When editing text in a text setting component, a touch down and release
-anywhere in the editor field launches the Touch Input window. The editing
-indicator is placed above the text setting field top right corner.</p>
-<fig id="GUID-2D4B2873-4B7A-452C-A37C-0ACC7E02380E">
-<title>Text setting pop-up</title>
-<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69279_href.png" placement="inline"/>
-</fig>
-<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-8-1-6-1-1-5-1-18-1-4-1-2-3"><title>Default
-touch events when editing text in a text setting pop-up</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Tactile: Sensitive edit effect and audio feedback are provided with
-touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>Touch Input window in number mode is launched.</p></entry>
-<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
-No audio feedback.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4" xml:lang="en"><title>Text
+setting</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When editing text in a text setting component, a touch down and release
+anywhere in the editor field launches the Touch Input window. The editing
+indicator is placed above the text setting field top right corner.</p>
+<fig id="GUID-2D4B2873-4B7A-452C-A37C-0ACC7E02380E">
+<title>Text setting pop-up</title>
+<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e64048_href.png" placement="inline"/>
+</fig>
+<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-10-1-6-1-1-5-1-15-1-4-1-2-3"><title>Default
+touch events when editing text in a text setting pop-up</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Tactile: Sensitive edit effect and audio feedback are provided with
+touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Touch Input window in number mode is launched.</p></entry>
+<entry><p>Tactile: Sensitive edit effect is provided with touch release event.
+No audio feedback.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B459E37A-BECE-5087-9827-C93310890674_d0e281229_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B459E37A-BECE-5087-9827-C93310890674_d0e284915_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e19466_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B46C54AD-268C-58A0-B244-134C4D8BDFE1_d0e25044_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e75413_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B4834A49-587E-41AD-B0D3-0622B173B2AD_d0e80545_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e80517_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B48F7684-76E6-51C1-B85A-08A1F1EBD807_d0e87229_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72"><title>Comms Buffers (MBuf) ans Comms Chains</title><shortdesc>This topic describes Comms buffers (MBuf) and Comms chains. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-2290A2C1-C15B-5767-8BA5-0109457715AA"><title>APIs</title> <p>The following diagram is a partial representation of the class hierarchy for <codeph>RMBuf</codeph>. </p> <fig id="GUID-129D60A5-5FAB-52B1-BDD8-7B40F0038DD0"><title>
-             Comms buffer 
-          </title> <image href="GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e113849_href.png" placement="inline"/></fig> <p>For more information about these classes, see the following table and the reference documentation: </p> <table id="GUID-BC77F10C-E6C7-5447-A61F-63671B5F0FEC"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-E0ADB108-D3B2-3670-907D-2AE595BECE3F.dita"><apiname>RMBuf</apiname></xref>  </p> </entry> <entry><p>Representation of a shared buffer designed to carry packets within the Comms Data Plane. </p> <p>It includes Comms metadata (such as the offset, the size and the type of the data within the buffer) and links to the next buffer in the buffer chain. </p> <p>Part of the API is located in the parent class : <xref href="GUID-4FB33BFE-DCF7-3B77-A447-F9C049DF86CB.dita"><apiname>RCommsBuf</apiname></xref>. </p> </entry> </row> <row><entry><p> <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita"><apiname>RMBufChain</apiname></xref>  </p> </entry> <entry><p>Chain of <codeph>RMBuf</codeph> objects. </p> <p>Part of the API is located in the parent class : <xref href="GUID-107ADE6D-7AFF-3B07-9606-BCA33A3B63EF.dita"><apiname>RCommsBufChain</apiname></xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-5EBCD46C-5E07-5DB1-90D9-6A5CA3E36C0B"><title> Buffer layout</title> <p>The following diagram shows the contents of a Comms buffer and the location of the metadata. The metadata is at the end so that the device drivers can ignore the metadata and write their payload at the beginning of the buffer. </p> <fig id="GUID-6598A097-0453-5499-9507-2419DF73C023"><title>
-             Comms buffer contents 
-          </title> <image href="GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e113936_href.png" placement="inline"/></fig> <p>The metadata contains information about the payload: its length and offset, the type of data it contains, and references to the pond and the pool where the buffer's memory is located. Whenever you perform an operation on an MBuf, the chain or the pond update the metadata. </p> <p>The offset at the beginning of the buffer is an important optimisation when sending data downwards through the Comms Data Plane. Leaving enough space for the protocol headers enables Comms Framework components to prepend their data to the payload without requesting a new MBuf and its addition to the front of the buffer chain. Therefore, you should always define a pool according to the biggest packet that the bottom of the stack may receive : for example, 1518 bytes for Ethernet packets. </p> <p>The following diagram is an example illustrating how the Comms Data Plane removes the headers from the payload (on the way up the stack) or prepend header to the payload (on the way down): </p> <fig id="GUID-17B63072-ED95-5626-88D0-80AF8790B5CE"><title>
-             Header manipulation example 
-          </title> <image href="GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e113951_href.png" placement="inline"/></fig> <p>For simplified code corresponding to this diagram, see <xref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita">Data Access Example</xref>. </p> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita"><linktext>Shared Buffers</linktext> </link> <link href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita"><linktext>Advanced Pond
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72"><title>Comms Buffers (MBuf) ans Comms Chains</title><shortdesc>This topic describes Comms buffers (MBuf) and Comms chains. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-2290A2C1-C15B-5767-8BA5-0109457715AA"><title>APIs</title> <p>The following diagram is a partial representation of the class hierarchy for <codeph>RMBuf</codeph>. </p> <fig id="GUID-129D60A5-5FAB-52B1-BDD8-7B40F0038DD0"><title>
+             Comms buffer 
+          </title> <image href="GUID-4119C4BD-ABBF-524B-B649-0F39EF58A7FB_d0e107311_href.png" placement="inline"/></fig> <p>For more information about these classes, see the following table and the reference documentation: </p> <table id="GUID-BC77F10C-E6C7-5447-A61F-63671B5F0FEC"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Class</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-E0ADB108-D3B2-3670-907D-2AE595BECE3F.dita"><apiname>RMBuf</apiname></xref>  </p> </entry> <entry><p>Representation of a shared buffer designed to carry packets within the Comms Data Plane. </p> <p>It includes Comms metadata (such as the offset, the size and the type of the data within the buffer) and links to the next buffer in the buffer chain. </p> <p>Part of the API is located in the parent class : <xref href="GUID-4FB33BFE-DCF7-3B77-A447-F9C049DF86CB.dita"><apiname>RCommsBuf</apiname></xref>. </p> </entry> </row> <row><entry><p> <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita"><apiname>RMBufChain</apiname></xref>  </p> </entry> <entry><p>Chain of <codeph>RMBuf</codeph> objects. </p> <p>Part of the API is located in the parent class : <xref href="GUID-107ADE6D-7AFF-3B07-9606-BCA33A3B63EF.dita"><apiname>RCommsBufChain</apiname></xref>. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-5EBCD46C-5E07-5DB1-90D9-6A5CA3E36C0B"><title> Buffer layout</title> <p>The following diagram shows the contents of a Comms buffer and the location of the metadata. The metadata is at the end so that the device drivers can ignore the metadata and write their payload at the beginning of the buffer. </p> <fig id="GUID-6598A097-0453-5499-9507-2419DF73C023"><title>
+             Comms buffer contents 
+          </title> <image href="GUID-9FB3502C-B3DF-5FBC-972D-0D476D661954_d0e107398_href.png" placement="inline"/></fig> <p>The metadata contains information about the payload: its length and offset, the type of data it contains, and references to the pond and the pool where the buffer's memory is located. Whenever you perform an operation on an MBuf, the chain or the pond update the metadata. </p> <p>The offset at the beginning of the buffer is an important optimisation when sending data downwards through the Comms Data Plane. Leaving enough space for the protocol headers enables Comms Framework components to prepend their data to the payload without requesting a new MBuf and its addition to the front of the buffer chain. Therefore, you should always define a pool according to the biggest packet that the bottom of the stack may receive : for example, 1518 bytes for Ethernet packets. </p> <p>The following diagram is an example illustrating how the Comms Data Plane removes the headers from the payload (on the way up the stack) or prepend header to the payload (on the way down): </p> <fig id="GUID-17B63072-ED95-5626-88D0-80AF8790B5CE"><title>
+             Header manipulation example 
+          </title> <image href="GUID-32D39AB1-D1B0-5F44-8226-0777B8010C7D_d0e107413_href.png" placement="inline"/></fig> <p>For simplified code corresponding to this diagram, see <xref href="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita">Data Access Example</xref>. </p> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-65C49B47-6C63-536E-9B31-1FFA518A63F1.dita"><linktext>Shared Buffers</linktext> </link> <link href="GUID-A467E933-C4B4-5518-96D6-471E44B216B3.dita"><linktext>Advanced Pond
                 Guide</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,88 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB" xml:lang="en"><title><ph>Symbian
-Developer Library for Application Developers</ph></title><shortdesc>Welcome to the Developer Library for Symbian^3. <ph>This library is
-intended for C++ developers creating applications for Symbian^3.</ph></shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-
-<table id="GUID-709B1F4B-5504-41EA-B659-8F2B6810A700">
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Begin here</entry>
-<entry>Application and Middleware Layers</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>These sections provide some starting points for using the library
-and the platform.</p><p><xref href="GUID-00113601-193D-5214-9DFB-1C67456B7039.dita">About
-this Library</xref></p> <p><xref href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita">About
-Symbian^3</xref></p><p><xref href="GUID-35D7EEFC-B2E4-5444-8875-2A24790E08C2.dita">Essential
-idioms</xref></p> <p><xref href="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita">Example
-programs</xref></p><p/><p/><p><xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++ Quick Start</xref></p><p><xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going
-Beyond Hello: A Tutorial for Symbian C++ Applications</xref></p></entry>
-<entry><p>The Application Layer provides application user interfaces and application
-engines.</p><p><xref href="GUID-1A43A45B-80AE-56A0-A94C-64BA75519C67.dita">Messaging
-Applications</xref></p><p><xref href="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita">PIM</xref></p><p/><p>The
-Middleware Layer provides application services, including UI frameworks and
-high level communications.</p><p><xref href="GUID-772F9CC3-71B3-53F0-9307-91D35B133810.dita">Application
-Installation</xref></p><p><xref href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita">Browsing and downloading</xref></p><p><xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic
-UI</xref></p><p><xref href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita">Generic
-Application Support</xref></p><p><xref href="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita">Messaging
-Middleware</xref></p><p><xref href="GUID-6425B722-4095-56E3-9198-70BA3E06C617.dita">Multimedia
-Protocols</xref></p></entry>
-</row>
-</tbody>
-</tgroup>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.58*"/><colspec colname="col2" colwidth="1.42*"/>
-<thead>
-<row>
-<entry>Key APIs</entry>
-<entry>OS Layer</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>These are quick links to some APIs that most Symbian C++ programs
-use.</p><p><xref href="GUID-F6F9B2AC-A47E-5B0B-A1E2-EE2B31B59F2A.dita">Arrays and
-lists</xref></p> <p><xref href="GUID-FBE448A4-4728-5EE5-84F2-4790735857B3.dita">Basic
-types</xref></p> <p><xref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita">Cleanup
-support</xref></p> <p><xref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita">Client/server</xref></p> <p><xref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita">Descriptors</xref></p></entry>
-<entry><p>The OS Layer provides the Symbian Kernel, and frameworks to support
-fundamental services.</p><p/><p><xref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita">Cellular
-Baseband Services</xref></p> <p/><p><xref href="GUID-8F2D6AC8-8357-55C7-970B-CD2684BA9B04.dita">Communications
-Framework </xref></p><p><xref href="GUID-F8C8CE42-E7C9-5AFC-86BC-B78F677F1B05.dita">Device
-Services</xref> </p><p/><p><xref href="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita">Generic
-OS Services</xref></p> <p><xref href="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita">Graphics</xref></p><p/><p><xref href="GUID-E3D2A6ED-8192-563D-8966-DD96B3AF1783.dita">Kernel and Hardware Services</xref></p> <p/> <p><xref href="GUID-7F476137-5E7F-5288-9F4A-6C20F0A1AD9B.dita">Locating Services</xref></p><p><xref href="GUID-E2252589-DCFB-5272-8FB3-701712D7F417.dita">Multimedia</xref></p><p><xref href="GUID-BC191AA8-696F-51A2-801F-B3F952037F54.dita">OS Security</xref> </p><p/><p><xref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita">Networking Services</xref></p><p><xref href="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita">Persistent Data Services</xref></p><p/> <p><xref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita">Shortlink
-Services</xref></p><p><xref href="GUID-1DCA2F4D-ABE6-52A0-AC4E-5AAC1AB5909D.dita">Text
-and Localization</xref></p><p/></entry>
-</row>
-</tbody>
-</tgroup>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Expert Programming</entry>
-<entry>All Documents</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>These documents help you write better and safer programs.</p> <p><xref href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita">Security</xref></p></entry>
-<entry><p>These links take you to full lists of packages and tools described
-in the library.</p><p><xref href="GUID-32E29020-1956-461A-B79A-1492E06049E7.dita">Symbian
-Guide</xref></p><p><xref href="GUID-A837D8F6-B9D3-5119-8C63-51772B388999.dita">Tools
-and Utilities</xref></p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B51A9A1F-8E80-4DF6-904A-7BD1A8976BBB" xml:lang="en"><title><ph>Symbian Developer Library for
+Application Developers</ph></title><shortdesc><ph>Welcome to the Developer Library
+for Symbian^3.</ph><ph>This library
+is intended for C++ developers creating applications for Symbian^3.</ph></shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p/>
+<table id="GUID-709B1F4B-5504-41EA-B659-8F2B6810A700">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Begin here</entry>
+<entry>Application and Middleware Layers</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>These sections provide some starting points for using the
+library and the platform.</p><p><xref href="GUID-00113601-193D-5214-9DFB-1C67456B7039.dita">About this Library</xref></p> <p><xref href="GUID-190478E6-E614-4386-9431-15672FDB88D4.dita">About
+Symbian^3</xref></p><p><xref href="GUID-35D7EEFC-B2E4-5444-8875-2A24790E08C2.dita">Essential idioms</xref></p> <p><xref href="GUID-270C96B0-4BDF-5A18-A8FE-FA4F78BB34EE.dita">Example
+programs</xref></p><p/><p/><p><xref href="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita">Symbian C++ Quick Start</xref></p><p><xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond Hello: A Tutorial for
+Symbian C++ Applications</xref></p></entry>
+<entry><p>The Application Layer provides application user interfaces
+and application engines.</p><p><xref href="GUID-1A43A45B-80AE-56A0-A94C-64BA75519C67.dita">Messaging Applications</xref></p><p><xref href="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita">PIM</xref></p><p/><p>The Middleware Layer provides application services,
+including UI frameworks and high level communications.</p><p><xref href="GUID-772F9CC3-71B3-53F0-9307-91D35B133810.dita">Application Installation</xref></p><p><xref href="GUID-377F7C19-C799-45CE-9ADA-4BB884B422BA.dita">Browsing and downloading</xref></p><p><xref href="GUID-94005A46-B4C6-4A30-A8E8-1B9C2D583D50.dita">Classic UI</xref></p><p><xref href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita">Generic Application
+Support</xref></p><p><xref href="GUID-4CEB52EC-8F08-53B7-A900-AF163316D442.dita">Messaging Middleware</xref></p><p><xref href="GUID-6425B722-4095-56E3-9198-70BA3E06C617.dita">Multimedia
+Protocols</xref></p></entry>
+</row>
+</tbody>
+</tgroup>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.58*"/><colspec colname="col2" colwidth="1.42*"/>
+<thead>
+<row>
+<entry>Key APIs</entry>
+<entry>OS Layer</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>These are quick links to some APIs that most Symbian C++
+programs use.</p><p><xref href="GUID-F6F9B2AC-A47E-5B0B-A1E2-EE2B31B59F2A.dita">Arrays and lists</xref></p> <p><xref href="GUID-FBE448A4-4728-5EE5-84F2-4790735857B3.dita">Basic
+types</xref></p> <p><xref href="GUID-E5A83EF3-948B-5729-A2CD-3644E803520B.dita">Cleanup support</xref></p> <p><xref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita">Client/server</xref></p> <p><xref href="GUID-0817AD1D-58CF-5108-ACBF-26DFD4BA395E.dita">Descriptors</xref></p></entry>
+<entry><p>The OS Layer provides the Symbian Kernel, and frameworks
+to support fundamental services.</p><p/><p><xref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita">Cellular Baseband Services</xref></p> <p/><p><xref href="GUID-8F2D6AC8-8357-55C7-970B-CD2684BA9B04.dita">Communications Framework </xref></p><p><xref href="GUID-F8C8CE42-E7C9-5AFC-86BC-B78F677F1B05.dita">Device
+Services</xref> </p><p/><p><xref href="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita">Generic OS Services</xref></p> <p><xref href="GUID-A51E334E-F410-55A9-AB07-82F8A1D113B4.dita">Graphics</xref></p><p/><p><xref href="GUID-E3D2A6ED-8192-563D-8966-DD96B3AF1783.dita">Kernel and Hardware Services</xref></p> <p/> <p><xref href="GUID-7F476137-5E7F-5288-9F4A-6C20F0A1AD9B.dita">Locating Services</xref></p><p><xref href="GUID-E2252589-DCFB-5272-8FB3-701712D7F417.dita">Multimedia</xref></p><p><xref href="GUID-BC191AA8-696F-51A2-801F-B3F952037F54.dita">OS
+Security</xref> </p><p/><p><xref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita">Networking Services</xref></p><p><xref href="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita">Persistent
+Data Services</xref></p><p/> <p><xref href="GUID-DD13AA8E-BDAD-57EC-81EC-49C8D6D30A86.dita">Shortlink
+Services</xref></p><p><xref href="GUID-1DCA2F4D-ABE6-52A0-AC4E-5AAC1AB5909D.dita">Text and Localization</xref></p><p/></entry>
+</row>
+</tbody>
+</tgroup>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Expert Programming</entry>
+<entry>All Documents</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>These documents help you write better and safer programs.</p> <p><xref href="GUID-AB3D07E6-83C9-4948-A13F-75A65498F444.dita">Security</xref></p></entry>
+<entry><p>These links take you to full lists of packages and tools
+described in the library.</p><p><xref href="GUID-32E29020-1956-461A-B79A-1492E06049E7.dita">Symbian Guide</xref></p><p><xref href="GUID-A34D1674-8BFC-450B-805E-2D1F509F7BCF.dita">API
+Specifications</xref></p><p><xref href="GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita">Reference</xref></p><p><xref href="GUID-A837D8F6-B9D3-5119-8C63-51772B388999.dita">Tools and
+Utilities</xref></p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,96 +1,96 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4" xml:lang="en"><title>Writing
-a Standard Registration Resource File</title><shortdesc>For Symbian OS V9.1 and onwards, the name of the standard registration
-resource file must be the same as that of the executable with <filepath>.rss</filepath> extension.
-All the registration resource structure types are defined in <codeph>RegistryInfo.rh</codeph>.
-This file has to be included in the registration resource file.  </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-8-1-4-1-5-1-4-1-5-1-4-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-8-1-4-1-5-1-4-1-5-1-4-1-3-1-1"><cmd>Define a single <codeph>REGISTRY_INFO</codeph> resource.
- </cmd>
-</step>
-<step id="GUID-0711500A-DB15-4AF2-86E7-07751B7D0CE6"><cmd>Set the dll_uid
-to the DLL's UID.  </cmd>
-</step>
-<step id="GUID-73CC8347-CE83-43E4-81D2-FFB10C058E5B"><cmd>Set interfaces member
-to be an array of <codeph>INTERFACE_INFO</codeph> resources.  </cmd>
-<info><p>Each <codeph>INTERFACE_INFO</codeph> resource defines registration
-information for implementations of the interface identified by interface_uid
-member. The information takes the form of an array of <codeph>IMPLEMENTATION_INFO</codeph> resources.
- </p></info>
-</step>
-<step id="GUID-BB178AA4-0BE4-4DC2-9A4E-28D8AFEBA2A2"><cmd>Each <codeph>IMPLEMENTATION_INFO</codeph> resource
-declares the properties of a single implementation. It has five members:  </cmd>
-<substeps id="GUID-D09853C8-5054-4D4D-AE76-E5787263F02B">
-<substep id="GUID-5F45453F-4D21-4983-ABA8-DB2F025A9326"><cmd><codeph>implementation_uid</codeph>:
-An unique identifier for the implementation.  </cmd>
-<info><p>For this value, use a new UID allocated by Symbian Signed. The allocated
-value can be from the protected or non-protected range of UIDs.  </p></info>
-</substep>
-<substep id="GUID-2AC39D58-D817-43D4-8130-F012C7CBA9A9"><cmd><codeph>version_no</codeph>:
-The version of the interface implementation.  </cmd>
-</substep>
-<substep id="GUID-4F545F1B-AD20-4EFC-B09A-6F7E19E27B75"><cmd><codeph>display_name</codeph>:
-The external name of the implementation. </cmd>
-</substep>
-<substep id="GUID-078E43CD-C238-4361-86D7-5372CA9ACD23"><cmd><codeph>default_data</codeph>:
-The data identifier field used by the resolver to determine if the implementation
-matches a client request. </cmd>
-</substep>
-<substep id="GUID-CE0BE654-08E5-4693-AF25-9098080640B9"><cmd><codeph>opaque_data</codeph>:
-A binary data field that can contain additional data. This additional data
-can be used by the custom resolvers. </cmd>
-</substep>
-</substeps>
-</step>
-</steps>
-<example><p>The following example depicts a resource registration file for
-an implementation collection with two implementations.</p><codeblock xml:space="preserve">// 10009DB1.RSS
-//
-#include "RegistryInfo.rh"
-
-RESOURCE REGISTRY_INFO theInfo
-{
-dll_uid = 0x10009DB1;
-interfaces = 
-	{
-	INTERFACE_INFO
-		{
-		interface_uid = 0x10009DC0;
-		implementations = 
-			{
-			IMPLEMENTATION_INFO
-				{
-				implementation_uid = 0x10009DC3;
-				version_no = 1;
-				display_name = "Implementation name 1";
-				default_data = "text/wml";
-				opaque_data = "some extra data";
-				},
-			IMPLEMENTATION_INFO
-				{
-				implementation_uid = 0x10009DC4;
-				version_no = 1;
-				display_name = "Implementation name 1";
-				default_data = "text/xml||Type of data handled";
-				opaque_data = "";
-				}
-			};
-		}
-	};
-}</codeblock></example>
-</taskbody><related-links>
-<link href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita"><linktext>Writing
-the Version 2 Registration Resource File</linktext></link>
-<link href="GUID-39186342-960A-46A4-BC35-851F53665FA8.dita"><linktext>Writing the
-Version 3 Registration Resource File</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-B541BD01-29BE-4CB7-9420-ABEE0BDC9BA4" xml:lang="en"><title>Writing
+a Standard Registration Resource File</title><shortdesc>For Symbian OS V9.1 and onwards, the name of the standard registration
+resource file must be the same as that of the executable with <filepath>.rss</filepath> extension.
+All the registration resource structure types are defined in <codeph>RegistryInfo.rh</codeph>.
+This file has to be included in the registration resource file.  </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-8-1-4-1-5-1-4-1-5-1-4-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-8-1-4-1-5-1-4-1-5-1-4-1-3-1-1"><cmd>Define a single <codeph>REGISTRY_INFO</codeph> resource.
+ </cmd>
+</step>
+<step id="GUID-0711500A-DB15-4AF2-86E7-07751B7D0CE6"><cmd>Set the dll_uid
+to the DLL's UID.  </cmd>
+</step>
+<step id="GUID-73CC8347-CE83-43E4-81D2-FFB10C058E5B"><cmd>Set interfaces member
+to be an array of <codeph>INTERFACE_INFO</codeph> resources.  </cmd>
+<info><p>Each <codeph>INTERFACE_INFO</codeph> resource defines registration
+information for implementations of the interface identified by interface_uid
+member. The information takes the form of an array of <codeph>IMPLEMENTATION_INFO</codeph> resources.
+ </p></info>
+</step>
+<step id="GUID-BB178AA4-0BE4-4DC2-9A4E-28D8AFEBA2A2"><cmd>Each <codeph>IMPLEMENTATION_INFO</codeph> resource
+declares the properties of a single implementation. It has five members:  </cmd>
+<substeps id="GUID-D09853C8-5054-4D4D-AE76-E5787263F02B">
+<substep id="GUID-5F45453F-4D21-4983-ABA8-DB2F025A9326"><cmd><codeph>implementation_uid</codeph>:
+An unique identifier for the implementation.  </cmd>
+<info><p>For this value, use a new UID allocated by Symbian Signed. The allocated
+value can be from the protected or non-protected range of UIDs.  </p></info>
+</substep>
+<substep id="GUID-2AC39D58-D817-43D4-8130-F012C7CBA9A9"><cmd><codeph>version_no</codeph>:
+The version of the interface implementation.  </cmd>
+</substep>
+<substep id="GUID-4F545F1B-AD20-4EFC-B09A-6F7E19E27B75"><cmd><codeph>display_name</codeph>:
+The external name of the implementation. </cmd>
+</substep>
+<substep id="GUID-078E43CD-C238-4361-86D7-5372CA9ACD23"><cmd><codeph>default_data</codeph>:
+The data identifier field used by the resolver to determine if the implementation
+matches a client request. </cmd>
+</substep>
+<substep id="GUID-CE0BE654-08E5-4693-AF25-9098080640B9"><cmd><codeph>opaque_data</codeph>:
+A binary data field that can contain additional data. This additional data
+can be used by the custom resolvers. </cmd>
+</substep>
+</substeps>
+</step>
+</steps>
+<example><p>The following example depicts a resource registration file for
+an implementation collection with two implementations.</p><codeblock xml:space="preserve">// 10009DB1.RSS
+//
+#include "RegistryInfo.rh"
+
+RESOURCE REGISTRY_INFO theInfo
+{
+dll_uid = 0x10009DB1;
+interfaces = 
+	{
+	INTERFACE_INFO
+		{
+		interface_uid = 0x10009DC0;
+		implementations = 
+			{
+			IMPLEMENTATION_INFO
+				{
+				implementation_uid = 0x10009DC3;
+				version_no = 1;
+				display_name = "Implementation name 1";
+				default_data = "text/wml";
+				opaque_data = "some extra data";
+				},
+			IMPLEMENTATION_INFO
+				{
+				implementation_uid = 0x10009DC4;
+				version_no = 1;
+				display_name = "Implementation name 1";
+				default_data = "text/xml||Type of data handled";
+				opaque_data = "";
+				}
+			};
+		}
+	};
+}</codeblock></example>
+</taskbody><related-links>
+<link href="GUID-64D62DD8-3D9C-4659-9658-C0B4D74D6E69.dita"><linktext>Writing
+the Version 2 Registration Resource File</linktext></link>
+<link href="GUID-39186342-960A-46A4-BC35-851F53665FA8.dita"><linktext>Writing the
+Version 3 Registration Resource File</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863" xml:lang="en"><title>Using
-CDirScan</title><shortdesc>This topic describes about setting up the scan and
-parsing path.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-838F2F37-69AE-49B6-970E-FFF29B93709E"><title>Setting up the scan using SetScanDataL()</title> <fig id="GUID-CC897DCB-73B0-53A4-B1AA-351DF18F0AE0">
-<image href="GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e263982_href.png" placement="inline"/>
-</fig> <p>Taking the above directory structure, if <codeph>SetScanData()</codeph> is
-called as follows:</p> <codeblock id="GUID-B6CEF818-9044-58B9-BEBF-EB05BE6F89A9" xml:space="preserve">_LIT(KDirText,"C:\\TopDir\\");
-...
-SetScanDataL(KDirText,KEntryAttDir,ESortByName|EAscending,CDirScan::EScanDownTree);
-...</codeblock> <p>then the directories are scanned, by repeatedly calling <codeph>CDirScan::NextL()</codeph> in
-the following order: <filepath>TopDir</filepath>, <filepath>Dir1</filepath>, <filepath>Dir2</filepath>, <filepath>Dir3</filepath>, <filepath>Dir4</filepath>, <filepath>Dir5</filepath>, <filepath>Dir6</filepath>, <filepath>Dir7</filepath>.
-The sort key of <codeph>EAscending</codeph> means that multiple directories
-within the same parent directory are scanned in ascending alphabetic or numeric
-order.</p> <p>If the scan direction is upwards, i.e.<codeph>CDirScan::EScanUpTree</codeph>,
-the directories are scanned in the order: <filepath>Dir2</filepath>, <filepath>Dir4</filepath>, <filepath>Dir3</filepath>, <filepath>Dir1</filepath>, <filepath>Dir6</filepath>, <filepath>Dir7</filepath>, <filepath>Dir5</filepath>, <filepath>TopDir</filepath>.</p> </section>
-<section id="GUID-890778ED-0009-40C1-A1AC-FBCF2F137FF6"><title>Parsing paths using FullPath()</title> <p>If the full path
-of the entry currently being scanned is:</p> <p><filepath>C:\Topdir\Middledir\Bottomdir\</filepath> </p> <p>and
-the top level directory in the scan as passed to <codeph>SetScanDataL()</codeph> is:</p> <p><filepath>C:\Topdir\</filepath> </p> <p>then:</p> <ul>
-<li id="GUID-016B0C1F-D5BD-53D7-82F0-9393B3B45FD7"><p><codeph>AbbreviatedPath()</codeph> returns <filepath>\Middledir\</filepath> </p> </li>
-<li id="GUID-80ECD7D1-9532-5ED3-8CBD-2A9E6F04C067"><p><codeph>FullPath()</codeph> returns <filepath>C:\Topdir\Middledir\</filepath>.</p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B563AC07-A54B-50E2-A3B2-821E8BC2C863" xml:lang="en"><title>Using
+CDirScan</title><shortdesc>This topic describes about setting up the scan and
+parsing path.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-838F2F37-69AE-49B6-970E-FFF29B93709E"><title>Setting up the scan using SetScanDataL()</title> <fig id="GUID-CC897DCB-73B0-53A4-B1AA-351DF18F0AE0">
+<image href="GUID-3F172A97-8B96-5E1B-854C-F198D1334D2A_d0e260274_href.png" placement="inline"/>
+</fig> <p>Taking the above directory structure, if <codeph>SetScanData()</codeph> is
+called as follows:</p> <codeblock id="GUID-B6CEF818-9044-58B9-BEBF-EB05BE6F89A9" xml:space="preserve">_LIT(KDirText,"C:\\TopDir\\");
+...
+SetScanDataL(KDirText,KEntryAttDir,ESortByName|EAscending,CDirScan::EScanDownTree);
+...</codeblock> <p>then the directories are scanned, by repeatedly calling <codeph>CDirScan::NextL()</codeph> in
+the following order: <filepath>TopDir</filepath>, <filepath>Dir1</filepath>, <filepath>Dir2</filepath>, <filepath>Dir3</filepath>, <filepath>Dir4</filepath>, <filepath>Dir5</filepath>, <filepath>Dir6</filepath>, <filepath>Dir7</filepath>.
+The sort key of <codeph>EAscending</codeph> means that multiple directories
+within the same parent directory are scanned in ascending alphabetic or numeric
+order.</p> <p>If the scan direction is upwards, i.e.<codeph>CDirScan::EScanUpTree</codeph>,
+the directories are scanned in the order: <filepath>Dir2</filepath>, <filepath>Dir4</filepath>, <filepath>Dir3</filepath>, <filepath>Dir1</filepath>, <filepath>Dir6</filepath>, <filepath>Dir7</filepath>, <filepath>Dir5</filepath>, <filepath>TopDir</filepath>.</p> </section>
+<section id="GUID-890778ED-0009-40C1-A1AC-FBCF2F137FF6"><title>Parsing paths using FullPath()</title> <p>If the full path
+of the entry currently being scanned is:</p> <p><filepath>C:\Topdir\Middledir\Bottomdir\</filepath> </p> <p>and
+the top level directory in the scan as passed to <codeph>SetScanDataL()</codeph> is:</p> <p><filepath>C:\Topdir\</filepath> </p> <p>then:</p> <ul>
+<li id="GUID-016B0C1F-D5BD-53D7-82F0-9393B3B45FD7"><p><codeph>AbbreviatedPath()</codeph> returns <filepath>\Middledir\</filepath> </p> </li>
+<li id="GUID-80ECD7D1-9532-5ED3-8CBD-2A9E6F04C067"><p><codeph>FullPath()</codeph> returns <filepath>C:\Topdir\Middledir\</filepath>.</p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e3445_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e4720_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B57D7C53-DFDB-4590-8227-EA251D1ABBC7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B57D7C53-DFDB-4590-8227-EA251D1ABBC7" xml:lang="en"><title>Using
-autofocus</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Autofocus support for camera applications is controlled through the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCCameraAdvancedSettings" format="application/java-archive">CCameraAdvancedSettings class</xref>. For more information on
-using autofocus, see:</p>
-<ul>
-<li><p><xref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita">Advanced Settings
-for Focus, Drive Modes, and Bracket Modes</xref></p></li>
-<li><p><xref href="http://wiki.forum.nokia.com/index.php/TSS001129_-_Using_the_camera_autofocus_feature_in_S60_devices" scope="external">Using the camera autofocus feature in S60 devices</xref> on
-Forum Nokia.</p></li>
-</ul>
-<fig id="GUID-BD935125-B7F9-4223-BC94-0B4A663DE13C">
-<title>Implementation of autofocus</title>
-<image href="GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e293517_href.png" placement="inline"/>
-</fig>
-<p>Pressing the camera shutter key on the device halfway down generates additional
-key events. The key events can be used to activate autofocus if the camera
-hardware supports the functionality. Shutter release (image capture) can be
-triggered by pressing the key all the way down. The key presses generate separate
-key events. To capture other than autofocus key events from the shutter key,
-you need the <codeph>SwEvent</codeph> <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capability</xref>.</p>
-<p>The settings you can use in your application depend on the camera hardware
-on the device. The Camera API allows you to query almost all features of the
-device camera. For example, to get a list of supported advanced settings,
-use the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Camera_Framework/CCameraClass.html#%3a%3aCCamera%3a%3aCCameraAdvancedSettings%3a%3aGetSupportedSettingsL%28RArray%26lt%3b%20TUid%20%26gt%3b%20%26amp%3b%29const" format="application/java-archive"><codeph>CCameraAdvancedSettings::GetSupportedSettingsL()</codeph></xref> method.</p>
-<p>For more information on how to easily use the device camera with zoom and
-autofocus by using a CameraWrapper made by Forum Nokia, see <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/9a3e1226-79db-4c8e-bd70-7d9d22aaa6eb/S60_Platform_Camera_Example.html" scope="external">Camera Example</xref> on Forum Nokia. The Camera Wrapper
-provides a unified interface for various Symbian camera APIs. The example
-application supports the use of both the keypad and touch UI. The application
-can be self-signed, but it also provides an option to use the dedicated camera
-key (Symbian signing required).</p>
-<section id="GUID-0EABEC5B-D4B0-47F1-AEC1-11A929465BC5"><title>See also</title><p><xref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita">Advanced Camera Settings
-Tutorial</xref></p></section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,92 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5" xml:lang="en"><title>Window
-Server Client-Side Events Overview</title><shortdesc>A client application connects to the Window Server by creating
-a Window Server session and calling <codeph>RWsSession::Connect()</codeph>.
-Events generated by the Window Server are then delivered to the client via
-the session, and the client must handle these events appropriately.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. <b>Target
-audience</b>: Application developers. </p>
-<section id="GUID-BC5A4EC6-12CA-4E35-8E05-3FCDDC2AF8E9"><title>Window server event types</title> <p>The Window Server generates
-events of three different classes, as shown in the following diagram. </p> <fig id="GUID-04CE3E9E-2DB3-5771-B00F-532A57A74E5B">
-<title>              Window server event types            </title>
-<image href="GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e195614_href.png" placement="inline"/>
-</fig> <table id="GUID-5390256E-7A53-58D4-B698-9AD199182515">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Class</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsEvent</apiname></xref>  </p> </entry>
-<entry><p><xref href="GUID-7AC3477E-09C1-519A-9079-DA969B9FC4D7.dita">General events</xref>,
-which represent user input events, such as pointer and key events. You handle
-these by using an active object of standard priority. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsRedrawEvent</apiname></xref>  </p> </entry>
-<entry><p><xref href="GUID-7750D4BE-9FBA-5D29-806D-B80911170ECD.dita">Redraw events</xref>.
-You handle these by using an active object of lower priority. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsPriorityKeyEvent</apiname></xref>  </p> </entry>
-<entry><p><xref href="GUID-EF87F8F8-1521-5C50-85A9-94038A99021C.dita">Priority
-key events</xref>. You handle these by using an active object of higher priority. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>All Window Server applications handle standard events, and nearly
-all handle redraw events. Only a few, however, handle priority key events.
-It is only in very rare cases that an application does not handle redraw events,
-because this requires that all its windows are backed-up windows. </p> <p>Events
-are always associated with a window. For some event types, such as key events,
-this is a window group. For other event types, such as pointer events, it
-is a drawable window. The event delivered to the client contains a handle
-that can be used to identify the window: this is the handle that was passed
-as a parameter when the window was created. For window groups, however, this
-is usually unnecessary, because most applications have only one window group. </p> <p>Symbian
-recommends that you handle each event class with a separate active object,
-in order that the classes can be handled at different priorities. </p> </section>
-<section id="GUID-B6D5EAC2-E9C2-4478-B081-F3F516EA9CE1"><title>Handling events</title> <p>The Window Server maintains a server-side
-buffer of all events queued to an application—each application has its own
-queue within the buffer (this is only for general events—redraw and priority
-key events are handled by a different mechanism). Each application must handle
-events appropriately. The <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetEvent()</apiname></xref> function
-(or <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetRedraw()</apiname></xref> or <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetPriorityKey()</apiname></xref>) must be called
-as the first stage of handling a completed request, and the event must then
-be analyzed and handled. </p> <p>Each event must be handled relatively quickly
-(at most a couple of seconds) so that the application remains responsive to
-user input. If an event requires more extended processing (such as a key which
-causes a large spreadsheet recalculation), then this processing should be
-split into smaller chunks and handled by a client-side active object running
-at lower priority than the <codeph>GetEvent()</codeph> handler. </p> <p>An
-application which does not observe these protocols will stop running—although
-it will not stop the whole device. The Window Server supports hotkeys which
-it handles directly, so that a badly behaved application may be killed by
-the server. </p> </section>
-</conbody><related-links>
-<link href="GUID-CD550DE7-D013-527B-BADE-5CB122C352C8.dita"><linktext>Pointer Handling</linktext>
-</link>
-<link href="GUID-B7FF0B9C-3A17-5AAA-A986-7BA4F44DBD41.dita"><linktext>Declaring
-a                 Window Server Event-Handling Class</linktext></link>
-<link href="GUID-A51D3749-442A-54E8-8EB5-BF907694CD8C.dita"><linktext>Processing
-Window-Group                 Events</linktext></link>
-<link href="GUID-E1E11C95-3400-548B-AEEE-577DA8FB9ECB.dita"><linktext>Processing
-Window Events</linktext></link>
-<link href="GUID-930A3ABD-84FB-5D76-938C-79383273DAE6.dita"><linktext>Processing
-System Events</linktext></link>
-<link href="GUID-08427065-B8E5-5194-B095-3B5213836BED.dita"><linktext>Window Server
-Client-Side Events</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B58D3727-6E05-51C8-8EC2-52768A136BD5" xml:lang="en"><title>Window
+Server Client-Side Events Overview</title><shortdesc>A client application connects to the Window Server by creating
+a Window Server session and calling <codeph>RWsSession::Connect()</codeph>.
+Events generated by the Window Server are then delivered to the client via
+the session, and the client must handle these events appropriately.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. <b>Target
+audience</b>: Application developers. </p>
+<section id="GUID-BC5A4EC6-12CA-4E35-8E05-3FCDDC2AF8E9"><title>Window server event types</title> <p>The Window Server generates
+events of three different classes, as shown in the following diagram. </p> <fig id="GUID-04CE3E9E-2DB3-5771-B00F-532A57A74E5B">
+<title>              Window server event types            </title>
+<image href="GUID-8D046AD9-1D28-52AE-8B69-2CBF6441F733_d0e190606_href.png" placement="inline"/>
+</fig> <table id="GUID-5390256E-7A53-58D4-B698-9AD199182515">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Class</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsEvent</apiname></xref>  </p> </entry>
+<entry><p><xref href="GUID-7AC3477E-09C1-519A-9079-DA969B9FC4D7.dita">General events</xref>,
+which represent user input events, such as pointer and key events. You handle
+these by using an active object of standard priority. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsRedrawEvent</apiname></xref>  </p> </entry>
+<entry><p><xref href="GUID-7750D4BE-9FBA-5D29-806D-B80911170ECD.dita">Redraw events</xref>.
+You handle these by using an active object of lower priority. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>TWsPriorityKeyEvent</apiname></xref>  </p> </entry>
+<entry><p><xref href="GUID-EF87F8F8-1521-5C50-85A9-94038A99021C.dita">Priority
+key events</xref>. You handle these by using an active object of higher priority. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>All Window Server applications handle standard events, and nearly
+all handle redraw events. Only a few, however, handle priority key events.
+It is only in very rare cases that an application does not handle redraw events,
+because this requires that all its windows are backed-up windows. </p> <p>Events
+are always associated with a window. For some event types, such as key events,
+this is a window group. For other event types, such as pointer events, it
+is a drawable window. The event delivered to the client contains a handle
+that can be used to identify the window: this is the handle that was passed
+as a parameter when the window was created. For window groups, however, this
+is usually unnecessary, because most applications have only one window group. </p> <p>Symbian
+recommends that you handle each event class with a separate active object,
+in order that the classes can be handled at different priorities. </p> </section>
+<section id="GUID-B6D5EAC2-E9C2-4478-B081-F3F516EA9CE1"><title>Handling events</title> <p>The Window Server maintains a server-side
+buffer of all events queued to an application—each application has its own
+queue within the buffer (this is only for general events—redraw and priority
+key events are handled by a different mechanism). Each application must handle
+events appropriately. The <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetEvent()</apiname></xref> function
+(or <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetRedraw()</apiname></xref> or <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession::GetPriorityKey()</apiname></xref>) must be called
+as the first stage of handling a completed request, and the event must then
+be analyzed and handled. </p> <p>Each event must be handled relatively quickly
+(at most a couple of seconds) so that the application remains responsive to
+user input. If an event requires more extended processing (such as a key which
+causes a large spreadsheet recalculation), then this processing should be
+split into smaller chunks and handled by a client-side active object running
+at lower priority than the <codeph>GetEvent()</codeph> handler. </p> <p>An
+application which does not observe these protocols will stop running—although
+it will not stop the whole device. The Window Server supports hotkeys which
+it handles directly, so that a badly behaved application may be killed by
+the server. </p> </section>
+</conbody><related-links>
+<link href="GUID-CD550DE7-D013-527B-BADE-5CB122C352C8.dita"><linktext>Pointer Handling</linktext>
+</link>
+<link href="GUID-B7FF0B9C-3A17-5AAA-A986-7BA4F44DBD41.dita"><linktext>Declaring
+a                 Window Server Event-Handling Class</linktext></link>
+<link href="GUID-A51D3749-442A-54E8-8EB5-BF907694CD8C.dita"><linktext>Processing
+Window-Group                 Events</linktext></link>
+<link href="GUID-E1E11C95-3400-548B-AEEE-577DA8FB9ECB.dita"><linktext>Processing
+Window Events</linktext></link>
+<link href="GUID-930A3ABD-84FB-5D76-938C-79383273DAE6.dita"><linktext>Processing
+System Events</linktext></link>
+<link href="GUID-08427065-B8E5-5194-B095-3B5213836BED.dita"><linktext>Window Server
+Client-Side Events</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,65 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6" xml:lang="en"><title>Traditional
-Symbian UI application architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following image illustrates the components of the traditional architecture
-approach.</p>
-<fig id="GUID-F38DBC9C-31C0-4E4F-934C-38BA4A4B649F"><title>Traditional Symbian UI application architecture classes</title><image href="GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e47056_href.png"/></fig>
-<p>Symbian platform applications that follow the traditional Symbian UI
-application architecture require:</p>
-<ul>
-<li><p>a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
-controller</xref> derived from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p></li>
-<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> or
-views derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.</p></li>
-</ul>
-<p>The traditional Symbian UI application architecture provides the most
-flexible approach to application UI construction. Traditional architecture
-is easier to port across different platforms than <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">view
-architecture</xref>. Traditional architecture is also the best choice for
-single-view applications, if launching the view from external applications
-is not required.</p>
-<p>Typical responsibilities in this architecture are:</p>
-<ul>
-<li><p><xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived class acts as a UI controller:</p>
-<ul>
-<li><p>It <xref href="GUID-A29FB4CA-2161-4407-BA69-48FBF5D7543F.dita">creates</xref> one
-or more <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived views.</p></li>
-<li><p>It handles <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">events</xref>,
-including enabling views to handle <xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">key
-events</xref>.</p></li>
-<li><p>To <xref href="GUID-FC63E2D1-697C-4890-9B70-0DC0AAE7597C.dita">switch
-between views</xref>, it creates and destroys or shows and hides views.</p>
-</li>
-<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref>.</p>
-</li>
-<li><p>It receives events such as <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">layout</xref> and <xref href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita">foreground</xref> notifications
-from the run-time environment.</p></li>
-</ul>
-</li>
-</ul>
-<ul>
-<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view:</p>
-<ul>
-<li><p>Shows application data and state on the screen.</p></li>
-<li><p>Receives user input.</p></li>
-<li><p>Notifies the <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived class of
-relevant events.</p></li>
-<li><p>Often observes model changes (directly or via the UI controller)
-and updates the screen accordingly.</p></li>
-</ul>
-</li>
-</ul>
-<p>For more information on the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived
-classes, see <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework
-requirements for GUI applications</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6" xml:lang="en"><title>Traditional
+Symbian UI application architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following image illustrates the components of the traditional architecture
+approach.</p>
+<fig id="GUID-F38DBC9C-31C0-4E4F-934C-38BA4A4B649F"><title>Traditional Symbian UI application architecture classes</title><image href="GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e41499_href.png"/></fig>
+<p>Symbian platform applications that follow the traditional Symbian UI
+application architecture require:</p>
+<ul>
+<li><p>a <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
+controller</xref> derived from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p></li>
+<li><p>a <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> or
+views derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.</p></li>
+</ul>
+<p>The traditional Symbian UI application architecture provides the most
+flexible approach to application UI construction. Traditional architecture
+is easier to port across different platforms than <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">view
+architecture</xref>. Traditional architecture is also the best choice for
+single-view applications, if launching the view from external applications
+is not required.</p>
+<p>Typical responsibilities in this architecture are:</p>
+<ul>
+<li><p><xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived class acts as a UI controller:</p>
+<ul>
+<li><p>It <xref href="GUID-A29FB4CA-2161-4407-BA69-48FBF5D7543F.dita">creates</xref> one
+or more <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived views.</p></li>
+<li><p>It handles <xref href="GUID-EF7FF39E-929F-4767-B475-5D582D37BB32.dita">events</xref>,
+including enabling views to handle <xref href="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita">key
+events</xref>.</p></li>
+<li><p>To <xref href="GUID-FC63E2D1-697C-4890-9B70-0DC0AAE7597C.dita">switch
+between views</xref>, it creates and destroys or shows and hides views.</p>
+</li>
+<li><p>It handles menu <xref href="GUID-4941C035-C359-4968-9BD5-31F44EE5F810.dita">commands</xref>.</p>
+</li>
+<li><p>It receives events such as <xref href="GUID-DD15F24B-0786-4531-A6C5-A5E70EBE2732.dita">layout</xref> and <xref href="GUID-3B441CDC-AB7A-4D8D-A595-57C21E1D426C.dita">foreground</xref> notifications
+from the run-time environment.</p></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view:</p>
+<ul>
+<li><p>Shows application data and state on the screen.</p></li>
+<li><p>Receives user input.</p></li>
+<li><p>Notifies the <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived class of
+relevant events.</p></li>
+<li><p>Often observes model changes (directly or via the UI controller)
+and updates the screen accordingly.</p></li>
+</ul>
+</li>
+</ul>
+<p>For more information on the <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived
+classes, see <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">Framework
+requirements for GUI applications</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7" xml:lang="en"><title>Direct
-File Store</title><shortdesc>The main characteristic of a direct file store is that streams
-can be created and objects externalized to them but, once the streams have
-been committed and closed, they cannot subsequently be changed.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Once the streams have been committed and closed, they cannot be replaced,
-deleted, extended or changed in any way. A direct file store is useful for
-the type of application which treats the in-memory copy of its data as its
-prime copy, such as a word processor which implements the classic load/save
-paradigm. In this paradigm:</p>
-<ul>
-<li id="GUID-DE651688-71D8-5E52-BA3A-D3ED93B58F55"><p>application data is
-first created, in an internal, non-persistent, form — i.e., in RAM</p> </li>
-<li id="GUID-F6012000-CE82-5940-9CEB-386664FF0EA5"><p>when the file is first
-saved, the data is externalised to the file store. When saving its data, an
-application writes the whole object network forming the data to a new direct
-file store, replacing any existing file of the same name. The last stream
-written is always the root stream.</p> </li>
-<li id="GUID-9896F0DD-1D96-5EC7-959F-D3C7EB226BD6"><p>the application can
-exit</p> </li>
-<li id="GUID-27B6B647-FA91-52BF-855C-2F6CE31AB0E6"><p>when the application
-is started again, it can open the file store and read in the persistent data.
-It need not load the whole object network into memory; the loading of objects
-can be deferred by using Swizzles. </p> </li>
-<li id="GUID-1BF73B14-8CB1-57B3-A687-7C76B5100C9E"><p>the data is edited in
-its internal, non-persistent form</p> </li>
-<li id="GUID-8FFA6658-0753-5601-979A-2833AD415691"><p>when data is saved again,
-the old file is erased (or renamed for safety!) and completely rewritten</p> </li>
-</ul>
-<p>With a direct file store, a stream may not be appended once it has been
-written and closed. Writing to different streams may not be interleaved. The
-root stream must be the last stream to be written. The direct file store is
-very efficient as the allocation of new streams, and finding existing streams,
-are trivially mapped onto the most efficient operations of the underlying
-file system.</p>
-<p>For this type of application, the most efficient file format is obtained
-when all the data is written in sequence to the file. Any references within
-the file are to data which was written earlier. When reading the file back,
-it is read in several sections starting with a section that is at the <i>end</i> of
-the file.</p>
-<p>A typical relationship between a direct file store and its contained streams
-is shown below. In this stream network streams <i>I</i> and <i>J</i> must
-be written before stream <i>A</i>; stream <i>K</i> must be written before
-stream <i>C</i>; streams <i>A</i>,<i>B</i> and <i>C</i> must be written before
-the root stream.</p>
-<fig id="GUID-D45A96E3-5900-5817-8B32-8AA74E3DE584">
-<title>Streams linked in a store</title>
-<image href="GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e360725_href.png" placement="inline"/>
-</fig>
-<p>Direct file stores are encapsulated by the <codeph>CDirectFileStore</codeph> class. </p>
-</conbody><related-links>
-<link href="GUID-D7211372-9411-5A18-88F0-615F4983A2E0.dita"><linktext>Store Streams</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7" xml:lang="en"><title>Direct
+File Store</title><shortdesc>The main characteristic of a direct file store is that streams
+can be created and objects externalized to them but, once the streams have
+been committed and closed, they cannot subsequently be changed.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Once the streams have been committed and closed, they cannot be replaced,
+deleted, extended or changed in any way. A direct file store is useful for
+the type of application which treats the in-memory copy of its data as its
+prime copy, such as a word processor which implements the classic load/save
+paradigm. In this paradigm:</p>
+<ul>
+<li id="GUID-DE651688-71D8-5E52-BA3A-D3ED93B58F55"><p>application data is
+first created, in an internal, non-persistent, form — i.e., in RAM</p> </li>
+<li id="GUID-F6012000-CE82-5940-9CEB-386664FF0EA5"><p>when the file is first
+saved, the data is externalised to the file store. When saving its data, an
+application writes the whole object network forming the data to a new direct
+file store, replacing any existing file of the same name. The last stream
+written is always the root stream.</p> </li>
+<li id="GUID-9896F0DD-1D96-5EC7-959F-D3C7EB226BD6"><p>the application can
+exit</p> </li>
+<li id="GUID-27B6B647-FA91-52BF-855C-2F6CE31AB0E6"><p>when the application
+is started again, it can open the file store and read in the persistent data.
+It need not load the whole object network into memory; the loading of objects
+can be deferred by using Swizzles. </p> </li>
+<li id="GUID-1BF73B14-8CB1-57B3-A687-7C76B5100C9E"><p>the data is edited in
+its internal, non-persistent form</p> </li>
+<li id="GUID-8FFA6658-0753-5601-979A-2833AD415691"><p>when data is saved again,
+the old file is erased (or renamed for safety!) and completely rewritten</p> </li>
+</ul>
+<p>With a direct file store, a stream may not be appended once it has been
+written and closed. Writing to different streams may not be interleaved. The
+root stream must be the last stream to be written. The direct file store is
+very efficient as the allocation of new streams, and finding existing streams,
+are trivially mapped onto the most efficient operations of the underlying
+file system.</p>
+<p>For this type of application, the most efficient file format is obtained
+when all the data is written in sequence to the file. Any references within
+the file are to data which was written earlier. When reading the file back,
+it is read in several sections starting with a section that is at the <i>end</i> of
+the file.</p>
+<p>A typical relationship between a direct file store and its contained streams
+is shown below. In this stream network streams <i>I</i> and <i>J</i> must
+be written before stream <i>A</i>; stream <i>K</i> must be written before
+stream <i>C</i>; streams <i>A</i>,<i>B</i> and <i>C</i> must be written before
+the root stream.</p>
+<fig id="GUID-D45A96E3-5900-5817-8B32-8AA74E3DE584">
+<title>Streams linked in a store</title>
+<image href="GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e354645_href.png" placement="inline"/>
+</fig>
+<p>Direct file stores are encapsulated by the <codeph>CDirectFileStore</codeph> class. </p>
+</conbody><related-links>
+<link href="GUID-D7211372-9411-5A18-88F0-615F4983A2E0.dita"><linktext>Store Streams</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B" xml:lang="en"><title>Feature
-Manager Collection Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Feature Manager collection is a set of classes used to manipulate feature
-flags. </p>
-<section id="GUID-E1E8BB89-C634-51D3-BBA1-A98BCCA3BD44"><title>Purpose</title> <p>A
-feature is any piece of functionality which can be included in a phone at
-ROM build time or excluded from it. An excluded feature is often written to
-ROM at build time but excluded from the build by disabling it. </p> </section>
-<section id="GUID-E914F975-B33E-55D0-9F7A-8CA65C321296"><title>Architecture</title> <p>The
-feature management system uses the standard client server architecture. The
-relationship between the components is : </p> <fig id="GUID-CA8AE056-6988-5611-BFE0-9999C0F02FF7">
-<title>              Architecture of the feature management system       
-    </title>
-<image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351566_href.png" placement="inline"/>
-</fig><p>  Feature Manager Client is not supplied with all versions of Symbian
-Platform. Feature Discovery, which is always supplied, provides a subset of
-the functionality of Feature Manager Client and offers superior performance
-under certain circumstances. </p><p> The data which the Feature Manager manages
-is stored as a collection of  XML files in the feature database. These files
-define a set of feature flags  which can be accessed using the Feature Manager
-API. The file <filepath>featureuid.xml</filepath> is the master record of
-all features in the database. You do not manipulate the feature database directly.
-  </p><p> The feature manager database is also accessed by the tool <filepath>feat2hdr.pl</filepath> which
-is used at ROM build time to convert the data relating to each feature into
-.iby and .h files used by the source code of the  components which the features
-refer to.   </p> </section>
-<section id="GUID-A9D9B55D-8B3F-54E3-A272-0EF74757846F"><title>Description</title> <p> </p> <p>The
-Feature Manager provides the functionality to </p> <ul>
-<li id="GUID-946849BE-FD32-5C15-A14D-652962D7B907"><p>query features and report
-on them, </p> </li>
-<li id="GUID-97184F11-834D-510B-A9C5-685E87ADC256"><p>modify the status of
-features, and </p> </li>
-<li id="GUID-A7A9F8C0-21A1-5017-9DEA-334DA2345692"><p>set up notification
-of changes to features. </p> </li>
-</ul> </section>
-<section id="GUID-B0C40DD9-CE3F-5855-AD6C-C56140CB27FF"><title>Components</title> <ul>
-<li id="GUID-854A0F17-CC56-5673-9BA4-49E2D36AEEA2"><p>Feature Manager Client
-provides the complete functionality required for feature management. </p> </li>
-<li id="GUID-FEF9EA74-AC3B-507E-BFCA-599CEEBA3C4D"><p>Feature Manager Server
-maintains the table containing the list of features available on the device. </p> </li>
-<li id="GUID-EB3A9157-0659-5288-8FB8-18379EB2EE62"><p>Feature Discovery provides
-the functionality to discover if a feature or feature set is available but
-not to enable, disable or modify features. </p> </li>
-</ul> <p>Feature flags were formerly managed using the Feature Registry component,
-which has now been deprecated. The old Feature Registry API calls continue
-to be supported, but the old implementation has been scrapped in favour of
-wrapper functions which call Feature Manager. </p> </section>
-<section><title>Using Feature Manager</title> <p>Feature flags, which are
-held in the feature database, track changes to the status of features. It
-is important to know that modifications through Feature Manager do not modify
-the features themselves, though feature flags may be used by other components
-which actually modify features. </p> <p>The Feature Manager provides the functionality
-to: </p> <ul>
-<li id="GUID-9D4F29E1-3E82-5527-8F49-C77346235CF2"><p>report the availability
-of feature flags, </p> </li>
-<li id="GUID-6A2B037D-46C6-595A-A9BF-3FBEBE4A063B"><p>enable and disable feature
-flags, </p> </li>
-<li id="GUID-262022F4-D777-5FD1-961E-6FDF22E77BC0"><p>modify the status of
-feature flags and the data associated with them, and </p> </li>
-<li id="GUID-893BC294-3503-5020-A507-0CBC455CB269"><p>set up notification
-of changes to the status of feature flags. </p> </li>
-</ul> <p>The <xref href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita">Feature
-Manager Tutorial</xref> provides detailed instructions on how to perform these
-tasks. </p> </section>
-</conbody><related-links>
-<link href="GUID-1568493D-0384-5FBD-816B-60A4817CEF0C.dita"><linktext>Feature Manager
-Guide</linktext></link>
-<link href="GUID-6F716E31-490E-5CA1-871A-D8D1661E3078.dita"><linktext>Feature Manager
-Installation                 Tutorial</linktext></link>
-<link href="GUID-D01C4682-619E-501E-8992-9F7FA35D7682.dita"><linktext>Feature Manager
-Modification                 Tutorials</linktext></link>
-<link href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita"><linktext>Feature Manager
-Querying                 Tutorials</linktext></link>
-<link href="GUID-910780A3-D6AB-5EE2-966A-5F228AC5804F.dita"><linktext>Feature Manager
-Notification                 Tutorials</linktext></link>
-<link href="GUID-F2489DE2-18E2-5C5B-A174-49B5B7A64A7C.dita"><linktext>Feature Manager
-Reporting                 Tutorials</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B" xml:lang="en"><title>Feature
+Manager Collection Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Feature Manager collection is a set of classes used to manipulate feature
+flags. </p>
+<section id="GUID-E1E8BB89-C634-51D3-BBA1-A98BCCA3BD44"><title>Purpose</title> <p>A
+feature is any piece of functionality which can be included in a phone at
+ROM build time or excluded from it. An excluded feature is often written to
+ROM at build time but excluded from the build by disabling it. </p> </section>
+<section id="GUID-E914F975-B33E-55D0-9F7A-8CA65C321296"><title>Architecture</title> <p>The
+feature management system uses the standard client server architecture. The
+relationship between the components is : </p> <fig id="GUID-CA8AE056-6988-5611-BFE0-9999C0F02FF7">
+<title>              Architecture of the feature management system       
+    </title>
+<image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345485_href.png" placement="inline"/>
+</fig><p>  Feature Manager Client is not supplied with all versions of Symbian
+Platform. Feature Discovery, which is always supplied, provides a subset of
+the functionality of Feature Manager Client and offers superior performance
+under certain circumstances. </p><p> The data which the Feature Manager manages
+is stored as a collection of  XML files in the feature database. These files
+define a set of feature flags  which can be accessed using the Feature Manager
+API. The file <filepath>featureuid.xml</filepath> is the master record of
+all features in the database. You do not manipulate the feature database directly.
+  </p><p> The feature manager database is also accessed by the tool <filepath>feat2hdr.pl</filepath> which
+is used at ROM build time to convert the data relating to each feature into
+.iby and .h files used by the source code of the  components which the features
+refer to.   </p> </section>
+<section id="GUID-A9D9B55D-8B3F-54E3-A272-0EF74757846F"><title>Description</title> <p> </p> <p>The
+Feature Manager provides the functionality to </p> <ul>
+<li id="GUID-946849BE-FD32-5C15-A14D-652962D7B907"><p>query features and report
+on them, </p> </li>
+<li id="GUID-97184F11-834D-510B-A9C5-685E87ADC256"><p>modify the status of
+features, and </p> </li>
+<li id="GUID-A7A9F8C0-21A1-5017-9DEA-334DA2345692"><p>set up notification
+of changes to features. </p> </li>
+</ul> </section>
+<section id="GUID-B0C40DD9-CE3F-5855-AD6C-C56140CB27FF"><title>Components</title> <ul>
+<li id="GUID-854A0F17-CC56-5673-9BA4-49E2D36AEEA2"><p>Feature Manager Client
+provides the complete functionality required for feature management. </p> </li>
+<li id="GUID-FEF9EA74-AC3B-507E-BFCA-599CEEBA3C4D"><p>Feature Manager Server
+maintains the table containing the list of features available on the device. </p> </li>
+<li id="GUID-EB3A9157-0659-5288-8FB8-18379EB2EE62"><p>Feature Discovery provides
+the functionality to discover if a feature or feature set is available but
+not to enable, disable or modify features. </p> </li>
+</ul> <p>Feature flags were formerly managed using the Feature Registry component,
+which has now been deprecated. The old Feature Registry API calls continue
+to be supported, but the old implementation has been scrapped in favour of
+wrapper functions which call Feature Manager. </p> </section>
+<section><title>Using Feature Manager</title> <p>Feature flags, which are
+held in the feature database, track changes to the status of features. It
+is important to know that modifications through Feature Manager do not modify
+the features themselves, though feature flags may be used by other components
+which actually modify features. </p> <p>The Feature Manager provides the functionality
+to: </p> <ul>
+<li id="GUID-9D4F29E1-3E82-5527-8F49-C77346235CF2"><p>report the availability
+of feature flags, </p> </li>
+<li id="GUID-6A2B037D-46C6-595A-A9BF-3FBEBE4A063B"><p>enable and disable feature
+flags, </p> </li>
+<li id="GUID-262022F4-D777-5FD1-961E-6FDF22E77BC0"><p>modify the status of
+feature flags and the data associated with them, and </p> </li>
+<li id="GUID-893BC294-3503-5020-A507-0CBC455CB269"><p>set up notification
+of changes to the status of feature flags. </p> </li>
+</ul> <p>The <xref href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita">Feature
+Manager Tutorial</xref> provides detailed instructions on how to perform these
+tasks. </p> </section>
+</conbody><related-links>
+<link href="GUID-1568493D-0384-5FBD-816B-60A4817CEF0C.dita"><linktext>Feature Manager
+Guide</linktext></link>
+<link href="GUID-6F716E31-490E-5CA1-871A-D8D1661E3078.dita"><linktext>Feature Manager
+Installation                 Tutorial</linktext></link>
+<link href="GUID-D01C4682-619E-501E-8992-9F7FA35D7682.dita"><linktext>Feature Manager
+Modification                 Tutorials</linktext></link>
+<link href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita"><linktext>Feature Manager
+Querying                 Tutorials</linktext></link>
+<link href="GUID-910780A3-D6AB-5EE2-966A-5F228AC5804F.dita"><linktext>Feature Manager
+Notification                 Tutorials</linktext></link>
+<link href="GUID-F2489DE2-18E2-5C5B-A174-49B5B7A64A7C.dita"><linktext>Feature Manager
+Reporting                 Tutorials</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e376536_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B7542EA6-6188-5A3D-A287-0766F7B42DC0_d0e382603_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,69 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08" xml:lang="en"><title>What
-are links</title><shortdesc>This topic describes the structure of links. A link is a container
-and an element. A link is an item that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A link is a container. A link refers to another record. A link can be included
-in a record. </p>
-<p>A link is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref>.
-The template parameter defines the type of record to which the link refers. </p>
-<fig id="GUID-0DFAC1B1-F79B-5C11-8EF3-13E70DBC5984">
-<image href="GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e86440_href.png" placement="inline"/>
-</fig>
-<p>A link is a public data member of a class. The class defines the structure
-of record. This record is the 'parent' record of the linked record. For example,
-Symbian platform defines the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref> that
-represents an Internet Access Point (IAP) record. A set of IAP records form
-an IAP table. The public data members of this class are the fields and links
-that make the record. The following code shows part of the class definition.
-Some parts are omitted - this is not the complete class definition. </p>
-<codeblock id="GUID-AF4A223F-5A3F-53ED-B797-AB75BB80E174" xml:space="preserve">class CCDIAPRecord : public CCDRecordBase
-    {
-    public:
-        CMDBField&lt;TDesC&gt;                        iServiceType;
-        CMDBRecordLink&lt;CCDServiceRecordBase&gt;    iService;
-        CMDBField&lt;TDesC&gt;                        iBearerType;
-        CMDBRecordLink&lt;CCDBearerRecordBase&gt;     iBearer;
-        CMDBRecordLink&lt;CCDNetworkRecord&gt;        iNetwork;
-        CMDBField&lt;TUint32&gt;                      iNetworkWeighting;
-        CMDBRecordLink&lt;CCDLocationRecord&gt;       iLocation;
-        ...
-    }
- </codeblock>
-<p>A <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref> object contains
-an integer. The integer is the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element
-Id</xref> of the linked record in the database. </p>
-<p>If you have a parent record in memory, you call the <codeph>LoadL()</codeph> function
-on the link object <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref> to
-get the linked record into memory. You can access the linked record through
-the <codeph>iLinkedRecord</codeph> pointer. This pointer is a member of the <codeph>CMDBRecordLinkBase</codeph> class,
-but you can access this data member through the <codeph>CMDBRecordLink&lt;T&gt;</codeph> object. </p>
-<p>There are two cases: </p>
-<ul>
-<li id="GUID-EB395834-73F0-592B-ADB0-0DB6499B534C"><p>If you know what type
-of record the link refers to you cast the pointer to the correct type. For
-example: </p> <codeblock id="GUID-A72D6DD6-31F4-5CB9-8688-810E33250DC7" xml:space="preserve">CCDDialOutISPRecord* ptrIspRecord = static_cast&lt;CCDDialOutISPRecord*&gt;(ptrSingleIAPRecord-&gt;iService.iLinkedRecord);</codeblock> <p>where <codeph>ptrSingleIAPRecord</codeph> is of type <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref>. </p> </li>
-<li id="GUID-A1E77CBE-3E79-55A1-9FA2-3CFF55C9FADB"><p>If you do not know what
-type of record the link refers to you cast the pointer to the base class for
-records. You use <codeph>GetFieldByNameL()</codeph> or <codeph>GetFieldByIdLaccess()</codeph> to
-access the data in the linked record. For example: </p> <codeblock id="GUID-684703C6-0754-5F69-91E1-6ED1202A0895" xml:space="preserve">CCDServiceRecordBase* ptrServiceRecord = static_cast&lt;CCDServiceRecordBase*&gt;(ptrSingleIAPRecord-&gt;iService.iLinkedRecord);
-CMDBField&lt;TUint32&gt;* field; 
-
-// Find a field by its Id. In this code fragment, the field we are looking for 
-// is the bearer speed field.
-field = (CMDBField&lt;TUint32&gt;*)ptrServiceRecord-&gt;GetFieldByIdL(KCDTIdBearerSpeed);</codeblock> </li>
-</ul>
-</conbody><related-links>
-<link href="GUID-9D56FF77-A20B-5BFB-8DE6-19CC4535DFED.dita"><linktext>Following
-                a link to another table and finding a field by Id and by name:
-Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B756AB28-A0EA-5AA3-86E3-CCFFCD642F08" xml:lang="en"><title>What
+are links</title><shortdesc>This topic describes the structure of links. A link is a container
+and an element. A link is an item that can be stored in the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A link is a container. A link refers to another record. A link can be included
+in a record. </p>
+<p>A link is represented by the templated class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref>.
+The template parameter defines the type of record to which the link refers. </p>
+<fig id="GUID-0DFAC1B1-F79B-5C11-8EF3-13E70DBC5984">
+<image href="GUID-0FF61B9C-8B0D-5369-B0DA-29AA169B4308_d0e79728_href.png" placement="inline"/>
+</fig>
+<p>A link is a public data member of a class. The class defines the structure
+of record. This record is the 'parent' record of the linked record. For example,
+Symbian platform defines the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref> that
+represents an Internet Access Point (IAP) record. A set of IAP records form
+an IAP table. The public data members of this class are the fields and links
+that make the record. The following code shows part of the class definition.
+Some parts are omitted - this is not the complete class definition. </p>
+<codeblock id="GUID-AF4A223F-5A3F-53ED-B797-AB75BB80E174" xml:space="preserve">class CCDIAPRecord : public CCDRecordBase
+    {
+    public:
+        CMDBField&lt;TDesC&gt;                        iServiceType;
+        CMDBRecordLink&lt;CCDServiceRecordBase&gt;    iService;
+        CMDBField&lt;TDesC&gt;                        iBearerType;
+        CMDBRecordLink&lt;CCDBearerRecordBase&gt;     iBearer;
+        CMDBRecordLink&lt;CCDNetworkRecord&gt;        iNetwork;
+        CMDBField&lt;TUint32&gt;                      iNetworkWeighting;
+        CMDBRecordLink&lt;CCDLocationRecord&gt;       iLocation;
+        ...
+    }
+ </codeblock>
+<p>A <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref> object contains
+an integer. The integer is the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element
+Id</xref> of the linked record in the database. </p>
+<p>If you have a parent record in memory, you call the <codeph>LoadL()</codeph> function
+on the link object <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordLink&lt;T&gt;</apiname></xref> to
+get the linked record into memory. You can access the linked record through
+the <codeph>iLinkedRecord</codeph> pointer. This pointer is a member of the <codeph>CMDBRecordLinkBase</codeph> class,
+but you can access this data member through the <codeph>CMDBRecordLink&lt;T&gt;</codeph> object. </p>
+<p>There are two cases: </p>
+<ul>
+<li id="GUID-EB395834-73F0-592B-ADB0-0DB6499B534C"><p>If you know what type
+of record the link refers to you cast the pointer to the correct type. For
+example: </p> <codeblock id="GUID-A72D6DD6-31F4-5CB9-8688-810E33250DC7" xml:space="preserve">CCDDialOutISPRecord* ptrIspRecord = static_cast&lt;CCDDialOutISPRecord*&gt;(ptrSingleIAPRecord-&gt;iService.iLinkedRecord);</codeblock> <p>where <codeph>ptrSingleIAPRecord</codeph> is of type <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CCDIAPRecord</apiname></xref>. </p> </li>
+<li id="GUID-A1E77CBE-3E79-55A1-9FA2-3CFF55C9FADB"><p>If you do not know what
+type of record the link refers to you cast the pointer to the base class for
+records. You use <codeph>GetFieldByNameL()</codeph> or <codeph>GetFieldByIdLaccess()</codeph> to
+access the data in the linked record. For example: </p> <codeblock id="GUID-684703C6-0754-5F69-91E1-6ED1202A0895" xml:space="preserve">CCDServiceRecordBase* ptrServiceRecord = static_cast&lt;CCDServiceRecordBase*&gt;(ptrSingleIAPRecord-&gt;iService.iLinkedRecord);
+CMDBField&lt;TUint32&gt;* field; 
+
+// Find a field by its Id. In this code fragment, the field we are looking for 
+// is the bearer speed field.
+field = (CMDBField&lt;TUint32&gt;*)ptrServiceRecord-&gt;GetFieldByIdL(KCDTIdBearerSpeed);</codeblock> </li>
+</ul>
+</conbody><related-links>
+<link href="GUID-9D56FF77-A20B-5BFB-8DE6-19CC4535DFED.dita"><linktext>Following
+                a link to another table and finding a field by Id and by name:
+Tutorial</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e204842_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e209850_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0" xml:lang="en"><title>Goals
-of the Comms Architecture</title><shortdesc>This topic describes the goals of the Symbian platform Comms Architecture
-and summarises how the architecture addresses these goals. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform Comms Architecture is also known by other terms such
-as the <i>Three-Plane Comms Architecture</i> and <i>Freeway</i>. The Comms
-Architecture provides several framework components for generic functionality
-and a number of plug-in modules which plug into this framework to implement
-the comms protocols. </p>
-<p>The small number of components that make up the framework itself are referred
-to as "Comms Framework" components while the plug-in modules themselves are
-known as "Nodes" which are arranged in "Layers" within the framework. Many
-of the Nodes are supplied as part of Symbian platform but their plug-in nature
-allows some of these to be replaced with tailored modules by a device-manufacturer. </p>
-<p>The Comms Architecture has several goals: </p>
-<ul>
-<li id="GUID-72B9693A-E2D1-560D-B640-092019245F63"><p> <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-D7936ACA-491A-545F-98CB-002F789A276A">Separation of Data and Control functions</xref>  </p> </li>
-<li id="GUID-F0A5DBBF-7516-54E3-8FB0-B3A2D3DC3891"><p> <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-CD056265-7468-557A-A6F6-85B13E63A238">Flexibility</xref> </p> <ul>
-<li id="GUID-BFC6D0A0-1650-592E-91C1-48E32A4E634F"><p>no limitations in the
-creation of individual stacks from the available protocols </p> </li>
-<li id="GUID-B8E890D7-3CA9-5764-BED5-6A4632C0B998"><p>streamline the addition
-of new protocols </p> </li>
-<li id="GUID-723FCD21-A8A5-577F-BF8B-25462955DD3D"><p>support for switching
-between protocols depending on the current network availability </p> </li>
-</ul> </li>
-<li id="GUID-BEC4C7CB-307A-53AE-B648-C804E2C4CC83"><p>Improving <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-1BAC904D-F705-5416-A0F6-3D5FA3B10A7E">performance</xref> so that high-priority data transfers are not interrupted
-by lower-priority tasks. </p> </li>
-</ul>
-<p>Other requirements on the Architecture include the need to remain efficient
-in the use of ROM, RAM and processor resources, and to provide a high level
-of reliability. </p>
-<section id="GUID-D7936ACA-491A-545F-98CB-002F789A276A"><title>Separation
-of Data and Control functions</title> <p>By separating the code for the data
-flow and the control functions, it is possible to have each in a separate
-thread or even each in a separate process. This allows appropriate resources
-to be allocated and priority to be assigned to support Quality of Service,
-prioritisation of time-critical data flows and optimised plug-ins for specific
-protocols. </p> <p>Communication between the data and control threads, and
-between the layers is performed by an asynchronous messaging system known
-as the <i>Transport</i>. </p> <fig id="GUID-5467DE40-01FB-5D50-BB6D-866D5C425ADA">
-<title>              Separation of Data Flows and Control in the Comms Architecture
-           </title>
-<image href="GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e82800_href.png" placement="inline"/>
-</fig> <p>In fact the Comms Architecture actually divides the area marked
-Control above into two areas, <i>Control</i> and <i>Management</i>. This is
-the reason that this Comms Architecture is also known as the <i>Three-Plane
-Architecture</i>. In future diagrams there will be three <i>Planes</i>: Data
-Flow, Control, and Management. The Control Plane is often shown divided in
-half to indicate that the Control Plane handles both Connections and data
-channels within a Connection. This is described in more detail in <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita">Planes</xref>. </p> </section>
-<section id="GUID-CD056265-7468-557A-A6F6-85B13E63A238"><title>Flexibility </title> <p>The
-Comms Architecture uses the concept of multiple stacks of technologies, from
-high level technologies such as FTP down to lower level technologies (link
-layer technologies) running on GPRS or Wi-Fi. An individual <i>Stack</i> is
-a set of technologies which make up a communication path. A Stack in this
-context is a single list of technologies from the application to the physical
-hardware. An example of such a Stack is: HTTP over TCP over IP over GPRS,
-which might be used in web browsing via a subscriber's mobile network. The
-layered architecture allows both flexibility in the configuration of these
-Stacks, as well as dynamic reconfiguration of the Stacks in response to changes
-in the environment of the device (for example moving from a Wi-Fi to a 3G
-environment). The link-layer technologies are known as <i>Bearers</i> and
-the ability to switch a Data Flow from one bearer to another is called <i>Bearer
-Mobility</i>. But it is possible to have the ability to switch from one technology
-to another at any level in the stack providing full mobility. </p> <fig id="GUID-BE9C7C7A-DD4C-5199-81C1-E8856BA48AD6">
-<title>              Example of several potential stacks of protocols reusing
-the same              protocols.            </title>
-<desc><p>In this example IP and TCP are used in three different stacks. A
-combination of these Stacks could be running concurrently. </p> </desc>
-<image href="GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e82848_href.png" placement="inline"/>
-</fig> <p>Each stack requires a configuration that details how these protocols
-find and work with each other; the protocols themselves need to know how to
-talk with the other protocols. To allow flexibility, each protocol must avoid
-making assumptions about the protocols below or above it, and instead rely
-on the framework and device configuration. The framework ensures that each
-protocol is created and appropriately configured when required, and is attached
-to the protocols above and below it. </p> <p>The advent of multiple wireless
-technologies has allowed a device to switch between protocols depending on
-what is available. This is known as Freeway, and an example would be for a
-browser to switch from Wi-Fi to GPRS when a mobile device goes out of range
-of a Wi-Fi hotspot but is in range of a GPRS signal. The Comms Architecture
-provides for this by allowing such transitions to be defined on the device
-as part of the definition of the possible combinations of protocols that could
-make up the various Stacks. </p> <p>The figure below illustrates the scope
-of the Comms Architecture in Symbian platform from the point of view of an
-end-to-end connection. </p> <fig id="GUID-8DFF2EAE-21F7-5119-88E7-19BF2076A76F">
-<title>              The Comms Architecture shown in the scope of a complete
-protocol              stack and the end-to-end path between the applications
-on each device.            </title>
-<image href="GUID-26399981-1E45-5578-851E-D234295F3B05_d0e82865_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-1BAC904D-F705-5416-A0F6-3D5FA3B10A7E"><title>Performance</title> <p>A
-key requirement of the Comms Architecture is the performance of data transfer.
-The data transfer performance can be measured in three different ways: </p> <ul>
-<li id="GUID-02E93F2D-E249-516C-98B2-AFB9A22CCEF4"><p> <b>Throughput</b> -
-the amount of data transferred measured against time </p> </li>
-<li id="GUID-73E3B61E-C731-5BFC-9E5D-01C50FC94344"><p> <b>Latency</b> - the
-amount of time it takes a single element of data to move from one end of the
-communication route to the other </p> </li>
-<li id="GUID-0C8AE3B7-C9BC-56C7-9372-99657EF64E79"><p> <b>Jitter</b> - the
-unwanted variance in the potential delay for each item of data sent, which
-in turn causes data to arrive in the wrong order or for unacceptably-long
-pauses in the data stream . </p> </li>
-</ul> <p>The Comms Architecture addresses these needs by separating all control
-and data tasks. The control tasks are those that are involved with the creation
-and management of the data connections, but which are not directly involved
-with the transfer of data itself. The data tasks are those involved directly
-with the transfer of data. The control tasks are deemed as lower priority
-than the data tasks, and thus the data tasks are always run in preference
-to the control tasks. For example, if an application requests a new connection,
-the creation of this connection will not interrupt any existing data transfer
-operations. </p> <p>The Comms Architecture also improves the handling of Quality
-of Service resource reservation by structuring the framework around the concept
-of channels, with the framework then able to specify the Quality of Service
-parameters per channel. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0" xml:lang="en"><title>Goals
+of the Comms Architecture</title><shortdesc>This topic describes the goals of the Symbian platform Comms Architecture
+and summarises how the architecture addresses these goals. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Symbian platform Comms Architecture is also known by other terms such
+as the <i>Three-Plane Comms Architecture</i> and <i>Freeway</i>. The Comms
+Architecture provides several framework components for generic functionality
+and a number of plug-in modules which plug into this framework to implement
+the comms protocols. </p>
+<p>The small number of components that make up the framework itself are referred
+to as "Comms Framework" components while the plug-in modules themselves are
+known as "Nodes" which are arranged in "Layers" within the framework. Many
+of the Nodes are supplied as part of Symbian platform but their plug-in nature
+allows some of these to be replaced with tailored modules by a device-manufacturer. </p>
+<p>The Comms Architecture has several goals: </p>
+<ul>
+<li id="GUID-72B9693A-E2D1-560D-B640-092019245F63"><p> <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-D7936ACA-491A-545F-98CB-002F789A276A">Separation of Data and Control functions</xref>  </p> </li>
+<li id="GUID-F0A5DBBF-7516-54E3-8FB0-B3A2D3DC3891"><p> <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-CD056265-7468-557A-A6F6-85B13E63A238">Flexibility</xref> </p> <ul>
+<li id="GUID-BFC6D0A0-1650-592E-91C1-48E32A4E634F"><p>no limitations in the
+creation of individual stacks from the available protocols </p> </li>
+<li id="GUID-B8E890D7-3CA9-5764-BED5-6A4632C0B998"><p>streamline the addition
+of new protocols </p> </li>
+<li id="GUID-723FCD21-A8A5-577F-BF8B-25462955DD3D"><p>support for switching
+between protocols depending on the current network availability </p> </li>
+</ul> </li>
+<li id="GUID-BEC4C7CB-307A-53AE-B648-C804E2C4CC83"><p>Improving <xref href="GUID-B7A40638-BA80-5175-B23D-2F3964C274A0.dita#GUID-B7A40638-BA80-5175-B23D-2F3964C274A0/GUID-1BAC904D-F705-5416-A0F6-3D5FA3B10A7E">performance</xref> so that high-priority data transfers are not interrupted
+by lower-priority tasks. </p> </li>
+</ul>
+<p>Other requirements on the Architecture include the need to remain efficient
+in the use of ROM, RAM and processor resources, and to provide a high level
+of reliability. </p>
+<section id="GUID-D7936ACA-491A-545F-98CB-002F789A276A"><title>Separation
+of Data and Control functions</title> <p>By separating the code for the data
+flow and the control functions, it is possible to have each in a separate
+thread or even each in a separate process. This allows appropriate resources
+to be allocated and priority to be assigned to support Quality of Service,
+prioritisation of time-critical data flows and optimised plug-ins for specific
+protocols. </p> <p>Communication between the data and control threads, and
+between the layers is performed by an asynchronous messaging system known
+as the <i>Transport</i>. </p> <fig id="GUID-5467DE40-01FB-5D50-BB6D-866D5C425ADA">
+<title>              Separation of Data Flows and Control in the Comms Architecture
+           </title>
+<image href="GUID-69847989-624F-5119-8AC0-3D95D72AF076_d0e76088_href.png" placement="inline"/>
+</fig> <p>In fact the Comms Architecture actually divides the area marked
+Control above into two areas, <i>Control</i> and <i>Management</i>. This is
+the reason that this Comms Architecture is also known as the <i>Three-Plane
+Architecture</i>. In future diagrams there will be three <i>Planes</i>: Data
+Flow, Control, and Management. The Control Plane is often shown divided in
+half to indicate that the Control Plane handles both Connections and data
+channels within a Connection. This is described in more detail in <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita">Planes</xref>. </p> </section>
+<section id="GUID-CD056265-7468-557A-A6F6-85B13E63A238"><title>Flexibility </title> <p>The
+Comms Architecture uses the concept of multiple stacks of technologies, from
+high level technologies such as FTP down to lower level technologies (link
+layer technologies) running on GPRS or Wi-Fi. An individual <i>Stack</i> is
+a set of technologies which make up a communication path. A Stack in this
+context is a single list of technologies from the application to the physical
+hardware. An example of such a Stack is: HTTP over TCP over IP over GPRS,
+which might be used in web browsing via a subscriber's mobile network. The
+layered architecture allows both flexibility in the configuration of these
+Stacks, as well as dynamic reconfiguration of the Stacks in response to changes
+in the environment of the device (for example moving from a Wi-Fi to a 3G
+environment). The link-layer technologies are known as <i>Bearers</i> and
+the ability to switch a Data Flow from one bearer to another is called <i>Bearer
+Mobility</i>. But it is possible to have the ability to switch from one technology
+to another at any level in the stack providing full mobility. </p> <fig id="GUID-BE9C7C7A-DD4C-5199-81C1-E8856BA48AD6">
+<title>              Example of several potential stacks of protocols reusing
+the same              protocols.            </title>
+<desc><p>In this example IP and TCP are used in three different stacks. A
+combination of these Stacks could be running concurrently. </p> </desc>
+<image href="GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e76136_href.png" placement="inline"/>
+</fig> <p>Each stack requires a configuration that details how these protocols
+find and work with each other; the protocols themselves need to know how to
+talk with the other protocols. To allow flexibility, each protocol must avoid
+making assumptions about the protocols below or above it, and instead rely
+on the framework and device configuration. The framework ensures that each
+protocol is created and appropriately configured when required, and is attached
+to the protocols above and below it. </p> <p>The advent of multiple wireless
+technologies has allowed a device to switch between protocols depending on
+what is available. This is known as Freeway, and an example would be for a
+browser to switch from Wi-Fi to GPRS when a mobile device goes out of range
+of a Wi-Fi hotspot but is in range of a GPRS signal. The Comms Architecture
+provides for this by allowing such transitions to be defined on the device
+as part of the definition of the possible combinations of protocols that could
+make up the various Stacks. </p> <p>The figure below illustrates the scope
+of the Comms Architecture in Symbian platform from the point of view of an
+end-to-end connection. </p> <fig id="GUID-8DFF2EAE-21F7-5119-88E7-19BF2076A76F">
+<title>              The Comms Architecture shown in the scope of a complete
+protocol              stack and the end-to-end path between the applications
+on each device.            </title>
+<image href="GUID-26399981-1E45-5578-851E-D234295F3B05_d0e76153_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-1BAC904D-F705-5416-A0F6-3D5FA3B10A7E"><title>Performance</title> <p>A
+key requirement of the Comms Architecture is the performance of data transfer.
+The data transfer performance can be measured in three different ways: </p> <ul>
+<li id="GUID-02E93F2D-E249-516C-98B2-AFB9A22CCEF4"><p> <b>Throughput</b> -
+the amount of data transferred measured against time </p> </li>
+<li id="GUID-73E3B61E-C731-5BFC-9E5D-01C50FC94344"><p> <b>Latency</b> - the
+amount of time it takes a single element of data to move from one end of the
+communication route to the other </p> </li>
+<li id="GUID-0C8AE3B7-C9BC-56C7-9372-99657EF64E79"><p> <b>Jitter</b> - the
+unwanted variance in the potential delay for each item of data sent, which
+in turn causes data to arrive in the wrong order or for unacceptably-long
+pauses in the data stream . </p> </li>
+</ul> <p>The Comms Architecture addresses these needs by separating all control
+and data tasks. The control tasks are those that are involved with the creation
+and management of the data connections, but which are not directly involved
+with the transfer of data itself. The data tasks are those involved directly
+with the transfer of data. The control tasks are deemed as lower priority
+than the data tasks, and thus the data tasks are always run in preference
+to the control tasks. For example, if an application requests a new connection,
+the creation of this connection will not interrupt any existing data transfer
+operations. </p> <p>The Comms Architecture also improves the handling of Quality
+of Service resource reservation by structuring the framework around the concept
+of channels, with the framework then able to specify the Quality of Service
+parameters per channel. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e53483_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B7D1D1ED-932C-4A17-AE80-EDF163FC789A_d0e61166_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e58076_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B7E55764-C137-4877-9083-63ACEAF30BE5_d0e61475_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2"><title>Architecture</title><shortdesc>This topic describes the architecture of the Root Server and the C32exe process.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <fig id="GUID-0C913075-CD53-5834-8F3F-077AA8556C4B"><title>Figure 1 - The architecture of Root Server and
-      the C32exe process</title> <image href="GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e115273_href.png" placement="inline"/></fig> <p>Figure 1 shows that the Root Server is a thread in the C32 process. The Root Server provider a Client library which other applications can use to request services of the Root Server. This client library is the only interaction the Root Server has outside the C32 process.</p> <p>The Root Server contains the functionality to manage the MBufs and Bindings of the C32 process. The Root Server creates Comms Provider Modules within the C32 process only. These Comms Provider Modules may have client libraries outside the C32 process. For example, the Socket Server Comms Provider Module loads <filepath>esocksvr.dll</filepath>. The <codeph>esocksvr</codeph> DLL has a client library <filepath>esock.lib</filepath> which applications use to request services from the Socket Server.</p> <p>Figure 2 shows the C32 process and Root Server with some example Comms Provider Modules and the Comms Configurator using the Root Server client API.</p> <fig id="GUID-4FC93F03-ABE7-5519-A665-32C968AA66C8"><title>Figure 2 - Comms Process with example CPMs
-      loaded</title> <image href="GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e115297_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B7E5C7C1-E02F-575C-981B-E14DA10C63D2"><title>Architecture</title><shortdesc>This topic describes the architecture of the Root Server and the C32exe process.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <fig id="GUID-0C913075-CD53-5834-8F3F-077AA8556C4B"><title>Figure 1 - The architecture of Root Server and
+      the C32exe process</title> <image href="GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e108735_href.png" placement="inline"/></fig> <p>Figure 1 shows that the Root Server is a thread in the C32 process. The Root Server provider a Client library which other applications can use to request services of the Root Server. This client library is the only interaction the Root Server has outside the C32 process.</p> <p>The Root Server contains the functionality to manage the MBufs and Bindings of the C32 process. The Root Server creates Comms Provider Modules within the C32 process only. These Comms Provider Modules may have client libraries outside the C32 process. For example, the Socket Server Comms Provider Module loads <filepath>esocksvr.dll</filepath>. The <codeph>esocksvr</codeph> DLL has a client library <filepath>esock.lib</filepath> which applications use to request services from the Socket Server.</p> <p>Figure 2 shows the C32 process and Root Server with some example Comms Provider Modules and the Comms Configurator using the Root Server client API.</p> <fig id="GUID-4FC93F03-ABE7-5519-A665-32C968AA66C8"><title>Figure 2 - Comms Process with example CPMs
+      loaded</title> <image href="GUID-51E0F9C6-CFAF-5113-8516-30045B1269C7_d0e108759_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e108735_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B7F3F71A-2E05-58A5-98B2-0C62C65286D1_d0e115273_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e201451_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B80E3FB0-C26F-52A8-B4DE-0A219B974ABC_d0e206459_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,552 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1" xml:lang="en"><title>How
-to write controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Cone itself does not provide any concrete controls. Uikon and the UI variant
-libraries provide a large number of 'stock' controls for application writers.
-Application writers often need to supplement the standard set of controls
-with application specific controls of their own. These may be completely new
-controls or, more often, compound controls which contain a number of standard
-controls. </p>
-<p>This section describes how to create controls and how to integrate them
-in to the control framework. It is divided into the following sections: </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7-GENID-1-8-1-3-1-1-7-1-9-1-2-13">Creating
-a control</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-3-1-1-7-1-9-1-2-14">Window
-owning or not?</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-3-1-1-7-1-9-1-2-15">Creating
-a compound control</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-3-1-1-7-1-9-1-2-15">Size,
-position and layout</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-351911EE-87C7-5D11-8434-BA7FD3741745-GENID-1-8-1-3-1-1-7-1-9-1-2-17">Drawing
-and refreshing</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-3-1-1-7-1-9-1-2-18">Drawing
-backgrounds</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54-GENID-1-8-1-3-1-1-7-1-9-1-2-19">Drawing
-text</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD-GENID-1-8-1-3-1-1-7-1-9-1-2-20">Drawing
-graphics</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-3-1-1-7-1-9-1-2-21">Handling
-events</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-FE221E89-1817-5A73-8FBA-212FBC030766-GENID-1-8-1-3-1-1-7-1-9-1-2-22">Implementing
-the Object Provider (MOP) interface</xref>  </p>
-<section id="GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7-GENID-1-8-1-3-1-1-7-1-9-1-2-13"><title>Creating a
-control</title> <p>A control is a class which derives from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
-It should have a public constructor and, if any leaving function calls or
-memory allocations are required during construction, a <codeph>ConstructL()</codeph> function.
-The majority of re-useable and configurable controls have a <codeph>ConstructFromResourceL()</codeph> function
-which allows a specific instance of a control to be configured using an application's
-resource file. Obviously any memory allocated must be freed in the destructor.
-Before a control is drawn to the screen it must be activated. The <codeph>ActivateL()
-function</codeph> may be overriden to perform last-minute configuration (but
-must call the function in the base class). </p> <codeblock id="GUID-18D48E7E-9846-5CE0-BE1E-FAB723419B90-GENID-1-8-1-3-1-1-7-1-9-1-2-13-3" xml:space="preserve">
-Class CMyControl : public CCoeControl
-    {
-    public:
-        CMyControl() ;
-        void ConstructL(...) ;
-        // from CCoeControl
-        void ConsructFromResourceL( TResourceReader&amp; aReader ) ; 
-    private:
-        ~CMyControl() ;
-
-    // additional functions to handle events 
-    // additional functions to draw the control
-    // additional functions to determine the size, layout and position the control
-    }</codeblock> </section>
-<section id="GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-3-1-1-7-1-9-1-2-14"><title>Window owning
-or not? </title> <p>The decision over whether to make a control window owning
-or not is usually straightforward. Each view requires a window, so the top-level
-control must be window-owning and a child of the AppUi. Below this a window
-owning control is normally only necessary where a sense of layering is required:
-for instance a pop-up window or a scrolling window. Dialogs and menus are
-window owning controls but these are normally implemented in the Uikon and
-UI variant libraries and do not require custom derivation from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
-Unnecessary window-owning controls should be avoided as they require more
-infrastructure, place greater demand on the Window Server and reduce performance. </p> <p>If
-a control must be window owning its window must either be created in the <codeph>ConstructL()</codeph> function
-or by the caller. The former is preferred. There are several overloads of
-the <codeph>CreateWindowL()</codeph> and <codeph>CreateBackedUpWindowL()</codeph> functions.
-Those which do not take a parent parameter create a top-level window which
-is a child of the root window. </p> <p>If a control is not window owning its <codeph>SetContainerWindowL()</codeph> function
-must be called when it is instantiated. </p> <p>If it can, the Framework will
-automatically set up the parent pointer when the window, or associated window
-relationship is established. If it cannot do this, because <codeph>CreateWindowL()</codeph> or <codeph>SetContainerWindowL()</codeph> did
-not provide a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, the parent pointer (and MopParent)
-may be set expicitly using <codeph>SetParent()</codeph> and <codeph>SetMopParent()</codeph>. </p> </section>
-<section id="GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-3-1-1-7-1-9-1-2-15"><title>Creating a
-compound control</title> <p>Most applications UIs are built from compound
-controls. Many custom controls are built up from stock controls and are therefore
-also compound controls. When a compound control is constructed it constructs
-its components in its <codeph>ConstructL()</codeph> function. When it receives
-commands itself, such as <codeph>ActivateL()</codeph> and <codeph>DrawNow()</codeph> it
-passes them on to each of its components. In most cases the Framework does
-much of the donkey work as long as the compound control has been constructed
-correctly. </p> <p>There are now two methods of creating and managing lodger
-controls. The first method described is the one that should be used. </p> <codeblock id="GUID-F77661F7-6A68-58DB-B875-9D957A937617-GENID-1-8-1-3-1-1-7-1-9-1-2-15-4" xml:space="preserve">
-void MyControl::ConstructL( ... )
-    {
-    // initialise the component array. This must be called once (subsequent calls have no effect)
-    InitComponentArrayL() ; 
-
-    // construct each component control and add it to the component array.
-    CComponent* myComponent = new (ELeave) CComponent ;
-    Components().AppendLC( myComponent ) ; // or InsertLC or InsertAfterLC().  Places item on cleanup stack.
-    myComponent-&gt;ConstructL() ;
-    myComponent-&gt;SetThisAndThatL() ;
-    CleanupStack::Pop( myComponent ) ;    
-    }</codeblock> <p>The return value of the insert and append methods is
-a <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita#GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1/GUID-AD37D86C-F9FA-3514-BFD4-7139A0B8543F"><apiname>CCoeControlArray::TCursor</apiname></xref> object which works as an iterator.
-It will remain valid when other items are inserted or deleted, or even if
-the whole array is re-ordered. </p> <p>The insert and append methods leave
-the component on the Cleanup Stack using a dedicated Cleanup Item that protects
-the parent's array as well as the component itself. </p> <p>The insert and
-append methods allow each component to be given an ID. The ID must be unique
-only within the parent so typically a compound control will have an enum listing
-each of its children's IDs. <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita"><apiname>CCoeControlArray</apiname></xref> , accessed
-using <codeph>CCoeControl::Components()</codeph>, has a <codeph>ControlById()</codeph> method
-to retrieve components using their IDs. </p> <p>Components in the array are,
-by default, owned by the parent and will be deleted automatically when the
-parent is deleted. The default may be overridden using <codeph>CCoeControlArray::SetControlsOwnedExternally()</codeph>.
-The setting applies to all of the components. </p> <p>Controls may be removed
-from the array using one of the <codeph>Remove()</codeph> methods. These do
-not delete. </p> <codeblock id="GUID-9F9EC327-E7DE-59B8-838B-F5052E3750D3-GENID-1-8-1-3-1-1-7-1-9-1-2-15-10" xml:space="preserve">
-class CCoeControlArray
-        ...
-    public:
-        IMPORT_C TInt Remove(const CCoeControl* aControl);
-        IMPORT_C CCoeControl* Remove(TCursor aRemoveAt);
-        IMPORT_C CCoeControl* RemoveById(TInt aControlId);
-        ...
-</codeblock> <p>Using the component array as described is now the approved
-method of constructing and managing compound controls. In older versions of
-Symbian OS a specific method of handling components was not provided and developers
-were obliged to design their own. Bypassing the component array is still possible.
-It is necessary to allocate and store the components (typically as member
-data) and to implement the <codeph>CountComponentControls()</codeph> and <codeph>ComponentControl()</codeph> functions
-to return the number of components and a specified component to the framework.
-The new method offers significant advantages when controls are added and removed
-dynamically or are dependant on run-time data. The new method is also integrated
-with new layout managers. </p> </section>
-<section id="GUID-7E144310-9AF4-50F1-AD8A-9F9E05D554D1-GENID-1-8-1-3-1-1-7-1-9-1-2-16"><title>Size, position
-and layout</title> <p>There are several factors which contribute to a control's
-size and position. The control itself will require a certain size in order
-to display itself (and its data) correctly. The control's container will be
-responsible for positioning the control but is also likely to be responsible
-for positioning other controls - each of which will have its own requirements.
-Additionally there are the requirements of the UI's look and feel that must
-be complied with. </p> <p>Each control is responsible for implementing its
-own <codeph>Size()</codeph> function. </p> <p>Until Symbian OS version 9.1
-it was normal to write layout code for simple and compound controls in the <codeph>SizeChanged()</codeph> function.
-This is called by the framework, as one might expect, when a control's size
-(its 'extent') is changed. From 9.1, however, Symbian OS supports the use
-of the layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>) and
-the <codeph>SizeChanged()</codeph> function is now implemented in the base
-class. (Note that if a control's position is changed, with no size change,
-using <codeph>CCoeControl::SetPosition()</codeph> its <codeph>PositionChanged()</codeph> function
-is called and that default implementation of <codeph>PositionChanged()</codeph> is
-empty). </p> <codeblock id="GUID-53A10820-550A-52C2-AE80-D556FD77E8FA-GENID-1-8-1-3-1-1-7-1-9-1-2-16-5" xml:space="preserve">
-class MCoeLayoutManager
-        ...
-    protected:
-        IMPORT_C MCoeLayoutManager();
-    
-    public:
-        virtual TBool CanAttach() const = 0;
-        virtual void AttachL(CCoeControl&amp; aCompoundControl) = 0;
-        virtual void Detach(CCoeControl&amp; aCompoundControl) = 0;
-        virtual TSize CalcMinimumSize(const CCoeControl&amp; aCompoundControl) const = 0;
-        virtual void PerformLayout() = 0;
-        virtual TInt CalcTextBaselineOffset(const CCoeControl&amp; aCompoundControl, const TSize&amp; aSize) const = 0;
-        virtual void SetTextBaselineSpacing(TInt aBaselineSpacing) = 0;
-        virtual TInt TextBaselineSpacing() const = 0;
-        virtual void HandleAddedControlL(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aAddedControl) = 0;
-        virtual void HandleRemovedControl(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aRemovedControl) = 0;
-        virtual TInt HandleControlReplaced(const CCoeControl&amp; aOldControl, const CCoeControl&amp; aNewControl) = 0;
-        ...
-</codeblock> <p>A layout manager may be attached to a compound control. </p> <codeblock id="GUID-ACCD143C-8618-5606-B749-D7EFE5C83ACD-GENID-1-8-1-3-1-1-7-1-9-1-2-16-7" xml:space="preserve">
-class CCoeControl
-        ...
-    protected: 
-        IMPORT_C MCoeLayoutManager* LayoutManager() const;
-        IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayoutManager);
-
-    public:
-        IMPORT_C virtual TBool RequestRelayout(const CCoeControl* aChildCtrl);
-        ...</codeblock> <p>The default implementations of <codeph>MinimumSize()</codeph> and <codeph>SizeChanged()</codeph> now
-use the layout manager. </p> <codeblock id="GUID-88340A33-A58C-5856-AD47-C2E1637DD45F-GENID-1-8-1-3-1-1-7-1-9-1-2-16-9" xml:space="preserve">
-EXPORT_C TSize CCoeControl::MinimumSize()
-    { 
-    const MCoeLayoutManager* layoutManager = LayoutManager();
-    if (layoutManager)
-        return layoutManager-&gt;CalcMinimumSize(*this);
-    else    
-        return iSize;
-    }
-
-EXPORT_C void CCoeControl::SizeChanged()
-    {
-    MCoeLayoutManager* layout = LayoutManager();
-    if (layout)
-        layout-&gt;PerformLayout();
-</codeblock> <p>The layout manager is responsible for the size and position
-of the component controls. In practice it's likely that the UI variant libraries
-will provide concrete layout managers. Application developers should use these
-as the basis for control-specific layout managers. </p> </section>
-<section id="GUID-351911EE-87C7-5D11-8434-BA7FD3741745-GENID-1-8-1-3-1-1-7-1-9-1-2-17"><title> Drawing and
-refreshing</title> <p>A fundamental requirement of most controls is that they
-are able to render themselves onto the screen. For most controls the drawing
-process involves outputting text, painting backgrounds (either plain or from
-a bitmap), drawing shapes (graphics objects) and drawing component controls. </p> <p>Screen
-drawing may be initiated by the application itself, following something within
-the application changing, or by the Window Server, due to something else in
-the system updating the screen while the application is visible. In both cases
-the control's <codeph>Draw()</codeph> function will be called automatically
-by the framework. For compound controls all of the components' <codeph>Draw()</codeph> functions
-will also be called - unless the component lies completely outside the area
-that requires redrawing. </p> <p>As a control writer you will probably have
-to implement a <codeph>Draw()</codeph> function. </p> <p>Here is the signature
-for <codeph>Draw()</codeph>: </p> <codeblock id="GUID-7A83E8B5-9673-5EBC-B628-674734A07E0F-GENID-1-8-1-3-1-1-7-1-9-1-2-17-6" xml:space="preserve">private:
-    void Draw( const TRect&amp; aRect ) const ;</codeblock> <p>Note that it
-is private, takes a <codeph>const TRect&amp;</codeph> as a parameter, must
-not leave and is <codeph>const</codeph>. </p> <p>It should only be called
-by the framework. Application initiated redraws should be through calls to <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> or
-custom functions for drawing smaller elements. </p> <p>The <codeph>aRect</codeph> parameter
-is the part of the control that requires drawing (refreshing). </p> <p>The
-function is <codeph>const</codeph> and non-leaving because it is intended
-to support the decoupling of drawing actions from application state. </p> </section>
-<section id="GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-3-1-1-7-1-9-1-2-18"><title>Drawing backgrounds</title> <p>A
-control's background is typically determined by the current colour scheme
-or skin. It may be a plain colour or a bitmap. It's also possible that a control
-is to appear non-rectangular or transparent in which case some of the background
-will be the control underneath. Prior to Symbian OS 9.1 controls were required
-to clear and update their whole area and creating these effects was rather
-complex. From 9.1 controls are drawn 'backmost first'. </p> <p>Background
-drawing should be done by a dedicated background drawer - i.e. an object which
-implements the <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> interface. A background
-can be attached to a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> using <codeph>SetBackground()</codeph> and
-is used for that control and all of its children. When a control is drawn
-the framework looks for the nearest background up the run-time hierarchy and
-calls <codeph>MCoeControlBackground::Draw()</codeph>. </p> <p>UI variant libraries
-typically provide backgrounds. They are not owned by the controls to which
-they are attached. </p> </section>
-<section id="GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54-GENID-1-8-1-3-1-1-7-1-9-1-2-19"><title>Drawing text</title> <p>Text
-must be drawn with the correct color, font, size and direction. As with backgrounds,
-these are determined at runtime according to UI customizations. This is achieved
-by means of a Text Drawer. Note the use of the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class.
-This is a smart pointer (note the use of the <codeph>-&gt;</codeph> operator
-to access <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> functions) which ensures that
-only one text drawer is allocated on the heap at a time. </p> <codeblock id="GUID-511A9CEE-F02C-5667-A334-3C61A2428F0F-GENID-1-8-1-3-1-1-7-1-9-1-2-19-3" xml:space="preserve">
-XCoeTextDrawer textDrawer( TextDrawer() );
-textDrawer-&gt;SetAlignment(iAlignment); 
-textDrawer-&gt;SetMargins(iMargin);
-textDrawer-&gt;SetLineGapInPixels(iGapBetweenLines);
-textDrawer.SetClipRect(aRect); // have to use . [dot] operator for SetClipRect() as not CCoeTextDrawerBase function.
-
-textDrawer.DrawText(gc, *iTextToDraw, Rect(), *Font());
-</codeblock> <p>Text drawers are typically provided by the UI variant library
-or skin manager. Controls within the run-time hierarchy can set the text drawer
-for their children by overriding <codeph>GetTextDrawer()</codeph>. </p> <p>Note
-that the text drawer expects text to be passed as a <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> rather
-than a descriptor. Controls should store all display text in <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> objects.
-Application writers should consider the implications of right-to-left layouts
-for languages such as Hebrew and Arabic. </p> <p>A control's <codeph>GetTextDrawer()</codeph> function
-might look something like this. It checks on the current state of the control
-(<codeph>IsDimmed()</codeph>) and passes the call on to a skin manager. </p> <codeblock id="GUID-155AD8EC-17DD-5155-BE20-23246A33695C-GENID-1-8-1-3-1-1-7-1-9-1-2-19-7" xml:space="preserve">
-EXPORT_C void CMyButtonControl::GetTextDrawer(CCoeTextDrawerBase*&amp; aTextDrawer, const CCoeControl* aDrawingControl, TInt /*aKey*/) const
-    {
-    const TInt textDrawerIndex = (IsDimmed() ? EButtonTextDimmed : EButtonText);
-
-    SkinManager::GetTextDrawer(aTextDrawer, KSkinUidButton, textDrawerIndex, aDrawingControl);
-    }
-</codeblock> <p>If the control is drawing text on its own graphics (and does
-not care about the text drawer of its parents) it can just create an <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> object
-on the stack in its <codeph>Draw()</codeph> method and initiate it from the
-skin that it is currently using to draw its graphics, using the <codeph>CSkinPatch::TextDrawer()</codeph> method,
-like this: </p> <codeblock id="GUID-3DFDBF27-8744-5283-AC7B-EC512EEEBB7D-GENID-1-8-1-3-1-1-7-1-9-1-2-19-9" xml:space="preserve">
-const CSkinPatch&amp; skin = SkinManager::SkinPatch(KSomeSkinUid, KSomeSkinIndex, this);
-
-skin.DrawBitmap(gc, Rect(), aRect);
-XCoeTextDrawer textDrawer( skin.TextDrawer(KSomeSkinUid, ESomeSkinTextDimmed, this) );
-
-const CFont&amp; font = ScreenFont(TCoeFont::NormalFont);
-textDrawer.DrawText(gc, iText, rect, font);
-</codeblock> <p>The example above also illustrates how to retrieve the correct
-font. <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects must not be stored in control member
-data as they must change when the control's zoom state changes. Instead, a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> that
-represents a font's size (logical or absolute in pixels) and style (plain,
-bold, italic, subscript, or superscript) should be used. </p> <codeblock id="GUID-864A57DB-BCDA-50B6-B876-9EF62CFB27C6-GENID-1-8-1-3-1-1-7-1-9-1-2-19-11" xml:space="preserve">
-class TCoeFont 
-        ...
-    public: 
-        IMPORT_C TCoeFont(TLogicalSize aSize, TInt aStyle, TInt aFlags = ENoFlags); 
-        IMPORT_C TCoeFont(TInt aHeightInPixels, TInt aStyle, TInt aFlags = ENoFlags); 
-        IMPORT_C TCoeFont(const TCoeFont&amp; aFont);
-        IMPORT_C TCoeFont();
-        ...</codeblock> <p>By creating a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> object
-describing the properties of the desired font, a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-reference (needed to actually draw the text) can be fetched from the <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>.
-A font provider can be attached to any <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> and
-will keep information about the typeface used by that control and all controls
-below. A default font provider is attached to the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. </p> <codeblock id="GUID-C46BEB52-33DB-564B-9A64-53763C7CD226-GENID-1-8-1-3-1-1-7-1-9-1-2-19-13" xml:space="preserve">
-class CCoeControl
-        ...
-    public:
-        IMPORT_C const CCoeFontProvider&amp; FindFontProvider() const;
-        IMPORT_C void SetFontProviderL(const CCoeFontProvider&amp; aFontProvider);
-        ...
-        </codeblock> <p>To get hold of the <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-a <codeph>Draw()</codeph> method can be implemented like this: </p> <codeblock id="GUID-45292362-1E39-59B0-AC7F-14C98592F059-GENID-1-8-1-3-1-1-7-1-9-1-2-19-15" xml:space="preserve">
-void CMyControl::Draw(const TRect&amp; aRect)
-    {
-    const CCoeFontProvider&amp; fontProvider = FindFontProvider();
-    const CFont&amp; font = fontProvider.Font(TCoeFont::LegendFont(), AccumulatedZoom());
-
-    XCoeTextDrawer textDrawer( TextDrawer() );
-    textDrawer-&gt;SetAlignment(EHCenterVCenter);
-    textDrawer.DrawText(gc, iText, rect, font);
-    }
-</codeblock> <p>For convenience there’s a <codeph>CCoeControl::ScreenFont()</codeph> method
-that locates the font provider and calls it with the control’s accumulated
-zoom: </p> <codeblock id="GUID-5974F900-84B7-5262-8428-88797911F94A-GENID-1-8-1-3-1-1-7-1-9-1-2-19-17" xml:space="preserve">
-class CCoeControl
-        ...
-    protected:
-        IMPORT_C const CFont&amp; ScreenFont(const TCoeFont&amp; aFont) const;
-        ...
-</codeblock> </section>
-<section id="GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD-GENID-1-8-1-3-1-1-7-1-9-1-2-20"><title>Drawing graphics</title><p>Controls
-draw graphics objects - lines, rectangles, shapes and bitmaps to a <keyword>graphics
-context</keyword>. The graphics context is provided by the Window Server and
-represents a group of settings appropriate for the physical device that is
-ultimately being drawn to. In most cases the device is a screen and a graphics
-context should be obtained using <codeph>CCoeControl::SystemGc()</codeph>. <codeph>CCoeControl::SystemGc()</codeph> gets
-the current graphics context from the run-time hierarchy. Controls in the
-hierarchy may override graphics context settings which will then be passed
-on to their children. <i>Controls should not get their graphics context directly
-from CCoeEnv as to do so would bypass the hierarchy</i>. </p> <codeblock id="GUID-DC2B7A84-BA93-5AE0-BABA-9CF6B156A54E-GENID-1-8-1-3-1-1-7-1-9-1-2-20-3" xml:space="preserve">
-void CMyControl::Draw( const TRect&amp; aRect )
-    {
-    CWindowGc&amp; gc = SystemGc() ; // get gc from run time hierarchy
-    TRect rect = TRect( Size() ) ;
-    if ( IsBlanked() )
-        {
-        // blank out the entire control
-        gc.SetPenStyle( CGraphicsContext::ENullPen ) ;
-        gc.SetBrushStyle( CGraphicsContext::ESolidBrush ) ;
-        TRgb blankColor = BlankingColor() ;
-        gc.SetBrushColor( blankColor ) ;
-        gc.DrawRect( rect ) ;
-        }
-    else
-        {
-        // draw masked bitmap in the centre of the control 
-        // The parent will draw the background 
-        TInt id = BitMapId() ;
-
-        TInt x = Size().iWidth - iBitmap[id]-&gt;SizeInPixels().iWidth ;
-        TInt y = Size().iHeight - iBitmap[id]-&gt;SizeInPixels().iHeight ;
-
-        TPoint pos = Rect().iTl ;
-        pos.iX = pos.iX + ( x / 2 ) ;
-        pos.iY = pos.iY + ( y / 2 ) ;
-
-        gc.BitBltMasked( pos, iBitmap[id], rect, iMaskBitmap, ETrue ) ;
-        }
-    }</codeblock> <p>Before a graphics context can be used it must be activated.
-After use it must be deactivated. Activation and deactivation are done automatically
-by the framework in <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> and <codeph>HandleRedrawEvent()</codeph> but
-must be done explicitly for any other application initiated drawing by calling <codeph>ActivateGc()</codeph> and <codeph>DeactivateGc()</codeph>. </p> <p>Controls may implement partial drawing to speed up performance. The <codeph>Draw()</codeph> function
-may be split into sub functions: <codeph>DrawThis()</codeph>, <codeph>DrawThat()</codeph>, <codeph>DrawTheOther()</codeph>.
-Each of these requires a corresponding <codeph>DrawThisNow()</codeph> and/or <codeph>DrawThisDeferred()</codeph> function. </p> <codeblock id="GUID-EDC0D6F1-61BC-552F-B56D-C32148ADECA3-GENID-1-8-1-3-1-1-7-1-9-1-2-20-6" xml:space="preserve">
-CMyControl::Draw()
-    {
-    DrawThis() ;
-    DrawThat() ;
-    DrawTheOther() ;
-    }</codeblock> <codeblock id="GUID-E026186D-7B55-5AB5-9391-8587E3510D6D-GENID-1-8-1-3-1-1-7-1-9-1-2-20-7" xml:space="preserve">
-CMyControl::DrawThisNow()
-    {
-    ActivateGc() ;
-    DrawThis() ;
-    DeactivateGc() ;
-    }</codeblock> </section>
-<section id="GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-3-1-1-7-1-9-1-2-21"><title>Handling events </title> <p>The
-Control Framework supports user interaction in two ways: key-press events
-and pointer events. Both types of event arrive through the Window Server though
-they each arrive in a slightly different way. Both are closely related to
-the concept of 'focus' and the location of the cursor. </p> <p><b>Handling
-key events </b> </p> <p>Key events are delivered to the AppUi. The Window
-Server channels them through the root window of its current window group which
-maps to the AppUi foreground application. The AppUi offers each key event
-to each of the controls on its control stack in priority order until one of
-the controls 'consumes' it. </p> <p>To receive key events a control must implement <codeph>CCoeControl::OfferKeyEventL()</codeph>.
-If it handles the event it must return <codeph>EKeyWasConsumed</codeph>: If
-it doesn't it must return <codeph>EKeyWasNotConsumed</codeph> so that the
-next control on the stack receives it. </p> <codeblock id="GUID-448E9DF8-9D63-5BA4-94A7-4FB4B96A6DEA-GENID-1-8-1-3-1-1-7-1-9-1-2-21-6" xml:space="preserve">
-TKeyResponse CMyControl::OfferKeyEventL( const TKeyEvent&amp; aKeyEvent, TEventCode aType)
-    {
-    TKeyResponse returnValue = EKeyWasConsumed ;
-    switch( aKeyEvent.iCode ) 
-        {
-        case EKeyEnter :
-            // do stuff
-            break ;
-        case EKeyEscape :
-            // do stuff :
-            break ;
-
-            ...
-                
-        default :
-            // did not recognise key event
-            returnValue = EKeyWasNotConsumed ;
-            break ;
-        }
-    return returnValue ;
-    }</codeblock> <p>The handling of key events will depend on the design
-and purpose of the control itself. Compound controls might need to keep track
-of an input <b>focus</b>, or <b>cursor</b>, and to pass key events amongst
-its lodgers. Input into one lodger might have an effect on another - pressing
-a navigation key might cause one control to lose the highlight and another
-to gain it, pressing a number key might cause a text editor to grow which
-might, in turn, require all of the components below it to shuffle downwards
-and a scroll bar to become visible (which might also require some controls
-to be laid out differently). </p> <p><b>Handling pointer events </b> </p> <p>Pointer
-events are slightly different as the position of the pointer, rather than
-of the focus, is significant. The Window Server passes a pointer event to
-the top-most visible window at the point of contact. The Framework uses the
-functions <codeph>ProcessPointerEventL()</codeph> and <codeph>HandlePointerEventL()</codeph> to
-work down the hierarchy. The Framework also uses the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and
-focussing mechanisms to inform the observer of the controls that will be losing
-and gaining the focus. </p> <p><b>Using the Control Observer Interface</b></p><p>The
-Control Framework facilitates this type of relationship between a container
-and its lodgers with the <codeph>MCoeControlObserver</codeph> interface. Typically
-the container implements the interface and becomes the observer for each lodger
-that can receive user input (focus). There is only one function in <codeph>MCoeControlObserver</codeph>:</p><codeblock xml:space="preserve">virtual void HandleControlEventL( CCoeControl *aControl, TCoeEvent aEventType ) = 0 ;</codeblock><p>and it is called when an observed control calls</p><codeblock xml:space="preserve">void CCoeControl::ReportEvent( MCoeControlObserver::TCoeEvent aEvent ) ;</codeblock><p>A control can have only one observer (or none) so <codeph>ReportEvent()</codeph> does
-not need to specify an observer. An observer may observe any number of controls
-so <codeph>HandleControlEventL()</codeph> takes the observed control as a
-parameter. The other piece of information passed to the observer is a <codeph>TCoeEvent</codeph>.</p><codeblock xml:space="preserve">enum TCoeEvent
-    {
-    EEventRequestExit,
-    EEventRequestCancel,
-    EEventRequestFocus,
-    EEventPrepareFocusTransition,
-    EEventStateChanged,
-    EEventInteractionRefused
-	 };</codeblock><p><codeph>CCoeControl</codeph> also provides <codeph>IsFocused()</codeph>, <codeph>SetFocused()</codeph> and <codeph>IsNonFocussing()</codeph>. Note that Framework does not attempt to ensure exclusivity of focus, nor
-does it give any visible indication of focus. It is up to the application
-developer to ensure that only one control has the focus at a time, that the
-focus is correctly transferred between controls, that only appropriate controls
-receive the focus and that the focus is visible at all times.</p><codeblock xml:space="preserve">void CContainer::HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType)
-    {
-	 switch (aEventType)
-        {
-		   case EEventRequestFocus:
-			    {
-			    if( !(aControl-&gt;IsFocussed()) )
-				     {
-				     aControl-&gt;SetFocus( ETrue ) ;
-				     // remove focus from other controls
-				     for ( Tint ii = 0 ; ii &lt; CountComponentControls() ; ii++ ) 
-                     {
-					       CCoeControl* ctl = ComponentControl( ii ) ;
-					       if( ( ctl != aControl ) &amp;&amp; !( ctl-&gt;IsNonFocussing() ) )
-						        {
-						        aControl-&gt;SetFocus( EFalse ) ;
-						        }
-					       }
-				      }
-			     }
-			     break;
-	           ...
-		     }
-	    }</codeblock> <p>Control developers may implement <codeph>HandlePointerEventL()</codeph>,
-which is a virtual function, to perform pointer event functionality. The implementation
-must, however, call the base class function. </p> <p>Controls may modify their
-pointer area, possibly if they appear non-rectangular or overlap. To do so
-requires the addition of a hit test which describes a hit-test region. A hit-test
-region may cover all or part of one or more controls. A hit for a control
-is registered in the area covered by both the control and its associated hit
-test. </p> <p>The diagram below represents three controls, each of which is
-rectangular but which appears on the screen as a non-rectangular bitmap. Only
-a hit on a bitmap area should register. This could be achieved by defining
-a single hit-test region in the shape (and position) of the three blue areas
-and associating it with each of the controls. The class that implements the
-hit-test region must implement the MCoeControlHitTest interface. </p> <fig id="GUID-5C856964-8553-543A-B7E2-8D5DCA9BF52C-GENID-1-8-1-3-1-1-7-1-9-1-2-21-22">
-<title>              Hit-test region example            </title>
-<image href="GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e17625_href.png" placement="inline"/>
-</fig> <codeblock id="GUID-D2AF9CEB-3072-5239-A157-D19852076CEF-GENID-1-8-1-3-1-1-7-1-9-1-2-21-23" xml:space="preserve">
-class MCoeControlHitTest
-        ...
-    public:
-        virtual TBool HitRegionContains( const TPoint&amp; aPoint, const CCoeControl&amp; aControl ) const = 0;
-</codeblock> <p>A hit test is associated with a control using <codeph>CCoeControl::SetHitText()</codeph>.
-The base class implementation of <codeph>HandlePointerEventL()</codeph> performs
-the following test: </p> <codeblock id="GUID-35C26C5B-A19A-528A-B5BE-B8177F81B05D-GENID-1-8-1-3-1-1-7-1-9-1-2-21-25" xml:space="preserve">
-    ...
-    const MCoeControlHitTest* hitTest = ctrl-&gt;HitTest() ;
-    if( hitTest )
-        {
-        if( hitTest-&gt;HitRegionContains( aPointerEvent.iPosition, *ctrl ) &amp;&amp;
-                        ctrl-&gt;Rect().Contains( aPointerEvent.iPosition ) )</codeblock> <p>Note
-that this is performed by a container when deciding which lodger to pass the
-event onto. This snippet also illustrates how a control can find where (<codeph>iPosition</codeph>)
-the pointer event actually occurred. </p> <p>Pointer support includes dragging
-&amp; grabbing. See <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>. </p> </section>
-<section id="GUID-FE221E89-1817-5A73-8FBA-212FBC030766-GENID-1-8-1-3-1-1-7-1-9-1-2-22"><title>Implementing
-the Object Provider (MOP) interface</title> <p>The <xref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita">Object
-Provider mechanism</xref> exists to allow a control to call a function on
-another control in the hierarchy for which it does not have a reference. It
-simply calls <codeph>MopGetObject()</codeph> specifying the interface containing
-the function. It may also call <codeph>MopGetObjectNoChaining()</codeph> to
-inquire of a specific object whether it supports the requested interface. </p> <p>Only
-controls which wish to supply an interface require customisation. In order
-to be identifiable an interface must have an associated UID. The following
-code samples show how <xref href="GUID-0DC77F9B-718A-31DF-B076-3C3F83378BF4.dita"><apiname>CEikAlignedControl</apiname></xref> implements and
-supplies <xref href="GUID-65610725-E873-3F8D-AD60-FC0AD726E0C5.dita"><apiname>MEikAlignedControl</apiname></xref>: </p> <codeblock id="GUID-9926598F-163B-5ACF-B320-66B43D331E1A-GENID-1-8-1-3-1-1-7-1-9-1-2-22-4" xml:space="preserve">
-class MEikAlignedControl
-        ...
-    public:
-        DECLARE_TYPE_ID( 0x10A3D51B )  // Symbian allocated UID identifies this interface
-        ...
-</codeblock> <codeblock id="GUID-1C2FE28B-7A1F-5726-8690-50FBA8672A2C-GENID-1-8-1-3-1-1-7-1-9-1-2-22-5" xml:space="preserve">
-class CEikAlignedControl : public CCoeControl, public MEikAlignedControl
-    {
-        ...
-    private: //from CCoeControl
-        IMPORT_C TTypeUid::Ptr MopSupplyObject( TTypeUid aId ) ;
-        ...
-</codeblock> <codeblock id="GUID-03CD8613-9C1D-556C-94B7-5D9A1C23FF83-GENID-1-8-1-3-1-1-7-1-9-1-2-22-6" xml:space="preserve">
-EXPORT_C TTypeUid::Ptr CEikAlignedControl::MopSupplyObject( TTypeUid aId )
-    {
-    if( aId.iUid == MEikAlignedControl::ETypeId )
-        return aId.MakePtr( static_cast&lt;MEikAlignedControl*&gt;( this ) ) ;
-
-    return CCoeControl::MopSupplyObject( aId ) ; // must call base class!
-    }
-</codeblock> <p>To get an interface from the object provider framework the
-caller must use a pointer to the interface. </p> <codeblock id="GUID-CB641ADD-5AFE-5D72-A909-CD3F0C3BAA9A-GENID-1-8-1-3-1-1-7-1-9-1-2-22-8" xml:space="preserve">
-    ...
-    MEikAlignedControl* alignedControl = NULL ;
-    MyControl-&gt;MopGetObject( alignedControl ) ;
-    if ( alignedControl )
-        {
-        ... // etc.</codeblock> <p>To get an interface from a specific object
-the caller may use the no-chaining function call. </p> <codeblock id="GUID-AEB5EB12-6289-5DCB-BF07-71B8F7A67E33-GENID-1-8-1-3-1-1-7-1-9-1-2-22-10" xml:space="preserve">
-    ...
-    MEikAlignedControl* alignedControl = NULL ;
-    aControl-&gt;MopGetObjectNoChaining( alignedControl ) ;
-    if ( alignedControl )
-        {
-        ... // etc.</codeblock> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,552 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1" xml:lang="en"><title>How
-to write controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Cone itself does not provide any concrete controls. Uikon and the UI variant
-libraries provide a large number of 'stock' controls for application writers.
-Application writers often need to supplement the standard set of controls
-with application specific controls of their own. These may be completely new
-controls or, more often, compound controls which contain a number of standard
-controls. </p>
-<p>This section describes how to create controls and how to integrate them
-in to the control framework. It is divided into the following sections: </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-13">Creating
-a control</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-14">Window
-owning or not?</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-15">Creating
-a compound control</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-15">Size,
-position and layout</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-351911EE-87C7-5D11-8434-BA7FD3741745-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-17">Drawing
-and refreshing</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-18">Drawing
-backgrounds</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19">Drawing
-text</xref>  </p>
-<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-20">Drawing
-graphics</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21">Handling
-events</xref>  </p>
-<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-6-1-1-4-1-6-1-9-1/GUID-FE221E89-1817-5A73-8FBA-212FBC030766-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22">Implementing
-the Object Provider (MOP) interface</xref>  </p>
-<section id="GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-13"><title>Creating a
-control</title> <p>A control is a class which derives from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
-It should have a public constructor and, if any leaving function calls or
-memory allocations are required during construction, a <codeph>ConstructL()</codeph> function.
-The majority of re-useable and configurable controls have a <codeph>ConstructFromResourceL()</codeph> function
-which allows a specific instance of a control to be configured using an application's
-resource file. Obviously any memory allocated must be freed in the destructor.
-Before a control is drawn to the screen it must be activated. The <codeph>ActivateL()
-function</codeph> may be overriden to perform last-minute configuration (but
-must call the function in the base class). </p> <codeblock id="GUID-18D48E7E-9846-5CE0-BE1E-FAB723419B90-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-13-3" xml:space="preserve">
-Class CMyControl : public CCoeControl
-    {
-    public:
-        CMyControl() ;
-        void ConstructL(...) ;
-        // from CCoeControl
-        void ConsructFromResourceL( TResourceReader&amp; aReader ) ; 
-    private:
-        ~CMyControl() ;
-
-    // additional functions to handle events 
-    // additional functions to draw the control
-    // additional functions to determine the size, layout and position the control
-    }</codeblock> </section>
-<section id="GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-14"><title>Window owning
-or not? </title> <p>The decision over whether to make a control window owning
-or not is usually straightforward. Each view requires a window, so the top-level
-control must be window-owning and a child of the AppUi. Below this a window
-owning control is normally only necessary where a sense of layering is required:
-for instance a pop-up window or a scrolling window. Dialogs and menus are
-window owning controls but these are normally implemented in the Uikon and
-UI variant libraries and do not require custom derivation from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
-Unnecessary window-owning controls should be avoided as they require more
-infrastructure, place greater demand on the Window Server and reduce performance. </p> <p>If
-a control must be window owning its window must either be created in the <codeph>ConstructL()</codeph> function
-or by the caller. The former is preferred. There are several overloads of
-the <codeph>CreateWindowL()</codeph> and <codeph>CreateBackedUpWindowL()</codeph> functions.
-Those which do not take a parent parameter create a top-level window which
-is a child of the root window. </p> <p>If a control is not window owning its <codeph>SetContainerWindowL()</codeph> function
-must be called when it is instantiated. </p> <p>If it can, the Framework will
-automatically set up the parent pointer when the window, or associated window
-relationship is established. If it cannot do this, because <codeph>CreateWindowL()</codeph> or <codeph>SetContainerWindowL()</codeph> did
-not provide a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, the parent pointer (and MopParent)
-may be set expicitly using <codeph>SetParent()</codeph> and <codeph>SetMopParent()</codeph>. </p> </section>
-<section id="GUID-795EBF51-AD26-513E-9A82-A99C629CE779-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-15"><title>Creating a
-compound control</title> <p>Most applications UIs are built from compound
-controls. Many custom controls are built up from stock controls and are therefore
-also compound controls. When a compound control is constructed it constructs
-its components in its <codeph>ConstructL()</codeph> function. When it receives
-commands itself, such as <codeph>ActivateL()</codeph> and <codeph>DrawNow()</codeph> it
-passes them on to each of its components. In most cases the Framework does
-much of the donkey work as long as the compound control has been constructed
-correctly. </p> <p>There are now two methods of creating and managing lodger
-controls. The first method described is the one that should be used. </p> <codeblock id="GUID-F77661F7-6A68-58DB-B875-9D957A937617-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-15-4" xml:space="preserve">
-void MyControl::ConstructL( ... )
-    {
-    // initialise the component array. This must be called once (subsequent calls have no effect)
-    InitComponentArrayL() ; 
-
-    // construct each component control and add it to the component array.
-    CComponent* myComponent = new (ELeave) CComponent ;
-    Components().AppendLC( myComponent ) ; // or InsertLC or InsertAfterLC().  Places item on cleanup stack.
-    myComponent-&gt;ConstructL() ;
-    myComponent-&gt;SetThisAndThatL() ;
-    CleanupStack::Pop( myComponent ) ;    
-    }</codeblock> <p>The return value of the insert and append methods is
-a <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita#GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1/GUID-AD37D86C-F9FA-3514-BFD4-7139A0B8543F"><apiname>CCoeControlArray::TCursor</apiname></xref> object which works as an iterator.
-It will remain valid when other items are inserted or deleted, or even if
-the whole array is re-ordered. </p> <p>The insert and append methods leave
-the component on the Cleanup Stack using a dedicated Cleanup Item that protects
-the parent's array as well as the component itself. </p> <p>The insert and
-append methods allow each component to be given an ID. The ID must be unique
-only within the parent so typically a compound control will have an enum listing
-each of its children's IDs. <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita"><apiname>CCoeControlArray</apiname></xref> , accessed
-using <codeph>CCoeControl::Components()</codeph>, has a <codeph>ControlById()</codeph> method
-to retrieve components using their IDs. </p> <p>Components in the array are,
-by default, owned by the parent and will be deleted automatically when the
-parent is deleted. The default may be overridden using <codeph>CCoeControlArray::SetControlsOwnedExternally()</codeph>.
-The setting applies to all of the components. </p> <p>Controls may be removed
-from the array using one of the <codeph>Remove()</codeph> methods. These do
-not delete. </p> <codeblock id="GUID-9F9EC327-E7DE-59B8-838B-F5052E3750D3-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-15-10" xml:space="preserve">
-class CCoeControlArray
-        ...
-    public:
-        IMPORT_C TInt Remove(const CCoeControl* aControl);
-        IMPORT_C CCoeControl* Remove(TCursor aRemoveAt);
-        IMPORT_C CCoeControl* RemoveById(TInt aControlId);
-        ...
-</codeblock> <p>Using the component array as described is now the approved
-method of constructing and managing compound controls. In older versions of
-Symbian OS a specific method of handling components was not provided and developers
-were obliged to design their own. Bypassing the component array is still possible.
-It is necessary to allocate and store the components (typically as member
-data) and to implement the <codeph>CountComponentControls()</codeph> and <codeph>ComponentControl()</codeph> functions
-to return the number of components and a specified component to the framework.
-The new method offers significant advantages when controls are added and removed
-dynamically or are dependant on run-time data. The new method is also integrated
-with new layout managers. </p> </section>
-<section id="GUID-7E144310-9AF4-50F1-AD8A-9F9E05D554D1-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-16"><title>Size, position
-and layout</title> <p>There are several factors which contribute to a control's
-size and position. The control itself will require a certain size in order
-to display itself (and its data) correctly. The control's container will be
-responsible for positioning the control but is also likely to be responsible
-for positioning other controls - each of which will have its own requirements.
-Additionally there are the requirements of the UI's look and feel that must
-be complied with. </p> <p>Each control is responsible for implementing its
-own <codeph>Size()</codeph> function. </p> <p>Until Symbian OS version 9.1
-it was normal to write layout code for simple and compound controls in the <codeph>SizeChanged()</codeph> function.
-This is called by the framework, as one might expect, when a control's size
-(its 'extent') is changed. From 9.1, however, Symbian OS supports the use
-of the layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>) and
-the <codeph>SizeChanged()</codeph> function is now implemented in the base
-class. (Note that if a control's position is changed, with no size change,
-using <codeph>CCoeControl::SetPosition()</codeph> its <codeph>PositionChanged()</codeph> function
-is called and that default implementation of <codeph>PositionChanged()</codeph> is
-empty). </p> <codeblock id="GUID-53A10820-550A-52C2-AE80-D556FD77E8FA-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-16-5" xml:space="preserve">
-class MCoeLayoutManager
-        ...
-    protected:
-        IMPORT_C MCoeLayoutManager();
-    
-    public:
-        virtual TBool CanAttach() const = 0;
-        virtual void AttachL(CCoeControl&amp; aCompoundControl) = 0;
-        virtual void Detach(CCoeControl&amp; aCompoundControl) = 0;
-        virtual TSize CalcMinimumSize(const CCoeControl&amp; aCompoundControl) const = 0;
-        virtual void PerformLayout() = 0;
-        virtual TInt CalcTextBaselineOffset(const CCoeControl&amp; aCompoundControl, const TSize&amp; aSize) const = 0;
-        virtual void SetTextBaselineSpacing(TInt aBaselineSpacing) = 0;
-        virtual TInt TextBaselineSpacing() const = 0;
-        virtual void HandleAddedControlL(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aAddedControl) = 0;
-        virtual void HandleRemovedControl(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aRemovedControl) = 0;
-        virtual TInt HandleControlReplaced(const CCoeControl&amp; aOldControl, const CCoeControl&amp; aNewControl) = 0;
-        ...
-</codeblock> <p>A layout manager may be attached to a compound control. </p> <codeblock id="GUID-ACCD143C-8618-5606-B749-D7EFE5C83ACD-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-16-7" xml:space="preserve">
-class CCoeControl
-        ...
-    protected: 
-        IMPORT_C MCoeLayoutManager* LayoutManager() const;
-        IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayoutManager);
-
-    public:
-        IMPORT_C virtual TBool RequestRelayout(const CCoeControl* aChildCtrl);
-        ...</codeblock> <p>The default implementations of <codeph>MinimumSize()</codeph> and <codeph>SizeChanged()</codeph> now
-use the layout manager. </p> <codeblock id="GUID-88340A33-A58C-5856-AD47-C2E1637DD45F-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-16-9" xml:space="preserve">
-EXPORT_C TSize CCoeControl::MinimumSize()
-    { 
-    const MCoeLayoutManager* layoutManager = LayoutManager();
-    if (layoutManager)
-        return layoutManager-&gt;CalcMinimumSize(*this);
-    else    
-        return iSize;
-    }
-
-EXPORT_C void CCoeControl::SizeChanged()
-    {
-    MCoeLayoutManager* layout = LayoutManager();
-    if (layout)
-        layout-&gt;PerformLayout();
-</codeblock> <p>The layout manager is responsible for the size and position
-of the component controls. In practice it's likely that the UI variant libraries
-will provide concrete layout managers. Application developers should use these
-as the basis for control-specific layout managers. </p> </section>
-<section id="GUID-351911EE-87C7-5D11-8434-BA7FD3741745-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-17"><title> Drawing and
-refreshing</title> <p>A fundamental requirement of most controls is that they
-are able to render themselves onto the screen. For most controls the drawing
-process involves outputting text, painting backgrounds (either plain or from
-a bitmap), drawing shapes (graphics objects) and drawing component controls. </p> <p>Screen
-drawing may be initiated by the application itself, following something within
-the application changing, or by the Window Server, due to something else in
-the system updating the screen while the application is visible. In both cases
-the control's <codeph>Draw()</codeph> function will be called automatically
-by the framework. For compound controls all of the components' <codeph>Draw()</codeph> functions
-will also be called - unless the component lies completely outside the area
-that requires redrawing. </p> <p>As a control writer you will probably have
-to implement a <codeph>Draw()</codeph> function. </p> <p>Here is the signature
-for <codeph>Draw()</codeph>: </p> <codeblock id="GUID-7A83E8B5-9673-5EBC-B628-674734A07E0F-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-17-6" xml:space="preserve">private:
-    void Draw( const TRect&amp; aRect ) const ;</codeblock> <p>Note that it
-is private, takes a <codeph>const TRect&amp;</codeph> as a parameter, must
-not leave and is <codeph>const</codeph>. </p> <p>It should only be called
-by the framework. Application initiated redraws should be through calls to <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> or
-custom functions for drawing smaller elements. </p> <p>The <codeph>aRect</codeph> parameter
-is the part of the control that requires drawing (refreshing). </p> <p>The
-function is <codeph>const</codeph> and non-leaving because it is intended
-to support the decoupling of drawing actions from application state. </p> </section>
-<section id="GUID-FF7DB067-24AD-50C3-BF52-952F836609B0-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-18"><title>Drawing backgrounds</title> <p>A
-control's background is typically determined by the current colour scheme
-or skin. It may be a plain colour or a bitmap. It's also possible that a control
-is to appear non-rectangular or transparent in which case some of the background
-will be the control underneath. Prior to Symbian OS 9.1 controls were required
-to clear and update their whole area and creating these effects was rather
-complex. From 9.1 controls are drawn 'backmost first'. </p> <p>Background
-drawing should be done by a dedicated background drawer - i.e. an object which
-implements the <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> interface. A background
-can be attached to a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> using <codeph>SetBackground()</codeph> and
-is used for that control and all of its children. When a control is drawn
-the framework looks for the nearest background up the run-time hierarchy and
-calls <codeph>MCoeControlBackground::Draw()</codeph>. </p> <p>UI variant libraries
-typically provide backgrounds. They are not owned by the controls to which
-they are attached. </p> </section>
-<section id="GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19"><title>Drawing text</title> <p>Text
-must be drawn with the correct color, font, size and direction. As with backgrounds,
-these are determined at runtime according to UI customizations. This is achieved
-by means of a Text Drawer. Note the use of the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class.
-This is a smart pointer (note the use of the <codeph>-&gt;</codeph> operator
-to access <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> functions) which ensures that
-only one text drawer is allocated on the heap at a time. </p> <codeblock id="GUID-511A9CEE-F02C-5667-A334-3C61A2428F0F-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-3" xml:space="preserve">
-XCoeTextDrawer textDrawer( TextDrawer() );
-textDrawer-&gt;SetAlignment(iAlignment); 
-textDrawer-&gt;SetMargins(iMargin);
-textDrawer-&gt;SetLineGapInPixels(iGapBetweenLines);
-textDrawer.SetClipRect(aRect); // have to use . [dot] operator for SetClipRect() as not CCoeTextDrawerBase function.
-
-textDrawer.DrawText(gc, *iTextToDraw, Rect(), *Font());
-</codeblock> <p>Text drawers are typically provided by the UI variant library
-or skin manager. Controls within the run-time hierarchy can set the text drawer
-for their children by overriding <codeph>GetTextDrawer()</codeph>. </p> <p>Note
-that the text drawer expects text to be passed as a <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> rather
-than a descriptor. Controls should store all display text in <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> objects.
-Application writers should consider the implications of right-to-left layouts
-for languages such as Hebrew and Arabic. </p> <p>A control's <codeph>GetTextDrawer()</codeph> function
-might look something like this. It checks on the current state of the control
-(<codeph>IsDimmed()</codeph>) and passes the call on to a skin manager. </p> <codeblock id="GUID-155AD8EC-17DD-5155-BE20-23246A33695C-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-7" xml:space="preserve">
-EXPORT_C void CMyButtonControl::GetTextDrawer(CCoeTextDrawerBase*&amp; aTextDrawer, const CCoeControl* aDrawingControl, TInt /*aKey*/) const
-    {
-    const TInt textDrawerIndex = (IsDimmed() ? EButtonTextDimmed : EButtonText);
-
-    SkinManager::GetTextDrawer(aTextDrawer, KSkinUidButton, textDrawerIndex, aDrawingControl);
-    }
-</codeblock> <p>If the control is drawing text on its own graphics (and does
-not care about the text drawer of its parents) it can just create an <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> object
-on the stack in its <codeph>Draw()</codeph> method and initiate it from the
-skin that it is currently using to draw its graphics, using the <codeph>CSkinPatch::TextDrawer()</codeph> method,
-like this: </p> <codeblock id="GUID-3DFDBF27-8744-5283-AC7B-EC512EEEBB7D-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-9" xml:space="preserve">
-const CSkinPatch&amp; skin = SkinManager::SkinPatch(KSomeSkinUid, KSomeSkinIndex, this);
-
-skin.DrawBitmap(gc, Rect(), aRect);
-XCoeTextDrawer textDrawer( skin.TextDrawer(KSomeSkinUid, ESomeSkinTextDimmed, this) );
-
-const CFont&amp; font = ScreenFont(TCoeFont::NormalFont);
-textDrawer.DrawText(gc, iText, rect, font);
-</codeblock> <p>The example above also illustrates how to retrieve the correct
-font. <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects must not be stored in control member
-data as they must change when the control's zoom state changes. Instead, a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> that
-represents a font's size (logical or absolute in pixels) and style (plain,
-bold, italic, subscript, or superscript) should be used. </p> <codeblock id="GUID-864A57DB-BCDA-50B6-B876-9EF62CFB27C6-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-11" xml:space="preserve">
-class TCoeFont 
-        ...
-    public: 
-        IMPORT_C TCoeFont(TLogicalSize aSize, TInt aStyle, TInt aFlags = ENoFlags); 
-        IMPORT_C TCoeFont(TInt aHeightInPixels, TInt aStyle, TInt aFlags = ENoFlags); 
-        IMPORT_C TCoeFont(const TCoeFont&amp; aFont);
-        IMPORT_C TCoeFont();
-        ...</codeblock> <p>By creating a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> object
-describing the properties of the desired font, a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-reference (needed to actually draw the text) can be fetched from the <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>.
-A font provider can be attached to any <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> and
-will keep information about the typeface used by that control and all controls
-below. A default font provider is attached to the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. </p> <codeblock id="GUID-C46BEB52-33DB-564B-9A64-53763C7CD226-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-13" xml:space="preserve">
-class CCoeControl
-        ...
-    public:
-        IMPORT_C const CCoeFontProvider&amp; FindFontProvider() const;
-        IMPORT_C void SetFontProviderL(const CCoeFontProvider&amp; aFontProvider);
-        ...
-        </codeblock> <p>To get hold of the <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
-a <codeph>Draw()</codeph> method can be implemented like this: </p> <codeblock id="GUID-45292362-1E39-59B0-AC7F-14C98592F059-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-15" xml:space="preserve">
-void CMyControl::Draw(const TRect&amp; aRect)
-    {
-    const CCoeFontProvider&amp; fontProvider = FindFontProvider();
-    const CFont&amp; font = fontProvider.Font(TCoeFont::LegendFont(), AccumulatedZoom());
-
-    XCoeTextDrawer textDrawer( TextDrawer() );
-    textDrawer-&gt;SetAlignment(EHCenterVCenter);
-    textDrawer.DrawText(gc, iText, rect, font);
-    }
-</codeblock> <p>For convenience there’s a <codeph>CCoeControl::ScreenFont()</codeph> method
-that locates the font provider and calls it with the control’s accumulated
-zoom: </p> <codeblock id="GUID-5974F900-84B7-5262-8428-88797911F94A-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-19-17" xml:space="preserve">
-class CCoeControl
-        ...
-    protected:
-        IMPORT_C const CFont&amp; ScreenFont(const TCoeFont&amp; aFont) const;
-        ...
-</codeblock> </section>
-<section id="GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-20"><title>Drawing graphics</title><p>Controls
-draw graphics objects - lines, rectangles, shapes and bitmaps to a <keyword>graphics
-context</keyword>. The graphics context is provided by the Window Server and
-represents a group of settings appropriate for the physical device that is
-ultimately being drawn to. In most cases the device is a screen and a graphics
-context should be obtained using <codeph>CCoeControl::SystemGc()</codeph>. <codeph>CCoeControl::SystemGc()</codeph> gets
-the current graphics context from the run-time hierarchy. Controls in the
-hierarchy may override graphics context settings which will then be passed
-on to their children. <i>Controls should not get their graphics context directly
-from CCoeEnv as to do so would bypass the hierarchy</i>. </p> <codeblock id="GUID-DC2B7A84-BA93-5AE0-BABA-9CF6B156A54E-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-20-3" xml:space="preserve">
-void CMyControl::Draw( const TRect&amp; aRect )
-    {
-    CWindowGc&amp; gc = SystemGc() ; // get gc from run time hierarchy
-    TRect rect = TRect( Size() ) ;
-    if ( IsBlanked() )
-        {
-        // blank out the entire control
-        gc.SetPenStyle( CGraphicsContext::ENullPen ) ;
-        gc.SetBrushStyle( CGraphicsContext::ESolidBrush ) ;
-        TRgb blankColor = BlankingColor() ;
-        gc.SetBrushColor( blankColor ) ;
-        gc.DrawRect( rect ) ;
-        }
-    else
-        {
-        // draw masked bitmap in the centre of the control 
-        // The parent will draw the background 
-        TInt id = BitMapId() ;
-
-        TInt x = Size().iWidth - iBitmap[id]-&gt;SizeInPixels().iWidth ;
-        TInt y = Size().iHeight - iBitmap[id]-&gt;SizeInPixels().iHeight ;
-
-        TPoint pos = Rect().iTl ;
-        pos.iX = pos.iX + ( x / 2 ) ;
-        pos.iY = pos.iY + ( y / 2 ) ;
-
-        gc.BitBltMasked( pos, iBitmap[id], rect, iMaskBitmap, ETrue ) ;
-        }
-    }</codeblock> <p>Before a graphics context can be used it must be activated.
-After use it must be deactivated. Activation and deactivation are done automatically
-by the framework in <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> and <codeph>HandleRedrawEvent()</codeph> but
-must be done explicitly for any other application initiated drawing by calling <codeph>ActivateGc()</codeph> and <codeph>DeactivateGc()</codeph>. </p> <p>Controls may implement partial drawing to speed up performance. The <codeph>Draw()</codeph> function
-may be split into sub functions: <codeph>DrawThis()</codeph>, <codeph>DrawThat()</codeph>, <codeph>DrawTheOther()</codeph>.
-Each of these requires a corresponding <codeph>DrawThisNow()</codeph> and/or <codeph>DrawThisDeferred()</codeph> function. </p> <codeblock id="GUID-EDC0D6F1-61BC-552F-B56D-C32148ADECA3-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-20-6" xml:space="preserve">
-CMyControl::Draw()
-    {
-    DrawThis() ;
-    DrawThat() ;
-    DrawTheOther() ;
-    }</codeblock> <codeblock id="GUID-E026186D-7B55-5AB5-9391-8587E3510D6D-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-20-7" xml:space="preserve">
-CMyControl::DrawThisNow()
-    {
-    ActivateGc() ;
-    DrawThis() ;
-    DeactivateGc() ;
-    }</codeblock> </section>
-<section id="GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21"><title>Handling events </title> <p>The
-Control Framework supports user interaction in two ways: key-press events
-and pointer events. Both types of event arrive through the Window Server though
-they each arrive in a slightly different way. Both are closely related to
-the concept of 'focus' and the location of the cursor. </p> <p><b>Handling
-key events </b> </p> <p>Key events are delivered to the AppUi. The Window
-Server channels them through the root window of its current window group which
-maps to the AppUi foreground application. The AppUi offers each key event
-to each of the controls on its control stack in priority order until one of
-the controls 'consumes' it. </p> <p>To receive key events a control must implement <codeph>CCoeControl::OfferKeyEventL()</codeph>.
-If it handles the event it must return <codeph>EKeyWasConsumed</codeph>: If
-it doesn't it must return <codeph>EKeyWasNotConsumed</codeph> so that the
-next control on the stack receives it. </p> <codeblock id="GUID-448E9DF8-9D63-5BA4-94A7-4FB4B96A6DEA-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21-6" xml:space="preserve">
-TKeyResponse CMyControl::OfferKeyEventL( const TKeyEvent&amp; aKeyEvent, TEventCode aType)
-    {
-    TKeyResponse returnValue = EKeyWasConsumed ;
-    switch( aKeyEvent.iCode ) 
-        {
-        case EKeyEnter :
-            // do stuff
-            break ;
-        case EKeyEscape :
-            // do stuff :
-            break ;
-
-            ...
-                
-        default :
-            // did not recognise key event
-            returnValue = EKeyWasNotConsumed ;
-            break ;
-        }
-    return returnValue ;
-    }</codeblock> <p>The handling of key events will depend on the design
-and purpose of the control itself. Compound controls might need to keep track
-of an input <b>focus</b>, or <b>cursor</b>, and to pass key events amongst
-its lodgers. Input into one lodger might have an effect on another - pressing
-a navigation key might cause one control to lose the highlight and another
-to gain it, pressing a number key might cause a text editor to grow which
-might, in turn, require all of the components below it to shuffle downwards
-and a scroll bar to become visible (which might also require some controls
-to be laid out differently). </p> <p><b>Handling pointer events </b> </p> <p>Pointer
-events are slightly different as the position of the pointer, rather than
-of the focus, is significant. The Window Server passes a pointer event to
-the top-most visible window at the point of contact. The Framework uses the
-functions <codeph>ProcessPointerEventL()</codeph> and <codeph>HandlePointerEventL()</codeph> to
-work down the hierarchy. The Framework also uses the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and
-focussing mechanisms to inform the observer of the controls that will be losing
-and gaining the focus. </p> <p><b>Using the Control Observer Interface</b></p><p>The
-Control Framework facilitates this type of relationship between a container
-and its lodgers with the <codeph>MCoeControlObserver</codeph> interface. Typically
-the container implements the interface and becomes the observer for each lodger
-that can receive user input (focus). There is only one function in <codeph>MCoeControlObserver</codeph>:</p><codeblock xml:space="preserve">virtual void HandleControlEventL( CCoeControl *aControl, TCoeEvent aEventType ) = 0 ;</codeblock><p>and it is called when an observed control calls</p><codeblock xml:space="preserve">void CCoeControl::ReportEvent( MCoeControlObserver::TCoeEvent aEvent ) ;</codeblock><p>A control can have only one observer (or none) so <codeph>ReportEvent()</codeph> does
-not need to specify an observer. An observer may observe any number of controls
-so <codeph>HandleControlEventL()</codeph> takes the observed control as a
-parameter. The other piece of information passed to the observer is a <codeph>TCoeEvent</codeph>.</p><codeblock xml:space="preserve">enum TCoeEvent
-    {
-    EEventRequestExit,
-    EEventRequestCancel,
-    EEventRequestFocus,
-    EEventPrepareFocusTransition,
-    EEventStateChanged,
-    EEventInteractionRefused
-	 };</codeblock><p><codeph>CCoeControl</codeph> also provides <codeph>IsFocused()</codeph>, <codeph>SetFocused()</codeph> and <codeph>IsNonFocussing()</codeph>. Note that Framework does not attempt to ensure exclusivity of focus, nor
-does it give any visible indication of focus. It is up to the application
-developer to ensure that only one control has the focus at a time, that the
-focus is correctly transferred between controls, that only appropriate controls
-receive the focus and that the focus is visible at all times.</p><codeblock xml:space="preserve">void CContainer::HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType)
-    {
-	 switch (aEventType)
-        {
-		   case EEventRequestFocus:
-			    {
-			    if( !(aControl-&gt;IsFocussed()) )
-				     {
-				     aControl-&gt;SetFocus( ETrue ) ;
-				     // remove focus from other controls
-				     for ( Tint ii = 0 ; ii &lt; CountComponentControls() ; ii++ ) 
-                     {
-					       CCoeControl* ctl = ComponentControl( ii ) ;
-					       if( ( ctl != aControl ) &amp;&amp; !( ctl-&gt;IsNonFocussing() ) )
-						        {
-						        aControl-&gt;SetFocus( EFalse ) ;
-						        }
-					       }
-				      }
-			     }
-			     break;
-	           ...
-		     }
-	    }</codeblock> <p>Control developers may implement <codeph>HandlePointerEventL()</codeph>,
-which is a virtual function, to perform pointer event functionality. The implementation
-must, however, call the base class function. </p> <p>Controls may modify their
-pointer area, possibly if they appear non-rectangular or overlap. To do so
-requires the addition of a hit test which describes a hit-test region. A hit-test
-region may cover all or part of one or more controls. A hit for a control
-is registered in the area covered by both the control and its associated hit
-test. </p> <p>The diagram below represents three controls, each of which is
-rectangular but which appears on the screen as a non-rectangular bitmap. Only
-a hit on a bitmap area should register. This could be achieved by defining
-a single hit-test region in the shape (and position) of the three blue areas
-and associating it with each of the controls. The class that implements the
-hit-test region must implement the MCoeControlHitTest interface. </p> <fig id="GUID-5C856964-8553-543A-B7E2-8D5DCA9BF52C-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21-22">
-<title>              Hit-test region example            </title>
-<image href="GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e53527_href.png" placement="inline"/>
-</fig> <codeblock id="GUID-D2AF9CEB-3072-5239-A157-D19852076CEF-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21-23" xml:space="preserve">
-class MCoeControlHitTest
-        ...
-    public:
-        virtual TBool HitRegionContains( const TPoint&amp; aPoint, const CCoeControl&amp; aControl ) const = 0;
-</codeblock> <p>A hit test is associated with a control using <codeph>CCoeControl::SetHitText()</codeph>.
-The base class implementation of <codeph>HandlePointerEventL()</codeph> performs
-the following test: </p> <codeblock id="GUID-35C26C5B-A19A-528A-B5BE-B8177F81B05D-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-21-25" xml:space="preserve">
-    ...
-    const MCoeControlHitTest* hitTest = ctrl-&gt;HitTest() ;
-    if( hitTest )
-        {
-        if( hitTest-&gt;HitRegionContains( aPointerEvent.iPosition, *ctrl ) &amp;&amp;
-                        ctrl-&gt;Rect().Contains( aPointerEvent.iPosition ) )</codeblock> <p>Note
-that this is performed by a container when deciding which lodger to pass the
-event onto. This snippet also illustrates how a control can find where (<codeph>iPosition</codeph>)
-the pointer event actually occurred. </p> <p>Pointer support includes dragging
-&amp; grabbing. See <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>. </p> </section>
-<section id="GUID-FE221E89-1817-5A73-8FBA-212FBC030766-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22"><title>Implementing
-the Object Provider (MOP) interface</title> <p>The <xref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita">Object
-Provider mechanism</xref> exists to allow a control to call a function on
-another control in the hierarchy for which it does not have a reference. It
-simply calls <codeph>MopGetObject()</codeph> specifying the interface containing
-the function. It may also call <codeph>MopGetObjectNoChaining()</codeph> to
-inquire of a specific object whether it supports the requested interface. </p> <p>Only
-controls which wish to supply an interface require customisation. In order
-to be identifiable an interface must have an associated UID. The following
-code samples show how <xref href="GUID-0DC77F9B-718A-31DF-B076-3C3F83378BF4.dita"><apiname>CEikAlignedControl</apiname></xref> implements and
-supplies <xref href="GUID-65610725-E873-3F8D-AD60-FC0AD726E0C5.dita"><apiname>MEikAlignedControl</apiname></xref>: </p> <codeblock id="GUID-9926598F-163B-5ACF-B320-66B43D331E1A-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22-4" xml:space="preserve">
-class MEikAlignedControl
-        ...
-    public:
-        DECLARE_TYPE_ID( 0x10A3D51B )  // Symbian allocated UID identifies this interface
-        ...
-</codeblock> <codeblock id="GUID-1C2FE28B-7A1F-5726-8690-50FBA8672A2C-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22-5" xml:space="preserve">
-class CEikAlignedControl : public CCoeControl, public MEikAlignedControl
-    {
-        ...
-    private: //from CCoeControl
-        IMPORT_C TTypeUid::Ptr MopSupplyObject( TTypeUid aId ) ;
-        ...
-</codeblock> <codeblock id="GUID-03CD8613-9C1D-556C-94B7-5D9A1C23FF83-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22-6" xml:space="preserve">
-EXPORT_C TTypeUid::Ptr CEikAlignedControl::MopSupplyObject( TTypeUid aId )
-    {
-    if( aId.iUid == MEikAlignedControl::ETypeId )
-        return aId.MakePtr( static_cast&lt;MEikAlignedControl*&gt;( this ) ) ;
-
-    return CCoeControl::MopSupplyObject( aId ) ; // must call base class!
-    }
-</codeblock> <p>To get an interface from the object provider framework the
-caller must use a pointer to the interface. </p> <codeblock id="GUID-CB641ADD-5AFE-5D72-A909-CD3F0C3BAA9A-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22-8" xml:space="preserve">
-    ...
-    MEikAlignedControl* alignedControl = NULL ;
-    MyControl-&gt;MopGetObject( alignedControl ) ;
-    if ( alignedControl )
-        {
-        ... // etc.</codeblock> <p>To get an interface from a specific object
-the caller may use the no-chaining function call. </p> <codeblock id="GUID-AEB5EB12-6289-5DCB-BF07-71B8F7A67E33-GENID-1-8-1-6-1-1-4-1-6-1-9-1-2-22-10" xml:space="preserve">
-    ...
-    MEikAlignedControl* alignedControl = NULL ;
-    aControl-&gt;MopGetObjectNoChaining( alignedControl ) ;
-    if ( alignedControl )
-        {
-        ... // etc.</codeblock> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290" xml:lang="en"><title>How to
+write controls</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Cone itself does not provide any concrete controls. Uikon and the UI variant
+libraries provide a large number of 'stock' controls for application writers.
+Application writers often need to supplement the standard set of controls
+with application specific controls of their own. These may be completely new
+controls or, more often, compound controls which contain a number of standard
+controls. </p>
+<p>This section describes how to create controls and how to integrate them
+in to the control framework. It is divided into the following sections: </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7">Creating
+a control</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7">Window
+owning or not?</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-795EBF51-AD26-513E-9A82-A99C629CE779">Creating
+a compound control</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-795EBF51-AD26-513E-9A82-A99C629CE779">Size,
+position and layout</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-351911EE-87C7-5D11-8434-BA7FD3741745">Drawing
+and refreshing</xref>  </p>
+<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-FF7DB067-24AD-50C3-BF52-952F836609B0">Drawing
+backgrounds</xref>  </p>
+<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54">Drawing
+text</xref>  </p>
+<p> <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD">Drawing
+graphics</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D">Handling
+events</xref>  </p>
+<p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-FE221E89-1817-5A73-8FBA-212FBC030766">Implementing
+the Object Provider (MOP) interface</xref>  </p>
+<section id="GUID-341017B2-8CF9-5124-8D20-C75A8A51F0B7"><title>Creating a
+control</title> <p>A control is a class which derives from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
+It should have a public constructor and, if any leaving function calls or
+memory allocations are required during construction, a <codeph>ConstructL()</codeph> function.
+The majority of re-useable and configurable controls have a <codeph>ConstructFromResourceL()</codeph> function
+which allows a specific instance of a control to be configured using an application's
+resource file. Obviously any memory allocated must be freed in the destructor.
+Before a control is drawn to the screen it must be activated. The <codeph>ActivateL()
+function</codeph> may be overriden to perform last-minute configuration (but
+must call the function in the base class). </p> <codeblock id="GUID-18D48E7E-9846-5CE0-BE1E-FAB723419B90" xml:space="preserve">
+Class CMyControl : public CCoeControl
+    {
+    public:
+        CMyControl() ;
+        void ConstructL(...) ;
+        // from CCoeControl
+        void ConsructFromResourceL( TResourceReader&amp; aReader ) ; 
+    private:
+        ~CMyControl() ;
+
+    // additional functions to handle events 
+    // additional functions to draw the control
+    // additional functions to determine the size, layout and position the control
+    }</codeblock> </section>
+<section id="GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7"><title>Window owning
+or not? </title> <p>The decision over whether to make a control window owning
+or not is usually straightforward. Each view requires a window, so the top-level
+control must be window-owning and a child of the AppUi. Below this a window
+owning control is normally only necessary where a sense of layering is required:
+for instance a pop-up window or a scrolling window. Dialogs and menus are
+window owning controls but these are normally implemented in the Uikon and
+UI variant libraries and do not require custom derivation from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
+Unnecessary window-owning controls should be avoided as they require more
+infrastructure, place greater demand on the Window Server and reduce performance. </p> <p>If
+a control must be window owning its window must either be created in the <codeph>ConstructL()</codeph> function
+or by the caller. The former is preferred. There are several overloads of
+the <codeph>CreateWindowL()</codeph> and <codeph>CreateBackedUpWindowL()</codeph> functions.
+Those which do not take a parent parameter create a top-level window which
+is a child of the root window. </p> <p>If a control is not window owning its <codeph>SetContainerWindowL()</codeph> function
+must be called when it is instantiated. </p> <p>If it can, the Framework will
+automatically set up the parent pointer when the window, or associated window
+relationship is established. If it cannot do this, because <codeph>CreateWindowL()</codeph> or <codeph>SetContainerWindowL()</codeph> did
+not provide a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, the parent pointer (and MopParent)
+may be set expicitly using <codeph>SetParent()</codeph> and <codeph>SetMopParent()</codeph>. </p> </section>
+<section id="GUID-795EBF51-AD26-513E-9A82-A99C629CE779"><title>Creating a
+compound control</title> <p>Most applications UIs are built from compound
+controls. Many custom controls are built up from stock controls and are therefore
+also compound controls. When a compound control is constructed it constructs
+its components in its <codeph>ConstructL()</codeph> function. When it receives
+commands itself, such as <codeph>ActivateL()</codeph> and <codeph>DrawNow()</codeph> it
+passes them on to each of its components. In most cases the Framework does
+much of the donkey work as long as the compound control has been constructed
+correctly. </p> <p>There are now two methods of creating and managing lodger
+controls. The first method described is the one that should be used. </p> <codeblock id="GUID-F77661F7-6A68-58DB-B875-9D957A937617" xml:space="preserve">
+void MyControl::ConstructL( ... )
+    {
+    // initialise the component array. This must be called once (subsequent calls have no effect)
+    InitComponentArrayL() ; 
+
+    // construct each component control and add it to the component array.
+    CComponent* myComponent = new (ELeave) CComponent ;
+    Components().AppendLC( myComponent ) ; // or InsertLC or InsertAfterLC().  Places item on cleanup stack.
+    myComponent-&gt;ConstructL() ;
+    myComponent-&gt;SetThisAndThatL() ;
+    CleanupStack::Pop( myComponent ) ;    
+    }</codeblock> <p>The return value of the insert and append methods is
+a <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita#GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1/GUID-AD37D86C-F9FA-3514-BFD4-7139A0B8543F"><apiname>CCoeControlArray::TCursor</apiname></xref> object which works as an iterator.
+It will remain valid when other items are inserted or deleted, or even if
+the whole array is re-ordered. </p> <p>The insert and append methods leave
+the component on the Cleanup Stack using a dedicated Cleanup Item that protects
+the parent's array as well as the component itself. </p> <p>The insert and
+append methods allow each component to be given an ID. The ID must be unique
+only within the parent so typically a compound control will have an enum listing
+each of its children's IDs. <xref href="GUID-2D8BFBA2-79AC-364D-875D-E863CD4A2FE1.dita"><apiname>CCoeControlArray</apiname></xref> , accessed
+using <codeph>CCoeControl::Components()</codeph>, has a <codeph>ControlById()</codeph> method
+to retrieve components using their IDs. </p> <p>Components in the array are,
+by default, owned by the parent and will be deleted automatically when the
+parent is deleted. The default may be overridden using <codeph>CCoeControlArray::SetControlsOwnedExternally()</codeph>.
+The setting applies to all of the components. </p> <p>Controls may be removed
+from the array using one of the <codeph>Remove()</codeph> methods. These do
+not delete. </p> <codeblock id="GUID-9F9EC327-E7DE-59B8-838B-F5052E3750D3" xml:space="preserve">
+class CCoeControlArray
+        ...
+    public:
+        IMPORT_C TInt Remove(const CCoeControl* aControl);
+        IMPORT_C CCoeControl* Remove(TCursor aRemoveAt);
+        IMPORT_C CCoeControl* RemoveById(TInt aControlId);
+        ...
+</codeblock> <p>Using the component array as described is now the approved
+method of constructing and managing compound controls. In older versions of
+Symbian OS a specific method of handling components was not provided and developers
+were obliged to design their own. Bypassing the component array is still possible.
+It is necessary to allocate and store the components (typically as member
+data) and to implement the <codeph>CountComponentControls()</codeph> and <codeph>ComponentControl()</codeph> functions
+to return the number of components and a specified component to the framework.
+The new method offers significant advantages when controls are added and removed
+dynamically or are dependant on run-time data. The new method is also integrated
+with new layout managers. </p> </section>
+<section id="GUID-7E144310-9AF4-50F1-AD8A-9F9E05D554D1"><title>Size, position
+and layout</title> <p>There are several factors which contribute to a control's
+size and position. The control itself will require a certain size in order
+to display itself (and its data) correctly. The control's container will be
+responsible for positioning the control but is also likely to be responsible
+for positioning other controls - each of which will have its own requirements.
+Additionally there are the requirements of the UI's look and feel that must
+be complied with. </p> <p>Each control is responsible for implementing its
+own <codeph>Size()</codeph> function. </p> <p>Until Symbian OS version 9.1
+it was normal to write layout code for simple and compound controls in the <codeph>SizeChanged()</codeph> function.
+This is called by the framework, as one might expect, when a control's size
+(its 'extent') is changed. From 9.1, however, Symbian OS supports the use
+of the layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>) and
+the <codeph>SizeChanged()</codeph> function is now implemented in the base
+class. (Note that if a control's position is changed, with no size change,
+using <codeph>CCoeControl::SetPosition()</codeph> its <codeph>PositionChanged()</codeph> function
+is called and that default implementation of <codeph>PositionChanged()</codeph> is
+empty). </p> <codeblock id="GUID-53A10820-550A-52C2-AE80-D556FD77E8FA" xml:space="preserve">
+class MCoeLayoutManager
+        ...
+    protected:
+        IMPORT_C MCoeLayoutManager();
+    
+    public:
+        virtual TBool CanAttach() const = 0;
+        virtual void AttachL(CCoeControl&amp; aCompoundControl) = 0;
+        virtual void Detach(CCoeControl&amp; aCompoundControl) = 0;
+        virtual TSize CalcMinimumSize(const CCoeControl&amp; aCompoundControl) const = 0;
+        virtual void PerformLayout() = 0;
+        virtual TInt CalcTextBaselineOffset(const CCoeControl&amp; aCompoundControl, const TSize&amp; aSize) const = 0;
+        virtual void SetTextBaselineSpacing(TInt aBaselineSpacing) = 0;
+        virtual TInt TextBaselineSpacing() const = 0;
+        virtual void HandleAddedControlL(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aAddedControl) = 0;
+        virtual void HandleRemovedControl(const CCoeControl&amp; aCompoundControl, const CCoeControl&amp; aRemovedControl) = 0;
+        virtual TInt HandleControlReplaced(const CCoeControl&amp; aOldControl, const CCoeControl&amp; aNewControl) = 0;
+        ...
+</codeblock> <p>A layout manager may be attached to a compound control. </p> <codeblock id="GUID-ACCD143C-8618-5606-B749-D7EFE5C83ACD" xml:space="preserve">
+class CCoeControl
+        ...
+    protected: 
+        IMPORT_C MCoeLayoutManager* LayoutManager() const;
+        IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayoutManager);
+
+    public:
+        IMPORT_C virtual TBool RequestRelayout(const CCoeControl* aChildCtrl);
+        ...</codeblock> <p>The default implementations of <codeph>MinimumSize()</codeph> and <codeph>SizeChanged()</codeph> now
+use the layout manager. </p> <codeblock id="GUID-88340A33-A58C-5856-AD47-C2E1637DD45F" xml:space="preserve">
+EXPORT_C TSize CCoeControl::MinimumSize()
+    { 
+    const MCoeLayoutManager* layoutManager = LayoutManager();
+    if (layoutManager)
+        return layoutManager-&gt;CalcMinimumSize(*this);
+    else    
+        return iSize;
+    }
+
+EXPORT_C void CCoeControl::SizeChanged()
+    {
+    MCoeLayoutManager* layout = LayoutManager();
+    if (layout)
+        layout-&gt;PerformLayout();
+</codeblock> <p>The layout manager is responsible for the size and position
+of the component controls. In practice it's likely that the UI variant libraries
+will provide concrete layout managers. Application developers should use these
+as the basis for control-specific layout managers. </p> </section>
+<section id="GUID-351911EE-87C7-5D11-8434-BA7FD3741745"><title> Drawing and
+refreshing</title> <p>A fundamental requirement of most controls is that they
+are able to render themselves onto the screen. For most controls the drawing
+process involves outputting text, painting backgrounds (either plain or from
+a bitmap), drawing shapes (graphics objects) and drawing component controls. </p> <p>Screen
+drawing may be initiated by the application itself, following something within
+the application changing, or by the Window Server, due to something else in
+the system updating the screen while the application is visible. In both cases
+the control's <codeph>Draw()</codeph> function will be called automatically
+by the framework. For compound controls all of the components' <codeph>Draw()</codeph> functions
+will also be called - unless the component lies completely outside the area
+that requires redrawing. </p> <p>As a control writer you will probably have
+to implement a <codeph>Draw()</codeph> function. </p> <p>Here is the signature
+for <codeph>Draw()</codeph>: </p> <codeblock id="GUID-7A83E8B5-9673-5EBC-B628-674734A07E0F" xml:space="preserve">private:
+    void Draw( const TRect&amp; aRect ) const ;</codeblock> <p>Note that it
+is private, takes a <codeph>const TRect&amp;</codeph> as a parameter, must
+not leave and is <codeph>const</codeph>. </p> <p>It should only be called
+by the framework. Application initiated redraws should be through calls to <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> or
+custom functions for drawing smaller elements. </p> <p>The <codeph>aRect</codeph> parameter
+is the part of the control that requires drawing (refreshing). </p> <p>The
+function is <codeph>const</codeph> and non-leaving because it is intended
+to support the decoupling of drawing actions from application state. </p> </section>
+<section id="GUID-FF7DB067-24AD-50C3-BF52-952F836609B0"><title>Drawing backgrounds</title> <p>A
+control's background is typically determined by the current colour scheme
+or skin. It may be a plain colour or a bitmap. It's also possible that a control
+is to appear non-rectangular or transparent in which case some of the background
+will be the control underneath. Prior to Symbian OS 9.1 controls were required
+to clear and update their whole area and creating these effects was rather
+complex. From 9.1 controls are drawn 'backmost first'. </p> <p>Background
+drawing should be done by a dedicated background drawer - i.e. an object which
+implements the <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> interface. A background
+can be attached to a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> using <codeph>SetBackground()</codeph> and
+is used for that control and all of its children. When a control is drawn
+the framework looks for the nearest background up the run-time hierarchy and
+calls <codeph>MCoeControlBackground::Draw()</codeph>. </p> <p>UI variant libraries
+typically provide backgrounds. They are not owned by the controls to which
+they are attached. </p> </section>
+<section id="GUID-54C6A39A-CBD0-52E5-8CD0-76BE22247A54"><title>Drawing text</title> <p>Text
+must be drawn with the correct color, font, size and direction. As with backgrounds,
+these are determined at runtime according to UI customizations. This is achieved
+by means of a Text Drawer. Note the use of the <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> class.
+This is a smart pointer (note the use of the <codeph>-&gt;</codeph> operator
+to access <xref href="GUID-C8C7B785-B3CF-3488-AEB1-BE0A70F6C1F2.dita"><apiname>CCoeTextDrawerBase</apiname></xref> functions) which ensures that
+only one text drawer is allocated on the heap at a time. </p> <codeblock id="GUID-511A9CEE-F02C-5667-A334-3C61A2428F0F" xml:space="preserve">
+XCoeTextDrawer textDrawer( TextDrawer() );
+textDrawer-&gt;SetAlignment(iAlignment); 
+textDrawer-&gt;SetMargins(iMargin);
+textDrawer-&gt;SetLineGapInPixels(iGapBetweenLines);
+textDrawer.SetClipRect(aRect); // have to use . [dot] operator for SetClipRect() as not CCoeTextDrawerBase function.
+
+textDrawer.DrawText(gc, *iTextToDraw, Rect(), *Font());
+</codeblock> <p>Text drawers are typically provided by the UI variant library
+or skin manager. Controls within the run-time hierarchy can set the text drawer
+for their children by overriding <codeph>GetTextDrawer()</codeph>. </p> <p>Note
+that the text drawer expects text to be passed as a <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> rather
+than a descriptor. Controls should store all display text in <xref href="GUID-07D86324-ED54-3FCD-B301-53B7A6E04AE3.dita"><apiname>TBidiText</apiname></xref> objects.
+Application writers should consider the implications of right-to-left layouts
+for languages such as Hebrew and Arabic. </p> <p>A control's <codeph>GetTextDrawer()</codeph> function
+might look something like this. It checks on the current state of the control
+(<codeph>IsDimmed()</codeph>) and passes the call on to a skin manager. </p> <codeblock id="GUID-155AD8EC-17DD-5155-BE20-23246A33695C" xml:space="preserve">
+EXPORT_C void CMyButtonControl::GetTextDrawer(CCoeTextDrawerBase*&amp; aTextDrawer, const CCoeControl* aDrawingControl, TInt /*aKey*/) const
+    {
+    const TInt textDrawerIndex = (IsDimmed() ? EButtonTextDimmed : EButtonText);
+
+    SkinManager::GetTextDrawer(aTextDrawer, KSkinUidButton, textDrawerIndex, aDrawingControl);
+    }
+</codeblock> <p>If the control is drawing text on its own graphics (and does
+not care about the text drawer of its parents) it can just create an <xref href="GUID-2280260C-3A4F-3C1E-ADF2-3219ED7FE0DE.dita"><apiname>XCoeTextDrawer</apiname></xref> object
+on the stack in its <codeph>Draw()</codeph> method and initiate it from the
+skin that it is currently using to draw its graphics, using the <codeph>CSkinPatch::TextDrawer()</codeph> method,
+like this: </p> <codeblock id="GUID-3DFDBF27-8744-5283-AC7B-EC512EEEBB7D" xml:space="preserve">
+const CSkinPatch&amp; skin = SkinManager::SkinPatch(KSomeSkinUid, KSomeSkinIndex, this);
+
+skin.DrawBitmap(gc, Rect(), aRect);
+XCoeTextDrawer textDrawer( skin.TextDrawer(KSomeSkinUid, ESomeSkinTextDimmed, this) );
+
+const CFont&amp; font = ScreenFont(TCoeFont::NormalFont);
+textDrawer.DrawText(gc, iText, rect, font);
+</codeblock> <p>The example above also illustrates how to retrieve the correct
+font. <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> objects must not be stored in control member
+data as they must change when the control's zoom state changes. Instead, a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> that
+represents a font's size (logical or absolute in pixels) and style (plain,
+bold, italic, subscript, or superscript) should be used. </p> <codeblock id="GUID-864A57DB-BCDA-50B6-B876-9EF62CFB27C6" xml:space="preserve">
+class TCoeFont 
+        ...
+    public: 
+        IMPORT_C TCoeFont(TLogicalSize aSize, TInt aStyle, TInt aFlags = ENoFlags); 
+        IMPORT_C TCoeFont(TInt aHeightInPixels, TInt aStyle, TInt aFlags = ENoFlags); 
+        IMPORT_C TCoeFont(const TCoeFont&amp; aFont);
+        IMPORT_C TCoeFont();
+        ...</codeblock> <p>By creating a <xref href="GUID-463C1928-878D-3B06-ABFD-178BE1BAD776.dita"><apiname>TCoeFont</apiname></xref> object
+describing the properties of the desired font, a <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
+reference (needed to actually draw the text) can be fetched from the <xref href="GUID-372CDE49-2148-3A21-8EA3-8D4656548C23.dita"><apiname>CCoeFontProvider</apiname></xref>.
+A font provider can be attached to any <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> and
+will keep information about the typeface used by that control and all controls
+below. A default font provider is attached to the <xref href="GUID-12A9389D-363B-3F54-857F-89EE0EDCDF40.dita"><apiname>CCoeEnv</apiname></xref>. </p> <codeblock id="GUID-C46BEB52-33DB-564B-9A64-53763C7CD226" xml:space="preserve">
+class CCoeControl
+        ...
+    public:
+        IMPORT_C const CCoeFontProvider&amp; FindFontProvider() const;
+        IMPORT_C void SetFontProviderL(const CCoeFontProvider&amp; aFontProvider);
+        ...
+        </codeblock> <p>To get hold of the <xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref> object
+a <codeph>Draw()</codeph> method can be implemented like this: </p> <codeblock id="GUID-45292362-1E39-59B0-AC7F-14C98592F059" xml:space="preserve">
+void CMyControl::Draw(const TRect&amp; aRect)
+    {
+    const CCoeFontProvider&amp; fontProvider = FindFontProvider();
+    const CFont&amp; font = fontProvider.Font(TCoeFont::LegendFont(), AccumulatedZoom());
+
+    XCoeTextDrawer textDrawer( TextDrawer() );
+    textDrawer-&gt;SetAlignment(EHCenterVCenter);
+    textDrawer.DrawText(gc, iText, rect, font);
+    }
+</codeblock> <p>For convenience there’s a <codeph>CCoeControl::ScreenFont()</codeph> method
+that locates the font provider and calls it with the control’s accumulated
+zoom: </p> <codeblock id="GUID-5974F900-84B7-5262-8428-88797911F94A" xml:space="preserve">
+class CCoeControl
+        ...
+    protected:
+        IMPORT_C const CFont&amp; ScreenFont(const TCoeFont&amp; aFont) const;
+        ...
+</codeblock> </section>
+<section id="GUID-D1AED2A8-94AC-54BB-9CEB-C8C3643AFBBD"><title>Drawing graphics</title><p>Controls
+draw graphics objects - lines, rectangles, shapes and bitmaps to a <keyword>graphics
+context</keyword>. The graphics context is provided by the Window Server and
+represents a group of settings appropriate for the physical device that is
+ultimately being drawn to. In most cases the device is a screen and a graphics
+context should be obtained using <codeph>CCoeControl::SystemGc()</codeph>. <codeph>CCoeControl::SystemGc()</codeph> gets
+the current graphics context from the run-time hierarchy. Controls in the
+hierarchy may override graphics context settings which will then be passed
+on to their children. <i>Controls should not get their graphics context directly
+from CCoeEnv as to do so would bypass the hierarchy</i>. </p> <codeblock id="GUID-DC2B7A84-BA93-5AE0-BABA-9CF6B156A54E" xml:space="preserve">
+void CMyControl::Draw( const TRect&amp; aRect )
+    {
+    CWindowGc&amp; gc = SystemGc() ; // get gc from run time hierarchy
+    TRect rect = TRect( Size() ) ;
+    if ( IsBlanked() )
+        {
+        // blank out the entire control
+        gc.SetPenStyle( CGraphicsContext::ENullPen ) ;
+        gc.SetBrushStyle( CGraphicsContext::ESolidBrush ) ;
+        TRgb blankColor = BlankingColor() ;
+        gc.SetBrushColor( blankColor ) ;
+        gc.DrawRect( rect ) ;
+        }
+    else
+        {
+        // draw masked bitmap in the centre of the control 
+        // The parent will draw the background 
+        TInt id = BitMapId() ;
+
+        TInt x = Size().iWidth - iBitmap[id]-&gt;SizeInPixels().iWidth ;
+        TInt y = Size().iHeight - iBitmap[id]-&gt;SizeInPixels().iHeight ;
+
+        TPoint pos = Rect().iTl ;
+        pos.iX = pos.iX + ( x / 2 ) ;
+        pos.iY = pos.iY + ( y / 2 ) ;
+
+        gc.BitBltMasked( pos, iBitmap[id], rect, iMaskBitmap, ETrue ) ;
+        }
+    }</codeblock> <p>Before a graphics context can be used it must be activated.
+After use it must be deactivated. Activation and deactivation are done automatically
+by the framework in <codeph>DrawNow()</codeph>, <codeph>DrawDeferred()</codeph> and <codeph>HandleRedrawEvent()</codeph> but
+must be done explicitly for any other application initiated drawing by calling <codeph>ActivateGc()</codeph> and <codeph>DeactivateGc()</codeph>. </p> <p>Controls may implement partial drawing to speed up performance. The <codeph>Draw()</codeph> function
+may be split into sub functions: <codeph>DrawThis()</codeph>, <codeph>DrawThat()</codeph>, <codeph>DrawTheOther()</codeph>.
+Each of these requires a corresponding <codeph>DrawThisNow()</codeph> and/or <codeph>DrawThisDeferred()</codeph> function. </p> <codeblock id="GUID-EDC0D6F1-61BC-552F-B56D-C32148ADECA3" xml:space="preserve">
+CMyControl::Draw()
+    {
+    DrawThis() ;
+    DrawThat() ;
+    DrawTheOther() ;
+    }</codeblock> <codeblock id="GUID-E026186D-7B55-5AB5-9391-8587E3510D6D" xml:space="preserve">
+CMyControl::DrawThisNow()
+    {
+    ActivateGc() ;
+    DrawThis() ;
+    DeactivateGc() ;
+    }</codeblock> </section>
+<section id="GUID-AC723EE4-1482-59C5-9F13-CAE119C7800D"><title>Handling events </title> <p>The
+Control Framework supports user interaction in two ways: key-press events
+and pointer events. Both types of event arrive through the Window Server though
+they each arrive in a slightly different way. Both are closely related to
+the concept of 'focus' and the location of the cursor. </p> <p><b>Handling
+key events </b> </p> <p>Key events are delivered to the AppUi. The Window
+Server channels them through the root window of its current window group which
+maps to the AppUi foreground application. The AppUi offers each key event
+to each of the controls on its control stack in priority order until one of
+the controls 'consumes' it. </p> <p>To receive key events a control must implement <codeph>CCoeControl::OfferKeyEventL()</codeph>.
+If it handles the event it must return <codeph>EKeyWasConsumed</codeph>: If
+it doesn't it must return <codeph>EKeyWasNotConsumed</codeph> so that the
+next control on the stack receives it. </p> <codeblock id="GUID-448E9DF8-9D63-5BA4-94A7-4FB4B96A6DEA" xml:space="preserve">
+TKeyResponse CMyControl::OfferKeyEventL( const TKeyEvent&amp; aKeyEvent, TEventCode aType)
+    {
+    TKeyResponse returnValue = EKeyWasConsumed ;
+    switch( aKeyEvent.iCode ) 
+        {
+        case EKeyEnter :
+            // do stuff
+            break ;
+        case EKeyEscape :
+            // do stuff :
+            break ;
+
+            ...
+                
+        default :
+            // did not recognise key event
+            returnValue = EKeyWasNotConsumed ;
+            break ;
+        }
+    return returnValue ;
+    }</codeblock> <p>The handling of key events will depend on the design
+and purpose of the control itself. Compound controls might need to keep track
+of an input <b>focus</b>, or <b>cursor</b>, and to pass key events amongst
+its lodgers. Input into one lodger might have an effect on another - pressing
+a navigation key might cause one control to lose the highlight and another
+to gain it, pressing a number key might cause a text editor to grow which
+might, in turn, require all of the components below it to shuffle downwards
+and a scroll bar to become visible (which might also require some controls
+to be laid out differently). </p> <p><b>Handling pointer events </b> </p> <p>Pointer
+events are slightly different as the position of the pointer, rather than
+of the focus, is significant. The Window Server passes a pointer event to
+the top-most visible window at the point of contact. The Framework uses the
+functions <codeph>ProcessPointerEventL()</codeph> and <codeph>HandlePointerEventL()</codeph> to
+work down the hierarchy. The Framework also uses the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and
+focussing mechanisms to inform the observer of the controls that will be losing
+and gaining the focus. </p> <p><b>Using the Control Observer Interface</b></p><p>The
+Control Framework facilitates this type of relationship between a container
+and its lodgers with the <codeph>MCoeControlObserver</codeph> interface. Typically
+the container implements the interface and becomes the observer for each lodger
+that can receive user input (focus). There is only one function in <codeph>MCoeControlObserver</codeph>:</p><codeblock xml:space="preserve">virtual void HandleControlEventL( CCoeControl *aControl, TCoeEvent aEventType ) = 0 ;</codeblock><p>and it is called when an observed control calls</p><codeblock xml:space="preserve">void CCoeControl::ReportEvent( MCoeControlObserver::TCoeEvent aEvent ) ;</codeblock><p>A control can have only one observer (or none) so <codeph>ReportEvent()</codeph> does
+not need to specify an observer. An observer may observe any number of controls
+so <codeph>HandleControlEventL()</codeph> takes the observed control as a
+parameter. The other piece of information passed to the observer is a <codeph>TCoeEvent</codeph>.</p><codeblock xml:space="preserve">enum TCoeEvent
+    {
+    EEventRequestExit,
+    EEventRequestCancel,
+    EEventRequestFocus,
+    EEventPrepareFocusTransition,
+    EEventStateChanged,
+    EEventInteractionRefused
+	 };</codeblock><p><codeph>CCoeControl</codeph> also provides <codeph>IsFocused()</codeph>, <codeph>SetFocused()</codeph> and <codeph>IsNonFocussing()</codeph>. Note that Framework does not attempt to ensure exclusivity of focus, nor
+does it give any visible indication of focus. It is up to the application
+developer to ensure that only one control has the focus at a time, that the
+focus is correctly transferred between controls, that only appropriate controls
+receive the focus and that the focus is visible at all times.</p><codeblock xml:space="preserve">void CContainer::HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType)
+    {
+	 switch (aEventType)
+        {
+		   case EEventRequestFocus:
+			    {
+			    if( !(aControl-&gt;IsFocussed()) )
+				     {
+				     aControl-&gt;SetFocus( ETrue ) ;
+				     // remove focus from other controls
+				     for ( Tint ii = 0 ; ii &lt; CountComponentControls() ; ii++ ) 
+                     {
+					       CCoeControl* ctl = ComponentControl( ii ) ;
+					       if( ( ctl != aControl ) &amp;&amp; !( ctl-&gt;IsNonFocussing() ) )
+						        {
+						        aControl-&gt;SetFocus( EFalse ) ;
+						        }
+					       }
+				      }
+			     }
+			     break;
+	           ...
+		     }
+	    }</codeblock> <p>Control developers may implement <codeph>HandlePointerEventL()</codeph>,
+which is a virtual function, to perform pointer event functionality. The implementation
+must, however, call the base class function. </p> <p>Controls may modify their
+pointer area, possibly if they appear non-rectangular or overlap. To do so
+requires the addition of a hit test which describes a hit-test region. A hit-test
+region may cover all or part of one or more controls. A hit for a control
+is registered in the area covered by both the control and its associated hit
+test. </p> <p>The diagram below represents three controls, each of which is
+rectangular but which appears on the screen as a non-rectangular bitmap. Only
+a hit on a bitmap area should register. This could be achieved by defining
+a single hit-test region in the shape (and position) of the three blue areas
+and associating it with each of the controls. The class that implements the
+hit-test region must implement the MCoeControlHitTest interface. </p> <fig id="GUID-5C856964-8553-543A-B7E2-8D5DCA9BF52C">
+<title>              Hit-test region example            </title>
+<image href="GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e47970_href.png" placement="inline"/>
+</fig> <codeblock id="GUID-D2AF9CEB-3072-5239-A157-D19852076CEF" xml:space="preserve">
+class MCoeControlHitTest
+        ...
+    public:
+        virtual TBool HitRegionContains( const TPoint&amp; aPoint, const CCoeControl&amp; aControl ) const = 0;
+</codeblock> <p>A hit test is associated with a control using <codeph>CCoeControl::SetHitText()</codeph>.
+The base class implementation of <codeph>HandlePointerEventL()</codeph> performs
+the following test: </p> <codeblock id="GUID-35C26C5B-A19A-528A-B5BE-B8177F81B05D" xml:space="preserve">
+    ...
+    const MCoeControlHitTest* hitTest = ctrl-&gt;HitTest() ;
+    if( hitTest )
+        {
+        if( hitTest-&gt;HitRegionContains( aPointerEvent.iPosition, *ctrl ) &amp;&amp;
+                        ctrl-&gt;Rect().Contains( aPointerEvent.iPosition ) )</codeblock> <p>Note
+that this is performed by a container when deciding which lodger to pass the
+event onto. This snippet also illustrates how a control can find where (<codeph>iPosition</codeph>)
+the pointer event actually occurred. </p> <p>Pointer support includes dragging
+&amp; grabbing. See <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>. </p> </section>
+<section id="GUID-FE221E89-1817-5A73-8FBA-212FBC030766"><title>Implementing
+the Object Provider (MOP) interface</title> <p>The <xref href="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86.dita">Object
+Provider mechanism</xref> exists to allow a control to call a function on
+another control in the hierarchy for which it does not have a reference. It
+simply calls <codeph>MopGetObject()</codeph> specifying the interface containing
+the function. It may also call <codeph>MopGetObjectNoChaining()</codeph> to
+inquire of a specific object whether it supports the requested interface. </p> <p>Only
+controls which wish to supply an interface require customisation. In order
+to be identifiable an interface must have an associated UID. The following
+code samples show how <xref href="GUID-0DC77F9B-718A-31DF-B076-3C3F83378BF4.dita"><apiname>CEikAlignedControl</apiname></xref> implements and
+supplies <codeph>MEikAlignedControl</codeph>: </p> <codeblock id="GUID-9926598F-163B-5ACF-B320-66B43D331E1A" xml:space="preserve">
+class MEikAlignedControl
+        ...
+    public:
+        DECLARE_TYPE_ID( 0x10A3D51B )  // Symbian allocated UID identifies this interface
+        ...
+</codeblock> <codeblock id="GUID-1C2FE28B-7A1F-5726-8690-50FBA8672A2C" xml:space="preserve">
+class CEikAlignedControl : public CCoeControl, public MEikAlignedControl
+    {
+        ...
+    private: //from CCoeControl
+        IMPORT_C TTypeUid::Ptr MopSupplyObject( TTypeUid aId ) ;
+        ...
+</codeblock> <codeblock id="GUID-03CD8613-9C1D-556C-94B7-5D9A1C23FF83" xml:space="preserve">
+EXPORT_C TTypeUid::Ptr CEikAlignedControl::MopSupplyObject( TTypeUid aId )
+    {
+    if( aId.iUid == MEikAlignedControl::ETypeId )
+        return aId.MakePtr( static_cast&lt;MEikAlignedControl*&gt;( this ) ) ;
+
+    return CCoeControl::MopSupplyObject( aId ) ; // must call base class!
+    }
+</codeblock> <p>To get an interface from the object provider framework the
+caller must use a pointer to the interface. </p> <codeblock id="GUID-CB641ADD-5AFE-5D72-A909-CD3F0C3BAA9A" xml:space="preserve">
+    ...
+    MEikAlignedControl* alignedControl = NULL ;
+    MyControl-&gt;MopGetObject( alignedControl ) ;
+    if ( alignedControl )
+        {
+        ... // etc.</codeblock> <p>To get an interface from a specific object
+the caller may use the no-chaining function call. </p> <codeblock id="GUID-AEB5EB12-6289-5DCB-BF07-71B8F7A67E33" xml:space="preserve">
+    ...
+    MEikAlignedControl* alignedControl = NULL ;
+    aControl-&gt;MopGetObjectNoChaining( alignedControl ) ;
+    if ( alignedControl )
+        {
+        ... // etc.</codeblock> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD"><title>Porting Notifiers to Secure Platform</title><shortdesc>This page describes how to migrate notifiers to Symbian OS v9.1. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC370F04-02A3-57D6-8B5A-C085950FAFCD"><title>Introduction</title> <p>Notifier plug-in DLLs ("notifiers") allow components with no direct UI linkage to interact with the user through a UI element; for example, a dialog box. </p> <p>You can migrate notifiers to Symbian OS v9.1 without major changes. Any notifier classes derived from <codeph>MEikSrvNotifierBase</codeph> must now derive from <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref>. An enumeration is used to define an ECom-based notifier plug-in interface. This acts as a primary key to separate ECom-based notifier plug-ins from other types. </p> <p> <b> Note:</b> The Symbian platform architecture still supports old-style (non-ECom-based) plug-ins. </p> <p>Notifiers have the following features: </p> <ul><li id="GUID-FC1E274F-203B-5DE9-A382-762C3C97BFE3"><p>They can be installed in ROM (<filepath>Z:</filepath>), RAM (<filepath>C:</filepath>), or on a memory card (for example, <filepath>E:</filepath>). </p> </li> <li id="GUID-E36D43EE-B2EC-5219-B969-FC2CCEE50868"><p>They can be installed and un-installed using SIS files. </p> </li> <li id="GUID-784483E3-D297-5228-8BDA-0C93018DD640"><p>A single plug-in DLL can provide multiple notifiers. The plug-in DLL returns an array of <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> class pointers through ECom. </p> </li> <li id="GUID-D9D6A40E-D26F-5448-9E50-6D81544B9F7D"><p>Each notifier can have multiple implementations. </p> </li> </ul> </section> <section id="GUID-A53A1B64-4250-53B9-BD0F-32AFE2F34E5F"><title>Notifier source code example</title> <p>ECom defines standard framework functions that plug-ins implement. Here is an example of the required notifier source code: </p> <codeblock id="GUID-CD591744-90C4-57B5-918B-ABE3B41CBA00" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray1()
-// Lib main entry point
-      {...}
- 
-EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray2()
-// Lib main entry point
-      {...}
- 
-// Adding ECom support
-#include &lt;ImplementationProxy.h&gt;
-const TImplementationProxy ImplementationTable[] =
-      {
-      IMPLEMENTATION_PROXY_ENTRY(0x10022238,NotifierArray1),
-      IMPLEMENTATION_PROXY_ENTRY(0x10022237,NotifierArray2)
-      }; 
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
-      {
-      aTableCount = sizeof(ImplementationTable)/sizeof(TImplementationProxy);
-      return ImplementationTable;
-       }</codeblock> </section> <section id="GUID-3F83B740-F999-55F1-A244-83C97F240883"><title>Resource file example</title> <p>ECom uses resource files to define the main elements of application GUIs. Resource file names must have the format: <filepath>&lt;dll_uid&gt;.rss</filepath>. </p> <p>The following UIDs may appear in the resource file. </p> <table id="GUID-8A60EEFE-E0FB-559C-B864-CB37EC324AD4"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>UID Name</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <codeph>dll_uid</codeph>  </p> </entry> <entry><p>The UID of the notifier plug-in DLL. </p> </entry> </row> <row><entry><p> <codeph> interface_uid</codeph>  </p> </entry> <entry><p>The interface UID for all notifiers, which is defined in <filepath>uikon.hrh</filepath> as: </p> <codeblock id="GUID-E664FEB0-AD66-5598-BD88-C72F068372C6" xml:space="preserve">#define KUikonUidpluginInterfaceNotifiers    0x101fdfae.</codeblock> </entry> </row> <row><entry><p> <codeph> implementation_uid</codeph>  </p> </entry> <entry><p>This is implementation-specific. </p> </entry> </row> <row><entry><p>plug-in_UID </p> </entry> <entry><p>The notifier’s UID. </p> </entry> </row> <row><entry><p>channel_UID </p> </entry> <entry><p>The channel for a notifier (for example, a screen or LED). </p> </entry> </row> </tbody> </tgroup> </table> <p>Together, the <codeph>plug-in_UID</codeph> and <codeph>channel_UID</codeph> uniquely identify the notifier plug-in. </p> <p>The following resource file corresponds to the C++ <xref href="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita#GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD/GUID-A53A1B64-4250-53B9-BD0F-32AFE2F34E5F">Source code</xref>, above. It defines two implementations of the notifier interface. </p> <codeblock id="GUID-D0D2F679-5196-5150-988E-ED5EB30668E2" xml:space="preserve">// 10021239.rss
-//
-
-#include "RegistryInfo.rh"
-#include "Uikon.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
-   {
-      dll_uid = 0x10021239;
-      interfaces =
-      {
-      INTERFACE_INFO
-            {
-            interface_uid = KUikonUidPluginInterfaceNotifiers;
-            implementations =
-                  {
-                  IMPLEMENTATION_INFO
-                        {
-                        implementation_uid = 0x10022237;
-                        version_no = 1;
-                        display_name = "TTNOTIFY2V2 Plugin 1";
-                        default_data = "TTNOTIFY2V2";
-                        opaque_data     = "0";
-                        },
-                  IMPLEMENTATION_INFO
-                        {
-                        implementation_uid = 0x10022238;
-                        version_no = 1;
-                        display_name = "TTNOTIFY2V2 Plugin 2";
-                        default_data = "TTNOTIFY2V2";
-                        opaque_data     = "0";
-                        }
-                  };
-            }
-      };
-}</codeblock> </section> <section id="GUID-8E585844-E5B3-5909-9B48-A288D89E621F"><title>MMP file example</title> <p>This is an example project specification (<filepath>.mmp</filepath>) file for the notifier: </p> <codeblock id="GUID-2316985A-2B7D-5255-ACD0-1A4E72026232" xml:space="preserve">
-target            TESTNOTIFIER.DLL 
-targettype        PLUGIN 
-capability         TrustedUI ProtServ 
-UID                0x10009D8D 0x10021239 
-sourcepath        ...
-userinclude        ... 
-systeminclude    \epoc32\include \epoc32\include\techview 
-lang                SC 
-
-start resource    10021239.rss  
-target            TESTNOTIFIER.rsc  
-
-start resource    TNOTDIAL.RSS 
-targetpath        \private\10003a4a 
-header 
-end 
-source            filename.cpp 
-library            ECOM.LIB</codeblock> </section> </conbody><related-links><link href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita"><linktext>Using the extended notifier
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD"><title>Porting Notifiers to Secure Platform</title><shortdesc>This page describes how to migrate notifiers to Symbian OS v9.1. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-EC370F04-02A3-57D6-8B5A-C085950FAFCD"><title>Introduction</title> <p>Notifier plug-in DLLs ("notifiers") allow components with no direct UI linkage to interact with the user through a UI element; for example, a dialog box. </p> <p>You can migrate notifiers to Symbian OS v9.1 without major changes. Any notifier classes derived from <codeph>MEikSrvNotifierBase</codeph> must now derive from <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref>. An enumeration is used to define an ECom-based notifier plug-in interface. This acts as a primary key to separate ECom-based notifier plug-ins from other types. </p> <p> <b> Note:</b> The Symbian platform architecture still supports old-style (non-ECom-based) plug-ins. </p> <p>Notifiers have the following features: </p> <ul><li id="GUID-FC1E274F-203B-5DE9-A382-762C3C97BFE3"><p>They can be installed in ROM (<filepath>Z:</filepath>), RAM (<filepath>C:</filepath>), or on a memory card (for example, <filepath>E:</filepath>). </p> </li> <li id="GUID-E36D43EE-B2EC-5219-B969-FC2CCEE50868"><p>They can be installed and un-installed using SIS files. </p> </li> <li id="GUID-784483E3-D297-5228-8BDA-0C93018DD640"><p>A single plug-in DLL can provide multiple notifiers. The plug-in DLL returns an array of <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> class pointers through ECom. </p> </li> <li id="GUID-D9D6A40E-D26F-5448-9E50-6D81544B9F7D"><p>Each notifier can have multiple implementations. </p> </li> </ul> </section> <section id="GUID-A53A1B64-4250-53B9-BD0F-32AFE2F34E5F"><title>Notifier source code example</title> <p>ECom defines standard framework functions that plug-ins implement. Here is an example of the required notifier source code: </p> <codeblock id="GUID-CD591744-90C4-57B5-918B-ABE3B41CBA00" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray1()
+// Lib main entry point
+      {...}
+ 
+EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray2()
+// Lib main entry point
+      {...}
+ 
+// Adding ECom support
+#include &lt;ImplementationProxy.h&gt;
+const TImplementationProxy ImplementationTable[] =
+      {
+      IMPLEMENTATION_PROXY_ENTRY(0x10022238,NotifierArray1),
+      IMPLEMENTATION_PROXY_ENTRY(0x10022237,NotifierArray2)
+      }; 
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
+      {
+      aTableCount = sizeof(ImplementationTable)/sizeof(TImplementationProxy);
+      return ImplementationTable;
+       }</codeblock> </section> <section id="GUID-3F83B740-F999-55F1-A244-83C97F240883"><title>Resource file example</title> <p>ECom uses resource files to define the main elements of application GUIs. Resource file names must have the format: <filepath>&lt;dll_uid&gt;.rss</filepath>. </p> <p>The following UIDs may appear in the resource file. </p> <table id="GUID-8A60EEFE-E0FB-559C-B864-CB37EC324AD4"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>UID Name</b>  </p> </entry> <entry><p> <b>Description</b>  </p> </entry> </row> <row><entry><p> <codeph>dll_uid</codeph>  </p> </entry> <entry><p>The UID of the notifier plug-in DLL. </p> </entry> </row> <row><entry><p> <codeph> interface_uid</codeph>  </p> </entry> <entry><p>The interface UID for all notifiers, which is defined in <filepath>uikon.hrh</filepath> as: </p> <codeblock id="GUID-E664FEB0-AD66-5598-BD88-C72F068372C6" xml:space="preserve">#define KUikonUidpluginInterfaceNotifiers    0x101fdfae.</codeblock> </entry> </row> <row><entry><p> <codeph> implementation_uid</codeph>  </p> </entry> <entry><p>This is implementation-specific. </p> </entry> </row> <row><entry><p>plug-in_UID </p> </entry> <entry><p>The notifier’s UID. </p> </entry> </row> <row><entry><p>channel_UID </p> </entry> <entry><p>The channel for a notifier (for example, a screen or LED). </p> </entry> </row> </tbody> </tgroup> </table> <p>Together, the <codeph>plug-in_UID</codeph> and <codeph>channel_UID</codeph> uniquely identify the notifier plug-in. </p> <p>The following resource file corresponds to the C++ <xref href="GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD.dita#GUID-B861091F-DFD7-5BDD-B73C-52833F972CBD/GUID-A53A1B64-4250-53B9-BD0F-32AFE2F34E5F">Source code</xref>, above. It defines two implementations of the notifier interface. </p> <codeblock id="GUID-D0D2F679-5196-5150-988E-ED5EB30668E2" xml:space="preserve">// 10021239.rss
+//
+
+#include "RegistryInfo.rh"
+#include "Uikon.hrh"
+
+RESOURCE REGISTRY_INFO theInfo
+   {
+      dll_uid = 0x10021239;
+      interfaces =
+      {
+      INTERFACE_INFO
+            {
+            interface_uid = KUikonUidPluginInterfaceNotifiers;
+            implementations =
+                  {
+                  IMPLEMENTATION_INFO
+                        {
+                        implementation_uid = 0x10022237;
+                        version_no = 1;
+                        display_name = "TTNOTIFY2V2 Plugin 1";
+                        default_data = "TTNOTIFY2V2";
+                        opaque_data     = "0";
+                        },
+                  IMPLEMENTATION_INFO
+                        {
+                        implementation_uid = 0x10022238;
+                        version_no = 1;
+                        display_name = "TTNOTIFY2V2 Plugin 2";
+                        default_data = "TTNOTIFY2V2";
+                        opaque_data     = "0";
+                        }
+                  };
+            }
+      };
+}</codeblock> </section> <section id="GUID-8E585844-E5B3-5909-9B48-A288D89E621F"><title>MMP file example</title> <p>This is an example project specification (<filepath>.mmp</filepath>) file for the notifier: </p> <codeblock id="GUID-2316985A-2B7D-5255-ACD0-1A4E72026232" xml:space="preserve">
+target            TESTNOTIFIER.DLL 
+targettype        PLUGIN 
+capability         TrustedUI ProtServ 
+UID                0x10009D8D 0x10021239 
+sourcepath        ...
+userinclude        ... 
+systeminclude    \epoc32\include \epoc32\include\techview 
+lang                SC 
+
+start resource    10021239.rss  
+target            TESTNOTIFIER.rsc  
+
+start resource    TNOTDIAL.RSS 
+targetpath        \private\10003a4a 
+header 
+end 
+source            filename.cpp 
+library            ECOM.LIB</codeblock> </section> </conbody><related-links><link href="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita"><linktext>Using the extended notifier
                 framework</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B876D548-FD40-4369-B328-7427002B4851.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B876D548-FD40-4369-B328-7427002B4851.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B876D548-FD40-4369-B328-7427002B4851" xml:lang="en"><title>Title
-pane touch observer API</title><shortdesc>The Title pane touch observer API is used for observing when the
-title pane has been tapped.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>For user experience guidelines on the title pane, see the <xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">title
-pane UI component description</xref>.</p>
-<p>For implementation information, see <xref href="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita">Setting
-the title pane touch pane observer</xref>.</p>
-<p>For Title pane touch observer API classes and header files, see Classes
-and Definitions.</p>
-<section id="GUID-A04C5FBD-F778-4B4D-B259-B94D2D4180F6"><title>API class structure</title><p><xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMAknTitlePaneObserver.html" format="application/java-archive"><codeph>MAknTitlePaneObserver</codeph></xref> is
-part of <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknTitlePane.html" format="application/java-archive"><codeph>CAknTitlePane</codeph></xref>.</p></section>
-<section id="GUID-9A845610-B9FD-4640-AFB6-2BD8DBF600D1">       <title>Constraints</title> 
-     <p>This API is valid for touch-enabled Symbian platforms.</p>     </section>
-<section id="GUID-18668729-AFCB-42DA-AE4B-0A0CC8411098"><title>Emulator support</title><p>This
-API is fully supported in the WINS/WINSCW emulator environment.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B876D548-FD40-4369-B328-7427002B4851" xml:lang="en"><title>Title
+pane touch observer API</title><shortdesc>The Title pane touch observer API is used for observing when the
+title pane has been tapped.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>For user experience guidelines on the title pane, see the <xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">title
+pane UI component description</xref>.</p>
+<p>For implementation information, see <xref href="GUID-6F120C75-4D58-405C-8713-0626EE22E5DF.dita">Setting
+the title pane touch pane observer</xref>.</p>
+<p>For Title pane touch observer API classes and header files, see Classes
+and Definitions.</p>
+<section id="GUID-A04C5FBD-F778-4B4D-B259-B94D2D4180F6"><title>API class structure</title><p><xref href="GUID-7FAD33CE-9B76-33A6-9631-5AFE6242267D.dita"><apiname>MAknTitlePaneObserver</apiname></xref> is
+part of <xref href="GUID-4368DC7C-366A-34D6-ADA2-E2931381BEEF.dita"><apiname>CAknTitlePane</apiname></xref>.</p></section>
+<section id="GUID-B32538F8-E2D9-4CFC-A96A-B06AC5426528"><title>Changes and release information</title><p>The Title pane touch
+observer API is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-9A845610-B9FD-4640-AFB6-2BD8DBF600D1">       <title>Constraints</title> 
+     <p>This API is valid for touch-enabled Symbian platforms.</p>     </section>
+<section id="GUID-18668729-AFCB-42DA-AE4B-0A0CC8411098"><title>Emulator support</title><p>This
+API is fully supported in the WINS/WINSCW emulator environment.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91" xml:lang="en"><title>Stylus
-pop-up menu API</title><shortdesc>The Stylus pop-up menu API is used for displaying commands in a
-context menu the user can access by tapping an item on the device screen.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-69B92ECC-A4D7-4B17-A5EB-AED6E545DB93">
-<title>Stylus pop-up menu displayed in a preview pop-up</title>
-<image href="GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e78000_href.png" scale="75" placement="inline"/>
-</fig>
-<p>A stylus pop up menu (<codeph>CAknStylusPopUpMenu</codeph>, defined in <codeph>AknStylusPopUpMenu.h</codeph>)
-is a floating menu component that contains stylus-specific menu content. As
-the name implies, the stylus pop up menu is meant to be used only with the
-stylus by tapping a stylus interactive area. The pop-up menu is displayed
-near the tapping position. </p>
-<p>It is the application’s responsibility to create the stylus pop up menu
-and handle the actions its menu items trigger.</p>
-<p>For look and feel guidelines on the stylus pop-up menu, see the <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">stylus
-pop-up menu UI component description</xref>.</p>
-<p>For implementation information, see <xref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita">Displaying
-commands in a context menu</xref>.</p>
-<p>For the Stylus pop-up menu API classes and header files, see Classes and
-Definitions.</p>
-<section id="GUID-B08E958B-0FCC-4327-96D8-39055A2DB9D8"><title>Constraints</title><p>This
-API is valid for touch-enabled Symbian platforms.</p></section>
-<section id="GUID-731474BF-1AD5-4450-8A57-18B674ECAE09"><title>Emulator support</title><p>This
-API is fully supported in the WINS/WINSCW emulator environment.</p></section>
-</conbody><related-links>
-<linklist><title>Related APIs</title>
-<link format="html" href="specs/guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer"><linktext>Information preview popup API</linktext>
-<desc> for creating a preview pop-up from which the stylus pop-up menu can
-be launched</desc>
-</link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91" xml:lang="en"><title>Stylus
+pop-up menu API</title><shortdesc>The Stylus pop-up menu API is used for displaying commands in a
+pop-up menu.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-69B92ECC-A4D7-4B17-A5EB-AED6E545DB93">
+<title>Stylus pop-up menu displayed</title>
+<image href="GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e72846_href.png" scale="75" placement="inline"/>
+</fig>
+<p>A stylus pop up menu (<codeph>CAknStylusPopUpMenu</codeph>, defined in <codeph>AknStylusPopUpMenu.h</codeph>)
+is a floating menu component that contains stylus-specific menu content. As
+the name implies, the stylus pop up menu is meant to be used only with the
+stylus by tapping a stylus interactive area. The pop-up menu is displayed
+near the tapping position. </p>
+<p>It is the application’s responsibility to create the stylus pop up menu
+and handle the actions its menu items trigger. Note that this does not apply
+to item-specific options menu.</p>
+<p>For look and feel guidelines on the stylus pop-up menu, see the <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">stylus
+pop-up menu UI component description</xref>.</p>
+<p>For implementation information, see <xref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita">Displaying
+commands in a context menu</xref>.</p>
+<p>For the Stylus pop-up menu API classes and header files, see Classes and
+Definitions.</p>
+<section id="GUID-9142CAA5-120A-4494-B38C-C1E9F3B4F089"><title>Changes and release information</title><p>The Stylus pop-up
+menu API is an SDK API and first released in S60 5th Edition.</p></section>
+<section id="GUID-B08E958B-0FCC-4327-96D8-39055A2DB9D8"><title>Constraints</title><p>This
+API is valid for touch-enabled Symbian platforms.</p></section>
+<section id="GUID-731474BF-1AD5-4450-8A57-18B674ECAE09"><title>Emulator support</title><p>This
+API is fully supported in the WINS/WINSCW emulator environment.</p></section>
+</conbody><related-links>
+<linklist><title>Related APIs</title>
+<link format="html" href="specs/guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer"><linktext>Information preview popup API</linktext>
+<desc> for creating a preview pop-up from which the stylus pop-up menu can
+be launched</desc>
+</link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B8D630CA-7CED-408E-B570-00FF95BE14ED-master.png has changed
Binary file Symbian3/SDK/Source/GUID-B8D630CA-7CED-408E-B570-00FF95BE14ED_d0e82130_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e11326_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e12601_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2770_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B92B7DF8-0086-431F-91CE-6F193C045FB5_d0e2872_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e246991_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B9306D01-1DE5-511A-AC1A-6E3E9749BA89_d0e250728_href.png has changed
--- a/Symbian3/SDK/Source/GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF" xml:lang="en"><title>Application
-signing</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>All Symbian applications must be signed before they can be installed.
-All applications which use <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capability</xref>-protected
-APIs, where the capability cannot be granted by the end user, have to be certified.
-Such certification can be obtained through <xref href="https://www.symbiansigned.com/" scope="external">Symbian
-Signed</xref>.</p>
-<p>Signing is a means of encoding a digital certificate into the application
-installation file. The certificate identifies the application’s vendor, and
-grants access to capabilities defined during the build process.</p>
-<p>The signing process is described in detail on the <xref href="https://www.symbiansigned.com/" scope="external">Symbian
-Signed</xref> website.</p>
-<section id="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EH"><title>Signing options</title>
-<p>If your application only needs <i>user capabilities</i> (<codeph>LocalServices</codeph>, <codeph>NetworkServices</codeph>, <codeph>ReadUserData</codeph>, <codeph>WriteUserData</codeph>, <codeph>UserEnvironment</codeph>, and<codeph>Location</codeph>),
-you can self-sign the application.</p>
-<note>
-<p>When the end users are installing a self-signed application, they are
-informed that the application is untrusted and may decide to abort the installation.
-In Nokia E-series devices the user must change a setting to allow self-signed
-applications to install.</p>
-</note>
-<p>Sign the <codeph>sis</codeph> <xref href="GUID-61EE2BE0-7B86-42CD-A03F-857DD8FAC246.dita">installation
-file</xref> with any private key. You can use the <xref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita">MakeKeys</xref> application
-to create the needed private key and, for example, <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> to
-sign the application. Both applications are delivered with the SDK. For more
-information, see <xref href="http://wiki.forum.nokia.com/index.php/How_to_sign_a_.Sis_file_with_Self-Sign_Certificate" scope="external">How
-to sign a .Sis file with Self-Sign Certificate</xref> in the Forum Nokia
-Developer Community Wiki.</p>
-<p>The other signing options (Open Signed, Express Signed and Certified
-Signed) are described in detail in <xref href="http://developer.symbian.com/ssguide" scope="external">The
-Complete Guide to Symbian Signed</xref>.</p>
-</section>
-<section id="GUID-44AC868B-484A-4B84-8A3A-0351E70F1141"><title>Additional information
-on signing</title>
-<p>The UID value you need to use for your application depends on whether
-your application is signed or self-signed. For more information, see <xref href="GUID-EA05F9B6-52C7-4BD9-8B9A-4BA3456E70B5.dita">UID</xref> and <xref href="GUID-380A8C4F-3EB6-5E1C-BCFB-ED5B866136D9.dita">How
-to use UIDs</xref>.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF" xml:lang="en"><title>Application
+signing</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>All Symbian applications must be signed before they can be installed.
+All applications which use <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capability</xref>-protected
+APIs, where the capability cannot be granted by the end user, have to be certified.
+Such certification can be obtained through <xref href="https://www.symbiansigned.com/" scope="external">Symbian
+Signed</xref>.</p>
+<p>Signing is a means of encoding a digital certificate into the application
+installation file. The certificate identifies the application’s vendor, and
+grants access to capabilities defined during the build process.</p>
+<p>The signing process is described in detail on the <xref href="https://www.symbiansigned.com/" scope="external">Symbian
+Signed</xref> website.</p>
+<section id="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EH"><title>Signing options</title>
+<p>If your application only needs <i>user capabilities</i> (<codeph>LocalServices</codeph>, <codeph>NetworkServices</codeph>, <codeph>ReadUserData</codeph>, <codeph>WriteUserData</codeph>, <codeph>UserEnvironment</codeph>, and<codeph>Location</codeph>),
+you can self-sign the application.</p>
+<note>
+<p>When the end users are installing a self-signed application, they are
+informed that the application is untrusted and may decide to abort the installation.
+In Nokia E-series devices the user must change a setting to allow self-signed
+applications to install.</p>
+</note>
+
+<p>Sign the <codeph>sis</codeph> installation
+file with any private key. You can use the <xref href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita">MakeKeys</xref> application
+to create the needed private key and, for example, <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> to
+sign the application. Both applications are delivered with the SDK. For more
+information, see <xref href="http://wiki.forum.nokia.com/index.php/How_to_sign_a_.Sis_file_with_Self-Sign_Certificate" scope="external">How
+to sign a .Sis file with Self-Sign Certificate</xref> in the Forum Nokia
+Developer Community Wiki.</p>
+<p>The other signing options (Open Signed, Express Signed and Certified
+Signed) are described in detail in <xref href="http://developer.symbian.org/wiki/index.php/Complete_Guide_To_Symbian_Signed" scope="external">The
+Complete Guide to Symbian Signed</xref>.</p>
+</section>
+<section id="GUID-44AC868B-484A-4B84-8A3A-0351E70F1141"><title>Additional information
+on signing</title>
+
+<p>The UID value you need to use for
+your application depends on whether your application is signed or self-signed.
+For more information, see <xref href="GUID-380A8C4F-3EB6-5E1C-BCFB-ED5B866136D9.dita">How
+to use UIDs</xref>.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e330077_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B94B394F-E243-5AB0-BAF7-AF68982A3EA8_d0e336234_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e323931_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e330088_href.png has changed
Binary file Symbian3/SDK/Source/GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e304465_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-B985B750-9B42-55ED-B7E4-41B06B44C365_d0e310480_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231" xml:lang="en"><title>Receiving
-Data from Sensors</title><shortdesc>You can implement a data listener to receive data from the sensors.
-Based on the data received, you can perform specific actions on the Symbian
-device. For example, if you receive information from the sensor about the
-distance between the device and the user then based on this information, you
-can disable or enable the loudspeaker mode on the Symbian device.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-E09C6ABC-F717-4791-A2EE-491421D2BD30">       <p>Before listening
-for sensor channel data, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
-the sensor channel</xref>.</p>     </prereq>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-5-1-3-2">
-<step id="GUID-CE0EE6EE-84A7-46F6-8590-C75FAA381843"><cmd>Implement the data
-listener.</cmd>
-<info><p>Inherit from the <parmname>MSensrvDataListener</parmname> interface
-and implement the following pure virtual functions: <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-92EDE76E-F5D8-3D45-939B-FD5C03347AE8"><apiname>MSensrvDataListener::DataReceived</apiname></xref>, <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-F6C22940-A276-38C2-890F-CA45B75D613F"><apiname>MSensrvDataListener::DataError</apiname></xref> and <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-4062844D-2F25-38FC-B91A-DD5B41E6FF3F"><apiname>MSensrvDataListener::GetDataListenerInterfaceL</apiname></xref></p><codeblock xml:space="preserve">class DataListener:public MSensrvDataListener
-    {
-    public:
-        void DataReceived(CSensrvChannel&amp; aChannel, TInt aCount, TInt aDataLost )
-        {
-        ...
-         //Implementation
-        }
-    void DataError( CSensrvChannel&amp;, TSensrvErrorSeverity)
-        {
-        ...
-         //Implementation
-        }
-    void GetDataListenerInterfaceL( TUid, TAny*&amp;)
-        {
-        ...
-         //Implementation
-        }
-    };</codeblock></info>
-</step>
-<step id="GUID-107B26D8-CD5A-4571-8441-F1A5A2C0EB2B"><cmd>Start data listening.</cmd>
-<info><p>Pass an instance of data listener implementation using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-F851A108-C72F-3132-BE15-DC41CACB64F9"><apiname>CSensrvChannel::StartDataListeningL()</apiname></xref> function.</p><codeblock xml:space="preserve">//Instance of the data listener implementation
-DataListener dataListener; 
-...
-CSensrvChannel* channel;
-...
-channel-&gt;StartDataListeningL(&amp;dataListener, 1, 1, 0);
-...</codeblock><p> When new data is available to be read in the sensor channel,
-the client is notified by the <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-7EE31046-31A6-356E-AFEF-2E8C003A7F15"><apiname>MSensrvDataListener::DataReceived(CSensrvChannel
-&amp;,TInt,TInt)</apiname></xref> callback function. The channel data is received
-into the receiving buffer. The receiving buffer is allocated from the heap
-in the client's thread and its size is the channel data item size multiplied
-by the maximum number of data items. </p></info>
-</step>
-<step id="GUID-40F9F566-475E-4ECD-B420-70EB1B77DEAA"><cmd>Read the channel
-data from the receiving buffer using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-EC1AF564-F05D-3729-B0C9-7573A1F79B86"><apiname>CSensrvChannel::GetData()</apiname></xref> function.
-For more information about handling data notifications, see the following <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita#GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231/5876a529-0484-497d-8cf8-9ceb9c725388">Example</xref>.</cmd>
-</step>
-<step id="GUID-D3928C98-3D10-40BE-A63E-584969AA0416"><cmd>After you get the
-required sensor data feeds from the sensor channel, you can stop data listening
-using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0129F5FA-BD26-37F0-8FE4-19F393AA817C"><apiname>CSensrvChannel::StopDataListening()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">channel-&gt;StopDataListening();</codeblock></stepxmp>
-</step>
-</steps>
-<example id="5876A529-0484-497D-8CF8-9CEB9C725388"><p>The following example
-shows how to handle the double tapping data notification that is received. </p><p>Check
-the channel type of the received data and then receive the data object using
-the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-EC1AF564-F05D-3729-B0C9-7573A1F79B86"><apiname>CSensrvChannel::GetData()</apiname></xref> function. The <parmname>aCount</parmname> parameter
-provides the details about the number of data objects in the channels receiving
-buffer. This number can be zero if the buffering period is used when data
-listening is started. The <parmname>aDataLost</parmname> parameter provides
-the details about the number of the lost data objects. For example, in heavy
-load situations. </p><codeblock xml:space="preserve">void CTestClass::DataReceived( CSensrvChannel&amp; aChannel, 
-                               TInt aCount, 
-                               TInt aDataLost )
-    {
-    if ( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdAccelerometerDoubleTappingData )
-        {
-        TSensrvTappingData tappingData;
-        TPckg &lt;TSensrvTappingData&gt; tappingPackage( tappingData );
-        aChannel.GetData( tappingPackage );
-        }
-    }</codeblock></example>
-<postreq id="GUID-69071DC2-EB41-43BA-8DFC-CE2D4423AF8A"><p>End the session
-with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231" xml:lang="en"><title>Receiving
+Data from Sensors</title><shortdesc>You can implement a data listener to receive data from the sensors.
+Based on the data received, you can perform specific actions on the Symbian
+device. For example, if you receive information from the sensor about the
+distance between the device and the user then based on this information, you
+can disable or enable the loudspeaker mode on the Symbian device.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-E09C6ABC-F717-4791-A2EE-491421D2BD30">       <p>Before listening
+for sensor channel data, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open
+the sensor channel</xref>.</p>     </prereq>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-5-1-3-2">
+<step id="GUID-CE0EE6EE-84A7-46F6-8590-C75FAA381843"><cmd>Implement the data
+listener.</cmd>
+<info><p>Inherit from the <parmname>MSensrvDataListener</parmname> interface
+and implement the following pure virtual functions: <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-92EDE76E-F5D8-3D45-939B-FD5C03347AE8"><apiname>MSensrvDataListener::DataReceived</apiname></xref>, <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-F6C22940-A276-38C2-890F-CA45B75D613F"><apiname>MSensrvDataListener::DataError</apiname></xref> and <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-4062844D-2F25-38FC-B91A-DD5B41E6FF3F"><apiname>MSensrvDataListener::GetDataListenerInterfaceL</apiname></xref></p><codeblock xml:space="preserve">class DataListener:public MSensrvDataListener
+    {
+    public:
+        void DataReceived(CSensrvChannel&amp; aChannel, TInt aCount, TInt aDataLost )
+        {
+        ...
+         //Implementation
+        }
+    void DataError( CSensrvChannel&amp;, TSensrvErrorSeverity)
+        {
+        ...
+         //Implementation
+        }
+    void GetDataListenerInterfaceL( TUid, TAny*&amp;)
+        {
+        ...
+         //Implementation
+        }
+    };</codeblock></info>
+</step>
+<step id="GUID-107B26D8-CD5A-4571-8441-F1A5A2C0EB2B"><cmd>Start data listening.</cmd>
+<info><p>Pass an instance of data listener implementation using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-F851A108-C72F-3132-BE15-DC41CACB64F9"><apiname>CSensrvChannel::StartDataListeningL()</apiname></xref> function.</p><codeblock xml:space="preserve">//Instance of the data listener implementation
+DataListener dataListener; 
+...
+CSensrvChannel* channel;
+...
+channel-&gt;StartDataListeningL(&amp;dataListener, 1, 1, 0);
+...</codeblock><p> When new data is available to be read in the sensor channel,
+the client is notified by the <xref href="GUID-519E744E-246C-3F4A-A869-F25B03F1126F.dita#GUID-519E744E-246C-3F4A-A869-F25B03F1126F/GUID-7EE31046-31A6-356E-AFEF-2E8C003A7F15"><apiname>MSensrvDataListener::DataReceived(CSensrvChannel
+&amp;,TInt,TInt)</apiname></xref> callback function. The channel data is received
+into the receiving buffer. The receiving buffer is allocated from the heap
+in the client's thread and its size is the channel data item size multiplied
+by the maximum number of data items. </p></info>
+</step>
+<step id="GUID-40F9F566-475E-4ECD-B420-70EB1B77DEAA"><cmd>Read the channel
+data from the receiving buffer using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-EC1AF564-F05D-3729-B0C9-7573A1F79B86"><apiname>CSensrvChannel::GetData()</apiname></xref> function.
+For more information about handling data notifications, see the following <xref href="GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231.dita#GUID-BA0D9DA9-3B54-4964-A4D6-9ADA4DEB7231/5876a529-0484-497d-8cf8-9ceb9c725388">Example</xref>.</cmd>
+</step>
+<step id="GUID-D3928C98-3D10-40BE-A63E-584969AA0416"><cmd>After you get the
+required sensor data feeds from the sensor channel, you can stop data listening
+using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0129F5FA-BD26-37F0-8FE4-19F393AA817C"><apiname>CSensrvChannel::StopDataListening()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">channel-&gt;StopDataListening();</codeblock></stepxmp>
+</step>
+</steps>
+<example id="5876A529-0484-497D-8CF8-9CEB9C725388"><p>The following example
+shows how to handle the double tapping data notification that is received. </p><p>Check
+the channel type of the received data and then receive the data object using
+the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-EC1AF564-F05D-3729-B0C9-7573A1F79B86"><apiname>CSensrvChannel::GetData()</apiname></xref> function. The <parmname>aCount</parmname> parameter
+provides the details about the number of data objects in the channels receiving
+buffer. This number can be zero if the buffering period is used when data
+listening is started. The <parmname>aDataLost</parmname> parameter provides
+the details about the number of the lost data objects. For example, in heavy
+load situations. </p><codeblock xml:space="preserve">void CTestClass::DataReceived( CSensrvChannel&amp; aChannel, 
+                               TInt aCount, 
+                               TInt aDataLost )
+    {
+    if ( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdAccelerometerDoubleTappingData )
+        {
+        TSensrvTappingData tappingData;
+        TPckg &lt;TSensrvTappingData&gt; tappingPackage( tappingData );
+        aChannel.GetData( tappingPackage );
+        }
+    }</codeblock></example>
+<postreq id="GUID-69071DC2-EB41-43BA-8DFC-CE2D4423AF8A"><p>End the session
+with the sensor channel using the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-0B8F50A6-2CA1-316A-82AB-AA026005E810"><apiname>CSensrvChannel::CloseChannel()</apiname></xref> function.</p></postreq>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e299317_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BA1071D5-E358-5B33-9204-CDCD0CECEF0A_d0e305344_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BA49FDC0-808B-5E05-81AC-98637214F304.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BA49FDC0-808B-5E05-81AC-98637214F304.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,72 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BA49FDC0-808B-5E05-81AC-98637214F304" xml:lang="en"><title>LBS
-Quick Start</title><shortdesc>Location Based Services (LBS) provides location information for
-installed applications and for remote services via a network. Location information
-can be used for location stamping artefacts such as photographs and memos,
-finding nearby services and facilities, navigation, and the ability for remote
-parties to discover the user's whereabouts. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Location-based services (LBS) use coordinates from the World Geodetic System
-(WGS 84), which is also used as a reference system by the Global Positioning
-System (GPS). </p>
-<p>The coordinates are based on values for latitude, longitude, and altitude
-(elevation above sea level). </p>
-<p>The North Pole is 90 degrees North (+90 degrees) and the South Pole is
-90 degrees South (-90 degrees). The Equator is defined as 0 degrees; locations
-above it have positive latitudes (0 to +90 degrees); those below (0 to -90
-degrees) negative ones.</p>
-<p>There are two definitions of North Pole; Magnetic North Pole and True (Geographical)
-North Pole. Any application with a compass must check how the API defines
-North Pole.</p>
-<p>The Magnetic North Pole is the point to which compasses point. The True
-North Pole defines latitude as +90 degrees. </p>
-<p>Meridians are constant longitudinal (north-south) values. The Prime (Greenwich)
-Meridian’s value is 0 degrees. WGS84, which LBS use, defines its zero meridian
-some 100 meters east of the Prime one. Locations east of the Prime Meridian
-have positive longitudinal values (0 to +180 degrees), those west (0 to -180
-degrees) have negative ones. </p>
-<p>As seen in the figure below, latitude lines are smaller near the poles.
-At the equator, one degree of longitude is roughly 111.3 km, whereas at 60
-degrees of latitude one degree of longitude is only 55.8 km, which is more
-difficult to see.</p>
-<fig id="GUID-D98458F6-8EBD-43B9-9C3C-5204BD837D2D">
-<image href="GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e269218_href.png" placement="inline"/>
-</fig>
-<section id="GUID-D4201DF5-26DD-5E46-B228-A3CAA467C7C6"><title>Getting started
-with LBS</title> <p>This section provides links to the most important documentation.</p> <p><b>For
-application developers</b> </p> <p>The <xref href="GUID-D0318BB6-0B9F-5A1C-AB0B-61BA22D28661.dita">Location
-Acquisition API</xref> is the interface that programmers use to create location-aware
-applications. The API gives developers the ability to get location fixes and
-to obtain information about the positioning technologies available to the
-mobile device. </p>      </section>
-
-<section id="GUID-CA5D2674-B469-44D8-9255-1F35CA7B8D41"><title>Technologies</title> <p>The
-main technologies enabled on the Symbian platform by the LBS subsystem are
-as follows: </p> <ul>
-<li id="GUID-62F84865-11D4-50BA-A139-7EEA7232BC8F"><p>Global Positioning System
-(GPS) </p> <p>The GPS system provides accurate, worldwide positioning. The
-main disadvantage of GPS is the long time required to obtain a position fix
-when the GPS hardware is first powered. LBS supports Assisted GPS (A-GPS)
-to reduce the time required to get a position fix. </p> </li>
-<li id="GUID-64669486-6B59-5AE4-A337-E9E50C3C3F1E"><p>Network based positioning </p> <p>Network
-based positioning is typically less accurate than GPS, but often provides
-a faster fix of adequate accuracy for some applications. </p> </li>
-<li id="GUID-05A9FF0E-A974-5CD7-A854-784CB23AA2A4"><p>Secure User Plane Location
-(SUPL) v1.0 </p> <p>SUPL defines an architecture for supporting Location Based
-Services using IP bearers to connect handsets and network hosts. The Symbian
-LBS subsystem contains a SUPL Protocol Module to support SUPL. </p> </li>
-</ul><fig id="GUID-52D81395-87C4-4706-97E5-84336EA53C69">
-<image href="GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e269275_href.png" placement="inline"/>
-</fig><p>The above figure illustrates how the location information can be
-provided to the device. Access to these location methods is provided through
-the positioning modules.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BA49FDC0-808B-5E05-81AC-98637214F304" xml:lang="en"><title>LBS
+Quick Start</title><shortdesc>Location Based Services (LBS) provides location information for
+installed applications and for remote services via a network. Location information
+can be used for location stamping artefacts such as photographs and memos,
+finding nearby services and facilities, navigation, and the ability for remote
+parties to discover the user's whereabouts. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Location-based services (LBS) use coordinates from the World Geodetic System
+(WGS 84), which is also used as a reference system by the Global Positioning
+System (GPS). </p>
+<p>The coordinates are based on values for latitude, longitude, and altitude
+(elevation above sea level). </p>
+<p>The North Pole is 90 degrees North (+90 degrees) and the South Pole is
+90 degrees South (-90 degrees). The Equator is defined as 0 degrees; locations
+above it have positive latitudes (0 to +90 degrees); those below (0 to -90
+degrees) negative ones.</p>
+<p>There are two definitions of North Pole; Magnetic North Pole and True (Geographical)
+North Pole. Any application with a compass must check how the API defines
+North Pole.</p>
+<p>The Magnetic North Pole is the point to which compasses point. The True
+North Pole defines latitude as +90 degrees. </p>
+<p>Meridians are constant longitudinal (north-south) values. The Prime (Greenwich)
+Meridian’s value is 0 degrees. WGS84, which LBS use, defines its zero meridian
+some 100 meters east of the Prime one. Locations east of the Prime Meridian
+have positive longitudinal values (0 to +180 degrees), those west (0 to -180
+degrees) have negative ones. </p>
+<p>As seen in the figure below, latitude lines are smaller near the poles.
+At the equator, one degree of longitude is roughly 111.3 km, whereas at 60
+degrees of latitude one degree of longitude is only 55.8 km, which is more
+difficult to see.</p>
+<fig id="GUID-D98458F6-8EBD-43B9-9C3C-5204BD837D2D">
+<image href="GUID-0C01305E-9E73-4E44-BD13-361C93CC5E79_d0e265510_href.png" placement="inline"/>
+</fig>
+<section id="GUID-D4201DF5-26DD-5E46-B228-A3CAA467C7C6"><title>Getting started
+with LBS</title> <p>This section provides links to the most important documentation.</p> <p><b>For
+application developers</b> </p> <p>The <xref href="GUID-D0318BB6-0B9F-5A1C-AB0B-61BA22D28661.dita">Location
+Acquisition API</xref> is the interface that programmers use to create location-aware
+applications. The API gives developers the ability to get location fixes and
+to obtain information about the positioning technologies available to the
+mobile device. </p>      </section>
+
+<section id="GUID-CA5D2674-B469-44D8-9255-1F35CA7B8D41"><title>Technologies</title> <p>The
+main technologies enabled on the Symbian platform by the LBS subsystem are
+as follows: </p> <ul>
+<li id="GUID-62F84865-11D4-50BA-A139-7EEA7232BC8F"><p>Global Positioning System
+(GPS) </p> <p>The GPS system provides accurate, worldwide positioning. The
+main disadvantage of GPS is the long time required to obtain a position fix
+when the GPS hardware is first powered. LBS supports Assisted GPS (A-GPS)
+to reduce the time required to get a position fix. </p> </li>
+<li id="GUID-64669486-6B59-5AE4-A337-E9E50C3C3F1E"><p>Network based positioning </p> <p>Network
+based positioning is typically less accurate than GPS, but often provides
+a faster fix of adequate accuracy for some applications. </p> </li>
+<li id="GUID-05A9FF0E-A974-5CD7-A854-784CB23AA2A4"><p>Secure User Plane Location
+(SUPL) v1.0 </p> <p>SUPL defines an architecture for supporting Location Based
+Services using IP bearers to connect handsets and network hosts. The Symbian
+LBS subsystem contains a SUPL Protocol Module to support SUPL. </p> </li>
+</ul><fig id="GUID-52D81395-87C4-4706-97E5-84336EA53C69">
+<image href="GUID-0CCCF088-E636-4C12-AA5E-3E2CB04424AD_d0e265567_href.png" placement="inline"/>
+</fig><p>The above figure illustrates how the location information can be
+provided to the device. Access to these location methods is provided through
+the positioning modules.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D" xml:lang="en"><title>SendAs
-Server</title><shortdesc>This section provides detailed description of the SendAs Server
-functions and how the SendAs Server processes the client request. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>SendAs Server process and data flow</title> <p>The following
-figure details the processes and data flow with SendAs Server. </p> <fig id="GUID-644B137D-D8A4-514F-9D3F-238CC69C751E">
-<title>              SendAs Server process and data flow            </title>
-<image href="GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e291520_href.jpg" placement="inline"/>
-</fig> </section>
-<section><title>SendAs Server functionality</title> <p>The following sections
-give detailed information about the SendAs sever functionality: </p> <p><b>Creating
-a SendAs message</b> </p> <p>Client applications can create a message of a
-given type that supports SendAs only in the Drafts folder of the message store.
-It uses <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> to create the message.
-An MTM can specify its support of SendAs for a message type in the following
-two ways: </p> <ul>
-<li id="GUID-E25A3621-D706-5016-9F94-AE823C597AD7"><p>The message type can
-set the <xref href="GUID-7D5C9320-17AB-381E-8369-1804EB143199.dita#GUID-7D5C9320-17AB-381E-8369-1804EB143199/GUID-4EDB6002-8750-3E7D-AC60-BFD2BD441E69"><apiname>MTM_CAPABILITIES::send_capability</apiname></xref> resource in its
-resource file. This allows the Message Server to know whether the message
-type supports SendAs without loading its MTMs. </p> </li>
-<li id="GUID-1663559F-C4CE-5B40-848C-B312E60FD8A0"><p>If the MTM does not
-declare whether it supports SendAs in its resource file, the Message Server
-loads the MTM and queries if it supports the <xref href="GUID-AB92627B-67B0-39AC-9B00-854EA1589B35.dita"><apiname>KUidMtmQueryCanSendMsg</apiname></xref> capability. </p> </li>
-</ul> <p><b>Modifying a SendAs message</b> </p> <p>Client applications can
-modify a message created by the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> method.
-After sending the request, client applications can no longer modify the message.
-They can add the following message parts, if supported by the message type. </p> <ul>
-<li id="GUID-C84B4945-0E7A-5309-94FF-B849D16F11B7"><p>Body text </p> </li>
-<li id="GUID-169AEA41-8650-5BE4-8386-36DD3BE1215B"><p>Attachment </p> </li>
-<li id="GUID-EA862642-6FD7-5248-B7ED-6981AB73CA69"><p>BIO type </p> </li>
-<li id="GUID-BF7BDB3F-5EAA-565B-8238-3F34E4608222"><p>Recipients—address,
-alias and type. For example, To, Cc or Bcc. </p> </li>
-<li id="GUID-9509C4D9-A1B1-5C9D-9890-AEBA109ECA0A"><p>Subject </p> </li>
-</ul> <p><b>Sending a SendAs Message </b> </p> <p>When a client application
-requests to send a message, it must specify whether SendAs must get confirmation
-from the user to send the message or not. </p> <p>If a client application
-that requests a unconfirmed send is not trusted with the capabilities specified
-by the Server MTM of the given message type, the SendAs Server automatically
-performs a confirmed send. </p> <p>For a confirmed send, the SendAs Server
-uses the UI MTM for the message type to confirm the send request by querying
-the phone user. If the send is confirmed by the phone user, the SendAs Server
-moves the message to Outbox and sends the message. If the send is refused,
-then the message remains in the Drafts folder and the Send-As Server fails
-the send request. </p> <p>After the message send is initiated, the Server
-MTM for the message type takes responsibility of the message. For successful
-and unsuccessful sends, the Server MTM decides to which folder the message
-must be moved to. It also governs the rescheduling policy for a failed send
-request. </p> <p>A client application can obtain progress for both types of
-send requests. Any failures associated with the send are reported back to
-the client application through this progress information. The progress information
-also provides a send state. For example, message waiting to be sent, sending,
-message sent, or message send failed. </p> <p><b>Launching an editor for a
-message type</b> </p> <p>The SendAs Server allows client applications to launch
-an editor for a specified message type that supports SendAs. After creating
-a message, a client application can request to launch the appropriate editor.
-It can launch the editor in two ways: a fire-and-forget launch or a launch
-and wait. With the fire-and-forget launch, the client application is not notified
-when an editor is closed. The launch and wait notifies the client application
-when an editor closes. </p> <p>After the editor is launched, the SendAs Server
-is no longer responsible for that message, the editor takes the responsibility.
-The message editors are applications that are trusted with the required capabilities
-to modify and send messages of that type. They communicate directly with the
-Message Server using the Message Server APIs. </p> <p><b>Querying the message
-type registry</b> </p> <p>The SendAs Server provides several APIs to allow
-client applications to query the message type registry. The following are
-the available queries: </p> <ul>
-<li id="GUID-51165376-26AF-524E-8BA8-B4EFC0C1716D"><p>List the registered
-message types that support a specified set of message capabilities. For example,
-amount of body text allowed, attachments supported and so on. </p> </li>
-<li id="GUID-E875CF63-B35F-581B-A8AE-A04E15A356CE"><p>Obtain the available
-account names for a specified message type </p> </li>
-<li id="GUID-EBE65718-F480-5840-8A89-A47C099021E3"><p>Get the localised human
-readable name for a specified message type that supports SendAs. </p> </li>
-</ul><note> Message types that have no accounts or invalid accounts are not
-listed. Validation is done by SendAs querying whether the UI MTM supports
-validation of the accounts. If the UI MTM does not support validation, all
-accounts are assumed to be valid. If the UI MTM supports the verification,
-then the list of service IDs is passed to <xref href="GUID-1471F3BD-21BF-3600-BEA2-F3B2C6DC4FFB.dita"><apiname>InvokeSyncFunctionL</apiname></xref> using
-the <xref href="GUID-EFB2418B-F3A9-3BF6-90D2-22985845EAAE.dita"><apiname>KMtmUiFunctionValidateService</apiname></xref> command.</note> <p>The
-SendAs Server allows client applications only to query the message type registry
-about message types that support SendAs. Other message types are ignored. </p> </section>
-</conbody><related-links>
-<link href="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita"><linktext>SendAs Overview</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D" xml:lang="en"><title>SendAs
+Server</title><shortdesc>This section provides detailed description of the SendAs Server
+functions and how the SendAs Server processes the client request. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>SendAs Server process and data flow</title> <p>The following
+figure details the processes and data flow with SendAs Server. </p> <fig id="GUID-644B137D-D8A4-514F-9D3F-238CC69C751E">
+<title>              SendAs Server process and data flow            </title>
+<image href="GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e287887_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>SendAs Server functionality</title> <p>The following sections
+give detailed information about the SendAs sever functionality: </p> <p><b>Creating
+a SendAs message</b> </p> <p>Client applications can create a message of a
+given type that supports SendAs only in the Drafts folder of the message store.
+It uses <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> to create the message.
+An MTM can specify its support of SendAs for a message type in the following
+two ways: </p> <ul>
+<li id="GUID-E25A3621-D706-5016-9F94-AE823C597AD7"><p>The message type can
+set the <xref href="GUID-7D5C9320-17AB-381E-8369-1804EB143199.dita#GUID-7D5C9320-17AB-381E-8369-1804EB143199/GUID-4EDB6002-8750-3E7D-AC60-BFD2BD441E69"><apiname>MTM_CAPABILITIES::send_capability</apiname></xref> resource in its
+resource file. This allows the Message Server to know whether the message
+type supports SendAs without loading its MTMs. </p> </li>
+<li id="GUID-1663559F-C4CE-5B40-848C-B312E60FD8A0"><p>If the MTM does not
+declare whether it supports SendAs in its resource file, the Message Server
+loads the MTM and queries if it supports the <xref href="GUID-AB92627B-67B0-39AC-9B00-854EA1589B35.dita"><apiname>KUidMtmQueryCanSendMsg</apiname></xref> capability. </p> </li>
+</ul> <p><b>Modifying a SendAs message</b> </p> <p>Client applications can
+modify a message created by the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> method.
+After sending the request, client applications can no longer modify the message.
+They can add the following message parts, if supported by the message type. </p> <ul>
+<li id="GUID-C84B4945-0E7A-5309-94FF-B849D16F11B7"><p>Body text </p> </li>
+<li id="GUID-169AEA41-8650-5BE4-8386-36DD3BE1215B"><p>Attachment </p> </li>
+<li id="GUID-EA862642-6FD7-5248-B7ED-6981AB73CA69"><p>BIO type </p> </li>
+<li id="GUID-BF7BDB3F-5EAA-565B-8238-3F34E4608222"><p>Recipients—address,
+alias and type. For example, To, Cc or Bcc. </p> </li>
+<li id="GUID-9509C4D9-A1B1-5C9D-9890-AEBA109ECA0A"><p>Subject </p> </li>
+</ul> <p><b>Sending a SendAs Message </b> </p> <p>When a client application
+requests to send a message, it must specify whether SendAs must get confirmation
+from the user to send the message or not. </p> <p>If a client application
+that requests a unconfirmed send is not trusted with the capabilities specified
+by the Server MTM of the given message type, the SendAs Server automatically
+performs a confirmed send. </p> <p>For a confirmed send, the SendAs Server
+uses the UI MTM for the message type to confirm the send request by querying
+the phone user. If the send is confirmed by the phone user, the SendAs Server
+moves the message to Outbox and sends the message. If the send is refused,
+then the message remains in the Drafts folder and the Send-As Server fails
+the send request. </p> <p>After the message send is initiated, the Server
+MTM for the message type takes responsibility of the message. For successful
+and unsuccessful sends, the Server MTM decides to which folder the message
+must be moved to. It also governs the rescheduling policy for a failed send
+request. </p> <p>A client application can obtain progress for both types of
+send requests. Any failures associated with the send are reported back to
+the client application through this progress information. The progress information
+also provides a send state. For example, message waiting to be sent, sending,
+message sent, or message send failed. </p> <p><b>Launching an editor for a
+message type</b> </p> <p>The SendAs Server allows client applications to launch
+an editor for a specified message type that supports SendAs. After creating
+a message, a client application can request to launch the appropriate editor.
+It can launch the editor in two ways: a fire-and-forget launch or a launch
+and wait. With the fire-and-forget launch, the client application is not notified
+when an editor is closed. The launch and wait notifies the client application
+when an editor closes. </p> <p>After the editor is launched, the SendAs Server
+is no longer responsible for that message, the editor takes the responsibility.
+The message editors are applications that are trusted with the required capabilities
+to modify and send messages of that type. They communicate directly with the
+Message Server using the Message Server APIs. </p> <p><b>Querying the message
+type registry</b> </p> <p>The SendAs Server provides several APIs to allow
+client applications to query the message type registry. The following are
+the available queries: </p> <ul>
+<li id="GUID-51165376-26AF-524E-8BA8-B4EFC0C1716D"><p>List the registered
+message types that support a specified set of message capabilities. For example,
+amount of body text allowed, attachments supported and so on. </p> </li>
+<li id="GUID-E875CF63-B35F-581B-A8AE-A04E15A356CE"><p>Obtain the available
+account names for a specified message type </p> </li>
+<li id="GUID-EBE65718-F480-5840-8A89-A47C099021E3"><p>Get the localised human
+readable name for a specified message type that supports SendAs. </p> </li>
+</ul><note> Message types that have no accounts or invalid accounts are not
+listed. Validation is done by SendAs querying whether the UI MTM supports
+validation of the accounts. If the UI MTM does not support validation, all
+accounts are assumed to be valid. If the UI MTM supports the verification,
+then the list of service IDs is passed to <xref href="GUID-1471F3BD-21BF-3600-BEA2-F3B2C6DC4FFB.dita"><apiname>InvokeSyncFunctionL</apiname></xref> using
+the <xref href="GUID-EFB2418B-F3A9-3BF6-90D2-22985845EAAE.dita"><apiname>KMtmUiFunctionValidateService</apiname></xref> command.</note> <p>The
+SendAs Server allows client applications only to query the message type registry
+about message types that support SendAs. Other message types are ignored. </p> </section>
+</conbody><related-links>
+<link href="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita"><linktext>SendAs Overview</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA" xml:lang="en"><title>Indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Indicators are graphical or textual objects on the screen that provide
-information about the status of the system. They cannot be used for input,
-and there is no focus on an indicator: in non-touch UI the user cannot point
-at an indicator to perform actions.</p>
-<p>The various indicator types in use are described in the following sub-sections.</p>
-<section id="GUID-73B4E3E1-8325-420F-83DC-FF57A398E770"><title>Using
-indicators in C++ applications</title><p>The API to use for indicators is
-the Indicators API.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BA8806CC-BE7C-4927-ACF6-DA0CB6E96AAA" xml:lang="en"><title>Indicators</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Indicators are graphical or textual objects on the screen that provide
+information about the status of the system. They cannot be used for input,
+and there is no focus on an indicator: in non-touch UI the user cannot point
+at an indicator to perform actions.</p>
+<section id="GUID-73B4E3E1-8325-420F-83DC-FF57A398E770"><title>Using
+indicators in applications</title><p>The API to use for indicators is the
+Indicators API.</p><p>The various indicator types in use are described in
+the following sub-sections:</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06" xml:lang="en"><title>Operator
-indicator</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In the Idle state, the title pane contains the operator indicator. It is
-either a text or a graphical image.</p>
-<section id="GUID-01F1E510-5413-4A14-912E-EDA18F8684F7"><title>Using operator
-indicator in C++ applications</title><p>The operator indicator is not accessible
-to applications.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BA96913A-38D2-4E57-BA95-52F1642A6D06" xml:lang="en"><title>Operator
+indicator</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In the home screen, the title pane contains the operator indicator. It
+is either a text or a graphical image.</p>
+<section id="GUID-01F1E510-5413-4A14-912E-EDA18F8684F7"><title>Using
+operator indicator in applications</title><p>The operator indicator is not
+accessible to applications.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e40442_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BAABB057-5C48-4991-A283-DAC5D54562C1_d0e46002_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0"><title>Positioning Modules</title><shortdesc>This document describes the classes that give information about Positioning Modules. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This document is an overview of the Positioning Module information that is available to client applications using the Location Acquisition API. A Positioning Module is a software component that allows the Location Server to communicate with the mobile device hardware that obtains position data. </p> <p>See <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref> for an example of how to get Positioning Module information using the Location Acquisition API. </p> </section> <section><title>Types of Positioning Modules</title> <p>In mobile devices there may be several Positioning Modules: </p> <ul><li id="GUID-124DDB54-1792-5414-92BF-2EE320962899"><p>A Positioning Module that use GPS and/or A-GPS. </p> </li> <li id="GUID-BCBDB83F-13CE-5421-AFAC-244A94D036D5"><p>A Positioning Module that uses the network to obtain cell-based positions. </p> </li> <li id="GUID-372D7C0E-B264-545D-866A-4BEBD6083DE0"><p>Positioning Modules that use other technologies, such as WLAN positioning. </p> </li> </ul> </section> <section><title>Positioning Module information classes</title> <p>The classes <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> hold information about the capabilities of Positioning Modules and the quality of position information that they can provide. Figure 1 illustrates these classes. </p> <fig id="GUID-C2A99C08-4F58-56C3-B86B-C032C21EBBF9"><title>
-             Figure 1. TPositionModuleInfo and TPositionQuality classes 
-          </title> <image href="GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e270673_href.png" placement="inline"/></fig> </section> <section><title>TPositionModuleInfo</title> <p> <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> describes a Positioning Module. This description includes: </p> <ul><li id="GUID-25D7701B-2A8A-5738-A33A-EA6EA5A8A9C2"><p>The technology type used by the Positioning Module. </p> <p>A Positioning Module can use positioning technology which is terminal-based (such as GPS), network based, or a combination of the two (such as A-GPS). The method <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-A806BBFD-007C-372A-95F5-A53FCE1BA07F"><apiname>TPositionModuleInfo::TechnologyType()</apiname></xref> returns this information. </p> </li> <li id="GUID-58481363-B2A3-5E25-B78E-1C3F6B13F27B"><p>The capabilities of the Positioning Module. </p> <p>Different Positioning Modules have different capabilities which depend on the Positioning Module technology type. Most Positioning Modules have the capability to provide latitude and longitude information. Some Positioning Modules can also supply altitude information, course information and satellite data. This information is returned by the method <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-1C4AAC64-DAD0-39D7-BD39-3DEE548CEA84"><apiname>TPositionModuleInfo::Capabilities()</apiname></xref> as a bit mask of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-68CCD83C-23D2-3A90-8830-839B8CB7E712"><apiname>TPositionModuleInfo::TCapabilities</apiname></xref>. </p> </li> <li id="GUID-ACD5EC2F-0541-5116-A984-908D0FC3E3D3"><p>A unique identifier returned by <xref href="GUID-CFB2518D-1AF0-3A4F-91E7-D0612F2B3A51.dita#GUID-CFB2518D-1AF0-3A4F-91E7-D0612F2B3A51/GUID-9F461332-6933-36C9-8CF6-649212CC7EB0"><apiname>TPositionModule::ModuleId()</apiname></xref>. </p> <p>This identifier is used to select a specific Positioning Module when a client application wishes to use a specific positioning technology to obtain a location fix. </p> </li> </ul> <p>A <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> object obtains a reference to its <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> object by calling <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-AE23F158-982D-388E-B188-D86E9951856E"><apiname>TPositionModuleInfo::GetPositionQuality()</apiname></xref>. </p> </section> <section><title>TPositionQuality</title> <p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> describes the quality of information that a Positioning Module can provide. The quality describes the accuracy of information, the time to obtain a location fix, the cost of obtaining the fix and power consumption: </p> <ul><li id="GUID-F62CA8E5-841E-5DDF-9080-162BE4FA75A3"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-BF970003-EB72-3692-8540-FA79BE17F5EC"><apiname>TPositionQuality::HorizontalAccuracy()</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-5AA1DF65-BE1D-338F-8083-60647C1BDF95"><apiname>TPositionQuality::VerticalAccuracy()</apiname></xref> return location accuracy information. </p> </li> <li id="GUID-A57721DA-FE53-5936-A21D-C2EDC37DDA4D"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-FC1FF7A2-E341-3EB8-8B7E-36C56FADCF10"><apiname>TPositionQuality::TimeToFirstFix()</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-33E94EAF-F9A3-3C13-997B-23359DC87731"><apiname>TPositionQuality::TimeToNextFix()</apiname></xref> return a typical time to get a location fix as a <xref href="GUID-B7D6F874-1ABD-3AC6-9329-19DC54C12F18.dita"><apiname>TTimeIntervalMicroSeconds</apiname></xref> value. </p> </li> <li id="GUID-57421139-A63F-59DE-819E-1DF760CEC989"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-3C24190E-14FA-362F-8F25-D3324A35F5DC"><apiname>TPositionQuality::CostIndicator()</apiname></xref> returns a cost for using the Positioning Module to get location information. The value returned is an estimate, not a precise cost value and is of type <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-78C084A0-43F8-3040-BD98-70E2E62A5D45"><apiname>TPositionQuality::TCostIndicator</apiname></xref>. The cost estimate helps the location server to make a choice of the Positioning Module to use to get a location fix when a specific Positioning Module is not chosen by a client application. </p> </li> <li id="GUID-CD7D504D-5DEF-5E56-B9A6-A60500390D24"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-A0949CFB-FEAE-30A4-A6B5-B901DDC65850"><apiname>TPositionQuality::PowerConsumption()</apiname></xref> returns an estimate of power consumption for using a Positioning Module. This estimate is of type <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-AD77543D-625A-39CF-A1D5-F5B5636E17F7"><apiname>TPositionQuality::TPowerConsumption</apiname></xref> and as with cost, it helps the Location Server make a choice of Positioning Module to use to get a location fix. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0"><title>Positioning Modules</title><shortdesc>This document describes the classes that give information about Positioning Modules. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This document is an overview of the Positioning Module information that is available to client applications using the Location Acquisition API. A Positioning Module is a software component that allows the Location Server to communicate with the mobile device hardware that obtains position data. </p> <p>See <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref> for an example of how to get Positioning Module information using the Location Acquisition API. </p> </section> <section><title>Types of Positioning Modules</title> <p>In mobile devices there may be several Positioning Modules: </p> <ul><li id="GUID-124DDB54-1792-5414-92BF-2EE320962899"><p>A Positioning Module that use GPS and/or A-GPS. </p> </li> <li id="GUID-BCBDB83F-13CE-5421-AFAC-244A94D036D5"><p>A Positioning Module that uses the network to obtain cell-based positions. </p> </li> <li id="GUID-372D7C0E-B264-545D-866A-4BEBD6083DE0"><p>Positioning Modules that use other technologies, such as WLAN positioning. </p> </li> </ul> </section> <section><title>Positioning Module information classes</title> <p>The classes <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> hold information about the capabilities of Positioning Modules and the quality of position information that they can provide. Figure 1 illustrates these classes. </p> <fig id="GUID-C2A99C08-4F58-56C3-B86B-C032C21EBBF9"><title>
+             Figure 1. TPositionModuleInfo and TPositionQuality classes 
+          </title> <image href="GUID-5C5A695C-A0BB-53C3-A20B-7C7F4DD718DF_d0e266965_href.png" placement="inline"/></fig> </section> <section><title>TPositionModuleInfo</title> <p> <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> describes a Positioning Module. This description includes: </p> <ul><li id="GUID-25D7701B-2A8A-5738-A33A-EA6EA5A8A9C2"><p>The technology type used by the Positioning Module. </p> <p>A Positioning Module can use positioning technology which is terminal-based (such as GPS), network based, or a combination of the two (such as A-GPS). The method <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-A806BBFD-007C-372A-95F5-A53FCE1BA07F"><apiname>TPositionModuleInfo::TechnologyType()</apiname></xref> returns this information. </p> </li> <li id="GUID-58481363-B2A3-5E25-B78E-1C3F6B13F27B"><p>The capabilities of the Positioning Module. </p> <p>Different Positioning Modules have different capabilities which depend on the Positioning Module technology type. Most Positioning Modules have the capability to provide latitude and longitude information. Some Positioning Modules can also supply altitude information, course information and satellite data. This information is returned by the method <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-1C4AAC64-DAD0-39D7-BD39-3DEE548CEA84"><apiname>TPositionModuleInfo::Capabilities()</apiname></xref> as a bit mask of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-68CCD83C-23D2-3A90-8830-839B8CB7E712"><apiname>TPositionModuleInfo::TCapabilities</apiname></xref>. </p> </li> <li id="GUID-ACD5EC2F-0541-5116-A984-908D0FC3E3D3"><p>A unique identifier returned by <xref href="GUID-CFB2518D-1AF0-3A4F-91E7-D0612F2B3A51.dita#GUID-CFB2518D-1AF0-3A4F-91E7-D0612F2B3A51/GUID-9F461332-6933-36C9-8CF6-649212CC7EB0"><apiname>TPositionModule::ModuleId()</apiname></xref>. </p> <p>This identifier is used to select a specific Positioning Module when a client application wishes to use a specific positioning technology to obtain a location fix. </p> </li> </ul> <p>A <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita"><apiname>TPositionModuleInfo</apiname></xref> object obtains a reference to its <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> object by calling <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-AE23F158-982D-388E-B188-D86E9951856E"><apiname>TPositionModuleInfo::GetPositionQuality()</apiname></xref>. </p> </section> <section><title>TPositionQuality</title> <p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita"><apiname>TPositionQuality</apiname></xref> describes the quality of information that a Positioning Module can provide. The quality describes the accuracy of information, the time to obtain a location fix, the cost of obtaining the fix and power consumption: </p> <ul><li id="GUID-F62CA8E5-841E-5DDF-9080-162BE4FA75A3"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-BF970003-EB72-3692-8540-FA79BE17F5EC"><apiname>TPositionQuality::HorizontalAccuracy()</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-5AA1DF65-BE1D-338F-8083-60647C1BDF95"><apiname>TPositionQuality::VerticalAccuracy()</apiname></xref> return location accuracy information. </p> </li> <li id="GUID-A57721DA-FE53-5936-A21D-C2EDC37DDA4D"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-FC1FF7A2-E341-3EB8-8B7E-36C56FADCF10"><apiname>TPositionQuality::TimeToFirstFix()</apiname></xref> and <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-33E94EAF-F9A3-3C13-997B-23359DC87731"><apiname>TPositionQuality::TimeToNextFix()</apiname></xref> return a typical time to get a location fix as a <xref href="GUID-B7D6F874-1ABD-3AC6-9329-19DC54C12F18.dita"><apiname>TTimeIntervalMicroSeconds</apiname></xref> value. </p> </li> <li id="GUID-57421139-A63F-59DE-819E-1DF760CEC989"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-3C24190E-14FA-362F-8F25-D3324A35F5DC"><apiname>TPositionQuality::CostIndicator()</apiname></xref> returns a cost for using the Positioning Module to get location information. The value returned is an estimate, not a precise cost value and is of type <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-78C084A0-43F8-3040-BD98-70E2E62A5D45"><apiname>TPositionQuality::TCostIndicator</apiname></xref>. The cost estimate helps the location server to make a choice of the Positioning Module to use to get a location fix when a specific Positioning Module is not chosen by a client application. </p> </li> <li id="GUID-CD7D504D-5DEF-5E56-B9A6-A60500390D24"><p> <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-A0949CFB-FEAE-30A4-A6B5-B901DDC65850"><apiname>TPositionQuality::PowerConsumption()</apiname></xref> returns an estimate of power consumption for using a Positioning Module. This estimate is of type <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-AD77543D-625A-39CF-A1D5-F5B5636E17F7"><apiname>TPositionQuality::TPowerConsumption</apiname></xref> and as with cost, it helps the Location Server make a choice of Positioning Module to use to get a location fix. </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC" xml:lang="en"><title>S60
-Platform: POP/IMAP Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-44678B4B-8A01-566A-B8D7-8C844F85D08E"><title>Description</title> This
-C++ application shows how to retrieve e-mail from a remote mailbox to an S60
-device using IMAP and POP protocols. The usual e-mail features such as sending,
-editing, and deleting e-mail messages are demonstrated. The updated example
-has been modified to support S60 5th Edition and touch UI. Important classes:
-CMsvSession, CClientMtmRegistry, CMtmUiRegistry, CMsvOperation, CMsvEntrySelection,
-CMsvEntry, CBaseMtm. For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/72f13dbc-a032-4276-be25-48b13c24045e/S60_Platform_POP_IMAP_Example.html" scope="external">POP/IMAP Example</xref> </section>
-<section id="GUID-8ABB4326-8878-5F1E-B134-52DEE44C1DD7"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.zip" scope="external">InternetEmai.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-866D9B76-9D9A-5EED-8220-290ECA6F2607"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
-how to build an application. </p> <p>The InternetEmail example
-builds an executable called <filepath>InternetEmail.exe</filepath> in the
-standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
-CodeWarrior). After launching the executable, depending on the emulator you
-are using, you may need to task away from the app launcher/shell screen to
-view the console. </p> </section>
-<section id="GUID-B1AE9903-AACC-4386-97DA-AE165C2C9B7F"><title>See also</title> <p> <xref href="GUID-5B43ED43-21B4-54C6-8637-76554769E6FE.dita">POP3 MTM Overview</xref>  </p> <p> <xref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita">SMTP MTM Overview</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BB35DBCC-FE56-547F-BADA-9EF854691ADC" xml:lang="en"><title>POP/IMAP
+Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-44678B4B-8A01-566A-B8D7-8C844F85D08E"><title>Description</title> This
+C++ application shows how to retrieve e-mail from a remote mailbox to a device
+using IMAP and POP protocols. The usual e-mail features such as sending, editing,
+and deleting e-mail messages are demonstrated. </section>
+<section id="GUID-8ABB4326-8878-5F1E-B134-52DEE44C1DD7"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.zip" scope="external">InternetEmai.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-866D9B76-9D9A-5EED-8220-290ECA6F2607"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
+how to build an application. </p> <p>The InternetEmail example builds an executable
+called <filepath>InternetEmail.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
+CodeWarrior). After launching the executable, depending on the emulator you
+are using, you may need to task away from the app launcher/shell screen to
+view the console. </p> </section>
+<section id="GUID-B1AE9903-AACC-4386-97DA-AE165C2C9B7F"><title>See also</title> <p> <xref href="GUID-5B43ED43-21B4-54C6-8637-76554769E6FE.dita">POP3 MTM Overview</xref>  </p> <p> <xref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita">SMTP MTM Overview</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e322770_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e328927_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,233 +1,235 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F" xml:lang="en"><title>Touch
-support for UI components</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><draft-comment time="2010-03-04T16:33" translate="no">This table is filtered for SDK,
-PDK and internal publications. To view the conditions, see document map on
-the left hand pane. They have attribute marks</draft-comment></p>
-<table id="GUID-CB1618F8-C658-42A5-BF86-3AA8CDCFF681-GENID-1-8-1-6-1-1-6-2-1-3-1-2-2">
-<tgroup cols="3"><colspec colname="col1" colwidth="0.77*"/><colspec colname="col2" colwidth="1.54*"/><colspec colname="col3" colwidth="0.69*"/>
-<thead>
-<row>
-<entry><p>Component</p></entry>
-<entry><p>Example image</p></entry>
-<entry><p>Touch support</p></entry>
-</row>
-</thead>
-<tbody>
-
-<row>
-<entry><p><xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus pop-up
-menu</xref></p></entry>
-<entry><fig id="GUID-4254AB04-D3D1-483F-A522-2D60E4CE7C5A">
-<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e73929_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>Touch down and hold activates the item.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref></p></entry>
-<entry><fig id="GUID-DE80A49D-06CF-47CD-8102-24598A7FEB59">
-<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e73947_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item (emulates a selection key press).</p></entry>
-</row>
-<row>
-<entry><p>Choice list</p></entry>
-<entry><fig id="GUID-DAC03F73-EF8E-40C7-8AB2-FB8680AD1188">
-<image href="GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e73964_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p></entry>
-<entry><fig id="GUID-F4471B48-0C1A-415B-9086-04801EA245EE">
-<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e73982_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>In the view state (a normal two-row list item), a short tap activates
-it (emulates a selection key press). </p><p>In the edit state, a short tap
-launches a touch input window. Within a item, the functionality is as for
-a text field.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita">Form items</xref></p><ul>
-<li><p>Text field</p></li>
-<li><p>Pop-up field</p></li>
-<li><p>Slider</p></li>
-</ul></entry>
-<entry><fig id="GUID-07C6A080-2E8E-47D7-84FA-F659EC137F73">
-<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e74016_href.png" scale="23" placement="inline"/>
-</fig></entry>
-<entry><p>Same as for equivalent setting items</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Grouped soft
-notification</xref>, <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita">List
-query</xref>, <xref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita">Grid
-query</xref></p></entry>
-<entry><fig id="GUID-FA02490B-8BC3-40EF-BF5A-94AD33E350D4">
-<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e74040_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item (emulates a selection key press).</p></entry>
-</row>
-<row>
-<entry><p>Left/Right arrows in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p></entry>
-<entry><fig id="GUID-13EFAD4E-B334-4B64-85B0-C5EE3294FD97-GENID-1-8-1-6-1-1-6-2-1-3-1-2-2-1-5-7-2-1">
-<image href="GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e74059_href.png" scale="23" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable
-list</xref></p><p><xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
-list</xref></p></entry>
-<entry><fig id="GUID-6FF647BB-07C9-4D69-B5B2-A8A5A6FE014B">
-<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e74080_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item (emulates a selection key press). </p></entry>
-</row>
-<row>
-<entry><p>Menu list (for example,<xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options
-menu</xref> and submenus)</p></entry>
-<entry><fig id="GUID-DCCA2739-145C-4925-B963-161C0D31AB35">
-<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e74100_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item (emulates a selection key press).</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
-list</xref></p></entry>
-<entry><fig id="GUID-1FB5F718-DC2F-4815-8D7D-B3DD6348A34C">
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74118_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap marks/unmarks the item. </p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita">Preview pop-up</xref></p></entry>
-<entry><fig id="GUID-24E4E456-920A-4708-A8F0-C285A30A75A0">
-<image href="GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e74136_href.png" placement="inline"/>
-</fig></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Scroll pane</p><p>For more
-information, see <xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scroll
-pane</xref>.</p></entry>
-<entry><fig id="GUID-3D547C7B-1A1C-4B6C-9354-5302D2D8FD19">
-<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e74156_href.png" placement="inline"/>
-</fig></entry>
-<entry/>
-</row>
-<row>
-<entry><p><b>Setting items</b></p></entry>
-<entry/>
-<entry/>
-</row>
-<row>
-<entry><p>Pop-up setting</p></entry>
-<entry><fig id="GUID-988D2AD0-DC5E-4489-BA91-0A8E70C58523">
-<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e74183_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item (emulates a selection key press).</p></entry>
-</row>
-<row>
-<entry><p>Multi-selection list setting</p></entry>
-<entry><fig id="GUID-E57E97AA-6EAE-4D64-8D3E-B949F01E6FD4">
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e74200_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item.</p></entry>
-</row>
-<row>
-<entry><p>Text setting</p></entry>
-<entry><fig id="GUID-E703DF9E-8FD8-4C43-B908-D26DDAFA8709">
-<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e74217_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>The cursor can be moved with the text field. Dragging selects a
-block of text.</p></entry>
-</row>
-<row>
-<entry><p>Slider setting</p></entry>
-<entry><fig id="GUID-DA4C2543-ED35-4C1B-9260-84F7357065D7">
-<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e74234_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>The slider thumb is draggable.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting list</xref></p></entry>
-<entry><fig id="GUID-E5856FD3-9B0D-402A-977A-38D9DAE96FC0">
-<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e74252_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item(emulates a selection key press).</p></entry>
-</row>
-<row>
-<entry><p>Softkeys (left and right) in the <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
-pane</xref></p><note>There is no middle softkey label in Touch UI</note></entry>
-<entry><fig id="GUID-85747A91-92EA-4724-B1A4-BC31350B33A9">
-<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e74273_href.png" placement="inline"/>
-</fig></entry>
-<entry/>
-</row>
-<row>
-<entry><p>Tabs in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p></entry>
-<entry><fig id="GUID-0736EEED-7EB3-48EC-9625-279DE1F4928A">
-<image href="GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e74290_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the item</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status pane</xref></p> 
-             <ul>
-<li>                   <p><xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">Title
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita">Battery
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal
-indicator pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita">Signal
-pane</xref></p>                 </li>
-</ul></entry>
-<entry><fig id="GUID-5A4D7428-B172-42B8-9674-8EC5C55AC220">
-<image href="GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e74346_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>A short tap activates the functionality if the sub-pane has one
-(the signal and battery panes are inactive).</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita"><b>Slider
-pop-up</b></xref></p><ul>
-<li><p><xref href="CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita">Volume Controller</xref></p></li>
-</ul></entry>
-<entry><fig id="GUID-F0031B23-D7A6-4A95-84E5-2A3882DF125A">
-<image href="GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e74372_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>Draggable slider thumb. Icons can be set as tappable. </p><p>Volume
-slider thumb is draggable, and muting can be done directly by tapping the
-speaker icon.</p></entry>
-</row>
-<row>
-<entry><p><xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal
-indicator pop-up</xref></p></entry>
-<entry><fig id="GUID-01050257-59D4-4224-8756-22F9524B94AB-GENID-1-8-1-6-1-1-6-2-1-3-1-2-2-1-5-23-2-1">
-<image href="GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e74392_href.png" placement="inline"/>
-</fig></entry>
-<entry><p>Tapping the link performs the application-specific functionality.
-Most commonly, opens the application. Tapping the description text without
-the link functionality is inactive.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F" xml:lang="en"><title>Touch support for UI components</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><draft-comment time="2010-03-04T16:33" translate="no">This table is filtered for
+SDK, PDK and internal publications. To view the conditions, see document
+map on the left hand pane. They have attribute marks</draft-comment></p>
+<table id="GUID-CB1618F8-C658-42A5-BF86-3AA8CDCFF681-GENID-1-10-1-6-1-1-6-2-1-3-1-2-2">
+<tgroup cols="3"><colspec colname="col1" colwidth="0.77*"/><colspec colname="col2" colwidth="1.54*"/><colspec colname="col3" colwidth="0.69*"/>
+<thead>
+<row>
+<entry><p>Component</p></entry>
+<entry><p>Example image</p></entry>
+<entry><p>Touch support</p></entry>
+</row>
+</thead>
+<tbody>
+
+
+
+
+<row>
+<entry><p><xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus
+pop-up menu</xref></p></entry>
+<entry><fig id="GUID-4254AB04-D3D1-483F-A522-2D60E4CE7C5A">
+<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e68784_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>Long tap activates the item.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref></p></entry>
+<entry><fig id="GUID-DE80A49D-06CF-47CD-8102-24598A7FEB59">
+<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e68802_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item (emulates a selection key
+press).</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7.dita">Choice
+list</xref></p></entry>
+<entry><fig id="GUID-DAC03F73-EF8E-40C7-8AB2-FB8680AD1188">
+<image href="GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e68820_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p></entry>
+<entry><fig id="GUID-F4471B48-0C1A-415B-9086-04801EA245EE">
+<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e68838_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>In the view state (a normal two-row list item), a short
+tap activates it (emulates a selection key press). </p><p>In the edit
+state, a short tap launches a touch input window. Within a item, the
+functionality is as for a text field.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita">Form
+items</xref></p><ul>
+<li><p>Text field</p></li>
+<li><p>Pop-up field</p></li>
+<li><p>Slider</p></li>
+</ul></entry>
+<entry><fig id="GUID-07C6A080-2E8E-47D7-84FA-F659EC137F73">
+<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e68872_href.png" scale="23" placement="inline">
+</image>
+</fig></entry>
+<entry><p>Same as for equivalent setting items</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Grouped
+soft notification</xref>, <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita">List query</xref>, <xref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita">Grid query</xref></p></entry>
+<entry><fig id="GUID-FA02490B-8BC3-40EF-BF5A-94AD33E350D4">
+<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e68897_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item (emulates a selection key
+press).</p></entry>
+</row>
+<row>
+<entry><p>Left/Right arrows in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi pane</xref></p></entry>
+<entry><fig id="GUID-13EFAD4E-B334-4B64-85B0-C5EE3294FD97">
+<image href="GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e68916_href.png" scale="23" placement="inline">
+</image>
+</fig></entry>
+<entry><p>A short tap activates the item and navigates between the
+views.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable
+list</xref></p><p><xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection list</xref></p></entry>
+<entry><fig id="GUID-6FF647BB-07C9-4D69-B5B2-A8A5A6FE014B">
+<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e68938_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item (emulates a selection key
+press). </p></entry>
+</row>
+<row>
+<entry><p>Menu list (for example,<xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref> and submenus)</p></entry>
+<entry><fig id="GUID-DCCA2739-145C-4925-B963-161C0D31AB35">
+<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e68958_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item (emulates a selection key
+press).</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
+list</xref></p></entry>
+<entry><fig id="GUID-1FB5F718-DC2F-4815-8D7D-B3DD6348A34C">
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e68976_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap marks/unmarks the item. </p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita">Preview
+pop-up</xref></p></entry>
+<entry><fig id="GUID-24E4E456-920A-4708-A8F0-C285A30A75A0">
+<image href="GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e68994_href.png" placement="inline"/>
+</fig></entry>
+<entry/>
+</row>
+<row>
+<entry><p><xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref>.</p></entry>
+<entry><fig id="GUID-3D547C7B-1A1C-4B6C-9354-5302D2D8FD19">
+<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e69011_href.png" placement="inline"/>
+</fig></entry>
+<entry/>
+</row>
+<row>
+<entry><p><b>Setting items</b></p></entry>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry><p>Pop-up setting</p></entry>
+<entry><fig id="GUID-CDC82A53-2D28-48AE-BA57-A912A04746D4">
+<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e69038_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item (emulates a selection key
+press).</p></entry>
+</row>
+<row>
+<entry><p>Multi-selection list setting</p></entry>
+<entry><fig id="GUID-E57E97AA-6EAE-4D64-8D3E-B949F01E6FD4">
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e69055_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita">Text
+setting</xref></p></entry>
+<entry><fig id="GUID-E703DF9E-8FD8-4C43-B908-D26DDAFA8709">
+<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69073_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>The cursor can be moved with the text field. Dragging selects
+a block of text.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita">Slider
+setting</xref></p></entry>
+<entry><fig id="GUID-DA4C2543-ED35-4C1B-9260-84F7357065D7">
+<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e69091_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>The slider thumb is draggable.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting
+list</xref></p></entry>
+<entry><fig id="GUID-E5856FD3-9B0D-402A-977A-38D9DAE96FC0">
+<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e69109_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the item(emulates a selection key
+press).</p></entry>
+</row>
+<row>
+<entry><p>Softkeys (left and right) in the <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control pane</xref></p><note>There is no middle softkey label in Touch UI</note></entry>
+<entry><fig id="GUID-85747A91-92EA-4724-B1A4-BC31350B33A9">
+<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e69130_href.png" placement="inline"/>
+</fig></entry>
+<entry/>
+</row>
+<row>
+<entry><p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
+pane</xref></p>               <ul>
+<li><p><xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">Title
+pane</xref></p></li>
+<li><p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
+pane</xref></p></li>
+<li><p><xref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita">Battery
+pane</xref></p></li>
+<li><p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal
+indicator pane</xref></p></li>
+<li> <p><xref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita">Signal
+pane</xref></p></li>
+<li><p><xref href="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita">Clock
+Pane</xref></p></li>
+</ul></entry>
+<entry><fig id="GUID-5A4D7428-B172-42B8-9674-8EC5C55AC220">
+<image href="GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e69180_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>A short tap activates the functionality if the sub-pane
+has one (the signal and battery panes are inactive).</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita"><b>Slider pop-up</b></xref></p><ul>
+<li><p><xref href="GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita">Volume
+Controller</xref></p></li>
+</ul></entry>
+<entry><fig id="GUID-F0031B23-D7A6-4A95-84E5-2A3882DF125A">
+<image href="GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e69206_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>Draggable slider thumb. Icons can be set as tappable. </p><p>Volume slider thumb is draggable, and muting can be done directly
+by tapping the speaker icon.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal
+indicator pop-up</xref></p></entry>
+<entry><fig id="GUID-01050257-59D4-4224-8756-22F9524B94AB">
+<image href="GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e69226_href.png" placement="inline"/>
+</fig></entry>
+<entry><p>Tapping the link performs the application-specific functionality.
+Most commonly, opens the application. Tapping the description text
+without the link functionality is inactive.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140" xml:lang="en"><title>Clipboard</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform supports the concept of cut, copy and
-paste by providing a clipboard. An application can copy data to the clipboard
-and the same data can then be pasted in by the same application or by any
-other application. </p>
-<p>The clipboard is a resource which is shared by all applications. An application
-must, therefore, hold the clipboard for the minimum time possible. </p>
-<section id="GUID-848D26F4-3875-4BF7-AAEC-476F709B9E6E"><title>Cut, copy and paste</title> <p>The clipboard is encapsulated
-by the <codeph>CClipboard</codeph> class. Applications use this class when
-they place data on, or retrieve data from the clipboard. </p> <p>It is implemented
-as a direct file store. When the data is placed on the clipboard, it is stored
-in the clipboard's store as a stream or a network of streams. Every data type
-placed on the clipboard is identified by a UID. This allows a pasting application
-to identify the required data. </p> <p>It uses a stream dictionary to maintain
-UID and stream ID pairs, and always makes the stream dictionary the root stream
-of the store. </p> <p>The essential features of the <codeph>CClipboard</codeph> class
-are shown in the following diagram: </p> <fig id="GUID-22419444-933C-5431-9717-CD332A17FCF2">
-<title>              Clipboard class structure            </title>
-<image href="GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e182634_href.png" placement="inline"/>
-</fig> <p>Any type of data can be placed on the clipboard. When retrieving
-data, applications check the UID in the stream dictionary to determine whether
-there is any data relevant to them. The following diagram illustrates a typical
-situation: </p> <fig id="GUID-3ABDDCDD-DBC9-5BD5-8448-8249F535FB06">
-<title>              Clipboard store            </title>
-<image href="GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e182645_href.png" placement="inline"/>
-</fig> </section>
-</conbody><related-links>
-<link href="GUID-8C94EE15-82EA-4A95-9044-C3404F95BD51.dita"><linktext>Using Clipboard</linktext>
-</link>
-<link href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita"><linktext>Direct file
-stores</linktext></link>
-<link href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita"><linktext>Dictionary
-stores</linktext></link>
-<link href="GUID-AB705D21-87A3-5F32-A4B9-17B7593DD5C3.dita"><linktext>UID manipulation</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BBBA5C6C-4E8B-513A-8FA1-C7A04C54C140" xml:lang="en"><title>Clipboard</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Symbian platform supports the concept of cut, copy and
+paste by providing a clipboard. An application can copy data to the clipboard
+and the same data can then be pasted in by the same application or by any
+other application. </p>
+<p>The clipboard is a resource which is shared by all applications. An application
+must, therefore, hold the clipboard for the minimum time possible. </p>
+<section id="GUID-848D26F4-3875-4BF7-AAEC-476F709B9E6E"><title>Cut, copy and paste</title> <p>The clipboard is encapsulated
+by the <codeph>CClipboard</codeph> class. Applications use this class when
+they place data on, or retrieve data from the clipboard. </p> <p>It is implemented
+as a direct file store. When the data is placed on the clipboard, it is stored
+in the clipboard's store as a stream or a network of streams. Every data type
+placed on the clipboard is identified by a UID. This allows a pasting application
+to identify the required data. </p> <p>It uses a stream dictionary to maintain
+UID and stream ID pairs, and always makes the stream dictionary the root stream
+of the store. </p> <p>The essential features of the <codeph>CClipboard</codeph> class
+are shown in the following diagram: </p> <fig id="GUID-22419444-933C-5431-9717-CD332A17FCF2">
+<title>              Clipboard class structure            </title>
+<image href="GUID-15591211-58D3-56B6-868F-D34C30ED7A7A_d0e176040_href.png" placement="inline"/>
+</fig> <p>Any type of data can be placed on the clipboard. When retrieving
+data, applications check the UID in the stream dictionary to determine whether
+there is any data relevant to them. The following diagram illustrates a typical
+situation: </p> <fig id="GUID-3ABDDCDD-DBC9-5BD5-8448-8249F535FB06">
+<title>              Clipboard store            </title>
+<image href="GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e176051_href.png" placement="inline"/>
+</fig> </section>
+</conbody><related-links>
+<link href="GUID-8C94EE15-82EA-4A95-9044-C3404F95BD51.dita"><linktext>Using Clipboard</linktext>
+</link>
+<link href="GUID-B683496C-652E-5F48-924E-52D2FF3A78A7.dita"><linktext>Direct file
+stores</linktext></link>
+<link href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita"><linktext>Dictionary
+stores</linktext></link>
+<link href="GUID-AB705D21-87A3-5F32-A4B9-17B7593DD5C3.dita"><linktext>UID manipulation</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1" xml:lang="en"><title>Application
-user interface (AppUi)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Cone provides the <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> class as a generic base
-for application user interface development. Uikon provides a specialization, <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>,
-from which concrete application UIs can be derived. UI variant libraries typically
-derive their own AppUi base class from <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> to standardize
-common UI paradigms. <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is, therefore, normally
-a 'long way' from the surface of the finished application and knows little
-of the concrete controls or functionality that it contains. </p>
-<p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides the following key functionality: </p>
-<ul>
-<li id="GUID-96F849A2-4022-5564-8A28-A8D3615304CF-GENID-1-8-1-3-1-1-7-1-8-1-2-3-1"><p>An event-handling framework </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is
-the at the top of the run-time control hierarchy. It is the point at which
-key-press events are received from the Window Server. Many of the event-handling
-functions are virtual and implemented in the derived AppUi classes. </p> </li>
-</ul>
-<fig id="GUID-9FC56BFC-6DF5-5BF8-BDCD-65579655C558-GENID-1-8-1-3-1-1-7-1-8-1-2-4">
-<image href="GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e16785_href.png" placement="inline"/>
-</fig>
-<ul>
-<li id="GUID-380D267D-F442-5AE3-A361-CACEA4E97A88-GENID-1-8-1-3-1-1-7-1-8-1-2-5-1"><p>View Management </p> <p>The
-View Manager (<xref href="GUID-1444A0B4-8828-3EEB-8DC7-C331648A5201.dita"><apiname>CCoeViewManager</apiname></xref>) is encapsulated by <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> which
-provides a view management API. </p> <p>Views are concrete classes that implement
-the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> interface. Typically they are top-level window-owning
-controls. </p> <p>The significance of views is that they are known of outside
-the application to which they belong. This allows one application to switch,
-or link, directly to a view in another. If the target application is running
-it will be brought to the foreground with the linked view activated. If it
-isn't running it will be started up first. </p> <p>All of the API required
-for implementing, registering, activating, deactivating, linking and observing
-is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> and <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. </p> <p>To
-participate fully in the view architecture an application must register at
-least one view. An application with no views may still be linked to using
-the view architecture. It registers itself with a <codeph>TVwsViewId</codeph> containing
-its application UID. Obviously it will not receive activation and deactivation
-events but will trigger view switch events in other applications' views. </p> <p>An
-application may opt out of the view architecture (see <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-DC2562EE-67C1-3FD3-8A43-FA9F1B02DE07"><apiname>TApaCommand::EApaCommandRunWithoutViews</apiname></xref> and <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-84C2A808-B397-3656-A422-E1E10FE04330"><apiname>TApaCommand::EApaCommandBackgroundAndWithoutViews</apiname></xref>) </p> </li>
-</ul>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-6-1-1-4-1-6-1-8-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-6-1-1-4-1-6-1-8-1" xml:lang="en"><title>Application
-user interface (AppUi)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Cone provides the <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> class as a generic base
-for application user interface development. Uikon provides a specialization, <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>,
-from which concrete application UIs can be derived. UI variant libraries typically
-derive their own AppUi base class from <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> to standardize
-common UI paradigms. <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is, therefore, normally
-a 'long way' from the surface of the finished application and knows little
-of the concrete controls or functionality that it contains. </p>
-<p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides the following key functionality: </p>
-<ul>
-<li id="GUID-96F849A2-4022-5564-8A28-A8D3615304CF-GENID-1-8-1-6-1-1-4-1-6-1-8-1-2-3-1"><p>An event-handling framework </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is
-the at the top of the run-time control hierarchy. It is the point at which
-key-press events are received from the Window Server. Many of the event-handling
-functions are virtual and implemented in the derived AppUi classes. </p> </li>
-</ul>
-<fig id="GUID-9FC56BFC-6DF5-5BF8-BDCD-65579655C558-GENID-1-8-1-6-1-1-4-1-6-1-8-1-2-4">
-<image href="GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e52687_href.png" placement="inline"/>
-</fig>
-<ul>
-<li id="GUID-380D267D-F442-5AE3-A361-CACEA4E97A88-GENID-1-8-1-6-1-1-4-1-6-1-8-1-2-5-1"><p>View Management </p> <p>The
-View Manager (<xref href="GUID-1444A0B4-8828-3EEB-8DC7-C331648A5201.dita"><apiname>CCoeViewManager</apiname></xref>) is encapsulated by <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> which
-provides a view management API. </p> <p>Views are concrete classes that implement
-the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> interface. Typically they are top-level window-owning
-controls. </p> <p>The significance of views is that they are known of outside
-the application to which they belong. This allows one application to switch,
-or link, directly to a view in another. If the target application is running
-it will be brought to the foreground with the linked view activated. If it
-isn't running it will be started up first. </p> <p>All of the API required
-for implementing, registering, activating, deactivating, linking and observing
-is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> and <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. </p> <p>To
-participate fully in the view architecture an application must register at
-least one view. An application with no views may still be linked to using
-the view architecture. It registers itself with a <codeph>TVwsViewId</codeph> containing
-its application UID. Obviously it will not receive activation and deactivation
-events but will trigger view switch events in other applications' views. </p> <p>An
-application may opt out of the view architecture (see <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-DC2562EE-67C1-3FD3-8A43-FA9F1B02DE07"><apiname>TApaCommand::EApaCommandRunWithoutViews</apiname></xref> and <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-84C2A808-B397-3656-A422-E1E10FE04330"><apiname>TApaCommand::EApaCommandBackgroundAndWithoutViews</apiname></xref>) </p> </li>
-</ul>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA" xml:lang="en"><title>Application
+user interface (AppUi)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Cone provides the <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> class as a generic base
+for application user interface development. Uikon provides a specialization, <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>,
+from which concrete application UIs can be derived. UI variant libraries typically
+derive their own AppUi base class from <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> to standardize
+common UI paradigms. <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is, therefore, normally
+a 'long way' from the surface of the finished application and knows little
+of the concrete controls or functionality that it contains. </p>
+<p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides the following key functionality: </p>
+<ul>
+<li id="GUID-96F849A2-4022-5564-8A28-A8D3615304CF"><p>An event-handling framework </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is
+the at the top of the run-time control hierarchy. It is the point at which
+key-press events are received from the Window Server. Many of the event-handling
+functions are virtual and implemented in the derived AppUi classes. </p> </li>
+</ul>
+<fig id="GUID-9FC56BFC-6DF5-5BF8-BDCD-65579655C558">
+<image href="GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e47131_href.png" placement="inline"/>
+</fig>
+<ul>
+<li id="GUID-380D267D-F442-5AE3-A361-CACEA4E97A88"><p>View Management </p> <p>The
+View Manager (<xref href="GUID-1444A0B4-8828-3EEB-8DC7-C331648A5201.dita"><apiname>CCoeViewManager</apiname></xref>) is encapsulated by <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> which
+provides a view management API. </p> <p>Views are concrete classes that implement
+the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> interface. Typically they are top-level window-owning
+controls. </p> <p>The significance of views is that they are known of outside
+the application to which they belong. This allows one application to switch,
+or link, directly to a view in another. If the target application is running
+it will be brought to the foreground with the linked view activated. If it
+isn't running it will be started up first. </p> <p>All of the API required
+for implementing, registering, activating, deactivating, linking and observing
+is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> and <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. </p> <p>To
+participate fully in the view architecture an application must register at
+least one view. An application with no views may still be linked to using
+the view architecture. It registers itself with a <codeph>TVwsViewId</codeph> containing
+its application UID. Obviously it will not receive activation and deactivation
+events but will trigger view switch events in other applications' views. </p> <p>An
+application may opt out of the view architecture (see <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-DC2562EE-67C1-3FD3-8A43-FA9F1B02DE07"><apiname>TApaCommand::EApaCommandRunWithoutViews</apiname></xref> and <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-84C2A808-B397-3656-A422-E1E10FE04330"><apiname>TApaCommand::EApaCommandBackgroundAndWithoutViews</apiname></xref>) </p> </li>
+</ul>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e38273_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BBDC3880-DFC3-42C0-913D-E90AB318E015_d0e43840_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e317327_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e323484_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD" xml:lang="en"><title>Versit:
-Versit Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-315BA525-228E-46A2-82D7-A03258C21771"><title>Description</title> <p>This example code first creates a vCard
-parser using the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> class. Then it creates a
-NOTE property with a string literal as its value, using <xref href="GUID-07A6B09A-823D-3CE7-B621-157EACF60A8D.dita"><apiname>CParserGroupedProperty</apiname></xref> and <xref href="GUID-76E6CCFA-5BAC-34F1-A5B2-FB505A68E784.dita"><apiname>CParserPropertyValue</apiname></xref> classes.
-The property is associated with the vCard parser using the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita#GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7/GUID-43BF4FFE-E22D-32D9-9952-6F7BDF1DA348"><apiname>CParserVCard::AddPropertyL()</apiname></xref> method.
-Finally, the vCard is externalized or exported to a file by calling the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita#GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7/GUID-804FAC27-5985-3986-92E1-87D825F42D49"><apiname>CParserVCard::ExternalizeL()</apiname></xref> method. </p> <p>The
-example also shows how to internalize or import a vCard from a file. A session
-with the file server is established using the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class
-to read the vCard from the file using a file read stream (<xref href="GUID-90A3AE1D-DCB2-3E98-8BE9-C48C15964E7D.dita"><apiname>RFileReadStream</apiname></xref> class). </p> <p>Note
-that the procedure to create a vCal parser using the <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> class
-is similar to that of creating a vCard parser. </p> </section>
-<section id="GUID-FCC37BE4-D45C-45C2-81F4-821A3CAB096C"><title>Download</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-58cce3c4-5d99-4c45-a395-4861992faf0c.zip" scope="external">VersitExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-58cce3c4-5d99-4c45-a395-4861992faf0c.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-2A3E5516-EAD4-4F61-A930-9E919F7D2927"><title>Usage</title> <p>This is a console application and it builds
-an executable called <filepath>VersitExample.exe</filepath> in the standard
-location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
-CodeWarrior). After launching the executable, depending on the emulator you
-are using, you may need to navigate from the app launcher/shell screen to
-view the console. </p> </section>
-<section id="GUID-89FD1B79-98F9-4B7C-88D1-161DFBE3C108"><title>Class Summary</title><p>CParserVCard</p><p>CParserGroupedProperty
- </p><p>CParserPropertyValue</p></section>
-<section id="GUID-6697889A-3C09-427A-A6AD-8038D13ACF49"><title>See also</title> <p> <xref href="GUID-27E38FBB-F417-56C8-BFCF-B32215668902.dita">Using
-Versit</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BC67F13E-4B5A-5078-AE9B-826304BC14FD" xml:lang="en"><title>Versit: Versit Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-315BA525-228E-46A2-82D7-A03258C21771"><title>Description</title> <p>This example code first creates a vCard parser using the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref> class. Then it creates a NOTE property with
+a string literal as its value, using <xref href="GUID-07A6B09A-823D-3CE7-B621-157EACF60A8D.dita"><apiname>CParserGroupedProperty</apiname></xref> and <xref href="GUID-76E6CCFA-5BAC-34F1-A5B2-FB505A68E784.dita"><apiname>CParserPropertyValue</apiname></xref> classes. The property
+is associated with the vCard parser using the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita#GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7/GUID-43BF4FFE-E22D-32D9-9952-6F7BDF1DA348"><apiname>CParserVCard::AddPropertyL()</apiname></xref> method. Finally, the vCard is externalized or exported to a file
+by calling the <xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita#GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7/GUID-804FAC27-5985-3986-92E1-87D825F42D49"><apiname>CParserVCard::ExternalizeL()</apiname></xref> method. </p> <p>The example also shows how to internalize or import a vCard from
+a file. A session with the file server is established using the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class to read the vCard from the file using a file
+read stream (<xref href="GUID-90A3AE1D-DCB2-3E98-8BE9-C48C15964E7D.dita"><apiname>RFileReadStream</apiname></xref> class). </p> <p>Note
+that the procedure to create a vCal parser using the <xref href="GUID-6BEFF6A7-FBD8-306D-98A4-8711E788C702.dita"><apiname>CParserVCal</apiname></xref> class is similar to that of creating a vCard parser. </p> </section>
+<section id="GUID-FCC37BE4-D45C-45C2-81F4-821A3CAB096C"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-58cce3c4-5d99-4c45-a395-4861992faf0c.zip" scope="external">VersitExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-58cce3c4-5d99-4c45-a395-4861992faf0c.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-2A3E5516-EAD4-4F61-A930-9E919F7D2927"><title>Usage</title> <p>This is a console application and it builds an executable called <filepath>VersitExample.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\</filepath> <i>&lt;build_variant&gt;</i> for
+CodeWarrior). After launching the executable, depending on the emulator
+you are using, you may need to navigate from the app launcher/shell
+screen to view the console. </p> </section>
+<section id="GUID-89FD1B79-98F9-4B7C-88D1-161DFBE3C108"><title>Class
+Summary</title><ul>
+<li><p><xref href="GUID-F4BEE3F4-F268-345D-B727-2C1D5E25F3F7.dita"><apiname>CParserVCard</apiname></xref></p></li>
+<li><p><xref href="GUID-07A6B09A-823D-3CE7-B621-157EACF60A8D.dita"><apiname>CParserGroupedProperty</apiname></xref></p></li>
+<li><p><xref href="GUID-76E6CCFA-5BAC-34F1-A5B2-FB505A68E784.dita"><apiname>CParserPropertyValue</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-6697889A-3C09-427A-A6AD-8038D13ACF49"><title>See
+also</title> <p> <xref href="GUID-27E38FBB-F417-56C8-BFCF-B32215668902.dita">Using Versit</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84-master.png has changed
Binary file Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e67137_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BC7AFCC5-0052-479E-99AE-F3F982ED1F84_d0e72805_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7" xml:lang="en"><title>CryptoSPI
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-3DAB2F6F-85F6-4AD9-97D9-90B380F8077D"><title>Introduction</title> <p>CryptoSPI
+(<filepath>cryptospi.dll</filepath>) is a library introduced in Symbian^3
+that manages the selection and loading of cryptographic algorithms. Cryptographic
+algorithms enable data to be encrypted and decrypted. The services provided
+by CryptoSPI are used by the following components: Certman (Certificate Management),
+Software Installation, Secure Communication Protocols (for example, SSL, TLS,
+IPSEC), and WTLS. </p> <p>CryptoSPI also provides a framework that allows
+licensees and partners to implement additional cryptographic algorithms as
+plug-ins to CryptoSPI. </p> <p>The benefits of CryptoSPI are: </p> <ul>
+<li id="GUID-32F02DC3-54AD-5520-AD1B-E85317BB4AFE"><p>Plug-ins can use cryptographic
+acceleration hardware, which can improve performance and reduce power consumption.
+Client applications do not need to know whether an operation is implemented
+in software or hardware. </p> </li>
+<li id="GUID-B2880123-00C8-58E7-8475-9B3D68059BF4"><p>Its architecture allows
+new algorithms or modes of operation to be added by licensees without impacting
+the existing APIs or client code. </p> </li>
+<li id="GUID-AC37BE3F-52BE-56E9-9E34-F25277F51434"><p>The legacy cryptography
+libraries (<filepath>cryptography.dll</filepath>, <filepath>hash.dll</filepath> and <filepath>random.dll</filepath>)
+have been preserved. Legacy client code can continue to use them without needing
+modification or re-compilation. This is achieved via an internal BC layer
+that routes legacy function calls to use the new SPI. </p> </li>
+<li id="GUID-2085DF2B-E97F-5B4F-B01D-84B76ED5FDE7"><p>CryptoSPI adds support
+for non-extractable keys, which may be used to protect sensitive or high-value
+content. </p> </li>
+<li id="GUID-F27670BD-8CAA-5EEA-9A82-6AB2C8741145"><p>CryptoSPI is more secure
+against malicious code than the legacy API, because it does not store any
+data, it has no server component and plugins must be located in ROM, so cannot
+be replaced or eclipsed. </p> </li>
+</ul> </section>
+<section id="GUID-5038F0E4-7FA2-4D9B-8EC0-D6670B4CCFA2"><title>Architectural
+relationships</title> <p>CryptoSPI was introduced in Symbian^3. Before Symbian^3,
+cryptographic algorithms, hash algorithms and random number generation were
+implemented by Symbian in <filepath>cryptography.dll</filepath>, <filepath>hash.dll</filepath> and <filepath>random.dll</filepath>.
+As shown in the CryptoSPI dependencies diagram, Symbian's legacy implementations
+and APIs were retained in Symbian^3, so that existing code does not need to
+be modified or recompiled. </p> <p> <filepath>softwarecrypto.dll</filepath> is
+a plug-in module implemented by Symbian that provides software-based implementations
+of all the cryptographic algorithms that were previously implemented by the
+legacy components (<filepath>cryptography.dll</filepath>, <filepath>hash.dll</filepath> and <filepath>random.dll</filepath>).
+The legacy APIs have been re-implemented internally to use the new framework
+via shim classes. <filepath>hardwarecrypto.dll</filepath> is an arbitrary
+name used in the diagram to represent a licensee-provided plug-in module.
+The plug-ins and <filepath>cryptospi.dll</filepath> have a dependency on <filepath>cryptography.dll</filepath> because
+it implements <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita">big integers</xref>. </p> <fig id="GUID-81B9B94D-07B8-512F-8553-0C98F557A21A">
+<title>              CryptoSPI dependencies</title>
+<image href="GUID-7501D3AC-16FB-58E9-B55C-2598ECCD2FFA_d0e381250_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-BA9876DF-7166-4336-8BAC-D0B9AB051B47"><title>API summary</title> <p>The <codeph>CryptoSpi</codeph> namespace
+is defined for all CryptoSPI classes to differentiate them from the legacy
+APIs with the same names. </p> <p><b>CryptoSPI scope</b> </p> <p>CryptoSPI
+provides equivalent implementations of all algorithms supported by the legacy
+APIs, including hashing and random number generation. The following algorithms
+are implemented by Symbian in <filepath>softwarecrypto.dll</filepath>  </p> <p>This
+section includes summary details of the following: </p> <ul>
+<li id="GUID-B57702C1-A525-5F77-9BB5-D6CCB4E45929"><p>cryptographic algorithms </p> </li>
+<li id="GUID-4148CBE5-77D8-5455-9A84-E6B978EF1017"><p>hash algorithms. </p> </li>
+<li><p>random number generator</p></li>
+</ul> <p><b>Cryptographic algorithms</b> </p><ul>
+<li><p><b>Symmetric ciphers</b> - The following symmetric algorithms are supported: </p><table id="GUID-EE0B2BF7-BD22-5A03-B4DB-A82D713BB52F">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Symmetric algorithm</entry>
+<entry>Type</entry>
+<entry>Specified in:</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>AES (Advanced Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf" scope="external">FIPS-197</xref> </p> </entry>
+</row>
+<row>
+<entry><p>DES (Data Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf" scope="external">FIPS 46-3</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>3DES (Triple Data Encryption Standard) </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf" scope="external">FIPS 46-3</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>RC2-128 </p> </entry>
+<entry><p>Block cipher </p> </entry>
+<entry><p> <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2268.txt" scope="external">RFC
+2268</xref>  </p> </entry>
+</row>
+<row>
+<entry><p>ARC4 ('alleged' RC4) </p> </entry>
+<entry><p>Stream cipher </p> </entry>
+<entry><p>The internet and a posting to sci.crypt in 1994. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <b> Note:</b> Algorithm identifiers for MISTY1, MISTY2 and Kasumi
+(A5/3) block ciphers are in the cryptography library. These identifiers allow
+clients of the cryptography library to request implementations of these algorithms
+from the symmetric cipher factory. Symbian does not provide implementations
+of these algorithms, so the default behavior is for the factory function to
+return an error indicating that there is no implementation available. </p> <p><b>Note</b>:
+Until Symbian^3, the classes implementing the symmetric and asymmetric ciphers
+were provided in <filepath>cryptography.dll</filepath>. </p></li>
+<li><p><b>Asymmetric ciphers </b> - The following asymmetric algorithms are
+supported: </p><table id="GUID-EF226280-A0A6-5CDC-A561-E2CA11D551B0">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Asymmetric algorithm</entry>
+<entry>What is's used for</entry>
+<entry>Specified in:</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>RSA PKCS#1 v1.5 </p> </entry>
+<entry><p>Signing data </p> <p>Key pair generation </p> </entry>
+<entry><p> <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2125" scope="external">PKCS#1</xref> v1.5 </p> </entry>
+</row>
+<row>
+<entry><p>DSA </p> </entry>
+<entry><p>Signing data </p> <p>Key pair generation </p> </entry>
+<entry><p> <xref href="http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf" scope="external">FIPS 186-2</xref> CR1 </p> </entry>
+</row>
+<row>
+<entry><p>Diffie Hellman </p> </entry>
+<entry><p>Key agreement </p> <p>Key pair generation </p> </entry>
+<entry><p> <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2126" scope="external">PKCS#3</xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table></li>
+<li><p><b>Hash algorithms</b> - The following hash algorithms are supported:</p><p><table id="GUID-ABBDB728-AC1E-4C93-949C-401938589A22">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry valign="top"><p>Hash algorithms</p></entry>
+<entry valign="top"><p>Specified in</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>MD2</p></entry>
+<entry><p><xref href="http://www.ietf.org/rfc/rfc1319.txt" scope="external">RFC
+1319</xref></p></entry>
+</row>
+<row>
+<entry><p>MD4</p></entry>
+<entry><p><xref href="http://www.ietf.org/rfc/rfc1320.txt" scope="external">RFC
+1320</xref></p></entry>
+</row>
+<row>
+<entry><p>MD5</p></entry>
+<entry><p><xref href="http://www.ietf.org/rfc/rfc1321.txt" scope="external">RFC
+1321</xref></p></entry>
+</row>
+<row>
+<entry><p>SHA1</p></entry>
+<entry><p><xref href="http://www.itl.nist.gov/fipspubs/fip180-1.htm" scope="external">FIPS
+180-1</xref> and <xref href="http://www.ietf.org/rfc/rfc3174.txt" scope="external">RFC
+3174</xref></p></entry>
+</row>
+<row>
+<entry><p>SHA-224</p></entry>
+<entry><p><xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf " scope="external">FIPS 180-2</xref></p></entry>
+</row>
+<row>
+<entry><p>SHA-256</p></entry>
+<entry><p><xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf " scope="external">FIPS 180-2</xref></p></entry>
+</row>
+<row>
+<entry><p>SHA-384</p></entry>
+<entry><p><xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf " scope="external">FIPS 180-2</xref></p></entry>
+</row>
+<row>
+<entry><p>SHA-512</p></entry>
+<entry><p><xref href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf " scope="external">FIPS 180-2</xref></p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></p></li>
+<li><p><b>Hashes in HMAC mode</b></p><ul>
+<li><p>MD2</p></li>
+<li><p>MD4</p></li>
+<li><p>MD5</p></li>
+<li><p>SHA1</p></li>
+<li><p>SHA-224</p></li>
+<li><p>SHA-256</p></li>
+<li><p>SHA-384</p></li>
+<li><p>SHA-512</p></li>
+</ul><p> HMAC mode is specified in <xref href="http://www.ietf.org/rfc/rfc2104.txt" scope="external">RFC 2104</xref></p></li>
+</ul> <p><b>Instantiating algorithms</b> </p> <p>Clients request cryptographic
+algorithms using static factory functions. </p> <p>For instance, to create
+a hash algorithm, use the generic hash factory function <xref href="GUID-D2231146-4F0D-3F70-8249-C166375D78DC.dita#GUID-D2231146-4F0D-3F70-8249-C166375D78DC/GUID-2C0F6052-76A8-3E45-AF72-F567E1161212"><apiname>CryptoSpi::CHashFactory::CreateHashL()</apiname></xref>,
+specifying the UID of the required algorithm. UIDs are defined in <filepath>cryptospidef.h</filepath>,
+for instance <codeph>KMd2Uid</codeph>, <codeph>KMd5Uid</codeph>, <codeph>KSha1Uid</codeph>.
+CryptoSPI uses a <xref href="GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7.dita#GUID-BCDCB147-865F-58B0-816F-5FBF0E7CCDD7/GUID-15969DD8-8F8A-534D-8445-A5CC95112B63">plug-in
+selector</xref> to search for a plug-in that implements the requested algorithm.
+When a plug-in is found, CryptoSPI loads it if required, and calls the function
+defined at the relevant ordinal in the plug-in DLL, in this case <codeph>ECreateHashOrdinal</codeph>,
+to instantiate a hash object, which is returned to the caller. </p> <p><b>Operation
+and padding modes</b> </p> <p>CryptoSPI has been designed to be simpler and
+more compact than the API that it replaces. Rather than defining separate
+classes to do encryption and decryption, for instance, <codeph>C3DESEncryptor</codeph> and <codeph>C3DESDecryptor</codeph>,
+CryptoSPI implements a single, generic symmetric cipher class, <codeph>CryptoSpi::CSymmetricCipher</codeph>.
+The characteristics of the algorithm, for instance whether it does encryption
+or decryption, the operation mode for block ciphers (<codeph>KOperationModeECB</codeph>, <codeph>KOperationModeCBC</codeph> etc.),
+and the padding mode (<codeph>KPaddingModeSSLv3</codeph>, <codeph>KPaddingModePKCS7</codeph> etc.)
+are all passed by the client to the factory function as UIDs — see <xref href="GUID-5463D9D7-2DE0-3DC1-A415-910636125935.dita#GUID-5463D9D7-2DE0-3DC1-A415-910636125935/GUID-43F80501-62A9-3987-B057-852A1E80E483"><apiname>CryptoSpi::CSymmetricCipherFactory::CreateSymmetricCipherL()</apiname></xref>. </p> <p>The client can switch the algorithm between modes by setting a
+flag, see for example <xref href="GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800.dita#GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800/GUID-121C4AC5-0D1C-33E7-A534-A4A6AA4DF6FD"><apiname>CSymmetricCipherBase::SetCryptoModeL()</apiname></xref>, <xref href="GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800.dita#GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800/GUID-22633D2E-2D3A-3B30-91D2-A5A97C5274BC"><apiname>CSymmetricCipherBase::SetPaddingModeL()</apiname></xref> and <xref href="GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800.dita#GUID-699F30D8-BC52-3F83-9188-8CF86B2B0800/GUID-8D992640-AFCE-3839-AD50-0543AFBE564D"><apiname>CSymmetricCipherBase::SetOperationModeL()</apiname></xref>. </p> <p><ul>
+<li><p><b>Operation modes </b></p><p>Symbian platform provides default software
+implementations of the following operation modes: </p><ul>
+<li id="GUID-A7FBAF70-5202-5958-866F-9BACB7D3E0B3"><p>ECB </p> </li>
+<li id="GUID-3C51459C-C660-5F38-AD61-3F954DFF3ECF"><p>CBC </p> </li>
+<li id="GUID-A718E6C7-59D2-5324-8EE3-764E627D7AF4"><p>CTR (counter) </p> </li>
+</ul><p>They are specified in <xref href="http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf" scope="external">NIST Special Publication 800-38A</xref>. </p></li>
+<li><p><b>Padding modes </b></p><p>Symbian platform supports the following
+padding modes: </p><ul>
+<li id="GUID-8BC577C7-6A7E-5A0F-B8C9-1D7E93CE2E80"><p>SSLv3-style padding </p> </li>
+<li id="GUID-FA955DDF-CC6C-5CB3-878F-EE319C82EC3F"><p>PKCS#7-style padding </p> </li>
+<li id="GUID-93D60F44-17F9-54DD-B947-41D63C943B3F"><p>PKCS#1 v1.5 Encryption-style
+padding </p> </li>
+<li id="GUID-EF45D638-105A-5DDB-AC22-B37CA5868D97"><p>PKCS#1 v1.5 Signature-style
+padding </p> </li>
+</ul></li>
+</ul> </p> <p><b>Asynchronous operation and cancellation</b> </p> <p>The legacy
+cryptography library only supports synchronous operations. By enabling cryptographic
+acceleration hardware, CryptoSPI supports more advanced use cases. In order
+for users to be able to cancel potentially long-running operations such as
+the decryption of high-quality audio/visual content, CryptoSPI supports both
+synchronous and asynchronous interfaces for each cryptographic operation,
+the latter providing a <codeph>Cancel()</codeph> function. </p> <p><b>Note</b>:
+Symbian's software plug-in module (<filepath>softwarecrypto.dll</filepath>)
+only implements the synchronous interfaces. </p> <p><b>Plug-ins</b> </p> <p>A
+CryptoSPI plugin DLL can implement zero, one or more algorithms, and may provide
+alternative implementations of the same algorithm. The set of plugin DLLs
+is defined in a configuration file in ROM (<filepath>Z:\resource\cryptospi\plug-ins.txt</filepath>).
+CryptoSPI will only load plugins stored in ROM (<filepath>Z:\sys\bin\</filepath>),
+so plug-in modules cannot be added by third parties after-market. </p> <p> <filepath>cryptospi.dll</filepath> and
+all plug-ins have <codeph>ALL</codeph> capabilities, which ensures that they
+can be loaded by client applications with any capabilities. </p> <p>The abstract
+base class for all cryptographic plug-ins is <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-8390A214-1E1B-3E8F-A6C9-6030D99F532C"><apiname>CryptoSpi::MPlugin()</apiname></xref>. </p> <p>See
+also: <xref href="GUID-2DA8C6F2-93BD-5D39-9E5A-5FF8B8777CE7.dita">How to create
+a CryptoSPI plugin</xref>. </p> <p><b>UIDs and plug-in characteristics</b> </p> <p>Plug-ins
+are identified by three UIDs: </p> <ul>
+<li id="GUID-3A357C90-9E3B-5620-93E0-CF45ABD57993"><p>the interface supported,
+for instance hash (<codeph>KHashInterfaceUid</codeph>), </p> </li>
+<li id="GUID-E2FAF159-EE47-5DE6-AB03-D133D815C690"><p>the algorithm implemented,
+for instance MD2 (<codeph>KMd2Uid</codeph>), and </p> </li>
+<li id="GUID-4EB6A03E-F3C5-5577-8C68-4761C25361E8"><p>the unique implementation
+ID. </p> </li>
+</ul> <p>These three UIDs are part of the plug-in's <i>characteristics</i>.
+Plug-in characteristics are defined at compile time as constant data. They
+describe the type and capabilities of a plug-in implementation. Some characteristics
+are relevant to all plug-in types, for instance the name and UID of the algorithm
+implemented, the name of the plug-in vendor and whether the plug-in uses hardware
+acceleration. These are termed <i>common characteristics</i> and are defined
+in <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-704C9275-4009-3E20-82F1-FBED2B29976E"><apiname>CryptoSpi::TCommonCharacteristics()</apiname></xref>. Other characteristics
+are specific to a particular interface type, for instance the modes of operation
+for a symmetric cipher. These are defined in an interface-specific characteristics
+class, for instance <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-CC81BF89-1AA4-3779-B7DB-A01C89041965"><apiname>CryptoSpi::TSymmetricCipherCharacteristics()</apiname></xref>,
+that have a <codeph>TCommonCharacteristics</codeph> data member. Plug-in characteristics
+can be retrieved using <xref href="GUID-ED01CE2C-30E8-344F-B3C9-895FA576D33F.dita#GUID-ED01CE2C-30E8-344F-B3C9-895FA576D33F/GUID-8D93089E-1F97-376B-8CC0-08E0E34158F4"><apiname>CCryptoBase::GetCharacteristicsL()</apiname></xref>. </p> <p>Plug-ins
+may optionally also have 'extended' characteristics. These are set at runtime,
+for instance the number of concurrent operations supported by the plug-in,
+and can be retrieved using <xref href="GUID-87D367F5-0FD8-3BEE-AFB0-B48706902C99.dita#GUID-87D367F5-0FD8-3BEE-AFB0-B48706902C99/GUID-720996CA-353D-37A2-A40E-3A18EC8EF4EB"><apiname>CryptoSpi::MPlugin::GetExtendedCharacteristicsL()</apiname></xref>. </p> <p id="GUID-15969DD8-8F8A-534D-8445-A5CC95112B63"><b>Selection rules</b> </p><p>Symbian
+has implemented a plug-in selector, <xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-2E6D755A-2170-3A7A-8F89-1748CE1FEBDE"><apiname>CryptoSpi::CLegacySelector()</apiname></xref>,
+which is used both by the legacy API and by default by CryptoSPI to select
+algorithms implemented in <filepath>softwarecrypto.dll</filepath>. In other
+words, by default, CryptoSPI and the legacy API use the same algorithm implementations.
+The legacy selector works by loading DLLs one by one according to their order
+in the ROM configuration file until a suitable implementation is found. </p> <p>As
+an alternative to using the default selector, clients can specify a rule-based
+selector (<xref href="GUID-48BB2346-6840-3A26-B43C-4DF70A322B17.dita#GUID-48BB2346-6840-3A26-B43C-4DF70A322B17/GUID-DAA57D69-9E75-3333-9227-76D7B0719B7E"><apiname>CryptoSpi::CRuleSelector()</apiname></xref>). This causes CryptoSPI
+to re-generate the list of plug-ins, according to a set of selection rules.
+The API is described in <xref href="GUID-5857377F-B90D-5149-9485-5919C12B8F13.dita">How
+to use a rule-based selector</xref>. </p> <p>In general, it is recommended
+that applications should not specify selection rules unless it is critical
+to the operation of the application. The preferred approach is to use the
+plugin chosen by the default selector, which can be assumed to provide good
+performance for the most common use cases. </p> </section>
+</conbody><related-links>
+<link href="GUID-679390E8-1DE6-55F0-9A0C-60D58956A1E3.dita"><linktext>Hash (message
+digest) algorithms</linktext></link>
+<link href="GUID-0CD273A2-434C-52E0-B840-CCF24B2853B8.dita"><linktext>Generating
+random bytes</linktext></link>
+<link href="GUID-D2D17EF9-FFC6-5FBD-A992-55746A12B625.dita"><linktext>Basic encryption
+and decryption using a symmetric cipher</linktext></link>
+<link href="GUID-38C8F8B0-C259-5B03-A13E-10DBED4071F2.dita"><linktext>Signing and
+verification</linktext></link>
+<link href="GUID-5857377F-B90D-5149-9485-5919C12B8F13.dita"><linktext>How to use
+a rule-based selector</linktext></link>
+</related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e3536_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e4811_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-3-1-1-7-1-7-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-3-1-1-7-1-7-1-7-1"><title>Control observers</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Each control may have an observer, typically another control, to which it can send events. An observer must: </p> <ul><li id="GUID-E3C3E0C7-3C33-59F1-9CF0-DC678D001A51-GENID-1-8-1-3-1-1-7-1-7-1-7-1-2-2-1"><p>implement the mixin class <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and </p> </li> <li id="GUID-1C882B62-4368-5118-A3CF-101A54FA5ED6-GENID-1-8-1-3-1-1-7-1-7-1-7-1-2-2-2"><p>be set as the observer for the control (or controls) it is to observe using <codeph>CCoeControl::SetObserver()</codeph>. </p> </li> </ul> <p>A control may have one observer only, but an observer may observe more than one control. </p> <p>A control sends an event to its observer using <codeph>CCoeControl::ReportEventL()</codeph>. The observer receives the event using <codeph>MCoeControlObserver::HandleControlEventL()</codeph>. Event types, which are <i>not</i> the same as window server events, are defined by the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> enum <codeph>TCoeEvent</codeph>. </p> <p>A typical use of an observer is a <keyword>compound
-        control</keyword> being the observer for its own components. The components send events to their compound control when they receive user input and the compound control manages the interaction between them. For example a control receiving a <codeph>TPointerEvent::EButton1Down</codeph> event sends an <codeph>MCoeControlObserver::EEventRequestFocus</codeph> event to its observer. This allows the observer to move focus between its components and to update their appearance. </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-6-1-1-4-1-6-1-7-1-7-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40-GENID-1-8-1-6-1-1-4-1-6-1-7-1-7-1"><title>Control observers</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Each control may have an observer, typically another control, to which it can send events. An observer must: </p> <ul><li id="GUID-E3C3E0C7-3C33-59F1-9CF0-DC678D001A51-GENID-1-8-1-6-1-1-4-1-6-1-7-1-7-1-2-2-1"><p>implement the mixin class <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and </p> </li> <li id="GUID-1C882B62-4368-5118-A3CF-101A54FA5ED6-GENID-1-8-1-6-1-1-4-1-6-1-7-1-7-1-2-2-2"><p>be set as the observer for the control (or controls) it is to observe using <codeph>CCoeControl::SetObserver()</codeph>. </p> </li> </ul> <p>A control may have one observer only, but an observer may observe more than one control. </p> <p>A control sends an event to its observer using <codeph>CCoeControl::ReportEventL()</codeph>. The observer receives the event using <codeph>MCoeControlObserver::HandleControlEventL()</codeph>. Event types, which are <i>not</i> the same as window server events, are defined by the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> enum <codeph>TCoeEvent</codeph>. </p> <p>A typical use of an observer is a <keyword>compound
-        control</keyword> being the observer for its own components. The components send events to their compound control when they receive user input and the compound control manages the interaction between them. For example a control receiving a <codeph>TPointerEvent::EButton1Down</codeph> event sends an <codeph>MCoeControlObserver::EEventRequestFocus</codeph> event to its observer. This allows the observer to move focus between its components and to update their appearance. </p> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-BD988DF9-45CA-53F3-816F-6DB81185CE40"><title>Control observers</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Each control may have an observer, typically another control, to which it can send events. An observer must: </p> <ul><li id="GUID-E3C3E0C7-3C33-59F1-9CF0-DC678D001A51"><p>implement the mixin class <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> and </p> </li> <li id="GUID-1C882B62-4368-5118-A3CF-101A54FA5ED6"><p>be set as the observer for the control (or controls) it is to observe using <codeph>CCoeControl::SetObserver()</codeph>. </p> </li> </ul> <p>A control may have one observer only, but an observer may observe more than one control. </p> <p>A control sends an event to its observer using <codeph>CCoeControl::ReportEventL()</codeph>. The observer receives the event using <codeph>MCoeControlObserver::HandleControlEventL()</codeph>. Event types, which are <i>not</i> the same as window server events, are defined by the <xref href="GUID-A2BF9AE8-CF42-3D94-8763-66DB11EDDA46.dita"><apiname>MCoeControlObserver</apiname></xref> enum <codeph>TCoeEvent</codeph>. </p> <p>A typical use of an observer is a <keyword>compound
+        control</keyword> being the observer for its own components. The components send events to their compound control when they receive user input and the compound control manages the interaction between them. For example a control receiving a <codeph>TPointerEvent::EButton1Down</codeph> event sends an <codeph>MCoeControlObserver::EEventRequestFocus</codeph> event to its observer. This allows the observer to move focus between its components and to update their appearance. </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA-master.png has changed
Binary file Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e52653_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e58734_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,72 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9" xml:lang="en"><title>Framework
-requirements for GUI applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Applications developed for the Symbian platform can use a number of
-different architecture solutions to meet their requirements. One example of
-a common approach includes the Model - View - Controller (MVC) pattern used
-in GUI-based applications. In this approach, the application is split into
-three separate logical parts. Each part contains a different aspect of the
-entire application, and has a specific role.</p>
-<fig id="GUID-5E3A844B-CCF3-4F2A-82A9-DA7A5B65A572"><title>Logical dependencies in the MVC pattern</title><image href="GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e41998_href.png"/></fig>
-<p>In this approach, the model:</p>
-<ul>
-<li><p>contains and manipulates the data in the application</p>
-</li>
-<li><p>is owned by the controller</p></li>
-<li><p>is typically implemented in its own class or classes</p>
-</li>
-</ul>
-<p>the <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> :</p>
-<ul>
-<li><p>displays the application state known by the model</p>
-</li>
-<li><p>receives user input</p></li>
-<li><p>notifies the controller of relevant events</p></li>
-<li><p>is implemented either with a <parmname>CCoeControl</parmname> derived
-class or a <parmname>CAknView</parmname> derived class.</p><p>For more
-information on these options, see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
-Symbian UI application architecture</xref> and <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
-architecture</xref>.</p></li>
-</ul>
-<p>the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">controller</xref> :</p>
-<ul>
-<li><p>handles application-wide events</p></li>
-<li><p>commands the model, typically based on user input</p>
-</li>
-<li><p>selects the view to be displayed</p></li>
-<li><p>is implemented either with a <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived
-class or a <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref> derived class.</p><p>For
-more information on these options, see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
-Symbian UI application architecture</xref> and <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
-architecture</xref>.</p></li>
-<li><p>requires the implementation of <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived
-classes.</p></li>
-</ul>
-<p>The pattern is implemented with the following classes.</p>
-<fig id="GUID-B4508A88-B688-4BB7-B42A-31BFF41CD4FA"><title>Relationship between the classes that make up a typical Symbian application</title><image href="GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e42116_href.png"/></fig>
-<p>The <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref>-derived class:</p>
-<ul>
-<li><p>provides the application object expected by the application
-framework when the application is launched.</p></li>
-<li><p>defines the application properties.</p></li>
-<li><p>creates the <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class
-if it does not exist yet.</p></li>
-<li><p>if an instance of the application is already running, switches
-to that instance and exits.</p></li>
-</ul>
-<p>The <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived class:</p>
-<ul>
-<li><p>creates the controller class</p></li>
-<li><p>is the base class for application documents</p></li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9" xml:lang="en"><title>Framework
+requirements for GUI applications</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Applications developed for the Symbian platform can use a number of
+different architecture solutions to meet their requirements. One example of
+a common approach includes the Model - View - Controller (MVC) pattern used
+in GUI-based applications. In this approach, the application is split into
+three separate logical parts. Each part contains a different aspect of the
+entire application, and has a specific role.</p>
+<fig id="GUID-5E3A844B-CCF3-4F2A-82A9-DA7A5B65A572"><title>Logical dependencies in the MVC pattern</title><image href="GUID-A5E152B2-F15C-4809-A52A-BCDDBCD93255_d0e36431_href.png"/></fig>
+<p>In this approach, the model:</p>
+<ul>
+<li><p>contains and manipulates the data in the application</p>
+</li>
+<li><p>is owned by the controller</p></li>
+<li><p>is typically implemented in its own class or classes</p>
+</li>
+</ul>
+<p>the <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">view</xref> :</p>
+<ul>
+<li><p>displays the application state known by the model</p>
+</li>
+<li><p>receives user input</p></li>
+<li><p>notifies the controller of relevant events</p></li>
+<li><p>is implemented either with a <parmname>CCoeControl</parmname> derived
+class or a <parmname>CAknView</parmname> derived class.</p><p>For more
+information on these options, see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
+Symbian UI application architecture</xref> and <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
+architecture</xref>.</p></li>
+</ul>
+<p>the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">controller</xref> :</p>
+<ul>
+<li><p>handles application-wide events</p></li>
+<li><p>commands the model, typically based on user input</p>
+</li>
+<li><p>selects the view to be displayed</p></li>
+<li><p>is implemented either with a <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>-derived
+class or a <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref> derived class.</p><p>For
+more information on these options, see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
+Symbian UI application architecture</xref> and <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
+architecture</xref>.</p></li>
+<li><p>requires the implementation of <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref> and <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived
+classes.</p></li>
+</ul>
+<p>The pattern is implemented with the following classes.</p>
+<fig id="GUID-B4508A88-B688-4BB7-B42A-31BFF41CD4FA"><title>Relationship between the classes that make up a typical Symbian application</title><image href="GUID-36BB14BD-34B3-4F5D-A670-707710E57585_d0e36549_href.png"/></fig>
+<p>The <xref href="GUID-4F825D83-47A4-36C9-9A25-943A6D799F84.dita"><apiname>CAknApplication</apiname></xref>-derived class:</p>
+<ul>
+<li><p>provides the application object expected by the application
+framework when the application is launched.</p></li>
+<li><p>defines the application properties.</p></li>
+<li><p>creates the <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref> derived class
+if it does not exist yet.</p></li>
+<li><p>if an instance of the application is already running, switches
+to that instance and exits.</p></li>
+</ul>
+<p>The <xref href="GUID-935C59EE-AD66-33FE-987B-BD97F5147CC1.dita"><apiname>CAknDocument</apiname></xref>-derived class:</p>
+<ul>
+<li><p>creates the controller class</p></li>
+<li><p>is the base class for application documents</p></li>
+</ul>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e321954_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e328111_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-BE2D9AAB-203B-471A-984D-91E917611641.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BE2D9AAB-203B-471A-984D-91E917611641" xml:lang="en"><title>Application
+Level Roaming</title><shortdesc>Application-level roaming (ALR) enables your application to roam
+to use the best available data connection while operational.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-F6E3E184-0235-47B1-950F-AECA2F64D985"><title>Implementation
+Considerations</title>      <p>There is no SDK method for WLAN scanning. Your
+application should use Connection Monitor Server API to request the list of
+available access points or network names (in the case of a WLAN these are
+SSIDs). Connection Monitor Server API also provides notifications about changes
+in the access point availability list. </p><p>Handovers between GPRS and WCDMA
+radio networks take a long time (from 15 seconds to 2 minutes) and sometimes
+fail completely. You should use long application level timers (if any) and
+maintain a responsive UI. Note that handovers between GPRS and WCDMA cannot
+be controlled by the symbian platform (except with fixed settings). The control
+logic is in the cellular modem. </p><p> In ALR, the transfer from one connection
+to another always introduces an IP address change and a break in data connection
+(even with make-before-break when the break is really short). This is because
+the sockets need to be closed and re-opened. This may be problematic for the
+applications that maintain a stateful connection with a server in the network.
+The workaround for a break is to open a new RConnection handle when receiving <xref href="GUID-4D26288F-A8F8-355E-B49C-B313EEC04584.dita"><apiname>PreferredCarrierAvailable()</apiname></xref> and
+establishing the server connection using that (if the application protocol
+allows such operation). When that is done and new sockets are created for
+the new RConnection, the original RConnection can be closed. There is no workaround
+for the IP address change.</p>     </section>
+<section id="GUID-011DBF55-366F-4AC7-824A-2B485658E1C8"><title>Process Flow</title><fig id="GUID-79B01634-BBA5-40DD-BBB5-DE4D53139BC6">
+<title>Application-level roaming</title>
+<image href="GUID-8305F179-8F26-4B38-8523-066D1B0B7A62_d0e212256_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-A2C485F5-0BD5-4D0E-8F95-D9963C4C819F"><title>Additional
+information</title><p>The following APIs are used to implement application-level
+roaming: </p><ol>
+<li id="GUID-B1B6B16A-A790-4B04-BC6E-91D64E5C4E06"><p> Sockets Server Client
+API (ESOCK) is the API for all IP-based socket communication. It remains unchanged,
+but applications need to be ready to close and open sockets at certain times
+to roam for a better connection.</p></li>
+<li id="GUID-F4D709CC-9F14-42B4-BF32-8EB0C787EBF3"><p>Connection Management
+API (RConnection) is a collection of Symbian's connection management-related
+functionalities provided by ESOCK. It contains several extensions and one
+of them is the mobility extension. The term "mobility API" actually refers
+to the mobility extensions that are part of Connection Manager API and defined
+in header <filepath>cs_mobility_apiext.h</filepath>. With the so-called mobility
+API the client application can register for mobility events, receive information
+about preferred connections, indicate whether to switch to a new connection
+or ignore it. In short, it enables ALR for the applications.</p></li>
+</ol><p> The mobility extension functionality of the Connection
+Manager API is provided by classes<xref href="GUID-9A3979A9-F882-3053-B5B1-E0E125774271.dita"><apiname> MMobilityProtocolResp </apiname></xref>and <xref href="GUID-6CA83252-4D0C-3B72-83ED-B5152B666C83.dita"><apiname>CActiveCommsMobilityApiExt</apiname></xref>. </p><p>Methods
+that must be implemented by client (class MMobilityProtocolResp): <ol>
+<li id="GUID-F6747252-65DF-4424-BA7E-DA5D11D2E9BE"><p><b>virtual void PreferredCarrierAvailable(TAccessPointInfo
+aOldAP, TAccessPointInfo aNewAP, TBool aIsUpgrade, TBool aIsSeamless )</b>;
+This method is called by the middleware to notify a client about a new preferred
+connection.</p></li>
+<li id="GUID-9C0DD06E-9949-4A7B-ABF9-CEF10F541274"><p><b>virtual void NewCarrierActive(TAccessPointInfo
+aNewAP, TBool aIsSeamless );</b> This method is called by the middleware to
+notify a client that a preferred connection has been activated.</p></li>
+<li id="GUID-54247E78-0A68-4A2A-B94A-064BE9D61270"><p><b>virtual void Error(TInt
+aError);</b> This method is called by middleware to notify that there are
+no suitable connections available.</p></li>
+</ol></p><p>Methods provided by ESock (class CActiveCommsMobilityApiExt): <ol>
+<li id="GUID-CFEC6776-0206-4205-9269-7AD2A47CDF23"><p><b>void MigrateToPreferredCarrier();</b> Client
+can indicate that it wants to start using a new preferred connection as a
+response to PreferredCarrierAvailable().</p></li>
+<li id="GUID-D5181565-96D3-4025-8A7E-B92EE4C699ED"><p><b>void IgnorePreferredCarrier();</b> Client
+can indicate that it doesn’t want to use a new preferred connection as a response
+to PreferredCarrierAvailable().</p></li>
+<li id="GUID-4C9658D0-D0F3-40A6-9466-D2CBB15D2663"><p><b>void NewCarrierAccepted();</b> Client
+indicates that a new connection is working for it.</p></li>
+<li id="GUID-33856021-74DA-4501-9DCB-8B28BD281282"><p><b>void NewCarrierRejected();</b> Client
+indicates that a new connection is not working and it wants to use another
+connection. In this case it receives <xref href="GUID-4D26288F-A8F8-355E-B49C-B313EEC04584.dita"><apiname>PreferredCarrierAvailable()</apiname></xref> again
+with probably the original connection as a preferred one. The non-working
+access point is blacklisted for that client and not suggested again.</p></li>
+</ol></p></section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e308465_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e314859_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BE66CF87-E750-40BE-A5EB-18A43E927257-master.png has changed
Binary file Symbian3/SDK/Source/GUID-BE66CF87-E750-40BE-A5EB-18A43E927257_d0e63571_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BE871265-147B-45F3-8772-A4E091223EDB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BE871265-147B-45F3-8772-A4E091223EDB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,112 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BE871265-147B-45F3-8772-A4E091223EDB" xml:lang="en"><title>Constructing
-views in traditional architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The call on the first phase constructor method of the view occurs in <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>. The
-view serves as the top-level window under the UI controller.</p>
-<p>The methods you need to implement for your <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
-view are as follows:</p>
-<ul>
-<li><p>C++ default constructor, which cannot contain code that leaves.
-A common implementation is:</p>
-<itemgroup>
-<codeblock id="GUID-83E49AC1-37CD-43B0-AFEA-321BF8F62A92" xml:space="preserve">
-CMyAppView::CMyAppView()
-    {
-    // No implementation required
-    }</codeblock>
-<p><draft-comment time="2007-03-06T13:00">Comment to reviewers: We will
-link these Cleanup stack and new (ELeave) methods to the Symbian Developer
-Library API Reference.</draft-comment></p>
-</itemgroup>
-</li>
-<li><p>two-phase constructor, a common implementation is:</p>
-<itemgroup>
-<codeblock id="GUID-D1B0073F-A8C6-4F6B-8F31-9F9DA4F164D9" xml:space="preserve">CMyAppView* CMyAppView::NewL( const TRect&amp; aRect )
-    {
-    CMyAppView* self = CMyAppView::NewLC( aRect );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-CMyAppView* CMyAppView::NewLC( const TRect&amp; aRect )
-    {
-    CMyAppView* self = new ( ELeave ) CMyAppView;
-    CleanupStack::PushL( self );
-    self-&gt;ConstructL( aRect );
-    return self;
-    }
-</codeblock>
-<p>The declarations for <parmname>CMyAppView::NewL()</parmname> and <parmname>CMyAppView::NewLC</parmname> in
-the class header file needs to be public to support the construction method
-required. <parmname>CMyAppView</parmname> is the default constructor for the <parmname>CMyAppView</parmname> class
-and it is private.</p>
-<p>In this approach, <parmname>CMyAppView::NewL()</parmname> is called
-from the UI controller. It creates a view object by calling <parmname>CMyAppView::NewLC()</parmname>. <parmname>CMyAppView::NewLC()</parmname> calls
-new (<parmname>ELeave</parmname>) on the C++ default constructor <parmname>CMyAppView</parmname> to
-create the object (and leave if it cannot), <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPushL%28CBase%20%2a%29" format="application/java-archive">pushes</xref> a pointer to the clean-up stack in case the second phase construction method
-leaves, and then calls the second phase construction method of the object.
-When it returns to <parmname>CMyAppView::NewL()</parmname>, the pointer pushed
-to the cleanup stack is <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPop%28%29" format="application/java-archive">removed</xref>.</p>
-</itemgroup>
-</li>
-<li><p>Symbian 2nd phase constructor with code that might leave.
-A common implementation is:</p>
-<itemgroup>
-<codeblock id="GUID-34901188-B037-4862-9DA4-80D9EDBDEC5F" xml:space="preserve">void CMyAppView::ConstructL( const TRect&amp; aRect )
-    {
-    // Create a window for this application view
-    CreateWindowL();
-
-     //add construction for other controls if required
-
-	   // Set the windows size
-    SetRect( aRect );
-
-    // Activate the window, which makes it ready to be drawn
-    ActivateL();
-    }</codeblock>
-<p><parmname>CMyAppView::ConstructL()</parmname> is a private class providing
-the second phase construction that accepts the rectangle the view is drawn
-to.</p>
-<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-03CC715F-11D8-39B1-875D-F4589BC9681E"><apiname>CCoeControl::CreateWindowL()</apiname></xref> creates a window for
-the control. Note that this window is a child of the UI controller. This method
-makes the control a <xref href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">window-owning
-control</xref>. While the use of window-owning controls is generally discouraged
-to prevent the taxing of run-time resources, this is the top-level window
-for the UI controller.</p>
-<p>This is a simple control that does not contain other controls; other
-controls could be added to the control between <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-03CC715F-11D8-39B1-875D-F4589BC9681E"><apiname>CCoeControl::CreateWindowL()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref>.
-For more information, see <xref href="GUID-97486385-88F7-4AF1-B880-D9A8AA4D7094.dita">Compound
-controls in traditional architecture</xref>.</p>
-<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref> sets the window size
-according to the requirements of the mobile device. The top-level control
-rectangle is set to the area that the framework provides for the application.
-Calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref> calls the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9D6A2C52-DCE0-3490-BDA1-323406B7FBCF"><apiname>CCoeControl::SizeChanged()</apiname></xref> method,
-where the control should set the position and size for any child controls
-and thus adjust the control layout to the UI.</p>
-<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-C79D0B6F-C2D7-3F22-A62B-88762092E869"><apiname>CCoeControl::ActivateL()</apiname></xref> sets the control as ready
-to be drawn.</p>
-</itemgroup>
-</li>
-</ul>
-<p>If required for your application, you may need to implement other methods
-for your control. For top-level windows, you would need to implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9D6A2C52-DCE0-3490-BDA1-323406B7FBCF"><apiname>CCoeControl::SizeChanged()</apiname></xref> 
-to respond to changes to the size and position of the contents of this control.
-This is called by the platform when a change occurs. A typical implementation
-for a compound control is:</p>
-<codeblock id="GUID-A100010E-DF65-4EB7-AC5D-707604805976" xml:space="preserve">void CMyAppView::SizeChanged()
-    {
-    // Control resize code
-    iControl-&gt;SetExtent( const TPoint &amp;aPosition, const TSize &amp;aSize);
-    }</codeblock>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BE871265-147B-45F3-8772-A4E091223EDB" xml:lang="en"><title>Constructing
+views in traditional architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The call on the first phase constructor method of the view occurs in <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref>. The
+view serves as the top-level window under the UI controller.</p>
+<p>The methods you need to implement for your <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
+view are as follows:</p>
+<ul>
+<li><p>C++ default constructor, which cannot contain code that leaves.
+A common implementation is:</p>
+<itemgroup>
+<codeblock id="GUID-83E49AC1-37CD-43B0-AFEA-321BF8F62A92" xml:space="preserve">
+CMyAppView::CMyAppView()
+    {
+    // No implementation required
+    }</codeblock>
+<p><draft-comment time="2007-03-06T13:00">Comment to reviewers: We will
+link these Cleanup stack and new (ELeave) methods to the Symbian Developer
+Library API Reference.</draft-comment></p>
+</itemgroup>
+</li>
+<li><p>two-phase constructor, a common implementation is:</p>
+<itemgroup>
+<codeblock id="GUID-D1B0073F-A8C6-4F6B-8F31-9F9DA4F164D9" xml:space="preserve">static CMyAppView* CMyAppView::NewL( const TRect&amp; aRect )
+    {
+    CMyAppView* self = CMyAppView::NewLC( aRect );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+static CMyAppView* CMyAppView::NewLC( const TRect&amp; aRect )
+    {
+    CMyAppView* self = new ( ELeave ) CMyAppView;
+    CleanupStack::PushL( self );
+    self-&gt;ConstructL( aRect );
+    return self;
+    }
+</codeblock>
+<p>The declarations for <parmname>CMyAppView::NewL()</parmname> and <parmname>CMyAppView::NewLC</parmname> in
+the class header file needs to be public to support the construction method
+required. <parmname>CMyAppView</parmname> is the default constructor for the <parmname>CMyAppView</parmname> class
+and it is private.</p>
+<p>In this approach, <parmname>CMyAppView::NewL()</parmname> is called
+from the UI controller. It creates a view object by calling <parmname>CMyAppView::NewLC()</parmname>. <parmname>CMyAppView::NewLC()</parmname> calls
+new (<parmname>ELeave</parmname>) on the C++ default constructor <parmname>CMyAppView</parmname> to
+create the object (and leave if it cannot), <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPushL%28CBase%20%2a%29" format="application/java-archive">pushes</xref> a pointer to the clean-up stack in case the second phase construction method
+leaves, and then calls the second phase construction method of the object.
+When it returns to <parmname>CMyAppView::NewL()</parmname>, the pointer pushed
+to the cleanup stack is <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPop%28%29" format="application/java-archive">removed</xref>.</p>
+</itemgroup>
+</li>
+<li><p>Symbian 2nd phase constructor with code that might leave.
+A common implementation is:</p>
+<itemgroup>
+<codeblock id="GUID-34901188-B037-4862-9DA4-80D9EDBDEC5F" xml:space="preserve">void CMyAppView::ConstructL( const TRect&amp; aRect )
+    {
+    // Create a window for this application view
+    CreateWindowL();
+
+     //add construction for other controls if required
+
+	   // Set the windows size
+    SetRect( aRect );
+
+    // Activate the window, which makes it ready to be drawn
+    ActivateL();
+    }</codeblock>
+<p><parmname>CMyAppView::ConstructL()</parmname> is a private class providing
+the second phase construction that accepts the rectangle the view is drawn
+to.</p>
+<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-03CC715F-11D8-39B1-875D-F4589BC9681E"><apiname>CCoeControl::CreateWindowL()</apiname></xref> creates a window for
+the control. Note that this window is a child of the UI controller. This method
+makes the control a <xref href="GUID-352850A9-227F-45DB-8DCD-C6268954B4ED.dita">window-owning
+control</xref>. While the use of window-owning controls is generally discouraged
+to prevent the taxing of run-time resources, this is the top-level window
+for the UI controller.</p>
+<p>This is a simple control that does not contain other controls; other
+controls could be added to the control between <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-03CC715F-11D8-39B1-875D-F4589BC9681E"><apiname>CCoeControl::CreateWindowL()</apiname></xref> and <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref>.
+For more information, see <xref href="GUID-97486385-88F7-4AF1-B880-D9A8AA4D7094.dita">Compound
+controls in traditional architecture</xref>.</p>
+<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref> sets the window size
+according to the requirements of the mobile device. The top-level control
+rectangle is set to the area that the framework provides for the application.
+Calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref> calls the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9D6A2C52-DCE0-3490-BDA1-323406B7FBCF"><apiname>CCoeControl::SizeChanged()</apiname></xref> method,
+where the control should set the position and size for any child controls
+and thus adjust the control layout to the UI.</p>
+<p><xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-C79D0B6F-C2D7-3F22-A62B-88762092E869"><apiname>CCoeControl::ActivateL()</apiname></xref> sets the control as ready
+to be drawn.</p>
+</itemgroup>
+</li>
+</ul>
+<p>If required for your application, you may need to implement other methods
+for your control. For top-level windows, you would need to implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9D6A2C52-DCE0-3490-BDA1-323406B7FBCF"><apiname>CCoeControl::SizeChanged()</apiname></xref> 
+to respond to changes to the size and position of the contents of this control.
+This is called by the platform when a change occurs. A typical implementation
+for a compound control is:</p>
+<codeblock id="GUID-A100010E-DF65-4EB7-AC5D-707604805976" xml:space="preserve">void CMyAppView::SizeChanged()
+    {
+    // Control resize code
+    iControl-&gt;SetExtent( const TPoint &amp;aPosition, const TSize &amp;aSize);
+    }</codeblock>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e322969_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-BEA8B4D3-992B-591E-8E2A-BCAC847E0B6E_d0e329126_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e233010_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BEDF6765-4BF4-532F-A2C7-F052FE8A9CA2_d0e236747_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BF040EF4-E34C-40A3-AD15-F49426F56AA2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BF040EF4-E34C-40A3-AD15-F49426F56AA2" xml:lang="en"><title>Antiword
-Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Antiword is an Open C console-based application.  ANTIWORD can be used
-for the following purposes:  </p>
-<p> converts a MS-word document (i.e. .doc) file in to a plain text(i.e. .txt)
-file. </p>
-<p>converts a MS-word document (i.e. .doc) file in to a Adobe acrobat(i.e.
-.pdf) file. </p>
-<p>converts MS-word document (i.e. .doc) file in to a post-script (i.e. .ps)
-file. </p>
-<p>converts a MS-word document (i.e. .doc) file in to a xml (i.e. .xml) file. </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-10-1-2-6"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-72f72df3-653c-414c-a357-7613ad8bc169.zip" scope="external"> antiword.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-72f72df3-653c-414c-a357-7613ad8bc169.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-10-1-2-7"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example. </p> <p><b>Capabilities</b> </p> The following
-program capability is defined in the <filepath>antiword.mmp</filepath> file: <codeph>CAPABILITY
-None</codeph><p><b>Implementation details of EXE</b> </p>This application
-uses main() as the entry point for the application. This is simple console
-based application.  Antiword is C application that is ported on the Open C
-which demonstrates the changes made in the application in order to work on
-Open C.  All changes made to the open source code is under SYMBIAN macro.
- Some of the environment variables are set explicitly using the Open C's setenv()
-API.  The fillArg() subroutine converts the given input command string to
-Linux's argv() format. Output of the conversion will be written to destination
-file i.e last commandline argument where as the original application expects
-the users to use the redirection operators for dumping the output to a target
-file. Some status messages will be prompted to the user in case of wrong input
-commands. The commandline help will be printed on the stdout using the original
-help text.  The input data files (font and mapping files for conversion) are
-added in the /data/resources directory and this directory will be exported
-to the  private folder of the Antiword application's, so that /private/A0001323/resources/
-will be used as the ANTIWORD_HOME directory in the application. The application
-can be launched by clicking its icon in the emulator as well as in the device.<p><b>Limitations</b></p><p>Antiword
-is not able to convert the embedded image or any other embedded multimedia
-objects from the document file. It converts only the text. Some of the related
-files, which supports the embedded images are commented in the mmp file as
-these files depend on the open source's sprite library.</p></section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-10-1-2-8"><title>Building and
-Using</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
-build process</xref> describes how to build this example application. </p> To
-build the Antiword application, go to the Antiword\group directory and build
-the application.  The definition for the whole application can be found in
-the bld.inf file in the group subdirectory of the applications main directory. </section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e214905_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BF155E49-35AF-5BC1-80C5-8D6C68C464F8_d0e218642_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E" xml:lang="en"><title>Architecture</title><shortdesc>This topic describes the Network Interface Manager (NifMan) architecture. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-43AC7095-C84C-401F-A1C9-084A56A47ED5"><title>NifMan Architecture</title> <p>The following diagram outlines
-the main components in the NifMan architecture: </p> <fig id="GUID-71FB9DE6-1171-5486-9480-8A8A6A8F0B29">
-<image href="GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e116318_href.png" placement="inline"/>
-</fig> <p>As shown, the NIFMAN configuration daemon architecture consists
-of two parts: </p> <ul>
-<li id="GUID-E2F1FCB0-9A25-52ED-BD80-4C91E271F099"><p>An ECom plug-in for
-NIFMAN </p> <p>The ECom plug-in manages the interface between NIFMAN and the
-configuration daemon. The ECom plug-in is referred to as the configuration
-daemon manager. </p> </li>
-<li id="GUID-335CBA17-63CF-5309-AA5B-009A3CC6198C"><p>The configuration daemon </p> <p>The
-configuration daemon is a Symbian platform server that runs in
-its own process. It does not run in the NIFMAN thread. Licensees can write
-new configuration daemons. </p> </li>
-</ul> <p>The framework for configuration daemons support the following: </p> <ul>
-<li id="GUID-5B004464-1411-5CDC-8504-0AEE9AFFCA82"><p>Deregistration events </p> <p>Deregistration
-events notify the daemon when the interface is shutting down. For Mobile IP,
-the phone can deregister its foreign agent address with the home agent. </p> <p>Alternatively,
-the daemon can instruct NIFMAN to maintain the logical state of a user session
-and release the resources associated with the wireless connection. This is
-called fast dormant mode. </p> </li>
-<li id="GUID-9D5648A1-0683-5B27-90CD-3C0836CAF09E"><p>Progress notifications </p> <p>Mobile
-IP reports progress notifications when it registers and deregisters with the
-foreign agent. The notifications are passed by NIFMAN to the sockets client
-using <codeph>RConnection::ProgressNotification()</codeph>, for the current
-interface. </p> </li>
-</ul> <p>The configuration daemon manager handles one outstanding daemon request
-at a time. If a request is already being processed, NIFMAN queues a deregistration
-request which is processed when the previous request is complete. Other types
-of request are not queued. This permits the handling of the following scenarios: </p> <ul>
-<li id="GUID-CDD25CFF-B4B1-5472-91C8-45EC27D6AF89"><p>Deregistration notification
-during registration. </p> </li>
-<li id="GUID-24E5A80D-50A3-5BAA-9B78-07C0872491E5"><p>Deregistration notification
-during an Ioctl request. </p> </li>
-<li id="GUID-8859117E-F118-5C21-B0F2-AB327A3C3C72"><p>Deregistration notification
-when the daemon is being requested to enter fast dormant mode. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"><linktext>What is Network
-Interface Management                 (NifMan)?</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E" xml:lang="en"><title>Architecture</title><shortdesc>This topic describes the Network Interface Manager (NifMan) architecture. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-43AC7095-C84C-401F-A1C9-084A56A47ED5"><title>NifMan Architecture</title> <p>The following diagram outlines
+the main components in the NifMan architecture: </p> <fig id="GUID-71FB9DE6-1171-5486-9480-8A8A6A8F0B29">
+<image href="GUID-15F209D1-6BC6-5207-B443-25306C232CFC_d0e109780_href.png" placement="inline"/>
+</fig> <p>As shown, the NIFMAN configuration daemon architecture consists
+of two parts: </p> <ul>
+<li id="GUID-E2F1FCB0-9A25-52ED-BD80-4C91E271F099"><p>An ECom plug-in for
+NIFMAN </p> <p>The ECom plug-in manages the interface between NIFMAN and the
+configuration daemon. The ECom plug-in is referred to as the configuration
+daemon manager. </p> </li>
+<li id="GUID-335CBA17-63CF-5309-AA5B-009A3CC6198C"><p>The configuration daemon </p> <p>The
+configuration daemon is a Symbian platform server that runs in
+its own process. It does not run in the NIFMAN thread. Licensees can write
+new configuration daemons. </p> </li>
+</ul> <p>The framework for configuration daemons support the following: </p> <ul>
+<li id="GUID-5B004464-1411-5CDC-8504-0AEE9AFFCA82"><p>Deregistration events </p> <p>Deregistration
+events notify the daemon when the interface is shutting down. For Mobile IP,
+the phone can deregister its foreign agent address with the home agent. </p> <p>Alternatively,
+the daemon can instruct NIFMAN to maintain the logical state of a user session
+and release the resources associated with the wireless connection. This is
+called fast dormant mode. </p> </li>
+<li id="GUID-9D5648A1-0683-5B27-90CD-3C0836CAF09E"><p>Progress notifications </p> <p>Mobile
+IP reports progress notifications when it registers and deregisters with the
+foreign agent. The notifications are passed by NIFMAN to the sockets client
+using <codeph>RConnection::ProgressNotification()</codeph>, for the current
+interface. </p> </li>
+</ul> <p>The configuration daemon manager handles one outstanding daemon request
+at a time. If a request is already being processed, NIFMAN queues a deregistration
+request which is processed when the previous request is complete. Other types
+of request are not queued. This permits the handling of the following scenarios: </p> <ul>
+<li id="GUID-CDD25CFF-B4B1-5472-91C8-45EC27D6AF89"><p>Deregistration notification
+during registration. </p> </li>
+<li id="GUID-24E5A80D-50A3-5BAA-9B78-07C0872491E5"><p>Deregistration notification
+during an Ioctl request. </p> </li>
+<li id="GUID-8859117E-F118-5C21-B0F2-AB327A3C3C72"><p>Deregistration notification
+when the daemon is being requested to enter fast dormant mode. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"><linktext>What is Network
+Interface Management                 (NifMan)?</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2580_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BF626AFA-F8E5-4049-BC3E-E947AD2D39A1_d0e2684_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e129372_href.png has changed
Binary file Symbian3/SDK/Source/GUID-BF822A89-F932-400F-82FC-FB998B768EBF_d0e135910_href.png has changed
--- a/Symbian3/SDK/Source/GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11"><title> Controlling Still-image Capture</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document explains how to control the still-image capture process. </p> <section><title>Purpose</title> <p>This document explains how to control the overall image capture process and to capture a still image based on given image parameters. </p> <p><b>Introduction</b> </p> <p>The Image Capture API allows the client to capture the still image and control the capture operation. This class lets you issue still image capture calls even if the previous capture calls are pending. To do this, you need to create another instance of this class. If you use the same instance, the handle to retrieve the previously captured still image will be lost. </p> </section> <section><title>Using Image Capture </title> <p>The following tasks are covered during image capture implementation: </p> <ol id="GUID-A6F12244-55D3-54AD-B6BD-0889AA4C8C43"><li id="GUID-A7F18293-C1D3-57C4-B17A-447624D853FA"><p>Provide implementation of <xref href="GUID-146FDB43-52C2-3951-8231-57B40F06A355.dita#GUID-146FDB43-52C2-3951-8231-57B40F06A355/GUID-419D6154-D265-39E7-8EEB-DB547CF05C16"><apiname>McameraPreImageCaptureControl::PrepareImageCapture</apiname></xref>. </p> </li> <li id="GUID-674D1725-EA0B-596C-BE58-86ABAF8A8A9C"><p>Use <xref href="GUID-CC3E371F-3037-3F7C-ACFF-DCC24972F0B7.dita#GUID-CC3E371F-3037-3F7C-ACFF-DCC24972F0B7/GUID-63F08B87-84BB-31DB-8215-6ECB6F2792DE"><apiname>MpreImageCaptureControlObserver::PrepareImageComplete</apiname></xref> call-back to pass this to the client to create <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4"><apiname>CCamera::CCameraImageCapture</apiname></xref> class. </p> </li> <li id="GUID-96AADAA2-5499-5DCC-92A1-C8D8EC5E56E3"><p>Create <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4"><apiname>CCamera::CCameraImageCapture</apiname></xref> object and pass it to the client, when it calls <xref href="GUID-90E10EF6-5B7E-3A0B-B1FA-293D19A2B346.dita#GUID-90E10EF6-5B7E-3A0B-B1FA-293D19A2B346/GUID-0DF29ACB-C828-3FF2-A32D-6B67203E6190"><apiname>CCameraPreImageCaptureControl::PrepareImageCapture</apiname></xref>. </p> <p>See also <xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita#GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C/GUID-3905D703-E2DD-50B4-A48C-DE84E504B5FB">Implementation of MCameraPreImageCaptureControl</xref> class. </p> </li> <li id="GUID-4AE7CE9B-ACED-5CA5-942F-15BA608FFDC4"><p>Request still image capture using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4"><apiname>CCamera::CCameraImageCapture</apiname></xref> object. </p> </li> <li id="GUID-F50FFDD3-E38D-5A9D-9CA6-87C7C1FE0F6F"><p>Perform image capture using <xref href="GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4.dita#GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4/GUID-83958C31-770B-3293-80D5-5215A0E6CFC7"><apiname>CCamera::CCameraImageCapture::CaptureImage</apiname></xref> method. This delays the background processing involved with current image captured, so as to capture next images. </p> </li> <li id="GUID-9CC20C23-2DE7-588F-A651-71C9549E4BDA"><p>Use <xref href="GUID-430C206E-24D7-30BE-98E9-ACD176DDA3A8.dita#GUID-430C206E-24D7-30BE-98E9-ACD176DDA3A8/GUID-33204396-4AC5-39E0-A3E5-7BE6F7A75413"><apiname>MCaptureImageObserver::IndividualImageControlHandle</apiname></xref> callback to provide client with the handle to control captured individual still images. This callback may be send to the client after the image is exposed to the sensor. For example, client may need to destroy the image even before the completion for some reasons. </p> </li> <li id="GUID-86CD113A-0F87-51BA-8E69-AFDCFD3046BE"><p>Use <xref href="GUID-430C206E-24D7-30BE-98E9-ACD176DDA3A8.dita#GUID-430C206E-24D7-30BE-98E9-ACD176DDA3A8/GUID-150CF08A-F0A8-3D73-B406-269425A403A0"><apiname>MCaptureImageObserver::ImageCaptureComplete</apiname></xref> callback to inform the client that the image capture operation has been completed. This lets to use <xref href="GUID-992BCFCD-9F06-35A5-B166-3058F650E360.dita"><apiname>CCameraImageCapture</apiname></xref> for next still image capture. </p> </li> </ol> <p>Note: </p> <p>Licensees need to provide concrete implementation of <xref href="GUID-65D8585F-4841-3AF4-9A9D-5EAB188C6754.dita"><apiname>McameraImageCapture</apiname></xref> interface class. </p> <p>The following example code snippets illustrate the use of the <b>PreImageCaptureControl</b> classes. </p> <codeblock id="GUID-8E714EFD-1430-5E3F-A954-0F34FAF7BF66" xml:space="preserve">static_cast&lt;MCameraPreImageCaptureControl*&gt;(CCamPreImageCaptureControl::NewL(static_cast&lt;CCamUnitTestPlugin&amp;&gt;(*this)));
-
-CCamera::CCameraImageCapture* cameraImageCapture;
-
-MPreImageCaptureControlObserver* PreImageCaptureControlObserver() {return iPreImageCaptureControlObserver;}
-PreImageCaptureControlObserver()-&gt;PrepareImageComplete(cameraImageCapture, err);
-
-CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters&amp; aPrepareImageParameters;
-MCaptureImageObserver&amp; aCaptureImageObserver;                                
-
-CreateCaptureImageL(cameraImageCapture, aPrepareImageParameters, aCaptureImageObserver));
-
-CaptureImageObserver()-&gt;IndividualImageControlHandle(*cameraImageCapture, 1);</codeblock> </section> <section><title>See also</title> <p><xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita"> Controlling Pre-Image Capture </xref>  </p> <p><xref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita">Controlling Captured Image</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,102 +1,101 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690" xml:lang="en"><title>Options
-menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <uicontrol>Options</uicontrol> menu is a tool that offers the user
-a set of possible functions in the current context. Pressing the left softkey
-labeled <uicontrol>Options</uicontrol> opens the <uicontrol>Options</uicontrol> menu.</p>
-<fig id="GUID-DE323941-E70E-4169-9F67-6E7A11047481">
-<title>Options menu</title>
-<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e65577_href.png" placement="inline"/>
-</fig>
-<p>The <uicontrol>Options</uicontrol> menu is a menu list displayed in a pop-up
-window. An item is selected by pressing either the left softkey (<uicontrol>Select</uicontrol>)
-or the Selection key. The user must either select an item from the list or
-cancel the menu; it cannot be left pending during another action (see <xref href="GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589.dita">Navigating in applications</xref>).</p>
-<p>The pop-up window is located above the <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
-pane</xref>, and its height is dynamic; the maximum size is approximately
-the size of the standard main pane. The content on the screen outside the
-menu pop-up is dimmed, except the Control pane.</p>
-<p>Options menu items that are item-specific and require an item on the screen
-to be focused, are not displayed in the <b>Options</b> menu unless user has
-opened the Options menu while navigating the UI with hardware keys. The item
-specific commands are hidden in the <b>Options</b> menu while moving with
-touch, and are made visible when activating the hardware interaction. The
-item specific commands are not updated or removed, while the <b>Options</b> menu
-is open.</p>
-<p>Items in the <uicontrol>Options</uicontrol> menu use the single item layout;
-that is, they are text-only. The number of items in the menu is not limited,
-because the list scrolls as necessary. The <uicontrol>Options</uicontrol> always
-loops, which allows users to easily reach the end of the list.</p>
-<table id="GUID-F71BE5D4-D757-476F-811A-E3364937E3DB"><title>Default touch
-events for Options menu</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down (no sub-menu for the item)</p></entry>
-<entry><p>No effect <note> Submenu behaves similarly as the main menu.</note></p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release (no sub-menu for the item)</p></entry>
-<entry><p>The focused item is activated and <b>Options</b> menu closed.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release (when sub-menu available for the item)</p></entry>
-<entry><p>A submenu is opened. </p><p>The <b>Options</b> menu item for which
-the submenu was opened from (that is, parent item) must be visible.</p></entry>
-<entry><p>The parent item stays highlighted while the submenu is open to show
-the relation between the two. </p><p>The submenu does not have highlight unless
-it was opened with a hardware key. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down and basic list effect with release event.
-For pop-up related tactile feedback, normal pop-up effect when opening and
-closing if the theme effects are OFF. If they are ON, then increasing long
-touch is used when opening and pop-up close effect when closing.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on <b>Options</b> menu and move out of the <b>Options</b> menu</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside the <b>Options</b> menu</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>If there is hardware highlight, it disappears. </p><p>Tactile: No
-effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside menu area when sub-menu is open</p></entry>
-<entry><p>Only the sub-menu is closed, main menu remains open.</p></entry>
-<entry><p>Highlight disappears from the parent menu item. </p><p>Tactile:
-Pop-up effect and sensitive audio feedback is provided with touch down event.
-If theme effects are ON, pop-up close effect is given with touch release.
-Else, no tactile feedback is provided with touch release.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-FF69390C-BA3D-47D5-A0C9-031CBA2464FC"><title>Using
-the Options menu in C++ applications</title><p>The API to use for the <uicontrol>Options</uicontrol> menu
-is the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options menu API</xref>. For implementation information, see <xref format="html" href="public_specs/GuidesA/Options_Menu_API_Specification/Options_Menu_API_Specification.html#Options_Menu_API_Specification%2etopic3" scope="peer">Using the Options menu API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690" xml:lang="en"><title>Options
+menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <uicontrol>Options</uicontrol> menu is a tool that offers the user
+a set of possible functions in the current context. Pressing the left softkey
+labeled <uicontrol>Options</uicontrol> opens the <uicontrol>Options</uicontrol> menu.</p>
+<fig id="GUID-DE323941-E70E-4169-9F67-6E7A11047481">
+<title>Options menu</title>
+<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60154_href.png" placement="inline"/>
+</fig>
+<p>The <uicontrol>Options</uicontrol> menu is a menu list displayed in a pop-up
+window. An item is selected by pressing either the left softkey (<uicontrol>Select</uicontrol>)
+or the Selection key. An item can also be selected directly from the list.
+The user must either select an item from the list or cancel the menu; it cannot
+be left pending during another action (see <xref href="GUID-0BAE2D0E-604B-4A62-B5EB-AC68EAF7F589.dita">Navigating
+in applications</xref>).</p>
+<p><uicontrol>Options</uicontrol> menu items that are item-specific and require
+an item on the screen to be focused, are not displayed in the <b>Options</b> menu
+unless user has opened the Options menu while navigating the UI with hardware
+keys. The item specific commands are hidden in the <b>Options</b> menu while
+moving with touch, and are made visible when activating the hardware interaction.
+The item specific commands are not updated or removed, while the <b>Options</b> menu
+is open.</p>
+<p>Items in the <uicontrol>Options</uicontrol> menu use the single item layout;
+that is, they are text-only. The number of items in the menu is not limited,
+because the list scrolls as necessary. The <uicontrol>Options</uicontrol> always
+loops, which allows users to easily reach the end of the list.</p>
+<table id="GUID-F71BE5D4-D757-476F-811A-E3364937E3DB"><title>Default touch
+events for Options menu</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry><p>Touch down (no sub-menu for the item)</p></entry>
+<entry><p>No effect. </p><p><note> Submenu behaves similarly as the main menu.</note></p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release (no sub-menu for the item)</p></entry>
+<entry><p>The focused item is activated and <b>Options</b> menu closed.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release (when sub-menu available for the item)</p></entry>
+<entry><p>A submenu is opened. </p><p>The <b>Options</b> menu item for which
+the submenu was opened from (that is, parent item) must be visible.</p></entry>
+<entry><p>The parent item stays highlighted while the submenu is open to show
+the relation between the two. </p><p>The submenu does not have highlight unless
+it was opened with a hardware key. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down and basic list effect with release event.
+For pop-up related tactile feedback, normal pop-up effect when opening and
+closing if the theme effects are OFF. If they are ON, then increasing long
+touch is used when opening and pop-up close effect when closing.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on <b>Options</b> menu and move out of the <b>Options</b> menu</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside the <b>Options</b> menu</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>If there is hardware highlight, it disappears. </p><p>Tactile: No
+effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside menu area when sub-menu is open</p></entry>
+<entry><p>Only the sub-menu is closed, main menu remains open.</p></entry>
+<entry><p>Highlight disappears from the parent menu item. </p><p>Tactile:
+Pop-up effect and sensitive audio feedback is provided with touch down event.
+If theme effects are ON, pop-up close effect is given with touch release.
+Else, no tactile feedback is provided with touch release.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-FF69390C-BA3D-47D5-A0C9-031CBA2464FC"><title>Using
+the Options menu in applications</title><p>The API to use for the <uicontrol>Options</uicontrol> menu
+is the <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options menu API</xref>. For implementation information, see <xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html#Options_Menu_API_Specification.topic3" scope="peer">Using the Options menu API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C00FBDE4-EF59-5FED-BA92-625414AF45AE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C00FBDE4-EF59-5FED-BA92-625414AF45AE" xml:lang="en"><title>Crypto Libraries</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Crypto Libraries contains a Weak CryptoSPI and Strong CryptoSPI components together called as CryptoSPI framework. The framework provides software-based implementations of cryptographic algorithms. It allows device creators to include alternative implementations as plug-in DLLs. </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e214465_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C014FC75-732F-558F-8E6A-77DDAA032930_d0e218202_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5" xml:lang="en"><title>Reference</title><shortdesc>The Reference provides a detailed description of programming
-interfaces and error codes.</shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C0498002-7CD9-4B2D-B1F9-FB0908C4C1A5" xml:lang="en"><title>Reference</title><shortdesc>The Reference provides a detailed description of programming
+interfaces and error codes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section contains the <i>Nokia Symbian^3 C++ API Reference</i>  which provides documentation for the public and platform classes
+and header files.    It is organized according to the Symbian System
+Model.</p>
+<p>The reference also contains information for system panics, which are the errors codes used when the system terminates
+a program with a serious fault.</p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,66 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747" xml:lang="en"><title>Volume
-setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Volume setting item is used for controlling the volume setting on the mobile
-device.<fig id="GUID-997C9FB2-57D4-46B9-93AB-49E943933A44">
-<title>Volume setting item</title>
-<image href="GUID-057891A5-2394-489E-9323-91BE256F2188_d0e69537_href.png" placement="inline"/>
-</fig>Text</p>
-<table frame="all" id="GUID-FE789A23-AD1F-4C61-B533-E7927B0D8052"><title>Default
-touch events for volume setting item</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.03*"/>
-<colspec colname="col3" colwidth="1.17*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-
-<entry><p>Touch down</p></entry>
-<entry><p>The focused value is the new volume level.</p></entry>
-<entry><p>Tactile: Sensitive slider effect and audio feedback are provided
-with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Changes the glider value along with the touch event. </p><p>The
-glider control area is the entire main pane area. </p><p>Touch down on glider,
-moving and touch release are performed in the glider control area, without
-releasing the touch event.</p></entry>
-<entry><p>Tactile: Sensitive slider effect and audio given tied to the steps,
-if there is more than 15 steps then smooth slider effect (no audio) is given
-instead.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and cancel</p></entry>
-<entry><p>The value of the glider is where it was when the touch left the
-control area. </p><p>Touch is moved out from the glider area, without releasing
-it. </p><p>If the user drags the touch out of the glider area, and back, the
-value will continue to move along with the touch action.</p></entry>
-<entry><p>Tactile: No touch release feedback given if it is performed outside
-slider.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C08C9AE9-99A6-4EB7-B665-41E92EDD9747" xml:lang="en"><title>Volume
+setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Volume setting item is used for controlling the volume setting on the mobile
+device. It is a general purpose component and does not directly control device
+volume.<fig id="GUID-997C9FB2-57D4-46B9-93AB-49E943933A44">
+<title>Volume setting item</title>
+<image href="GUID-057891A5-2394-489E-9323-91BE256F2188_d0e64300_href.png" placement="inline"/>
+</fig>Text</p>
+<table frame="all" id="GUID-FE789A23-AD1F-4C61-B533-E7927B0D8052"><title>Default
+touch events for volume setting item</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.03*"/>
+<colspec colname="col3" colwidth="1.17*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry><p>Touch down</p></entry>
+<entry><p>The focused value is the new volume level.</p></entry>
+<entry><p>Tactile: Sensitive slider effect and audio feedback are provided
+with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move (dragging)</p></entry>
+<entry><p>Changes the slider value along with the touch event. </p><p>The
+slider control area is the entire main pane area. </p><p>Touch down on slider,
+moving and touch release are performed in the slider control area, without
+releasing the touch event.</p></entry>
+<entry><p>Tactile: Sensitive slider effect and audio given tied to the steps,
+if there is more than 15 steps then smooth slider effect (no audio) is given
+instead.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and cancel</p></entry>
+<entry><p>The value of the slider is where it was when the touch left the
+control area. </p><p>Touch is moved out from the slider area, without releasing
+it. </p><p>If the user drags the touch out of the slider area, and back, the
+value will continue to move along with the touch action.</p></entry>
+<entry><p>Tactile: No touch release feedback given if it is performed outside
+slider.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e65898_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C0A4DA51-3168-4F99-9A8E-66A326186E29_d0e71147_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C0CC6EEF-E95F-4DE1-9E53-2B777D9E433D_d0e81716_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e216896_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e220633_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84" xml:lang="en"><title>Touch
-down and hold</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Touch down and hold is used, for example, to open the stylus pop-up menu.
-It is also referred as long tap. Applications can use an animation (starts
-after 0.15 seconds from the start of a stylus touch down event) to indicate
-that a Touch down and hold action has been initiated.</p>
-<p>On the whole, touch down and hold may be difficult for users to find, and
-therefore its use should be considered carefully. As in the case of task swapping,
-the use of touch down and hold should aim at being analogous to using a long
-key press on the hardware keys.</p>
-<section id="GUID-F3F82BBF-587D-471E-A2DE-E9248077EE0A"><title>Using
-touch down and hold events in C++ applications</title><p>The API to use for
-receiving touch down and hold events in applications or controls is the <xref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita">Touch UI utilities API</xref>.</p><p>Use
-the class <codeph>CAknLongTapDetector</codeph> to receive touch down and hold
-events.</p><p>The long tap handler must inherit from the class <xref href="GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA.dita"><apiname>MAknLongTapDetectorCallBack</apiname></xref> and
-implement the <xref href="GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA.dita#GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA/GUID-DF019AAA-475C-3C96-BB77-5CC167CF4C3C"><apiname>MAknLongTapDetectorCallBack::HandleLongTapEventL()</apiname></xref> callback
-function.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C11AF871-56C8-4EA4-A1E0-E2B23372EF84" xml:lang="en"><title>Touch
+down and hold</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Touch down and hold is used, for example, to open the stylus pop-up menu.
+It is also referred as long tap. Applications can use an animation (starts
+after 0.15 seconds from the start of a stylus touch down event) to indicate
+that a Touch down and hold action has been initiated.</p>
+<p>On the whole, touch down and hold may be difficult for users to find, and
+therefore its use should be considered carefully. As in the case of task swapping,
+the use of touch down and hold should aim at being analogous to using a long
+key press on the hardware keys.</p>
+<section id="GUID-F3F82BBF-587D-471E-A2DE-E9248077EE0A"><title>Using
+touch down and hold events in applications</title><p>The API
+to use for receiving touch down and hold events in applications or controls
+is the <xref href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita">Touch UI utilities
+API</xref>.</p><p>Use the class <codeph>CAknLongTapDetector</codeph> to receive
+touch down and hold events.</p><p>The long tap handler must inherit from the
+class <xref href="GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA.dita"><apiname>MAknLongTapDetectorCallBack</apiname></xref> and implement the <xref href="GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA.dita#GUID-8ABC81C9-1D07-3D81-B744-BE5275ED61CA/GUID-DF019AAA-475C-3C96-BB77-5CC167CF4C3C"><apiname>MAknLongTapDetectorCallBack::HandleLongTapEventL()</apiname></xref> callback
+function.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C156607A-5929-5971-8077-E8974FA43B3C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C156607A-5929-5971-8077-E8974FA43B3C" xml:lang="en"><title>Basics:
-Store and Restore Object using Clipboard</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-2638D79E-A3D2-5A08-AFC3-00AF68C3C194-GENID-1-8-1-11-1-1-8-1-5-1-4-1-6-1-3-1-2-1"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-46db067a-e98e-4717-8fc7-232af34839de.zip" scope="external">Clipboard.zip</xref></p>Download some additional files required
-by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-46db067a-e98e-4717-8fc7-232af34839de.html" scope="peer">browse</xref> to view the example code. </p>View the additional
-files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse</xref>.  </section>
-<section><title>Description</title> <p>This is an example of basic clipboard
-use. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-9C1E9536-01E8-3C0E-B1C5-F0A597ED0CA3.dita"><apiname>CClipboard</apiname></xref></p><p><xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref></p><p><xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref> </p><p><xref href="GUID-1C4D4AFD-85E2-3D5D-B704-D1FA0E5E7DA2.dita"><apiname>TStreamId</apiname></xref></p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C156607A-5929-5971-8077-E8974FA43B3C" xml:lang="en"><title>Basics:
+Store and Restore Object using Clipboard</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-2638D79E-A3D2-5A08-AFC3-00AF68C3C194-GENID-1-10-1-11-1-1-8-1-5-1-4-1-6-1-3-1-2-1"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-46db067a-e98e-4717-8fc7-232af34839de.zip" scope="external">Clipboard.zip</xref></p>Download some additional files required
+by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-46db067a-e98e-4717-8fc7-232af34839de.html" scope="peer">browse</xref> to view the example code. </p>View the additional
+files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse</xref>.  </section>
+<section><title>Description</title> <p>This is an example of basic clipboard
+use. </p> </section>
+<section><title>Class Summary</title><p><xref href="GUID-9C1E9536-01E8-3C0E-B1C5-F0A597ED0CA3.dita"><apiname>CClipboard</apiname></xref></p><p><xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref></p><p><xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref> </p><p><xref href="GUID-1C4D4AFD-85E2-3D5D-B704-D1FA0E5E7DA2.dita"><apiname>TStreamId</apiname></xref></p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e396840_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e397002_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C1A6477D-2130-5664-A845-898212F96381_d0e290246_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C1A6477D-2130-5664-A845-898212F96381_d0e295005_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,91 +1,91 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E" xml:lang="en"><title>GDI
-Collection Overview</title><shortdesc>The Graphics Device Interface (GDI) collection is an important
-collection within the Graphics subsystem. It provides a suite of abstract
-base classes, interfaces and data structures. The suite represents and interacts
-with physical graphics hardware such as display screens, off-screen memory
-and printers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Architectural Relationship</title> <p>The GDI collection provides
-base classes and utility functions. Every graphics component ends up using
-it. The components in this collection are closely linked and provide important
-functionality. The GDI component is a low-level component in this collection,
-BitGDI is based on this and DirectGDI is a potentially faster alternative
-to BitGDI. The Colour Palette provides coloring indexing operations. </p> </section>
-<section><title>Description</title> <p>GDI consists of a large number of diverse
-APIs that cover many different aspects of graphics including graphics device
-abstraction, color value handling, linear digital differential analysis, font
-description and information, printer devices abstraction, line breaking, text
-rendering, handling of bidirectional text, text wrapper and linked font creation. </p> <p>Graphics
-Device Interface collection includes the following components: </p> <ul>
-<li id="GUID-BA77A047-4A77-5527-9EE8-AE4302E759C9"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-25C920A3-EF7C-5E8E-B94E-531B56E36DB9">GDI</xref>  </p> </li>
-<li id="GUID-08EB75C6-0E70-5F16-9CF1-BF43AFDB3CC7"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-4CDF56F2-E278-5488-AD9D-D42EFC145A40">BitGDI</xref>  </p> </li>
-<li id="GUID-13396341-EBF4-54F4-BC5A-5223F269114C"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-81F903E9-F9BD-5141-8402-483D6E26F1F0">DirectGDI</xref>  </p> </li>
-<li id="GUID-61FA0D95-AE43-50AB-B0BF-0BE9BF9D3C95"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-059D5B88-E69F-5898-8D87-161B349B7C0C">Colour Palette</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-25C920A3-EF7C-5E8E-B94E-531B56E36DB9"><title>GDI</title> <p>GDI
-is a low level component. Two key concepts related to GDI are Device (<xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref>)
-and Context (<xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>). Throughout the Graphics
-sub-system a graphics device provides a graphics context through which the
-device may be drawn to. The context maintains 'settings', such as the pen
-and brush colors and styles in use, and provides a rich API of drawing commands
-for creating graphical and textual output. </p> <p>Most display devices use
-bitmap graphics and the GDI provides specializations of both <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref> to
-act as base classes for bitmap devices: namely <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> and <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref>.
-These add, amongst other attributes, pixel awareness, blitting, scanlines
-and fading. </p> <p>The GDI defines abstract base classes for storing and
-manipulating fonts (<xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref>, <xref href="GUID-0CA79D2D-827F-3A20-A10C-1CC9C576E803.dita"><apiname>CTypefaceStore</apiname></xref>, <xref href="GUID-B68B7BC8-CFBA-32F4-A0BE-8378F0C105DA.dita"><apiname>CFontCache</apiname></xref>)
-and additional supporting classes and structures. </p> <p>The GDI defines
-the interface for mapping between device-specific pixels and real-world twips.
-A twip is a twentieth of a point and a point is 1/72 of an inch. That makes
-a twip 1/1440 of an inch, 1/567 of a centimeter or about 0.018mm. </p> <p>The
-GDI defines a base class for representing embedded pictures, <xref href="GUID-829D57CD-9659-347B-AAE9-5F0A0ECD555C.dita"><apiname>CPicture</apiname></xref>,
-and supporting classes. It also provides base classes, interfaces and structures
-for printing. </p> </section>
-<section id="GUID-4CDF56F2-E278-5488-AD9D-D42EFC145A40"><title> BitGDI</title> <p>The <xref href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita">BitGDI Component</xref> is
-used by legacy applications and the Window Server in the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
-variant</xref>. The BitGDI component provides the <xref href="GUID-B229156F-2344-3F46-8542-AC65882D80DE.dita"><apiname>CFbsScreenDevice</apiname></xref> and <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita"><apiname>CFbsBitGc</apiname></xref> APIs,
-which are concrete implementations of <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref> for
-bitmap-based devices. This component enables: </p> <ul>
-<li id="GUID-989D5F4A-3DB5-55DA-91FE-5E70D3DFF57E"><p>hardware-independent
-access to screen attributes </p> </li>
-<li id="GUID-7E420A37-E7A9-5583-8FE0-393677696319"><p>bitmapped drawing which
-holds settings and supports drawing to bitmapped devices and screens independent
-of the display. </p> </li>
-</ul> <fig id="GUID-C75462F4-7DB3-57BF-ABDE-C500669F45C5">
-<image href="GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e205815_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-059D5B88-E69F-5898-8D87-161B349B7C0C"><title>Colour
-Palette</title> <p>The <xref href="GUID-E82FABA9-9CCC-548F-99DB-EF2B9036B405.dita">Colour
-Palette component</xref> provides coloring functionality. A user can specify
-the use of a particular color, as described by a <xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname>TRgb</apiname></xref>,
-and have that color rendered on a machine’s display device as closely as possible
-to the color specified. A related functionality allows arrays of colors to
-be stored as bitmaps, and displayed at a later date in the same manner. </p> <p>Color
-palettes also provide user-definable palette support to the GDI. A palette
-is a user-defined set of colors, which is a subset of the full range of 24-bit
-colors. This allows users the advantages of having a low bpp color mode whilst
-being able to specify the colors available in that mode. Only a palette of
-16 colors enables changing the palette. Palettes are also used to allow 24-bit
-bitmaps to be stored in a more compressed form by finding the actual number
-of different colors used in the bitmap. This creates a palette that allows
-mapping of colors to a smaller index space. The pixels of the bitmaps are
-encoded using indexes to this new index space. A palette has a size which
-is set at its creation and cannot alter the number of entries in the palette.
-Each entry in a palette is a mapping between that entry's index and a <codeph>TRgb</codeph> value.
-Palette entries can be got and set at any time between the palette's creation
-and destruction. The GDI's palette support also provides functions to find
-the nearest palette color to a requested <codeph>TRgb</codeph> color. </p> </section>
-</conbody><related-links>
-<link href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"><linktext>Graphics
-Device Interface (GDI) Collection</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E" xml:lang="en"><title>GDI
+Collection Overview</title><shortdesc>The Graphics Device Interface (GDI) collection is an important
+collection within the Graphics subsystem. It provides a suite of abstract
+base classes, interfaces and data structures. The suite represents and interacts
+with physical graphics hardware such as display screens, off-screen memory
+and printers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Architectural Relationship</title> <p>The GDI collection provides
+base classes and utility functions. Every graphics component ends up using
+it. The components in this collection are closely linked and provide important
+functionality. The GDI component is a low-level component in this collection,
+BitGDI is based on this and DirectGDI is a potentially faster alternative
+to BitGDI. The Colour Palette provides coloring indexing operations. </p> </section>
+<section><title>Description</title> <p>GDI consists of a large number of diverse
+APIs that cover many different aspects of graphics including graphics device
+abstraction, color value handling, linear digital differential analysis, font
+description and information, printer devices abstraction, line breaking, text
+rendering, handling of bidirectional text, text wrapper and linked font creation. </p> <p>Graphics
+Device Interface collection includes the following components: </p> <ul>
+<li id="GUID-BA77A047-4A77-5527-9EE8-AE4302E759C9"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-25C920A3-EF7C-5E8E-B94E-531B56E36DB9">GDI</xref>  </p> </li>
+<li id="GUID-08EB75C6-0E70-5F16-9CF1-BF43AFDB3CC7"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-4CDF56F2-E278-5488-AD9D-D42EFC145A40">BitGDI</xref>  </p> </li>
+<li id="GUID-13396341-EBF4-54F4-BC5A-5223F269114C"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-81F903E9-F9BD-5141-8402-483D6E26F1F0">DirectGDI</xref>  </p> </li>
+<li id="GUID-61FA0D95-AE43-50AB-B0BF-0BE9BF9D3C95"><p><xref href="GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E.dita#GUID-C1B080D9-9C6C-520B-B73E-4EB344B1FC5E/GUID-059D5B88-E69F-5898-8D87-161B349B7C0C">Colour Palette</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-25C920A3-EF7C-5E8E-B94E-531B56E36DB9"><title>GDI</title> <p>GDI
+is a low level component. Two key concepts related to GDI are Device (<xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref>)
+and Context (<xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref>). Throughout the Graphics
+sub-system a graphics device provides a graphics context through which the
+device may be drawn to. The context maintains 'settings', such as the pen
+and brush colors and styles in use, and provides a rich API of drawing commands
+for creating graphical and textual output. </p> <p>Most display devices use
+bitmap graphics and the GDI provides specializations of both <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref> to
+act as base classes for bitmap devices: namely <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> and <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref>.
+These add, amongst other attributes, pixel awareness, blitting, scanlines
+and fading. </p> <p>The GDI defines abstract base classes for storing and
+manipulating fonts (<xref href="GUID-2A12FE3B-47F2-3016-8161-A971CA506491.dita"><apiname>CFont</apiname></xref>, <xref href="GUID-0CA79D2D-827F-3A20-A10C-1CC9C576E803.dita"><apiname>CTypefaceStore</apiname></xref>, <xref href="GUID-B68B7BC8-CFBA-32F4-A0BE-8378F0C105DA.dita"><apiname>CFontCache</apiname></xref>)
+and additional supporting classes and structures. </p> <p>The GDI defines
+the interface for mapping between device-specific pixels and real-world twips.
+A twip is a twentieth of a point and a point is 1/72 of an inch. That makes
+a twip 1/1440 of an inch, 1/567 of a centimeter or about 0.018mm. </p> <p>The
+GDI defines a base class for representing embedded pictures, <xref href="GUID-829D57CD-9659-347B-AAE9-5F0A0ECD555C.dita"><apiname>CPicture</apiname></xref>,
+and supporting classes. It also provides base classes, interfaces and structures
+for printing. </p> </section>
+<section id="GUID-4CDF56F2-E278-5488-AD9D-D42EFC145A40"><title> BitGDI</title> <p>The <xref href="GUID-EAAD1719-C02C-5705-A5C3-993E36441BE6.dita">BitGDI Component</xref> is
+used by legacy applications and the Window Server in the <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay
+variant</xref>. The BitGDI component provides the <xref href="GUID-B229156F-2344-3F46-8542-AC65882D80DE.dita"><apiname>CFbsScreenDevice</apiname></xref> and <xref href="GUID-4A501086-7EFF-376D-8901-6D9B2EB4EFF2.dita"><apiname>CFbsBitGc</apiname></xref> APIs,
+which are concrete implementations of <xref href="GUID-500FC564-35E9-3B66-A0C2-1269371A2EA0.dita"><apiname>CGraphicsDevice</apiname></xref> and <xref href="GUID-DAD09DCF-3123-38B4-99E9-91FB24B92138.dita"><apiname>CGraphicsContext</apiname></xref> for
+bitmap-based devices. This component enables: </p> <ul>
+<li id="GUID-989D5F4A-3DB5-55DA-91FE-5E70D3DFF57E"><p>hardware-independent
+access to screen attributes </p> </li>
+<li id="GUID-7E420A37-E7A9-5583-8FE0-393677696319"><p>bitmapped drawing which
+holds settings and supports drawing to bitmapped devices and screens independent
+of the display. </p> </li>
+</ul> <fig id="GUID-C75462F4-7DB3-57BF-ABDE-C500669F45C5">
+<image href="GUID-71E64F3E-40CB-560B-A482-CA92C7FD1AA2_d0e200807_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-059D5B88-E69F-5898-8D87-161B349B7C0C"><title>Colour
+Palette</title> <p>The <xref href="GUID-E82FABA9-9CCC-548F-99DB-EF2B9036B405.dita">Colour
+Palette component</xref> provides coloring functionality. A user can specify
+the use of a particular color, as described by a <xref href="GUID-F84C7F40-6DEB-39D1-B172-CB0CC3918E27.dita"><apiname>TRgb</apiname></xref>,
+and have that color rendered on a machine’s display device as closely as possible
+to the color specified. A related functionality allows arrays of colors to
+be stored as bitmaps, and displayed at a later date in the same manner. </p> <p>Color
+palettes also provide user-definable palette support to the GDI. A palette
+is a user-defined set of colors, which is a subset of the full range of 24-bit
+colors. This allows users the advantages of having a low bpp color mode whilst
+being able to specify the colors available in that mode. Only a palette of
+16 colors enables changing the palette. Palettes are also used to allow 24-bit
+bitmaps to be stored in a more compressed form by finding the actual number
+of different colors used in the bitmap. This creates a palette that allows
+mapping of colors to a smaller index space. The pixels of the bitmaps are
+encoded using indexes to this new index space. A palette has a size which
+is set at its creation and cannot alter the number of entries in the palette.
+Each entry in a palette is a mapping between that entry's index and a <codeph>TRgb</codeph> value.
+Palette entries can be got and set at any time between the palette's creation
+and destruction. The GDI's palette support also provides functions to find
+the nearest palette color to a requested <codeph>TRgb</codeph> color. </p> </section>
+</conbody><related-links>
+<link href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"><linktext>Graphics
+Device Interface (GDI) Collection</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e272131_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C213B26D-32EC-5CD9-956E-1C2143E5D0CA_d0e275812_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C218732C-E675-5116-96FE-2604495C2C92-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C218732C-E675-5116-96FE-2604495C2C92_d0e383225_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,82 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C" xml:lang="en"><title>MessageQueue
-Example</title><shortdesc>This example application shows the use of message queue in interprocess
-communication using the RMsgQueue class.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-ED679CA7-FF4C-4E69-8663-5DA46A3D94F4"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-d72e85ad-4659-4f66-9cb3-f084e9505709.zip" scope="external">MessageQueueExample.zip</xref>.</p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-d72e85ad-4659-4f66-9cb3-f084e9505709.html" scope="peer">browse</xref> to view the example code.</p> </section>
-<section id="GUID-39D2064D-AD24-4785-956F-18A0CAD57B81"><title>Description</title> <p>The
-example describes the global message queue. The following sections provide
-more information. </p> <p><b> MessageQueueExample</b> </p> <p>The example
-comprises two processes: a Collector, which collects words from the user via
-the console, and an Inverter, which periodically reverses the order of the
-collected words. The Collector and the Inverter pass words to each other using
-two message queues: InverterInQ and InverterOutQ. The Collector is the main
-process which starts the Inverter process. The Collector process takes user
-input in form of different words and sends to the Inverter process via message
-queue. The Inverter process receives messages at a regular interval of 10
-seconds, inverts the words in the message and sends it back to the Collector. </p> <p>The
-Collector creates an active object to collect words from the user and another
-active object to receive words from the Inverter. Each active object has its
-own console for display. More information about running the example is given
-in the build section of this document. </p> <p><b>Design</b> </p> <p>The following
-block diagram describes the example in more detail. </p> <fig id="GUID-27A0C389-EDDD-5E17-82EE-2727F21803AF">
-<image href="GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e257906_href.png" placement="inline"/>
-</fig><p><filepath>CCollector.exe</filepath> is the Collector process. The
-user starts the Collector and creates an active scheduler and two global message
-queues. It also starts the Inverter process called <filepath>Inverter.exe</filepath>.
-The Collector creates one active object to collect words from the user and
-another active object to monitor its input queue (InverterOutQ). The active
-object to collect words is an object of class CCollector and the active object
-which monitors <codeph>InverterOutQ</codeph> is an object of class <xref href="GUID-A39BC295-2845-3018-B8B8-49418277E7EB.dita"><apiname>CMsgQActive</apiname></xref>.
-The two active objects have different consoles (one for user input and one
-for displaying the output message). </p><p> The user inputs words in the console.
-The set of words goes to the <codeph>InverterInQ</codeph> when the "<codeph>Enter</codeph>"
-key is pressed. If the "<codeph>ESC</codeph>" key is pressed, the system stops
-and sends the command to the Inverter process to stop.</p><p> The Inverter
-is another process which opens the global message queues. It creates an active
-scheduler and implements a periodic timer. The timer wakes every 10 seconds
-to receive the words from the <codeph>InverterInQ</codeph>. It also checks
-for a stop command, which closes the message queue and the two process. The
-Inverter inverts the received words and sends the result to <codeph>InverterOutQ</codeph>. </p><p>In
-the Collector process, the active object that monitors the <codeph>InveterOutQ</codeph> opens
-the message queue, receives the received words and displays  them in its console.
-It uses the <xref href="GUID-6E6B3CD0-FB61-336D-9357-2FFBE3F7A57A.dita"><apiname>NotifyDataAvailable()</apiname></xref> API to monitor the queue
-for the next set of data. </p><p>The Class diagram of the example is shown
-below </p><fig id="GUID-E93EF1D6-1B9D-4C76-80B0-1FF660B5C75A">
-<image href="GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e257954_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-86B04D06-7046-49BD-AE1A-57D5E406F864"><title>Class summary</title><ul>
-<li><p> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> - Periodic timer active object.</p></li>
-<li><p><xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname> RMsgQueue</apiname></xref> - A handle to a message queue.</p></li>
-<li><p><xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita"><apiname> RProcess</apiname></xref>A handle to a process.</p></li>
-<li><p><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname> CActive</apiname></xref> - The core class of the active object abstraction.</p></li>
-</ul></section>
-<section id="GUID-F8D41313-760D-417E-834C-09D41F4EDB06"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build
-process</xref> describes how to build this example application. </p> <p>The
-example builds an executable called <filepath>Inverter.exe</filepath> and <filepath>Collector.exe</filepath> in
-the standard locations. </p> <p>To run the example, first build <filepath>Inverter.exe</filepath> and
-start <filepath>Collector.exe</filepath> from the file system or from your
-IDE. After launching the .exes (and depending on the emulator you are using)
-you may need to navigate away from the application launcher or shell screen
-to view the console. </p> <p>A message input console is used for user input
-and an output message console is used to display inverted words. The output
-message console that is displayed at startup. The user can switch between
-two consoles by <cmdname>Ctrl+Shift+Alt+t </cmdname> combination. </p> <p>The
-input message console is used to input words. A user presses enter to send
-the words to the Inverter and presses <cmdname>ESC</cmdname> to exit the application.
-When a user presses "Enter" the words go to the <codeph>InverterInQ</codeph>.
-The Inverter opens the <codeph>InverterInQ</codeph> at periodic intervals
-of 10 secs and inverts the words which it sends to the collector via <codeph>InverterOutQ</codeph>.
-The Collector opens the <codeph>InverterOutQ</codeph> and display the words
-in the output message console. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C21BB0E4-7AF7-58E5-AAD6-8CE67399460C" xml:lang="en"><title>MessageQueue Example</title><shortdesc>This example application shows the use of message queue
+in interprocess communication using the RMsgQueue class.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-ED679CA7-FF4C-4E69-8663-5DA46A3D94F4"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-d72e85ad-4659-4f66-9cb3-f084e9505709.zip" scope="external">MessageQueueExample.zip</xref>.</p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-d72e85ad-4659-4f66-9cb3-f084e9505709.html" scope="peer">browse</xref> to view the example code.</p> </section>
+<section id="GUID-39D2064D-AD24-4785-956F-18A0CAD57B81"><title>Description</title> <p>The example describes the global message queue. The following
+sections provide more information. </p> <p><b> MessageQueueExample</b> </p> <p>The example comprises two processes: a Collector, which
+collects words from the user via the console, and an Inverter, which
+periodically reverses the order of the collected words. The Collector
+and the Inverter pass words to each other using two message queues:
+InverterInQ and InverterOutQ. The Collector is the main process which
+starts the Inverter process. The Collector process takes user input
+in form of different words and sends to the Inverter process via message
+queue. The Inverter process receives messages at a regular interval
+of 10 seconds, inverts the words in the message and sends it back
+to the Collector. </p> <p>The Collector creates an active object to
+collect words from the user and another active object to receive words
+from the Inverter. Each active object has its own console for display.
+More information about running the example is given in the build section
+of this document. </p> <p><b>Design</b> </p> <p>The following block
+diagram describes the example in more detail. </p> <fig id="GUID-27A0C389-EDDD-5E17-82EE-2727F21803AF">
+<image href="GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e254198_href.png" placement="inline"/>
+</fig><p><filepath>CCollector.exe</filepath> is the Collector process.
+The user starts the Collector and creates an active scheduler and
+two global message queues. It also starts the Inverter process called <filepath>Inverter.exe</filepath>. The Collector creates one active object
+to collect words from the user and another active object to monitor
+its input queue (InverterOutQ). The active object to collect words
+is an object of class CCollector and the active object which monitors <codeph>InverterOutQ</codeph> is an object of class <xref href="GUID-A39BC295-2845-3018-B8B8-49418277E7EB.dita"><apiname>CMsgQActive</apiname></xref>. The two active objects have different consoles (one for user input
+and one for displaying the output message). </p><p> The user inputs
+words in the console. The set of words goes to the <codeph>InverterInQ</codeph> when the "<codeph>Enter</codeph>" key is pressed. If the "<codeph>ESC</codeph>" key is pressed, the system stops and sends the command
+to the Inverter process to stop.</p><p> The Inverter is another process
+which opens the global message queues. It creates an active scheduler
+and implements a periodic timer. The timer wakes every 10 seconds
+to receive the words from the <codeph>InverterInQ</codeph>. It also
+checks for a stop command, which closes the message queue and the
+two process. The Inverter inverts the received words and sends the
+result to <codeph>InverterOutQ</codeph>. </p><p>In the Collector process,
+the active object that monitors the <codeph>InveterOutQ</codeph> opens
+the message queue, receives the received words and displays  them
+in its console. It uses the <xref href="GUID-22E24B08-175B-3446-9D48-9AC4B1663E35.dita"><apiname>NotifyDataAvailable(TRequestStatus&amp;)</apiname></xref> API to monitor the queue for the next set of data. </p><p>The Class diagram of the example is shown below </p><fig id="GUID-E93EF1D6-1B9D-4C76-80B0-1FF660B5C75A">
+<image href="GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e254247_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-86B04D06-7046-49BD-AE1A-57D5E406F864"><title>Class
+summary</title><ul>
+<li><p> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> - Periodic timer active object.</p></li>
+<li><p><xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname> RMsgQueue</apiname></xref> - A handle to a message queue.</p></li>
+<li><p><xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita"><apiname> RProcess </apiname></xref> - A handle to a process.</p></li>
+<li><p><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname> CActive</apiname></xref> - The core class of the active
+object abstraction.</p></li>
+</ul></section>
+<section id="GUID-F8D41313-760D-417E-834C-09D41F4EDB06"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this example application. </p> <p>The example builds an executable called <filepath>Inverter.exe</filepath> and <filepath>Collector.exe</filepath> in the standard locations. </p> <p>To run the example, first build <filepath>Inverter.exe</filepath> and start <filepath>Collector.exe</filepath> from the file system
+or from your IDE. After launching the .exes (and depending on the
+emulator you are using) you may need to navigate away from the application
+launcher or shell screen to view the console. </p> <p>A message input
+console is used for user input and an output message console is used
+to display inverted words. The output message console that is displayed
+at startup. The user can switch between two consoles by <cmdname>Ctrl+Shift+Alt+t </cmdname> combination. </p> <p>The input message console is used to input
+words. A user presses enter to send the words to the Inverter and
+presses <cmdname>ESC</cmdname> to exit the application. When a user
+presses "Enter" the words go to the <codeph>InverterInQ</codeph>.
+The Inverter opens the <codeph>InverterInQ</codeph> at periodic intervals
+of 10 secs and inverts the words which it sends to the collector via <codeph>InverterOutQ</codeph>. The Collector opens the <codeph>InverterOutQ</codeph> and display the words in the output message console. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9" xml:lang="en"><title>Applications
-with a user interface</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>If you are developing an application with a user interface, consider
-the following issues:</p>
-<ul>
-<li><p>Other applications may have access to the information that
-the user inputs.</p></li>
-<li><p>A hostile application may lure the user to enter information
-that belongs to another application.</p></li>
-</ul>
-<p>Password dialogs in particular should be designed so that the user easily
-recognizes the currently running application.</p>
-<section id="GUID-836A84FD-44E9-4C3F-AA50-4BC36CBA2916"><title>User input</title>
-<p>It is possible for the user to unintentionally enter incorrect data
-that can interfere with the normal operation of the application. All input
-should be checked and validated before processing. A one-time check may not
-be enough because the content of data can change during processing, so it
-is therefore advisable to quickly check the data every time it is used.</p>
-<p>The following figure shows an example of input processing phases.</p>
-<fig id="GUID-6C871726-D4DB-40FC-A2F8-ADDA2B9A4E9C"><title>Examples of input processing</title><image href="GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e11012_href.png"/></fig>
-<p/>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C23196E8-FDD3-4A10-9DA2-DA83A2AD49D9" xml:lang="en"><title>Applications
+with a user interface</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>If you are developing an application with a user interface, consider
+the following issues:</p>
+<ul>
+<li><p>Other applications may have access to the information that
+the user inputs.</p></li>
+<li><p>A hostile application may lure the user to enter information
+that belongs to another application.</p></li>
+</ul>
+<p>Password dialogs in particular should be designed so that the user easily
+recognizes the currently running application.</p>
+<section id="GUID-836A84FD-44E9-4C3F-AA50-4BC36CBA2916"><title>User input</title>
+<p>It is possible for the user to unintentionally enter incorrect data
+that can interfere with the normal operation of the application. All input
+should be checked and validated before processing. A one-time check may not
+be enough because the content of data can change during processing, so it
+is therefore advisable to quickly check the data every time it is used.</p>
+<p>The following figure shows an example of input processing phases.</p>
+<fig id="GUID-6C871726-D4DB-40FC-A2F8-ADDA2B9A4E9C"><title>Examples of input processing</title><image href="GUID-63AD2899-FDDC-4E3F-8876-C72EC7C194CE_d0e12287_href.png"/></fig>
+<p/>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e16601_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e22179_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e67775_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C28FDA4B-0099-4258-8255-6CF7C44FD4E8_d0e72928_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,41 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C29FE12C-C412-40A8-A067-27C63A519D71" xml:lang="en"><title>Choice
-list API</title><shortdesc>The Choice list API is used for providing a vertical list of selectable
-items. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-00782901-3982-4482-82E0-EE5E527A82D7">
-<title>Choice list</title>
-<image href="GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e76845_href.png" scale="40" placement="inline"/>
-</fig>
-<p>You can use the Choice list API in all GUI applications. It is a library
-API that provides an interface for constructing and using the choice list
-UI component.</p>
-<p>You can use the choice list in two ways, with or without the current selection. </p>
-<p>If the current selection is displayed, there is an label showing the currently
-selected item and an arrow button indicating that a list is available. </p>
-<p>If without current selection, the choice list must be created with providing
-a generic button to the list. This button will be used to open the list for
-selection. The label of the button is defined by the client application when
-creating the button and will not be changed by the choice list.</p>
-<p>For implementation information, see <xref href="GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita">Providing
-a vertical list of selectable items</xref>.</p>
-<p>For the Choice list API classes and header files, see Classes
-and definitions.</p>
-<section id="GUID-A8BD46F9-8514-45AD-A413-AEF4F27B23F0"><title>Error handling</title><p>The
-leave mechanism of the Symbian platform environment is used to handle memory
-exhaustion.</p></section>
-</conbody><related-links>
-<linklist><title>Related APIs</title>
-<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
-API</linktext></link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C29FE12C-C412-40A8-A067-27C63A519D71" xml:lang="en"><title>Choice
+list API</title><shortdesc>The Choice list API is used for providing a vertical list of selectable
+items. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-00782901-3982-4482-82E0-EE5E527A82D7">
+<title>Choice list</title>
+<image href="GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e71700_href.png" scale="40" placement="inline"/>
+</fig>
+<p>You can use the Choice list API in all GUI applications. It is a library
+API that provides an interface for constructing and using the choice list
+UI component.</p>
+<p>You can use the choice list in two ways, with or without the current selection. </p>
+<p>If the current selection is displayed, there is an label showing the currently
+selected item and an arrow button indicating that a list is available. </p>
+<p>If without current selection, the choice list must be created with providing
+a generic button to the list. This button will be used to open the list for
+selection. The label of the button is defined by the client application when
+creating the button and will not be changed by the choice list.</p>
+<p>For implementation information, see <xref href="GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita">Providing
+a vertical list of selectable items</xref>.</p>
+<p>For the Choice list API classes and header files, see Classes and definitions.</p>
+<section id="GUID-9E034968-0060-419B-A945-70FEDD5625CB"><title>Changes and release information</title><p>The Choice list
+API is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-A8BD46F9-8514-45AD-A413-AEF4F27B23F0"><title>Error handling</title><p>The
+leave mechanism of the Symbian platform environment is used to handle memory
+exhaustion.</p></section>
+</conbody><related-links>
+<linklist><title>Related APIs</title>
+<link href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita"><linktext>Generic button
+API</linktext></link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C2D6BAB9-89BA-4E8D-82B4-2FAE04B9086C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C2D6BAB9-89BA-4E8D-82B4-2FAE04B9086C_d0e48752_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e304448_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C2D99C88-09C7-55FA-AF95-3F689BA27484_d0e310463_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e169089_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C31DA918-8DEA-5816-B0A6-4AE90B06DD0D_d0e175690_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-C37790B3-967C-489C-8753-0434938CBE2B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C37790B3-967C-489C-8753-0434938CBE2B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C37790B3-967C-489C-8753-0434938CBE2B" xml:lang="en"><title>Secure
-Sockets</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In addition to VPN and IPSec, the Symbian platform provides a generic
-client interface for communication through end points known as <i>Secure Sockets</i>.
-The required security protocol modules can be plugged into the Secure Sockets
-interface. </p>
-<p>The following figure shows the relationship between applications, secure
-socket classes, and secure socket plug-ins.</p>
-<fig id="GUID-80DE6518-CDBE-4652-9FE2-1663A1874822"><title>Relationship between applications and secure socket</title><image href="GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e11326_href.png"/></fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C37790B3-967C-489C-8753-0434938CBE2B" xml:lang="en"><title>Secure
+Sockets</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In addition to VPN and IPSec, the Symbian platform provides a generic
+client interface for communication through end points known as <i>Secure Sockets</i>.
+The required security protocol modules can be plugged into the Secure Sockets
+interface. </p>
+<p>The following figure shows the relationship between applications, secure
+socket classes, and secure socket plug-ins.</p>
+<fig id="GUID-80DE6518-CDBE-4652-9FE2-1663A1874822"><title>Relationship between applications and secure socket</title><image href="GUID-B913762A-2C87-4218-8D20-EBF88F9756DC_d0e12601_href.png"/></fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C" xml:lang="en"><title>Image Processor Overview</title><shortdesc>Introduction to topic for overview page or search</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This document introduces to the Image Processor library. </p>
-<section><title>Purpose</title> <p>Image Processor is specially developed
-for imaging on mobile devices. The main objective is to create powerful applications: </p> <ul>
-<li><p>Photo editors </p> </li>
-<li><p>Viewers </p> </li>
-<li><p>Cameras. </p> </li>
-</ul> </section>
-<section><title>Image Processor library details</title> <p>The DLL that provides
-the functionality and the library to which your code must link is identified
-below. </p> <table id="GUID-DE2B2BFA-39FE-4895-B75C-332D9CA3B1A5">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>DLL</entry>
-<entry>LIB</entry>
-<entry>Short Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <filepath>imageprocessor.dll</filepath>  </p> </entry>
-<entry><p> <filepath>imageprocessor.lib</filepath>  </p> </entry>
-<entry><p>These files are used for implementing Image Processor operations. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Architectural relationship</title> <p>Image Processor is designed
-with hardware constraints often associated with mobile devices in mind. The
-Image Processor framework minimizes both memory consumption and the CPU power
-required. </p> <p>The diagrammatic representation of the Image Processor library
-is as follows: </p> <fig id="GUID-BD94B563-020A-4E81-808A-6A5C04AF74B9">
-<desc><p>The architectural relationship diagram for the Image Processor library </p> </desc>
-<image href="GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e309233_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Image Processor</title> <p>Image Processor is a high-level
-library and framework. Image Processor encapsulates all the internal processing
-and basic functionality required to create applications. Basic functions include </p> <ul>
-<li><p>initiate image processing </p> </li>
-<li><p>decode images </p> </li>
-<li><p>zoom images </p> </li>
-<li><p>pan images </p> </li>
-<li><p>render images to screen or file. </p> </li>
-</ul> <p>The Image Processor library also allows some geometrical operations
-to the image: </p> <ul>
-<li><p>rotate or flip </p> </li>
-<li><p>crop. </p> </li>
-</ul> <p>Optionally, the Image Processor library supports </p> <ul>
-<li><p>effects </p> </li>
-<li><p>overlays. </p> </li>
-</ul> </section>
-<section><title>Image Processor Adaptation Plug-in</title><p>The Image Processor
-adaptation plug-in is an attachable component which implements the features
-of the Image Processor library. The Image Processor adaptation plug-ins are
-dependant on the Image Processor library, and will not function as standalone
-components. </p> <p> <b>Note: You must write your own Image Processor adaptation
-plug-in, because the Image Processor adaptation plug-in is not provided.</b> </p></section>
-<section><title>Key Image Processor Class</title> <p>The principal classes
-of the Image Processor library are as follows: </p> <ul>
-<li><p> <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-13E30312-DD05-3581-9A59-C3569A981657"><apiname>ImageProcessor::CImgProcessor</apiname></xref>, which provides a
-convenient interface to process images. </p> </li>
-<li><p> <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-5DD1A7CA-B0F8-3769-9D53-4541BDC2C3FB"><apiname>ImageProcessor::TEffect</apiname></xref>, which is the parent class
-of all effects, for example, <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-6703666E-4B7E-3AD2-A03F-A6B7D2F8AD02"><apiname>ImageProcessor::TEffectAntique</apiname></xref>. </p> </li>
-</ul> </section>
-<section><title>Using Image Processor</title> <p>Image Processor is used for
-the following: </p> <ul>
-<li><p>To initialize and process an input image </p> </li>
-<li><p>To apply effects and filters to the image. </p> </li>
-<li><p>Overlay images onto an image. </p> </li>
-<li><p>To render a low resolution preview of the image for display on screen. </p> </li>
-<li><p>To render a high resolution compressed image to disk or memory. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C3A3D9CF-4826-4BEB-8778-ECD8E6B6463C" xml:lang="en"><title>Image Processor Overview</title><shortdesc>Introduction to topic for overview page or search</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document introduces to the Image Processor library. </p>
+<section><title>Purpose</title> <p>Image Processor is specially developed
+for imaging on mobile devices. The main objective is to create powerful applications: </p> <ul>
+<li><p>Photo editors </p> </li>
+<li><p>Viewers </p> </li>
+<li><p>Cameras. </p> </li>
+</ul> </section>
+<section><title>Image Processor library details</title> <p>The DLL that provides
+the functionality and the library to which your code must link is identified
+below. </p> <table id="GUID-DE2B2BFA-39FE-4895-B75C-332D9CA3B1A5">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>LIB</entry>
+<entry>Short Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <filepath>imageprocessor.dll</filepath>  </p> </entry>
+<entry><p> <filepath>imageprocessor.lib</filepath>  </p> </entry>
+<entry><p>These files are used for implementing Image Processor operations. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Architectural relationship</title> <p>Image Processor is designed
+with hardware constraints often associated with mobile devices in mind. The
+Image Processor framework minimizes both memory consumption and the CPU power
+required. </p> <p>The diagrammatic representation of the Image Processor library
+is as follows: </p> <fig id="GUID-BD94B563-020A-4E81-808A-6A5C04AF74B9">
+<desc><p>The architectural relationship diagram for the Image Processor library </p> </desc>
+<image href="GUID-433698C1-C97D-5317-83C0-71A029E362E6_d0e303218_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Image Processor</title> <p>Image Processor is a high-level
+library and framework. Image Processor encapsulates all the internal processing
+and basic functionality required to create applications. Basic functions include </p> <ul>
+<li><p>initiate image processing </p> </li>
+<li><p>decode images </p> </li>
+<li><p>zoom images </p> </li>
+<li><p>pan images </p> </li>
+<li><p>render images to screen or file. </p> </li>
+</ul> <p>The Image Processor library also allows some geometrical operations
+to the image: </p> <ul>
+<li><p>rotate or flip </p> </li>
+<li><p>crop. </p> </li>
+</ul> <p>Optionally, the Image Processor library supports </p> <ul>
+<li><p>effects </p> </li>
+<li><p>overlays. </p> </li>
+</ul> </section>
+<section><title>Image Processor Adaptation Plug-in</title><p>The Image Processor
+adaptation plug-in is an attachable component which implements the features
+of the Image Processor library. The Image Processor adaptation plug-ins are
+dependant on the Image Processor library, and will not function as standalone
+components. </p> <p> <b>Note: You must write your own Image Processor adaptation
+plug-in, because the Image Processor adaptation plug-in is not provided.</b> </p></section>
+<section><title>Key Image Processor Class</title> <p>The principal classes
+of the Image Processor library are as follows: </p> <ul>
+<li><p> <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-13E30312-DD05-3581-9A59-C3569A981657"><apiname>ImageProcessor::CImgProcessor</apiname></xref>, which provides a
+convenient interface to process images. </p> </li>
+<li><p> <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-5DD1A7CA-B0F8-3769-9D53-4541BDC2C3FB"><apiname>ImageProcessor::TEffect</apiname></xref>, which is the parent class
+of all effects, for example, <xref href="GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7.dita#GUID-9E5136D1-B8BE-3CE4-9A20-39D672E31EC7/GUID-6703666E-4B7E-3AD2-A03F-A6B7D2F8AD02"><apiname>ImageProcessor::TEffectAntique</apiname></xref>. </p> </li>
+</ul> </section>
+<section><title>Using Image Processor</title> <p>Image Processor is used for
+the following: </p> <ul>
+<li><p>To initialize and process an input image </p> </li>
+<li><p>To apply effects and filters to the image. </p> </li>
+<li><p>Overlay images onto an image. </p> </li>
+<li><p>To render a low resolution preview of the image for display on screen. </p> </li>
+<li><p>To render a high resolution compressed image to disk or memory. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e308998_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C3A8290D-44BA-5AAD-8F0D-745FF3F10E0B_d0e315392_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6" xml:lang="en"><title>Power
-API Tutorial </title><shortdesc>This tutorial explains how to use the Power API of the HWRM. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Introduction</title> <p>Power API methods can be used by constructing
-an instance of <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> and calling
-its functions. However, to use its full functionality write a class which
-implements one or more of the observer interfaces described in the following
-table. Then, construct an instance of <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> and
-provide it with pointers to observers. </p> <table id="GUID-CC645CB8-B78E-5624-B669-31B5A08F77C2">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Interface</entry>
-<entry>Notification</entry>
-<entry>Method to override</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryPowerObserver</apiname></xref>  </p> </entry>
-<entry><p>Average battery voltage and current consumption </p> </entry>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>PowerMeasurement</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryChargingStatusObserver</apiname></xref>  </p> </entry>
-<entry><p>Charging status </p> </entry>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>ChargingStatusChange</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryChargingCurrentObserver</apiname></xref>  </p> </entry>
-<entry><p>Average charging current </p> </entry>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>AverageChargingCurrentChange</apiname></xref>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryFullChargingTimeObserver</apiname></xref>  </p> </entry>
-<entry><p>Remaining charging time </p> </entry>
-<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>BatteryFullChargingTimeChange</apiname></xref>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>For example, if the application requires periodic measurements
-of average battery voltage and current consumption, it must implement <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryPowerObserver</apiname></xref> and instantiate a <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> object using the <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower::NewL(NULL,
-MHWRMBatteryPowerObserver *)</apiname></xref> method. </p> <p> <b>Note:</b> The battery
-charging observers cannot be passed to <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> using
-a <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>NewL()</apiname></xref> function. Call the dedicated
-function, <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHRMPower::SetBatteryChargingObserver()</apiname></xref>. </p> </section>
-<section><title>Procedure</title> <ol id="GUID-8FD35358-CFCD-5010-AFD8-C277463B2970">
-<li id="GUID-E7A8616C-DA3A-5CC7-831F-3BA977F7C129-GENID-1-8-1-9-1-1-5-1-4-1-5-1-6-1-3-2-2-1"><p><xref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita">Derive
-a class from one or more of the above interfaces</xref>. </p> </li>
-<li id="GUID-E7A8616C-DA3A-5CC7-831F-3BA977F7C129-GENID-1-8-1-9-1-1-5-1-4-1-5-1-6-1-3-2-2-2"><p><xref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita">Implement
-the appropriate observer functions.</xref></p> </li>
-<li id="GUID-6DF35505-CA49-56AB-94E2-4291E2DFF232"><p><xref href="GUID-BC627588-E8C7-4DDB-8313-7C57E0CCD93B.dita">Create
-a power client using <apiname keyref="CHWRMPower">CHWRMPower::NewL()</apiname> or <apiname keyref="CHWRMPower">NewLC()</apiname>.</xref> </p><p><xref href="GUID-7CF7D29B-14A4-432E-BBB2-E3AF283E45E3.dita">You
-can retrieve the battery voltage or consumption information.</xref></p> </li>
-<li id="GUID-300E10F0-5414-55CB-8D9C-2B78E3782C34"><p><xref href="GUID-6CF00375-0A3E-4B85-9BA3-307BBB4ECFC7.dita">Call <apiname keyref="CHWRMPower">CHRMPower::SetBatteryChargingObserver()</apiname>, if
-necessary.</xref></p> </li>
-<li id="GUID-76E7EFB8-0464-5887-B144-1ACDFDE1D7F6"><p><xref href="GUID-FC7F8CFE-F9AD-4442-9289-CCEFEC62DF68.dita">Start
-receiving notification using the appropriate start function(s).</xref> </p> </li>
-<li id="GUID-209732A3-E374-54D2-87F7-5C3C45A23E85"><p><xref href="GUID-6A0D353D-A9B0-46EA-8FDC-1FBBD4A20CFB.dita">Stop
-receiving notification using the appropriate stop function(s).</xref></p> </li>
-</ol> <p> <b>Note: </b> If the notification period exceeds the maximum reporting
-period, set when the HWRM server starts, notification is cancelled. </p> </section>
-</conbody><related-links>
-<link href="GUID-1E55DD3C-D699-5062-88C1-C826F06CD48C.dita"><linktext>Power API</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C3B6E5F6-74DC-5C0E-94C8-B4822F4A2EB6" xml:lang="en"><title>Power
+API Tutorial </title><shortdesc>This tutorial explains how to use the Power API of the HWRM. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Introduction</title> <p>Power API methods can be used by constructing
+an instance of <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> and calling
+its functions. However, to use its full functionality write a class which
+implements one or more of the observer interfaces described in the following
+table. Then, construct an instance of <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> and
+provide it with pointers to observers. </p> <table id="GUID-CC645CB8-B78E-5624-B669-31B5A08F77C2">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Interface</entry>
+<entry>Notification</entry>
+<entry>Method to override</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryPowerObserver</apiname></xref>  </p> </entry>
+<entry><p>Average battery voltage and current consumption </p> </entry>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>PowerMeasurement</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryChargingStatusObserver</apiname></xref>  </p> </entry>
+<entry><p>Charging status </p> </entry>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>ChargingStatusChange</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryChargingCurrentObserver</apiname></xref>  </p> </entry>
+<entry><p>Average charging current </p> </entry>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>AverageChargingCurrentChange</apiname></xref>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryFullChargingTimeObserver</apiname></xref>  </p> </entry>
+<entry><p>Remaining charging time </p> </entry>
+<entry><p> <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>BatteryFullChargingTimeChange</apiname></xref>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>For example, if the application requires periodic measurements
+of average battery voltage and current consumption, it must implement <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>MHWRMBatteryPowerObserver</apiname></xref> and instantiate a <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> object using the <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower::NewL(NULL,
+MHWRMBatteryPowerObserver *)</apiname></xref> method. </p> <p> <b>Note:</b> The battery
+charging observers cannot be passed to <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHWRMPower</apiname></xref> using
+a <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>NewL()</apiname></xref> function. Call the dedicated
+function, <xref href="GUID-4A98138C-4C68-3399-80E8-25CB41E43D5C.dita"><apiname>CHRMPower::SetBatteryChargingObserver()</apiname></xref>. </p> </section>
+<section><title>Procedure</title> <ol id="GUID-8FD35358-CFCD-5010-AFD8-C277463B2970">
+<li id="GUID-E7A8616C-DA3A-5CC7-831F-3BA977F7C129-GENID-1-10-1-9-1-1-5-1-4-1-5-1-6-1-3-2-2-1"><p><xref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita">Derive
+a class from one or more of the above interfaces</xref>. </p> </li>
+<li id="GUID-E7A8616C-DA3A-5CC7-831F-3BA977F7C129-GENID-1-10-1-9-1-1-5-1-4-1-5-1-6-1-3-2-2-2"><p><xref href="GUID-047E3462-F806-4C54-9DC5-6B78907CA949.dita">Implement
+the appropriate observer functions.</xref></p> </li>
+<li id="GUID-6DF35505-CA49-56AB-94E2-4291E2DFF232"><p><xref href="GUID-BC627588-E8C7-4DDB-8313-7C57E0CCD93B.dita">Create
+a power client using <apiname keyref="CHWRMPower">CHWRMPower::NewL()</apiname> or <apiname keyref="CHWRMPower">NewLC()</apiname>.</xref> </p><p><xref href="GUID-7CF7D29B-14A4-432E-BBB2-E3AF283E45E3.dita">You
+can retrieve the battery voltage or consumption information.</xref></p> </li>
+<li id="GUID-300E10F0-5414-55CB-8D9C-2B78E3782C34"><p><xref href="GUID-6CF00375-0A3E-4B85-9BA3-307BBB4ECFC7.dita">Call <apiname keyref="CHWRMPower">CHRMPower::SetBatteryChargingObserver()</apiname>, if
+necessary.</xref></p> </li>
+<li id="GUID-76E7EFB8-0464-5887-B144-1ACDFDE1D7F6"><p><xref href="GUID-FC7F8CFE-F9AD-4442-9289-CCEFEC62DF68.dita">Start
+receiving notification using the appropriate start function(s).</xref> </p> </li>
+<li id="GUID-209732A3-E374-54D2-87F7-5C3C45A23E85"><p><xref href="GUID-6A0D353D-A9B0-46EA-8FDC-1FBBD4A20CFB.dita">Stop
+receiving notification using the appropriate stop function(s).</xref></p> </li>
+</ol> <p> <b>Note: </b> If the notification period exceeds the maximum reporting
+period, set when the HWRM server starts, notification is cancelled. </p> </section>
+</conbody><related-links>
+<link href="GUID-1E55DD3C-D699-5062-88C1-C826F06CD48C.dita"><linktext>Power API</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e200042_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C3D0BA4A-AEC5-5002-916E-CB3F9FE5AC27_d0e205050_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-3-1-1-3-1-3-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-3-1-1-3-1-3-1-3-1" xml:lang="en"><title>Control and
-animation framework examples</title><shortdesc>This section provides example code for the Control and Animation
-framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-6-1-1-4-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C459D462-772A-58FC-8C46-B7559436C12C-GENID-1-8-1-6-1-1-4-1-9-1" xml:lang="en"><title>Control and
-animation framework examples</title><shortdesc>This section provides example code for the Control and Animation
-framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-C459D462-772A-58FC-8C46-B7559436C12C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C459D462-772A-58FC-8C46-B7559436C12C" xml:lang="en"><title>Control and
+animation framework examples</title><shortdesc>This section provides example code for the Control and Animation
+framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e244786_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C47514B1-2DD2-5E75-962A-B8E6358E9880_d0e248523_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e58870_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e59093_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64417_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4805C18-9BE7-47BA-9E50-D5F9CAAD36B7_d0e64639_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F" xml:lang="en"><title>Requesting
-RAM Asynchronously</title><shortdesc>This section describes how an application can request for free
-RAM asynchronously.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-6C258B11-CE78-42F2-828D-E9C68598C193"><p>Perform the steps
-described in <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Allowing
-Large Memory Allocation</xref>.</p></prereq>
-<context id="GUID-D36C0590-A436-458B-B7A6-F2E8577E26C6">       <p>Requesting
-free RAM asynchronously is recommended as the application is not blocked during
-the method call handling.</p>     </context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3-1"><cmd>Start an asynchronous
-request for a block of memory.</cmd>
-<info><codeblock xml:space="preserve">CMemoryAllocatingObject::StartFunctionalityRequiringAllocationL()
-    {
-    User::LeaveIfError(iOomMonitorSession.Connect());
-    iMemoryRequester = CMemoryRequester::NewL(iOomMonitorSession, *this);
-    iMemoryRequester-&gt;Start(KLargeValueToAllocate);
-    }
-</codeblock></info>
-</step>
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3-2"><cmd>Implement the active
-object and request for free memory.</cmd>
-<info><codeblock xml:space="preserve">void CMemoryRequester::Start(TInt aBytesRequested)
-    {
-    iOomMonitorSession.RequestFreeMemory(aBytesRequested, iStatus);    
-    SetActive();
-    }
-</codeblock></info>
-</step>
-</steps>
-<example><p>The following code snippet illustrates an asynchronous request
-for free RAM allocation: </p><codeblock xml:space="preserve">const TInt KLargeValueToAllocate = 2097152; //2MB
-
-// Start an asynchronous request for block of memory
-CMemoryAllocatingObject::StartFunctionalityRequiringAllocationL()
-    {
-    User::LeaveIfError(iOomMonitorSession.Connect());
-    iMemoryRequester = CMemoryRequester::NewL(iOomMonitorSession, *this);
-    iMemoryRequester-&gt;Start(KLargeValueToAllocate);
-    }
-
-// Called when the asynchronous request is completed
-CMemoryAllocatingObject::MemoryRequestCompleteL(TInt aResult)
-    {
-    if (aResult == KErrNone)
-        {
-        DoFunctionRequiring_KLargeValueToAllocate_BytesL();
-        }
-    iOomMonitorSession.Close();
-    }
-The active object implementation is the following:
-
-// Start an asynchronous request for block of memory
-void CMemoryRequester::Start(TInt aBytesRequested)
-    {
-    iOomMonitorSession.RequestFreeMemory(aBytesRequested, iStatus);    
-    SetActive();
-    }
-    
-
-// Called when the asynchronous request is completed
-void CMemoryRequester::RunL()
-    {
-    iObserver.MemoryRequestCompleteL(iStatus.Int());
-    }
-</codeblock></example>
-</taskbody><related-links>
-<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
-Priority</linktext></link>
-<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
-Overview</linktext></link>
-<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-C4C8395E-F982-4D6A-88D3-28EDC494817F" xml:lang="en"><title>Requesting
+RAM Asynchronously</title><shortdesc>This section describes how an application can request for free
+RAM asynchronously.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-6C258B11-CE78-42F2-828D-E9C68598C193"><p>Perform the steps
+described in <xref href="GUID-50CA5439-29A1-426C-83BA-EC048FE86CDE.dita">Allowing
+Large Memory Allocation</xref>.</p></prereq>
+<context id="GUID-D36C0590-A436-458B-B7A6-F2E8577E26C6">       <p>Requesting
+free RAM asynchronously is recommended as the application is not blocked during
+the method call handling.</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3-1"><cmd>Start an asynchronous
+request for a block of memory.</cmd>
+<info><codeblock xml:space="preserve">CMemoryAllocatingObject::StartFunctionalityRequiringAllocationL()
+    {
+    User::LeaveIfError(iOomMonitorSession.Connect());
+    iMemoryRequester = CMemoryRequester::NewL(iOomMonitorSession, *this);
+    iMemoryRequester-&gt;Start(KLargeValueToAllocate);
+    }
+</codeblock></info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-10-1-1-8-1-5-1-6-1-6-1-5-1-3-3-2"><cmd>Implement the active
+object and request for free memory.</cmd>
+<info><codeblock xml:space="preserve">void CMemoryRequester::Start(TInt aBytesRequested)
+    {
+    iOomMonitorSession.RequestFreeMemory(aBytesRequested, iStatus);    
+    SetActive();
+    }
+</codeblock></info>
+</step>
+</steps>
+<example><p>The following code snippet illustrates an asynchronous request
+for free RAM allocation: </p><codeblock xml:space="preserve">const TInt KLargeValueToAllocate = 2097152; //2MB
+
+// Start an asynchronous request for block of memory
+CMemoryAllocatingObject::StartFunctionalityRequiringAllocationL()
+    {
+    User::LeaveIfError(iOomMonitorSession.Connect());
+    iMemoryRequester = CMemoryRequester::NewL(iOomMonitorSession, *this);
+    iMemoryRequester-&gt;Start(KLargeValueToAllocate);
+    }
+
+// Called when the asynchronous request is completed
+CMemoryAllocatingObject::MemoryRequestCompleteL(TInt aResult)
+    {
+    if (aResult == KErrNone)
+        {
+        DoFunctionRequiring_KLargeValueToAllocate_BytesL();
+        }
+    iOomMonitorSession.Close();
+    }
+The active object implementation is the following:
+
+// Start an asynchronous request for block of memory
+void CMemoryRequester::Start(TInt aBytesRequested)
+    {
+    iOomMonitorSession.RequestFreeMemory(aBytesRequested, iStatus);    
+    SetActive();
+    }
+    
+
+// Called when the asynchronous request is completed
+void CMemoryRequester::RunL()
+    {
+    iObserver.MemoryRequestCompleteL(iStatus.Int());
+    }
+</codeblock></example>
+</taskbody><related-links>
+<link href="GUID-CE308C71-D8B2-43B3-97FD-B868285ED5FB.dita"><linktext>OOM Monitor
+Priority</linktext></link>
+<link href="GUID-39A8FBC9-5FD6-4F92-B71E-5C5438ECFD46.dita"><linktext>OOM Monitor
+Overview</linktext></link>
+<link href="GUID-88752800-83BD-4845-80A0-6B65D8D81924.dita"><linktext>OOM Monitor
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e165576_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e172177_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e169146_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C4D0F943-442D-5F3B-BB5E-6B52C33ABBC6_d0e175747_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,109 +1,107 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A" xml:lang="en"><title>Stylus
-pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Stylus pop-up menu is the primary menu for showing item-specific options.
-Item-specific options are placed in the stylus pop-up menu that is activated
-with touch down and hold on an item. It can be attached to almost all the
-items. </p>
-<fig id="GUID-45264A92-D57F-41D5-8337-0701D90C84AE">
-<title>Stylus pop-up menu opened from a preview pop-up. A tap on any other
-name or even anywhere else on the screen closes the stylus pop-up menu without
-moving the focus. </title>
-<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e67952_href.png" placement="inline"/>
-</fig>
-<p>It is a separate pop-up mainly used when a view cannot offer dynamic functions,
-and the pop-up only offers tap-enabled functions. The stylus pop-up menu can
-also be used directly on top of applications. For example, on an image in
-Browser, the stylus pop-up menu can be used for offering <uicontrol>Save as…</uicontrol> and
-similar options.</p>
-<p>Following are the guidelines to be followed while designing the menu:</p>
-<ul>
-<li><p>Item-specific pop-up menu should not be used with buttons and multi-selection
-list or grid items.</p></li>
-<li><p>Stylus pop-up menu should have only six items.</p></li>
-<li><p>If used for items other than item-specific menu items, it is recommended
-to open the pop-up with touch down and hold.</p></li>
-<li><p>Stylus pop-up menu has no sub-menus.</p></li>
-<li><p>Functions that are performed via touch down and release are not duplicated
-in the stylus pop-up menu. For example, 'Open' or 'Change' should not be in
-the stylus pop-up menu.</p></li>
-</ul>
-<p> Background is not dimmed when the stylus pop-up menu is shown. The menu
-disappears automatically after six seconds (or as soon as the user selects
-an item or taps outside the pop-up area).</p>
-<p>The stylus pop-up menu is scrollable and a scrollbar is added if the number
-of items exceeds what fits the component.</p>
-<table id="GUID-28E7DE47-C3A1-4642-A9CF-6E24B824D53E"><title>Default touch
-events for Stylus pop-up menu</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>The item is activated.</p></entry>
-<entry><p>Highlight disappears and stylus pop-up is closed. </p><p>Tactile:
-Basic list effect is provided with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside the stylus pop-up</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move out of the stylus pop-up menu</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release out of menu area</p></entry>
-<entry><p>Stylus pop-up menu disappears. No selection is made.</p></entry>
-<entry><p>Tactile: Opens via long touch, provides only the increasing long
-touch effect during the touch down and hold event. No additional pop-up effect
-is provided when the menu opens.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move horizontally</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Highlight stays on the item that is touched down before moving horizontally. </p><p>Tactile:
-No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-0F4419D9-0C2D-4718-8199-399412443B2C"><title>Using
-stylus pop-up menus in C++ applications</title><p>The API to use for creating
-a stylus pop-up menu is the <xref href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita">Stylus
-pop-up menu API</xref>.</p><p>For implementation information, see <xref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita">Displaying
-commands in a context menu</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A" xml:lang="en"><title>Stylus
+pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Stylus pop-up menu is the primary menu for showing item-specific options.
+Application only needs to tag items to be item-specific and the application
+framework handles the remaining tasks. Item-specific options can
+be attached to almost all the items. </p>
+<fig id="GUID-45264A92-D57F-41D5-8337-0701D90C84AE">
+<title>Stylus pop-up menu opened from a list.</title>
+<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e62839_href.png" placement="inline"/>
+</fig>
+<p>Stylus pop-up is mainly used to offer dynamic functions, and the functions
+supported by touch-enabled devices. The stylus pop-up menu can also be used
+directly on top of applications. For example, on an image in Browser, the
+stylus pop-up menu can be used for offering <uicontrol>Save as…</uicontrol> and
+similar options.</p>
+<p>Following are the guidelines to be followed while designing the menu:</p>
+<ul>
+<li><p>Item-specific pop-up menu should not be used with buttons and multi-selection
+list or grid items.</p></li>
+<li><p>Stylus pop-up menu should have only six items.</p></li>
+<li><p>If used for items other than item-specific menu items, it is recommended
+to open the pop-up with touch down and hold.</p></li>
+<li><p>Stylus pop-up menu has no sub-menus.</p></li>
+<li><p>Functions that are performed via touch down and release are not duplicated
+in the stylus pop-up menu. For example, 'Open' or 'Change' should not be in
+the stylus pop-up menu.</p></li>
+</ul>
+<p> Background is not dimmed when the stylus pop-up menu is shown. The menu
+disappears automatically after six seconds (or as soon as the user selects
+an item or taps outside the pop-up area).</p>
+<p>The stylus pop-up menu is scrollable and a scrollbar is added if the number
+of items exceeds what fits the component.</p>
+<table id="GUID-28E7DE47-C3A1-4642-A9CF-6E24B824D53E"><title>Default touch
+events for Stylus pop-up menu</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>The item is activated.</p></entry>
+<entry><p>Highlight disappears and stylus pop-up is closed. </p><p>Tactile:
+Basic list effect is provided with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside the stylus pop-up</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out of the stylus pop-up menu</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release out of menu area</p></entry>
+<entry><p>Stylus pop-up menu disappears. No selection is made.</p></entry>
+<entry><p>Tactile: Opens via long touch, provides only the increasing long
+touch effect during the touch down and hold event. No additional pop-up effect
+is provided when the menu opens.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move horizontally</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Highlight stays on the item that is touched down before moving horizontally. </p><p>Tactile:
+No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-0F4419D9-0C2D-4718-8199-399412443B2C"><title>Using
+stylus pop-up menus in applications</title><p>The API to use for creating
+a stylus pop-up menu is the <xref href="GUID-B8BCC4F0-7F55-4728-B7EA-3280CA822C91.dita">Stylus
+pop-up menu API</xref>.</p><p>For implementation information, see <xref href="GUID-8F04D882-B846-4A0D-B858-15FDA85758FA.dita">Displaying
+commands in a context menu</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-C4FDDBD9-2B29-5A59-AA29-855D1BE1354A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C4FDDBD9-2B29-5A59-AA29-855D1BE1354A" xml:lang="en"><title>Scroll:
+simple scrolling</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p>The <filepath>Scroll</filepath> example
+demonstrates simple scrolling using pointer repeat events. It uses <codeph>RWindowBase::RequestPointerRepeatEvent()</codeph>,
+which ensures that holding down the pointer (or either mouse button on the
+Emulator) results in a smooth scroll. </p> </section>
+<section id="GUID-A550C719-3977-5921-A6EE-EAAEBA7D7267"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-43f9accb-6fe0-493d-9d43-37ee78bfd0bf.zip" scope="external">Scroll.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-43f9accb-6fe0-493d-9d43-37ee78bfd0bf.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section><title>Class Summary</title><p><xref href="GUID-98C5818D-DC77-38FF-921E-13BF54755CE2.dita"><apiname>RWindowHandle </apiname></xref></p><p><xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita"><apiname>RWindowTreeNode</apiname></xref></p><p><xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref></p><p><xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p></section>
+<section><title>Running on the emulator</title> <p>Clicking the left mouse
+button causes the line to scroll up, clicking the right mouse button causes
+it to scroll down. </p> </section>
+<section><title>Running on the target phone</title> <p>Tapping on the numbered
+window causes the line to scroll up. The behaviour invoked by the right mouse
+button click is unavailable on the target phone. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51" xml:lang="en"><title>Structure
-of a heap</title><shortdesc>A heap consists of two lists of cells; the list of allocated cells
-and the list of free cells.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A heap simply consists of two lists of cells; one is the list of allocated
-cells and the other the list of free cells. Each list is anchored in the heap
-object.</p>
-<p>A cell consists of a cell header followed by the body of the cell itself.
-The body of the cell is the area of memory which is considered allocated.</p>
-<p>The cell header is a struct of type <codeph>RHeap::SCell</codeph> defined
-as part of the <codeph>RHeap</codeph> class in <filepath>e32std.h</filepath>.</p>
-<p>The following diagram shows a typical mix of free and allocated cells.</p>
-<fig id="GUID-A066C7F2-B6E9-5F64-8A00-F2AC5D16B585">
-<title>Example of the allocated and free cells in a heap</title>
-<image href="GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e244031_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C549EC51-D81F-5AEC-80EA-EF83B2D9AF51" xml:lang="en"><title>Structure
+of a heap</title><shortdesc>A heap consists of two lists of cells; the list of allocated cells
+and the list of free cells.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A heap simply consists of two lists of cells; one is the list of allocated
+cells and the other the list of free cells. Each list is anchored in the heap
+object.</p>
+<p>A cell consists of a cell header followed by the body of the cell itself.
+The body of the cell is the area of memory which is considered allocated.</p>
+<p>The cell header is a struct of type <codeph>RHeap::SCell</codeph> defined
+as part of the <codeph>RHeap</codeph> class in <filepath>e32std.h</filepath>.</p>
+<p>The following diagram shows a typical mix of free and allocated cells.</p>
+<fig id="GUID-A066C7F2-B6E9-5F64-8A00-F2AC5D16B585">
+<title>Example of the allocated and free cells in a heap</title>
+<image href="GUID-4B4110D9-0CAA-5CA1-A994-9DAF501119E4_d0e240294_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e4697_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C588B869-6940-42B2-84F9-71467F6A4306_d0e5972_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C5AC5FAF-A55F-44B5-BB43-858861BAB11E-master.png has changed
Binary file Symbian3/SDK/Source/GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e230564_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e234301_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e314550_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C5DDFD3F-7778-56D6-A10B-741959206C5F_d0e320944_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,104 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF" xml:lang="en"><title>Querying
-a database</title><shortdesc>This tutorial shows you how to create a simple SQL database query. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-0A238212-37C9-5B4B-A449-F8C81CE971A8"><title>Introduction</title> <p>This
-tutorial shows you how to wrap a SQL query statement into an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object
-to query a database. </p> <p>The SQL statement used for the tutorial is shown
-here: </p> <p><userinput><parmname>SELECT</parmname> <cmdname>name</cmdname>  <parmname>FROM</parmname> <cmdname>countries</cmdname>  <parmname>WHERE</parmname> <cmdname>population &gt; 10</cmdname> </userinput> </p> <p>The (<codeph>SELECT</codeph>)
-results of the query will be the value in the '<codeph>name</codeph>' column <codeph>FROM</codeph> the
-'<codeph>countries</codeph>' table <codeph>WHERE</codeph> the value of the
-'<codeph>population</codeph>' column of the same record is <codeph>&gt;</codeph> the
-value specified. </p> </section>
-<section id="GUID-AF611AF2-85EC-4F02-B43F-A0EFAAEA9CAB"><title>Procedure</title> <ol id="GUID-2C39BABE-F2D4-510A-A406-D2C48412B6F8">
-<li id="GUID-56D39707-7D55-5843-8966-36223BB20EFC"><p>Prepare the Statement: </p> <p>The
-steps to prepare a SQL statement are shown here. </p> <ol id="GUID-8B003014-94BB-5B4E-9D9C-8098A3642EA6">
-<li id="GUID-A988E274-8B21-5DCB-A616-06CD3C6F5680"><p>Set up some constants
-used by the SQL statement object to define the SQL query: </p> <p><codeblock id="GUID-37E8467F-7AFC-5DBA-AF29-1A910E5CABC5" xml:space="preserve">_LIT(kName,"name");
-_LIT(kPopulation,"population");
-_LIT(kVal,":Value");
-_LIT(kQueryString,"SELECT name FROM countries WHERE population &gt; :Value");</codeblock> </p> <p>This
-defines the query parameters. </p> </li>
-<li id="GUID-39F138F2-591F-586E-A06F-91981A1F6388"><p>Instantiate the <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> SQL
-statement: </p> <p><codeblock id="GUID-41EB4CD0-E131-5C85-B799-5940853B9F60" xml:space="preserve">RSqlStatement myStatement;</codeblock> </p> </li>
-<li id="GUID-5FD16C7C-591D-5006-A177-C899314AA798"><p>Define the indices to
-be used in the search: </p> <p><codeblock id="GUID-351298BC-348F-57E4-BC30-E6706385D8AA" xml:space="preserve">TInt nameIndex = myStatement.ColumnIndex(kName); 
-TInt populationIndex = myStatement.ColumnIndex(kPopulation);</codeblock> </p> </li>
-<li id="GUID-17A647B3-6E8C-54FB-A21E-23425AD343FD"><p>Set the 32-bit integer
-value for the SQL parameter 'value': </p> <p><codeblock id="GUID-838D0598-1E98-57E8-AC66-68AA590EDFBA" xml:space="preserve">TInt parameterIndex = myStatement.ParameterIndex(kVal);
-err = myStatement.BindInt(parameterIndex,10);</codeblock> </p> <p>The SQL
-parameter to which the integer is being assigned is identified by the constant <codeph>kVal</codeph> from: </p> <p><codeblock id="GUID-71AB4003-65D7-5035-ACFB-E106ACF2AB15" xml:space="preserve">_LIT(kVal,":Value");
-...
-...WHERE population &gt; :Value")  </codeblock> </p> <p>The parameter plus constant,
-along with other parts of the statement, are converted into: </p> <p>in SQL
-syntax. </p> </li>
-<li id="GUID-AEBF05BB-08E7-5628-8B5F-8CD30F08D638"><p>Prepare the statement: </p> <p><codeblock id="GUID-C518EA02-81AC-5B93-9FAF-1BDC987985DB" xml:space="preserve">TInt err;
-err = myStatement.Prepare(countriesDatabase,kQueryString);</codeblock> </p> <p>This
-creates a parameterised SQL statement executable. </p> </li>
-</ol> </li>
-<li id="GUID-1153684C-697C-5C84-A15C-99C96820C8FB"><p>Run the SQL query: </p> <ol id="GUID-186BD930-F9A1-5244-BEA8-3774DC6D3F91">
-<li id="GUID-1D0B5C50-E1C6-51DC-8CCE-2C2B4C33F7F6"><p>Search the records until
-a match is found: </p> <p><codeblock id="GUID-DEF39928-2DBB-5017-A47C-1BB6475B44B7" xml:space="preserve">while((err = myStatement.Next()) == KSqlAtRow)
- {
-  Do something with the query results
- }</codeblock> </p> <p>Next() fires the executable SQL statement and stops
-at and returns the matched record. </p> <p>Do something if no results are
-found. </p> <p><codeblock id="GUID-ADD04732-1D9C-5716-B885-14D92D341149" xml:space="preserve">if(err == KSqlAtEnd)
-    &lt;OK - no more records&gt;;
-else
-    &lt;process the error&gt;;</codeblock> </p> </li>
-</ol> </li>
-<li id="GUID-26B8C900-50D3-59D2-BACD-61C825B2A3A4"><p>The query is done and
-you have the results. In this section we look at a simple way to do something
-with the results and we close the SQL statement object. </p> <ol id="GUID-79A55F5A-E42B-5AA2-B451-080E36100E0A">
-<li id="GUID-5F24A346-F2DA-5544-9AB2-DD046E4D80DD"><p>Get the results of the
-search: </p> <p><codeblock id="GUID-86F158DF-88FF-5128-9B6E-461D6C3163D7" xml:space="preserve">TPtrC myData;
-myData = myStatement.ColumnTextL(nameIndex);
-RDebug::Print(_L("Name=%d\n"), myData);</codeblock> </p> </li>
-<li id="GUID-0C40380F-9A06-5546-A366-33EBAAA5E9D6"><p>Close the SQL search
-statement: </p> <p><codeblock id="GUID-1D856776-5557-57EC-8047-270A751405B1" xml:space="preserve">err = myStatement.Close(); </codeblock> </p> <p>When
-the database search is finished the object should be closed to free up resources. </p> </li>
-</ol> </li>
-</ol><p> This section deals with finding and returning the first matching
-record</p><p>  only. Getting all matches in a database is briefly discussed
-at the end of this</p><p> section. </p> </section>
-
-<section id="GUID-8F3A39B6-6514-5A48-BE2E-7893D7625A9C-GENID-1-8-1-21-1-1-6-1-1-9-1-8-1-8-1-3-3"><p>Now that you have
-performed a basic database query you can start thinking about more advanced
-querying options. The following will show you how: </p> <ul>
-<li id="GUID-3F4608F9-92E9-52AA-8843-7535688A0D57"><p> <xref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita">Querying
-Databases: Basic</xref>  </p> </li>
-<li id="GUID-02919F4F-2F55-5446-9E5B-A1A8CBE9D017"><p> <xref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita">Reading
-to a buffer</xref>  </p> </li>
-<li id="GUID-2A715BF4-6BE3-50A0-8F46-DBD28C1494A7"><p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading
-to memory</xref>  </p> </li>
-<li id="GUID-A4C14656-EE85-53B8-8859-F7F56BC49004"><p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading
-to a data stream</xref>  </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
-</link>
-<link href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita"><linktext>Inserting
-a row into a                 table</linktext></link>
-<link href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita"><linktext>Deleting
-Rows from a Table</linktext></link>
-<link href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita"><linktext>Reading to
-a                 buffer</linktext></link>
-<link href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita"><linktext>Reading to
-memory</linktext></link>
-<link href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita"><linktext>Reading to
-a data                 stream</linktext></link>
-<link href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita"><linktext>Writing to
-a data                 stream</linktext></link>
-<link href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita"><linktext>Scalar queries</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C60DAE3D-7FB9-5619-9E5D-476A430705AF" xml:lang="en"><title>Querying
+a database</title><shortdesc>This tutorial shows you how to create a simple SQL database query. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-0A238212-37C9-5B4B-A449-F8C81CE971A8"><title>Introduction</title> <p>This
+tutorial shows you how to wrap a SQL query statement into an <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> object
+to query a database. </p> <p>The SQL statement used for the tutorial is shown
+here: </p> <p><userinput><parmname>SELECT</parmname> <cmdname>name</cmdname>  <parmname>FROM</parmname> <cmdname>countries</cmdname>  <parmname>WHERE</parmname> <cmdname>population &gt; 10</cmdname> </userinput> </p> <p>The (<codeph>SELECT</codeph>)
+results of the query will be the value in the '<codeph>name</codeph>' column <codeph>FROM</codeph> the
+'<codeph>countries</codeph>' table <codeph>WHERE</codeph> the value of the
+'<codeph>population</codeph>' column of the same record is <codeph>&gt;</codeph> the
+value specified. </p> </section>
+<section id="GUID-AF611AF2-85EC-4F02-B43F-A0EFAAEA9CAB"><title>Procedure</title> <ol id="GUID-2C39BABE-F2D4-510A-A406-D2C48412B6F8">
+<li id="GUID-56D39707-7D55-5843-8966-36223BB20EFC"><p>Prepare the Statement: </p> <p>The
+steps to prepare a SQL statement are shown here. </p> <ol id="GUID-8B003014-94BB-5B4E-9D9C-8098A3642EA6">
+<li id="GUID-A988E274-8B21-5DCB-A616-06CD3C6F5680"><p>Set up some constants
+used by the SQL statement object to define the SQL query: </p> <p><codeblock id="GUID-37E8467F-7AFC-5DBA-AF29-1A910E5CABC5" xml:space="preserve">_LIT(kName,"name");
+_LIT(kPopulation,"population");
+_LIT(kVal,":Value");
+_LIT(kQueryString,"SELECT name FROM countries WHERE population &gt; :Value");</codeblock> </p> <p>This
+defines the query parameters. </p> </li>
+<li id="GUID-39F138F2-591F-586E-A06F-91981A1F6388"><p>Instantiate the <xref href="GUID-0176BF07-DF94-3259-8F90-DE030E35CE9A.dita"><apiname>RSqlStatement</apiname></xref> SQL
+statement: </p> <p><codeblock id="GUID-41EB4CD0-E131-5C85-B799-5940853B9F60" xml:space="preserve">RSqlStatement myStatement;</codeblock> </p> </li>
+<li id="GUID-5FD16C7C-591D-5006-A177-C899314AA798"><p>Define the indices to
+be used in the search: </p> <p><codeblock id="GUID-351298BC-348F-57E4-BC30-E6706385D8AA" xml:space="preserve">TInt nameIndex = myStatement.ColumnIndex(kName); 
+TInt populationIndex = myStatement.ColumnIndex(kPopulation);</codeblock> </p> </li>
+<li id="GUID-17A647B3-6E8C-54FB-A21E-23425AD343FD"><p>Set the 32-bit integer
+value for the SQL parameter 'value': </p> <p><codeblock id="GUID-838D0598-1E98-57E8-AC66-68AA590EDFBA" xml:space="preserve">TInt parameterIndex = myStatement.ParameterIndex(kVal);
+err = myStatement.BindInt(parameterIndex,10);</codeblock> </p> <p>The SQL
+parameter to which the integer is being assigned is identified by the constant <codeph>kVal</codeph> from: </p> <p><codeblock id="GUID-71AB4003-65D7-5035-ACFB-E106ACF2AB15" xml:space="preserve">_LIT(kVal,":Value");
+...
+...WHERE population &gt; :Value")  </codeblock> </p> <p>The parameter plus constant,
+along with other parts of the statement, are converted into: </p> <p>in SQL
+syntax. </p> </li>
+<li id="GUID-AEBF05BB-08E7-5628-8B5F-8CD30F08D638"><p>Prepare the statement: </p> <p><codeblock id="GUID-C518EA02-81AC-5B93-9FAF-1BDC987985DB" xml:space="preserve">TInt err;
+err = myStatement.Prepare(countriesDatabase,kQueryString);</codeblock> </p> <p>This
+creates a parameterised SQL statement executable. </p> </li>
+</ol> </li>
+<li id="GUID-1153684C-697C-5C84-A15C-99C96820C8FB"><p>Run the SQL query: </p> <ol id="GUID-186BD930-F9A1-5244-BEA8-3774DC6D3F91">
+<li id="GUID-1D0B5C50-E1C6-51DC-8CCE-2C2B4C33F7F6"><p>Search the records until
+a match is found: </p> <p><codeblock id="GUID-DEF39928-2DBB-5017-A47C-1BB6475B44B7" xml:space="preserve">while((err = myStatement.Next()) == KSqlAtRow)
+ {
+  Do something with the query results
+ }</codeblock> </p> <p>Next() fires the executable SQL statement and stops
+at and returns the matched record. </p> <p>Do something if no results are
+found. </p> <p><codeblock id="GUID-ADD04732-1D9C-5716-B885-14D92D341149" xml:space="preserve">if(err == KSqlAtEnd)
+    &lt;OK - no more records&gt;;
+else
+    &lt;process the error&gt;;</codeblock> </p> </li>
+</ol> </li>
+<li id="GUID-26B8C900-50D3-59D2-BACD-61C825B2A3A4"><p>The query is done and
+you have the results. In this section we look at a simple way to do something
+with the results and we close the SQL statement object. </p> <ol id="GUID-79A55F5A-E42B-5AA2-B451-080E36100E0A">
+<li id="GUID-5F24A346-F2DA-5544-9AB2-DD046E4D80DD"><p>Get the results of the
+search: </p> <p><codeblock id="GUID-86F158DF-88FF-5128-9B6E-461D6C3163D7" xml:space="preserve">TPtrC myData;
+myData = myStatement.ColumnTextL(nameIndex);
+RDebug::Print(_L("Name=%d\n"), myData);</codeblock> </p> </li>
+<li id="GUID-0C40380F-9A06-5546-A366-33EBAAA5E9D6"><p>Close the SQL search
+statement: </p> <p><codeblock id="GUID-1D856776-5557-57EC-8047-270A751405B1" xml:space="preserve">err = myStatement.Close(); </codeblock> </p> <p>When
+the database search is finished the object should be closed to free up resources. </p> </li>
+</ol> </li>
+</ol><p> This section deals with finding and returning the first matching
+record</p><p>  only. Getting all matches in a database is briefly discussed
+at the end of this</p><p> section. </p> </section>
+
+<section id="GUID-8F3A39B6-6514-5A48-BE2E-7893D7625A9C-GENID-1-10-1-22-1-1-6-1-1-9-1-8-1-8-1-3-3"><p>Now that you have
+performed a basic database query you can start thinking about more advanced
+querying options. The following will show you how: </p> <ul>
+<li id="GUID-3F4608F9-92E9-52AA-8843-7535688A0D57"><p> <xref href="GUID-2610E11C-26FA-538E-A3E1-34AADA35F20B.dita">Querying
+Databases: Basic</xref>  </p> </li>
+<li id="GUID-02919F4F-2F55-5446-9E5B-A1A8CBE9D017"><p> <xref href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita">Reading
+to a buffer</xref>  </p> </li>
+<li id="GUID-2A715BF4-6BE3-50A0-8F46-DBD28C1494A7"><p> <xref href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita">Reading
+to memory</xref>  </p> </li>
+<li id="GUID-A4C14656-EE85-53B8-8859-F7F56BC49004"><p> <xref href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita">Reading
+to a data stream</xref>  </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-22844C28-AB5B-5A6F-8863-7269464684B4.dita"><linktext>SQL Overview</linktext>
+</link>
+<link href="GUID-CCB9C61B-FB28-5CD9-A366-4A9584097897.dita"><linktext>Inserting
+a row into a                 table</linktext></link>
+<link href="GUID-B61EA8C5-0966-51DE-AC73-01DD34C7D3CC.dita"><linktext>Deleting
+Rows from a Table</linktext></link>
+<link href="GUID-72511204-FC90-54AA-9E2E-833318020318.dita"><linktext>Reading to
+a                 buffer</linktext></link>
+<link href="GUID-3CCA6503-54DA-5558-85DC-93A22A81F565.dita"><linktext>Reading to
+memory</linktext></link>
+<link href="GUID-183280EE-0C57-54FE-8ABB-E1CC3BDE525B.dita"><linktext>Reading to
+a data                 stream</linktext></link>
+<link href="GUID-B9A3B17E-BDEB-5F66-968C-080335A721AC.dita"><linktext>Writing to
+a data                 stream</linktext></link>
+<link href="GUID-C474376E-1766-5781-B5BF-3786C5B4D72E.dita"><linktext>Scalar queries</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C60DC070-572B-5960-B394-550426FDB909.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C60DC070-572B-5960-B394-550426FDB909.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,199 +1,199 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C60DC070-572B-5960-B394-550426FDB909" xml:lang="en"><title> Advanced
-Pointer Tutorial</title><shortdesc>This tutorial provides step-by-step instructions and sample code
-to help you write applications using advanced pointers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
-audience</b>: Application developers. </p>
-<section><title>Required background </title> <p>This topic builds on the material
-in the following topics: </p> <ul>
-<li id="GUID-C4209FBD-3860-5F4B-8458-87D22D483953"><p><xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
-Pointer Overview</xref>  </p> </li>
-<li id="GUID-9D3C3B31-F43A-5201-A1EC-A1F2848CFF43"><p><xref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita">Advanced
-Pointer States and Event Communication</xref>  </p> </li>
-</ul> </section>
-<section><title>Using advanced pointers</title> <p>This topic covers the following: </p> <ul>
-<li id="GUID-C3AD43AA-09C0-5BA2-8496-5B87D40C89F5"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-8CBE862B-0C1D-5088-89B7-9B3EC898E4FC">Enabling multi-touch for a window</xref>  </p> </li>
-<li id="GUID-177323F2-55C6-56D9-B3D2-A8DDACF69E10"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-C026DAB9-C11C-5D29-A1EA-6730E914250F">Getting Z coordinates from TPointerEvent</xref>  </p> </li>
-<li id="GUID-91CEA92C-A692-5853-96F0-625A76B7DC8D"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-B7057F69-191F-5AA4-8C61-EBECE66D92F6"> Pinch zooming</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-8CBE862B-0C1D-5088-89B7-9B3EC898E4FC"><title>Enabling multi-touch
-in a window</title> <ol id="GUID-210D17A8-4869-5F9B-B71C-672101AC591C">
-<li id="GUID-81A2AC5C-7837-5216-8F47-FC5959C27522"><p> <xref href="GUID-637F82AF-0CF9-3C85-834D-7C1A0866DF87.dita"><apiname>RWindow</apiname></xref> provides
-a handle to a standard window. Call <codeph>RWindow</codeph> to create an
-instance of a window. </p> <codeblock id="GUID-0E31C3F6-3719-5F16-9F74-C405850604B8" xml:space="preserve">
-RWindow window(ws);
-
-User::LeaveIfError(window.Construct(wg, reinterpret_cast&lt;TUint32&gt;(&amp;wg) + 1));
-</codeblock> </li>
-<li id="GUID-B67D3702-1A8F-5C6A-AB0F-FEA7C4D04A07"><p>Call <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-05293539-F1B0-3C7D-BB14-3FD42F23D5C8"><apiname>RWindow::EnableAdvancedPointers()</apiname></xref> to
-enable advanced pointers. Then call <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita#GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34/GUID-4E02165A-DFCC-3D18-BB18-18726B28E90A"><apiname>RWindowBase::Activate()</apiname></xref> to
-display the window and enable the window to receive events. <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> inherits
-from <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>, so you can call the <codeph>Activate()</codeph> function
-on <codeph>RWindow</codeph>. </p> <codeblock id="GUID-DB2FB570-2BB0-5C5F-9E4F-076D6A0E469E" xml:space="preserve">
-window.EnableAdvancedPointers();
-window.Activate();
-</codeblock> <p>When an application needs to receive advanced pointer events
-in a window, it must call <codeph>RWindowBase::EnableAdvancedPointers()</codeph> for
-the window <i>before</i> it is activated. </p> <p>If advanced pointers are
-not enabled for a window, it receives only standard <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref> information
-from a single pointer with no pressure and proximity data. The single pointer
-environment rules describe the way in which pointer events coming from many
-pointers in the multi-pointer model are transformed into events of one pointer.
-They are necessary to ensure that old single-pointer applications work in
-a multi-touch environment intuitively and as expected by the user. </p> <p>However,
-the new <codeph>TPointerEvent</codeph> types, <xref href="GUID-239D0A8B-2759-321D-AD48-976E80192239.dita"><apiname>EEnterCloseProximity</apiname></xref>, <xref href="GUID-8C6264B4-5E19-33A7-92B0-BB79C871BEC7.dita"><apiname>EExitCloseProximity</apiname></xref>, <xref href="GUID-F02DB96E-1541-3223-9B7B-79D45840DB7B.dita"><apiname>EEnterHighPressure</apiname></xref> and <xref href="GUID-15B5991C-B075-3110-B0A4-540EC282AA56.dita"><apiname>EExitHighPressure</apiname></xref>, are delivered to all windows,
-even to those that do not enable advanced pointers. </p> </li>
-</ol> </section>
-<section id="GUID-C026DAB9-C11C-5D29-A1EA-6730E914250F"><title>Getting Z coordinates
-from TPointerEvent</title> <ol id="GUID-4CC2271D-1798-51B3-9A9D-E7E0B9A33DAE">
-<li id="GUID-184B5B63-4EFC-55CD-8D1F-E015EEBACBE2"><p>Call <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-E961DA4D-AD38-31F0-88DD-A07D36346DCB"><apiname>TPointerEvent::AdvancedPointerEvent()</apiname></xref> on
-a <codeph>TPointerEvent</codeph> to return a pointer to a <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref>. </p> <codeblock id="GUID-6E81680A-3070-546B-B575-49EA9E34FAF9" xml:space="preserve">
-TZType aZType;
-TPointerEvent&amp; aPointerEvent;
-TInt* aZ; 
-TInt* aPoint3D;
-
-TAdvancedPointerEvent *advancedP = aPointerEvent.AdvancedPointerEvent();
-</codeblock> <p> <codeph>TPointerEvent</codeph> is a struct that contains
-details of a pointer event. <codeph>TZType</codeph> is a struct provided by
-the programmer containing members to hold proximity, pressure, and "proximity
-and pressure" data. </p> </li>
-<li id="GUID-ABA8FA09-5F57-51BC-8CAE-43649B5ED6D3"><p>Now we need to test
-whether the pointer event contains advanced pointer data. If it is not an
-advanced pointer, the code leaves. </p> <p>If it is an advanced pointer, we
-call functions to detect proximity, pressure, "proximity and pressure" data
-and coordinates. </p> <codeblock id="GUID-DF109643-2564-51A0-B0F6-33BF4DA1F6E3" xml:space="preserve">
-if(!advancedP)
-    {
-    // The TPointerEvent isn't an instance of TAdvancedPointerEvent
-    User::Leave(KErrArgument);
-    }
-
-switch(aZType)
-    {
-    case EZTypeProximity:
-        aZ = advancedP-&gt;Proximity();
-        aPoint3D = advancedP-&gt;Proximity3D(); 
-        break;
-    case EZTypePressure:
-        aZ = advancedP-&gt;Pressure();
-        aPoint3D = advancedP-&gt;Pressure3D();
-        break;
-    case EZTypeProximityAndPressure:
-        aZ = advancedP-&gt;ProximityAndPressure();
-        aPoint3D = advancedP-&gt;ProximityAndPressure3D();
-        break;
-    default: 
-        User::Leave(KErrArgument);
-        break;
-    }
-</codeblock> <ul>
-<li id="GUID-40C01884-AC86-5882-935D-2EC2E27C9004"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-0ED4B1CC-0655-3246-8645-AAC9E0C27298"><apiname>TAdvancedPointerEvent::Proximity()</apiname></xref> returns
-the proximity. </p> </li>
-<li id="GUID-16A9A86B-A837-5E43-BB3A-F5A04A7F4552"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-15DEBFBF-7B7D-3FCF-9929-C973824A5FD3"><apiname>TAdvancedPointerEvent::Pressure()</apiname></xref> returns
-the pressure. </p> </li>
-<li id="GUID-3E614890-C317-596E-A5B9-FD76426DBD12"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-114AE77E-D0BD-321E-BFCB-1388B35582EC"><apiname>TAdvancedPointerEvent::ProximityAndPressure()</apiname></xref> returns
-the proximity and pressure combined. </p> </li>
-<li id="GUID-6F62C0D1-FAE4-5F8F-B451-68ABA404A369"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-E5AA7737-D217-3FDE-9E4D-AAA7F5D2C300"><apiname>TAdvancedPointerEvent::
-Position3D()</apiname></xref> returns the proximity and the X, Y and Z coordinates. </p> </li>
-<li id="GUID-5AD1811D-BCBF-5A44-B6E7-EB71BF254BCA"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-2F30A8F5-75BA-3FE3-84B7-3C772ED75857"><apiname>TAdvancedPointerEvent::Pressure3D()</apiname></xref> returns
-the pressure and the X and Y coordinates. </p> </li>
-</ul> <p>Proximity is <i>always</i> negative and pressure is <i>always</i> positive.
-Internally they are combined together as a Z coordinate. When Z &gt; 0, the proximity
-is 0 and the Z value represents the pressure. When Z &lt; 0, the pressure
-is 0 and the Z value represents the proximity. Some APIs use only a Z coordinate
-(such as the threshold getters and setters and <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-114AE77E-D0BD-321E-BFCB-1388B35582EC"><apiname>TAdvancedPointerEvent::ProximityAndPressure()</apiname></xref>).
-In these, the Z coordinate is interpreted in terms of pressure and proximity. </p> </li>
-</ol> <fig id="GUID-7A49B143-5458-5916-B937-55D98B77BB2C">
-<title> Relationships between the pointer proximity, pressure and Z      
-       coordinate            </title>
-<image href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e198934_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-B7057F69-191F-5AA4-8C61-EBECE66D92F6"><title>Pinch zooming</title> <p>This
-example shows an easy way to pinch zoom an image when the screen receives
-pointer events from two pointers. There are two functions in this code that
-must be implemented by the programmer: <codeph>BitmapCoordinates()</codeph> and <codeph>MoveBitmap()</codeph>.
-They are not included in the example because they involve complex calculations
-that are not related to advanced pointers. </p> <p>The high-level steps to
-perform pinch zooming are: </p> <ol id="GUID-AEF3917C-AAFE-5C25-9609-396D08478AC0">
-<li id="GUID-7839E665-C4E1-59C8-BA89-22A62615EFA3"><p>Define the coordinates,
-equivalent to the given on-screen coordinates. In the code example, this is
-done using the function <codeph>BitmapCoordinates()</codeph>. </p> </li>
-<li id="GUID-FC4B1BDA-8120-53C9-9C88-BEFEF1AD54B4"><p>Define the ID of the
-pointer by using <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-67593D7E-CE40-303F-B847-81D6FC0578B1"><apiname>TAdvancedPointerEvent::PointerNumber()</apiname></xref>.
-If the device can handle two pointers (two fingers) at the same time, their
-numbers are 0 and 1. The pointer number enables you to distinguish a given
-pointer from other pointers. </p> </li>
-<li id="GUID-1E8F7D23-EEAD-5EA5-8863-276076D6B54E"><p>For each pointer assign
-its coordinates to a local variable. We assume there are only two pointers
-handled by the system here. </p> </li>
-<li id="GUID-E44B3D9B-560A-5959-996D-A63CBD4C3786"><p>Use the <codeph>MoveBitmap()</codeph> function
-to achieve the zoom effect. </p> <codeblock id="GUID-D85CCFDD-8F65-530A-ACD7-93DD1D435FC6" xml:space="preserve">
-/**
-Receives pointer events from two pointers to perform Pinch Zoom of the image.
-Function will finish when EButton1Up is received for any of the pointers.
-@param aPointer1    Coordinates of pointer number 1 when zoom is started
-@param aPointer2    Coordinates of pointer number 2 when zoom is started
-*/
-
-void PinchZoom(TPoint aPointer1, TPoint aPointer2)
-    {
-    TPoint actualP1 = aPointer1;
-    TPoint actualP2 = aPointer2;
-    
-    // translate on-screen pointer coordinates to coordinates of displayed bitmap
-    TPoint bitmapCatching1 = BitmapCoordinates(aPointer1);
-    TPoint bitmapCatching2 = BitmapCoordinates(aPointer2);
-    
-    TBool repaint = EFalse;
-                                
-    while (ETrue)
-        {
-        TAdvancedPointerEvent event = GetNextPointerEvent();
-        
-        if (event.iType == TPointerEvent::EDrag)
-            { 
-            if (event.PointerNumber() == 1)
-                { 
-                actualP1 = event.iPosition;
-                repaint = ETrue;
-                }
-            else if (event.PointerNumber() == 2)
-                {
-                actualP2 = event.iPosition;
-                repaint = ETrue;
-                }
-            }
-        else if (event.iType == TPointerEvent::EButton1Up)
-            {
-            break;
-            }
-        
-        if (repaint)
-            {
-            // move bitmap on the screen in the way that
-            // bitmapCatching1 point of the bitmap will be displayed at actualP1 screen coordinate,
-            // bitmapCatching2 point of the bitmap will be displayed at actualP2 screen coordinate.
-            MoveBitmap(bitmapCatching1, actualP1, bitmapCatching2, actualP2);
-            repaint = EFalse;
-            }
-        }
-    }
-</codeblock> </li>
-</ol> </section>
-</conbody><related-links>
-<link href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita"><linktext>Advanced
-Pointer                 Overview</linktext></link>
-<link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext>Advanced
-Pointer States and                 Event Communication</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C60DC070-572B-5960-B394-550426FDB909" xml:lang="en"><title> Advanced
+Pointer Tutorial</title><shortdesc>This tutorial provides step-by-step instructions and sample code
+to help you write applications using advanced pointers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target
+audience</b>: Application developers. </p>
+<section><title>Required background </title> <p>This topic builds on the material
+in the following topics: </p> <ul>
+<li id="GUID-C4209FBD-3860-5F4B-8458-87D22D483953"><p><xref href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita">Advanced
+Pointer Overview</xref>  </p> </li>
+<li id="GUID-9D3C3B31-F43A-5201-A1EC-A1F2848CFF43"><p><xref href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita">Advanced
+Pointer States and Event Communication</xref>  </p> </li>
+</ul> </section>
+<section><title>Using advanced pointers</title> <p>This topic covers the following: </p> <ul>
+<li id="GUID-C3AD43AA-09C0-5BA2-8496-5B87D40C89F5"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-8CBE862B-0C1D-5088-89B7-9B3EC898E4FC">Enabling multi-touch for a window</xref>  </p> </li>
+<li id="GUID-177323F2-55C6-56D9-B3D2-A8DDACF69E10"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-C026DAB9-C11C-5D29-A1EA-6730E914250F">Getting Z coordinates from TPointerEvent</xref>  </p> </li>
+<li id="GUID-91CEA92C-A692-5853-96F0-625A76B7DC8D"><p><xref href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita#GUID-C60DC070-572B-5960-B394-550426FDB909/GUID-B7057F69-191F-5AA4-8C61-EBECE66D92F6"> Pinch zooming</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-8CBE862B-0C1D-5088-89B7-9B3EC898E4FC"><title>Enabling multi-touch
+in a window</title> <ol id="GUID-210D17A8-4869-5F9B-B71C-672101AC591C">
+<li id="GUID-81A2AC5C-7837-5216-8F47-FC5959C27522"><p> <xref href="GUID-637F82AF-0CF9-3C85-834D-7C1A0866DF87.dita"><apiname>RWindow</apiname></xref> provides
+a handle to a standard window. Call <codeph>RWindow</codeph> to create an
+instance of a window. </p> <codeblock id="GUID-0E31C3F6-3719-5F16-9F74-C405850604B8" xml:space="preserve">
+RWindow window(ws);
+
+User::LeaveIfError(window.Construct(wg, reinterpret_cast&lt;TUint32&gt;(&amp;wg) + 1));
+</codeblock> </li>
+<li id="GUID-B67D3702-1A8F-5C6A-AB0F-FEA7C4D04A07"><p>Call <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita#GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79/GUID-05293539-F1B0-3C7D-BB14-3FD42F23D5C8"><apiname>RWindow::EnableAdvancedPointers()</apiname></xref> to
+enable advanced pointers. Then call <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita#GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34/GUID-4E02165A-DFCC-3D18-BB18-18726B28E90A"><apiname>RWindowBase::Activate()</apiname></xref> to
+display the window and enable the window to receive events. <xref href="GUID-683603DD-F3D3-3193-BEB3-8236C7DE7F79.dita"><apiname>RWindow</apiname></xref> inherits
+from <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>, so you can call the <codeph>Activate()</codeph> function
+on <codeph>RWindow</codeph>. </p> <codeblock id="GUID-DB2FB570-2BB0-5C5F-9E4F-076D6A0E469E" xml:space="preserve">
+window.EnableAdvancedPointers();
+window.Activate();
+</codeblock> <p>When an application needs to receive advanced pointer events
+in a window, it must call <codeph>RWindowBase::EnableAdvancedPointers()</codeph> for
+the window <i>before</i> it is activated. </p> <p>If advanced pointers are
+not enabled for a window, it receives only standard <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref> information
+from a single pointer with no pressure and proximity data. The single pointer
+environment rules describe the way in which pointer events coming from many
+pointers in the multi-pointer model are transformed into events of one pointer.
+They are necessary to ensure that old single-pointer applications work in
+a multi-touch environment intuitively and as expected by the user. </p> <p>However,
+the new <codeph>TPointerEvent</codeph> types, <xref href="GUID-239D0A8B-2759-321D-AD48-976E80192239.dita"><apiname>EEnterCloseProximity</apiname></xref>, <xref href="GUID-8C6264B4-5E19-33A7-92B0-BB79C871BEC7.dita"><apiname>EExitCloseProximity</apiname></xref>, <xref href="GUID-F02DB96E-1541-3223-9B7B-79D45840DB7B.dita"><apiname>EEnterHighPressure</apiname></xref> and <xref href="GUID-15B5991C-B075-3110-B0A4-540EC282AA56.dita"><apiname>EExitHighPressure</apiname></xref>, are delivered to all windows,
+even to those that do not enable advanced pointers. </p> </li>
+</ol> </section>
+<section id="GUID-C026DAB9-C11C-5D29-A1EA-6730E914250F"><title>Getting Z coordinates
+from TPointerEvent</title> <ol id="GUID-4CC2271D-1798-51B3-9A9D-E7E0B9A33DAE">
+<li id="GUID-184B5B63-4EFC-55CD-8D1F-E015EEBACBE2"><p>Call <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita#GUID-1FFA0073-3D83-388E-A824-08C31F90CC54/GUID-E961DA4D-AD38-31F0-88DD-A07D36346DCB"><apiname>TPointerEvent::AdvancedPointerEvent()</apiname></xref> on
+a <codeph>TPointerEvent</codeph> to return a pointer to a <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref>. </p> <codeblock id="GUID-6E81680A-3070-546B-B575-49EA9E34FAF9" xml:space="preserve">
+TZType aZType;
+TPointerEvent&amp; aPointerEvent;
+TInt* aZ; 
+TInt* aPoint3D;
+
+TAdvancedPointerEvent *advancedP = aPointerEvent.AdvancedPointerEvent();
+</codeblock> <p> <codeph>TPointerEvent</codeph> is a struct that contains
+details of a pointer event. <codeph>TZType</codeph> is a struct provided by
+the programmer containing members to hold proximity, pressure, and "proximity
+and pressure" data. </p> </li>
+<li id="GUID-ABA8FA09-5F57-51BC-8CAE-43649B5ED6D3"><p>Now we need to test
+whether the pointer event contains advanced pointer data. If it is not an
+advanced pointer, the code leaves. </p> <p>If it is an advanced pointer, we
+call functions to detect proximity, pressure, "proximity and pressure" data
+and coordinates. </p> <codeblock id="GUID-DF109643-2564-51A0-B0F6-33BF4DA1F6E3" xml:space="preserve">
+if(!advancedP)
+    {
+    // The TPointerEvent isn't an instance of TAdvancedPointerEvent
+    User::Leave(KErrArgument);
+    }
+
+switch(aZType)
+    {
+    case EZTypeProximity:
+        aZ = advancedP-&gt;Proximity();
+        aPoint3D = advancedP-&gt;Proximity3D(); 
+        break;
+    case EZTypePressure:
+        aZ = advancedP-&gt;Pressure();
+        aPoint3D = advancedP-&gt;Pressure3D();
+        break;
+    case EZTypeProximityAndPressure:
+        aZ = advancedP-&gt;ProximityAndPressure();
+        aPoint3D = advancedP-&gt;ProximityAndPressure3D();
+        break;
+    default: 
+        User::Leave(KErrArgument);
+        break;
+    }
+</codeblock> <ul>
+<li id="GUID-40C01884-AC86-5882-935D-2EC2E27C9004"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-0ED4B1CC-0655-3246-8645-AAC9E0C27298"><apiname>TAdvancedPointerEvent::Proximity()</apiname></xref> returns
+the proximity. </p> </li>
+<li id="GUID-16A9A86B-A837-5E43-BB3A-F5A04A7F4552"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-15DEBFBF-7B7D-3FCF-9929-C973824A5FD3"><apiname>TAdvancedPointerEvent::Pressure()</apiname></xref> returns
+the pressure. </p> </li>
+<li id="GUID-3E614890-C317-596E-A5B9-FD76426DBD12"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-114AE77E-D0BD-321E-BFCB-1388B35582EC"><apiname>TAdvancedPointerEvent::ProximityAndPressure()</apiname></xref> returns
+the proximity and pressure combined. </p> </li>
+<li id="GUID-6F62C0D1-FAE4-5F8F-B451-68ABA404A369"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-E5AA7737-D217-3FDE-9E4D-AAA7F5D2C300"><apiname>TAdvancedPointerEvent::
+Position3D()</apiname></xref> returns the proximity and the X, Y and Z coordinates. </p> </li>
+<li id="GUID-5AD1811D-BCBF-5A44-B6E7-EB71BF254BCA"><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-2F30A8F5-75BA-3FE3-84B7-3C772ED75857"><apiname>TAdvancedPointerEvent::Pressure3D()</apiname></xref> returns
+the pressure and the X and Y coordinates. </p> </li>
+</ul> <p>Proximity is <i>always</i> negative and pressure is <i>always</i> positive.
+Internally they are combined together as a Z coordinate. When Z &gt; 0, the proximity
+is 0 and the Z value represents the pressure. When Z &lt; 0, the pressure
+is 0 and the Z value represents the proximity. Some APIs use only a Z coordinate
+(such as the threshold getters and setters and <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-114AE77E-D0BD-321E-BFCB-1388B35582EC"><apiname>TAdvancedPointerEvent::ProximityAndPressure()</apiname></xref>).
+In these, the Z coordinate is interpreted in terms of pressure and proximity. </p> </li>
+</ol> <fig id="GUID-7A49B143-5458-5916-B937-55D98B77BB2C">
+<title> Relationships between the pointer proximity, pressure and Z      
+       coordinate            </title>
+<image href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e193926_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-B7057F69-191F-5AA4-8C61-EBECE66D92F6"><title>Pinch zooming</title> <p>This
+example shows an easy way to pinch zoom an image when the screen receives
+pointer events from two pointers. There are two functions in this code that
+must be implemented by the programmer: <codeph>BitmapCoordinates()</codeph> and <codeph>MoveBitmap()</codeph>.
+They are not included in the example because they involve complex calculations
+that are not related to advanced pointers. </p> <p>The high-level steps to
+perform pinch zooming are: </p> <ol id="GUID-AEF3917C-AAFE-5C25-9609-396D08478AC0">
+<li id="GUID-7839E665-C4E1-59C8-BA89-22A62615EFA3"><p>Define the coordinates,
+equivalent to the given on-screen coordinates. In the code example, this is
+done using the function <codeph>BitmapCoordinates()</codeph>. </p> </li>
+<li id="GUID-FC4B1BDA-8120-53C9-9C88-BEFEF1AD54B4"><p>Define the ID of the
+pointer by using <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita#GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023/GUID-67593D7E-CE40-303F-B847-81D6FC0578B1"><apiname>TAdvancedPointerEvent::PointerNumber()</apiname></xref>.
+If the device can handle two pointers (two fingers) at the same time, their
+numbers are 0 and 1. The pointer number enables you to distinguish a given
+pointer from other pointers. </p> </li>
+<li id="GUID-1E8F7D23-EEAD-5EA5-8863-276076D6B54E"><p>For each pointer assign
+its coordinates to a local variable. We assume there are only two pointers
+handled by the system here. </p> </li>
+<li id="GUID-E44B3D9B-560A-5959-996D-A63CBD4C3786"><p>Use the <codeph>MoveBitmap()</codeph> function
+to achieve the zoom effect. </p> <codeblock id="GUID-D85CCFDD-8F65-530A-ACD7-93DD1D435FC6" xml:space="preserve">
+/**
+Receives pointer events from two pointers to perform Pinch Zoom of the image.
+Function will finish when EButton1Up is received for any of the pointers.
+@param aPointer1    Coordinates of pointer number 1 when zoom is started
+@param aPointer2    Coordinates of pointer number 2 when zoom is started
+*/
+
+void PinchZoom(TPoint aPointer1, TPoint aPointer2)
+    {
+    TPoint actualP1 = aPointer1;
+    TPoint actualP2 = aPointer2;
+    
+    // translate on-screen pointer coordinates to coordinates of displayed bitmap
+    TPoint bitmapCatching1 = BitmapCoordinates(aPointer1);
+    TPoint bitmapCatching2 = BitmapCoordinates(aPointer2);
+    
+    TBool repaint = EFalse;
+                                
+    while (ETrue)
+        {
+        TAdvancedPointerEvent event = GetNextPointerEvent();
+        
+        if (event.iType == TPointerEvent::EDrag)
+            { 
+            if (event.PointerNumber() == 1)
+                { 
+                actualP1 = event.iPosition;
+                repaint = ETrue;
+                }
+            else if (event.PointerNumber() == 2)
+                {
+                actualP2 = event.iPosition;
+                repaint = ETrue;
+                }
+            }
+        else if (event.iType == TPointerEvent::EButton1Up)
+            {
+            break;
+            }
+        
+        if (repaint)
+            {
+            // move bitmap on the screen in the way that
+            // bitmapCatching1 point of the bitmap will be displayed at actualP1 screen coordinate,
+            // bitmapCatching2 point of the bitmap will be displayed at actualP2 screen coordinate.
+            MoveBitmap(bitmapCatching1, actualP1, bitmapCatching2, actualP2);
+            repaint = EFalse;
+            }
+        }
+    }
+</codeblock> </li>
+</ol> </section>
+</conbody><related-links>
+<link href="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita"><linktext>Advanced
+Pointer                 Overview</linktext></link>
+<link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext>Advanced
+Pointer States and                 Event Communication</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e333524_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C64D200D-32A9-5F50-ACF1-4D93DDD0B0A4_d0e339681_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C6B65A53-BE0A-4C35-B355-379D9FE494F8_d0e66731_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e268483_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e272191_href.png has changed
--- a/Symbian3/SDK/Source/GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,124 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C" xml:lang="en"><title>Other
-Options menus</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Certain Options menus are accessed in other ways than by using the Options
-softkey. The usage of these menus is similar to the normal Options menu. Examples
-of such menus are:</p>
-<table id="GUID-C1DF65EC-A38D-4799-8856-9BDD810E6F82"><title>Other Options
-menus</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Menu</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Context sensitive Options menu</p></entry>
-<entry><p>The Selection key opens this context sensitive Options menu when
-there is no single intuitive function (such as opening the item in focus)
-for it. The context sensitive Options menu only lists functions that: </p><ul>
-<li><p>Affect only the item in focus. </p></li>
-<li><p>Could be regarded as potentially intuitive. </p></li>
-<li><p>Are competing for the topmost place of the menu.</p></li>
-</ul><p>Other functions can be accessed through the Options softkey. The number
-of items in the context sensitive Options menu is usually two or three; it
-should never be more than four. As an example, in a message editor, the functions
-in the context sensitive Options menu could be Send and Add recipient.</p><p>In
-case there are marked items in a list, the context sensitive Options menu
-should include the Mark/Unmark functions. When a list is empty, it may make
-sense to offer a Create new type of option in the context sensitive Options
-menu, but only when it would be an appropriate function in the context.</p></entry>
-</row>
-<row>
-<entry><p>Editing menu</p></entry>
-<entry><p>Opened by pressing the Edit key in a text editor. Contains only
-editing commands. See <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
-menu</xref>.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C6E29524-AD59-4EBB-9004-13F731FA1F3C" xml:lang="en"><title>Other
+Options menus</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Certain Options menus are accessed in other ways than by using the Options
+softkey. The usage of these menus is similar to the normal Options menu. Examples
+of such menus are:</p>
+<table id="GUID-C1DF65EC-A38D-4799-8856-9BDD810E6F82"><title>Other Options
+menus</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.38*"/><colspec colname="col2" colwidth="1.62*"/>
+<thead>
+<row>
+<entry>Menu</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Context sensitive Options menu</p></entry>
+<entry><p>In touch enabled devices, it is possible that touch release can
+open a context specific options menu, if the user is browsing, for example,
+a form or an editor or application specific layout. The Selection key can
+also open this context sensitive <b>Options</b> menu (also known as CS menu)
+when there is no single intuitive function (such as opening the item in focus)
+for it. </p><p>The context sensitive Options menu only lists functions that: </p><ul>
+<li><p>Affect only the item in focus. </p></li>
+<li><p>Could be regarded as potentially intuitive. </p></li>
+<li><p>Are competing for the topmost place of the menu.</p></li>
+</ul><p>The context-sensitive menu is a shorter version of the normal options
+menu. It contains only the items that act upon the object touched or items
+marked. It does not contain state-specific or application-specific items.
+Context specific options menu should be used only if there is more than one
+item in it but not more than four. As an example, in a message editor, the
+functions in the context sensitive Options menu could be Send and Add recipient.</p><p>Other
+functions can be accessed through the Options softkey. </p><p>In case there
+are marked items in a list, the context sensitive Options menu should include
+the Mark/Unmark functions. When a list is empty, it may make sense to offer
+a Create new type of option in the context sensitive Options menu, but only
+when it would be an appropriate function in the context.</p></entry>
+</row>
+<row>
+<entry><p>Editing menu</p></entry>
+<entry><p>Opened by pressing the Edit key in a text editor. Contains only
+editing commands. See <xref href="GUID-2E0F793F-3D80-4303-AF48-C7341F417DC9.dita">Editing
+menu</xref>.</p></entry>
+</row>
+<row>
+<entry><p>Menu List</p></entry>
+<entry><p>Menu list is a temporary list, and typically displayed in a pop-up
+window. Menu lists are used to select an item and do nothing else. Hence,
+there are no <b>Options</b> menu available when a menu list is being browsed
+(the Options menu itself is a menu list).</p><p>If a high-priority event,
+such as an incoming call, occurs when a menu list is open, the list is cancelled
+and the new event takes control. </p><fig id="GUID-C9A7253A-5120-4EE9-88D6-3772149F9575">
+<title>Menu list</title>
+<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e60783_href.png" placement="inline"/>
+</fig><p>The API to use for menu lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<p>The default keypad functions in a menu list are the following:</p>
+<table id="GUID-00EF343D-893A-4EDB-987A-DB5FD2D72F40"><title>Default key events
+in a menu list</title>
+<tgroup cols="2">
+
+<colspec colname="col1" colwidth="0.56*"/><colspec colname="col2" colwidth="1.44*"/>
+<thead>
+<row>
+<entry>Key</entry>
+<entry>Action</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Arrow up / down</p></entry>
+<entry><p>Moves the focus in the list.</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / right</p></entry>
+<entry><p>Ignored (unless there is a submenu; see <xref href="GUID-75553219-500C-487F-8D7E-0FAF48CF1872.dita">Submenus</xref>).</p></entry>
+</row>
+<row>
+<entry><p>Selection key</p></entry>
+<entry><p>Selects the item, does the associated function.</p></entry>
+</row>
+<row>
+<entry><p>Left softkey (Select)</p></entry>
+<entry><p>Selects the item, does the associated function.</p></entry>
+</row>
+<row>
+<entry><p>Right softkey (Cancel)</p></entry>
+<entry><p>Dismisses the menu; returns to the state preceding the opening of
+the menu.</p></entry>
+</row>
+<row>
+<entry><p>Call creation key, Edit key</p></entry>
+<entry><p>Ignored.</p></entry>
+</row>
+<row>
+<entry><p>Numeric keypad</p></entry>
+<entry><p>Ignored.</p></entry>
+</row>
+<row>
+<entry><p>Clear key</p></entry>
+<entry><p>Ignored.</p></entry>
+</row>
+<row>
+<entry><p>Other keys</p></entry>
+<entry><p>Dismiss the menu and do the default action of the key.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,97 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C" xml:lang="en"><title>Drawing
-in the view architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> when
-a control area needs to be updated on the display. Controls may implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> or
-leave the drawing to their child controls. For more information on control
-hierarchies, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref>. </p>
-<p>The Symbian platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
-the parent control first, and then recursively for each control.</p>
-<p>Controls should override <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> to draw
-their content. The override should do nothing else and should be as fast as
-possible. For example, it is bad design to create fonts dynamically, and read
-any bitmaps or resources while drawing. A good rule of thumb is that there
-should not be trap handlers in the method override; any time-consuming functionality
-that can be done beforehand should be cached.</p>
-<p>In most cases controls are drawn on the display using the screen device
-graphics context, accessed with <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref>.
-The graphics context provides a wide set of <xref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita">GDI</xref> (Graphics
-Device Interface  - common Symbian platform graphics API) drawing primitives
-that can be used for drawing virtually anything on screen.</p>
-<p>An example of a basic override of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
-a control that is a top-level window in an application is as follows:</p>
-<codeblock id="GUID-9EF298F3-9B92-48C1-BA7C-0C91143D075C" xml:space="preserve">void CMyAppView::Draw( const TRect&amp; /*aRect*/ ) const
-    {
-    // Get the standard graphics context
-    CWindowGc&amp; gc = SystemGc();
-    gc.SetPenStyle( CGraphicsContext::ENullPen );
-    gc.SetBrushColor( KRgbWhite);
-    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-
-    // Gets the control's extent
-    TRect rect( Rect());
-
-        {
-        gc.Clear( rect );
-        }
-    }
-</codeblock>
-<p>, where</p>
-<ul>
-<li><p><parmname>CWindowGc&amp; gc = SystemGc();</parmname> gets
-the graphics context that is used when drawing the control.</p></li>
-<li><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-026A1015-0D79-3A66-91BA-5FB343387EE0"><apiname>CWindowGc::SetPenStyle()</apiname></xref>, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-0A923CAA-7A89-3ED2-A844-2F4147B62FEC"><apiname>CWindowGc::SetBrushColor()</apiname></xref>,
-and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-363A9FB3-75F7-3EB7-A783-91BBAEBCE670"><apiname>CWindowGc::SetBrushStyle()</apiname></xref> are used to set the drawing
-primatives for the context.</p></li>
-<li><p><xref href="GUID-101762DC-E498-3325-88AB-B0FF17DC62B6.dita"><apiname>TRect</apiname></xref> gets the size of the control rectangle.</p>
-</li>
-<li><p><xref href="GUID-D22FD07E-59E0-346A-9BFA-8D109F509DB1.dita"><apiname>CWindowGc:Clear(rect)</apiname></xref> clears the control
-rectangle.</p></li>
-</ul>
-<section id="GUID-DBACBFCC-F260-4ABE-B55C-BBB23F332E42"><title>Drawing with
-caches</title>
-<p>For controls that perform intensive drawing operations, the drawing
-should be cached: a process also known as double-buffering. Here the drawing
-is done to a memory context first and then in the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method
-only the context's bitmap is passed to screen. In the Symbian platform, the
-easiest way to implement a double buffer is to create a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and
-then bind a graphics context to that  - this makes it possible to use the
-same GDI interface for drawing as the display context. The drawing is done
-to a memory bitmap buffer, and when the Symbian platform updates the invalidated
-screen area, the memory buffer is copied to it. Double-buffering is a common
-paradigm used in games, but can also be utilized in any application when performance
-of drawing controls is important.</p>
-<p>The following is a short example of how a double buffer is created and
-used:</p>
-<codeblock id="GUID-995DBACE-EE60-4666-BDCF-975EE98B01FD" xml:space="preserve">iGcBmp = new (ELeave) CWsBitmap(iEikonEnv-&gt;WsSession());
-User::LeaveIfError(iGcBmp-&gt;Create(aClientRect.Size(), iEikonEnv-&gt;ScreenDevice()-&gt;DisplayMode()));
-iGcDevice = CFbsBitmapDevice::NewL(iGcBmp);
-User::LeaveIfError(iGcDevice-&gt;CreateBitmapContext(iGc));
-</codeblock>
-<p><parmname>iGcBmp</parmname> is a pointer to <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref>,
-the bitmap memory buffer, that is created with the same width and height as
-the top-level window and with the same color bit depth as the display.<parmname> iGcDevice</parmname> is
-a pointer to the <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> device class and the context <parmname>iGc</parmname> holds
-the <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> instance. <parmname>iGc</parmname> is
-then used instead of <parmname>CScreenGc</parmname>, obtained from the <parmname>CCoeControl::SystemGc()</parmname> method,
-when the control draws itself. The double-buffer drawing should be done outside
-of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method and can be called directly
-when needed. Only at the end of the off-screen drawing is the memory buffer
-flushed to the screen by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref></p>
-<codeblock id="GUID-13A1E553-7A78-422C-85AC-7C89696B2D18" xml:space="preserve">void CMyDrawingExample::Draw(const TRect&amp; /*aRect*/) const
-    {
-    SystemGc().BitBlt(TPoint(0, 0), iGcBmp);
-    }</codeblock>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C6E9D609-E82C-4FAC-9265-F6A4FF61049C" xml:lang="en"><title>Drawing
+in the view architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Symbian platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> when
+a control area needs to be updated on the display. Controls may implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> or
+leave the drawing to their child controls. For more information on control
+hierarchies, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref>. </p>
+<p>The Symbian platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
+the parent control first, and then recursively for each control.</p>
+<p>Controls should override <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> to draw
+their content. The override should do nothing else and should be as fast as
+possible. For example, it is bad design to create fonts dynamically, and read
+any bitmaps or resources while drawing. A good rule of thumb is that there
+should not be trap handlers in the method override; any time-consuming functionality
+that can be done beforehand should be cached.</p>
+<p>In most cases controls are drawn on the display using the screen device
+graphics context, accessed with <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref>.
+The graphics context provides a wide set of <xref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita">GDI</xref> (Graphics
+Device Interface  - common Symbian platform graphics API) drawing primitives
+that can be used for drawing virtually anything on screen.</p>
+<p>An example of a basic override of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
+a control that is a top-level window in an application is as follows:</p>
+<codeblock id="GUID-9EF298F3-9B92-48C1-BA7C-0C91143D075C" xml:space="preserve">void CMyAppView::Draw( const TRect&amp; /*aRect*/ ) const
+    {
+    // Get the standard graphics context
+    CWindowGc&amp; gc = SystemGc();
+    gc.SetPenStyle( CGraphicsContext::ENullPen );
+    gc.SetBrushColor( KRgbWhite);
+    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+
+    // Gets the control's extent
+    TRect rect( Rect());
+
+        {
+        gc.Clear( rect );
+        }
+    }
+</codeblock>
+<p>, where</p>
+<ul>
+<li><p><parmname>CWindowGc&amp; gc = SystemGc();</parmname> gets
+the graphics context that is used when drawing the control.</p></li>
+<li><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-026A1015-0D79-3A66-91BA-5FB343387EE0"><apiname>CWindowGc::SetPenStyle()</apiname></xref>, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-0A923CAA-7A89-3ED2-A844-2F4147B62FEC"><apiname>CWindowGc::SetBrushColor()</apiname></xref>,
+and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-363A9FB3-75F7-3EB7-A783-91BBAEBCE670"><apiname>CWindowGc::SetBrushStyle()</apiname></xref> are used to set the drawing
+primatives for the context.</p></li>
+<li><p><xref href="GUID-101762DC-E498-3325-88AB-B0FF17DC62B6.dita"><apiname>TRect</apiname></xref> gets the size of the control rectangle.</p>
+</li>
+<li><p><xref href="GUID-D22FD07E-59E0-346A-9BFA-8D109F509DB1.dita"><apiname>CWindowGc:Clear(rect)</apiname></xref> clears the control
+rectangle.</p></li>
+</ul>
+<section id="GUID-DBACBFCC-F260-4ABE-B55C-BBB23F332E42"><title>Drawing with
+caches</title>
+<p>For controls that perform intensive drawing operations, the drawing
+should be cached: a process also known as double-buffering. Here the drawing
+is done to a memory context first and then in the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method
+only the context's bitmap is passed to screen. In the Symbian platform, the
+easiest way to implement a double buffer is to create a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and
+then bind a graphics context to that  - this makes it possible to use the
+same GDI interface for drawing as the display context. The drawing is done
+to a memory bitmap buffer, and when the Symbian platform updates the invalidated
+screen area, the memory buffer is copied to it. Double-buffering is a common
+paradigm used in games, but can also be utilized in any application when performance
+of drawing controls is important.</p>
+<p>The following is a short example of how a double buffer is created and
+used:</p>
+<codeblock id="GUID-995DBACE-EE60-4666-BDCF-975EE98B01FD" xml:space="preserve">iGcBmp = new (ELeave) CWsBitmap(iEikonEnv-&gt;WsSession());
+User::LeaveIfError(iGcBmp-&gt;Create(aClientRect.Size(), iEikonEnv-&gt;ScreenDevice()-&gt;DisplayMode()));
+iGcDevice = CFbsBitmapDevice::NewL(iGcBmp);
+User::LeaveIfError(iGcDevice-&gt;CreateBitmapContext(iGc));
+</codeblock>
+<p><parmname>iGcBmp</parmname> is a pointer to <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref>,
+the bitmap memory buffer, that is created with the same width and height as
+the top-level window and with the same color bit depth as the display.<parmname> iGcDevice</parmname> is
+a pointer to the <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> device class and the context <parmname>iGc</parmname> holds
+the <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> instance. <parmname>iGc</parmname> is
+then used instead of <parmname>CScreenGc</parmname>, obtained from the <parmname>CCoeControl::SystemGc()</parmname> method,
+when the control draws itself. The double-buffer drawing should be done outside
+of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method and can be called directly
+when needed. Only at the end of the off-screen drawing is the memory buffer
+flushed to the screen by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref></p>
+<codeblock id="GUID-13A1E553-7A78-422C-85AC-7C89696B2D18" xml:space="preserve">void CMyDrawingExample::Draw(const TRect&amp; /*aRect*/) const
+    {
+    SystemGc().BitBlt(TPoint(0, 0), iGcBmp);
+    }</codeblock>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C71311A7-F747-57EB-B31F-6E634D5976A3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C71311A7-F747-57EB-B31F-6E634D5976A3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C71311A7-F747-57EB-B31F-6E634D5976A3" xml:lang="en"><title> Character
-Conversion (Charconv) Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Symbian platform uses UTF-16 encoded Unicode text. The Charconv Framework
-provides the APIs and <xref href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita#GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292/GUID-5E593C5A-882B-5B11-AD6E-CFD10EA6700B">converters</xref> to
-convert characters between foreign encodings and Unicode (UTF-16). </p>
-<p> </p>
-<section><title>Architecture</title> <p>The Character Conversion Framework
-comprises two components: </p> <ul>
-<li id="GUID-BD14B058-9F17-5B43-B3B4-12298700A6C2"><p>The Character Encoding
-and Conversion Framework component is also referred to as Charconv Framework.
-It contains built-in converters for many languages. It also provides APIs
-for selecting built-in or plug-in converters. </p> </li>
-<li id="GUID-91F95B05-7345-5617-81C0-1FF02119CC04"><p>The Character Encoding
-and Conversion Plug-ins component, also referred to as Charconv Plug-ins,
-contains ECom <xref href="GUID-001F6216-48AE-57D4-8985-65CF77B26F19.dita#GUID-001F6216-48AE-57D4-8985-65CF77B26F19/GUID-74C42671-A14C-5E38-8618-06CD8AFB5C70">plug-in
-converters</xref> for various languages not supported by the built-in converters.
-Device creators can write additional plug-in converters by implementing the <codeph>CCharacterSetConverterPluginInterface</codeph> interface. </p> </li>
-</ul> <fig id="GUID-4B8A7DE4-6A72-5950-96CE-D8BEACD977A0">
-<title>              Charconv Framework collection            </title>
-<image href="GUID-F681C857-086F-527A-9946-A91560601658_d0e403841_href.jpg" placement="inline"/>
-</fig> <p> </p> </section>
-<section><title>Using the Character Conversion Framework </title> <p>Application
-developers can use the Charconv API to convert text between various encodings
-and Unicode. </p> <p>Device creators can also write additional
-plug-in converters for specific encodings. </p> </section>
-</conbody><related-links>
-<link href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita"><linktext>Character
-Conversion (Charconv) Framework Concepts</linktext></link>
-<link href="GUID-E64C06D7-B138-5BCC-A814-3F9E2C517404.dita"><linktext>Character
-Encoding and Conversion Framework Component</linktext></link>
-<link href="GUID-E7ACEC20-27C9-5124-A46E-2812A64E3E4B.dita"><linktext>Character
-Encoding and Conversion Plug-ins Component</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C71311A7-F747-57EB-B31F-6E634D5976A3" xml:lang="en"><title> Character
+Conversion (Charconv) Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Symbian platform uses UTF-16 encoded Unicode text. The Charconv Framework
+provides the APIs and <xref href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita#GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292/GUID-5E593C5A-882B-5B11-AD6E-CFD10EA6700B">converters</xref> to
+convert characters between foreign encodings and Unicode (UTF-16). </p>
+<p> </p>
+<section><title>Architecture</title> <p>The Character Conversion Framework
+comprises two components: </p> <ul>
+<li id="GUID-BD14B058-9F17-5B43-B3B4-12298700A6C2"><p>The Character Encoding
+and Conversion Framework component is also referred to as Charconv Framework.
+It contains built-in converters for many languages. It also provides APIs
+for selecting built-in or plug-in converters. </p> </li>
+<li id="GUID-91F95B05-7345-5617-81C0-1FF02119CC04"><p>The Character Encoding
+and Conversion Plug-ins component, also referred to as Charconv Plug-ins,
+contains ECom <xref href="GUID-001F6216-48AE-57D4-8985-65CF77B26F19.dita#GUID-001F6216-48AE-57D4-8985-65CF77B26F19/GUID-74C42671-A14C-5E38-8618-06CD8AFB5C70">plug-in
+converters</xref> for various languages not supported by the built-in converters.
+Device creators can write additional plug-in converters by implementing the <codeph>CCharacterSetConverterPluginInterface</codeph> interface. </p> </li>
+</ul> <fig id="GUID-4B8A7DE4-6A72-5950-96CE-D8BEACD977A0">
+<title>              Charconv Framework collection            </title>
+<image href="GUID-F681C857-086F-527A-9946-A91560601658_d0e403679_href.jpg" placement="inline"/>
+</fig> <p> </p> </section>
+<section><title>Using the Character Conversion Framework </title> <p>Application
+developers can use the Charconv API to convert text between various encodings
+and Unicode. </p> <p>Device creators can also write additional
+plug-in converters for specific encodings. </p> </section>
+</conbody><related-links>
+<link href="GUID-06EDE5E8-04EA-5A74-ADE2-E5B8C49AB292.dita"><linktext>Character
+Conversion (Charconv) Framework Concepts</linktext></link>
+<link href="GUID-E64C06D7-B138-5BCC-A814-3F9E2C517404.dita"><linktext>Character
+Encoding and Conversion Framework Component</linktext></link>
+<link href="GUID-E7ACEC20-27C9-5124-A46E-2812A64E3E4B.dita"><linktext>Character
+Encoding and Conversion Plug-ins Component</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e272103_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C7560CDB-E8F4-55E8-953C-3731B690CF76_d0e275784_href.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C75726D3-E815-503D-8267-26DA27AD4787" xml:lang="en"><title>Big integers</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-44E43C1D-81C0-566D-AD44-65046947046D"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita#GUID-C75726D3-E815-503D-8267-26DA27AD4787/GUID-E105FD3A-2600-504A-842E-E75ABFB6FD31">What does the big integer library do?</xref>  </p> </li>
+<li id="GUID-F28BE30D-0E28-57A0-8302-BBA5BEF9DA2E"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita#GUID-C75726D3-E815-503D-8267-26DA27AD4787/GUID-324AFDAC-314C-5CC5-B322-E908AA6F53C3">How do I use the big integer library?</xref>  </p> </li>
+<li id="GUID-FEC8841D-52D9-5232-9E56-1E59E2A36DE2"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita#GUID-C75726D3-E815-503D-8267-26DA27AD4787/GUID-268F2081-4385-5D43-8ADA-4F17BAA4B0BC">Base classes and their derived classes</xref>  </p> <ul>
+<li id="GUID-3EEF522F-49CE-5131-BD57-501582746773"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787.dita#GUID-C75726D3-E815-503D-8267-26DA27AD4787/GUID-FE43C9B9-7F50-5311-A2AF-7BA9785A68BC">RInteger class</xref>  </p> </li>
+</ul> </li>
+</ul>
+<section id="GUID-E105FD3A-2600-504A-842E-E75ABFB6FD31"><title>What does the
+big integer library do?</title><p>Some types of cryptography require the handling
+of finite arbitrary length integers. This big integer library attempts to
+provide support for that requirement. </p><p>It is capable of representing
+both negative and positive integers with an absolute value of less than 2^(2<sup>37</sup>). </p> </section>
+<section id="GUID-324AFDAC-314C-5CC5-B322-E908AA6F53C3"><title>How do I use
+the big integer library?</title> <p>There are four categories of exposed APIs: </p> <ol id="GUID-93981CBD-4B6D-5E95-BD02-44492535C517">
+<li id="GUID-3374E318-C0C5-5E7D-92D4-0F541F0F6B61"><p>Creation of new integers
+given some other representation (descriptor, TUint, etc). <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita#GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91/GUID-B5E4DBDC-2C7D-30BD-A3D3-8ADE6265CFD2"><apiname>RInteger::NewL()</apiname></xref>  </p> </li>
+<li id="GUID-808268B2-FF70-522B-92BD-5B5EA67DA61B"><p>Creation of new integers
+given some criteria (range, bitcount, prime). <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita#GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91/GUID-3F59160C-AE87-32A1-8138-C28F977C7607"><apiname>RInteger::NewRandomL()</apiname></xref>, <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita#GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91/GUID-612D2DC1-69D5-3AAE-83AE-6DA5D9983072"><apiname>RInteger::NewPrimeL()</apiname></xref> </p> </li>
+<li id="GUID-3F7FD594-479E-5631-87DE-95D0AC843A0C"><p>Exporting of previously
+created integers to descriptors. <xref href="GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16.dita#GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16/GUID-2E9955F7-9219-37B0-84EA-62A3F3327EE8"><apiname>TInteger::BufferLC()</apiname></xref>  </p> </li>
+<li id="GUID-7D5C5166-15D1-5219-B085-E5D5513E50CE"><p>Querying attributes
+about the size of a previously created integer. <xref href="GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16.dita#GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16/GUID-F990DD4D-0886-3BF6-B9EE-D48E086D8C78"><apiname>TInteger::BitCount()</apiname></xref>, <xref href="GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16.dita#GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16/GUID-11AB504D-2919-3F39-A0B6-EA79B498074B"><apiname>TInteger::ByteCount()</apiname></xref>, <xref href="GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16.dita#GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16/GUID-99874A2D-37D5-3A05-8275-351E29972FA8"><apiname>TInteger::WordCount()</apiname></xref>. </p> </li>
+</ol> <p>The following code demonstrates how to create an <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> from
+a bit string representation of a big integer. </p> <codeblock id="GUID-A496A62E-0912-5241-871B-073270AA72E0" xml:space="preserve">
+//This creates an RInteger from the following binary hexadecimal (base 16)
+//descriptor.  Note that the number is written overall in big endian (most
+//significant digit is first, least significant digit (ones digit) is last).  
+//P.S. The hexadecimal binary descriptor below is the base 16 representation
+//of the base 10 number 123456789012345678901234567890.
+RInteger integer = RInteger::NewL(_L8("18EE90FF6C373E0EE4E3F0AD2")); 
+CleanupStack::PushL(integer);
+
+//This next line converts the number stored by an RInteger into a binary, big
+//endian, hexadecimal descriptor.
+HBufC8* descriptor = integer.BufferLC();
+CleanupStack::Pop(descriptor);
+CleanupStack::PopAndDestroy(integer);
+//descriptor is the same as the original _L8 input value now.
+</codeblock> <p>For more information on integers, including important memory
+management information and additional creation overloads, see <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> in
+the Cryptography API Reference material. </p> </section>
+<section id="GUID-268F2081-4385-5D43-8ADA-4F17BAA4B0BC"><title>Base classes
+and their derived classes</title> <p>The diagram below shows the main classes
+used in bigint and which are implemented in <filepath>cryptography.dll</filepath>.
+The color of the boxes indicates the type of Symbian class, that is, <codeph>M</codeph>, <codeph>C</codeph>, <codeph>R</codeph> or <codeph>T</codeph> class. For detailed information on each component see the Cryptography API
+Reference material. </p> <fig id="GUID-45174FC0-A4B0-572E-801F-EC6CD5A96127">
+<title>The inheritance diagram above shows the <codeph>TInteger</codeph> and <codeph>RInteger</codeph> classes.</title>
+<image href="GUID-598140D3-6C92-5D8E-B204-C7197C6E404D_d0e384680_href.png" placement="inline"/>
+</fig> <p id="GUID-FE43C9B9-7F50-5311-A2AF-7BA9785A68BC"><b>RInteger class</b> </p><p> <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> is
+a <codeph>TInteger</codeph> derived class allowing the construction of variable
+length big integers. </p><p>This class follows standard <codeph>R</codeph> class
+rules. As a quick refresher, the following rules apply to <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> s: </p><ul>
+<li id="GUID-07C1504B-0A75-5FAF-BCFC-11E0C6977DD4"><p>You can construct an
+empty <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref>. </p> <codeblock id="GUID-1A9CA02D-E0AA-508D-A870-4572FF3FD4A4" xml:space="preserve">
+RInteger integer;
+</codeblock> <p>This is a constructed, but uninitialized integer. It does
+not own memory and no operations can be performed on it. It is useful, mostly,
+to assign the result of another integer operation to. <codeph>Push</codeph> ing
+and then <codeph>PopAndDestroy</codeph> ing an empty <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> works,
+although it's not needed. </p> </li>
+<li id="GUID-CB62909E-910A-5C29-81E1-6DFD17081B6D"><p> <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> s
+can be bitwised copied (the default assignment operator and copy constructor
+are valid), but you need to be careful you don't lose your original memory
+in the process. You should only use the assignment operator on a newly declared
+integer. To set an <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> to another value without losing
+memory see <codeph>TInteger::Set()</codeph>. </p> <codeblock id="GUID-ECCE21CF-BCD0-57D3-AF54-766B32939D2C" xml:space="preserve">
+RInteger a = anotherInteger; // OK -- you now have two integers that point to the same memory
+RInteger b = RInteger::NewL(aDesc); // OK 
+b = a; // NOT OK, b's original memory has been lost
+</codeblock> </li>
+<li id="GUID-D6F49AA0-5C91-5054-A59A-C01757D53AD9"><p>You own any <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> returned
+by value from a <codeph>TInteger</codeph> function. </p> <codeblock id="GUID-D03786AD-EF19-59B6-B8A9-F91020D14754" xml:space="preserve">
+RInteger integer = a.MinusL(b); // We now own integer
+CleanupStack::PushL(integer); 
+</codeblock> </li>
+<li id="GUID-076C4F7F-8EC7-5E5E-833C-DD3E32996DCE"><p>You must call <codeph>Close()</codeph> on
+all <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> s that own memory before they go out of scope.
+(The cleanup stack can do this for you as well, see further bullet points
+below). </p> <codeblock id="GUID-B018E759-4201-53D2-AA08-04B6F6ABAD04" xml:space="preserve">
+void foo(void)
+    {
+    RInteger integer = a.TimesL(TInteger::Two);
+    //&lt; all sorts of non-leaving code here &gt;
+    integer.Close();
+    }
+</codeblock> </li>
+<li id="GUID-0C2577CE-0336-553F-8D7C-9F731BECDDC5"><p> <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> has
+a operator <codeph>TCleanupItem()</codeph> cast function that allows you to
+call <codeph>CleanupStack::PushL(RInteger&amp;)</codeph>. Use this in preference
+to <codeph>CleanupClosePushL(RInteger&amp;)</codeph>, which although it does
+the same thing, generates more code. </p> <codeblock id="GUID-EFAD6082-D6BB-56C5-91AA-E94C2EAF419B" xml:space="preserve">
+RInteger integer = a.ModularExponentiateL(b, p);
+CleanupStack::PushL(integer);
+//&lt; all sorts of leaving code here &gt;
+CleanupStack::PopAndDestroy(&amp;integer);
+</codeblock> </li>
+<li id="GUID-6FF78282-6B29-5094-8D6B-C2D0FCDFC9E7"><p>Be careful calling <xref href="GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16.dita#GUID-E3D3C429-EA8C-34C1-9D1D-9062BC3D4F16/GUID-F2E2C416-D2F2-31C1-942B-256F74A4075C"><apiname>TInteger::Set()</apiname></xref>.
+After calling this, two <xref href="GUID-8C8CA735-6B76-3204-AFBF-F95496EDCD91.dita"><apiname>RInteger</apiname></xref> s have a pointer to the
+same heap-based integer. Calling <codeph>Close()</codeph> on one, either explicitly
+or through the cleanup stack, leaves a dangling pointer to the other. You
+probably want to use code similar to the following: </p> <codeblock id="GUID-7A7EE1D4-8931-5A43-8470-2C7C3E9E83F2" xml:space="preserve">
+RInteger first = RInteger::NewL(298728);
+CleanupStack::PushL(first);
+//&lt; all sorts of leaving code here &gt;
+RInteger second.Set(first);
+CleanupStack::Pop(first);
+CleanupStack::PushL(second);
+</codeblock> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA" xml:lang="en"><title>BmpAnim:
-Bitmap Animation example</title><shortdesc>This example shows how to create an animation using the Bitmap
-Animation framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-2CF5FF44-3E8C-5859-9F73-49C80A8D218F"><title>Purpose</title> <p>This
-example demonstrates the Bitmap Animation API. For more information about
-this example, see <xref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita">Bitmap
-Animation Overview</xref> which is based around code snippets taken from the
-example. </p> </section>
-<section id="GUID-907EEE02-5ADC-5412-BD80-BB026F75B978"><title>Download</title><p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-57050a2d-62c2-4133-a538-763183139e00.zip" scope="external">BmpAnimGui.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-57050a2d-62c2-4133-a538-763183139e00.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-4FB74226-E8E2-373D-98E7-072E3D0813B5.dita"><apiname>CFbsBitmapNote</apiname></xref></p><p><xref href="GUID-ED772C8E-C04C-3E8E-9A9A-F6B09A7D7964.dita"><apiname>CBitmapFrameDataEncapsulates</apiname></xref></p><p> <xref href="GUID-B9B0343A-8231-3CDA-B514-7B8ED8E41A7B.dita"><apiname>CBitmapAnimClientDataEncapsulates</apiname></xref></p><p><xref href="GUID-640E3089-EE56-3B7A-A80C-6D6498FAF86E.dita"><apiname>RBitmapAnimEnables</apiname></xref></p><p> <xref href="GUID-8E9042C8-7E83-3214-851E-64EC804972D5.dita"><apiname>RAnimDllClient</apiname></xref></p></section>
-<section id="GUID-39371B5F-F99B-5936-A7C7-C139599369EA"><title>Building and
-configuring</title> <p>To build the example: </p> <ul>
-<li id="GUID-D7599050-5BBB-566E-9511-6F24CD881EC8"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-CD188E99-3050-5B1F-88B3-1EAE4BAA86CB"><p>For the emulator, the
-example builds an executable called <filepath>bmpanimgui.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-</refbody><related-links>
-<link href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita"><linktext>Bitmap Animation
-Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-C7C5F7B8-F024-57F0-968B-1839E1E07DAA" xml:lang="en"><title>BmpAnim: Bitmap Animation example</title><shortdesc>This example shows how to create an animation using the
+Bitmap Animation framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-2CF5FF44-3E8C-5859-9F73-49C80A8D218F"><title>Purpose</title> <p>This example demonstrates the Bitmap Animation API. For more
+information about this example, see <xref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita">Bitmap Animation
+Overview</xref> which is based around code snippets taken from the
+example. </p> </section>
+<section id="GUID-907EEE02-5ADC-5412-BD80-BB026F75B978"><title>Download</title><p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-57050a2d-62c2-4133-a538-763183139e00.zip" scope="external">BmpAnimGui.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-57050a2d-62c2-4133-a538-763183139e00.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-3AE034A9-2BF4-4558-BD27-C4CE43CD0CA3"><title>Class Summary</title><ul>
+<li><p><codeph>CFbsBitmapNote</codeph></p></li>
+<li><p><codeph>CBitmapFrameDataEncapsulates</codeph></p></li>
+<li><p><codeph>CBitmapAnimClientDataEncapsulates</codeph></p></li>
+<li><p><codeph>RBitmapAnimEnables</codeph></p></li>
+<li><p><codeph>RAnimDllClient</codeph></p></li>
+</ul></section>
+<section id="GUID-39371B5F-F99B-5936-A7C7-C139599369EA"><title>Building
+and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-D7599050-5BBB-566E-9511-6F24CD881EC8"><p>You can build
+the example from your IDE or the command line. </p> <p>If you use
+an IDE, import the <filepath>bld.inf</filepath> file of the example
+into your IDE, and use the build command of the IDE. </p> <p>If you
+use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the
+example with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake bldfiles</userinput> </p> <p><userinput>abld
+build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to
+use abld</xref> describe how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-CD188E99-3050-5B1F-88B3-1EAE4BAA86CB"><p>For the emulator,
+the example builds an executable called <filepath>bmpanimgui.exe</filepath> in the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+</refbody><related-links>
+<link href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita"><linktext>Bitmap
+Animation Overview</linktext></link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57" xml:lang="en"><title>Selecting
-text</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A longer stretch of text can be selected by using the Hash key (#) and
-keeping it pressed while using the Arrow keys. The selected text is highlighted
-and the <uicontrol>Cut</uicontrol> and <uicontrol>Copy</uicontrol> functions
-are available on the softkeys when some text has been selected. It is also
-possible to start selections by going to the <uicontrol>Options</uicontrol> menu
-and selecting <uicontrol>Copy</uicontrol> mode.</p>
-<p>The same function is done with the <uicontrol>Edit</uicontrol> key in devices
-that have one.</p>
-<fig id="GUID-7CE6D8B9-817A-4B79-B97B-6E8A32B4DB18">
-<title>Text selection in an editor</title>
-<image href="GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e71193_href.png" placement="inline"/>
-</fig>
-<p>If the user presses an Arrow key alone when there is a text selection,
-the selection disappears and the cursor reappears in the respective position.</p>
-<p>For more information on editing text
-on touch devices, see <xref href="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita">Cut,
-copy, and paste</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C7D026AF-9C07-4221-AEDE-8CC0654A9D57" xml:lang="en"><title>Selecting
+text</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A longer stretch of text can be selected by using the Hash key (#) and
+keeping it pressed while using the Arrow keys. The selected text is highlighted
+and the <uicontrol>Cut</uicontrol> and <uicontrol>Copy</uicontrol> functions
+are available on the softkeys when some text has been selected. It is also
+possible to start selections by going to the <uicontrol>Options</uicontrol> menu
+and selecting <uicontrol>Copy</uicontrol> mode.</p>
+<p>The same function is done with the <uicontrol>Edit</uicontrol> key in devices
+that have one.</p>
+<fig id="GUID-7CE6D8B9-817A-4B79-B97B-6E8A32B4DB18">
+<title>Text selection in an editor</title>
+<image href="GUID-83DC4E21-72B3-459F-9AE8-41ED52BF219C_d0e65944_href.png" placement="inline"/>
+</fig>
+<p>If the user presses an Arrow key alone when there is a text selection,
+the selection disappears and the cursor reappears in the respective position.</p>
+<p>For more information on editing text
+on touch devices, see <xref href="GUID-B21638E4-B3B5-4D4C-B3F5-1627E367F100.dita">Cut,
+copy, and paste</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22" xml:lang="en"><title>List
-setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>List setting item (for example, radio button setting) works
-with a touch down and release. A touch down and release directly moves the
-mark in radio button list and closes the pop-up. In multi-selection list,
-first touch down and release only checks or unchecks the item. Touch down
-and release second time activates the item and the pop-up closes.</p>
-<fig id="GUID-515EB035-4514-46B8-B711-3FB0DA064829">
-<image href="GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e69123_href.png" placement="inline"/>
-</fig>
-<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-8-1-6-1-1-5-1-18-1-3-1-2-3"><title>The default touch
-events for list selection item</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on setting item, first time</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>The item is highlighted. </p><p>Tactile: Sensitive list effect and
-audio feedback are provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on setting item, first time</p></entry>
-<entry><p>In multi-selection list marks/unmarks the item. In radio button
-selection, activates the item and closes the pop-up.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: No effect in multi-selection
-list is provided. In radio button, selection basic list effect is provided
-with touch down release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on setting item, second time</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>The item is highlighted </p><p>Tactile: Basic list effect and audio
-given with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on setting item, second time</p></entry>
-<entry><p>In multi-selection list marks/unmarks the item.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect given with
-touch down release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move inside pop-up setting item list</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside the setting item.</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C7F900F4-7C8E-4922-8785-D6EF9AE23B22" xml:lang="en"><title>List
+setting item</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>List setting item (for example, radio button setting) works
+with a touch down and release. A touch down and release directly moves the
+mark in radio button list and closes the pop-up. In multi-selection list,
+first touch down and release only checks or unchecks the item. Touch down
+and release second time activates the item and the pop-up closes.</p>
+<fig id="GUID-515EB035-4514-46B8-B711-3FB0DA064829">
+<image href="GUID-173D7E50-92FA-42D7-A01B-47A39216E98D_d0e63892_href.png" placement="inline"/>
+</fig>
+<table id="GUID-4F77253E-5688-4642-98DD-04CB7FCF38E1-GENID-1-10-1-6-1-1-5-1-15-1-3-1-2-3"><title>The default touch
+events for list selection item</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on setting item, first time</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>The item is highlighted. </p><p>Tactile: Sensitive list effect and
+audio feedback are provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on setting item, first time</p></entry>
+<entry><p>In multi-selection list marks/unmarks the item. In radio button
+selection, activates the item and closes the pop-up.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: No effect in multi-selection
+list is provided. In radio button, selection basic list effect is provided
+with touch down release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on setting item, second time</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>The item is highlighted </p><p>Tactile: Basic list effect and audio
+given with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on setting item, second time</p></entry>
+<entry><p>In multi-selection list marks/unmarks the item.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect given with
+touch down release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside pop-up setting item list</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside the setting item.</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,125 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832" xml:lang="en"><title>rbufexample:
-Using resizable buffer descriptors</title><shortdesc>This example application demonstrates how to use the <codeph>RBuf</codeph> class. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> is a resizable buffer descriptor. It is part of
-the user library. It is used to contain strings and binary data when the maximum
-size of the data is not known until run time. </p>
-<p>This overview contains the following sections: </p>
-<ul>
-<li id="GUID-6A429EA8-8396-5A67-BF08-5CC81426D99A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-7605348A-0F8B-56A4-A48C-C83CB1CD546D">Download</xref> </p> </li>
-<li id="GUID-9BBBEFB0-D463-5A81-9AF8-8FE0FB781D5A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-BC0B8F0D-94A8-51D1-9BC2-85E4F76C482A">Description</xref>  </p> </li>
-<li id="GUID-4946F730-6E6A-5EC2-8A73-F0E29EBB09D9"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-69043124-f5fc-499b-8550-0c5b6ed66fe5">Class summary</xref>  </p> </li>
-<li id="GUID-4D0A67AF-FAC5-51F5-8C4F-5E9FBF1C2981"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-111B7B66-A3C4-5A15-8CF2-C6A227483651">Build</xref>  </p> </li>
-<li id="GUID-F01C5F43-391A-562A-A6E2-B7C34A2FB01A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-E30CC1D4-B854-5080-8F37-950CA4D86DD0">See also</xref>  </p> </li>
-</ul>
-<section id="GUID-7605348A-0F8B-56A4-A48C-C83CB1CD546D"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7520d937-647a-495a-9196-edca52b98e89.zip" scope="external">rbufexample.zip</xref>.</p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7520d937-647a-495a-9196-edca52b98e89.html" scope="peer">browse</xref> to view the example code.</p> </section>
-<section id="GUID-BC0B8F0D-94A8-51D1-9BC2-85E4F76C482A"><title>Description</title> <ul>
-<li id="GUID-87468748-0221-5005-9A98-EE03F5280421"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-B2AF4A97-A93B-5437-A31D-85C98AFC7DBB"> Creating an RBuf</xref>  </p> </li>
-<li id="GUID-6A66563D-F504-5D7E-8274-78126F2877F8"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-88B88124-BB7D-58DC-9F8A-61C32BDD58C4">Swapping two RBufs</xref>  </p> </li>
-<li id="GUID-6F41B457-6A2B-5895-8404-DCE5F971B59B"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-893B2BF3-AD9F-587D-95D5-165014C932B4">Copying data to an RBuf using the assignment operator</xref>  </p> </li>
-<li id="GUID-0B584C6E-A740-5CD6-A8F7-E2DA4327D2B9"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-2B6B8519-6306-5F0C-8A79-4094A3037901">Reallocating an RBuf</xref>  </p> </li>
-<li id="GUID-D96AC20C-5F22-52F7-B299-F178B90AE214"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-DE5A5DC0-07C6-50B9-AFDA-E69A92A02980"> Replacing and modifying the data in an RBuf</xref>  </p> </li>
-</ul> <p id="GUID-B2AF4A97-A93B-5437-A31D-85C98AFC7DBB"><b>Creating an RBuf</b> </p> <p>The
-example demonstrates creating an <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> in the following
-ways: </p> <ol id="GUID-B4E38F9F-B275-5364-B59C-71087CDDAF1C">
-<li id="GUID-0482EE2B-165C-5B55-B819-741026C38F02"><p> <b>Using RBuf::Create()
-or RBuf::CreateL():</b> These functions create either an empty descriptor,
-or one with data copied from another descriptor. </p> </li>
-<li id="GUID-00E1680C-CB9C-5CC8-BC4A-C7337E0B9B9D"><p> <b>Using RBuf::CreateMax()
-or RBuf::CreateMaxL():</b> These functions set the buffer's current length
-to be the same as its maximum length. </p> </li>
-<li id="GUID-A0E4C908-5542-53D3-8452-BDA3BFB8887D"><p> <b>By assigning from
-an HBufC:</b> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref> transfers ownership of the
-heap descriptor. It is not possible to access the original heap descriptor
-once ownership has been transferred. </p> </li>
-<li id="GUID-B8812B95-CE27-5850-B866-F6DBC18ADF8C"><p> <b>By assigning some
-previously allocated memory:</b> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref> transfers
-ownership of allocated memory. It is then not possible to access the original
-memory. </p> </li>
-<li id="GUID-9FCBF30F-815B-5CA9-B0B6-1698DA0C4F0E"><p> <b>Using RReadStream:</b> The
-example writes some text to a file stream (<codeph>RFileWriteStream</codeph>).
-Then it creates the buffer by passing the open stream object to <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-7CACD30A-D6FC-38CB-A754-CB4B5C3728FF"><apiname>RBuf::CreateL()</apiname></xref>. </p> </li>
-</ol><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> - Defines a build-independent resizable buffer
-descriptor.</p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-938BB912-4B66-3FF0-B830-CC4F778B23A9"><apiname>RBuf::Create()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-7CACD30A-D6FC-38CB-A754-CB4B5C3728FF"><apiname>RBuf::CreateL()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-7F4E287B-F06C-33CF-9F17-E0E69244860A"><apiname>RBuf::CreateMax()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-792C0C3B-203E-37FF-9BCF-8C9AEDB1CECE"><apiname>RBuf::CreateMaxL()</apiname></xref></p></li>
-</ul> <p id="GUID-88B88124-BB7D-58DC-9F8A-61C32BDD58C4"><b>Swapping two RBufs</b> </p> <p>The
-example creates two resizable buffers using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-938BB912-4B66-3FF0-B830-CC4F778B23A9"><apiname>RBuf::Create()</apiname></xref>.
-Then it swaps the contents of them using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-D3EA0EA9-EC2C-3555-8D39-7AF1EF6C7E8B"><apiname>RBuf::Swap()</apiname></xref>. </p> <p> <b>Note:</b> When
-you swap data between two <codeph>RBuf</codeph> s ensure that the maximum
-length of the target <codeph>RBuf</codeph> is sufficient to hold the data,
-otherwise a panic (<codeph>User 11</codeph>) occurs. </p><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-938BB912-4B66-3FF0-B830-CC4F778B23A9"><apiname>RBuf::Create()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-D3EA0EA9-EC2C-3555-8D39-7AF1EF6C7E8B"><apiname>RBuf::Swap()</apiname></xref></p></li>
-</ul> <p id="GUID-893B2BF3-AD9F-587D-95D5-165014C932B4"><b>Copying data to
-an RBuf using the assignment operator</b> </p> <p>The example creates two
-resizable buffers and allocates memory using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-938BB912-4B66-3FF0-B830-CC4F778B23A9"><apiname>RBuf::Create()</apiname></xref>.
-It then copies data to these buffers. It also copies data from the first buffer
-to the second buffer using the assignment operator. </p> <p> <b> Notes:</b>  </p> <ul>
-<li id="GUID-9B2835F9-BD3E-56DD-9CFD-F71677FFC71C"><p>When you use <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref>,
-ownership of the buffer is transferred. <codeph>Assign()</codeph> neither
-checks nor frees any pre-existing owned allocated memory. If this descriptor
-already owns some allocated memory, <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita#GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74/GUID-32EB41B6-A1C8-326C-9D52-095B05D4D20B"><apiname>RBuf16::Close()</apiname></xref> should
-be invoked on it before calling <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref>, otherwise
-a memory leak will occur. </p> </li>
-<li id="GUID-41218102-1810-5E83-BAEE-5683D378F75F"><p>When you use the assignment
-operator, you must make sure the target descriptor's maximum length is equal
-to or greater than the length of the source descriptor, otherwise a <codeph>User
-11</codeph> panic (descriptor overflow) occurs. Any existing data in the target
-descriptor is replaced. </p> </li>
-</ul> <p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita#GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74/GUID-32EB41B6-A1C8-326C-9D52-095B05D4D20B"><apiname>RBuf16::Close()</apiname></xref></p></li>
-<li><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-74F343A0-4ABB-378E-99D0-CAA13581AA4E"><apiname>RBuf::Assign()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-938BB912-4B66-3FF0-B830-CC4F778B23A9"><apiname>RBuf::Create()</apiname></xref></p></li>
-</ul><p id="GUID-2B6B8519-6306-5F0C-8A79-4094A3037901"><b>Reallocating an
-RBuf</b> </p> <p>The example creates a resizable buffer descriptor, then it
-resizes it using <codeph>RBuf::ReAlloc()</codeph>. The old and new lengths
-are printed to the console to show how <codeph>ReAlloc()</codeph> does not
-change the length of the descriptor, but only its maximum length. Calling <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-D07FA48B-6FD0-3683-AEC9-ABC672AB2D80"><apiname>RBuf::ReAlloc()</apiname></xref> with
-a value of zero frees the memory and sets the length and maximum length to
-zero. </p><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-D07FA48B-6FD0-3683-AEC9-ABC672AB2D80"><apiname>RBuf::ReAlloc()</apiname></xref></p></li>
-</ul> <p id="GUID-DE5A5DC0-07C6-50B9-AFDA-E69A92A02980"><b> Replacing and
-modifying the data in an RBuf</b> </p> <p>The example creates a resizable
-buffer descriptor and replaces a portion of the data in it using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-0958525F-DB10-3D9A-AE99-B8113CA15810"><apiname>RBuf::Replace()</apiname></xref>.
-The start position and length of the data to be replaced, and the replacement
-text are passed as parameters. <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-019690E0-EFD2-3A9D-9332-11FB5A16D407"><apiname>RBuf::Delete()</apiname></xref> is then used
-to delete the replacement text, by specifying the position and length of the
-data to be deleted. </p><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-019690E0-EFD2-3A9D-9332-11FB5A16D407"><apiname>RBuf::Delete()</apiname></xref></p></li>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-0958525F-DB10-3D9A-AE99-B8113CA15810"><apiname>RBuf::Replace()</apiname></xref></p></li>
-</ul> </section>
-<section id="GUID-69043124-F5FC-499B-8550-0C5B6ED66FE5"><title>Class summary</title><ul>
-<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> - Defines a build-independent resizable buffer
-descriptor.</p></li>
-<li><p> <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> - Defines a build-independent heap descriptor.</p></li>
-<li><p><xref href="GUID-EFFA9A71-4CA4-3227-879D-17EFEB8B07D6.dita"><apiname>RFileWriteStream</apiname></xref> - Supports the writing of a stream
-to a file.</p></li>
-<li><p><xref href="GUID-90A3AE1D-DCB2-3E98-8BE9-C48C15964E7D.dita"><apiname>RFileReadStream</apiname></xref> - Supports the reading of a stream
-from a file.</p></li>
-<li><p><xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref></p></li>
-</ul></section>
-<section id="GUID-111B7B66-A3C4-5A15-8CF2-C6A227483651"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
-how to build this example application. The example builds an executable file
-called <filepath>rbufexample.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\&lt;build_variant&gt;</filepath> for
-the emulator). After launching the executable, depending on the emulator you
-are using, you may need to navigate away from the application launcher/shell
-screen to view the console. </p> </section>
-<section id="GUID-E30CC1D4-B854-5080-8F37-950CA4D86DD0"><title>See also</title> <p> <xref href="GUID-4AC3CC42-6E8D-584A-AA39-84B5E0F3C16A.dita">How to use the resizable
-buffer descriptor - RBuf</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832" xml:lang="en"><title>rbufexample: Using resizable buffer descriptors</title><shortdesc>This example application demonstrates how to use the <codeph>RBuf</codeph> class. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> is a resizable buffer descriptor. It is
+part of the user library. It is used to contain strings and binary
+data when the maximum size of the data is not known until run time. </p>
+<p>This overview contains the following sections: </p>
+<ul>
+<li id="GUID-6A429EA8-8396-5A67-BF08-5CC81426D99A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-7605348A-0F8B-56A4-A48C-C83CB1CD546D">Download</xref> </p> </li>
+<li id="GUID-9BBBEFB0-D463-5A81-9AF8-8FE0FB781D5A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-BC0B8F0D-94A8-51D1-9BC2-85E4F76C482A">Description</xref>  </p> </li>
+<li id="GUID-4946F730-6E6A-5EC2-8A73-F0E29EBB09D9"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-69043124-f5fc-499b-8550-0c5b6ed66fe5">Class summary</xref>  </p> </li>
+<li id="GUID-4D0A67AF-FAC5-51F5-8C4F-5E9FBF1C2981"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-111B7B66-A3C4-5A15-8CF2-C6A227483651">Build</xref>  </p> </li>
+<li id="GUID-F01C5F43-391A-562A-A6E2-B7C34A2FB01A"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-E30CC1D4-B854-5080-8F37-950CA4D86DD0">See also</xref>  </p> </li>
+</ul>
+<section id="GUID-7605348A-0F8B-56A4-A48C-C83CB1CD546D"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7520d937-647a-495a-9196-edca52b98e89.zip" scope="external">rbufexample.zip</xref>.</p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7520d937-647a-495a-9196-edca52b98e89.html" scope="peer">browse</xref> to view the example code.</p> </section>
+<section id="GUID-BC0B8F0D-94A8-51D1-9BC2-85E4F76C482A"><title>Description</title> <ul>
+<li id="GUID-87468748-0221-5005-9A98-EE03F5280421"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-B2AF4A97-A93B-5437-A31D-85C98AFC7DBB"> Creating an RBuf</xref>  </p> </li>
+<li id="GUID-6A66563D-F504-5D7E-8274-78126F2877F8"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-88B88124-BB7D-58DC-9F8A-61C32BDD58C4">Swapping two RBufs</xref>  </p> </li>
+<li id="GUID-6F41B457-6A2B-5895-8404-DCE5F971B59B"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-893B2BF3-AD9F-587D-95D5-165014C932B4">Copying data to an RBuf using the assignment operator</xref>  </p> </li>
+<li id="GUID-0B584C6E-A740-5CD6-A8F7-E2DA4327D2B9"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-2B6B8519-6306-5F0C-8A79-4094A3037901">Reallocating an RBuf</xref>  </p> </li>
+<li id="GUID-D96AC20C-5F22-52F7-B299-F178B90AE214"><p> <xref href="GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832.dita#GUID-C85EECD6-2CFD-5BA9-A60B-F7AF3A74E832/GUID-DE5A5DC0-07C6-50B9-AFDA-E69A92A02980"> Replacing and modifying the data in an RBuf</xref>  </p> </li>
+</ul> <p id="GUID-B2AF4A97-A93B-5437-A31D-85C98AFC7DBB"><b>Creating
+an RBuf</b> </p> <p>The example demonstrates creating an <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> in the following ways: </p> <ol id="GUID-B4E38F9F-B275-5364-B59C-71087CDDAF1C">
+<li id="GUID-0482EE2B-165C-5B55-B819-741026C38F02"><p> <b>Using RBuf::Create()
+or RBuf::CreateL():</b> These functions create either an empty descriptor,
+or one with data copied from another descriptor. </p> </li>
+<li id="GUID-00E1680C-CB9C-5CC8-BC4A-C7337E0B9B9D"><p> <b>Using RBuf::CreateMax()
+or RBuf::CreateMaxL():</b> These functions set the buffer's current
+length to be the same as its maximum length. </p> </li>
+<li id="GUID-A0E4C908-5542-53D3-8452-BDA3BFB8887D"><p> <b>By assigning
+from an HBufC:</b> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-24070146-5588-3525-AC3E-62DA78BEA297"><apiname>RBuf::Assign(HBufC8*)</apiname></xref> transfers
+ownership of the heap descriptor. It is not possible to access the
+original heap descriptor once ownership has been transferred. </p> </li>
+<li id="GUID-B8812B95-CE27-5850-B866-F6DBC18ADF8C"><p> <b>By assigning
+some previously allocated memory:</b> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-8B622E83-88C5-3561-98FC-E2157022BCBC"><apiname>RBuf::Assign(const
+RBuf8&amp; )</apiname></xref> transfers ownership of allocated memory. It
+is then not possible to access the original memory. </p> </li>
+<li id="GUID-9FCBF30F-815B-5CA9-B0B6-1698DA0C4F0E"><p> <b>Using RReadStream:</b> The example writes some text to a file stream (<codeph>RFileWriteStream</codeph>). Then it creates the buffer by passing the open stream object to <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-C029FB52-971D-3C53-A6BC-C6FEC0E9BCDB"><apiname>RBuf::CreateL(TInt)</apiname></xref>. </p> </li>
+</ol><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> - Defines a build-independent resizable
+buffer descriptor.</p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9B5FF0B6-9C38-3E74-A5BC-A5CB02E029B7"><apiname>RBuf::Assign(const RBuf8&amp;)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E69BAB5A-EFC1-3700-8B56-9A5876BF428D"><apiname>RBuf::Create(const TDesC8&amp;)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-D1478239-6AFC-30F3-B836-D76F53725844"><apiname>RBuf::CreateL(const TDesC8&amp;)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-2BB11BE2-CCD9-3197-B4A5-4001474AEEAF"><apiname>RBuf::CreateMax(TInt)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-EF93482B-CD75-3744-B5B1-3AED1E4F0637"><apiname>RBuf::CreateMaxL(TInt)</apiname></xref></p></li>
+</ul> <p id="GUID-88B88124-BB7D-58DC-9F8A-61C32BDD58C4"><b>Swapping
+two RBufs</b> </p> <p>The example creates two resizable buffers using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E69BAB5A-EFC1-3700-8B56-9A5876BF428D"><apiname>RBuf::Create(const TDesC8&amp;)</apiname></xref>. Then it swaps the contents
+of them using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E396F6CA-1353-31E3-8AFF-BAFE2DF6E0E7"><apiname>RBuf::Swap(RBuf8&amp;)</apiname></xref>. </p> <p> <b>Note:</b> When you swap data between two <codeph>RBuf</codeph> s
+ensure that the maximum length of the target <codeph>RBuf</codeph> is sufficient to hold the data, otherwise a panic (<codeph>User
+11</codeph>) occurs. </p><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E69BAB5A-EFC1-3700-8B56-9A5876BF428D"><apiname>RBuf::Create(const TDesC8&amp;)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E396F6CA-1353-31E3-8AFF-BAFE2DF6E0E7"><apiname>RBuf::Swap(RBuf8&amp;)</apiname></xref></p></li>
+</ul> <p id="GUID-893B2BF3-AD9F-587D-95D5-165014C932B4"><b>Copying
+data to an RBuf using the assignment operator</b> </p> <p>The example
+creates two resizable buffers and allocates memory using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-E69BAB5A-EFC1-3700-8B56-9A5876BF428D"><apiname>RBuf::Create(const TDesC8&amp;)</apiname></xref>. It then copies
+data to these buffers. It also copies data from the first buffer to
+the second buffer using the assignment operator. </p> <p> <b> Notes:</b>  </p> <ul>
+<li id="GUID-9B2835F9-BD3E-56DD-9CFD-F71677FFC71C"><p>When you use <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9B5FF0B6-9C38-3E74-A5BC-A5CB02E029B7"><apiname>RBuf::Assign(const RBuf8&amp;)</apiname></xref>, ownership of the buffer
+is transferred. <codeph>Assign(const RBuf8&amp;)</codeph> neither
+checks nor frees any pre-existing owned allocated memory. If this
+descriptor already owns some allocated memory, <xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita#GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74/GUID-32EB41B6-A1C8-326C-9D52-095B05D4D20B"><apiname>RBuf16::Close()</apiname></xref> should be invoked on it before calling <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9B5FF0B6-9C38-3E74-A5BC-A5CB02E029B7"><apiname>RBuf::Assign(const
+RBuf8&amp;)</apiname></xref>, otherwise a memory leak will occur. </p> </li>
+<li id="GUID-41218102-1810-5E83-BAEE-5683D378F75F"><p>When you use
+the assignment operator, you must make sure the target descriptor's
+maximum length is equal to or greater than the length of the source
+descriptor, otherwise a <codeph>User 11</codeph> panic (descriptor
+overflow) occurs. Any existing data in the target descriptor is replaced. </p> </li>
+</ul> <p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74.dita#GUID-BEFF9C91-DA64-3032-96E8-F5054405DC74/GUID-32EB41B6-A1C8-326C-9D52-095B05D4D20B"><apiname>RBuf16::Close()</apiname></xref></p></li>
+<li><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9B5FF0B6-9C38-3E74-A5BC-A5CB02E029B7"><apiname>RBuf::Assign(const RBuf8&amp;)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-05537A6D-F8B8-3760-B9CA-591465BEFE4B"><apiname>RBuf::Create(TInt)</apiname></xref></p></li>
+</ul><p id="GUID-2B6B8519-6306-5F0C-8A79-4094A3037901"><b>Reallocating
+an RBuf</b> </p> <p>The example creates a resizable buffer descriptor,
+then it resizes it using <codeph>RBuf::ReAlloc(TInt)</codeph>. The
+old and new lengths are printed to the console to show how <codeph>ReAlloc()</codeph> does not change the length of the descriptor,
+but only its maximum length. Calling <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9887F6B2-492E-3225-905C-7841A2C9CAE8"><apiname>RBuf::ReAlloc(TInt)</apiname></xref> with a value of zero frees the memory and sets the length and maximum
+length to zero. </p><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-9887F6B2-492E-3225-905C-7841A2C9CAE8"><apiname>RBuf::ReAlloc(TInt)</apiname></xref></p></li>
+</ul> <p id="GUID-DE5A5DC0-07C6-50B9-AFDA-E69A92A02980"><b> Replacing
+and modifying the data in an RBuf</b> </p> <p>The example creates
+a resizable buffer descriptor and replaces a portion of the data in
+it using <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-FB7C2936-6CE6-38BF-80BE-F02364F21E6B"><apiname>RBuf::Replace(TInt ,TInt ,const TDesC16&amp;)</apiname></xref>. The start position and length of the data to be replaced, and the
+replacement text are passed as parameters. <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-05E77813-EAA3-37DF-A857-0687916F2E30"><apiname>RBuf::Delete(TInt
+, TInt)</apiname></xref> is then used to delete the replacement text, by
+specifying the position and length of the data to be deleted. </p><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-05E77813-EAA3-37DF-A857-0687916F2E30"><apiname>RBuf::Delete(TInt , TInt)</apiname></xref></p></li>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita#GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8/GUID-FB7C2936-6CE6-38BF-80BE-F02364F21E6B"><apiname>RBuf::Replace(TInt ,TInt ,const TDesC16&amp;)</apiname></xref></p></li>
+</ul> </section>
+<section id="GUID-69043124-F5FC-499B-8550-0C5B6ED66FE5"><title>Class
+summary</title><ul>
+<li><p><xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> - Defines a build-independent resizable
+buffer descriptor.</p></li>
+<li><p> <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> - Defines a build-independent heap
+descriptor.</p></li>
+<li><p><xref href="GUID-EFFA9A71-4CA4-3227-879D-17EFEB8B07D6.dita"><apiname>RFileWriteStream</apiname></xref> - Supports the writing
+of a stream to a file.</p></li>
+<li><p><xref href="GUID-90A3AE1D-DCB2-3E98-8BE9-C48C15964E7D.dita"><apiname>RFileReadStream</apiname></xref> - Supports the reading of
+a stream from a file.</p></li>
+<li><p><xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref></p></li>
+</ul></section>
+<section id="GUID-111B7B66-A3C4-5A15-8CF2-C6A227483651"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
+build process</xref> describes how to build this example application.
+The example builds an executable file called <filepath>rbufexample.exe</filepath> in the standard location (<filepath>\epoc32\release\winscw\&lt;build_variant&gt;</filepath> for the emulator). After launching the executable, depending on
+the emulator you are using, you may need to navigate away from the
+application launcher/shell screen to view the console. </p> </section>
+<section id="GUID-E30CC1D4-B854-5080-8F37-950CA4D86DD0"><title>See
+also</title> <p> <xref href="GUID-4AC3CC42-6E8D-584A-AA39-84B5E0F3C16A.dita">How to use the resizable buffer descriptor - RBuf</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e134273_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-C8938826-52F7-5040-B59C-3C06DAEB6F03_d0e140807_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7" xml:lang="en"><title>OCSP-SWI
-Integration</title><abstract><p>The Symbian platform provides the ability to validate and manage <xref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita">X.509</xref> certificates.
-This ability is integrated into the software installation process to provide
-Secure Software Install (SWI) with the functionality of performing certificate
-checking at installation time. During installation, SWI checks whether the
-certificates associated with the application to be installed have been revoked.
-It performs this check by using Online Certificate Status Protocol (OCSP). </p><p>You
-can configure SWI to enable or disable the revocation status check of certificates.
-In addition, SWI can also be configured to supply the OCSP client with a default
-Uniform Resource Identifier (URI) for the OCSP server.</p></abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>You can configure SWI to enable or disable the revocation status check
-of certificates. In addition, SWI can also be configured to supply the OCSP
-client with a default Uniform Resource Identifier (URI) for the OCSP server. </p>
-<section><title>Installing software based on OCSP check</title> <p>SWI validates
-the certificate in the install file. As part of validation, it carries out
-revocation check, depending on the setting of the <codeph>OcspEnabled</codeph> parameter
-in the <codeph>swipolicy.ini</codeph> file. If the revocation check option
-is not enabled, a warning is displayed giving options to carry out revocation
-check, to continue without revocation check or to cancel the installation.
-If the option is enabled, all certificates in the chain except the <xref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita">root</xref> are
-checked. </p> <p> <b>Note:</b> For details on how certificates are validated,
-see <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita">Certificate Validation
-in PKIX</xref>. </p> <p>The results of revocation check decide whether the
-application can be installed. The following are the scenarios associated with
-the certificate revocation check: </p> <ul>
-<li id="GUID-EE8C335A-B74D-56D3-9DC5-8E7D9D9C8EB8"><p>If the OCSP client indicates
-that no certificates are revoked and the operation completes successfully
-with no errors or warnings, the software can be installed. </p> </li>
-<li id="GUID-0F861436-15DE-56C7-A06D-C93C30829313"><p>If OCSP indicates that
-any of the certificates is revoked or if the signature on the OCSP response
-is invalid, a security error is issued and the software cannot be installed. </p> </li>
-<li id="GUID-F8A8F1FB-DC90-58B0-98B7-8EFE4255A2D6"><p>If the revocation status
-of a certificate cannot be determined (because of reasons like lack of network
-access or OCSP responder error), SWI behaves as if the software were unsigned.
-The setting of the <codeph>AllowUnsigned</codeph> parameter in the <codeph>swipolicy.ini</codeph> file
-determines whether the unsigned software can be installed or not. If the parameter
-value is true, SWI issues a warning before installing but allows installation
-of the software. Otherwise it issues an error and does not allow installation. </p> </li>
-</ul> <p> <b>Note:</b> For details of the various parameters in <codeph>swipolicy.ini</codeph>,
-see <xref href="GUID-F8C2E97C-35EC-5437-BC6B-E2A622D2DC4D.dita">Secure Software
-Install Reference</xref>. </p> </section>
-</conbody><related-links>
-<link href="GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita"><linktext>Online Certificate
-Status Protocol</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C893C9E6-47B8-5149-9808-0274C61CF3D7" xml:lang="en"><title>OCSP-SWI Integration</title><abstract><p>The Symbian platform provides the ability to validate
+and manage <xref href="GUID-C676C4E6-93AF-59E9-886D-74D59F154490.dita">X.509</xref> certificates. This ability is integrated into the software
+installation process to provide Secure Software Install (SWI) with
+the functionality of performing certificate checking at installation
+time. During installation, SWI checks whether the certificates associated
+with the application to be installed have been revoked. It performs
+this check by using Online Certificate Status Protocol (OCSP). </p><p>You can configure SWI to enable or disable the revocation status
+check of certificates. In addition, SWI can also be configured to
+supply the OCSP client with a default Uniform Resource Identifier
+(URI) for the OCSP server.</p></abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>You can configure SWI to enable or disable the revocation status
+check of certificates. In addition, SWI can also be configured to
+supply the OCSP client with a default Uniform Resource Identifier
+(URI) for the OCSP server. </p>
+<section id="GUID-847C8586-8023-4F5F-8A25-028AEE1A8F06"><title>Installing software based on OCSP check</title> <p>SWI validates the certificate in the install file. As part of validation,
+it carries out revocation check, depending on the setting of the <codeph>OcspEnabled</codeph> parameter in the <codeph>swipolicy.ini</codeph> file. If the revocation check option is enabled, a
+warning is displayed giving options to carry out revocation check,
+to continue without revocation check or to cancel the installation.
+If the option is enabled, all certificates in the chain except the <xref href="GUID-2800C486-2FB4-5C5C-990F-CC1A290F7E0C.dita">root</xref> are checked. </p> <p> <b>Note:</b> For details on how certificates are validated,
+see <xref href="GUID-A3B58436-07E4-565B-800B-86435D205461.dita">Certificate
+Validation in PKIX</xref>. </p> <p>The results of revocation check
+decide whether the application can be installed. The following are
+the scenarios associated with the certificate revocation check: </p> <ul>
+<li id="GUID-EE8C335A-B74D-56D3-9DC5-8E7D9D9C8EB8"><p>If the OCSP
+client indicates that no certificates are revoked and the operation
+completes successfully with no errors or warnings, the software can
+be installed. </p> </li>
+<li id="GUID-0F861436-15DE-56C7-A06D-C93C30829313"><p>If OCSP indicates
+that any of the certificates is revoked or if the signature on the
+OCSP response is invalid, a security error is issued and the software
+cannot be installed. </p> </li>
+<li id="GUID-F8A8F1FB-DC90-58B0-98B7-8EFE4255A2D6"><p>If the revocation
+status of a certificate cannot be determined (because of reasons like
+lack of network access or OCSP responder error), SWI behaves as if
+the software were unsigned. The setting of the <codeph>AllowUnsigned</codeph> parameter in the <codeph>swipolicy.ini</codeph> file determines
+whether the unsigned software can be installed or not. If the parameter
+value is true, SWI issues a warning before installing but allows installation
+of the software. Otherwise it issues an error and does not allow installation. </p> </li>
+</ul> <p> <b>Note:</b> For details of the various parameters in <codeph>swipolicy.ini</codeph>, see <xref href="GUID-F8C2E97C-35EC-5437-BC6B-E2A622D2DC4D.dita">Secure Software Install
+Reference</xref>. </p> </section>
+</conbody><related-links>
+<link href="GUID-90DF40EF-7D3F-551D-9957-A3756317A254.dita"><linktext>Online
+Certificate Status Protocol</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e185271_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C8C804F9-860D-590D-B247-FBB1714604B7_d0e191867_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C8D04D54-D391-5505-9E80-596589410179_d0e333754_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C8D04D54-D391-5505-9E80-596589410179_d0e339911_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e7071_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C8D5B104-3F34-513B-BA08-5F2FEE60265C_d0e8346_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e37243_href.png has changed
Binary file Symbian3/SDK/Source/GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e42810_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-C95D0D29-E14F-5E34-B295-F3CBB38F85FF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C95D0D29-E14F-5E34-B295-F3CBB38F85FF" xml:lang="en"><title>TCP/IP Examples</title><shortdesc>This describes the example code for TCP/IP. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1" xml:lang="en"><title>UI
-graphics utilities overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FF9BDA9A-2DD5-489E-8481-D3554969F2E5-GENID-1-8-1-3-1-1-8-1-3-1-2-1"><title>Purpose</title> <p>Provides miscellaneous user interface utility
-functions, relating to fonts, colours, and drawing. </p> </section>
-<section id="GUID-6740AB63-A542-43E1-AC7D-582EC8F69A68-GENID-1-8-1-3-1-1-8-1-3-1-2-2"><title>Architectural relationships</title> <p>The API is a simple
-library that is used by applications and other UI framework APIs. </p> </section>
-<section id="GUID-9ABBAE7A-8733-4C09-9F0D-49148D4FEF94-GENID-1-8-1-3-1-1-8-1-3-1-2-3"><title>Description</title> <p><b>Colour utilities</b> </p> <p>Colour
-utilities are available from <codeph>CColorArray</codeph>, <codeph>CColorList</codeph>,
-and <codeph>ColorUtils</codeph>. </p> <p><b>Font utilities</b> </p> <p>Font
-utilities are available from <codeph>CCleanupStackableFont</codeph>, <codeph>FontUtils</codeph>, <codeph>ResourceUtils</codeph>,
-and <codeph>TLogicalFont</codeph>. A family of classes derived from <codeph>TFindWidthOfWidestTextItem</codeph> find
-the pixel width for common items, such as days and digits, using a particular
-font. </p> <p><b>Icon utility</b> </p> <p> <codeph>CGulIcon</codeph> packages
-two bitmaps, one each for an icon image and its mask. </p> <p><b>Text and
-drawing utilities</b> </p> <p>Text and drawing utilities are available from <codeph>TextUtils</codeph> and <codeph>DrawUtils</codeph>. </p> <ul>
-<li id="GUID-74A1F756-80BB-5E1E-850A-826B1C3A67D9-GENID-1-8-1-3-1-1-8-1-3-1-2-3-10-1"><p>Utilities for help with
-finding text are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> </li>
-<li id="GUID-762B76D2-A181-582C-B75F-C7445C33F8A5-GENID-1-8-1-3-1-1-8-1-3-1-2-3-10-2"><p>Utilities for help with
-loading and formatting resource strings are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulTextResourceUtils</apiname></xref> </p> </li>
-<li id="GUID-966D4095-A0DF-5CD0-8EAA-FC8FDED9ED9A-GENID-1-8-1-3-1-1-8-1-3-1-2-3-10-3"><p>Utilities for help with
-parsing and validating phone numbers are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulPhoneNumberUtils</apiname></xref> </p> </li>
-<li id="GUID-4B8F2543-8945-538B-8166-6DE9DA891448-GENID-1-8-1-3-1-1-8-1-3-1-2-3-10-4"><p>Utilities for help with
-reading strings from resource files are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulStringResourceReader</apiname></xref> </p> </li>
-<li id="GUID-9253C784-6BFF-5266-BB91-398503133BCD-GENID-1-8-1-3-1-1-8-1-3-1-2-3-10-5"><p>Utilities for help with
-rectangular areas are provided by <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulAlignment</apiname></xref> and <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulBorder</apiname></xref>. </p> </li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-6-1-1-4-1-7-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-6-1-1-4-1-7-1-3-1" xml:lang="en"><title>UI
-graphics utilities overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-FF9BDA9A-2DD5-489E-8481-D3554969F2E5-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-1"><title>Purpose</title> <p>Provides miscellaneous user interface utility
-functions, relating to fonts, colours, and drawing. </p> </section>
-<section id="GUID-6740AB63-A542-43E1-AC7D-582EC8F69A68-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-2"><title>Architectural relationships</title> <p>The API is a simple
-library that is used by applications and other UI framework APIs. </p> </section>
-<section id="GUID-9ABBAE7A-8733-4C09-9F0D-49148D4FEF94-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3"><title>Description</title> <p><b>Colour utilities</b> </p> <p>Colour
-utilities are available from <codeph>CColorArray</codeph>, <codeph>CColorList</codeph>,
-and <codeph>ColorUtils</codeph>. </p> <p><b>Font utilities</b> </p> <p>Font
-utilities are available from <codeph>CCleanupStackableFont</codeph>, <codeph>FontUtils</codeph>, <codeph>ResourceUtils</codeph>,
-and <codeph>TLogicalFont</codeph>. A family of classes derived from <codeph>TFindWidthOfWidestTextItem</codeph> find
-the pixel width for common items, such as days and digits, using a particular
-font. </p> <p><b>Icon utility</b> </p> <p> <codeph>CGulIcon</codeph> packages
-two bitmaps, one each for an icon image and its mask. </p> <p><b>Text and
-drawing utilities</b> </p> <p>Text and drawing utilities are available from <codeph>TextUtils</codeph> and <codeph>DrawUtils</codeph>. </p> <ul>
-<li id="GUID-74A1F756-80BB-5E1E-850A-826B1C3A67D9-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3-10-1"><p>Utilities for help with
-finding text are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> </li>
-<li id="GUID-762B76D2-A181-582C-B75F-C7445C33F8A5-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3-10-2"><p>Utilities for help with
-loading and formatting resource strings are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulTextResourceUtils</apiname></xref> </p> </li>
-<li id="GUID-966D4095-A0DF-5CD0-8EAA-FC8FDED9ED9A-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3-10-3"><p>Utilities for help with
-parsing and validating phone numbers are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulPhoneNumberUtils</apiname></xref> </p> </li>
-<li id="GUID-4B8F2543-8945-538B-8166-6DE9DA891448-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3-10-4"><p>Utilities for help with
-reading strings from resource files are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulStringResourceReader</apiname></xref> </p> </li>
-<li id="GUID-9253C784-6BFF-5266-BB91-398503133BCD-GENID-1-8-1-6-1-1-4-1-7-1-3-1-2-3-10-5"><p>Utilities for help with
-rectangular areas are provided by <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulAlignment</apiname></xref> and <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulBorder</apiname></xref>. </p> </li>
-</ul> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-C9823942-CE52-53E3-B183-3B1F6509749F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-C9823942-CE52-53E3-B183-3B1F6509749F" xml:lang="en"><title>UI
+graphics utilities overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-FF9BDA9A-2DD5-489E-8481-D3554969F2E5"><title>Purpose</title> <p>Provides miscellaneous user interface utility
+functions, relating to fonts, colours, and drawing. </p> </section>
+<section id="GUID-6740AB63-A542-43E1-AC7D-582EC8F69A68"><title>Architectural relationships</title> <p>The API is a simple
+library that is used by applications and other UI framework APIs. </p> </section>
+<section id="GUID-9ABBAE7A-8733-4C09-9F0D-49148D4FEF94"><title>Description</title> <p><b>Colour utilities</b> </p> <p>Colour
+utilities are available from <codeph>CColorArray</codeph>, <codeph>CColorList</codeph>,
+and <codeph>ColorUtils</codeph>. </p> <p><b>Font utilities</b> </p> <p>Font
+utilities are available from <codeph>CCleanupStackableFont</codeph>, <codeph>FontUtils</codeph>, <codeph>ResourceUtils</codeph>,
+and <codeph>TLogicalFont</codeph>. A family of classes derived from <codeph>TFindWidthOfWidestTextItem</codeph> find
+the pixel width for common items, such as days and digits, using a particular
+font. </p> <p><b>Icon utility</b> </p> <p> <codeph>CGulIcon</codeph> packages
+two bitmaps, one each for an icon image and its mask. </p> <p><b>Text and
+drawing utilities</b> </p> <p>Text and drawing utilities are available from <codeph>TextUtils</codeph> and <codeph>DrawUtils</codeph>. </p> <ul>
+<li id="GUID-74A1F756-80BB-5E1E-850A-826B1C3A67D9"><p>Utilities for help with
+finding text are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> </li>
+<li id="GUID-762B76D2-A181-582C-B75F-C7445C33F8A5"><p>Utilities for help with
+loading and formatting resource strings are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulTextResourceUtils</apiname></xref> </p> </li>
+<li id="GUID-966D4095-A0DF-5CD0-8EAA-FC8FDED9ED9A"><p>Utilities for help with
+parsing and validating phone numbers are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TulPhoneNumberUtils</apiname></xref> </p> </li>
+<li id="GUID-4B8F2543-8945-538B-8166-6DE9DA891448"><p>Utilities for help with
+reading strings from resource files are available from <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>CTulStringResourceReader</apiname></xref> </p> </li>
+<li id="GUID-9253C784-6BFF-5266-BB91-398503133BCD"><p>Utilities for help with
+rectangular areas are provided by <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulAlignment</apiname></xref> and <xref href="GUID-10299A6C-D7E0-35B3-B473-D23A174E6611.dita"><apiname>TGulBorder</apiname></xref>. </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-C9F4AF3A-158C-4438-930D-9E351B89280C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-C9F4AF3A-158C-4438-930D-9E351B89280C" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Tactile feedback client API is an SDK API and first released in S60
-5th Edition.  </p>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432235_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432397_href.png has changed
--- a/Symbian3/SDK/Source/GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F" xml:lang="en"><title>Clock
-pane</title><shortdesc>Clock pane displays the current time as set in Date and time settings.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Clock pane cannot have a focus. The only possible interaction with clock
-pane is with touch.</p>
-<fig id="GUID-68755854-AC6C-46B7-A3CD-ACBD707105B5">
-<title>Clock pane</title>
-<image href="GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e57718_href.png" placement="inline"/>
-</fig>
-<table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-8-1-6-1-1-5-1-3-1-3-3"><title>Default
-touch events for clock pane</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.68*"/><colspec colname="col2" colwidth="0.93*"/>
-<colspec colname="col3" colwidth="1.39*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on a clock item</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Tactile: Sensitive button effect and audio feedback are provided
-with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on clock item</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch release on clock item</p></entry>
-<entry><p>Opens the <xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal
-indicator pop-up</xref></p></entry>
-<entry><p>Tactile: Sensitive button effect is provided with touch release.
-No pop-up effect is provided to avoid double feedback.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F" xml:lang="en"><title>Clock
+pane</title><shortdesc>Clock pane displays the current time as set in Date and time settings.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Clock pane cannot have a focus. The only possible interaction with clock
+pane is with touch.</p>
+<fig id="GUID-68755854-AC6C-46B7-A3CD-ACBD707105B5">
+<title>Clock pane</title>
+<image href="GUID-53313E89-3E23-4004-BD10-771858657DAD_d0e67159_href.png" placement="inline"/>
+</fig>
+<table id="GUID-D5917E40-42B1-461B-8722-C7AD66482078-GENID-1-10-1-6-1-1-5-1-21-1-1-4-1-5-1-3-3"><title>Default
+touch events for clock pane</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.68*"/><colspec colname="col2" colwidth="0.93*"/>
+<colspec colname="col3" colwidth="1.39*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on a clock item</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Tactile: Sensitive button effect and audio feedback are provided
+with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on clock item</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch release on clock item</p></entry>
+<entry><p>Opens the <xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal
+indicator pop-up</xref></p></entry>
+<entry><p>Tactile: Sensitive button effect is provided with touch release.
+No pop-up effect is provided to avoid double feedback.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e40313_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CA7B2B53-B0DD-4830-90CF-15FD101C66F1_d0e45876_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2587_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CAB2A21A-B2EE-4B49-AC97-7F70BDC95755_d0e2691_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e250496_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-CAB30473-7829-5F2E-9F45-A2344DEDFC35_d0e254228_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D" xml:lang="en"><title>Legal
-Notices</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This page provides copyright and acknowledgement information. </p>
-<section id="GUID-AF837579-4E73-45CC-AB57-600CF171BB22"><title>Copyright</title> <p>Copyright
-© 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 "Eclipse Public License v1.0" which accompanies this distribution, and
-is available at the URL <xref href="http://www.eclipse.org/legal/epl-v10.html.dita">http://www.eclipse.org/legal/epl-v10.html</xref>. </p> <p>Initial
-Contributors: </p> <p>Nokia Corporation - initial contribution </p> </section>
-<section id="GUID-F0030E9A-8035-5EDF-A80E-52418F88F3CC"><title>Trademarks</title> <p>These
-trademarks, and others, are acknowledged. Conventional abbreviations of these
-trademarks are used throughout this documentation. </p> <p>Nokia and Nokia
-Connecting People are registered trademarks of Nokia Corporation. </p> <p>S60
-and logo is a trademark of Nokia Corporation. </p> <p>Symbian OS is a trademark
-of Nokia Corporation. </p> <p>ARM and Thumb are registered trademarks of ARM
-Limited. </p> <p>Java and all Java-based marks are trademarks or registered
-trademarks of Sun Microsystems, Inc. </p> <p>Microsoft®, Microsoft® Windows®,
-Microsoft® Visual C++®, Microsoft® Visual Studio® are registered trademarks
-of Microsoft Corporation. </p> <p>OpenGL® ES is a registered trademark of
-Silicon Graphics, Inc. in the United States and/or other countries worldwide.
-The Symbian Foundation is independent of Silicon Graphics, Inc. </p> <p>Khronos,
-OpenVG and OpenMAX are trademarks of the Khronos Group Inc. </p> <p>The Bluetooth
-word mark and logos are owned by the Bluetooth SIG, Inc. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CAD36EEF-42CF-52AE-A619-64F988FF342D" xml:lang="en"><title>Legal Notices</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This page provides copyright and acknowledgement information. </p>
+<section id="GUID-AF837579-4E73-45CC-AB57-600CF171BB22"><title>Copyright</title> <p>Copyright © 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 "Eclipse Public License v1.0"
+which accompanies this distribution, and is available at the URL <xref format="html" href="http://www.eclipse.org/legal/epl-v10.html" scope="external">http://www.eclipse.org/legal/epl-v10.html</xref>. </p> <p>Initial
+Contributors: </p> <p>Nokia Corporation - initial contribution </p> </section>
+<section id="GUID-F0030E9A-8035-5EDF-A80E-52418F88F3CC"><title>Trademarks</title> <p>These trademarks, and others, are acknowledged. Conventional
+abbreviations of these trademarks are used throughout this documentation. </p> <p>Nokia and Nokia Connecting People are registered trademarks of
+Nokia Corporation. </p> <p>S60 and logo is a trademark of Nokia Corporation. </p> <p>Symbian OS is a trademark of Nokia Corporation. </p> <p>ARM and
+Thumb are registered trademarks of ARM Limited. </p> <p>Java and all
+Java-based marks are trademarks or registered trademarks of Sun Microsystems,
+Inc. </p> <p>Microsoft®, Microsoft® Windows®, Microsoft® Visual C++®,
+Microsoft® Visual Studio® are registered trademarks of Microsoft Corporation. </p> <p>OpenGL® ES is a registered trademark of Silicon Graphics, Inc.
+in the United States and/or other countries worldwide. The Symbian
+Foundation is independent of Silicon Graphics, Inc. </p> <p>Khronos,
+OpenVG and OpenMAX are trademarks of the Khronos Group Inc. </p> <p>The Bluetooth word mark and logos are owned by the Bluetooth SIG,
+Inc. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,152 +1,152 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074" xml:lang="en"><title>Initializing
-DevSound Functionality Tutorial</title><shortdesc>DevSound provides a common interface to the audio hardware for
-all audio functionality. DevSound is responsible for providing access to available
-audio resources, initialization and configuration of hardware devices, and
-playing and recording audio. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-
-<section id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-8-1-18-1-1-11-1-5-1-4-1-5-1-4-1-3-1"><title>Required background</title> <p>Before
-you start, you must: </p> <ul>
-<li id="GUID-67BD381F-4B0B-5B87-9439-7B72DBF29AFD"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to
-which the DevSound library belongs. </p> </li>
-<li id="GUID-1E1F544F-06EF-5EFD-981B-8B179E37136E"><p>Understand the architectural
-relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound
-Overview</xref>. </p> </li>
-</ul> </section>
-<section><title>Introduction</title> <p>DevSound's functionality is provided
-by the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> class. </p> <p><b>Construction
-and initialization</b> </p> <p>Each client using audio resources must have
-an instance of the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> class associated with it.
-The <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-088CC167-C46D-3A2B-BE00-D7AEB98254AE"><apiname>CMMFDevSound::NewL()</apiname></xref> method is used to construct a
-new instance of DevSound. </p> <codeblock id="GUID-7E5C8C3A-B09B-5CC3-870E-1A28C75C50CF" xml:space="preserve">static IMPORT_C CMMFDevSound *NewL();</codeblock> <p>Once
-created, the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> method is used
-to initialize DevSound to play and record. There are three versions of the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> method,
-differing in type and number of parameters. The three versions are: </p> <ul>
-<li id="GUID-5492383B-33F4-5884-A926-567B49C44948"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
-initializes CMMFDevSound object to play and record PCM16 raw audio data with
-sampling rate of 8 KHz. </p> <codeblock id="GUID-3FC67F03-CE07-5174-B70A-82C3AC55AC4C" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TMMFState
-aMode);</codeblock> <p>This method has two parameters: </p> <ul>
-<li id="GUID-84931A64-8268-5E15-9FD1-0D8F33CD243B"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
-a reference to a DevSound Observer instance. </p> </li>
-<li id="GUID-AE152880-C8E8-5923-97C6-A3D44B65515B"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
-the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
-</ul> </li>
-<li id="GUID-67B42425-FBD1-5FFA-8382-68E0CD4D2EA8"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
-initializes DevSound object for the mode <codeph>aMode</codeph> for processing
-audio data with hardware device <codeph>aHWDev</codeph>. </p> <codeblock id="GUID-168BD108-045C-52E9-BB97-BDA05643022F" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TUid aHWDev,
-TMMFState aMode);</codeblock> <p>This method has three parameters: </p> <ul>
-<li id="GUID-917DF4D4-FD55-59EA-B0E8-64A7B5F5F35B"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
-a reference to a DevSound Observer instance. </p> </li>
-<li id="GUID-760E73CF-E957-57B2-9F7B-9C2AACA7B3F3"><p> <xref href="GUID-530281E6-29FC-33F2-BC9B-610FBA389444.dita"><apiname>TUid</apiname></xref> -
-the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> implementation identifier. </p> </li>
-<li id="GUID-33E8A5C9-4609-5B4B-8050-438DF9317BAA"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
-the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
-</ul> </li>
-<li id="GUID-A88F2138-5F4E-527D-8BEA-B27F2D330B83"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
-initializes DevSound object for the mode <codeph>aMode</codeph> for processing
-audio data with hardware device supporting FourCC <codeph>aDesiredFourCC</codeph>. </p> <codeblock id="GUID-415E6B82-08A9-5CB8-BA49-F4FA6005E529" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TFourCC
-aDesiredFourCC, TMMFState aMode);</codeblock> <p>This method has three parameters: </p> <ul>
-<li id="GUID-6C1B960C-4455-504A-B115-7FB416D7A288"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
-a reference to a DevSound Observer instance. </p> </li>
-<li id="GUID-7D427CCC-6248-5C79-BB21-8D0E2C43C633"><p> <xref href="GUID-691F7FFC-D026-30D5-B08D-A06915272C92.dita"><apiname>TFourCC</apiname></xref> -
-the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> implementation FourCC code. </p> </li>
-<li id="GUID-D459814C-4892-5A30-B86A-AC125BC9B0F7"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
-the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
-</ul> </li>
-</ul> <p>All versions of <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> require
-a reference to a DevSound Observer instance. As soon as initialization of
-DevSound has completed, successfully or otherwise, the callback function <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita#GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD/GUID-089CF9C1-92EF-3F40-8669-A5EF5C064AD4"><apiname>MDevSoundObserver::InitializeComplete()</apiname></xref> is
-called. </p> <p><b>The
-DevSound Observer</b> </p> <p>Most methods in the CMMFDevSound class are asynchronous.
-Callbacks occur through the <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> class. <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> is
-an interface to a set of DevSound callback functions. It serves as the method
-of communication between the client and the DevSound. A class that uses DevSound
-will typically inherit from <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref>. </p> <p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> handles
-the <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita#GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD/GUID-089CF9C1-92EF-3F40-8669-A5EF5C064AD4"><apiname>MDevSoundObserver::InitializeComplete()</apiname></xref> initialization
-completion event. </p> </section>
-<section><title>Purpose</title> <p>Refer to the following sections for detailed
-information on how to use the main features of DevSound: </p> <ul>
-<li id="GUID-5FC7D66B-50C0-5229-A343-80FA4E865828"><p><xref href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita">Playing
-Audio</xref>  </p> </li>
-<li id="GUID-E5B271E4-F39B-5E75-BEEA-34AF087B8DDF"><p><xref href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita">Recording
-Audio</xref>  </p> </li>
-<li id="GUID-BCC46964-D281-50B3-82E6-1A3CDC025455"><p><xref href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita">Playing
-Tones</xref>  </p> </li>
-</ul> </section>
-<section><title>Example uses</title> <p>These examples describe some different
-uses of DevSound: </p> <p><b>Recording
-a WAV file</b> </p> <p>In this example, a client application wants to record
-a WAV file. As WAV is a standard file format supported by the MMF controller
-framework, the <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client API is used
-to interact with DevSound. </p> <p>The main steps in recording the WAV file
-are: </p> <ol id="GUID-24DBEAE0-D054-53CD-965E-A89B7F66410C">
-<li id="GUID-0A785BE2-5896-5490-9C6D-7C66BB575BF5"><p>The client application
-gives a request to record to the MMF <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client
-API. </p> </li>
-<li id="GUID-14622FA3-A7FD-5DDD-9BD6-AD7B4CB9F04C"><p>The MMF <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client
-API passes the command down through the controller framework to the MMF controller
-plug-in. </p> </li>
-<li id="GUID-F0400FAB-4644-5764-B806-FC4F9B3A42DF"><p>The MMF controller plug-in
-initializes DevSound for recording. </p> </li>
-<li id="GUID-692A4C69-6E04-52CE-9835-FD4E2B59D498"><p>Recording starts and
-continues until the client stops the recording or the limit on the file size
-is reached. </p> </li>
-<li id="GUID-579CFF58-4C6D-51F1-9249-CB1BCCC7D08F"><p>Upon completion, the
-client gives a request to the MMF controller framework to stop the recording.
-The controller framework passes the command down to the MMF controller plug-in. </p> </li>
-<li id="GUID-8F3214E6-DFA0-533A-BE7F-86657BFE82E0"><p>The MMF controller plug-in
-stops DevSound and sends the completion event back to the client via controller
-framework. </p> </li>
-</ol> <p><b>Playing
-a DTMF tone</b> </p> <p>In this example, a client application wants to play
-a Dual-Tone Multi-Frequency (DTMF) tone. The MMF <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> client
-API is used to play the DTMF tone. Unlike other MMF APIs, the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> does
-not require a controller plug-in. This is because the input and output of
-the API is already in a known data format and does not require encoding or
-decoding. The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> communicates directly
-with DevSound. </p> <p>The main steps in playing the DTMF tone are: </p> <ol id="GUID-653E4665-1469-5EDA-B83E-94DB580ECFB0">
-<li id="GUID-5B600730-C908-5D5E-9C7E-05B8FAE685AA"><p>The client application
-prepares the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to play a DTMF tone. </p> </li>
-<li id="GUID-EA9E73E1-AACE-52E8-BF8A-B11FE2117D2C"><p>The client application
-asks the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to start playing the tone. </p> </li>
-<li id="GUID-4DE7CB4B-3873-5B5E-ADCF-2AC712ADB2C0"><p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> asks
-DevSound to play the tone. </p> </li>
-<li id="GUID-016EA63D-DF56-5ACC-9A8A-536092EE145F"><p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> informs
-the client application that the playing of the tone is complete. </p> </li>
-</ol> <p><b>Playing
-an AVI file</b> </p> <p>In this example, a client application wants to play
-an Audio Video Interleaved (AVI) file; output is to a screen and speakers.
-The AVI file contains audio and video data, so the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class
-that can manipulate both types of data is used. </p> <p>The main steps in
-playing the AVI file are: </p> <ol id="GUID-D1F0C730-45BF-5B58-BBCE-3483C951BD72">
-<li id="GUID-83EF3725-22BE-5140-96C6-8F530DC7AAA3"><p>The client application
-requests to play an AVI file to the MMF CVideoPlayerUtility class. </p> </li>
-<li id="GUID-C8C8E7D2-982F-5561-A707-BCC5131E7C8D"><p>The MMF CVideoPlayerUtility
-class passes the request to the MMF controller framework. The controller framework
-loads the AVI controller </p> </li>
-<li id="GUID-980A38CF-CAA3-5A54-8888-A54AACF538B6"><p>The AVI controller plug-in
-initializes the DevSound and DevVideo. </p> </li>
-<li id="GUID-46DD25A9-62C1-5B6F-8BC8-21E57BB706F2"><p>The AVI controller plug-in
-reads the data in the AVI file and sends the audio data to DevSound and the
-video data to DevVideo. </p> </li>
-<li id="GUID-CFDEDC57-E5BD-5680-AC20-1A8F10A6328D"><p>DevSound outputs the
-audio data.</p> </li>
-<li id="GUID-AB78F54C-76B8-419A-AC24-F22371AFB506"><p>DevVideo sends the video
-data to be decoded to the corresponding codec. The decoded video data is then
-displayed on the screen. </p></li>
-</ol><note> AVI files support Dolby audio also. The client application requests
-for Dolby play back are processed in the similar way.</note></section>
-</conbody><related-links>
-<link href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita"><linktext>DevSound
-Overview</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CADAFAF2-24E9-5007-9C2F-5453E8062074" xml:lang="en"><title>Initializing
+DevSound Functionality Tutorial</title><shortdesc>DevSound provides a common interface to the audio hardware for
+all audio functionality. DevSound is responsible for providing access to available
+audio resources, initialization and configuration of hardware devices, and
+playing and recording audio. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+
+<section id="GUID-5364D394-21F7-5327-BCD3-8F91DB5EEC8D-GENID-1-10-1-19-1-1-12-1-5-1-4-1-5-1-4-1-3-1"><title>Required background</title> <p>Before
+you start, you must: </p> <ul>
+<li id="GUID-67BD381F-4B0B-5B87-9439-7B72DBF29AFD"><p>Understand the <xref href="GUID-170A1D9C-12CB-502A-BCB3-9E2AEBB207FA.dita">A3F DevSound Component</xref> to
+which the DevSound library belongs. </p> </li>
+<li id="GUID-1E1F544F-06EF-5EFD-981B-8B179E37136E"><p>Understand the architectural
+relationship of the DevSound. For information see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound
+Overview</xref>. </p> </li>
+</ul> </section>
+<section><title>Introduction</title> <p>DevSound's functionality is provided
+by the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> class. </p> <p><b>Construction
+and initialization</b> </p> <p>Each client using audio resources must have
+an instance of the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> class associated with it.
+The <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-088CC167-C46D-3A2B-BE00-D7AEB98254AE"><apiname>CMMFDevSound::NewL()</apiname></xref> method is used to construct a
+new instance of DevSound. </p> <codeblock id="GUID-7E5C8C3A-B09B-5CC3-870E-1A28C75C50CF" xml:space="preserve">static IMPORT_C CMMFDevSound *NewL();</codeblock> <p>Once
+created, the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> method is used
+to initialize DevSound to play and record. There are three versions of the <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> method,
+differing in type and number of parameters. The three versions are: </p> <ul>
+<li id="GUID-5492383B-33F4-5884-A926-567B49C44948"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
+initializes CMMFDevSound object to play and record PCM16 raw audio data with
+sampling rate of 8 KHz. </p> <codeblock id="GUID-3FC67F03-CE07-5174-B70A-82C3AC55AC4C" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TMMFState
+aMode);</codeblock> <p>This method has two parameters: </p> <ul>
+<li id="GUID-84931A64-8268-5E15-9FD1-0D8F33CD243B"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
+a reference to a DevSound Observer instance. </p> </li>
+<li id="GUID-AE152880-C8E8-5923-97C6-A3D44B65515B"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
+the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
+</ul> </li>
+<li id="GUID-67B42425-FBD1-5FFA-8382-68E0CD4D2EA8"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
+initializes DevSound object for the mode <codeph>aMode</codeph> for processing
+audio data with hardware device <codeph>aHWDev</codeph>. </p> <codeblock id="GUID-168BD108-045C-52E9-BB97-BDA05643022F" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TUid aHWDev,
+TMMFState aMode);</codeblock> <p>This method has three parameters: </p> <ul>
+<li id="GUID-917DF4D4-FD55-59EA-B0E8-64A7B5F5F35B"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
+a reference to a DevSound Observer instance. </p> </li>
+<li id="GUID-760E73CF-E957-57B2-9F7B-9C2AACA7B3F3"><p> <xref href="GUID-530281E6-29FC-33F2-BC9B-610FBA389444.dita"><apiname>TUid</apiname></xref> -
+the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> implementation identifier. </p> </li>
+<li id="GUID-33E8A5C9-4609-5B4B-8050-438DF9317BAA"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
+the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
+</ul> </li>
+<li id="GUID-A88F2138-5F4E-527D-8BEA-B27F2D330B83"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> -
+initializes DevSound object for the mode <codeph>aMode</codeph> for processing
+audio data with hardware device supporting FourCC <codeph>aDesiredFourCC</codeph>. </p> <codeblock id="GUID-415E6B82-08A9-5CB8-BA49-F4FA6005E529" xml:space="preserve">IMPORT_C void InitializeL(MDevSoundObserver &amp;aDevSoundObserver, TFourCC
+aDesiredFourCC, TMMFState aMode);</codeblock> <p>This method has three parameters: </p> <ul>
+<li id="GUID-6C1B960C-4455-504A-B115-7FB416D7A288"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> -
+a reference to a DevSound Observer instance. </p> </li>
+<li id="GUID-7D427CCC-6248-5C79-BB21-8D0E2C43C633"><p> <xref href="GUID-691F7FFC-D026-30D5-B08D-A06915272C92.dita"><apiname>TFourCC</apiname></xref> -
+the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> implementation FourCC code. </p> </li>
+<li id="GUID-D459814C-4892-5A30-B86A-AC125BC9B0F7"><p> <xref href="GUID-66044171-C6DA-305C-97D2-181311F9D839.dita"><apiname>TMMFState</apiname></xref> -
+the mode for which this object is to be used, for example, <codeph>EMMFStatePlaying</codeph>. </p> </li>
+</ul> </li>
+</ul> <p>All versions of <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita#GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD/GUID-CBBB4A4E-0705-37E2-9832-A55861ACF299"><apiname>CMMFDevSound::InitializeL()</apiname></xref> require
+a reference to a DevSound Observer instance. As soon as initialization of
+DevSound has completed, successfully or otherwise, the callback function <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita#GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD/GUID-089CF9C1-92EF-3F40-8669-A5EF5C064AD4"><apiname>MDevSoundObserver::InitializeComplete()</apiname></xref> is
+called. </p> <p><b>The
+DevSound Observer</b> </p> <p>Most methods in the CMMFDevSound class are asynchronous.
+Callbacks occur through the <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> class. <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> is
+an interface to a set of DevSound callback functions. It serves as the method
+of communication between the client and the DevSound. A class that uses DevSound
+will typically inherit from <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref>. </p> <p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> handles
+the <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita#GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD/GUID-089CF9C1-92EF-3F40-8669-A5EF5C064AD4"><apiname>MDevSoundObserver::InitializeComplete()</apiname></xref> initialization
+completion event. </p> </section>
+<section><title>Purpose</title> <p>Refer to the following sections for detailed
+information on how to use the main features of DevSound: </p> <ul>
+<li id="GUID-5FC7D66B-50C0-5229-A343-80FA4E865828"><p><xref href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita">Playing
+Audio</xref>  </p> </li>
+<li id="GUID-E5B271E4-F39B-5E75-BEEA-34AF087B8DDF"><p><xref href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita">Recording
+Audio</xref>  </p> </li>
+<li id="GUID-BCC46964-D281-50B3-82E6-1A3CDC025455"><p><xref href="GUID-14BAAB7C-35CD-5A43-B362-79F88C7712DE.dita">Playing
+Tones</xref>  </p> </li>
+</ul> </section>
+<section><title>Example uses</title> <p>These examples describe some different
+uses of DevSound: </p> <p><b>Recording
+a WAV file</b> </p> <p>In this example, a client application wants to record
+a WAV file. As WAV is a standard file format supported by the MMF controller
+framework, the <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client API is used
+to interact with DevSound. </p> <p>The main steps in recording the WAV file
+are: </p> <ol id="GUID-24DBEAE0-D054-53CD-965E-A89B7F66410C">
+<li id="GUID-0A785BE2-5896-5490-9C6D-7C66BB575BF5"><p>The client application
+gives a request to record to the MMF <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client
+API. </p> </li>
+<li id="GUID-14622FA3-A7FD-5DDD-9BD6-AD7B4CB9F04C"><p>The MMF <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref> client
+API passes the command down through the controller framework to the MMF controller
+plug-in. </p> </li>
+<li id="GUID-F0400FAB-4644-5764-B806-FC4F9B3A42DF"><p>The MMF controller plug-in
+initializes DevSound for recording. </p> </li>
+<li id="GUID-692A4C69-6E04-52CE-9835-FD4E2B59D498"><p>Recording starts and
+continues until the client stops the recording or the limit on the file size
+is reached. </p> </li>
+<li id="GUID-579CFF58-4C6D-51F1-9249-CB1BCCC7D08F"><p>Upon completion, the
+client gives a request to the MMF controller framework to stop the recording.
+The controller framework passes the command down to the MMF controller plug-in. </p> </li>
+<li id="GUID-8F3214E6-DFA0-533A-BE7F-86657BFE82E0"><p>The MMF controller plug-in
+stops DevSound and sends the completion event back to the client via controller
+framework. </p> </li>
+</ol> <p><b>Playing
+a DTMF tone</b> </p> <p>In this example, a client application wants to play
+a Dual-Tone Multi-Frequency (DTMF) tone. The MMF <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> client
+API is used to play the DTMF tone. Unlike other MMF APIs, the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> does
+not require a controller plug-in. This is because the input and output of
+the API is already in a known data format and does not require encoding or
+decoding. The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> communicates directly
+with DevSound. </p> <p>The main steps in playing the DTMF tone are: </p> <ol id="GUID-653E4665-1469-5EDA-B83E-94DB580ECFB0">
+<li id="GUID-5B600730-C908-5D5E-9C7E-05B8FAE685AA"><p>The client application
+prepares the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to play a DTMF tone. </p> </li>
+<li id="GUID-EA9E73E1-AACE-52E8-BF8A-B11FE2117D2C"><p>The client application
+asks the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> to start playing the tone. </p> </li>
+<li id="GUID-4DE7CB4B-3873-5B5E-ADCF-2AC712ADB2C0"><p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> asks
+DevSound to play the tone. </p> </li>
+<li id="GUID-016EA63D-DF56-5ACC-9A8A-536092EE145F"><p>The <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> informs
+the client application that the playing of the tone is complete. </p> </li>
+</ol> <p><b>Playing
+an AVI file</b> </p> <p>In this example, a client application wants to play
+an Audio Video Interleaved (AVI) file; output is to a screen and speakers.
+The AVI file contains audio and video data, so the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class
+that can manipulate both types of data is used. </p> <p>The main steps in
+playing the AVI file are: </p> <ol id="GUID-D1F0C730-45BF-5B58-BBCE-3483C951BD72">
+<li id="GUID-83EF3725-22BE-5140-96C6-8F530DC7AAA3"><p>The client application
+requests to play an AVI file to the MMF CVideoPlayerUtility class. </p> </li>
+<li id="GUID-C8C8E7D2-982F-5561-A707-BCC5131E7C8D"><p>The MMF CVideoPlayerUtility
+class passes the request to the MMF controller framework. The controller framework
+loads the AVI controller </p> </li>
+<li id="GUID-980A38CF-CAA3-5A54-8888-A54AACF538B6"><p>The AVI controller plug-in
+initializes the DevSound and DevVideo. </p> </li>
+<li id="GUID-46DD25A9-62C1-5B6F-8BC8-21E57BB706F2"><p>The AVI controller plug-in
+reads the data in the AVI file and sends the audio data to DevSound and the
+video data to DevVideo. </p> </li>
+<li id="GUID-CFDEDC57-E5BD-5680-AC20-1A8F10A6328D"><p>DevSound outputs the
+audio data.</p> </li>
+<li id="GUID-AB78F54C-76B8-419A-AC24-F22371AFB506"><p>DevVideo sends the video
+data to be decoded to the corresponding codec. The decoded video data is then
+displayed on the screen. </p></li>
+</ol><note> AVI files support Dolby audio also. The client application requests
+for Dolby play back are processed in the similar way.</note></section>
+</conbody><related-links>
+<link href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita"><linktext>DevSound
+Overview</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,79 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5" xml:lang="en"><title>Volume
-Control pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In case the hardware has no dedicated volume keys, the audio volume is
-adjusted using the Arrow up and Arrow down keys. When the user is controlling
-the volume, the key event brings the Volume Control pop-up to the view, and
-the pop-up disappears after a time-out when the user has done the adjustment.</p>
-<p>The application may need up/down key events for controlling some other
-component, such as list. In this case it needs to be decided whether that
-view can be left without Volume Control or whether the Volume Control component
-is accessed via the Options menu or toolbar.</p>
-<p>In touch UI it is possible to activate Volume Control via universal indicator
-pane. Volume is adjusted with touch by dragging the slider handle and audio
-can be muted by tapping the icon in the UI component, refer to <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for common UI components</xref>.</p>
-<p>The Volume Control UI component may also be always available in the view.
-In this case it is fixed in the layout.</p>
-<fig id="GUID-FF02BFFC-828C-4D17-BF2E-D46A3C0EC4F0">
-<title>Volume control UI component </title>
-<image href="GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e67818_href.png" placement="inline"/>
-</fig>
-<table id="GUID-FA0F7D39-967B-4429-B2C6-A7A856179112"><title>Default touch events for volume pop-up</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release on arrow</p></entry>
-<entry><p>Increases/decreases the volume level by an increment. </p><p>The
-volume slider is updated accordingly.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback is provided on the
-touch down and no effect is provided on touch release.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Activates key repeat, which performs a continuous operation and
-increases/decreases the volume faster.</p><p>The volume slider is updated
-accordingly.</p></entry>
-<entry><p>Tactile: Sensitive button effect and audio feedback is provided
-with steps in key repeat.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on mute/unmute icon</p></entry>
-<entry><p>Mutes/unmutes the volume.</p></entry>
-<entry><p>Tactile: Basic button effect and audio given with touch down and
-basic button effect on release events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on slider item</p></entry>
-<entry><p>Functionality as specified in the Volume setting item.</p></entry>
-<entry><p>Tactile: Feedback as specified in the Volume setting item.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on percentage field</p></entry>
-<entry><p>Dismisses the volume pop-up</p></entry>
-<entry><p>Tactile: Pop-up close effect is provided with touch
-down event.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CB163645-CB5E-4DB5-9830-B97D12FDCBF5" xml:lang="en"><title>Volume
+Control pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In case the hardware has no dedicated volume keys, the audio volume is
+adjusted using the Arrow up and Arrow down keys. When the user is controlling
+the volume, the key event brings the Volume Control pop-up to the view, and
+the pop-up disappears after a time-out when the user has done the adjustment.</p>
+<p>The application may need up/down key events for controlling some other
+component, such as list. In this case it needs to be decided whether that
+view can be left without Volume Control or whether the Volume Control component
+is accessed via the Options menu or toolbar.</p>
+<p>Volume is adjusted with touch by dragging the slider handle and audio can
+be muted by tapping the icon in the UI component, refer to <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
+support for common UI components</xref>.</p>
+<p>The Volume Control UI component may also be always available in the view.
+In this case it is fixed in the layout.</p>
+<fig id="GUID-FF02BFFC-828C-4D17-BF2E-D46A3C0EC4F0">
+<title>Volume control UI component </title>
+<image href="GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e62709_href.png" placement="inline"/>
+</fig>
+<table id="GUID-FA0F7D39-967B-4429-B2C6-A7A856179112"><title>Default touch
+events for volume pop-up</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release on arrow</p></entry>
+<entry><p>Increases/decreases the volume level by an increment. </p><p>The
+volume slider is updated accordingly.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback is provided on the
+touch down and no effect is provided on touch release.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Activates key repeat, which performs a continuous operation and
+increases/decreases the volume faster.</p><p>The volume slider is updated
+accordingly.</p></entry>
+<entry><p>Tactile: Sensitive button effect and audio feedback is provided
+with steps in key repeat.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on mute/unmute icon</p></entry>
+<entry><p>Mutes/unmutes the volume.</p></entry>
+<entry><p>Tactile: Basic button effect and audio given with touch down and
+basic button effect on release events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on slider item</p></entry>
+<entry><p>Functionality as specified in the Volume setting item.</p></entry>
+<entry><p>Tactile: Feedback as specified in the Volume setting item.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on percentage field</p></entry>
+<entry><p>Dismisses the volume pop-up</p></entry>
+<entry><p>Tactile: Pop-up close effect is provided with touch down event.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,98 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP Profile API provides the SIP registration service for applications.
-This API allows an application to register through a profile. The profile
-holds the information to provide the required registration behaviour. The
-behaviour of the registration service depends on the profile type used. </p>
-<p>Each standard has an associated profile type such as 3GPP R5 IMS, IETF,
-or proprietary. Each profile has a one-to-one communication with each SIP
-registration. The API allows more than one application to share the same profile
-and the same SIP registration. The implementation of the API stores SIP profiles
-in persistent store. </p>
-<p>A profile stores the following main parameters: </p>
-<ul>
-<li id="GUID-B7071F02-6EA0-5CE6-B143-A1840048218D"><p>The user-friendly name
-of the service provider. </p> </li>
-<li id="GUID-93B07153-99F2-54D3-8116-216E713296BC"><p>The type of the profile,
-for example 3GPP R5 IMS, IETF or proprietary. </p> </li>
-<li id="GUID-CD548B53-8C9E-5D13-820A-DE53183A7D25"><p>The registered public
-name of the user (SIP AOR). </p> </li>
-<li id="GUID-7CA9FF5E-B876-57DD-9203-B0DA282785D8"><p>The access provider
-identifier of the IAP used. </p> </li>
-<li id="GUID-850E144B-1F5A-55EF-8A71-9F6A404D05FC"><p>The address of the SIP
-registrar server, with optional connection and security parameters. </p> </li>
-<li id="GUID-214EEE38-6FAC-5349-8B9A-E5EFA53D0EAB"><p>The address of the SIP
-proxy server, with optional connection and security parameters. </p> </li>
-<li id="GUID-4C6501CC-2431-5027-B614-0BF7B8E56F76"><p>The compression and
-security preferences. </p> </li>
-<li id="GUID-7993263B-EA1C-5A87-A8D4-585A9B9A0EC8"><p>An indication if the
-profile is always registered automatically, or registered when it is used
-by an application. </p> </li>
-<li id="GUID-90F43095-BFBF-5858-8FCD-622C680A043D"><p>Any extension parameters
-stored as key-value pairs. </p> </li>
-</ul>
-<section id="GUID-D68DCE64-4F0A-55C7-87B7-AD0176DC000F"><title>Architectural
-Relationships</title> <p>The interface allows clients to share the common
-resources, profiles and SIP registrations through the client-server mechanism.
-It also gives access to permanently stored profiles and allows the reading
-of profile configuration values. </p> <p>All lengthy operations are asynchronous. </p> <p id="GUID-EFED18E0-D710-5484-B44B-905188C55894"><b>Capability information</b> </p> <p>The
-following table describes the capabilities the user must have to use the SIP
-Profile API. </p> <table id="GUID-DC2D1A38-8600-5071-B5DC-7C2E13B10DDA">
-<tgroup cols="1"><colspec colname="col0"/>
-<tbody>
-<row>
-<entry><p> <b>Capability</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph> NetworkControl</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>NetworkServices</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p> <codeph> ReadUserData</codeph>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p id="GUID-3A7EC69E-9C4C-55ED-8998-07640410D17B"><b> Extending
-the API</b> </p> <p>The API cannot be extended. </p> </section>
-<section id="GUID-BB1CA3D9-B29C-54A7-9772-E9ACD6D57A1F"><title>SIP Profile
-API class structure</title> <p>The client must create a <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object,
-and must implement the callback functions defined by the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> class.
-A client of the SIP Profile API must then create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> <p>A <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object
-is created using one of the retrieval functions that can be accessed through
-the <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> class. Profile data is copied from
-the permanent store into the new object. The copied values can be accessed
-using the access functions of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> <p>The
-client must enable a profile before you can use it. A profile can be enabled
-in the following ways: </p> <ul>
-<li id="GUID-C1F4C96E-794C-5CD1-81FE-2AD8208A8217"><p>provide an implementation
-of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> class </p> </li>
-<li id="GUID-5BE21413-BF91-53F8-923F-555B4014B973"><p>call <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita#GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9/GUID-DB3F6FFC-FE96-3A35-A60F-DAAAFF13C357"><apiname>CSIPProfileRegistry::EnableL()</apiname></xref> </p> </li>
-</ul> <p>When you enable a profile it is automatically registered. If the
-profile is not registered before it is enabled the client is notified about
-the registration status through the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita#GUID-91663686-42B7-3C88-B773-3C5343CDCFCE/GUID-FAC7E932-24CB-3C5E-B2A4-057B33C784FC"><apiname>MSIPProfileRegistryObserver::ProfileRegistryEventOccurred()</apiname></xref> callback
-function. </p> <p>When a profile is enabled, the client indicates that the
-profile is in use, and cannot be removed. You can update the profile but,
-it is not recommended. </p> <p>If required, the client can disable a profile.
-The client can then delete the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object. </p> <p>The
-following illustration shows the SDP Profile API class structure. </p> <fig id="GUID-333B9964-A742-55C4-A731-FF172B930C16">
-<image href="GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e341780_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-CBB17EE7-FA26-5D08-942B-223C6C5B5205"><title>Memory used</title> <p>The
-amount of memory used by a profile depends on its content. A normal usage
-is approximately 0.2 KB for each profile. The SIP Profile server monitors
-all instantiated profiles to send the asynchronous events to clients when
-required. It is recommended that clients create the minimum number of profiles
-required, and delete instances immediately when they are no longer required. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CB3FC449-7994-5510-BD78-F1638CD48A9D" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP Profile API provides the SIP registration service for applications.
+This API allows an application to register through a profile. The profile
+holds the information to provide the required registration behaviour. The
+behaviour of the registration service depends on the profile type used. </p>
+<p>Each standard has an associated profile type such as 3GPP R5 IMS, IETF,
+or proprietary. Each profile has a one-to-one communication with each SIP
+registration. The API allows more than one application to share the same profile
+and the same SIP registration. The implementation of the API stores SIP profiles
+in persistent store. </p>
+<p>A profile stores the following main parameters: </p>
+<ul>
+<li id="GUID-B7071F02-6EA0-5CE6-B143-A1840048218D"><p>The user-friendly name
+of the service provider. </p> </li>
+<li id="GUID-93B07153-99F2-54D3-8116-216E713296BC"><p>The type of the profile,
+for example 3GPP R5 IMS, IETF or proprietary. </p> </li>
+<li id="GUID-CD548B53-8C9E-5D13-820A-DE53183A7D25"><p>The registered public
+name of the user (SIP AOR). </p> </li>
+<li id="GUID-7CA9FF5E-B876-57DD-9203-B0DA282785D8"><p>The access provider
+identifier of the IAP used. </p> </li>
+<li id="GUID-850E144B-1F5A-55EF-8A71-9F6A404D05FC"><p>The address of the SIP
+registrar server, with optional connection and security parameters. </p> </li>
+<li id="GUID-214EEE38-6FAC-5349-8B9A-E5EFA53D0EAB"><p>The address of the SIP
+proxy server, with optional connection and security parameters. </p> </li>
+<li id="GUID-4C6501CC-2431-5027-B614-0BF7B8E56F76"><p>The compression and
+security preferences. </p> </li>
+<li id="GUID-7993263B-EA1C-5A87-A8D4-585A9B9A0EC8"><p>An indication if the
+profile is always registered automatically, or registered when it is used
+by an application. </p> </li>
+<li id="GUID-90F43095-BFBF-5858-8FCD-622C680A043D"><p>Any extension parameters
+stored as key-value pairs. </p> </li>
+</ul>
+<section id="GUID-D68DCE64-4F0A-55C7-87B7-AD0176DC000F"><title>Architectural
+Relationships</title> <p>The interface allows clients to share the common
+resources, profiles and SIP registrations through the client-server mechanism.
+It also gives access to permanently stored profiles and allows the reading
+of profile configuration values. </p> <p>All lengthy operations are asynchronous. </p> <p id="GUID-EFED18E0-D710-5484-B44B-905188C55894"><b>Capability information</b> </p> <p>The
+following table describes the capabilities the user must have to use the SIP
+Profile API. </p> <table id="GUID-DC2D1A38-8600-5071-B5DC-7C2E13B10DDA">
+<tgroup cols="1"><colspec colname="col0"/>
+<tbody>
+<row>
+<entry><p> <b>Capability</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph> NetworkControl</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>NetworkServices</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph> ReadUserData</codeph>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p id="GUID-3A7EC69E-9C4C-55ED-8998-07640410D17B"><b> Extending
+the API</b> </p> <p>The API cannot be extended. </p> </section>
+<section id="GUID-BB1CA3D9-B29C-54A7-9772-E9ACD6D57A1F"><title>SIP Profile
+API class structure</title> <p>The client must create a <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object,
+and must implement the callback functions defined by the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref> class.
+A client of the SIP Profile API must then create a <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> object. </p> <p>A <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object
+is created using one of the retrieval functions that can be accessed through
+the <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref> class. Profile data is copied from
+the permanent store into the new object. The copied values can be accessed
+using the access functions of <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>. </p> <p>The
+client must enable a profile before you can use it. A profile can be enabled
+in the following ways: </p> <ul>
+<li id="GUID-C1F4C96E-794C-5CD1-81FE-2AD8208A8217"><p>provide an implementation
+of the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> class </p> </li>
+<li id="GUID-5BE21413-BF91-53F8-923F-555B4014B973"><p>call <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita#GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9/GUID-DB3F6FFC-FE96-3A35-A60F-DAAAFF13C357"><apiname>CSIPProfileRegistry::EnableL()</apiname></xref> </p> </li>
+</ul> <p>When you enable a profile it is automatically registered. If the
+profile is not registered before it is enabled the client is notified about
+the registration status through the <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita#GUID-91663686-42B7-3C88-B773-3C5343CDCFCE/GUID-FAC7E932-24CB-3C5E-B2A4-057B33C784FC"><apiname>MSIPProfileRegistryObserver::ProfileRegistryEventOccurred()</apiname></xref> callback
+function. </p> <p>When a profile is enabled, the client indicates that the
+profile is in use, and cannot be removed. You can update the profile but,
+it is not recommended. </p> <p>If required, the client can disable a profile.
+The client can then delete the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> object. </p> <p>The
+following illustration shows the SDP Profile API class structure. </p> <fig id="GUID-333B9964-A742-55C4-A731-FF172B930C16">
+<image href="GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e335623_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-CBB17EE7-FA26-5D08-942B-223C6C5B5205"><title>Memory used</title> <p>The
+amount of memory used by a profile depends on its content. A normal usage
+is approximately 0.2 KB for each profile. The SIP Profile server monitors
+all instantiated profiles to send the asynchronous events to clients when
+required. It is recommended that clients create the minimum number of profiles
+required, and delete instances immediately when they are no longer required. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e323040_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-CB4E1B33-470F-581A-BC32-99752C2A0DFE_d0e329197_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43" xml:lang="en"><title>List
-layouts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>List items can in general be more complex (contain more elements) than
-grid items. Certain layout rules apply to all lists:</p>
-<ul>
-<li><p>All items in a list have equal height on the screen (forms do not follow
-this rule in the Edit state, see <xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref>). </p></li>
-<li><p>The column structure of all items in a list must be similar. It is
-not possible to combine e.g. single-column items to a three-column item list
-(however, it is possible to use some different item types having the same
-general appearance), see <xref href="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita">Column
-structure of lists</xref> for columns. </p></li>
-<li><p>Partial items are not visible: when the list/grid pane area does not
-exactly correspond to an integer number of items, the remaining area outside
-the last fully visible item appears empty, displaying the background of the
-particular pane.</p></li>
-</ul>
-<p>In landscape layout, all two row lists can be stretched to be displayed
-in one row. This enables displaying more items in the list. In list stretching,
-the second row is moved next to the first row. List stretching is ON by default,
-but application can decide to disable it.</p>
-<fig id="GUID-425291FD-35BB-4145-A509-9BBC5B18022C">
-<title>Two row list in stretched mode in landscape layout</title>
-<image href="GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e59088_href.png" placement="inline"/>
-</fig>
-<section id="GUID-A3F9AF92-392F-4EF6-8CFB-5B8CF0AA5210"><title>Using
-list layouts in C++ applications</title><p>The API to use for lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p><p>For grids, the APIs to use
-are the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref> and the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref> and <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CB548959-A1D6-4585-B8E3-B09E37E0CB43" xml:lang="en"><title>List
+layouts</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>List items can in general be more complex (contain more elements) than
+grid items. Certain layout rules apply to all lists:</p>
+<ul>
+<li><p>All items in a list have equal height on the screen (forms do not follow
+this rule in the Edit state, see <xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref>). </p></li>
+<li><p>The column structure of all items in a list must be similar. It is
+not possible to combine e.g. single-column items to a three-column item list
+(however, it is possible to use some different item types having the same
+general appearance), see <xref href="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita">Column
+structure of lists</xref> for columns. </p></li>
+<li><p>Partial items are not visible: when the list/grid pane area does not
+exactly correspond to an integer number of items, the remaining area outside
+the last fully visible item appears empty, displaying the background of the
+particular pane.</p></li>
+</ul>
+<p>In landscape layout, all two row lists can be stretched to be displayed
+in one row. This enables displaying more items in the list. In list stretching,
+the second row is moved next to the first row. List stretching is ON by default,
+but application can decide to disable it.</p>
+<fig id="GUID-425291FD-35BB-4145-A509-9BBC5B18022C">
+<title>Two row list in stretched mode in landscape layout</title>
+<image href="GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e53323_href.png" placement="inline"/>
+</fig>
+<section id="GUID-A3F9AF92-392F-4EF6-8CFB-5B8CF0AA5210"><title>Using
+list layouts in applications</title><p>The API to use for lists is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p><p>For grids, the APIs to use
+are the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref> and the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref> and <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e172711_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBD78250-3EF4-5DF0-B356-19996E15BBBD_d0e179306_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3422_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e3543_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4697_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4818_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e205483_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e210493_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e36616_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CC4CA423-0A14-457C-8CBE-4A9F0E8D0B96_d0e42183_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7" xml:lang="en"><title>Choice
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Choice list is a list type, which allows selection from different choices.
+Choice list can either be closed (by default) state or opened state. In case
+the choice list is empty, the opening button is dimmed and is inactive. </p>
+<p>Choice list displays currently selected value by default in closed state.
+When the choice list is opened, choice list pop-up displays the list of available
+options (with currently selected focused). Choice list can contain text, icons
+or combination of both text and icons. It is recommendation use only text
+in the choice list. </p>
+<p>It is possible to dynamically add and remove items in choice list. The
+user can browse through the list with scroll keys or with the touch event.</p>
+<fig id="GUID-920BCB9D-4DFB-411D-A730-D34BA84B1FD2">
+<title>Example of Choice list</title>
+<image href="GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e55550_href.png" placement="inline"/>
+</fig>
+<table id="GUID-DA80CFA0-061A-4B07-9D4B-7C29DAEC4E2B"><title>Default key events in a choice list</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry valign="top"><p>Key</p></entry>
+<entry valign="top"><p>Action</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Enter</p></entry>
+<entry><p>Selects the focused item and closes the choice list.</p></entry>
+</row>
+<row>
+<entry><p>Left selection key (<b>Select</b>)</p></entry>
+<entry><p>Choice list item is selected.</p></entry>
+</row>
+<row>
+<entry><p>Right selection key (<b>Close</b>)</p></entry>
+<entry><p>Choice list is closed without making a new selection.</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / right keys</p></entry>
+<entry><p>Closes the choice list, with focused item selected.</p></entry>
+</row>
+<row>
+<entry><p>Arrow up / down keys</p></entry>
+<entry><p>Scrolls through the choice list. Choice list is looping.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-66274DBC-8690-4AF3-AE29-B2DB9D31E752"><title>Default touch events for choice list interaction in closed state</title>
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>Inactive, tooltip is shown.</p></entry>
+<entry><p>Tactile: <ul>
+<li><p>Basic tactile feedback is provided with touch down event.</p></li>
+<li><p>Basic list effect given with touch down event.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Opens the choice list pop-up</p></entry>
+<entry><p>Tactile: Pop-up open effect is given. If pop-up owns NGA effect
+and they are ON, then increasing long touch effect is provided with touch
+release.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Inactive</p></entry>
+<entry/>
+</row>
+<row>
+<entry><p>Touch down and move out of the list</p></entry>
+<entry><p>List continues its movement.</p></entry>
+<entry><p>Basic tactile feedback is provided with touch down event.</p><p>Refer
+to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-E4CBD59F-EE62-4273-83C8-595611C9B302"><title>Default touch events for choice list interaction in opened state</title>
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release</p></entry>
+<entry><p>Touch down moves the focus.</p></entry>
+<entry><p>Pressed down highlight.</p><p>Tactile: <ul>
+<li><p>Basic tactile feedback is provided with touch down event. </p></li>
+<li><p>Basic list effect is provided with touch down event.</p></li>
+</ul></p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>Selects the focused item and closes the choice list.</p></entry>
+<entry><p>Tactile: Basic list effect is provided with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move inside the choice list.</p></entry>
+<entry><p>The whole list moves along with the finger.</p><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events</p></entry>
+<entry><p>Tactile: Basic tactile feedback is provided with touch down event.</p><p>Refer
+to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move out of the choice list</p></entry>
+<entry><p>The list continues its movement according to the finger movements
+outside the pop-up.</p></entry>
+<entry><p>Tactile: Basic tactile feedback is provided with touch down event.</p><p>Refer
+to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside the opened choice list.</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Basic tactile feedback given with touch down event. No advanced
+tactile feedback.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-824E97C2-24CC-4058-B682-EDB71644051C"><title>Using choice
+list in applications</title>       <p>The API to use for choice list is the <xref href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita">Choice list API</xref>. For
+implementation information, see <xref href="GUID-845F3021-E3ED-4676-916A-75740886DCBD.dita">Providing
+a vertical list of selectable items</xref>. </p>     </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12"><title>Exporting and Importing Classes</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document discusses importing and exporting of classes. </p> <p>In particular this document describes: </p> <ul><li id="GUID-3F374F9D-1829-5E75-AAB4-1D653D9F42FC"><p>Class exporting rules: </p> <ul><li id="GUID-B9BF3994-3D41-5485-863E-6EA1C4017486"><p>DLL-derivation </p> </li> <li id="GUID-E9CCB315-097D-5F01-8E39-FDB6A2650BDE"><p>Non-sharable classes </p> </li> <li id="GUID-9AB46032-9EA5-5E5D-A210-8DEF3CD6E543"><p>The Simple Rule </p> </li> <li id="GUID-6B9127D2-8C6A-51B1-9415-D9546F224CB0"><p>Class impedimenta </p> </li> <li id="GUID-B75E2747-AC61-5CEB-81BC-9C81FB6F67B1"><p>Boundary cases where importing and exporting symbols are illegal, which some ABI compilers accept without warnings or errors </p> </li> </ul> </li> <li id="GUID-38EB4EAC-5CF2-5984-9698-5AD1FA299EAD"><p>The ARM ABI Thunk Offset Problem </p> </li> <li id="GUID-09EF7017-C160-5621-A7D9-7AE40E21305B"><p>The Shared DEF File Problem </p> </li> </ul> <p>The information described in this document is valid for RVCT 2.1 build 416 or later and for any compiler that is compliant with the ARM ABI v2.0 and higher. </p> <section><title>Definitions</title> <p id="GUID-884B1DF5-ECC8-5243-85B4-9B07BA52C58B"><b>Terminology and Background</b> </p> <ul><li id="GUID-DFD94FF3-2823-5853-B14C-62F416715ADC"><p>For all of this section it is assumed that the user intends to derive <b>class D</b> from <b>class C</b> and that both classes reside in different DLLs. </p> </li> <li id="GUID-F116357D-74A5-54CB-903D-4317D18A2FF3"><p>Class C is called <b>DLL-derivable</b>, if class D can be derived from C. </p> </li> <li id="GUID-6543650D-210E-5582-8EF6-EA408BE78E12"><p>Class C is called <b>non-sharable</b> if it is marked using _<i>_</i>  <i>declspec(notshared)</i> or using the macros NONSHARABLE_CLASS(x) or NONSHARABLE_ STRUCT(x). It is not possible to DLL-derive from a non-sharable class. Otherwise class C is called <b>sharable</b>. </p> </li> <li id="GUID-6BE83B98-8AFC-52C8-9356-44CA62F167E5"><p> <b>Class Impedimenta</b> are entities that are emitted by the compiler for any class, but do not have a direct representation in source. Examples of class impedimenta are: </p> <ul><li id="GUID-7DBEC962-29BE-56FF-AC1F-AB6141B7DFA9"><p>the class’s virtual table, or </p> </li> <li id="GUID-FBCB4F71-C878-5736-8783-C5D6011176DE"><p>a virtual table’s thunks, or </p> </li> <li id="GUID-867A206E-8FA6-5E06-A3C0-14C6BAE05652"><p>the class’s run-time type information </p> </li> </ul> <p>Class impedimenta are a key element of the ABI and are identified through ELF symbols. They play a crucial role in enabling polymorphism, RTTI and derivation. This means that they also play a key role in DLL-derivation. In fact, if the Class Impedimenta of class C are not exported, it is not possible to DLL derive from class C or in other words class C is non-sharable. </p> <p>This raises the interesting question as to how it is possible to export Class Impedimenta – and thus enable DLL-derivation – if they have no representation in source. The answer to this question is given in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1">The Simple Rule – Sharable Classes</xref> section. </p> </li> <li id="GUID-F7071803-9F81-538C-8314-09FDF7CB0790"><p> <b>Non-callable exports</b> are Class Impedimenta that are exported. They are often used as synonym for Class Impedimenta in this document. </p> </li> <li id="GUID-F97952F0-0D14-5BE0-A990-1DD75480D9D8"><p>A <b>key function</b> is the first non-inline, non-pure virtual function of a class. </p> </li> </ul> <p><b>Symbian Conventions </b> </p> <p>Symbian defines macros for exporting and importing classes to hide implementation details: </p> <table id="GUID-E33F9AC8-DCD4-56AF-B6E4-6EAE28204A34"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Macro</b>  </p> </entry> <entry><p> <b>RVCT Implementation</b>  </p> </entry> </row> <row><entry><p>IMPORT_C <i>func-declaration</i>  </p> </entry> <entry><p>__declspec(dllimport)<i> func-declaration</i>  </p> </entry> </row> <row><entry><p>EXPORT_C <i>func-definition</i>  </p> </entry> <entry><p>__declspec(dllexport) <i>func-definition</i>  </p> </entry> </row> <row><entry><p>NONSHARABLE_CLASS(<i>x</i>) </p> </entry> <entry><p>class __declspec(notshared)<i/>  <i>x</i>  </p> </entry> </row> <row><entry><p>NONSHARABLE_STRUCT(<i>x</i>) </p> </entry> <entry><p>struct __declspec(notshared)<i/>  <i>x</i>  </p> </entry> </row> <row><entry><p> <i>class</i> NONSHARABLE <i>name struct</i> NONSHARABLE <i>name</i>  </p> </entry> <entry><p>__declspec(notshared) </p> <p>This macro does not yet exist in the Symbian platform source code. However all known ABI compliant compiler support the notations </p> <ul><li id="GUID-44F58960-1EE5-5134-8B9A-0FCBBBDE6DAA"><p>struct __declspec(notshared)<i/>  <i>x</i>  </p> </li> <li id="GUID-5C5BD85E-FB82-5E02-AE2A-7A1FDF502117"><p>class __declspec(notshared)<i/>  <i>x</i>  </p> </li> </ul> <p>which means that it is safe to define a simpler macro which does not require an argument. That macro could also be used in conjunction with templates. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-A6382EAB-EEF5-56AC-B15E-B3740BB3C102"><title>Class Exporting Rules</title> <p>This section is a programmer’s summary of the Class Exporting Rules. </p> <p id="GUID-3C81E1FD-398F-55F3-B18A-AE4BB60EBAED"><b>Exporting Objects</b> </p> <p>A function, method of a class or data item is exported by marking its definition using the EXPORT_C macro. A function, method of a class or data item is imported by marking its declaration using the IMPORT_C macro. If an object is declared IMPORT_C and used in code, the linker will error if the definition of this object is not marked EXPORT_C. </p> <p>Although not required by the class exporting rules it is good practice to </p> <ul><li id="GUID-C5191DBB-6098-5301-8858-3B0F0FA15470"><p>Always mark all declarations of an exported object with IMPORT_C. </p> </li> <li id="GUID-142AEB30-4A89-52AB-91E9-7395FFBFD765"><p>Never mark objects that are not exported with IMPORT_C. </p> </li> </ul> <p id="GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1"><b>The Simple Rule – Sharable Classes</b> </p> <p>The compiler will automatically export all<i>Class Impedimenta</i>, i.e. compiler implementation specific symbols of a class C such as <i>run-time-type-information</i> and <i>virtual tables</i>, that are required to enable DLL-derivation from class C. This means that all classes are by default <i>sharable</i>. </p> <p>The compiler will not export these symbols for classes that are marked as <i>non-sharable</i> using the macros NONSHARABLE_CLASS(<i>x</i>) or NONSHARABLE_STRUCT(<i>x</i>). Symbian requires that all classes that are derived from a non-sharable class are also marked non-sharable. </p> <p>Other methods or functions in classes are not automatically exported. They have to be explicitly exported as described in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3C81E1FD-398F-55F3-B18A-AE4BB60EBAED">Exporting objects</xref> section. Note that a class with virtual functions or virtual may not be DLL-derivable if the conditions in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7A65F9FF-DA65-54B2-A378-68C38675989B">Dll derivable classes</xref> section do not hold. </p> <p> <b>Example:</b> The following example shows the correct syntax to define a class as non-sharable: </p> <codeblock id="GUID-0B326A68-E896-5BC5-A444-57BC94F10ABE" xml:space="preserve">NONSHARABLE_CLASS(NonSharableClass) : public BaseClass … </codeblock> <p> <b>Note:</b> The Simple Rule has consequences in terms of how many entries are present in DEF files and for shared DEF files. See <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-E0F45E5F-F254-5D8B-A8E9-9D22C59DF2E4">The Shared DEF File Problem</xref> section for more details. </p> <p id="GUID-7A65F9FF-DA65-54B2-A378-68C38675989B"><b>DLL-Derivable Classes</b> </p> <p>The Simple Rule alone does not guarantee that the class C is DLL-derivable. Depending on the form of the class, additional conditions on exporting members of class C apply. This section outlines the conditions under which class C is DLL-derivable. </p> <p> <b>C has no Virtual Base</b>  </p> <p>For class C to be DLL-derivable, </p> <ul><li id="GUID-2D5ACE7B-0A15-5305-92ED-B7175B35D3EB"><p>Class C has to be sharable <b>AND </b>  </p> </li> <li id="GUID-5B62B475-1C69-5347-801B-4D13C4A72E33"><p>Every virtual function in C or C's bases that is not overridden in D needs to be <i>exported</i>  </p> </li> <li id="GUID-1683B0F7-0741-5224-884A-D3E8697A2051"><p>If the class C has no key function, i.e. it only has pure virtuals or inlined virtuals, all bases of C also have to be DLL-derivable. </p> </li> </ul> <p> <b>C has one or several Virtual Bases</b>  </p> <p>For class C to be DLL-derivable, </p> <ul><li id="GUID-C8B13C29-C1D0-5DC6-9E8D-28667E948E89"><p>Class C has to be sharable <b>AND</b>  </p> </li> <li id="GUID-5317D37C-51AF-569F-926E-5219775D6388"><p>Every virtual function in C or C's bases, virtual or otherwise, needs to be <i>exported</i>  <b>AND</b>  </p> </li> <li id="GUID-2D8BF597-94F4-55A0-A939-B405EBEF7C3B"><p>All bases of C, virtual or otherwise, have to be DLL-derivable </p> </li> </ul> <p>Note that link errors will occur if an attempt is made to DLL-derive a class from a base class that is not DLL-derivable. </p> <p><b>Boundary cases where Importing and Exporting Symbols is Illegal</b> </p> <p id="GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE"><b>Static Symbols and Symbols in Anonymous Namespaces</b> </p> <p>The following code examples are illegal. But note that not all ABI compliant compilers produce an error or a warning in these situations. This is because the behaviour of export and import is neither defined by the C++ standard, nor is it defined by the ABI for the ARM Architecture. The ABI describes a binary interface and is not concerned with matters of syntax. </p> <p><b>Exporting/importing static symbols</b> </p> <p> <filepath> Foo.cpp </filepath>  </p> <codeblock id="GUID-6E1641ED-74FE-5549-8426-BFB6300F02EB" xml:space="preserve">static IMPORT_C int i; 
-static EXPORT_C int j;</codeblock> <p><b>Exporting/importing symbols defined in anonymous namespaces</b> </p> <p> <filepath> Foo.cpp</filepath>  </p> <codeblock id="GUID-B328F310-FE43-5989-B059-069821E1BEFC" xml:space="preserve">namespace { // anonymous namespace
-class CTest { 
-public: 
-    IMPORT_C CTest() { m = 0; }; 
-    EXPORT_C int get() { return m; }; 
-private: 
-    int m; 
-};
-}</codeblock> <p><b>Why is this illegal?</b> </p> <p>These patterns are illegal because they do not make sense. In fact it is impossible to write any C or C++ client code outside the compile unit in which the imports/exports are defined (e.g. Foo.cpp), that makes use of any statically defined object or an object defined in an anonymous namespace. </p> <p>This means that it is impossible that any of the exported symbols in the above examples can ever be used by client code that is in another DLL. </p> <p><b>What happens if I use these patterns?</b> </p> <p>The symbols that have been exported will appear in DEF files even though it is impossible to ever link against these symbols. Further the symbols contain a magic number. In the case of symbols in anonymous namespaces the symbol contains a filename and a magic number. For example: </p> <p> <codeph>_ZN30_GLOBAL__N__7_</codeph> <b>Foo_cpp</b> _<b>5b46ece4</b> <codeph>5CTestE</codeph> </p> <p>Where <codeph>Foo_cpp</codeph> is the filename and <codeph>5b46ece4</codeph> is the magic number. </p> <p>The ABI specifies that the magic number is unique. The creation of the magic number depends on the compiler. RVCT creates the magic number by computing a hash from the modification time-stamp of the source file and the top-level source directory. </p> <p>This means that in essence, the DEF file can never be frozen. If it is frozen, the Symbian toolchain will produce link errors, every single time the symbol changes. For RVCT this will happen every single time the source is changed, or when the user tries to build the source from a different source location than the person who froze the DEF file. Because the exported symbols can never be used, this is a trade-off without benefit. </p> <p><b>Classes in Anonymous Namespaces</b> </p> <p>Because of the <i>Simple Rule</i> (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1">The Simple Rule – Sharable Classes</xref>) any class or structure that is defined in an anonymous namespace will export its Class Impedimenta. This means that by default, the compiler exports symbols that can never be used and cause a series of problems (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE">Static Symbols and Symbols in Anonymous Namespaces</xref>). </p> <p>The ABI for the ARM architecture v2.0 specifies this behaviour, which is at the very least unintuitive, if not incorrect. </p> <p>The following code snippet will by default export the Class Impedimenta of the shown class and structure and thus gives rise to the problems described in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE">Static Symbols and Symbols in Anonymous Namespaces</xref> section. Note that the exported Class Impedimenta can never be used by any client code. In fact by default, any class that is defined in an anonymous namespace is non-sharable. This is true, regardless of whether Class Impedimenta are exported or not. </p> <p> <b>Foo.cpp (incorrect)</b>  </p> <codeblock id="GUID-A17B8CE5-6F89-5C74-AC4F-B5A6BD2CA9FF" xml:space="preserve">namespace { // anonymous namespace 
-class CTest {…};
-struct STest {…};
-}</codeblock> <p>Thus, if you use anonymous namespaces, you must make sure to define them as non-sharable. For example: </p> <p> <filepath>Foo.cpp</filepath>  </p> <codeblock id="GUID-EEEBF8E8-9BAC-54D1-AE20-ADC97E15080D" xml:space="preserve">namespace { // anonymous namespace 
-class NONSHARABLE_CLASS(CTest)  {…};
-struct NONSHARABLE_STRUCT(STest) {…};
-}</codeblock> <p>This has no draw-backs and avoids any difficulties with frozen DEF files. If you have used anonymous namespaces incorrectly in the past, add the relevant NONSHARABLE macro and re-freeze your DEF file using <codeph>abld freeze
-                –r armv5</codeph>. This will re-freeze the DEF file, leaving gaps where the removed exports would have been and thus does not affect binary compatibility. </p> <p><b>Auto-Exporting</b> </p> <p>The Simple Rule only covers compiler implementation specific data items that are required to enable DLL-derivation. However the compiler may also emit and export implementation specific functions. This process is called <i>auto-exporting</i>. This section describes under which circumstances the compiler auto-exports. Note that the compiler also may generate symbols for EABI library functions (these start with __cxa or __eabi). </p> <p><b>Constructors and Destructors</b> </p> <p>For each constructor/destructor in source, the compiler may create several instances of constructors/destructors in the object file, depending on how the constructor and destructors are used. If the constructor/destructor is exported, then all of the generated constructors/destructors are auto-exported. In such a case the following symbols may appear in your DEF file: </p> <p>_ZN…C1… complete object constructor </p> <p>_ZN…C2… base object constructor </p> <p>_ZN…C3… complete allocating constructor </p> <p>_ZN…D0… deleting destructor </p> <p>_ZN…D1… complete object destructor </p> <p>_ZN…D2… base object destructor </p> <p><b>Thunks</b> </p> <p>Under the C++ ABI <i>thunks</i> occur in the presence of multiple inheritance or virtual inheritance. They are used to adjust the <i>this</i> pointer of a class before calling virtual functions. Details can be looked up in the ABI. The export of a thunk is triggered, when a virtual function that needs a thunk is exported. Thunks have the form _ZTh… or _ZTv… </p> <p id="GUID-63FC4816-1807-5238-BB8F-644490A7A5F9"><b>Class Impedimenta</b> </p> <p>When checking DEF files non-callable exports and other compiler specific symbols may be present. The following list shows what some of these symbols mean: </p> <p>_ZTV… Virtual Table (VTABLE) </p> <p>_ZTI… Run-time Type Information (RTTI) </p> <p>_ZTT… Construction VTABLE </p> <p>_ZTh… Thunk emitted using multiple inheritance </p> <p>_ZTv… Thunk emitted using virtual inheritance </p> </section> <section><title>ARM ABI Thunk Offset Problem</title> <p><b>Symptoms of the ARM ABI Thunk Offset Problem</b> </p> <p>The "EABI Thunk Offset Problem" is the name that Symbian uses to describe a particular kind of build error which arises when multiple inheritance is used, and the size of a base class is changed. Here is an example of a typical symptom: </p> <codeblock id="GUID-F68AB56A-3ECF-55D8-91BA-83AD93CEF32E" xml:space="preserve">MAKEDEF ERROR: 1 Frozen Export(s) missing from object files:
-\src\example\MyDLLU.DEF(3) : _ZThn8_N7Derived3fooEv @2
-MAKEDEF WARNING: 1 export(s) not yet Frozen in \src\example\MyDLLU.DEF:
-..\..\..\EPOC32\BUILD\src\example\group\MyDLL\ARMV5\MyDll{000a0000}.def(7) : _ZThn12_N7Derived3fooEv @6</codeblock> <p>This shows a problem with a frozen DEF file: the export at ordinal 2 is missing, and a new unfrozen export has been added at ordinal 6. When comparing the two symbols, they look suspiciously similar to each other, and to a third symbol in the DEF file: </p> <codeblock id="GUID-41EDE0BF-3A2F-5D76-A6B5-C4935A12CC29" xml:space="preserve">_ZN7Derived3fooEv @1 
-_ZThn8_N7Derived3fooEv @2        // this one is missing 
-_ZThn12_N7Derived3fooEv @6        // this one has appeared</codeblock> <p>The exports beginning with _ZTh are compiler generated functions called thunks (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-63FC4816-1807-5238-BB8F-644490A7A5F9">Class Impedimenta</xref>), and the information between _ZTh and the next underscore is the offset associated with the thunk. Our problem is that for some reason, the offset associated with the thunk has changed from –8 to –12 (the n denotes a negative offset). Note that there is another variant of this problem that involves thunks beginning with _ZTv. </p> <p>These generated functions are a feature of the Itanium C++ ABI, on which the ABI for the ARM architecture builds upon. Hence the name "ARM ABI Thunk Offset Problem". </p> <p><b>What causes this problem?</b> </p> <p>The problem is caused because the symbol name generated for the thunk contains an offset number. More details can be found in <xref scope="external" href="http://www.codesourcery.com/cxx-abi/abi.html">http://www.codesourcery.com/cxx-abi/abi.html</xref> under section 5.1.4. This offset may change, when the signature of the base class is changed. For example when a data member is added or removed. </p> <p>Another condition to trigger the problem needs to hold as well: multiple inheritance with virtual functions in more than one of the base classes. If this condition does not hold, the compiler will not generate a thunk and thus there is no problem. </p> <p>Note that this is always a Binary Compatibility break, which shows up as a change to symbols in DEF files. </p> <p><b>How do I fix it?</b> </p> <p>There are three choices to fix it: </p> <ol id="GUID-804A94CF-1A73-5640-B3B8-2DDFBEDD407A"><li id="GUID-955EC339-EC01-5989-B388-6D6BE285F14D"><p>The first option is to refreeze the DEF file: this would be OK if you are not maintaining a frozen interface, and your customers will in any case need to rebuild because of the Binary Compatibility break. The easiest way to refreeze is to delete all of the exports from your existing DEF file, build again, and then use "<i>abld freeze armv5</i> " to update the DEF file. After updating the DEF file, build again: this time it should build cleanly. </p> </li> <li id="GUID-9CE95A51-20BD-51B7-93D6-629FB97014FA"><p>The second option is to use the attached script to fix the ABI Thunk Offsets. It expects to read a build log containing the MAKEDEF errors and warnings and will modify the DEF file to replace each missing export with the corresponding unfrozen export. Run the script with no arguments to get further details. </p> <fig id="GUID-7C590699-C58D-5619-8FFA-1DE51A0D666F"><image href="GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e9200_href.png" placement="inline"/></fig> <p>After fixing the DEF file, you will need to rebuild the DLL which uses the DEF file. </p> </li> <li id="GUID-22502314-4780-57B8-9D45-05470FA95757"><p>The last option is that you could change your mind about adding that extra member data. This will only be an option if it is your change which causes the problem: if your supplier has changed the size of a class that they own and caused this problem, then you are forced to change your DEF file. </p> <p>If you own the class which has the extra member data, it is worth noting that this change is likely to affect your customers as well. They will have to rebuild because of the BC break. Adding to this they will also see the ABI Thunk Offset Problem if they derive from your class. This includes simple inheritance from a class which shows the problem, if it re-implements any of the virtual functions which require thunks. </p> <p>When Symbian breaks compatibility in a way likely to cause this problem, the corresponding entry in the Compatibility Break spreadsheet will say "BC+ Break: Rebuild &amp; Check/Fix Def-File EABI Thunk Offsets". </p> </li> </ol> <p><b>Tell me the full details: What is a thunk? What causes its offset to change? </b> </p> <p>In a C++ class hierarchy involving both virtual functions and multiple inheritance, objects can be accessed as though they were several different types. A typical Symbian platform example would be a CBase-derived class which also derives from an M-class, perhaps to provide an <i>observer</i> interface: for example CCoeControl, which derives from both CBase and MObjectProvider. </p> <p>The virtual functions which can be called on an object depends on the type it currently appears to be.A CCoeControl object can be viewed as a CBase object, in which case it has one set of virtual functions, or as an MObjectProvider, in which case it has another. The compiler constructs separate <i>virtual tables</i> for each of the possible interfaces, and these tables contain information about how to convert back to the underlying CCoeControl object. When converting from a CCoeControl pointer to an MObjectProvider pointer, the compiler will adjust the value of the pointer, so that it points to the "MObjectProvider" part of the object, and not the full CCoeControl object. </p> <p>The MObjectProvider class defines a pure virtual function MopSupplyObject, which is implemented in CCoeControl. Even when the object is presenting it's MObjectProvider interface, the vtable must use the correct implementation of MopSupplyObject, which expects to be used in the context of a CCoeControl. The solution used by the compiler is to create a <i>virtual function override thunk</i> function which makes any necessary adjustments between the calling context (a pointer to MObjectProvider) and the execution context (a pointer to CCoeControl). </p> <p>This could have been implemented using the names of the two contexts, but instead the ABI uses the amount by which the <i>this</i> pointer needs to be adjusted to make the switch: this is the offset encoded in the name. </p> <p>Here is a small example: </p> <p> <b>eabi_thunk_offset_problem.cpp</b>  </p> <codeblock id="GUID-8ED84BFF-EDB0-5C54-8CE9-05F289231FF2" xml:space="preserve">#ifndef COUNT 
-#define COUNT 1 
-#endif 
-
-class Base 
-{ 
-public: 
-    int iBaseMember[COUNT]; 
-    virtual ~Base(); 
-}; 
-
-class MInterface 
-{ 
-public: 
-    virtual int foo(); 
-}; 
-
-class Derived : public Base, public MInterface 
-{ 
-public: 
-    virtual int foo(); 
-    int iDerived; 
-}; 
-
-class MoreDerived : public Derived 
-{ 
-public: 
-    virtual int foo(); 
-    int iMoreDerived; 
-}; 
-
-int Derived::foo() { return iDerived; } 
-Derived* fun1() { return new Derived; } 
-MInterface* fun2() { return new Derived; } 
-
-int MoreDerived::foo() { return iMoreDerived; } 
-MoreDerived* fun3() { return new MoreDerived; } 
-MInterface* fun4() { return new MoreDerived; }
-</codeblock> <p>Compile this with <i>armcc -S eabi_thunk_offset_problem.cpp</i> to get an assembly listing. Compile it again with an extra argument "-DCOUNT=2" to change the size of the base class, and compare the two files: there will be various differences in the code, but also differences in the _ZTh symbols - including the differences used in the "typical symptom" above. </p> <p>If you use virtual inheritance, then you may see another version of the problem. With virtual inheritance, there are two offsets involved and the thunk symbols will begin with _ZTv. The same symbol may appear in several thunks, each with different offsets. </p> </section> <section id="GUID-E0F45E5F-F254-5D8B-A8E9-9D22C59DF2E4"><title>The Shared DEF File Problem</title> <p><b>What is the Problem with Shared DEF Files?</b> </p> <p>The class exporting rules (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-A6382EAB-EEF5-56AC-B15E-B3740BB3C102">Class Exporting Rules</xref>) by default will generate non-callable exports for all classes that are not marked non-sharable in source. Say two DLLs, A and B share one DEF file, in effect implementing similar but different functionality towards the same public interface. Further say, no classes are marked non-sharable. Say there are some classes that are shared between DLL A and DLL B and that these classes have names of the form CShared&lt;xyz&gt;. Classes that are specific to DLL A have names of the form CA&lt;xyz&gt;, classes specific to DLL B have names of the form CB&lt;xyz&gt;. When DLL A is built, DEF file entries for non-callable exports from CShared&lt;xyz&gt; and CA&lt;XYZ&gt; are automatically added to the DEF file. When DLL B is built, exports from CShared&lt;xyz&gt; and CB&lt;XYZ&gt; are added. So in fact the DEF file would be the sum of all non-callable exports from CShared&lt;xyz&gt;, CA&lt;xyz&gt; and CB&lt;XYZ&gt;. It also will contain symbols from functions that are marked for export using EXPORT_C. However, this means that neither A or B can be linked. This is because when A is built, the code linking against the non-callable exports of CB&lt;XYZ&gt; do not exist in A and vice versa. </p> <fig id="GUID-E2B571A3-0463-5886-AD08-D50F0420EAF9"><image href="GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e9285_href.png" placement="inline"/></fig> <p><b>Use-cases for Fixing Shared DEF Files</b> </p> <p> <b>Use-Case 1:</b>  <b> Polymorphic “Plug-ins”</b>  </p> <p>Several DLLs are built using the same DLL interface (DEF file). Typically the DEF file has very few entries (1 or 2) and is maintained manually. This means that new functions are added by editing the shared DEF file. Also typically no import libraries are needed as the knowledge about the DLL interface is hard-coded into the client code of the "plug-in". The plug-ins do not have to be loaded at run-time. Some are always built but not always included in the ROM. </p> <p> <b>The Fix:</b>  </p> <ol id="GUID-A5D72F88-AF26-57FB-823F-7331992EB0F8"><li id="GUID-DE2A9DBD-EF23-56AA-997A-90B717406DBB"><p>If the shared DEF file is in \epoc32\include\def\EABI then locate the original DEF file by searching all BLD.INF files for the appropriate line in PRJ_EXPORTS </p> </li> <li id="GUID-1BE3AEA4-B629-5273-A370-DC3A9DABBA80"><p>Remove all non-callable exports that have caused warnings or errors from the original DEF file. </p> </li> <li id="GUID-CADA2F46-96C3-50DD-99AE-847D2EC70CFE"><p>Add NOEXPORTLIBRARY to all MMP files that share that component, ensuring that the build system does NOT try and re-freeze these automatically the next time you build. Otherwise the build system will re-introduce these non-callable exports. </p> </li> </ol> <p> <b>Note:</b>  </p> <p>If you want to use the re-freeze mechanism – say to add a new export, you have to temporarily remove NOEXPORTLIBRARY from the MMP file, then generate a new DEF file by re-building the component, re-freeze, possibly edit (to remove unwanted non-callable exports) and then insert the keyword NOEXPORTLIBRARY into the MMP file again. </p> <p> <b> Use-Case 2:</b>  <b> Polymorphic “Plug-ins” on which Other Components Depend</b>  </p> <p>This is very similar to use-case 1, except that some other component depends on one of the plug-ins. This means that an import library is required. </p> <p> <b>The Fix: </b> The build structure must be such that </p> <ul><li id="GUID-9B61065B-E448-5B32-910C-4F8356B30E63"><p>One MMP file generates the import library from the shared DEF file using the target type IMPLIB. It may be necessary to create a new MMP file which does this. </p> </li> <li id="GUID-4CB6CB0F-E690-5AAB-8B0C-1A6D64ECBC31"><p>All the other MMP files use NOEXPORTLIBRARY as described in use-case 1 </p> </li> </ul> <p> <b>Note:</b>  </p> <p>If you want to use the re-freeze mechanism – say to add a new export, you have to temporarily remove NOEXPORTLIBRARY from the MMP file, then generate a new DEF file by re-building the component, re-freeze, possibly edit (to remove unwanted non-callable exports) and then insert the keyword NOEXPORTLIBRARY into the MMP file again. </p> <p> <b>Use-Case 3:</b>  <b> Annotate Classes as Non-sharable</b>  </p> <p>Where a DEF file must be shared between components for whatever reason and none of the above use-cases can be applied, the build would fail for at least one component. An example of this may be a class MyPrivateClass that exists in the debug build (UDEV) of the OS, but not in the release build (UREL). </p> <p>In such a case all classes that should not contribute to the DEF file, i.e. that are really private to the implementation of a component, must be annotated in the source as NONSHARABLE_CLASS(X) or NONSHARABLE_STRUCT(X). As a result no non-callable exports will be generated for such a class. Say for example, class MyPrivateClass is truly private to a component that must share a DEF file with another component. Then it should be declared: </p> <codeblock id="GUID-8E236162-F6BA-5A77-9A50-8546C49A7FFC" xml:space="preserve">    NONSHARABLE_CLASS(MyPrivateClass)
-    {
-    ...
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12"><title>Exporting and Importing Classes</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document discusses importing and exporting of classes. </p> <p>In particular this document describes: </p> <ul><li id="GUID-3F374F9D-1829-5E75-AAB4-1D653D9F42FC"><p>Class exporting rules: </p> <ul><li id="GUID-B9BF3994-3D41-5485-863E-6EA1C4017486"><p>DLL-derivation </p> </li> <li id="GUID-E9CCB315-097D-5F01-8E39-FDB6A2650BDE"><p>Non-sharable classes </p> </li> <li id="GUID-9AB46032-9EA5-5E5D-A210-8DEF3CD6E543"><p>The Simple Rule </p> </li> <li id="GUID-6B9127D2-8C6A-51B1-9415-D9546F224CB0"><p>Class impedimenta </p> </li> <li id="GUID-B75E2747-AC61-5CEB-81BC-9C81FB6F67B1"><p>Boundary cases where importing and exporting symbols are illegal, which some ABI compilers accept without warnings or errors </p> </li> </ul> </li> <li id="GUID-38EB4EAC-5CF2-5984-9698-5AD1FA299EAD"><p>The ARM ABI Thunk Offset Problem </p> </li> <li id="GUID-09EF7017-C160-5621-A7D9-7AE40E21305B"><p>The Shared DEF File Problem </p> </li> </ul> <p>The information described in this document is valid for RVCT 2.1 build 416 or later and for any compiler that is compliant with the ARM ABI v2.0 and higher. </p> <section><title>Definitions</title> <p id="GUID-884B1DF5-ECC8-5243-85B4-9B07BA52C58B"><b>Terminology and Background</b> </p> <ul><li id="GUID-DFD94FF3-2823-5853-B14C-62F416715ADC"><p>For all of this section it is assumed that the user intends to derive <b>class D</b> from <b>class C</b> and that both classes reside in different DLLs. </p> </li> <li id="GUID-F116357D-74A5-54CB-903D-4317D18A2FF3"><p>Class C is called <b>DLL-derivable</b>, if class D can be derived from C. </p> </li> <li id="GUID-6543650D-210E-5582-8EF6-EA408BE78E12"><p>Class C is called <b>non-sharable</b> if it is marked using _<i>_</i>  <i>declspec(notshared)</i> or using the macros NONSHARABLE_CLASS(x) or NONSHARABLE_ STRUCT(x). It is not possible to DLL-derive from a non-sharable class. Otherwise class C is called <b>sharable</b>. </p> </li> <li id="GUID-6BE83B98-8AFC-52C8-9356-44CA62F167E5"><p> <b>Class Impedimenta</b> are entities that are emitted by the compiler for any class, but do not have a direct representation in source. Examples of class impedimenta are: </p> <ul><li id="GUID-7DBEC962-29BE-56FF-AC1F-AB6141B7DFA9"><p>the class’s virtual table, or </p> </li> <li id="GUID-FBCB4F71-C878-5736-8783-C5D6011176DE"><p>a virtual table’s thunks, or </p> </li> <li id="GUID-867A206E-8FA6-5E06-A3C0-14C6BAE05652"><p>the class’s run-time type information </p> </li> </ul> <p>Class impedimenta are a key element of the ABI and are identified through ELF symbols. They play a crucial role in enabling polymorphism, RTTI and derivation. This means that they also play a key role in DLL-derivation. In fact, if the Class Impedimenta of class C are not exported, it is not possible to DLL derive from class C or in other words class C is non-sharable. </p> <p>This raises the interesting question as to how it is possible to export Class Impedimenta – and thus enable DLL-derivation – if they have no representation in source. The answer to this question is given in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1">The Simple Rule – Sharable Classes</xref> section. </p> </li> <li id="GUID-F7071803-9F81-538C-8314-09FDF7CB0790"><p> <b>Non-callable exports</b> are Class Impedimenta that are exported. They are often used as synonym for Class Impedimenta in this document. </p> </li> <li id="GUID-F97952F0-0D14-5BE0-A990-1DD75480D9D8"><p>A <b>key function</b> is the first non-inline, non-pure virtual function of a class. </p> </li> </ul> <p><b>Symbian Conventions </b> </p> <p>Symbian defines macros for exporting and importing classes to hide implementation details: </p> <table id="GUID-E33F9AC8-DCD4-56AF-B6E4-6EAE28204A34"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><tbody><row><entry><p> <b>Macro</b>  </p> </entry> <entry><p> <b>RVCT Implementation</b>  </p> </entry> </row> <row><entry><p>IMPORT_C <i>func-declaration</i>  </p> </entry> <entry><p>__declspec(dllimport)<i> func-declaration</i>  </p> </entry> </row> <row><entry><p>EXPORT_C <i>func-definition</i>  </p> </entry> <entry><p>__declspec(dllexport) <i>func-definition</i>  </p> </entry> </row> <row><entry><p>NONSHARABLE_CLASS(<i>x</i>) </p> </entry> <entry><p>class __declspec(notshared)<i/>  <i>x</i>  </p> </entry> </row> <row><entry><p>NONSHARABLE_STRUCT(<i>x</i>) </p> </entry> <entry><p>struct __declspec(notshared)<i/>  <i>x</i>  </p> </entry> </row> <row><entry><p> <i>class</i> NONSHARABLE <i>name struct</i> NONSHARABLE <i>name</i>  </p> </entry> <entry><p>__declspec(notshared) </p> <p>This macro does not yet exist in the Symbian platform source code. However all known ABI compliant compiler support the notations </p> <ul><li id="GUID-44F58960-1EE5-5134-8B9A-0FCBBBDE6DAA"><p>struct __declspec(notshared)<i/>  <i>x</i>  </p> </li> <li id="GUID-5C5BD85E-FB82-5E02-AE2A-7A1FDF502117"><p>class __declspec(notshared)<i/>  <i>x</i>  </p> </li> </ul> <p>which means that it is safe to define a simpler macro which does not require an argument. That macro could also be used in conjunction with templates. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-A6382EAB-EEF5-56AC-B15E-B3740BB3C102"><title>Class Exporting Rules</title> <p>This section is a programmer’s summary of the Class Exporting Rules. </p> <p id="GUID-3C81E1FD-398F-55F3-B18A-AE4BB60EBAED"><b>Exporting Objects</b> </p> <p>A function, method of a class or data item is exported by marking its definition using the EXPORT_C macro. A function, method of a class or data item is imported by marking its declaration using the IMPORT_C macro. If an object is declared IMPORT_C and used in code, the linker will error if the definition of this object is not marked EXPORT_C. </p> <p>Although not required by the class exporting rules it is good practice to </p> <ul><li id="GUID-C5191DBB-6098-5301-8858-3B0F0FA15470"><p>Always mark all declarations of an exported object with IMPORT_C. </p> </li> <li id="GUID-142AEB30-4A89-52AB-91E9-7395FFBFD765"><p>Never mark objects that are not exported with IMPORT_C. </p> </li> </ul> <p id="GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1"><b>The Simple Rule – Sharable Classes</b> </p> <p>The compiler will automatically export all<i>Class Impedimenta</i>, i.e. compiler implementation specific symbols of a class C such as <i>run-time-type-information</i> and <i>virtual tables</i>, that are required to enable DLL-derivation from class C. This means that all classes are by default <i>sharable</i>. </p> <p>The compiler will not export these symbols for classes that are marked as <i>non-sharable</i> using the macros NONSHARABLE_CLASS(<i>x</i>) or NONSHARABLE_STRUCT(<i>x</i>). Symbian requires that all classes that are derived from a non-sharable class are also marked non-sharable. </p> <p>Other methods or functions in classes are not automatically exported. They have to be explicitly exported as described in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3C81E1FD-398F-55F3-B18A-AE4BB60EBAED">Exporting objects</xref> section. Note that a class with virtual functions or virtual may not be DLL-derivable if the conditions in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7A65F9FF-DA65-54B2-A378-68C38675989B">Dll derivable classes</xref> section do not hold. </p> <p> <b>Example:</b> The following example shows the correct syntax to define a class as non-sharable: </p> <codeblock id="GUID-0B326A68-E896-5BC5-A444-57BC94F10ABE" xml:space="preserve">NONSHARABLE_CLASS(NonSharableClass) : public BaseClass … </codeblock> <p> <b>Note:</b> The Simple Rule has consequences in terms of how many entries are present in DEF files and for shared DEF files. See <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-E0F45E5F-F254-5D8B-A8E9-9D22C59DF2E4">The Shared DEF File Problem</xref> section for more details. </p> <p id="GUID-7A65F9FF-DA65-54B2-A378-68C38675989B"><b>DLL-Derivable Classes</b> </p> <p>The Simple Rule alone does not guarantee that the class C is DLL-derivable. Depending on the form of the class, additional conditions on exporting members of class C apply. This section outlines the conditions under which class C is DLL-derivable. </p> <p> <b>C has no Virtual Base</b>  </p> <p>For class C to be DLL-derivable, </p> <ul><li id="GUID-2D5ACE7B-0A15-5305-92ED-B7175B35D3EB"><p>Class C has to be sharable <b>AND </b>  </p> </li> <li id="GUID-5B62B475-1C69-5347-801B-4D13C4A72E33"><p>Every virtual function in C or C's bases that is not overridden in D needs to be <i>exported</i>  </p> </li> <li id="GUID-1683B0F7-0741-5224-884A-D3E8697A2051"><p>If the class C has no key function, i.e. it only has pure virtuals or inlined virtuals, all bases of C also have to be DLL-derivable. </p> </li> </ul> <p> <b>C has one or several Virtual Bases</b>  </p> <p>For class C to be DLL-derivable, </p> <ul><li id="GUID-C8B13C29-C1D0-5DC6-9E8D-28667E948E89"><p>Class C has to be sharable <b>AND</b>  </p> </li> <li id="GUID-5317D37C-51AF-569F-926E-5219775D6388"><p>Every virtual function in C or C's bases, virtual or otherwise, needs to be <i>exported</i>  <b>AND</b>  </p> </li> <li id="GUID-2D8BF597-94F4-55A0-A939-B405EBEF7C3B"><p>All bases of C, virtual or otherwise, have to be DLL-derivable </p> </li> </ul> <p>Note that link errors will occur if an attempt is made to DLL-derive a class from a base class that is not DLL-derivable. </p> <p><b>Boundary cases where Importing and Exporting Symbols is Illegal</b> </p> <p id="GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE"><b>Static Symbols and Symbols in Anonymous Namespaces</b> </p> <p>The following code examples are illegal. But note that not all ABI compliant compilers produce an error or a warning in these situations. This is because the behaviour of export and import is neither defined by the C++ standard, nor is it defined by the ABI for the ARM Architecture. The ABI describes a binary interface and is not concerned with matters of syntax. </p> <p><b>Exporting/importing static symbols</b> </p> <p> <filepath> Foo.cpp </filepath>  </p> <codeblock id="GUID-6E1641ED-74FE-5549-8426-BFB6300F02EB" xml:space="preserve">static IMPORT_C int i; 
+static EXPORT_C int j;</codeblock> <p><b>Exporting/importing symbols defined in anonymous namespaces</b> </p> <p> <filepath> Foo.cpp</filepath>  </p> <codeblock id="GUID-B328F310-FE43-5989-B059-069821E1BEFC" xml:space="preserve">namespace { // anonymous namespace
+class CTest { 
+public: 
+    IMPORT_C CTest() { m = 0; }; 
+    EXPORT_C int get() { return m; }; 
+private: 
+    int m; 
+};
+}</codeblock> <p><b>Why is this illegal?</b> </p> <p>These patterns are illegal because they do not make sense. In fact it is impossible to write any C or C++ client code outside the compile unit in which the imports/exports are defined (e.g. Foo.cpp), that makes use of any statically defined object or an object defined in an anonymous namespace. </p> <p>This means that it is impossible that any of the exported symbols in the above examples can ever be used by client code that is in another DLL. </p> <p><b>What happens if I use these patterns?</b> </p> <p>The symbols that have been exported will appear in DEF files even though it is impossible to ever link against these symbols. Further the symbols contain a magic number. In the case of symbols in anonymous namespaces the symbol contains a filename and a magic number. For example: </p> <p> <codeph>_ZN30_GLOBAL__N__7_</codeph> <b>Foo_cpp</b> _<b>5b46ece4</b> <codeph>5CTestE</codeph> </p> <p>Where <codeph>Foo_cpp</codeph> is the filename and <codeph>5b46ece4</codeph> is the magic number. </p> <p>The ABI specifies that the magic number is unique. The creation of the magic number depends on the compiler. RVCT creates the magic number by computing a hash from the modification time-stamp of the source file and the top-level source directory. </p> <p>This means that in essence, the DEF file can never be frozen. If it is frozen, the Symbian toolchain will produce link errors, every single time the symbol changes. For RVCT this will happen every single time the source is changed, or when the user tries to build the source from a different source location than the person who froze the DEF file. Because the exported symbols can never be used, this is a trade-off without benefit. </p> <p><b>Classes in Anonymous Namespaces</b> </p> <p>Because of the <i>Simple Rule</i> (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1">The Simple Rule – Sharable Classes</xref>) any class or structure that is defined in an anonymous namespace will export its Class Impedimenta. This means that by default, the compiler exports symbols that can never be used and cause a series of problems (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE">Static Symbols and Symbols in Anonymous Namespaces</xref>). </p> <p>The ABI for the ARM architecture v2.0 specifies this behaviour, which is at the very least unintuitive, if not incorrect. </p> <p>The following code snippet will by default export the Class Impedimenta of the shown class and structure and thus gives rise to the problems described in <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-7CC0C991-DF72-5AD5-BD36-96BE67E215FE">Static Symbols and Symbols in Anonymous Namespaces</xref> section. Note that the exported Class Impedimenta can never be used by any client code. In fact by default, any class that is defined in an anonymous namespace is non-sharable. This is true, regardless of whether Class Impedimenta are exported or not. </p> <p> <b>Foo.cpp (incorrect)</b>  </p> <codeblock id="GUID-A17B8CE5-6F89-5C74-AC4F-B5A6BD2CA9FF" xml:space="preserve">namespace { // anonymous namespace 
+class CTest {…};
+struct STest {…};
+}</codeblock> <p>Thus, if you use anonymous namespaces, you must make sure to define them as non-sharable. For example: </p> <p> <filepath>Foo.cpp</filepath>  </p> <codeblock id="GUID-EEEBF8E8-9BAC-54D1-AE20-ADC97E15080D" xml:space="preserve">namespace { // anonymous namespace 
+class NONSHARABLE_CLASS(CTest)  {…};
+struct NONSHARABLE_STRUCT(STest) {…};
+}</codeblock> <p>This has no draw-backs and avoids any difficulties with frozen DEF files. If you have used anonymous namespaces incorrectly in the past, add the relevant NONSHARABLE macro and re-freeze your DEF file using <codeph>abld freeze
+                –r armv5</codeph>. This will re-freeze the DEF file, leaving gaps where the removed exports would have been and thus does not affect binary compatibility. </p> <p><b>Auto-Exporting</b> </p> <p>The Simple Rule only covers compiler implementation specific data items that are required to enable DLL-derivation. However the compiler may also emit and export implementation specific functions. This process is called <i>auto-exporting</i>. This section describes under which circumstances the compiler auto-exports. Note that the compiler also may generate symbols for EABI library functions (these start with __cxa or __eabi). </p> <p><b>Constructors and Destructors</b> </p> <p>For each constructor/destructor in source, the compiler may create several instances of constructors/destructors in the object file, depending on how the constructor and destructors are used. If the constructor/destructor is exported, then all of the generated constructors/destructors are auto-exported. In such a case the following symbols may appear in your DEF file: </p> <p>_ZN…C1… complete object constructor </p> <p>_ZN…C2… base object constructor </p> <p>_ZN…C3… complete allocating constructor </p> <p>_ZN…D0… deleting destructor </p> <p>_ZN…D1… complete object destructor </p> <p>_ZN…D2… base object destructor </p> <p><b>Thunks</b> </p> <p>Under the C++ ABI <i>thunks</i> occur in the presence of multiple inheritance or virtual inheritance. They are used to adjust the <i>this</i> pointer of a class before calling virtual functions. Details can be looked up in the ABI. The export of a thunk is triggered, when a virtual function that needs a thunk is exported. Thunks have the form _ZTh… or _ZTv… </p> <p id="GUID-63FC4816-1807-5238-BB8F-644490A7A5F9"><b>Class Impedimenta</b> </p> <p>When checking DEF files non-callable exports and other compiler specific symbols may be present. The following list shows what some of these symbols mean: </p> <p>_ZTV… Virtual Table (VTABLE) </p> <p>_ZTI… Run-time Type Information (RTTI) </p> <p>_ZTT… Construction VTABLE </p> <p>_ZTh… Thunk emitted using multiple inheritance </p> <p>_ZTv… Thunk emitted using virtual inheritance </p> </section> <section><title>ARM ABI Thunk Offset Problem</title> <p><b>Symptoms of the ARM ABI Thunk Offset Problem</b> </p> <p>The "EABI Thunk Offset Problem" is the name that Symbian uses to describe a particular kind of build error which arises when multiple inheritance is used, and the size of a base class is changed. Here is an example of a typical symptom: </p> <codeblock id="GUID-F68AB56A-3ECF-55D8-91BA-83AD93CEF32E" xml:space="preserve">MAKEDEF ERROR: 1 Frozen Export(s) missing from object files:
+\src\example\MyDLLU.DEF(3) : _ZThn8_N7Derived3fooEv @2
+MAKEDEF WARNING: 1 export(s) not yet Frozen in \src\example\MyDLLU.DEF:
+..\..\..\EPOC32\BUILD\src\example\group\MyDLL\ARMV5\MyDll{000a0000}.def(7) : _ZThn12_N7Derived3fooEv @6</codeblock> <p>This shows a problem with a frozen DEF file: the export at ordinal 2 is missing, and a new unfrozen export has been added at ordinal 6. When comparing the two symbols, they look suspiciously similar to each other, and to a third symbol in the DEF file: </p> <codeblock id="GUID-41EDE0BF-3A2F-5D76-A6B5-C4935A12CC29" xml:space="preserve">_ZN7Derived3fooEv @1 
+_ZThn8_N7Derived3fooEv @2        // this one is missing 
+_ZThn12_N7Derived3fooEv @6        // this one has appeared</codeblock> <p>The exports beginning with _ZTh are compiler generated functions called thunks (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-63FC4816-1807-5238-BB8F-644490A7A5F9">Class Impedimenta</xref>), and the information between _ZTh and the next underscore is the offset associated with the thunk. Our problem is that for some reason, the offset associated with the thunk has changed from –8 to –12 (the n denotes a negative offset). Note that there is another variant of this problem that involves thunks beginning with _ZTv. </p> <p>These generated functions are a feature of the Itanium C++ ABI, on which the ABI for the ARM architecture builds upon. Hence the name "ARM ABI Thunk Offset Problem". </p> <p><b>What causes this problem?</b> </p> <p>The problem is caused because the symbol name generated for the thunk contains an offset number. More details can be found in <xref scope="external" href="http://www.codesourcery.com/cxx-abi/abi.html">http://www.codesourcery.com/cxx-abi/abi.html</xref> under section 5.1.4. This offset may change, when the signature of the base class is changed. For example when a data member is added or removed. </p> <p>Another condition to trigger the problem needs to hold as well: multiple inheritance with virtual functions in more than one of the base classes. If this condition does not hold, the compiler will not generate a thunk and thus there is no problem. </p> <p>Note that this is always a Binary Compatibility break, which shows up as a change to symbols in DEF files. </p> <p><b>How do I fix it?</b> </p> <p>There are three choices to fix it: </p> <ol id="GUID-804A94CF-1A73-5640-B3B8-2DDFBEDD407A"><li id="GUID-955EC339-EC01-5989-B388-6D6BE285F14D"><p>The first option is to refreeze the DEF file: this would be OK if you are not maintaining a frozen interface, and your customers will in any case need to rebuild because of the Binary Compatibility break. The easiest way to refreeze is to delete all of the exports from your existing DEF file, build again, and then use "<i>abld freeze armv5</i> " to update the DEF file. After updating the DEF file, build again: this time it should build cleanly. </p> </li> <li id="GUID-9CE95A51-20BD-51B7-93D6-629FB97014FA"><p>The second option is to use the attached script to fix the ABI Thunk Offsets. It expects to read a build log containing the MAKEDEF errors and warnings and will modify the DEF file to replace each missing export with the corresponding unfrozen export. Run the script with no arguments to get further details. </p> <fig id="GUID-7C590699-C58D-5619-8FFA-1DE51A0D666F"><image href="GUID-377B04D8-4E8B-54C7-AE7F-8BD47CB81758_d0e10475_href.png" placement="inline"/></fig> <p>After fixing the DEF file, you will need to rebuild the DLL which uses the DEF file. </p> </li> <li id="GUID-22502314-4780-57B8-9D45-05470FA95757"><p>The last option is that you could change your mind about adding that extra member data. This will only be an option if it is your change which causes the problem: if your supplier has changed the size of a class that they own and caused this problem, then you are forced to change your DEF file. </p> <p>If you own the class which has the extra member data, it is worth noting that this change is likely to affect your customers as well. They will have to rebuild because of the BC break. Adding to this they will also see the ABI Thunk Offset Problem if they derive from your class. This includes simple inheritance from a class which shows the problem, if it re-implements any of the virtual functions which require thunks. </p> <p>When Symbian breaks compatibility in a way likely to cause this problem, the corresponding entry in the Compatibility Break spreadsheet will say "BC+ Break: Rebuild &amp; Check/Fix Def-File EABI Thunk Offsets". </p> </li> </ol> <p><b>Tell me the full details: What is a thunk? What causes its offset to change? </b> </p> <p>In a C++ class hierarchy involving both virtual functions and multiple inheritance, objects can be accessed as though they were several different types. A typical Symbian platform example would be a CBase-derived class which also derives from an M-class, perhaps to provide an <i>observer</i> interface: for example CCoeControl, which derives from both CBase and MObjectProvider. </p> <p>The virtual functions which can be called on an object depends on the type it currently appears to be.A CCoeControl object can be viewed as a CBase object, in which case it has one set of virtual functions, or as an MObjectProvider, in which case it has another. The compiler constructs separate <i>virtual tables</i> for each of the possible interfaces, and these tables contain information about how to convert back to the underlying CCoeControl object. When converting from a CCoeControl pointer to an MObjectProvider pointer, the compiler will adjust the value of the pointer, so that it points to the "MObjectProvider" part of the object, and not the full CCoeControl object. </p> <p>The MObjectProvider class defines a pure virtual function MopSupplyObject, which is implemented in CCoeControl. Even when the object is presenting it's MObjectProvider interface, the vtable must use the correct implementation of MopSupplyObject, which expects to be used in the context of a CCoeControl. The solution used by the compiler is to create a <i>virtual function override thunk</i> function which makes any necessary adjustments between the calling context (a pointer to MObjectProvider) and the execution context (a pointer to CCoeControl). </p> <p>This could have been implemented using the names of the two contexts, but instead the ABI uses the amount by which the <i>this</i> pointer needs to be adjusted to make the switch: this is the offset encoded in the name. </p> <p>Here is a small example: </p> <p> <b>eabi_thunk_offset_problem.cpp</b>  </p> <codeblock id="GUID-8ED84BFF-EDB0-5C54-8CE9-05F289231FF2" xml:space="preserve">#ifndef COUNT 
+#define COUNT 1 
+#endif 
+
+class Base 
+{ 
+public: 
+    int iBaseMember[COUNT]; 
+    virtual ~Base(); 
+}; 
+
+class MInterface 
+{ 
+public: 
+    virtual int foo(); 
+}; 
+
+class Derived : public Base, public MInterface 
+{ 
+public: 
+    virtual int foo(); 
+    int iDerived; 
+}; 
+
+class MoreDerived : public Derived 
+{ 
+public: 
+    virtual int foo(); 
+    int iMoreDerived; 
+}; 
+
+int Derived::foo() { return iDerived; } 
+Derived* fun1() { return new Derived; } 
+MInterface* fun2() { return new Derived; } 
+
+int MoreDerived::foo() { return iMoreDerived; } 
+MoreDerived* fun3() { return new MoreDerived; } 
+MInterface* fun4() { return new MoreDerived; }
+</codeblock> <p>Compile this with <i>armcc -S eabi_thunk_offset_problem.cpp</i> to get an assembly listing. Compile it again with an extra argument "-DCOUNT=2" to change the size of the base class, and compare the two files: there will be various differences in the code, but also differences in the _ZTh symbols - including the differences used in the "typical symptom" above. </p> <p>If you use virtual inheritance, then you may see another version of the problem. With virtual inheritance, there are two offsets involved and the thunk symbols will begin with _ZTv. The same symbol may appear in several thunks, each with different offsets. </p> </section> <section id="GUID-E0F45E5F-F254-5D8B-A8E9-9D22C59DF2E4"><title>The Shared DEF File Problem</title> <p><b>What is the Problem with Shared DEF Files?</b> </p> <p>The class exporting rules (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-A6382EAB-EEF5-56AC-B15E-B3740BB3C102">Class Exporting Rules</xref>) by default will generate non-callable exports for all classes that are not marked non-sharable in source. Say two DLLs, A and B share one DEF file, in effect implementing similar but different functionality towards the same public interface. Further say, no classes are marked non-sharable. Say there are some classes that are shared between DLL A and DLL B and that these classes have names of the form CShared&lt;xyz&gt;. Classes that are specific to DLL A have names of the form CA&lt;xyz&gt;, classes specific to DLL B have names of the form CB&lt;xyz&gt;. When DLL A is built, DEF file entries for non-callable exports from CShared&lt;xyz&gt; and CA&lt;XYZ&gt; are automatically added to the DEF file. When DLL B is built, exports from CShared&lt;xyz&gt; and CB&lt;XYZ&gt; are added. So in fact the DEF file would be the sum of all non-callable exports from CShared&lt;xyz&gt;, CA&lt;xyz&gt; and CB&lt;XYZ&gt;. It also will contain symbols from functions that are marked for export using EXPORT_C. However, this means that neither A or B can be linked. This is because when A is built, the code linking against the non-callable exports of CB&lt;XYZ&gt; do not exist in A and vice versa. </p> <fig id="GUID-E2B571A3-0463-5886-AD08-D50F0420EAF9"><image href="GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e10560_href.png" placement="inline"/></fig> <p><b>Use-cases for Fixing Shared DEF Files</b> </p> <p> <b>Use-Case 1:</b>  <b> Polymorphic “Plug-ins”</b>  </p> <p>Several DLLs are built using the same DLL interface (DEF file). Typically the DEF file has very few entries (1 or 2) and is maintained manually. This means that new functions are added by editing the shared DEF file. Also typically no import libraries are needed as the knowledge about the DLL interface is hard-coded into the client code of the "plug-in". The plug-ins do not have to be loaded at run-time. Some are always built but not always included in the ROM. </p> <p> <b>The Fix:</b>  </p> <ol id="GUID-A5D72F88-AF26-57FB-823F-7331992EB0F8"><li id="GUID-DE2A9DBD-EF23-56AA-997A-90B717406DBB"><p>If the shared DEF file is in \epoc32\include\def\EABI then locate the original DEF file by searching all BLD.INF files for the appropriate line in PRJ_EXPORTS </p> </li> <li id="GUID-1BE3AEA4-B629-5273-A370-DC3A9DABBA80"><p>Remove all non-callable exports that have caused warnings or errors from the original DEF file. </p> </li> <li id="GUID-CADA2F46-96C3-50DD-99AE-847D2EC70CFE"><p>Add NOEXPORTLIBRARY to all MMP files that share that component, ensuring that the build system does NOT try and re-freeze these automatically the next time you build. Otherwise the build system will re-introduce these non-callable exports. </p> </li> </ol> <p> <b>Note:</b>  </p> <p>If you want to use the re-freeze mechanism – say to add a new export, you have to temporarily remove NOEXPORTLIBRARY from the MMP file, then generate a new DEF file by re-building the component, re-freeze, possibly edit (to remove unwanted non-callable exports) and then insert the keyword NOEXPORTLIBRARY into the MMP file again. </p> <p> <b> Use-Case 2:</b>  <b> Polymorphic “Plug-ins” on which Other Components Depend</b>  </p> <p>This is very similar to use-case 1, except that some other component depends on one of the plug-ins. This means that an import library is required. </p> <p> <b>The Fix: </b> The build structure must be such that </p> <ul><li id="GUID-9B61065B-E448-5B32-910C-4F8356B30E63"><p>One MMP file generates the import library from the shared DEF file using the target type IMPLIB. It may be necessary to create a new MMP file which does this. </p> </li> <li id="GUID-4CB6CB0F-E690-5AAB-8B0C-1A6D64ECBC31"><p>All the other MMP files use NOEXPORTLIBRARY as described in use-case 1 </p> </li> </ul> <p> <b>Note:</b>  </p> <p>If you want to use the re-freeze mechanism – say to add a new export, you have to temporarily remove NOEXPORTLIBRARY from the MMP file, then generate a new DEF file by re-building the component, re-freeze, possibly edit (to remove unwanted non-callable exports) and then insert the keyword NOEXPORTLIBRARY into the MMP file again. </p> <p> <b>Use-Case 3:</b>  <b> Annotate Classes as Non-sharable</b>  </p> <p>Where a DEF file must be shared between components for whatever reason and none of the above use-cases can be applied, the build would fail for at least one component. An example of this may be a class MyPrivateClass that exists in the debug build (UDEV) of the OS, but not in the release build (UREL). </p> <p>In such a case all classes that should not contribute to the DEF file, i.e. that are really private to the implementation of a component, must be annotated in the source as NONSHARABLE_CLASS(X) or NONSHARABLE_STRUCT(X). As a result no non-callable exports will be generated for such a class. Say for example, class MyPrivateClass is truly private to a component that must share a DEF file with another component. Then it should be declared: </p> <codeblock id="GUID-8E236162-F6BA-5A77-9A50-8546C49A7FFC" xml:space="preserve">    NONSHARABLE_CLASS(MyPrivateClass)
+    {
+    ...
     };</codeblock> <p>This will prevent the compiler from exporting non-callables for MyPrivateClass. However this means that it is not possible to DLL-derive (for the definition of DLL-derive see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-884B1DF5-ECC8-5243-85B4-9B07BA52C58B">Terminology and Background</xref>) from MyPrivateClass and that all classes derived from MyPrivateClass must also be marked non-sharable (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-884B1DF5-ECC8-5243-85B4-9B07BA52C58B">Terminology and Background</xref>). </p> <p> <b>Use-Case 4:</b>  <b> Optimisation</b>  </p> <p>A consequence of the Simple Rule (see <xref href="GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12.dita#GUID-CCE5DBCC-41D6-53D0-B929-ADB478B53F12/GUID-3DA52D31-E3D7-5061-8D15-1F1D69AE2ED1">The Simple Rule – Sharable Classes</xref>) is that some components may emit entries in their DEF files which are not needed. In the worst case the overhead is 8 bytes of ROM size per class (2 DLL entry points). In the typical case an increase of 4 bytes will occur and in some cases no increase at all. </p> <p>For code that is private to an implementation, i.e. where it is known that a class would never be used outside of that component, this footprint increase is unnecessary. In order to avoid the footprint increase mark all private classes (and classes derived from them) in the source as NONSHARABLE_CLASS(X) or NONSHARABLE_STRUCT(X) as described for use-case 3. </p> <p> <b> Use-Case 5:</b>  <b> The Build Tools Automatically Ignore Non-callable Exports</b>  </p> <p>For most components the build tools automatically ignore <b>all</b> non-callable exports. This is the case because the build tools know the situations when non-callable exports cannot be needed. Non-callable exports are only needed, if: </p> <ul><li id="GUID-BF53F4C7-14B3-5FEB-8CAE-F71383DFAB2E"><p>The target type is either DLL, EXEDLL or EXEXP and the MMP file has no NOEXPORTLIBRARY keyword </p> </li> <li id="GUID-622E7A6F-0618-5331-9AE8-E2ABDD7FA190"><p>If the MMP file contains the DEFFILE keyword and the MMP file has no NOEXPORTLIBRARY keyword </p> </li> </ul> <p>The reason for this is that target types, such as APP, always map directly onto one of the above use-cases. For example the target type APP is an example of use-case 1, i.e. the APP is a DLL that always has the same DEF file. However no other DLL but the APP loader will ever link against this binary, unless its MMP file contains the DEFFILE keyword. </p> <p> <b>Use-Case 6:</b>  <b> Best Practice</b>  </p> <p>Note that it is good practice to avoid unnecessary footprint increases by marking private classes as non-sharable as outlined in use-case 4. Further note, that at some point in the future Symbian may add this to the Symbian Coding Standards or withdraw tools support for some of the cases described above. </p> <p><b>Optimisation</b> </p> <p>This section discusses advantages of marking “private” classes as described in use-cases 4 and 6 in the previous section as non-sharable </p> <p>Reasons for Optimisation: </p> <ul><li id="GUID-50EBEA63-092D-5B01-8371-890947D05E57"><p>Small footprint saving </p> </li> <li id="GUID-509DD311-4E9E-5A32-8194-25F9DA554417"><p>DEF files are more “pretty”, i.e. they will have fewer entries for non-callable exports in it and may have fewer holes in them. </p> </li> <li id="GUID-7DD701A6-E55A-5ECD-B905-416281014E4D"><p>When changing code that is private to a module as described in use-case 4 and not marked non-sharable, DEF file changes are required when: </p> <ul><li id="GUID-CA989C12-3138-53F3-A5C0-7092A31E9867"><p>Renaming a private class </p> </li> <li id="GUID-835872C3-C047-57F8-9221-E356B2D09A5A"><p>Removing a private class </p> </li> <li id="GUID-20632617-A0DB-5DF5-9C39-EF14A39CC8DF"><p>Adding a private class </p> </li> </ul> <p>This makes it harder to maintain DEF files and will ultimately lead to less “pretty” DEF files when Binary Compatibility must be maintained. </p> </li> <li id="GUID-7B1CAE8B-3CB9-5782-AE6E-7B4AE2E2307E"><p>More non-sharable classes mean that it is less likely to have problems with shared DEF files as outlined in use-cases 1 and 2 in the previous section. </p> </li> </ul> <p> <b>When not to use Optimisation:</b>  </p> <p>It is not advisable to use optimisation in the following circumstances, as the build tools suppress non-callable exports automatically in these cases: </p> <ul><li id="GUID-0CD3582F-3976-599D-B1F1-A16C8025E50E"><p>The target type of the component containing private classes is neither DLL, EXEDLL nor EXEXP and no DEFFILE keyword is contained the components MMP file </p> </li> <li id="GUID-37D22C06-234B-57D8-9605-343E28EBB674"><p>The MMP file of the component contains the NOEXPORTLIBRARY keyword. </p> <p>If the NOEXPORTLIBRARY keyword has been introduced to work around problems introduced by shared DEF files and the Simple Rule it may be better to remove the NOEXPORTLIBRARY keyword and mark private classes as non-sharable instead. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e316250_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CCE61F55-DDCC-566B-B4C6-E094E8E8B073_d0e322407_href.png has changed
--- a/Symbian3/SDK/Source/GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,245 +1,202 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A" xml:lang="en"><title>UI
-components</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p><draft-comment time="2010-03-04T16:19" translate="no">This table has been filtered for
-PDK, SDK and Internal publications. The conditions applied for each row can
-be viewed in the Document Map on the left hand pane (they have attribute mark).</draft-comment></p>
-<table id="GUID-CB1618F8-C658-42A5-BF86-3AA8CDCFF681-GENID-1-8-1-6-1-1-5-1-2-2">
-<tgroup cols="3"><colspec colname="col1" colwidth="0.40*"/><colspec colname="col2" colwidth="1.38*"/><colspec colname="col3" colwidth="1.21*"/>
-<thead>
-<row>
-<entry>               <p>Component</p>             </entry>
-<entry>               <p>Example image</p>             </entry>
-<entry>               <p>C++ APIs for implementation</p>             </entry>
-</row>
-</thead>
-<tbody>
-
-
-<row>
-<entry>               <p><xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus
-pop-up menu</xref></p>             </entry>
-<entry>               <fig id="GUID-C68B7CBA-6DA8-4DAF-AAEE-549784033BF5">
-<image href="GUID-70E92884-004F-43B5-B740-B0C95E8E401C_d0e57062_href.png" placement="inline"/>
-</fig>             </entry>
-<entry><p>Stylus pop-up menu API</p></entry>
-</row>
-<row>
-<entry>               <p> <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref></p> 
-           </entry>
-<entry>               <fig id="GUID-CD41B544-521C-4271-A7D8-1C68399AB3A6">
-<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e57086_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita">Toolbar
-API</xref>, <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
-button API</xref> for buttons</p>             </entry>
-</row>
-<row>
-<entry><p>Choice list</p></entry>
-<entry><fig id="GUID-EAE34488-B88B-4D2C-9DAB-A5D8C2AFDE4C">
-<image href="GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e57111_href.png" placement="inline"/>
-</fig></entry>
-<entry><p><xref href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita">Choice list
-API</xref></p></entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p> 
-           </entry>
-<entry>               <fig id="GUID-F0BF6AEC-5F2D-4BFC-98B4-E8E934FCE10C">
-<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e57133_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref></p>                           </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita">Form
-items</xref></p>               <ul>
-<li>                   <p>Text field</p>                 </li>
-<li>                   <p>Pop-up field</p>                 </li>
-<li>                   <p>Slider</p>                 </li>
-</ul>             </entry>
-<entry><fig id="GUID-65FDE0EB-6063-475D-BC7A-CF0D53445009">
-<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e57178_href.png" scale="27" placement="inline"/>
-</fig></entry>
-<entry>              <p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Grouped
-soft notification</xref>, <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita">List
-query</xref>, <xref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita">Grid
-query</xref></p>             </entry>
-<entry>               <fig id="GUID-0FF4831E-1870-40B0-8F29-A6F14826412E">
-<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e57208_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p>Queries API</p>             </entry>
-</row>
-<row>
-<entry>               <p>Left/Right arrows in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p>             </entry>
-<entry>               <fig id="GUID-13EFAD4E-B334-4B64-85B0-C5EE3294FD97-GENID-1-8-1-6-1-1-5-1-2-2-1-5-7-2-1">
-<image href="GUID-76901D63-BDA2-4DCA-A66C-7BAFD7E211EB_d0e57233_href.png" scale="27" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable
-list</xref></p>               <p><xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
-list</xref></p>             </entry>
-<entry>               <fig id="GUID-766A6391-9572-4231-8756-8ACDB5EED335">
-<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57262_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p>Menu list (e.g., <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options
-menu</xref> and submenus)</p>             </entry>
-<entry>               <fig id="GUID-7F128013-32DC-4567-908E-BAC6297C5E43">
-<image href="GUID-8BA0D643-5ED1-4DC4-82EC-C8AA392DCBC4_d0e57289_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Options_Menu_API_Specification/Options_Menu_API_Specification.html" scope="peer">Options menu API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
-list</xref></p>             </entry>
-<entry>               <fig id="GUID-E899EFED-C4E7-45A3-B262-A5D3DFFB96BC">
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57314_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita">Preview
-pop-up</xref></p>             </entry>
-<entry><fig id="GUID-BC4E1D2A-8F82-4F92-9F3C-7FEE4192A5F5">
-<image href="GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e57338_href.png" placement="inline"/>
-</fig></entry>
-<entry><p><xref format="html" href="specs/guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer">Information preview pop-up API</xref></p></entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scroll
-pane</xref></p>             </entry>
-<entry><fig id="GUID-3123A8A3-1DEF-4DA2-8A55-9D4FD0966D8A">
-<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e57359_href.png" placement="inline"/>
-</fig></entry>
-<entry><p><xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html" scope="peer">Scroller API</xref></p></entry>
-</row>
-<row>
-<entry>               <p>                 <b>Setting items</b>           
-   </p>             </entry>
-<entry/>
-<entry><p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref></p></entry>
-</row>
-<row>
-<entry>               <p>Pop-up setting</p>             </entry>
-<entry><fig id="GUID-36BF077E-CD71-416E-831D-16328826753E">
-<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e57398_href.png" placement="inline"/>
-</fig></entry>
-<entry>               <p/>             </entry>
-</row>
-<row>
-<entry>               <p>Multi-selection list setting</p>             </entry>
-<entry><fig id="GUID-B9E2C260-5278-4C2E-B76C-17305547F324">
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e57418_href.png" placement="inline"/>
-</fig></entry>
-<entry>               <p/>             </entry>
-</row>
-<row>
-<entry>               <p>Text setting</p>             </entry>
-<entry><fig id="GUID-C9E90E52-534A-41FE-A4E0-5DD39ADB8C1A">
-<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e57438_href.png" placement="inline"/>
-</fig></entry>
-<entry>               <p/>             </entry>
-</row>
-<row>
-<entry>               <p>Slider setting</p>             </entry>
-<entry><fig id="GUID-6EAC8628-057C-4164-A6E9-D01BF6326276">
-<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e57458_href.png" placement="inline"/>
-</fig></entry>
-<entry>               <p/>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting
-list</xref></p>             </entry>
-<entry>               <fig id="GUID-8331EB35-DA07-4A91-B5E4-63246039FE91">
-<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e57480_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref>, <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p>Softkeys (left and right) in the <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
-pane</xref></p>               <note>There is no middle softkey label in Touch
-UI</note>             </entry>
-<entry>               <fig id="GUID-9EE9B343-0FA2-4A7B-A302-21D16DE078EA">
-<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e57512_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref></p>             </entry>
-</row>
-<row>
-<entry>               <p>Tabs in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p>             </entry>
-<entry>               <fig id="GUID-79A9AE58-4062-46E9-9066-FC8378C03039">
-<image href="GUID-65365507-5773-4FE9-B63E-450CC2DD7570_d0e57538_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <p><xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref>, <xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> (container)</p>             </entry>
-</row>
-<row>
-<entry>               <p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
-pane</xref></p>               <ul>
-<li>                   <p><xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">Title
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita">Battery
-pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal
-indicator pane</xref></p>                 </li>
-<li>                   <p><xref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita">Signal
-pane</xref></p>                 </li>
-</ul>             </entry>
-<entry>               <fig id="GUID-A9181E38-4478-4705-8F63-1B0B209899B3">
-<image href="GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e57605_href.png" placement="inline"/>
-</fig>             </entry>
-<entry>               <ul>
-<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref> for the entire status pane</p></li>
-<li><p>Title pane API for the title pane</p></li>
-<li><p>Title Pane Touch Observer API for title pane touch events</p></li>
-<li><p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for the entire navi pane</p></li>
-<li><p><xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref> for tabs in the navi pane</p></li>
-<li><p>HWRM power state API for a publish and subscribe interface to battery
-status</p></li>
-<li><p>Indicators API for the indicator pane</p></li>
-<li><p>The signal pane is not accessible to applications.</p></li>
-</ul>             </entry>
-</row>
-<row>
-<entry><p><xref href="GUID-60B979FB-43BD-480E-8E17-1D3DA2002CB1.dita"><b>Slider
-pop-up</b></xref></p><ul>
-<li><p><xref href="CB163645-CB5E-4DB5-9830-B97D12FDCBF5.dita">Volume Controller</xref></p></li>
-</ul></entry>
-<entry><fig id="GUID-3D11667A-7280-4614-BCB7-7F34BF453584">
-<image href="GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e57672_href.png" placement="inline"/>
-</fig></entry>
-<entry/>
-</row>
-<row>
-<entry><p><xref href="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita">Universal
-indicator pop-up</xref></p></entry>
-<entry><fig id="GUID-01050257-59D4-4224-8756-22F9524B94AB-GENID-1-8-1-6-1-1-5-1-2-2-1-5-23-2-1">
-<image href="GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e57688_href.png" placement="inline"/>
-</fig></entry>
-<entry/>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>For details on touch support of these components, see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
-support for UI components</xref></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CCE6DC36-625C-487C-9AD8-F1BF8E36080A" xml:lang="en"><title>UI components</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p><draft-comment time="2010-03-04T16:19" translate="no">This table has been filtered for
+PDK, SDK and Internal publications. The conditions applied for each row can
+be viewed in the Document Map on the left hand pane (they have attribute mark).</draft-comment></p>
+<table id="GUID-CB1618F8-C658-42A5-BF86-3AA8CDCFF681-GENID-1-10-1-6-1-1-5-1-2-2">
+<tgroup cols="3"><colspec colname="col1" colwidth="0.82*"/><colspec colname="col2" colwidth="1.45*"/><colspec colname="col3" colwidth="0.73*"/>
+<thead>
+<row>
+<entry>               <p>Component</p>             </entry>
+<entry>               <p>Example image</p>             </entry>
+<entry>               <p>C++ APIs for implementation</p>             </entry>
+</row>
+</thead>
+<tbody>
+
+
+
+
+
+
+
+
+
+
+<row>
+<entry>               <p> <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">Toolbar</xref></p> 
+           </entry>
+<entry>               <fig id="GUID-CD41B544-521C-4271-A7D8-1C68399AB3A6">
+<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e51533_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita">Toolbar
+API</xref>, <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
+button API</xref> for buttons</p>             </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-CCC5BE18-E90D-4B81-AE6F-333B96E7A3F7.dita">Choice list</xref></p></entry>
+<entry><fig id="GUID-EAE34488-B88B-4D2C-9DAB-A5D8C2AFDE4C">
+<image href="GUID-7A2A9222-7D10-4007-95AB-C9584EC54698_d0e51559_href.png" placement="inline"/>
+</fig></entry>
+<entry><p><xref href="GUID-C29FE12C-C412-40A8-A067-27C63A519D71.dita">Choice list
+API</xref></p></entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita">Forms</xref></p> 
+           </entry>
+<entry>               <fig id="GUID-F0BF6AEC-5F2D-4BFC-98B4-E8E934FCE10C">
+<image href="GUID-11A79174-485E-425C-9653-193B670A3F03_d0e51581_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref></p>                           </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-A5756C5F-9C93-4949-8B60-03DCA1BAF683.dita">Form
+items</xref></p>               <ul>
+<li><p>Text field</p>                 </li>
+<li><p>Pop-up field</p>                 </li>
+<li><p>Slider</p>                 </li>
+</ul>             </entry>
+<entry><fig id="GUID-65FDE0EB-6063-475D-BC7A-CF0D53445009">
+<image href="GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e51623_href.png" scale="27" placement="inline"/>
+</fig></entry>
+<entry>              <p><xref format="html" href="specs/guides/Form_API_Specification/Form_API_Specification.html" scope="peer">Form API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-40F5B725-A5D7-487F-BF5D-A616F768F40D.dita">Grouped
+soft notification</xref>, <xref href="GUID-13DEE42F-3EAB-4EB7-9CE1-C4930BCACE01.dita">List
+query</xref>, <xref href="GUID-434F2412-59A1-4BCB-885D-5E708EAA6AB6.dita">Grid
+query</xref></p>             </entry>
+<entry>               <fig id="GUID-0FF4831E-1870-40B0-8F29-A6F14826412E">
+<image href="GUID-81767E3E-BE4D-40D9-A4F2-3801BCCC1EA7_d0e51653_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p>Queries API</p>             </entry>
+</row>
+<row>
+<entry>               <p>Left/Right arrows in the <xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
+pane</xref></p>             </entry>
+<entry>               <fig id="GUID-DD17310A-C196-4DC6-82EB-D328B81628F5">
+<image href="GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e51678_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita">Markable
+list</xref></p>               <p><xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
+list</xref></p>             </entry>
+<entry>               <fig id="GUID-766A6391-9572-4231-8756-8ACDB5EED335">
+<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e51707_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
+list</xref></p>             </entry>
+<entry>               <fig id="GUID-E899EFED-C4E7-45A3-B262-A5D3DFFB96BC">
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51732_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-11C24609-3B6D-4B44-B003-FB0C07444A9E.dita">Scrollbar</xref></p> 
+           </entry>
+<entry><fig id="GUID-3123A8A3-1DEF-4DA2-8A55-9D4FD0966D8A">
+<image href="GUID-3382507E-1B21-418C-A908-DD3F688C0672_d0e51756_href.png" placement="inline"/>
+</fig></entry>
+<entry><p><xref format="html" href="specs/guides/Scroller_API_Specification/Scroller_API_Specification.html" scope="peer">Scroller API</xref></p></entry>
+</row>
+<row>
+<entry>               <p><b>Setting items</b></p>             </entry>
+<entry/>
+<entry><p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref></p></entry>
+</row>
+<row>
+<entry>               <p>Pop-up setting</p>             </entry>
+<entry><fig id="GUID-B2C37310-2E83-44A9-BDE8-28C273C89152">
+<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e51793_href.png" placement="inline"/>
+</fig></entry>
+<entry>               <p/>             </entry>
+</row>
+<row>
+<entry>               <p>Multi-selection list setting</p>             </entry>
+<entry><fig id="GUID-B9E2C260-5278-4C2E-B76C-17305547F324">
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e51813_href.png" placement="inline"/>
+</fig></entry>
+<entry>               <p/>             </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-B452DBD8-F9EB-4DAB-9D0C-3B11D7C360F4.dita">Text setting</xref></p></entry>
+<entry><fig id="GUID-C9E90E52-534A-41FE-A4E0-5DD39ADB8C1A">
+<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e51832_href.png" placement="inline"/>
+</fig></entry>
+<entry>               <p/>             </entry>
+</row>
+<row>
+<entry><p><xref href="GUID-1BDADA7A-D517-49F4-AF46-AFC2B7758571.dita">Slider setting</xref></p></entry>
+<entry><fig id="GUID-6EAC8628-057C-4164-A6E9-D01BF6326276">
+<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e51851_href.png" placement="inline"/>
+</fig></entry>
+<entry>               <p/>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita">Setting
+list</xref></p>             </entry>
+<entry>               <fig id="GUID-8331EB35-DA07-4A91-B5E4-63246039FE91">
+<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e51873_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref>, <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p>Softkeys (left and right) in the <xref href="GUID-8B137691-7C9E-4085-BFFE-4CFE4A64A091.dita">Control
+pane</xref></p>               <note>There is no middle softkey label in Touch
+UI</note>             </entry>
+<entry>               <fig id="GUID-9EE9B343-0FA2-4A7B-A302-21D16DE078EA">
+<image href="GUID-A0208BE3-127F-4D04-8045-09C54EF202DD_d0e51905_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <p><xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref></p>             </entry>
+</row>
+<row>
+<entry>               <p><xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
+pane</xref></p>               <ul>
+<li>                   <p><xref href="GUID-66EFFCF5-581A-4EE7-B784-8087A1081B6D.dita">Title
+pane</xref></p>                 </li>
+<li>                   <p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi
+pane</xref></p>                 </li>
+<li>                   <p><xref href="GUID-A947B5A8-9138-4FA2-B8D8-2850AEB2F38C.dita">Battery
+pane</xref></p>                 </li>
+<li>                   <p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal
+indicator pane</xref></p>                 </li>
+<li>                   <p><xref href="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita">Signal
+pane</xref></p>                 </li>
+<li><p><xref href="GUID-CA2AACD9-A99D-4C34-80AF-C1B61AC9331F.dita">Clock Pane</xref></p></li>
+</ul>             </entry>
+<entry>               <fig id="GUID-A9181E38-4478-4705-8F63-1B0B209899B3">
+<image href="GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e51973_href.png" placement="inline"/>
+</fig>             </entry>
+<entry>               <ul>
+<li><p><xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status pane API</xref> for the entire status pane</p></li>
+<li><p>Title pane API for the title pane</p></li>
+<li><p>Title Pane Touch Observer API for title pane touch events</p></li>
+<li><p><xref format="html" href="specs/guides/Navigation_Pane_API_Specification/Navigation_Pane_API_Specification.html" scope="peer">Navigation pane API</xref> for the entire navi pane</p></li>
+<li><p><xref format="html" href="specs/guides/Tabs_API_Specification/Tabs_API_Specification.html" scope="peer">Tabs API</xref> for tabs in the navi pane</p></li>
+<li><p>HWRM power state API for a publish and subscribe interface to battery
+status</p></li>
+<li><p>Indicators API for the indicator pane</p></li>
+<li><p>The signal pane is not accessible to applications.</p></li>
+</ul>             </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>For details on touch support of these components, see <xref href="GUID-BB8B3A11-0BBC-4759-A7F4-A28C9E70573F.dita">Touch
+support for UI components</xref></p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e320575_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CCEE3988-C10A-538A-8107-E2636594443B_d0e326732_href.png has changed
--- a/Symbian3/SDK/Source/GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8" xml:lang="en"><title>Local
-connectivity</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Local connectivity has fewer security issues due to its short range.
-However, general rules of communication security apply to local connectivity
-as well. This section discusses Bluetooth and infrared.</p>
-<section id="GUID-A0FF4E29-CB0F-4752-B3B7-1F5C0D3EA1C8"><title>Bluetooth</title>
-<p>The Bluetooth wireless technology is a short range and low power network
-for data and voice communication in any place of the world. The figure below
-illustrates the relationships between the different Symbian Bluetooth classes.</p>
-<p>For more information, see <xref href="GUID-6CE12919-FF81-5254-BA12-385F589FEA44.dita">Bluetooth
-Management Collection</xref>.</p>
-<fig id="GUID-0C459AD9-E972-4FC8-9C26-8879E8C2835D"><title>Bluetooth API</title><image href="GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e11400_href.png"/></fig>
-<p>Use the Bluetooth Security Manager to set the appropriate security requirements
-(authentication, authorization, and encryption) that <i>incoming</i> connections
-to the device's Bluetooth services must meet. For more information, see <xref href="GUID-A035B592-F423-5980-8E7E-E726CF24CF3E.dita">Using Bluetooth Security
-Manager</xref>.</p>
-<p>The Bluetooth stack will not by default enforce any particular Bluetooth
-security for <i>outgoing</i> socket connections. If the remote device requires
-authentication or encryption to connect, it will be handled automatically
-by the Bluetooth stack. For more information, see <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
-security on outgoing sockets</xref>.</p>
-</section>
-<section id="GUID-2CE155AD-1FFC-41D2-9778-032EF43B8002"><title>Infrared</title>
-<p>Infrared provides a means for short-range communication between devices.
-Symbian implements the Infrared Data Association (IrDA) stack for infrared
-connections. Infrared connections are handled through general Serial or Socket
-Server interfaces.</p>
-<p>The IrDA standard does not specify any security features for data transfer,
-but since the devices attempting infrared connection are in visual contact,
-it is easier to control communication and access to the device. Implement
-authentication, authorization, encryption, or any other security features
-needed in the application level.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CD2BF0EE-5437-4ADA-A447-4B06147754A8" xml:lang="en"><title>Local
+connectivity</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Local connectivity has fewer security issues due to its short range.
+However, general rules of communication security apply to local connectivity
+as well. This section discusses Bluetooth and infrared.</p>
+<section id="GUID-A0FF4E29-CB0F-4752-B3B7-1F5C0D3EA1C8"><title>Bluetooth</title>
+<p>The Bluetooth wireless technology is a short range and low power network
+for data and voice communication in any place of the world. The figure below
+illustrates the relationships between the different Symbian Bluetooth classes.</p>
+<p>For more information, see <xref href="GUID-6CE12919-FF81-5254-BA12-385F589FEA44.dita">Bluetooth
+Management Collection</xref>.</p>
+<fig id="GUID-0C459AD9-E972-4FC8-9C26-8879E8C2835D"><title>Bluetooth API</title><image href="GUID-AEBB7F5D-E18E-4E1F-ADE0-C984084AC108_d0e12675_href.png"/></fig>
+<p>Use the Bluetooth Security Manager to set the appropriate security requirements
+(authentication, authorization, and encryption) that <i>incoming</i> connections
+to the device's Bluetooth services must meet. For more information, see <xref href="GUID-A035B592-F423-5980-8E7E-E726CF24CF3E.dita">Using Bluetooth Security
+Manager</xref>.</p>
+<p>The Bluetooth stack will not by default enforce any particular Bluetooth
+security for <i>outgoing</i> socket connections. If the remote device requires
+authentication or encryption to connect, it will be handled automatically
+by the Bluetooth stack. For more information, see <xref href="GUID-4F0C4B9D-AA42-59C4-900A-7045FEAAF2F4.dita">Using
+security on outgoing sockets</xref>.</p>
+</section>
+<section id="GUID-2CE155AD-1FFC-41D2-9778-032EF43B8002"><title>Infrared</title>
+<p>Infrared provides a means for short-range communication between devices.
+Symbian implements the Infrared Data Association (IrDA) stack for infrared
+connections. Infrared connections are handled through general Serial or Socket
+Server interfaces.</p>
+<p>The IrDA standard does not specify any security features for data transfer,
+but since the devices attempting infrared connection are in visual contact,
+it is easier to control communication and access to the device. Implement
+authentication, authorization, encryption, or any other security features
+needed in the application level.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e254198_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e257906_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345485_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345918_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345997_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e346170_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351566_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351999_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352078_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e352251_href.png has changed
--- a/Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-3-1-1-8-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-3-1-1-8-1-4-1" xml:lang="en"><title>Address
-string tokenizer overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-3380A468-D7C1-478B-81F7-C7B25CA2AF87-GENID-1-8-1-3-1-1-8-1-4-1-2-1"><title>Purpose</title> <p>The
-Address String Tokenizer offers methods for parsing phone numbers, email addresses,
-URL and URI addresses from given text. It provides an interface for applications
-that, for example, want to create/use their own GUI for displaying found items. </p> </section>
-<section id="GUID-0A0412D0-A818-42C3-8288-D857FF3FB9AC-GENID-1-8-1-3-1-1-8-1-4-1-2-2"><title>Architectural
-Relationships</title> <p>All functionality is implemented in the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> class.
-The interface can be accessed through the <codeph>tuladdressstringtokenizer.h </codeph> file.
-The binaries are linked to the <codeph>etul.lib</codeph> (Text Utilities -
-part of Egul component) library. </p> <fig id="GUID-831D95A9-EDD6-5351-83CD-F9246B88E821-GENID-1-8-1-3-1-1-8-1-4-1-2-2-3">
-<title>              Subsystem dependencies            </title>
-<image href="GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e18317_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-B712EDB6-0AAD-4E3F-9694-5EABECD3AA1D-GENID-1-8-1-3-1-1-8-1-4-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>In
-order to use the Address String Tokenizer, the user has to create an instance
-of <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> by
-using the factory method <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer::NewL()</apiname></xref>. </p> <p>For
-example: </p> <codeblock id="GUID-59957EA3-0C1D-5A35-87A0-8DCB0D01D840-GENID-1-8-1-3-1-1-8-1-4-1-2-3-5" xml:space="preserve">CTulAddressStringTokenizer* addressStringTokenizer = CTulAddressStringTokenizer::NewL(text, searchCase);</codeblock> <p>The method takes two parameters of type <codeph>TDesC&amp;</codeph> and <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>TTokenizerSearchCase</apiname></xref> which is
-defined in <codeph>tuladdressstringtokenizer.h</codeph>. </p> <p>The first
-parameter defines the text to be searched from. </p> <p>The second parameter
-tells what exactly is being looked for. It is an enum which describes the
-type of text being searched for. The types available are phone number, email
-address, fixed start URL or generic URI. </p> <p>The passed text is parsed
-in construction, and found items can be fetched using the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> method. <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> returns a constant
-array containing all the found items. </p> <p>The interface also offers helper
-functions for handling the item array by itself. </p> <p>For more information
-on individual methods, please see the reference API for <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> <p><b>Example</b> </p> <p>This sample code explains a few simple use cases that
-search for items from a text string: </p> <codeblock id="GUID-2B5E70DF-6757-5803-B7BA-052EA4932EEF-GENID-1-8-1-3-1-1-8-1-4-1-2-3-14" xml:space="preserve">// Some text
-TBufC&lt;256&gt; strSomeText(_L("Mail to me@someplace.com or call 040 1234567. 
-                        You can also tune in to audio feed at rtsp://someplace.com/somefeed.ra."));
-
-// SFoundItem instance
-CTulAddressStringTokenizer::SFoundItem item;
-
-// Create an instance of CTulAddressStringTokenizer and search for URLs.
-CTulAddressStringTokenizer* singleSearch = CTulAddressStringTokenizer::NewL
-                                           (strSomeText, CTulAddressStringTokenizer::EFindItemSearchScheme);
-
-// Get count of found items
-TInt count(singleSearch-&gt;ItemCount());
-
-// Get currently selected item (rtsp://someplace.com/somefeed.ra) to the result 
-// variable
-singleSearch-&gt;Item(item);
-TPtrC16 result(strSomeText.Mid(item.iStartPos, item.iLength));
-
-// Deallocate memory
-delete singleSearch;
-
-// Look for all possible things (cases work as binary mask)
-CTulAddressStringTokenizer* multiSearch = CTulAddressStringTokenizer::NewL
-                                          (strSomeText, (CTulAddressStringTokenizer:: TTokenizerSearchCase)
-           (CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin |           
-            CTulAddressStringTokenizer::EFindItemSearchURLBin | 
-            CTulAddressStringTokenizer::EFindItemSearchMailAddressBin | 
-            CTulAddressStringTokenizer::EFindItemSearchScheme));
-
-// Debug print all items and their type
-count = multiSearch-&gt;ItemCount();
-multiSearch-&gt;Item(item);
-
-for(TInt i=0; i&lt;count; i++)
-    {
-    result.Set(strSomeText.Mid(item.iStartPos, item.iLength));
-    RDebug::Print(_L("Found type %d item:"), item.iItemType);
-    RDebug::Print(_L("%S"), &amp;result)
-    multiSearch-&gt;NextItem(item);
-    }
-
-// Deallocate memory
-delete multiSearch;
-</codeblock> <p><b>Sequence Diagram</b> </p> <fig id="GUID-8BF3A74A-9E14-57C4-A0E5-105A0230BFA1-GENID-1-8-1-3-1-1-8-1-4-1-2-3-16">
-<title>                 Sequence of events for CTulAddressStringTokenizer</title>
-<image href="GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e18408_href.png" placement="inline"/>
-</fig> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-6-1-1-4-1-7-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978-GENID-1-8-1-6-1-1-4-1-7-1-4-1" xml:lang="en"><title>Address
-string tokenizer overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-3380A468-D7C1-478B-81F7-C7B25CA2AF87-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-1"><title>Purpose</title> <p>The
-Address String Tokenizer offers methods for parsing phone numbers, email addresses,
-URL and URI addresses from given text. It provides an interface for applications
-that, for example, want to create/use their own GUI for displaying found items. </p> </section>
-<section id="GUID-0A0412D0-A818-42C3-8288-D857FF3FB9AC-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-2"><title>Architectural
-Relationships</title> <p>All functionality is implemented in the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> class.
-The interface can be accessed through the <codeph>tuladdressstringtokenizer.h </codeph> file.
-The binaries are linked to the <codeph>etul.lib</codeph> (Text Utilities -
-part of Egul component) library. </p> <fig id="GUID-831D95A9-EDD6-5351-83CD-F9246B88E821-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-2-3">
-<title>              Subsystem dependencies            </title>
-<image href="GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e54219_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-B712EDB6-0AAD-4E3F-9694-5EABECD3AA1D-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>In
-order to use the Address String Tokenizer, the user has to create an instance
-of <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> by
-using the factory method <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer::NewL()</apiname></xref>. </p> <p>For
-example: </p> <codeblock id="GUID-59957EA3-0C1D-5A35-87A0-8DCB0D01D840-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-3-5" xml:space="preserve">CTulAddressStringTokenizer* addressStringTokenizer = CTulAddressStringTokenizer::NewL(text, searchCase);</codeblock> <p>The method takes two parameters of type <codeph>TDesC&amp;</codeph> and <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>TTokenizerSearchCase</apiname></xref> which is
-defined in <codeph>tuladdressstringtokenizer.h</codeph>. </p> <p>The first
-parameter defines the text to be searched from. </p> <p>The second parameter
-tells what exactly is being looked for. It is an enum which describes the
-type of text being searched for. The types available are phone number, email
-address, fixed start URL or generic URI. </p> <p>The passed text is parsed
-in construction, and found items can be fetched using the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> method. <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> returns a constant
-array containing all the found items. </p> <p>The interface also offers helper
-functions for handling the item array by itself. </p> <p>For more information
-on individual methods, please see the reference API for <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> <p><b>Example</b> </p> <p>This sample code explains a few simple use cases that
-search for items from a text string: </p> <codeblock id="GUID-2B5E70DF-6757-5803-B7BA-052EA4932EEF-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-3-14" xml:space="preserve">// Some text
-TBufC&lt;256&gt; strSomeText(_L("Mail to me@someplace.com or call 040 1234567. 
-                        You can also tune in to audio feed at rtsp://someplace.com/somefeed.ra."));
-
-// SFoundItem instance
-CTulAddressStringTokenizer::SFoundItem item;
-
-// Create an instance of CTulAddressStringTokenizer and search for URLs.
-CTulAddressStringTokenizer* singleSearch = CTulAddressStringTokenizer::NewL
-                                           (strSomeText, CTulAddressStringTokenizer::EFindItemSearchScheme);
-
-// Get count of found items
-TInt count(singleSearch-&gt;ItemCount());
-
-// Get currently selected item (rtsp://someplace.com/somefeed.ra) to the result 
-// variable
-singleSearch-&gt;Item(item);
-TPtrC16 result(strSomeText.Mid(item.iStartPos, item.iLength));
-
-// Deallocate memory
-delete singleSearch;
-
-// Look for all possible things (cases work as binary mask)
-CTulAddressStringTokenizer* multiSearch = CTulAddressStringTokenizer::NewL
-                                          (strSomeText, (CTulAddressStringTokenizer:: TTokenizerSearchCase)
-           (CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin |           
-            CTulAddressStringTokenizer::EFindItemSearchURLBin | 
-            CTulAddressStringTokenizer::EFindItemSearchMailAddressBin | 
-            CTulAddressStringTokenizer::EFindItemSearchScheme));
-
-// Debug print all items and their type
-count = multiSearch-&gt;ItemCount();
-multiSearch-&gt;Item(item);
-
-for(TInt i=0; i&lt;count; i++)
-    {
-    result.Set(strSomeText.Mid(item.iStartPos, item.iLength));
-    RDebug::Print(_L("Found type %d item:"), item.iItemType);
-    RDebug::Print(_L("%S"), &amp;result)
-    multiSearch-&gt;NextItem(item);
-    }
-
-// Deallocate memory
-delete multiSearch;
-</codeblock> <p><b>Sequence Diagram</b> </p> <fig id="GUID-8BF3A74A-9E14-57C4-A0E5-105A0230BFA1-GENID-1-8-1-6-1-1-4-1-7-1-4-1-2-3-16">
-<title>                 Sequence of events for CTulAddressStringTokenizer</title>
-<image href="GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e54310_href.png" placement="inline"/>
-</fig> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CE7C84A5-D2E6-5151-BBC7-6AF9C8A0D978" xml:lang="en"><title>Address
+string tokenizer overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-3380A468-D7C1-478B-81F7-C7B25CA2AF87"><title>Purpose</title> <p>The
+Address String Tokenizer offers methods for parsing phone numbers, E-mail
+addresses, URL and URI addresses from given text. It provides an interface
+for applications that, for example, want to create/use their own GUI for displaying
+found items. </p> </section>
+<section id="GUID-0A0412D0-A818-42C3-8288-D857FF3FB9AC"><title>Architectural
+Relationships</title> <p>All functionality is implemented in the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> class.
+The interface can be accessed through the <codeph>tuladdressstringtokenizer.h </codeph> file.
+The binaries are linked to the <codeph>etul.lib</codeph> (Text Utilities -
+part of Egul component) library. </p> <fig id="GUID-831D95A9-EDD6-5351-83CD-F9246B88E821">
+<title>              Subsystem dependencies            </title>
+<image href="GUID-2BF99BD2-5DB5-5DF6-8F82-22DD2E818584_d0e48659_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-B712EDB6-0AAD-4E3F-9694-5EABECD3AA1D"><title>Description</title> <p><b>Usage</b> </p> <p>In
+order to use the Address String Tokenizer, the user has to create an instance
+of <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref> by
+using the factory method <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer::NewL()</apiname></xref>. </p> <p>For
+example: </p> <codeblock id="GUID-59957EA3-0C1D-5A35-87A0-8DCB0D01D840" xml:space="preserve">CTulAddressStringTokenizer* addressStringTokenizer = CTulAddressStringTokenizer::NewL(text, searchCase);</codeblock> <p>The method takes two parameters of type <codeph>TDesC&amp;</codeph> and <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>TTokenizerSearchCase</apiname></xref> which is
+defined in <codeph>tuladdressstringtokenizer.h</codeph>. </p> <p>The first
+parameter defines the text to be searched from. </p> <p>The second parameter
+tells what exactly is being looked for. It is an enum which describes the
+type of text being searched for. The types available are phone number, email
+address, fixed start URL or generic URI. </p> <p>The passed text is parsed
+in construction, and found items can be fetched using the <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> method. <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>ItemArray()</apiname></xref> returns a constant
+array containing all the found items. </p> <p>The interface also offers helper
+functions for handling the item array by itself. </p> <p>For more information
+on individual methods, please see the reference API for <xref href="GUID-D35F2DD5-09A3-366C-8384-46FEB6B7DB18.dita"><apiname>CTulAddressStringTokenizer</apiname></xref>. </p> <p><b>Example</b> </p> <p>This sample code explains a few simple use cases that
+search for items from a text string: </p> <codeblock id="GUID-2B5E70DF-6757-5803-B7BA-052EA4932EEF" xml:space="preserve">// Some text
+TBufC&lt;256&gt; strSomeText(_L("Mail to me@someplace.com or call 040 1234567. 
+                        You can also tune in to audio feed at rtsp://someplace.com/somefeed.ra."));
+
+// SFoundItem instance
+CTulAddressStringTokenizer::SFoundItem item;
+
+// Create an instance of CTulAddressStringTokenizer and search for URLs.
+CTulAddressStringTokenizer* singleSearch = CTulAddressStringTokenizer::NewL
+                                           (strSomeText, CTulAddressStringTokenizer::EFindItemSearchScheme);
+
+// Get count of found items
+TInt count(singleSearch-&gt;ItemCount());
+
+// Get currently selected item (rtsp://someplace.com/somefeed.ra) to the result 
+// variable
+singleSearch-&gt;Item(item);
+TPtrC16 result(strSomeText.Mid(item.iStartPos, item.iLength));
+
+// Deallocate memory
+delete singleSearch;
+
+// Look for all possible things (cases work as binary mask)
+CTulAddressStringTokenizer* multiSearch = CTulAddressStringTokenizer::NewL
+                                          (strSomeText, (CTulAddressStringTokenizer::TTokenizerSearchCase)
+                                          (CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin |           
+                                          CTulAddressStringTokenizer::EFindItemSearchURLBin | 
+                                          CTulAddressStringTokenizer::EFindItemSearchMailAddressBin | 
+                                          CTulAddressStringTokenizer::EFindItemSearchScheme));
+
+// Debug print all items and their type
+count = multiSearch-&gt;ItemCount();
+multiSearch-&gt;Item(item);
+
+for(TInt i=0; i&lt;count; i++)
+    {
+    result.Set(strSomeText.Mid(item.iStartPos, item.iLength));
+    RDebug::Print(_L("Found type %d item:"), item.iItemType);
+    RDebug::Print(_L("%S"), &amp;result)
+    multiSearch-&gt;NextItem(item);
+    }
+
+// Deallocate memory
+delete multiSearch;
+</codeblock> <p><b>Sequence Diagram</b> </p> <fig id="GUID-1FD4B286-A5EE-43B7-BE5C-A22AB47A8E00">
+<title>                 Sequence of events for <codeph>CTulAddressStringTokenizer</codeph></title>
+<image href="GUID-C2D6BAB9-89BA-4E8D-82B4-2FAE04B9086C_d0e48752_href.png" placement="inline"/>
+</fig> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CE7CF024-4898-551A-841B-38EC57A3EC82.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CE7CF024-4898-551A-841B-38EC57A3EC82.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,86 +1,86 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CE7CF024-4898-551A-841B-38EC57A3EC82" xml:lang="en"><title>Ordinal
-Position</title><shortdesc>All windows in the Window Server have an <keyword>ordinal     
-   position</keyword> which describes their z-order—that is, their ordering
-from nearest the viewer to furthest away from the viewer. Each window’s ordinal
-position is relative to its parent window and is unique among its siblings. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>:
-Application developers. </p>
-<p>Ordinal positions are positive integers starting at 0, with 0 being the
-front-most position. A window with an ordinal position of 0 is displayed in
-the <keyword>foreground</keyword>, i.e., in front of all its sibling windows.
-The ordinal position of other windows increases by one for each position behind
-this window. </p>
-<p>When a window is created, it is automatically given an ordinal position
-of 0 within its parent window. Then, when another child of the same parent
-is created, the first window’s ordinal position changes to 1, and the new
-window’s position is 0. These ordinal positions can be changed after the windows
-have been created, using functions provided by the <codeph>RWindowTreeNode</codeph> class. </p>
-<p>When a window's ordinal position is changed, its order in the sibling list
-is also changed, so that the window with ordinal position 0 is always first
-in the sibling list, the window with ordinal position 1 is next in the list,
-and so on. Changing the ordinal position of windows therefore affects the
-result of the <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-12634A4D-36F1-35AD-8D61-EEA63872CF8B"><apiname>RWindowTreeNode::Parent()</apiname></xref>, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-1FFFFED4-5062-3C9D-B9A6-A89B107080FF"><apiname>RWindowTreeNode::Child()</apiname></xref>, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-F11A3640-844E-30D3-AAB2-D154E4EACBB4"><apiname>RWindowTreeNode::NextSibling()</apiname></xref> and <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-1B6C1D5F-8F27-3472-87EE-CBB90D1A9280"><apiname>RWindowTreeNode::PrevSibling()</apiname></xref> functions. </p>
-<p>To give an illustration of how ordinal positions work, the diagram below
-shows three windows, A, B and C, all belonging to the same window group. Their
-ordinal positions are as follows: A=0; B=1; C=2. </p>
-<fig id="GUID-FB15A25F-FB7A-5031-9D17-51CD7C8ACA1D">
-<image href="GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e194205_href.png" placement="inline"/>
-</fig>
-<p>This would be the default ordering of the windows if they were created
-in the order CBA. Many sibling windows within an application may not overlap
-in practice: nevertheless, each window has a unique ordinal position, even
-though this will not be evident in the way they are displayed. </p>
-<p>If a window’s ordinal position is changed, its position on the screen will
-change. All its child windows also move with it, although their ordinal positions,
-which are relative to the parent, don’t change. </p>
-<section id="GUID-4B42408E-06DC-4A98-9AC8-7EEAF533D614"><title>Moving a window to the front</title> <p>A window is moved
-to the front (i.e., to the <keyword>foreground</keyword>) by giving it an
-ordinal position of 0. The diagram below shows windows A, B and C, but window
-B has now been given an ordinal position of 0. A’s position has been incremented
-to 1, and C’s remains as 2. </p> <fig id="GUID-0B1ED6C1-4F47-5527-A9F9-5B4AD03528D5">
-<image href="GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e194226_href.png" placement="inline"/>
-</fig> <p>The diagram below shows the same three windows as above, except
-that window B now contains a child window, D. Window D’s ordinal position
-is 0, relative to its parent window, B. </p> <fig id="GUID-313C9AEE-6ADB-5842-9EB6-0D563D7FC582">
-<image href="GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e194234_href.png" placement="inline"/>
-</fig> <p>If window A is now moved to the front, window B moves behind it,
-as shown in the diagram below. Window D’s ordinal position is still 0, but
-because its position is relative to its parent window, it moves with window
-B to behind window A. </p> <fig id="GUID-B6882EE3-C071-522B-9D7E-86D84F8D64DC">
-<image href="GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e194242_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-EDA73282-0AB9-49EE-BAAB-C6D0DB267F56"><title>Moving a window to the back</title> <p>If a window is given
-an ordinal position greater than all its siblings, it is moved to the back
-of them. For convenience, the functions for setting ordinal position allow
-a negative ordinal position to be specified, which sends the window to the
-back and sets its ordinal position to be the highest among its siblings. </p> </section>
-<section id="GUID-5288AAAA-9513-4981-98E1-8B5F4EDAC35C"><title>Ordinal position of window groups</title> <p>The ordinal position
-of a window group has special significance because there is normally one window
-group per application. As a result, the z-order of applications on the screen
-is typically determined by the ordinal positions of their window groups. For
-example, giving a window group an ordinal position of 0 typically brings an
-application to the front of the screen. Note, however, that window groups
-also have a priority, which overrides ordinal position. Ordinal position only
-applies among window groups of the same priority. </p> <p>The ordinal position
-of window groups is typically controlled by a shell or similar application.
-The <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref> class provides functions for
-such applications to set window group ordinal positions. </p> </section>
-<section id="GUID-D5CA8ED0-CD91-4FB9-B56F-613EE825435C"><title>Keyboard focus and window group ordinal position</title> <p>When
-a window group is given an ordinal position of 0, it is automatically given
-keyboard focus, unless it has disabled keyboard focus by calling <codeph>EnableReceiptOfFocus(EFalse)</codeph>,
-or another window group has a higher priority. </p> </section>
-</conbody><related-links>
-<link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CE7CF024-4898-551A-841B-38EC57A3EC82" xml:lang="en"><title>Ordinal
+Position</title><shortdesc>All windows in the Window Server have an <keyword>ordinal     
+   position</keyword> which describes their z-order—that is, their ordering
+from nearest the viewer to furthest away from the viewer. Each window’s ordinal
+position is relative to its parent window and is unique among its siblings. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>:
+Application developers. </p>
+<p>Ordinal positions are positive integers starting at 0, with 0 being the
+front-most position. A window with an ordinal position of 0 is displayed in
+the <keyword>foreground</keyword>, i.e., in front of all its sibling windows.
+The ordinal position of other windows increases by one for each position behind
+this window. </p>
+<p>When a window is created, it is automatically given an ordinal position
+of 0 within its parent window. Then, when another child of the same parent
+is created, the first window’s ordinal position changes to 1, and the new
+window’s position is 0. These ordinal positions can be changed after the windows
+have been created, using functions provided by the <codeph>RWindowTreeNode</codeph> class. </p>
+<p>When a window's ordinal position is changed, its order in the sibling list
+is also changed, so that the window with ordinal position 0 is always first
+in the sibling list, the window with ordinal position 1 is next in the list,
+and so on. Changing the ordinal position of windows therefore affects the
+result of the <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-12634A4D-36F1-35AD-8D61-EEA63872CF8B"><apiname>RWindowTreeNode::Parent()</apiname></xref>, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-1FFFFED4-5062-3C9D-B9A6-A89B107080FF"><apiname>RWindowTreeNode::Child()</apiname></xref>, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-F11A3640-844E-30D3-AAB2-D154E4EACBB4"><apiname>RWindowTreeNode::NextSibling()</apiname></xref> and <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-1B6C1D5F-8F27-3472-87EE-CBB90D1A9280"><apiname>RWindowTreeNode::PrevSibling()</apiname></xref> functions. </p>
+<p>To give an illustration of how ordinal positions work, the diagram below
+shows three windows, A, B and C, all belonging to the same window group. Their
+ordinal positions are as follows: A=0; B=1; C=2. </p>
+<fig id="GUID-FB15A25F-FB7A-5031-9D17-51CD7C8ACA1D">
+<image href="GUID-694C7416-927E-58F7-B010-CA55D2FFA88F_d0e189143_href.png" placement="inline"/>
+</fig>
+<p>This would be the default ordering of the windows if they were created
+in the order CBA. Many sibling windows within an application may not overlap
+in practice: nevertheless, each window has a unique ordinal position, even
+though this will not be evident in the way they are displayed. </p>
+<p>If a window’s ordinal position is changed, its position on the screen will
+change. All its child windows also move with it, although their ordinal positions,
+which are relative to the parent, don’t change. </p>
+<section id="GUID-4B42408E-06DC-4A98-9AC8-7EEAF533D614"><title>Moving a window to the front</title> <p>A window is moved
+to the front (i.e., to the <keyword>foreground</keyword>) by giving it an
+ordinal position of 0. The diagram below shows windows A, B and C, but window
+B has now been given an ordinal position of 0. A’s position has been incremented
+to 1, and C’s remains as 2. </p> <fig id="GUID-0B1ED6C1-4F47-5527-A9F9-5B4AD03528D5">
+<image href="GUID-74B329CD-4640-5636-9D8D-20F0D7E09EB4_d0e189164_href.png" placement="inline"/>
+</fig> <p>The diagram below shows the same three windows as above, except
+that window B now contains a child window, D. Window D’s ordinal position
+is 0, relative to its parent window, B. </p> <fig id="GUID-313C9AEE-6ADB-5842-9EB6-0D563D7FC582">
+<image href="GUID-7AE4D17F-728A-5B7E-A3F9-A903E64731B1_d0e189172_href.png" placement="inline"/>
+</fig> <p>If window A is now moved to the front, window B moves behind it,
+as shown in the diagram below. Window D’s ordinal position is still 0, but
+because its position is relative to its parent window, it moves with window
+B to behind window A. </p> <fig id="GUID-B6882EE3-C071-522B-9D7E-86D84F8D64DC">
+<image href="GUID-40A3938E-366E-5318-A7FA-146F9E5E23B1_d0e189180_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-EDA73282-0AB9-49EE-BAAB-C6D0DB267F56"><title>Moving a window to the back</title> <p>If a window is given
+an ordinal position greater than all its siblings, it is moved to the back
+of them. For convenience, the functions for setting ordinal position allow
+a negative ordinal position to be specified, which sends the window to the
+back and sets its ordinal position to be the highest among its siblings. </p> </section>
+<section id="GUID-5288AAAA-9513-4981-98E1-8B5F4EDAC35C"><title>Ordinal position of window groups</title> <p>The ordinal position
+of a window group has special significance because there is normally one window
+group per application. As a result, the z-order of applications on the screen
+is typically determined by the ordinal positions of their window groups. For
+example, giving a window group an ordinal position of 0 typically brings an
+application to the front of the screen. Note, however, that window groups
+also have a priority, which overrides ordinal position. Ordinal position only
+applies among window groups of the same priority. </p> <p>The ordinal position
+of window groups is typically controlled by a shell or similar application.
+The <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref> class provides functions for
+such applications to set window group ordinal positions. </p> </section>
+<section id="GUID-D5CA8ED0-CD91-4FB9-B56F-613EE825435C"><title>Keyboard focus and window group ordinal position</title> <p>When
+a window group is given an ordinal position of 0, it is automatically given
+keyboard focus, unless it has disabled keyboard focus by calling <codeph>EnableReceiptOfFocus(EFalse)</codeph>,
+or another window group has a higher priority. </p> </section>
+</conbody><related-links>
+<link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CE94AD48-B79B-403A-98E9-F69494D052F9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CE94AD48-B79B-403A-98E9-F69494D052F9" xml:lang="en"><title>HDMI Overview</title><shortdesc>HDMI (High Definition Multimedia Interface) is a compact
+audio or video connector interface to transmit uncompressed digital
+data.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-3F6C7FA8-D06B-485B-938F-BD07DE4E3A6F">       <title>Introduction</title><p>HDMI is a digital standard, which provides
+an alternative to various analog standards like radio frequency (RF)
+coaxial cable, composite video, component video, S-video (super video),
+D-terminal (D-tanshi terminal) and VGA (video graphics array).</p><p> HDMI connects, using a single cable, a digital audio or video
+source like a mobile phone, a set-top box, a blue-ray disc player,
+or a PC to a compatible digital output device, for instance a computer
+monitor, or a digital television.</p><p> In general HDMI supports
+standard, enhanced, and high-definition (HD) video, and up to 6 channels
+of digital audio, which provides the highest-quality home theater
+experience. In Symbian^3 the HDMI features are based on HDMI 1.3a
+software specifications for the device creator to adapt it to the
+platform.</p></section>
+<section id="GUID-1741EA7B-EDD3-4049-993B-9EC8AF7F0188"><title>Purpose</title><p>HDMI provides communication between a mobile device and the HD
+device. In Symbian^3 HDMI supports some functionality such as setting
+and getting screen configuration information, which enables plug and
+play without any need for configuration by the end user.</p><p>In
+Symbian^3 HDMI supports the following features:</p><ol>
+<li id="GUID-16BBE566-2EB0-4277-9A96-C887F2827E9E"><p>Maximum progressive
+scan HD resolution of 1280 x 720 pixels. Progressive scan is a method
+to display moving images.</p></li>
+<li id="GUID-2D12B86B-42EB-47EE-850B-78A172EB23F4"><p>Multi-channel
+digital uncompressed audio data.</p></li>
+<li id="GUID-49A104E7-7AF3-4707-A809-AD19C650DF83"><p>EDID (Extended
+Display Identification Data). This is a data structure provided by
+a computer display to describe its capabilities to a graphics card.
+EDID is defined by a standard published by the Video Electronics Standards
+Association (VESA). </p></li>
+<li id="GUID-60BEB25D-2226-4123-9BB9-ADFB4DAD6064"><p> HDCP (High-bandwidth
+Digital Content Protection). This prevents copying audio and video
+content. HDCP is invisible to the end-user unless a problem occurs.
+If HDCP reports a problem an image related to DRM (Digital rights
+management) failure and an error message are displayed, instead of
+the video content and audio is muted.</p></li>
+</ol> In Symbian^3 the HDMI uses two modes such as non-HD (High Definition)
+compliant view and HD compliant view. In Symbian^4 the
+dual display mode will be implemented. <p>The HDMI modes are listed
+below:</p><ul>
+<li><p><b>Clone mode or Non-HD compliant view</b> </p><p>In this mode,
+the mobile device and the HD display show the same information.</p></li>
+<li><p><b>Native mode or HD compliant view </b></p><p>This mode takes
+full advantage of HDMI, and reproduces mobile device content in the
+maximum HD resolution available with HDMI. For example if a mobile
+device displays a video clip, including its title and a progress bar,
+the HD display might just show the video clip in full screen, (excluding
+the others content).</p></li>
+<li><p><b>Dual display mode </b></p><p>In this mode, the mobile devices's
+display and the HD display are treated as separate displays by an
+application like the photo gallery. The application controls what
+is displayed in each. </p></li>
+</ul><draft-comment time="2010-05-10T16:34" translate="no"><p>The diagram
+below shows the subsystems that need to be modified in order to adapt
+HDMI in the Symbian platform by the device creator.</p><p/><fig id="GUID-856268EB-CE51-4F2C-8DD6-9B20A71DFDA3">
+<title>HDMI architectural relationship with the subsystem</title>
+<image href="GUID-DD0F8AFB-F96C-4EAC-96DE-7D5C0597B574_d0e315975_href.png" placement="inline"/>
+</fig><ol>
+<li id="GUID-46021ED3-A8CE-4A9B-899A-D41F58B6A276"><p><b>Application
+layer</b></p><p>To use HDMI in an application no changes are required
+in this layer. For example to play a video use the <xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref> API from the <xref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita">Video Client Library</xref> in the Multimedia framework (MMF).</p></li>
+<li id="GUID-C99447D2-AB1B-4CF0-B8D4-02007F707AA6"><p><b>Middleware
+layer</b></p><p>To support high-definition resolutions, WMA (Windows
+Media Audio) hardware device and multi-channel WMA to play video the <xref href="https://symbian.helixcommunity.org/" scope="external">Helix</xref> as the MMF controller plug-in is used.</p></li>
+<li id="GUID-F5DC0665-A31D-41DB-9A03-02A1E8BC3DEB"><p><b>OS Extension
+layer</b></p><p> In order to play audio with support for HDCP use
+the <xref href="GUID-C05374FC-CF33-58C2-9442-B9EE78C81A4F.dita">DevSound
+library</xref> extension and the <xref href="GUID-5F38F219-B22D-42E6-973A-B4DBBC5984F8.dita">DRM</xref> APIs .
+The <xref href="GUID-667C0481-2DEF-4618-9AA5-8DF528082061.dita">Accessory
+Server</xref> API provides the policy for audio routing.</p></li>
+<li id="GUID-A68E27EB-905C-41FF-934E-4955D0A1BD79"><p><b>OS layer
+(Symbian)</b></p><p> To play video in HDMI mode use the <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window Server</xref> to check the render stage policy of the graphics surface in the
+video.</p></li>
+<li id="GUID-5681B9F3-1B4A-4D81-9EA4-CC488012C219"><p><b>Adaptation
+layer</b></p><p>For the audio adaptation use the <xref href="GUID-A278E79E-471A-3986-A1D6-CEB7DE5EA750.dita"><apiname>CHdmiAudioLink</apiname></xref> API to play multi-channel audio. For the video adaptation use the <xref href="GUID-519B9FE6-375D-3D85-9966-E61260B31868.dita"><apiname>CIveVideoDecodeVC1HwDevice</apiname></xref> API to play a video in fullscreen
+and high resolution. The display driver is used to support display
+modes like clone, dual and native modes. The system adaptation detects
+HDMI protocols, and transfers the protocols to the HDMI driver.</p></li>
+<li id="GUID-48929F16-C972-4206-BA43-83D7224D3644"><p><b>HDMI driver</b></p><p>This driver transfers all data and initialization of the HDMI
+chip from the adaptation layer to the hardware layer.</p></li>
+<li id="GUID-9B3C4B87-D939-43DC-B5F9-7CEC3C3E997F"><p><b>Hardware
+layer</b></p><p>The HDMI chip is in the hardware layer. The chip is
+used to receive and transmit the high performance video and audio
+between the mobile device and the HDMI display.</p></li>
+</ol></draft-comment></section>
+<section id="GUID-47967980-44F0-4F4B-BC5D-C25E634A435F"><title>Description</title><p>HDMI is used to implement the following use-cases: <ul>
+<li><p>Play video in full screen and high resolution.</p></li>
+<li><p>Play audio with DRM supported.</p></li>
+<li><p>View images including zooming and rotating in full screen.</p></li>
+<li><p>Play audio with HDCP support to restricted audio output.</p></li>
+</ul></p><p>For example in order to play a video the following diagram
+demonstrates the HDMI feature implementation:</p><fig id="GUID-55FBC50B-5C93-49C2-8515-1A1EC2528286">
+<title>HDMI video play use-case</title>
+<image href="GUID-84897583-A06F-42EE-917D-DF908B095AFF_d0e316089_href.png" placement="inline"/>
+</fig><p>In order to play video the <xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref> API is used as the <xref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita">Video Client library</xref>, which plays sampled video data on graphics surfaces. In the MMF
+layer, the <xref href="GUID-9DEDFB0F-C963-3FB7-9237-DDDB276C8841.dita"><apiname>RMMFController</apiname></xref> and the <xref href="GUID-CAFDAD45-0D6F-3D96-A859-36101A9B30DB.dita"><apiname>CHXNGAUtility</apiname></xref> APIs are used as the MMF controller framework, which initializes
+the <xref href="GUID-FB2E1BFB-A06C-58D8-B175-1E7B10BCCB72.dita">DevVideo</xref> API. The DevVideo uses the <xref href="GUID-6273220C-24F9-3ECB-9748-E74D595D448A.dita"><apiname>CMMFDevVideoPlay</apiname></xref> API
+to play the video. The <xref href="GUID-519B9FE6-375D-3D85-9966-E61260B31868.dita"><apiname>CIveVideoDecodeVC1HwDevice</apiname></xref> API provides video adaptation to the hardware layer. In the video
+adaptation, a decision making engine chooses the graphics surface
+on which to display the video on the HD display. The Window Server
+API is used for <xref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita" scope="local">dynamic resolution switching</xref>. The HDMI driver
+transfers all video data to the HDMI chip, which is in the hardware
+adaptation layer (the physical layer). The hardware layer transmits
+video data to the HD display through a single cable.</p></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,423 +1,423 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F" xml:lang="en"><title>SIP
-Example: Usage of the SIP Stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The SIP sample application is a game that can be played between two users
-that use two different machines. The following figure illustrates the sample
-application. </p>
-<fig id="GUID-A0E243BE-E697-5856-8C08-6039AAE6A05A">
-<image href="GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e344859_href.png" placement="inline"/>
-</fig>
-<p>All users who want to play the game must register to the server with their
-identities. This informs the server that the user is active and prepared to
-participate in the game. If User 1 wants to play the game with User 2 then
-it must send a request to User 2 through the server. When User 2 accepts the
-request and acknowledges it then the two users can start playing. A user can
-disconnect from playing the game by sending a message. If a user wants to
-be deactivated then it can deregister from the server. </p>
-<p>This application is developed using the key features of the Symbian SIP
-stack. It shows how to create profiles and do SIP registration using the profiles,
-how to set up a SIP session and send an instant message using the SIP. For
-example you can set up the SIP server using Brekeke and you can download the
-same from <xref href="http://www.brekeke.com/download/download_sip_2_0.php" scope="external">http://www.brekeke.com/download/download_sip_2_0.php</xref>. </p>
-<section><title>Features of the game</title> <p>The main features of the game
-are: </p> <ul>
-<li id="GUID-8767E5EC-04F6-5D19-B77A-94C6E7BF10B7"><p> <b>Register or deregister </b> -
-A user registers to the server with a unique identity before playing the game.
-This identity is the SIP URI of the user. The user registers by sending a
-SIP REGISTER message to the SIP server and is active. A user deactivates by
-deregistering to the server. This activity is done by sending the SIP REGISTER
-message with the expires header set to 0. For more information on registering
-or deregistering to the server see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-2C4A1BCE-CD8E-5BDC-84D1-2C5DDBF8A142">Registering
-or deregistering an user</xref>. </p> </li>
-<li id="GUID-1547D0C9-4B7C-568F-9C5D-A2BE20F9B362"><p> <b>Invite another user</b> -
-A user invites another user to play the game by entering the SIP URI of the
-other user in the INVITE message. For more information on inviting another
-user to play the game see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-7D5CB45C-614B-58DF-8EE4-1AB2DB02CE1C">Inviting
-a participant for session setup</xref>. </p> </li>
-<li id="GUID-94802B8B-C10B-5ADB-A5E0-0FC436790427"><p> <b>Send a message to
-another user</b> - A user can send an instant message to another user. For
-more information on how to send an instant message to another user see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-0E7C6F87-C90B-5888-B1F7-33ED0D7393F5">Sending
-an instant message</xref>. </p> </li>
-<li id="GUID-55484DA7-37DC-566B-95F8-066E19AA5790"><p> <b>Disconnect from
-playing the game</b> - A user can disconnect from playing the game by sending
-a SIP BYE message to the other user. </p> </li>
-</ul> </section>
-<section id="GUID-3A9BE5C5-A9A2-54A8-B525-6750E562EF97"><title>How to play
-the game</title> <p>The following snapshot shows the different tabs available
-in the game. </p> <fig id="GUID-15C8B95B-4B8C-5701-80B1-C0D7B39AF422">
-<image href="GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e344932_href.png" placement="inline"/>
-</fig> <p>The following list describes the different tabs available in the
-game: </p> <ul>
-<li id="GUID-CDB3E759-F01D-5D02-B8AA-7E901C1984BE"><p> <b>Invite for game</b> -
-This tab allows you to invite a user to play the game. When you invoke this
-tab, a UI screen appears which asks the user to provide the SIP URI of the
-second user with whom the user wants to play the game. The SIP URI of the
-second user is then sent to the SIP stack which passes on the invite request
-to the second user. The second user can accept or reject the invite. If the
-second user accepts the invite then it acknowledges by sending a message that
-it is prepared to start playing the game. If the second user rejects the invite
-then it cannot play the game. </p> </li>
-<li id="GUID-4A4F6318-1FDD-540A-BF87-72B19BE56A97"><p> <b>Enable profile</b> -
-This tab allows you to enable a profile. When you invoke this tab, a UI screen
-appears where the user enters the values. A profile is created using these
-values and the user registers with the SIP server. </p> </li>
-<li id="GUID-A9F95A0B-4E44-52C6-AD0B-E2BDFA4C8CCE"><p> <b>Send instant msg</b> -
-This tab allows you to send a message to another user. When you invoke this
-tab, a message with the address of the recipient is sent to the SIP stack.
-The SIP stack sends this message to the recipient address. </p> </li>
-<li id="GUID-4334DC63-8AAB-581C-A779-FBBBD44C4227"><p> <b>End game</b> - This
-tab allows you to disconnect from playing the game. When you invoke this tab,
-a BYE message is sent to the other user and the game is terminated. </p> </li>
-</ul> </section>
-<section id="GUID-2C4A1BCE-CD8E-5BDC-84D1-2C5DDBF8A142"><title>Registering
-or deregistering an user</title> <p>An application can register to the SIP
-Server using: </p> <ul>
-<li id="GUID-620D3765-E3A1-55B9-900F-562486A01D6B"><p>the <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class
-and its methods </p> </li>
-<li id="GUID-DDC990A1-BFDC-5CA4-A392-EAADFB8C3921"><p>the SIP Profile Agent </p> </li>
-</ul> <p>This sample application uses the SIP Profile Agent method to do SIP
-registration. To use this method you need a SIP profile setting, and you must
-create a SIP profile before you start using the application. <b>Note</b>:
-A list of SIP profile settings can be found in the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> class. </p> <p>The
-SIP profile agent method provides APIs for: </p> <ul>
-<li id="GUID-68A120EA-45B6-5909-8DD1-B125A1249C13"><p>Registering and Deregistering </p> </li>
-<li id="GUID-50AA5E67-EA40-5844-873B-77DAAE94480F"><p>Listening to registration
-events </p> </li>
-<li id="GUID-300245B5-2B62-5382-B492-8BE8759E48E3"><p>Creating, modifying,
-and deleting the SIP profile settings that the profile agent plug-in implementations
-use for SIP registration. </p> </li>
-</ul> <p>The following code from <filepath>SIPExProfileQueryDlg.cpp</filepath> shows
-how the sample application stores the settings entered by users on the SIP
-profile store. </p> <codeblock id="GUID-8D76FE52-F0E5-5F57-AD38-0AE8694D3AA4" xml:space="preserve">//Create a new profile
-    CSIPManagedProfile* profile = iMProfileRegistry-&gt;CreateL(iProfileData.iServiceProfile);
-   
-//Copy attributes entered by the user to the new profile        
-    iNewProfile = profile;
-    profile = CopyDataToProfileL();
-
-//Set the profile to default and save some settings
-    TInt err= profile-&gt;SetParameter(KSIPDefaultProfile,ETrue);
-   
-//Save the profile to persistent store                
-    iMProfileRegistry-&gt;SaveL( *profile );
-</codeblock> <p>The applications can start SIP registration or deregistration
-using the <codeph>Enable</codeph> or <codeph>Disable</codeph> methods from
-the SIP profile API. </p> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
-how to register using the profile agent. </p> <codeblock id="GUID-F4398335-6AC0-5E10-B04D-6846A3CDE1D5" xml:space="preserve">//Check for the existing profile
-    if ( iProfile )
-        {
-        delete iProfile;
-        iProfile = NULL;
-        }
-    TBool registered( EFalse );
-    
-//Leaves with KErrNotFound if default profile is not found
-    iProfile = iProfileRegistry-&gt;DefaultProfileL();
- else
-        {
-        const TDesC8* aor = NULL;
-  iProfile-&gt;GetParameter( KSIPUserAor, aor );      
-  iProfileRegistry-&gt;EnableL( *iProfile, *this );
-
-    //Check if the profile was immediately set to the registered state
-    iProfile-&gt;GetParameter( KSIPProfileRegistered, registered );
-        }
-</codeblock> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
-how to deregister using the profile agent. </p> <codeblock id="GUID-B13F8581-D36B-5AE1-A821-84FD3B010575" xml:space="preserve">if ( iProfile )
-        {
-        iProfileRegistry-&gt;Disable( *iProfile );
-        delete iProfile;
-        iProfile = NULL;        
-        }</codeblock> <p>The SIP profile API also provides a notification
-method that is used by an application to monitor profile related events. </p> <p>The
-following code from <filepath>SIPExProfileQueryDlg.cpp</filepath> shows the
-profile related events that the sample applications monitors. </p> <codeblock id="GUID-34230A3A-EA20-56B9-AFC0-F9AC92BE2F3E" xml:space="preserve">void ProfileRegistryEventOccurred( 
-    TUint32 aProfileId, 
-    TEvent aEvent )
-    {
-    switch (aEvent)
-        {
-        case MSIPProfileRegistryObserver::EProfileRegistered:
-            {
-            HandleProfileRegistered( aProfileId );
-            break;
-            }
-        case MSIPProfileRegistryObserver::EProfileDeregistered:
-            {
-            HandleProfileDeregistered( aProfileId );
-            break;
-            }
-        case MSIPProfileRegistryObserver::EProfileDestroyed:
-            {
-            HandleProfileDestroyed( aProfileId );
-            break;
-            }
-        default:
-            {
-            // MSIPProfileRegistryObserver::EProfileCreated and MSIPProfileRegistryObserver::EProfileUpdated are ignored
-            break;
-            }
-        }
-    }
-void ProfileRegistryErrorOccurred( 
-    TUint32 /* aSIPProfileId */,
-    TInt aError )
-    {
-    iObserver-&gt;ProfileError( aError );
-    }
-</codeblock> <p><b>Classes containing APIs in scope</b> </p> <p> <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>, <xref href="GUID-CDE67614-1A7A-3082-8D8D-71645668A0DE.dita"><apiname>CSIPManagedProfile</apiname></xref>, <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref>, <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita"><apiname>CSIPManagedProfileRegistry</apiname></xref>, <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. </p> </section>
-<section id="GUID-7D5CB45C-614B-58DF-8EE4-1AB2DB02CE1C"><title>Inviting a
-participant for session setup</title> <p>The sample application uses the SIP
-INVITE method to setup a session between two users. In this case, the application
-does not accept any SDP parameters from the user and instead sends fixed SDP
-values. </p> <p>The following code from <filepath>SIPExSIPIdleState.cpp</filepath> shows
-how the application sends an INVITE message. </p> <codeblock id="GUID-B8E774F0-D6C0-5631-83E3-5D87DF03D044" xml:space="preserve">void SendInviteL( 
-    CSIPExSIPEngine&amp; aEngine,
-    const TDesC8&amp; aSipUri )
-    {
-    //Retrieve the active profile and connection
-    CSIPProfile&amp; prof = aEngine.Profile();
-    CSIPConnection&amp; conn = aEngine.ConnectionL();
-
- //Create CUri8 from the passed descriptor. This value is given by the user
-    CUri8* uri8 = aEngine.ConvertToUri8LC( aSipUri );
-    
-    //Get dialog association, save for future use
-    //The ownership of uri8 is transferred
-    CSIPInviteDialogAssoc* dialogAssoc =
-        CSIPInviteDialogAssoc::NewL( conn, uri8, prof );
-        aEngine.SetDialogAssoc( *dialogAssoc ); //Ownership is transferred!!
-
-    //Create the necessary message elements
-    CSIPMessageElements* msgElements = aEngine.CreateMessageElementsLC();
-
-    //Send the INVITE in the dialog
-    //The ownership of msgElements is transferred
-    INVITE SENT OUT
-    CSIPClientTransaction* tx = dialogAssoc-&gt;SendInviteL( msgElements );
- }
-</codeblock> </section>
-<section id="GUID-BADF4C98-FB28-50F1-AC00-F8764CBF2B12"><title>Handling an
-incoming invite</title> <p>An application that wants to receive an incoming
-invite outside the dialog must implement the Client Resolver API. The <xref href="GUID-14EC2BB8-AE94-3052-8A0B-039BA6E9C610.dita"><apiname>CSipResolvedClient</apiname></xref> (<filepath>SipResolvedClient.h</filepath>) interface is implemented by clients to enable a client resolution mechanism
-when the SIP requests are received outside the SIP dialog. The application
-must state the capabilities, that is the supported content types and media
-formats. This is done using the SIP headers and SDP m-lines either in the
-code of the plug-in, that is in <codeph>const KCapabilities</codeph> or in
-the opaque_data field of the resource file. </p> <p>The capabilities can be
-provided to the plug-ins in two ways: </p> <ul>
-<li id="GUID-04021FC9-D7F1-592E-A286-3E3C905880EB"><p>The data is provided
-in the ECOM resource file. </p> </li>
-<li id="GUID-ABBC862D-2930-5268-9FE9-2D8C7CA6C656"><p>In the interface implementation
-from where it is used to determine the target client. </p> </li>
-</ul> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
-how the data is provided in the ECOM resource file. </p> <codeblock id="GUID-18FE5466-1BA2-57FD-BD3D-5818AFC35767" xml:space="preserve">#include &lt;RegistryInfo.rh&gt;
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = 0xA00001EC;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO 
-            {
-            // UID of interface that is implemented
-            interface_uid = 0x102010DD;
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0xA00001EC;
-                    version_no = 1;
-                    // SIPEx UID: Must match to the one SIPEx passes to CSIP::NewL.    
-                    default_data = "A00001EB";
-                    }
-                };
-            }
-        };
-    }</codeblock> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
-how the capabilities are defined in the plug-in. </p> <codeblock id="GUID-5D448F3C-CA4E-5EB2-9416-9383DC08A182" xml:space="preserve">//Code for defining capabilities in plugin
-//File : SIPExResolverPlugin.cpp
-
-_LIT8(KCapabilities,
-"&lt;SIP_CLIENT ALLOW_STARTING=\"YES\"&gt;\
-&lt;SIP_HEADERS&gt;\
-&lt;ACCEPT value=\"application/sdp\"/&gt;\
-&lt;ACCEPT value=\"SIPEx/InstantMessage\"/&gt;\
-&lt;/SIP_HEADERS&gt;\
-&lt;SDP_LINES&gt;\
-&lt;LINE name=\"m\" value=\"application 0 TCP SIPEx\"/&gt;\
-&lt;/SDP_LINES&gt;\
-&lt;/SIP_CLIENT&gt;");
-
-
-</codeblock> <p>When there is an incoming <codeph>Invite Request</codeph> with
-SDP parameters the SIP stack passes the request to the Client Resolver to
-get the resolved client for that request. The Client Resolver gets the capabilities
-for all the applications that implement the Client Resolver API. </p> <p>The
-following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows how
-to get the capabilities for an application. </p> <codeblock id="GUID-819B95EE-5D9E-5BF6-BE49-1E00C3144CB8" xml:space="preserve">//Code for obtaining capabilities for an application
-//File : SIPExResolverPlugin.cpp
-
-const TDesC8&amp; CSIPExResolverPlugin::Capabilities()
-    {
-    return KCapabilities;
-    }</codeblock> <p>When the target client is identified, the Client Resolver
-gets the ChannelID from the plug-in implementation and requests the resolved
-client to connect to the SIP implementation on that UID. <b>Note</b>: The
-ChannelID is same as Application UID3 </p> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
-how to get ChannelID for an application. </p> <codeblock id="GUID-3516BAD9-E116-59AA-9424-AEA7FB0DDADA" xml:space="preserve">//Code for obtaining ChannelID for an application
-//File : SIPExResolverPlugin.cpp
-  
-  TUid CSIPExResolverPlugin::ChannelL( RStringF /*aMethod*/,
-    const TDesC8&amp; /*aRequestUri*/,
-    const RPointerArray&lt;CSIPHeaderBase&gt;&amp; /*aHeaders*/,
-    const TDesC8&amp; /*aContent*/,
-    const CSIPContentTypeHeader* /*aContentType*/)
-    {
-    return iApplicationUID;
-    }
-
-//Code for asking an application to connect on UID 
-//File : SIPExResolverPlugin.cpp
-
- void CSIPExResolverPlugin::ConnectL( TUid aUid )
-    {
-    //Launch application is based on UID passed from the SIP stack
-    
-    TApaAppInfo appInfo;
-    User::LeaveIfError( iApaSession.GetAppInfo( appInfo, aUid ) );
-    CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
-#ifdef EKA2
-    cmdLine-&gt;SetExecutableNameL( appInfo.iFullName );
-#else
-    cmdLine-&gt;SetLibraryNameL( appInfo.iFullName );
-#endif
-    User::LeaveIfError( iApaSession.StartApp( *cmdLine ) );
-    CleanupStack::PopAndDestroy( cmdLine ); 
-    }</codeblock> <p>When the resolved client connects, the INVITE is forwarded
-to the client and it starts ringing (180 Ringing) and sends the provisional
-response to the calling party. This part is implemented in <xref href="GUID-D891F857-2AE0-3112-8A9D-8648F98F96AC.dita"><apiname>InviteReceivedL</apiname></xref> as
-shown in the following code. </p> <p>The following code from <filepath>SIPExSIPIdleState.cpp</filepath> shows
-how the application gets the INVITE and how the provisional response is sent. </p> <codeblock id="GUID-7775ADCE-4351-5D50-BD91-85C0FEBF47E5" xml:space="preserve">/Code for CSIPExSIPIdleState::InviteReceivedL()... 
-//File : SIPExSIPIdleState.cpp    
-
-void CSIPExSIPIdleState::InviteReceivedL( 
-    CSIPExSIPEngine&amp; aEngine,
-    CSIPServerTransaction* aTransaction )
-    {
-    _LIT8( KLogEntry, "180 Ringing sent" );
-    ..
-    ..
-    aEngine.Observer()-&gt;WriteLog( KLogEntry );
-    ..
-   }</codeblock> <p>From this stage, the INVITE is sent to <codeph>InviteReceived</codeph> of <codeph>CSIPExEngine</codeph> in <filepath>SIPExGameEngine.cpp</filepath> from where it asks from the game observer if the user has accepted the invitation
-or not. The game starts or does not start depends on action taken. </p> <p>The
-following code from <filepath>SIPExStateRegistered.cpp</filepath> shows how
-the acceptance is asked from the game observer. </p> <codeblock id="GUID-224959DA-DF2D-5969-85E1-2B71DC32C176" xml:space="preserve">//The acceptance is asked from the user and if accepted the game is reset, start
-//listening socket and signal the SIP engine to send Accepted to the remote peer.
-
-//File : SIPExStateRegistered.cpp
-
-void TSIPExStateRegistered::InviteReceived( 
-    CSIPExEngine* aContext, 
-    const TDesC8&amp; aFrom, 
-    const TUint32 aIapId )
-    {
-    iEnded = EFalse;
-    
-    TBool retVal( EFalse );
-    TRAPD( ignore, retVal = aContext-&gt;AcceptInvitationL( aFrom ) );
-    if ( iEnded )
-        {
-        return;
-        }
-    if( retVal )
-        {
-        StatusInfo( aContext, KGameStarting() );
-        ChangeState( aContext, aContext-&gt;iStateAcceptingSIP );
-        aContext-&gt;ResetGame();
-        aContext-&gt;SetPeer( CSIPExEngine::EServer );
-        Info( aContext, KListening() );
-        TInetAddr addr;
-        TRAP( ignore, addr = 
-                        aContext-&gt;SocketEngineL()-&gt;StartListeningL( aIapId ) );
-        Info( aContext, KAccepting() );
-        TRAP( ignore, aContext-&gt;SIPEngine()-&gt;AcceptInviteL( addr ) );
-        Info( aContext, KWaitingRemoteConn() );
-        }
-    else 
-        {
-        TRAP( ignore, aContext-&gt;SIPEngine()-&gt;DeclineInviteL() );
-        Info( aContext, KInviteDeclined() );
-        }
-    }
-</codeblock> <p>When the game observer accepts the invitation the following
-code from <filepath>SIPExGameEngine.cpp</filepath> is run. </p> <codeblock id="GUID-91EF56AD-266F-5EE8-B8C0-37C1A6529C48" xml:space="preserve">//File : SIPExGameEngine.cpp
-
-TBool CSIPExEngine::AcceptInvitationL( const TDesC8&amp; aFrom )
-    {
-    HBufC* from = HBufC::NewLC( aFrom.Length() );
-    from-&gt;Des().Copy( aFrom );
-    TBool retVal = iGameObserver.AcceptInvitationL( *from );
-    CleanupStack::PopAndDestroy( from );
-    return retVal;
-    }</codeblock> </section>
-<section id="GUID-0E7C6F87-C90B-5888-B1F7-33ED0D7393F5"><title>Sending an
-instant message</title> <p>This sample application allows a user to send an
-Instant Message (IM) to another user. The user requires SIP URI of the other
-user and the message content that the user must enter. The application then
-creates a MESSAGE (request message) with these parameters and uses <xref href="GUID-D8168DEA-50CC-342B-AEF1-4703B50794A6.dita"><apiname>SendRequestL()</apiname></xref> to
-send it. </p> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
-how to send an instant message. </p> <codeblock id="GUID-641C6039-11B4-5389-8876-D817D5541CCE" xml:space="preserve">//Create and send an instant message to a recipient defined with the parameters.
-//This is implemented with the MESSAGE method and is sent outside of a dialog.
-
-CreateIML(const TDesC8&amp; aMessage,
-    const TDesC8&amp; aSipUri )
-    {
-    _LIT8( KMediaType, "SIPEx" );    // Part of content type
-    _LIT8( KMediaSubType, "InstantMessage" );    // Part of content type
-
-//Create the necessary elements of the IM
-    
-CSIPRequestElements* reqElem = CreateReqElementsLC( aSipUri );
-    CSIPToHeader* toHeader = CreateToHeaderLC( aSipUri );
-    reqElem-&gt;SetToHeaderL( toHeader );
-    
-//Create the fromHeader value using the information from the profile
-
- const TDesC8* aor = NULL;
- iProfile-&gt;GetParameter( KSIPUserAor, aor ); 
- CSIPAddress* addr = CSIPAddress::DecodeL( *aor );
- CSIPFromHeader* fromHeader = CSIPFromHeader::NewL( addr );
- reqElem-&gt;SetFromHeaderL( fromHeader );
- reqElem-&gt;SetMethodL( SIPStrings::StringF( SipStrConsts::EMessage ) );
-
-//Get reference to the message elements from the request elements, create and insert content type header (ownership of the content type object is transferred)
-
-    CSIPMessageElements&amp; msgElem = reqElem-&gt;MessageElements();
-    CSIPContentTypeHeader* ct =    CSIPContentTypeHeader::NewLC( KMediaType, KMediaSubType );
-    msgElem.SetContentL( aMessage.AllocL(), ct );
-    
-//Get the current connection
-
-CSIPConnection&amp; conn = ConnectionL();
-
-//Send the request using the connection (ownership of the request elements object is transferred)
-
-    CSIPClientTransaction* ctx = conn.SendRequestL( reqElem );
-    delete ctx;
-    }
-
-</codeblock> <p><b>Classes containing APIs in scope</b> </p> <p> <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref>, <xref href="GUID-7B5D0432-5C2C-3EFB-B9FA-8B4A0AA68FC0.dita"><apiname>CSIPToHeader</apiname></xref>, <xref href="GUID-AFEC85BE-5971-3043-B9A9-24048346AADE.dita"><apiname>CSIPFromHeader</apiname></xref>, <xref href="GUID-F8BF1190-F5D4-31EF-B060-A1430AA07DAC.dita"><apiname>CSIPAddress</apiname></xref>, <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref>, <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F" xml:lang="en"><title>SIP
+Example: Usage of the SIP Stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The SIP sample application is a game that can be played between two users
+that use two different machines. The following figure illustrates the sample
+application. </p>
+<fig id="GUID-A0E243BE-E697-5856-8C08-6039AAE6A05A">
+<image href="GUID-155C5B39-CB9B-5405-B9BB-EB34CA7C43BC_d0e338662_href.png" placement="inline"/>
+</fig>
+<p>All users who want to play the game must register to the server with their
+identities. This informs the server that the user is active and prepared to
+participate in the game. If User 1 wants to play the game with User 2 then
+it must send a request to User 2 through the server. When User 2 accepts the
+request and acknowledges it then the two users can start playing. A user can
+disconnect from playing the game by sending a message. If a user wants to
+be deactivated then it can deregister from the server. </p>
+<p>This application is developed using the key features of the Symbian SIP
+stack. It shows how to create profiles and do SIP registration using the profiles,
+how to set up a SIP session and send an instant message using the SIP. For
+example you can set up the SIP server using Brekeke and you can download the
+same from <xref href="http://www.brekeke.com/download/download_sip_2_0.php" scope="external">http://www.brekeke.com/download/download_sip_2_0.php</xref>. </p>
+<section><title>Features of the game</title> <p>The main features of the game
+are: </p> <ul>
+<li id="GUID-8767E5EC-04F6-5D19-B77A-94C6E7BF10B7"><p> <b>Register or deregister </b> -
+A user registers to the server with a unique identity before playing the game.
+This identity is the SIP URI of the user. The user registers by sending a
+SIP REGISTER message to the SIP server and is active. A user deactivates by
+deregistering to the server. This activity is done by sending the SIP REGISTER
+message with the expires header set to 0. For more information on registering
+or deregistering to the server see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-2C4A1BCE-CD8E-5BDC-84D1-2C5DDBF8A142">Registering
+or deregistering an user</xref>. </p> </li>
+<li id="GUID-1547D0C9-4B7C-568F-9C5D-A2BE20F9B362"><p> <b>Invite another user</b> -
+A user invites another user to play the game by entering the SIP URI of the
+other user in the INVITE message. For more information on inviting another
+user to play the game see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-7D5CB45C-614B-58DF-8EE4-1AB2DB02CE1C">Inviting
+a participant for session setup</xref>. </p> </li>
+<li id="GUID-94802B8B-C10B-5ADB-A5E0-0FC436790427"><p> <b>Send a message to
+another user</b> - A user can send an instant message to another user. For
+more information on how to send an instant message to another user see, <xref href="GUID-CF17532E-5E90-5124-8F05-AA72B848F17F.dita#GUID-CF17532E-5E90-5124-8F05-AA72B848F17F/GUID-0E7C6F87-C90B-5888-B1F7-33ED0D7393F5">Sending
+an instant message</xref>. </p> </li>
+<li id="GUID-55484DA7-37DC-566B-95F8-066E19AA5790"><p> <b>Disconnect from
+playing the game</b> - A user can disconnect from playing the game by sending
+a SIP BYE message to the other user. </p> </li>
+</ul> </section>
+<section id="GUID-3A9BE5C5-A9A2-54A8-B525-6750E562EF97"><title>How to play
+the game</title> <p>The following snapshot shows the different tabs available
+in the game. </p> <fig id="GUID-15C8B95B-4B8C-5701-80B1-C0D7B39AF422">
+<image href="GUID-0E21EAE4-BF71-55FD-9561-EA5530696627_d0e338735_href.png" placement="inline"/>
+</fig> <p>The following list describes the different tabs available in the
+game: </p> <ul>
+<li id="GUID-CDB3E759-F01D-5D02-B8AA-7E901C1984BE"><p> <b>Invite for game</b> -
+This tab allows you to invite a user to play the game. When you invoke this
+tab, a UI screen appears which asks the user to provide the SIP URI of the
+second user with whom the user wants to play the game. The SIP URI of the
+second user is then sent to the SIP stack which passes on the invite request
+to the second user. The second user can accept or reject the invite. If the
+second user accepts the invite then it acknowledges by sending a message that
+it is prepared to start playing the game. If the second user rejects the invite
+then it cannot play the game. </p> </li>
+<li id="GUID-4A4F6318-1FDD-540A-BF87-72B19BE56A97"><p> <b>Enable profile</b> -
+This tab allows you to enable a profile. When you invoke this tab, a UI screen
+appears where the user enters the values. A profile is created using these
+values and the user registers with the SIP server. </p> </li>
+<li id="GUID-A9F95A0B-4E44-52C6-AD0B-E2BDFA4C8CCE"><p> <b>Send instant msg</b> -
+This tab allows you to send a message to another user. When you invoke this
+tab, a message with the address of the recipient is sent to the SIP stack.
+The SIP stack sends this message to the recipient address. </p> </li>
+<li id="GUID-4334DC63-8AAB-581C-A779-FBBBD44C4227"><p> <b>End game</b> - This
+tab allows you to disconnect from playing the game. When you invoke this tab,
+a BYE message is sent to the other user and the game is terminated. </p> </li>
+</ul> </section>
+<section id="GUID-2C4A1BCE-CD8E-5BDC-84D1-2C5DDBF8A142"><title>Registering
+or deregistering an user</title> <p>An application can register to the SIP
+Server using: </p> <ul>
+<li id="GUID-620D3765-E3A1-55B9-900F-562486A01D6B"><p>the <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class
+and its methods </p> </li>
+<li id="GUID-DDC990A1-BFDC-5CA4-A392-EAADFB8C3921"><p>the SIP Profile Agent </p> </li>
+</ul> <p>This sample application uses the SIP Profile Agent method to do SIP
+registration. To use this method you need a SIP profile setting, and you must
+create a SIP profile before you start using the application. <b>Note</b>:
+A list of SIP profile settings can be found in the <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref> class. </p> <p>The
+SIP profile agent method provides APIs for: </p> <ul>
+<li id="GUID-68A120EA-45B6-5909-8DD1-B125A1249C13"><p>Registering and Deregistering </p> </li>
+<li id="GUID-50AA5E67-EA40-5844-873B-77DAAE94480F"><p>Listening to registration
+events </p> </li>
+<li id="GUID-300245B5-2B62-5382-B492-8BE8759E48E3"><p>Creating, modifying,
+and deleting the SIP profile settings that the profile agent plug-in implementations
+use for SIP registration. </p> </li>
+</ul> <p>The following code from <filepath>SIPExProfileQueryDlg.cpp</filepath> shows
+how the sample application stores the settings entered by users on the SIP
+profile store. </p> <codeblock id="GUID-8D76FE52-F0E5-5F57-AD38-0AE8694D3AA4" xml:space="preserve">//Create a new profile
+    CSIPManagedProfile* profile = iMProfileRegistry-&gt;CreateL(iProfileData.iServiceProfile);
+   
+//Copy attributes entered by the user to the new profile        
+    iNewProfile = profile;
+    profile = CopyDataToProfileL();
+
+//Set the profile to default and save some settings
+    TInt err= profile-&gt;SetParameter(KSIPDefaultProfile,ETrue);
+   
+//Save the profile to persistent store                
+    iMProfileRegistry-&gt;SaveL( *profile );
+</codeblock> <p>The applications can start SIP registration or deregistration
+using the <codeph>Enable</codeph> or <codeph>Disable</codeph> methods from
+the SIP profile API. </p> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
+how to register using the profile agent. </p> <codeblock id="GUID-F4398335-6AC0-5E10-B04D-6846A3CDE1D5" xml:space="preserve">//Check for the existing profile
+    if ( iProfile )
+        {
+        delete iProfile;
+        iProfile = NULL;
+        }
+    TBool registered( EFalse );
+    
+//Leaves with KErrNotFound if default profile is not found
+    iProfile = iProfileRegistry-&gt;DefaultProfileL();
+ else
+        {
+        const TDesC8* aor = NULL;
+  iProfile-&gt;GetParameter( KSIPUserAor, aor );      
+  iProfileRegistry-&gt;EnableL( *iProfile, *this );
+
+    //Check if the profile was immediately set to the registered state
+    iProfile-&gt;GetParameter( KSIPProfileRegistered, registered );
+        }
+</codeblock> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
+how to deregister using the profile agent. </p> <codeblock id="GUID-B13F8581-D36B-5AE1-A821-84FD3B010575" xml:space="preserve">if ( iProfile )
+        {
+        iProfileRegistry-&gt;Disable( *iProfile );
+        delete iProfile;
+        iProfile = NULL;        
+        }</codeblock> <p>The SIP profile API also provides a notification
+method that is used by an application to monitor profile related events. </p> <p>The
+following code from <filepath>SIPExProfileQueryDlg.cpp</filepath> shows the
+profile related events that the sample applications monitors. </p> <codeblock id="GUID-34230A3A-EA20-56B9-AFC0-F9AC92BE2F3E" xml:space="preserve">void ProfileRegistryEventOccurred( 
+    TUint32 aProfileId, 
+    TEvent aEvent )
+    {
+    switch (aEvent)
+        {
+        case MSIPProfileRegistryObserver::EProfileRegistered:
+            {
+            HandleProfileRegistered( aProfileId );
+            break;
+            }
+        case MSIPProfileRegistryObserver::EProfileDeregistered:
+            {
+            HandleProfileDeregistered( aProfileId );
+            break;
+            }
+        case MSIPProfileRegistryObserver::EProfileDestroyed:
+            {
+            HandleProfileDestroyed( aProfileId );
+            break;
+            }
+        default:
+            {
+            // MSIPProfileRegistryObserver::EProfileCreated and MSIPProfileRegistryObserver::EProfileUpdated are ignored
+            break;
+            }
+        }
+    }
+void ProfileRegistryErrorOccurred( 
+    TUint32 /* aSIPProfileId */,
+    TInt aError )
+    {
+    iObserver-&gt;ProfileError( aError );
+    }
+</codeblock> <p><b>Classes containing APIs in scope</b> </p> <p> <xref href="GUID-68AE6070-0410-3671-9E68-A7785B8271CD.dita"><apiname>CSIPProfile</apiname></xref>, <xref href="GUID-CDE67614-1A7A-3082-8D8D-71645668A0DE.dita"><apiname>CSIPManagedProfile</apiname></xref>, <xref href="GUID-E8D080AD-4494-3880-B5CE-3487CA7D76E9.dita"><apiname>CSIPProfileRegistry</apiname></xref>, <xref href="GUID-5266AB0D-705C-3011-A92B-DA82BC212999.dita"><apiname>CSIPManagedProfileRegistry</apiname></xref>, <xref href="GUID-91663686-42B7-3C88-B773-3C5343CDCFCE.dita"><apiname>MSIPProfileRegistryObserver</apiname></xref>. </p> </section>
+<section id="GUID-7D5CB45C-614B-58DF-8EE4-1AB2DB02CE1C"><title>Inviting a
+participant for session setup</title> <p>The sample application uses the SIP
+INVITE method to setup a session between two users. In this case, the application
+does not accept any SDP parameters from the user and instead sends fixed SDP
+values. </p> <p>The following code from <filepath>SIPExSIPIdleState.cpp</filepath> shows
+how the application sends an INVITE message. </p> <codeblock id="GUID-B8E774F0-D6C0-5631-83E3-5D87DF03D044" xml:space="preserve">void SendInviteL( 
+    CSIPExSIPEngine&amp; aEngine,
+    const TDesC8&amp; aSipUri )
+    {
+    //Retrieve the active profile and connection
+    CSIPProfile&amp; prof = aEngine.Profile();
+    CSIPConnection&amp; conn = aEngine.ConnectionL();
+
+ //Create CUri8 from the passed descriptor. This value is given by the user
+    CUri8* uri8 = aEngine.ConvertToUri8LC( aSipUri );
+    
+    //Get dialog association, save for future use
+    //The ownership of uri8 is transferred
+    CSIPInviteDialogAssoc* dialogAssoc =
+        CSIPInviteDialogAssoc::NewL( conn, uri8, prof );
+        aEngine.SetDialogAssoc( *dialogAssoc ); //Ownership is transferred!!
+
+    //Create the necessary message elements
+    CSIPMessageElements* msgElements = aEngine.CreateMessageElementsLC();
+
+    //Send the INVITE in the dialog
+    //The ownership of msgElements is transferred
+    INVITE SENT OUT
+    CSIPClientTransaction* tx = dialogAssoc-&gt;SendInviteL( msgElements );
+ }
+</codeblock> </section>
+<section id="GUID-BADF4C98-FB28-50F1-AC00-F8764CBF2B12"><title>Handling an
+incoming invite</title> <p>An application that wants to receive an incoming
+invite outside the dialog must implement the Client Resolver API. The <xref href="GUID-14EC2BB8-AE94-3052-8A0B-039BA6E9C610.dita"><apiname>CSipResolvedClient</apiname></xref> (<filepath>SipResolvedClient.h</filepath>) interface is implemented by clients to enable a client resolution mechanism
+when the SIP requests are received outside the SIP dialog. The application
+must state the capabilities, that is the supported content types and media
+formats. This is done using the SIP headers and SDP m-lines either in the
+code of the plug-in, that is in <codeph>const KCapabilities</codeph> or in
+the opaque_data field of the resource file. </p> <p>The capabilities can be
+provided to the plug-ins in two ways: </p> <ul>
+<li id="GUID-04021FC9-D7F1-592E-A286-3E3C905880EB"><p>The data is provided
+in the ECOM resource file. </p> </li>
+<li id="GUID-ABBC862D-2930-5268-9FE9-2D8C7CA6C656"><p>In the interface implementation
+from where it is used to determine the target client. </p> </li>
+</ul> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
+how the data is provided in the ECOM resource file. </p> <codeblock id="GUID-18FE5466-1BA2-57FD-BD3D-5818AFC35767" xml:space="preserve">#include &lt;RegistryInfo.rh&gt;
+RESOURCE REGISTRY_INFO theInfo
+    {
+    // UID for the DLL
+    dll_uid = 0xA00001EC;
+    // Declare array of interface info
+    interfaces = 
+        {
+        INTERFACE_INFO 
+            {
+            // UID of interface that is implemented
+            interface_uid = 0x102010DD;
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0xA00001EC;
+                    version_no = 1;
+                    // SIPEx UID: Must match to the one SIPEx passes to CSIP::NewL.    
+                    default_data = "A00001EB";
+                    }
+                };
+            }
+        };
+    }</codeblock> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
+how the capabilities are defined in the plug-in. </p> <codeblock id="GUID-5D448F3C-CA4E-5EB2-9416-9383DC08A182" xml:space="preserve">//Code for defining capabilities in plugin
+//File : SIPExResolverPlugin.cpp
+
+_LIT8(KCapabilities,
+"&lt;SIP_CLIENT ALLOW_STARTING=\"YES\"&gt;\
+&lt;SIP_HEADERS&gt;\
+&lt;ACCEPT value=\"application/sdp\"/&gt;\
+&lt;ACCEPT value=\"SIPEx/InstantMessage\"/&gt;\
+&lt;/SIP_HEADERS&gt;\
+&lt;SDP_LINES&gt;\
+&lt;LINE name=\"m\" value=\"application 0 TCP SIPEx\"/&gt;\
+&lt;/SDP_LINES&gt;\
+&lt;/SIP_CLIENT&gt;");
+
+
+</codeblock> <p>When there is an incoming <codeph>Invite Request</codeph> with
+SDP parameters the SIP stack passes the request to the Client Resolver to
+get the resolved client for that request. The Client Resolver gets the capabilities
+for all the applications that implement the Client Resolver API. </p> <p>The
+following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows how
+to get the capabilities for an application. </p> <codeblock id="GUID-819B95EE-5D9E-5BF6-BE49-1E00C3144CB8" xml:space="preserve">//Code for obtaining capabilities for an application
+//File : SIPExResolverPlugin.cpp
+
+const TDesC8&amp; CSIPExResolverPlugin::Capabilities()
+    {
+    return KCapabilities;
+    }</codeblock> <p>When the target client is identified, the Client Resolver
+gets the ChannelID from the plug-in implementation and requests the resolved
+client to connect to the SIP implementation on that UID. <b>Note</b>: The
+ChannelID is same as Application UID3 </p> <p>The following code from <filepath>SIPExResolverPlugin.cpp</filepath> shows
+how to get ChannelID for an application. </p> <codeblock id="GUID-3516BAD9-E116-59AA-9424-AEA7FB0DDADA" xml:space="preserve">//Code for obtaining ChannelID for an application
+//File : SIPExResolverPlugin.cpp
+  
+  TUid CSIPExResolverPlugin::ChannelL( RStringF /*aMethod*/,
+    const TDesC8&amp; /*aRequestUri*/,
+    const RPointerArray&lt;CSIPHeaderBase&gt;&amp; /*aHeaders*/,
+    const TDesC8&amp; /*aContent*/,
+    const CSIPContentTypeHeader* /*aContentType*/)
+    {
+    return iApplicationUID;
+    }
+
+//Code for asking an application to connect on UID 
+//File : SIPExResolverPlugin.cpp
+
+ void CSIPExResolverPlugin::ConnectL( TUid aUid )
+    {
+    //Launch application is based on UID passed from the SIP stack
+    
+    TApaAppInfo appInfo;
+    User::LeaveIfError( iApaSession.GetAppInfo( appInfo, aUid ) );
+    CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+#ifdef EKA2
+    cmdLine-&gt;SetExecutableNameL( appInfo.iFullName );
+#else
+    cmdLine-&gt;SetLibraryNameL( appInfo.iFullName );
+#endif
+    User::LeaveIfError( iApaSession.StartApp( *cmdLine ) );
+    CleanupStack::PopAndDestroy( cmdLine ); 
+    }</codeblock> <p>When the resolved client connects, the INVITE is forwarded
+to the client and it starts ringing (180 Ringing) and sends the provisional
+response to the calling party. This part is implemented in <xref href="GUID-D891F857-2AE0-3112-8A9D-8648F98F96AC.dita"><apiname>InviteReceivedL</apiname></xref> as
+shown in the following code. </p> <p>The following code from <filepath>SIPExSIPIdleState.cpp</filepath> shows
+how the application gets the INVITE and how the provisional response is sent. </p> <codeblock id="GUID-7775ADCE-4351-5D50-BD91-85C0FEBF47E5" xml:space="preserve">/Code for CSIPExSIPIdleState::InviteReceivedL()... 
+//File : SIPExSIPIdleState.cpp    
+
+void CSIPExSIPIdleState::InviteReceivedL( 
+    CSIPExSIPEngine&amp; aEngine,
+    CSIPServerTransaction* aTransaction )
+    {
+    _LIT8( KLogEntry, "180 Ringing sent" );
+    ..
+    ..
+    aEngine.Observer()-&gt;WriteLog( KLogEntry );
+    ..
+   }</codeblock> <p>From this stage, the INVITE is sent to <codeph>InviteReceived</codeph> of <codeph>CSIPExEngine</codeph> in <filepath>SIPExGameEngine.cpp</filepath> from where it asks from the game observer if the user has accepted the invitation
+or not. The game starts or does not start depends on action taken. </p> <p>The
+following code from <filepath>SIPExStateRegistered.cpp</filepath> shows how
+the acceptance is asked from the game observer. </p> <codeblock id="GUID-224959DA-DF2D-5969-85E1-2B71DC32C176" xml:space="preserve">//The acceptance is asked from the user and if accepted the game is reset, start
+//listening socket and signal the SIP engine to send Accepted to the remote peer.
+
+//File : SIPExStateRegistered.cpp
+
+void TSIPExStateRegistered::InviteReceived( 
+    CSIPExEngine* aContext, 
+    const TDesC8&amp; aFrom, 
+    const TUint32 aIapId )
+    {
+    iEnded = EFalse;
+    
+    TBool retVal( EFalse );
+    TRAPD( ignore, retVal = aContext-&gt;AcceptInvitationL( aFrom ) );
+    if ( iEnded )
+        {
+        return;
+        }
+    if( retVal )
+        {
+        StatusInfo( aContext, KGameStarting() );
+        ChangeState( aContext, aContext-&gt;iStateAcceptingSIP );
+        aContext-&gt;ResetGame();
+        aContext-&gt;SetPeer( CSIPExEngine::EServer );
+        Info( aContext, KListening() );
+        TInetAddr addr;
+        TRAP( ignore, addr = 
+                        aContext-&gt;SocketEngineL()-&gt;StartListeningL( aIapId ) );
+        Info( aContext, KAccepting() );
+        TRAP( ignore, aContext-&gt;SIPEngine()-&gt;AcceptInviteL( addr ) );
+        Info( aContext, KWaitingRemoteConn() );
+        }
+    else 
+        {
+        TRAP( ignore, aContext-&gt;SIPEngine()-&gt;DeclineInviteL() );
+        Info( aContext, KInviteDeclined() );
+        }
+    }
+</codeblock> <p>When the game observer accepts the invitation the following
+code from <filepath>SIPExGameEngine.cpp</filepath> is run. </p> <codeblock id="GUID-91EF56AD-266F-5EE8-B8C0-37C1A6529C48" xml:space="preserve">//File : SIPExGameEngine.cpp
+
+TBool CSIPExEngine::AcceptInvitationL( const TDesC8&amp; aFrom )
+    {
+    HBufC* from = HBufC::NewLC( aFrom.Length() );
+    from-&gt;Des().Copy( aFrom );
+    TBool retVal = iGameObserver.AcceptInvitationL( *from );
+    CleanupStack::PopAndDestroy( from );
+    return retVal;
+    }</codeblock> </section>
+<section id="GUID-0E7C6F87-C90B-5888-B1F7-33ED0D7393F5"><title>Sending an
+instant message</title> <p>This sample application allows a user to send an
+Instant Message (IM) to another user. The user requires SIP URI of the other
+user and the message content that the user must enter. The application then
+creates a MESSAGE (request message) with these parameters and uses <xref href="GUID-D8168DEA-50CC-342B-AEF1-4703B50794A6.dita"><apiname>SendRequestL()</apiname></xref> to
+send it. </p> <p>The following code from <filepath>SIPExSIPEngine.cpp</filepath> shows
+how to send an instant message. </p> <codeblock id="GUID-641C6039-11B4-5389-8876-D817D5541CCE" xml:space="preserve">//Create and send an instant message to a recipient defined with the parameters.
+//This is implemented with the MESSAGE method and is sent outside of a dialog.
+
+CreateIML(const TDesC8&amp; aMessage,
+    const TDesC8&amp; aSipUri )
+    {
+    _LIT8( KMediaType, "SIPEx" );    // Part of content type
+    _LIT8( KMediaSubType, "InstantMessage" );    // Part of content type
+
+//Create the necessary elements of the IM
+    
+CSIPRequestElements* reqElem = CreateReqElementsLC( aSipUri );
+    CSIPToHeader* toHeader = CreateToHeaderLC( aSipUri );
+    reqElem-&gt;SetToHeaderL( toHeader );
+    
+//Create the fromHeader value using the information from the profile
+
+ const TDesC8* aor = NULL;
+ iProfile-&gt;GetParameter( KSIPUserAor, aor ); 
+ CSIPAddress* addr = CSIPAddress::DecodeL( *aor );
+ CSIPFromHeader* fromHeader = CSIPFromHeader::NewL( addr );
+ reqElem-&gt;SetFromHeaderL( fromHeader );
+ reqElem-&gt;SetMethodL( SIPStrings::StringF( SipStrConsts::EMessage ) );
+
+//Get reference to the message elements from the request elements, create and insert content type header (ownership of the content type object is transferred)
+
+    CSIPMessageElements&amp; msgElem = reqElem-&gt;MessageElements();
+    CSIPContentTypeHeader* ct =    CSIPContentTypeHeader::NewLC( KMediaType, KMediaSubType );
+    msgElem.SetContentL( aMessage.AllocL(), ct );
+    
+//Get the current connection
+
+CSIPConnection&amp; conn = ConnectionL();
+
+//Send the request using the connection (ownership of the request elements object is transferred)
+
+    CSIPClientTransaction* ctx = conn.SendRequestL( reqElem );
+    delete ctx;
+    }
+
+</codeblock> <p><b>Classes containing APIs in scope</b> </p> <p> <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref>, <xref href="GUID-7B5D0432-5C2C-3EFB-B9FA-8B4A0AA68FC0.dita"><apiname>CSIPToHeader</apiname></xref>, <xref href="GUID-AFEC85BE-5971-3043-B9A9-24048346AADE.dita"><apiname>CSIPFromHeader</apiname></xref>, <xref href="GUID-F8BF1190-F5D4-31EF-B060-A1430AA07DAC.dita"><apiname>CSIPAddress</apiname></xref>, <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref>, <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e17625_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e47970_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CF34E1C9-48E5-5B91-A48E-C68E647116A0_d0e53527_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CF6355EF-3241-5196-AEBC-1337E1AE2259" xml:lang="en"><title>BitmapSprite: creating a sprite by loading a bitmap file</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <b>Note:</b> This example is designed to work properly only with
+Techview, there is no guarantee that it will work properly with other
+interfaces. </p>
+<section id="GUID-1A15C499-563E-404E-BAB5-59BAA12DA972"><title>Description</title> <p>The <filepath>BitmapSprite</filepath> example creates an animated sprite by loading a bitmap (<filepath>.mbm</filepath>) file. The sprite is a rotating windmill which can
+be moved around the screen using the arrow keys. </p> <p>As in the
+previous example, the sprite is created by setting up the sprite members
+to contain bitmaps, then appending them to the sprite. In this example,
+however, the bitmaps are loaded from a file rather than created using
+off-screen bitmaps drawn to using a graphics context. </p> </section>
+<section id="GUID-9BD7D67D-F43A-51FF-A5EA-2F82E82D92DC"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-5aa5e49e-ff8f-4fc3-bdc3-d20004aea9a9.zip" scope="external">BitmapSprite.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-5aa5e49e-ff8f-4fc3-bdc3-d20004aea9a9.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-79367351-0437-4E60-B2A7-3BCE96925D1E"><title>Classes defined</title> <p> <codeph>CSprite</codeph>: Uses class <xref href="GUID-75C09150-E93B-323D-AFBF-E42C7BD78229.dita"><apiname>RWsSprite</apiname></xref> by setting up the sprite
+members to contain bitmaps then appending them to the sprite. In this
+example, the bitmaps are loaded from a file. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0"><title> Nodes in the Communications Framework</title><shortdesc>This topic describes the concept of a <i>Node</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Communications Framework separates its implementation into horizontal and vertical divisions - the concept of Layers and Planes. Each of the separate entities is a <i>Node</i>. These entities form part of the Communications stack and are named <i>Stack Nodes</i>. Stack Nodes belong to a single Layer and a single Plane. Stack Nodes also provide Access Point services. </p> <section id="GUID-0B0B61DE-AABC-5F87-8205-30F818F79C0A"><title>Stack Nodes</title> <p>There are four Stack Nodes: </p> <p><b>MetaConnection Provider (MCPR) Node </b> </p> <p>The <i>MCPR</i> Node uses the configuration and policy specifications to manage the Layer. A phone creator can replace this Node. The replacement or the configuration of this Node allows a phone creator to change the configuration of the Communications Infrastructure without a change to the software. </p> <p><b>Connection Provider (CPR) Node </b> </p> <p>The <i>CPR</i> Node manages the connections. </p> <p><b>SubConnection Provider (SCPR) Node </b> </p> <p>The <i>SCPR</i> Node manages the subconnections. Each subconnection represents a logical data channel. The Communications Framework has the concept of a default subconnection. A default SCPR always exists to represent the default subconnection. A connection uses the default subconnection if a subconnection is not specified. </p> <p><b>Flow Node </b> </p> <p>The <i>Flow</i> Node manages the data stream. </p> <fig id="GUID-7E959DB6-5153-5B0D-A857-97684318F53A"><title>
-             Stack Nodes 
-          </title> <image href="GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e83509_href.png" placement="inline"/></fig> <p>Each type of Node is related to a specific Plane in the Comms Stack. The following diagram shows that: </p> <ul><li id="GUID-11520E35-0C8B-59AB-8B00-C0D3FCB2EF3B"><p>the <i>Flow Node</i> has a one-to-one relationship with the Data Plane. </p> </li> <li id="GUID-B5305F51-3D47-5BF4-8EEF-6D5D240A199D"><p>the<i> MCPR (MetaConnection Provider) Node</i> has a one-to-one relationship with the Management Plane. </p> </li> <li id="GUID-24C548E4-3D00-5F98-BBD8-A6F8B368AA0C"><p>the Control Plane contains both the <i>SCPR Node</i> and the <i>CPR Node</i>. </p> </li> <li id="GUID-6DC64ADF-1DAD-5F7D-8433-1A1383983CC7"><p>the <i>SCPR Node</i> can have many instances in operation at the same time. </p> </li> <li id="GUID-370A9510-8068-54E3-AE14-9FA8F30A879B"><p>the <i>MCPR Node</i> can connect to resources outside the Communications stack. The offset grey box around the text MCPR represents this fact. </p> </li> </ul> <fig id="GUID-5DAECC1D-051F-5F9D-8D73-2F992C2D1003"><title>
-             How Nodes related to Planes in the Comms Stack 
-          </title> <image href="GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e83563_href.png" placement="inline"/></fig> </section> <section><title>Other Nodes</title> <p>The Communications Framework has two other types of Node: <i>Tier Manager</i> and <i>Factory Container</i>. </p> <p><b>Tier manager Node </b> </p> <p>A Tier is an alternative to Access Points. A Tier gives users a different method to access the services of the Communications Infrastructure. A Tier represents a higher level communications technology or a collection of technologies. Each communications technology belongs to a Tier, but a Tier can contain more than one technology. When a user selects a technology, a Tier shows the appropriate group of technologies from which the user can select. The Tier handles the selection of the Access Point. A Tier manager Node manages each Tier in the Communications Framework. </p> <p><b>Factory Container Node </b> </p> <p>Factory Containers create Nodes. The Communications Framework supplies a Factory Container for each type of Node. The Factory Containers have published addresses and Nodes use these addresses to find and communicate with the Factory Containers. A Node can create another Node. A Node sends a request to the correct Factory Container to create the other Node. The Factory Container tries to create the new Node and reports status to the Node that made the request. </p> <p>The following diagram shows the connection between the Stack Nodes and the Tier Manager and Factory Container Nodes. </p> <fig id="GUID-8BD04C75-4923-5566-BB89-D502845B332A"><title>
-             Connection between the Stack Nodes and the Tier Manager and Factory
-             Container Nodes 
-          </title> <image href="GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e83602_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita"><linktext>Access
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0"><title> Nodes in the Communications Framework</title><shortdesc>This topic describes the concept of a <i>Node</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Communications Framework separates its implementation into horizontal and vertical divisions - the concept of Layers and Planes. Each of the separate entities is a <i>Node</i>. These entities form part of the Communications stack and are named <i>Stack Nodes</i>. Stack Nodes belong to a single Layer and a single Plane. Stack Nodes also provide Access Point services. </p> <section id="GUID-0B0B61DE-AABC-5F87-8205-30F818F79C0A"><title>Stack Nodes</title> <p>There are four Stack Nodes: </p> <p><b>MetaConnection Provider (MCPR) Node </b> </p> <p>The <i>MCPR</i> Node uses the configuration and policy specifications to manage the Layer. A phone creator can replace this Node. The replacement or the configuration of this Node allows a phone creator to change the configuration of the Communications Infrastructure without a change to the software. </p> <p><b>Connection Provider (CPR) Node </b> </p> <p>The <i>CPR</i> Node manages the connections. </p> <p><b>SubConnection Provider (SCPR) Node </b> </p> <p>The <i>SCPR</i> Node manages the subconnections. Each subconnection represents a logical data channel. The Communications Framework has the concept of a default subconnection. A default SCPR always exists to represent the default subconnection. A connection uses the default subconnection if a subconnection is not specified. </p> <p><b>Flow Node </b> </p> <p>The <i>Flow</i> Node manages the data stream. </p> <fig id="GUID-7E959DB6-5153-5B0D-A857-97684318F53A"><title>
+             Stack Nodes 
+          </title> <image href="GUID-31A6FA69-418D-5F8D-A0FB-6A99AA8CC4E1_d0e76797_href.png" placement="inline"/></fig> <p>Each type of Node is related to a specific Plane in the Comms Stack. The following diagram shows that: </p> <ul><li id="GUID-11520E35-0C8B-59AB-8B00-C0D3FCB2EF3B"><p>the <i>Flow Node</i> has a one-to-one relationship with the Data Plane. </p> </li> <li id="GUID-B5305F51-3D47-5BF4-8EEF-6D5D240A199D"><p>the<i> MCPR (MetaConnection Provider) Node</i> has a one-to-one relationship with the Management Plane. </p> </li> <li id="GUID-24C548E4-3D00-5F98-BBD8-A6F8B368AA0C"><p>the Control Plane contains both the <i>SCPR Node</i> and the <i>CPR Node</i>. </p> </li> <li id="GUID-6DC64ADF-1DAD-5F7D-8433-1A1383983CC7"><p>the <i>SCPR Node</i> can have many instances in operation at the same time. </p> </li> <li id="GUID-370A9510-8068-54E3-AE14-9FA8F30A879B"><p>the <i>MCPR Node</i> can connect to resources outside the Communications stack. The offset grey box around the text MCPR represents this fact. </p> </li> </ul> <fig id="GUID-5DAECC1D-051F-5F9D-8D73-2F992C2D1003"><title>
+             How Nodes related to Planes in the Comms Stack 
+          </title> <image href="GUID-9901F6E2-0D36-59D6-A32A-D666C4F2DAAF_d0e76851_href.png" placement="inline"/></fig> </section> <section><title>Other Nodes</title> <p>The Communications Framework has two other types of Node: <i>Tier Manager</i> and <i>Factory Container</i>. </p> <p><b>Tier manager Node </b> </p> <p>A Tier is an alternative to Access Points. A Tier gives users a different method to access the services of the Communications Infrastructure. A Tier represents a higher level communications technology or a collection of technologies. Each communications technology belongs to a Tier, but a Tier can contain more than one technology. When a user selects a technology, a Tier shows the appropriate group of technologies from which the user can select. The Tier handles the selection of the Access Point. A Tier manager Node manages each Tier in the Communications Framework. </p> <p><b>Factory Container Node </b> </p> <p>Factory Containers create Nodes. The Communications Framework supplies a Factory Container for each type of Node. The Factory Containers have published addresses and Nodes use these addresses to find and communicate with the Factory Containers. A Node can create another Node. A Node sends a request to the correct Factory Container to create the other Node. The Factory Container tries to create the new Node and reports status to the Node that made the request. </p> <p>The following diagram shows the connection between the Stack Nodes and the Tier Manager and Factory Container Nodes. </p> <fig id="GUID-8BD04C75-4923-5566-BB89-D502845B332A"><title>
+             Connection between the Stack Nodes and the Tier Manager and Factory
+             Container Nodes 
+          </title> <image href="GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e76890_href.png" placement="inline"/></fig> </section> </conbody><related-links><link href="GUID-A1148010-887F-549D-9DA0-D36FF4661FFE.dita"><linktext>Access
                 Points</linktext> </link> <link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> <link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> <link href="GUID-4841AEDF-D22C-57D0-872D-7BD8B6A29CF5.dita"><linktext>Tiers</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,229 +1,229 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A" xml:lang="en"><title>Schedule
-Send MTM Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section provides an overview of the Schedule Send MTM component. </p>
-<section><title>Purpose</title> <p>The Schedule Send MTM allows Message Type
-Modules (MTM) to send messages at scheduled times. For example, the <xref href="GUID-33C7EEEB-88B8-5587-916D-2C5D122F6010.dita">SMS MTM</xref> uses this
-functionality to allow scheduled sending of SMS messages. </p> </section>
-<section><title>Architecture</title> <p>The Schedule Send functionality is
-delivered by four components: </p> <ul>
-<li id="GUID-9F8C6A75-11C5-58F8-8C94-ABFEFB5551A7"><p> <b>Server MTM base
-class</b>  </p> <p>The base class provides support to Server MTMs that wish
-to support scheduled operations. </p> </li>
-<li id="GUID-B0BC4BCD-600A-5619-AA0A-721DFA6F6355"><p> <b>Data structures</b>  </p> <p>Classes
-used to represent the data associated with a scheduled operation. </p> </li>
-<li id="GUID-D096C050-6250-5C6B-8046-C6BEC1BBB4DA"><p> <b>Schedule Send Executable</b>  </p> <p>The
-Schedule Send Executable is run by the task scheduler at the scheduled time. </p> </li>
-<li id="GUID-FEC0314A-5D66-570B-BCD2-A995FA9B52EC"><p> <b>Task Scheduler</b>  </p> <p>The
-component is part of the Generic OS Services. </p> </li>
-</ul> <p>Clients request the Server MTM schedule operations; this is passed
-to the Server MTM through the Message Server. The Server MTM packages the
-operation ID, a selection of message IDs, how often to poll for progress and
-an MTM specific buffer. It then passes this package of data to the task scheduler
-requesting that it launches the Schedule Send executable at the correct time
-with the packaged information. When the task scheduler launches the Schedule
-Send executable, it unpacks the schedule information and uses the messaging
-client API to request the Server MTM to perform an operation. </p> <fig id="GUID-F3664A22-1E9F-586B-84B1-CDA7987C3894">
-<title>              Schedule Send architecture            </title>
-<image href="GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e280334_href.png" placement="inline"/>
-</fig> <p>The executable to run by the Task Scheduler is specified in the
-schedule send settings. This allows different executables for different message
-types, as a set of schedule send settings are defined for each message type
-that uses the schedule send support. The executable is normally the schedule-send
-exe (<filepath>schsendexe.exe</filepath>). </p> <p>Each task contains some
-repeat and priority information and a payload of data. In the case of schedules
-created by <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref>, and the payload contains the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
-the scheduled message and ID of the command to be applied to that message. </p> </section>
-<section><title>Description</title> <p>The Schedule Send component is an extension
-to the Messaging Framework that provides the messaging client with functionality
-to schedule messages. It provides the following scheduling functionality: </p> <ul>
-<li id="GUID-D0FE4E53-6A5E-537C-8137-62FCBDA76C25"><p>Schedule a selection
-of messages </p> </li>
-<li id="GUID-310D7333-C3A4-544F-82F9-EBED51DEC322"><p>Reschedule a selection
-of messages </p> </li>
-<li id="GUID-E55C0577-3E52-57F8-9DE0-A74DD6504699"><p>Check the schedule information
-for a selection of messages </p> </li>
-<li id="GUID-A7553674-42EC-5437-A362-5994776B2D79"><p>Delete the schedule(s)
-for a selection of messages </p> </li>
-</ul> <p>It also provides status information, such as whether a message is
-currently scheduled, or failed. </p> <p>There are two types of schedules:
-conditions-schedules and time-schedules. Both are stored in the file system
-and persist across a reboot of a device. A schedule contains several pieces
-of information, such as the schedule trigger (for example, the scheduled time),
-the executable to run when the trigger occurs, and a list of tasks. </p> <p>Schedule
-Send supports a retry mechanism if the operation fails. The Server MTM has
-a resource file containing a mapping from the error codes the operation can
-fail with and actions to be performed. For example, the SMS resource file
-has a mapping such that if the operation fails with an error code indicating
-a bad phone number, the SMS is set to failed and left in the outbox. Whereas,
-if it fails with an error code indicating temporary network failure, the send
-operation is scheduled to be resent later with a maximum of three retries. </p> </section>
-<section><title>API summary</title> <p>The following are the main classes
-of the Schedule Send component: </p> <ul>
-<li id="GUID-FC3E3A59-29FD-5AD9-A4FE-3712BBE84F4F"><p>The <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref> is
-the main API that provides the Schedule Send support. This API provides the
-following scheduling functionality: </p> <ul>
-<li id="GUID-21BA2FDE-617B-521C-82E6-B6493677234D"><p>Schedule a selection
-of messages </p> </li>
-<li id="GUID-7A3D4A53-713C-50F1-9BCE-23C93795240B"><p>Reschedule a selection
-of messages </p> </li>
-<li id="GUID-81E94316-E1BE-5710-9573-5C9DD332E9C4"><p>Check the schedule information
-for a selection of messages </p> </li>
-<li id="GUID-5DAA73B7-5171-5F17-9F09-FBA1006BC69C"><p>Delete the schedules
-for a selection of messages </p> </li>
-</ul> <p>Scheduling is performed by the task scheduler. The <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref> class
-uses the task scheduler <xref href="GUID-6E138B87-ED51-3C72-9075-8D7F887FA7B1.dita"><apiname>RScheduler</apiname></xref> API to create persistent
-schedules and add tasks to that schedule. Each task contains some repeat and
-priority information, and a payload of data. In the case of schedules created
-by <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref>, the payload contains the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
-the scheduled message and the ID of the command to be applied to that message. </p> </li>
-<li id="GUID-88A357B8-1F54-5BB4-8996-749E08776880"><p>The <xref href="GUID-95828565-7389-381C-BD7E-B7F7B98A2487.dita"><apiname>CMsvSysAgentActions</apiname></xref> class
-is used to specify what (system agent) conditions need to be checked before
-sending a message. </p> </li>
-<li id="GUID-6B42C963-B955-5928-8CC9-D27D3D4B49C5"><p>The <xref href="GUID-BF841328-372B-3F68-8BC9-5CB8639650D0.dita"><apiname>CMsvSendErrorActions</apiname></xref> class
-has a set of actions associated with error codes. It also provides a method
-to populate itself from a resource file, <xref href="GUID-30427874-08F3-32E1-A512-44091C4ABD5C.dita"><apiname>RestoreFromResourceL</apiname></xref>. </p> <p>This
-is used in the <xref href="GUID-78B57F36-F131-3275-B23F-9F20446C5C2A.dita#GUID-78B57F36-F131-3275-B23F-9F20446C5C2A/GUID-6D031676-C9A7-36F3-B75A-363EA1571896"><apiname>CScheduleBaseServerMtm::RestoreSettings</apiname></xref> method,
-where the error actions are populated from the resource file for a message
-type. </p> </li>
-<li id="GUID-3C17AEBA-7F45-51A4-A2EB-C4E0EC64869E"><p>The <xref href="GUID-3A9254B7-77C2-300A-9128-6A7BD45F8CBA.dita"><apiname>CMsvScheduleSettings</apiname></xref> class
-encapsulates settings for the Schedule Send. This contains information, such
-as, the length of <b>short</b> and <b>long</b> time intervals that are used
-to calculate the next schedule time for a message being rescheduled. </p> </li>
-</ul> </section>
-<section><title>Typical uses</title> <table id="GUID-B9D02EE0-1A69-5540-AE43-23A2ADA52F98">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Main task</entry>
-<entry>Sub-tasks</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Scheduling a message </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>Schedules a selection of messages. The messages must be of the same
-type. They must also be scheduled for the same date and if applicable, for
-the same off-peak time. </p> <p>The first step of scheduling a message is
-to set the different parameters that allows determining the exact time the
-message is sent and what to do if the message cannot be sent. The following
-settings are per message and two parameters must be set for each message. </p> </entry>
-</row>
-<row>
-<entry><p> </p> </entry>
-<entry><p>Set the date </p> </entry>
-<entry><p>Client applications can set the schedule date for a message. </p> </entry>
-</row>
-<row>
-<entry><p> </p> </entry>
-<entry><p>Select off-peak sending </p> </entry>
-<entry><p>Client applications can select to send messages during off-peak
-periods. </p> </entry>
-</row>
-<row>
-<entry><p>Delete the schedule for messages </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>Client applications can delete a schedule for a specified message
-from the task scheduler. The messages themselves are not deleted. </p> </entry>
-</row>
-<row>
-<entry><p>Re-schedule messages </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>Client applications can determine when messages should be rescheduled
-on the task scheduler. </p> </entry>
-</row>
-<row>
-<entry><p>Send scheduled messages </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>Client applications can send messages immediately that are previously
-scheduled, that is, override the scheduling. </p> </entry>
-</row>
-<row>
-<entry><p>Check the schedule of messages </p> </entry>
-<entry><p> </p> </entry>
-<entry><p>Client applications can verify that the schedule information stored
-in specified messages is the same as the one actually in use. </p> </entry>
-</row>
-<row>
-<entry><p>Configuring a Schedule Send message </p> </entry>
-<entry/>
-<entry><p>Client applications can configure the build-time configuration parameters,
-which are time-related parameters, off-peak period definitions and error actions. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Validity period </p> </entry>
-<entry><p>The time period that the messages are valid (the message is not
-sent after the validity period has expired). This is ignored if a message
-has to be sent off-peak. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Next attempt intervals </p> </entry>
-<entry><p>The messaging client uses this setting to define the time to wait
-before attempting to resend a message. </p> <p>After a failed attempt, a message
-can be sent immediately or later. The short interval and long interval define
-the delays before a new attempt. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Latency </p> </entry>
-<entry><p>The minimum amount of time between now and when the message is sent. </p> <p>A
-message scheduled in the past will actually be scheduled to be sent Latency
-seconds after the current time. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Start of off-peak period </p> </entry>
-<entry><p>The day of the week, hour of the day and minute of the hour when
-the off-peak period starts. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Duration of off-peak period </p> </entry>
-<entry><p>The length (in minutes) of the off-peak period time. Must be less
-than 24 hours. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Add an error action </p> </entry>
-<entry><p>Client applications can add an error-action to the configuration
-of the subsystem (for a type of message). That is, the error-action is configured
-for the number of retries or type of retry spacing to a particular error. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Remove an error-action </p> </entry>
-<entry><p>Client applications can remove an error-action from the list sustained
-by the Messaging Middleware module. </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Set a list of error-actions </p> </entry>
-<entry><p> </p> </entry>
-</row>
-<row>
-<entry/>
-<entry><p>Load the error-actions from a resource file </p> </entry>
-<entry><p>Client applications can restore the list of error-actions from a
-resource file. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-</conbody><related-links>
-<link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type
-Module</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CF8FA653-5A3B-5D57-8875-0BC6BDCC1D0A" xml:lang="en"><title>Schedule
+Send MTM Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section provides an overview of the Schedule Send MTM component. </p>
+<section><title>Purpose</title> <p>The Schedule Send MTM allows Message Type
+Modules (MTM) to send messages at scheduled times. For example, the <xref href="GUID-33C7EEEB-88B8-5587-916D-2C5D122F6010.dita">SMS MTM</xref> uses this
+functionality to allow scheduled sending of SMS messages. </p> </section>
+<section><title>Architecture</title> <p>The Schedule Send functionality is
+delivered by four components: </p> <ul>
+<li id="GUID-9F8C6A75-11C5-58F8-8C94-ABFEFB5551A7"><p> <b>Server MTM base
+class</b>  </p> <p>The base class provides support to Server MTMs that wish
+to support scheduled operations. </p> </li>
+<li id="GUID-B0BC4BCD-600A-5619-AA0A-721DFA6F6355"><p> <b>Data structures</b>  </p> <p>Classes
+used to represent the data associated with a scheduled operation. </p> </li>
+<li id="GUID-D096C050-6250-5C6B-8046-C6BEC1BBB4DA"><p> <b>Schedule Send Executable</b>  </p> <p>The
+Schedule Send Executable is run by the task scheduler at the scheduled time. </p> </li>
+<li id="GUID-FEC0314A-5D66-570B-BCD2-A995FA9B52EC"><p> <b>Task Scheduler</b>  </p> <p>The
+component is part of the Generic OS Services. </p> </li>
+</ul> <p>Clients request the Server MTM schedule operations; this is passed
+to the Server MTM through the Message Server. The Server MTM packages the
+operation ID, a selection of message IDs, how often to poll for progress and
+an MTM specific buffer. It then passes this package of data to the task scheduler
+requesting that it launches the Schedule Send executable at the correct time
+with the packaged information. When the task scheduler launches the Schedule
+Send executable, it unpacks the schedule information and uses the messaging
+client API to request the Server MTM to perform an operation. </p> <fig id="GUID-F3664A22-1E9F-586B-84B1-CDA7987C3894">
+<title>              Schedule Send architecture            </title>
+<image href="GUID-628A90FC-35F9-51D0-853E-9BECB3C91B59_d0e276648_href.png" placement="inline"/>
+</fig> <p>The executable to run by the Task Scheduler is specified in the
+schedule send settings. This allows different executables for different message
+types, as a set of schedule send settings are defined for each message type
+that uses the schedule send support. The executable is normally the schedule-send
+exe (<filepath>schsendexe.exe</filepath>). </p> <p>Each task contains some
+repeat and priority information and a payload of data. In the case of schedules
+created by <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref>, and the payload contains the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
+the scheduled message and ID of the command to be applied to that message. </p> </section>
+<section><title>Description</title> <p>The Schedule Send component is an extension
+to the Messaging Framework that provides the messaging client with functionality
+to schedule messages. It provides the following scheduling functionality: </p> <ul>
+<li id="GUID-D0FE4E53-6A5E-537C-8137-62FCBDA76C25"><p>Schedule a selection
+of messages </p> </li>
+<li id="GUID-310D7333-C3A4-544F-82F9-EBED51DEC322"><p>Reschedule a selection
+of messages </p> </li>
+<li id="GUID-E55C0577-3E52-57F8-9DE0-A74DD6504699"><p>Check the schedule information
+for a selection of messages </p> </li>
+<li id="GUID-A7553674-42EC-5437-A362-5994776B2D79"><p>Delete the schedule(s)
+for a selection of messages </p> </li>
+</ul> <p>It also provides status information, such as whether a message is
+currently scheduled, or failed. </p> <p>There are two types of schedules:
+conditions-schedules and time-schedules. Both are stored in the file system
+and persist across a reboot of a device. A schedule contains several pieces
+of information, such as the schedule trigger (for example, the scheduled time),
+the executable to run when the trigger occurs, and a list of tasks. </p> <p>Schedule
+Send supports a retry mechanism if the operation fails. The Server MTM has
+a resource file containing a mapping from the error codes the operation can
+fail with and actions to be performed. For example, the SMS resource file
+has a mapping such that if the operation fails with an error code indicating
+a bad phone number, the SMS is set to failed and left in the outbox. Whereas,
+if it fails with an error code indicating temporary network failure, the send
+operation is scheduled to be resent later with a maximum of three retries. </p> </section>
+<section><title>API summary</title> <p>The following are the main classes
+of the Schedule Send component: </p> <ul>
+<li id="GUID-FC3E3A59-29FD-5AD9-A4FE-3712BBE84F4F"><p>The <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref> is
+the main API that provides the Schedule Send support. This API provides the
+following scheduling functionality: </p> <ul>
+<li id="GUID-21BA2FDE-617B-521C-82E6-B6493677234D"><p>Schedule a selection
+of messages </p> </li>
+<li id="GUID-7A3D4A53-713C-50F1-9BCE-23C93795240B"><p>Reschedule a selection
+of messages </p> </li>
+<li id="GUID-81E94316-E1BE-5710-9573-5C9DD332E9C4"><p>Check the schedule information
+for a selection of messages </p> </li>
+<li id="GUID-5DAA73B7-5171-5F17-9F09-FBA1006BC69C"><p>Delete the schedules
+for a selection of messages </p> </li>
+</ul> <p>Scheduling is performed by the task scheduler. The <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref> class
+uses the task scheduler <xref href="GUID-6E138B87-ED51-3C72-9075-8D7F887FA7B1.dita"><apiname>RScheduler</apiname></xref> API to create persistent
+schedules and add tasks to that schedule. Each task contains some repeat and
+priority information, and a payload of data. In the case of schedules created
+by <xref href="GUID-35CAC635-C0CE-328F-B10C-7FEB4503E8DB.dita"><apiname>CMsvScheduleSend</apiname></xref>, the payload contains the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
+the scheduled message and the ID of the command to be applied to that message. </p> </li>
+<li id="GUID-88A357B8-1F54-5BB4-8996-749E08776880"><p>The <xref href="GUID-95828565-7389-381C-BD7E-B7F7B98A2487.dita"><apiname>CMsvSysAgentActions</apiname></xref> class
+is used to specify what (system agent) conditions need to be checked before
+sending a message. </p> </li>
+<li id="GUID-6B42C963-B955-5928-8CC9-D27D3D4B49C5"><p>The <xref href="GUID-BF841328-372B-3F68-8BC9-5CB8639650D0.dita"><apiname>CMsvSendErrorActions</apiname></xref> class
+has a set of actions associated with error codes. It also provides a method
+to populate itself from a resource file, <xref href="GUID-30427874-08F3-32E1-A512-44091C4ABD5C.dita"><apiname>RestoreFromResourceL</apiname></xref>. </p> <p>This
+is used in the <xref href="GUID-78B57F36-F131-3275-B23F-9F20446C5C2A.dita#GUID-78B57F36-F131-3275-B23F-9F20446C5C2A/GUID-6D031676-C9A7-36F3-B75A-363EA1571896"><apiname>CScheduleBaseServerMtm::RestoreSettings</apiname></xref> method,
+where the error actions are populated from the resource file for a message
+type. </p> </li>
+<li id="GUID-3C17AEBA-7F45-51A4-A2EB-C4E0EC64869E"><p>The <xref href="GUID-3A9254B7-77C2-300A-9128-6A7BD45F8CBA.dita"><apiname>CMsvScheduleSettings</apiname></xref> class
+encapsulates settings for the Schedule Send. This contains information, such
+as, the length of <b>short</b> and <b>long</b> time intervals that are used
+to calculate the next schedule time for a message being rescheduled. </p> </li>
+</ul> </section>
+<section><title>Typical uses</title> <table id="GUID-B9D02EE0-1A69-5540-AE43-23A2ADA52F98">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Main task</entry>
+<entry>Sub-tasks</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Scheduling a message </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>Schedules a selection of messages. The messages must be of the same
+type. They must also be scheduled for the same date and if applicable, for
+the same off-peak time. </p> <p>The first step of scheduling a message is
+to set the different parameters that allows determining the exact time the
+message is sent and what to do if the message cannot be sent. The following
+settings are per message and two parameters must be set for each message. </p> </entry>
+</row>
+<row>
+<entry><p> </p> </entry>
+<entry><p>Set the date </p> </entry>
+<entry><p>Client applications can set the schedule date for a message. </p> </entry>
+</row>
+<row>
+<entry><p> </p> </entry>
+<entry><p>Select off-peak sending </p> </entry>
+<entry><p>Client applications can select to send messages during off-peak
+periods. </p> </entry>
+</row>
+<row>
+<entry><p>Delete the schedule for messages </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>Client applications can delete a schedule for a specified message
+from the task scheduler. The messages themselves are not deleted. </p> </entry>
+</row>
+<row>
+<entry><p>Re-schedule messages </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>Client applications can determine when messages should be rescheduled
+on the task scheduler. </p> </entry>
+</row>
+<row>
+<entry><p>Send scheduled messages </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>Client applications can send messages immediately that are previously
+scheduled, that is, override the scheduling. </p> </entry>
+</row>
+<row>
+<entry><p>Check the schedule of messages </p> </entry>
+<entry><p> </p> </entry>
+<entry><p>Client applications can verify that the schedule information stored
+in specified messages is the same as the one actually in use. </p> </entry>
+</row>
+<row>
+<entry><p>Configuring a Schedule Send message </p> </entry>
+<entry/>
+<entry><p>Client applications can configure the build-time configuration parameters,
+which are time-related parameters, off-peak period definitions and error actions. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Validity period </p> </entry>
+<entry><p>The time period that the messages are valid (the message is not
+sent after the validity period has expired). This is ignored if a message
+has to be sent off-peak. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Next attempt intervals </p> </entry>
+<entry><p>The messaging client uses this setting to define the time to wait
+before attempting to resend a message. </p> <p>After a failed attempt, a message
+can be sent immediately or later. The short interval and long interval define
+the delays before a new attempt. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Latency </p> </entry>
+<entry><p>The minimum amount of time between now and when the message is sent. </p> <p>A
+message scheduled in the past will actually be scheduled to be sent Latency
+seconds after the current time. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Start of off-peak period </p> </entry>
+<entry><p>The day of the week, hour of the day and minute of the hour when
+the off-peak period starts. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Duration of off-peak period </p> </entry>
+<entry><p>The length (in minutes) of the off-peak period time. Must be less
+than 24 hours. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Add an error action </p> </entry>
+<entry><p>Client applications can add an error-action to the configuration
+of the subsystem (for a type of message). That is, the error-action is configured
+for the number of retries or type of retry spacing to a particular error. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Remove an error-action </p> </entry>
+<entry><p>Client applications can remove an error-action from the list sustained
+by the Messaging Middleware module. </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Set a list of error-actions </p> </entry>
+<entry><p> </p> </entry>
+</row>
+<row>
+<entry/>
+<entry><p>Load the error-actions from a resource file </p> </entry>
+<entry><p>Client applications can restore the list of error-actions from a
+resource file. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+</conbody><related-links>
+<link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type
+Module</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e206241_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CF9EF400-DE1F-55F7-BD33-C4CD80462971_d0e211044_href.png has changed
--- a/Symbian3/SDK/Source/GUID-CFC21A23-0299-4420-BB60-584D10C8913A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-CFC21A23-0299-4420-BB60-584D10C8913A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CFC21A23-0299-4420-BB60-584D10C8913A" xml:lang="en"><title>Updating
-the platform UID</title><shortdesc>This topic describes how to update the platform UID.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When porting applications from S60 5th Edition to Symbian^3, you can include
-the Symbian^3 platform UID in your application's <codeph>.pkg</codeph> file
-and create a new <codeph>.sis</codeph> installation package using the modified <codeph>.pkg</codeph> file.
-The platform UID for Symbian^3 is <codeph>0x20022E6D</codeph>.</p>
-<note> If you do not include the Symbian^3 platform UID in your package file
-and create a new <codeph>.sis</codeph> installation package, the user gets
-a compatibility warning when installing the application. The warning may result
-in the user canceling the installation.</note>
-<p>To add Symbian^3 UID, include the following line in the <codeph>.pkg</codeph> file
-of your application:</p>
-<codeblock xml:space="preserve">[0x20022E6D], 0, 0, 0, {"Series60ProductID"}</codeblock>
-<p>If you have verified that the same binary can be used on multiple Symbian
-platform releases, you can include platform UIDs for multiple Symbian platform
-releases in your package file as illustrated by the following example:</p>
-<codeblock xml:space="preserve">;Supports S60 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-;Supports S60 5th Edition
-[0x1028315F], 0, 0, 0, {"Series60ProductID"}
-
-;Supports Symbian^3
-[0x20022E6D], 0, 0, 0, {"Series60ProductID"}
-</codeblock>
-<p>For more information and a list of the platform UIDs used in earlier Symbian
-platform releases, see <xref href="GUID-FBA816FE-E188-4A40-9B9B-D47F7D3390AE.dita">Platform
-UID</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CFC21A23-0299-4420-BB60-584D10C8913A" xml:lang="en"><title>Updating the platform UID</title><shortdesc>This topic describes how to update the platform UID.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When porting applications from S60 5th Edition to Symbian^3, you
+can include the Symbian^3 platform UID in your application's <codeph>.pkg</codeph> file and create a new <codeph>.sis</codeph> installation
+package using the modified <codeph>.pkg</codeph> file. The platform
+UID for Symbian^3 is <codeph>0x20022E6D</codeph>.</p>
+<note> If you do not include the Symbian^3 platform UID in your package
+file and create a new <codeph>.sis</codeph> installation package,
+the user gets a compatibility warning when installing the application.
+The warning may result in the user canceling the installation.</note>
+<p>To add Symbian^3 UID, include the following line in the <codeph>.pkg</codeph> file of your application:</p>
+<codeblock xml:space="preserve">[0x20022E6D], 0, 0, 0, {"Series60ProductID"}</codeblock>
+<p>If you have verified that the same binary can be used on multiple
+Symbian platform releases, you can include platform UIDs for multiple
+Symbian platform releases in your package file as illustrated by the
+following example:</p>
+<codeblock xml:space="preserve">;Supports S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Supports S60 5th Edition
+[0x1028315F], 0, 0, 0, {"Series60ProductID"}
+
+;Supports Symbian^3
+[0x20022E6D], 0, 0, 0, {"Series60ProductID"}
+</codeblock>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-3-1-1-9-1-4-1-6-1" xml:lang="en"><title>Simulating
-and intercepting key events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EC0588AB-A48E-42A8-A149-315B36DBE493-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-1"><title>Simulating
-key events</title> <p>Simulating key events is done by calling <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s
-member function <codeph>SimulateKeyEventsL()</codeph>; this sends to the application
-a key event for each of the items in the array passed to it. There are two
-overloads of <codeph>SimulateKeyEventsL()</codeph>: in the first and most
-commonly used overload, only the character codes of the key events are specified;
-in the second overload, modifier keys can also be specified for each key event
-to be simulated. The header file <filepath>epoc32\include\E32KEYS.H</filepath> defines
-the various modifiers possible. The FEP author needs to derive from <codeph>CCoeFep::MModifiedCharacter</codeph> in
-order to use the second overload of <codeph>SimulateKeyEventsL()</codeph>,
-implementing all three of its pure virtual functions. The <codeph>ModifierMask()</codeph> function
-returns the modifiers whose value the FEP wishes to specify; the values for
-the modifiers are returned by the <codeph>ModifierValues()</codeph> function. <codeph>ModifierValues()</codeph> should
-not return values for any modifiers that are not also returned by <codeph>ModifierMask()</codeph>. </p> <p>For
-example, supposing a FEP wishes to send a key event to an application with
-the <userinput>func</userinput> modifier on and the <userinput>shift</userinput> modifier
-off. In this case the <codeph>ModifierMask()</codeph> function would return <codeph>EModifierFunc|EModifierShift</codeph> and
-the <codeph>ModifierValues()</codeph> function would return <codeph>EModifierFunc</codeph>.
-The resulting key event received by the application would then have the <codeph>EModifierFunc</codeph> modifier
-on and the <codeph>EModifierShift</codeph> modifier off (even if the shift
-key is being pressed down). All the other modifiers in the key event, since
-they were not returned in the <codeph>ModifierMask()</codeph> function, will
-reflect the current state of the keyboard. </p> </section>
-<section id="GUID-1B15C661-851B-5922-B8BC-7A772232DBD2-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2"><title>Intercepting
-key events</title> <p>In order for a FEP to intercept key events before they
-reach the application beneath them, the FEP control must be added to the control
-stack at a high priority. This is done by using the following code in the
-control’s construction routine: </p> <codeblock id="GUID-1734E8DC-BB49-5EB9-B373-F8B4A8B92809-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-3" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;AddToStackL(this, ECoeStackPriorityFep, ECoeStackFlagRefusesFocus|ECoeStackFlagSharable);</codeblock> <p>and the following code in its destructor: </p> <codeblock id="GUID-D5BF8AAB-6BEA-5CF5-AE66-488CC2C44654-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-5" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;RemoveFromStack(this);</codeblock> <p>Passing the flag <codeph>ECoeStackFlagSharable</codeph> to <codeph>AddToStackL()</codeph> ensures
-that if an embedded object is edited from an application, for instance an
-embedded drawing is edited inside a word processor document, the FEP’s control
-will also be put onto the child application’s control stack when the child
-application is started. More importantly, the <codeph>ECoeStackFlagRefusesFocus</codeph> flag
-should be passed to <codeph>AddToStackL()</codeph> because FEPs in general
-should not “steal” focus from the target underneath them. For the same reason, <codeph>SetNonFocusing()</codeph> (a
-member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>) should be called in the
-control’s construction routine to prevent mouse or pen events from giving
-it focus. On some occasions it may be legitimate for the FEP to take the focus,
-for instance if the FEP has a floating window and it is temporarily in a mode
-where the user can move this window around the screen by using the arrow keys.
-In this case, the FEP’s control can take the focus by calling: </p> <codeblock id="GUID-183A9459-B8F1-5D7F-897E-3B5278B8BEE1-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-7" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
-appUi.UpdateStackedControlFlags(this, 0, ECoeStackFlagRefusesFocus);
-appUi.HandleStackChanged();
-</codeblock> <p>The following code causes the FEP’s control to revert to normal
-operation by losing focus: </p> <codeblock id="GUID-D5C24301-9D84-5D62-9E75-4B17892316B2-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-9" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
-appUi.UpdateStackedControlFlags(this, ECoeStackFlagRefusesFocus, ECoeStackFlagRefusesFocus);
-appUi.HandleStackChanged();
-</codeblock> <p>Adding the FEP’s control to the control stack at priority <codeph>ECoeStackPriorityFep</codeph> means
-that it gets first refusal of all key events. The UI framework offers key
-events to the FEP control by calling its <codeph>OfferKeyEventL()</codeph> virtual
-function (although key events for a FEP over an OPL application follow a different
-route, described below). The signature of this virtual function, which is
-first declared in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, is: </p> <codeblock id="GUID-7823A4B2-AC86-502E-8609-9277F748C64F-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-11" xml:space="preserve">TKeyResponse OfferKeyEventL(const TKeyEvent&amp; aKeyEvent, TEventCode aType);</codeblock> <p>The first thing that should be done at the start of <codeph>OfferKeyEventL()</codeph> is
-to call either of the two macros below, both of which are defined in <filepath>epoc32\include\FEPBASE.H</filepath>: </p> <codeblock id="GUID-84B500B8-7B35-5E6D-8C54-77AA59C4FCD7-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-13" xml:space="preserve">#define FEP_START_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aEventCode)
-#define FEP_START_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode)
-</codeblock> <p>The <codeph>aFep</codeph> parameter must be a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> object.
-Note that it should not be a pointer to a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>. The <codeph>aKeyEvent</codeph> and
-the <codeph>aEventCode</codeph> parameters should be respectively the <xref href="GUID-0F8FA6A3-F172-36E4-9CF5-60814ABCD562.dita"><apiname>TKeyEvent</apiname></xref> and
-the <xref href="GUID-420348F5-4A82-3780-9D27-A3E1F4780F0B.dita"><apiname>TEventCode</apiname></xref> parameters of the <codeph>OfferKeyEventL()</codeph> function
-itself. The <codeph>OfferKeyEventL()</codeph> function should only be returned
-from by calling either of the following two macros (these are also defined
-in <filepath>epoc32\include\FEPBASE.H</filepath>): </p> <codeblock id="GUID-AE03275F-FBD7-52AF-B7CC-C6F6707B9FDC-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-15" xml:space="preserve">#define FEP_END_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aKeyResponse)
-#define FEP_END_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode, aKeyResponse)
-</codeblock> <p>Both of these two macros contain a <codeph>return</codeph> statement,
-so the <codeph>return</codeph> C++ keyword should not occur in the <codeph>OfferKeyEventL()</codeph> function
-at all. Note that the macro used at the start of the <codeph>OfferKeyEventL()</codeph> function
-should match the macro used to return from it; in other words, both should
-be of the <i>no-down-up-filter</i> type or neither should be. The <i>no-down-up-filter</i> variants
-should be used if the FEP wishes to handle <codeph>EEventKeyDown</codeph> or <codeph>EEventKeyUp</codeph> events.
-This is likely to be rare, however; most FEPs are probably only interested
-in <codeph>EEventKey</codeph> events, in which case <codeph>FEP_START_KEY_EVENT_HANDLER_L</codeph> and <codeph>FEP_END_KEY_EVENT_HANDLER_L</codeph> should be used. These variants filter out <codeph>EEventKeyDown</codeph> and <codeph>EEventKeyUp</codeph> events
-so that the FEP only receives <codeph>EEventKey</codeph> events. </p> <p>The
-first three parameters of the <codeph>FEP_END_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros
-are the same as for the <codeph>FEP_START_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros.
-The fourth parameter should be a <xref href="GUID-2AE56EA4-C71E-33FA-8FCE-D2D15453CD10.dita"><apiname>TKeyResponse</apiname></xref> value (an
-enum defined in <filepath>epoc32\include\COEDEF.H</filepath>). Specifying <codeph>EKeyWasNotConsumed</codeph> as
-this fourth parameter allows that key event to 'fall through' to the application,
-whereas specifying <codeph>EKeyWasConsumed</codeph> prevents the application
-from receiving that event. A good rule of thumb for a FEP that takes key events
-as its input is to intercept as few key events as possible when not inside
-a FEP transaction, but once inside a transaction to block all key events from
-getting through to the application. A transaction may be defined as the composition
-and abandoning/committing of a piece of text ('committing' means sending it
-on to the application). For a Japanese FEP, that piece of text may be an entire
-sentence, whereas for a Chinese FEP it may be just one or two characters. </p> <p>For
-a FEP running over an OPL application, the <codeph>OfferKeyEventL()</codeph> virtual
-function declared in <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> will get called. This is a
-completely independent function from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s virtual
-function of the same name, and it has a different signature which is as follows: </p> <codeblock id="GUID-6760C373-FB46-53E5-96ED-A8273126B060-GENID-1-8-1-3-1-1-9-1-4-1-6-1-2-2-19" xml:space="preserve">void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode);</codeblock> <p>This virtual function should be implemented in exactly the same way as <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>,
-the meaning of the <codeph>aKeyEvent</codeph> and <codeph>aEventCode</codeph> parameters
-being the same as for <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>.
-The <codeph>aEventResponse</codeph> parameter should be set by the function
-overriding <codeph>CCoeFep::OfferKeyEventL()</codeph> to either <codeph>CCoeFep::EEventWasNotConsumed</codeph> or <codeph>CCoeFep::EEventWasConsumed</codeph>, and this must be done before any function that can leave is called. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1" xml:lang="en"><title>Simulating
-and intercepting key events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EC0588AB-A48E-42A8-A149-315B36DBE493-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-1"><title>Simulating
-key events</title> <p>Simulating key events is done by calling <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s
-member function <codeph>SimulateKeyEventsL()</codeph>; this sends to the application
-a key event for each of the items in the array passed to it. There are two
-overloads of <codeph>SimulateKeyEventsL()</codeph>: in the first and most
-commonly used overload, only the character codes of the key events are specified;
-in the second overload, modifier keys can also be specified for each key event
-to be simulated. The header file <filepath>epoc32\include\E32KEYS.H</filepath> defines
-the various modifiers possible. The FEP author needs to derive from <codeph>CCoeFep::MModifiedCharacter</codeph> in
-order to use the second overload of <codeph>SimulateKeyEventsL()</codeph>,
-implementing all three of its pure virtual functions. The <codeph>ModifierMask()</codeph> function
-returns the modifiers whose value the FEP wishes to specify; the values for
-the modifiers are returned by the <codeph>ModifierValues()</codeph> function. <codeph>ModifierValues()</codeph> should
-not return values for any modifiers that are not also returned by <codeph>ModifierMask()</codeph>. </p> <p>For
-example, supposing a FEP wishes to send a key event to an application with
-the <userinput>func</userinput> modifier on and the <userinput>shift</userinput> modifier
-off. In this case the <codeph>ModifierMask()</codeph> function would return <codeph>EModifierFunc|EModifierShift</codeph> and
-the <codeph>ModifierValues()</codeph> function would return <codeph>EModifierFunc</codeph>.
-The resulting key event received by the application would then have the <codeph>EModifierFunc</codeph> modifier
-on and the <codeph>EModifierShift</codeph> modifier off (even if the shift
-key is being pressed down). All the other modifiers in the key event, since
-they were not returned in the <codeph>ModifierMask()</codeph> function, will
-reflect the current state of the keyboard. </p> </section>
-<section id="GUID-1B15C661-851B-5922-B8BC-7A772232DBD2-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2"><title>Intercepting
-key events</title> <p>In order for a FEP to intercept key events before they
-reach the application beneath them, the FEP control must be added to the control
-stack at a high priority. This is done by using the following code in the
-control’s construction routine: </p> <codeblock id="GUID-1734E8DC-BB49-5EB9-B373-F8B4A8B92809-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-3" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;AddToStackL(this, ECoeStackPriorityFep, ECoeStackFlagRefusesFocus|ECoeStackFlagSharable);</codeblock> <p>and the following code in its destructor: </p> <codeblock id="GUID-D5BF8AAB-6BEA-5CF5-AE66-488CC2C44654-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-5" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;RemoveFromStack(this);</codeblock> <p>Passing the flag <codeph>ECoeStackFlagSharable</codeph> to <codeph>AddToStackL()</codeph> ensures
-that if an embedded object is edited from an application, for instance an
-embedded drawing is edited inside a word processor document, the FEP’s control
-will also be put onto the child application’s control stack when the child
-application is started. More importantly, the <codeph>ECoeStackFlagRefusesFocus</codeph> flag
-should be passed to <codeph>AddToStackL()</codeph> because FEPs in general
-should not “steal” focus from the target underneath them. For the same reason, <codeph>SetNonFocusing()</codeph> (a
-member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>) should be called in the
-control’s construction routine to prevent mouse or pen events from giving
-it focus. On some occasions it may be legitimate for the FEP to take the focus,
-for instance if the FEP has a floating window and it is temporarily in a mode
-where the user can move this window around the screen by using the arrow keys.
-In this case, the FEP’s control can take the focus by calling: </p> <codeblock id="GUID-183A9459-B8F1-5D7F-897E-3B5278B8BEE1-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-7" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
-appUi.UpdateStackedControlFlags(this, 0, ECoeStackFlagRefusesFocus);
-appUi.HandleStackChanged();
-</codeblock> <p>The following code causes the FEP’s control to revert to normal
-operation by losing focus: </p> <codeblock id="GUID-D5C24301-9D84-5D62-9E75-4B17892316B2-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-9" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
-appUi.UpdateStackedControlFlags(this, ECoeStackFlagRefusesFocus, ECoeStackFlagRefusesFocus);
-appUi.HandleStackChanged();
-</codeblock> <p>Adding the FEP’s control to the control stack at priority <codeph>ECoeStackPriorityFep</codeph> means
-that it gets first refusal of all key events. The UI framework offers key
-events to the FEP control by calling its <codeph>OfferKeyEventL()</codeph> virtual
-function (although key events for a FEP over an OPL application follow a different
-route, described below). The signature of this virtual function, which is
-first declared in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, is: </p> <codeblock id="GUID-7823A4B2-AC86-502E-8609-9277F748C64F-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-11" xml:space="preserve">TKeyResponse OfferKeyEventL(const TKeyEvent&amp; aKeyEvent, TEventCode aType);</codeblock> <p>The first thing that should be done at the start of <codeph>OfferKeyEventL()</codeph> is
-to call either of the two macros below, both of which are defined in <filepath>epoc32\include\FEPBASE.H</filepath>: </p> <codeblock id="GUID-84B500B8-7B35-5E6D-8C54-77AA59C4FCD7-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-13" xml:space="preserve">#define FEP_START_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aEventCode)
-#define FEP_START_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode)
-</codeblock> <p>The <codeph>aFep</codeph> parameter must be a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> object.
-Note that it should not be a pointer to a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>. The <codeph>aKeyEvent</codeph> and
-the <codeph>aEventCode</codeph> parameters should be respectively the <xref href="GUID-0F8FA6A3-F172-36E4-9CF5-60814ABCD562.dita"><apiname>TKeyEvent</apiname></xref> and
-the <xref href="GUID-420348F5-4A82-3780-9D27-A3E1F4780F0B.dita"><apiname>TEventCode</apiname></xref> parameters of the <codeph>OfferKeyEventL()</codeph> function
-itself. The <codeph>OfferKeyEventL()</codeph> function should only be returned
-from by calling either of the following two macros (these are also defined
-in <filepath>epoc32\include\FEPBASE.H</filepath>): </p> <codeblock id="GUID-AE03275F-FBD7-52AF-B7CC-C6F6707B9FDC-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-15" xml:space="preserve">#define FEP_END_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aKeyResponse)
-#define FEP_END_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode, aKeyResponse)
-</codeblock> <p>Both of these two macros contain a <codeph>return</codeph> statement,
-so the <codeph>return</codeph> C++ keyword should not occur in the <codeph>OfferKeyEventL()</codeph> function
-at all. Note that the macro used at the start of the <codeph>OfferKeyEventL()</codeph> function
-should match the macro used to return from it; in other words, both should
-be of the <i>no-down-up-filter</i> type or neither should be. The <i>no-down-up-filter</i> variants
-should be used if the FEP wishes to handle <codeph>EEventKeyDown</codeph> or <codeph>EEventKeyUp</codeph> events.
-This is likely to be rare, however; most FEPs are probably only interested
-in <codeph>EEventKey</codeph> events, in which case <codeph>FEP_START_KEY_EVENT_HANDLER_L</codeph> and <codeph>FEP_END_KEY_EVENT_HANDLER_L</codeph> should be used. These variants filter out <codeph>EEventKeyDown</codeph> and <codeph>EEventKeyUp</codeph> events
-so that the FEP only receives <codeph>EEventKey</codeph> events. </p> <p>The
-first three parameters of the <codeph>FEP_END_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros
-are the same as for the <codeph>FEP_START_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros.
-The fourth parameter should be a <xref href="GUID-2AE56EA4-C71E-33FA-8FCE-D2D15453CD10.dita"><apiname>TKeyResponse</apiname></xref> value (an
-enum defined in <filepath>epoc32\include\COEDEF.H</filepath>). Specifying <codeph>EKeyWasNotConsumed</codeph> as
-this fourth parameter allows that key event to 'fall through' to the application,
-whereas specifying <codeph>EKeyWasConsumed</codeph> prevents the application
-from receiving that event. A good rule of thumb for a FEP that takes key events
-as its input is to intercept as few key events as possible when not inside
-a FEP transaction, but once inside a transaction to block all key events from
-getting through to the application. A transaction may be defined as the composition
-and abandoning/committing of a piece of text ('committing' means sending it
-on to the application). For a Japanese FEP, that piece of text may be an entire
-sentence, whereas for a Chinese FEP it may be just one or two characters. </p> <p>For
-a FEP running over an OPL application, the <codeph>OfferKeyEventL()</codeph> virtual
-function declared in <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> will get called. This is a
-completely independent function from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s virtual
-function of the same name, and it has a different signature which is as follows: </p> <codeblock id="GUID-6760C373-FB46-53E5-96ED-A8273126B060-GENID-1-8-1-6-1-1-4-1-8-1-4-1-6-1-2-2-19" xml:space="preserve">void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode);</codeblock> <p>This virtual function should be implemented in exactly the same way as <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>,
-the meaning of the <codeph>aKeyEvent</codeph> and <codeph>aEventCode</codeph> parameters
-being the same as for <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>.
-The <codeph>aEventResponse</codeph> parameter should be set by the function
-overriding <codeph>CCoeFep::OfferKeyEventL()</codeph> to either <codeph>CCoeFep::EEventWasNotConsumed</codeph> or <codeph>CCoeFep::EEventWasConsumed</codeph>, and this must be done before any function that can leave is called. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CFC70204-1AD4-5DF0-ADDC-CDE4B39CFF96" xml:lang="en"><title>Simulating
+and intercepting key events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-EC0588AB-A48E-42A8-A149-315B36DBE493"><title>Simulating
+key events</title> <p>Simulating key events is done by calling <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> ’s
+member function <codeph>SimulateKeyEventsL()</codeph>; this sends to the application
+a key event for each of the items in the array passed to it. There are two
+overloads of <codeph>SimulateKeyEventsL()</codeph>: in the first and most
+commonly used overload, only the character codes of the key events are specified;
+in the second overload, modifier keys can also be specified for each key event
+to be simulated. The header file <filepath>epoc32\include\E32KEYS.H</filepath> defines
+the various modifiers possible. The FEP author needs to derive from <codeph>CCoeFep::MModifiedCharacter</codeph> in
+order to use the second overload of <codeph>SimulateKeyEventsL()</codeph>,
+implementing all three of its pure virtual functions. The <codeph>ModifierMask()</codeph> function
+returns the modifiers whose value the FEP wishes to specify; the values for
+the modifiers are returned by the <codeph>ModifierValues()</codeph> function. <codeph>ModifierValues()</codeph> should
+not return values for any modifiers that are not also returned by <codeph>ModifierMask()</codeph>. </p> <p>For
+example, supposing a FEP wishes to send a key event to an application with
+the <userinput>func</userinput> modifier on and the <userinput>shift</userinput> modifier
+off. In this case the <codeph>ModifierMask()</codeph> function would return <codeph>EModifierFunc|EModifierShift</codeph> and
+the <codeph>ModifierValues()</codeph> function would return <codeph>EModifierFunc</codeph>.
+The resulting key event received by the application would then have the <codeph>EModifierFunc</codeph> modifier
+on and the <codeph>EModifierShift</codeph> modifier off (even if the shift
+key is being pressed down). All the other modifiers in the key event, since
+they were not returned in the <codeph>ModifierMask()</codeph> function, will
+reflect the current state of the keyboard. </p> </section>
+<section id="GUID-1B15C661-851B-5922-B8BC-7A772232DBD2"><title>Intercepting
+key events</title> <p>In order for a FEP to intercept key events before they
+reach the application beneath them, the FEP control must be added to the control
+stack at a high priority. This is done by using the following code in the
+control’s construction routine: </p> <codeblock id="GUID-1734E8DC-BB49-5EB9-B373-F8B4A8B92809" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;AddToStackL(this, ECoeStackPriorityFep, ECoeStackFlagRefusesFocus|ECoeStackFlagSharable);</codeblock> <p>and the following code in its destructor: </p> <codeblock id="GUID-D5BF8AAB-6BEA-5CF5-AE66-488CC2C44654" xml:space="preserve">STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi())-&gt;RemoveFromStack(this);</codeblock> <p>Passing the flag <codeph>ECoeStackFlagSharable</codeph> to <codeph>AddToStackL()</codeph> ensures
+that if an embedded object is edited from an application, for instance an
+embedded drawing is edited inside a word processor document, the FEP’s control
+will also be put onto the child application’s control stack when the child
+application is started. More importantly, the <codeph>ECoeStackFlagRefusesFocus</codeph> flag
+should be passed to <codeph>AddToStackL()</codeph> because FEPs in general
+should not “steal” focus from the target underneath them. For the same reason, <codeph>SetNonFocusing()</codeph> (a
+member function of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>) should be called in the
+control’s construction routine to prevent mouse or pen events from giving
+it focus. On some occasions it may be legitimate for the FEP to take the focus,
+for instance if the FEP has a floating window and it is temporarily in a mode
+where the user can move this window around the screen by using the arrow keys.
+In this case, the FEP’s control can take the focus by calling: </p> <codeblock id="GUID-183A9459-B8F1-5D7F-897E-3B5278B8BEE1" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
+appUi.UpdateStackedControlFlags(this, 0, ECoeStackFlagRefusesFocus);
+appUi.HandleStackChanged();
+</codeblock> <p>The following code causes the FEP’s control to revert to normal
+operation by losing focus: </p> <codeblock id="GUID-D5C24301-9D84-5D62-9E75-4B17892316B2" xml:space="preserve">CCoeAppUi&amp; appUi=*STATIC_CAST(CCoeAppUi*, iCoeEnv-&gt;AppUi());
+appUi.UpdateStackedControlFlags(this, ECoeStackFlagRefusesFocus, ECoeStackFlagRefusesFocus);
+appUi.HandleStackChanged();
+</codeblock> <p>Adding the FEP’s control to the control stack at priority <codeph>ECoeStackPriorityFep</codeph> means
+that it gets first refusal of all key events. The UI framework offers key
+events to the FEP control by calling its <codeph>OfferKeyEventL()</codeph> virtual
+function (although key events for a FEP over an OPL application follow a different
+route, described below). The signature of this virtual function, which is
+first declared in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>, is: </p> <codeblock id="GUID-7823A4B2-AC86-502E-8609-9277F748C64F" xml:space="preserve">TKeyResponse OfferKeyEventL(const TKeyEvent&amp; aKeyEvent, TEventCode aType);</codeblock> <p>The first thing that should be done at the start of <codeph>OfferKeyEventL()</codeph> is
+to call either of the two macros below, both of which are defined in <filepath>epoc32\include\FEPBASE.H</filepath>: </p> <codeblock id="GUID-84B500B8-7B35-5E6D-8C54-77AA59C4FCD7" xml:space="preserve">#define FEP_START_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aEventCode)
+#define FEP_START_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode)
+</codeblock> <p>The <codeph>aFep</codeph> parameter must be a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> object.
+Note that it should not be a pointer to a <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>. The <codeph>aKeyEvent</codeph> and
+the <codeph>aEventCode</codeph> parameters should be respectively the <xref href="GUID-0F8FA6A3-F172-36E4-9CF5-60814ABCD562.dita"><apiname>TKeyEvent</apiname></xref> and
+the <xref href="GUID-420348F5-4A82-3780-9D27-A3E1F4780F0B.dita"><apiname>TEventCode</apiname></xref> parameters of the <codeph>OfferKeyEventL()</codeph> function
+itself. The <codeph>OfferKeyEventL()</codeph> function should only be returned
+from by calling either of the following two macros (these are also defined
+in <filepath>epoc32\include\FEPBASE.H</filepath>): </p> <codeblock id="GUID-AE03275F-FBD7-52AF-B7CC-C6F6707B9FDC" xml:space="preserve">#define FEP_END_KEY_EVENT_HANDLER_L(aFep, aKeyEvent, aKeyResponse)
+#define FEP_END_KEY_EVENT_HANDLER_NO_DOWN_UP_FILTER_L(aFep, aKeyEvent, aEventCode, aKeyResponse)
+</codeblock> <p>Both of these two macros contain a <codeph>return</codeph> statement,
+so the <codeph>return</codeph> C++ keyword should not occur in the <codeph>OfferKeyEventL()</codeph> function
+at all. Note that the macro used at the start of the <codeph>OfferKeyEventL()</codeph> function
+should match the macro used to return from it; in other words, both should
+be of the <i>no-down-up-filter</i> type or neither should be. The <i>no-down-up-filter</i> variants
+should be used if the FEP wishes to handle <codeph>EEventKeyDown</codeph> or <codeph>EEventKeyUp</codeph> events.
+This is likely to be rare, however; most FEPs are probably only interested
+in <codeph>EEventKey</codeph> events, in which case <codeph>FEP_START_KEY_EVENT_HANDLER_L</codeph> and <codeph>FEP_END_KEY_EVENT_HANDLER_L</codeph> should be used. These variants filter out <codeph>EEventKeyDown</codeph> and <codeph>EEventKeyUp</codeph> events
+so that the FEP only receives <codeph>EEventKey</codeph> events. </p> <p>The
+first three parameters of the <codeph>FEP_END_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros
+are the same as for the <codeph>FEP_START_KEY_EVENT_HANDLER_</codeph> <i>XXX</i> macros.
+The fourth parameter should be a <xref href="GUID-2AE56EA4-C71E-33FA-8FCE-D2D15453CD10.dita"><apiname>TKeyResponse</apiname></xref> value (an
+enum defined in <filepath>epoc32\include\COEDEF.H</filepath>). Specifying <codeph>EKeyWasNotConsumed</codeph> as
+this fourth parameter allows that key event to 'fall through' to the application,
+whereas specifying <codeph>EKeyWasConsumed</codeph> prevents the application
+from receiving that event. A good rule of thumb for a FEP that takes key events
+as its input is to intercept as few key events as possible when not inside
+a FEP transaction, but once inside a transaction to block all key events from
+getting through to the application. A transaction may be defined as the composition
+and abandoning/committing of a piece of text ('committing' means sending it
+on to the application). For a Japanese FEP, that piece of text may be an entire
+sentence, whereas for a Chinese FEP it may be just one or two characters. </p> <p>For
+a FEP running over an OPL application, the <codeph>OfferKeyEventL()</codeph> virtual
+function declared in <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref> will get called. This is a
+completely independent function from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s virtual
+function of the same name, and it has a different signature which is as follows: </p> <codeblock id="GUID-6760C373-FB46-53E5-96ED-A8273126B060" xml:space="preserve">void OfferKeyEventL(TEventResponse&amp; aEventResponse, const TKeyEvent&amp; aKeyEvent, TEventCode aEventCode);</codeblock> <p>This virtual function should be implemented in exactly the same way as <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>,
+the meaning of the <codeph>aKeyEvent</codeph> and <codeph>aEventCode</codeph> parameters
+being the same as for <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> ’s <codeph>OfferKeyEventL()</codeph>.
+The <codeph>aEventResponse</codeph> parameter should be set by the function
+overriding <codeph>CCoeFep::OfferKeyEventL()</codeph> to either <codeph>CCoeFep::EEventWasNotConsumed</codeph> or <codeph>CCoeFep::EEventWasConsumed</codeph>, and this must be done before any function that can leave is called. </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427383_href.png has changed
Binary file Symbian3/SDK/Source/GUID-CFD3CD78-D99A-57B8-80EB-8C67899E5D27_d0e427545_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485" xml:lang="en"><title>Symmetric
+ciphers -- HowTo</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-0B38AF7B-D5D7-5A06-865D-76F056634C2A"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-119D039F-4624-5464-AA17-BBAB18A8D3CD">How do I use the symmetric cipher framework?</xref>  </p> </li>
+<li id="GUID-6B472E69-7101-5AC2-B91C-E6FB3FEA067E"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-71CD8B41-219D-5D07-8C99-47D68668A880">Symmetric Modes</xref>  </p> </li>
+<li id="GUID-3D8DF8E4-8839-51DB-9223-99931F01A7EB"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-86CD649D-3611-531A-8D9E-1FCC9728500B">Which symmetric cipher should I use?</xref>  </p> </li>
+<li id="GUID-24318339-1B08-5CAF-8EE6-C512DA548670"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-3393A9D6-CB78-5740-B250-F9C1C26C59BD">How does buffering work within the symmetric cipher framework?</xref>  </p> </li>
+</ul>
+<section id="GUID-119D039F-4624-5464-AA17-BBAB18A8D3CD"><title>How do I use
+the symmetric cipher framework? </title> <ul>
+<li id="GUID-78AC1C88-612F-5D55-B357-497D637F20E1"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-21BCC641-FEE9-55FA-84E9-FF1EE425309F">An introduction to the symmetric cipher framework</xref>  </p> </li>
+<li id="GUID-769B5855-9DA2-5E32-9270-B8F63D39366A"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-DFE76D85-7AD6-5B96-906B-98B3F63B88B7"><apiname>CSymmetricCipher</apiname> interface basics</xref>  </p> </li>
+<li id="GUID-6EC9722D-DC7E-5DF8-A55F-D308C92DEC73"><p> <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-2018AFFC-09D9-5F99-BACC-8C77504E5CC3">Example code for a symmetric factory class</xref>  </p> </li>
+</ul> <p id="GUID-21BCC641-FEE9-55FA-84E9-FF1EE425309F"><b> An introduction
+to the symmetric cipher framework </b> </p> <p>The symmetric cipher framework
+collates the behaviour of all symmetric ciphers under one interface: <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref>.
+This interface is intended to represent one direction of one instance of any
+symmetric cipher. One direction means either encryption or decryption, but
+not both. </p> <p id="GUID-DFE76D85-7AD6-5B96-906B-98B3F63B88B7"><b> CSymmetricCipher
+interface basics </b> </p> <ul>
+<li id="GUID-200B0A58-EA9D-5BC7-8EDF-625B2C43BE72"><p> <b> Block ciphers</b> --
+Here one must create an underlying transformation (<xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita"><apiname>CBlockTransformation</apiname></xref>)
+and create a <xref href="GUID-65F145BB-CE4B-3BCC-A9FC-5F9107F32488.dita"><apiname>CBufferedTransformation</apiname></xref> (which is an <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref>)
+from that. </p> </li>
+<li id="GUID-4D3532BB-58B1-5BF1-9253-B1FEE5917053"><p> <b> Stream ciphers</b> --
+These have no concept of buffering and are treated as specializations of <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref>.
+They require no intermediate container class. </p> </li>
+</ul> <p>The following code illustrates the creation of a buffered AES ECB
+encryptor and an ARC4 stream cipher. </p> <codeblock id="GUID-278C21E0-E3E1-5575-9C37-9530F08BB227" xml:space="preserve">
+CBlockTransformation* block = 0;
+block = CAESEncryptor::NewLC(aKey);
+CPadding* padding = CPaddingSSLv3::NewLC(KAESBlockSize); //The blocksize of AES (16 bytes)
+CSymmetricCipher* cipher = CBufferedEncryptor::NewL(block, padding);
+CleanupStack::Pop(2, block); //padding, block -&gt; both owned by cipher
+</codeblock> <codeblock id="GUID-AC44907E-CD42-514A-AE39-D1981F3267FA" xml:space="preserve">
+CSymmetricCipher* cipher = new(ELeave)CARC4(aKey);
+CleanupStack::PushL(cipher):
+</codeblock> <p>After creation, both examples are usable through the <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref> interface.
+So, to encrypt with either of the above ciphers one could do: </p> <codeblock id="GUID-BF286466-ABBD-5810-801C-7C455CBE52FD" xml:space="preserve">
+HBufC8* output = HBufC8::NewLC(cipher-&gt;MaxOutputLength(input.Size()));
+cipher-&gt;Process(input, output);
+HBufC8* output2 = HBufC8::NewLC(cipher-&gt;MaxFinalOutputLength(input2.Size()));
+cipher-&gt;ProcessFinalL(input2, output2);
+</codeblock> <p>In this example, <codeph>input</codeph> and <codeph>input2</codeph> are
+two arbitrary, finite length descriptors. The derived implementations of <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita"><apiname>CSymmetricCipher</apiname></xref> (<xref href="GUID-8251F03D-D816-386E-A23A-947EEC6C8BC6.dita"><apiname>CBufferedEncryptor</apiname></xref> / <xref href="GUID-01CAF2BA-9120-304C-A488-5882CBD23EBC.dita"><apiname>CBufferedDecryptor</apiname></xref> and <xref href="GUID-40EFC716-0990-3C90-893E-43B3E6821C75.dita"><apiname>CStreamCipher</apiname></xref>)
+are responsible for handling what to do in each specific case. For example,
+in the case of an encrypting block cipher, <codeph>ProcessFinalL()</codeph> will
+call the underlying padding system, which will in turn ensure that the overall
+length of input plaintext is of a suitable length for encryption. For more
+information on how the values returned from <codeph>MaxOutputLength()</codeph> and <codeph>MaxFinalOutputLength()</codeph> are
+calculated see <xref href="GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485.dita#GUID-CFF1BCCA-5D07-5B8A-9363-AD11EEEAB485/GUID-3393A9D6-CB78-5740-B250-F9C1C26C59BD">How
+does buffering work within the symmetric cipher framework?</xref>. </p> <p id="GUID-2018AFFC-09D9-5F99-BACC-8C77504E5CC3"><b>Example code for a symmetric
+factory class </b> </p> <p>To simplify the process of creating symmetric encryptors
+and decryptors, it is strongly recommended that applications create a factory
+that automates the process for them. The following code gives a sample factory
+that applications might like to use as a reference. It is not supplied as
+part of the framework as every application has different ways of identifying
+symmetric cipher suites. </p> <codeblock id="GUID-EF0D121A-1961-5EF7-BA04-5BCE5DC029D4" xml:space="preserve">
+CSymmetricCipher* CCipherFactory::BuildEncryptorL(
+    TSymmetricCipherType aType,const TDesC8&amp; aKey,const TDesC8&amp; aIV)
+    {
+    CSymmetricCipher* cipher = NULL;
+
+    if (aType==ERc4)
+        {
+        cipher = new(ELeave) CARC4(aKey);
+        }
+    else
+        {
+        CBlockTransformation* bT = NULL;
+        switch (aType)
+            {
+            case EDes_cbc:
+                bT = CDESEncryptor::NewL(aKey);
+                break;
+            case EDes_ede3_cbc:
+                bT = C3DESEncryptor::NewL(aKey);
+                break;
+            case ERc2_cbc:
+                bT = CRC2Encryptor::NewL(aKey);
+                break;
+            default:
+                User::Leave(KErrNotSupported);
+            };
+        CleanupStack::PushL(bT);
+        CBlockTransformation* mode = CModeCBCEncryptor::NewL(bT, aIV);
+        CleanupStack::Pop(bT);    //    owned by mode
+        CleanupStack::PushL(mode);
+     
+        CPadding* padding = CPaddingSSLv3::NewLC(KBlockSize); //All of these ciphers use 8 byte blocks
+        cipher = CBufferedEncryptor::NewL(mode, padding);
+        CleanupStack::Pop(2, mode);    //padding, mode    now owned by cipher
+        }
+    return cipher;
+    }
+</codeblock> <p>Applications creating these factories need to supply an equivalent
+to the <codeph>TSymmetricCipherType</codeph> enum, which contains the list
+of identifiers representing the cipher, padding, and mode requirements of
+the application. </p> <p>Note that a similar <codeph>BuildDecryptorL()</codeph> will
+also have to be created. </p> <p>Good naming conventions dictate that applications
+should not pollute the global namespace and either use their own namespace
+or prefix their factory classes with identifiers that associated it with that
+specific application. </p> </section>
+<section id="GUID-71CD8B41-219D-5D07-8C99-47D68668A880"><title>Symmetric Modes </title> <p>When
+the amount of plaintext to be encrypted is larger than a single block, some
+method must be employed to specify how subsequent blocks are dependent on
+previous blocks. The simplest method, known as ECB (Electronic CodeBook),
+specifies that subsequent blocks are completely independent. Therefore, two
+identical blocks of plaintext will encrypt to two identical blocks of ciphertext.
+ECB has significant security drawbacks, thus most applications use more advanced
+modes in which subsequent blocks are dependent on the ciphertext of previous
+blocks. The symmetric framework handles these modes through the <xref href="GUID-436C3EBE-FC60-3760-A3BA-D8DF8FA5B8AF.dita"><apiname>CBlockChainingMode</apiname></xref> class,
+which is a specialization of <xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita"><apiname>CBlockTransformation</apiname></xref>. The
+idea is that one gives an implementation of a <xref href="GUID-436C3EBE-FC60-3760-A3BA-D8DF8FA5B8AF.dita"><apiname>CBlockChainingMode</apiname></xref> another <xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita"><apiname>CBlockTransformation</apiname></xref> (<xref href="GUID-AE1A9AC0-DB79-3C62-AA23-896812F25F14.dita"><apiname>CAESEncryptor</apiname></xref>, for instance) and then performs all operations on the <xref href="GUID-436C3EBE-FC60-3760-A3BA-D8DF8FA5B8AF.dita"><apiname>CBlockChainingMode</apiname></xref> instance.
+When <xref href="GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD.dita#GUID-CFDA5321-EE13-3203-8DED-71E69D4469BD/GUID-A4F36BDB-5FB3-3082-B362-30A59D13B104"><apiname>CBlockTransformation::Transform()</apiname></xref> is called on the
+mode, it is responsible for calling <codeph>Transform()</codeph> on the underlying
+transformation that it owns and then applying its own chaining mode transformation. </p> <p>The
+following example shows how to create a buffered AES CBC encryptor. </p> <codeblock id="GUID-A3DFB7C2-D727-553C-9BF9-0E865417DBA3" xml:space="preserve">
+CBlockTransformation* basicAesBlock = 0;
+CBlockTransformation* cbcBlock = 0;
+basicAesBlock = CAESEncryptor::NewLC(aKey);
+cbcBlock = CModeCBCEncryptor::NewL(basicAesBlock, iv);
+CleanupStack::Pop(basicAesBlock); //owned by cbcBlock
+CleanupStack::PushL(cbcBlock);
+CPadding* padding = CPaddingSSLv3::NewLC(KAESBlockSize); //The blocksize of AES (16 bytes)
+CSymmetricCipher* cipher = CBufferedEncryptor::NewL(cbcBlock, padding);
+CleanupStack::Pop(2, cbcBlock); //padding, cbcBlock -&gt; both owned by cipher
+</codeblock> </section>
+<section id="GUID-86CD649D-3611-531A-8D9E-1FCC9728500B"><title>Which symmetric
+cipher should I use? </title> <p>Generally, when implementing secure comms
+protocols, the cipher you use will be dictated by the protocol specification.
+However, if you are writing your own application, you should consider the
+use of AES (<xref href="GUID-AE1A9AC0-DB79-3C62-AA23-896812F25F14.dita"><apiname>CAESEncryptor</apiname></xref>); this is the cipher recommended
+by <xref href="http://csrc.nist.gov/cryptval/" scope="external">NIST</xref>. </p> </section>
+<section id="GUID-3393A9D6-CB78-5740-B250-F9C1C26C59BD"><title>How does buffering
+work within the symmetric cipher framework? </title> <ul>
+<li id="GUID-2A87BE74-9F27-5F0A-BA32-706FF5B1861B"><p> <b>Stream ciphers</b> consume
+all content they are given. That is, the value returned from <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita#GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B/GUID-31976831-1620-3396-8E91-BBF934D4167D"><apiname>CSymmetricCipher::MaxOutputLength()</apiname></xref> is
+always the same as the <codeph>aInputLength</codeph> parameter passed in. </p> </li>
+<li id="GUID-E63F6682-E96F-5AB7-9786-E7F210B321ED"><p> <b>Block ciphers</b> controlled
+through a <xref href="GUID-65F145BB-CE4B-3BCC-A9FC-5F9107F32488.dita"><apiname>CBufferedTransformation</apiname></xref> operate under the following
+rules: </p> <ul>
+<li id="GUID-3D963E44-1D4E-5505-9124-47DF2F145118"><p> <codeph>Process() </codeph>  </p> <ul id="GUID-943B86EF-01BD-53CB-B68F-507753850EC4">
+<li id="GUID-271426C1-8E3E-5C95-8D55-1C3F2F2FC771"><p>Any previously buffered
+data is (logically) prepended to <codeph>aInput</codeph>. </p> </li>
+<li id="GUID-84C9BDF7-6BE5-5D02-9F00-1386F175757F"><p>All whole blocks are
+transformed and appended to <codeph>aOutput</codeph>. </p> </li>
+<li id="GUID-80FB971C-FAE8-576D-95A8-2762343B2B74"><p>Any remaining partial
+blocks, orphaned by the above rule, are buffered. </p> </li>
+</ul> </li>
+<li id="GUID-93D49834-2716-5992-9B56-195813C3F4E0"><p> <codeph>ProcessFinalL()</codeph>  </p> <ul>
+<li id="GUID-B5B476B7-EAC3-594C-B613-88900BB99654"><p>Encryption </p> <ol id="GUID-FD8C1EAA-3C8F-5034-ABAA-F4DFB6B2493A">
+<li id="GUID-21579114-8456-573A-A79E-F8C84A7AFFCA"><p>Any previously buffered
+data is (logically) prepended to <codeph>aInput</codeph>. </p> </li>
+<li id="GUID-1C3199C1-41C1-5524-AD65-52D0F60816C1"><p>All whole block are
+transformed and appended to <codeph>aOutput</codeph>. </p> </li>
+<li id="GUID-7DF3B7AB-4C91-5C83-A963-5C18057AC8D3"><p>Any remaining partial
+blocks are padded with underlying padding system to be block aligned <i>to
+the padding block size</i>. (In the vast majority of cases, the padding block
+size is equal to the block cipher block size). </p> </li>
+<li id="GUID-6709F044-F7D7-5BBD-8816-9829ECBD8F17"><p>The resulting block(s)
+are transformed and appended to <codeph>aOutput</codeph>. </p> </li>
+</ol> </li>
+<li id="GUID-1BD95B71-34F8-57D9-A882-9EE616A82512"><p>Decryption </p> <ol id="GUID-46984F1C-D4CA-5719-8235-CF22A3325B37">
+<li id="GUID-3F4DABA6-9CFB-5F05-8B98-6F14CB64EFC4"><p>The input <b>must</b> be
+a multiple of the block size. </p> </li>
+<li id="GUID-A555D9FE-3211-521A-903E-5E22FF017FCE"><p>Data is decrypted and
+unpadded using underlying padding system. </p> </li>
+<li id="GUID-57C20E84-CF6C-5699-ABF0-D5080D8517A4"><p>Decrypted, unpadded
+data is appended to <codeph>aOutput</codeph>. </p> </li>
+</ol> </li>
+</ul> </li>
+</ul> </li>
+</ul> <p>In all cases <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita#GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B/GUID-31976831-1620-3396-8E91-BBF934D4167D"><apiname>CSymmetricCipher::MaxOutputLength()</apiname></xref> returns
+as tight an upper bound as possible on the number of bytes that will be returned
+by a call to <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita#GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B/GUID-97E4F631-9CD5-3295-A22C-AAA5A4708FE9"><apiname>CSymmetricCipher::Process()</apiname></xref> with a specified
+number of input bytes. Correspondingly, <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita#GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B/GUID-3675861D-0520-3F85-BA2B-AA3CF1964483"><apiname>CSymmetricCipher::MaxFinalOutputLength()</apiname></xref> returns
+a similar bound but for a pending call to <xref href="GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B.dita#GUID-F4E08165-A654-3D32-8FED-7ED54BDAD88B/GUID-BE38C96D-F071-3385-8C7D-09BA4FC44432"><apiname>CSymmetricCipher::ProcessFinalL()</apiname></xref>. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,148 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35"><title> Using the Encoded H264 Video Frames to Capture Video</title><shortdesc>This topic describes how to use the encoded H264 video frames in the Ecam video capture function to capture the video data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <prereq id="GUID-E8812B46-29C5-56D8-9658-B0B03D601B2C"><p>You need to be familiar with the <xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Capturing Video</xref> tutorial. </p> </prereq> <context id="GUID-3B0CFDEE-297B-56D0-A73A-B45C2E8C550C"><p>The H264 video encoder provides a new, high quality video data encoding format for Ecam. Ecam allows the device to capture video frames which are encoded in the H264 format. The Ecam video capture function supports the H264 video capture format by default. You can select the H264 video capture format when preparing video capture. </p> </context> <steps id="GUID-459D27D6-C0F7-5B94-8E34-C250AF3B6B77"><step id="GUID-4A02BBE6-CDAE-5FD1-8F05-30867627197B"><cmd/><stepxmp>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::NewL()</apiname></xref> function to create an object that maps the exported call to an internal object of the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraVideoCaptureControl</apiname></xref> function. </stepxmp> </step> <step id="GUID-480FA9CE-DC0A-5586-A4C2-A2DEB1D7BCEE"><cmd/><info>Pass a handle to the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraVideoCaptureControl</apiname></xref> function. This implementation creates a handle to the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl</apiname></xref> object by the active <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> during the construction phase. </info> <info>The <codeph>CCameraVideoCaptureControl</codeph> object makes an internal call to the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera::CustomInterface()</apiname></xref> function of the active <codeph>CCamera</codeph> implementation. The <codeph>CustomInterface()</codeph> function passes a UID <codeph>KECamMCameraVideoCaptureControlUid</codeph> value for the <codeph>CCamera</codeph> implementation. </info> <info>The <codeph>CCamera</codeph> implementation creates the concrete implementation of the <codeph>MCameraVideoCaptureControl</codeph> function and passes back a handle to the <codeph>CCameraVideoCaptureControl</codeph> object. </info> </step> <step id="GUID-1F00FA5C-498E-505F-8A2B-B1DB2E5528C4"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCaptureVideoObserver</apiname></xref> function to notify when the video capture operations are ready. </info> </step> <step id="GUID-02A5B55C-7BF4-5740-9AA6-DE93C764F572"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::GetVideoCaptureSupportInfoL()</apiname></xref> to identify which video capture modes are supported by the <codeph>CCamera</codeph> implementation. </info> </step> <step id="GUID-4618EA07-9B5A-509C-8196-4C545A2CA014"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>TPrepareVideoParameters::SetVideoCaptureType()</apiname></xref> function to set the desired video capture mode as the <codeph>EClientVideoCapture</codeph> or <codeph>EDirectVideoCapture</codeph> mode. </info> </step> <step id="GUID-F2EE097C-A418-51EB-9870-3E0C665B5D9D"><cmd/><info>Set the value of <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::TPrepareVideoParameter::iFormat()</apiname></xref> to the <codeph>EFormatEncodedH264</codeph> value for the <codeph>CCamera</codeph> implementation. This <codeph>CCamera</codeph> implementation supports the H264 video encoding data format. </info> </step> <step id="GUID-84015E19-B259-59DD-B178-7B04EBAC7514"><cmd/><info>Prepare video capture by using the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::PrepareVideoCapture()</apiname></xref> asynchronous function. The <codeph>PrepareVideoCapture()</codeph> function performs setup and allocation of memory before calling the <codeph>StartVideoCapture()</codeph> function, in order to keep minimum latency of the <codeph>PrepareVideoCapture()</codeph> function. </info> </step> <step id="GUID-BEE6A815-D252-5958-A7CA-CD481FB30A9C"><cmd/><info>Notify the Ecam client to complete the video capture preparation using the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>KUidECamEventVideoCaptureControlPrepareComplete</apiname></xref> event. </info> </step> <step id="GUID-629707E2-1139-5A1D-A366-4442440A77F2"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::StartVideoCaptureL()</apiname></xref> function to start video capture. </info> </step> <step id="GUID-0AC88670-8F5A-53D6-88C8-4D3C741D7114"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera::CCameraVideoCaptureControl::PauseVideoCapture()</apiname></xref> function to pause the on-going video capture. </info> </step> <step id="GUID-072B351C-23E9-5BCD-8E25-371B24B6708F"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CcameraVideoCaptureControl::GetPrepareVideoParameterl()</apiname></xref> function to retrieve the current prepare video parameters. The current video capture mode is retrieved by the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>TPrepareVideoParameters::VideoCaptureMode()</apiname></xref> function. </info> </step> <step id="GUID-DFED1955-7B01-549E-8966-69E972DAACD2"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera::CCameraVideoCaptureControl::ResumeVideoCaptureL()</apiname></xref> function to resume the on-going video capture. </info> </step> <step id="GUID-4A7B8939-36FF-5484-9450-7914DA5E52E7"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera::CCameraVideoCaptureControl::StopVideoCapture()</apiname></xref> function to stop video capture. </info> </step> <step id="GUID-799FED22-0DBA-5625-BF8E-20B2FEF87D99"><cmd/><info>Call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraVideoCaptureControl::ReleaseVideoResource()</apiname></xref> function to release the video resource, which is allocated while performing the <codeph>PrepareVideoCapture()</codeph> function. </info> </step> <step id="GUID-941398B5-722A-57CA-95FF-220E3C6DECE6"><cmd/><info>If an error occurs while performing video capture, call the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCaptureVideoObserver::DirectVideoCaptureFailed()</apiname></xref> function. Any video capture operation is stopped. </info> </step> </steps> <example><title>Example</title> <p>The following example code snippet illustrates video capture using H264 encoding: </p> <codeblock id="GUID-20E7DB2D-56B3-5E64-8B8F-C91188BB93D7" xml:space="preserve">
-
-CCamera* camera = NULL;
-MCameraObserver2* observer2 = NULL;
-
-CCamera::CCameraVideoCaptureControl* videocapture = NULL;
-MCaptureVideoObserver* videoObserver = NULL;
-
-camera = CCamera::New2L(*observer2, 0, 0);
-
-videocapture  = CCamera::CCameraVideoCaptureControl::NewL(*camera, *videoObserver);
-
-CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters prepareVideoParameters;
-
-TInt supportedDVCType = -1;
-
-// To retrieve the supported video capture mode
-videocapture-&gt;GetVideoCaptureSupportInfoL(supportedDVCType); 
- 
-// To set the video capture mode, if supported by the CCamera implementation
-prepareVideoParameters.SetVideoCaptureType(CCamera::CCameraVideoCaptureControl::EDirectVideoCapture);  
-
-// To set encoding for the H264 video data format
-prepareVideoParameters.iFormat = CCamera::EFormatEncodedH264; 
-
-// To set aspect ratio for the chosen H264 video format 
-prepareVideoParameters.iPixelAspectRatio = CCamera::CCameraAdvancedSettings::EEPixelAspect40To33;  
-
-videocapture-&gt;PrepareVideoCapture(prepareVideoParameters);
-
-videocapture-&gt;StartVideoCaptureL();
-
-videocapture-&gt;StopVideoCapture();
-    
-CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters retrievedVideoParam;
-videocapture-&gt;GetPrepareVideoParametersL(retrievedVideoParam);
-
-CCamera::CCameraVideoCaptureControl::TVideoCaptureType retrievedVideoCaptureType;
-retrievedVideoCaptureType = retrievedVideoParam.VideoCaptureType();
-
-
-</codeblock> </example> </taskbody><related-links><link href="GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita"><linktext>Camera API</linktext> </link> <link href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita"><linktext>Accessing and Power Control of
-                Camera</linktext> </link> <link href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita"><linktext>Camera Preset Support</linktext> </link> <link href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita"><linktext>Capturing Image</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-D038D77F-A6B8-5A18-8978-4981AE8D0F35" xml:lang="en"><title> Using
+the Encoded H264 Video Frames to Capture Video</title><shortdesc>This topic describes how to use the encoded H264 video frames in
+the Ecam video capture function to capture the video data. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-E8812B46-29C5-56D8-9658-B0B03D601B2C"><p>You need to be familiar
+with the <xref href="GUID-AB9A3EA2-2B99-4502-A161-8EE5BF477D41.dita">Capturing
+a Video Clip</xref> tutorial. </p> </prereq>
+<context id="GUID-3B0CFDEE-297B-56D0-A73A-B45C2E8C550C"><p>The H264 video
+encoder provides a new, high quality video data encoding format for Ecam.
+Ecam allows the device to capture video frames which are encoded in the H264
+format. The Ecam video capture function supports the H264 video capture format
+by default. You can select the H264 video capture format when preparing video
+capture. </p> </context>
+<steps id="GUID-459D27D6-C0F7-5B94-8E34-C250AF3B6B77">
+<step id="GUID-4A02BBE6-CDAE-5FD1-8F05-30867627197B"><cmd/>
+<stepxmp>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-657990CF-32FF-34A0-9D82-FAC1E7913494"><apiname>CCamera::CCameraVideoCaptureControl::NewL(CCamera
+&amp;,MCaptureVideoObserver &amp;)</apiname></xref> function to create an object
+that maps the exported call to an internal object of the <xref href="GUID-11495CEA-9F67-3B9A-A35C-E7555ED28316.dita"><apiname>MCameraVideoCaptureControl</apiname></xref> function. </stepxmp>
+</step>
+<step id="GUID-480FA9CE-DC0A-5586-A4C2-A2DEB1D7BCEE"><cmd/>
+<info>Pass a handle to the <xref href="GUID-11495CEA-9F67-3B9A-A35C-E7555ED28316.dita"><apiname>MCameraVideoCaptureControl</apiname></xref> function.
+This implementation creates a handle to the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460"><apiname>CCamera::CCameraVideoCaptureControl</apiname></xref> object
+by the active <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> during the construction phase. </info>
+<info>The <codeph>CCameraVideoCaptureControl</codeph> object makes an internal
+call to the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-2F2F5EB8-1009-306D-A7C4-25BE5A39AA39"><apiname>CCamera::CustomInterface(TUid)</apiname></xref> function of
+the active <codeph>CCamera</codeph> implementation. The <codeph>CustomInterface()</codeph> function
+passes a UID <codeph>KECamMCameraVideoCaptureControlUid</codeph> value for
+the <codeph>CCamera</codeph> implementation. </info>
+<info>The <codeph>CCamera</codeph> implementation creates the concrete implementation
+of the <codeph>MCameraVideoCaptureControl</codeph> function and passes back
+a handle to the <codeph>CCameraVideoCaptureControl</codeph> object. </info>
+</step>
+<step id="GUID-1F00FA5C-498E-505F-8A2B-B1DB2E5528C4"><cmd/>
+<info>Call the <xref href="GUID-7FAEB878-52B1-3A54-9607-69AE09AB8AEB.dita"><apiname>MCaptureVideoObserver</apiname></xref> function to notify
+when the video capture operations are ready. </info>
+</step>
+<step id="GUID-02A5B55C-7BF4-5740-9AA6-DE93C764F572"><cmd/>
+<info>Call <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-4876C362-8BA1-3E91-9A3A-203FCC6F70DB"><apiname>CCamera::CCameraVideoCaptureControl::GetVideoCaptureSupportInfoL(TInt
+&amp;)const</apiname></xref> to identify which video capture modes are supported
+by the <codeph>CCamera</codeph> implementation. </info>
+</step>
+<step id="GUID-4618EA07-9B5A-509C-8196-4C545A2CA014"><cmd/>
+<info>Call the <xref href="GUID-1D8E709A-35E2-3CBE-A222-F8BA17A294DA.dita#GUID-1D8E709A-35E2-3CBE-A222-F8BA17A294DA/GUID-9069A4C8-CBEE-351B-8512-F5858F6387CD"><apiname>CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters::SetVideoCaptureType(CCamera::CCameraVideoCaptureControl::TVideoCaptureType)</apiname></xref> function to set the desired video capture mode as the <codeph>EClientVideoCapture</codeph> or <codeph>EDirectVideoCapture</codeph> mode. </info>
+</step>
+<step id="GUID-F2EE097C-A418-51EB-9870-3E0C665B5D9D"><cmd/>
+<info>Set the value of <xref href="GUID-007358AE-9795-33EB-A3BE-4788D309135D.dita#GUID-007358AE-9795-33EB-A3BE-4788D309135D/GUID-B533837C-5670-3115-9DAC-3C45B0A274E4"><apiname>CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters::iFormat</apiname></xref> to
+the <codeph>EFormatEncodedH264</codeph> value for the <codeph>CCamera</codeph> implementation.
+This <codeph>CCamera</codeph> implementation supports the H264 video encoding
+data format. </info>
+</step>
+<step id="GUID-84015E19-B259-59DD-B178-7B04EBAC7514"><cmd/>
+<info>Prepare video capture by using the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-91EA4417-6AF2-391E-BBB2-A6E202F835BB"><apiname>CCamera::CCameraVideoCaptureControl::PrepareVideoCapture(const
+TPrepareVideoParameters &amp;)</apiname></xref> asynchronous function. The <codeph>PrepareVideoCapture()</codeph> function
+performs setup and allocation of memory before calling the <codeph>StartVideoCapture()</codeph> function,
+in order to keep minimum latency of the <codeph>PrepareVideoCapture()</codeph> function. </info>
+</step>
+<step id="GUID-BEE6A815-D252-5958-A7CA-CD481FB30A9C"><cmd/>
+<info>Notify the Ecam client to complete the video capture preparation using
+the <xref href="GUID-203BEBE6-F7B8-30EA-824B-AA45B88304E1.dita"><apiname>KUidECamEventVideoCaptureControlPrepareComplete</apiname></xref> event. </info>
+</step>
+<step id="GUID-629707E2-1139-5A1D-A366-4442440A77F2"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-774897D4-271E-3D7D-AAA6-033D34A39D74"><apiname>CCamera::CCameraVideoCaptureControl::StartVideoCaptureL()</apiname></xref> function
+to start video capture. </info>
+</step>
+<step id="GUID-0AC88670-8F5A-53D6-88C8-4D3C741D7114"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-5EB82FE6-4025-3F78-9DAD-6851086A46C6"><apiname>CCamera::CCameraVideoCaptureControl::PauseVideoCapture()</apiname></xref> function
+to pause the on-going video capture. </info>
+</step>
+<step id="GUID-072B351C-23E9-5BCD-8E25-371B24B6708F"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-AAECC4A5-742A-3B17-9FBE-8051EF891476"><apiname>CCamera::CCameraVideoCaptureControl::GetPrepareVideoParametersL(TPrepareVideoParameters
+&amp;)const</apiname></xref> function to retrieve the current prepare video parameters.
+The current video capture type is retrieved by the <xref href="GUID-007358AE-9795-33EB-A3BE-4788D309135D.dita#GUID-007358AE-9795-33EB-A3BE-4788D309135D/GUID-ED307366-65E3-3557-9479-463A595D34BC"><apiname>CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters::VideoCaptureType()const</apiname></xref> function. </info>
+</step>
+<step id="GUID-DFED1955-7B01-549E-8966-69E972DAACD2"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-D9BECEAD-8695-3B8B-A537-9F7B96EF1A2A"><apiname>CCamera::CCameraVideoCaptureControl::ResumeVideoCaptureL()</apiname></xref> function
+to resume the on-going video capture. </info>
+</step>
+<step id="GUID-4A7B8939-36FF-5484-9450-7914DA5E52E7"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-017E7D68-9971-3966-B863-95471AC8636F"><apiname>CCamera::CCameraVideoCaptureControl::StopVideoCapture()</apiname></xref> function
+to stop video capture. </info>
+</step>
+<step id="GUID-799FED22-0DBA-5625-BF8E-20B2FEF87D99"><cmd/>
+<info>Call the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-3234F65D-A8FC-334E-B1A5-4382862B071C"><apiname>CCamera::CCameraVideoCaptureControl::ReleaseVideoResource()()</apiname></xref> function
+to release the video resource, which is allocated while performing the <codeph>PrepareVideoCapture()</codeph> function. </info>
+</step>
+<step id="GUID-941398B5-722A-57CA-95FF-220E3C6DECE6"><cmd/>
+<info>If an error occurs while performing video capture, call the <xref href="GUID-7FAEB878-52B1-3A54-9607-69AE09AB8AEB.dita#GUID-7FAEB878-52B1-3A54-9607-69AE09AB8AEB/GUID-5B505097-BA38-3CF9-86D8-EA62EC2CFBB4"><apiname>MCaptureVideoObserver::DirectVideoCaptureFailed(TInt)</apiname></xref> function. Any video capture operation is stopped. </info>
+</step>
+</steps>
+<example><title>Example</title> <p>The following example code snippet illustrates
+video capture using H264 encoding: </p> <codeblock id="GUID-20E7DB2D-56B3-5E64-8B8F-C91188BB93D7" xml:space="preserve">
+
+CCamera* camera = NULL;
+MCameraObserver2* observer2 = NULL;
+
+CCamera::CCameraVideoCaptureControl* videocapture = NULL;
+MCaptureVideoObserver* videoObserver = NULL;
+
+camera = CCamera::New2L(*observer2, 0, 0);
+
+videocapture  = CCamera::CCameraVideoCaptureControl::NewL(*camera, *videoObserver);
+
+CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters prepareVideoParameters;
+
+TInt supportedDVCType = -1;
+
+// To retrieve the supported video capture mode
+videocapture-&gt;GetVideoCaptureSupportInfoL(supportedDVCType); 
+ 
+// To set the video capture mode, if supported by the CCamera implementation
+prepareVideoParameters.SetVideoCaptureType(CCamera::CCameraVideoCaptureControl::EDirectVideoCapture);  
+
+// To set encoding for the H264 video data format
+prepareVideoParameters.iFormat = CCamera::EFormatEncodedH264; 
+
+// To set aspect ratio for the chosen H264 video format 
+prepareVideoParameters.iPixelAspectRatio = CCamera::CCameraAdvancedSettings::EEPixelAspect40To33;  
+
+videocapture-&gt;PrepareVideoCapture(prepareVideoParameters);
+
+videocapture-&gt;StartVideoCaptureL();
+
+videocapture-&gt;StopVideoCapture();
+    
+CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters retrievedVideoParam;
+videocapture-&gt;GetPrepareVideoParametersL(retrievedVideoParam);
+
+CCamera::CCameraVideoCaptureControl::TVideoCaptureType retrievedVideoCaptureType;
+retrievedVideoCaptureType = retrievedVideoParam.VideoCaptureType();
+
+
+</codeblock> </example>
+</taskbody><related-links>
+<link href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita"><linktext>Camera Preset
+Support</linktext></link>
+<link href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita"><linktext>Capturing
+Still Images</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e195099_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D04DD8E6-804F-539E-8BD1-146210F4A51C_d0e200107_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,86 +1,86 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90" xml:lang="en"><title>How to
-form links</title><shortdesc>This document describes how to use links within a doubly linked
-list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>To form a doubly linked list of <codeph>CMyClass</codeph> objects, include
-the link object <codeph>TDblQueLink</codeph> as a component of <codeph>CMyClass</codeph>:</p>
-<codeblock id="GUID-E595B603-FC0D-5AF3-9228-7D40C3A08271" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TDblQueLink iDlink;
-    ...
-    };</codeblock>
-<fig id="GUID-30C9DE23-1805-594C-9F7F-BD4A161DE59A">
-<image href="GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e217456_href.png" placement="inline"/>
-</fig>
-<p>Although any kind of object can be an element of a linked list, most lists
-consist of elements which are all of the same type.</p>
-<p>An object can participate in more than one list. For example, to allow <codeph>CMyClass</codeph> objects
-to participate in two doubly linked lists, include two separate <codeph>TDblQueLink</codeph> objects
-as components of <codeph>CMyClass</codeph>:</p>
-<codeblock id="GUID-2027BF61-9834-5915-9911-3420CAC7061A" xml:space="preserve">class CMyClass : public CBase
-    {
-    ...
-    TDblQueLink iDlink1;
-    ...
-    TDblQueLink iDlink2;
-    };</codeblock>
-<fig id="GUID-DC3DDF09-2F30-5704-ACB0-378622DDDD88">
-<image href="GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e217479_href.png" placement="inline"/>
-</fig>
-<p>Elements can also be objects constructed from a variety of classes, all
-ultimately derived from the same base class, where that base class includes
-the link object as a component. For example, if <codeph>CBc</codeph> is a
-base class for <codeph>CD1</codeph> which, in turn, is a base class for <codeph>CD2</codeph>,
-then the elements of the list can consist of a mix of <codeph>CBc</codeph> or <codeph>CDc1</codeph> or <codeph>CDc2</codeph> objects.</p>
-<codeblock id="GUID-C274DD90-E21A-5BAD-8094-79CE23CDA1B9" xml:space="preserve">class CBc : public CBase
-    {
-    ...
-    TDblQueLink iDlink;
-    ...
-    };</codeblock>
-<codeblock id="GUID-6BAAB6AA-421F-51CE-8650-2FEDA3EB0A83" xml:space="preserve">class CDc1 : public CBclass
-    {
-    ...
-    }
-</codeblock>
-<codeblock id="GUID-1C1A9078-0F8A-5E24-82CF-BD0C199B4050" xml:space="preserve">class CDc2 : public CDc1
-    {
-    ...
-    }
-</codeblock>
-<fig id="GUID-F8769477-6B6C-5531-9675-AC66FE6B6E3D">
-<image href="GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e217514_href.png" placement="inline"/>
-</fig>
-<p>New link elements are inserted into an existing list using either <codeph>TDblQueLink::Enque()</codeph> or <codeph>TDblQueLink::AddBefore()</codeph> function. Note that <codeph>AddBefore()</codeph> is not available in v5.
-These are prototyped as:</p>
-<codeblock id="GUID-DDD3FDA3-4635-5AFE-9C17-994E5E4D1C59" xml:space="preserve">void Enque(TDblQueLinkBase* aLink);
-</codeblock>
-<codeblock id="GUID-F3E72D69-0180-5BAD-A2C6-E31704820AAF" xml:space="preserve">void AddBefore(TDblQueLinkBase* aLink);</codeblock>
-<p>Calling <codeph>Enque()</codeph> on an element means that this element
-is added to the list so that its position follows the element <i>aLink</i>,
-as the following figure shows.</p>
-<fig id="GUID-F46E770B-8BDC-5E61-9E28-043FDAA3B193">
-<image href="GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e217546_href.png" placement="inline"/>
-</fig>
-<p>Calling <codeph>AddBefore()</codeph> on an element means that this element
-is added to the list so that its position precedes the element <i>aLink</i>,
-as the following figure shows.</p>
-<fig id="GUID-0E6C9ADF-0182-52CC-A3D1-AE83F540E42B">
-<image href="GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e217560_href.png" placement="inline"/>
-</fig>
-<p>Note that new elements cannot be inserted at the beginning or end of a
-list using these functions. The <codeph>AddFirst()</codeph> and <codeph>AddLast()</codeph> members
-of the header class <codeph>TDblQue&lt;class         T&gt;</codeph> must be used
-instead.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D0BD34C9-7793-5FA0-8864-FD7444D62F90" xml:lang="en"><title>How to
+form links</title><shortdesc>This document describes how to use links within a doubly linked
+list.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>To form a doubly linked list of <codeph>CMyClass</codeph> objects, include
+the link object <codeph>TDblQueLink</codeph> as a component of <codeph>CMyClass</codeph>:</p>
+<codeblock id="GUID-E595B603-FC0D-5AF3-9228-7D40C3A08271" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TDblQueLink iDlink;
+    ...
+    };</codeblock>
+<fig id="GUID-30C9DE23-1805-594C-9F7F-BD4A161DE59A">
+<image href="GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e213719_href.png" placement="inline"/>
+</fig>
+<p>Although any kind of object can be an element of a linked list, most lists
+consist of elements which are all of the same type.</p>
+<p>An object can participate in more than one list. For example, to allow <codeph>CMyClass</codeph> objects
+to participate in two doubly linked lists, include two separate <codeph>TDblQueLink</codeph> objects
+as components of <codeph>CMyClass</codeph>:</p>
+<codeblock id="GUID-2027BF61-9834-5915-9911-3420CAC7061A" xml:space="preserve">class CMyClass : public CBase
+    {
+    ...
+    TDblQueLink iDlink1;
+    ...
+    TDblQueLink iDlink2;
+    };</codeblock>
+<fig id="GUID-DC3DDF09-2F30-5704-ACB0-378622DDDD88">
+<image href="GUID-B131AE10-B9B1-53D2-8CAA-A9045957D6F9_d0e213742_href.png" placement="inline"/>
+</fig>
+<p>Elements can also be objects constructed from a variety of classes, all
+ultimately derived from the same base class, where that base class includes
+the link object as a component. For example, if <codeph>CBc</codeph> is a
+base class for <codeph>CD1</codeph> which, in turn, is a base class for <codeph>CD2</codeph>,
+then the elements of the list can consist of a mix of <codeph>CBc</codeph> or <codeph>CDc1</codeph> or <codeph>CDc2</codeph> objects.</p>
+<codeblock id="GUID-C274DD90-E21A-5BAD-8094-79CE23CDA1B9" xml:space="preserve">class CBc : public CBase
+    {
+    ...
+    TDblQueLink iDlink;
+    ...
+    };</codeblock>
+<codeblock id="GUID-6BAAB6AA-421F-51CE-8650-2FEDA3EB0A83" xml:space="preserve">class CDc1 : public CBclass
+    {
+    ...
+    }
+</codeblock>
+<codeblock id="GUID-1C1A9078-0F8A-5E24-82CF-BD0C199B4050" xml:space="preserve">class CDc2 : public CDc1
+    {
+    ...
+    }
+</codeblock>
+<fig id="GUID-F8769477-6B6C-5531-9675-AC66FE6B6E3D">
+<image href="GUID-38FF81FD-0C23-586D-AFAE-9F0761A36BAD_d0e213777_href.png" placement="inline"/>
+</fig>
+<p>New link elements are inserted into an existing list using either <codeph>TDblQueLink::Enque()</codeph> or <codeph>TDblQueLink::AddBefore()</codeph> function. Note that <codeph>AddBefore()</codeph> is not available in v5.
+These are prototyped as:</p>
+<codeblock id="GUID-DDD3FDA3-4635-5AFE-9C17-994E5E4D1C59" xml:space="preserve">void Enque(TDblQueLinkBase* aLink);
+</codeblock>
+<codeblock id="GUID-F3E72D69-0180-5BAD-A2C6-E31704820AAF" xml:space="preserve">void AddBefore(TDblQueLinkBase* aLink);</codeblock>
+<p>Calling <codeph>Enque()</codeph> on an element means that this element
+is added to the list so that its position follows the element <i>aLink</i>,
+as the following figure shows.</p>
+<fig id="GUID-F46E770B-8BDC-5E61-9E28-043FDAA3B193">
+<image href="GUID-3E1199E4-4F19-58BB-B1EC-8975A04B68FF_d0e213809_href.png" placement="inline"/>
+</fig>
+<p>Calling <codeph>AddBefore()</codeph> on an element means that this element
+is added to the list so that its position precedes the element <i>aLink</i>,
+as the following figure shows.</p>
+<fig id="GUID-0E6C9ADF-0182-52CC-A3D1-AE83F540E42B">
+<image href="GUID-2AB5AA00-71B2-58F4-AE17-9A38D1E5AA99_d0e213823_href.png" placement="inline"/>
+</fig>
+<p>Note that new elements cannot be inserted at the beginning or end of a
+list using these functions. The <codeph>AddFirst()</codeph> and <codeph>AddLast()</codeph> members
+of the header class <codeph>TDblQue&lt;class         T&gt;</codeph> must be used
+instead.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,72 +1,80 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3" xml:lang="en"><title>Creating
-stylus pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Construct the menu using the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#9dda70f72d42d0877cbbf9ca299649af" format="application/java-archive"><codeph>NewL()</codeph></xref>in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref>.</p>
-<note> <p>The last parameter in the constructor is a pointer to the preview
-pop-up from which the stylus pop-up menu is launched. If you are not constructing
-a pop-up menu for a preview pop-up, set the parameter as <codeph>NULL</codeph>.</p></note>
-<p>To construct the menu from a resource, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#75cd95c35a6ed4734b93713596bb51d5" format="application/java-archive"><codeph>CAknStylusPopUpMenu::ConstructFromResourceL()</codeph></xref>.</p>
-<p>The following example illustrates a stylus pop-up menu opened in the location
-(not a preview pop-up) where the user taps with the stylus as well as the
-resource that defines the menu items:</p>
-<note><p>The menu is constructed only once: when <codeph>HandlePointerEventL</codeph> runs
-for the first time. Later the already constructed menu is shown again.</p></note>
-<codeblock xml:space="preserve">void CMyAppView::HandlePointerEventL
-    ( const TPointerEvent&amp; aPointerEvent )
-    {
-    if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
-        {
-        if ( !iMenu )
-            {
-            iMenu = CAknStylusPopUpMenu::NewL( 
-                    iMenuObserver, 
-                    aPointerEvent.iParentPosition, 
-                    NULL );
-            TInt resourceReaderId = 0;
-            resourceReaderId = R_MYAPP_STYLUS_MENU;
-            TResourceReader reader;
-            iCoeEnv-&gt;CreateResourceReaderLC( 
-                    reader, resourceReaderId );
-            iMenu-&gt;ConstructFromResourceL( reader );
-            CleanupStack::PopAndDestroy(); // reader
-            }
-        iMenu-&gt;SetPosition( aPointerEvent.iParentPosition );
-        iMenu-&gt;ShowMenu();
-        }
-    // Forward event to base class too.
-    CCoeControl::HandlePointerEventL( aPointerEvent );
-    }
-
-RESOURCE STYLUS_POPUP_MENU r_myapp_stylus_menu
-    {
-    items =
-        {
-        STYLUS_POPUP_MENU_ITEM 
-            {
-            txt = "Stylus Popup Menu Item 1"; 
-            command = EMyAppMenuItemCmd1;
-            },
-        STYLUS_POPUP_MENU_ITEM 
-            {
-            txt = "Stylus Popup Menu Item 2"; 
-            command = EMyAppMenuItemCmd2; 
-            },
-        STYLUS_POPUP_MENU_ITEM 
-            { 
-            txt = "Stylus Popup Menu Item 3"; 
-            command = EMyAppMenuItemCmd3; 
-            }
-        };
-    }
-</codeblock>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D0F6E95B-B35A-4EA1-8CC3-D86D1E0E6DD3" xml:lang="en"><title>Creating
+stylus pop-up menu</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Construct the menu using the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#9dda70f72d42d0877cbbf9ca299649af" format="application/java-archive"><codeph>NewL()</codeph></xref>in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html" format="application/java-archive"><codeph>CAknStylusPopUpMenu</codeph></xref>.</p>
+<note> <p>The last parameter in the constructor is a pointer to the preview
+pop-up from which the stylus pop-up menu is launched. If you are not constructing
+a pop-up menu for a preview pop-up, set the parameter as <codeph>NULL</codeph>.</p></note>
+<p>To construct the menu from a resource, use the method <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknStylusPopUpMenu.html#75cd95c35a6ed4734b93713596bb51d5" format="application/java-archive"><codeph>CAknStylusPopUpMenu::ConstructFromResourceL()</codeph></xref>.</p>
+<p>The following example illustrates a stylus pop-up menu opened in the location
+(not a preview pop-up) where the user taps with the stylus as well as the
+resource that defines the menu items:</p>
+<note><p>The menu is constructed only once: when <codeph>HandlePointerEventL</codeph> runs
+for the first time. Later the already constructed menu is shown again.</p></note>
+<p>The following code snippets explain how to create and display Stylus pop-up
+menu:<ul>
+<li><p><b>Creating directly:</b></p><codeblock xml:space="preserve">// member variable point to the stylus Popup menu
+CAknStylusPopUpMenu * iPopupMenu ;
+_LIT(KItem1, "Item 1");
+_LIT(KItem2, "Item 2");
+_LIT(KItem3, "Item 3");
+_LIT(KItem4, "Item 4");
+enum StylusPopupMenuCommand
+	{
+	StylusMenuCommand1 = 0 ,
+	StylusMenuCommand2,
+	StylusMenuCommand3,
+	StylusMenuCommand4
+	};
+// create object , “this” is a object implement the interface 
+// MEikMenuObserver
+iPopupMenu = CAknStylusPopUpMenu::NewL( this , TPoint( 0 , 0 ) );
+// add menu item
+iPopupMenu-&gt;AddMenuItemL( KItem1 , StylusMenuCommand1 );
+iPopupMenu-&gt;AddMenuItemL( KItem2 , StylusMenuCommand2 );
+iPopupMenu-&gt;AddMenuItemL( KItem3 , StylusMenuCommand3 );
+iPopupMenu-&gt;AddMenuItemL( KItem4 , StylusMenuCommand4 );
+</codeblock></li>
+<li><p><b>Creating through resource file:</b></p><codeblock xml:space="preserve">RESOURCE STYLUS_POPUP_MENU r_stylus_popup_menu
+	{
+		items =
+		{
+			STYLUS_POPUP_MENU_ITEM
+				{
+					txt = "Menu Item 1";
+					command = EStylusPopupCommand1;				},
+			STYLUS_POPUP_MENU_ITEM
+				{
+					txt = "Menu Item 2";
+					command = EStylusPopupCommand2;				},
+			STYLUS_POPUP_MENU_ITEM
+				{
+					txt = "Menu Item 3";
+					command = EStylusPopupCommand3;
+				}
+		};
+	}
+// create object
+iPopupMenu = CAknStylusPopUpMenu::NewL( this , TPoint( 0 , 0 ) );
+{
+	TResourceReader reader;
+	iCoeEnv-&gt;CreateResourceReaderLC( 
+                       reader , 
+                       R_STYLUS_POPUP_MENU );
+	iPopupMenu-&gt;ConstructFromResourceL( reader );
+		// destroy reader
+	CleanupStack::PopAndDestroy();
+}
+</codeblock></li>
+</ul></p>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D0FEE812-AD80-40D8-B902-05EC16C44C42.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-D0FEE812-AD80-40D8-B902-05EC16C44C42" xml:lang="en"><title>Opening
+a Connection to an IAP</title><shortdesc>Extended Connection Preferences API can be used by applications
+to set the preferred Internet Access Point (IAP) prior to establishing a connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-707C9659-1FAE-418E-88D7-1E62C0D7A7E1">       <p>Specifying
+IAP ID enables the applications to start a connection to a specific IAP. The
+application acquires a connection to the requested IAP, regardless of the
+existing connections.</p> </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-4-1-1-5-1-1-5-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-5-1-3-2-1"><cmd>Connect to<xref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita"> socket server </xref>.</cmd>
+<info> <codeblock xml:space="preserve">RSocketServ ss;
+ss.Connect();       </codeblock>                 </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-5-1-3-2-2"><cmd> Open a <xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita"> RConnection </xref> object.</cmd>
+<info> <codeblock xml:space="preserve">RConnection conn;
+conn.Open( ss );</codeblock>                  </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-5-1-3-2-3"><cmd>Create a connection
+preference list and extended connection preferences object.</cmd>
+<info> <codeblock xml:space="preserve">TConnPrefList prefList;
+TExtendedConnPref preferences;   </codeblock>                  </info>
+</step>
+<step id="GUID-A2DF22F2-7FB2-43EE-9DC6-A87BFB47B23F"><cmd>Define the IAP using <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita#GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A/GUID-D81D45EE-CA3C-3CB1-83EE-2EA313807AF4"><apiname>TExtendedConnPref::SetIapId()</apiname></xref>. </cmd>
+<info><codeblock xml:space="preserve">preferences.SetIapId( 8 );</codeblock></info>
+</step>
+<step id="GUID-65E4E92C-BDA3-4E95-8797-9A4E9A829B5D"><cmd>Append extended
+connection preferences into connection preference list. </cmd>
+<info><codeblock xml:space="preserve">prefList.AppendL( &amp;preferences );</codeblock></info>
+</step>
+<step id="GUID-7B2046C2-1F25-46C9-BDD8-66168AC52034"><cmd>Start a connection
+with connection preferences.</cmd>
+<info><codeblock xml:space="preserve">conn.Start( prefList );</codeblock></info>
+</step>
+</steps>
+<result id="GUID-705D9124-7F06-4305-B9A7-BE59A5052977">       <p>The application
+is connected to the specified IAP.</p>     </result>
+</taskbody><related-links>
+<link href="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita"><linktext>Additional
+Connection Preferences</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e354923_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D15068B5-D12E-5515-A772-EA3B304EE01E_d0e361003_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e36218_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D18E56F1-3DB9-472D-B587-30A168E8B8C4_d0e41785_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e203822_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D1E80B1B-FBFD-5FBC-981C-E2D04A02EF41_d0e208830_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5" xml:lang="en"><title>Video
-Renderer Overview</title><shortdesc>This topic describes the Video Renderer component and is aimed
-at video controller and video adaptation developers who want to take advantage
-of rendering to graphics surfaces. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The Video Renderer renders video to a graphics
-surface. The Video Renderer can be used by video decoders, video post-processors
-and video controllers. It can also be used to implement the <xref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita">ECam
-viewfinder</xref> using a graphics surface. </p> <p>The Video Renderer has
-two modes: timed and non-timed. In timed mode, the Video Renderer renders
-a frame at a specific time. In non-timed mode, the Video Renderer renders
-a frame immediately. </p> <p>On the Symbian platform, <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> (also
-known as the New Graphics Architecture or NGA) enables rendering to a graphics
-surface. The Video Renderer can only be used in conjunction with ScreenPlay.
-The Video Renderer does not contain any video or graphics processing software.
-All operations that are needed to display video content on the screen are
-handled by the <xref href="GUID-0DC3E5AA-1706-5255-ACD6-E7AB732E1095.dita">Graphics
-Composition Components</xref>. </p> <p>The Video Renderer component is classified
-as Optional Replaceable. This means that device creators can either substitute
-it with their own implementation or remove it if they do not want to use it. </p> </section>
-<section><title>Required background</title> <p>To understand the Video Renderer,
-the reader must be familiar with the following: </p> <ul>
-<li id="GUID-EAFD5638-403D-5D2F-A787-BD41EEE13CC3"><p><xref href="GUID-ADA8CECB-0E70-5B9C-8F36-0714AAF0CD13.dita">Graphics
-Surfaces</xref>  </p> </li>
-</ul> </section>
-<section><title>Architecture</title> <p>The Video Renderer can be implemented
-in two different ways, as shown in the following diagram: </p> <fig id="GUID-33691E6E-8B90-579B-876B-6F14E953BB7C">
-<title>              The two Video Renderer architectures            </title>
-<image href="GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e328111_href.png" placement="inline"/>
-</fig> <p> <b>Note</b>: For simplicity, only the Multimedia Framework client/controller
-thread boundary has been shown; other thread boundaries may exist. </p> <p>In
-both architectures, the <xref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita">Video
-Client API</xref> (<xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref>) is responsible
-for retrieving graphics surface handles from the video player controller and
-registering them with the <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window
-Server</xref>. The difference in the two approaches is in the implementation
-of the video adaptation and the video player controller: </p> <ul>
-<li id="GUID-F47C767B-5040-5E2D-B4A4-E6635B417371"><p> <b>Video adaptation
-approach</b>  </p> <p>The video adaptation uses the Video Renderer to create
-and manage graphics surfaces and handle video rendering. The video player
-controller simply passes surface information between <xref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita">DevVideoPlay</xref> and
-the client. An example of this is the Symbian reference AVI player controller
-and <xref href="http://developer.symbian.org/wiki/index.php/File:Xvid.zip" scope="external">XVid decoder</xref>. Symbian recommends this approach for
-new implementations. </p> </li>
-<li id="GUID-64AFC8B9-9BED-5B6D-8946-89BBBF9ACBC5"><p> <b>Video player controller
-approach</b>  </p> <p>The video player controller uses the Video Renderer
-to create and manage graphics surfaces, and handle video rendering and timing.
-This approach is suitable for implementations where DevVideoPlay is only used
-as a codec interface or where DevVideoPlay is not used. </p> </li>
-</ul> <p>In both architectures, the <xref href="GUID-81A0A2E9-4BB9-58BF-B2D3-08098E7E9C7C.dita">Surface
-Update</xref> component provides a communication channel between the Video
-Renderer and the composition engine. </p> </section>
-<section><title>APIs</title> <p>The Video Renderer component contains the
-following DLL with its associated APIs: </p> <table id="GUID-78EF57A1-34BE-5D0B-9B9B-4328FEC0C2C9">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>DLL</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <b>videorenderer.dll </b>  </p> </entry>
-<entry><p>The functionality of the Video Renderer is provided by the following
-key classes: </p> <ul>
-<li id="GUID-D40C598C-FCE4-5840-A58D-A1A8BAB2E52E"><p> <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer</apiname></xref> -
-a utility class for rendering video to graphics surfaces on behalf of a client. </p> </li>
-<li id="GUID-1C64FB8F-DAAD-5C76-9650-2984B68499E5"><p> <xref href="GUID-6BB74A8C-B243-368C-8114-E9D4C4D511D0.dita"><apiname>MVideoRendererObserver</apiname></xref> -
-an observer class that provides notifications about the availability and status
-of buffers submitted for rendering. </p> </li>
-<li id="GUID-DB5CFCD9-7ED3-54F6-8E88-182481933170"><p> <xref href="GUID-95DB347F-D669-394D-9BD4-3A2BD18554D4.dita"><apiname>TVideoFrameBuffer</apiname></xref> -
-represents a buffer for a single decoded video picture. </p> </li>
-</ul> <p>The Video Renderer also uses a resource file (<filepath>videorenderer.rss</filepath>)
-to store supported pixel formats and timed mode values. For more information,
-see <xref href="GUID-6021BE18-3416-55DF-A628-0071024D7586.dita">Video Renderer
-Resource File</xref>. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>The Video Renderer is used for the
-following: </p> <ul>
-<li id="GUID-89CA724E-B873-5C9E-8923-700C48D6EC7A"><p>Creating a surface for
-video rendering </p> </li>
-<li id="GUID-0698BBA1-E5EB-561A-AA77-27C80927C1DF"><p>Supplying buffers to
-decode video frames into </p> </li>
-<li id="GUID-F650FB8E-2222-5BAD-B7A3-3F90DDCCD2F7"><p>Rendering a buffer on
-the display (timed or non-timed) </p> </li>
-<li id="GUID-78941DFB-FBDF-5583-9FCE-DDD53818D202"><p>Destroying a surface. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita"><linktext>Video Client</linktext>
-</link>
-<link href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita"><linktext>Multimedia
-Framework (MMF)</linktext></link>
-<link href="GUID-97F83011-BE3C-512C-9599-028CBB92BD51.dita"><linktext>Multimedia
-Plug-ins</linktext></link>
-<link href="GUID-842D8124-554F-5D89-9E20-8B48EA539D2F.dita"><linktext>Video HAI</linktext>
-</link>
-<link href="GUID-63CB6C7E-44EC-5D0B-A37D-FE78F7D76592.dita"><linktext>Graphics
-Surface Composition Collection</linktext></link>
-<link href="GUID-C7B420DE-CEDA-5D3F-8095-71136E862CDF.dita"><linktext>Surface Manager
-Component</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D1F29744-EB92-5811-A735-B0BC1B352ED5" xml:lang="en"><title>Video
+Renderer Overview</title><shortdesc>This topic describes the Video Renderer component and is aimed
+at video controller and video adaptation developers who want to take advantage
+of rendering to graphics surfaces. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The Video Renderer renders video to a graphics
+surface. The Video Renderer can be used by video decoders, video post-processors
+and video controllers. It can also be used to implement the <xref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita">ECam
+viewfinder</xref> using a graphics surface. </p> <p>The Video Renderer has
+two modes: timed and non-timed. In timed mode, the Video Renderer renders
+a frame at a specific time. In non-timed mode, the Video Renderer renders
+a frame immediately. </p> <p>On the Symbian platform, <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> (also
+known as the New Graphics Architecture or NGA) enables rendering to a graphics
+surface. The Video Renderer can only be used in conjunction with ScreenPlay.
+The Video Renderer does not contain any video or graphics processing software.
+All operations that are needed to display video content on the screen are
+handled by the <xref href="GUID-0DC3E5AA-1706-5255-ACD6-E7AB732E1095.dita">Graphics
+Composition Components</xref>. </p> <p>The Video Renderer component is classified
+as Optional Replaceable. This means that device creators can either substitute
+it with their own implementation or remove it if they do not want to use it. </p> </section>
+<section><title>Required background</title> <p>To understand the Video Renderer,
+the reader must be familiar with the following: </p> <ul>
+<li id="GUID-EAFD5638-403D-5D2F-A787-BD41EEE13CC3"><p><xref href="GUID-ADA8CECB-0E70-5B9C-8F36-0714AAF0CD13.dita">Graphics
+Surfaces</xref>  </p> </li>
+</ul> </section>
+<section><title>Architecture</title> <p>The Video Renderer can be implemented
+in two different ways, as shown in the following diagram: </p> <fig id="GUID-33691E6E-8B90-579B-876B-6F14E953BB7C">
+<title>              The two Video Renderer architectures            </title>
+<image href="GUID-BE11D652-3B39-51D2-ACE9-571E8EB71E94_d0e321954_href.png" placement="inline"/>
+</fig> <p> <b>Note</b>: For simplicity, only the Multimedia Framework client/controller
+thread boundary has been shown; other thread boundaries may exist. </p> <p>In
+both architectures, the <xref href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita">Video
+Client API</xref> (<xref href="GUID-42D1182F-46D8-3C78-8D3C-C1BB465FCA1F.dita"><apiname>CVideoPlayerUtility2</apiname></xref>) is responsible
+for retrieving graphics surface handles from the video player controller and
+registering them with the <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window
+Server</xref>. The difference in the two approaches is in the implementation
+of the video adaptation and the video player controller: </p> <ul>
+<li id="GUID-F47C767B-5040-5E2D-B4A4-E6635B417371"><p> <b>Video adaptation
+approach</b>  </p> <p>The video adaptation uses the Video Renderer to create
+and manage graphics surfaces and handle video rendering. The video player
+controller simply passes surface information between <xref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita">DevVideoPlay</xref> and
+the client. An example of this is the Symbian reference AVI player controller
+and <xref href="http://developer.symbian.org/wiki/index.php/File:Xvid.zip" scope="external">XVid decoder</xref>. Symbian recommends this approach for
+new implementations. </p> </li>
+<li id="GUID-64AFC8B9-9BED-5B6D-8946-89BBBF9ACBC5"><p> <b>Video player controller
+approach</b>  </p> <p>The video player controller uses the Video Renderer
+to create and manage graphics surfaces, and handle video rendering and timing.
+This approach is suitable for implementations where DevVideoPlay is only used
+as a codec interface or where DevVideoPlay is not used. </p> </li>
+</ul> <p>In both architectures, the <xref href="GUID-81A0A2E9-4BB9-58BF-B2D3-08098E7E9C7C.dita">Surface
+Update</xref> component provides a communication channel between the Video
+Renderer and the composition engine. </p> </section>
+<section><title>APIs</title> <p>The Video Renderer component contains the
+following DLL with its associated APIs: </p> <table id="GUID-78EF57A1-34BE-5D0B-9B9B-4328FEC0C2C9">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>DLL</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <b>videorenderer.dll </b>  </p> </entry>
+<entry><p>The functionality of the Video Renderer is provided by the following
+key classes: </p> <ul>
+<li id="GUID-D40C598C-FCE4-5840-A58D-A1A8BAB2E52E"><p> <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer</apiname></xref> -
+a utility class for rendering video to graphics surfaces on behalf of a client. </p> </li>
+<li id="GUID-1C64FB8F-DAAD-5C76-9650-2984B68499E5"><p> <xref href="GUID-6BB74A8C-B243-368C-8114-E9D4C4D511D0.dita"><apiname>MVideoRendererObserver</apiname></xref> -
+an observer class that provides notifications about the availability and status
+of buffers submitted for rendering. </p> </li>
+<li id="GUID-DB5CFCD9-7ED3-54F6-8E88-182481933170"><p> <xref href="GUID-95DB347F-D669-394D-9BD4-3A2BD18554D4.dita"><apiname>TVideoFrameBuffer</apiname></xref> -
+represents a buffer for a single decoded video picture. </p> </li>
+</ul> <p>The Video Renderer also uses a resource file (<filepath>videorenderer.rss</filepath>)
+to store supported pixel formats and timed mode values. For more information,
+see <xref href="GUID-6021BE18-3416-55DF-A628-0071024D7586.dita">Video Renderer
+Resource File</xref>. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>The Video Renderer is used for the
+following: </p> <ul>
+<li id="GUID-89CA724E-B873-5C9E-8923-700C48D6EC7A"><p>Creating a surface for
+video rendering </p> </li>
+<li id="GUID-0698BBA1-E5EB-561A-AA77-27C80927C1DF"><p>Supplying buffers to
+decode video frames into </p> </li>
+<li id="GUID-F650FB8E-2222-5BAD-B7A3-3F90DDCCD2F7"><p>Rendering a buffer on
+the display (timed or non-timed) </p> </li>
+<li id="GUID-78941DFB-FBDF-5583-9FCE-DDD53818D202"><p>Destroying a surface. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-0EE3180B-4814-517E-A6DD-748136C17D55.dita"><linktext>Video Client</linktext>
+</link>
+<link href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita"><linktext>Multimedia
+Framework (MMF)</linktext></link>
+<link href="GUID-97F83011-BE3C-512C-9599-028CBB92BD51.dita"><linktext>Multimedia
+Plug-ins</linktext></link>
+<link href="GUID-842D8124-554F-5D89-9E20-8B48EA539D2F.dita"><linktext>Video HAI</linktext>
+</link>
+<link href="GUID-63CB6C7E-44EC-5D0B-A37D-FE78F7D76592.dita"><linktext>Graphics
+Surface Composition Collection</linktext></link>
+<link href="GUID-C7B420DE-CEDA-5D3F-8095-71136E862CDF.dita"><linktext>Surface Manager
+Component</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,105 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA" xml:lang="en"><title>Special
-character table</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Special character table consists of symbols other than alphanumeric letters
-such as punctuation marks, currency symbols.</p>
-<p>The special character table works with touch down and release. Special
-character table can be found by:<ul>
-<li><p>short pressing <i>* §key_star_key§</i> key in virtual ITU-T.</p></li>
-<li><p>pressing the dedicated special character table button in handwriting
-recognition.</p></li>
-<li><p>pressing the dedicated special character table button in smiley picker.</p></li>
-</ul>Special character table does not have title or traditional
-softkeys.</p>
-<p>Orientation of special character table follows the orientation of the input
-method. For example, if the special character table is opened from the full
-screen QWERTY, the orientation is landscape. If the table is opened from smaller
-QWERTY which is in portrait, the orientation of the table should also be portrait.
-There is no focus in the grid but if evoked with hardware key event, focus
-is brought to the first item of the most recently used character row. </p>
-<p>The first row in the special character table consists of the Close button
-and can consist of the Smiley picker button. Smiley picker button can be hidden
-if needed by the application. The second row in the special character table
-displays most recently used characters. In portrait mode, the row consists
-of five items and in landscape, seven items. If characters cannot fit to one
-page, a page navigator is opened. Through this page navigator, user can change
-the page by tapping on the navigation arrows. Navigating arrows are looping
-so that user can access from the last page to the first page and vice versa. </p>
-<p>Special character table can be closed only by pressing the Close button.
-When the special character table is in landscape, the page navigator is moved
-to the top row next to the Close button. The amount of most recently used
-characters is increased by two items so that the table fills the entire display.</p>
-<fig id="GUID-C3DF380A-2419-46A8-B0D8-B81F162540F3">
-<title>Special character table portrait and landscape mode</title>
-<image href="GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e71293_href.png" placement="inline"/>
-</fig>
-<p/>
-<table id="GUID-A3962EAA-542C-48FC-93B6-C2D2686AA082"><title>Default touch
-events to special character table.</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback are provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on grid item</p></entry>
-<entry><p>Activates the selected item and closes the table.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event. No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on navigation arrow or smiley picker button</p></entry>
-<entry><p>Button pressed effect.</p></entry>
-<entry><p>Tactile: Basic button effect and audio feedback are provided with
-touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on navigation arrow</p></entry>
-<entry><p>Next or previous page of the table is opened.</p></entry>
-<entry><p>Tactile: Basic button effect is provided with touch release event.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on SCT button or smiley picker button</p></entry>
-<entry><p>Special character table is opened and smiley picker is closed or
-other way around.</p></entry>
-<entry><p>Tactile: Basic button effect is provided with touch release event.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on close button</p></entry>
-<entry><p>Table is closed, no characters are selected.</p></entry>
-<entry><p>Tactile: Basic button effect is provided with touch release event.
-No audio feedback is provided.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA" xml:lang="en"><title>Special
+character table</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Special character table consists of symbols other than alphanumeric letters
+such as punctuation marks, currency symbols.</p>
+<p>The special character table works with touch down and release. Special
+character table is opened by:<ul>
+<li><p>short pressing <i>* §key_star_key§</i> key in virtual ITU-T.</p></li>
+<li><p>pressing the dedicated special character table button in handwriting
+recognition.</p></li>
+<li><p>pressing the dedicated special character table button in smiley picker.</p></li>
+</ul>Special character table does not have title or traditional softkeys.</p>
+<p>Orientation of special character table follows the orientation of the input
+method. For example, if the special character table is opened from the full
+screen QWERTY, the orientation is landscape. If the table is opened from smaller
+QWERTY which is in portrait, the orientation of the table should also be portrait.
+There is no focus in the grid but if evoked with hardware key event, focus
+is brought to the first item of the most recently used character row. </p>
+<p>The first row in the special character table consists of the Close button
+and can consist of the Smiley picker button. Smiley picker button can be hidden
+if needed by the application. The second row in the special character table
+displays most recently used characters. In portrait mode, the row consists
+of five items and in landscape, seven items. If characters cannot fit to one
+page, a page navigator is opened. Through this page navigator, user can change
+the page by tapping on the navigation arrows. Navigating arrows are looping
+so that user can access from the last page to the first page and vice versa. </p>
+<p>Special character table can be closed only by pressing the Close button.
+When the special character table is in landscape, the page navigator is moved
+to the top row next to the Close button. The amount of most recently used
+characters is increased by two items so that the table fills the entire display.</p>
+<fig id="GUID-C3DF380A-2419-46A8-B0D8-B81F162540F3">
+<title>Special character table portrait and landscape mode</title>
+<image href="GUID-7C87B04A-1CCC-47D2-9B53-4E341412EFD2_d0e66044_href.png" placement="inline"/>
+</fig>
+<p/>
+<table id="GUID-A3962EAA-542C-48FC-93B6-C2D2686AA082"><title>Default touch
+events to special character table.</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback are provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on grid item</p></entry>
+<entry><p>Activates the selected item and closes the table.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event. No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on navigation arrow or smiley picker button</p></entry>
+<entry><p>Button pressed effect.</p></entry>
+<entry><p>Tactile: Basic button effect and audio feedback are provided with
+touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on navigation arrow</p></entry>
+<entry><p>Next or previous page of the table is opened.</p></entry>
+<entry><p>Tactile: Basic button effect is provided with touch release event.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on SCT button or smiley picker button</p></entry>
+<entry><p>Special character table is opened and smiley picker is closed or
+other way around.</p></entry>
+<entry><p>Tactile: Basic button effect is provided with touch release event.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on close button</p></entry>
+<entry><p>Table is closed, no characters are selected.</p></entry>
+<entry><p>Tactile: Basic button effect is provided with touch release event.
+No audio feedback is provided.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e10560_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D205622E-FB0F-59C4-A039-B418B551CBFA_d0e9285_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407085_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D222EAAA-ACF4-5837-8CDD-5EDB02EAE259_d0e407247_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF-master.png has changed
Binary file Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e53323_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e59088_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D2263F64-2582-473A-B939-ACEBF8E974BF_d0e82219_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D280276A-6E4C-41B7-B6EA-700B33B04981.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D280276A-6E4C-41B7-B6EA-700B33B04981" xml:lang="en"><title>IP Connection
+Management</title><shortdesc>The IP Connection Management package provides services to accommodate
+ automatic IP connection selection, application-assisted roaming logic, contention
+management for IP connections,  IP connection monitoring and logging, settings
+management for IP connections,  UI dialogs related to IP connections and managing
+PDP contexts.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7" xml:lang="en"><title>Open
-C String Utilities Example</title><shortdesc>String Utilities Library Example</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>String manipulation on Symbian platform is bit tricky. Even though Symbian
-platform has rich set of APIs for formatting/manipulating strings with both
-UNICODE (16 bit variants) and narrow character sets (8-bits), using those
-APIs will be bit complex for those who have familiarized Standard C string
-manipulations.  When one writes hybrid applications on Symbian platform using
-native Symbian APIs as well as Open C APIs, user may need to convert the descriptors
-of Symbian platform to standard C character strings and vice versa. Especially,
-in case of writing hybrid applications on open C, user will be facing this
-conversion problem more frequently. It is really difficult to do these conversions
-without the thorough knowledge of Symbian platform descriptors.   OpenCStringUtilitiesEx
-is a library, which makes Open C’s developers life easy. OpenCStringUtilitiesEx
-is a library, which exports several string- utility APIs for descriptor to
-character string conversions and vice versa. With the help of this library,
-user will be able to write a hybrid application on Open C, with out knowing
-much about the descriptors of Symbian platform. </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-15-1-3-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-ef84586b-da53-4132-b481-aef6ba5a0994.zip" scope="external"> OpenCStringUtilitiesEx.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-ef84586b-da53-4132-b481-aef6ba5a0994.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-15-1-3-3"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example.</p> <p><b>Capabilities</b> </p>The program
-capabilities are defined in: <filepath> stringutils.mmp</filepath>(DLL - library): <codeph>CAPABILITY
-NONE</codeph> <filepath>stringutils_example.mmp</filepath> (EXE - application): <codeph>CAPABILITY
-NONE</codeph>.<p><b>Module Hierarchy</b></p><p>This application has 2 modules
-as below:   String-utils library (OpenCStringUtilitiesLibEx.dll) that exports
-set of APIs for the user (OpenCStringUtilitiesLibEx).   An application (EXE)
-that demonstrates the usage of Open C APIs and also those APIs exported by
-String Utils library. (OpenCStringUtilitiesLibEx)  This example creates a
-DLL which exports set of generic APIs that can be used to convert descriptor
-of Symbian platform to character string and vice versa.   To give an rough
-idea on how to use these APIs, an EXE is provided that calls the APIs of OpenCStringUtilitiesLibEx
-and illustrates their uses.</p><p><b>Implementation details of EXE</b> </p>OpenCStringUtilitiesExeEx
-is a simple console based C application that uses String-utils library. This
-application uses main() as the entry point for the application.It demonstrates
-how to use String-utils library (OpenCStringUtilitiesLibEx.dll) APIs.  It
-has its own icon and can be launched from the UI both in the emulator and
-in the device. <p><b>APIs demonstrated</b></p><p><xref href="GUID-68B65AA3-AE49-390F-A2E2-30D8759F648D.dita"><apiname>tbuf16towchar</apiname></xref></p><p><xref href="GUID-6B38C374-D9EE-30CB-B554-76109A759715.dita"><apiname>tbuf16tochar</apiname></xref>  </p><p><xref href="GUID-CA1AF5CD-E167-3695-880D-D8C011AE1777.dita"><apiname>tbuf8towchar</apiname></xref>  </p><p><xref href="GUID-025329B8-54D2-334B-80B7-B01656B461CA.dita"><apiname>tbufC16towchar</apiname></xref></p><p> <xref href="GUID-E2CFBDCD-2864-3B23-B9E9-B98A16FA4341.dita"><apiname>tbufC8tochar</apiname></xref>  </p><p><xref href="GUID-599A5AA9-703A-3584-8F59-A9DFA1362B4A.dita"><apiname>tbufC16tochar</apiname></xref>  </p><p><xref href="GUID-70F3BC58-C386-3CFE-9A93-EB4F2A637875.dita"><apiname>tbufC8towchar</apiname></xref> </p><p> <xref href="GUID-B5674394-1D74-31BB-AF55-34AAEF9D5749.dita"><apiname>wchartotbuf16</apiname></xref>  </p><p><xref href="GUID-245EA280-238A-371A-AA4E-FF9D056DD288.dita"><apiname>chartotbuf16 </apiname></xref> </p><p><xref href="GUID-B9187887-00EE-3C97-AF98-21E29B27CE14.dita"><apiname>wchartotbuf8</apiname></xref>  </p><p><xref href="GUID-BD53EFB6-CE1E-3CBE-923B-3F3730272B60.dita"><apiname>chartotbuf8</apiname></xref> </p><p> <xref href="GUID-08726C60-7F87-3969-90A1-937ECADA3D88.dita"><apiname>wchartohbufc16</apiname></xref>  </p><p><xref href="GUID-387C67D2-C5D9-36E6-9E49-6917E0287266.dita"><apiname>chartohbufc16</apiname></xref>  </p><p><xref href="GUID-88876C84-4D4E-3FBB-A676-E621D3EC67C8.dita"><apiname>wchartohbufc8</apiname></xref>  </p><p><xref href="GUID-273E4D2E-83D2-3229-B973-16BD96B69C71.dita"><apiname>chartohbufc8</apiname></xref> </p><p> <xref href="GUID-D1E233B3-CB49-3ED2-B8E1-33761D41E501.dita"><apiname>hbufC16towchar</apiname></xref> </p><p> <xref href="GUID-EFBC32AF-3FDB-312E-B8A4-905B0767A743.dita"><apiname>hbufC16tochar</apiname></xref> </p><p> <xref href="GUID-ACAD2625-1E6D-3E13-B3DD-E59E97258F4A.dita"><apiname>hbufC8towchar</apiname></xref>  </p><p><xref href="GUID-8A8B0CC7-9270-346E-A835-5BD70B168204.dita"><apiname>hbufC8tochar</apiname></xref> </p></section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-15-1-3-4"><title>Building and
-Using</title> To build the example application, go to the OpenCStringUtilitiesEx\group
-directory and build the application.  The definition for the whole application
-can be found in the bld.inf file in the group subdirectory of the applications
-main directory. </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D28FA4E1-6A94-4508-95B3-ACE21BCE6EA7" xml:lang="en"><title>Open
+C String Utilities Example</title><shortdesc>String Utilities Library Example</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>String manipulation on Symbian platform is bit tricky. Even though Symbian
+platform has rich set of APIs for formatting/manipulating strings with both
+UNICODE (16 bit variants) and narrow character sets (8-bits), using those
+APIs will be bit complex for those who have familiarized Standard C string
+manipulations.  When one writes hybrid applications on Symbian platform using
+native Symbian APIs as well as Open C APIs, user may need to convert the descriptors
+of Symbian platform to standard C character strings and vice versa. Especially,
+in case of writing hybrid applications on open C, user will be facing this
+conversion problem more frequently. It is really difficult to do these conversions
+without the thorough knowledge of Symbian platform descriptors.   OpenCStringUtilitiesEx
+is a library, which makes Open C’s developers life easy. OpenCStringUtilitiesEx
+is a library, which exports several string- utility APIs for descriptor to
+character string conversions and vice versa. With the help of this library,
+user will be able to write a hybrid application on Open C, with out knowing
+much about the descriptors of Symbian platform. </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-14-1-3-2"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-ef84586b-da53-4132-b481-aef6ba5a0994.zip" scope="external"> OpenCStringUtilitiesEx.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-ef84586b-da53-4132-b481-aef6ba5a0994.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-14-1-3-3"><title>Design and
+Implementation</title> <p>The following sections provide information about
+the implementation of the example.</p> <p><b>Capabilities</b> </p>The program
+capabilities are defined in: <filepath> stringutils.mmp</filepath>(DLL - library): <codeph>CAPABILITY
+NONE</codeph> <filepath>stringutils_example.mmp</filepath> (EXE - application): <codeph>CAPABILITY
+NONE</codeph>.<p><b>Module Hierarchy</b></p><p>This application has 2 modules
+as below:   String-utils library (OpenCStringUtilitiesLibEx.dll) that exports
+set of APIs for the user (OpenCStringUtilitiesLibEx).   An application (EXE)
+that demonstrates the usage of Open C APIs and also those APIs exported by
+String Utils library. (OpenCStringUtilitiesLibEx)  This example creates a
+DLL which exports set of generic APIs that can be used to convert descriptor
+of Symbian platform to character string and vice versa.   To give an rough
+idea on how to use these APIs, an EXE is provided that calls the APIs of OpenCStringUtilitiesLibEx
+and illustrates their uses.</p><p><b>Implementation details of EXE</b> </p>OpenCStringUtilitiesExeEx
+is a simple console based C application that uses String-utils library. This
+application uses main() as the entry point for the application.It demonstrates
+how to use String-utils library (OpenCStringUtilitiesLibEx.dll) APIs.  It
+has its own icon and can be launched from the UI both in the emulator and
+in the device. <p><b>APIs demonstrated</b></p><p><xref href="GUID-68B65AA3-AE49-390F-A2E2-30D8759F648D.dita"><apiname>tbuf16towchar</apiname></xref></p><p><xref href="GUID-6B38C374-D9EE-30CB-B554-76109A759715.dita"><apiname>tbuf16tochar</apiname></xref>  </p><p><xref href="GUID-CA1AF5CD-E167-3695-880D-D8C011AE1777.dita"><apiname>tbuf8towchar</apiname></xref>  </p><p><xref href="GUID-025329B8-54D2-334B-80B7-B01656B461CA.dita"><apiname>tbufC16towchar</apiname></xref></p><p> <xref href="GUID-E2CFBDCD-2864-3B23-B9E9-B98A16FA4341.dita"><apiname>tbufC8tochar</apiname></xref>  </p><p><xref href="GUID-599A5AA9-703A-3584-8F59-A9DFA1362B4A.dita"><apiname>tbufC16tochar</apiname></xref>  </p><p><xref href="GUID-70F3BC58-C386-3CFE-9A93-EB4F2A637875.dita"><apiname>tbufC8towchar</apiname></xref> </p><p> <xref href="GUID-B5674394-1D74-31BB-AF55-34AAEF9D5749.dita"><apiname>wchartotbuf16</apiname></xref>  </p><p><xref href="GUID-245EA280-238A-371A-AA4E-FF9D056DD288.dita"><apiname>chartotbuf16 </apiname></xref> </p><p><xref href="GUID-B9187887-00EE-3C97-AF98-21E29B27CE14.dita"><apiname>wchartotbuf8</apiname></xref>  </p><p><xref href="GUID-BD53EFB6-CE1E-3CBE-923B-3F3730272B60.dita"><apiname>chartotbuf8</apiname></xref> </p><p> <xref href="GUID-08726C60-7F87-3969-90A1-937ECADA3D88.dita"><apiname>wchartohbufc16</apiname></xref>  </p><p><xref href="GUID-387C67D2-C5D9-36E6-9E49-6917E0287266.dita"><apiname>chartohbufc16</apiname></xref>  </p><p><xref href="GUID-88876C84-4D4E-3FBB-A676-E621D3EC67C8.dita"><apiname>wchartohbufc8</apiname></xref>  </p><p><xref href="GUID-273E4D2E-83D2-3229-B973-16BD96B69C71.dita"><apiname>chartohbufc8</apiname></xref> </p><p> <xref href="GUID-D1E233B3-CB49-3ED2-B8E1-33761D41E501.dita"><apiname>hbufC16towchar</apiname></xref> </p><p> <xref href="GUID-EFBC32AF-3FDB-312E-B8A4-905B0767A743.dita"><apiname>hbufC16tochar</apiname></xref> </p><p> <xref href="GUID-ACAD2625-1E6D-3E13-B3DD-E59E97258F4A.dita"><apiname>hbufC8towchar</apiname></xref>  </p><p><xref href="GUID-8A8B0CC7-9270-346E-A835-5BD70B168204.dita"><apiname>hbufC8tochar</apiname></xref> </p></section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-14-1-3-4"><title>Building and
+Using</title> To build the example application, go to the OpenCStringUtilitiesEx\group
+directory and build the application.  The definition for the whole application
+can be found in the bld.inf file in the group subdirectory of the applications
+main directory. </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF"><title>Bluetooth Management Collection Overview</title><shortdesc>The Bluetooth Management collection contains the Bluetooth Manager and Bluetooth Client components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-8EE69487-E1A0-530A-AFFB-15207C9A2CAC"><title>Purpose</title> <p>The Bluetooth Management collection contains the Bluetooth Manager and Bluetooth Client components. </p> </section> <section id="GUID-12AFDBB9-5468-5CBE-A6F4-FB8E83DB5DCB"><title>Architecture</title> <fig id="GUID-7B185CA7-F57D-5B4E-A8CB-86D539104AD3"><image href="GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398546_href.png" placement="inline"/></fig> </section> <section id="GUID-0EE39304-E0A7-5D42-8383-88EBE8398B96"><title>Components</title> <p>The Bluetooth Management collection contains the following components: </p> <ul><li id="GUID-7C57631F-BF43-53A7-846B-35853C981D88"><p> <b>Bluetooth Manager</b>  </p> <p>The Bluetooth Manager component stores non-volatile details of Bluetooth devices in the BT Registry using DBMS. Stored information can be retrieved, modified and deleted. </p> </li> <li id="GUID-EDBFC9AE-38B3-538C-8C85-4EF94D06B05C"><p> <b>Bluetooth Client</b>  </p> <p>The Bluetooth Client component provides support for configuring and managing Bluetooth sockets, accessing the HCI, and configuring Bluetooth AV sessions. </p> </li> </ul> </section> <section><title>Using Bluetooth Management</title> <p>The Bluetooth Management collection has the following uses: </p> <ul><li id="GUID-4F3EB06D-FA6C-5C97-8828-1679B0D75A4E"><p>storing, retrieving, modifying and deleting details from the Bluetooth Registry using <xref href="GUID-11E05C4A-CC94-5A0E-9D07-1863FB03747F.dita">Bluetooth Manager</xref> </p> </li> <li id="GUID-90425D29-F83A-5DC7-95ED-9025A20CBD46"><p>configuring and managing Bluetooth sockets, accessing the HCI and configuring Bluetooth AV sessions using the <xref href="GUID-8411E1C9-C6CC-5B0A-BEBA-74D0B8AABF35.dita">Bluetooth Client</xref>. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D2AE7E31-CAE7-5F03-8754-24172580BBAF"><title>Bluetooth Management Collection Overview</title><shortdesc>The Bluetooth Management collection contains the Bluetooth Manager and Bluetooth Client components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-8EE69487-E1A0-530A-AFFB-15207C9A2CAC"><title>Purpose</title> <p>The Bluetooth Management collection contains the Bluetooth Manager and Bluetooth Client components. </p> </section> <section id="GUID-12AFDBB9-5468-5CBE-A6F4-FB8E83DB5DCB"><title>Architecture</title> <fig id="GUID-7B185CA7-F57D-5B4E-A8CB-86D539104AD3"><image href="GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398384_href.png" placement="inline"/></fig> </section> <section id="GUID-0EE39304-E0A7-5D42-8383-88EBE8398B96"><title>Components</title> <p>The Bluetooth Management collection contains the following components: </p> <ul><li id="GUID-7C57631F-BF43-53A7-846B-35853C981D88"><p> <b>Bluetooth Manager</b>  </p> <p>The Bluetooth Manager component stores non-volatile details of Bluetooth devices in the BT Registry using DBMS. Stored information can be retrieved, modified and deleted. </p> </li> <li id="GUID-EDBFC9AE-38B3-538C-8C85-4EF94D06B05C"><p> <b>Bluetooth Client</b>  </p> <p>The Bluetooth Client component provides support for configuring and managing Bluetooth sockets, accessing the HCI, and configuring Bluetooth AV sessions. </p> </li> </ul> </section> <section><title>Using Bluetooth Management</title> <p>The Bluetooth Management collection has the following uses: </p> <ul><li id="GUID-4F3EB06D-FA6C-5C97-8828-1679B0D75A4E"><p>storing, retrieving, modifying and deleting details from the Bluetooth Registry using <xref href="GUID-11E05C4A-CC94-5A0E-9D07-1863FB03747F.dita">Bluetooth Manager</xref> </p> </li> <li id="GUID-90425D29-F83A-5DC7-95ED-9025A20CBD46"><p>configuring and managing Bluetooth sockets, accessing the HCI and configuring Bluetooth AV sessions using the <xref href="GUID-8411E1C9-C6CC-5B0A-BEBA-74D0B8AABF35.dita">Bluetooth Client</xref>. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e351327_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e357407_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D2D17EF9-FFC6-5FBD-A992-55746A12B625.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D2D17EF9-FFC6-5FBD-A992-55746A12B625" xml:lang="en"><title>Basic
+encryption and decryption using a symmetric cipher</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example demonstrates how to encrypt and decrypt a small string of
+data using a symmetric cipher. Firstly, an encryption operation is performed
+on the data. Following this a decryption operation is performed on the encrypted
+data. Finally a check is made on the decrypted data for equality with the
+original data which tests that the encrypt and decrypt operations have maintained
+data integrity. </p>
+<codeblock id="GUID-E9342EBD-213A-53CE-BA3E-93CC24D63319" xml:space="preserve">#include &lt;legacyselector.h&gt;
+#include &lt;cryptosymmetriccipherapi.h&gt;
+#include &lt;keys.h&gt;
+
+using namespace CryptoSpi;
+
+//Create a new CCryptoParams object to encapsulate the secret key string and key type
+CCryptoParams* params = CCryptoParams::NewLC(); 
+
+//Add the secret key to the CCryptoParams object by calling the CCryptoParams::AddL() method,  
+//passing in the key string and appropriate key parameter UID
+params-&gt;AddL( _L8("12345678"), KSymmetricKeyParameterUid);
+
+//Create a key object (CKey) by passing in an instance of TKeyProperty and the previously 
+//created CCryptoParams object containing the secret key. 
+TKeyProperty keyProperty = {KDesUid, KNullUid, KSymmetricKey, KNonEmbeddedKeyUid};
+CKey* key=CKey::NewL(keyProperty, *params); 
+CleanupStack::PushL(key);
+//Create and initialize a pointer for the Symmetric cipher implementation object
+CSymmetricCipher* impl = NULL;    
+
+//Create a symmetric cipher passing in the appropriate CKey object
+TRAPD(err, CSymmetricCipherFactory::CreateSymmetricCipherL
+    (impl,
+    KDesUid,
+    *key,
+    KCryptoModeEncryptUid,  // This can be either encrypt or decrypt
+    KOperationModeECBUid,   // Use "electronic code book" mode
+    KPaddingModeNoneUid,   // This is the type of padding to be used
+    NULL));
+
+//Check the return value and for non NULL
+if (impl &amp;&amp; (err == KErrNone))
+    {
+    //Create a buffer holding the data to be encrypted
+    TBuf8&lt;8&gt; srcData(_L8("12345678"));
+    
+    //Create a buffer to hold the encrypted data.
+    //MaxFinalOutputLength() returns the number of bytes the buffer passed to ProcessFinalL()
+    //needs to be capable of holding
+    TInt maxOutputLength = impl-&gt;MaxFinalOutputLength(srcData.Length());
+    HBufC8* encrypted =    HBufC8::NewLC(maxOutputLength);
+    TPtr8 encryptedPtr = encrypted-&gt;Des();
+
+    //Perform the encryption operation 
+    //ProcessFinalL() pads the input buffer if required
+    TRAP(err, impl-&gt;ProcessFinalL(srcData, encryptedPtr));
+
+    if (err == KErrNone)
+        {
+        //Switch to decrypt mode
+        impl-&gt;SetCryptoModeL(KCryptoModeDecryptUid);
+    
+        //Create a buffer for the decrypted data
+        maxOutputLength = encryptedPtr.Length();
+        HBufC8* output = HBufC8::NewLC(impl-&gt;MaxFinalOutputLength(maxOutputLength));
+        TPtr8 outputPtr = output-&gt;Des();
+        
+        //Perform the decryption operation
+        TRAP(err, impl-&gt;ProcessFinalL(encryptedPtr, outputPtr));
+
+    if (err == KErrNone)
+        {
+            //Check that the original source data matches the data that 
+            //has been encrypted then decrypted
+            if (!outputPtr.Compare(srcData))
+                {
+                // Descriptors are the same - successful encrypt/decrypt check
+                }
+            }
+
+        CleanupStack::PopAndDestroy(output); 
+        }
+
+    CleanupStack::PopAndDestroy(encrypted); 
+    }
+
+//Destroy the symmetric implementation object    
+delete impl;
+impl = NULL;
+
+CleanupStack::PopAndDestroy(key);
+CleanupStack::PopAndDestroy(params);</codeblock>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e324862_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D2DCBC1F-91B8-5F81-AAE8-546AE3EB1E29_d0e331019_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D37E0579-0F3B-5EE4-8264-1358E493672B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,39 +1,39 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D37E0579-0F3B-5EE4-8264-1358E493672B" xml:lang="en"><title>Array
-of variable length elements, flat buffer</title><shortdesc>Describes how elements of varying length are organised in the array
-buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This is a <codeph>CArrayVarFlat&lt;class T&gt;</codeph> object whose
-elements can have different lengths. Although each element is a <codeph>class T</codeph> object,
-the length of that object can vary.</p>
-<p>In this type of array, each element occupies its own individual cell allocated
-from the heap. The array buffer contains fixed length data structures, one
-for each element, which are physically contiguous within the flat array buffer.
-Each fixed length data structure contains the length of an element (a <codeph>TInt</codeph> value)
-and a pointer to it. The structure itself is part of the implementation but
-occupies no more than eight bytes on 32-bit machines.</p>
-<p>A flat buffer always occupies a single cell allocated from the heap and
-is always extended by the process of reallocation. A flat array buffer is
-implemented using a <codeph>CBufFlat</codeph> object.</p>
-<p>The following diagram illustrates how elements are organised within the
-array buffer:</p>
-<fig id="GUID-2A857FBF-943D-5665-9999-BC27EA321F73">
-<image href="GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e219442_href.png" placement="inline"/>
-</fig>
-<p>This kind of array is suitable for a small number of elements or for a
-moderately large but fixed maximum number of elements. It is not suitable
-for large arrays with a high turnover of elements. </p>
-<p>This class is immediately derived from the abstract templated base class <codeph>CArrayVar&lt;class T&gt;</codeph> which
-is itself derived from the abstract non-templated base class <codeph>CArrayVarBase</codeph>.</p>
-<section id="GUID-59ADA2D7-56B2-44C3-8E7C-A5DE5F0BBDBA"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
-Dynamic Buffers</xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D37E0579-0F3B-5EE4-8264-1358E493672B" xml:lang="en"><title>Array
+of variable length elements, flat buffer</title><shortdesc>Describes how elements of varying length are organised in the array
+buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This is a <codeph>CArrayVarFlat&lt;class T&gt;</codeph> object whose
+elements can have different lengths. Although each element is a <codeph>class T</codeph> object,
+the length of that object can vary.</p>
+<p>In this type of array, each element occupies its own individual cell allocated
+from the heap. The array buffer contains fixed length data structures, one
+for each element, which are physically contiguous within the flat array buffer.
+Each fixed length data structure contains the length of an element (a <codeph>TInt</codeph> value)
+and a pointer to it. The structure itself is part of the implementation but
+occupies no more than eight bytes on 32-bit machines.</p>
+<p>A flat buffer always occupies a single cell allocated from the heap and
+is always extended by the process of reallocation. A flat array buffer is
+implemented using a <codeph>CBufFlat</codeph> object.</p>
+<p>The following diagram illustrates how elements are organised within the
+array buffer:</p>
+<fig id="GUID-2A857FBF-943D-5665-9999-BC27EA321F73">
+<image href="GUID-924E26D6-8B9D-5C76-AF61-7C5514BB3D78_d0e215705_href.png" placement="inline"/>
+</fig>
+<p>This kind of array is suitable for a small number of elements or for a
+moderately large but fixed maximum number of elements. It is not suitable
+for large arrays with a high turnover of elements. </p>
+<p>This class is immediately derived from the abstract templated base class <codeph>CArrayVar&lt;class T&gt;</codeph> which
+is itself derived from the abstract non-templated base class <codeph>CArrayVarBase</codeph>.</p>
+<section id="GUID-59ADA2D7-56B2-44C3-8E7C-A5DE5F0BBDBA"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
+Dynamic Buffers</xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e366524_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D3881E09-4519-5E3F-9978-C9FEFD123B85_d0e372605_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B" xml:lang="en"><title>Managing
-feedback areas</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Usually control areas (and hence feedback areas) should not overlap. However,
-in some cases you may have to define a priority for the feedback areas. </p>
-<p>Consider, for example, situations where a compound control has a simple
-control inside its own area as illustrated in the figure below.</p>
-<fig id="GUID-C70125A6-393A-428D-A22B-7F6EEC72FAAF">
-<title>Tactile feedback area priorities</title>
-<image href="GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e79176_href.png" scale="70" placement="inline"/>
-</fig>
-<p>In both situations, the compound control wants to give one type of feedback,
-but there should be a different type of feedback (or no feedback at all) for
-the simple control. Both controls can register themselves to area registry,
-but the problem is making sure that simple control has a higher priority than
-the compound control (in the API implementation hit tests are only run as
-long as one control with matching area and pointer event type is found).</p>
-<p>You can solve this in two ways:<ol>
-<li id="GUID-7AE53987-EF45-4222-8D34-D48413091BC8">By adding the simple control
-to area registry after compound control (the last added area always has the
-highest priority inside its window).</li>
-<li id="GUID-128E8207-1B69-4FC5-9E4B-A42A259C60E5">By using the <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMTouchFeedback.html#a3fe25a09d2df942b13f626b627cb9e3" format="application/java-archive"><codeph>MoveFeedbackAreaToFirstPriority</codeph></xref> function for moving
-the simple control to first priority.</li>
-</ol></p>
-<p>In many cases the first option is most natural choice, but you can also
-use the second option in case the situation changes after the areas have been
-already added to the area registry.</p>
-<note><p>The priority order will only remain as long as the next area is added
-to the registry, that is, moving some area to first priority will only keep
-it as the top priority area as long as the next area is added to the registry.
-(Registry entries of one window are kept in a stack, and new areas are always
-added on top.)</p></note>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D3F52BB9-7230-499C-9BB7-CFAEDBA8F48B" xml:lang="en"><title>Managing
+feedback areas</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Usually control areas (and hence feedback areas) should not overlap. However,
+in some cases you may have to define a priority for the feedback areas. </p>
+<p>Consider, for example, situations where a compound control has a simple
+control inside its own area as illustrated in the figure below.</p>
+<fig id="GUID-C70125A6-393A-428D-A22B-7F6EEC72FAAF">
+<title>Tactile feedback area priorities</title>
+<image href="GUID-5BD8EE4B-3149-4331-91E0-7813DF4994E1_d0e74056_href.png" scale="70" placement="inline"/>
+</fig>
+<p>In both situations, the compound control wants to give one type of feedback,
+but there should be a different type of feedback (or no feedback at all) for
+the simple control. Both controls can register themselves to area registry,
+but the problem is making sure that simple control has a higher priority than
+the compound control (in the API implementation hit tests are only run as
+long as one control with matching area and pointer event type is found).</p>
+<p>You can solve this in two ways:<ol>
+<li id="GUID-7AE53987-EF45-4222-8D34-D48413091BC8">By adding the simple control
+to area registry after compound control (the last added area always has the
+highest priority inside its window).</li>
+<li id="GUID-128E8207-1B69-4FC5-9E4B-A42A259C60E5">By using the <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMTouchFeedback.html#a3fe25a09d2df942b13f626b627cb9e3" format="application/java-archive"><codeph>MoveFeedbackAreaToFirstPriority</codeph></xref> function for moving
+the simple control to first priority.</li>
+</ol></p>
+<p>In many cases the first option is most natural choice, but you can also
+use the second option in case the situation changes after the areas have been
+already added to the area registry.</p>
+<note><p>The priority order will only remain as long as the next area is added
+to the registry, that is, moving some area to first priority will only keep
+it as the top priority area as long as the next area is added to the registry.
+(Registry entries of one window are kept in a stack, and new areas are always
+added on top.)</p></note>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B" xml:lang="en"><title>Introduction
-to Transactions</title><shortdesc>A transaction is a series of operations on a store, normally completed
-by committing them using the store's <codeph>CommitL()</codeph> function. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Transactions are supported by the commit and revert protocol. The series
-of operations forming a transaction must all succeed for the transaction to
-be successful. </p>
-<p>If a leave occurs during an operation on the store during a transaction,
-or if the store's <codeph>RevertL()</codeph> function is called explicitly,
-the transaction is reverted. This facility parallels the commit and rollback
-functions which are conventional in databases. However, reverting is not quite
-the same as rolling back; integrity of data is guaranteed, but some indexes
-may be corrupted. </p>
-<p>The commit and revert protocol is useful for ensuring that persistent data
-moves from one consistent state to another and for guaranteeing the integrity
-of persistent store data in the event of failures. </p>
-<p>Typically, changes to a store are not made permanent until they are committed,
-establishing what is called a commit point. Until such changes are committed,
-they can be rolled back or reverted, effectively causing the store to revert
-back to its state before the changes were made. If a process termination or
-a media failure occurs, the store reverts automatically to its state at the
-last successful commit point. </p>
-<p>In permanent file stores the protocol applies to: </p>
-<ul>
-<li id="GUID-F16D4A25-8103-563C-9DC5-D79F7C275ACB"><p>generating new streams </p> </li>
-<li id="GUID-A0EA4352-D06B-59D3-9E04-D0B42131AF5B"><p>deleting streams </p> </li>
-<li id="GUID-83307858-E18D-5F78-8E30-F6754EB6926E"><p>creating new streams </p> </li>
-<li id="GUID-FAD15660-6405-5C11-A72D-40471D5FE2E5"><p>replacing streams </p> </li>
-<li id="GUID-A00822E2-2FE7-55CA-9144-7B9F6DA7C3F7"><p>setting the root stream </p> </li>
-</ul>
-<p>The protocol also applies to creating new streams or replacing existing
-streams in dictionary stores. </p>
-<p>The protocol does<i> not</i> apply to overwriting existing streams. </p>
-<p>The following diagram shows the idea: </p>
-<fig id="GUID-9F093A25-C9C6-5590-9427-EBC4BD26AC73">
-<title>Transaction Commit and Revert</title>
-<image href="GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e361851_href.png" placement="inline"/>
-</fig>
-</conbody><related-links>
-<link href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita"><linktext>Dictionary
-stores</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D4001895-09B9-5A47-BEE7-648FAB55F85B" xml:lang="en"><title>Introduction
+to Transactions</title><shortdesc>A transaction is a series of operations on a store, normally completed
+by committing them using the store's <codeph>CommitL()</codeph> function. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Transactions are supported by the commit and revert protocol. The series
+of operations forming a transaction must all succeed for the transaction to
+be successful. </p>
+<p>If a leave occurs during an operation on the store during a transaction,
+or if the store's <codeph>RevertL()</codeph> function is called explicitly,
+the transaction is reverted. This facility parallels the commit and rollback
+functions which are conventional in databases. However, reverting is not quite
+the same as rolling back; integrity of data is guaranteed, but some indexes
+may be corrupted. </p>
+<p>The commit and revert protocol is useful for ensuring that persistent data
+moves from one consistent state to another and for guaranteeing the integrity
+of persistent store data in the event of failures. </p>
+<p>Typically, changes to a store are not made permanent until they are committed,
+establishing what is called a commit point. Until such changes are committed,
+they can be rolled back or reverted, effectively causing the store to revert
+back to its state before the changes were made. If a process termination or
+a media failure occurs, the store reverts automatically to its state at the
+last successful commit point. </p>
+<p>In permanent file stores the protocol applies to: </p>
+<ul>
+<li id="GUID-F16D4A25-8103-563C-9DC5-D79F7C275ACB"><p>generating new streams </p> </li>
+<li id="GUID-A0EA4352-D06B-59D3-9E04-D0B42131AF5B"><p>deleting streams </p> </li>
+<li id="GUID-83307858-E18D-5F78-8E30-F6754EB6926E"><p>creating new streams </p> </li>
+<li id="GUID-FAD15660-6405-5C11-A72D-40471D5FE2E5"><p>replacing streams </p> </li>
+<li id="GUID-A00822E2-2FE7-55CA-9144-7B9F6DA7C3F7"><p>setting the root stream </p> </li>
+</ul>
+<p>The protocol also applies to creating new streams or replacing existing
+streams in dictionary stores. </p>
+<p>The protocol does<i> not</i> apply to overwriting existing streams. </p>
+<p>The following diagram shows the idea: </p>
+<fig id="GUID-9F093A25-C9C6-5590-9427-EBC4BD26AC73">
+<title>Transaction Commit and Revert</title>
+<image href="GUID-6FC62A2F-E27F-54A8-A97F-0F42426D1F63_d0e355771_href.png" placement="inline"/>
+</fig>
+</conbody><related-links>
+<link href="GUID-79F39C97-75E8-5DB1-B976-8FE76E6E60C9.dita"><linktext>Dictionary
+stores</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D458A54E-0D19-479C-B628-001C704E1CB3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D458A54E-0D19-479C-B628-001C704E1CB3" xml:lang="en"><title>Navigation
-using links</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Links leading from one application (or the Idle state) to another application
-may exist. Links are one-way shortcuts: there is no direct path back to the
-state where the link was started; instead, the navigation inside the linked
-application functions as if the user had manually activated the other application
-and navigated to the target state.</p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA" xml:lang="en"><title>MakeKeys
-Tutorial</title><shortdesc>The MakeKeys tool is a PC-side stand-alone tool that helps you
-to create a private key-public key pair and generate certificate requests.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context>       <p>The following diagram illustrates the procedure for creating
-a private key, self-signed certificate and a certificate request file. </p><fig id="GUID-BA4923AA-EEFF-43BA-B8BE-F56EE18EB6EA">
-<image href="GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e22179_href.png" placement="inline"/>
-</fig></context>
-<steps-unordered>
-<step id="GUID-85270875-54F4-4212-85C6-7F452EA12C02"><cmd><xref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita">Creating
-a private key and self signed certificate</xref></cmd>
-</step>
-<step id="GUID-8E0FE187-0E5E-4FEB-BBFB-FD33AD39AB0B"><cmd><xref href="GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita">Generating
-a certificate request</xref></cmd>
-</step>
-<step id="GUID-A05827C0-BAD5-430E-A5E1-7FEC3A1D974B"><cmd><xref href="GUID-6CC45734-E497-40A7-AB23-37A24EBAF339.dita">Viewing
-certificate details</xref></cmd>
-</step>
-</steps-unordered>
-<postreq><ul>
-<li><p>The private key can be specified as an argument while signing an installation
-file using the SignSIS tool. For details, see <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref>.</p></li>
-<li><p>Symbian developer must send the certificate request to a trusted third
-party, that is, a Certificate Authority (CA) for signing. </p><p>The CA verifies
-the identity of the originator of the certificate request. After verification,
-the CA signs the public key (contained in the certificate request) using the
-CA's private key and creates a signed certificate. This signed certificate
-is then sent back to the applicant.</p><p>The CA can return a single certificate
-or a file containing a chain of certificates. This includes intermediate certificates
-in addition to the CA's root certificate and the Symbian developer certificate.
- </p><note type="important">Certificates returned by CA must be in the base64
-encoded ASCII format.</note></li>
-<li><p>The digital certificate returned by the CA must be bundled with the
-installation file to allow the digital signature to be verified. The self-signed
-certificate can then be discarded.  </p></li>
-</ul></postreq>
-</taskbody><related-links>
-<link href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita"><linktext>MakeKeys
-Overview</linktext></link>
-<link href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita"><linktext>MakeKeys
-Reference</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-D45A4AE9-4169-4466-B02B-629B15C3E9AA" xml:lang="en"><title>MakeKeys
+Tutorial</title><shortdesc>The MakeKeys tool is a PC-side stand-alone tool that helps you
+to create a private key-public key pair and generate certificate requests.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context>       <p>The following diagram illustrates the procedure for creating
+a private key, self-signed certificate and a certificate request file. </p><fig id="GUID-BA4923AA-EEFF-43BA-B8BE-F56EE18EB6EA">
+<image href="GUID-C253D792-7470-5D9F-B39B-1CF42438215A_d0e16601_href.png" placement="inline"/>
+</fig></context>
+<steps-unordered>
+<step id="GUID-85270875-54F4-4212-85C6-7F452EA12C02"><cmd><xref href="GUID-55A6DA94-FAE6-442D-BBA8-82F92D4C63F2.dita">Creating
+a private key and self signed certificate</xref></cmd>
+</step>
+<step id="GUID-8E0FE187-0E5E-4FEB-BBFB-FD33AD39AB0B"><cmd><xref href="GUID-1747534D-063A-45B0-8636-E7767F984BB0.dita">Generating
+a certificate request</xref></cmd>
+</step>
+<step id="GUID-A05827C0-BAD5-430E-A5E1-7FEC3A1D974B"><cmd><xref href="GUID-6CC45734-E497-40A7-AB23-37A24EBAF339.dita">Viewing
+certificate details</xref></cmd>
+</step>
+</steps-unordered>
+<postreq><ul>
+<li><p>The private key can be specified as an argument while signing an installation
+file using the SignSIS tool. For details, see <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref>.</p></li>
+<li><p>Symbian developer must send the certificate request to a trusted third
+party, that is, a Certificate Authority (CA) for signing. </p><p>The CA verifies
+the identity of the originator of the certificate request. After verification,
+the CA signs the public key (contained in the certificate request) using the
+CA's private key and creates a signed certificate. This signed certificate
+is then sent back to the applicant.</p><p>The CA can return a single certificate
+or a file containing a chain of certificates. This includes intermediate certificates
+in addition to the CA's root certificate and the Symbian developer certificate.
+ </p><note type="important">Certificates returned by CA must be in the base64
+encoded ASCII format.</note></li>
+<li><p>The digital certificate returned by the CA must be bundled with the
+installation file to allow the digital signature to be verified. The self-signed
+certificate can then be discarded.  </p></li>
+</ul></postreq>
+</taskbody><related-links>
+<link href="GUID-2861F3D9-875E-5AB3-9600-B328F042CC38.dita"><linktext>MakeKeys
+Overview</linktext></link>
+<link href="GUID-557BF1DA-B6E8-521B-89F0-15C84E3BCB1A.dita"><linktext>MakeKeys
+Reference</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e4703_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D492CF6C-F889-4299-AC75-951EF343AC9F_d0e5978_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D4AA635F-DF24-541A-A452-192DDBEE4142.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D4AA635F-DF24-541A-A452-192DDBEE4142.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-D4AA635F-DF24-541A-A452-192DDBEE4142"><title>Processes and Data Flow</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The following figure shows the processes and data flow in the Messaging subsystem on a secured Symbian platform. </p> <fig id="GUID-FEB183B1-C977-51A5-A109-311260311B1E"><title>
-          Processes and dataflow in the Messaging subsystem 
-        </title> <image href="GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e280044_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D4AA635F-DF24-541A-A452-192DDBEE4142"><title>Processes and Data Flow</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The following figure shows the processes and data flow in the Messaging subsystem on a secured Symbian platform. </p> <fig id="GUID-FEB183B1-C977-51A5-A109-311260311B1E"><title>
+          Processes and dataflow in the Messaging subsystem 
+        </title> <image href="GUID-4DBE998D-9699-5770-8182-929FDCAA7E26_d0e276358_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A" xml:lang="en"><title>Creating
-resource header files</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Typically when you create an application, there are cases where you
-need to create an enumerated set of command IDs (which are symbols with integer
-values). These defined symbols can then be used in both your code and resource
-files. Common examples of these cases, include:</p>
-<ul>
-<li><p>Custom command IDs used for mapping mobile device user input
-based upon <parmname>Options</parmname> menu selections to command handling.
-These custom command IDs are mapped to the text displayed for the command
-in the <parmname>Options</parmname> menu in resource files, and then are passed
-back to the application by the application framework.</p></li>
-<li><p>Control IDs in dialogs to allow references to the dialog
-controls from C++ code.</p>
-<itemgroup>
-<p>For more information on control IDs for dialogs, see <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html.dita#specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html/Dialogs_API_Specification.topic3">Using
-Dialogs API</xref>.</p>
-</itemgroup>
-</li>
-<li><p>Application view IDs. Note that these could also be enumerated
-in the header files for the views.</p></li>
-<li><p>IDs for other resource structures, such as for <parmname>TABS</parmname> in
-the status pane.</p></li>
-</ul>
-<p>These enumerated values need to be defined in a resource file, which
-by convention has the extension <parmname>hrh</parmname>, The syntax is as
-follows:</p>
-<codeblock id="GUID-2CDD719A-48CA-47EF-A737-7CCB62DF6FC6" xml:space="preserve">enum TCommandIds
-    {
-    ECmdAppTest1 = 1,
-    ECmdView1Cmd1,
-    ECmdView1Cmd2,
-    ECmdView1Cmd3,
-    ECmdView2Cmd1,
-    ECmdView2Cmd2,
-    ECmdView2Cmd3,
-    ECmdView2Cmd4
-    };</codeblock>
-<p>where</p>
-<ul>
-<li><p><parmname>enum</parmname> is the keyword declaration the
-set of integer values. </p>
-<note>
-<p>Use this keyword for each set of enumerated values you defined.</p>
-</note>
-</li>
-<li><p><parmname>TCommandIds</parmname> is a label for the list
-of enumerated values. This label is not used in the code or resource files.</p>
-</li>
-<li><p><parmname>ECmdAppTest1</parmname> is a symbol that can be
-used in your code or resource files.</p></li>
-<li><p><parmname>=</parmname> is the operator used for setting the
-value to the symbol.</p></li>
-<li><p><parmname>1</parmname> is the specific value assigned to
-the enumerator symbol.</p></li>
-</ul>
-<p>Each enumerator is followed by a comma (<codeph>,</codeph>) except for
-the last value. It is recommended to have a final semi colon (<codeph>;</codeph>)
-after the enumerated list. If a specific value is not assigned to a symbol
-in the enumerated list, then the value is that of the previous enumerator
-plus one. Thus, the value for <parmname>ECmdView1Cmd1</parmname> above is
-2.</p>
-<p>For more information about the use of the <parmname>enum</parmname> statement,
-see <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/ToolsAndUtilities94/DevTools-ref/ResourceFileFormat/Tool_Ref_RSS-file-format-ENUM.html#DevTools%2dref%2erss%2denum" format="application/java-archive">ENUM statement</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D52E98C3-F5EE-4CE1-A4F5-2EF41A066B8A" xml:lang="en"><title>Creating
+resource header files</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Typically when you create an application, there are cases where you
+need to create an enumerated set of command IDs (which are symbols with integer
+values). These defined symbols can then be used in both your code and resource
+files. Common examples of these cases, include:</p>
+<ul>
+<li><p>Custom command IDs used for mapping mobile device user input
+based upon <parmname>Options</parmname> menu selections to command handling.
+These custom command IDs are mapped to the text displayed for the command
+in the <parmname>Options</parmname> menu in resource files, and then are passed
+back to the application by the application framework.</p></li>
+<li><p>Control IDs in dialogs to allow references to the dialog
+controls from C++ code.</p>
+<itemgroup>
+<p>For more information on control IDs for dialogs, see <xref format="html" href="specs/guides/Dialogs_API_Specification/Dialogs_API_Specification.html#Dialogs_API_Specification.topic3" scope="external">Using
+Dialogs API</xref>.</p>
+</itemgroup>
+</li>
+<li><p>Application view IDs. Note that these could also be enumerated
+in the header files for the views.</p></li>
+<li><p>IDs for other resource structures, such as for <parmname>TABS</parmname> in
+the status pane.</p></li>
+</ul>
+<p>These enumerated values need to be defined in a resource file, which
+by convention has the extension <parmname>hrh</parmname>, The syntax is as
+follows:</p>
+<codeblock id="GUID-2CDD719A-48CA-47EF-A737-7CCB62DF6FC6" xml:space="preserve">enum TCommandIds
+    {
+    ECmdAppTest1 = 1,
+    ECmdView1Cmd1,
+    ECmdView1Cmd2,
+    ECmdView1Cmd3,
+    ECmdView2Cmd1,
+    ECmdView2Cmd2,
+    ECmdView2Cmd3,
+    ECmdView2Cmd4
+    };</codeblock>
+<p>where</p>
+<ul>
+<li><p><parmname>enum</parmname> is the keyword declaration the
+set of integer values. </p>
+<note>
+<p>Use this keyword for each set of enumerated values you defined.</p>
+</note>
+</li>
+<li><p><parmname>TCommandIds</parmname> is a label for the list
+of enumerated values. This label is not used in the code or resource files.</p>
+</li>
+<li><p><parmname>ECmdAppTest1</parmname> is a symbol that can be
+used in your code or resource files.</p></li>
+<li><p><parmname>=</parmname> is the operator used for setting the
+value to the symbol.</p></li>
+<li><p><parmname>1</parmname> is the specific value assigned to
+the enumerator symbol.</p></li>
+</ul>
+<p>Each enumerator is followed by a comma (<codeph>,</codeph>) except for
+the last value. It is recommended to have a final semi colon (<codeph>;</codeph>)
+after the enumerated list. If a specific value is not assigned to a symbol
+in the enumerated list, then the value is that of the previous enumerator
+plus one. Thus, the value for <parmname>ECmdView1Cmd1</parmname> above is
+2.</p>
+<p>For more information about the use of the <parmname>enum</parmname> statement,
+see <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/ToolsAndUtilities94/DevTools-ref/ResourceFileFormat/Tool_Ref_RSS-file-format-ENUM.html#DevTools%2dref%2erss%2denum" format="application/java-archive">ENUM statement</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,92 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597" xml:lang="en"><title>Vibra
-API</title><abstract><shortdesc>Vibra API provides the functionality to control the device
-vibra, which is accessed using the <codeph>CHWRMVibra</codeph> instance. It
-also provides methods to retrieve the current settings of the vibration feature
-in the user profile and the current status of the vibra. It uses synchronous
-method calls which block the client application until a response is received
-from the plug-in. </shortdesc> <p>Vibra API also allows the client to request
-for tactile vibration feedback. </p> </abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The API consists of <codeph>CHWRMVibra</codeph>,<codeph>MHWRMVibraObserver</codeph> and <codeph>MHWRMVibraFeedbackObserver</codeph> classes. </p>
-<p>It provides the following fields: </p>
-<table id="GUID-65DF6175-8150-5F3D-BF8F-D7D9E1105C1A">
-<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry valign="top"><p> <b>Fields</b>  </p> </entry>
-<entry valign="top"><p> <b>Values </b>  </p> </entry>
-<entry valign="top"><p> <b>Descriptions</b>  </p> </entry>
-</row>
-</thead>
-<tbody>
-<row>
-
-<entry><p> <codeph>KHWRMVibraMinIntensity</codeph>  </p> </entry>
-<entry><p>-100 </p> </entry>
-<entry><p>Minimum allowed intensity setting for vibra. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>KHWRMVibraMinPulseIntensity</codeph>  </p> </entry>
-<entry><p>1</p> </entry>
-<entry><p>Minimum allowed intensity setting for vibra pulse. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>KHWRMVibraMaxIntensity</codeph>  </p> </entry>
-<entry><p>100</p> </entry>
-<entry><p>Maximum allowed intensity setting for vibra. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>KHWRMVibraMaxDuration</codeph>  </p> </entry>
-<entry><p>(<codeph>KMaxTInt</codeph>/1000)-1 </p> </entry>
-<entry><p>Maximum allowed duration value in milliseconds. </p> </entry>
-</row>
-<row>
-<entry><p> <codeph>KHWRMVibraInfiniteDuration</codeph>  </p> </entry>
-<entry><p>0</p> </entry>
-<entry><p>Specifies that vibrating must continue for maximum vibrating time
-supported by device if vibrating is not explicitly stopped. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-60F7705E-24A1-4A36-8842-A53A380957B2"><title> Observer</title> <p>A separate callback interface <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraObserver</apiname></xref> for status reporting is also
-used. The client creates an instance of <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>CHWRMVibra</apiname></xref> using <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>NewL()</apiname></xref>. If the client requires the status information,
-it must provide a callback pointer of the <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraObserver</apiname></xref> implementing
-class for the <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>NewL()</apiname></xref> method. </p> <fig id="GUID-95D74CC2-CEDD-569B-8B34-A47FDA4F8DE0">
-<title>              Vibra API Interfaces            </title>
-<image href="GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e131809_href.jpg" placement="inline"/>
-</fig> </section>
-<section id="GUID-B20AA3A6-94BB-4723-90F2-73B5192C7C78"><title>Tactile vibration feedback</title> <p>Tactile vibration is
-used in many touch screen devices to provide vibration feedback to the user
-through display surface. </p> <p>The clients can specify the intensity and
-duration of the feedback pulse, and receive notifications when the tactile
-feedback settings changes in the user profile through <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraFeedbackObserver</apiname></xref> class. </p> <p> <b> Note</b>: The tactile feedback functionality is only available to the clients configured
-at the firmware build time (Symbian platform licensees). </p> <table id="GUID-D75949EB-BC44-4120-825B-8B905562777D">
-<title>Definitions</title>
-<tgroup cols="2"><colspec colname="COLSPEC0" colwidth="0.42*"/><colspec colname="COLSPEC1" colwidth="1.58*"/>
-<tbody>
-<row>
-<entry><p>Vibra frozen state </p> </entry>
-<entry><p>Whenever vibra is released, its current state is stored as frozen
-state. On next reserve, the user can specify that the frozen state be restored. </p> </entry>
-</row>
-<row>
-<entry><p>Vibra virtual state </p> </entry>
-<entry><p>Reserves the specified resource. If reservation is not suspended,
-then actual vibra is also set to the same state. If reservation is suspended,
-actual vibra is not affected by any control methods.</p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D53A00E4-CF37-5F11-8D15-C5ECCCE64597" xml:lang="en"><title>Vibra
+API</title><abstract><shortdesc>Vibra API provides the functionality to control the device
+vibra, which is accessed using the <codeph>CHWRMVibra</codeph> instance. It
+also provides methods to retrieve the current settings of the vibration feature
+in the user profile and the current status of the vibra. It uses synchronous
+method calls which block the client application until a response is received
+from the plug-in. </shortdesc> <p>Vibra API also allows the client to request
+for tactile vibration feedback. </p> </abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The API consists of <codeph>CHWRMVibra</codeph>,<codeph>MHWRMVibraObserver</codeph> and <codeph>MHWRMVibraFeedbackObserver</codeph> classes. </p>
+<p>It provides the following fields: </p>
+<table id="GUID-65DF6175-8150-5F3D-BF8F-D7D9E1105C1A">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry valign="top"><p> <b>Fields</b>  </p> </entry>
+<entry valign="top"><p> <b>Values </b>  </p> </entry>
+<entry valign="top"><p> <b>Descriptions</b>  </p> </entry>
+</row>
+</thead>
+<tbody>
+<row>
+
+<entry><p> <codeph>KHWRMVibraMinIntensity</codeph>  </p> </entry>
+<entry><p>-100 </p> </entry>
+<entry><p>Minimum allowed intensity setting for vibra. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KHWRMVibraMinPulseIntensity</codeph>  </p> </entry>
+<entry><p>1</p> </entry>
+<entry><p>Minimum allowed intensity setting for vibra pulse. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KHWRMVibraMaxIntensity</codeph>  </p> </entry>
+<entry><p>100</p> </entry>
+<entry><p>Maximum allowed intensity setting for vibra. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KHWRMVibraMaxDuration</codeph>  </p> </entry>
+<entry><p>(<codeph>KMaxTInt</codeph>/1000)-1 </p> </entry>
+<entry><p>Maximum allowed duration value in milliseconds. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>KHWRMVibraInfiniteDuration</codeph>  </p> </entry>
+<entry><p>0</p> </entry>
+<entry><p>Specifies that vibrating must continue for maximum vibrating time
+supported by device if vibrating is not explicitly stopped. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-60F7705E-24A1-4A36-8842-A53A380957B2"><title> Observer</title> <p>A separate callback interface <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraObserver</apiname></xref> for status reporting is also
+used. The client creates an instance of <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>CHWRMVibra</apiname></xref> using <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>NewL()</apiname></xref>. If the client requires the status information,
+it must provide a callback pointer of the <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraObserver</apiname></xref> implementing
+class for the <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>NewL()</apiname></xref> method. </p> <fig id="GUID-95D74CC2-CEDD-569B-8B34-A47FDA4F8DE0">
+<title>              Vibra API Interfaces            </title>
+<image href="GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e125271_href.jpg" placement="inline"/>
+</fig> </section>
+<section id="GUID-B20AA3A6-94BB-4723-90F2-73B5192C7C78"><title>Tactile vibration feedback</title> <p>Tactile vibration is
+used in many touch screen devices to provide vibration feedback to the user
+through display surface. </p> <p>The clients can specify the intensity and
+duration of the feedback pulse, and receive notifications when the tactile
+feedback settings changes in the user profile through <xref href="GUID-68D63D0A-4CC6-34A6-AF5B-BB59AC96625E.dita"><apiname>MHWRMVibraFeedbackObserver</apiname></xref> class. </p> <p> <b> Note</b>: The tactile feedback functionality is only available to the clients configured
+at the firmware build time (Symbian platform licensees). </p> <table id="GUID-D75949EB-BC44-4120-825B-8B905562777D">
+<title>Definitions</title>
+<tgroup cols="2"><colspec colname="COLSPEC0" colwidth="0.42*"/><colspec colname="COLSPEC1" colwidth="1.58*"/>
+<tbody>
+<row>
+<entry><p>Vibra frozen state </p> </entry>
+<entry><p>Whenever vibra is released, its current state is stored as frozen
+state. On next reserve, the user can specify that the frozen state be restored. </p> </entry>
+</row>
+<row>
+<entry><p>Vibra virtual state </p> </entry>
+<entry><p>Reserves the specified resource. If reservation is not suspended,
+then actual vibra is also set to the same state. If reservation is suspended,
+actual vibra is not affected by any control methods.</p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e204270_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D5A05EE7-5559-55CC-A839-478B4F513CE4_d0e209278_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF"><title>Introduction to Pictures</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A <i>picture</i> is an object which can be drawn to a <keyword>graphics context</keyword> and can be stored and restored. A picture is stored, together with its picture header, in any type of store using a storemap. </p> <fig id="GUID-D5BD3843-5498-5B3B-A4D7-A76630CC185A"><title>
-          Relationship between picture headers and pictures in a store 
-        </title> <image href="GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e206507_href.png" placement="inline"/></fig> <p>A picture can thus be any object which draws an image — be it a bitmap or a set of graphic commands. </p> <p>Additionally, two common desirable facilities for a picture to have are: </p> <ul><li id="GUID-31BB52AE-3EB8-5A1E-9699-389E7EEBC8E1"><p>the ability to be cropped </p> </li> <li id="GUID-1FEE0BDD-9FC7-59C1-9A67-6E9D8F4214A7"><p>the ability to be scaled </p> </li> </ul> <p>Scaling can be done in one of three ways: </p> <ul><li id="GUID-7F1DDD78-179B-55F0-A335-4D3D89D95111"><p>by specifying percentage scale factors for the width and height </p> </li> <li id="GUID-A6515AC1-0F68-53E6-8B8E-A78D9FDAA148"><p>by specifying the picture size in pixels </p> </li> <li id="GUID-A783EEE7-F1EE-5264-9CE3-949733013C79"><p>by specifying the picture size in twips </p> </li> </ul> <p>Cropping can be done in two ways: </p> <ul><li id="GUID-9DF0397E-406E-50C7-B139-F8562EB07209"><p>by specifying a set of margins in twips </p> </li> <li id="GUID-C8E978E6-FC73-596C-A0CE-CD3F29B969A3"><p>by specifying a further set of margins in pixels, for additional cropping </p> </li> </ul> <p>The drawing operation positions and draws the scaled and cropped picture on the graphics device. </p> <fig id="GUID-C2AB291D-63B5-5FD4-ADB8-DA2E5D33E488"><title>
-          The relationships between the picture classes 
-        </title> <image href="GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e206569_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-5CEE36FC-C5A9-5C4E-9DBC-9C7B5B44EA2F.dita"><linktext>Picture Concepts</linktext> </link> <link href="GUID-520AC2F0-009E-51F3-A661-3B6E949F1423.dita"><linktext>Picture Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D5A6A5C9-A959-5CE7-AF45-43DA7D8B2EFF"><title>Introduction to Pictures</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A <i>picture</i> is an object which can be drawn to a <keyword>graphics context</keyword> and can be stored and restored. A picture is stored, together with its picture header, in any type of store using a storemap. </p> <fig id="GUID-D5BD3843-5498-5B3B-A4D7-A76630CC185A"><title>
+          Relationship between picture headers and pictures in a store 
+        </title> <image href="GUID-47587124-66D8-5128-BDBB-AF190E67CAF5_d0e201499_href.png" placement="inline"/></fig> <p>A picture can thus be any object which draws an image — be it a bitmap or a set of graphic commands. </p> <p>Additionally, two common desirable facilities for a picture to have are: </p> <ul><li id="GUID-31BB52AE-3EB8-5A1E-9699-389E7EEBC8E1"><p>the ability to be cropped </p> </li> <li id="GUID-1FEE0BDD-9FC7-59C1-9A67-6E9D8F4214A7"><p>the ability to be scaled </p> </li> </ul> <p>Scaling can be done in one of three ways: </p> <ul><li id="GUID-7F1DDD78-179B-55F0-A335-4D3D89D95111"><p>by specifying percentage scale factors for the width and height </p> </li> <li id="GUID-A6515AC1-0F68-53E6-8B8E-A78D9FDAA148"><p>by specifying the picture size in pixels </p> </li> <li id="GUID-A783EEE7-F1EE-5264-9CE3-949733013C79"><p>by specifying the picture size in twips </p> </li> </ul> <p>Cropping can be done in two ways: </p> <ul><li id="GUID-9DF0397E-406E-50C7-B139-F8562EB07209"><p>by specifying a set of margins in twips </p> </li> <li id="GUID-C8E978E6-FC73-596C-A0CE-CD3F29B969A3"><p>by specifying a further set of margins in pixels, for additional cropping </p> </li> </ul> <p>The drawing operation positions and draws the scaled and cropped picture on the graphics device. </p> <fig id="GUID-C2AB291D-63B5-5FD4-ADB8-DA2E5D33E488"><title>
+          The relationships between the picture classes 
+        </title> <image href="GUID-72F24867-8D67-5BD1-A8C4-93FC7A4290FC_d0e201561_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-5CEE36FC-C5A9-5C4E-9DBC-9C7B5B44EA2F.dita"><linktext>Picture Concepts</linktext> </link> <link href="GUID-520AC2F0-009E-51F3-A661-3B6E949F1423.dita"><linktext>Picture Tutorials</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C" xml:lang="en"><title>Thread-relative
-and Process-relative handles</title><shortdesc>This document describes the difference between thread-relative
-and process-relative handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This is the issue of handle ownership.</p>
-<p>Threads and processes each maintain a list of objects to which they refer.
-This list is an object index and is the way in which handle-numbers representing
-these objects are generated.</p>
-<p>When user code causes a Kernel object (e.g. a mutex) to be created, ownership
-of the handle which is opened on that object may be vested either in the thread
-or the process. If ownership is vested in the thread, the handle associated
-with that object is said to be <i>thread-relative</i>, conversely, if ownership
-is vested in the process, the handle associated with that object is said to
-be<i>process-relative</i>.</p>
-<p>The following diagram shows the case where code belonging to thread A creates
-a mutex and vests ownership of the handle in the thread. </p>
-<fig id="GUID-5A22F71B-C146-53A9-B8A4-51D79D4EF668">
-<title>Thread-relative handle</title>
-<image href="GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e234349_href.png" placement="inline"/>
-</fig>
-<p>Compare with the following case where ownership of the mutex handle is
-vested in the process.</p>
-<fig id="GUID-6C60BB64-AE7B-5B46-983B-D6D65D8AB41C">
-<title>Process-relative handle</title>
-<image href="GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e234360_href.png" placement="inline"/>
-</fig>
-<p>In both cases, the mutex object is added to the appropriate Kernel container
-which can be considered as the owner of the object.</p>
-<p>The significance of a process-relative handle is that any thread in the
-process can use that handle to access the Kernel side object that the handle
-represents. In contrast, a thread-relative handle can only be used by the
-thread creating it; other threads in that process can only access the Kernel
-side object by <xref href="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita">duplicating</xref> that
-handle.</p>
-<p>For a thread-relative handle, the associated Kernel side object is closed
-if the thread dies. For a process-relative handle, the Kernel side object
-is closed if the process dies. Such an object is not closed if any thread
-belonging to that process dies; the object remains in existence for the lifetime
-of the process, or until all references to it have been explicitly closed.</p>
-<p>See also:</p>
-<ul>
-<li id="GUID-7355DCEE-85E8-58C6-9102-CBCE93251098"><p><xref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita">The
-object index</xref> </p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D62A0234-348C-5553-B8C0-7B483AF9D50C" xml:lang="en"><title>Thread-relative
+and Process-relative handles</title><shortdesc>This document describes the difference between thread-relative
+and process-relative handles.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This is the issue of handle ownership.</p>
+<p>Threads and processes each maintain a list of objects to which they refer.
+This list is an object index and is the way in which handle-numbers representing
+these objects are generated.</p>
+<p>When user code causes a Kernel object (e.g. a mutex) to be created, ownership
+of the handle which is opened on that object may be vested either in the thread
+or the process. If ownership is vested in the thread, the handle associated
+with that object is said to be <i>thread-relative</i>, conversely, if ownership
+is vested in the process, the handle associated with that object is said to
+be<i>process-relative</i>.</p>
+<p>The following diagram shows the case where code belonging to thread A creates
+a mutex and vests ownership of the handle in the thread. </p>
+<fig id="GUID-5A22F71B-C146-53A9-B8A4-51D79D4EF668">
+<title>Thread-relative handle</title>
+<image href="GUID-7B589949-2784-5B77-959E-99F8733A8853_d0e230612_href.png" placement="inline"/>
+</fig>
+<p>Compare with the following case where ownership of the mutex handle is
+vested in the process.</p>
+<fig id="GUID-6C60BB64-AE7B-5B46-983B-D6D65D8AB41C">
+<title>Process-relative handle</title>
+<image href="GUID-47511301-DFF9-52B0-9602-DD9D293D3044_d0e230623_href.png" placement="inline"/>
+</fig>
+<p>In both cases, the mutex object is added to the appropriate Kernel container
+which can be considered as the owner of the object.</p>
+<p>The significance of a process-relative handle is that any thread in the
+process can use that handle to access the Kernel side object that the handle
+represents. In contrast, a thread-relative handle can only be used by the
+thread creating it; other threads in that process can only access the Kernel
+side object by <xref href="GUID-A4799558-AF8C-5E97-9B03-7D1C04FEC243.dita">duplicating</xref> that
+handle.</p>
+<p>For a thread-relative handle, the associated Kernel side object is closed
+if the thread dies. For a process-relative handle, the Kernel side object
+is closed if the process dies. Such an object is not closed if any thread
+belonging to that process dies; the object remains in existence for the lifetime
+of the process, or until all references to it have been explicitly closed.</p>
+<p>See also:</p>
+<ul>
+<li id="GUID-7355DCEE-85E8-58C6-9102-CBCE93251098"><p><xref href="GUID-A95CDFDE-285F-5DE2-AADE-29B2B9663757.dita">The
+object index</xref> </p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D"><title>Audio Client Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the Audio Client. </p> <section><title>Purpose</title> <p>The Audio Client provides an interface to: </p> <ul><li id="GUID-E1752C25-893D-5859-A9B7-C527AC115044"><p>Play back, record, and convert sound clips. </p> </li> <li id="GUID-5AF02D1B-25A9-59F0-B57B-7F0CAE7EB07D"><p>Play tone sequences and DTMF (Dual-Tone Multi-Frequency) strings. </p> </li> </ul> <p><b>Audio Client Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-28BCAB7A-147C-5519-8833-62ACA430C4D3"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudio.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudio.lib</b>  </p> </entry> <entry><p>These files are used for implementing the Audio Client. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>The methods for recording, converting, and playing audio clips or tones interact with the lower levels of MMF (known as the controller framework). The controller framework is in turn responsible for managing the interface to audio hardware. On some phones, this is implemented as a device driver; on others it may be implemented as a connection to a lower level hardware controller. </p> <p>Clients using any of the <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>, <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref> or <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> classes must have an active scheduler running in their thread because the implementations use active objects and callbacks. </p> <p>How the tone player class interacts with other components of MMF is shown below. </p> <fig id="GUID-8273BE86-D5F9-528F-9147-0C0C58D9ABCD"><title>
-             Audio tone player overview 
-          </title> <image href="GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e313317_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p><b>Audio Playing, Recording, and Conversion</b> </p> <p>All three of the audio classes are plugin based, leaving the list of supported audio formats for input and output open ended. The audio file formats supported as standard by MMF are: AU, WAV and raw audio data. Each file format may support one or more compression algorithms (codecs). The standard file formats and corresponding codecs are shown below: </p> <table id="GUID-058548B8-0DEF-5E61-B9A1-6FEC07DCAA8A"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Audio file format</entry> <entry>Codecs supported</entry> </row> </thead> <tbody><row><entry><p>AU </p> </entry> <entry><p>A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM </p> </entry> </row> <row><entry><p>WAV </p> </entry> <entry><p>IMA-ADPCM, A-Law, mu-law, unsigned 8 bit PCM, gsm 6.10, signed 16 bit PCM </p> </entry> </row> <row><entry><p>raw data </p> </entry> <entry><p>Signed big-endian 16 bit PCM, signed 16 bit PCM, unsigned 16 bit PCM </p> </entry> </row> </tbody> </tgroup> </table> <p>Input and output audio data can be of any format supported by the installed plugins. When possible MMF uses a plugin resolver to determine the format and codecs to use. It determines this by checking the filename extension and reading any header data that may be present in the audio clip. The plugin resolver cannot determine the format and codecs to use for raw audio, so in such cases you must specify this information yourself. A full list of supported plugins can be retrieved by using <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita#GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688/GUID-D0456E01-109E-3C93-949D-0452B09E886F"><apiname>CMdaAudioConvertUtility::GetSupportedDestinationDataTypesL()</apiname></xref>. </p> <p> <b> Note:</b> All audio clips can be uniquely identified for purposes of plugin assignment by their format (gsm z6.10, AU, WAV and so on) and their codec (for example for AU, valid codecs include A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM). Each format and codec has an arbitrary ID assigned to it by MMF and its associated plugin, for use with the "Open" functions of both <codeph>CMdaAudioConvertUtility</codeph> and <codeph>CMdaAudioRecorderUtility</codeph>. </p> <p id="GUID-B99776D8-B713-5C18-AB32-3BF13EDDFEBB"><b>Tone Playing</b> </p> <p>The Audio Client provide a simple interface for tone generation (synthesized sounds) that enables the playing of tone sequences and DTMF (Dual-Tone Multi-Frequency) strings. The tone player functionality is provided by the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> class and using this class you can play: </p> <ul><li id="GUID-5B1FD304-5905-5F3A-97C6-237A59F911A1"><p>Single tones of a specified duration and frequency. </p> </li> <li id="GUID-6CD5A5D6-8659-5DDB-B773-1513C663E4F6"><p>DTMF strings. </p> </li> <li id="GUID-9F98BD96-C5F6-5100-96FB-EA8396AE0364"><p>Sequences of tones held in files or descriptors. </p> </li> <li id="GUID-B27D9870-E9AE-5280-A144-E4C24AA91E09"><p>Predefined (fixed) sequences of tones held in the mobile equipment. </p> </li> </ul> </section> <section><title>Key Audio Client Classes</title> <p>The functionality provided by the Audio Client is contained within the following classes: </p> <ul><li id="GUID-0EF967E4-CFE1-5528-9EAB-BA0A2E71C6D3"><p> <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>  </p> </li> <li id="GUID-93D94E92-E9E6-523B-9C4B-02DF91D9976E"><p> <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>  </p> </li> <li id="GUID-CBD9AF2F-BB55-5D03-A87B-A7A23AAA4CD5"><p> <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>  </p> </li> <li id="GUID-3B16D9CB-B192-548F-B096-5BA7B0E89344"><p> <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> <xref href="GUID-6BD89347-671F-3518-9777-55801A090C79.dita"><apiname/></xref>  </p> </li> </ul> </section> <section><title>Using the Audio Client</title> <p>Clients can use the Audio Client to: </p> <ul><li id="GUID-AB6FC77A-FD23-55F0-9A07-916D388CE19D"><p>Manipulate audio sources and sinks, add, retrieve and modify meta data and record audio data to files or descriptors. </p> </li> <li id="GUID-8557E211-D6E7-59FF-AE63-939A0BCBF3C4"><p>Convert audio clips contained in files or descriptors to other formats using the default codecs provided by MMF. </p> </li> <li id="GUID-E9D2FB84-0CF1-5873-BC5B-005869025A91"><p>Play audio clips contained in files, descriptors or URLs. </p> </li> <li id="GUID-C3C75693-4113-5684-9643-2C6DC1A5BCB0"><p>Play single tones, DTMF strings and tone sequences. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio convert utility</xref>  </p> <p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player utility</xref>  </p> <p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use audio recorder utility</xref>  </p> <p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita">How to use the audio tone player utility</xref>  </p> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D"><title>Audio Client Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the Audio Client. </p> <section><title>Purpose</title> <p>The Audio Client provides an interface to: </p> <ul><li id="GUID-E1752C25-893D-5859-A9B7-C527AC115044"><p>Play back, record, and convert sound clips. </p> </li> <li id="GUID-5AF02D1B-25A9-59F0-B57B-7F0CAE7EB07D"><p>Play tone sequences and DTMF (Dual-Tone Multi-Frequency) strings. </p> </li> </ul> <p><b>Audio Client Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-28BCAB7A-147C-5519-8833-62ACA430C4D3"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudio.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudio.lib</b>  </p> </entry> <entry><p>These files are used for implementing the Audio Client. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>The methods for recording, converting, and playing audio clips or tones interact with the lower levels of MMF (known as the controller framework). The controller framework is in turn responsible for managing the interface to audio hardware. On some phones, this is implemented as a device driver; on others it may be implemented as a connection to a lower level hardware controller. </p> <p>Clients using any of the <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>, <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref> or <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> classes must have an active scheduler running in their thread because the implementations use active objects and callbacks. </p> <p>How the tone player class interacts with other components of MMF is shown below. </p> <fig id="GUID-8273BE86-D5F9-528F-9147-0C0C58D9ABCD"><title>
+             Audio tone player overview 
+          </title> <image href="GUID-4F879832-8425-5C56-B3FE-4C4592EBB6A5_d0e306923_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p><b>Audio Playing, Recording, and Conversion</b> </p> <p>All three of the audio classes are plugin based, leaving the list of supported audio formats for input and output open ended. The audio file formats supported as standard by MMF are: AU, WAV and raw audio data. Each file format may support one or more compression algorithms (codecs). The standard file formats and corresponding codecs are shown below: </p> <table id="GUID-058548B8-0DEF-5E61-B9A1-6FEC07DCAA8A"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>Audio file format</entry> <entry>Codecs supported</entry> </row> </thead> <tbody><row><entry><p>AU </p> </entry> <entry><p>A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM </p> </entry> </row> <row><entry><p>WAV </p> </entry> <entry><p>IMA-ADPCM, A-Law, mu-law, unsigned 8 bit PCM, gsm 6.10, signed 16 bit PCM </p> </entry> </row> <row><entry><p>raw data </p> </entry> <entry><p>Signed big-endian 16 bit PCM, signed 16 bit PCM, unsigned 16 bit PCM </p> </entry> </row> </tbody> </tgroup> </table> <p>Input and output audio data can be of any format supported by the installed plugins. When possible MMF uses a plugin resolver to determine the format and codecs to use. It determines this by checking the filename extension and reading any header data that may be present in the audio clip. The plugin resolver cannot determine the format and codecs to use for raw audio, so in such cases you must specify this information yourself. A full list of supported plugins can be retrieved by using <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita#GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688/GUID-D0456E01-109E-3C93-949D-0452B09E886F"><apiname>CMdaAudioConvertUtility::GetSupportedDestinationDataTypesL()</apiname></xref>. </p> <p> <b> Note:</b> All audio clips can be uniquely identified for purposes of plugin assignment by their format (gsm z6.10, AU, WAV and so on) and their codec (for example for AU, valid codecs include A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM). Each format and codec has an arbitrary ID assigned to it by MMF and its associated plugin, for use with the "Open" functions of both <codeph>CMdaAudioConvertUtility</codeph> and <codeph>CMdaAudioRecorderUtility</codeph>. </p> <p id="GUID-B99776D8-B713-5C18-AB32-3BF13EDDFEBB"><b>Tone Playing</b> </p> <p>The Audio Client provide a simple interface for tone generation (synthesized sounds) that enables the playing of tone sequences and DTMF (Dual-Tone Multi-Frequency) strings. The tone player functionality is provided by the <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> class and using this class you can play: </p> <ul><li id="GUID-5B1FD304-5905-5F3A-97C6-237A59F911A1"><p>Single tones of a specified duration and frequency. </p> </li> <li id="GUID-6CD5A5D6-8659-5DDB-B773-1513C663E4F6"><p>DTMF strings. </p> </li> <li id="GUID-9F98BD96-C5F6-5100-96FB-EA8396AE0364"><p>Sequences of tones held in files or descriptors. </p> </li> <li id="GUID-B27D9870-E9AE-5280-A144-E4C24AA91E09"><p>Predefined (fixed) sequences of tones held in the mobile equipment. </p> </li> </ul> </section> <section><title>Key Audio Client Classes</title> <p>The functionality provided by the Audio Client is contained within the following classes: </p> <ul><li id="GUID-0EF967E4-CFE1-5528-9EAB-BA0A2E71C6D3"><p> <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>  </p> </li> <li id="GUID-93D94E92-E9E6-523B-9C4B-02DF91D9976E"><p> <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>  </p> </li> <li id="GUID-CBD9AF2F-BB55-5D03-A87B-A7A23AAA4CD5"><p> <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>  </p> </li> <li id="GUID-3B16D9CB-B192-548F-B096-5BA7B0E89344"><p> <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref> <xref href="GUID-6BD89347-671F-3518-9777-55801A090C79.dita"><apiname/></xref>  </p> </li> </ul> </section> <section><title>Using the Audio Client</title> <p>Clients can use the Audio Client to: </p> <ul><li id="GUID-AB6FC77A-FD23-55F0-9A07-916D388CE19D"><p>Manipulate audio sources and sinks, add, retrieve and modify meta data and record audio data to files or descriptors. </p> </li> <li id="GUID-8557E211-D6E7-59FF-AE63-939A0BCBF3C4"><p>Convert audio clips contained in files or descriptors to other formats using the default codecs provided by MMF. </p> </li> <li id="GUID-E9D2FB84-0CF1-5873-BC5B-005869025A91"><p>Play audio clips contained in files, descriptors or URLs. </p> </li> <li id="GUID-C3C75693-4113-5684-9643-2C6DC1A5BCB0"><p>Play single tones, DTMF strings and tone sequences. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio convert utility</xref>  </p> <p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player utility</xref>  </p> <p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use audio recorder utility</xref>  </p> <p><xref href="GUID-9EE78D5A-32BC-5E0F-9139-AF00CDB95CC1.dita">How to use the audio tone player utility</xref>  </p> <p><xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-3-1-1-8-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-3-1-1-8-1-5-1" xml:lang="en"><title>Text resource
-utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-C6857C66-B599-4AA0-9ABE-469ADDE4BA5D-GENID-1-8-1-3-1-1-8-1-5-1-2-1"><title>Purpose</title> <p>Text
-Resource Utility is part of the Symbian Text Utilities. It is an API class,
-which provides static methods for loading and formatting resource strings.
-The purpose of Text Resource Utility is to make localization of the software
-easier by allowing variable order in indexing of the key strings in the resource
-string. </p> <p>Text Resource Utility provides resource string loading and
-formatting methods for other subsystems. Through simple <codeph>Load()</codeph> and <codeph>Format()</codeph> operation
-calls, the user can access resource strings which may contain formatting parameters
-(<codeph>%U</codeph> for text or <codeph>%N</codeph> for numerical). Strings
-can contain multiple instances of the same parameter. The <codeph>0x0001</codeph> character
-has special meaning in strings; it is used to delimit different options for
-displayable string. The client of <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> is
-responsible for choosing the proper string to display from given options. </p> </section>
-<section id="GUID-BAEBDD2B-2A9D-4BE6-9078-7835CF9B4E05-GENID-1-8-1-3-1-1-8-1-5-1-2-2"><title>Architectural
-Relationships</title> <p>The implementation requires a <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> instance
-(given as reference by the user or <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref>)
-to access the resource files. </p> <p>All interface methods are static, so
-there is no need to explicitly allocate memory for the interface class. All
-functionality is accessed through exported methods of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class. </p> <p>The
-interface is accessed through the <codeph>tultextresourceutils.h</codeph> header
-file. Binaries are linked to the <codeph>etul.dll</codeph> library. </p> </section>
-<section id="GUID-3694DAEC-D25F-4E28-87EA-E1D230571003-GENID-1-8-1-3-1-1-8-1-5-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>Applications
-load and format resource strings from normal resources with static methods
-of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class.
-The loading is done with the <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods
-and with the <codeph>Load()</codeph> method in situations where memory allocation
-from the heap is not possible. Formatting is done automatically after loading
-in the <codeph>LoadL()</codeph> and <codeph>LoadLC() </codeph> methods, but
-it can also be done separately with the <codeph>Format() </codeph> method
-in situations where memory allocation from the heap is not possible. </p> <p>For
-reading the resource strings with the<codeph> Load()</codeph>, <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods,
-the user should provide a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> for
-efficiency reasons. If the pointer is not provided, the implementation uses
-the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref> method
-internally to get it. The user can get a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref>,
-for example, via the <codeph>iEikonEnv</codeph> macro (for which see <codeph>&lt;eikdef.h&gt;</codeph>). </p> <p><b>Scalable
-UI Support</b> </p> <p>Different size displays can handle different length
-strings. To take full advantage of this fact, <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> supports
-resource strings with multiple options for string separated by <codeph>0x0001</codeph> character.
-Each such string can contain same or different sub string keys (<codeph>%U</codeph> and <codeph>%N</codeph>). <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> returns all strings,
-it is the responsibility of the caller to parse the result and choose the
-proper string to display. </p> <p><b>Setting the Maximum Substring Length</b> </p> <p>This
-may be done in the text resources. Sub string maximum lengths can be localized
-separately for every language. </p> <p>The maximum sub string length is of
-the format: </p> <codeblock id="GUID-AA1192AA-292D-59B4-9235-178AD1CC6681-GENID-1-8-1-3-1-1-8-1-5-1-2-3-10" xml:space="preserve">%U[NN] </codeblock> <p>where <codeph>NN</codeph> is
-a number <codeph>[01..99]</codeph>. Please note that <codeph>NN</codeph> must
-always consist of two characters, in other words, if the sub string maximum
-length is eight characters, the value to be used is <codeph>08</codeph>, not
-plain <codeph>8</codeph>. </p> <p>If the number of characters exceeds the
-maximum length, the sub string is cut to fit and the last character is replaced
-with an ellipsis character. </p> <p><b>Error Handling</b> </p> <p>The leave
-mechanism is used to handle memory exhaustion. Errors in application programming
-are handled with the panic mechanism. The error codes used are as follows: </p> <table id="GUID-3320467E-C326-523F-9B44-EB8BC916BFA5-GENID-1-8-1-3-1-1-8-1-5-1-2-3-15">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p><codeph>ETooFewArguments</codeph> </p> </entry>
-<entry><p>= 0: Unsolved parameters in the resource string. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>ETooManyArguments</codeph> </p> </entry>
-<entry><p>= 1: Already solved all parameters in the resource string. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EKeyStringNotFound</codeph> </p> </entry>
-<entry><p>= 2: The key string was not found in formatting. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EInvalidIndex</codeph> </p> </entry>
-<entry><p>= 3: Invalid index in the Format method. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EDescriptorTooSmall</codeph> </p> </entry>
-<entry><p>= 4: Too small destination descriptor. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>ECCoeEnvNotInitialized</codeph> </p> </entry>
-<entry><p>= 5: <codeph>CCoeEnv</codeph> not initialized. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EInvalidSubstitute</codeph> </p> </entry>
-<entry><p>= 6: Substituted string contains substring separator (i.e. 0x0001). </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Example</b> </p> <p>The following example describes the usage
-of the Text Resource Utility component: </p> <codeblock id="GUID-6B0C9F3E-DC2C-511B-B58B-03CF363B794D-GENID-1-8-1-3-1-1-8-1-5-1-2-3-18" xml:space="preserve">/*  Using examples: */
-
-#include &lt;tultextresourceutils.h&gt;
-
-// Get CCoeEnv instance
-CEikonEnv* iEikonEnv = CEikonEnv::Static();
-
-/*
-*   One TInt to add:
-*/
-
-//(In .loc -file)
-#define TEXT_EXAMPLE "You have %N undone tasks."
-
-//(In .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-TInt number( 324 );
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, number, iEikonEnv );
-
-//
-//The TInt in number is added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"You have 324 undone tasks."
-//
-
-/*
-*   Several strings to add:
-*/
-
-//(In a .loc -file)
-#define TEXT_EXAMPLE "I'm %2U%1U %3U%0U fine." 
-
-//(In an .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-CDesCArrayFlat* strings = new CDesCArrayFlat( 4 );
-CleanupStack::PushL( strings );
-
-strings-&gt;AppendL( _L("orking") ); //First string
-
-strings-&gt;AppendL( _L("ll") ); //Second string
-
-strings-&gt;AppendL( _L("sti") ); //Third string
-
-strings-&gt;AppendL( _L("w") ); //Fourth string
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, *strings, iEikonEnv );
-
-//
-//The strings in strings are added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"I'm still working fine."
-//
-
-/*
-* Scalable UI support
-*/
-//(In .loc -file)
-#define TEXT_EXAMPLE "You have missed %N messages from %U."&lt;0x0001&gt;"Missed %N msgs from %U."&lt;0x0001&gt;"Missed %N msgs."
-
-//(In .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-TInt number( 12 );
-_LIT(name, “John Doe”);
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL(R_TEXT_EXAMPLE,name,number,iEikonEnv);
-
-//
-//The number and name are added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"You have missed 12 messages from John Doe.\001Missed 12 msgs from John
-// Doe.\001Missed 12 msgs."
-//
-
-CleanupStack::PopAndDestroy(); //strings
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-6-1-1-4-1-7-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F-GENID-1-8-1-6-1-1-4-1-7-1-5-1" xml:lang="en"><title>Text resource
-utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-C6857C66-B599-4AA0-9ABE-469ADDE4BA5D-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-1"><title>Purpose</title> <p>Text
-Resource Utility is part of the Symbian Text Utilities. It is an API class,
-which provides static methods for loading and formatting resource strings.
-The purpose of Text Resource Utility is to make localization of the software
-easier by allowing variable order in indexing of the key strings in the resource
-string. </p> <p>Text Resource Utility provides resource string loading and
-formatting methods for other subsystems. Through simple <codeph>Load()</codeph> and <codeph>Format()</codeph> operation
-calls, the user can access resource strings which may contain formatting parameters
-(<codeph>%U</codeph> for text or <codeph>%N</codeph> for numerical). Strings
-can contain multiple instances of the same parameter. The <codeph>0x0001</codeph> character
-has special meaning in strings; it is used to delimit different options for
-displayable string. The client of <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> is
-responsible for choosing the proper string to display from given options. </p> </section>
-<section id="GUID-BAEBDD2B-2A9D-4BE6-9078-7835CF9B4E05-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-2"><title>Architectural
-Relationships</title> <p>The implementation requires a <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> instance
-(given as reference by the user or <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref>)
-to access the resource files. </p> <p>All interface methods are static, so
-there is no need to explicitly allocate memory for the interface class. All
-functionality is accessed through exported methods of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class. </p> <p>The
-interface is accessed through the <codeph>tultextresourceutils.h</codeph> header
-file. Binaries are linked to the <codeph>etul.dll</codeph> library. </p> </section>
-<section id="GUID-3694DAEC-D25F-4E28-87EA-E1D230571003-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-3"><title>Description</title> <p><b>Usage</b> </p> <p>Applications
-load and format resource strings from normal resources with static methods
-of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class.
-The loading is done with the <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods
-and with the <codeph>Load()</codeph> method in situations where memory allocation
-from the heap is not possible. Formatting is done automatically after loading
-in the <codeph>LoadL()</codeph> and <codeph>LoadLC() </codeph> methods, but
-it can also be done separately with the <codeph>Format() </codeph> method
-in situations where memory allocation from the heap is not possible. </p> <p>For
-reading the resource strings with the<codeph> Load()</codeph>, <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods,
-the user should provide a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> for
-efficiency reasons. If the pointer is not provided, the implementation uses
-the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref> method
-internally to get it. The user can get a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref>,
-for example, via the <codeph>iEikonEnv</codeph> macro (for which see <codeph>&lt;eikdef.h&gt;</codeph>). </p> <p><b>Scalable
-UI Support</b> </p> <p>Different size displays can handle different length
-strings. To take full advantage of this fact, <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> supports
-resource strings with multiple options for string separated by <codeph>0x0001</codeph> character.
-Each such string can contain same or different sub string keys (<codeph>%U</codeph> and <codeph>%N</codeph>). <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> returns all strings,
-it is the responsibility of the caller to parse the result and choose the
-proper string to display. </p> <p><b>Setting the Maximum Substring Length</b> </p> <p>This
-may be done in the text resources. Sub string maximum lengths can be localized
-separately for every language. </p> <p>The maximum sub string length is of
-the format: </p> <codeblock id="GUID-AA1192AA-292D-59B4-9235-178AD1CC6681-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-3-10" xml:space="preserve">%U[NN] </codeblock> <p>where <codeph>NN</codeph> is
-a number <codeph>[01..99]</codeph>. Please note that <codeph>NN</codeph> must
-always consist of two characters, in other words, if the sub string maximum
-length is eight characters, the value to be used is <codeph>08</codeph>, not
-plain <codeph>8</codeph>. </p> <p>If the number of characters exceeds the
-maximum length, the sub string is cut to fit and the last character is replaced
-with an ellipsis character. </p> <p><b>Error Handling</b> </p> <p>The leave
-mechanism is used to handle memory exhaustion. Errors in application programming
-are handled with the panic mechanism. The error codes used are as follows: </p> <table id="GUID-3320467E-C326-523F-9B44-EB8BC916BFA5-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-3-15">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p><codeph>ETooFewArguments</codeph> </p> </entry>
-<entry><p>= 0: Unsolved parameters in the resource string. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>ETooManyArguments</codeph> </p> </entry>
-<entry><p>= 1: Already solved all parameters in the resource string. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EKeyStringNotFound</codeph> </p> </entry>
-<entry><p>= 2: The key string was not found in formatting. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EInvalidIndex</codeph> </p> </entry>
-<entry><p>= 3: Invalid index in the Format method. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EDescriptorTooSmall</codeph> </p> </entry>
-<entry><p>= 4: Too small destination descriptor. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>ECCoeEnvNotInitialized</codeph> </p> </entry>
-<entry><p>= 5: <codeph>CCoeEnv</codeph> not initialized. </p> </entry>
-</row>
-<row>
-<entry><p><codeph>EInvalidSubstitute</codeph> </p> </entry>
-<entry><p>= 6: Substituted string contains substring separator (i.e. 0x0001). </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p><b>Example</b> </p> <p>The following example describes the usage
-of the Text Resource Utility component: </p> <codeblock id="GUID-6B0C9F3E-DC2C-511B-B58B-03CF363B794D-GENID-1-8-1-6-1-1-4-1-7-1-5-1-2-3-18" xml:space="preserve">/*  Using examples: */
-
-#include &lt;tultextresourceutils.h&gt;
-
-// Get CCoeEnv instance
-CEikonEnv* iEikonEnv = CEikonEnv::Static();
-
-/*
-*   One TInt to add:
-*/
-
-//(In .loc -file)
-#define TEXT_EXAMPLE "You have %N undone tasks."
-
-//(In .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-TInt number( 324 );
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, number, iEikonEnv );
-
-//
-//The TInt in number is added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"You have 324 undone tasks."
-//
-
-/*
-*   Several strings to add:
-*/
-
-//(In a .loc -file)
-#define TEXT_EXAMPLE "I'm %2U%1U %3U%0U fine." 
-
-//(In an .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-CDesCArrayFlat* strings = new CDesCArrayFlat( 4 );
-CleanupStack::PushL( strings );
-
-strings-&gt;AppendL( _L("orking") ); //First string
-
-strings-&gt;AppendL( _L("ll") ); //Second string
-
-strings-&gt;AppendL( _L("sti") ); //Third string
-
-strings-&gt;AppendL( _L("w") ); //Fourth string
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, *strings, iEikonEnv );
-
-//
-//The strings in strings are added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"I'm still working fine."
-//
-
-/*
-* Scalable UI support
-*/
-//(In .loc -file)
-#define TEXT_EXAMPLE "You have missed %N messages from %U."&lt;0x0001&gt;"Missed %N msgs from %U."&lt;0x0001&gt;"Missed %N msgs."
-
-//(In .rss -file)
-RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
-
-//(In the .cpp -file)
-TInt number( 12 );
-_LIT(name, “John Doe”);
-
-//
-//iEikonEnv is needed for loading the resource string.
-//
-HBufC* stringholder = TulTextResourceUtils::LoadL(R_TEXT_EXAMPLE,name,number,iEikonEnv);
-
-//
-//The number and name are added to the resource string. The result is
-//that stringholder points to a heap descriptor containing string:
-//"You have missed 12 messages from John Doe.\001Missed 12 msgs from John
-// Doe.\001Missed 12 msgs."
-//
-
-CleanupStack::PopAndDestroy(); //strings
-</codeblock> <p>For more information on individual methods, please see the
-reference API for <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref>. </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D65D1EDC-5CB4-58C1-99B5-4495B6DA511F" xml:lang="en"><title>Text resource
+utility overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-C6857C66-B599-4AA0-9ABE-469ADDE4BA5D"><title>Purpose</title> <p>Text
+Resource Utility is part of the Symbian Text Utilities. It is an API class,
+which provides static methods for loading and formatting resource strings.
+The purpose of Text Resource Utility is to make localization of the software
+easier by allowing variable order in indexing of the key strings in the resource
+string. </p> <p>Text Resource Utility provides resource string loading and
+formatting methods for other subsystems. Through simple <codeph>Load()</codeph> and <codeph>Format()</codeph> operation
+calls, the user can access resource strings which may contain formatting parameters
+(<codeph>%U</codeph> for text or <codeph>%N</codeph> for numerical). Strings
+can contain multiple instances of the same parameter. The <codeph>0x0001</codeph> character
+has special meaning in strings; it is used to delimit different options for
+displayable string. The client of <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> is
+responsible for choosing the proper string to display from given options. </p> </section>
+<section id="GUID-BAEBDD2B-2A9D-4BE6-9078-7835CF9B4E05"><title>Architectural
+Relationships</title> <p>The implementation requires a <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> instance
+(given as reference by the user or <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref>)
+to access the resource files. </p> <p>All interface methods are static, so
+there is no need to explicitly allocate memory for the interface class. All
+functionality is accessed through exported methods of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class. </p> <p>The
+interface is accessed through the <codeph>tultextresourceutils.h</codeph> header
+file. Binaries are linked to the <codeph>etul.dll</codeph> library. </p> </section>
+<section id="GUID-3694DAEC-D25F-4E28-87EA-E1D230571003"><title>Description</title> <p><b>Usage</b> </p> <p>Applications
+load and format resource strings from normal resources with static methods
+of the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> class.
+The loading is done with the <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods
+and with the <codeph>Load()</codeph> method in situations where memory allocation
+from the heap is not possible. Formatting is done automatically after loading
+in the <codeph>LoadL()</codeph> and <codeph>LoadLC() </codeph> methods, but
+it can also be done separately with the <codeph>Format() </codeph> method
+in situations where memory allocation from the heap is not possible. </p> <p>For
+reading the resource strings with the<codeph> Load()</codeph>, <codeph>LoadL()</codeph> and <codeph>LoadLC()</codeph> methods,
+the user should provide a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref> for
+efficiency reasons. If the pointer is not provided, the implementation uses
+the <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv::Static</apiname></xref> method
+internally to get it. The user can get a pointer to <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>CCoeEnv</apiname></xref>,
+for example, via the <codeph>iEikonEnv</codeph> macro (for which see <codeph>&lt;eikdef.h&gt;</codeph>). </p> <p><b>Scalable
+UI Support</b> </p> <p>Different size displays can handle different length
+strings. To take full advantage of this fact, <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> supports
+resource strings with multiple options for string separated by <codeph>0x0001</codeph> character.
+Each such string can contain same or different sub string keys (<codeph>%U</codeph> and <codeph>%N</codeph>). <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref> returns all strings,
+it is the responsibility of the caller to parse the result and choose the
+proper string to display. </p> <p><b>Setting the Maximum Substring Length</b> </p> <p>This
+may be done in the text resources. Sub string maximum lengths can be localized
+separately for every language. </p> <p>The maximum sub string length is of
+the format: </p> <codeblock id="GUID-AA1192AA-292D-59B4-9235-178AD1CC6681" xml:space="preserve">%U[NN] </codeblock> <p>where <codeph>NN</codeph> is
+a number <codeph>[01..99]</codeph>. Please note that <codeph>NN</codeph> must
+always consist of two characters, in other words, if the sub string maximum
+length is eight characters, the value to be used is <codeph>08</codeph>, not
+plain <codeph>8</codeph>. </p> <p>If the number of characters exceeds the
+maximum length, the sub string is cut to fit and the last character is replaced
+with an ellipsis character. </p> <p><b>Error Handling</b> </p> <p>The leave
+mechanism is used to handle memory exhaustion. Errors in application programming
+are handled with the panic mechanism. The error codes used are as follows: </p> <table id="GUID-3320467E-C326-523F-9B44-EB8BC916BFA5">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p><codeph>ETooFewArguments</codeph> </p> </entry>
+<entry><p>= 0: Unsolved parameters in the resource string. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>ETooManyArguments</codeph> </p> </entry>
+<entry><p>= 1: Already solved all parameters in the resource string. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>EKeyStringNotFound</codeph> </p> </entry>
+<entry><p>= 2: The key string was not found in formatting. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>EInvalidIndex</codeph> </p> </entry>
+<entry><p>= 3: Invalid index in the Format method. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>EDescriptorTooSmall</codeph> </p> </entry>
+<entry><p>= 4: Too small destination descriptor. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>ECCoeEnvNotInitialized</codeph> </p> </entry>
+<entry><p>= 5: <codeph>CCoeEnv</codeph> not initialized. </p> </entry>
+</row>
+<row>
+<entry><p><codeph>EInvalidSubstitute</codeph> </p> </entry>
+<entry><p>= 6: Substituted string contains substring separator (i.e. 0x0001). </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p><b>Example</b> </p> <p>The following example describes the usage
+of the Text Resource Utility component: </p> <codeblock id="GUID-6B0C9F3E-DC2C-511B-B58B-03CF363B794D" xml:space="preserve">/*  Using examples: */
+
+#include &lt;tultextresourceutils.h&gt;
+
+// Get CCoeEnv instance
+CEikonEnv* iEikonEnv = CEikonEnv::Static();
+
+/*
+*   One TInt to add:
+*/
+
+//(In .loc -file)
+#define TEXT_EXAMPLE "You have %N undone tasks."
+
+//(In .rss -file)
+RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
+
+//(In the .cpp -file)
+TInt number( 324 );
+
+//
+//iEikonEnv is needed for loading the resource string.
+//
+HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, number, iEikonEnv );
+
+//
+//The TInt in number is added to the resource string. The result is
+//that stringholder points to a heap descriptor containing string:
+//"You have 324 undone tasks."
+//
+
+/*
+*   Several strings to add:
+*/
+
+//(In a .loc -file)
+#define TEXT_EXAMPLE "I'm %2U%1U %3U%0U fine." 
+
+//(In an .rss -file)
+RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
+
+//(In the .cpp -file)
+CDesCArrayFlat* strings = new CDesCArrayFlat( 4 );
+CleanupStack::PushL( strings );
+
+strings-&gt;AppendL( _L("orking") ); //First string
+
+strings-&gt;AppendL( _L("ll") ); //Second string
+
+strings-&gt;AppendL( _L("sti") ); //Third string
+
+strings-&gt;AppendL( _L("w") ); //Fourth string
+
+//
+//iEikonEnv is needed for loading the resource string.
+//
+HBufC* stringholder = TulTextResourceUtils::LoadL( R_TEXT_EXAMPLE, *strings, iEikonEnv );
+
+//
+//The strings in strings are added to the resource string. The result is
+//that stringholder points to a heap descriptor containing string:
+//"I'm still working fine."
+//
+
+/*
+* Scalable UI support
+*/
+//(In .loc -file)
+#define TEXT_EXAMPLE "You have missed %N messages from %U."&lt;0x0001&gt;"Missed %N msgs from %U."&lt;0x0001&gt;"Missed %N msgs."
+
+//(In .rss -file)
+RESOURCE TBUF R_TEXT_EXAMPLE { buf = TEXT_EXAMPLE; }
+
+//(In the .cpp -file)
+TInt number( 12 );
+_LIT(name, “John Doe”);
+
+//
+//iEikonEnv is needed for loading the resource string.
+//
+HBufC* stringholder = TulTextResourceUtils::LoadL(R_TEXT_EXAMPLE,name,number,iEikonEnv);
+
+//
+//The number and name are added to the resource string. The result is
+//that stringholder points to a heap descriptor containing string:
+//"You have missed 12 messages from John Doe.\001Missed 12 msgs from John
+// Doe.\001Missed 12 msgs."
+//
+
+CleanupStack::PopAndDestroy(); //strings
+</codeblock> <p>For more information on individual methods, please see the
+reference API for <xref href="GUID-E19C9DB8-2C8B-366B-B650-2673B066256D.dita"><apiname>TulTextResourceUtils</apiname></xref>. </p> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA" xml:lang="en"><title>Open
-C MessageQueue Library Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Message Queue Library example demonstrates how to use Open C APIs for
-developing applications that use Open C standard libraries on Symbian platform.
-This example uses the APIs of the message queue library to create/close message
-queues and send/receive messages and also get information on created message
-queues. </p>
-<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-13-1-2-2"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.zip" scope="external"> opencmessagequeuelibraryex.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-13-1-2-3"><title>Design and
-Implementation</title> <p>The following sections provide information about
-the implementation of the example. </p><p><b>Description</b></p><p>OpenCMessageQueueClientEx
-is a C Application that uses the  Message Queue library. This application
-uses main() as the entry point for the application. This is a simple console
-based application. The application uses Message Queue library (OpenCMessageQueueLibrary.dll)
-APIs.  The Main thread of the application creates two message queues, and
-two threads. Thread one will send message to message queue 1 and waits for
-messages from message queue 2. Then thread one will send message to message
-queue 2 and waits for messages from message queue 1. If a user tries to create
-a message queue using OpenCMessageQueueLibrary.dll with the already
-existing name, it will just return the existing message queue Id. The application
-has its own icon and can be launched from the UI both in the emulator  and
-in the device. </p><p><b>Capabilities</b> </p> The program capabilities are
-defined in:  <filepath>MessageQueueLibrary.mmp</filepath> (DLL - library):<codeph> CAPABILITY
-ALL -TCB</codeph> <filepath>MessageQueueClient.mmp</filepath>(EXE - application): <codeph>CAPABILITY
-NONE</codeph>. <p><b>Module hierarchy</b> </p>This application has 2 modules
-as below:  <p>Message Queue Library (DLL) that exports set of apis for the
-user.</p><p>OpenCMessageQueueLibraryEx\engine : The application (EXE) that
-demonstrates the usage of Open C APIs and also those APIs exported by Message
-Queue Library.</p><p> (OpenCMessageQueueLibraryEx\exe) : This example will
-create a DLL which exports set of generic APIs with which the user can do
-message queue related operations.   To give a rough idea on how to use these
-apis, an EXE is provided that creates threads and does send/receive on message
-queues using those exported apis.</p><p><b>APIs used</b></p><p>msgget </p><p> msgctl
- </p><p>msgrcv  </p><p>msgsnd  </p><p>semget  </p><p>semctl </p><p> semop </p> </section>
-<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-13-1-2-4"><title>Building and
-Using</title> To build the Message Queue Library example application, go to
-the <filepath>OpenCMessageQueueLibraryEx\group</filepath> directory and build
-the application.  The Message Queue Library application consists of two modules,
-which should be built in the following order:   engine - which builds the
-generic message queue library  exe - which builds an EXE that demonstrates
-the usage of this library  The definition for the whole application can be
-found in the<filepath>bld.inf</filepath>in the group subdirectory of the applications
-main directory. </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D69DD425-5F93-4238-A7E9-915F24A9C9CA" xml:lang="en"><title>Open
+C MessageQueue Library Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Message Queue Library example demonstrates how to use Open C APIs for
+developing applications that use Open C standard libraries on Symbian platform.
+This example uses the APIs of the message queue library to create/close message
+queues and send/receive messages and also get information on created message
+queues. </p>
+<section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-10-1-11-1-1-5-1-3-1-11-1-12-1-2-2"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.zip" scope="external"> opencmessagequeuelibraryex.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-9db026cc-ac23-4593-8bbc-4b251c085d4f.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-10-1-11-1-1-5-1-3-1-11-1-12-1-2-3"><title>Design and
+Implementation</title> <p>The following sections provide information about
+the implementation of the example. </p><p><b>Description</b></p><p>OpenCMessageQueueClientEx
+is a C Application that uses the  Message Queue library. This application
+uses main() as the entry point for the application. This is a simple console
+based application. The application uses Message Queue library (OpenCMessageQueueLibrary.dll)
+APIs.  The Main thread of the application creates two message queues, and
+two threads. Thread one will send message to message queue 1 and waits for
+messages from message queue 2. Then thread one will send message to message
+queue 2 and waits for messages from message queue 1. If a user tries to create
+a message queue using OpenCMessageQueueLibrary.dll with the already
+existing name, it will just return the existing message queue Id. The application
+has its own icon and can be launched from the UI both in the emulator  and
+in the device. </p><p><b>Capabilities</b> </p> The program capabilities are
+defined in:  <filepath>MessageQueueLibrary.mmp</filepath> (DLL - library):<codeph> CAPABILITY
+ALL -TCB</codeph> <filepath>MessageQueueClient.mmp</filepath>(EXE - application): <codeph>CAPABILITY
+NONE</codeph>. <p><b>Module hierarchy</b> </p>This application has 2 modules
+as below:  <p>Message Queue Library (DLL) that exports set of apis for the
+user.</p><p>OpenCMessageQueueLibraryEx\engine : The application (EXE) that
+demonstrates the usage of Open C APIs and also those APIs exported by Message
+Queue Library.</p><p> (OpenCMessageQueueLibraryEx\exe) : This example will
+create a DLL which exports set of generic APIs with which the user can do
+message queue related operations.   To give a rough idea on how to use these
+apis, an EXE is provided that creates threads and does send/receive on message
+queues using those exported apis.</p><p><b>APIs used</b></p><p>msgget </p><p> msgctl
+ </p><p>msgrcv  </p><p>msgsnd  </p><p>semget  </p><p>semctl </p><p> semop </p> </section>
+<section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-10-1-11-1-1-5-1-3-1-11-1-12-1-2-4"><title>Building and
+Using</title> To build the Message Queue Library example application, go to
+the <filepath>OpenCMessageQueueLibraryEx\group</filepath> directory and build
+the application.  The Message Queue Library application consists of two modules,
+which should be built in the following order:   engine - which builds the
+generic message queue library  exe - which builds an EXE that demonstrates
+the usage of this library  The definition for the whole application can be
+found in the<filepath>bld.inf</filepath>in the group subdirectory of the applications
+main directory. </section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D6A2B169-F6DB-5BCE-83C9-7CD4A10C5BE9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D6A2B169-F6DB-5BCE-83C9-7CD4A10C5BE9"><title>Changing the cryptographic strength</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>To change the cryptographic strength simply replace the <filepath>cryptography.dll</filepath> file, located in <filepath>&lt;your-SDK-path&gt;\epoc32\release\&lt;target&gt;\&lt;variant&gt;</filepath>, with a version of the DLL that has the required strength. There are two crypto DLLs available for selection, see <xref href="GUID-A6363EC1-D9A2-5011-94F2-08B38E8247E0.dita">Weak and strong cryptography</xref>. </p> <p>So, for example, if you wanted to increase the strength of <filepath>cryptography.dll</filepath> in say <filepath>&lt;your-SDK-path&gt;\epoc32\release\wins\urel</filepath> to <filepath>strong_cryptography.dll</filepath>, then you would do this as follows: </p> <ul><li id="GUID-0D95A790-716A-5A17-861B-10CFEE13C6B8"><p>Get a copy of <filepath>strong_cryptography.dll</filepath> from <filepath>&lt;your-SDK-path&gt;\src\generic\security\crypto\import\bin\wins\urel</filepath> </p> </li> <li id="GUID-E6616C2C-8E31-5F89-A0F7-2B3DC829E2F2"><p>Paste this into <filepath>&lt;your-SDK-path&gt;\epoc32\release\wins\urel</filepath>  </p> </li> <li id="GUID-35B062C8-A61E-5719-8CEE-7EDF05E854FA"><p>Rename the copied <filepath>strong_cryptography.dll</filepath> to <filepath>cryptography.dll</filepath>  </p> </li> </ul> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D6B1B658-0582-511A-8583-758F9338E5CB" xml:lang="en"><title>Secure
+stream encryption -- guide/HowTo</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This document describes secure stream encryption and its use (with the <codeph>Cryptography</codeph> API). </p>
+<ul>
+<li id="GUID-3AAC9A1E-2722-5AB1-8284-5EEEF097ED17"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-AFCA2350-8528-50BE-A3B5-BDAEC3022B80">What is secure stream encryption?</xref>  </p> </li>
+<li id="GUID-D22F5F63-4569-513D-A410-96DD6E4650B9"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-E3DE6C97-565F-5FAD-B7EA-7B73B14CAF7F">What is secure stream encryption used for?</xref>  </p> </li>
+<li id="GUID-417238BF-A14B-5695-A496-4E369B199799"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-B227B613-9459-52B1-86EA-8A8D76DE8175">How do I use the secure stream encryption API?</xref>  </p> <ul>
+<li id="GUID-6675E3A7-8495-5B6F-B5DB-8B9CAD0C4C7B"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-9303C0E5-09A8-53A8-B1D6-14ECA045E560">Encrypting a stream</xref>  </p> </li>
+<li id="GUID-E21930E0-6053-590D-808A-16E296780D4D"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-5CFD8921-4AF9-5C06-8250-E8791C15969E">Decrypting a stream</xref>  </p> </li>
+<li id="GUID-30F9797A-4E5B-54C7-B1A0-DF7FCAD9D4E8"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-DCC5388B-F777-51C0-9D4B-BB2BFE6552AF">Handling multiple elements</xref>  </p> </li>
+<li id="GUID-5F9A5B14-C945-5BAA-B643-5DBC9480E3BD"><p> <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-93DDDA90-742A-5867-9074-9D0849ACE5F6">Storing encryption data</xref>  </p> </li>
+</ul> </li>
+<li id="GUID-48532ACC-A8A4-52AF-930C-3254C68FD23D"><p> <xref href="GUID-18358882-A4DD-5010-BED7-4ACAE021495D.dita">Example
+code</xref>  </p> </li>
+</ul>
+<section id="GUID-AFCA2350-8528-50BE-A3B5-BDAEC3022B80"><title>What is secure
+stream encryption?</title> <p>Secure stream encryption provides subclasses
+of <codeph>RReadStream</codeph>, <codeph>RWriteStream</codeph> and <codeph>CStreamStore</codeph> that
+allow transparent access to encrypted streams and stores. It is implemented
+in terms of PBE (<xref href="GUID-8119A243-2EF1-582A-BB94-BA2A18D02D2C.dita">Password
+Based Encryption</xref>) -- that is, PBE does most of the work, the stream
+encryption classes are just wrappers that call PBE. The word "secure" refers
+to the fact that it uses well-known cryptographic algorithms. </p> </section>
+<section id="GUID-E3DE6C97-565F-5FAD-B7EA-7B73B14CAF7F"><title>What is secure
+stream encryption used for?</title> <p>Secure stream encryption is used for
+example: </p> <ul>
+<li id="GUID-1F0F962C-92A7-5B2D-B30D-CC3419FCB421"><p>to password protect
+a database file </p> </li>
+<li id="GUID-0E92A1F3-F20A-5AAA-A955-018F8D494E87"><p>to store contacts encrypted
+on a mobile phone. </p> </li>
+</ul> </section>
+<section id="GUID-B227B613-9459-52B1-86EA-8A8D76DE8175"><title>How do I use
+the secure stream encryption API?</title> <p id="GUID-9303C0E5-09A8-53A8-B1D6-14ECA045E560"><b>Encrypting
+a stream</b> </p> <ul>
+<li id="GUID-FCBF60C2-33E6-5F65-B909-A608D9F69203"><p>An encryption object
+(i.e., a <codeph>CPBEncryptElement</codeph> or <codeph>CPBEncryptSet</codeph> object)
+is necessary to allow the <xref href="GUID-8119A243-2EF1-582A-BB94-BA2A18D02D2C.dita">password
+based encryption</xref> of elements or multiple elements. Objects of this
+type contain the encryption key with its encryption data (i.e. password, cipher,
+salt, IV, iterations). Note that encryption objects can be recreated at a
+later stage from existing encryption data (see <xref href="GUID-D6B1B658-0582-511A-8583-758F9338E5CB.dita#GUID-D6B1B658-0582-511A-8583-758F9338E5CB/GUID-93DDDA90-742A-5867-9074-9D0849ACE5F6">Storing
+encryption data</xref>) </p> </li>
+<li id="GUID-B0440E22-7F0E-5562-B729-9C9AB5DE3741"><p>An <codeph>RWriteStream</codeph> object
+(such as an <codeph>RFileWriteStream</codeph>, or <codeph>RStoreWriteStream</codeph> object)
+representing a target stream needs to be created in order to write the stream
+to a file or store </p> </li>
+<li id="GUID-706B4F52-3633-5E8B-A7AF-836B0D3D916A"><p>To support the encryption,
+an <codeph>REncryptStream</codeph> object is required, which forms an encryption
+filter or layer over the <codeph>RWriteStream</codeph> object. </p> </li>
+<li id="GUID-BB0E43D7-0AEF-5718-8DC1-095CC6704729"><p>Data can now be encrypted
+as it is externalized through the <codeph>REncryptStream</codeph> to the stream
+represented by the <codeph>RWriteStream</codeph> object. </p> </li>
+</ul> <p id="GUID-5CFD8921-4AF9-5C06-8250-E8791C15969E"><b>Decrypting a stream</b> </p> <p>Reading
+from an encrypted stream is a similar process to that of writing to one. </p> <ul>
+<li id="GUID-39667E19-E7BE-55C2-9E7D-5F3F9FF310D5"><p>An encryption object
+(i.e., a <codeph>CPBEncryptElement</codeph> or a <codeph>CPBEncryptSet</codeph> object)
+is needed to allow the <xref href="GUID-8119A243-2EF1-582A-BB94-BA2A18D02D2C.dita">password
+based decryption</xref> of elements or multiple elements. </p> </li>
+<li id="GUID-3F2160E6-4CD5-50EE-A222-0A206E06C885"><p>An <codeph>RReadStream</codeph> object
+(such as an <codeph>RFileReadStream</codeph>, or <codeph>RStoreReadStream</codeph> object)
+needs to be created to read the stream from a file or store. </p> </li>
+<li id="GUID-2EF007A9-9A74-5408-9DB8-8C542BDA7CE4"><p>An <codeph>RDecryptStream</codeph> object
+is needed to form an encryption wrapper around the existing <codeph>RReadStream</codeph> object. </p> </li>
+<li id="GUID-3E3C26E3-388B-52E6-A3C1-2359ACD76898"><p>The encrypted data is
+internalized from the stream represented by the <codeph>RReadStream</codeph> object
+by way of the <codeph>RDecryptStream</codeph> object. </p> </li>
+</ul> <p id="GUID-DCC5388B-F777-51C0-9D4B-BB2BFE6552AF"><b>Handling multiple
+elements</b> </p> <p> <codeph>CPBEncryptElement</codeph> is good
+for handling individual elements, but for encrypting/decrypting information
+with multiple, independent elements it is advisable to use <codeph>CPBEncryptSet</codeph>;
+for instance, if you wished to store contacts encrypted on a mobile phone. </p> <p>When
+you create a <codeph>CPBEncryptSet</codeph> object a master key is generated
+for you. This master key, which is encrypted with the password provided by
+the user of the class, enables the encryption/decryption of individual elements.
+The password may be changed by using the <codeph>CPBEncryptSet::ChangePasswordL()</codeph> function,
+which re-encrypts the master key with the new password. </p> <p id="GUID-93DDDA90-742A-5867-9074-9D0849ACE5F6"><b>Storing
+encryption data</b> </p> <p>In order to decrypt any information previously
+encrypted with a <codeph>CPBEncryptElement</codeph> or <codeph>CPBEncryptSet</codeph> object,
+you must store its encryption data along with it. Externalizing the <codeph>CPBEncryptionData</codeph> object
+will achieve this; for example: </p> <codeblock id="GUID-78A24676-ABE9-58FC-ADCE-1F7A3EF5B8F8" xml:space="preserve">writeStream &lt;&lt; encryption-&gt;EncryptionData();</codeblock> <p>where <codeph>writeStream</codeph> is a <codeph>RFileWriteStream</codeph> object,
+and encryption is a <codeph>CPBEncryptElement</codeph> object. Failure to
+do this will result in the permanent loss of the encrypted information. See <xref href="GUID-598B6698-3518-50CA-98DE-D85CB255BA2D.dita">Secure stream example code</xref>. </p> </section>
+<section id="GUID-18EF3A5E-9BF2-4542-BF0F-10E04EA09D87"><title>Note</title> <p>The
+Secure Store APIs <codeph>REncryptStream</codeph> and <codeph>RDecryptStream</codeph> currently
+support both the old <codeph>CSecurityBase</codeph> methods and the new PBE-based
+methods. In the near future, the old methods will be marked as officially
+deprecated. </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e252535_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e256243_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,78 +1,78 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3" xml:lang="en"><title>Multimedia
-APIs and Frameworks Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section provides an overview of all the components that form the Multimedia
-APIs and Frameworks collection. </p>
-<section><title>Purpose</title> <p>The Multimedia APIs and Frameworks collection
-provides a client API consisting of several interfaces that encapsulate a
-lightweight plug-in framework. The client API enables you to manipulate the
-audio and video features of the Symbian platform. </p> </section>
-<section><title>Architectural Relationship</title> <p>The following figure
-shows the architectural of the components that form the Multimedia APIs and
-Frameworks collection. </p> <fig id="GUID-E1D9CC8C-11B1-5BC5-A259-B77C5E06CD23">
-<title>              Multimedia APIs and Frameworks Architectural Overview
-           </title>
-<image href="GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e292985_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Description</title> <p>The Multimedia Framework overview details
-the architecture of the components that constitutes the Multimedia APIs and
-Frameworks collection. </p> <p>The Multimedia Subsystem provides the Multimedia
-capabilities of the Symbian platform. It includes audio recording/playback,
-video recording/playback, still image conversion and camera control. It includes
-framework to support these, even if all these functionality are not included.
-The function inclusion depends on the discretion of the device creator. </p> </section>
-<section><title>Components</title> <p>The Multimedia APIs and Frameworks constitutes
-the following components: </p> <ul>
-
-
-<li id="GUID-36787CFE-5BF1-53A2-B3DF-C936CCAFAA33"><p>Camera API </p> </li>
-<li id="GUID-A64B0DF5-59A8-5526-99AE-B8CA4A7E6244"><p>Image Conversion Library
-(ICL) </p> </li>
-<li id="GUID-BF05D850-1951-5E85-9A42-10885AB7B6BB"><p>Multimedia Framework
-(MMF) </p> </li>
-<li id="GUID-77EBAE98-96F5-5810-A540-FABE9EC3FDAB"><p>Multimedia Utility Library </p> </li>
-
-</ul> <p><b>Camera </b> </p> <p>The
-Onboard Camera API can be used to achieve video input streaming, and direct
-screen access can be used to achieve video output streaming. For more information
-about the Onboard Camera API, see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
-Camera API Overview</xref>. </p> <p><b>Image Conversion Library </b> </p> <p>The
-Image Conversion Library is a light-weight, client-side plug-in framework
-for still image codecs. A number of software codecs are shipped with the Symbian
-platform, most of which are un-optimised, but device creators may replace
-them with optimised or hardware accelerated versions. The JPEG decoder / encoder
-has been optimised. </p> <p><b>Multimedia Framework </b> </p> <p>The Multimedia
-Framework is a light-weight, multi-threaded plug-in framework for handling
-multimedia data, running as one or more threads in the application process.
-The only controller plug-in supplied by default is a simple linear audio controller.
-In turn this supports a number of formats and audio data types. In addition
-two example controllers are supplied; one for audio (Ogg/Vorbis) and one for
-video (Avi/XviD). </p> <p><b>Multimedia Utility Library </b> </p> <p>The Multimedia
-Utility Library provides shared utilities for the MMF. </p> </section>
-<section><title>Using Multimedia APIs and Frameworks</title> <p>The Multimedia
-APIs and Frameworks collection provides cross-platform compatibility for client
-applications and hardware acceleration plug-in writers, and reduces the cost
-of porting the applications and codecs between platforms. </p> </section>
-</conbody><related-links>
-<link href="GUID-60ED8061-5410-5B8E-9532-22280F35DC1D.dita"><linktext/></link>
-
-<link href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"><linktext>Camera  
-              Overview</linktext></link>
-<link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks
-Overview</linktext></link>
-<link href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita"><linktext>Multimedia
-Framework Overview</linktext></link>
-<link href="GUID-DDF4EA2E-59D6-5FE0-9C61-C5A9CBD8D4FE.dita"><linktext>Multimedia
-Utility Library Overview</linktext></link>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D6BB18FE-289D-546F-97DC-389B57B5B2E3" xml:lang="en"><title>Multimedia
+APIs and Frameworks Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This section provides an overview of all the components that form the Multimedia
+APIs and Frameworks collection. </p>
+<section><title>Purpose</title> <p>The Multimedia APIs and Frameworks collection
+provides a client API consisting of several interfaces that encapsulate a
+lightweight plug-in framework. The client API enables you to manipulate the
+audio and video features of the Symbian platform. </p> </section>
+<section><title>Architectural Relationship</title> <p>The following figure
+shows the architectural of the components that form the Multimedia APIs and
+Frameworks collection. </p> <fig id="GUID-E1D9CC8C-11B1-5BC5-A259-B77C5E06CD23">
+<title>              Multimedia APIs and Frameworks Architectural Overview
+           </title>
+<image href="GUID-6A9991B8-CF03-5097-BE7D-FB486D26D41B_d0e289302_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Description</title> <p>The Multimedia Framework overview details
+the architecture of the components that constitutes the Multimedia APIs and
+Frameworks collection. </p> <p>The Multimedia Subsystem provides the Multimedia
+capabilities of the Symbian platform. It includes audio recording/playback,
+video recording/playback, still image conversion and camera control. It includes
+framework to support these, even if all these functionality are not included.
+The function inclusion depends on the discretion of the device creator. </p> </section>
+<section><title>Components</title> <p>The Multimedia APIs and Frameworks constitutes
+the following components: </p> <ul>
+
+
+<li id="GUID-36787CFE-5BF1-53A2-B3DF-C936CCAFAA33"><p>Camera API </p> </li>
+<li id="GUID-A64B0DF5-59A8-5526-99AE-B8CA4A7E6244"><p>Image Conversion Library
+(ICL) </p> </li>
+<li id="GUID-BF05D850-1951-5E85-9A42-10885AB7B6BB"><p>Multimedia Framework
+(MMF) </p> </li>
+<li id="GUID-77EBAE98-96F5-5810-A540-FABE9EC3FDAB"><p>Multimedia Utility Library </p> </li>
+
+</ul> <p><b>Camera </b> </p> <p>The
+Onboard Camera API can be used to achieve video input streaming, and direct
+screen access can be used to achieve video output streaming. For more information
+about the Onboard Camera API, see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
+Camera API Overview</xref>. </p> <p><b>Image Conversion Library </b> </p> <p>The
+Image Conversion Library is a light-weight, client-side plug-in framework
+for still image codecs. A number of software codecs are shipped with the Symbian
+platform, most of which are un-optimised, but device creators may replace
+them with optimised or hardware accelerated versions. The JPEG decoder / encoder
+has been optimised. </p> <p><b>Multimedia Framework </b> </p> <p>The Multimedia
+Framework is a light-weight, multi-threaded plug-in framework for handling
+multimedia data, running as one or more threads in the application process.
+The only controller plug-in supplied by default is a simple linear audio controller.
+In turn this supports a number of formats and audio data types. In addition
+two example controllers are supplied; one for audio (Ogg/Vorbis) and one for
+video (Avi/XviD). </p> <p><b>Multimedia Utility Library </b> </p> <p>The Multimedia
+Utility Library provides shared utilities for the MMF. </p> </section>
+<section><title>Using Multimedia APIs and Frameworks</title> <p>The Multimedia
+APIs and Frameworks collection provides cross-platform compatibility for client
+applications and hardware acceleration plug-in writers, and reduces the cost
+of porting the applications and codecs between platforms. </p> </section>
+</conbody><related-links>
+<link href="GUID-60ED8061-5410-5B8E-9532-22280F35DC1D.dita"><linktext/></link>
+
+<link href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"><linktext>Camera  
+              Overview</linktext></link>
+<link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks
+Overview</linktext></link>
+<link href="GUID-A243699D-699C-5E45-A000-54C8DB4FF7AB.dita"><linktext>Multimedia
+Framework Overview</linktext></link>
+<link href="GUID-DDF4EA2E-59D6-5FE0-9C61-C5A9CBD8D4FE.dita"><linktext>Multimedia
+Utility Library Overview</linktext></link>
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF"><title>Setting the Text Cursor</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A text cursor (<xref href="GUID-601B802C-AB1B-357A-81A0-F8119F1F54C6.dita"><apiname>TTextCursor</apiname></xref>) is a rectangular area which can optionally be set to flash. It has a height, width, ascent and origin, illustrated below. </p> <fig id="GUID-24F6762D-F186-557A-8C11-502C7D941208"><title>
-          Text cursor
-        </title> <image href="GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e200586_href.png" placement="inline"/></fig> <p>The text cursor is positioned on screen by specifying an offset between its origin and the origin of a window. It can be added to a window group using <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-65474634-1BBD-3103-8C20-9F6709620754"><apiname>RWindowGroup::SetTextCursor()</apiname></xref>. </p> <p>Two predefined types of text cursors are provided: solid and hollow rectangles. In addition bitmaps can be used as text cursors. Custom text cursors are added to the Window Server using <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-684910B9-CCEA-3798-BE23-967820BBF363"><apiname>RWsSession::SetCustomTextCursor()</apiname></xref>. They have a unique identifier, which is used by <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-65474634-1BBD-3103-8C20-9F6709620754"><apiname>RWindowGroup::SetTextCursor()</apiname></xref>. They are clipped if too large and their vertical alignment can be adjusted. </p> </conbody><related-links><link href="GUID-567DFA14-A7AA-56F5-9741-CB1F28BCD39F.dita"><linktext>Sprites and Cursors</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-D6BE4647-25A8-5F88-9137-F4882AF22BCF"><title>Setting the Text Cursor</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A text cursor (<xref href="GUID-601B802C-AB1B-357A-81A0-F8119F1F54C6.dita"><apiname>TTextCursor</apiname></xref>) is a rectangular area which can optionally be set to flash. It has a height, width, ascent and origin, illustrated below. </p> <fig id="GUID-24F6762D-F186-557A-8C11-502C7D941208"><title>
+          Text cursor
+        </title> <image href="GUID-4BF48607-54F0-51C8-A3A8-F334454FAC9C_d0e195578_href.png" placement="inline"/></fig> <p>The text cursor is positioned on screen by specifying an offset between its origin and the origin of a window. It can be added to a window group using <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-65474634-1BBD-3103-8C20-9F6709620754"><apiname>RWindowGroup::SetTextCursor()</apiname></xref>. </p> <p>Two predefined types of text cursors are provided: solid and hollow rectangles. In addition bitmaps can be used as text cursors. Custom text cursors are added to the Window Server using <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-684910B9-CCEA-3798-BE23-967820BBF363"><apiname>RWsSession::SetCustomTextCursor()</apiname></xref>. They have a unique identifier, which is used by <xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita#GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25/GUID-65474634-1BBD-3103-8C20-9F6709620754"><apiname>RWindowGroup::SetTextCursor()</apiname></xref>. They are clipped if too large and their vertical alignment can be adjusted. </p> </conbody><related-links><link href="GUID-567DFA14-A7AA-56F5-9741-CB1F28BCD39F.dita"><linktext>Sprites and Cursors</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e322196_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e328353_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,24 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7" xml:lang="en"><title>S60
-Platform: POP/IMAP Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A3DDBA67-40D7-572D-A5CE-ED78D7A977DC"><title>Description</title> This
-C++ application shows how to retrieve e-mail from a remote mailbox to an S60
-device using IMAP and POP protocols. The usual e-mail features such as sending,
-editing, and deleting e-mail messages are demonstrated. The updated example
-has been modified to support S60 5th Edition and touch UI. Important classes:
-CMsvSession, CClientMtmRegistry, CMtmUiRegistry, CMsvOperation, CMsvEntrySelection,
-CMsvEntry, CBaseMtm. For more details, click on this link : <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/72f13dbc-a032-4276-be25-48b13c24045e/S60_Platform_POP_IMAP_Example.html" scope="external">InternetEmail.zip</xref> </section>
-<section id="GUID-F52C49C9-3072-5046-B5EF-F4C22CAEBD0F"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.zip" scope="external">Imap4Example.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.html" scope="peer">browse</xref> to view the example code. </p> </section>
-<section id="GUID-43E4D1FA-8CF0-5F5B-A166-30AE01E6D961"><title>See also</title> <p> <xref href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita">IMAP4 MTM Overview</xref>  </p> <p> <xref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita">SMTP MTM Overview</xref>  </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D73AD200-BE4D-50BF-BCF9-14627DE530B7" xml:lang="en"><title>POP/IMAP
+Example</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A3DDBA67-40D7-572D-A5CE-ED78D7A977DC"><title>Description</title> This
+C++ application shows how to retrieve e-mail from a remote mailbox to a device
+using IMAP and POP protocols. The usual e-mail features such as sending, editing,
+and deleting e-mail messages are demonstrated.</section>
+<section id="GUID-F52C49C9-3072-5046-B5EF-F4C22CAEBD0F"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.zip" scope="external">InternetEmail.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4a81a474-9ff8-4d73-8712-89ea4b8f7e36.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-43E4D1FA-8CF0-5F5B-A166-30AE01E6D961"><title>See also</title> <p> <xref href="GUID-1F755804-70D6-5635-B2F7-06F03C8D4B74.dita">IMAP4 MTM Overview</xref>  </p> <p> <xref href="GUID-4F703F85-080F-5B77-B94D-5449764828F3.dita">SMTP MTM Overview</xref>  </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A-master.png has changed
Binary file Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e58942_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D74C4403-1516-4C8F-B457-98BA0F97718A_d0e59705_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398384_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D754C477-DB73-56F7-A135-13E1179CBB2D_d0e398546_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,20 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B" xml:lang="en"><title>paged</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p> <codeph>paged</codeph>  </p>
-<p>Use the <codeph>paged</codeph> statement to specify that the executable
-is both code paged and data paged. This is the same as specifying both <xref href="GUID-E4BF80BE-17E9-5622-9E10-43C96EAC9754.dita">pagedcode</xref> and <xref href="GUID-5512B80D-77E8-5DFB-BD97-EBC1C4360E90.dita">pageddata</xref> keywords
-for an executable. </p>
-<p>You can also mark an executable as paged using the OBY file keyword file[[HWVD]].
-For more information about the  file[[HWVD]] keyword, refer to the ROM Tools
-Guide in the Application Development Toolkit available for download at  <xref href="http://developer.symbian.org/main/tools_and_kits/index.php" scope="external">http://developer.symbian.org</xref>. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D76B1999-E118-585B-A6B4-8AE8CCCB6F8B" xml:lang="en"><title>paged</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p> <codeph>paged</codeph>  </p>
+<p>Use the <codeph>paged</codeph> statement to specify that the executable
+is code-paged. This is the same as specifying the <xref href="GUID-E4BF80BE-17E9-5622-9E10-43C96EAC9754.dita">pagedcode</xref> keyword
+for an executable. </p>
+<p>You can also mark an executable as paged using the OBY file keyword <cmdname>file[[HWVD]]</cmdname>. For more information about the <cmdname>file[[HWVD]]</cmdname> keyword, refer to the ROM Tools Guide in the Application Development
+Toolkit available for download at  <xref href="http://developer.symbian.org/main/tools_and_kits/index.php" scope="external">http://developer.symbian.org</xref>. </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e78813_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D7E5FECF-0B29-5908-A163-37036DF165E1_d0e85525_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e4575_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D7F000F0-019A-486E-BB0C-C0065D08C5F6_d0e5850_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e11345_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e12620_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,240 +1,240 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF" xml:lang="en"><title>Porting
-Data-caged Applications</title><shortdesc>This document describes the changes required to migrate exe-apps
-to a data caged directory structure. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Introduction</title> <p>In Symbian OS v8.0 and earlier, application
-specific information (for instance captions and icons) was provided by a combination
-of the AIF (Application Information File) and the caption file. Both of these
-files were optional. </p> <p>Migrated applications must provide a registration
-file, and may optionally provide localizable application information resource
-files and icon files. Localizable application information resource files provide
-localizable application information (for instance captions and icons), whereas
-an application's localizable UI resource file provides UI resources such as
-menus and dialogs. </p> <p>The localizable information that was previously
-provided by a combination of AIF and caption files, has been split into two
-categories: </p> <p>The diagram below shows the new file structure used to
-provide application information. </p> <fig id="GUID-7C0D7121-43A4-5C29-86E6-A92F753D29A4">
-<image href="GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e137102_href.png" placement="inline"/>
-</fig> <ul>
-<li id="GUID-0D14076A-26FE-5E6A-BF57-69B169287BF1"><p>A registration file
-which 'points' to one of three localizable resource files provided. If the
-current language is <filepath>01</filepath> or <filepath>02</filepath>, the
-system will load the corresponding version of <filepath>AppName_loc</filepath>,
-otherwise <filepath>AppName_loc.rsc</filepath> will be loaded. </p> </li>
-<li id="GUID-AF8CD591-A112-5AF3-92CD-97ADD83C277C"><p> <filepath>AppName_loc.r01</filepath> and <filepath>AppName_loc.r02</filepath> share
-the same icon file. </p> </li>
-</ul> <p>Migrated applications may be used with or without data caging enforced. </p> </section>
-<section><title>Procedure</title> <p>The following sections detail the mandatory
-and optional steps required to migrate an application. </p> <p> <b>Mandatory
-steps</b>  </p> <ol id="GUID-8CCDDC52-4EB1-567A-A9F5-A480E9912B66">
-<li id="GUID-27A355EC-835B-59AC-8B40-B855BCB1BD34"><p>Provide a registration
-file. </p> <p>A registration file is a standard Symbian platform compiled
-resource file (<filepath>.rsc</filepath>). The <filepath>.rss</filepath> file
-used to build the registration file should be named <codeph>AppName_reg.rss</codeph> and
-contain at least the following lines: </p> <codeblock id="GUID-192653ED-EF93-566D-907F-46462D825B96" xml:space="preserve">#include &lt;appinfo.rh&gt; 
-UID2 KUidAppRegistrationResourceFile 
-UID3 0x01000000 // application UID 
-RESOURCE APP_REGISTRATION_INFO
-    {
-    app_file="AppName"; // filename of application binary (minus extension)
-    }</codeblock> <p>To build the registration file, add the following lines
-to the application's MMP file: </p> <codeblock id="GUID-2C8C8693-E881-578B-91CB-FDC17C357CDA" xml:space="preserve">START RESOURCE    AppName_reg.rss 
-TARGETPATH        \private\10003a3f\apps 
-END</codeblock> <p>The <filepath>_reg</filepath> filename suffix is used as
-a naming convention only and is not mandatory. </p> <p>Note that any lines
-in the MMP file that are used to build an AIF file should be removed. </p> </li>
-<li id="GUID-B5D1F806-91F1-5326-8026-D1E36C30889E"><p>Build the application
-binary to a new location. </p> <p>The following line should replace the <codeph>TARGETPATH</codeph> line
-associated with the <codeph>TARGET</codeph>, <codeph>TARGETTYPE</codeph> and <codeph>UID</codeph> lines: </p> <codeblock id="GUID-5BD260BF-9A9D-5998-83AE-667D9C3B1A96" xml:space="preserve">TARGETPATH        \sys\bin</codeblock> </li>
-</ol> <p> <b>Optional steps</b>  </p> <ul>
-<li id="GUID-967BFB2B-6862-5C79-A89F-F897F2036415"><p>A UI resource file whose
-location is provided by <codeph>CEikApplication::ResourceFileName()</codeph>  </p> </li>
-<li id="GUID-0B7D3B27-0D56-50E5-9EE0-9084FE138FD9"><p>An MBM file whose location
-is provided by <codeph>CEikApplication::BitmapStoreName()</codeph>  </p> </li>
-<li id="GUID-AF83E0ED-F59E-5BFC-9C58-1DED13A78645"><p>Application information
-through an AIF and/or caption file. </p> </li>
-</ul> <p>The following steps are only required if the application provides
-one or more of the following: </p> <ol id="GUID-42AA9F22-B442-5972-985F-6F629C257093">
-<li id="GUID-1706E3AD-7343-56EA-8E74-977E7F033E08"><p>Specify the default
-UI resource file location. </p> <p>When building the application UI resource
-file, the <codeph>TARGETPATH</codeph> must be specified as follows: </p> <codeblock id="GUID-9429B307-D5F6-5EEF-8FDD-FA2E962E1695" xml:space="preserve">TARGETPATH        \resource\apps</codeblock> </li>
-<li id="GUID-A21B102D-7C2A-562A-80A5-464EE0F42C56"><p>Specify the default
-MBM file location. </p> <p>When building the application's MBM file, the <codeph>TARGETPATH</codeph> must
-be specified as follows: </p> <codeblock id="GUID-E7A8DD91-70AA-519E-91EB-493EFCF9302A" xml:space="preserve">TARGETPATH        \resource\apps</codeblock> </li>
-<li id="GUID-1E07FA6D-F5E1-524D-AD7C-E6CAD3E8F5E5"><p>Specify the application
-information by providing the following files: </p> <ul>
-<li id="GUID-619E778D-E4E5-5755-B6F1-E02C047C4BEE"><p>Non-localizable information
-(provided by the registration file) </p> <p>The registration file provides
-non-localizable application information. For an example registration file
-see <codeph>AppName_reg.rss</codeph> in the <xref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita#GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF/GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF">Example
-files</xref> section. </p> </li>
-<li id="GUID-38C4EF86-05A7-5D95-BB04-644DEC26C582"><p>Localizable information
-(localizable resource file and icon file) </p> <p>Localizable application
-information can either be provided in a separate resource file (see <codeph>AppName_loc.rss</codeph>),
-or as a resource within the application UI resource file (see <codeph>AppName.rss</codeph> and <codeph>AppName2_reg.rss</codeph> in
-the <xref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita#GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF/GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF">Example
-files</xref> section). </p> <p>When providing the information as a resource
-within the application UI resource file, the registration file's <codeph>APP_REGISTRATION_INFO</codeph> struct
-must contain the following lines: </p> <codeblock id="GUID-EF9F185B-FBF7-52BA-B218-4B3DF2FC8A40" xml:space="preserve">localisable_resource_file="\\resource\\apps\\AppName";
-localisable_resource_id = R_LAI;</codeblock> <p>where <codeph>R_LAI</codeph> is
-a named <codeph>LOCALISABLE_APP_INFO</codeph> resource struct within the UI
-resource file. </p> <p>The <codeph>localisable_resource_file</codeph> field
-should not include a drive in the path, or a file-extension, but it should
-provide a full directory path and a file name (without extension). </p> <p>To
-build a resource file for language <filepath>01</filepath>, add the following
-to the MMP file: </p> <codeblock id="GUID-8ECAB691-7720-5B7C-AD77-AF706AE621B8" xml:space="preserve">start resource    AppName_loc.rss
-targetpath        \resource\apps 
-lang              01 
-end</codeblock> <p>The <filepath>_loc</filepath> filename suffix is used as
-a naming convention only and is not mandatory. </p> <p>Icon files referenced
-in the localizable resource should also be built to <filepath>\resource\apps\</filepath>. </p> </li>
-</ul> </li>
-</ol> </section>
-<section id="GUID-3C64BE3F-859A-5E81-BCBD-C4BF717D4439"><title>Software install
-package file requirements</title> <p>When creating a PKG file (software install
-package file) for an application, the registration file must be installed
-to the <filepath>\private\10003a3f\import\apps\</filepath> directory. </p> <p>The
-application binary must be installed to <filepath>\sys\bin\</filepath> on
-the same drive as the registration file. </p> <p>The localizable resource
-files must be installed to <filepath>\resource\apps\</filepath> on the same
-drive as the registration file. </p> </section>
-<section id="GUID-BB2F1E46-47CE-51F8-9020-D0D1DD9E06CB"><title>Data caged
-file locations</title> <p>To comply with the directory structure imposed by
-data caging, many of the files associated with an application need to be relocated. </p> <p>Care
-should be taken to ensure application code which overrides the following APIs
-uses appropriate file locations: </p> <codeblock id="GUID-4CED50C3-3B76-5FCD-8F22-0B1D051E1A7A" xml:space="preserve">CEikApplication::ResourceFileName() 
-CEikApplication::BitmapStoreName() 
-CEikApplication::OpenIniFileLC( RFs&amp; aFs )</codeblock> <p>When specifying
-the location of files on a target device, application IBY files should explicitly
-specify <filepath>\sys\bin</filepath> as the destination location for application
-binary files instead of using <codeph>SYSTEM_BINDIR</codeph>. </p> </section>
-<section id="GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF"><title>Example files</title> <p id="GUID-CDA35D97-FF46-5A5F-A57B-F3E93B935E1C"><b>AppName_reg.rss</b> </p><codeblock id="GUID-AE62EB61-5776-55D8-9CA3-DB18EAC00CC7" xml:space="preserve">#include &lt;appinfo.rh&gt;
-
-UID2 KUidAppRegistrationResourceFile 
-UID3 0x01000000 // application UID
-
-RESOURCE APP_REGISTRATION_INFO
-    {
-    app_file = "AppName";
-    //
-    localisable_resource_file = "\\resource\\apps\\AppName_loc";
-    //
-    hidden = KAppNotHidden;
-    embeddability = KAppNotEmbeddable;
-    newfile = KAppDoesNotSupportNewFile;
-    launch = KAppLaunchInForeground;
-    group_name = "AppNameGroup";
-    //
-    default_screen_number = 2;
-    //
-    datatype_list = 
-        {
-        DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg"; },
-        DATATYPE { priority=EDataTypePriorityNormal; type="image/gif"; }
-        };
-    //
-    file_ownership_list =
-        {
-        FILE_OWNERSHIP_INFO {file_name="z:\\temp\\AppNameTempFile.txt"; },
-        FILE_OWNERSHIP_INFO {file_name="z:\\temp\\AppName.txt"; }
-        };
-    }</codeblock> <p id="GUID-7F026167-77F9-5AC2-A68F-049DEC624A4E"><b> AppName_loc.rss</b> </p><codeblock id="GUID-E2F5C25C-206E-510F-BF8C-6E8EBA41F1DD" xml:space="preserve">#include &lt;appinfo.rh&gt; 
-#ifdef LANGUAGE_01 
-#include "AppName01.rls" 
-#else 
-#include "AppNamesc.rls" 
-#endif 
-RESOURCE LOCALISABLE_APP_INFO
-    {
-    short_caption = STRING_r_short_caption;
-    caption_and_icon =
-        {
-        CAPTION_AND_ICON_INFO
-            {
-            caption = STRING_r_caption;
-            number_of_icons = 2; // each icon must be a bitmap/mask pair
-            icon_file = STRING_r_icon_file;
-            }
-        };                            
-    //
-    view_list =
-        {
-        VIEW_DATA
-            {
-            uid = 268123123;
-            screen_mode = 0x00;
-            caption_and_icon =
-                {
-                CAPTION_AND_ICON_INFO
-                    {
-                    caption = STRING_r_view_268123123_caption;
-                    number_of_icons = 1; // each icon must be a bitmap/mask pair
-                    }
-                };                            
-            },
-        VIEW_DATA
-            {
-            uid = 268123124;
-            screen_mode = 0x01;
-            caption_and_icon =
-                {
-                CAPTION_AND_ICON_INFO
-                    {
-                    caption = STRING_r_view_268123124_caption;
-                    number_of_icons = 1; // each icon must be a bitmap/mask pair
-                    icon_file = "z:\\resource\\apps\\icon.svg";
-                    }
-                };
-            }
-        };
-    }</codeblock> <p><b>Note</b>: In the above example, RLS files have been
-used to demonstrate how resource files for different languages (<codeph>AppName_loc.r01</codeph> and <codeph>AppName_loc.rsc</codeph>)
-can be built from a single RSS file. </p> <p id="GUID-E828B29C-35AC-50CA-8B76-FD626D825E1A"><b> AppName01.rls</b> </p><codeblock id="GUID-BB8CC777-51FC-5BFC-99B3-19D68C130458" xml:space="preserve">rls_string STRING_r_short_caption "English AppName" 
-rls_string STRING_r_caption "English AppName Long Caption" 
-rls_string STRING_r_icon_file "z:\\resource\\apps\\EnglishAppNameIcons.mbm" 
-rls_string STRING_r_view_268123123_caption "caption for view 268123123" 
-rls_string STRING_r_view_268123124_caption "English view 268123124"</codeblock> <p id="GUID-8E9F17B1-4A22-56EF-ACD8-0432F3BB9DBD"><b> AppNamesc.rls</b> </p><codeblock id="GUID-F5182C0B-1F5E-5F7A-9F10-C0DCA34E0B84" xml:space="preserve">rls_string STRING_r_short_caption "AppName" 
-rls_string STRING_r_caption "Default AppName Caption" 
-rls_string STRING_r_icon_file "z:\\resource\\apps\\DefaultAppNameIcons.mbm" 
-rls_string STRING_r_view_268123123_caption "caption for view 268123123" 
-rls_string STRING_r_view_268123124_caption "caption for view 268123124"</codeblock> <p id="GUID-065DF486-615D-55F1-8572-DF30E58927C3"><b> AppName2_reg.rss</b> </p><codeblock id="GUID-3B7C2951-9B1D-51FD-9AED-2B68EEE6CA62" xml:space="preserve">#include &lt;appinfo.rh&gt; 
-#include &lt;appname.rsg&gt;
-
-UID2 KUidAppRegistrationResourceFile 
-UID3 0x01000000 // application UID
-
-RESOURCE APP_REGISTRATION_INFO
-    {
-    app_file = "AppName";
-    //
-    localisable_resource_file = "\\resource\\apps\\appname";
-    localisable_resource_id = R_LAI;
-    }</codeblock> <p id="GUID-661C0B2C-9BA9-5168-B2A9-A2FA1F87B5D7"><b> AppName.rss</b> </p><codeblock id="GUID-54DDDB25-E66F-5CF1-ACA3-93244C44CC8D" xml:space="preserve">NAME APPN
-#include &lt;eikon.rh&gt; 
-#include &lt;eikon.rsg&gt; 
-#include &lt;appinfo.rh&gt;
-
-RESOURCE RSS_SIGNATURE                { } 
-RESOURCE TBUF r_appname_default_file  { buf="default file name"; } 
-RESOURCE EIK_APP_INFO                 { hotkeys=r_appname_hotkeys; menubar=r_appname_menubar; toolbar=r_appname_toolbar; } 
-RESOURCE LOCALISABLE_APP_INFO r_lai
-    {
-    short_caption = "AppName";
-    } 
-RESOURCE TOOLBAR r_appname_toolbar        { } 
-RESOURCE HOTKEYS r_appname_hotkeys        { } 
-RESOURCE MENU_BAR r_appname_menubar       { }</codeblock> </section>
-</conbody><related-links>
-<link href="GUID-3CAD7211-2164-5F93-9EA7-7167E1C14012.dita"><linktext>Porting Applications
-to EXEs</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF" xml:lang="en"><title>Porting
+Data-caged Applications</title><shortdesc>This document describes the changes required to migrate exe-apps
+to a data caged directory structure. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Introduction</title> <p>In Symbian OS v8.0 and earlier, application
+specific information (for instance captions and icons) was provided by a combination
+of the AIF (Application Information File) and the caption file. Both of these
+files were optional. </p> <p>Migrated applications must provide a registration
+file, and may optionally provide localizable application information resource
+files and icon files. Localizable application information resource files provide
+localizable application information (for instance captions and icons), whereas
+an application's localizable UI resource file provides UI resources such as
+menus and dialogs. </p> <p>The localizable information that was previously
+provided by a combination of AIF and caption files, has been split into two
+categories: </p> <p>The diagram below shows the new file structure used to
+provide application information. </p> <fig id="GUID-7C0D7121-43A4-5C29-86E6-A92F753D29A4">
+<image href="GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e130564_href.png" placement="inline"/>
+</fig> <ul>
+<li id="GUID-0D14076A-26FE-5E6A-BF57-69B169287BF1"><p>A registration file
+which 'points' to one of three localizable resource files provided. If the
+current language is <filepath>01</filepath> or <filepath>02</filepath>, the
+system will load the corresponding version of <filepath>AppName_loc</filepath>,
+otherwise <filepath>AppName_loc.rsc</filepath> will be loaded. </p> </li>
+<li id="GUID-AF8CD591-A112-5AF3-92CD-97ADD83C277C"><p> <filepath>AppName_loc.r01</filepath> and <filepath>AppName_loc.r02</filepath> share
+the same icon file. </p> </li>
+</ul> <p>Migrated applications may be used with or without data caging enforced. </p> </section>
+<section><title>Procedure</title> <p>The following sections detail the mandatory
+and optional steps required to migrate an application. </p> <p> <b>Mandatory
+steps</b>  </p> <ol id="GUID-8CCDDC52-4EB1-567A-A9F5-A480E9912B66">
+<li id="GUID-27A355EC-835B-59AC-8B40-B855BCB1BD34"><p>Provide a registration
+file. </p> <p>A registration file is a standard Symbian platform compiled
+resource file (<filepath>.rsc</filepath>). The <filepath>.rss</filepath> file
+used to build the registration file should be named <codeph>AppName_reg.rss</codeph> and
+contain at least the following lines: </p> <codeblock id="GUID-192653ED-EF93-566D-907F-46462D825B96" xml:space="preserve">#include &lt;appinfo.rh&gt; 
+UID2 KUidAppRegistrationResourceFile 
+UID3 0x01000000 // application UID 
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file="AppName"; // filename of application binary (minus extension)
+    }</codeblock> <p>To build the registration file, add the following lines
+to the application's MMP file: </p> <codeblock id="GUID-2C8C8693-E881-578B-91CB-FDC17C357CDA" xml:space="preserve">START RESOURCE    AppName_reg.rss 
+TARGETPATH        \private\10003a3f\apps 
+END</codeblock> <p>The <filepath>_reg</filepath> filename suffix is used as
+a naming convention only and is not mandatory. </p> <p>Note that any lines
+in the MMP file that are used to build an AIF file should be removed. </p> </li>
+<li id="GUID-B5D1F806-91F1-5326-8026-D1E36C30889E"><p>Build the application
+binary to a new location. </p> <p>The following line should replace the <codeph>TARGETPATH</codeph> line
+associated with the <codeph>TARGET</codeph>, <codeph>TARGETTYPE</codeph> and <codeph>UID</codeph> lines: </p> <codeblock id="GUID-5BD260BF-9A9D-5998-83AE-667D9C3B1A96" xml:space="preserve">TARGETPATH        \sys\bin</codeblock> </li>
+</ol> <p> <b>Optional steps</b>  </p> <ul>
+<li id="GUID-967BFB2B-6862-5C79-A89F-F897F2036415"><p>A UI resource file whose
+location is provided by <codeph>CEikApplication::ResourceFileName()</codeph>  </p> </li>
+<li id="GUID-0B7D3B27-0D56-50E5-9EE0-9084FE138FD9"><p>An MBM file whose location
+is provided by <codeph>CEikApplication::BitmapStoreName()</codeph>  </p> </li>
+<li id="GUID-AF83E0ED-F59E-5BFC-9C58-1DED13A78645"><p>Application information
+through an AIF and/or caption file. </p> </li>
+</ul> <p>The following steps are only required if the application provides
+one or more of the following: </p> <ol id="GUID-42AA9F22-B442-5972-985F-6F629C257093">
+<li id="GUID-1706E3AD-7343-56EA-8E74-977E7F033E08"><p>Specify the default
+UI resource file location. </p> <p>When building the application UI resource
+file, the <codeph>TARGETPATH</codeph> must be specified as follows: </p> <codeblock id="GUID-9429B307-D5F6-5EEF-8FDD-FA2E962E1695" xml:space="preserve">TARGETPATH        \resource\apps</codeblock> </li>
+<li id="GUID-A21B102D-7C2A-562A-80A5-464EE0F42C56"><p>Specify the default
+MBM file location. </p> <p>When building the application's MBM file, the <codeph>TARGETPATH</codeph> must
+be specified as follows: </p> <codeblock id="GUID-E7A8DD91-70AA-519E-91EB-493EFCF9302A" xml:space="preserve">TARGETPATH        \resource\apps</codeblock> </li>
+<li id="GUID-1E07FA6D-F5E1-524D-AD7C-E6CAD3E8F5E5"><p>Specify the application
+information by providing the following files: </p> <ul>
+<li id="GUID-619E778D-E4E5-5755-B6F1-E02C047C4BEE"><p>Non-localizable information
+(provided by the registration file) </p> <p>The registration file provides
+non-localizable application information. For an example registration file
+see <codeph>AppName_reg.rss</codeph> in the <xref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita#GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF/GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF">Example
+files</xref> section. </p> </li>
+<li id="GUID-38C4EF86-05A7-5D95-BB04-644DEC26C582"><p>Localizable information
+(localizable resource file and icon file) </p> <p>Localizable application
+information can either be provided in a separate resource file (see <codeph>AppName_loc.rss</codeph>),
+or as a resource within the application UI resource file (see <codeph>AppName.rss</codeph> and <codeph>AppName2_reg.rss</codeph> in
+the <xref href="GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF.dita#GUID-D8302B04-D850-5FA7-A1AD-F5C40CF6A1EF/GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF">Example
+files</xref> section). </p> <p>When providing the information as a resource
+within the application UI resource file, the registration file's <codeph>APP_REGISTRATION_INFO</codeph> struct
+must contain the following lines: </p> <codeblock id="GUID-EF9F185B-FBF7-52BA-B218-4B3DF2FC8A40" xml:space="preserve">localisable_resource_file="\\resource\\apps\\AppName";
+localisable_resource_id = R_LAI;</codeblock> <p>where <codeph>R_LAI</codeph> is
+a named <codeph>LOCALISABLE_APP_INFO</codeph> resource struct within the UI
+resource file. </p> <p>The <codeph>localisable_resource_file</codeph> field
+should not include a drive in the path, or a file-extension, but it should
+provide a full directory path and a file name (without extension). </p> <p>To
+build a resource file for language <filepath>01</filepath>, add the following
+to the MMP file: </p> <codeblock id="GUID-8ECAB691-7720-5B7C-AD77-AF706AE621B8" xml:space="preserve">start resource    AppName_loc.rss
+targetpath        \resource\apps 
+lang              01 
+end</codeblock> <p>The <filepath>_loc</filepath> filename suffix is used as
+a naming convention only and is not mandatory. </p> <p>Icon files referenced
+in the localizable resource should also be built to <filepath>\resource\apps\</filepath>. </p> </li>
+</ul> </li>
+</ol> </section>
+<section id="GUID-3C64BE3F-859A-5E81-BCBD-C4BF717D4439"><title>Software install
+package file requirements</title> <p>When creating a PKG file (software install
+package file) for an application, the registration file must be installed
+to the <filepath>\private\10003a3f\import\apps\</filepath> directory. </p> <p>The
+application binary must be installed to <filepath>\sys\bin\</filepath> on
+the same drive as the registration file. </p> <p>The localizable resource
+files must be installed to <filepath>\resource\apps\</filepath> on the same
+drive as the registration file. </p> </section>
+<section id="GUID-BB2F1E46-47CE-51F8-9020-D0D1DD9E06CB"><title>Data caged
+file locations</title> <p>To comply with the directory structure imposed by
+data caging, many of the files associated with an application need to be relocated. </p> <p>Care
+should be taken to ensure application code which overrides the following APIs
+uses appropriate file locations: </p> <codeblock id="GUID-4CED50C3-3B76-5FCD-8F22-0B1D051E1A7A" xml:space="preserve">CEikApplication::ResourceFileName() 
+CEikApplication::BitmapStoreName() 
+CEikApplication::OpenIniFileLC( RFs&amp; aFs )</codeblock> <p>When specifying
+the location of files on a target device, application IBY files should explicitly
+specify <filepath>\sys\bin</filepath> as the destination location for application
+binary files instead of using <codeph>SYSTEM_BINDIR</codeph>. </p> </section>
+<section id="GUID-52802361-8A7A-5C8A-ACC1-F41E50CFD1CF"><title>Example files</title> <p id="GUID-CDA35D97-FF46-5A5F-A57B-F3E93B935E1C"><b>AppName_reg.rss</b> </p><codeblock id="GUID-AE62EB61-5776-55D8-9CA3-DB18EAC00CC7" xml:space="preserve">#include &lt;appinfo.rh&gt;
+
+UID2 KUidAppRegistrationResourceFile 
+UID3 0x01000000 // application UID
+
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file = "AppName";
+    //
+    localisable_resource_file = "\\resource\\apps\\AppName_loc";
+    //
+    hidden = KAppNotHidden;
+    embeddability = KAppNotEmbeddable;
+    newfile = KAppDoesNotSupportNewFile;
+    launch = KAppLaunchInForeground;
+    group_name = "AppNameGroup";
+    //
+    default_screen_number = 2;
+    //
+    datatype_list = 
+        {
+        DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg"; },
+        DATATYPE { priority=EDataTypePriorityNormal; type="image/gif"; }
+        };
+    //
+    file_ownership_list =
+        {
+        FILE_OWNERSHIP_INFO {file_name="z:\\temp\\AppNameTempFile.txt"; },
+        FILE_OWNERSHIP_INFO {file_name="z:\\temp\\AppName.txt"; }
+        };
+    }</codeblock> <p id="GUID-7F026167-77F9-5AC2-A68F-049DEC624A4E"><b> AppName_loc.rss</b> </p><codeblock id="GUID-E2F5C25C-206E-510F-BF8C-6E8EBA41F1DD" xml:space="preserve">#include &lt;appinfo.rh&gt; 
+#ifdef LANGUAGE_01 
+#include "AppName01.rls" 
+#else 
+#include "AppNamesc.rls" 
+#endif 
+RESOURCE LOCALISABLE_APP_INFO
+    {
+    short_caption = STRING_r_short_caption;
+    caption_and_icon =
+        {
+        CAPTION_AND_ICON_INFO
+            {
+            caption = STRING_r_caption;
+            number_of_icons = 2; // each icon must be a bitmap/mask pair
+            icon_file = STRING_r_icon_file;
+            }
+        };                            
+    //
+    view_list =
+        {
+        VIEW_DATA
+            {
+            uid = 268123123;
+            screen_mode = 0x00;
+            caption_and_icon =
+                {
+                CAPTION_AND_ICON_INFO
+                    {
+                    caption = STRING_r_view_268123123_caption;
+                    number_of_icons = 1; // each icon must be a bitmap/mask pair
+                    }
+                };                            
+            },
+        VIEW_DATA
+            {
+            uid = 268123124;
+            screen_mode = 0x01;
+            caption_and_icon =
+                {
+                CAPTION_AND_ICON_INFO
+                    {
+                    caption = STRING_r_view_268123124_caption;
+                    number_of_icons = 1; // each icon must be a bitmap/mask pair
+                    icon_file = "z:\\resource\\apps\\icon.svg";
+                    }
+                };
+            }
+        };
+    }</codeblock> <p><b>Note</b>: In the above example, RLS files have been
+used to demonstrate how resource files for different languages (<codeph>AppName_loc.r01</codeph> and <codeph>AppName_loc.rsc</codeph>)
+can be built from a single RSS file. </p> <p id="GUID-E828B29C-35AC-50CA-8B76-FD626D825E1A"><b> AppName01.rls</b> </p><codeblock id="GUID-BB8CC777-51FC-5BFC-99B3-19D68C130458" xml:space="preserve">rls_string STRING_r_short_caption "English AppName" 
+rls_string STRING_r_caption "English AppName Long Caption" 
+rls_string STRING_r_icon_file "z:\\resource\\apps\\EnglishAppNameIcons.mbm" 
+rls_string STRING_r_view_268123123_caption "caption for view 268123123" 
+rls_string STRING_r_view_268123124_caption "English view 268123124"</codeblock> <p id="GUID-8E9F17B1-4A22-56EF-ACD8-0432F3BB9DBD"><b> AppNamesc.rls</b> </p><codeblock id="GUID-F5182C0B-1F5E-5F7A-9F10-C0DCA34E0B84" xml:space="preserve">rls_string STRING_r_short_caption "AppName" 
+rls_string STRING_r_caption "Default AppName Caption" 
+rls_string STRING_r_icon_file "z:\\resource\\apps\\DefaultAppNameIcons.mbm" 
+rls_string STRING_r_view_268123123_caption "caption for view 268123123" 
+rls_string STRING_r_view_268123124_caption "caption for view 268123124"</codeblock> <p id="GUID-065DF486-615D-55F1-8572-DF30E58927C3"><b> AppName2_reg.rss</b> </p><codeblock id="GUID-3B7C2951-9B1D-51FD-9AED-2B68EEE6CA62" xml:space="preserve">#include &lt;appinfo.rh&gt; 
+#include &lt;appname.rsg&gt;
+
+UID2 KUidAppRegistrationResourceFile 
+UID3 0x01000000 // application UID
+
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file = "AppName";
+    //
+    localisable_resource_file = "\\resource\\apps\\appname";
+    localisable_resource_id = R_LAI;
+    }</codeblock> <p id="GUID-661C0B2C-9BA9-5168-B2A9-A2FA1F87B5D7"><b> AppName.rss</b> </p><codeblock id="GUID-54DDDB25-E66F-5CF1-ACA3-93244C44CC8D" xml:space="preserve">NAME APPN
+#include &lt;eikon.rh&gt; 
+#include &lt;eikon.rsg&gt; 
+#include &lt;appinfo.rh&gt;
+
+RESOURCE RSS_SIGNATURE                { } 
+RESOURCE TBUF r_appname_default_file  { buf="default file name"; } 
+RESOURCE EIK_APP_INFO                 { hotkeys=r_appname_hotkeys; menubar=r_appname_menubar; toolbar=r_appname_toolbar; } 
+RESOURCE LOCALISABLE_APP_INFO r_lai
+    {
+    short_caption = "AppName";
+    } 
+RESOURCE TOOLBAR r_appname_toolbar        { } 
+RESOURCE HOTKEYS r_appname_hotkeys        { } 
+RESOURCE MENU_BAR r_appname_menubar       { }</codeblock> </section>
+</conbody><related-links>
+<link href="GUID-3CAD7211-2164-5F93-9EA7-7167E1C14012.dita"><linktext>Porting Applications
+to EXEs</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D84847BB-523D-5057-8F14-F6BCEECA2327-master.jpg has changed
Binary file Symbian3/SDK/Source/GUID-D84847BB-523D-5057-8F14-F6BCEECA2327_d0e185542_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,209 +1,209 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF" xml:lang="en"><title>Loader
-Search Rules</title><shortdesc>This topic provides a summary of the rules that the loader follows
-to search for EXEs and DLLs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-D6BAD23C-005E-58E4-8418-16FFBE8AC052"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-D9984B1D-8C7E-55B5-86AC-E90E244BDFB3">Search rules for an EXE</xref>  </p> </li>
-<li id="GUID-373C451E-17C1-576C-8D00-6F15174CCD9D"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search rules for a DLL in the import table of an EXE or another DLL</xref>  </p> </li>
-<li id="GUID-5FD789FB-95A3-51DF-9AD4-FD7474ED9088"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-FA4768B2-A741-5601-990C-46B51DA77803">Search rules for a DLL loaded from a program</xref>  </p> </li>
-</ul>
-<section id="GUID-D9984B1D-8C7E-55B5-86AC-E90E244BDFB3"><title>Search rules
-for an EXE</title> <p>To start a new process, call <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>. </p> <p> <codeph>RProcess::Create()</codeph> loads
-the EXE specified in the input parameters. The function then looks through
-the import table of the EXE to get a list of DLLs that the EXE references.
-The loader uses the list of DLLs in the import table to load the DLLs. If
-DLLs reference other DLLS, the loader uses the same method to load those DLLs.
-See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search
-rules for a DLL listed in the import table of an EXE</xref>. </p> <p>The result
-of a search for an EXE depends on: </p> <ul>
-<li id="GUID-DC1D5577-2D85-5B9F-B4F4-B10F4208CA46"><p>the name of the EXE.
-You provide this information. </p> </li>
-<li id="GUID-7BBF1688-8013-5C4D-8C60-09CA0E22D6B5"><p>the UID type : you provide.
-This is optional </p> </li>
-<li id="GUID-351742AD-AAE3-5050-AF93-DA990309FF37"><p>the version of the EXEs
-on the device </p> </li>
-</ul> <p>You pass the name of the EXE in the first parameter of <codeph>RProcess::Create()</codeph>.
-You have a number of choices: </p> <ul>
-<li id="GUID-30C6FEB3-DED9-5BAF-AF3F-700FA8EE58D0"><p>you can specify the
-file name only. The loader will assume a <filepath>.exe</filepath> file extension.
-For example: </p> <p> <filepath>efile</filepath>  </p> </li>
-<li id="GUID-94CD2AC1-5FC5-52D8-893B-E6232522F494"><p>you can specify a filename
-and an extension. For example: </p> <p> <filepath>efile.exe</filepath>  </p> </li>
-<li id="GUID-06F6A1CF-FD26-5402-983F-E32D2D1F8B90"><p>you can put a path in
-front of the file name. A path has limited use, because the loader can load
-EXEs only from the directory <filepath>\sys\bin</filepath>, or from subdirectories
-of <filepath>\sys\bin</filepath>. </p> </li>
-</ul> <p><b>The
-search procedure</b> </p> <p>The loader searches for EXEs with the given name
-and extension. More than one EXE with the given name and extension can exist
-on a device. </p> <ol id="GUID-16CF313D-BAB9-58BB-AB38-ED59BDF572D4">
-<li id="GUID-DE4AD994-9C84-5113-B2C7-9030DC08C22E"><p>If you do not provide
-a path, the loader searches the <filepath>\sys\bin</filepath> directory on
-all drives. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched last. Subdirectories of <filepath>\sys\bin</filepath> are
-not searched. </p> <p>If you provide a path, there are only three useful cases: </p> <ul>
-<li id="GUID-3D83CC05-0B68-5CA7-AB52-01A7858E2383"><p>to limit the search
-to a specific drive. For example: </p> <p> <filepath>X:\sys\bin</filepath>  </p> <p>where <filepath>X:</filepath> can
-be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
-<li id="GUID-821A186F-9DA4-51E6-9CAD-E833D9DEDF3F"><p>to limit the search
-to a subdirectory of <filepath>\sys\bin</filepath> on a specific drive. For
-example: </p> <p> <filepath>X:\sys\bin\aaa\bbb</filepath>  </p> <p>The use
-of subdirectories in <filepath>\sys\bin</filepath> is not common. </p> <p>where <filepath>X</filepath>:
-can be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
-<li id="GUID-63815160-C411-5BEB-AC8F-7224F33883BE"><p>to limit the search
-to a subdirectory of <filepath>\sys\bin</filepath> on all drives. For example: </p> <p> <filepath>\sys\bin\aaa\bbb</filepath>  </p> <p>The
-loader searches all drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>.
-The <filepath>Z:</filepath> drive is searched last. </p> <p>The use of subdirectories
-in <filepath>\sys\bin</filepath> is not common. </p> </li>
-</ul> <p>The loader cannot load EXEs from other directories, because system
-security prevents it. </p> </li>
-<li id="GUID-1AFA13C7-24B4-5598-94CA-448D05449BBA"><p>The loader compares
-the UID type (<xref href="GUID-B6D6B0AD-B15C-339A-8540-40540885089A.dita"><apiname>TUidType</apiname></xref>) of each EXE in the list with the
-UID type you specify in <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>. The UID type
-is a set of three UIDs. Each UID in the UID type that you specify must match
-the same UID in the UID type of the EXE. If you specify <xref href="GUID-707A476C-1790-34DB-B1E5-5435578E01AA.dita"><apiname>KNullUid</apiname></xref> for
-any of the three UIDs in your UID type, a match is automatic. </p> </li>
-<li id="GUID-7F8E3D49-F2CB-5445-ACCC-F7967B4C745F"><p>If the search has found
-no EXEs, the load fails. </p> </li>
-<li id="GUID-1469E256-98FF-51B8-9936-78ED389EDCBE"><p>If the search has found
-one EXE only, the loader loads that EXE. </p> </li>
-<li id="GUID-90B5C4A5-A0E9-5ADD-B76A-3491C322C4B1"><p>If more than one EXE
-has been found, the loader loads the EXE with the highest version. A version <codeph>N.n</codeph> is
-higher than version <codeph>M.m</codeph> if <codeph>(N&gt;M or (N==M and n&gt;m))</codeph>. </p> </li>
-<li id="GUID-A4761946-0490-5887-9686-184B6BED556C"><p>If all EXEs have the
-same version, the loader loads the version found first. </p> </li>
-</ol> </section>
-<section id="GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5"><title>Search rules
-for a DLL in the import table of an EXE or another DLL</title> <p>After the
-loader has selected the EXE, the loader loads all DLLs in the import table.
-This is also called static linkage. </p> <p>The import table contains the
-name and extension of each DLL. The import table also contains the version
-of each DLL and the 3rd UID that identifies each DLL. The version information
-is stored in the import table when the executable file is built. All DLLs
-have an ordered set of three UIDs. The third UID gives a unique identity to
-the DLL. See <xref href="GUID-C135B8D8-DA5A-5852-9C2D-18622404FE99.dita">UID protection</xref>. </p> <p><b>The search procedure</b> </p> <p>The search uses the following procedure
-for each DLL: </p> <ol id="GUID-FF01C553-8546-5A2C-B34B-8F85014631D6">
-<li id="GUID-42FD9744-4B2C-55D6-A7B0-73DE248861DE"><p>The loader searches
-the <filepath>\sys\bin</filepath> directory on all drives for all DLLs that
-have the filename and extension. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched
-last. Subdirectories of <filepath>\sys\bin</filepath> are not searched. The
-loader searches for all versions of the DLL. If the loader finds the same
-version of a DLL on more than one drive, the loader only adds the first one
-to the set of possible DLLs. For example, if version 2.1 of a DLL is on drive <filepath>D:</filepath> and
-on drive <filepath>Z:</filepath>, only the version on drive <filepath>D:</filepath> is
-added to the set of possible DLLs. </p> <p>The loader cannot load DLLs from
-other directories, because system security prevents it. </p> <p>[Before December
-2007, the loader had different behaviour. The loader searched the drive from
-which the EXE was loaded before the loader checked the other drives. For example,
-if the EXE was loaded from drive <filepath>Z:</filepath>, and version 2.1
-of a DLL was on drive <filepath>D:</filepath> and drive <filepath>Z:</filepath>,
-the loader selected the version of the DLL that was on drive <filepath>Z:</filepath>.] </p> </li>
-<li id="GUID-BC036626-7461-5C4E-A710-09D693CE5A1E"><p>The loader then selects
-those DLLs that have the same 3rd UID from the set of possible DLLs. This
-operation can decrease the set of possible DLLs. If there are no DLLs in the
-set, the load fails. </p> </li>
-<li id="GUID-9AE6A749-4C72-557F-AB3A-5E33E246A8AE"><p>The loader then selects
-those DLLs that have platform security capabilities that match or exceed those
-of the EXE. This selection operation can decrease the set of possible DLLs.
-If there are no DLLs in the set the load fails. </p> <p>See also : <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
-security</xref>. </p> </li>
-<li id="GUID-7F083400-E8FB-52E0-A8CD-D96DDB093F39"><p>Each DLL in the import
-table of the EXE has a version number. This number is the version of the DLL
-to which the EXE is linked. The loader uses the version number in the import
-table to select the correct version of the DLL. The following flowchart shows
-how the loader selects the DLL from the set of possible DLLs. </p> <fig id="GUID-1F388A1E-BBB8-5481-8197-1F3C87BB2948">
-<image href="GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e268263_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-56B0AF9F-4D39-517B-A3A5-779B7D892CEF"><p>If there are no DLLs
-that meet the requirements, the load fails. </p> </li>
-</ol> </section>
-<section id="GUID-FA4768B2-A741-5601-990C-46B51DA77803"><title>Search rules
-for a DLL loaded from a program</title> <p>To load a DLL from a program, call <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>.
-This is known as dynamic linking. </p> <p> <codeph>RLibrary::Load()</codeph> loads
-the DLL specified in the input parameters. The function then uses the import
-table to get a list of referred DLLs. The loader loads the DLLs in the list
-and uses the same search method that the loader uses for EXEs. See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search rules for a DLL in the import table of an EXE</xref>. </p> <p>The
-result of a search for an DLL depends on: </p> <ul>
-<li id="GUID-CBC9178F-D0CD-5558-9AA0-338F7CB52479"><p>the name of the DLL.
-You provide this information. </p> </li>
-<li id="GUID-E735C0C9-CFCE-5A37-8E41-313039AAD44B"><p>the UID type : you provide.
-This is optional. </p> </li>
-<li id="GUID-14168E41-7825-5546-BD2C-02BB107D2D3C"><p>the required version
-: you provide. This is optional. </p> </li>
-<li id="GUID-03ED4A5A-813A-5332-BCA5-8735793A4370"><p>the version of the DLLs
-on the device. </p> </li>
-</ul> <p>You pass the name of the DLL in the first parameter of <codeph>RLibrary::Load()</codeph>.
-You have a number of choices: </p> <ul>
-<li id="GUID-D5C6F45B-0BCF-58E5-993A-999F96F24354"><p>you can specify the
-file name only. The loader will assume a <filepath>.dll</filepath> file extension.
-For example: </p> <p> <filepath>efsrv</filepath>  </p> </li>
-<li id="GUID-63E96237-0DA1-502E-9C39-4562A31BF616"><p>you can specify a filename
-and an extension. For example: </p> <p> <filepath>efsrv.dll</filepath>  </p> </li>
-<li id="GUID-B1FC4B22-267B-5B6B-8ADC-62C7012C7925"><p>you can put a path in
-front of the file name. A path has limited use, because the loader can load
-DLLs only from the directory <filepath>\sys\bin</filepath>, or from subdirectories
-of <filepath>\sys\bin</filepath>. </p> </li>
-</ul> <p>See <xref href="GUID-4A56B285-790E-5171-88F3-8C40B2AA9699.dita">Dynamically
-loading link libraries</xref> and <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">Using
-ECom</xref>. </p> <p><b>The
-search procedure</b> </p> <p>The loader searches for DLLs with the given name
-and extension. More than one DLL with the given name and extension can exist
-on a device. </p> <ol id="GUID-5AA22DFB-F4D1-5358-96DE-D6B43BCB905E">
-<li id="GUID-60421212-8123-54A2-9A77-71C39E7EB4B6"><p>If you do not provide
-a path, the loader searches the <filepath>\sys\bin</filepath> directory on
-all drives. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched last. Subdirectories of <filepath>\sys\bin</filepath> are
-not searched. </p> <p>If you provide a path, there are only three useful cases: </p> <ul>
-<li id="GUID-693CCFBB-E1A7-50BD-AC89-95F73E0A569D"><p>to limit the search
-to a specific drive. For example: </p> <p> <filepath>X:\sys\bin</filepath>  </p> <p>where <filepath>X:</filepath> can
-be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
-<li id="GUID-F1B66565-1FC3-571D-9CD2-84AE8013F48E"><p>to limit the search
-to a subdirectory of <filepath>\sys\bin</filepath> on a specific drive. For
-example: </p> <p> <filepath>X:\sys\bin\aaa\bb</filepath>  </p> <p>The use
-of subdirectories in <filepath>\sys\bin</filepath> is not common. </p> <p>where <filepath>X:</filepath> can
-be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
-<li id="GUID-AADB293F-8945-5875-B3C2-9B77F938EDEF"><p>to limit the search
-to a subdirectory of <filepath>\sys\bin</filepath> on all drives. For example: </p> <p> <filepath>\sys\bin\aaa\bbb</filepath>  </p> <p>The
-loader searches all drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>.
-The <filepath>Z:</filepath> drive is searched last. </p> <p>The use of subdirectories
-in <filepath>\sys\bin</filepath> is not common. </p> </li>
-</ul> <p>System security prevents the loader from loading DLLs from any other
-directories. </p> </li>
-<li id="GUID-F0DD2783-C346-5F30-8691-7BC3F13D8F76"><p>The loader compares
-the UID type (<xref href="GUID-B6D6B0AD-B15C-339A-8540-40540885089A.dita"><apiname>TUidType</apiname></xref>) of each DLL in the list with the
-UID type you specify in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>. The UID type
-is a set of three UIDs. Each UID in the UID type that you specify must match
-the same UID in the UID type of the DLL. If you specify <xref href="GUID-707A476C-1790-34DB-B1E5-5435578E01AA.dita"><apiname>KNullUid</apiname></xref> for
-any of the three UIDs in your UID type, there is a match. </p> </li>
-<li id="GUID-F86E7050-500E-5C21-AA70-98DC95E8BB73"><p>If the search has found
-no DLLs, the load fails. </p> </li>
-<li id="GUID-27848CFE-3B37-5350-83B1-48A2B1E83705"><p>The loader then selects
-those DLLs that have platform security capabilities that match or exceed those
-of the process . This selection operation can decrease the set of possible
-DLLs. If there are no DLLs in the set the load fails. </p> </li>
-<li id="GUID-0A421D77-7BE4-5C9F-AB93-F6F0E06342A3"><p>If the search has found
-no DLLs, the load fails. </p> </li>
-<li id="GUID-A34E59F9-FAD4-54DB-86A6-C2A428710FB8"><p>If you specify a version
-number in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>, the loader selects a version
-of the DLL from the set. The following flowchart shows how the loader selects
-the DLL from the set of possible DLLs. </p> <fig id="GUID-9412E498-19E5-5D58-B913-DD55BBB79D4D">
-<image href="GUID-91224821-8094-59ED-A100-4174193A25EE_d0e268554_href.png" placement="inline"/>
-</fig> </li>
-<li id="GUID-61AE1C0C-A698-5BEC-A5DA-E28CB5D807A3"><p>If there are no DLLs
-that meet the requirements, the load fails. </p> </li>
-<li id="GUID-D8791217-B11C-548A-9756-10476E843A51"><p>If you do not specify
-a version number in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>, the loader loads
-the DLL with the highest version. A version <codeph>N.n</codeph> is higher
-than version <codeph>M.m</codeph>, if <codeph>(N&gt;M or (N==M and n&gt;m))</codeph>. </p> </li>
-<li id="GUID-D43C380A-C315-5C7B-8508-0720EB1E1EEE"><p>If all DLLs have the
-same version, the loader loads the DLL found first. </p> </li>
-</ol> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF" xml:lang="en"><title>Loader
+Search Rules</title><shortdesc>This topic provides a summary of the rules that the loader follows
+to search for EXEs and DLLs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-D6BAD23C-005E-58E4-8418-16FFBE8AC052"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-D9984B1D-8C7E-55B5-86AC-E90E244BDFB3">Search rules for an EXE</xref>  </p> </li>
+<li id="GUID-373C451E-17C1-576C-8D00-6F15174CCD9D"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search rules for a DLL in the import table of an EXE or another DLL</xref>  </p> </li>
+<li id="GUID-5FD789FB-95A3-51DF-9AD4-FD7474ED9088"><p> <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-FA4768B2-A741-5601-990C-46B51DA77803">Search rules for a DLL loaded from a program</xref>  </p> </li>
+</ul>
+<section id="GUID-D9984B1D-8C7E-55B5-86AC-E90E244BDFB3"><title>Search rules
+for an EXE</title> <p>To start a new process, call <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>. </p> <p> <codeph>RProcess::Create()</codeph> loads
+the EXE specified in the input parameters. The function then looks through
+the import table of the EXE to get a list of DLLs that the EXE references.
+The loader uses the list of DLLs in the import table to load the DLLs. If
+DLLs reference other DLLS, the loader uses the same method to load those DLLs.
+See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search
+rules for a DLL listed in the import table of an EXE</xref>. </p> <p>The result
+of a search for an EXE depends on: </p> <ul>
+<li id="GUID-DC1D5577-2D85-5B9F-B4F4-B10F4208CA46"><p>the name of the EXE.
+You provide this information. </p> </li>
+<li id="GUID-7BBF1688-8013-5C4D-8C60-09CA0E22D6B5"><p>the UID type : you provide.
+This is optional </p> </li>
+<li id="GUID-351742AD-AAE3-5050-AF93-DA990309FF37"><p>the version of the EXEs
+on the device </p> </li>
+</ul> <p>You pass the name of the EXE in the first parameter of <codeph>RProcess::Create()</codeph>.
+You have a number of choices: </p> <ul>
+<li id="GUID-30C6FEB3-DED9-5BAF-AF3F-700FA8EE58D0"><p>you can specify the
+file name only. The loader will assume a <filepath>.exe</filepath> file extension.
+For example: </p> <p> <filepath>efile</filepath>  </p> </li>
+<li id="GUID-94CD2AC1-5FC5-52D8-893B-E6232522F494"><p>you can specify a filename
+and an extension. For example: </p> <p> <filepath>efile.exe</filepath>  </p> </li>
+<li id="GUID-06F6A1CF-FD26-5402-983F-E32D2D1F8B90"><p>you can put a path in
+front of the file name. A path has limited use, because the loader can load
+EXEs only from the directory <filepath>\sys\bin</filepath>, or from subdirectories
+of <filepath>\sys\bin</filepath>. </p> </li>
+</ul> <p><b>The
+search procedure</b> </p> <p>The loader searches for EXEs with the given name
+and extension. More than one EXE with the given name and extension can exist
+on a device. </p> <ol id="GUID-16CF313D-BAB9-58BB-AB38-ED59BDF572D4">
+<li id="GUID-DE4AD994-9C84-5113-B2C7-9030DC08C22E"><p>If you do not provide
+a path, the loader searches the <filepath>\sys\bin</filepath> directory on
+all drives. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched last. Subdirectories of <filepath>\sys\bin</filepath> are
+not searched. </p> <p>If you provide a path, there are only three useful cases: </p> <ul>
+<li id="GUID-3D83CC05-0B68-5CA7-AB52-01A7858E2383"><p>to limit the search
+to a specific drive. For example: </p> <p> <filepath>X:\sys\bin</filepath>  </p> <p>where <filepath>X:</filepath> can
+be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
+<li id="GUID-821A186F-9DA4-51E6-9CAD-E833D9DEDF3F"><p>to limit the search
+to a subdirectory of <filepath>\sys\bin</filepath> on a specific drive. For
+example: </p> <p> <filepath>X:\sys\bin\aaa\bbb</filepath>  </p> <p>The use
+of subdirectories in <filepath>\sys\bin</filepath> is not common. </p> <p>where <filepath>X</filepath>:
+can be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
+<li id="GUID-63815160-C411-5BEB-AC8F-7224F33883BE"><p>to limit the search
+to a subdirectory of <filepath>\sys\bin</filepath> on all drives. For example: </p> <p> <filepath>\sys\bin\aaa\bbb</filepath>  </p> <p>The
+loader searches all drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>.
+The <filepath>Z:</filepath> drive is searched last. </p> <p>The use of subdirectories
+in <filepath>\sys\bin</filepath> is not common. </p> </li>
+</ul> <p>The loader cannot load EXEs from other directories, because system
+security prevents it. </p> </li>
+<li id="GUID-1AFA13C7-24B4-5598-94CA-448D05449BBA"><p>The loader compares
+the UID type (<xref href="GUID-B6D6B0AD-B15C-339A-8540-40540885089A.dita"><apiname>TUidType</apiname></xref>) of each EXE in the list with the
+UID type you specify in <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref>. The UID type
+is a set of three UIDs. Each UID in the UID type that you specify must match
+the same UID in the UID type of the EXE. If you specify <xref href="GUID-707A476C-1790-34DB-B1E5-5435578E01AA.dita"><apiname>KNullUid</apiname></xref> for
+any of the three UIDs in your UID type, a match is automatic. </p> </li>
+<li id="GUID-7F8E3D49-F2CB-5445-ACCC-F7967B4C745F"><p>If the search has found
+no EXEs, the load fails. </p> </li>
+<li id="GUID-1469E256-98FF-51B8-9936-78ED389EDCBE"><p>If the search has found
+one EXE only, the loader loads that EXE. </p> </li>
+<li id="GUID-90B5C4A5-A0E9-5ADD-B76A-3491C322C4B1"><p>If more than one EXE
+has been found, the loader loads the EXE with the highest version. A version <codeph>N.n</codeph> is
+higher than version <codeph>M.m</codeph> if <codeph>(N&gt;M or (N==M and n&gt;m))</codeph>. </p> </li>
+<li id="GUID-A4761946-0490-5887-9686-184B6BED556C"><p>If all EXEs have the
+same version, the loader loads the version found first. </p> </li>
+</ol> </section>
+<section id="GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5"><title>Search rules
+for a DLL in the import table of an EXE or another DLL</title> <p>After the
+loader has selected the EXE, the loader loads all DLLs in the import table.
+This is also called static linkage. </p> <p>The import table contains the
+name and extension of each DLL. The import table also contains the version
+of each DLL and the 3rd UID that identifies each DLL. The version information
+is stored in the import table when the executable file is built. All DLLs
+have an ordered set of three UIDs. The third UID gives a unique identity to
+the DLL. See <xref href="GUID-C135B8D8-DA5A-5852-9C2D-18622404FE99.dita">UID protection</xref>. </p> <p><b>The search procedure</b> </p> <p>The search uses the following procedure
+for each DLL: </p> <ol id="GUID-FF01C553-8546-5A2C-B34B-8F85014631D6">
+<li id="GUID-42FD9744-4B2C-55D6-A7B0-73DE248861DE"><p>The loader searches
+the <filepath>\sys\bin</filepath> directory on all drives for all DLLs that
+have the filename and extension. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched
+last. Subdirectories of <filepath>\sys\bin</filepath> are not searched. The
+loader searches for all versions of the DLL. If the loader finds the same
+version of a DLL on more than one drive, the loader only adds the first one
+to the set of possible DLLs. For example, if version 2.1 of a DLL is on drive <filepath>D:</filepath> and
+on drive <filepath>Z:</filepath>, only the version on drive <filepath>D:</filepath> is
+added to the set of possible DLLs. </p> <p>The loader cannot load DLLs from
+other directories, because system security prevents it. </p> <p>[Before December
+2007, the loader had different behaviour. The loader searched the drive from
+which the EXE was loaded before the loader checked the other drives. For example,
+if the EXE was loaded from drive <filepath>Z:</filepath>, and version 2.1
+of a DLL was on drive <filepath>D:</filepath> and drive <filepath>Z:</filepath>,
+the loader selected the version of the DLL that was on drive <filepath>Z:</filepath>.] </p> </li>
+<li id="GUID-BC036626-7461-5C4E-A710-09D693CE5A1E"><p>The loader then selects
+those DLLs that have the same 3rd UID from the set of possible DLLs. This
+operation can decrease the set of possible DLLs. If there are no DLLs in the
+set, the load fails. </p> </li>
+<li id="GUID-9AE6A749-4C72-557F-AB3A-5E33E246A8AE"><p>The loader then selects
+those DLLs that have platform security capabilities that match or exceed those
+of the EXE. This selection operation can decrease the set of possible DLLs.
+If there are no DLLs in the set the load fails. </p> <p>See also : <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
+security</xref>. </p> </li>
+<li id="GUID-7F083400-E8FB-52E0-A8CD-D96DDB093F39"><p>Each DLL in the import
+table of the EXE has a version number. This number is the version of the DLL
+to which the EXE is linked. The loader uses the version number in the import
+table to select the correct version of the DLL. The following flowchart shows
+how the loader selects the DLL from the set of possible DLLs. </p> <fig id="GUID-1F388A1E-BBB8-5481-8197-1F3C87BB2948">
+<image href="GUID-9D2752D1-4153-5978-A7B8-4C3F860B6B87_d0e264555_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-56B0AF9F-4D39-517B-A3A5-779B7D892CEF"><p>If there are no DLLs
+that meet the requirements, the load fails. </p> </li>
+</ol> </section>
+<section id="GUID-FA4768B2-A741-5601-990C-46B51DA77803"><title>Search rules
+for a DLL loaded from a program</title> <p>To load a DLL from a program, call <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>.
+This is known as dynamic linking. </p> <p> <codeph>RLibrary::Load()</codeph> loads
+the DLL specified in the input parameters. The function then uses the import
+table to get a list of referred DLLs. The loader loads the DLLs in the list
+and uses the same search method that the loader uses for EXEs. See <xref href="GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF.dita#GUID-D8837969-74D0-5E17-AD42-3F10DD1FD5BF/GUID-E026ABAD-D76E-51EF-886F-28F8E00185E5">Search rules for a DLL in the import table of an EXE</xref>. </p> <p>The
+result of a search for an DLL depends on: </p> <ul>
+<li id="GUID-CBC9178F-D0CD-5558-9AA0-338F7CB52479"><p>the name of the DLL.
+You provide this information. </p> </li>
+<li id="GUID-E735C0C9-CFCE-5A37-8E41-313039AAD44B"><p>the UID type : you provide.
+This is optional. </p> </li>
+<li id="GUID-14168E41-7825-5546-BD2C-02BB107D2D3C"><p>the required version
+: you provide. This is optional. </p> </li>
+<li id="GUID-03ED4A5A-813A-5332-BCA5-8735793A4370"><p>the version of the DLLs
+on the device. </p> </li>
+</ul> <p>You pass the name of the DLL in the first parameter of <codeph>RLibrary::Load()</codeph>.
+You have a number of choices: </p> <ul>
+<li id="GUID-D5C6F45B-0BCF-58E5-993A-999F96F24354"><p>you can specify the
+file name only. The loader will assume a <filepath>.dll</filepath> file extension.
+For example: </p> <p> <filepath>efsrv</filepath>  </p> </li>
+<li id="GUID-63E96237-0DA1-502E-9C39-4562A31BF616"><p>you can specify a filename
+and an extension. For example: </p> <p> <filepath>efsrv.dll</filepath>  </p> </li>
+<li id="GUID-B1FC4B22-267B-5B6B-8ADC-62C7012C7925"><p>you can put a path in
+front of the file name. A path has limited use, because the loader can load
+DLLs only from the directory <filepath>\sys\bin</filepath>, or from subdirectories
+of <filepath>\sys\bin</filepath>. </p> </li>
+</ul> <p>See <xref href="GUID-4A56B285-790E-5171-88F3-8C40B2AA9699.dita">Dynamically
+loading link libraries</xref> and <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">Using
+ECom</xref>. </p> <p><b>The
+search procedure</b> </p> <p>The loader searches for DLLs with the given name
+and extension. More than one DLL with the given name and extension can exist
+on a device. </p> <ol id="GUID-5AA22DFB-F4D1-5358-96DE-D6B43BCB905E">
+<li id="GUID-60421212-8123-54A2-9A77-71C39E7EB4B6"><p>If you do not provide
+a path, the loader searches the <filepath>\sys\bin</filepath> directory on
+all drives. The loader searches drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>. The <filepath>Z:</filepath> drive is searched last. Subdirectories of <filepath>\sys\bin</filepath> are
+not searched. </p> <p>If you provide a path, there are only three useful cases: </p> <ul>
+<li id="GUID-693CCFBB-E1A7-50BD-AC89-95F73E0A569D"><p>to limit the search
+to a specific drive. For example: </p> <p> <filepath>X:\sys\bin</filepath>  </p> <p>where <filepath>X:</filepath> can
+be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
+<li id="GUID-F1B66565-1FC3-571D-9CD2-84AE8013F48E"><p>to limit the search
+to a subdirectory of <filepath>\sys\bin</filepath> on a specific drive. For
+example: </p> <p> <filepath>X:\sys\bin\aaa\bb</filepath>  </p> <p>The use
+of subdirectories in <filepath>\sys\bin</filepath> is not common. </p> <p>where <filepath>X:</filepath> can
+be one of the drives <filepath>A:</filepath> to <filepath>Z:</filepath>. </p> </li>
+<li id="GUID-AADB293F-8945-5875-B3C2-9B77F938EDEF"><p>to limit the search
+to a subdirectory of <filepath>\sys\bin</filepath> on all drives. For example: </p> <p> <filepath>\sys\bin\aaa\bbb</filepath>  </p> <p>The
+loader searches all drives in the order <filepath>Y:</filepath>, <filepath>X:</filepath> ... <filepath> B:</filepath>, <filepath>A:</filepath>.
+The <filepath>Z:</filepath> drive is searched last. </p> <p>The use of subdirectories
+in <filepath>\sys\bin</filepath> is not common. </p> </li>
+</ul> <p>System security prevents the loader from loading DLLs from any other
+directories. </p> </li>
+<li id="GUID-F0DD2783-C346-5F30-8691-7BC3F13D8F76"><p>The loader compares
+the UID type (<xref href="GUID-B6D6B0AD-B15C-339A-8540-40540885089A.dita"><apiname>TUidType</apiname></xref>) of each DLL in the list with the
+UID type you specify in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>. The UID type
+is a set of three UIDs. Each UID in the UID type that you specify must match
+the same UID in the UID type of the DLL. If you specify <xref href="GUID-707A476C-1790-34DB-B1E5-5435578E01AA.dita"><apiname>KNullUid</apiname></xref> for
+any of the three UIDs in your UID type, there is a match. </p> </li>
+<li id="GUID-F86E7050-500E-5C21-AA70-98DC95E8BB73"><p>If the search has found
+no DLLs, the load fails. </p> </li>
+<li id="GUID-27848CFE-3B37-5350-83B1-48A2B1E83705"><p>The loader then selects
+those DLLs that have platform security capabilities that match or exceed those
+of the process . This selection operation can decrease the set of possible
+DLLs. If there are no DLLs in the set the load fails. </p> </li>
+<li id="GUID-0A421D77-7BE4-5C9F-AB93-F6F0E06342A3"><p>If the search has found
+no DLLs, the load fails. </p> </li>
+<li id="GUID-A34E59F9-FAD4-54DB-86A6-C2A428710FB8"><p>If you specify a version
+number in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>, the loader selects a version
+of the DLL from the set. The following flowchart shows how the loader selects
+the DLL from the set of possible DLLs. </p> <fig id="GUID-9412E498-19E5-5D58-B913-DD55BBB79D4D">
+<image href="GUID-91224821-8094-59ED-A100-4174193A25EE_d0e264846_href.png" placement="inline"/>
+</fig> </li>
+<li id="GUID-61AE1C0C-A698-5BEC-A5DA-E28CB5D807A3"><p>If there are no DLLs
+that meet the requirements, the load fails. </p> </li>
+<li id="GUID-D8791217-B11C-548A-9756-10476E843A51"><p>If you do not specify
+a version number in <xref href="GUID-25327159-83D6-3507-B187-09EA4BB3727F.dita#GUID-25327159-83D6-3507-B187-09EA4BB3727F/GUID-4F1B2717-D34F-32A4-B6E6-03D0533186A3"><apiname>RLibrary::Load()</apiname></xref>, the loader loads
+the DLL with the highest version. A version <codeph>N.n</codeph> is higher
+than version <codeph>M.m</codeph>, if <codeph>(N&gt;M or (N==M and n&gt;m))</codeph>. </p> </li>
+<li id="GUID-D43C380A-C315-5C7B-8508-0720EB1E1EEE"><p>If all DLLs have the
+same version, the loader loads the DLL found first. </p> </li>
+</ol> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6-master.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e51851_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e57458_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e58489_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e62511_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e69091_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e74234_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,166 +1,166 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C" xml:lang="en"><title>The
-ScreenPlay Graphics Architecture</title><shortdesc>This topic provides an introduction to ScreenPlay and its architecture.
-ScreenPlay is a new graphics architecture, introduced in Symbian^3 (S^3).
-ScreenPlay enables device creators to take advantage of improved software
-performance, hardware acceleration and third party graphics engines. ScreenPlay
-is sometimes known as the <b>New Graphics Architecture (NGA)</b>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>ScreenPlay is a response to new requirements and developments in device
-hardware models. For example, ScreenPlay can support graphics accelerators
-and graphics processing units (GPUs) and non-uniform memory models as well
-as uniform memory models. A non-uniform memory model is an architecture in
-which a GPU has a completely different processing area from the CPU such that
-the GPU memory is not available to the CPU and vice versa. ScreenPlay can
-handle non-uniform memory models without the need to copy buffers between
-the different processing areas. </p>
-<section id="GUID-D4071308-2FA1-4B04-9AC2-926E1D619D08"><title>Key features</title><ul>
-<li id="GUID-0325A4C9-BAA3-5FA3-8389-BB406C020F36"><p>Asynchronous hardware-accelerated
-rendering and composition on devices on which dedicated graphics acceleration
-hardware is available. This is achieved through a Hardware Adaptation Layer
-(HAL). </p> </li>
-<li id="GUID-7CE7127E-873E-5284-A8DE-B2FF058E1107"><p>The ability to composit
-a semi-transparent UI buffer over highly dynamic content, such as OpenGL ES
-games, video and the camera viewfinder. </p> </li>
-<li id="GUID-3DAD6DFE-D2BE-5B7C-9253-38B7B30738D5"><p>The separation of control
-and data flow. This has advantages when running on non-uniform memory architectures
-and means that video decoding, UI rendering, and so on can take place and
-remain in the GPU memory domain. </p> </li>
-<li id="GUID-451CAB9D-DBB9-57FE-85C2-A8DE8C9D9436"><p>A foundation for secure
-screen content and Digital Rights Management (DRM). Applications no longer
-have direct access to the screen. Read and write access to the screen is controlled
-by the Window Server. </p> </li>
-<li id="GUID-060D7439-04FC-506A-B1B1-802C97F8931C"><p>Direct Screen Access
-(DSA) is supported in order to provide backwards compatibility. However, because
-in ScreenPlay the screen is no longer controlled by the Screen Driver, the
-DSA frame buffer is just another buffer that can be allocated dynamically
-on demand. ScreenPlay provides alternatives to DSA. </p> </li>
-</ul></section>
-<section id="GUID-D8BB0841-1E27-45A0-99AF-0F0A2D0A7362"><title>Architecture</title> <p>The
-following diagram shows the key components in the Symbian Foundation Graphics
-package and some closely related components in other packages. </p> <fig id="GUID-3300E986-4B93-5122-88C4-D7CC231F3BA3">
-<title>             Symbian^3 component architecture            </title>
-<image href="GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e191110_href.png" placement="inline"/>
-</fig> <p>The key ScreenPlay components are introduced below under separate
-subheadings. </p> </section>
-<section id="GUID-AB1E3E20-01A9-4090-A404-0D1FF978AF53"><title>Graphics Composition </title><p>The
-composition engine composes content, possibly from several different sources,
-before it is displayed on the screen. Composition involves the important concepts
-of scene elements (or layers) and surfaces. Scene elements describe the geometric
-position, size and orientation of items to be displayed on the screen; whereas
-surfaces are pixel buffers for holding an image or part of a scene. </p> <p>The
-composition engine maintains the stack of scene elements and computes what
-is visible. For example, it culls invisible areas and maintains a list of
-dirty rectangles. It blends the pixels if necessary and can perform limited
-transformations, such as scaling and rotation (in 90° increments). The composition
-engine is an <b>adaptation component</b>, which means that device creators
-can adapt or replace it to suit the exact hardware on the device. The composition
-engine can utilize GPU hardware composition and LCD hardware rotation if they
-are available. </p> <p>The composition components are specific to ScreenPlay.
-For more information, see <xref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita">Graphics
-Composition</xref>. </p></section>
-<section id="GUID-04973DCA-9DCA-40E8-AC4D-5FB244F23293"><title>Surface Manager
-and Surface Update Server</title><p>The Surface Manager component creates
-and manages graphics composition surfaces. The Surface Manager reference implementation
-implements surfaces as shared chunks because they must be accessible by user-side
-processes and the kernel and composition hardware. Surfaces can be multi-buffered
-and are identified by a 128 bit identifier (called the surface ID). This gets
-resolved to an actual memory address by calling the Surface Manager Map Surface
-API. Surfaces can be used by other Symbian components such as the <xref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita">Multimedia
-Framework (MMF)</xref> and <xref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita">ECam
-viewfinder</xref> and by applications such as OpenGL ES games. The Surface
-Manager is an adaptation component and so can be adapted or replaced to suit
-the hardware. </p><p>The Surface Update component provides a communication
-mechanism between the composition engine and clients. This is particularly
-useful for clients (such as video) that produce fast updates and use multi-buffered
-surfaces. </p></section>
-<section id="GUID-92C609E2-EF56-460E-B4BD-B935AB8ECFFB"><title>Window Server</title><p>The
-Window Server has been extended with a render stage framework, which enables
-the last stage of the Window Server rendering to be customizable through render
-stage plug-ins. This process, known as "deferred rendering" is achieved by
-intercepting the output of the Window Server and then deciding how that output
-should be rendered. For example, the output can be hardware accelerated or
-it can be sent to a third party graphics engine. The render stage framework
-enables device creators to integrate different UIs and runtime environments
-(such as Flash or Silverlight) and to achieve transition effects such as slide,
-zoom and fade. </p><p>Symbian provides more than one render stage solution.
-The following diagram provides a simplified representation of one possible
-solution (called <i>solution A</i> in this topic). This solution is full featured.
-The diagram focuses on the more relevant components and does not attempt to
-show all components in the complete solution. This solution has a dependency
-on the S60 middleware layer, in particular on the Hitchcock component (which
-is in the UI Accelerator package). </p><fig id="GUID-0D91F9A6-68FC-5316-A16D-A3238F8452AD">
-<title>            Render stage solution A            </title>
-<image href="GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e191164_href.png" placement="inline"/>
-</fig><p>Another possible solution (called <i>solution B</i>) is based on
-the DirectGDI and Graphics Resource components (which are described next),
-both of which have interface and adaptation layers. This solution is not full
-featured. Like the previous diagram, this diagram focuses on the more relevant
-components and does not attempt to show everything. </p><fig id="GUID-6A761DC5-1141-5515-BD03-09FBFE56F2D7">
-<title>Render stage solution B</title>
-<image href="GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e191176_href.png" placement="inline"/>
-</fig><p>Both of these render stage solutions mean that existing Window Server
-applications can take advantage of hardware acceleration if it is available
-(and therefore run faster) without recompiling the code. </p><p>ScreenPlay
-provides extensions to the Window Server client-side API, which enable mobile
-devices to respond to events from a number of pointers, including their proximity
-and pressure. This feature is known as <xref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita">advanced
-pointers</xref>. </p><p>A new API, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B431DC60-D11F-3239-8F52-4257B9B0E0C9"><apiname>RWsSession::Finish()</apiname></xref>,
-has been added to allow Window Server client applications to synchronize with
-the completion of Window Server rendering. The existing API, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B83C6F44-1A3E-3959-910C-CBBF66C4A3D4"><apiname>RWsSession::Flush()</apiname></xref>,
-is redefined to simply flush the client-side command buffer, whereas previously
-it also provided a guarantee that Window Server had completed the command
-buffer’s operations. This behavioral change allows legacy clients to benefit
-from the asynchronous hardware rendering when supported by the render stage
-plug-in(s) that are in use. </p><p>For more information, see <xref href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita">Windowing
-Collection</xref>. </p></section>
-<section id="GUID-D67558F6-7841-487F-8F73-7580C2EFC026"><title>DirectGDI</title><p>DirectGDI
-provides a graphics context that can be hardware accelerated and allows an
-asynchronous interface. DirectGDI has two parts: a generic layer, which provides
-a client API and an adaptation layer. Device creators can replace the adaptation
-layer with an implementation that takes advantage of graphics accelerated
-hardware, if it is available, or a software implementation, if it is not available. </p><p>DirectGDI
-was introduced as a prototype in the development of ScreenPlay. It is deprecated
-in Symbian^3.</p></section>
-<section id="GUID-DF3BDD08-1C11-4FC6-BA4C-30CC13BE6005"><title>Graphics Resource</title><p>The
-Graphics Resource component provides an abstraction layer for the memory management
-of pixel and non-pixel data (such as OpenVG command lists). Like DirectGDI,
-it has a generic part, which provides a client API and an adaptation part,
-which device creators can adapt to take advantage of graphics hardware when
-it is available. </p><p>The Graphics Resource component was introduced as
-a prototype in the development of ScreenPlay. It is deprecated in Symbian^3
-and will be removed in Symbian^4.  However, a new Graphics Resource Interface
-component is planned for S^4. This new component will provide a similar but
-reduced API that is optimized for sharing images across processes.</p></section>
-<section id="GUID-35870066-DB83-477E-8532-002E1F91E9CF"><title>OpenVG, OpenGL
-ES and EGL</title><p>Symbian provides support for OpenVG, OpenGL ES and EGL.
-The main advantage of ScreenPlay with regard to EGL is that EGL can render
-into composition surfaces. For application developers this offers the ability
-to have semi-transparent GDI content on top of EGL content. The EGL client
-can query whether these new features are supported on the particular device. </p> <p>For
-more information, see <xref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita">Khronos
-API Support</xref>. </p></section>
-<section id="GUID-3B11D2F8-F3A4-4A2F-938A-B8EA0F64134A"><title>Screen Driver</title><p>In
-ScreenPlay, the implementation of the Screen Driver has been changed so that
-DSA content can be passed into the composition engine. </p></section>
-</conbody><related-links>
-<link href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"><linktext>Graphics
-Composition</linktext></link>
-<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Graphics
-Hardware Acceleration</linktext></link>
-<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
-Concepts</linktext></link>
-
-
-
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C" xml:lang="en"><title>The
+ScreenPlay Graphics Architecture</title><shortdesc>This topic provides an introduction to ScreenPlay and its architecture.
+ScreenPlay is a new graphics architecture, introduced in Symbian^3 (S^3).
+ScreenPlay enables device creators to take advantage of improved software
+performance, hardware acceleration and third party graphics engines. ScreenPlay
+is sometimes known as the <b>New Graphics Architecture (NGA)</b>. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>ScreenPlay is a response to new requirements and developments in device
+hardware models. For example, ScreenPlay can support graphics accelerators
+and graphics processing units (GPUs) and non-uniform memory models as well
+as uniform memory models. A non-uniform memory model is an architecture in
+which a GPU has a completely different processing area from the CPU such that
+the GPU memory is not available to the CPU and vice versa. ScreenPlay can
+handle non-uniform memory models without the need to copy buffers between
+the different processing areas. </p>
+<section id="GUID-D4071308-2FA1-4B04-9AC2-926E1D619D08"><title>Key features</title><ul>
+<li id="GUID-0325A4C9-BAA3-5FA3-8389-BB406C020F36"><p>Asynchronous hardware-accelerated
+rendering and composition on devices on which dedicated graphics acceleration
+hardware is available. This is achieved through a Hardware Adaptation Layer
+(HAL). </p> </li>
+<li id="GUID-7CE7127E-873E-5284-A8DE-B2FF058E1107"><p>The ability to composit
+a semi-transparent UI buffer over highly dynamic content, such as OpenGL ES
+games, video and the camera viewfinder. </p> </li>
+<li id="GUID-3DAD6DFE-D2BE-5B7C-9253-38B7B30738D5"><p>The separation of control
+and data flow. This has advantages when running on non-uniform memory architectures
+and means that video decoding, UI rendering, and so on can take place and
+remain in the GPU memory domain. </p> </li>
+<li id="GUID-451CAB9D-DBB9-57FE-85C2-A8DE8C9D9436"><p>A foundation for secure
+screen content and Digital Rights Management (DRM). Applications no longer
+have direct access to the screen. Read and write access to the screen is controlled
+by the Window Server. </p> </li>
+<li id="GUID-060D7439-04FC-506A-B1B1-802C97F8931C"><p>Direct Screen Access
+(DSA) is supported in order to provide backwards compatibility. However, because
+in ScreenPlay the screen is no longer controlled by the Screen Driver, the
+DSA frame buffer is just another buffer that can be allocated dynamically
+on demand. ScreenPlay provides alternatives to DSA. </p> </li>
+</ul></section>
+<section id="GUID-D8BB0841-1E27-45A0-99AF-0F0A2D0A7362"><title>Architecture</title> <p>The
+following diagram shows the key components in the Symbian Foundation Graphics
+package and some closely related components in other packages. </p> <fig id="GUID-3300E986-4B93-5122-88C4-D7CC231F3BA3">
+<title>             Symbian^3 component architecture            </title>
+<image href="GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e184514_href.png" placement="inline"/>
+</fig> <p>The key ScreenPlay components are introduced below under separate
+subheadings. </p> </section>
+<section id="GUID-AB1E3E20-01A9-4090-A404-0D1FF978AF53"><title>Graphics Composition </title><p>The
+composition engine composes content, possibly from several different sources,
+before it is displayed on the screen. Composition involves the important concepts
+of scene elements (or layers) and surfaces. Scene elements describe the geometric
+position, size and orientation of items to be displayed on the screen; whereas
+surfaces are pixel buffers for holding an image or part of a scene. </p> <p>The
+composition engine maintains the stack of scene elements and computes what
+is visible. For example, it culls invisible areas and maintains a list of
+dirty rectangles. It blends the pixels if necessary and can perform limited
+transformations, such as scaling and rotation (in 90° increments). The composition
+engine is an <b>adaptation component</b>, which means that device creators
+can adapt or replace it to suit the exact hardware on the device. The composition
+engine can utilize GPU hardware composition and LCD hardware rotation if they
+are available. </p> <p>The composition components are specific to ScreenPlay.
+For more information, see <xref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita">Graphics
+Composition</xref>. </p></section>
+<section id="GUID-04973DCA-9DCA-40E8-AC4D-5FB244F23293"><title>Surface Manager
+and Surface Update Server</title><p>The Surface Manager component creates
+and manages graphics composition surfaces. The Surface Manager reference implementation
+implements surfaces as shared chunks because they must be accessible by user-side
+processes and the kernel and composition hardware. Surfaces can be multi-buffered
+and are identified by a 128 bit identifier (called the surface ID). This gets
+resolved to an actual memory address by calling the Surface Manager Map Surface
+API. Surfaces can be used by other Symbian components such as the <xref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita">Multimedia
+Framework (MMF)</xref> and <xref href="GUID-FC735256-6CB5-5EED-8E7D-42EFA039E6FD.dita">ECam
+viewfinder</xref> and by applications such as OpenGL ES games. The Surface
+Manager is an adaptation component and so can be adapted or replaced to suit
+the hardware. </p><p>The Surface Update component provides a communication
+mechanism between the composition engine and clients. This is particularly
+useful for clients (such as video) that produce fast updates and use multi-buffered
+surfaces. </p></section>
+<section id="GUID-92C609E2-EF56-460E-B4BD-B935AB8ECFFB"><title>Window Server</title><p>The
+Window Server has been extended with a render stage framework, which enables
+the last stage of the Window Server rendering to be customizable through render
+stage plug-ins. This process, known as "deferred rendering" is achieved by
+intercepting the output of the Window Server and then deciding how that output
+should be rendered. For example, the output can be hardware accelerated or
+it can be sent to a third party graphics engine. The render stage framework
+enables device creators to integrate different UIs and runtime environments
+(such as Flash or Silverlight) and to achieve transition effects such as slide,
+zoom and fade. </p><p>Symbian provides more than one render stage solution.
+The following diagram provides a simplified representation of one possible
+solution (called <i>solution A</i> in this topic). This solution is full featured.
+The diagram focuses on the more relevant components and does not attempt to
+show all components in the complete solution. This solution has a dependency
+on the S60 middleware layer, in particular on the Hitchcock component (which
+is in the UI Accelerator package). </p><fig id="GUID-0D91F9A6-68FC-5316-A16D-A3238F8452AD">
+<title>            Render stage solution A            </title>
+<image href="GUID-643AFF2D-3EDB-5FAB-9631-7B93FABC56B6_d0e184568_href.png" placement="inline"/>
+</fig><p>Another possible solution (called <i>solution B</i>) is based on
+the DirectGDI and Graphics Resource components (which are described next),
+both of which have interface and adaptation layers. This solution is not full
+featured. Like the previous diagram, this diagram focuses on the more relevant
+components and does not attempt to show everything. </p><fig id="GUID-6A761DC5-1141-5515-BD03-09FBFE56F2D7">
+<title>Render stage solution B</title>
+<image href="GUID-3DD37A41-E822-5CB6-A59E-0B309B5627D9_d0e184580_href.png" placement="inline"/>
+</fig><p>Both of these render stage solutions mean that existing Window Server
+applications can take advantage of hardware acceleration if it is available
+(and therefore run faster) without recompiling the code. </p><p>ScreenPlay
+provides extensions to the Window Server client-side API, which enable mobile
+devices to respond to events from a number of pointers, including their proximity
+and pressure. This feature is known as <xref href="GUID-A12A66ED-2C8F-5CE6-8F3E-332B045A35B4.dita">advanced
+pointers</xref>. </p><p>A new API, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B431DC60-D11F-3239-8F52-4257B9B0E0C9"><apiname>RWsSession::Finish()</apiname></xref>,
+has been added to allow Window Server client applications to synchronize with
+the completion of Window Server rendering. The existing API, <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita#GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9/GUID-B83C6F44-1A3E-3959-910C-CBBF66C4A3D4"><apiname>RWsSession::Flush()</apiname></xref>,
+is redefined to simply flush the client-side command buffer, whereas previously
+it also provided a guarantee that Window Server had completed the command
+buffer’s operations. This behavioral change allows legacy clients to benefit
+from the asynchronous hardware rendering when supported by the render stage
+plug-in(s) that are in use. </p><p>For more information, see <xref href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita">Windowing
+Collection</xref>. </p></section>
+<section id="GUID-D67558F6-7841-487F-8F73-7580C2EFC026"><title>DirectGDI</title><p>DirectGDI
+provides a graphics context that can be hardware accelerated and allows an
+asynchronous interface. DirectGDI has two parts: a generic layer, which provides
+a client API and an adaptation layer. Device creators can replace the adaptation
+layer with an implementation that takes advantage of graphics accelerated
+hardware, if it is available, or a software implementation, if it is not available. </p><p>DirectGDI
+was introduced as a prototype in the development of ScreenPlay. It is deprecated
+in Symbian^3.</p></section>
+<section id="GUID-DF3BDD08-1C11-4FC6-BA4C-30CC13BE6005"><title>Graphics Resource</title><p>The
+Graphics Resource component provides an abstraction layer for the memory management
+of pixel and non-pixel data (such as OpenVG command lists). Like DirectGDI,
+it has a generic part, which provides a client API and an adaptation part,
+which device creators can adapt to take advantage of graphics hardware when
+it is available. </p><p>The Graphics Resource component was introduced as
+a prototype in the development of ScreenPlay. It is deprecated in Symbian^3
+and will be removed in Symbian^4.  However, a new Graphics Resource Interface
+component is planned for S^4. This new component will provide a similar but
+reduced API that is optimized for sharing images across processes.</p></section>
+<section id="GUID-35870066-DB83-477E-8532-002E1F91E9CF"><title>OpenVG, OpenGL
+ES and EGL</title><p>Symbian provides support for OpenVG, OpenGL ES and EGL.
+The main advantage of ScreenPlay with regard to EGL is that EGL can render
+into composition surfaces. For application developers this offers the ability
+to have semi-transparent GDI content on top of EGL content. The EGL client
+can query whether these new features are supported on the particular device. </p> <p>For
+more information, see <xref href="GUID-50254C2F-57B6-58C4-911F-294EF2B79C04.dita">Khronos
+API Support</xref>. </p></section>
+<section id="GUID-3B11D2F8-F3A4-4A2F-938A-B8EA0F64134A"><title>Screen Driver</title><p>In
+ScreenPlay, the implementation of the Screen Driver has been changed so that
+DSA content can be passed into the composition engine. </p></section>
+</conbody><related-links>
+<link href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"><linktext>Graphics
+Composition</linktext></link>
+<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Graphics
+Hardware Acceleration</linktext></link>
+<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
+Concepts</linktext></link>
+
+
+
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697" xml:lang="en"><title>Array
-of same length elements, segmented buffer</title><shortdesc>Describes how elements of the same length are organised in the
-array buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This is a <codeph>CArrayFixSeg&lt;class T&gt;</codeph> object whose elements:</p>
-<ul>
-<li id="GUID-F196DE9B-A500-5421-A5EF-679ACB613297"><p>all have the same length</p> </li>
-<li id="GUID-999B1623-7FFF-5F48-91BD-202BE4E46669"><p>are contained within
-a segmented array buffer; the elements are logically contiguous but are physically
-contiguous only within a segment.</p> </li>
-</ul>
-<p>A segmented buffer is implemented as a doubly linked list of equally sized
-cells allocated from the heap and is always extended by allocating a new segment
-and inserting it into the appropriate place in the list. A segmented array
-buffer is implemented using a <codeph>CBufSeg</codeph> object.</p>
-<p>The following diagram illustrates how elements are organised within the
-array buffer:</p>
-<fig id="GUID-D3DF754C-E97D-5408-8229-8AD4E262981E">
-<image href="GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e219380_href.png" placement="inline"/>
-</fig>
-<p>This kind of array is suitable for large arrays with a high
-turnover of elements.</p>
-<p>This class is immediately derived from the abstract template base class <codeph>CArrayFix&lt;class T&gt;</codeph> which
-is itself derived from the abstract non-templated base class <codeph>CArrayFixBase</codeph>. </p>
-<section id="GUID-614C4B48-2523-4020-AFD7-5E9C5076537B"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
-Dynamic Buffers</xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-D96EE819-DEA9-5B1A-AA94-4AC065C73697" xml:lang="en"><title>Array
+of same length elements, segmented buffer</title><shortdesc>Describes how elements of the same length are organised in the
+array buffer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This is a <codeph>CArrayFixSeg&lt;class T&gt;</codeph> object whose elements:</p>
+<ul>
+<li id="GUID-F196DE9B-A500-5421-A5EF-679ACB613297"><p>all have the same length</p> </li>
+<li id="GUID-999B1623-7FFF-5F48-91BD-202BE4E46669"><p>are contained within
+a segmented array buffer; the elements are logically contiguous but are physically
+contiguous only within a segment.</p> </li>
+</ul>
+<p>A segmented buffer is implemented as a doubly linked list of equally sized
+cells allocated from the heap and is always extended by allocating a new segment
+and inserting it into the appropriate place in the list. A segmented array
+buffer is implemented using a <codeph>CBufSeg</codeph> object.</p>
+<p>The following diagram illustrates how elements are organised within the
+array buffer:</p>
+<fig id="GUID-D3DF754C-E97D-5408-8229-8AD4E262981E">
+<image href="GUID-1C14ECA4-057B-5591-A8E3-F7DB0325E5AE_d0e215643_href.png" placement="inline"/>
+</fig>
+<p>This kind of array is suitable for large arrays with a high
+turnover of elements.</p>
+<p>This class is immediately derived from the abstract template base class <codeph>CArrayFix&lt;class T&gt;</codeph> which
+is itself derived from the abstract non-templated base class <codeph>CArrayFixBase</codeph>. </p>
+<section id="GUID-614C4B48-2523-4020-AFD7-5E9C5076537B"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
+Dynamic Buffers</xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e10779_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D99BA4CA-9823-4968-953D-36AA7F266B39_d0e12054_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e267518_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e271226_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0-master.png has changed
Binary file Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e51973_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e57605_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e69180_href.png has changed
Binary file Symbian3/SDK/Source/GUID-D9F3D83E-50C7-4D15-839C-F225D95865B0_d0e74346_href.png has changed
--- a/Symbian3/SDK/Source/GUID-D9F8B338-5CFA-472F-8A16-B5251B1B5A81.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-D9F8B338-5CFA-472F-8A16-B5251B1B5A81" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Toolbar API is an SDK API and first released in S60 5th Edition.</p>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e79469_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DA070DA3-CE2E-5B4E-834F-32BED736E01D_d0e86181_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,13 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884"><title>Converting Manual Aperture to Automatic Aperture</title><shortdesc>This topic explains how to prepare the camera for the automatic aperture setting. By default, the automatic aperture setting is used if no manual aperture value has been given. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <prereq id="GUID-8FE6CE45-D57D-5E9C-A7AE-F11A228AB300"><p>Before you start you should understand the <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref> topic. </p> </prereq> <context><p>The automatic aperture setting is implementation specific as to whether the default aperture is auto-aperture or any other value. If the camera cannot determine the aperture value being used, the <codeph>KErrNotFound</codeph> error is returned. </p> </context> <steps id="GUID-29060A3C-94A7-5260-924C-C40101B94C8F"><step id="GUID-4CDAE835-DC3A-50E8-86F6-C314EBBDAFDE"><cmd/><info>Pass <codeph>KUidECamEvent2CameraSettingAutoAperture</codeph> as a value to <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>TECAMEvent2</apiname></xref> to notify the camera that the auto aperture setting is to be used. <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>TECAMEvent2::iParam()</apiname></xref> represents the actual numerical value of aperture being used for the the auto aperture setting. </info> </step> <step id="GUID-D5F27CFB-B712-572B-A245-409FAA22541A"><cmd/><info>Use the <codeph>KUidECamEvent2CameraSettingAutoAperture</codeph> value when you do not specify an aperture value in the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::SetAperture(TInt)</apiname></xref> function or when you select exposure to the <codeph>EExposureAuto</codeph> or <codeph>EExposureShutterPriority</codeph> value. </info> <info>Note: By default <codeph>CCamera</codeph> has an automatic aperture setting . </info> </step> </steps> </taskbody><related-links><link href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita"><linktext>Advanced Settings for Focus, Drive Modes, and
-                Bracket Modes</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-DA1D89FF-52BD-5876-B7A1-300F5EBB9884" xml:lang="en"><title>Converting
+Manual Aperture to Automatic Aperture</title><shortdesc>This topic explains how to prepare the camera for the automatic
+aperture setting. By default, the automatic aperture setting is used if no
+manual aperture value has been given. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-8FE6CE45-D57D-5E9C-A7AE-F11A228AB300"><p>Before you start
+you should understand the <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
+Camera Overview</xref> topic. </p> </prereq>
+<context id="GUID-AC862FBE-5E7E-438A-B853-1299F55CEE19"><p>The automatic aperture
+setting is implementation specific as to whether the default aperture is auto-aperture
+or any other value. If the camera cannot determine the aperture value being
+used, the <codeph>KErrNotFound</codeph> error is returned. </p> </context>
+<steps id="GUID-29060A3C-94A7-5260-924C-C40101B94C8F">
+<step id="GUID-4CDAE835-DC3A-50E8-86F6-C314EBBDAFDE"><cmd/>
+<info>Pass <xref href="GUID-C238291A-D9C7-3F2A-AABB-23C315D09517.dita"><apiname>KUidECamEvent2CameraSettingAutoAperture</apiname></xref> as a
+value to <xref href="GUID-6A60F684-76BF-3001-ABB8-E6A8DB32663B.dita"><apiname>TECAMEvent2</apiname></xref> to notify the camera that the auto
+aperture setting is to be used. <xref href="GUID-6A60F684-76BF-3001-ABB8-E6A8DB32663B.dita#GUID-6A60F684-76BF-3001-ABB8-E6A8DB32663B/GUID-63D4B29B-1337-3AF0-82E6-218C9C706993"><apiname>TECAMEvent2::iParam</apiname></xref> represents
+the actual numerical value of aperture being used for the auto aperture setting. </info>
+</step>
+<step id="GUID-D5F27CFB-B712-572B-A245-409FAA22541A"><cmd/>
+<info>Use the <xref href="GUID-C238291A-D9C7-3F2A-AABB-23C315D09517.dita"><apiname>KUidECamEvent2CameraSettingAutoAperture</apiname></xref> value
+when you do not specify an aperture value in the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraAdvancedSettings::SetAperture(TInt)</apiname></xref> function
+or when you select exposure to the <codeph>EExposureAuto</codeph> or <codeph>EExposureShutterPriority</codeph> value. </info>
+<info>Note: By default <codeph>CCamera</codeph> has an automatic aperture
+setting . </info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita"><linktext>Advanced
+Settings for Focus, Drive Modes, and Bracket Modes</linktext></link>
+</related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-DA26D246-D74A-529F-9F81-11B45669103F"><title> Capturing Image</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces to the image capture feature of the Ecam component. </p> <section><title>Purpose</title> <p>This document takes you through a series of documents that provides a detailed explanation on various tasks that can be performed using still image. </p> <p><b>Setup and Configuration Requirement </b> </p> <p>Make sure that you use continuous drive mode before capturing the images. </p> <p>Get the options supported for a specific reference orientation of the camera using <xref href="GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6.dita#GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6/GUID-E2B97E11-81E6-3041-BDDC-466AECBBEAC4"><apiname>CCamera::CCameraImageProcessing::GetSupportedRelativeOrientationOptionsL</apiname></xref> method. </p> <p>Get the options that is currently used for the orientation reference using <xref href="GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765.dita#GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765/GUID-48FFD990-AEA8-3066-A291-7075CD3C3200"><apiname>CCameraImageProcessing::GetCurrentRelativeOrientationOptionsL</apiname></xref> method. </p> <p>Set the specific option to be used with the orientation reference using <xref href="GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765.dita#GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765/GUID-B15C96F0-5C59-3FC6-BD80-CF0B96F0C024"><apiname>CCameraImageProcessing::SetRelativeOrientationOptionsL</apiname></xref> method. Notify the client about relative custom orientation setting operation using event <xref href="GUID-21F6B1EB-0AA6-3F27-A0AF-D09BAA938552.dita"><apiname>KUidECamEventImageProcessingTransformRelativeOrientation</apiname></xref>. </p> <p id="GUID-E85442CF-34BD-5140-96DF-88F414BAE3C9"><b>Basic camera image settings</b> </p> <p> <codeph>CCamera</codeph> provides functions that allow you to alter the brightness, contrast, and zoom level of the camera image. Before using such functions though, you should test that the camera supports what you want. To do this, get a <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref> object using the <xref href="GUID-74003657-1C43-382C-B722-6A6A4C03A911.dita"><apiname>CameraInfo()</apiname></xref> method. The object's <codeph>iOptionsSupported</codeph> member is a bitfield of flags that describe which options are supported by the camera. </p> <p id="GUID-96B5AB3A-B83D-5F6A-9A51-2A3BBF18FED3"><b>Brightness</b> </p> <p>To change the camera image brightness: </p> <ol id="GUID-3E4387F5-9B44-5E80-AE67-4F8BC8E24EC6"><li id="GUID-76DAC348-E4A3-59A2-9BFD-DD9D1C5F4B7D"><p>Check if brightness control is supported, by testing if the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-6837A8FB-63FF-345E-808A-67537E8E1190"><apiname>TCameraInfo::EBrightnessSupported</apiname></xref> flag is set in the options. </p> </li> <li id="GUID-572AB80E-47F4-5608-8241-3C1E7065C309"><p>Set the brightness using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-22722C7A-229A-3BD5-8639-D4A6450B26E1"><apiname>CCamera::SetBrightnessL()</apiname></xref>. </p> <p>The brightness should be in the range -100 to +100, or to set the brightness automatically, use the flag <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-DABFFB10-D6D7-384A-8527-D82DE96AD8C4"><apiname>CCamera::EBrightnessAuto</apiname></xref>. </p> </li> </ol> <p id="GUID-F3A35365-B654-552D-8F27-42C6368BB0D7"><b>Contrast</b> </p> <p>To change the camera image contrast: </p> <ol id="GUID-6F000E09-34AF-5484-960C-709E24420EBC"><li id="GUID-BA85FA15-A58D-5B35-859C-63CD1357452A"><p>Check if contrast control is supported, by testing if the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-892E8762-9C54-3A61-921B-894283F5AE69"><apiname>TCameraInfo::EContrastSupported</apiname></xref> flag is set in the options. </p> </li> <li id="GUID-9ED91DD5-6DCB-58CE-A30D-F9D8252CEEA3"><p>Set the contrast using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8F8DE11C-4350-3010-8B28-A635C82E4214"><apiname>CCamera::SetContrastL()</apiname></xref>. </p> <p>The contrast should be in the range -100 to +100, or to set the contrast automatically, use the flag <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-FAC16D18-6860-347E-8238-4CE1998442F0"><apiname>CCamera::EContrastAuto</apiname></xref>. </p> </li> </ol> <p id="GUID-27DB4187-E958-5468-952B-648F99A9FB7D"><b>Zoom</b> </p> <p>To alter the camera zoom: </p> <ol id="GUID-AEC745DF-D86E-53A0-A630-6AC0BA2FA652"><li id="GUID-E9820A2A-0A52-5A1F-920F-E46C30F73B33"><p>Test if zoom is supported, and for what range of values, by reading the minimum and maximum zoom values from the data members in <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref>. A value of zero means zoom is not supported. A step of one in the zoom value corresponds to the smallest zoom change available. The camera zoom increases linearly with the zoom value until the maximum zoom value. </p> <p>A separate set of values is available for zoom and for digital zoom. <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref> also has members that say what is the actual zoom factor when at minimum (non-digital only) and maximum zoom. </p> </li> <li id="GUID-E7506196-7BCB-507F-93C1-FFAEF101107A"><p>Set the zoom using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4C9E5871-DCA5-34A0-AE48-7EE70EDAECD0"><apiname>CCamera::SetDigitalZoomFactorL()</apiname></xref> or <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AA36BA0C-C7B3-3ADD-9311-901EEE13C126"><apiname>CCamera::SetZoomFactorL()</apiname></xref>. </p> </li> </ol> <p id="GUID-AAFB3767-837A-58BC-89DC-96B74D58EE9A"><b>Image format</b> </p> <p>Before a client application captures still, or video, it can first specify the required image format. There may be complicated dependencies between frame sizes and formats, so the required format must be specified as follows: </p> <ol id="GUID-D82A3BAB-C1C0-55DE-BEAF-CCDBC7FA5FD1"><li id="GUID-629D54E0-47A4-556D-B1B7-BED86FF8A8EE"><p>Select the format from those available from either the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-A35EC9D8-EF63-3714-9FFC-915586E75C8A"><apiname>TCameraInfo::iImageFormatsSupported</apiname></xref> or the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-7F9299CF-9C4C-3FBF-B818-08C93D356652"><apiname>TCameraInfo::iVideoFrameFormatsSupported</apiname></xref> bitfield, for still or video images respectively. </p> </li> <li id="GUID-6E427A4A-1DC4-595F-A7AA-D3BD0A4C59B7"><p>Select the required size using either <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4248DD3D-17D9-3EBE-92F9-4FD365AE027E"><apiname>CCamera::EnumerateCaptureSizes()</apiname></xref> or <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C52FB21D-60EE-3202-BB50-ABDF4CDF3DB4"><apiname>CCamera::EnumerateVideoFrameSizes()</apiname></xref> for still or video images respectively. Note that not all possible sizes are guaranteed to be supported for any given format. Unsupported sizes will be returned as (0,0). </p> </li> <li id="GUID-32D3E2AA-68D5-5734-8D2A-267320796AB0"><p>For video capture, select the frame rate using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-F3C6E294-1EF2-3BB4-B1FC-87194DA1D6CA"><apiname>CCamera::EnumerateVideoFrameRates()</apiname></xref>. Again, not all rates are guaranteed to be supported, as dependencies may exist in the camera between the format, size, exposure mode and rate. </p> </li> </ol> </section> <section><title>Image Capture </title> <p>The Image Capture API allows you to do the following tasks: </p> <ul><li id="GUID-A41DE9A8-849C-50F6-83F0-91B93B1FDAAC"><p>Pre-image capture control </p> </li> <li id="GUID-A4AC45AF-8F96-528E-B9F4-5E32D7FC292E"><p>Capturing image </p> </li> <li id="GUID-D2FEC3AC-1ED6-5029-A4EA-A2A5949CA420"><p>Post-image capture control </p> </li> <li id="GUID-437F59EB-0302-5C90-9CCD-D3DEC9B7C616"><p>Control of burst image capture </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita">Accessing and Power Control of Camera</xref>  </p> <p><xref href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita">Camera Preset Support</xref>  </p> <p><xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita"> Controlling Pre-Image Capture </xref>  </p> <p><xref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita">Controlling Still-image Capture</xref> </p> <p><xref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita">Controlling Captured Image</xref>  </p> <p><xref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita">Using Time-Nudge-Capture Drive Mode</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e41499_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DA2C605B-6CCF-4039-BD02-DD4BDA003C97_d0e47056_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DA37516F-874F-49B0-A176-73277BB86FD3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DA37516F-874F-49B0-A176-73277BB86FD3" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Title pane touch observer API is an SDK API and first released in S60
-5th Edition. </p>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-DAB4EE70-5F84-5AFA-B95B-A433695251F8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DAB4EE70-5F84-5AFA-B95B-A433695251F8" xml:lang="en"><title>Simple:
+simple window system</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Description</title> <p> <filepath>Simple</filepath> creates
+two windows: a main window which has nothing drawn to it, and a smaller window
+with a border and two diagonal lines. The main window is the parent of the
+smaller window. </p> </section>
+<section id="GUID-033AD577-CCD4-5339-BAD9-B845B9AE1DA8"><title>Download</title> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-11ace65a-51b9-4adc-aa94-465f87a6d1d0.zip" scope="external">simple.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-11ace65a-51b9-4adc-aa94-465f87a6d1d0.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section><title>Classes defined</title> <ul>
+<li id="GUID-6C4671FA-ADB4-5EE3-A104-7C1196E78FAE"><p> <codeph>CMainWindow</codeph>:
+An empty window. Just draws itself. </p> </li>
+<li id="GUID-5B404530-A799-5BB9-B6C2-CC6922536EAE"><p> <codeph>CSmallWindow</codeph>:
+A small window which draws itself with a square border around the edges of
+the window, and two diagonal lines between the corners. </p> </li>
+<li id="GUID-4CFCBD24-1726-539B-96A6-DE868D9BFAC7"><p> <codeph>CExampleWsClient</codeph>:
+Derived from <codeph>CWsClient</codeph>. Owns the <codeph>CMainWindow</codeph> and
+the <codeph>CSmallWindow</codeph>. Processes key and pointer events. </p> </li>
+</ul> </section>
+<section><title>Class Summary</title><p><xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref></p><p><xref href="GUID-64D4D428-D65F-3D9D-A0D4-C8338C848B25.dita"><apiname>RWindowGroup</apiname></xref></p><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref></p><p><xref href="GUID-30479BE3-296E-3B4D-914D-B080ABD733E4.dita"><apiname>CWsScreenDevice</apiname></xref></p><p><xref href="GUID-101762DC-E498-3325-88AB-B0FF17DC62B6.dita"><apiname>TRect</apiname></xref></p><p><xref href="GUID-98C5818D-DC77-38FF-921E-13BF54755CE2.dita"><apiname>RWindowHandle</apiname></xref></p><p><xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref></p></section>
+<section><title>Types used</title> <ul>
+<li id="GUID-BD466BAD-B7A7-5797-8B69-C0B95BDC39FD"><p> <codeph>CWindowGc</codeph>:
+Window graphics context. Required when drawing to a window. </p> </li>
+<li id="GUID-C0283377-C569-5FEA-9799-07B0153783AC"><p> <codeph>struct TPointerEvent</codeph>:
+Pointer event details </p> </li>
+<li id="GUID-F961CA8E-2F43-56CC-9A30-6A50B04948BD"><p> <codeph>struct TKeyEvent</codeph>:
+Key event details </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C-master.png has changed
Binary file Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e58905_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e59307_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7" xml:lang="en"><title>Views</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term <i>view</i> refers to the <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">MVC
-design</xref> (Model-View-Controller) component that has the following attributes:</p>
-<ul>
-<li><p>displays the application state known by the application</p>
-</li>
-<li><p>receives user input</p></li>
-<li><p>is owned by the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
-controller</xref></p></li>
-<li><p>observes application state changes either directly or through
-the UI controller and updates the screen accordingly</p></li>
-</ul>
-<p>In practice, views are collections of interface elements, such as controls,
-menus, command button areas (CBAs), key events, that make up one top-level
-window in an application. Applications may have one or more views. If an application
-has more than one view and if the status pane behavior is organized in this
-manner, then each view in an application can have its own tab. Applications
-can have only a single view active at any one time. The current view is the
-view that interacts with the user, receiving events and menu choices as if
-it were the only set of UI elements.</p>
-<p>Multiple view architectures are widely used in application development
-on the Symbian platform. Multiple view architectures:</p>
-<ul>
-<li><p>provide developers with an efficient way to build multiple
-views within an application and switch between them easily and simply. </p>
-</li>
-<li><p>allow applications to bundle their user interface requirements
-into a single element (a view). The view architecture then provides the capability
-to switch quickly between the views.</p></li>
-<li><p>allow applications to take advantage of object orientation
-to encapsulate code, keeping it simple and clear. </p></li>
-<li><p>provide the ability for one application to activate the view
-of another. This is particularly useful when you want to use an existing display
-or editing capability without going to the expense of integrating a component
-into your application. </p></li>
-<li><p>allow applications to register views, with one view being
-active in each running application at any one time. It does not dictate what
-a view is; however, it does provide support for a view being a display page
-on the screen</p></li>
-</ul>
-<fig id="GUID-79751C55-C0D9-4511-9147-8E6CB95AA610"><title>Controller-view hierarchy in traditional and Symbian architectures</title><image href="GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e46954_href.png"/></fig>
-<p>In practice, the view concept varies depending upon your chosen architecture
-approach: </p>
-<section id="GUID-53125010-FFC7-422E-9EE5-A42427031F10"><title>Traditional architecture
-views</title>
-<p>In a traditional architecture, the view is derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>,
-which typically constructs a top-level window-owning control that draws itself
-and contains other controls.</p>
-<p>For more information on views in tradition architecture approaches,
-see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
-Symbian UI application architecture</xref>.</p>
-</section>
-<section id="GUID-B473202D-9682-4EBA-83F2-8391DB2B56D9"><title>Symbian architecture
-views</title>
-<p>In Symbian view architecture, a view controller is added between the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref> and
-the view that draws itself and contains other controls. For example, view
-controllers can be used to specify CBAs that are specific to specific views.</p>
-<p>In a Symbian architecture, the view controller is derived from <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>,
-which is derived directly from <xref href="GUID-8F6FE089-E2A8-30F4-B67E-10F286347681.dita"><apiname>CBase</apiname></xref> and not from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
-This means the <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived views are not controls. <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived
-views need to contain <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived classes to provide
-visual representation on the display.</p>
-<p>For more information on views in Symbian architecture approaches, see <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
-architecture</xref>.</p>
-</section>
-<section id="GUID-C9AA9483-424E-4626-8335-5F70FE246E1D"><title>Dialog architecture
-views</title>
-<p>In dialog architectures, views are implemented in modeless dialog boxes.
-Multiple views can be constructed using nested dialogs or a tabbed dialog
-pane.</p>
-<p>For more information on views in dialog architecture approaches, see <xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">Dialog
-architecture</xref>.</p>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7" xml:lang="en"><title>Views</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term <i>view</i> refers to the <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">MVC
+design</xref> (Model-View-Controller) component that has the following attributes:</p>
+<ul>
+<li><p>displays the application state known by the application</p>
+</li>
+<li><p>receives user input</p></li>
+<li><p>is owned by the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI
+controller</xref></p></li>
+<li><p>observes application state changes either directly or through
+the UI controller and updates the screen accordingly</p></li>
+</ul>
+<p>In practice, views are collections of interface elements, such as controls,
+menus, command button areas (CBAs), key events, that make up one top-level
+window in an application. Applications may have one or more views. If an application
+has more than one view and if the status pane behavior is organized in this
+manner, then each view in an application can have its own tab. Applications
+can have only a single view active at any one time. The current view is the
+view that interacts with the user, receiving events and menu choices as if
+it were the only set of UI elements.</p>
+<p>Multiple view architectures are widely used in application development
+on the Symbian platform. Multiple view architectures:</p>
+<ul>
+<li><p>provide developers with an efficient way to build multiple
+views within an application and switch between them easily and simply. </p>
+</li>
+<li><p>allow applications to bundle their user interface requirements
+into a single element (a view). The view architecture then provides the capability
+to switch quickly between the views.</p></li>
+<li><p>allow applications to take advantage of object orientation
+to encapsulate code, keeping it simple and clear. </p></li>
+<li><p>provide the ability for one application to activate the view
+of another. This is particularly useful when you want to use an existing display
+or editing capability without going to the expense of integrating a component
+into your application. </p></li>
+<li><p>allow applications to register views, with one view being
+active in each running application at any one time. It does not dictate what
+a view is; however, it does provide support for a view being a display page
+on the screen</p></li>
+</ul>
+<fig id="GUID-79751C55-C0D9-4511-9147-8E6CB95AA610"><title>Controller-view hierarchy in traditional and Symbian architectures</title><image href="GUID-46040A24-92C3-4B0B-88CC-BDD8DDA8F27C_d0e41397_href.png"/></fig>
+<p>In practice, the view concept varies depending upon your chosen architecture
+approach: </p>
+<section id="GUID-53125010-FFC7-422E-9EE5-A42427031F10"><title>Traditional architecture
+views</title>
+<p>In a traditional architecture, the view is derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>,
+which typically constructs a top-level window-owning control that draws itself
+and contains other controls.</p>
+<p>For more information on views in tradition architecture approaches,
+see <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">Traditional
+Symbian UI application architecture</xref>.</p>
+</section>
+<section id="GUID-B473202D-9682-4EBA-83F2-8391DB2B56D9"><title>Symbian architecture
+views</title>
+<p>In Symbian view architecture, a view controller is added between the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita">UI controller</xref> and
+the view that draws itself and contains other controls. For example, view
+controllers can be used to specify CBAs that are specific to specific views.</p>
+<p>In a Symbian architecture, the view controller is derived from <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>,
+which is derived directly from <xref href="GUID-8F6FE089-E2A8-30F4-B67E-10F286347681.dita"><apiname>CBase</apiname></xref> and not from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>.
+This means the <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived views are not controls. <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived
+views need to contain <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived classes to provide
+visual representation on the display.</p>
+<p>For more information on views in Symbian architecture approaches, see <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">View
+architecture</xref>.</p>
+</section>
+<section id="GUID-C9AA9483-424E-4626-8335-5F70FE246E1D"><title>Dialog architecture
+views</title>
+<p>In dialog architectures, views are implemented in modeless dialog boxes.
+Multiple views can be constructed using nested dialogs or a tabbed dialog
+pane.</p>
+<p>For more information on views in dialog architecture approaches, see <xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">Dialog
+architecture</xref>.</p>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A" xml:lang="en"><title>Multi-selection
-list query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A multi-selection list query is used when the user needs to be able to
-select several items from a list at the same time (using Selection key to
-mark/unmark the checkbox). See <xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
-list</xref> for a description of a multi-selection list.</p>
-<p>The left softkey (<b>OK</b>) is used for accepting the query, and the right
-softkey is <b>Cancel</b>.</p>
-<fig id="GUID-E2A1FCE9-6EF2-4CED-A74D-F41FE9DE5C46">
-<title>Multi-selection list query</title>
-<image href="GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e68845_href.png" scale="40" placement="inline"/>
-</fig>
-<section><title>Using multi-selection
-list queries in C++ applications</title><p>For implementation information,
-see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DAD40CCE-EA59-4DCA-8922-824B18F0387A" xml:lang="en"><title>Multi-selection
+list query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A multi-selection list query is used when the user needs to be able to
+select several items from a list at the same time (using Selection key to
+mark/unmark the checkbox). See <xref href="GUID-0E695106-4139-4335-A11F-BD04418DD583.dita">Multi-selection
+list</xref> for a description of a multi-selection list.</p>
+<p>The left softkey (<b>OK</b>) is used for accepting the query, and the right
+softkey is <b>Cancel</b>.</p>
+<fig id="GUID-E2A1FCE9-6EF2-4CED-A74D-F41FE9DE5C46">
+<title>Multi-selection list query</title>
+<image href="GUID-055E42B2-27E7-45F2-8450-5CCF4E1DEB15_d0e63611_href.png" scale="40" placement="inline"/>
+</fig>
+<section id="GUID-77134C7A-42F3-44A3-A993-32D6A497215E"><title>Using
+multi-selection list queries in applications</title><p>For implementation
+information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DAF35D49-9630-4186-A350-E8483693D50D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DAF35D49-9630-4186-A350-E8483693D50D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,135 +1,135 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DAF35D49-9630-4186-A350-E8483693D50D" xml:lang="en"><title>Hierarchical
-column list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Hierarchical column list is used for browsing in one view files and folders
-that are in different levels in the file system. This enables for example
-showing subtitles among the list items, and collapsing and expanding data
-items under it.</p>
-<fig id="GUID-0A22D779-41C5-41DD-884C-AFC7DF192720">
-<title>Hierarchical column list component, where the subtitle "Last week"
-is expanded</title>
-<image href="GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e63329_href.png" placement="inline"/>
-</fig>
-<p>The hierarchical column list can have three different row types:</p>
-<ul>
-<li><p>Subtitle row </p></li>
-<li><p>Core data row </p></li>
-<li><p>Simple data row</p></li>
-</ul>
-<p>Subtitle can have only one type of sub-items, thus both core data and simple
-data items cannot exist under same subtitle. It is recommended, that only
-one type of sub-items would be used in the same view.</p>
-<p>To enable more information in a single row, the core data row can be divided
-into two core data columns. The more important information should be shown
-in the first column due to more space, for example e-mail sender information
-in the first column, and subject in the second column. In landscape there
-can be also third column in use.</p>
-<p><b>General navigation:</b> </p>
-<p>Expanding and collapsing can be done in subtitle rows:</p>
-<ul>
-<li><p>Arrow key: Tabs can be used together with a hierarchical column list,
-and thus arrow keys are used for moving between tabs. If there are no tabs,
-the arrow keys expand subtitle item (Arrow right, the focus is not moved)
-and collapse expanded subtitle item (Arrow left, focus is not moved). </p></li>
-<li><p>The Selection key expands collapsed (or vice versa) subtitle item in
-focus. </p></li>
-<li><p>Commands for expanding, collapsing and opening folders or files are
-also available in the <b>Options</b> menu.</p></li>
-</ul>
-<table id="GUID-B5B4FA4B-A296-4CFF-8E6C-3030013798A2"><title>Default touch
-events for hierarchical column list items</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down on collapsed subtitle item</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on collapsed subtitle item</p></entry>
-<entry><p>Item is expanded. </p><p>If the folder is empty, the only action
-performed is that the icon is changed to expanded folder indication.</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event</p></entry>
-</row>
-<row>
-<entry><p>Touch down on expanded subtitle item</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on expanded subtitle item</p></entry>
-<entry><p>Item is collapsed.</p><p>If the folder is empty, the only action
-performed is that the icon is changed to collapsed folder indication.</p></entry>
-<entry><p>Highlight disappears.</p><p>Tactile: Basic list effect is provided
-with touch release event</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on subtitle item</p></entry>
-<entry><p>Stylus pop-up menu is opened.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect is provided with
-hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on data item</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Sensitive list effect and audio
-feedback is provided with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release on data item</p></entry>
-<entry><p>Item is activated. </p><p>Application specific</p></entry>
-<entry><p>Highlight shown. Tactile: Sensitive list effect is provided with
-touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold on data item</p></entry>
-<entry><p>Stylus pop-up menu is opened.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect is provided with
-hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on data/subtitle item and move</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p><p>Expand and collapse functions are not done
-while dragging.</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-<row>
-<entry><p>Touch down on data/subtitle item and move horizontally</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-4BA0CC1C-D164-4EE0-9178-DE250B7BCB69"><title>Using
-hierarchical column lists in C++ applications</title><p>The API to use for
-hierarchical column lists is the specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html.
-For implementation information, see <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DAF35D49-9630-4186-A350-E8483693D50D" xml:lang="en"><title>Hierarchical
+column list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Hierarchical column list is used for browsing in one view files and folders
+that are in different levels in the file system. This enables for example
+showing subtitles among the list items, and collapsing and expanding data
+items under it.</p>
+<fig id="GUID-0A22D779-41C5-41DD-884C-AFC7DF192720">
+<title>Hierarchical column list component, where the subtitle "Today" and
+"Yesterday" are expanded</title>
+<image href="GUID-2939EEA8-DBC9-4882-B016-9C53166569CD_d0e56908_href.png" placement="inline"/>
+</fig>
+<p>The hierarchical column list can have three different row types:</p>
+<ul>
+<li><p>Subtitle row </p></li>
+<li><p>Core data row </p></li>
+<li><p>Simple data row</p></li>
+</ul>
+<p>Subtitle can have only one type of sub-items, thus both core data and simple
+data items cannot exist under same subtitle. It is recommended, that only
+one type of sub-items would be used in the same view.</p>
+<p>To enable more information in a single row, the core data row can be divided
+into two core data columns. The more important information should be shown
+in the first column due to more space, for example e-mail sender information
+in the first column, and subject in the second column. In landscape there
+can be also third column in use.</p>
+<p><b>General navigation:</b> </p>
+<p>Expanding and collapsing can be done in subtitle rows:</p>
+<ul>
+<li><p>Arrow key: Tabs can be used together with a hierarchical column list,
+and thus arrow keys are used for moving between tabs. If there are no tabs,
+the arrow keys expand subtitle item (Arrow right, the focus is not moved)
+and collapse expanded subtitle item (Arrow left, focus is not moved). </p></li>
+<li><p>The Selection key expands collapsed (or vice versa) subtitle item in
+focus. </p></li>
+<li><p>Commands for expanding, collapsing and opening folders or files are
+also available in the <b>Options</b> menu.</p></li>
+</ul>
+<table id="GUID-B5B4FA4B-A296-4CFF-8E6C-3030013798A2"><title>Default touch
+events for hierarchical column list items</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down on collapsed subtitle item</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on collapsed subtitle item</p></entry>
+<entry><p>Item is expanded. </p><p>If the folder is empty, the only action
+performed is that the icon is changed to expanded folder indication.</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event</p></entry>
+</row>
+<row>
+<entry><p>Touch down on expanded subtitle item</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on expanded subtitle item</p></entry>
+<entry><p>Item is collapsed.</p><p>If the folder is empty, the only action
+performed is that the icon is changed to collapsed folder indication.</p></entry>
+<entry><p>Highlight disappears.</p><p>Tactile: Basic list effect is provided
+with touch release event</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on subtitle item</p></entry>
+<entry><p>Stylus pop-up menu is opened.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect is provided with
+hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on data item</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Sensitive list effect and audio
+feedback is provided with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release on data item</p></entry>
+<entry><p>Item is activated. </p><p>Application specific</p></entry>
+<entry><p>Highlight shown. Tactile: Sensitive list effect is provided with
+touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold on data item</p></entry>
+<entry><p>Stylus pop-up menu is opened.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect is provided with
+hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on data/subtitle item and move</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p><p>Expand and collapse functions are not done
+while dragging.</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+<row>
+<entry><p>Touch down on data/subtitle item and move horizontally</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-4BA0CC1C-D164-4EE0-9178-DE250B7BCB69"><title>Using
+hierarchical column lists in applications</title><p>The API to use for hierarchical
+column lists is the <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html" scope="peer">Hierarchical lists API</xref>. For implementation information,
+see <xref format="html" href="specs/guides/Hierarchical_Lists_API_Specification/Hierarchical_Lists_API_Specification.html#Hierarchical_Lists_API_Specification.topic3" scope="peer">Using the Hierarchical lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03" xml:lang="en"><title>Security
-issues</title><shortdesc>This topic explains the security issues while performing a publish
-and subscribe.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-4BF55D37-742E-527F-9148-57C12164DA1C"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-D2D0BDDF-28A4-5168-B1C5-685E1964C730">Who can define a property?</xref> </p> </li>
-<li id="GUID-A06C7B43-30B8-5606-B22C-EBB18DBA7554"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-839C5063-3BA1-52E6-BFFE-CF3E18E605EC">Read and write access rights</xref> </p> </li>
-<li id="GUID-EC225F1D-0B9D-537F-BFC7-10EFBD6B44AE"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-65107093-7C73-5117-88F7-CFB585455CE3">Deletion rights</xref> </p> </li>
-</ul>
-<section id="GUID-D2D0BDDF-28A4-5168-B1C5-685E1964C730"><title>Who can define
-a property?</title> <p>One of the most important attributes of a property
-is the category to which it belongs. A category is represented by a UID value. </p> <p>The
-general rule is that the (category) UID must be the same as the Security ID
-(the SID) of the process in which the code that is performing the define operation
-is running. In effect, this forms a data cage, preventing a process from defining,
-or "occupying", another process's property. </p> <p>You define a property
-using the overload of <codeph>RProperty::Define()</codeph> with the signature: </p> <codeblock id="GUID-B33CDB93-7EB1-5276-B260-AEAB28227FA7" xml:space="preserve">static TInt Define(TUint aKey, TInt aAttr, const TSecurityPolicy&amp; aReadPolicy, const TSecurityPolicy&amp; aWritePolicy, TInt aPreallocate);</codeblock> <p>This function was introduced in V9.1 of Symbian platform, and it does <i>not</i> allow
-you to explicitly specify the category. Indeed, Symbian platform takes the
-category to be the value of the process SID. </p> <ul>
-<li id="GUID-B4257761-359B-5027-93A0-9122EA0D5F21"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-3EBCF236-E88A-5A50-A94E-37FABCD89633">The situation before Version 9.1</xref> </p> </li>
-<li id="GUID-56A0BBD6-F844-5C5B-8789-A3DF806E7D26"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-05EB14D2-6BA2-5199-A97A-9368AA581922">Migration issues</xref> </p> </li>
-<li id="GUID-DF9B3F9D-C0A2-536D-BBAA-86FE218A4F21"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-D4FAE1D0-4610-5AAD-802B-62535C6C11BB">Notes</xref> </p> </li>
-</ul> <p id="GUID-3EBCF236-E88A-5A50-A94E-37FABCD89633"><b>The situation before Version
-9.1</b> </p> <p>Before version 9.1 of Symbian platform, you had to explicitly
-define a category using the overload of <codeph>RProperty::Define()</codeph> with
-the signature: </p> <codeblock id="GUID-0D193896-AB7B-5787-A92C-2CB214C16496" xml:space="preserve">static TInt RProperty::Define(TUid aCategory, TUint aKey, TInt aAttr, const TSecurityPolicy&amp; aReadPolicy, const TSecurityPolicy&amp; aWritePolicy, TInt aPreallocate)</codeblock> <p>This function was introduced in V9.0 of Symbian platform. </p> <p>It
-was also possible to specify a category, known as the system category, which
-was reserved for system services. This category was identified by the <xref href="GUID-A85740BD-BC85-345E-B24A-92F68EA56270.dita"><apiname>KUidSystemCategoryValue</apiname></xref> UID;
-a process required the <i>WriteDeviceData</i> capability, (<xref href="GUID-C607209F-6FC5-31DE-8034-E5B799B857A8.dita"><apiname>ECapabilityWriteDeviceData</apiname></xref>),
-to use it. </p> <p>This overload is still available, but from V9.1 there are
-restrictions that govern its use, and it is recommended that, if possible,
-users of Property &amp; Subscribe services should migrate to using the version
-of <codeph>RProperty::Define()</codeph> that does not require the category
-to be specified. </p> <p id="GUID-05EB14D2-6BA2-5199-A97A-9368AA581922"><b>Migration issues</b> </p> <p>Processes
-that use the 9.0 version of <codeph>RProperty::Define()</codeph> must now
-have the <i>WriteDeviceData</i> capability to define a property with an explicitly
-specified category (including the system category), <i>provided that the SID
-of the process is less than the value</i> <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>. </p> <p>A
-process that has a SID value <i>greater</i> than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>  <i>cannot
-explicitly specify a category</i>. This is an absolute rule that cannot be
-overridden regardless of the capabilities assigned to that process. </p> <p>The
-logic here is that all new <filepath>.exe</filepath> s require a SID to be
-assigned, and that this value will be greater than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>.
-This means that an associated process is forced to define properties with
-category values that are the same as the process SID. Older <filepath>.exe</filepath> s
-are expected to have SID values that are less than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>,
-and means that an associated process can continue to explicitly specify a
-category, using the 9.0 version of <codeph>Define()</codeph>, but must have
-the <i>WriteDeviceData</i> capability. </p> <p>Ideally, all older <filepath>.exe</filepath> s
-should be migrated to use the 9.1 version of <codeph>Define()</codeph>. </p> <p>The
-following diagram shows the "category space". </p> <fig id="GUID-ADCDE30C-7D9C-588D-9058-E5491AB626F3">
-<image href="GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e248057_href.png" placement="inline"/>
-</fig> <p>The <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref> value
-effectively forms a <i>threshold</i> value. Processes with a SID value below
-this threshold can define a category that is different from their SID, provided
-they have the <i>WriteDeviceData</i> capability. Processes with a SID value
-above this threshold value can only define a category that is the same as
-the SID - regardless of capability. </p> <p id="GUID-D4FAE1D0-4610-5AAD-802B-62535C6C11BB"><b>Notes</b> </p> <p>When we
-refer to the SID of the process, we also mean the SID value assigned to the
-associated <filepath>.exe</filepath> installed on the device. By older or
-younger processes, we are referring to the age of the associated executables. </p> </section>
-<section id="GUID-839C5063-3BA1-52E6-BFFE-CF3E18E605EC"><title>Read and write
-access rights</title> <p>Access rights to a property are set when the property
-is defined. </p> <p>The process defining the property can specify the rights
-of access to that property. In particular, it can specify a security policy
-to control read access (i.e. retrieval of the property) and a separate security
-policy to control write access (i.e. publication of the property). </p> <p>Access
-to a property is governed by a pair of security policies, instances of <xref href="GUID-81A285F6-3F87-3E77-9426-61BB16BC7109.dita"><apiname>TSecurityPolicy</apiname></xref> objects.
-These define the combination of capabilities and/or vendor Id and/or Secure
-Id that a process must possess before being allowed to write to, or read from,
-a property. Any attempt to access a property by a thread whose owning process
-does not have sufficient capability, will fail with <codeph>KErrPermissionDenied</codeph>. </p> <p>The
-security policies are passed to the <xref href="GUID-C4776034-D190-3FC4-AF45-C7F195093AC3.dita#GUID-C4776034-D190-3FC4-AF45-C7F195093AC3/GUID-58C54D2A-91E0-359B-AA31-69C6C4050173"><apiname>RProperty::Define()</apiname></xref> function
-when the property is defined. </p> </section>
-<section id="GUID-65107093-7C73-5117-88F7-CFB585455CE3"><title>Deletion rights</title> <p>Only
-the owning process, i.e. the process that defined the property, is allowed
-to delete that property. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03" xml:lang="en"><title>Security
+issues</title><shortdesc>This topic explains the security issues while performing a publish
+and subscribe.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-4BF55D37-742E-527F-9148-57C12164DA1C"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-D2D0BDDF-28A4-5168-B1C5-685E1964C730">Who can define a property?</xref> </p> </li>
+<li id="GUID-A06C7B43-30B8-5606-B22C-EBB18DBA7554"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-839C5063-3BA1-52E6-BFFE-CF3E18E605EC">Read and write access rights</xref> </p> </li>
+<li id="GUID-EC225F1D-0B9D-537F-BFC7-10EFBD6B44AE"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-65107093-7C73-5117-88F7-CFB585455CE3">Deletion rights</xref> </p> </li>
+</ul>
+<section id="GUID-D2D0BDDF-28A4-5168-B1C5-685E1964C730"><title>Who can define
+a property?</title> <p>One of the most important attributes of a property
+is the category to which it belongs. A category is represented by a UID value. </p> <p>The
+general rule is that the (category) UID must be the same as the Security ID
+(the SID) of the process in which the code that is performing the define operation
+is running. In effect, this forms a data cage, preventing a process from defining,
+or "occupying", another process's property. </p> <p>You define a property
+using the overload of <codeph>RProperty::Define()</codeph> with the signature: </p> <codeblock id="GUID-B33CDB93-7EB1-5276-B260-AEAB28227FA7" xml:space="preserve">static TInt Define(TUint aKey, TInt aAttr, const TSecurityPolicy&amp; aReadPolicy, const TSecurityPolicy&amp; aWritePolicy, TInt aPreallocate);</codeblock> <p>This function was introduced in V9.1 of Symbian platform, and it does <i>not</i> allow
+you to explicitly specify the category. Indeed, Symbian platform takes the
+category to be the value of the process SID. </p> <ul>
+<li id="GUID-B4257761-359B-5027-93A0-9122EA0D5F21"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-3EBCF236-E88A-5A50-A94E-37FABCD89633">The situation before Version 9.1</xref> </p> </li>
+<li id="GUID-56A0BBD6-F844-5C5B-8789-A3DF806E7D26"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-05EB14D2-6BA2-5199-A97A-9368AA581922">Migration issues</xref> </p> </li>
+<li id="GUID-DF9B3F9D-C0A2-536D-BBAA-86FE218A4F21"><p> <xref href="GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03.dita#GUID-DAF86036-CC40-5F26-9F15-2F2093F59C03/GUID-D4FAE1D0-4610-5AAD-802B-62535C6C11BB">Notes</xref> </p> </li>
+</ul> <p id="GUID-3EBCF236-E88A-5A50-A94E-37FABCD89633"><b>The situation before Version
+9.1</b> </p> <p>Before version 9.1 of Symbian platform, you had to explicitly
+define a category using the overload of <codeph>RProperty::Define()</codeph> with
+the signature: </p> <codeblock id="GUID-0D193896-AB7B-5787-A92C-2CB214C16496" xml:space="preserve">static TInt RProperty::Define(TUid aCategory, TUint aKey, TInt aAttr, const TSecurityPolicy&amp; aReadPolicy, const TSecurityPolicy&amp; aWritePolicy, TInt aPreallocate)</codeblock> <p>This function was introduced in V9.0 of Symbian platform. </p> <p>It
+was also possible to specify a category, known as the system category, which
+was reserved for system services. This category was identified by the <xref href="GUID-A85740BD-BC85-345E-B24A-92F68EA56270.dita"><apiname>KUidSystemCategoryValue</apiname></xref> UID;
+a process required the <i>WriteDeviceData</i> capability, (<xref href="GUID-C607209F-6FC5-31DE-8034-E5B799B857A8.dita"><apiname>ECapabilityWriteDeviceData</apiname></xref>),
+to use it. </p> <p>This overload is still available, but from V9.1 there are
+restrictions that govern its use, and it is recommended that, if possible,
+users of Property &amp; Subscribe services should migrate to using the version
+of <codeph>RProperty::Define()</codeph> that does not require the category
+to be specified. </p> <p id="GUID-05EB14D2-6BA2-5199-A97A-9368AA581922"><b>Migration issues</b> </p> <p>Processes
+that use the 9.0 version of <codeph>RProperty::Define()</codeph> must now
+have the <i>WriteDeviceData</i> capability to define a property with an explicitly
+specified category (including the system category), <i>provided that the SID
+of the process is less than the value</i> <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>. </p> <p>A
+process that has a SID value <i>greater</i> than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>  <i>cannot
+explicitly specify a category</i>. This is an absolute rule that cannot be
+overridden regardless of the capabilities assigned to that process. </p> <p>The
+logic here is that all new <filepath>.exe</filepath> s require a SID to be
+assigned, and that this value will be greater than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>.
+This means that an associated process is forced to define properties with
+category values that are the same as the process SID. Older <filepath>.exe</filepath> s
+are expected to have SID values that are less than <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref>,
+and means that an associated process can continue to explicitly specify a
+category, using the 9.0 version of <codeph>Define()</codeph>, but must have
+the <i>WriteDeviceData</i> capability. </p> <p>Ideally, all older <filepath>.exe</filepath> s
+should be migrated to use the 9.1 version of <codeph>Define()</codeph>. </p> <p>The
+following diagram shows the "category space". </p> <fig id="GUID-ADCDE30C-7D9C-588D-9058-E5491AB626F3">
+<image href="GUID-442D216B-117E-538C-A51F-0775BF37673E_d0e244320_href.png" placement="inline"/>
+</fig> <p>The <xref href="GUID-4A67D011-CBB6-396F-8104-7B3BECB84460.dita"><apiname>KUidSecurityThresholdCategoryValue</apiname></xref> value
+effectively forms a <i>threshold</i> value. Processes with a SID value below
+this threshold can define a category that is different from their SID, provided
+they have the <i>WriteDeviceData</i> capability. Processes with a SID value
+above this threshold value can only define a category that is the same as
+the SID - regardless of capability. </p> <p id="GUID-D4FAE1D0-4610-5AAD-802B-62535C6C11BB"><b>Notes</b> </p> <p>When we
+refer to the SID of the process, we also mean the SID value assigned to the
+associated <filepath>.exe</filepath> installed on the device. By older or
+younger processes, we are referring to the age of the associated executables. </p> </section>
+<section id="GUID-839C5063-3BA1-52E6-BFFE-CF3E18E605EC"><title>Read and write
+access rights</title> <p>Access rights to a property are set when the property
+is defined. </p> <p>The process defining the property can specify the rights
+of access to that property. In particular, it can specify a security policy
+to control read access (i.e. retrieval of the property) and a separate security
+policy to control write access (i.e. publication of the property). </p> <p>Access
+to a property is governed by a pair of security policies, instances of <xref href="GUID-81A285F6-3F87-3E77-9426-61BB16BC7109.dita"><apiname>TSecurityPolicy</apiname></xref> objects.
+These define the combination of capabilities and/or vendor Id and/or Secure
+Id that a process must possess before being allowed to write to, or read from,
+a property. Any attempt to access a property by a thread whose owning process
+does not have sufficient capability, will fail with <codeph>KErrPermissionDenied</codeph>. </p> <p>The
+security policies are passed to the <xref href="GUID-C4776034-D190-3FC4-AF45-C7F195093AC3.dita#GUID-C4776034-D190-3FC4-AF45-C7F195093AC3/GUID-58C54D2A-91E0-359B-AA31-69C6C4050173"><apiname>RProperty::Define()</apiname></xref> function
+when the property is defined. </p> </section>
+<section id="GUID-65107093-7C73-5117-88F7-CFB585455CE3"><title>Deletion rights</title> <p>Only
+the owning process, i.e. the process that defined the property, is allowed
+to delete that property. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DB1D3045-2DC5-5C50-B430-526674369DC6" xml:lang="en"><title>Server-side
-MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Example Code</title> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip</xref> </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The
-files reproduced here are the main files contained in the examples directory.
-Some extra files may be needed to run the examples, and these will be found
-in the appropriate examples directory. </p><p>The Server-side Text MTM simulates
-with the local file system the actions normally undertaken by a message  transport
-protocol. A Text service entry maps a local file directory, from which message
-header information can be obtained  (in a similar fashion to POP3), and from
-which messages can be get and put.</p><p>A file or folder in the mapped directory
-is regarded as a remote entry,  and recorded by an entry in the message index.
-The name of the file to which a  message corresponds is stored in the index
-Description field, and the full  folder path in the index Details field. No
-message store is associated with  these remote entries.</p><p> Under a local
-folder, for example, the Inbox, each message has a message  store that contains
-a rich text stream representing the body text.</p><p>Messages can be deleted,
-moved, or copied. When a local message to  transferred to a Text service,
-the Server-side MTM constructs a new file, obtaining its name and location
-from the index fields. When the transfer is from the service to a local folder,
-the Server-side MTM creates a rich text stream and reads the file text into
-it.</p><p>The Text server DLL currently supports one MTM-specific operation, <codeph>KTXTMTMRefresh</codeph>,
-which refreshes the folder tree below a service entry.</p></section>
-<section><title>Class summary</title><p><xref href="GUID-DA714708-9A0B-3B10-AC8E-44C903365453.dita"><apiname>CMsvServerEntry TMsvId CMsvEntrySelection
-TParse </apiname></xref></p></section>
-<section><title>Move, copy, and delete implementation</title> <p>Move, copy,
-and delete operations all operate on a collection of message entries, often
-involving creating new index entries, and deleting existing ones. This common
-functionality is provided by the class <codeph>CTxtCopyMoveBase</codeph>. </p> <p>A <codeph>CTxtCopyMoveBase</codeph> instance
-is provided with an object to perform the specific operation required. The
-classes <codeph>CTxtCopyToLocalOp</codeph>, <codeph>CTxtCopyFromLocalOp</codeph>, <codeph>CTxtCopyWithinServiceOp</codeph>, <codeph>CTxtMoveToLocalOp</codeph>, <codeph>CTxtMoveFromLocalOp</codeph>, <codeph>CTxtMoveWithinServiceOp</codeph> and <codeph>CTxtDeleteOp</codeph> each
-define the functionality for a specific operation. </p> <p>Each of these classes
-is derived from <codeph>CTxtActiveOper</codeph>. The move operation classes
-are derived from their copy counterparts, and add the extra deletion after
-copying. </p> </section>
-<section><title>Service refresh implementation</title> <p>The contents of
-folders under the file system can be changed at any time outside of the application,
-by the user or some other application. In order for these changes to be visible
-in the messaging application, the Server-side MTM provides a refresh capability. </p> <p>The
-refresh capability is provided by the refresher class <codeph>CTxtRefreshMBox</codeph>.
-It ensures that the current entries accurately reflect the state of the corresponding
-file folder, adding or removing entries under the service as required. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DB1D3045-2DC5-5C50-B430-526674369DC6" xml:lang="en"><title>Server-side MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-CCF26E0B-12D7-4ECB-B213-F60D0319FAF3"><title>Example Code</title> <p>Click on the following link
+to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip</xref> </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files
+reproduced here are the main files contained in the examples directory.
+Some extra files may be needed to run the examples, and these will
+be found in the appropriate examples directory. </p><p>The Server-side
+Text MTM simulates with the local file system the actions normally
+undertaken by a message  transport protocol. A Text service entry
+maps a local file directory, from which message header information
+can be obtained  (in a similar fashion to POP3), and from which messages
+can be get and put.</p><p>A file or folder in the mapped directory
+is regarded as a remote entry,  and recorded by an entry in the message
+index. The name of the file to which a  message corresponds is stored
+in the index Description field, and the full  folder path in the index
+Details field. No message store is associated with  these remote entries.</p><p> Under a local folder, for example, the Inbox, each message has
+a message  store that contains a rich text stream representing the
+body text.</p><p>Messages can be deleted, moved, or copied. When a
+local message to  transferred to a Text service, the Server-side MTM
+constructs a new file, obtaining its name and location from the index
+fields. When the transfer is from the service to a local folder, the
+Server-side MTM creates a rich text stream and reads the file text
+into it.</p><p>The Text server DLL currently supports one MTM-specific
+operation, <codeph>KTXTMTMRefresh</codeph>, which refreshes the folder
+tree below a service entry.</p></section>
+<section id="GUID-0ED77942-8593-4823-BC09-F615474FCF96"><title>Class summary</title><ul>
+<li><p><xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref></p></li>
+<li><p><xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname> TMsvId</apiname></xref></p></li>
+<li><p><xref href="GUID-6BC8851B-D913-3CE5-B343-5163661E8AD5.dita"><apiname>CMsvEntrySelection </apiname></xref></p></li>
+<li><p><xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse </apiname></xref></p></li>
+</ul></section>
+<section id="GUID-2F100CE2-09A7-47C2-B890-993AC9C214D1"><title>Move, copy, and delete implementation</title> <p>Move,
+copy, and delete operations all operate on a collection of message
+entries, often involving creating new index entries, and deleting
+existing ones. This common functionality is provided by the class <codeph>CTxtCopyMoveBase</codeph>. </p> <p>A <codeph>CTxtCopyMoveBase</codeph> instance is provided with an object to perform the specific operation
+required. The classes <codeph>CTxtCopyToLocalOp</codeph>, <codeph>CTxtCopyFromLocalOp</codeph>, <codeph>CTxtCopyWithinServiceOp</codeph>, <codeph>CTxtMoveToLocalOp</codeph>, <codeph>CTxtMoveFromLocalOp</codeph>, <codeph>CTxtMoveWithinServiceOp</codeph> and <codeph>CTxtDeleteOp</codeph> each define the functionality for a specific operation. </p> <p>Each of these classes is derived from <codeph>CTxtActiveOper</codeph>. The move operation classes are derived from their copy counterparts,
+and add the extra deletion after copying. </p> </section>
+<section id="GUID-A9F1DBD5-046A-4B4B-A678-B8790B7E14F2"><title>Service refresh implementation</title> <p>The contents
+of folders under the file system can be changed at any time outside
+of the application, by the user or some other application. In order
+for these changes to be visible in the messaging application, the
+Server-side MTM provides a refresh capability. </p> <p>The refresh
+capability is provided by the refresher class <codeph>CTxtRefreshMBox</codeph>. It ensures that the current entries accurately reflect the state
+of the corresponding file folder, adding or removing entries under
+the service as required. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e79867_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DB571D42-03F4-50F9-974D-B905707FC5F4_d0e86579_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461294_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DB6EC285-F5DB-5A7A-AFF3-E423AD4B9F81_d0e461458_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e79595_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DB9F413A-35E2-577E-91C3-1D519835FAB4_d0e86307_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2" xml:lang="en"><title>Starting
+the connection through the destination network</title><shortdesc>After you have selected the destination network to be used, you
+can open the data connection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-FEDFCAED-E19D-411A-8A17-7B11C42AB4AE">       <p>To open
+the data connection with the selected destination network:</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-7-1-6-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-7-1-6-1-3-2-1"><cmd>Start the connection
+through the Internet destination network using the Connection Manager API.</cmd>
+</step>
+<step id="GUID-87BB9B2C-386E-40BC-B5C8-838169A85CDD"><cmd>Select the best available access point within the Internet destination
+network using the Connection Manager API.</cmd>
+<info><p>RConnection handle is returned to the network. The connection can
+now be used.</p></info>
+</step>
+</steps>
+<example><codeblock xml:space="preserve">RSocketServ ss;
+
+// Connect to ESOCK
+ss.Connect();
+
+// Open an RConnection object.  Note that you must provide an RSocketServ object
+RConnection conn;
+conn.Open( ss );
+
+// Create overrides
+TConnSnapPref prefs
+prefs.SetSnap( 4 );
+
+// Start an Outgoing Connection with overrides
+conn.Start( prefs );
+</codeblock></example>
+</taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e7089_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC37C3A9-B03F-5699-9E05-8ADD62C2FF04_d0e8364_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e125271_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DC44DCFC-8549-5CDE-B6DA-F5FD73E2D9FC_d0e131809_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e51623_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e56400_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e57178_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e64122_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e68872_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DC4E42CA-2A65-44D7-8DBE-386F60F998A0_d0e74016_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,94 +1,94 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B" xml:lang="en"><title>Drawing
-in traditional architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The application framework calls<xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> when
-a control area needs to be updated on the display. Controls may implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> or
-leave the drawing to their child controls. For more information on control
-hierarchies, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref>. The platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
-the parent control first, and then recursively for each control.</p>
-<p>Controls should override <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> to draw
-their content. The override should do nothing else and should be as fast as
-possible. For example, it is bad design to create fonts dynamically, and read
-any bitmaps or resources while drawing. A good rule of thumb is that there
-should not be trap handlers in the method override; any time-consuming functionality
-that can be done beforehand should be cached.</p>
-<p>In most cases controls are drawn on the display using the screen device
-graphics context, accessed with <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref>.
-The graphics context provides a wide set of <xref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita">GDI</xref> (Graphics
-Device Interface  - common Symbian platform graphics API) drawing primitives
-that can be used for drawing virtually anything on screen.</p>
-<p>An example of a basic override of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
-a control that is a top-level window in an application is as follows:</p>
-<codeblock id="GUID-27363E40-E10A-4399-BF1A-A48305A1DC1B" xml:space="preserve">void CMyAppView::Draw( const TRect&amp; /*aRect*/ ) const
-    {
-    // Get the standard graphics context
-    CWindowGc&amp; gc = SystemGc();
-    gc.SetPenStyle( CGraphicsContext::ENullPen );
-    gc.SetBrushColor( KRgbWhite);
-    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-
-    // Gets the control's extent
-    TRect rect( Rect());
-
-        {
-        gc.Clear( rect );
-        }
-    }
-</codeblock>
-<p>, where</p>
-<ul>
-<li><p><parmname>CWindowGc&amp; gc = SystemGc();</parmname> gets
-the graphics context that is used when drawing the control.</p></li>
-<li><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-026A1015-0D79-3A66-91BA-5FB343387EE0"><apiname>CWindowGc::SetPenStyle()</apiname></xref>, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-0A923CAA-7A89-3ED2-A844-2F4147B62FEC"><apiname>CWindowGc::SetBrushColor()</apiname></xref>,
-and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-363A9FB3-75F7-3EB7-A783-91BBAEBCE670"><apiname>CWindowGc::SetBrushStyle()</apiname></xref> are used to set the drawing
-primatives for the context</p></li>
-<li><p><xref href="GUID-101762DC-E498-3325-88AB-B0FF17DC62B6.dita"><apiname>TRect</apiname></xref> gets the size of the control rectangle</p>
-</li>
-<li><p><xref href="GUID-D22FD07E-59E0-346A-9BFA-8D109F509DB1.dita"><apiname>CWindowGc:Clear(rect)</apiname></xref> clears the control
-rectangle</p></li>
-</ul>
-<section id="GUID-F52B945E-F63A-40FC-B7EF-CBA4CFD415E8"><title>Double buffering</title>
-<p>For controls that perform intensive drawing operations, the drawing
-should be cached: a process also known as double-buffering. Here the drawing
-is done to a memory context first and then in the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method
-only the context's bitmap is passed to screen. In the Symbian platform, the
-easiest way to implement a double buffer is to create a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and
-then bind a graphics context to that  - this makes it possible to use the
-same GDI interface for drawing as the display context. The drawing is done
-to a memory bitmap buffer. Double-buffering is a common paradigm used in games,
-but can also be utilized in any application when performance of drawing controls
-is important.</p>
-<p>The following is a short example of how a double buffer is created and
-used:</p>
-<codeblock id="GUID-2FA4ADA3-E8F5-4BEE-86C4-40DE748BB91B" xml:space="preserve">iGcBmp = new (ELeave) CWsBitmap(iEikonEnv-&gt;WsSession());
-User::LeaveIfError(iGcBmp-&gt;Create(aClientRect.Size(), iEikonEnv-&gt;ScreenDevice()-&gt;DisplayMode()));
-iGcDevice = CFbsBitmapDevice::NewL(iGcBmp);
-User::LeaveIfError(iGcDevice-&gt;CreateBitmapContext(iGc));
-</codeblock>
-<p><parmname>iGcBmp</parmname> is a pointer to <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref>,
-the bitmap memory buffer, that is created with the same width and height as
-the top-level window and with the same color bit depth as the display.<parmname> iGcDevice</parmname> is
-a pointer to the <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> device class and the context <parmname>iGc</parmname> holds
-the <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> instance. <parmname>iGc</parmname> is
-then used instead of <parmname>CScreenGc</parmname>, obtained from the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref> method,
-when the control draws itself. The double-buffer drawing should be done outside
-of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method and can be called directly
-when needed. Only at the end of the off-screen drawing is the memory buffer
-flushed to the screen by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref></p>
-<codeblock id="GUID-9474C692-0E2E-4B2C-A218-C4DF99E85C31" xml:space="preserve">void CMyDrawingExample::Draw(const TRect&amp; /*aRect*/) const
-    {
-    SystemGc().BitBlt(TPoint(0, 0), iGcBmp);
-    }</codeblock>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DC59BEAD-0047-4D7A-96D1-C5E3EC4F982B" xml:lang="en"><title>Drawing
+in traditional architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The application framework calls<xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> when
+a control area needs to be updated on the display. Controls may implement <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> or
+leave the drawing to their child controls. For more information on control
+hierarchies, see <xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref>. The platform calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
+the parent control first, and then recursively for each control.</p>
+<p>Controls should override <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> to draw
+their content. The override should do nothing else and should be as fast as
+possible. For example, it is bad design to create fonts dynamically, and read
+any bitmaps or resources while drawing. A good rule of thumb is that there
+should not be trap handlers in the method override; any time-consuming functionality
+that can be done beforehand should be cached.</p>
+<p>In most cases controls are drawn on the display using the screen device
+graphics context, accessed with <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref>.
+The graphics context provides a wide set of <xref href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita">GDI</xref> (Graphics
+Device Interface  - common Symbian platform graphics API) drawing primitives
+that can be used for drawing virtually anything on screen.</p>
+<p>An example of a basic override of <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> for
+a control that is a top-level window in an application is as follows:</p>
+<codeblock id="GUID-27363E40-E10A-4399-BF1A-A48305A1DC1B" xml:space="preserve">void CMyAppView::Draw( const TRect&amp; /*aRect*/ ) const
+    {
+    // Get the standard graphics context
+    CWindowGc&amp; gc = SystemGc();
+    gc.SetPenStyle( CGraphicsContext::ENullPen );
+    gc.SetBrushColor( KRgbWhite);
+    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+
+    // Gets the control's extent
+    TRect rect( Rect());
+
+        {
+        gc.Clear( rect );
+        }
+    }
+</codeblock>
+<p>, where</p>
+<ul>
+<li><p><parmname>CWindowGc&amp; gc = SystemGc();</parmname> gets
+the graphics context that is used when drawing the control.</p></li>
+<li><p><xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-026A1015-0D79-3A66-91BA-5FB343387EE0"><apiname>CWindowGc::SetPenStyle()</apiname></xref>, <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-0A923CAA-7A89-3ED2-A844-2F4147B62FEC"><apiname>CWindowGc::SetBrushColor()</apiname></xref>,
+and <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita#GUID-0AEE5955-C530-35F1-A904-69183331B294/GUID-363A9FB3-75F7-3EB7-A783-91BBAEBCE670"><apiname>CWindowGc::SetBrushStyle()</apiname></xref> are used to set the drawing
+primatives for the context</p></li>
+<li><p><xref href="GUID-101762DC-E498-3325-88AB-B0FF17DC62B6.dita"><apiname>TRect</apiname></xref> gets the size of the control rectangle</p>
+</li>
+<li><p><xref href="GUID-D22FD07E-59E0-346A-9BFA-8D109F509DB1.dita"><apiname>CWindowGc:Clear(rect)</apiname></xref> clears the control
+rectangle</p></li>
+</ul>
+<section id="GUID-F52B945E-F63A-40FC-B7EF-CBA4CFD415E8"><title>Double buffering</title>
+<p>For controls that perform intensive drawing operations, the drawing
+should be cached: a process also known as double-buffering. Here the drawing
+is done to a memory context first and then in the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method
+only the context's bitmap is passed to screen. In the Symbian platform, the
+easiest way to implement a double buffer is to create a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and
+then bind a graphics context to that  - this makes it possible to use the
+same GDI interface for drawing as the display context. The drawing is done
+to a memory bitmap buffer. Double-buffering is a common paradigm used in games,
+but can also be utilized in any application when performance of drawing controls
+is important.</p>
+<p>The following is a short example of how a double buffer is created and
+used:</p>
+<codeblock id="GUID-2FA4ADA3-E8F5-4BEE-86C4-40DE748BB91B" xml:space="preserve">iGcBmp = new (ELeave) CWsBitmap(iEikonEnv-&gt;WsSession());
+User::LeaveIfError(iGcBmp-&gt;Create(aClientRect.Size(), iEikonEnv-&gt;ScreenDevice()-&gt;DisplayMode()));
+iGcDevice = CFbsBitmapDevice::NewL(iGcBmp);
+User::LeaveIfError(iGcDevice-&gt;CreateBitmapContext(iGc));
+</codeblock>
+<p><parmname>iGcBmp</parmname> is a pointer to <xref href="GUID-17150D76-BB82-3A4B-8B1A-8BA93CB1A9EF.dita"><apiname>CWsBitmap</apiname></xref>,
+the bitmap memory buffer, that is created with the same width and height as
+the top-level window and with the same color bit depth as the display.<parmname> iGcDevice</parmname> is
+a pointer to the <xref href="GUID-2DEFEC47-F36E-3133-A08D-55F7C2534CC0.dita"><apiname>CBitmapDevice</apiname></xref> device class and the context <parmname>iGc</parmname> holds
+the <xref href="GUID-FC746873-0570-3900-AD89-42B205FDC0D3.dita"><apiname>CBitmapContext</apiname></xref> instance. <parmname>iGc</parmname> is
+then used instead of <parmname>CScreenGc</parmname>, obtained from the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-6586DB74-AF5C-330B-9D0A-E4637396A04E"><apiname>CCoeControl::SystemGc()</apiname></xref> method,
+when the control draws itself. The double-buffer drawing should be done outside
+of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-63295719-90A0-3D53-A643-0C52BF4068A1"><apiname>CCoeControl::Draw()</apiname></xref> method and can be called directly
+when needed. Only at the end of the off-screen drawing is the memory buffer
+flushed to the screen by calling <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-9FB682AC-0209-302A-83F3-7BCB1162B998"><apiname>CCoeControl::DrawDeferred()</apiname></xref></p>
+<codeblock id="GUID-9474C692-0E2E-4B2C-A218-C4DF99E85C31" xml:space="preserve">void CMyDrawingExample::Draw(const TRect&amp; /*aRect*/) const
+    {
+    SystemGc().BitBlt(TPoint(0, 0), iGcBmp);
+    }</codeblock>
+</section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,98 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6" xml:lang="en"><title>EGL
-Collection Overview</title><shortdesc>EGL is an interface between EGL client APIs (such as OpenGL ES
-and OpenVG) and an underlying native platform window system. EGL is independent
-of definitions and concepts specific to any native window system or rendering
-API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>EGL is an open standard developed by the Khronos Group, which is a member-funded
-industry consortium. Khronos creates open standard, royalty-free APIs to help
-write and execute dynamic media on a wide variety of platforms and devices.
-For more information about EGL operations, functions, errors, versions and
-header files, see <xref href="http://www.khronos.org/egl/" scope="external">http://www.khronos.org/egl/</xref>. </p>
-<p>In this documentation the term <b>EGL client API</b> is used to mean a
-rendering API, such as OpenGL ES or OpenVG, that is a client of EGL. </p>
-<section id="GUID-D214F4FF-FB17-4427-A301-B4ADE03DE261"><title>Introduction to EGL on the Symbian platform</title> <p>EGL
-provides: </p> <ul>
-<li id="GUID-DEBBBE4F-8B61-58EF-A4FE-CFC3C63B0223"><p>Mechanisms that create
-rendering surfaces onto which EGL client APIs can draw and which they can
-share. </p> </li>
-<li id="GUID-1D0D4366-D8B7-50B1-9D5B-1C7BFAC11C94"><p>Methods that create
-and manage graphics contexts for EGL client APIs. </p> </li>
-<li id="GUID-67AC4C95-E548-5275-A151-13AE9F4AFFCB"><p>Methods that synchronize
-drawing by EGL client APIs and Symbian APIs (such as <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>). </p> </li>
-</ul> <p>One of the purposes of EGL is to provide a means to create EGL client
-API rendering contexts, and associate them with drawing surfaces. EGL defines
-three types of drawing surfaces collectively referred to as <codeph>EGLSurfaces</codeph>.
-These are: </p> <ul>
-<li id="GUID-21914FD1-9A21-536D-AD5B-09CC15B70ADA"><p> <b>Window surfaces</b>,
-which are used for on-screen rendering into windows that are provided by the
-Symbian platform (rather than EGL) .</p> </li>
-<li id="GUID-230C6E2A-FC78-57C4-8F58-DDB8684D2385"><p> <b>Pbuffer surfaces</b>,
-which are used for off screen rendering and are entirely provided by EGL. </p> </li>
-<li id="GUID-76001CBC-8E7C-552A-AAC2-76E159FB0FF4"><p> <b>Pixmap surfaces</b>,
-which are used for off screen rendering into pixmap buffers that are provided
-by the Symbian platform (rather than EGL). </p> </li>
-</ul> <p>Some key points to note include: </p> <ul>
-<li id="GUID-6CD11A9A-FF10-5939-9C38-F443397DDD01"><p>EGL objects and their
-related context state cannot be used outside of the address space in which
-they are created. </p> </li>
-<li id="GUID-E8A666F7-1B08-5F18-B117-29B6E35D31C0"><p>EGL enables sharing
-of certain types of context state among contexts existing in a single address
-space. </p> </li>
-</ul> <p><b>Thread-safety </b> </p> <p>Currently EGL and its client APIs are
-only guaranteed to work correctly on the Symbian platform when they are within
-a single thread. EGL guarantees sequential ordering within a command stream
-for each of the EGL client APIs. However, there is no guarantee of sequential
-ordering between EGL client APIs and Symbian APIs which render into the same
-surface. </p> <p>EGL client API commands may be asynchronous, in order to
-prevent impairing the interactive use of the windowing system by the user.
-For example, otherwise rendering a large texture mapped polygon on a system
-with no graphics hardware, or drawing a large OpenGL ES vertex array, could
-prevent a user from invoking a menu soon enough to be usable. </p> <p>Synchronization
-depends on the client—it can be maintained at moderate cost with the careful
-use of commands such as <codeph>glFinish</codeph>, <codeph>vgFinish</codeph>, <codeph>eglWaitClient</codeph>,
-and <codeph>eglWaitNative</codeph>, as well as synchronization commands present
-in the Symbian APIs. The EGL client API and Symbian API rendering can be done
-in parallel if the client does not prevent it with explicit synchronization
-calls. Some performance degradation may be experienced when there is unnecessary
-switching between EGL client APIs and Symbian API rendering. </p> </section>
-<section id="GUID-483A8427-D740-477D-9357-957C755E053D"><title>Architectural relationships</title> <p>The following diagram
-shows the key EGL relationships and dependencies within the Symbian platform.
-On the Symbian platform, OpenGL ES, OpenVG and EGL all have a component (shown
-in blue) that declares the interface, and all require an implementation that
-implements that interface (shown in green). </p> <fig id="GUID-BF9F0E84-F1DA-5D9D-9D4B-14AA55C7DA07">
-<title>              Key EGL relationships and dependencies            </title>
-<image href="GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e210493_href.png" placement="inline"/>
-</fig> <p>The <xref href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita">EGL Interface
-component</xref> provides a consistent interface to EGL on the Symbian platform,
-enabling cross-device compatibility. The component includes the Khronos-released
-header files (which incorporate some minor changes, such as to the comments).
-It also provides some Symbian-specific header files and some other files (such
-as LIB, DEF and MMP files) and UIDs. It does not provide any implementations
-of the APIs. </p> <p>The EGL Interface component includes the header files
-for EGL 1.2, 1.3 and 1.4 (which is used by default). The main advantage of
-EGL 1.4 over previous versions is the introduction of a <b>preserve buffer</b> flag.
-When supported by the implementation, an EGL window surface can have its color
-buffer preserved from one frame to the next. This means that the client does
-not need to send the entire drawing instructions for each frame. Instead the
-client can simply send the drawing operations for what changes in each frame
-compared to the previous one. This can reduce the memory footprint and the
-CPU overhead when an EGL client API renders successive frames. </p> </section>
-</conbody><related-links>
-<link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL     
-           Collection</linktext></link>
-<link href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"><linktext>OpenVG Collection</linktext>
-</link>
-<link href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita"><linktext>OpenGLES
-Collection</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6" xml:lang="en"><title>EGL Collection
+Overview</title><shortdesc>EGL is an interface between EGL client APIs (such as OpenGL ES
+and OpenVG) and an underlying native platform window system. EGL is independent
+of definitions and concepts specific to any native window system or rendering
+API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>EGL is an open standard developed by the Khronos Group, which is a member-funded
+industry consortium. Khronos creates open standard, royalty-free APIs to help
+write and execute dynamic media on a wide variety of platforms and devices.
+For more information about EGL operations, functions, errors, versions and
+header files, see <xref href="http://www.khronos.org/egl/" scope="external">http://www.khronos.org/egl/</xref>. </p>
+<p>In this documentation the term <b>EGL client API</b> is used to mean a
+rendering API, such as OpenGL ES or OpenVG, that is a client of EGL. </p>
+<section id="GUID-D214F4FF-FB17-4427-A301-B4ADE03DE261"><title>Introduction
+to EGL on the Symbian platform</title> <p>EGL provides: </p> <ul>
+<li id="GUID-DEBBBE4F-8B61-58EF-A4FE-CFC3C63B0223"><p>Mechanisms that create
+rendering surfaces onto which EGL client APIs can draw and which they can
+share. </p> </li>
+<li id="GUID-1D0D4366-D8B7-50B1-9D5B-1C7BFAC11C94"><p>Methods that create
+and manage graphics contexts for EGL client APIs. </p> </li>
+<li id="GUID-67AC4C95-E548-5275-A151-13AE9F4AFFCB"><p>Methods that synchronize
+drawing by EGL client APIs and Symbian APIs (such as <xref href="GUID-0AEE5955-C530-35F1-A904-69183331B294.dita"><apiname>CWindowGc</apiname></xref>). </p> </li>
+</ul> <p>One of the purposes of EGL is to provide a means to create EGL client
+API rendering contexts, and associate them with drawing surfaces. EGL defines
+three types of drawing surfaces collectively referred to as <codeph>EGLSurfaces</codeph>.
+These are: </p> <ul>
+<li id="GUID-21914FD1-9A21-536D-AD5B-09CC15B70ADA"><p> <b>Window surfaces</b>,
+which are used for on-screen rendering into windows that are provided by the
+Symbian platform (rather than EGL) .</p> </li>
+<li id="GUID-230C6E2A-FC78-57C4-8F58-DDB8684D2385"><p> <b>Pbuffer surfaces</b>,
+which are used for off screen rendering and are entirely provided by EGL. </p> </li>
+<li id="GUID-76001CBC-8E7C-552A-AAC2-76E159FB0FF4"><p> <b>Pixmap surfaces</b>,
+which are used for off screen rendering into pixmap buffers that are provided
+by the Symbian platform (rather than EGL). </p> </li>
+</ul> <p>Some key points to note include: </p> <ul>
+<li id="GUID-6CD11A9A-FF10-5939-9C38-F443397DDD01"><p>EGL objects and their
+related context state cannot be used outside of the address space in which
+they are created. </p> </li>
+<li id="GUID-E8A666F7-1B08-5F18-B117-29B6E35D31C0"><p>EGL enables sharing
+of certain types of context state among contexts existing in a single address
+space. </p> </li>
+</ul> <p><b>Thread-safety </b> </p> <p>Currently EGL and its client APIs are
+only guaranteed to work correctly on the Symbian platform when they are within
+a single thread. EGL guarantees sequential ordering within a command stream
+for each of the EGL client APIs. However, there is no guarantee of sequential
+ordering between EGL client APIs and Symbian APIs which render into the same
+surface. </p> <p>EGL client API commands may be asynchronous, in order to
+prevent impairing the interactive use of the windowing system by the user.
+For example, otherwise rendering a large texture mapped polygon on a system
+with no graphics hardware, or drawing a large OpenGL ES vertex array, could
+prevent a user from invoking a menu soon enough to be usable. </p> <p>Synchronization
+depends on the client—it can be maintained at moderate cost with the careful
+use of commands such as <codeph>glFinish</codeph>, <codeph>vgFinish</codeph>, <codeph>eglWaitClient</codeph>,
+and <codeph>eglWaitNative</codeph>, as well as synchronization commands present
+in the Symbian APIs. The EGL client API and Symbian API rendering can be done
+in parallel if the client does not prevent it with explicit synchronization
+calls. Some performance degradation may be experienced when there is unnecessary
+switching between EGL client APIs and Symbian API rendering. </p> </section>
+<section id="GUID-483A8427-D740-477D-9357-957C755E053D"><title>Architectural
+relationships</title> <p>The following diagram shows the key EGL relationships
+and dependencies within the Symbian platform. On the Symbian platform, OpenGL
+ES, OpenVG and EGL all have a component (shown in blue) that declares the
+interface, and all require an implementation that implements that interface
+(shown in green). </p> <fig id="GUID-BF9F0E84-F1DA-5D9D-9D4B-14AA55C7DA07">
+<title>              Key EGL relationships and dependencies            </title>
+<image href="GUID-CBF1D046-92D4-5936-9946-71BB8FC51AB2_d0e205483_href.png" placement="inline"/>
+</fig> <p>The <xref href="GUID-D252E75C-C8CA-5C51-8DA3-95B937A1295C.dita">EGL Interface
+component</xref> provides a consistent interface to EGL on the Symbian platform,
+enabling cross-device compatibility. The component includes the Khronos-released
+header files (which incorporate some minor changes, such as to the comments).
+It also provides some Symbian-specific header files and some other files (such
+as LIB, DEF and MMP files) and UIDs. It does not provide any implementations
+of the APIs. </p> <p>Symbian^3 introduces <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>,
+the new graphics architecture. This has a composition engine, which enables
+composition surfaces to be arranged in layers and to be composed together
+to produce the final output on the display. All native Symbian drawing (such
+as the application UI) is rendered to a special composition surface called
+the UI surface, which is the topmost layer and can be semi-transparent. </p> <p>In
+a ScreenPlay environment, EGL window surfaces are implemented as composition
+surfaces. This means that it is possible to use the native Symbian drawing
+APIs (<codeph>CWindowGc</codeph>) to create semi-transparent UI content over
+the EGL window surface onto which the OpenVG and OpenGL ES content is rendered.
+ See the <xref href="GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita">Coverflow;
+using ScreenPlay</xref> application for an example of this.</p> <p>In the
+non-ScreenPlay environment, it is not possible to use the native Symbian APIs
+to create semi-transparent UI content over the EGL window surface. A different
+solution must therefore be used; for example, using Khronos rendering APIs
+to create the UI content and direct it onto the EGL window surface or using
+the Symbian APIs to create opaque child windows.</p> <p>The EGL Interface
+component includes the header files for EGL 1.2, 1.3 and 1.4 (which is used
+by default). The main advantage of EGL 1.4 over previous versions is the introduction
+of a <b>preserve buffer</b> flag. When supported by the implementation, an
+EGL window surface can have its color buffer preserved from one frame to the
+next. This means that the client does not need to send the entire drawing
+instructions for each frame. Instead the client can simply send the drawing
+operations for what changes in each frame compared to the previous one. This
+can reduce the memory footprint and the CPU overhead when an EGL client API
+renders successive frames. </p> </section>
+</conbody><related-links>
+<link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL     
+           Collection</linktext></link>
+<link href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"><linktext>OpenVG Collection</linktext>
+</link>
+<link href="GUID-AB93B01C-B6C2-5B24-ADEF-95706584D625.dita"><linktext>OpenGLES
+Collection</linktext></link>
+<link href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita"><linktext>Graphics
+Composition</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e287427_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DCCA3BD3-582A-5C71-A104-D922FFE3C680_d0e291060_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e3450_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e4725_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398653_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD04585F-3D60-5CB2-8975-AE602B75740B_d0e398815_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD0F8AFB-F96C-4EAC-96DE-7D5C0597B574-master.png has changed
Binary file Symbian3/SDK/Source/GUID-DD0F8AFB-F96C-4EAC-96DE-7D5C0597B574_d0e315975_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e184514_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD22D66C-C303-5432-9C24-71F26190FCA0_d0e191110_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD263BCA-B660-49A5-BB65-8C45035002BD-master.png has changed
Binary file Symbian3/SDK/Source/GUID-DD263BCA-B660-49A5-BB65-8C45035002BD_d0e81773_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DD3783B2-B8ED-4CD4-AAF6-75EC8B53B8EF" xml:lang="en"><title>Symbian
-device user experience for non-touch devices</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This section presents an overview of the user experience in Symbian devices
-without touch. For information on interaction in devices supporting touch,
-see <xref href="GUID-0D093C3D-4D85-455E-B685-064A9B25B1FE.dita">Touch
-UI user experience</xref>.</p>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e306771_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e313165_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e19147_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e49491_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e55049_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e357582_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DD764F2C-365A-5A5C-9412-4AF2EDB16924_d0e363662_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-DD77AA04-D0AB-4BEB-900F-B3BE50AC0B7F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-DD77AA04-D0AB-4BEB-900F-B3BE50AC0B7F" xml:lang="en"><title>Opening
+a Connection based on User Selection</title><shortdesc>Extended Connection Preferences API can be used by applications
+to open a connection based on user selection.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-DA2ED45B-65AC-4C82-B854-67284173FAF9-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-1">       <p>When an
+application chooses to establish a connection based on user selection,
+Connection selection dialog needs to be enabled. Only the SNAPs and IAPs matching
+with bearer set are displayed for selection. </p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-1"><cmd>Connect to<xref href="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80.dita"> socket server </xref>.</cmd>
+<info> <codeblock xml:space="preserve">RSocketServ ss;
+ss.Connect();       </codeblock>                  </info>
+</step>
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-2"><cmd> Open a <xref href="GUID-BD8446C5-3ADE-59A6-A13A-A5482D6FC56F.dita"> RConnection </xref> object.</cmd>
+<info> <codeblock xml:space="preserve">RConnection conn;
+conn.Open( ss );</codeblock>                  </info>
+</step>
+<step id="GUID-DC3652D1-7EDB-4582-8B6B-117E248A1F70-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-3"><cmd>Create a connection
+preference list and extended connection preferences object.</cmd>
+<info> <codeblock xml:space="preserve">TConnPrefList prefList;
+TExtendedConnPref preferences;    </codeblock>                  </info>
+</step>
+<step id="GUID-3D1BD3F8-6244-45E9-AF47-C19E5667092C-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-4"><cmd>Enable the Connection
+selection dialog to accept user queries using <xref href="GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A.dita#GUID-B78E8AC0-CDC8-3DEC-AF3C-98C8994DA34A/GUID-9AD4E0DD-93D7-3DC7-9916-7FBC275A08B7"><apiname>TExtendedConnPref::SetConnSelectionDialog()</apiname></xref>.</cmd>
+<info><codeblock xml:space="preserve">preferences.SetConnSelectionDialog( ETrue );</codeblock></info>
+</step>
+<step id="GUID-9DE0CAE0-8F0A-4197-9FC1-B045C32A817F-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-5"><cmd>Append extended
+connection preferences into connection preference list. </cmd>
+<info><codeblock xml:space="preserve">prefList.AppendL( &amp;preferences );</codeblock></info>
+</step>
+<step id="GUID-E492622A-4410-4F2D-A4DC-C0D8A3B33F99-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-2-6"><cmd>Start a connection
+with connection preferences.  </cmd>
+<info><codeblock xml:space="preserve">conn.Start( prefList );</codeblock></info>
+</step>
+</steps>
+<result id="GUID-3B2081B8-6F9D-40C1-8407-0F0EB43790B5-GENID-1-10-1-14-1-1-4-1-1-5-1-1-6-1-3-3">       <p>The application
+is connected to the SNAP or IAP selected by the user.</p>     </result>
+</taskbody><related-links>
+<link href="GUID-3490A064-8421-4ABB-9E93-99A5565CF4D7.dita"><linktext>Additional
+Connection Preferences</linktext></link>
+</related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB" xml:lang="en"><title>Getting
-a Nearest Equivalent Language</title><abstract><p>In this example, the system language is <codeph>ELangCanadianEnglish</codeph> and
-there is no exact match of the resource file on the system. The application
-calls <xref href="GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930.dita#GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930/GUID-EA0690FF-419D-353C-BBED-95000E21F843"><apiname>BaflUtils::NearestLanguageFileV2()</apiname></xref> to get the closest
-match. There are three available resource files: </p> <ul>
-<li id="GUID-3CBF0BF9-04E1-5211-B2CF-53B40FEF7FF4"><p> <filepath>c:\FileMenu.rsc</filepath> is
-the language-neutral resource file. </p> </li>
-<li id="GUID-406A6D60-19B9-5233-BE6F-28EF10E70C1F"><p> <filepath>c:\FileMenu.r01</filepath> is
-for <codeph>ELangEnglish</codeph>. </p> </li>
-<li id="GUID-22C5F02D-2D36-5C51-BDFC-498BDB717059"><p> <filepath>c:\FileMenu.r10</filepath> is
-for <codeph>ELangAmerican</codeph>. </p> </li>
-</ul> </abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-11-1-1-8-1-5-1-4-1-5-1-8-1-5-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-11-1-1-8-1-5-1-4-1-5-1-8-1-5-1-3-1-1"><cmd/>
-<info><p>In the application, define a string with the neutral-language resource
-file name. </p> <codeblock id="GUID-438C8582-247E-5109-9E3B-ABC38818E6E2" xml:space="preserve">_LIT(KRscFilename, "C:\\FileMenu.rsc"); </codeblock></info>
-</step>
-<step id="GUID-9E49C0AD-8007-461A-A019-AC792ACA9997"><cmd/>
-<info><p>Create a session with the File Server to search the file system for
-available resource files.  <codeblock id="GUID-D1DD087E-ECE9-5BD6-984F-B427AA96E838" xml:space="preserve">RFs fileServerSession;
-CleanupClosePushL(fileServerSession);
-User::LeaveIfError(fileServerSession.Connect());</codeblock></p></info>
-</step>
-<step id="GUID-3D9B43BD-E641-441E-8795-0CEF53BD231C"><cmd/>
-<info><p>Construct a buffer to save a resource file name. The buffer takes
-the neutral-language resource file name as a input parameter to <xref href="GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930.dita#GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930/GUID-EA0690FF-419D-353C-BBED-95000E21F843"><apiname>BaflUtils::NearestLanguageFileV2()</apiname></xref>.
-It will be updated with a new value after the call.  <codeblock id="GUID-4CB6F88B-E26B-54C6-919A-BB812913947D" xml:space="preserve">TBuf&lt;256&gt; filename;
-filename.Copy(KRscFilename);</codeblock></p></info>
-</step>
-<step id="GUID-C785E5AD-EB3A-4A76-9D27-E564F5CB970D"><cmd/>
-<info><p>Define a <xref href="GUID-698538DF-DCDC-347B-BD32-DD9EB896BAFB.dita"><apiname>TLanguage</apiname></xref> as a return parameter for the
-nearest equivalent language.  <codeblock id="GUID-5D7ABE60-B9D7-5A33-A219-A6144C539817" xml:space="preserve">TLanguage lang=ELangNone;</codeblock></p></info>
-</step>
-<step id="GUID-C3A49C71-5071-40DA-91D8-012CD47D3BD8"><cmd/>
-<info><p>Get the nearest language.  <codeblock id="GUID-B9F41C54-782A-5650-AAD9-EB3291B6E6BA" xml:space="preserve">BaflUtils::NearestLanguageFileV2(fileServerSession, filename, lang);
-...</codeblock></p></info>
-</step>
-<step id="GUID-C8A8A118-B7F8-4F6D-AD9A-33FBD61D9C33"><cmd/>
-<info><p>Close the session with the File Server.  <codeblock id="GUID-DA7D701D-2BA6-536C-B4A2-3FDCA5DD23C3" xml:space="preserve">CleanupStack::PopAndDestroy (&amp;fileServerSession);</codeblock></p></info>
-</step>
-</steps>
-<result>       <p> The <codeph>filename</codeph> parameter is updated as <filepath>"c:\\FileMenu.r10"</filepath> which
-is the closest resource file for <codeph>ELangCanadianEnglish</codeph>. The <codeph>lang</codeph> parameter
-is returned as <codeph>ELangAmerican</codeph> (value 10) which is the nearest
-equivalent language. </p>     </result>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-DDA0ECF7-BC92-4AFB-998F-5FDD300655FB" xml:lang="en"><title>Getting
+a Nearest Equivalent Language</title><abstract><p>In this example, the system language is <codeph>ELangCanadianEnglish</codeph> and
+there is no exact match of the resource file on the system. The application
+calls <xref href="GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930.dita#GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930/GUID-EA0690FF-419D-353C-BBED-95000E21F843"><apiname>BaflUtils::NearestLanguageFileV2()</apiname></xref> to get the closest
+match. There are three available resource files: </p> <ul>
+<li id="GUID-3CBF0BF9-04E1-5211-B2CF-53B40FEF7FF4"><p> <filepath>c:\FileMenu.rsc</filepath> is
+the language-neutral resource file. </p> </li>
+<li id="GUID-406A6D60-19B9-5233-BE6F-28EF10E70C1F"><p> <filepath>c:\FileMenu.r01</filepath> is
+for <codeph>ELangEnglish</codeph>. </p> </li>
+<li id="GUID-22C5F02D-2D36-5C51-BDFC-498BDB717059"><p> <filepath>c:\FileMenu.r10</filepath> is
+for <codeph>ELangAmerican</codeph>. </p> </li>
+</ul> </abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-11-1-1-8-1-5-1-4-1-5-1-8-1-5-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-11-1-1-8-1-5-1-4-1-5-1-8-1-5-1-3-1-1"><cmd/>
+<info><p>In the application, define a string with the neutral-language resource
+file name. </p> <codeblock id="GUID-438C8582-247E-5109-9E3B-ABC38818E6E2" xml:space="preserve">_LIT(KRscFilename, "C:\\FileMenu.rsc"); </codeblock></info>
+</step>
+<step id="GUID-9E49C0AD-8007-461A-A019-AC792ACA9997"><cmd/>
+<info><p>Create a session with the File Server to search the file system for
+available resource files.  <codeblock id="GUID-D1DD087E-ECE9-5BD6-984F-B427AA96E838" xml:space="preserve">RFs fileServerSession;
+CleanupClosePushL(fileServerSession);
+User::LeaveIfError(fileServerSession.Connect());</codeblock></p></info>
+</step>
+<step id="GUID-3D9B43BD-E641-441E-8795-0CEF53BD231C"><cmd/>
+<info><p>Construct a buffer to save a resource file name. The buffer takes
+the neutral-language resource file name as a input parameter to <xref href="GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930.dita#GUID-5F9CAA3E-D8BF-3488-9797-3B9FB4452930/GUID-EA0690FF-419D-353C-BBED-95000E21F843"><apiname>BaflUtils::NearestLanguageFileV2()</apiname></xref>.
+It will be updated with a new value after the call.  <codeblock id="GUID-4CB6F88B-E26B-54C6-919A-BB812913947D" xml:space="preserve">TBuf&lt;256&gt; filename;
+filename.Copy(KRscFilename);</codeblock></p></info>
+</step>
+<step id="GUID-C785E5AD-EB3A-4A76-9D27-E564F5CB970D"><cmd/>
+<info><p>Define a <xref href="GUID-698538DF-DCDC-347B-BD32-DD9EB896BAFB.dita"><apiname>TLanguage</apiname></xref> as a return parameter for the
+nearest equivalent language.  <codeblock id="GUID-5D7ABE60-B9D7-5A33-A219-A6144C539817" xml:space="preserve">TLanguage lang=ELangNone;</codeblock></p></info>
+</step>
+<step id="GUID-C3A49C71-5071-40DA-91D8-012CD47D3BD8"><cmd/>
+<info><p>Get the nearest language.  <codeblock id="GUID-B9F41C54-782A-5650-AAD9-EB3291B6E6BA" xml:space="preserve">BaflUtils::NearestLanguageFileV2(fileServerSession, filename, lang);
+...</codeblock></p></info>
+</step>
+<step id="GUID-C8A8A118-B7F8-4F6D-AD9A-33FBD61D9C33"><cmd/>
+<info><p>Close the session with the File Server.  <codeblock id="GUID-DA7D701D-2BA6-536C-B4A2-3FDCA5DD23C3" xml:space="preserve">CleanupStack::PopAndDestroy (&amp;fileServerSession);</codeblock></p></info>
+</step>
+</steps>
+<result>       <p> The <codeph>filename</codeph> parameter is updated as <filepath>"c:\\FileMenu.r10"</filepath> which
+is the closest resource file for <codeph>ELangCanadianEnglish</codeph>. The <codeph>lang</codeph> parameter
+is returned as <codeph>ELangAmerican</codeph> (value 10) which is the nearest
+equivalent language. </p>     </result>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e203628_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DE0E5230-A422-5859-A8DF-5E51AAA9B23A_d0e208636_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e322882_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e329039_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e354645_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DE5FC074-75C1-5833-83B2-D25396F52732_d0e360725_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902" xml:lang="en"><title>PAN
-Profile Overview</title><shortdesc>The Bluetooth PAN Profile API supports standard IP-based network
-services deployed over the Bluetooth transport layer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-0066861F-2219-55ED-8BCA-9E7FDB7B3B68"><title>Purpose</title> <p>The
-Personal Area Network (PAN) profile is designed to make a Bluetooth network
-simulate an ethernet, from an application's perspective. Symbian platform
-supports only one active PAN at a time. Each remote device that connects to
-the PAN device for networking purposes will be merged into the same active
-PAN. </p> <p>Symbian platform provides support for a PAN agent to assume the
-role of PANU (User), PAN-GN (Group ad hoc Network) or PAN-NAP (Network Access
-Point). </p> <p>The Symbian PAN implementation is integrated into the Symbian
-networking framework enabling IP applications to run on a Bluetooth network. </p> </section>
-<section id="GUID-802A6EBB-F92C-4333-858C-2AFBEC1952E3"><title>Required background</title> <p>You need to be familiar with
-the <xref href="http://www.bluetooth.com/NR/rdonlyres/279DC460-295E-42ED-8952-61B723620884/984/PAN_SPEC_V10.pdf" scope="external">PAN Profile specification</xref>. </p> </section>
-<section id="GUID-55A48DCA-3D08-58F7-8243-BD7D9FC03987"><title>Key concepts
-and terms</title> <dl>
-<dlentry>
-<dt>Personal Area Network (PAN)</dt>
-<dd><p>A PAN is an ad-hoc network of devices communicating on a standard network
-configuration, over a Bluetooth radio connection. A PAN may have anywhere
-from 2 to 8 participating member devices. </p> <p>A PAN is not the same as
-a piconet. Where a piconet is any ad-hoc networking of devices over a Bluetooth
-connection for the purposes of sharing data or services, like when you pair
-your phone to your Bluetooth hands-free kit, a PAN deals specifically with
-networking resources. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>PAN Profile</dt>
-<dd><p>The Bluetooth specification identifies several profiles including the
-Bluetooth Personal Area Networking (PAN) profile. The PAN profile simplifies
-the now deprecated Bluetooth LAN Access and Dial-up Networking profiles by
-reducing the number of layers in a network Bluetooth connection. </p> <p>The
-PAN profile identifies certain configuration and setup details of a participant
-of the network, including the PAN host. If a device wants to join a PAN it
-must support and be able to be configured according to the requirements of
-the profile in use. For more general information about Bluetooth profiles
-see <xref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita#GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7/GUID-D7338D15-E269-54A5-B4E1-D5F0AACA9F32">Introduction
-to Bluetooth Profiles</xref>. </p> </dd>
-</dlentry>
-<dlentry>
-<dt>PAN profile roles</dt>
-<dd><p>Typical PAN profile roles include the following: </p> <ul>
-<li id="GUID-DA4229AD-A8CA-57A8-99D6-4123B2D37668"><p>PANU </p> </li>
-<li id="GUID-0E79426A-FA34-512D-BF93-6007D423FD04"><p>PAN-GN </p> </li>
-<li id="GUID-E616B1D1-666D-5B34-8DF6-3534BBF63E02"><p>PAN-NAP </p> </li>
-</ul> <p>PANU (User) acts as a client member of a PAN-GN (Group ad hoc Network)
-or a PAN-NAP (Network Access Point). Any device in either the PAN-GN or the
-PAN-NAP role acts as a server. </p> </dd>
-</dlentry>
-</dl> </section>
-<section id="GUID-A0BFEBD0-C828-56E2-94FA-FE0C0AF3EB84"><title>PAN Roles</title> <p>The
-PAN Profile roles are described below: </p> <p><b>PANU </b> </p> <p>A
-Bluetooth enabled device seeking entry into a network or participating in
-a peer-to-peer (one on one) connection assumes the PANU role, thus becoming
-a client member of the piconet. </p> <fig id="GUID-985136FB-9E35-5DD4-99A6-AE7D8FDDF21C">
-<title>                 PANU to PANU connection               </title>
-<image href="GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e397002_href.jpg" placement="inline"/>
-</fig> <p><b>PAN-GN</b> </p> <p>A
-PAN-GN device assumes the role of a forwarding node or host and the attached
-PANU devices act as clients, networking up to a maximum of seven PANUs. The
-wireless network is formed without the need of additional hardware like a
-hub or router as in the case of a conventional cabled network. </p> <p>Group
-Ad-hoc Network (GN) is a temporary, ad hoc network of devices in proximity
-for sharing information and services. It is called ad hoc because of its on-the-fly
-or transient nature and can include up to eight (including the host) available
-Bluetooth-enabled devices in the immediate vicinity, that are willing to participate. </p> <p>The
-device that initiates the network - in this case the PAN-GN - becomes the
-host or controller. Correspondence in a PAN between the clients is routed
-through the PAN-GN device (host) in both one-to-one and one-to-many cases. </p> <p><b>PAN-NAP</b> </p> <p>A PAN-NAP device plays the role of a proxy, bridge,
-or a router between an existing network say a LAN or the Internet and Bluetooth-enabled
-devices. The PAN-NAP device takes up to seven active wireless clients. The
-NAP device acts as a bridge between PANU devices or bluetooth networks and
-other networks for routing ethernet packets. The Symbian platform PAN-NAP
-role allows only a single PANU client access to the uplink for the external
-network. </p> <fig id="GUID-6EC523C3-FD92-530E-A8F4-F19AB82419A0">
-<title>                 PAN-NAP, bridging networks               </title>
-<image href="GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e397032_href.jpg" placement="inline"/>
-</fig> <p>The following image shows a Bluetooth-enabled laptop accessing the
-Internet through a mobile handset that is acting as a PAN-NAP device. The
-Bluetooth handset may provide the uplink via GPRS, WIFI, dial-up, or in some
-other way. </p> <p>For more information about please see the <xref href="GUID-0DBB2379-6FCB-5D1D-AE5A-2DC7C498F479.dita">PAN
-NAP Role Guide</xref>. </p> </section>
-<section id="GUID-238F0831-514C-50DA-92D9-E2009580DA40"><title>Architecture</title> <p>The
-PAN Profile specification fits in between the application and the hardware
-abstraction layers. It is connected to and accessed through the Comms-Infras
-socket by the application. </p> <p>Initially, the connection preferences are
-set in CommDB through the code. The Bluetooth stack is then initialized. An <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> instance
-are created as part of initiating an ESock session and the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> object
-opens the connection through the <codeph>RSocketServ</codeph> instance. <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-28A35F19-1B05-3922-8E80-36F00DF3DB65"><apiname>RConnection::Control()</apiname></xref> allows
-configuration of certain aspects of the PAN, for instance adding and deleting
-devices to/from the PAN. </p> <p>Intact ethernet payloads are transported
-with the BNEP (Bluetooth Network Encapsulation Protocol) underneath. The PAN
-profile interacts with the Bluetooth BB (baseband) and conveys the various
-roles that PAN network nodes would play. </p> </section>
-<section id="GUID-4640FF39-2C8A-4241-B8EA-BF68CC7F1ABF"><title>Typical uses</title> <p>The following tutorials have been
-provided to help give licensee developers guidance when writing applications
-that make use of the PAN profile. </p> <ul>
-<li id="GUID-747AB1CA-FD49-5451-86A3-49317DCDF951"><p> <xref href="GUID-91C4F00B-E241-57DC-8520-8C16A302C983.dita">Creating
-a Personal Area Network</xref>  </p> </li>
-<li id="GUID-25FA6A6C-1C7B-5BD9-AB67-E8DBFF438AA1"><p> <xref href="GUID-685AD682-10DC-553B-9C3A-04D0376138C4.dita">Adding
-a device to the PAN</xref>  </p> </li>
-<li id="GUID-2C74ECA0-469C-5701-AE89-D3BD9DA28957"><p> <xref href="GUID-197648C4-A42C-5769-82B7-F8BA510631D9.dita">Removing
-a device from the PAN</xref>  </p> </li>
-<li id="GUID-5E2ACA5F-84AD-5750-A550-E834E221C60E"><p> <xref href="GUID-50CDF6E0-C352-5771-8686-B551267C6BE6.dita">Closing
-the PAN</xref>  </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DEB6E162-B2AA-5DF6-B750-E833C7DE4902" xml:lang="en"><title>PAN
+Profile Overview</title><shortdesc>The Bluetooth PAN Profile API supports standard IP-based network
+services deployed over the Bluetooth transport layer. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-0066861F-2219-55ED-8BCA-9E7FDB7B3B68"><title>Purpose</title> <p>The
+Personal Area Network (PAN) profile is designed to make a Bluetooth network
+simulate an ethernet, from an application's perspective. Symbian platform
+supports only one active PAN at a time. Each remote device that connects to
+the PAN device for networking purposes will be merged into the same active
+PAN. </p> <p>Symbian platform provides support for a PAN agent to assume the
+role of PANU (User), PAN-GN (Group ad hoc Network) or PAN-NAP (Network Access
+Point). </p> <p>The Symbian PAN implementation is integrated into the Symbian
+networking framework enabling IP applications to run on a Bluetooth network. </p> </section>
+<section id="GUID-802A6EBB-F92C-4333-858C-2AFBEC1952E3"><title>Required background</title> <p>You need to be familiar with
+the <xref href="http://www.bluetooth.com/NR/rdonlyres/279DC460-295E-42ED-8952-61B723620884/984/PAN_SPEC_V10.pdf" scope="external">PAN Profile specification</xref>. </p> </section>
+<section id="GUID-55A48DCA-3D08-58F7-8243-BD7D9FC03987"><title>Key concepts
+and terms</title> <dl>
+<dlentry>
+<dt>Personal Area Network (PAN)</dt>
+<dd><p>A PAN is an ad-hoc network of devices communicating on a standard network
+configuration, over a Bluetooth radio connection. A PAN may have anywhere
+from 2 to 8 participating member devices. </p> <p>A PAN is not the same as
+a piconet. Where a piconet is any ad-hoc networking of devices over a Bluetooth
+connection for the purposes of sharing data or services, like when you pair
+your phone to your Bluetooth hands-free kit, a PAN deals specifically with
+networking resources. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>PAN Profile</dt>
+<dd><p>The Bluetooth specification identifies several profiles including the
+Bluetooth Personal Area Networking (PAN) profile. The PAN profile simplifies
+the now deprecated Bluetooth LAN Access and Dial-up Networking profiles by
+reducing the number of layers in a network Bluetooth connection. </p> <p>The
+PAN profile identifies certain configuration and setup details of a participant
+of the network, including the PAN host. If a device wants to join a PAN it
+must support and be able to be configured according to the requirements of
+the profile in use. For more general information about Bluetooth profiles
+see <xref href="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita#GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7/GUID-D7338D15-E269-54A5-B4E1-D5F0AACA9F32">Introduction
+to Bluetooth Profiles</xref>. </p> </dd>
+</dlentry>
+<dlentry>
+<dt>PAN profile roles</dt>
+<dd><p>Typical PAN profile roles include the following: </p> <ul>
+<li id="GUID-DA4229AD-A8CA-57A8-99D6-4123B2D37668"><p>PANU </p> </li>
+<li id="GUID-0E79426A-FA34-512D-BF93-6007D423FD04"><p>PAN-GN </p> </li>
+<li id="GUID-E616B1D1-666D-5B34-8DF6-3534BBF63E02"><p>PAN-NAP </p> </li>
+</ul> <p>PANU (User) acts as a client member of a PAN-GN (Group ad hoc Network)
+or a PAN-NAP (Network Access Point). Any device in either the PAN-GN or the
+PAN-NAP role acts as a server. </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-A0BFEBD0-C828-56E2-94FA-FE0C0AF3EB84"><title>PAN Roles</title> <p>The
+PAN Profile roles are described below: </p> <p><b>PANU </b> </p> <p>A
+Bluetooth enabled device seeking entry into a network or participating in
+a peer-to-peer (one on one) connection assumes the PANU role, thus becoming
+a client member of the piconet. </p> <fig id="GUID-985136FB-9E35-5DD4-99A6-AE7D8FDDF21C">
+<title>                 PANU to PANU connection               </title>
+<image href="GUID-C193535D-8756-5A2C-BD3A-280F7DDAF73E_d0e396840_href.jpg" placement="inline"/>
+</fig> <p><b>PAN-GN</b> </p> <p>A
+PAN-GN device assumes the role of a forwarding node or host and the attached
+PANU devices act as clients, networking up to a maximum of seven PANUs. The
+wireless network is formed without the need of additional hardware like a
+hub or router as in the case of a conventional cabled network. </p> <p>Group
+Ad-hoc Network (GN) is a temporary, ad hoc network of devices in proximity
+for sharing information and services. It is called ad hoc because of its on-the-fly
+or transient nature and can include up to eight (including the host) available
+Bluetooth-enabled devices in the immediate vicinity, that are willing to participate. </p> <p>The
+device that initiates the network - in this case the PAN-GN - becomes the
+host or controller. Correspondence in a PAN between the clients is routed
+through the PAN-GN device (host) in both one-to-one and one-to-many cases. </p> <p><b>PAN-NAP</b> </p> <p>A PAN-NAP device plays the role of a proxy, bridge,
+or a router between an existing network say a LAN or the Internet and Bluetooth-enabled
+devices. The PAN-NAP device takes up to seven active wireless clients. The
+NAP device acts as a bridge between PANU devices or bluetooth networks and
+other networks for routing ethernet packets. The Symbian platform PAN-NAP
+role allows only a single PANU client access to the uplink for the external
+network. </p> <fig id="GUID-6EC523C3-FD92-530E-A8F4-F19AB82419A0">
+<title>                 PAN-NAP, bridging networks               </title>
+<image href="GUID-8D51B706-6941-5043-B435-1CAFBAE5A8F2_d0e396870_href.jpg" placement="inline"/>
+</fig> <p>The following image shows a Bluetooth-enabled laptop accessing the
+Internet through a mobile handset that is acting as a PAN-NAP device. The
+Bluetooth handset may provide the uplink via GPRS, WIFI, dial-up, or in some
+other way. </p> <p>For more information about please see the <xref href="GUID-0DBB2379-6FCB-5D1D-AE5A-2DC7C498F479.dita">PAN
+NAP Role Guide</xref>. </p> </section>
+<section id="GUID-238F0831-514C-50DA-92D9-E2009580DA40"><title>Architecture</title> <p>The
+PAN Profile specification fits in between the application and the hardware
+abstraction layers. It is connected to and accessed through the Comms-Infras
+socket by the application. </p> <p>Initially, the connection preferences are
+set in CommDB through the code. The Bluetooth stack is then initialized. An <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita"><apiname>RSocketServ</apiname></xref> instance
+are created as part of initiating an ESock session and the <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> object
+opens the connection through the <codeph>RSocketServ</codeph> instance. <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita#GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD/GUID-28A35F19-1B05-3922-8E80-36F00DF3DB65"><apiname>RConnection::Control()</apiname></xref> allows
+configuration of certain aspects of the PAN, for instance adding and deleting
+devices to/from the PAN. </p> <p>Intact ethernet payloads are transported
+with the BNEP (Bluetooth Network Encapsulation Protocol) underneath. The PAN
+profile interacts with the Bluetooth BB (baseband) and conveys the various
+roles that PAN network nodes would play. </p> </section>
+<section id="GUID-4640FF39-2C8A-4241-B8EA-BF68CC7F1ABF"><title>Typical uses</title> <p>The following tutorials have been
+provided to help give licensee developers guidance when writing applications
+that make use of the PAN profile. </p> <ul>
+<li id="GUID-747AB1CA-FD49-5451-86A3-49317DCDF951"><p> <xref href="GUID-91C4F00B-E241-57DC-8520-8C16A302C983.dita">Creating
+a Personal Area Network</xref>  </p> </li>
+<li id="GUID-25FA6A6C-1C7B-5BD9-AB67-E8DBFF438AA1"><p> <xref href="GUID-685AD682-10DC-553B-9C3A-04D0376138C4.dita">Adding
+a device to the PAN</xref>  </p> </li>
+<li id="GUID-2C74ECA0-469C-5701-AE89-D3BD9DA28957"><p> <xref href="GUID-197648C4-A42C-5769-82B7-F8BA510631D9.dita">Removing
+a device from the PAN</xref>  </p> </li>
+<li id="GUID-5E2ACA5F-84AD-5750-A550-E834E221C60E"><p> <xref href="GUID-50CDF6E0-C352-5771-8686-B551267C6BE6.dita">Closing
+the PAN</xref>  </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,297 +1,297 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6" xml:lang="en"><title>File Server
-Plugin Concepts</title><shortdesc>This topic describes the file server plug-in concepts.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>File server plugins can issue direct file server requests, interpret and
-modify inbound messages and change file and metadata. A compression plugin
-may need to intercept file read or file write requests which are sent from
-the client to provide a seamless user experience. This operation requires
-the modification of the data, position and length arguments that are sent
-from the client to the file server. </p>
-<p>There are some limitations to the file server plugin framework: </p>
-<ul>
-<li id="GUID-1C02ECAE-A711-5E2A-8006-EC2D1BF5A859"><p>The file server plugin
-framework only operates on one client file at any time. However, a plugin
-itself can operate on any number of files during a single request from the
-client. </p> </li>
-<li id="GUID-F82C8E71-479B-5482-8234-C5AD2AD05A91"><p>The file server plugin
-framework does not enable the compression or encryption of whole volumes.
-If access to the whole media volume is needed use a <xref href="GUID-983F0ABD-470C-51C3-B6AE-1B1AA55AB4A2.dita">file
-server extension</xref> rather than a plugin. </p> </li>
-<li id="GUID-386C0911-30EF-56B0-BD3B-4BC97A7CEFA3"><p>File modification plugins
-cannot operate on demand paged executables. Demand paging does not use the
-file server, so the plugin framework cannot be used to encrypt/process the
-executable. </p> </li>
-</ul>
-<note> The improved framework will not prevent deadlock with existing plugins.
-Plugins that currently issue <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> requests must be migrated
-to the new APIs to prevent deadlock. Follow the guidelines within the <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita">plugin implementation tutorial</xref></note>
-<ul>
-<li id="GUID-0A5ECCEA-CD70-528D-8880-463CA77D797B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-8B5B325D-D88C-55A7-9684-C2DCF81FCD79">Plugin type</xref>, </p> </li>
-<li id="GUID-40202D9E-C136-55BB-A5A1-DF64971B99D1"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-C76B06C8-DEDC-57AC-A510-3DD1E232241A">Architecture</xref>, </p> </li>
-<li id="GUID-60C8A1F1-6BE6-59A3-8F33-BD7FBFF9FB59"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-6234893D-A1C8-5870-9761-9EA2BD6909F0">Plugin order</xref>, </p> </li>
-<li id="GUID-20D4D10F-5E92-5FE3-A89C-DAF45E52EB0B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-DB21C0FD-46F8-5E4F-9288-69AE8609482B">Drive selection</xref>, </p> </li>
-<li id="GUID-91E1927C-3AA6-5594-8238-EA7B590278B2"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-50F7CD3A-A051-5498-8886-B4501523FD1D">Interception of file server requests</xref>, </p> </li>
-<li id="GUID-59EB5503-3D02-5E2D-80A4-A20EA8364D81"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-0B7B373D-41ED-5C91-ACC4-393A8669815A">Security</xref>. </p> </li>
-</ul>
-<section id="GUID-8B5B325D-D88C-55A7-9684-C2DCF81FCD79"><title>Plugin type</title> <p>There
-are two different types of file server plugins: </p> <ul>
-<li id="GUID-0FBE9E75-D164-5BCC-B00A-A5A76DBD200C"><p>Observer plugins - intercept
-requests but do not modify file data or associated meta data. </p> <p>Examples
-of observer plugins are those for virus scanning or logging. </p> </li>
-<li id="GUID-69708845-9C79-5C19-B758-AEF8F8A693E0"><p>Modifier plugins - intercept
-requests and modify the data or associated meta data of the target files or
-directories.. </p> <p>Examples of file modifier plugins are compression and
-encryption plugins. </p> </li>
-</ul> </section>
-<section id="GUID-C76B06C8-DEDC-57AC-A510-3DD1E232241A"><title>Architecture</title> <p>This
-section describes the structure of the plugin framework and the changes that
-have been made to the framework in v9.5: </p> <ul>
-<li id="GUID-399FE2E3-6576-5F98-83A8-70B9F77C65B7"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-3D91570E-8939-557B-8E1E-3A3C5BD27A26">Threads and execution context</xref>, </p> </li>
-<li id="GUID-609612CB-E684-5BDA-88FC-16FFB71D70C2"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-71DC7464-0EF0-5F78-816E-24F73F5FCA12">Exclusive access</xref>, </p> </li>
-<li id="GUID-665C36D1-DDD3-5DA4-86A3-574DFDC38AFF"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-9C152BE3-9113-5A0C-8EE2-81ADD09BEAD2">Intercepting requests to the ROM drive</xref>, </p> </li>
-<li id="GUID-F06D0F56-40AA-5631-9686-BA955E8E263B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-AA3990F3-52AB-5B14-8ED4-50CCA824AF84">Preventing deadlock</xref>. </p> </li>
-</ul> <p>The diagram below shows how plugins fit into the File Server software
-stack. </p> <fig id="GUID-EF5AECEC-9CB0-54B0-B6D2-46266B5FF49E">
-<image href="GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e265930_href.png" placement="inline"/>
-</fig> <p> <b>Note</b>: more than one plugin can be loaded into the file server
-at the same time. A plugin is not aware of other plugins. </p> <p id="GUID-3D91570E-8939-557B-8E1E-3A3C5BD27A26"><b> Threads and execution context</b> </p> <p>The
-Symbian platform File Server has multiple threads. There is a thread for each
-drive in use and a main thread that receives the requests from clients and
-sends them to the drive threads. Synchronous drives, however, do not have
-their own drive thread; requests for these are processed by the main thread.
-There is also a separate thread for processing session disconnect requests. </p> <p>Each
-plugin also has its own thread for processing requests. Requests are dispatched
-to the plugin thread associated with the request's drive before they are dispatched
-to the drive thread. This is discussed in more detail in <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-50F7CD3A-A051-5498-8886-B4501523FD1D">interception of file server requests</xref>. </p> <p id="GUID-71DC7464-0EF0-5F78-816E-24F73F5FCA12"><b>Exclusive access</b> </p> <p>Previously,
-when a client application opens a file for exclusive write access, no other
-clients could access the file until the client closed its associated subsession.
-This also applied to plugins that needed to modify file data (as they are
-also clients of the file server). </p> <p>Symbian platform provides plugins
-that are able to perform operations on files and directories irrespective
-of the mode in which the file has been opened. </p> <p>Operations are now
-able to use the same file handle as the originating request (run in the same
-context as the original request) so files opened for exclusive access can
-still be written to by a plugin wishing to modify the file. </p> <p id="GUID-9C152BE3-9113-5A0C-8EE2-81ADD09BEAD2"><b>Intercepting ROM drive requests</b> </p> <p>Previously,
-plugins could not intercept any requests to the ROM drive (Z) however, there
-is a requirement to be able to intercept requests on this drive to enable
-secure-load and logging plugins. Requests to drive Z can now be intercepted
-by plugins. See the tutorial for <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref> for more details. </p> <p id="GUID-AA3990F3-52AB-5B14-8ED4-50CCA824AF84"><b>Preventing deadlock</b> </p> <p>The
-new framework allows a plugin to have direct access to file data without the
-need to issue new file server requests through the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> client
-APIs. In the pre-9.5 approach it was possible to reach deadlock if more than
-one plugin was present. </p> <p>The diagram below shows two plugins in the
-pre v9.5 framework. If both plugins issue new file server requests and if
-the plugins are not re-entrant safe this can lead to deadlock in the file
-server. </p> <fig id="GUID-01A69E82-BF01-520A-A8C5-927F1ED85E04">
-<title>                 File server deadlock               </title>
-<image href="GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e266006_href.png" placement="inline"/>
-</fig> <p>The framework introduced in v9.5 prevents deadlock by allowing plugins
-to issue internal file server requests after intercepting a request by using
-the newly introduced <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> and <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> APIs
-and not by using the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref>, <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> and <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> APIs.
-Internally issued requests are only dispatched to plugins mounted below the
-issuing plugin and the appropriate drive thread. </p> <p>The sequence of events
-for a typical plugin intercepting a file read request is illustrated below: </p> <fig id="GUID-E366027F-3112-520F-A118-4C048102749E">
-<title>                 Read request intercepted by a plugin             
- </title>
-<image href="GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e266044_href.png" placement="inline"/>
-</fig> <p>The classes <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> and <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> have
-been introduced to facilitate plugins with direct access behaviour on file
-and directory requests. These classes are analogous to the client-side <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> classes and have functions with similar or identical signitures. </p> <p>In
-order to perform requests on a file it is necessary to open a sub-session
-by calling either <xref href="GUID-EC8FDB25-3DD7-3F1C-9875-0FA9315AE9AC.dita"><apiname>AdoptFromClient()</apiname></xref> or <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref>. <codeph>AdoptFromClient()</codeph> is
-used in order to open a sub-session with the file associated with the client’s
-request. Alternatively the <codeph>Open()</codeph> method can be used to open
-either a different file, or the file associated with the client’s request
-possibly with a different access mode. </p> <p>More than one file can be opened
-at any time by creating multiple instances of <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>. </p> <p>The
-following example shows how to open many files from a plugin during a single
-request: </p> <codeblock id="GUID-AFCA6392-2414-591A-98C5-A9FC2C103755" xml:space="preserve">// Define the object
-RFilePlugin clientsFile(aRequest); 
-
-// Opens the file associated with the intercepted request
-Tint r = clientsFile.AdoptFromClient();
-User::LeaveIfError(r);
-TBuf&lt;20&gt; data;
-TInt64 pos = (Tint64)0;
-Tint length = 0;
-
-// Read the file
-r = clientsFile.Read(pos, data, length);
-User::LeaveIfError(r);
-
-// Open a second file
-RFilePlugin secondFile(aRequest);
-_LIT(KSecondName, ”D:\\myfile.txt”);
-r = secondFile.Open(KSecondName(), EFileRead);
-User::LeaveIfError(r);
-
-// Read from second file
-TBuf&lt;20&gt; data2;
-TInt64 pos2 = (Tint64)0;
-Tint length2 = 0;
-
-// Read the file
-r = secondFile.Read(pos2, data2, length2);
-User::LeaveIfError(r);
-
-// Close the files
-clientsFile.Close();
-secondFile.Close();</codeblock> <p><b>Issuing
-an internal file system request</b> </p> <p>An internal request can be marked
-as ‘Direct to Drive’. This allows requests that are generated by a plugin
-to be dispatched straight to the drive thread bypassing all other plugins
-which may be mounted below the plugin that issued the request. After being
-processed by the drive thread the request also bypasses the plugins between
-the drive thread and the plugin that the Direct to Drive request originated
-from. Once returned to the plugin that generated the request, the Direct to
-Drive request is complete and any other requests issued from the plugin are
-processed by plugins further down the plugin-stack in the normal manner. </p> <p>The
-last argument of the <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref> constructor of the classes <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> and <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> is named <codeph>aDirectToDrive</codeph>. <codeph>aDirectToDrive</codeph> is
-a boolean value (<codeph>TBool</codeph>) to indicate that the request is Direct
-to Drive. The default value is <codeph>EFalse</codeph> indicating that the
-request is interceptable by plugins further down the plugin-stack. </p> </section>
-<section id="GUID-6234893D-A1C8-5870-9761-9EA2BD6909F0"><title>Plugin order</title> <p>The
-Plugin framework provides support for multiple plugins to be present and active.
-Plugins are arranged in a stack. Plugins intercept requests in the order they
-are arranged in the stack with the plugin at the top of the stack (at the
-smallest numerical absolute position) getting the first intercept. The order
-of plugins in the stack is therefore crucial to the correct operation of the
-file server when more than one plugin is active, especially when the plugins
-are modifier plugins (i.e when both modify the data or parameters of the requests). </p> <p>If
-two plugins are active and one of those is a virus scanner, for the virus
-scanner to operate correctly it must be the first plugin to intercept requests.
-This is so that the virus scanner can have first refusal to block any requests
-for files which it believes may not be safe for opening. If there is another
-plugin higher in the stack then this plugin could send Direct To Drive requests,
-for example, and would significantly reduce the virus scanning ability of
-the virus scanning plugin. </p> <p>Two mechanisms are provided that allow
-plugin authors to control the position of their plugins in the plugin stack
-these are Absolute position and Unique position. </p> <p id="GUID-5C258D67-C324-5FA4-894A-88532F925EFF"><b>Absolute position </b> </p> <p>Plugins
-can be inserted into the stack by specifying an absolute position at mount
-time. This absolute position is the index in the internal array of plugins
-in which the plugin should be mounted. The plugin at position 0 being the
-first plugin to be able to intercept requests. </p> <fig id="GUID-41EB2F58-407F-52C7-A40C-0E3858CF718B">
-<title>                 Plugin stack showing absolute positions          
-    </title>
-<image href="GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e266170_href.png" placement="inline"/>
-</fig> <p>The absolute position method is more appropriate for mounting plugins
-that operate regardless of their position in the plugin stack or when all
-of the plugins for a device are known and installed when manufactured. This
-method does not suit plugins that are added after manufacture where the dependencies
-of other available plugins is not known. If this is the case use the unique
-position method described below. </p> <p id="GUID-90FC1AD9-D709-5105-A445-0AA3D7BA85B7"><b>Unique position</b> </p> <p>Plugins
-can be ordered according to a unique position stored within the plugin. Unique
-position identifiers are defined by the manufacturer during the software validation/signing
-process. Unique positions are defined in the derived <xref href="GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E.dita"><apiname>CFsPluginFactory</apiname></xref> class.
-See the description in <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref>. </p> <p>The position value specifies the category and position of the plugin: </p> <table id="GUID-22362455-13BE-5A26-8750-A94E79941EF3">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <b>plugin Type</b>  </p> </entry>
-<entry><p> <b>Unique Position Range</b>  </p> </entry>
-</row>
-<row>
-<entry><p>File Observers </p> </entry>
-<entry><p> <codeph>0x20000000 - 0x2FFFFFFF</codeph>  </p> </entry>
-</row>
-<row>
-<entry><p>File Modifiers </p> </entry>
-<entry><p> <codeph>0x40000000 - 0x4FFFFFFF</codeph>  </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>File Observers do not modify data so they are allocated a lower
-range of numbers placing them at the top of the plugin stack. File Modifiers
-modify the data stream so they are allocated a higher range placing them lower
-down the plugin stack. </p> <p> <b>Note</b>: a plugin has a unique position
-then do not specify an <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-5C258D67-C324-5FA4-894A-88532F925EFF">absolute
-position</xref> when mounting it, otherwise the error <codeph>KErrNotSupported</codeph> is
-returned. </p> </section>
-<section id="GUID-DB21C0FD-46F8-5E4F-9288-69AE8609482B"><title>Drive selection</title> <p>A
-File Server Plugin can intercept requests for a specific drive or for all
-drives. A plugin that intercepts requests for all drives must filter requests
-that are not appropriate for some drives. Requests can be filtered within
-an overridden <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-97427151-C6E4-5FE4-8197-0D7C58EDB29F">CFsPlugin::Deliver()</xref> function. </p> <p>There are two ways to specify a drive: </p> <ul>
-<li id="GUID-296E3A2E-5985-5E4B-96A2-D247D1FAA07C"><p>When the plugin is mounted.
-See <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-BED54BD9-2F3F-588E-854B-C28745C8F30A">mounting
-a plugin</xref>. </p> </li>
-<li id="GUID-080CD9C3-2BEA-5209-974A-910606EBF22A"><p>At run-time through
-the use of <xref href="GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E.dita#GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E/GUID-45A67073-5EF4-3966-A2FD-555B56C89284"><apiname>CFsPluginFactory::iSupportedDrives</apiname></xref>. See the
-tutorial for <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref>. </p> </li>
-</ul> <p>If the drive is not specified then <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-61640192-646E-33DA-B186-5EE63B07A998"><apiname>RFs::MountPlugin()</apiname></xref> attempts
-to mount the plugin for all drives. If this behaviour is not supported by
-the plugin <xref href="GUID-F89DA3F0-2A48-3F9B-8F08-29350E92D0E4.dita"><apiname>KErrNotSupported</apiname></xref> is returned. </p> </section>
-<section id="GUID-50F7CD3A-A051-5498-8886-B4501523FD1D"><title> Interception
-of file server requests</title> <p>After a file server request has been initialised
-by the main file server thread it can be intercepted by a plugin. There are
-two types of intercept: </p> <ul>
-<li id="GUID-288866F8-ABE5-5569-A70C-2C86B4F073B9"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-05F613B8-FF66-54B6-8D49-2BF92914E54E">pre-operation intercepts</xref>, </p> </li>
-<li id="GUID-E876E576-1E94-5F06-8305-22D620A82B6F"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-59FD1CED-5A32-5F6E-A256-821A2783D065">post-operation intercepts</xref>. </p> </li>
-</ul> <p>Plugins can register for pre-intercepts, for post-intercepts or for
-both pre and post-intercepts. </p> <p id="GUID-05F613B8-FF66-54B6-8D49-2BF92914E54E"><b>Pre-operation</b> </p> <p>Pre-operation
-intercepts occur before the drive associated with a request processes it.
-In a file write request for example, the pre-intercept operations occur before
-data has been written to the file. Requests are passed down the plugin-stack
-from the file server towards the drive thread. </p> <p>When the main file
-server thread has initialised a request, the request is dispatched to the
-highest plugin in the stack. This plugin must have been mounted on the requested
-drive and registered to pre-intercept this type of request. See <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-BED54BD9-2F3F-588E-854B-C28745C8F30A">mounting a plugin</xref>. The request is dispatched by calling the plugin's <xref href="GUID-BC0DB991-EF52-3344-8E6A-F8060B75A189.dita#GUID-BC0DB991-EF52-3344-8E6A-F8060B75A189/GUID-2EACA8A8-D569-3D6A-9383-451587A65839"><apiname>CFsPlugin::Deliver()</apiname></xref> function. </p> <p>The <codeph>Deliver()</codeph> function runs in the context of the previous calling thread,
-this can be the main file server thread or a plugin thread. Override <codeph>CFsPlugin::Deliver()</codeph> to
-filter the request. If the <codeph>Deliver()</codeph> function has not been
-overridden then the request is dispatched for asynchronous processing by calling
-the base class <codeph>Deliver()</codeph>. See the <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-97427151-C6E4-5FE4-8197-0D7C58EDB29F">CFsPlugin::Deliver()</xref> tutorial section. </p> <p id="GUID-59FD1CED-5A32-5F6E-A256-821A2783D065"><b>Post operation</b> </p> <p>Post-operation
-intercepts occur after the drive associated with a request has processed it.
-In a file write request for example, the post-intercept occurs after data
-has been written to the file. Requests are passed from the drive thread back
-up the stack towards the client. </p> <p>When the drive thread has finished
-processing a request it dispatches it to the plugin lowest in the stack by
-calling the plugin's <xref href="GUID-C6F20230-3D6C-3392-B040-CF627534B930.dita"><apiname>Deliver()</apiname></xref> function. </p> <p><b> Filtering requests internally</b> </p> <p>The <xref href="GUID-F1B37142-1EEF-3777-82B1-303982B888EC.dita#GUID-F1B37142-1EEF-3777-82B1-303982B888EC/GUID-8EBEAD17-B03C-3DBA-9A47-0F7DB07785F9"><apiname>CFSPlugin::Deliver()</apiname></xref> function
-filters the request and decides what kind of action is neccessary in terms
-of the flow of the request through the plugin stack: </p> <ul>
-<li id="GUID-3E8CAD7B-BE13-531E-A387-432F4CD463C9"><p> <xref href="GUID-1E025D93-3D66-3E88-830D-CBB3A471A777.dita"><apiname>KPluginMessageForward</apiname></xref> is
-returned if the intercept is pre-operation. The request is passed to the next
-plugin down the stack or to the drive thread if there are no more plugins. </p> </li>
-<li id="GUID-1FFEFFF4-3D5F-590F-8884-CA27B2B5B916"><p> <xref href="GUID-81C5F6A1-3FCA-33E5-99C6-7901D41BCBDE.dita"><apiname>KPluginMessageComplete</apiname></xref> is
-returned if the intercept is post-operation. The request is passed to the
-next plugin up the stack or if there are no more plugins to process the request
-it is passed to the main file server thread. </p> </li>
-</ul> <p>If the request requires processing by the plugin then the plugin's <codeph>Deliver()</codeph> function
-calls the base class <codeph>Deliver()</codeph> function and the request is
-dispatched to the plugin's thread for asynchronous processing. </p> <p>Asynchronous
-processing is carried out in the plugin's <xref href="GUID-8EF10689-68B7-391B-AD5C-4F51780165FF.dita"><apiname>DoRequestL()</apiname></xref> function.
-A plugin can only have a single <codeph>DoRequestL()</codeph> function which
-must handle both pre and post-intercepts. Plugin authors can use the <xref href="GUID-06E787C2-FAC1-36D2-9C64-11BDA1B656F1.dita"><apiname>IsPostOperation()</apiname></xref> function
-of the utility class, <xref href="GUID-A814151C-8AEC-3E16-8691-33174B64E36F.dita"><apiname>TFsPluginRequest</apiname></xref> to indicate whether
-the <codeph>DoRequestL()</codeph> is processing a request as a pre-intercept
-or post-intercept. See the description of <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-14773530-7C15-52E2-A542-72A0B2163461">TFsPluginRequest</xref>. </p> <p>Once the asynchronous processing is complete the <codeph>DoRequestL()</codeph> function
-returns <codeph>KErrNone</codeph> and the request is passed to the next plugin
-down the stack by calling its <xref href="GUID-C6F20230-3D6C-3392-B040-CF627534B930.dita"><apiname>Deliver()</apiname></xref> function. If there
-are no lower plugins then the request is passed to the appropriate drive thread
-for processing. </p> <p>If the plugin intercepts a request in pre-operation
-and wants to complete the request on behalf of the client then the plugin
-can return <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> to indicate that the request
-has been completed and that the request is now in post operation mode. The
-flow will then proceed to any previous plugins if mounted or directly back
-to the client otherwise. <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> prevents any further
-plugins further down the stack from intercepting the request. </p> <p>When
-a plugin intercepts file read or file write and does an early completion (i.e.
-returns <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> in pre-intercept) then the plugin
-author should call <xref href="GUID-A814151C-8AEC-3E16-8691-33174B64E36F.dita#GUID-A814151C-8AEC-3E16-8691-33174B64E36F/GUID-149E1448-63AA-3F08-A3A2-606D240A8927"><apiname>TFsPluginRequest::SetSharePos()</apiname></xref> to allow
-share position to be updated after early read/write completion. </p> </section>
-<section id="GUID-0B7B373D-41ED-5C91-ACC4-393A8669815A"><title>Security</title> <p>File
-server plugins are implemented as libraries that are loaded into the file
-server process at runtime. Therefore, plugins must have the same <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
-security</xref> capabilities as the file server process, these are <xref href="GUID-2A022229-C333-3B0A-99A5-13CA0710025D.dita"><apiname>TCB</apiname></xref>, <xref href="GUID-E5C21B79-529B-397E-8A22-63612CA52869.dita"><apiname>ProtServ</apiname></xref>, <xref href="GUID-8DC76E7B-9EB3-3848-AD8D-3D519388A504.dita"><apiname>DiskAdmin</apiname></xref>, <xref href="GUID-ECCA7246-B2BA-3261-95C9-9E72C6EC51D4.dita"><apiname>AllFiles</apiname></xref>, <xref href="GUID-93881606-AA56-385F-A958-3957142BEFE3.dita"><apiname>PowerMgmt</apiname></xref> and <xref href="GUID-616F0C5B-D2C1-39D8-9BFC-53A2AEC7C850.dita"><apiname>CommDD</apiname></xref>. </p> <p>Any
-user side process that wishes to load and mount plugins must have the <codeph>DiskAdmin</codeph> capability. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6" xml:lang="en"><title>File Server
+Plugin Concepts</title><shortdesc>This topic describes the file server plug-in concepts.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>File server plugins can issue direct file server requests, interpret and
+modify inbound messages and change file and metadata. A compression plugin
+may need to intercept file read or file write requests which are sent from
+the client to provide a seamless user experience. This operation requires
+the modification of the data, position and length arguments that are sent
+from the client to the file server. </p>
+<p>There are some limitations to the file server plugin framework: </p>
+<ul>
+<li id="GUID-1C02ECAE-A711-5E2A-8006-EC2D1BF5A859"><p>The file server plugin
+framework only operates on one client file at any time. However, a plugin
+itself can operate on any number of files during a single request from the
+client. </p> </li>
+<li id="GUID-F82C8E71-479B-5482-8234-C5AD2AD05A91"><p>The file server plugin
+framework does not enable the compression or encryption of whole volumes.
+If access to the whole media volume is needed use a <xref href="GUID-983F0ABD-470C-51C3-B6AE-1B1AA55AB4A2.dita">file
+server extension</xref> rather than a plugin. </p> </li>
+<li id="GUID-386C0911-30EF-56B0-BD3B-4BC97A7CEFA3"><p>File modification plugins
+cannot operate on demand paged executables. Demand paging does not use the
+file server, so the plugin framework cannot be used to encrypt/process the
+executable. </p> </li>
+</ul>
+<note> The improved framework will not prevent deadlock with existing plugins.
+Plugins that currently issue <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> requests must be migrated
+to the new APIs to prevent deadlock. Follow the guidelines within the <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita">plugin implementation tutorial</xref></note>
+<ul>
+<li id="GUID-0A5ECCEA-CD70-528D-8880-463CA77D797B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-8B5B325D-D88C-55A7-9684-C2DCF81FCD79">Plugin type</xref>, </p> </li>
+<li id="GUID-40202D9E-C136-55BB-A5A1-DF64971B99D1"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-C76B06C8-DEDC-57AC-A510-3DD1E232241A">Architecture</xref>, </p> </li>
+<li id="GUID-60C8A1F1-6BE6-59A3-8F33-BD7FBFF9FB59"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-6234893D-A1C8-5870-9761-9EA2BD6909F0">Plugin order</xref>, </p> </li>
+<li id="GUID-20D4D10F-5E92-5FE3-A89C-DAF45E52EB0B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-DB21C0FD-46F8-5E4F-9288-69AE8609482B">Drive selection</xref>, </p> </li>
+<li id="GUID-91E1927C-3AA6-5594-8238-EA7B590278B2"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-50F7CD3A-A051-5498-8886-B4501523FD1D">Interception of file server requests</xref>, </p> </li>
+<li id="GUID-59EB5503-3D02-5E2D-80A4-A20EA8364D81"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-0B7B373D-41ED-5C91-ACC4-393A8669815A">Security</xref>. </p> </li>
+</ul>
+<section id="GUID-8B5B325D-D88C-55A7-9684-C2DCF81FCD79"><title>Plugin type</title> <p>There
+are two different types of file server plugins: </p> <ul>
+<li id="GUID-0FBE9E75-D164-5BCC-B00A-A5A76DBD200C"><p>Observer plugins - intercept
+requests but do not modify file data or associated meta data. </p> <p>Examples
+of observer plugins are those for virus scanning or logging. </p> </li>
+<li id="GUID-69708845-9C79-5C19-B758-AEF8F8A693E0"><p>Modifier plugins - intercept
+requests and modify the data or associated meta data of the target files or
+directories.. </p> <p>Examples of file modifier plugins are compression and
+encryption plugins. </p> </li>
+</ul> </section>
+<section id="GUID-C76B06C8-DEDC-57AC-A510-3DD1E232241A"><title>Architecture</title> <p>This
+section describes the structure of the plugin framework and the changes that
+have been made to the framework in v9.5: </p> <ul>
+<li id="GUID-399FE2E3-6576-5F98-83A8-70B9F77C65B7"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-3D91570E-8939-557B-8E1E-3A3C5BD27A26">Threads and execution context</xref>, </p> </li>
+<li id="GUID-609612CB-E684-5BDA-88FC-16FFB71D70C2"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-71DC7464-0EF0-5F78-816E-24F73F5FCA12">Exclusive access</xref>, </p> </li>
+<li id="GUID-665C36D1-DDD3-5DA4-86A3-574DFDC38AFF"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-9C152BE3-9113-5A0C-8EE2-81ADD09BEAD2">Intercepting requests to the ROM drive</xref>, </p> </li>
+<li id="GUID-F06D0F56-40AA-5631-9686-BA955E8E263B"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-AA3990F3-52AB-5B14-8ED4-50CCA824AF84">Preventing deadlock</xref>. </p> </li>
+</ul> <p>The diagram below shows how plugins fit into the File Server software
+stack. </p> <fig id="GUID-EF5AECEC-9CB0-54B0-B6D2-46266B5FF49E">
+<image href="GUID-9A4543B3-2A79-5604-AE11-5087507C6755_d0e262222_href.png" placement="inline"/>
+</fig> <p> <b>Note</b>: more than one plugin can be loaded into the file server
+at the same time. A plugin is not aware of other plugins. </p> <p id="GUID-3D91570E-8939-557B-8E1E-3A3C5BD27A26"><b> Threads and execution context</b> </p> <p>The
+Symbian platform File Server has multiple threads. There is a thread for each
+drive in use and a main thread that receives the requests from clients and
+sends them to the drive threads. Synchronous drives, however, do not have
+their own drive thread; requests for these are processed by the main thread.
+There is also a separate thread for processing session disconnect requests. </p> <p>Each
+plugin also has its own thread for processing requests. Requests are dispatched
+to the plugin thread associated with the request's drive before they are dispatched
+to the drive thread. This is discussed in more detail in <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-50F7CD3A-A051-5498-8886-B4501523FD1D">interception of file server requests</xref>. </p> <p id="GUID-71DC7464-0EF0-5F78-816E-24F73F5FCA12"><b>Exclusive access</b> </p> <p>Previously,
+when a client application opens a file for exclusive write access, no other
+clients could access the file until the client closed its associated subsession.
+This also applied to plugins that needed to modify file data (as they are
+also clients of the file server). </p> <p>Symbian platform provides plugins
+that are able to perform operations on files and directories irrespective
+of the mode in which the file has been opened. </p> <p>Operations are now
+able to use the same file handle as the originating request (run in the same
+context as the original request) so files opened for exclusive access can
+still be written to by a plugin wishing to modify the file. </p> <p id="GUID-9C152BE3-9113-5A0C-8EE2-81ADD09BEAD2"><b>Intercepting ROM drive requests</b> </p> <p>Previously,
+plugins could not intercept any requests to the ROM drive (Z) however, there
+is a requirement to be able to intercept requests on this drive to enable
+secure-load and logging plugins. Requests to drive Z can now be intercepted
+by plugins. See the tutorial for <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref> for more details. </p> <p id="GUID-AA3990F3-52AB-5B14-8ED4-50CCA824AF84"><b>Preventing deadlock</b> </p> <p>The
+new framework allows a plugin to have direct access to file data without the
+need to issue new file server requests through the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> client
+APIs. In the pre-9.5 approach it was possible to reach deadlock if more than
+one plugin was present. </p> <p>The diagram below shows two plugins in the
+pre v9.5 framework. If both plugins issue new file server requests and if
+the plugins are not re-entrant safe this can lead to deadlock in the file
+server. </p> <fig id="GUID-01A69E82-BF01-520A-A8C5-927F1ED85E04">
+<title>                 File server deadlock               </title>
+<image href="GUID-9CC5E096-74FB-59AB-BAB9-A5486B961B7D_d0e262298_href.png" placement="inline"/>
+</fig> <p>The framework introduced in v9.5 prevents deadlock by allowing plugins
+to issue internal file server requests after intercepting a request by using
+the newly introduced <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> and <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> APIs
+and not by using the <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref>, <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> and <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> APIs.
+Internally issued requests are only dispatched to plugins mounted below the
+issuing plugin and the appropriate drive thread. </p> <p>The sequence of events
+for a typical plugin intercepting a file read request is illustrated below: </p> <fig id="GUID-E366027F-3112-520F-A118-4C048102749E">
+<title>                 Read request intercepted by a plugin             
+ </title>
+<image href="GUID-2ABCF233-7DCC-59E2-B075-81E148A1D2AB_d0e262336_href.png" placement="inline"/>
+</fig> <p>The classes <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> and <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> have
+been introduced to facilitate plugins with direct access behaviour on file
+and directory requests. These classes are analogous to the client-side <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> classes and have functions with similar or identical signitures. </p> <p>In
+order to perform requests on a file it is necessary to open a sub-session
+by calling either <xref href="GUID-EC8FDB25-3DD7-3F1C-9875-0FA9315AE9AC.dita"><apiname>AdoptFromClient()</apiname></xref> or <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref>. <codeph>AdoptFromClient()</codeph> is
+used in order to open a sub-session with the file associated with the client’s
+request. Alternatively the <codeph>Open()</codeph> method can be used to open
+either a different file, or the file associated with the client’s request
+possibly with a different access mode. </p> <p>More than one file can be opened
+at any time by creating multiple instances of <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>. </p> <p>The
+following example shows how to open many files from a plugin during a single
+request: </p> <codeblock id="GUID-AFCA6392-2414-591A-98C5-A9FC2C103755" xml:space="preserve">// Define the object
+RFilePlugin clientsFile(aRequest); 
+
+// Opens the file associated with the intercepted request
+Tint r = clientsFile.AdoptFromClient();
+User::LeaveIfError(r);
+TBuf&lt;20&gt; data;
+TInt64 pos = (Tint64)0;
+Tint length = 0;
+
+// Read the file
+r = clientsFile.Read(pos, data, length);
+User::LeaveIfError(r);
+
+// Open a second file
+RFilePlugin secondFile(aRequest);
+_LIT(KSecondName, ”D:\\myfile.txt”);
+r = secondFile.Open(KSecondName(), EFileRead);
+User::LeaveIfError(r);
+
+// Read from second file
+TBuf&lt;20&gt; data2;
+TInt64 pos2 = (Tint64)0;
+Tint length2 = 0;
+
+// Read the file
+r = secondFile.Read(pos2, data2, length2);
+User::LeaveIfError(r);
+
+// Close the files
+clientsFile.Close();
+secondFile.Close();</codeblock> <p><b>Issuing
+an internal file system request</b> </p> <p>An internal request can be marked
+as ‘Direct to Drive’. This allows requests that are generated by a plugin
+to be dispatched straight to the drive thread bypassing all other plugins
+which may be mounted below the plugin that issued the request. After being
+processed by the drive thread the request also bypasses the plugins between
+the drive thread and the plugin that the Direct to Drive request originated
+from. Once returned to the plugin that generated the request, the Direct to
+Drive request is complete and any other requests issued from the plugin are
+processed by plugins further down the plugin-stack in the normal manner. </p> <p>The
+last argument of the <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref> constructor of the classes <xref href="GUID-3C50CF63-9AF4-3F36-8B8F-3FBB613E1CAC.dita"><apiname>RFilePlugin</apiname></xref>, <xref href="GUID-DE8D8017-6E9C-38CE-A023-98A53CDF7152.dita"><apiname>RFsPlugin</apiname></xref> and <xref href="GUID-2E871434-D08F-3275-AC55-260A9A78661A.dita"><apiname>RDirPlugin</apiname></xref> is named <codeph>aDirectToDrive</codeph>. <codeph>aDirectToDrive</codeph> is
+a boolean value (<codeph>TBool</codeph>) to indicate that the request is Direct
+to Drive. The default value is <codeph>EFalse</codeph> indicating that the
+request is interceptable by plugins further down the plugin-stack. </p> </section>
+<section id="GUID-6234893D-A1C8-5870-9761-9EA2BD6909F0"><title>Plugin order</title> <p>The
+Plugin framework provides support for multiple plugins to be present and active.
+Plugins are arranged in a stack. Plugins intercept requests in the order they
+are arranged in the stack with the plugin at the top of the stack (at the
+smallest numerical absolute position) getting the first intercept. The order
+of plugins in the stack is therefore crucial to the correct operation of the
+file server when more than one plugin is active, especially when the plugins
+are modifier plugins (i.e when both modify the data or parameters of the requests). </p> <p>If
+two plugins are active and one of those is a virus scanner, for the virus
+scanner to operate correctly it must be the first plugin to intercept requests.
+This is so that the virus scanner can have first refusal to block any requests
+for files which it believes may not be safe for opening. If there is another
+plugin higher in the stack then this plugin could send Direct To Drive requests,
+for example, and would significantly reduce the virus scanning ability of
+the virus scanning plugin. </p> <p>Two mechanisms are provided that allow
+plugin authors to control the position of their plugins in the plugin stack
+these are Absolute position and Unique position. </p> <p id="GUID-5C258D67-C324-5FA4-894A-88532F925EFF"><b>Absolute position </b> </p> <p>Plugins
+can be inserted into the stack by specifying an absolute position at mount
+time. This absolute position is the index in the internal array of plugins
+in which the plugin should be mounted. The plugin at position 0 being the
+first plugin to be able to intercept requests. </p> <fig id="GUID-41EB2F58-407F-52C7-A40C-0E3858CF718B">
+<title>                 Plugin stack showing absolute positions          
+    </title>
+<image href="GUID-64BDD1DA-6B93-5F45-8CBD-7DBAF92CC4C7_d0e262462_href.png" placement="inline"/>
+</fig> <p>The absolute position method is more appropriate for mounting plugins
+that operate regardless of their position in the plugin stack or when all
+of the plugins for a device are known and installed when manufactured. This
+method does not suit plugins that are added after manufacture where the dependencies
+of other available plugins is not known. If this is the case use the unique
+position method described below. </p> <p id="GUID-90FC1AD9-D709-5105-A445-0AA3D7BA85B7"><b>Unique position</b> </p> <p>Plugins
+can be ordered according to a unique position stored within the plugin. Unique
+position identifiers are defined by the manufacturer during the software validation/signing
+process. Unique positions are defined in the derived <xref href="GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E.dita"><apiname>CFsPluginFactory</apiname></xref> class.
+See the description in <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref>. </p> <p>The position value specifies the category and position of the plugin: </p> <table id="GUID-22362455-13BE-5A26-8750-A94E79941EF3">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>plugin Type</b>  </p> </entry>
+<entry><p> <b>Unique Position Range</b>  </p> </entry>
+</row>
+<row>
+<entry><p>File Observers </p> </entry>
+<entry><p> <codeph>0x20000000 - 0x2FFFFFFF</codeph>  </p> </entry>
+</row>
+<row>
+<entry><p>File Modifiers </p> </entry>
+<entry><p> <codeph>0x40000000 - 0x4FFFFFFF</codeph>  </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>File Observers do not modify data so they are allocated a lower
+range of numbers placing them at the top of the plugin stack. File Modifiers
+modify the data stream so they are allocated a higher range placing them lower
+down the plugin stack. </p> <p> <b>Note</b>: a plugin has a unique position
+then do not specify an <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-5C258D67-C324-5FA4-894A-88532F925EFF">absolute
+position</xref> when mounting it, otherwise the error <codeph>KErrNotSupported</codeph> is
+returned. </p> </section>
+<section id="GUID-DB21C0FD-46F8-5E4F-9288-69AE8609482B"><title>Drive selection</title> <p>A
+File Server Plugin can intercept requests for a specific drive or for all
+drives. A plugin that intercepts requests for all drives must filter requests
+that are not appropriate for some drives. Requests can be filtered within
+an overridden <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-97427151-C6E4-5FE4-8197-0D7C58EDB29F">CFsPlugin::Deliver()</xref> function. </p> <p>There are two ways to specify a drive: </p> <ul>
+<li id="GUID-296E3A2E-5985-5E4B-96A2-D247D1FAA07C"><p>When the plugin is mounted.
+See <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-BED54BD9-2F3F-588E-854B-C28745C8F30A">mounting
+a plugin</xref>. </p> </li>
+<li id="GUID-080CD9C3-2BEA-5209-974A-910606EBF22A"><p>At run-time through
+the use of <xref href="GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E.dita#GUID-8A3B2A79-05A6-3BD7-AEA9-02435476F45E/GUID-45A67073-5EF4-3966-A2FD-555B56C89284"><apiname>CFsPluginFactory::iSupportedDrives</apiname></xref>. See the
+tutorial for <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-89CF85BE-784F-5237-9F78-69D603B650C4">CFsPluginFactory</xref>. </p> </li>
+</ul> <p>If the drive is not specified then <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-61640192-646E-33DA-B186-5EE63B07A998"><apiname>RFs::MountPlugin()</apiname></xref> attempts
+to mount the plugin for all drives. If this behaviour is not supported by
+the plugin <xref href="GUID-F89DA3F0-2A48-3F9B-8F08-29350E92D0E4.dita"><apiname>KErrNotSupported</apiname></xref> is returned. </p> </section>
+<section id="GUID-50F7CD3A-A051-5498-8886-B4501523FD1D"><title> Interception
+of file server requests</title> <p>After a file server request has been initialised
+by the main file server thread it can be intercepted by a plugin. There are
+two types of intercept: </p> <ul>
+<li id="GUID-288866F8-ABE5-5569-A70C-2C86B4F073B9"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-05F613B8-FF66-54B6-8D49-2BF92914E54E">pre-operation intercepts</xref>, </p> </li>
+<li id="GUID-E876E576-1E94-5F06-8305-22D620A82B6F"><p> <xref href="GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6.dita#GUID-DEF3B8B3-5BD7-505B-93F9-A20CE00FFAE6/GUID-59FD1CED-5A32-5F6E-A256-821A2783D065">post-operation intercepts</xref>. </p> </li>
+</ul> <p>Plugins can register for pre-intercepts, for post-intercepts or for
+both pre and post-intercepts. </p> <p id="GUID-05F613B8-FF66-54B6-8D49-2BF92914E54E"><b>Pre-operation</b> </p> <p>Pre-operation
+intercepts occur before the drive associated with a request processes it.
+In a file write request for example, the pre-intercept operations occur before
+data has been written to the file. Requests are passed down the plugin-stack
+from the file server towards the drive thread. </p> <p>When the main file
+server thread has initialised a request, the request is dispatched to the
+highest plugin in the stack. This plugin must have been mounted on the requested
+drive and registered to pre-intercept this type of request. See <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-BED54BD9-2F3F-588E-854B-C28745C8F30A">mounting a plugin</xref>. The request is dispatched by calling the plugin's <xref href="GUID-BC0DB991-EF52-3344-8E6A-F8060B75A189.dita#GUID-BC0DB991-EF52-3344-8E6A-F8060B75A189/GUID-2EACA8A8-D569-3D6A-9383-451587A65839"><apiname>CFsPlugin::Deliver()</apiname></xref> function. </p> <p>The <codeph>Deliver()</codeph> function runs in the context of the previous calling thread,
+this can be the main file server thread or a plugin thread. Override <codeph>CFsPlugin::Deliver()</codeph> to
+filter the request. If the <codeph>Deliver()</codeph> function has not been
+overridden then the request is dispatched for asynchronous processing by calling
+the base class <codeph>Deliver()</codeph>. See the <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-97427151-C6E4-5FE4-8197-0D7C58EDB29F">CFsPlugin::Deliver()</xref> tutorial section. </p> <p id="GUID-59FD1CED-5A32-5F6E-A256-821A2783D065"><b>Post operation</b> </p> <p>Post-operation
+intercepts occur after the drive associated with a request has processed it.
+In a file write request for example, the post-intercept occurs after data
+has been written to the file. Requests are passed from the drive thread back
+up the stack towards the client. </p> <p>When the drive thread has finished
+processing a request it dispatches it to the plugin lowest in the stack by
+calling the plugin's <xref href="GUID-C6F20230-3D6C-3392-B040-CF627534B930.dita"><apiname>Deliver()</apiname></xref> function. </p> <p><b> Filtering requests internally</b> </p> <p>The <xref href="GUID-F1B37142-1EEF-3777-82B1-303982B888EC.dita#GUID-F1B37142-1EEF-3777-82B1-303982B888EC/GUID-8EBEAD17-B03C-3DBA-9A47-0F7DB07785F9"><apiname>CFSPlugin::Deliver()</apiname></xref> function
+filters the request and decides what kind of action is neccessary in terms
+of the flow of the request through the plugin stack: </p> <ul>
+<li id="GUID-3E8CAD7B-BE13-531E-A387-432F4CD463C9"><p> <xref href="GUID-1E025D93-3D66-3E88-830D-CBB3A471A777.dita"><apiname>KPluginMessageForward</apiname></xref> is
+returned if the intercept is pre-operation. The request is passed to the next
+plugin down the stack or to the drive thread if there are no more plugins. </p> </li>
+<li id="GUID-1FFEFFF4-3D5F-590F-8884-CA27B2B5B916"><p> <xref href="GUID-81C5F6A1-3FCA-33E5-99C6-7901D41BCBDE.dita"><apiname>KPluginMessageComplete</apiname></xref> is
+returned if the intercept is post-operation. The request is passed to the
+next plugin up the stack or if there are no more plugins to process the request
+it is passed to the main file server thread. </p> </li>
+</ul> <p>If the request requires processing by the plugin then the plugin's <codeph>Deliver()</codeph> function
+calls the base class <codeph>Deliver()</codeph> function and the request is
+dispatched to the plugin's thread for asynchronous processing. </p> <p>Asynchronous
+processing is carried out in the plugin's <xref href="GUID-8EF10689-68B7-391B-AD5C-4F51780165FF.dita"><apiname>DoRequestL()</apiname></xref> function.
+A plugin can only have a single <codeph>DoRequestL()</codeph> function which
+must handle both pre and post-intercepts. Plugin authors can use the <xref href="GUID-06E787C2-FAC1-36D2-9C64-11BDA1B656F1.dita"><apiname>IsPostOperation()</apiname></xref> function
+of the utility class, <xref href="GUID-A814151C-8AEC-3E16-8691-33174B64E36F.dita"><apiname>TFsPluginRequest</apiname></xref> to indicate whether
+the <codeph>DoRequestL()</codeph> is processing a request as a pre-intercept
+or post-intercept. See the description of <xref href="GUID-00764271-AD6B-5F41-AF72-843107EBF95F.dita#GUID-00764271-AD6B-5F41-AF72-843107EBF95F/GUID-14773530-7C15-52E2-A542-72A0B2163461">TFsPluginRequest</xref>. </p> <p>Once the asynchronous processing is complete the <codeph>DoRequestL()</codeph> function
+returns <codeph>KErrNone</codeph> and the request is passed to the next plugin
+down the stack by calling its <xref href="GUID-C6F20230-3D6C-3392-B040-CF627534B930.dita"><apiname>Deliver()</apiname></xref> function. If there
+are no lower plugins then the request is passed to the appropriate drive thread
+for processing. </p> <p>If the plugin intercepts a request in pre-operation
+and wants to complete the request on behalf of the client then the plugin
+can return <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> to indicate that the request
+has been completed and that the request is now in post operation mode. The
+flow will then proceed to any previous plugins if mounted or directly back
+to the client otherwise. <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> prevents any further
+plugins further down the stack from intercepting the request. </p> <p>When
+a plugin intercepts file read or file write and does an early completion (i.e.
+returns <xref href="GUID-DCECEF73-9C33-3C14-951D-E75D89B21FBA.dita"><apiname>KErrCompletion</apiname></xref> in pre-intercept) then the plugin
+author should call <xref href="GUID-A814151C-8AEC-3E16-8691-33174B64E36F.dita#GUID-A814151C-8AEC-3E16-8691-33174B64E36F/GUID-149E1448-63AA-3F08-A3A2-606D240A8927"><apiname>TFsPluginRequest::SetSharePos()</apiname></xref> to allow
+share position to be updated after early read/write completion. </p> </section>
+<section id="GUID-0B7B373D-41ED-5C91-ACC4-393A8669815A"><title>Security</title> <p>File
+server plugins are implemented as libraries that are loaded into the file
+server process at runtime. Therefore, plugins must have the same <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">platform
+security</xref> capabilities as the file server process, these are <xref href="GUID-2A022229-C333-3B0A-99A5-13CA0710025D.dita"><apiname>TCB</apiname></xref>, <xref href="GUID-E5C21B79-529B-397E-8A22-63612CA52869.dita"><apiname>ProtServ</apiname></xref>, <xref href="GUID-8DC76E7B-9EB3-3848-AD8D-3D519388A504.dita"><apiname>DiskAdmin</apiname></xref>, <xref href="GUID-ECCA7246-B2BA-3261-95C9-9E72C6EC51D4.dita"><apiname>AllFiles</apiname></xref>, <xref href="GUID-93881606-AA56-385F-A958-3957142BEFE3.dita"><apiname>PowerMgmt</apiname></xref> and <xref href="GUID-616F0C5B-D2C1-39D8-9BFC-53A2AEC7C850.dita"><apiname>CommDD</apiname></xref>. </p> <p>Any
+user side process that wishes to load and mount plugins must have the <codeph>DiskAdmin</codeph> capability. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,143 +1,143 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E" xml:lang="en"><title>Known
-Issues</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-EB71EFD6-DBEC-4C0F-B9E5-3370204AE18A"><title>ARM RVCT compiler
-issues with STLport</title><p>Due to a defect in the ARM RVCT compiler versions
-2.2, 3.1 and 4.0, building STLport v4 or STLport-based applications, creates
-some invalid export entries in DEF files. To workaround this issue, perform
-the following steps:</p><ol>
-<li id="GUID-D5C91387-CF86-4D65-ACAF-05A5500DA090"><p>Use the GCCE compiler
-to generate the DEF file, if it is not available.</p></li>
-<li id="GUID-A0D36B39-ECEB-431A-80FD-6005542F4D7F"><p>Ignore the warnings
-generated by the ARM RVCT compiler.</p><note>When you ignore the warnings,
-do not freeze the invalid export entries in the DEF file using the ARM RVCT
-compiler.</note></li>
-</ol></section>
-<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-8-1-11-1-1-9-1-6-1-3-2">       <title>Use
-of Global Destructor</title>       <p>Symbian does not invoke destructors
-of global objects upon program termination. For example, in the code below,
-the destructor <codeph>~foo()</codeph> is not called upon program termination.
-At the moment, it is advised not to perform any important operations using
-destructors.</p><codeblock xml:space="preserve">#include 
-using namespace std; 
-class foo
-{
-public:
-foo()
-{
-cout &lt;&lt;"Entering foo\n"; 
-}
-~foo()
-{
-cout &lt;&lt;"Leaving foo\n";
-}
-};
-foo foo_bar; 
-int main(void)
-{
-return 0;
-}
-
-</codeblock>     </section>
-<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-8-1-11-1-1-9-1-6-1-3-3">       <title>Issues
-with <codeph>new</codeph> operator</title>       <p>Throwing <codeph>bad_alloc</codeph> or
-any object from new on ARMV5 platfrom crashes. RVCT reports an exception when <codeph>new</codeph> throws <codeph>bad_alloc</codeph>.
-The problem occurs even if the user throws any object from within an overloaded
-operator <codeph>new</codeph>. The following new signatures are affected:</p><codeblock xml:space="preserve">void *operator new(unsigned int aSize);
-void *operator new[](unsigned int aSize);
-</codeblock><p>The following code snippet is an example that depicts the problem:</p><codeblock xml:space="preserve">class Dummy
-{
-}; 
-void *operator new(unsigned int aSize)
-{
-void* __y = malloc(aSize);
-// try to simulate bad alloc
-if (__y == 0)
-{
-throw Dummy(); //this will result in a crash
-}
-return __y;
-}
-</codeblock><p>To implement user owned overloaded version of new, the user
-must implement them as class specific. The other way this could be achieved
-is by defining new similar to:</p><codeblock xml:space="preserve">void* operator new(size_t s,newarg) throw (std::bad_alloc)</codeblock><p>and
-invoking it as:</p><codeblock xml:space="preserve">Myclass* my = new(S60) Myclass()</codeblock> 
-   </section>
-<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-8-1-11-1-1-9-1-6-1-3-4">       <title>The <codeph>id</codeph> Member
-Issue</title>       <p>The <codeph>id</codeph> member variable of facet classes
-cannot be accessed directly, it has to be accessed via the <codeph>GetFacetLocaleId()</codeph> interface.</p><p>Following
-code snippet is an example that illustrates how to <codeph>uselocale::id</codeph> while
-writing an application on top of the Standard Template Library (STL). Declare
-a static method <codeph>GetFacetLocaleId()</codeph> instead of the member
-variable id when, defining a class <codeph>base_facet</codeph> inherited from <codeph>locale::facet</codeph> in
-a header file.</p><codeblock xml:space="preserve">//b_facet.h 
-class base_facet : public locale::facet 
-{ 
-public: 
-static locale::id; 
-GetFacetLocaleId(); // in place of static locale::id
-id; 
-};
-</codeblock><p>In the source file define the method <codeph>GetFacetLocaleId()</codeph>. </p><codeblock xml:space="preserve">//b_facet.cpp
-locale::id base_facet_id; 
-locale::id&amp; base_facet::GetFacetLocaleId()
-{ 
-return base_facet_id; 
-}
-</codeblock>     </section>
-<section id="GUID-0EBB7F0F-2C2D-4707-BD53-96DC40443CAF"><title>Interleaving
-Symbian and Standard C++ Code</title><p>The user must exercise caution while
-using <codeph>try</codeph> or <codeph>catch</codeph>, and <codeph>trap</codeph> while
-interleaving Symbian C++ and Standard C++ code. Adapter code is required to
-handover or suppress exception coming from the Standard C++ to Symbian C++
-code.</p><p>Following code snippet illustrates how to use the adaptor code.
-Adaptor code can be a part of DLLA.  </p><p><b>DLL A - Symbian C++ code</b></p><codeblock xml:space="preserve">void CDoIt::Doit()
-{
-   class foo *p = new __foo__();
-   p-&gt;bar();
-   delete p;
-};
-</codeblock><p><b>DLLB - Standard C++ code</b></p><codeblock xml:space="preserve">class foo {
-public:
-  foo(); //constructor
-  bar(); // throw exception
-};
-</codeblock><p><b>DLLC - Adaptor code</b></p><codeblock xml:space="preserve">class __foo__ {
-  foo *p;
-public:
-  __foo__();
-  bar();
-};
-
-void __foo__::__foo__()
-{
-   int err = 0;
-   try {
-      p = new foo();
-   } catch {
-     err = some error
-   }
-   User::LeaveIfError(err);
-};
-void __foo__::bar()
-{
-   int err = 0;
-   try {
-      p-&gt;bar();
-   } catch {
-     err = some error
-   }
-   User::LeaveIfError(err);
-};
-</codeblock></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DF1B3C55-2CFC-49C8-88A2-D10925ECAC3E" xml:lang="en"><title>Known
+Issues</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-EB71EFD6-DBEC-4C0F-B9E5-3370204AE18A"><title>ARM RVCT compiler
+issues with STLport</title><p>Due to a defect in the ARM RVCT compiler versions
+2.2, 3.1 and 4.0, building STLport v4 or STLport-based applications, creates
+some invalid export entries in DEF files. To workaround this issue, perform
+the following steps:</p><ol>
+<li id="GUID-D5C91387-CF86-4D65-ACAF-05A5500DA090"><p>Use the GCCE compiler
+to generate the DEF file, if it is not available.</p></li>
+<li id="GUID-A0D36B39-ECEB-431A-80FD-6005542F4D7F"><p>Ignore the warnings
+generated by the ARM RVCT compiler.</p><note>When you ignore the warnings,
+do not freeze the invalid export entries in the DEF file using the ARM RVCT
+compiler.</note></li>
+</ol></section>
+<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-10-1-11-1-1-9-1-6-1-3-2">       <title>Use
+of Global Destructor</title>       <p>Symbian does not invoke destructors
+of global objects upon program termination. For example, in the code below,
+the destructor <codeph>~foo()</codeph> is not called upon program termination.
+At the moment, it is advised not to perform any important operations using
+destructors.</p><codeblock xml:space="preserve">#include 
+using namespace std; 
+class foo
+{
+public:
+foo()
+{
+cout &lt;&lt;"Entering foo\n"; 
+}
+~foo()
+{
+cout &lt;&lt;"Leaving foo\n";
+}
+};
+foo foo_bar; 
+int main(void)
+{
+return 0;
+}
+
+</codeblock>     </section>
+<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-10-1-11-1-1-9-1-6-1-3-3">       <title>Issues
+with <codeph>new</codeph> operator</title>       <p>Throwing <codeph>bad_alloc</codeph> or
+any object from new on ARMV5 platfrom crashes. RVCT reports an exception when <codeph>new</codeph> throws <codeph>bad_alloc</codeph>.
+The problem occurs even if the user throws any object from within an overloaded
+operator <codeph>new</codeph>. The following new signatures are affected:</p><codeblock xml:space="preserve">void *operator new(unsigned int aSize);
+void *operator new[](unsigned int aSize);
+</codeblock><p>The following code snippet is an example that depicts the problem:</p><codeblock xml:space="preserve">class Dummy
+{
+}; 
+void *operator new(unsigned int aSize)
+{
+void* __y = malloc(aSize);
+// try to simulate bad alloc
+if (__y == 0)
+{
+throw Dummy(); //this will result in a crash
+}
+return __y;
+}
+</codeblock><p>To implement user owned overloaded version of new, the user
+must implement them as class specific. The other way this could be achieved
+is by defining new similar to:</p><codeblock xml:space="preserve">void* operator new(size_t s,newarg) throw (std::bad_alloc)</codeblock><p>and
+invoking it as:</p><codeblock xml:space="preserve">Myclass* my = new(S60) Myclass()</codeblock> 
+   </section>
+<section id="GUID-DDE6596E-1A67-4219-8822-45A82C39DF0B-GENID-1-10-1-11-1-1-9-1-6-1-3-4">       <title>The <codeph>id</codeph> Member
+Issue</title>       <p>The <codeph>id</codeph> member variable of facet classes
+cannot be accessed directly, it has to be accessed via the <codeph>GetFacetLocaleId()</codeph> interface.</p><p>Following
+code snippet is an example that illustrates how to <codeph>uselocale::id</codeph> while
+writing an application on top of the Standard Template Library (STL). Declare
+a static method <codeph>GetFacetLocaleId()</codeph> instead of the member
+variable id when, defining a class <codeph>base_facet</codeph> inherited from <codeph>locale::facet</codeph> in
+a header file.</p><codeblock xml:space="preserve">//b_facet.h 
+class base_facet : public locale::facet 
+{ 
+public: 
+static locale::id; 
+GetFacetLocaleId(); // in place of static locale::id
+id; 
+};
+</codeblock><p>In the source file define the method <codeph>GetFacetLocaleId()</codeph>. </p><codeblock xml:space="preserve">//b_facet.cpp
+locale::id base_facet_id; 
+locale::id&amp; base_facet::GetFacetLocaleId()
+{ 
+return base_facet_id; 
+}
+</codeblock>     </section>
+<section id="GUID-0EBB7F0F-2C2D-4707-BD53-96DC40443CAF"><title>Interleaving
+Symbian and Standard C++ Code</title><p>The user must exercise caution while
+using <codeph>try</codeph> or <codeph>catch</codeph>, and <codeph>trap</codeph> while
+interleaving Symbian C++ and Standard C++ code. Adapter code is required to
+handover or suppress exception coming from the Standard C++ to Symbian C++
+code.</p><p>Following code snippet illustrates how to use the adaptor code.
+Adaptor code can be a part of DLLA.  </p><p><b>DLL A - Symbian C++ code</b></p><codeblock xml:space="preserve">void CDoIt::Doit()
+{
+   class foo *p = new __foo__();
+   p-&gt;bar();
+   delete p;
+};
+</codeblock><p><b>DLLB - Standard C++ code</b></p><codeblock xml:space="preserve">class foo {
+public:
+  foo(); //constructor
+  bar(); // throw exception
+};
+</codeblock><p><b>DLLC - Adaptor code</b></p><codeblock xml:space="preserve">class __foo__ {
+  foo *p;
+public:
+  __foo__();
+  bar();
+};
+
+void __foo__::__foo__()
+{
+   int err = 0;
+   try {
+      p = new foo();
+   } catch {
+     err = some error
+   }
+   User::LeaveIfError(err);
+};
+void __foo__::bar()
+{
+   int err = 0;
+   try {
+      p-&gt;bar();
+   } catch {
+     err = some error
+   }
+   User::LeaveIfError(err);
+};
+</codeblock></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e124732_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DF37DAC3-8B86-5674-B025-931F743ED888_d0e131270_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e16477_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e46823_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e52379_href.png has changed
--- a/Symbian3/SDK/Source/GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F" xml:lang="en"><title>Signal
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Signal pane displays the cellular signal strength indicator.</p>
-<fig id="GUID-9808D929-9B9B-4FA6-9F71-47EA618FDC91">
-<title>Signal pane (left)</title>
-<image href="GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e72782_href.png" placement="inline"/>
-</fig>
-<p>The indicator may also contain information about a packet data connection
-(such as GPRS) status.</p>
-<p>The Signal pane is not accessible
-to applications.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DF3F2FD0-FF68-4CEF-843F-CBC9E84F3A7F" xml:lang="en"><title>Signal
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Signal pane displays the cellular signal strength indicator.</p>
+<fig id="GUID-9808D929-9B9B-4FA6-9F71-47EA618FDC91">
+<title>Signal pane (left)</title>
+<image href="GUID-924576EE-A016-4689-8B63-E8176063E1E6_d0e67660_href.png" placement="inline"/>
+</fig>
+<p>The indicator may also contain information about a packet data connection
+(such as GPRS) status.</p>
+<p>The Signal pane is not accessible
+to applications.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E"><title>Introduction to Swizzles and deferred loading </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>In complex applications involving a large network of objects, it may be desirable, and even necessary, to defer the loading of objects into memory from the store.</p> <p>It should, therefore, be possible to represent such an object in one of two ways:</p> <ul><li id="GUID-11F8C7C2-C67E-56A0-9F17-9068E69085FF"><p>by the stream ID of the stream containing the external representation of that object, if it is not in memory.</p> </li> <li id="GUID-07C65069-0F05-53D8-AFF8-DD539371CD6D"><p>by a pointer, if it is in memory (or has already been loaded into memory); the pointer points to the in-memory object.</p> </li> </ul> <p>A Swizzle is a device for handling this dual representation.</p> <p>A typical container type object, therefore, does not have a pointer directly to a contained object, but has a Swizzle which can represent that contained object <i>either</i> as a pointer <i>or</i> as a stream ID, as illustrated in the following diagram.</p> <fig id="GUID-F057540D-3613-538E-947F-04C414280A8F"><image href="GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e363397_href.png" placement="inline"/></fig> <p>A Swizzle can be considered as a lean, but efficient, container in its own right.</p> <p>The concrete Swizzle classes are templated; the template parameter defines the type of object which the Swizzle represents.</p> <p>There are two general concrete Swizzle classes:</p> <ul><li id="GUID-AB85BEFF-8377-566B-9073-5C9C3489F3DB"><p><codeph>TSwizzle&lt;class T&gt;</codeph> </p> </li> <li id="GUID-32CF088B-01FA-585B-9C1C-3DC73E83BE85"><p><codeph>TSwizzleC&lt;class T&gt;</codeph> </p> </li> </ul> <p>A <codeph>TSwizzle&lt;class T&gt;</codeph> represents a <codeph>&lt;class T&gt;</codeph> type object. Full access is available to the <codeph>&lt;class T&gt;</codeph> type object through the Swizzle.</p> <p>A <codeph>TSwizzleC&lt;class T&gt;</codeph> represents a <codeph>&lt;class T&gt;</codeph> type object. Access to the object is limited; in particular the object cannot be changed.</p> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-DF7959E7-15A4-5504-8D22-B8189DB2688E"><title>Introduction to Swizzles and deferred loading </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>In complex applications involving a large network of objects, it may be desirable, and even necessary, to defer the loading of objects into memory from the store.</p> <p>It should, therefore, be possible to represent such an object in one of two ways:</p> <ul><li id="GUID-11F8C7C2-C67E-56A0-9F17-9068E69085FF"><p>by the stream ID of the stream containing the external representation of that object, if it is not in memory.</p> </li> <li id="GUID-07C65069-0F05-53D8-AFF8-DD539371CD6D"><p>by a pointer, if it is in memory (or has already been loaded into memory); the pointer points to the in-memory object.</p> </li> </ul> <p>A Swizzle is a device for handling this dual representation.</p> <p>A typical container type object, therefore, does not have a pointer directly to a contained object, but has a Swizzle which can represent that contained object <i>either</i> as a pointer <i>or</i> as a stream ID, as illustrated in the following diagram.</p> <fig id="GUID-F057540D-3613-538E-947F-04C414280A8F"><image href="GUID-8AF21373-E51E-5B9D-ACC1-243752C9BB5B_d0e357317_href.png" placement="inline"/></fig> <p>A Swizzle can be considered as a lean, but efficient, container in its own right.</p> <p>The concrete Swizzle classes are templated; the template parameter defines the type of object which the Swizzle represents.</p> <p>There are two general concrete Swizzle classes:</p> <ul><li id="GUID-AB85BEFF-8377-566B-9073-5C9C3489F3DB"><p><codeph>TSwizzle&lt;class T&gt;</codeph> </p> </li> <li id="GUID-32CF088B-01FA-585B-9C1C-3DC73E83BE85"><p><codeph>TSwizzleC&lt;class T&gt;</codeph> </p> </li> </ul> <p>A <codeph>TSwizzle&lt;class T&gt;</codeph> represents a <codeph>&lt;class T&gt;</codeph> type object. Full access is available to the <codeph>&lt;class T&gt;</codeph> type object through the Swizzle.</p> <p>A <codeph>TSwizzleC&lt;class T&gt;</codeph> represents a <codeph>&lt;class T&gt;</codeph> type object. Access to the object is limited; in particular the object cannot be changed.</p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e79092_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DF83E798-408C-5E69-9520-A733DAEAB788_d0e85804_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655-master.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e51793_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e57398_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e58465_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e62487_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e69038_href.png has changed
Binary file Symbian3/SDK/Source/GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e74183_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-3-1-1-4-1-4-1" xml:lang="en"><title>Using
+the extended notifier framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-41892CE3-A4CC-5761-9469-530D6D18EDFE-GENID-1-10-1-3-1-1-4-1-4-1-2-1"><title>The framework</title> <p>Notifiers
+allow components with no direct UI linkage to interact with the user via an
+interface such as a dialog box. For example, a low level component might want
+to warn the user about a low battery level. Typically, such a component would
+not have direct access, or knowledge of, a UI. The solution to this problem
+is provided by what are known as notifiers and the extended notifier framework.
+The UI element (the dialog box) is provided by the device's UI
+through what are known as notifier plug-ins. </p> <p>The extended notifier
+framework is a system that loads these plug-in DLLs from <filepath>Z\sys\bin\notifiers</filepath>. </p> <p>These
+DLLs are expected to export a single factory function at ordinal #1 that returns
+an array of notifiers. A special notifier target type is supported by makmake.
+The second Uid for notifiers should be 0x10005522. </p> <p>The behaviour of
+notifiers is supplied by providing an implementation of the <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> interface
+. A notifier is associated with a channel and a priority. Priority is used
+to determine the order of activation if more than one notifier is activated
+at any time. Priority only affects notifiers on the same channel (for example,
+a screen or LED). This means that two notifiers can be active at the same
+time provided that they are on different channels. </p> <p>The channel and
+priority used by all the notifiers in the system needs to be considered carefully
+to avoid them interfering with each other in unexpected ways. The <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> derived
+class also needs to be implemented correctly. Notifiers run in the UIKON server
+thread and are accessed on the client side via <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>.
+Note that if a notifier panics it will lead to a device reset. </p> </section>
+<section id="GUID-9322CFDB-D07E-54C3-86B1-13BFB082B175-GENID-1-10-1-3-1-1-4-1-4-1-2-2"><title>The factory
+function</title> <p>The factory function at ordinal #1 is expected to return
+an array of notifiers. The following is a typical implementation: </p> <codeblock id="GUID-F5B8C31B-110E-569A-BE9E-3986E94A506D-GENID-1-10-1-3-1-1-4-1-4-1-2-2-3" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray()
+    {
+    CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* notifiers=new CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;(5);
+       if (notifiers)
+        {
+        TRAPD(err, CreateNotifiersL(notifiers));
+        if(err)
+            {
+            TInt count = notifiers-&gt;Count();
+            while(count--)
+                {
+                (*notifiers)[count]-&gt;Release();
+                }
+            delete notifiers;
+            notifiers = NULL;
+            }
+        }
+    return(notifiers);
+    }
+</codeblock> <note><p>Ownership of the notifier array or its contents is not
+transferred to the framework until this function returns. To avoid memory
+leaks, all acquired resources must be freed if anything goes wrong part of
+the way through its processing. </p></note> <p>Calling <codeph>Release()</codeph> on
+a notifier should cause that notifier to free all of its resources, and as
+a minimum should call <codeph>delete           this;</codeph>. See <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita#GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0/GUID-CF772B65-7D65-3ADC-B566-9ED2A263942F"><apiname>MEikSrvNotifierBase2::Release()</apiname></xref>. </p> <p>Returning
+a <codeph>Null</codeph> value from this function causes the framework to leave
+with <xref href="GUID-64F6761A-4716-37C3-8984-FF18FC8B7B7D.dita"><apiname>KErrNoMemory</apiname></xref>. </p> <p>The <codeph>CreateNotifiersL()</codeph> function
+should be implemented as follows: </p> <codeblock id="GUID-15535A2D-A1F3-5A18-99B7-B2973BDFB255-GENID-1-10-1-3-1-1-4-1-4-1-2-2-8" xml:space="preserve">LOCAL_C void CreateNotifiersL(CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* aNotifiers)
+    {
+    MEikSrvNotifierBase2* notifier;
+    notifier = CMyNotifierA::NewL();
+    CleanupStack::PushL(notifier);
+       aNotifiers-&gt;AppendL(notifier);
+       CleanupStack::Pop(notifier);
+    ... 
+    ...
+    // typically, repeat this procedure for as
+    // many notifiers as are implemented
+    // in the plug-in DLL.
+    }</codeblock> <note><p>Use of the standard Symbian platform technique
+of using the cleanup stack to hold pointers to allocated objects for as long
+as these objects have no owner; this prevents memory leaks. For this reason,
+avoid using a technique such as <codeph>aNotifiers-&gt;AppendL(CMyNotifierA::NewL());</codeph>,
+which, although shorter, will result in a memory leak if the <codeph>AppendL()</codeph> operation
+fails. </p></note> </section>
+</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-6-1-1-3-1-10-1.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-10-1-6-1-1-3-1-10-1" xml:lang="en"><title>Using
+the extended notifier framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-41892CE3-A4CC-5761-9469-530D6D18EDFE-GENID-1-10-1-6-1-1-3-1-10-1-2-1"><title>The framework</title> <p>Notifiers
+allow components with no direct UI linkage to interact with the user via an
+interface such as a dialog box. For example, a low level component might want
+to warn the user about a low battery level. Typically, such a component would
+not have direct access, or knowledge of, a UI. The solution to this problem
+is provided by what are known as notifiers and the extended notifier framework.
+The UI element (the dialog box) is provided by the device's UI
+through what are known as notifier plug-ins. </p> <p>The extended notifier
+framework is a system that loads these plug-in DLLs from <filepath>Z\sys\bin\notifiers</filepath>. </p> <p>These
+DLLs are expected to export a single factory function at ordinal #1 that returns
+an array of notifiers. A special notifier target type is supported by makmake.
+The second Uid for notifiers should be 0x10005522. </p> <p>The behaviour of
+notifiers is supplied by providing an implementation of the <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> interface
+. A notifier is associated with a channel and a priority. Priority is used
+to determine the order of activation if more than one notifier is activated
+at any time. Priority only affects notifiers on the same channel (for example,
+a screen or LED). This means that two notifiers can be active at the same
+time provided that they are on different channels. </p> <p>The channel and
+priority used by all the notifiers in the system needs to be considered carefully
+to avoid them interfering with each other in unexpected ways. The <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> derived
+class also needs to be implemented correctly. Notifiers run in the UIKON server
+thread and are accessed on the client side via <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>.
+Note that if a notifier panics it will lead to a device reset. </p> </section>
+<section id="GUID-9322CFDB-D07E-54C3-86B1-13BFB082B175-GENID-1-10-1-6-1-1-3-1-10-1-2-2"><title>The factory
+function</title> <p>The factory function at ordinal #1 is expected to return
+an array of notifiers. The following is a typical implementation: </p> <codeblock id="GUID-F5B8C31B-110E-569A-BE9E-3986E94A506D-GENID-1-10-1-6-1-1-3-1-10-1-2-2-3" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray()
+    {
+    CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* notifiers=new CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;(5);
+       if (notifiers)
+        {
+        TRAPD(err, CreateNotifiersL(notifiers));
+        if(err)
+            {
+            TInt count = notifiers-&gt;Count();
+            while(count--)
+                {
+                (*notifiers)[count]-&gt;Release();
+                }
+            delete notifiers;
+            notifiers = NULL;
+            }
+        }
+    return(notifiers);
+    }
+</codeblock> <note><p>Ownership of the notifier array or its contents is not
+transferred to the framework until this function returns. To avoid memory
+leaks, all acquired resources must be freed if anything goes wrong part of
+the way through its processing. </p></note> <p>Calling <codeph>Release()</codeph> on
+a notifier should cause that notifier to free all of its resources, and as
+a minimum should call <codeph>delete           this;</codeph>. See <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita#GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0/GUID-CF772B65-7D65-3ADC-B566-9ED2A263942F"><apiname>MEikSrvNotifierBase2::Release()</apiname></xref>. </p> <p>Returning
+a <codeph>Null</codeph> value from this function causes the framework to leave
+with <xref href="GUID-64F6761A-4716-37C3-8984-FF18FC8B7B7D.dita"><apiname>KErrNoMemory</apiname></xref>. </p> <p>The <codeph>CreateNotifiersL()</codeph> function
+should be implemented as follows: </p> <codeblock id="GUID-15535A2D-A1F3-5A18-99B7-B2973BDFB255-GENID-1-10-1-6-1-1-3-1-10-1-2-2-8" xml:space="preserve">LOCAL_C void CreateNotifiersL(CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* aNotifiers)
+    {
+    MEikSrvNotifierBase2* notifier;
+    notifier = CMyNotifierA::NewL();
+    CleanupStack::PushL(notifier);
+       aNotifiers-&gt;AppendL(notifier);
+       CleanupStack::Pop(notifier);
+    ... 
+    ...
+    // typically, repeat this procedure for as
+    // many notifiers as are implemented
+    // in the plug-in DLL.
+    }</codeblock> <note><p>Use of the standard Symbian platform technique
+of using the cleanup stack to hold pointers to allocated objects for as long
+as these objects have no owner; this prevents memory leaks. For this reason,
+avoid using a technique such as <codeph>aNotifiers-&gt;AppendL(CMyNotifierA::NewL());</codeph>,
+which, although shorter, will result in a memory leak if the <codeph>AppendL()</codeph> operation
+fails. </p></note> </section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-3-1-1-11-1-4-1" xml:lang="en"><title>Using
-the extended notifier framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-41892CE3-A4CC-5761-9469-530D6D18EDFE-GENID-1-8-1-3-1-1-11-1-4-1-2-1"><title>The framework</title> <p>Notifiers
-allow components with no direct UI linkage to interact with the user via an
-interface such as a dialog box. For example, a low level component might want
-to warn the user about a low battery level. Typically, such a component would
-not have direct access, or knowledge of, a UI. The solution to this problem
-is provided by what are known as notifiers and the extended notifier framework.
-The UI element (the dialog box) is provided by the device's UI
-through what are known as notifier plug-ins. </p> <p>The extended notifier
-framework is a system that loads these plug-in DLLs from <filepath>Z\sys\bin\notifiers</filepath>. </p> <p>These
-DLLs are expected to export a single factory function at ordinal #1 that returns
-an array of notifiers. A special notifier target type is supported by makmake.
-The second Uid for notifiers should be 0x10005522. </p> <p>The behaviour of
-notifiers is supplied by providing an implementation of the <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> interface
-. A notifier is associated with a channel and a priority. Priority is used
-to determine the order of activation if more than one notifier is activated
-at any time. Priority only affects notifiers on the same channel (for example,
-a screen or LED). This means that two notifiers can be active at the same
-time provided that they are on different channels. </p> <p>The channel and
-priority used by all the notifiers in the system needs to be considered carefully
-to avoid them interfering with each other in unexpected ways. The <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> derived
-class also needs to be implemented correctly. Notifiers run in the UIKON server
-thread and are accessed on the client side via <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>.
-Note that if a notifier panics it will lead to a device reset. </p> </section>
-<section id="GUID-9322CFDB-D07E-54C3-86B1-13BFB082B175-GENID-1-8-1-3-1-1-11-1-4-1-2-2"><title>The factory
-function</title> <p>The factory function at ordinal #1 is expected to return
-an array of notifiers. The following is a typical implementation: </p> <codeblock id="GUID-F5B8C31B-110E-569A-BE9E-3986E94A506D-GENID-1-8-1-3-1-1-11-1-4-1-2-2-3" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray()
-    {
-    CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* notifiers=new CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;(5);
-       if (notifiers)
-        {
-        TRAPD(err, CreateNotifiersL(notifiers));
-        if(err)
-            {
-            TInt count = notifiers-&gt;Count();
-            while(count--)
-                {
-                (*notifiers)[count]-&gt;Release();
-                }
-            delete notifiers;
-            notifiers = NULL;
-            }
-        }
-    return(notifiers);
-    }
-</codeblock> <note><p>Ownership of the notifier array or its contents is not
-transferred to the framework until this function returns. To avoid memory
-leaks, all acquired resources must be freed if anything goes wrong part of
-the way through its processing. </p></note> <p>Calling <codeph>Release()</codeph> on
-a notifier should cause that notifier to free all of its resources, and as
-a minimum should call <codeph>delete           this;</codeph>. See <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita#GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0/GUID-CF772B65-7D65-3ADC-B566-9ED2A263942F"><apiname>MEikSrvNotifierBase2::Release()</apiname></xref>. </p> <p>Returning
-a <codeph>Null</codeph> value from this function causes the framework to leave
-with <xref href="GUID-64F6761A-4716-37C3-8984-FF18FC8B7B7D.dita"><apiname>KErrNoMemory</apiname></xref>. </p> <p>The <codeph>CreateNotifiersL()</codeph> function
-should be implemented as follows: </p> <codeblock id="GUID-15535A2D-A1F3-5A18-99B7-B2973BDFB255-GENID-1-8-1-3-1-1-11-1-4-1-2-2-8" xml:space="preserve">LOCAL_C void CreateNotifiersL(CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* aNotifiers)
-    {
-    MEikSrvNotifierBase2* notifier;
-    notifier = CMyNotifierA::NewL();
-    CleanupStack::PushL(notifier);
-       aNotifiers-&gt;AppendL(notifier);
-       CleanupStack::Pop(notifier);
-    ... 
-    ...
-    // typically, repeat this procedure for as
-    // many notifiers as are implemented
-    // in the plug-in DLL.
-    }</codeblock> <note><p>Use of the standard Symbian platform technique
-of using the cleanup stack to hold pointers to allocated objects for as long
-as these objects have no owner; this prevents memory leaks. For this reason,
-avoid using a technique such as <codeph>aNotifiers-&gt;AppendL(CMyNotifierA::NewL());</codeph>,
-which, although shorter, will result in a memory leak if the <codeph>AppendL()</codeph> operation
-fails. </p></note> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-6-1-1-3-1-10-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E049772D-A96F-592F-AF59-C9B69E8D24C1-GENID-1-8-1-6-1-1-3-1-10-1" xml:lang="en"><title>Using
-the extended notifier framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-41892CE3-A4CC-5761-9469-530D6D18EDFE-GENID-1-8-1-6-1-1-3-1-10-1-2-1"><title>The framework</title> <p>Notifiers
-allow components with no direct UI linkage to interact with the user via an
-interface such as a dialog box. For example, a low level component might want
-to warn the user about a low battery level. Typically, such a component would
-not have direct access, or knowledge of, a UI. The solution to this problem
-is provided by what are known as notifiers and the extended notifier framework.
-The UI element (the dialog box) is provided by the device's UI
-through what are known as notifier plug-ins. </p> <p>The extended notifier
-framework is a system that loads these plug-in DLLs from <filepath>Z\sys\bin\notifiers</filepath>. </p> <p>These
-DLLs are expected to export a single factory function at ordinal #1 that returns
-an array of notifiers. A special notifier target type is supported by makmake.
-The second Uid for notifiers should be 0x10005522. </p> <p>The behaviour of
-notifiers is supplied by providing an implementation of the <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> interface
-. A notifier is associated with a channel and a priority. Priority is used
-to determine the order of activation if more than one notifier is activated
-at any time. Priority only affects notifiers on the same channel (for example,
-a screen or LED). This means that two notifiers can be active at the same
-time provided that they are on different channels. </p> <p>The channel and
-priority used by all the notifiers in the system needs to be considered carefully
-to avoid them interfering with each other in unexpected ways. The <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita"><apiname>MEikSrvNotifierBase2</apiname></xref> derived
-class also needs to be implemented correctly. Notifiers run in the UIKON server
-thread and are accessed on the client side via <xref href="GUID-A6B66713-FECA-3BE7-BB81-1AE5551AD83D.dita"><apiname>RNotifier</apiname></xref>.
-Note that if a notifier panics it will lead to a device reset. </p> </section>
-<section id="GUID-9322CFDB-D07E-54C3-86B1-13BFB082B175-GENID-1-8-1-6-1-1-3-1-10-1-2-2"><title>The factory
-function</title> <p>The factory function at ordinal #1 is expected to return
-an array of notifiers. The following is a typical implementation: </p> <codeblock id="GUID-F5B8C31B-110E-569A-BE9E-3986E94A506D-GENID-1-8-1-6-1-1-3-1-10-1-2-2-3" xml:space="preserve">EXPORT_C CArrayPtr&lt;MEikSrvNotifierBase2&gt;* NotifierArray()
-    {
-    CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* notifiers=new CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;(5);
-       if (notifiers)
-        {
-        TRAPD(err, CreateNotifiersL(notifiers));
-        if(err)
-            {
-            TInt count = notifiers-&gt;Count();
-            while(count--)
-                {
-                (*notifiers)[count]-&gt;Release();
-                }
-            delete notifiers;
-            notifiers = NULL;
-            }
-        }
-    return(notifiers);
-    }
-</codeblock> <note><p>Ownership of the notifier array or its contents is not
-transferred to the framework until this function returns. To avoid memory
-leaks, all acquired resources must be freed if anything goes wrong part of
-the way through its processing. </p></note> <p>Calling <codeph>Release()</codeph> on
-a notifier should cause that notifier to free all of its resources, and as
-a minimum should call <codeph>delete           this;</codeph>. See <xref href="GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0.dita#GUID-DE445C4B-22EF-3A1F-8A69-57CB703BFAD0/GUID-CF772B65-7D65-3ADC-B566-9ED2A263942F"><apiname>MEikSrvNotifierBase2::Release()</apiname></xref>. </p> <p>Returning
-a <codeph>Null</codeph> value from this function causes the framework to leave
-with <xref href="GUID-64F6761A-4716-37C3-8984-FF18FC8B7B7D.dita"><apiname>KErrNoMemory</apiname></xref>. </p> <p>The <codeph>CreateNotifiersL()</codeph> function
-should be implemented as follows: </p> <codeblock id="GUID-15535A2D-A1F3-5A18-99B7-B2973BDFB255-GENID-1-8-1-6-1-1-3-1-10-1-2-2-8" xml:space="preserve">LOCAL_C void CreateNotifiersL(CArrayPtrFlat&lt;MEikSrvNotifierBase2&gt;* aNotifiers)
-    {
-    MEikSrvNotifierBase2* notifier;
-    notifier = CMyNotifierA::NewL();
-    CleanupStack::PushL(notifier);
-       aNotifiers-&gt;AppendL(notifier);
-       CleanupStack::Pop(notifier);
-    ... 
-    ...
-    // typically, repeat this procedure for as
-    // many notifiers as are implemented
-    // in the plug-in DLL.
-    }</codeblock> <note><p>Use of the standard Symbian platform technique
-of using the cleanup stack to hold pointers to allocated objects for as long
-as these objects have no owner; this prevents memory leaks. For this reason,
-avoid using a technique such as <codeph>aNotifiers-&gt;AppendL(CMyNotifierA::NewL());</codeph>,
-which, although shorter, will result in a memory leak if the <codeph>AppendL()</codeph> operation
-fails. </p></note> </section>
-</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e67575_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E04B4397-2926-4F4D-A7FE-F79F3BF37BF8_d0e72373_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4" xml:lang="en"><title>Control
-and animation framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Complex GUI applications usually need to define and use their own controls,
-in addition to using the standard controls. This is done using the <xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI
-Control Framework</xref>.</p>
-<p>Application user interfaces can also be made more attractive by adding <xref href="GUID-829761B6-ECF7-5E15-A475-AEE357687067-GENID-1-8-1-3-1-1-4-1-3-1.dita">animations</xref> and the
-simple to use <xref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247-GENID-1-8-1-3-1-1-5-1-3-1.dita">bitmap
-animations</xref>.</p>
-<p>Classic UI also provides <xref href="GUID-C9823942-CE52-53E3-B183-3B1F6509749F-GENID-1-8-1-3-1-1-8-1-3-1.dita">UI
-Graphics Utilities</xref> for miscellaneous user interface utility
-functions, related to fonts, colors, and drawing. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E079315A-E5B6-4D33-B7E3-88697A3F11A4" xml:lang="en"><title>Control
+and animation framework</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Complex GUI applications usually need to define and use their own controls,
+in addition to using the standard controls. This is done using the <xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI
+Control Framework</xref>.</p>
+<p>Application user interfaces can also be made more attractive by adding <xref href="GUID-829761B6-ECF7-5E15-A475-AEE357687067.dita">animations</xref> and the
+simple to use <xref href="GUID-05D6AB1C-8548-58C6-AA6C-EE362FF49247.dita">bitmap
+animations</xref>.</p>
+<p>Classic UI also provides <xref href="GUID-C9823942-CE52-53E3-B183-3B1F6509749F.dita">UI
+Graphics Utilities</xref> for miscellaneous user interface utility
+functions, related to fonts, colors, and drawing. </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e303526_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-E09CA978-2599-50F9-AF6D-077AD7D5CA6F_d0e309541_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD"><title>Socket connection example</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This example shows the relationship that sockets, connections and subconnections have to each other. </p> <fig id="GUID-E53D154C-9B26-5404-BA85-9EF1572B17CD"><image href="GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e118177_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E0A02CCA-486B-592E-9B3B-BA4A378EC5AD"><title>Socket connection example</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This example shows the relationship that sockets, connections and subconnections have to each other. </p> <fig id="GUID-E53D154C-9B26-5404-BA85-9EF1572B17CD"><image href="GUID-646C2A7A-B90C-5E82-B44F-EA24DDBB1EC5_d0e111639_href.png" placement="inline"/></fig> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E0C21636-657A-413F-A905-A08608B60768.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E0C21636-657A-413F-A905-A08608B60768.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E0C21636-657A-413F-A905-A08608B60768" xml:lang="en"><title>Touch
-UI utilities API class structure</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The class structure consists of the class <codeph>CaknLongTapDetector</codeph>.
-The <codeph>MaknLongTapDetectorCallBack</codeph> interface is used for notifying
-clients about long tap events.</p>
-<fig id="GUID-9BC1E66F-A6EC-4976-BCDA-A80BD3B921DC">
-<title>Touch UI utilities API class structure</title>
-<image href="GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e80478_href.png" scale="70" placement="inline"/>
-</fig>
-<p>To receive long tap events in your application, implement the <codeph>MaknLongTapDetectorCallBack</codeph> interface.
-When the user makes long tap on the device screen, the framework sends events
-through this interface. Use the method <codeph>HandleLongTapEventL</codeph> to
-handle the events sent by the framework.</p>
-<p>You need to have a separate instance of this class for each client component
-using it to observe long taps in the component’s control area.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E0C21636-657A-413F-A905-A08608B60768" xml:lang="en"><title>Touch
+UI utilities API class structure</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The class structure consists of the class <codeph>CaknLongTapDetector</codeph>.
+The <codeph>MaknLongTapDetectorCallBack</codeph> interface is used for notifying
+clients about long tap events.</p>
+<fig id="GUID-9BC1E66F-A6EC-4976-BCDA-A80BD3B921DC">
+<title>Touch UI utilities API class structure</title>
+<image href="GUID-5C1EC237-EBC3-474D-B58D-502B82911DCA_d0e75346_href.png" scale="70" placement="inline"/>
+</fig>
+<p>To receive long tap events in your application, implement the <codeph>MaknLongTapDetectorCallBack</codeph> interface.
+When the user makes long tap on the device screen, the framework sends events
+through this interface. Use the method <codeph>HandleLongTapEventL</codeph> to
+handle the events sent by the framework.</p>
+<p>You need to have a separate instance of this class for each client component
+using it to observe long taps in the component’s control area.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C" xml:lang="en"><title>Internationalization
-and localization</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>You need to take internationalization concerns into account as early
-as possible when designing your application. </p>
-<p>When localizing your application, there are two different concerns that
-you need to manage in your project. These are as follows:</p>
-<ul>
-<li><p>Date, Times, Currency, and other locale-sensitive data types.</p>
-</li>
-<li><p>UI text strings.</p></li>
-</ul>
-<p>For information on loading resources, see <xref href="GUID-651C2913-2AB9-5873-B296-5C4233967F21-GENID-1-8-1-3-1-1-7-1-5-1.dita">CONE
-resource loader overview</xref></p>
-<p>This section describes internationalization and localization, including:</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E111C4E8-1342-4E87-ACB4-5B630AF1501C" xml:lang="en"><title>Internationalization
+and localization</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>You need to take internationalization concerns into account as early
+as possible when designing your application. </p>
+<p>When localizing your application, there are two different concerns that
+you need to manage in your project. These are as follows:</p>
+<ul>
+<li><p>Date, Times, Currency, and other locale-sensitive data types.</p>
+</li>
+<li><p>UI text strings.</p></li>
+</ul>
+<p>For information on loading resources, see <xref href="GUID-651C2913-2AB9-5873-B296-5C4233967F21.dita">CONE
+resource loader overview</xref></p>
+<p>This section describes internationalization and localization, including:</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E1410365-7254-5326-B3F7-D7100D31E59F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E1410365-7254-5326-B3F7-D7100D31E59F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E1410365-7254-5326-B3F7-D7100D31E59F"><title>Array of variable length elements, segmented buffer</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This is a <codeph>CArrayVarSeg&lt;class T&gt;</codeph> object whose elements can have different lengths. Although each element is a <codeph>class T</codeph> object, the length of that object can vary.</p> <p>In this type of array, each element occupies its own individual cell allocated from the heap. The array buffer contains fixed length data structures, one for each element, which are logically contiguous within the buffer but are physically contiguous only within a segment. Each fixed length data structure contains the length of an element (a <codeph>TInt</codeph> value) and a pointer to it. The structure itself is part of the implementation but occupies no more than eight bytes on 32-bit machines.</p> <p>A segmented buffer is implemented as a doubly linked list of equally sized cells allocated from the heap and is always extended by allocating a new segment and inserting it into the appropriate place in the list. A segmented array buffer is implemented using a <codeph>CBufSeg</codeph> object. </p> <p>The following diagram illustrates how elements are organised within the array buffer:</p> <fig id="GUID-D8FD08B3-2896-56FE-8252-E88A250655C4"><image href="GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e219497_href.png" placement="inline"/></fig> <p>This kind of array is suitable for large arrays with a high turnover of elements.</p> <p>This class is immediately derived from the abstract templated base class <codeph>CArrayVar&lt;class T&gt;</codeph> which is itself derived from the abstract non-templated base class <codeph>CArrayVarBase</codeph>. </p> <section><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Dynamic Buffers Guide</xref>.</p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E1410365-7254-5326-B3F7-D7100D31E59F"><title>Array of variable length elements, segmented buffer</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This is a <codeph>CArrayVarSeg&lt;class T&gt;</codeph> object whose elements can have different lengths. Although each element is a <codeph>class T</codeph> object, the length of that object can vary.</p> <p>In this type of array, each element occupies its own individual cell allocated from the heap. The array buffer contains fixed length data structures, one for each element, which are logically contiguous within the buffer but are physically contiguous only within a segment. Each fixed length data structure contains the length of an element (a <codeph>TInt</codeph> value) and a pointer to it. The structure itself is part of the implementation but occupies no more than eight bytes on 32-bit machines.</p> <p>A segmented buffer is implemented as a doubly linked list of equally sized cells allocated from the heap and is always extended by allocating a new segment and inserting it into the appropriate place in the list. A segmented array buffer is implemented using a <codeph>CBufSeg</codeph> object. </p> <p>The following diagram illustrates how elements are organised within the array buffer:</p> <fig id="GUID-D8FD08B3-2896-56FE-8252-E88A250655C4"><image href="GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e215760_href.png" placement="inline"/></fig> <p>This kind of array is suitable for large arrays with a high turnover of elements.</p> <p>This class is immediately derived from the abstract templated base class <codeph>CArrayVar&lt;class T&gt;</codeph> which is itself derived from the abstract non-templated base class <codeph>CArrayVarBase</codeph>. </p> <section><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Dynamic Buffers Guide</xref>.</p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60" xml:lang="en"><title>Pointers
-to the start and end of contiguous regions</title><shortdesc>The <codeph>Back()</codeph> and <codeph>End()</codeph> functions
-point to locations in memory for flat and segmented arrays.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>For those arrays of same length elements which are derived from <codeph>CArrayFix&lt;class T&gt;</codeph>,
-the elements are contained within an array buffer which can be implemented
-as a flat buffer or as a segmented buffer. A flat buffer is implemented as
-a single contiguous region of memory while a segmented buffer is implemented
-as a set of separate but linked regions of memory </p>
-<p>Given the position of an element within an array, it can be useful to fetch
-a pointer to the first byte following the end of the contiguous region of
-memory containing that element (the <i>end</i> pointer). Similarly, it can
-be useful to fetch a pointer to the <i>beginning</i> of a contiguous region
-of memory (the <i>back</i> pointer).</p>
-<section id="GUID-DB6D5E2F-CFEE-47EC-B38D-9D0DC13B994D"><title>Array of same length elements</title> <p>An array of same
-length elements uses the <codeph>End()</codeph> function to fetch the end
-pointer and the <codeph>Back()</codeph> function to fetch the back pointer.
-The implementation of these two functions differs between a fixed flat array
-and a fixed segmented array.</p> </section>
-<section id="GUID-48756A91-9B8F-4BA8-A0CF-52970F8B41CC"><title>Flat array</title> <p>For a flat array — i.e. an array whose
-buffer is implemented using a flat buffer — the end pointer simply points
-to the first byte following the single region of memory containing the array
-buffer. The back pointer simply points to the first byte of the single region
-of memory (as illustrated below); <codeph>End()</codeph> always returns a
-pointer to the first byte following the end of the buffer, while <codeph>Back()</codeph> always
-returns a pointer to the beginning of the buffer.</p> <fig id="GUID-D4084F4C-B928-5779-A58F-CB495A74EE68">
-<title>End() and Back() in fixed flat arrays</title>
-<image href="GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e220584_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-27F85346-3B08-4E06-A80D-A5B708105659"><title>Segmented array</title> <p>For a segmented array, the situation
-is different (as illustrated below). Looking at the segment containing elements <codeph>n</codeph> and <codeph>n+1</codeph>, <codeph>End()</codeph> returns a pointer to the first byte following the end of that segment. In
-fact, <codeph>End()</codeph> returns the same pointer value for all elements
-in that segment. <codeph>Back()</codeph> returns a pointer to the beginning
-of that segment for element <codeph>n+1</codeph> and for all <i>subsequent</i> elements
-in that segment. However, for the <i>first</i> element in that segment, <codeph>Back()</codeph> returns
-a pointer to the beginning of the <i>previous</i> segment. For the very first
-element in the array, <codeph>Back()</codeph> returns a pointer with a NULL
-value.</p> <fig id="GUID-90C05AF9-9048-557E-95DD-49A19F856EF0">
-<title>End() and Back() in fixed segmented arrays</title>
-<image href="GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e220633_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-165D9F3E-3948-4DC0-9632-FF70480C495C"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Dynamic
-Buffers Guide</xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E161AB84-1B24-53AF-B313-D68CF9F8EE60" xml:lang="en"><title>Pointers
+to the start and end of contiguous regions</title><shortdesc>The <codeph>Back()</codeph> and <codeph>End()</codeph> functions
+point to locations in memory for flat and segmented arrays.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>For those arrays of same length elements which are derived from <codeph>CArrayFix&lt;class T&gt;</codeph>,
+the elements are contained within an array buffer which can be implemented
+as a flat buffer or as a segmented buffer. A flat buffer is implemented as
+a single contiguous region of memory while a segmented buffer is implemented
+as a set of separate but linked regions of memory </p>
+<p>Given the position of an element within an array, it can be useful to fetch
+a pointer to the first byte following the end of the contiguous region of
+memory containing that element (the <i>end</i> pointer). Similarly, it can
+be useful to fetch a pointer to the <i>beginning</i> of a contiguous region
+of memory (the <i>back</i> pointer).</p>
+<section id="GUID-DB6D5E2F-CFEE-47EC-B38D-9D0DC13B994D"><title>Array of same length elements</title> <p>An array of same
+length elements uses the <codeph>End()</codeph> function to fetch the end
+pointer and the <codeph>Back()</codeph> function to fetch the back pointer.
+The implementation of these two functions differs between a fixed flat array
+and a fixed segmented array.</p> </section>
+<section id="GUID-48756A91-9B8F-4BA8-A0CF-52970F8B41CC"><title>Flat array</title> <p>For a flat array — i.e. an array whose
+buffer is implemented using a flat buffer — the end pointer simply points
+to the first byte following the single region of memory containing the array
+buffer. The back pointer simply points to the first byte of the single region
+of memory (as illustrated below); <codeph>End()</codeph> always returns a
+pointer to the first byte following the end of the buffer, while <codeph>Back()</codeph> always
+returns a pointer to the beginning of the buffer.</p> <fig id="GUID-D4084F4C-B928-5779-A58F-CB495A74EE68">
+<title>End() and Back() in fixed flat arrays</title>
+<image href="GUID-81A5784D-A0C6-5108-9E7B-5D39C6743B1A_d0e216847_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-27F85346-3B08-4E06-A80D-A5B708105659"><title>Segmented array</title> <p>For a segmented array, the situation
+is different (as illustrated below). Looking at the segment containing elements <codeph>n</codeph> and <codeph>n+1</codeph>, <codeph>End()</codeph> returns a pointer to the first byte following the end of that segment. In
+fact, <codeph>End()</codeph> returns the same pointer value for all elements
+in that segment. <codeph>Back()</codeph> returns a pointer to the beginning
+of that segment for element <codeph>n+1</codeph> and for all <i>subsequent</i> elements
+in that segment. However, for the <i>first</i> element in that segment, <codeph>Back()</codeph> returns
+a pointer to the beginning of the <i>previous</i> segment. For the very first
+element in the array, <codeph>Back()</codeph> returns a pointer with a NULL
+value.</p> <fig id="GUID-90C05AF9-9048-557E-95DD-49A19F856EF0">
+<title>End() and Back() in fixed segmented arrays</title>
+<image href="GUID-C0CFFE13-579C-5A93-9B63-DC2DCF98EC61_d0e216896_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-165D9F3E-3948-4DC0-9632-FF70480C495C"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Dynamic
+Buffers Guide</xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4"><title>The object container</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>All reference counting objects must be held in an object container. An object container acts as a home for a set of related reference counting objects. </p> <p>An object container is an instance of a <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> class. </p> <p>After construction, a reference counting object <i>must</i> be added to an object container. Only one instance of a reference counting object can be held by an object container, i.e. each object within an object container must be distinct. </p> <p>The main characteristics of an object container can be summarised as follows: </p> <ul><li id="GUID-38B0A165-02EE-529F-9EEC-4BEAC6368489"><p>they allow a logical collections of reference counting objects to be gathered together. </p> </li> <li id="GUID-0C5A0F46-3B9C-5547-91C5-40177E2AC8A1"><p>explicitly destroying a reference counting object causes that object to be removed from its object container. </p> </li> <li id="GUID-5E89EA15-353B-5D97-AAEF-734F0999C686"><p>removing a reference counting object from its object container causes that object to be destroyed. </p> </li> <li id="GUID-A14CCB2B-4810-53DA-9CEC-402F9406BC37"><p>each object container is assigned a unique ID on construction. This is an integer that forms part of the identity of all of its contained reference counting objects. All reference counting objects within an object container are associated with the same unique ID. The value of the unique ID can range from 1 to 16,383 (0x3fff). </p> </li> </ul> <p>Object containers are constructed by an object container index, a <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> type. The maximum number of object containers which may be constructed and held in an object container index is 6,383 (0x3fff). </p> <p>An object container is implemented as a simple array, where each element of the array is a pointer to a contained reference counting object. Adding a reference counting object to the object container is simply a matter of adding the reference counting object's pointer into the array. The following diagram shows a simple situation where two object containers hold a number of reference counting objects. </p> <fig id="GUID-6907E278-C900-5C2A-9540-29BBD1FF5BCB"><image href="GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e248451_href.png" placement="inline"/></fig> <p>The <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita#GUID-DE901A59-C714-356A-9490-C4E9C9F186DB/GUID-4BEB5581-620D-3857-83AE-334B22C92554"><apiname>CObjectCon::AddL()</apiname></xref> function adds a reference counting object to the object container. </p> <p>The <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita#GUID-DE901A59-C714-356A-9490-C4E9C9F186DB/GUID-5BECBD93-AFB0-3D80-9307-3839F0DB920D"><apiname>CObjectCon::Remove()</apiname></xref> function removes a reference counting object from its object container and also destroys that reference counting object. Conversely, if the reference counting object is destroyed (typically, as a result of successive calls to <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref>), it is removed from its object container. </p> <p>See also: </p> <ul><li id="GUID-35EBE5AE-3171-5299-8419-E372A365363E"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-000D298D-DA13-5345-A622-C21869898D97"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>  </p> </li> </ul> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4"><title>The object container</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>All reference counting objects must be held in an object container. An object container acts as a home for a set of related reference counting objects. </p> <p>An object container is an instance of a <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> class. </p> <p>After construction, a reference counting object <i>must</i> be added to an object container. Only one instance of a reference counting object can be held by an object container, i.e. each object within an object container must be distinct. </p> <p>The main characteristics of an object container can be summarised as follows: </p> <ul><li id="GUID-38B0A165-02EE-529F-9EEC-4BEAC6368489"><p>they allow a logical collections of reference counting objects to be gathered together. </p> </li> <li id="GUID-0C5A0F46-3B9C-5547-91C5-40177E2AC8A1"><p>explicitly destroying a reference counting object causes that object to be removed from its object container. </p> </li> <li id="GUID-5E89EA15-353B-5D97-AAEF-734F0999C686"><p>removing a reference counting object from its object container causes that object to be destroyed. </p> </li> <li id="GUID-A14CCB2B-4810-53DA-9CEC-402F9406BC37"><p>each object container is assigned a unique ID on construction. This is an integer that forms part of the identity of all of its contained reference counting objects. All reference counting objects within an object container are associated with the same unique ID. The value of the unique ID can range from 1 to 16,383 (0x3fff). </p> </li> </ul> <p>Object containers are constructed by an object container index, a <xref href="GUID-72761B3C-ECB6-34B2-87ED-C972E479357A.dita"><apiname>CObjectConIx</apiname></xref> type. The maximum number of object containers which may be constructed and held in an object container index is 6,383 (0x3fff). </p> <p>An object container is implemented as a simple array, where each element of the array is a pointer to a contained reference counting object. Adding a reference counting object to the object container is simply a matter of adding the reference counting object's pointer into the array. The following diagram shows a simple situation where two object containers hold a number of reference counting objects. </p> <fig id="GUID-6907E278-C900-5C2A-9540-29BBD1FF5BCB"><image href="GUID-40ED6F39-F8E2-5292-ADA5-C2507F256AE0_d0e244714_href.png" placement="inline"/></fig> <p>The <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita#GUID-DE901A59-C714-356A-9490-C4E9C9F186DB/GUID-4BEB5581-620D-3857-83AE-334B22C92554"><apiname>CObjectCon::AddL()</apiname></xref> function adds a reference counting object to the object container. </p> <p>The <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita#GUID-DE901A59-C714-356A-9490-C4E9C9F186DB/GUID-5BECBD93-AFB0-3D80-9307-3839F0DB920D"><apiname>CObjectCon::Remove()</apiname></xref> function removes a reference counting object from its object container and also destroys that reference counting object. Conversely, if the reference counting object is destroyed (typically, as a result of successive calls to <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita#GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97/GUID-6E50F446-307B-3C9D-9AD6-AFCB49B2F658"><apiname>CObject::Close()</apiname></xref>), it is removed from its object container. </p> <p>See also: </p> <ul><li id="GUID-35EBE5AE-3171-5299-8419-E372A365363E"><p> <xref href="GUID-DE901A59-C714-356A-9490-C4E9C9F186DB.dita"><apiname>CObjectCon</apiname></xref> </p> </li> <li id="GUID-000D298D-DA13-5345-A622-C21869898D97"><p> <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref>  </p> </li> </ul> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1"><title>The run-time control hierarchy</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>At run-time all controls in an application are related to each other in a tree hierarchy. The top-level window-owning controls are owned by the AppUi. This is similar to the hierarchy of windows that exists in the Window Server which has a group window for each application at the root. It is important to understand the relationships between window-owning and non-window owning controls. The diagram below attempts to illustrate these. </p> <fig id="GUID-C54A1D04-CA7D-5E3D-8FA0-327D511D5D45-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-2"><title>
-          The run-time control hierarchy 
-        </title> <image href="GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e15936_href.png" placement="inline"/></fig> <p>A non-window-owning control is confined to the extent of its parent if the parent is window-owning, and must be confined to the extent of its parent if the parent is non-window-owning. </p> <p>A window-owning component is confined to the nearest window-owning control above it in the hierarchy. </p> <p>Screen drawing may be initiated by either the application (because it's running and it has changed its display) or by the Window Server (because something else has updated the screen and the application is visible). </p> <ul><li id="GUID-1EDC9967-25E6-5CA4-9754-1304FFE8A4F0-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-6-1"><p>Application-initiated redrawing follows the control framework run-time hierarchy: controls are drawn by their parents regardless of whether they are window-owning or not. </p> </li> <li id="GUID-ED6464FC-485A-5E62-BBE6-D297A975BF71-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-6-2"><p>Window-Server-initiated redrawing, on the other hand, follows the Window Server hierarchy: parents do not draw their window-owning children. </p> </li> </ul> <p>A control's container or parent control may not be changed after it has been set. </p> <p>The run time hierarchy of controls has been enhanced for version 9.1 of the Symbian OS. The distinction between the 'parent-child' relationship from the Window Server and the 'container-component' relationship from the control framework may be simplified with the addition of a parent pointer to CCoeControl. </p> <p>In UIQ v3 the parent pointer is enabled. In S60 and MOAP the parent pointer currently is not enabled. </p> <p>The addition of the parent pointer allows the framework to navigate the control hierarchy upwards as well as downwards. When enabled, the parent pointer is set automatically (see <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-3-1-1-7-1-9-1-2-14">how to write a control</xref>). </p> <p>The run-time hierarchy is particularly significant when laying out and when refreshing the screen. Here are a few examples of how the framework uses the run-time hierarchy. </p> <ul><li id="GUID-9AA456A8-EB70-562F-8303-EF825BBA48E9-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-12-1"><p>When a control is drawn it must have the correct Look and Feel: its colours, fonts, font style, size and shape must be correct. Controls use their parent's graphics contexts and text drawers. </p> </li> <li id="GUID-38B4FE1B-BEE7-53DE-A8C6-192D7BF9B1AA-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-12-2"><p>If a control (lodger or a parent) changes size, the controls around or within it might have to move or resize. From 9.1 the framework provides a layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>). Controls use the run-time hierarchy to find the appropriate layout manager. </p> </li> <li id="GUID-9EE92BB4-AC03-55FF-96BE-402B19EEC8FA-GENID-1-8-1-3-1-1-7-1-7-1-5-1-2-12-3"><p>From 9.1 parent controls take responsibility for drawing behind their children. This allows flexibility with backgrounds, transparent controls and controls which appear non-rectangular. To enable this process to work with window-owning controls (necessary because the Window Server will not allow parent windows to draw behind child windows) a new interface, <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref>, has been introduced. When a window owning control draws itself it first looks for an <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> in its chain of parents and calls <codeph>MCoeControlBackground::Draw()</codeph> before drawing itself. </p> </li> </ul> <p> </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1"><title>The run-time control hierarchy</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>At run-time all controls in an application are related to each other in a tree hierarchy. The top-level window-owning controls are owned by the AppUi. This is similar to the hierarchy of windows that exists in the Window Server which has a group window for each application at the root. It is important to understand the relationships between window-owning and non-window owning controls. The diagram below attempts to illustrate these. </p> <fig id="GUID-C54A1D04-CA7D-5E3D-8FA0-327D511D5D45-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-2"><title>
-          The run-time control hierarchy 
-        </title> <image href="GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e51838_href.png" placement="inline"/></fig> <p>A non-window-owning control is confined to the extent of its parent if the parent is window-owning, and must be confined to the extent of its parent if the parent is non-window-owning. </p> <p>A window-owning component is confined to the nearest window-owning control above it in the hierarchy. </p> <p>Screen drawing may be initiated by either the application (because it's running and it has changed its display) or by the Window Server (because something else has updated the screen and the application is visible). </p> <ul><li id="GUID-1EDC9967-25E6-5CA4-9754-1304FFE8A4F0-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-6-1"><p>Application-initiated redrawing follows the control framework run-time hierarchy: controls are drawn by their parents regardless of whether they are window-owning or not. </p> </li> <li id="GUID-ED6464FC-485A-5E62-BBE6-D297A975BF71-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-6-2"><p>Window-Server-initiated redrawing, on the other hand, follows the Window Server hierarchy: parents do not draw their window-owning children. </p> </li> </ul> <p>A control's container or parent control may not be changed after it has been set. </p> <p>The run time hierarchy of controls has been enhanced for version 9.1 of the Symbian OS. The distinction between the 'parent-child' relationship from the Window Server and the 'container-component' relationship from the control framework may be simplified with the addition of a parent pointer to CCoeControl. </p> <p>In UIQ v3 the parent pointer is enabled. In S60 and MOAP the parent pointer currently is not enabled. </p> <p>The addition of the parent pointer allows the framework to navigate the control hierarchy upwards as well as downwards. When enabled, the parent pointer is set automatically (see <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7-GENID-1-8-1-3-1-1-7-1-9-1-2-14">how to write a control</xref>). </p> <p>The run-time hierarchy is particularly significant when laying out and when refreshing the screen. Here are a few examples of how the framework uses the run-time hierarchy. </p> <ul><li id="GUID-9AA456A8-EB70-562F-8303-EF825BBA48E9-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-12-1"><p>When a control is drawn it must have the correct Look and Feel: its colours, fonts, font style, size and shape must be correct. Controls use their parent's graphics contexts and text drawers. </p> </li> <li id="GUID-38B4FE1B-BEE7-53DE-A8C6-192D7BF9B1AA-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-12-2"><p>If a control (lodger or a parent) changes size, the controls around or within it might have to move or resize. From 9.1 the framework provides a layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>). Controls use the run-time hierarchy to find the appropriate layout manager. </p> </li> <li id="GUID-9EE92BB4-AC03-55FF-96BE-402B19EEC8FA-GENID-1-8-1-6-1-1-4-1-6-1-7-1-5-1-2-12-3"><p>From 9.1 parent controls take responsibility for drawing behind their children. This allows flexibility with backgrounds, transparent controls and controls which appear non-rectangular. To enable this process to work with window-owning controls (necessary because the Window Server will not allow parent windows to draw behind child windows) a new interface, <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref>, has been introduced. When a window owning control draws itself it first looks for an <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> in its chain of parents and calls <codeph>MCoeControlBackground::Draw()</codeph> before drawing itself. </p> </li> </ul> <p> </p> </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7"><title>The run-time control hierarchy</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>At run-time all controls in an application are related to each other in a tree hierarchy. The top-level window-owning controls are owned by the AppUi. This is similar to the hierarchy of windows that exists in the Window Server which has a group window for each application at the root. It is important to understand the relationships between window-owning and non-window owning controls. The diagram below attempts to illustrate these. </p> <fig id="GUID-C54A1D04-CA7D-5E3D-8FA0-327D511D5D45"><title>
+          The run-time control hierarchy 
+        </title> <image href="GUID-4303DBDB-3F67-54E6-AB24-5E1871053ED9_d0e46282_href.png" placement="inline"/></fig> <p>A non-window-owning control is confined to the extent of its parent if the parent is window-owning, and must be confined to the extent of its parent if the parent is non-window-owning. </p> <p>A window-owning component is confined to the nearest window-owning control above it in the hierarchy. </p> <p>Screen drawing may be initiated by either the application (because it's running and it has changed its display) or by the Window Server (because something else has updated the screen and the application is visible). </p> <ul><li id="GUID-1EDC9967-25E6-5CA4-9754-1304FFE8A4F0"><p>Application-initiated redrawing follows the control framework run-time hierarchy: controls are drawn by their parents regardless of whether they are window-owning or not. </p> </li> <li id="GUID-ED6464FC-485A-5E62-BBE6-D297A975BF71"><p>Window-Server-initiated redrawing, on the other hand, follows the Window Server hierarchy: parents do not draw their window-owning children. </p> </li> </ul> <p>A control's container or parent control may not be changed after it has been set. </p> <p>The run time hierarchy of controls has been enhanced for version 9.1 of the Symbian OS. The distinction between the 'parent-child' relationship from the Window Server and the 'container-component' relationship from the control framework may be simplified with the addition of a parent pointer to CCoeControl. </p> <p>In UIQ v3 the parent pointer is enabled. In S60 and MOAP the parent pointer currently is not enabled. </p> <p>The addition of the parent pointer allows the framework to navigate the control hierarchy upwards as well as downwards. When enabled, the parent pointer is set automatically (see <xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita#GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290/GUID-3F0E8223-2218-5C95-AFBC-D66AD1DB12A7">how to write a control</xref>). </p> <p>The run-time hierarchy is particularly significant when laying out and when refreshing the screen. Here are a few examples of how the framework uses the run-time hierarchy. </p> <ul><li id="GUID-9AA456A8-EB70-562F-8303-EF825BBA48E9"><p>When a control is drawn it must have the correct Look and Feel: its colours, fonts, font style, size and shape must be correct. Controls use their parent's graphics contexts and text drawers. </p> </li> <li id="GUID-38B4FE1B-BEE7-53DE-A8C6-192D7BF9B1AA"><p>If a control (lodger or a parent) changes size, the controls around or within it might have to move or resize. From 9.1 the framework provides a layout manager interface (<xref href="GUID-A622B8C7-60F4-38E8-B102-14883BCBA249.dita"><apiname>MCoeLayoutManager</apiname></xref>). Controls use the run-time hierarchy to find the appropriate layout manager. </p> </li> <li id="GUID-9EE92BB4-AC03-55FF-96BE-402B19EEC8FA"><p>From 9.1 parent controls take responsibility for drawing behind their children. This allows flexibility with backgrounds, transparent controls and controls which appear non-rectangular. To enable this process to work with window-owning controls (necessary because the Window Server will not allow parent windows to draw behind child windows) a new interface, <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref>, has been introduced. When a window owning control draws itself it first looks for an <xref href="GUID-88936D48-B801-3D9C-8A9D-3498807937CE.dita"><apiname>MCoeControlBackground</apiname></xref> in its chain of parents and calls <codeph>MCoeControlBackground::Draw()</codeph> before drawing itself. </p> </li> </ul> <p> </p> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e169127_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-E2455472-49FA-5492-B7CB-2C33BD830591_d0e175728_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e202076_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E24F15B4-D767-5B79-B0EB-88294B9BC16A_d0e207084_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e135205_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E2AB4BDF-8AFD-5776-A614-50DC3ACF3AD4_d0e141739_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3" xml:lang="en"><title>Array
-capacity and granularity</title><shortdesc>Describes the granularity and capacity of a dynamic array.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The <i>capacity</i> of an array is the number of elements which the array
-can hold or represent within the space currently allocated to its array buffer.</p>
-<p>For a flat array buffer, the increase in capacity of a buffer, when the
-insertion of an additional element causes the buffer to be re-allocated, is
-termed the <i>granularity</i> of the array. For example, adding a fifth element
-to a fixed flat array constructed with a granularity of four, causes the array
-buffer to be re-allocated so that its capacity increases from four to eight
-elements.</p>
-<fig id="GUID-B752C5C8-FFA3-5F27-8D75-C951EE2D1432">
-<image href="GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e219038_href.png" placement="inline"/>
-</fig>
-<p>For a segmented array buffer, the granularity defines the capacity of a
-single segment. A segmented array buffer is always expanded by allocating
-additional segments.</p>
-<p>The granularity of an array is defined at construction time.
-The choice of value depends on the use to be made of the array and needs careful
-consideration. Too small a value for an array with a high turnover of elements
-can incur considerable overhead from the process of allocating memory. Too
-large a value can result in wasted space if insufficient new elements are
-subsequently added.</p>
-<section id="GUID-33BD77F1-C787-49D9-87C0-011900038A64"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
-Dynamic Buffers</xref>.</p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E2CB0826-FC44-5AC9-BBB1-B449073484F3" xml:lang="en"><title>Array
+capacity and granularity</title><shortdesc>Describes the granularity and capacity of a dynamic array.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The <i>capacity</i> of an array is the number of elements which the array
+can hold or represent within the space currently allocated to its array buffer.</p>
+<p>For a flat array buffer, the increase in capacity of a buffer, when the
+insertion of an additional element causes the buffer to be re-allocated, is
+termed the <i>granularity</i> of the array. For example, adding a fifth element
+to a fixed flat array constructed with a granularity of four, causes the array
+buffer to be re-allocated so that its capacity increases from four to eight
+elements.</p>
+<fig id="GUID-B752C5C8-FFA3-5F27-8D75-C951EE2D1432">
+<image href="GUID-4922D80F-009D-56CE-B255-FDAF9C247667_d0e215301_href.png" placement="inline"/>
+</fig>
+<p>For a segmented array buffer, the granularity defines the capacity of a
+single segment. A segmented array buffer is always expanded by allocating
+additional segments.</p>
+<p>The granularity of an array is defined at construction time.
+The choice of value depends on the use to be made of the array and needs careful
+consideration. Too small a value for an array with a high turnover of elements
+can incur considerable overhead from the process of allocating memory. Too
+large a value can result in wasted space if insufficient new elements are
+subsequently added.</p>
+<section id="GUID-33BD77F1-C787-49D9-87C0-011900038A64"><title>See also</title> <p><xref href="GUID-112AAFA5-B4C9-5B62-A106-FB5097C13A0E.dita">Using
+Dynamic Buffers</xref>.</p> </section>
 </conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-E2E2FACF-5D4F-43E8-8B53-B268252CF572.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-E2E2FACF-5D4F-43E8-8B53-B268252CF572" xml:lang="en"><title>Defining
+Connection Management Items</title><shortdesc>Your application should define the connection management items
+(destination networks, access points, default connection, and always ask)
+it supports and show only the supported items in the UI. In this example,
+the application supports default connection, always ask, and destination networks.
+Access points (if supported) of a certain destination network can be seen
+under the Options menu when the destination network is highlighted.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-54907FC2-9B54-4E72-8953-461C1650560C">       <p>To define
+the connection management items:</p>     </context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-14-1-1-7-1-4-1-3-2">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-14-1-1-7-1-4-1-3-2-1"><cmd>Request the connection
+settings dialog for supported items using the Connection Settings UI API.</cmd>
+</step>
+<step id="GUID-B9C9B9BC-5DA3-4943-9995-9975E5BBA5A7"><cmd>Show the items that your application supports in the UI using the
+Connection Settings UI API.  After the user has made a selection, it is returned
+to the application.</cmd>
+</step>
+<step id="GUID-BC98D052-7D13-4641-B015-9D5A71E6179D"><cmd>Store the user selection in the application's connection setup.
+ For information on how to start the connection through a destination network,
+see <xref href="GUID-DBF6760F-D209-4B8F-89D5-A7EFFF7959E2.dita">Starting the Connection
+through the Destination Network</xref>.  If you want to prompt the user to
+make this selection, see Prompting the user to select a destination network.</cmd>
+</step>
+</steps>
+<example><codeblock xml:space="preserve">#include &lt;cmapplicationsettingsui.h&gt;TCmSettingSelection userSelection;
+
+CCmApplicationSettingsUi* settings = CCmApplicationSettingsUi::NewL();
+CleanupStack::PushL( settings );
+
+TUint listedItems = EShowAlwaysAsk | EShowDefaultConnection |
+                    EShowDestinations | EShowConnectionMethods;
+
+TBearerFilterArray filter;
+
+settings-&gt;RunApplicationSettingsL( userSelection,
+                                   listedItems,
+                                   filter );
+                               CleanupStack::PopAndDestroy( settings );
+
+switch ( userSelection.iResult )
+	{
+	case EDestination:
+	    {
+        TConnSnapPref prefs;
+        prefs.SetSnap( userSelection.iId );
+
+        iConnection.Start( prefs, iStatus );
+		break;
+	    }
+	case EConnectionMethod:
+	    {
+        TCommDbConnPref prefs;
+        prefs.SetIapId( userSelection.iId );
+        prefs.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+
+        iConnection.Start( prefs, iStatus );
+	    break;
+	    }
+	case EDefaultConnection:
+	    {
+iConnection.Start( iStatus );
+	    break;
+	    }
+	default: // EAlwaysAsk
+	    {
+        TCommDbConnPref prefs;
+        prefs.SetDialogPreference( ECommDbDialogPrefPrompt );
+
+        iConnection.Start( prefs, iStatus );
+	    }
+	}
+SetActive();</codeblock></example>
+</taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e368521_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E2F6A71A-4A18-5E0B-AE77-C059C59448E4_d0e374591_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E3A60844-EE37-4AF1-8921-59375C563723.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-E3A60844-EE37-4AF1-8921-59375C563723" xml:lang="en"><title>Removing
-item-specific commands from the toolbar</title><shortdesc>This document describes the changes required to your code to remove
-the item-specific commands from the toolbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-4-1-1-7-1-4-1-6-1-3-1">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-4-1-1-7-1-4-1-6-1-3-1-1"><cmd>Remove all item-specifc
-commands from your resource files.</cmd>
-</step>
-</steps-unordered>
-<example><p>Let us consider the following code snippet as a part of an application
-that supports single-tap functionality. As single-tap functionality does not
-support highlighting an item in a list, the item-specific commands are not
-required to be in a toolbar and therefore can be removed.</p><codeblock xml:space="preserve">
-RESOURCE AVKON_TOOLBAR r_application_toolbar
-    {
-    flags = KAknToolbarFlexiblePosition;
-    items =
-        {
-        // Top level buttons
-//-----------------------------------------------------------------------------
-/*------Remove this item specific command (Delete)-----------
-        TBAR_CTRL
-            {
-            type = EAknCtButton;
-            id = EToolbarDelete;
-            control = AVKON_BUTTON
-                {
-                flags = KAknButtonSizeFitText;;
-                states =
-                    {
-                    AVKON_BUTTON_STATE
-                        {
-                        bmpfile = "\\resource\\apps\\delete.mbm";
-                        bmpid = ECalInterIcon_delete_unpressed_38x38;
-                        press_bmpid = EMCalInterIcon_delete_pressed_38x38;
-                        helptxt = "Delete";
-                        }  
-                    };
-                };
-            }, 
-  ----------------------------------------------------------------------------- */
-		TBAR_CTRL
-            {
-            type = EAknCtButton;
-            id = EToolbarHelp;
-            control = AVKON_BUTTON
-                {
-                flags = 0;
-                states =
-                    {
-                    AVKON_BUTTON_STATE
-                        {
-                        bmpfile = "\\resource\\apps\\help.mbm";
-                        bmpid = ECalInterIcon_undo_unpressed_38x38;
-                        press_bmpid = ECalInterIcon_undo_pressed_38x38;
-                        helptxt = "Help";
-                        }  
-                    };
-                };
-            };
-        };
-    }
-</codeblock></example>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-E3A60844-EE37-4AF1-8921-59375C563723" xml:lang="en"><title>Removing
+item-specific commands from the toolbar</title><shortdesc>This document describes the changes required to your code to remove
+the item-specific commands from the toolbar.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<steps-unordered id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-6-1-1-4-1-6-1-3-1">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-6-1-1-4-1-6-1-3-1-1"><cmd>Remove all item-specifc
+commands from your resource files.</cmd>
+</step>
+</steps-unordered>
+<example><p>Let us consider the following code snippet as a part of an application
+that supports single-tap functionality. As single-tap functionality does not
+support highlighting an item in a list, the item-specific commands are not
+required to be in a toolbar and therefore can be removed.</p><codeblock xml:space="preserve">
+RESOURCE AVKON_TOOLBAR r_application_toolbar
+    {
+    flags = KAknToolbarFlexiblePosition;
+    items =
+        {
+        // Top level buttons
+//-----------------------------------------------------------------------------
+/*------Remove this item specific command (Delete)-----------
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EToolbarDelete;
+            control = AVKON_BUTTON
+                {
+                flags = KAknButtonSizeFitText;;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "\\resource\\apps\\delete.mbm";
+                        bmpid = ECalInterIcon_delete_unpressed_38x38;
+                        press_bmpid = EMCalInterIcon_delete_pressed_38x38;
+                        helptxt = "Delete";
+                        }  
+                    };
+                };
+            }, 
+  ----------------------------------------------------------------------------- */
+		TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EToolbarHelp;
+            control = AVKON_BUTTON
+                {
+                flags = 0;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "\\resource\\apps\\help.mbm";
+                        bmpid = ECalInterIcon_undo_unpressed_38x38;
+                        press_bmpid = ECalInterIcon_undo_pressed_38x38;
+                        helptxt = "Help";
+                        }  
+                    };
+                };
+            };
+        };
+    }
+</codeblock></example>
 </taskbody></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E402616A-7ED8-45AC-B836-99C3A3760B33.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33" xml:lang="en"><title>Key events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<fig id="GUID-9A1FDF4B-5FD8-4113-8D8E-E879B4C7C255"><title>Key presses generate key events</title><image href="GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e42810_href.png"/></fig>
-<p>Key events are generated when a device user presses one or more device
-key buttons. The application framework delivers the event to the application
-that has focus. The <parmname>TKeyEvent</parmname> structure is used to contain
-the key event details delivered to the application. For more information on <parmname>TKeyEvent</parmname>,
-see <xref href="GUID-0F8FA6A3-F172-36E4-9CF5-60814ABCD562.dita"><apiname>TKeyEvent</apiname></xref>. </p>
-<p>The structure is as follows:</p>
-<codeblock id="GUID-467AB9BB-948F-49B6-A243-206314E90242" xml:space="preserve">struct TKeyEvent
-    {
-    TUint iCode;
-    TInt iScanCode;
-    TUint iModifiers; // State of modifier keys
-    TInt iRepeats; // Count of auto repeats generated
-    };
-</codeblock>
-<p>The following events are generated by means of a single key press and
-release:</p>
-<codeblock id="GUID-5FE1F179-8F7A-4653-9604-3CFC4B66AE33" xml:space="preserve">EEventKeyDown
-EEventKey
-EEventKeyUp
-
-</codeblock>
-<p>The first event indicates that a key has been pressed down. The second
-event indicates that a character has been received from the keyboard. The
-third event is sent when the button has been released. These events are described
-in the <parmname>iCode</parmname> and <parmname>iSCanCode</parmname> members
-of <parmname>TKeyEvent</parmname>.</p>
-<p>For more information on possible data contained in <parmname>EEventKey</parmname>,
-see <xref href="GUID-B67B6ED5-6C8F-3B36-934C-B47A109A515F.dita"><apiname>TKeyCode</apiname></xref>.</p>
-<p>Key presses may be interpreted by a Front End Processor (FEP) and tied
-to specific key events. For example, if a device user presses the <parmname>2</parmname> key
-twice, an active FEP could generate a key event code of <parmname>b</parmname>.</p>
-<p> For more information on FEPs, see <xref href="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1.dita">Front
-End Processor overview</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E402616A-7ED8-45AC-B836-99C3A3760B33" xml:lang="en"><title>Key events</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<fig id="GUID-9A1FDF4B-5FD8-4113-8D8E-E879B4C7C255"><title>Key presses generate key events</title><image href="GUID-C9429505-EEE7-4E64-BE0A-BC5D57D5B42C_d0e37243_href.png"/></fig>
+<p>Key events are generated when a device user presses one or more device
+key buttons. The application framework delivers the event to the application
+that has focus. The <parmname>TKeyEvent</parmname> structure is used to contain
+the key event details delivered to the application. For more information on <parmname>TKeyEvent</parmname>,
+see <xref href="GUID-0F8FA6A3-F172-36E4-9CF5-60814ABCD562.dita"><apiname>TKeyEvent</apiname></xref>. </p>
+<p>The structure is as follows:</p>
+<codeblock id="GUID-467AB9BB-948F-49B6-A243-206314E90242" xml:space="preserve">struct TKeyEvent
+    {
+    TUint iCode;
+    TInt iScanCode;
+    TUint iModifiers; // State of modifier keys
+    TInt iRepeats; // Count of auto repeats generated
+    };
+</codeblock>
+<p>The following events are generated by means of a single key press and
+release:</p>
+<codeblock id="GUID-5FE1F179-8F7A-4653-9604-3CFC4B66AE33" xml:space="preserve">EEventKeyDown
+EEventKey
+EEventKeyUp
+
+</codeblock>
+<p>The first event indicates that a key has been pressed down. The second
+event indicates that a character has been received from the keyboard. The
+third event is sent when the button has been released. These events are described
+in the <parmname>iCode</parmname> and <parmname>iSCanCode</parmname> members
+of <parmname>TKeyEvent</parmname>.</p>
+<p>For more information on possible data contained in <parmname>EEventKey</parmname>,
+see <xref href="GUID-B67B6ED5-6C8F-3B36-934C-B47A109A515F.dita"><apiname>TKeyCode</apiname></xref>.</p>
+<p>Key presses may be interpreted by a Front End Processor (FEP) and tied
+to specific key events. For example, if a device user presses the <parmname>2</parmname> key
+twice, an active FEP could generate a key event code of <parmname>b</parmname>.</p>
+<p> For more information on FEPs, see <xref href="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita">Front
+End Processor overview</xref>.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E449F309-F230-46F9-B777-EF64D0E3191D" xml:lang="en"><title>Information
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Information notes give information about an unexpected situation during
-the usage of the device. They have a longer duration and a more noticeable
-tone than in a <xref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita">confirmation
-note</xref>. Errors that are not too serious should cause an information note. </p>
-<fig id="GUID-DB2F7A31-6003-4FB5-A062-3672534A5416">
-<title>Information note</title>
-<image href="GUID-45D4F2D1-A433-4289-A627-D0ECD97489DD_d0e64836_href.png" scale="33" placement="inline"/>
-</fig>
-<section id="GUID-C54403DE-9572-417C-9BA3-839C6C433C00"><title>Using
-information notes in C++ applications</title><p>You can create either a basic
-information note that is displayed only when your application is in the foreground
-or a global note that stays displayed even if the application launching the
-note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
-API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use an information
-note with the default icon, text, sound, and duration, create an instance
-of the note class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknInformationNote.html" format="application/java-archive"><codeph>CAknInformationNote</codeph></xref>.  For implementation infomation, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.2" scope="peer">Creating a non-waiting information (basic) note</xref>. </p><p>To
-create a global information note, use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html`" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For
-basic notes, you can change the icon or text displayed in the note, use a
-different kind of sound, or change the note duration using the setter methods
-in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
-tone, and softkeys using the methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#cee323af0704e07d3f1887a4a13c1639" format="application/java-archive"><codeph>SetGraphic()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#d23699273b28a39c0817bc575be767ab" format="application/java-archive"><codeph>SetAnimation()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#a8748ee0b3342c24a11b8ed0ea9121bc" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#f31895e5838994b1c70300cfd3d7d127" format="application/java-archive"><codeph>SetSoftkeys()</codeph></xref>.</p></section>
-
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E449F309-F230-46F9-B777-EF64D0E3191D" xml:lang="en"><title>Information
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Information notes give information about an unexpected situation during
+the usage of the device. They have a longer duration and a more noticeable
+tone than in a <xref href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita">confirmation
+note</xref>. Errors that are not too serious should cause an information note. </p>
+<fig id="GUID-84868557-7860-4655-9A70-5446CA89B203">
+<title>Information note</title>
+<image href="GUID-3C16A9DC-E4E6-4892-B0E5-E3AF2F950F03_d0e59473_href.png" placement="inline"/>
+</fig>
+<section id="GUID-C54403DE-9572-417C-9BA3-839C6C433C00"><title>Using
+information notes in applications</title><p>You can create either a basic
+information note that is displayed only when your application is in the foreground
+or a global note that stays displayed even if the application launching the
+note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
+API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use an information
+note with the default icon, text, sound, and duration, create an instance
+of the note <xref href="GUID-F15DEA1B-C379-3795-87C4-23435A58369F.dita"><apiname>CAknInformationNote</apiname></xref> class.  For implementation
+information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.2" scope="peer">Creating a non-waiting information (basic) note</xref>. </p><p>To
+create a global information note, use the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class
+in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html`" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref> class:<ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul></p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class:<ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul> </p></section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e332473_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e338630_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,43 +1,43 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A" xml:lang="en"><title>Cleanup
-utilities</title><shortdesc>The Cleanup utility functions support four types of clean up operation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The cleanup utility functions offer easy ways of constructing a <codeph>TCleanUpItem</codeph> and
-pushing it onto the cleanup stack. They support four types of clean up operation:</p>
-<ul>
-<li id="GUID-8E3A2FEC-B065-5059-800F-5227516A961A"><p>where the object is
-deleted: <codeph>template &lt;class T&gt; void CleanupDeletePushL(T*)</codeph> </p> </li>
-<li id="GUID-94C6925C-E68C-5F39-9CD3-6C2D4BC6CFEE"><p>where the object's <codeph>Close()</codeph> member
-function is called: <codeph>template &lt;class T&gt; void CleanupClosePushL(T&amp;)</codeph> </p> </li>
-<li id="GUID-7B17DA1E-9D7F-572A-9CF5-B63C8784970A"><p>where the object's <codeph>Release()</codeph> member
-function is called: <codeph>template &lt;class T&gt; void CleanupReleasePushL(T&amp;)</codeph> </p> </li>
-<li id="GUID-0F488FA6-FE3F-5305-8189-5206A18C53FA"><p>where an array of objects
-is deleted: <codeph>template &lt;class T&gt; void CleanupArrayDeletePushL(T*)</codeph> </p> </li>
-</ul>
-<p>The functions have the supporting templated classes:</p>
-<ul>
-<li id="GUID-CBEC6897-F471-5C35-8BC6-15742C3FF7DB"><p><codeph>CleanupDelete&lt;class
-T&gt;</codeph> </p> </li>
-<li id="GUID-00C1B92A-AB53-58E2-B89D-94292B2E00C0"><p><codeph>CleanupClose&lt;class
-T&gt;</codeph> </p> </li>
-<li id="GUID-905CC005-9A20-5276-A546-1FF0B487A819"><p><codeph>CleanupRelease&lt;class
-T&gt;</codeph> </p> </li>
-<li id="GUID-4EDD2083-BB2B-52F5-9E60-E0A608FF2885"><p><codeph>CleanupArrayDelete&lt;class
-T&gt;</codeph> </p> </li>
-</ul>
-<p>The way in which these work is best illustrated graphically by taking <codeph>CleanupClosePushL()</codeph> as
-an example. See the diagram below.</p>
-<fig id="GUID-8A0CEC7B-BFEB-52BF-B205-9EB0DE094C8D">
-<title>Effect of CleanupClosePushL and subsequent pop and destroy</title>
-<image href="GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e246025_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E455ABFF-3EFF-5396-A52A-A33CDB2EB41A" xml:lang="en"><title>Cleanup
+utilities</title><shortdesc>The Cleanup utility functions support four types of clean up operation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The cleanup utility functions offer easy ways of constructing a <codeph>TCleanUpItem</codeph> and
+pushing it onto the cleanup stack. They support four types of clean up operation:</p>
+<ul>
+<li id="GUID-8E3A2FEC-B065-5059-800F-5227516A961A"><p>where the object is
+deleted: <codeph>template &lt;class T&gt; void CleanupDeletePushL(T*)</codeph> </p> </li>
+<li id="GUID-94C6925C-E68C-5F39-9CD3-6C2D4BC6CFEE"><p>where the object's <codeph>Close()</codeph> member
+function is called: <codeph>template &lt;class T&gt; void CleanupClosePushL(T&amp;)</codeph> </p> </li>
+<li id="GUID-7B17DA1E-9D7F-572A-9CF5-B63C8784970A"><p>where the object's <codeph>Release()</codeph> member
+function is called: <codeph>template &lt;class T&gt; void CleanupReleasePushL(T&amp;)</codeph> </p> </li>
+<li id="GUID-0F488FA6-FE3F-5305-8189-5206A18C53FA"><p>where an array of objects
+is deleted: <codeph>template &lt;class T&gt; void CleanupArrayDeletePushL(T*)</codeph> </p> </li>
+</ul>
+<p>The functions have the supporting templated classes:</p>
+<ul>
+<li id="GUID-CBEC6897-F471-5C35-8BC6-15742C3FF7DB"><p><codeph>CleanupDelete&lt;class
+T&gt;</codeph> </p> </li>
+<li id="GUID-00C1B92A-AB53-58E2-B89D-94292B2E00C0"><p><codeph>CleanupClose&lt;class
+T&gt;</codeph> </p> </li>
+<li id="GUID-905CC005-9A20-5276-A546-1FF0B487A819"><p><codeph>CleanupRelease&lt;class
+T&gt;</codeph> </p> </li>
+<li id="GUID-4EDD2083-BB2B-52F5-9E60-E0A608FF2885"><p><codeph>CleanupArrayDelete&lt;class
+T&gt;</codeph> </p> </li>
+</ul>
+<p>The way in which these work is best illustrated graphically by taking <codeph>CleanupClosePushL()</codeph> as
+an example. See the diagram below.</p>
+<fig id="GUID-8A0CEC7B-BFEB-52BF-B205-9EB0DE094C8D">
+<title>Effect of CleanupClosePushL and subsequent pop and destroy</title>
+<image href="GUID-018A685B-5C9D-5C7C-8615-D413ABBF7CFB_d0e242288_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e66511_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E489F575-DD07-4949-AB98-8F6A11BF708A_d0e71755_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e130564_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E4B5C7CE-7820-5D80-8CD1-DCD692C11F23_d0e137102_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,48 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2" xml:lang="en"><title>InterfaceDefinition:
-ECom Interface Definition Example Code</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-B84E1E5E-7141-52D2-A589-35F334058DE5"><title>Download</title> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d91db5b-1dd7-43ba-9ce8-1c2a1f08a120.zip" scope="external">Ecom.zip</xref></p>Download some additional files required
-by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d91db5b-1dd7-43ba-9ce8-1c2a1f08a120.html" scope="peer">browse</xref> to view the example code. </p>View the additional
-files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse</xref>.  </section>
-<section><title>Description</title> <p> <filepath>InterfaceDefinition</filepath> provides
-an example ECom interface definition. It declares a base class, <codeph>CExampleInterface</codeph>,
-from which implementations of the interface should derive. </p> <p> <codeph>CExampleInterface</codeph> provides
-three <codeph>NewL()</codeph> functions that allow clients to get respectively: </p> <ul>
-<li id="GUID-C512F948-599C-5C46-AB2B-14348DFFD02A"><p>the default implementation
-of the interface, using a specified custom resolver to determine what is the
-default </p> </li>
-<li id="GUID-2B3B6E81-296C-554C-BB18-BCF54121C26F"><p>an implementation determined
-by the default resolver, using a specified string as a resolution parameter </p> </li>
-<li id="GUID-F0FD51DC-CC1D-5D27-ABFE-9381A168E996"><p>an implementation determined
-by the default resolver, using a specified string as a resolution parameter,
-and passing some data to the implementation </p> </li>
-</ul> <p> <codeph>CExampleInterface</codeph> uses the overloads of <codeph>REComSession::CreateImplementation()</codeph> to
-implement these functions. </p> <p> <codeph>CExampleInterface</codeph> declares
-one pure virtual function, <codeph>DoMethodL()</codeph>, which supplies a
-service to the client. Implementations must implement this function. </p> <p> <filepath>InterfaceDefinition</filepath> also
-provides an example of a custom resolver, called <codeph>CExampleResolver</codeph>.
-Its behaviour is the same as ECom's default resolver. Because a resolver is
-an implementation of the ECom <codeph>CResolver</codeph> interface, it requires
-a registration resource file (<filepath>100098ea.rss</filepath>), and an exported
-factory table (<filepath>Proxy.cpp</filepath>). </p> </section>
-<section><title>Class Summary</title><p><xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita"><apiname>REComSession</apiname></xref></p><p><xref href="GUID-6E3118A3-4CE5-32AD-9C73-5CDD7B54D9EC.dita"><apiname>TEComResolverParams</apiname></xref></p><p><xref href="GUID-DABE7E22-BDF6-3A2E-99F1-3453706A694E.dita"><apiname>RImplInfoPtrArray</apiname></xref></p><p><xref href="GUID-38D97F70-383E-3950-B052-CB56965B0B48.dita"><apiname>CResolver</apiname></xref></p></section>
-<section><title>Usage</title> <p>Building <filepath>InterfaceDefinition</filepath> exports
-the files that contain the interface definition, <filepath>Interface.h</filepath> and <filepath>Interface.inl</filepath>,
-to <filepath>epoc32\include\</filepath>; produces a DLL <filepath>ExampleResolver.dll</filepath>;
-and compiles a resource file <filepath>ExampleResolver.rsc</filepath> in the <filepath>\resource\plugins\</filepath> directory. </p> <p>Implementations
-of the interface are provided in the <xref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita">Interface
-Implementation</xref> example. </p> <p>A client program that accesses the
-interface is provided in the <xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">Interface
-Client</xref>example. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E4E656BF-E5F7-5125-AE88-60C3E9FCF0D2" xml:lang="en"><title>InterfaceDefinition: ECom Interface Definition Example Code</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-B84E1E5E-7141-52D2-A589-35F334058DE5"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d91db5b-1dd7-43ba-9ce8-1c2a1f08a120.zip" scope="external">Ecom.zip</xref></p>Download some additional files
+required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.zip" scope="external">CommonFramework</xref><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d91db5b-1dd7-43ba-9ce8-1c2a1f08a120.html" scope="peer">browse</xref> to view the example code. </p>View the
+additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-89fa6105-e749-4e5f-a233-a000e3b9390b.html" scope="peer">browse</xref>.  </section>
+<section id="GUID-F68E5509-F824-43CE-ADC1-EEFFEAAE2A84"><title>Description</title> <p> <filepath>InterfaceDefinition</filepath> provides an example
+ECom interface definition. It declares a base class, <codeph>CExampleInterface</codeph>, from which implementations of the interface should derive. </p> <p> <codeph>CExampleInterface</codeph> provides three <codeph>NewL()</codeph> functions that allow clients to get respectively: </p> <ul>
+<li id="GUID-C512F948-599C-5C46-AB2B-14348DFFD02A"><p>the default
+implementation of the interface, using a specified custom resolver
+to determine what is the default </p> </li>
+<li id="GUID-2B3B6E81-296C-554C-BB18-BCF54121C26F"><p>an implementation
+determined by the default resolver, using a specified string as a
+resolution parameter </p> </li>
+<li id="GUID-F0FD51DC-CC1D-5D27-ABFE-9381A168E996"><p>an implementation
+determined by the default resolver, using a specified string as a
+resolution parameter, and passing some data to the implementation </p> </li>
+</ul> <p> <codeph>CExampleInterface</codeph> uses the overloads of <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita#GUID-1344F049-81C4-3D17-AF46-8B5584680ADB/GUID-ECFBCF8D-E372-36CD-8B60-0CFDBE01833E"><apiname>REComSession::CreateImplementation(TUid, TUid &amp;)</apiname></xref> to
+implement these functions. </p> <p> <codeph>CExampleInterface</codeph> declares one pure virtual function, <codeph>DoMethodL()</codeph>, which supplies a service to the client. Implementations must implement
+this function. </p> <p> <filepath>InterfaceDefinition</filepath> also provides an example of a custom resolver, called <codeph>CExampleResolver</codeph>. Its behaviour is the same as ECom's default resolver. Because a
+resolver is an implementation of the ECom <codeph>CResolver</codeph> interface, it requires a registration resource file (<filepath>100098ea.rss</filepath>), and an exported factory table (<filepath>Proxy.cpp</filepath>). </p> </section>
+<section id="GUID-17AD128E-AAF6-4AEB-B423-EE6B17AC843B"><title>Class
+Summary</title><p><xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita"><apiname>REComSession</apiname></xref></p><p><xref href="GUID-6E3118A3-4CE5-32AD-9C73-5CDD7B54D9EC.dita"><apiname>TEComResolverParams</apiname></xref></p><p><xref href="GUID-DABE7E22-BDF6-3A2E-99F1-3453706A694E.dita"><apiname>RImplInfoPtrArray</apiname></xref></p><p><xref href="GUID-38D97F70-383E-3950-B052-CB56965B0B48.dita"><apiname>CResolver</apiname></xref></p></section>
+<section id="GUID-BDC71AA8-C20C-44CE-9D96-A79EED13E2BA"><title>Usage</title> <p>Building <filepath>InterfaceDefinition</filepath> exports the
+files that contain the interface definition, <filepath>Interface.h</filepath> and <filepath>Interface.inl</filepath>, to <filepath>epoc32\include\</filepath>; produces a DLL <filepath>ExampleResolver.dll</filepath>; and compiles
+a resource file <filepath>ExampleResolver.rsc</filepath> in the <filepath>\resource\plugins\</filepath> directory. </p> <p>Implementations
+of the interface are provided in the <xref href="GUID-711C387D-E10C-5469-872A-5B2BDACC9B91.dita">Interface Implementation</xref> example. </p> <p>A client program that accesses the interface is
+provided in the <xref href="GUID-7B4A78D8-64BB-550E-ABC0-255312351215.dita">Interface Client</xref>example. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e201740_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E51546A8-D000-540C-A757-56B323EA9DA7_d0e206748_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD"><title>Configuring and clearing files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can configure the following settings for audio or video files, and the session log file: </p> <ul><li id="GUID-59FCA9A3-F83D-5097-AC24-E87318B0EC59"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-10ACB7AE-2205-5023-9635-1AD770142612">Configuring audio files</xref>  </p> </li> <li id="GUID-6BEA4715-1C27-563C-9E53-B70D13390D13"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-742C4F60-67D6-543E-B45D-DD6D4C2A076D"> Configuring video files</xref>  </p> </li> <li id="GUID-CC0B59A1-E026-5507-967E-202FDEB49A1F"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-D3B03F7B-280B-5181-84C8-0F485312989E"> Configuring file metadata</xref>  </p> </li> <li id="GUID-BC3584F1-11FC-57A2-83D2-06EF8F35DD2A"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-8E05A501-610F-5DD8-B6A8-33FFDEC1E693"> Setting the video output screen</xref>  </p> </li> <li id="GUID-87E4CBAB-F3B0-53DE-A7D7-4D7AFF9048DB"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-335765F4-B7D0-5E2D-ACC5-3F0ABCAD7085">Enabling auto pause and resume for video</xref>  </p> </li> <li id="GUID-B56040FE-9A57-58D9-AC00-F0A4A39C58F7"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-F97DA796-FBB7-5571-AFFD-3D05B0379667">Clearing the log file</xref>  </p> </li> </ul> <p> <i>Note</i>: You can configure media files only when they are open, and when they are neither being recorded nor played. </p> <section id="GUID-10ACB7AE-2205-5023-9635-1AD770142612"><title>Configuring audio files </title> <p>To configure the settings of an audio file: </p> <ol id="GUID-96A42A7D-890F-521A-B492-A55A3C0A0277"><li id="GUID-F96A562C-C09F-5DD4-8DC0-0B82A356F4A8"><p>In the <i>File</i> menu, click <i>Open for Play</i>, and select the audio file you want to configure. </p> </li> <li id="GUID-56C06939-250A-57BF-A194-7FD42A291816"><p>In the <i>Settings</i> menu, click <i>Audio</i>. The <i>Audio Settings</i> dialog box is displayed. </p> <fig id="GUID-9404C9C8-B263-5CD7-BB04-58B8D64778BE"><image href="GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e329820_href.jpg" placement="inline"/></fig> </li> <li id="GUID-BA9DE04B-F28B-5812-A1C3-D946B0C652A9"><p>In the <i>Repeats</i> box, enter the number of times to repeat the audio clip. </p> </li> <li id="GUID-2C07C46F-5083-5E37-9905-2E1DB2BFC654"><p>In the <i>Delay</i> box, enter the interval between repeats in seconds. </p> </li> <li id="GUID-DA3925A0-F812-56C0-96CF-06553D723209"><p>Select the <i>Autoplay</i> check box to play the file automatically when you open it for play. </p> </li> <li id="GUID-A2EE886D-978B-544D-ACAD-82F8AE911970"><p>Select the <i>Priority</i> and <i>Priority Preference</i>. </p> </li> <li id="GUID-5F634EFE-FC4A-5454-A4DD-5372F3311F8A"><p>Select the <i>Auto Pause&amp;Resume</i> check box to enable this functionality. </p> </li> <li id="GUID-453E68B1-543A-545D-958C-7D1784CEF6F5"><p>Click <i>OK</i> to save the audio settings. </p> </li> </ol> </section> <section id="GUID-742C4F60-67D6-543E-B45D-DD6D4C2A076D"><title> Configuring video files</title> <p> <b>Note:</b> The ability to configure the video settings is not yet supported. </p> <p>To configure the settings of a video file: </p> <ol id="GUID-68FA45CF-E92D-54B1-A40B-57182D0B00EB"><li id="GUID-F76A916E-EFA2-59CA-828E-94324FF8135E"><p>In the <i>File</i> menu, click <i>Open for Play</i>, and select the video file you want to configure. </p> </li> <li id="GUID-1BA8998F-E933-5733-8340-68CAB7C41690"><p>In the <i>Settings</i> menu, click <i>Video</i>. The <i>Video Setting</i> dialog box is displayed. </p> <fig id="GUID-804DF0A9-259C-5896-9E4F-E6F1244BCCCD"><image href="GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e329915_href.jpg" placement="inline"/></fig> </li> <li id="GUID-FB24EA21-D318-5849-AAE6-E236A068F934"><p>Select the degree of <i>Rotation</i>. </p> </li> <li id="GUID-DE89FFB3-1FF9-5D5B-B74B-B32888D25A5B"><p>Enter percentages for the <i>Scale Width</i> and <i>Scale Height</i>. </p> </li> <li id="GUID-95D6F7CD-33F8-5B53-9323-96511E20B17F"><p>Select the <i>Anti Alias Filtering</i> check box to enable anti-alias filtering. </p> </li> <li id="GUID-A448ECA0-A6A1-58E0-B519-5CF61E3567AD"><p>Enter the coordinates in the <i>top</i>, <i>bottom</i>, <i>left</i> and <i>right</i> boxes to define the boundaries of the crop region. </p> </li> <li id="GUID-AF2BD2D0-B4CC-5B03-B196-5395902BBE12"><p>Select the <i>Viewfinder</i> check box to enable it. </p> </li> <li id="GUID-6E586D81-8759-5D8F-ADC5-2916DD17CCFF"><p>Enter values for the <i>Camera Index</i> and <i>Camera Priority</i>. </p> </li> <li id="GUID-AC381ED5-C310-5CE5-8B44-ED419B5AF3C6"><p>Click <i>OK</i> to save the video settings. </p> </li> </ol> </section> <section id="GUID-D3B03F7B-280B-5181-84C8-0F485312989E"><title>Configuring file metadata</title> <p>You can enter the metadata for any media file that is open for record. You can view but cannot modify the metadata of a file that is open for play. </p> <p>To enter or modify file metadata: </p> <ol id="GUID-2BBE1526-B882-52C1-81F7-520CB74E0D19"><li id="GUID-D15B6C04-0833-5583-95FC-3231195277F4"><p>In the <i>File</i> menu, select <i>Open for Record</i>. </p> </li> <li id="GUID-D760F842-6C8F-5825-AB40-A3D3EDA77257"><p>In the <i>Settings</i> menu, select <i>Meta Data</i>. The <i>MetaData</i> dialog box is displayed. </p> <fig id="GUID-6231F7D6-3862-5DAB-BC89-3BC3F1A1242A"><image href="GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e330027_href.jpg" placement="inline"/></fig> </li> <li id="GUID-19A742D8-3CA8-5E8A-AEE5-DBADCC03426D"><p>Enter information into the <i>Title</i>, <i>Author</i>, <i>Copyright</i>, <i>Revision</i>, <i>Category</i> and <i>Comments</i> boxes. </p> </li> <li id="GUID-C6BAB573-7EC5-5932-A587-56C51AA6FD09"><p>Click <i>OK</i> to save the metadata details entered. </p> </li> </ol> </section> <section id="GUID-8E05A501-610F-5DD8-B6A8-33FFDEC1E693"><title>Setting the video output screen</title> <p>You can set the video output rendering to any specific screen number. </p> <p>To set the output screen: </p> <ol id="GUID-1AD9FD49-93EC-583D-B1F7-604B2552F2B8"><li id="GUID-17628EFA-C86B-5FDC-97ED-601DE9F383FD"><p>In the <i>Settings</i> menu, select <i>Multiple Screen</i>. The <i>Set Output Screen</i> dialog box is displayed. </p> <fig id="GUID-102B7E57-B693-5C3B-BC1A-E13D718ABC6B"><image href="GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e330088_href.png" placement="inline"/></fig> </li> <li id="GUID-154D8E32-E573-5E32-A9FE-2D69BBDAA1A5"><p>Enter the <i>Screen Number</i> in the <i>Enter the Screen Number</i> box. </p> </li> <li id="GUID-B091B41A-69D7-55CD-9AE9-95DA19F7269D"><p>Click <i>OK</i> to save the output screen setting. </p> <p> <b>Note:</b> If the <i>Screen Number</i> is not supported, the MVS displays a <codeph>KErrNotSupported</codeph> message. </p> </li> </ol> </section> <section id="GUID-335765F4-B7D0-5E2D-ACC5-3F0ABCAD7085"><title>Enabling auto pause and resume for video</title> <p>You can enable auto pause and resume for video by registering for resource notification. Registering for resource notification means that the audio playback for a video can be paused and resumed efficiently if access to the resource is lost and subsequently regained. </p> <p>To enable auto pause and resume: </p> <ol id="GUID-3F039CE8-B1A9-5F4C-A692-91E0F26CB410"><li id="GUID-D75B0956-3C05-5137-AA8C-032F6C01BF88"><p>In the <i>Settings</i> menu, select <i>Register For Notification</i>. The <i>Register For Resource Notification</i> dialog box is displayed. </p> <fig id="GUID-BAE3C4F0-3F48-5389-B163-B0A7FDAE0FC9"><image href="GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e330149_href.png" placement="inline"/></fig> </li> <li id="GUID-5274C1D3-DAB0-5C0B-A3B7-3D23F39ACA90"><p>Select the <i>Enable Auto Pause &amp; Resume</i> check box to enable this functionality. </p> </li> <li id="GUID-E45FF772-F48E-5B47-80AB-97ED358F8FC3"><p>Click <i>OK</i> to save the auto pause and resume setting. </p> <p>If you currently have a media file open for record, an information message is displayed to inform you that the setting has been applied. Otherwise, the setting is saved and applied when you next open a media file for record. </p> </li> </ol> <p>To disable auto pause and resume, repeat the above steps but clear the <i>Enable Auto Pause &amp; Resume</i> check box. </p> </section> <section id="GUID-F97DA796-FBB7-5571-AFFD-3D05B0379667"><title>Clearing the log file</title> <p>All events during a session are recorded in a <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">log file</xref>. </p> <p>To clear the log for the current session, in the <i>Settings</i> menu, click <i>ClearLog</i>. </p> <p> <b>Note:</b> This feature is currently not available. </p> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD"><title>Configuring and clearing files</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>You can configure the following settings for audio or video files, and the session log file: </p> <ul><li id="GUID-59FCA9A3-F83D-5097-AC24-E87318B0EC59"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-10ACB7AE-2205-5023-9635-1AD770142612">Configuring audio files</xref>  </p> </li> <li id="GUID-6BEA4715-1C27-563C-9E53-B70D13390D13"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-742C4F60-67D6-543E-B45D-DD6D4C2A076D"> Configuring video files</xref>  </p> </li> <li id="GUID-CC0B59A1-E026-5507-967E-202FDEB49A1F"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-D3B03F7B-280B-5181-84C8-0F485312989E"> Configuring file metadata</xref>  </p> </li> <li id="GUID-BC3584F1-11FC-57A2-83D2-06EF8F35DD2A"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-8E05A501-610F-5DD8-B6A8-33FFDEC1E693"> Setting the video output screen</xref>  </p> </li> <li id="GUID-87E4CBAB-F3B0-53DE-A7D7-4D7AFF9048DB"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-335765F4-B7D0-5E2D-ACC5-3F0ABCAD7085">Enabling auto pause and resume for video</xref>  </p> </li> <li id="GUID-B56040FE-9A57-58D9-AC00-F0A4A39C58F7"><p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita#GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD/GUID-F97DA796-FBB7-5571-AFFD-3D05B0379667">Clearing the log file</xref>  </p> </li> </ul> <p> <i>Note</i>: You can configure media files only when they are open, and when they are neither being recorded nor played. </p> <section id="GUID-10ACB7AE-2205-5023-9635-1AD770142612"><title>Configuring audio files </title> <p>To configure the settings of an audio file: </p> <ol id="GUID-96A42A7D-890F-521A-B492-A55A3C0A0277"><li id="GUID-F96A562C-C09F-5DD4-8DC0-0B82A356F4A8"><p>In the <i>File</i> menu, click <i>Open for Play</i>, and select the audio file you want to configure. </p> </li> <li id="GUID-56C06939-250A-57BF-A194-7FD42A291816"><p>In the <i>Settings</i> menu, click <i>Audio</i>. The <i>Audio Settings</i> dialog box is displayed. </p> <fig id="GUID-9404C9C8-B263-5CD7-BB04-58B8D64778BE"><image href="GUID-73A431EF-44CA-5E62-AF3F-1601CFD2484F_d0e323663_href.jpg" placement="inline"/></fig> </li> <li id="GUID-BA9DE04B-F28B-5812-A1C3-D946B0C652A9"><p>In the <i>Repeats</i> box, enter the number of times to repeat the audio clip. </p> </li> <li id="GUID-2C07C46F-5083-5E37-9905-2E1DB2BFC654"><p>In the <i>Delay</i> box, enter the interval between repeats in seconds. </p> </li> <li id="GUID-DA3925A0-F812-56C0-96CF-06553D723209"><p>Select the <i>Autoplay</i> check box to play the file automatically when you open it for play. </p> </li> <li id="GUID-A2EE886D-978B-544D-ACAD-82F8AE911970"><p>Select the <i>Priority</i> and <i>Priority Preference</i>. </p> </li> <li id="GUID-5F634EFE-FC4A-5454-A4DD-5372F3311F8A"><p>Select the <i>Auto Pause&amp;Resume</i> check box to enable this functionality. </p> </li> <li id="GUID-453E68B1-543A-545D-958C-7D1784CEF6F5"><p>Click <i>OK</i> to save the audio settings. </p> </li> </ol> </section> <section id="GUID-742C4F60-67D6-543E-B45D-DD6D4C2A076D"><title> Configuring video files</title> <p> <b>Note:</b> The ability to configure the video settings is not yet supported. </p> <p>To configure the settings of a video file: </p> <ol id="GUID-68FA45CF-E92D-54B1-A40B-57182D0B00EB"><li id="GUID-F76A916E-EFA2-59CA-828E-94324FF8135E"><p>In the <i>File</i> menu, click <i>Open for Play</i>, and select the video file you want to configure. </p> </li> <li id="GUID-1BA8998F-E933-5733-8340-68CAB7C41690"><p>In the <i>Settings</i> menu, click <i>Video</i>. The <i>Video Setting</i> dialog box is displayed. </p> <fig id="GUID-804DF0A9-259C-5896-9E4F-E6F1244BCCCD"><image href="GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e323758_href.jpg" placement="inline"/></fig> </li> <li id="GUID-FB24EA21-D318-5849-AAE6-E236A068F934"><p>Select the degree of <i>Rotation</i>. </p> </li> <li id="GUID-DE89FFB3-1FF9-5D5B-B74B-B32888D25A5B"><p>Enter percentages for the <i>Scale Width</i> and <i>Scale Height</i>. </p> </li> <li id="GUID-95D6F7CD-33F8-5B53-9323-96511E20B17F"><p>Select the <i>Anti Alias Filtering</i> check box to enable anti-alias filtering. </p> </li> <li id="GUID-A448ECA0-A6A1-58E0-B519-5CF61E3567AD"><p>Enter the coordinates in the <i>top</i>, <i>bottom</i>, <i>left</i> and <i>right</i> boxes to define the boundaries of the crop region. </p> </li> <li id="GUID-AF2BD2D0-B4CC-5B03-B196-5395902BBE12"><p>Select the <i>Viewfinder</i> check box to enable it. </p> </li> <li id="GUID-6E586D81-8759-5D8F-ADC5-2916DD17CCFF"><p>Enter values for the <i>Camera Index</i> and <i>Camera Priority</i>. </p> </li> <li id="GUID-AC381ED5-C310-5CE5-8B44-ED419B5AF3C6"><p>Click <i>OK</i> to save the video settings. </p> </li> </ol> </section> <section id="GUID-D3B03F7B-280B-5181-84C8-0F485312989E"><title>Configuring file metadata</title> <p>You can enter the metadata for any media file that is open for record. You can view but cannot modify the metadata of a file that is open for play. </p> <p>To enter or modify file metadata: </p> <ol id="GUID-2BBE1526-B882-52C1-81F7-520CB74E0D19"><li id="GUID-D15B6C04-0833-5583-95FC-3231195277F4"><p>In the <i>File</i> menu, select <i>Open for Record</i>. </p> </li> <li id="GUID-D760F842-6C8F-5825-AB40-A3D3EDA77257"><p>In the <i>Settings</i> menu, select <i>Meta Data</i>. The <i>MetaData</i> dialog box is displayed. </p> <fig id="GUID-6231F7D6-3862-5DAB-BC89-3BC3F1A1242A"><image href="GUID-504E4334-FDA9-5982-8BF7-509D019AFD4C_d0e323870_href.jpg" placement="inline"/></fig> </li> <li id="GUID-19A742D8-3CA8-5E8A-AEE5-DBADCC03426D"><p>Enter information into the <i>Title</i>, <i>Author</i>, <i>Copyright</i>, <i>Revision</i>, <i>Category</i> and <i>Comments</i> boxes. </p> </li> <li id="GUID-C6BAB573-7EC5-5932-A587-56C51AA6FD09"><p>Click <i>OK</i> to save the metadata details entered. </p> </li> </ol> </section> <section id="GUID-8E05A501-610F-5DD8-B6A8-33FFDEC1E693"><title>Setting the video output screen</title> <p>You can set the video output rendering to any specific screen number. </p> <p>To set the output screen: </p> <ol id="GUID-1AD9FD49-93EC-583D-B1F7-604B2552F2B8"><li id="GUID-17628EFA-C86B-5FDC-97ED-601DE9F383FD"><p>In the <i>Settings</i> menu, select <i>Multiple Screen</i>. The <i>Set Output Screen</i> dialog box is displayed. </p> <fig id="GUID-102B7E57-B693-5C3B-BC1A-E13D718ABC6B"><image href="GUID-B96A7D1B-957C-5050-9D1D-5439A13A5CED_d0e323931_href.png" placement="inline"/></fig> </li> <li id="GUID-154D8E32-E573-5E32-A9FE-2D69BBDAA1A5"><p>Enter the <i>Screen Number</i> in the <i>Enter the Screen Number</i> box. </p> </li> <li id="GUID-B091B41A-69D7-55CD-9AE9-95DA19F7269D"><p>Click <i>OK</i> to save the output screen setting. </p> <p> <b>Note:</b> If the <i>Screen Number</i> is not supported, the MVS displays a <codeph>KErrNotSupported</codeph> message. </p> </li> </ol> </section> <section id="GUID-335765F4-B7D0-5E2D-ACC5-3F0ABCAD7085"><title>Enabling auto pause and resume for video</title> <p>You can enable auto pause and resume for video by registering for resource notification. Registering for resource notification means that the audio playback for a video can be paused and resumed efficiently if access to the resource is lost and subsequently regained. </p> <p>To enable auto pause and resume: </p> <ol id="GUID-3F039CE8-B1A9-5F4C-A692-91E0F26CB410"><li id="GUID-D75B0956-3C05-5137-AA8C-032F6C01BF88"><p>In the <i>Settings</i> menu, select <i>Register For Notification</i>. The <i>Register For Resource Notification</i> dialog box is displayed. </p> <fig id="GUID-BAE3C4F0-3F48-5389-B163-B0A7FDAE0FC9"><image href="GUID-220D3B2F-7A88-55AB-942F-1735A6E9E420_d0e323992_href.png" placement="inline"/></fig> </li> <li id="GUID-5274C1D3-DAB0-5C0B-A3B7-3D23F39ACA90"><p>Select the <i>Enable Auto Pause &amp; Resume</i> check box to enable this functionality. </p> </li> <li id="GUID-E45FF772-F48E-5B47-80AB-97ED358F8FC3"><p>Click <i>OK</i> to save the auto pause and resume setting. </p> <p>If you currently have a media file open for record, an information message is displayed to inform you that the setting has been applied. Otherwise, the setting is saved and applied when you next open a media file for record. </p> </li> </ol> <p>To disable auto pause and resume, repeat the above steps but clear the <i>Enable Auto Pause &amp; Resume</i> check box. </p> </section> <section id="GUID-F97DA796-FBB7-5571-AFFD-3D05B0379667"><title>Clearing the log file</title> <p>All events during a session are recorded in a <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">log file</xref>. </p> <p>To clear the log for the current session, in the <i>Settings</i> menu, click <i>ClearLog</i>. </p> <p> <b>Note:</b> This feature is currently not available. </p> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita">MVS GUI layout</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e322816_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e328973_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e3249_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e4524_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e203595_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E56D30B2-9EF7-555C-8119-9F5E0F959AB4_d0e208603_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C" xml:lang="en"><title>Global
-Surface Updates</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Global surface updates are surface updates that are submitted to all displays
-rather than just one display. By using global surface updates, the Video Renderer
-can update surfaces on all displays including ones that it is not aware of.
-When the Video Renderer sends a global surface update, the update is broadcast
-by the Graphics <xref href="GUID-81A0A2E9-4BB9-58BF-B2D3-08098E7E9C7C.dita">Surface
-Update</xref> component to all Composition Implementations present in the
-system. Each Composition Implementation determines whether the surface is
-displayed on its associated screen and if so, forces an update. For more information,
-see <xref href="GUID-D2ECF215-B53C-5659-BA86-5B658C0C2D2F.dita">Global Surface
-Updates</xref> in the Graphics Guide. </p>
-<p>The Video Renderer registers and unregisters surfaces with the Window Server
-for all available displays. When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::CreateSurfaceL()</apiname></xref>,
-the Video Renderer creates the surface and then registers it with each display.
-When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::DestroySurfaceL()</apiname></xref>,
-the Video Renderer unregisters the surface with each display and then destroys
-it. The following sequence diagram shows how the Video Renderer registers
-and unregisters surfaces: </p>
-<fig id="GUID-B9190405-76E6-557D-A1F7-03ADDB8E456D">
-<title>           Surface registration          </title>
-<image href="GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e328353_href.png" placement="inline"/>
-</fig>
-<p>The Video Renderer uses the global constant <codeph>KAllScreens</codeph> (provided
-by the Surface Update component) to ensure all displays are updated with new
-data. The following sequence diagram shows the Video Renderer passing <codeph>KAllScreens</codeph> in
-the call to <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>RSurfaceUpdateSession::SubmitUpdate()</apiname></xref>: </p>
-<fig id="GUID-4CA7A049-1B60-5CB5-956A-DDDFF0A5E3B1">
-<title>           Data flow between client, Video Renderer and Surface Update
-client-side API          </title>
-<image href="GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e328376_href.png" placement="inline"/>
-</fig>
-</conbody><related-links>
-<link href="GUID-98FBEA7E-78BA-5A64-90D6-4641418003B4.dita"><linktext>Video Renderer
-Component</linktext></link>
-<link href="GUID-63CB6C7E-44EC-5D0B-A37D-FE78F7D76592.dita"><linktext>Graphics
-Composition Collection</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C" xml:lang="en"><title>Global
+Surface Updates</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Global surface updates are surface updates that are submitted to all displays
+rather than just one display. By using global surface updates, the Video Renderer
+can update surfaces on all displays including ones that it is not aware of.
+When the Video Renderer sends a global surface update, the update is broadcast
+by the Graphics <xref href="GUID-81A0A2E9-4BB9-58BF-B2D3-08098E7E9C7C.dita">Surface
+Update</xref> component to all Composition Implementations present in the
+system. Each Composition Implementation determines whether the surface is
+displayed on its associated screen and if so, forces an update. For more information,
+see <xref href="GUID-D2ECF215-B53C-5659-BA86-5B658C0C2D2F.dita">Global Surface
+Updates</xref> in the Graphics Guide. </p>
+<p>The Video Renderer registers and unregisters surfaces with the Window Server
+for all available displays. When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::CreateSurfaceL()</apiname></xref>,
+the Video Renderer creates the surface and then registers it with each display.
+When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::DestroySurfaceL()</apiname></xref>,
+the Video Renderer unregisters the surface with each display and then destroys
+it. The following sequence diagram shows how the Video Renderer registers
+and unregisters surfaces: </p>
+<fig id="GUID-B9190405-76E6-557D-A1F7-03ADDB8E456D">
+<title>           Surface registration          </title>
+<image href="GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e322196_href.png" placement="inline"/>
+</fig>
+<p>The Video Renderer uses the global constant <codeph>KAllScreens</codeph> (provided
+by the Surface Update component) to ensure all displays are updated with new
+data. The following sequence diagram shows the Video Renderer passing <codeph>KAllScreens</codeph> in
+the call to <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>RSurfaceUpdateSession::SubmitUpdate()</apiname></xref>: </p>
+<fig id="GUID-4CA7A049-1B60-5CB5-956A-DDDFF0A5E3B1">
+<title>           Data flow between client, Video Renderer and Surface Update
+client-side API          </title>
+<image href="GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e322219_href.png" placement="inline"/>
+</fig>
+</conbody><related-links>
+<link href="GUID-98FBEA7E-78BA-5A64-90D6-4641418003B4.dita"><linktext>Video Renderer
+Component</linktext></link>
+<link href="GUID-63CB6C7E-44EC-5D0B-A37D-FE78F7D76592.dita"><linktext>Graphics
+Composition Collection</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e3490_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e4765_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e4231_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E5FB2D04-D57E-4EEA-850F-40F813C75D8C_d0e5506_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e74415_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e79541_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2" xml:lang="en"><title>Life
-cycle of active objects</title><shortdesc>This document describes the life cycle of an active objet.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The diagram illustrates the life-cycle of an active object. </p>
-<fig id="GUID-BF465AB5-B007-5F44-9AF7-DA0963AE3BDE">
-<title>Flow diagram showing the life cycle of an active object</title>
-<image href="GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e237164_href.png" placement="inline"/>
-</fig>
-<p>Procedural flow follows the black arrows; control is transferred along
-the blue links, as follows:</p>
-<ul>
-<li id="GUID-3E3558A3-8C64-515B-A024-81586B472985"><p>the main program creates
-and installs an active scheduler</p> </li>
-<li id="GUID-15AE6C3A-5CF7-5711-951A-6FFC8CB6ED27"><p>active objects are created;
-their constructors ensure that every active object is added to the active
-scheduler (which keeps a reference to the object in its queue)</p> </li>
-<li id="GUID-9428DF85-02A3-56C2-A145-604A0356A166"><p>an active object is
-called to issue an initial request. This sets the object's <codeph>iActive</codeph> true
-(indicating a request was issued but not yet completed) and schedules the
-underlying service, which sets the object's <codeph>iStatus</codeph> to <codeph>KRequestPending</codeph>.
-(If this step is omitted, no service will be requested, so no handler will
-be invoked and hence the active scheduler will wait forever in its loop, never
-calling any object's <codeph>RunL()</codeph>)</p> </li>
-<li id="GUID-48E77554-3EF4-5313-969A-12D3426DA502"><p>the active scheduler
-is started. This now takes over; control is only returned to the main program
-for termination when the active scheduler is stopped</p> </li>
-<li id="GUID-E697E0CF-65F0-5AFD-8201-ADC6A791D98C"><p>when a requested service
-completes, it's handler terminates by signaling service completion; this alters
-the associated active object's <codeph>iStatus</codeph> </p> </li>
-<li id="GUID-CDD9242D-9540-5DC0-A948-8914F2AEF905"><p>when any service handler
-signals completion, the active scheduler tests each object in its queues for
-one with <codeph>iActive</codeph> true (request not completed) and <codeph>iStatus</codeph> not
-set to <codeph>KRequestPending</codeph> (i.e. the request has been handled) </p> </li>
-<li id="GUID-98980800-03DA-5623-9305-94609FBE9788"><p>if the active scheduler
-finds an object with the above conditions, it sets <codeph>iActive</codeph> false
-and calls the object's <codeph>RunL()</codeph> </p> </li>
-<li id="GUID-CFC4609C-3FED-538E-9555-1A90114876A3"><p>the <codeph>RunL()</codeph> may
-reschedule the request (so that the handler is again invoked when the requested
-service completes and the cycle continues.) or may stop the active scheduler,
-returning control to the main program for termination.</p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E61A931D-6E66-5E17-AE61-ABFB74CB8EF2" xml:lang="en"><title>Life
+cycle of active objects</title><shortdesc>This document describes the life cycle of an active objet.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The diagram illustrates the life-cycle of an active object. </p>
+<fig id="GUID-BF465AB5-B007-5F44-9AF7-DA0963AE3BDE">
+<title>Flow diagram showing the life cycle of an active object</title>
+<image href="GUID-36F18DC4-7BD0-59C6-95E9-8FD945B86D7E_d0e233427_href.png" placement="inline"/>
+</fig>
+<p>Procedural flow follows the black arrows; control is transferred along
+the blue links, as follows:</p>
+<ul>
+<li id="GUID-3E3558A3-8C64-515B-A024-81586B472985"><p>the main program creates
+and installs an active scheduler</p> </li>
+<li id="GUID-15AE6C3A-5CF7-5711-951A-6FFC8CB6ED27"><p>active objects are created;
+their constructors ensure that every active object is added to the active
+scheduler (which keeps a reference to the object in its queue)</p> </li>
+<li id="GUID-9428DF85-02A3-56C2-A145-604A0356A166"><p>an active object is
+called to issue an initial request. This sets the object's <codeph>iActive</codeph> true
+(indicating a request was issued but not yet completed) and schedules the
+underlying service, which sets the object's <codeph>iStatus</codeph> to <codeph>KRequestPending</codeph>.
+(If this step is omitted, no service will be requested, so no handler will
+be invoked and hence the active scheduler will wait forever in its loop, never
+calling any object's <codeph>RunL()</codeph>)</p> </li>
+<li id="GUID-48E77554-3EF4-5313-969A-12D3426DA502"><p>the active scheduler
+is started. This now takes over; control is only returned to the main program
+for termination when the active scheduler is stopped</p> </li>
+<li id="GUID-E697E0CF-65F0-5AFD-8201-ADC6A791D98C"><p>when a requested service
+completes, it's handler terminates by signaling service completion; this alters
+the associated active object's <codeph>iStatus</codeph> </p> </li>
+<li id="GUID-CDD9242D-9540-5DC0-A948-8914F2AEF905"><p>when any service handler
+signals completion, the active scheduler tests each object in its queues for
+one with <codeph>iActive</codeph> true (request not completed) and <codeph>iStatus</codeph> not
+set to <codeph>KRequestPending</codeph> (i.e. the request has been handled) </p> </li>
+<li id="GUID-98980800-03DA-5623-9305-94609FBE9788"><p>if the active scheduler
+finds an object with the above conditions, it sets <codeph>iActive</codeph> false
+and calls the object's <codeph>RunL()</codeph> </p> </li>
+<li id="GUID-CFC4609C-3FED-538E-9555-1A90114876A3"><p>the <codeph>RunL()</codeph> may
+reschedule the request (so that the handler is again invoked when the requested
+service completes and the cycle continues.) or may stop the active scheduler,
+returning control to the main program for termination.</p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,102 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8" xml:lang="en"><title>Asynchronous
-Services Example Codes</title><shortdesc>Explains how to use asynchronous requests.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<ul>
-<li id="GUID-3CEEC547-CB45-5BC4-85BE-C2DF97663BE9"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest: asynchronous programming without active objects</xref>  </p> </li>
-<li id="GUID-0A475759-3571-5F7A-986C-45F93257C2CE"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop: asynchronous programming without active objects</xref>  </p> </li>
-<li id="GUID-442DA981-732E-5F21-8140-A7E998099B25"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop: asynchronous programming without active objects</xref>  </p> </li>
-<li id="GUID-0CC6DC14-4CE8-500E-A9BE-BF147E5BC130"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463">RunComplete: asynchronous programming with active objects</xref>  </p> </li>
-<li id="GUID-5B75E3E3-4AD4-51FD-828D-0A81BF0AE087"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6">AcceptInput1-2: asynchronous programming with active objects</xref>  </p> </li>
-<li id="GUID-2E15F495-27E3-57F6-BB79-E392237F7E8D"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5">AcceptPrintInput: asynchronous programming with active objects</xref>  </p> </li>
-<li id="GUID-A16AA99F-366E-5EED-85CF-7372F177EBFF"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E">Fibonacci1-3: asynchronous programming with active objects</xref>. </p> </li>
-</ul>
-<section id="GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906"><title>SingleRequest:
-asynchronous programming without active objects</title> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-5649e475-b630-4411-ae06-99a03f575dbd.zip" scope="external"> SingleRequest.zip </xref></p><p>Click on the following link
-to download additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-5649e475-b630-4411-ae06-99a03f575dbd.html" scope="peer"> browse SingleRequest </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p>Click
-on the below link for S60 Example which demonstrates Asynchronous requests<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-9f4be784-fb23-4a66-9f7f-d44b28fe98c1.zip" scope="external"> ClientServerAsync .zip</xref> .</p><p>Browse the S60 files.<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-9f4be784-fb23-4a66-9f7f-d44b28fe98c1.html" scope="external"> ClientServerAsync </xref> .</p><p><b>Description</b> </p> <p>This
-example shows how to issue and wait for a single request. </p> <p>The example
-shows the general principles involved in asynchronous programming. It uses
-a simple wait loop and shows how the completion of asynchronous events are
-handled <i>without</i> active objects. </p> <p>This example does not use active
-objects <i>deliberately</i>. </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security
-issues</b> </p> <p>The example requires no specific capabilities in order
-to run - and does not demonstrate any security issues. </p> </section>
-<section id="GUID-D9B89770-81F8-52ED-848E-F79A92858C37"><title>WaitLoop: asynchronous
-programming without active objects</title> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a1802d10-4226-43b8-a616-093ecb286eff.zip" scope="external"> Waitloop.zip </xref></p><p>Click on the following link to
-download additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a1802d10-4226-43b8-a616-093ecb286eff.html" scope="peer"> browse Waitloop </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>This
-example shows how a wait loop can be used to identify and handle a completed
-request. </p> <p>It shows the general principles involved in asynchronous
-programming. It uses a simple wait loop and shows how the completion of asynchronous
-events are handled <i>without</i> active objects. </p> <p>This example does
-not use active objects <i>deliberately</i>. </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security
-issues</b> </p> <p>The example requires no specific capabilities in order
-to run - and does not demonstrate any security issues. </p> </section>
-<section id="GUID-F6C2B633-E744-5B40-819D-6615406A9664"><title>RealLifeWaitLoop:
-asynchronous programming without active objects</title> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d03bc9b-a832-427b-9e78-b593d3618267.zip" scope="external"> RealLifeWaitLoop.zip </xref></p><p>Click on the following
-link to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d03bc9b-a832-427b-9e78-b593d3618267.html" scope="peer"> browse RealLifeWaitLoop </xref> to view example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>As
-with the <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref> example,
-this example shows how a wait loop can be used to identify and handle a completed
-request. However, this example shows how the wait loop can deal with multiple
-asynchronous service providers. </p> <p>The example shows the general principles
-involved in asynchronous programming; it uses a simple wait loop and shows
-how the completion of asynchronous events are handled <i>without</i> active
-objects. </p> <p>This example <i>deliberately</i> does not use active objects. </p><p><b>Class
-summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security issues</b> </p> <p>The
-example requires no specific capabilities in order to run - and does not demonstrate
-any security issues. </p> </section>
-<section id="GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463"><title>RunComplete:
-asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-0820a8bc-295c-45fb-875b-33eb81b907b8.zip" scope="external"> RunComplete.zip </xref></p><p>Click on the following link
-to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-0820a8bc-295c-45fb-875b-33eb81b907b8.html" scope="peer"> browse RunComplete </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>The
-example shows how active objects and an active scheduler can be used to handle
-asynchronous events. Compare this with the following examples; <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest</xref>, <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref> and <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop</xref>. </p> <p>It
-demonstrates a single <codeph>CMessageTimer</codeph> active object which runs
-until completion. </p><p><b>Class summary</b></p><p> <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref>  <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref>  <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example
-requires no specific capabilities in order to run - and does not demonstrate
-any security issues. </p> </section>
-<section id="GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6"><title>AcceptInput1-2:
-asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
-on the following links to download the examples:</p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-16b394b8-da07-4325-aaab-2af5d07b881f.zip" scope="external"> AcceptInput1.zip</xref> </p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7fbe04f9-1bf5-4957-a2f4-94992d0d2cc4.zip" scope="external"> AcceptInput2.zip</xref></p><p>Click on the following link
-to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click on the following
-links to view the examples:</p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-16b394b8-da07-4325-aaab-2af5d07b881f.html" scope="peer"> browse AcceptInput1 </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7fbe04f9-1bf5-4957-a2f4-94992d0d2cc4.html" scope="peer">browse AcceptInput2 </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>These
-examples show how active objects and an active scheduler can be used to handle
-asynchronous events. </p> <p>They demonstrate a single <codeph>CKeyMessengerProcessor</codeph> active
-object (derived from class <codeph>CActiveConsole</codeph>), which accepts
-input from keyboard, but does not print it. This object contains a <codeph>CMessageTimer</codeph> object
-which it activates if the user inputs the character "m" and cancelled if the
-user inputs "c". </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref>  <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example
-requires no specific capabilities in order to run - and does not demonstrate
-any security issues. </p> </section>
-<section id="GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5"><title>AcceptPrintInput:
-asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
-on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-285678f7-e35c-45ae-8074-8246fb6b1e90.zip" scope="external">AcceptPrintInput.zip</xref></p><p>Click on the following
-link to download additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external">CommonFramework.zip</xref></p><p>View the source code<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-285678f7-e35c-45ae-8074-8246fb6b1e90.html" scope="peer"> browse AcceptPrintInput</xref>. View the additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer">browse CommonFramework</xref>.</p> <p><b>Description</b> </p> <p>This
-example demonstrates how to accept and print keyboard input to a console using
-active objects. </p> <p>The example implements a class called <codeph>CWriteKeyProcessor</codeph> which
-is an active object that requests and handles keyboard input in its <codeph>ProcessKeyPress()</codeph> method.
-An alphabetic or space character is printed as a character, anything else
-is printed as an integer. Pressing the escape key terminates the application. </p><p><b>Class
-summary</b></p><p> <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref>  </p> <p><b>Security
-issues</b> </p> <p>The example requires no specific capabilities in order
-to run - and does not demonstrate any security issues. </p> </section>
-<section id="GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E"><title>Fibonacci1-3:
-asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
-on the following links to download the examples: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a87ca9bc-77dd-43b0-8e38-d16a454e2c6e.zip" scope="external"> Fibonacii1.zip </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-1f2ee4ff-787b-4240-b912-aa02651f823c.zip" scope="external">Fibonacii2.zip </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a0979da8-ff45-4aa0-b0e0-5cc518ec328c.zip" scope="external">Fibonacii3.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a87ca9bc-77dd-43b0-8e38-d16a454e2c6e.html" scope="peer"> browse  Fibonacii1 </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-1f2ee4ff-787b-4240-b912-aa02651f823c.html" scope="peer">browse Fibonacii2</xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a0979da8-ff45-4aa0-b0e0-5cc518ec328c.html" scope="peer">browse Fibonacii3</xref></p> <p><b>Description</b> </p> <p>These
-examples show how active objects and an active scheduler can be used to handle
-asynchronous events and long-running services to maintain system responsiveness. </p><p><b>Class
-summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref> <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname> CActiveScheduler </apiname></xref> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example requires no specific capabilities
-in order to run - and does not demonstrate any security issues. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8" xml:lang="en"><title>Asynchronous
+Services Example Codes</title><shortdesc>Explains how to use asynchronous requests.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<ul>
+<li id="GUID-3CEEC547-CB45-5BC4-85BE-C2DF97663BE9"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest: asynchronous programming without active objects</xref>  </p> </li>
+<li id="GUID-0A475759-3571-5F7A-986C-45F93257C2CE"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop: asynchronous programming without active objects</xref>  </p> </li>
+<li id="GUID-442DA981-732E-5F21-8140-A7E998099B25"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop: asynchronous programming without active objects</xref>  </p> </li>
+<li id="GUID-0CC6DC14-4CE8-500E-A9BE-BF147E5BC130"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463">RunComplete: asynchronous programming with active objects</xref>  </p> </li>
+<li id="GUID-5B75E3E3-4AD4-51FD-828D-0A81BF0AE087"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6">AcceptInput1-2: asynchronous programming with active objects</xref>  </p> </li>
+<li id="GUID-2E15F495-27E3-57F6-BB79-E392237F7E8D"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5">AcceptPrintInput: asynchronous programming with active objects</xref>  </p> </li>
+<li id="GUID-A16AA99F-366E-5EED-85CF-7372F177EBFF"><p><xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E">Fibonacci1-3: asynchronous programming with active objects</xref>. </p> </li>
+</ul>
+<section id="GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906"><title>SingleRequest:
+asynchronous programming without active objects</title> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-5649e475-b630-4411-ae06-99a03f575dbd.zip" scope="external"> SingleRequest.zip </xref></p><p>Click on the following link
+to download additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-5649e475-b630-4411-ae06-99a03f575dbd.html" scope="peer"> browse SingleRequest </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p>Click
+on the below link for Example which demonstrates Asynchronous requests<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-9f4be784-fb23-4a66-9f7f-d44b28fe98c1.zip" scope="external"> ClientServerAsync .zip</xref> .</p><p>Browse
+the S60 files.<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-9f4be784-fb23-4a66-9f7f-d44b28fe98c1.html" scope="external"> ClientServerAsync </xref> .</p><p><b>Description</b> </p> <p>This
+example shows how to issue and wait for a single request. </p> <p>The example
+shows the general principles involved in asynchronous programming. It uses
+a simple wait loop and shows how the completion of asynchronous events are
+handled <i>without</i> active objects. </p> <p>This example does not use active
+objects <i>deliberately</i>. </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security
+issues</b> </p> <p>The example requires no specific capabilities in order
+to run - and does not demonstrate any security issues. </p> </section>
+<section id="GUID-D9B89770-81F8-52ED-848E-F79A92858C37"><title>WaitLoop: asynchronous
+programming without active objects</title> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a1802d10-4226-43b8-a616-093ecb286eff.zip" scope="external"> Waitloop.zip </xref></p><p>Click on the following link to
+download additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a1802d10-4226-43b8-a616-093ecb286eff.html" scope="peer"> browse Waitloop </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>This
+example shows how a wait loop can be used to identify and handle a completed
+request. </p> <p>It shows the general principles involved in asynchronous
+programming. It uses a simple wait loop and shows how the completion of asynchronous
+events are handled <i>without</i> active objects. </p> <p>This example does
+not use active objects <i>deliberately</i>. </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security
+issues</b> </p> <p>The example requires no specific capabilities in order
+to run - and does not demonstrate any security issues. </p> </section>
+<section id="GUID-F6C2B633-E744-5B40-819D-6615406A9664"><title>RealLifeWaitLoop:
+asynchronous programming without active objects</title> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4d03bc9b-a832-427b-9e78-b593d3618267.zip" scope="external"> RealLifeWaitLoop.zip </xref></p><p>Click on the following
+link to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4d03bc9b-a832-427b-9e78-b593d3618267.html" scope="peer"> browse RealLifeWaitLoop </xref> to view example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>As
+with the <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref> example,
+this example shows how a wait loop can be used to identify and handle a completed
+request. However, this example shows how the wait loop can deal with multiple
+asynchronous service providers. </p> <p>The example shows the general principles
+involved in asynchronous programming; it uses a simple wait loop and shows
+how the completion of asynchronous events are handled <i>without</i> active
+objects. </p> <p>This example <i>deliberately</i> does not use active objects. </p><p><b>Class
+summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref></p> <p><b>Security issues</b> </p> <p>The
+example requires no specific capabilities in order to run - and does not demonstrate
+any security issues. </p> </section>
+<section id="GUID-D3EA20C0-AF5C-5AFE-8014-48CB92851463"><title>RunComplete:
+asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-0820a8bc-295c-45fb-875b-33eb81b907b8.zip" scope="external"> RunComplete.zip </xref></p><p>Click on the following link
+to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-0820a8bc-295c-45fb-875b-33eb81b907b8.html" scope="peer"> browse RunComplete </xref> to view the example code.</p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>The
+example shows how active objects and an active scheduler can be used to handle
+asynchronous events. Compare this with the following examples; <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-9D95DEED-4E6A-5139-9188-DD7FA0A4B906">SingleRequest</xref>, <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-D9B89770-81F8-52ED-848E-F79A92858C37">WaitLoop</xref> and <xref href="GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8.dita#GUID-E63545EC-172E-53F3-B0B3-EA5150FD92D8/GUID-F6C2B633-E744-5B40-819D-6615406A9664">RealLifeWaitLoop</xref>. </p> <p>It
+demonstrates a single <codeph>CMessageTimer</codeph> active object which runs
+until completion. </p><p><b>Class summary</b></p><p> <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref>  <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref>  <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example
+requires no specific capabilities in order to run - and does not demonstrate
+any security issues. </p> </section>
+<section id="GUID-802DB10F-150B-5A76-BFC8-A7E8EB4A68D6"><title>AcceptInput1-2:
+asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
+on the following links to download the examples:</p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-16b394b8-da07-4325-aaab-2af5d07b881f.zip" scope="external"> AcceptInput1.zip</xref> </p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-7fbe04f9-1bf5-4957-a2f4-94992d0d2cc4.zip" scope="external"> AcceptInput2.zip</xref></p><p>Click on the following link
+to download additional files:<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external"> CommonFramework.zip </xref></p><p>Click on the following
+links to view the examples:</p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-16b394b8-da07-4325-aaab-2af5d07b881f.html" scope="peer"> browse AcceptInput1 </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-7fbe04f9-1bf5-4957-a2f4-94992d0d2cc4.html" scope="peer">browse AcceptInput2 </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer"> browse CommonFramework </xref> to view the additional file.</p> <p><b>Description</b> </p> <p>These
+examples show how active objects and an active scheduler can be used to handle
+asynchronous events. </p> <p>They demonstrate a single <codeph>CKeyMessengerProcessor</codeph> active
+object (derived from class <codeph>CActiveConsole</codeph>), which accepts
+input from keyboard, but does not print it. This object contains a <codeph>CMessageTimer</codeph> object
+which it activates if the user inputs the character "m" and cancelled if the
+user inputs "c". </p><p><b>Class summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref>  <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example
+requires no specific capabilities in order to run - and does not demonstrate
+any security issues. </p> </section>
+<section id="GUID-1BEA3D45-21A2-54AB-ABBD-EF23716FE6B5"><title>AcceptPrintInput:
+asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
+on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-285678f7-e35c-45ae-8074-8246fb6b1e90.zip" scope="external">AcceptPrintInput.zip</xref></p><p>Click on the following
+link to download additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external">CommonFramework.zip</xref></p><p>View the source code<xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-285678f7-e35c-45ae-8074-8246fb6b1e90.html" scope="peer"> browse AcceptPrintInput</xref>. View the additional file: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer">browse CommonFramework</xref>.</p> <p><b>Description</b> </p> <p>This
+example demonstrates how to accept and print keyboard input to a console using
+active objects. </p> <p>The example implements a class called <codeph>CWriteKeyProcessor</codeph> which
+is an active object that requests and handles keyboard input in its <codeph>ProcessKeyPress()</codeph> method.
+An alphabetic or space character is printed as a character, anything else
+is printed as an integer. Pressing the escape key terminates the application. </p><p><b>Class
+summary</b></p><p> <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname>CActiveScheduler </apiname></xref><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref>  </p> <p><b>Security
+issues</b> </p> <p>The example requires no specific capabilities in order
+to run - and does not demonstrate any security issues. </p> </section>
+<section id="GUID-AD4D25CA-B0BF-54BD-8029-DD495AB56C5E"><title>Fibonacci1-3:
+asynchronous programming with active objects</title> <p><b>Download</b> </p> <p>Click
+on the following links to download the examples: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a87ca9bc-77dd-43b0-8e38-d16a454e2c6e.zip" scope="external"> Fibonacii1.zip </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-1f2ee4ff-787b-4240-b912-aa02651f823c.zip" scope="external">Fibonacii2.zip </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-a0979da8-ff45-4aa0-b0e0-5cc518ec328c.zip" scope="external">Fibonacii3.zip </xref></p><p>Click <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a87ca9bc-77dd-43b0-8e38-d16a454e2c6e.html" scope="peer"> browse  Fibonacii1 </xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-1f2ee4ff-787b-4240-b912-aa02651f823c.html" scope="peer">browse Fibonacii2</xref></p><p><xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-a0979da8-ff45-4aa0-b0e0-5cc518ec328c.html" scope="peer">browse Fibonacii3</xref></p> <p><b>Description</b> </p> <p>These
+examples show how active objects and an active scheduler can be used to handle
+asynchronous events and long-running services to maintain system responsiveness. </p><p>An
+alternative solution, not using a timer, is described on <xref href="http://developer.symbian.org/wiki/index.php/Long_Running_Active_Object" scope="external">The Long Running Active Object</xref> wiki page.</p><p><b>Class
+summary</b></p><p><xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus </apiname></xref> <xref href="GUID-B4C76104-EA1B-3FC3-A31E-86A976598171.dita"><apiname> CActiveScheduler </apiname></xref> <xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname>CActive </apiname></xref> <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname> CTimer</apiname></xref>  </p> <p><b>Security issues</b> </p> <p>The example requires no specific capabilities
+in order to run - and does not demonstrate any security issues. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e77341_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e84053_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205"><title>Window Hierarchy</title><shortdesc>In a running application, all window instances are arranged in a hierarchy, in which each window has a parent. The Window Server has a window not owned by the client, called the "root" window which is the parent of all the group windows. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>: Application developers. </p> <section><title>Parent windows</title> <p>The following diagram shows the relationship between parent and child windows and window groups at run-time. Arrows indicate "is a parent of". </p> <fig id="GUID-536B9B54-0BEB-5A9F-9084-F2F3B293B6E6"><title>
-             Window hierarchy 
-          </title> <image href="GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e194096_href.png" placement="inline"/></fig> <p>The relationships between parent and child windows have the following properties: </p> <ul><li id="GUID-FAB0D905-CC6F-5D5A-BACE-7815919514D8"><p>A window's parent is specified when the window is created. </p> </li> <li id="GUID-A77DC123-B034-59A1-94E8-E0D181DD58FB"><p>The Window Server imposes no limit to the number of children a window can have. The number of children is limited only by the resources of the system. </p> </li> <li id="GUID-514DFF80-CF3D-59B8-A327-5246451759CD"><p>When a parent window is destroyed, all its children are removed from the screen. However, the objects associated with them are not destroyed until the window or the client that owns them is destroyed. </p> </li> <li id="GUID-F0A80D6C-6746-5384-AB13-659BC59BB702"><p>A window's parent defines the region in which the window can be displayed. A child cannot be displayed outside its parent, and is clipped to the parent’s visible region. If a child window is moved so that part of it extends beyond its parent, that part of the child window will not be visible. </p> </li> <li id="GUID-BA556D13-6A46-5AC8-8FE3-08C9F15061FF"><p>Note that if a window's parent is a window group, the window can be displayed anywhere on the screen, because window groups do not have a size. </p> </li> </ul> </section> <section><title>Sibling windows</title> <p>If a window has multiple children, these are known as <keyword>siblings</keyword>. Sibling windows are maintained in a list, and the parent window owns a link to the first window in the sibling list. The order of the windows in the sibling list represents the windows’ <keyword>ordinal position</keyword>. This determines which windows are displayed on top of which, if they overlap. </p> </section> </conbody><related-links><link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E63D0A01-EF87-566F-9BFA-9E75AD6F3205"><title>Window Hierarchy</title><shortdesc>In a running application, all window instances are arranged in a hierarchy, in which each window has a parent. The Window Server has a window not owned by the client, called the "root" window which is the parent of all the group windows. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: Both (ScreenPlay and non-ScreenPlay). <b>Target audience</b>: Application developers. </p> <section><title>Parent windows</title> <p>The following diagram shows the relationship between parent and child windows and window groups at run-time. Arrows indicate "is a parent of". </p> <fig id="GUID-536B9B54-0BEB-5A9F-9084-F2F3B293B6E6"><title>
+             Window hierarchy 
+          </title> <image href="GUID-79C82F78-471B-521F-A0CA-968C8BF33B48_d0e189034_href.png" placement="inline"/></fig> <p>The relationships between parent and child windows have the following properties: </p> <ul><li id="GUID-FAB0D905-CC6F-5D5A-BACE-7815919514D8"><p>A window's parent is specified when the window is created. </p> </li> <li id="GUID-A77DC123-B034-59A1-94E8-E0D181DD58FB"><p>The Window Server imposes no limit to the number of children a window can have. The number of children is limited only by the resources of the system. </p> </li> <li id="GUID-514DFF80-CF3D-59B8-A327-5246451759CD"><p>When a parent window is destroyed, all its children are removed from the screen. However, the objects associated with them are not destroyed until the window or the client that owns them is destroyed. </p> </li> <li id="GUID-F0A80D6C-6746-5384-AB13-659BC59BB702"><p>A window's parent defines the region in which the window can be displayed. A child cannot be displayed outside its parent, and is clipped to the parent’s visible region. If a child window is moved so that part of it extends beyond its parent, that part of the child window will not be visible. </p> </li> <li id="GUID-BA556D13-6A46-5AC8-8FE3-08C9F15061FF"><p>Note that if a window's parent is a window group, the window can be displayed anywhere on the screen, because window groups do not have a size. </p> </li> </ul> </section> <section><title>Sibling windows</title> <p>If a window has multiple children, these are known as <keyword>siblings</keyword>. Sibling windows are maintained in a list, and the parent window owns a link to the first window in the sibling list. The order of the windows in the sibling list represents the windows’ <keyword>ordinal position</keyword>. This determines which windows are displayed on top of which, if they overlap. </p> </section> </conbody><related-links><link href="GUID-99AE1D62-571A-5A63-B472-C0FBC0861F52.dita"><linktext>Window Types</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e67410_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E64A8D76-28AD-4F75-9E92-3290488F85D9_d0e72613_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5" xml:lang="en"><title>Inter-thread
-data transfer</title><shortdesc>Describes how data is transferred between threads.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The client-server message protocol supports the passing of a 32-bit request
-code and four 32-bit parameters from client to server and returning a 32-bit
-result from the server to the client. The parameters may be interpreted as
-plain integers or pointers; pointer types may be untyped (<codeph>TAny*</codeph>)
-or descriptor types (<codeph>TDesC8*</codeph> and <codeph>TDesC16*</codeph>)
-that the server can use to access the client’s address space. The request
-code, parameters, and the parameter types are packaged into a <xref href="GUID-4AD02F14-1142-372F-9D11-224595932034.dita"><apiname>TIpcArgs</apiname></xref> object.
-The parameter types are stored in the kernel side message object so that the
-kernel can check that subsequent operations requested by the server using
-the message are: </p>
-<ul>
-<li id="GUID-1F925301-81D0-5F84-ABEE-BB4DB576DBC1"><p>correct; for example,
-checking that the source and target descriptors are either both 8-bit or both
-16-bit descriptors </p> </li>
-<li id="GUID-EE7CCC5F-0013-55EA-B473-763785F5CD90"><p>permitted by the client;
-for example, checking that when the server tries to write to a client descriptor,
-that the client descriptor is <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref> -derived (modifiable),
-rather than <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref> -derived (non-modifiable) </p> </li>
-</ul>
-<p><note>NOTE:</note> although you can pass untyped pointers, it is not possible
-to directly access memory in another thread’s address space using an arbitrary
-pointer as this is inherently insecure. The ability to pass a pointer between
-a client and server is therefore only of value when the client and server
-are within the same process. In this case, the use of a pointer is obviously
-not limited to pointing to a descriptor, but may also be used to point to
-an arbitrary data structure containing information to be shared between the
-client and server. </p>
-<p>It is important to note that a server may not run until some arbitrary
-time after a client issues a request. Any descriptor containing data to be
-passed to the server must be guaranteed to exist until the request completes.
-For this reason, any such descriptor must <i>not</i> live on the program stack.
-Typically, such a descriptor would be a component of an object which is allocated
-on the heap. </p>
-<p>The following diagram illustrates the general idea. In this case, there
-are three parameters, one of which is an integer, and the other two being
-pointers to descriptors. </p>
-<fig id="GUID-C3369B01-2A0D-5AB2-973B-386FDBBB6B86">
-<image href="GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e241065_href.png" placement="inline"/>
-<p>Inter-thread data transfer</p>
-</fig>
-<section id="GUID-EE636E39-A171-484D-AAF4-7996D04C8EEC"><title>See also</title> <p> <xref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita">Descriptor
-concepts</xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E651C7A7-D6EB-533E-A97A-360D089DE7A5" xml:lang="en"><title>Inter-thread
+data transfer</title><shortdesc>Describes how data is transferred between threads.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The client-server message protocol supports the passing of a 32-bit request
+code and four 32-bit parameters from client to server and returning a 32-bit
+result from the server to the client. The parameters may be interpreted as
+plain integers or pointers; pointer types may be untyped (<codeph>TAny*</codeph>)
+or descriptor types (<codeph>TDesC8*</codeph> and <codeph>TDesC16*</codeph>)
+that the server can use to access the client’s address space. The request
+code, parameters, and the parameter types are packaged into a <xref href="GUID-4AD02F14-1142-372F-9D11-224595932034.dita"><apiname>TIpcArgs</apiname></xref> object.
+The parameter types are stored in the kernel side message object so that the
+kernel can check that subsequent operations requested by the server using
+the message are: </p>
+<ul>
+<li id="GUID-1F925301-81D0-5F84-ABEE-BB4DB576DBC1"><p>correct; for example,
+checking that the source and target descriptors are either both 8-bit or both
+16-bit descriptors </p> </li>
+<li id="GUID-EE7CCC5F-0013-55EA-B473-763785F5CD90"><p>permitted by the client;
+for example, checking that when the server tries to write to a client descriptor,
+that the client descriptor is <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref> -derived (modifiable),
+rather than <xref href="GUID-52D07F46-2162-380C-A775-C3BB335C42F5.dita"><apiname>TDesC</apiname></xref> -derived (non-modifiable) </p> </li>
+</ul>
+<p><note>NOTE:</note> although you can pass untyped pointers, it is not possible
+to directly access memory in another thread’s address space using an arbitrary
+pointer as this is inherently insecure. The ability to pass a pointer between
+a client and server is therefore only of value when the client and server
+are within the same process. In this case, the use of a pointer is obviously
+not limited to pointing to a descriptor, but may also be used to point to
+an arbitrary data structure containing information to be shared between the
+client and server. </p>
+<p>It is important to note that a server may not run until some arbitrary
+time after a client issues a request. Any descriptor containing data to be
+passed to the server must be guaranteed to exist until the request completes.
+For this reason, any such descriptor must <i>not</i> live on the program stack.
+Typically, such a descriptor would be a component of an object which is allocated
+on the heap. </p>
+<p>The following diagram illustrates the general idea. In this case, there
+are three parameters, one of which is an integer, and the other two being
+pointers to descriptors. </p>
+<fig id="GUID-C3369B01-2A0D-5AB2-973B-386FDBBB6B86">
+<image href="GUID-2105B5F0-2D00-5ECA-8859-A8A432423327_d0e237328_href.png" placement="inline"/>
+<p>Inter-thread data transfer</p>
+</fig>
+<section id="GUID-EE636E39-A171-484D-AAF4-7996D04C8EEC"><title>See also</title> <p> <xref href="GUID-79BAF19D-F003-5468-9C01-6E918B06C36D.dita">Descriptor
+concepts</xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF"><title>Bluetooth Collection Overview</title><shortdesc>The Bluetooth collection contains the SDP, GAVDP and notifier support components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-8DCCC4AF-9226-5CE3-B357-8577C2B7E920"><title>Purpose</title> <p>The Bluetooth Collection contains the SDP, GAVDP and notifier support components. </p> </section> <section id="GUID-C411D319-BDC3-5349-AD14-03184BF96195"><title>Architecture</title> <fig id="GUID-28512480-0D8C-5FBE-B6F6-9AE5605AC932"><image href="GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393783_href.png" placement="inline"/></fig> </section> <section id="GUID-BD745D05-764F-57EE-817B-228CF6EDEFC5"><title>Components</title> <p>The Bluetooth collection contains the following components: </p> <ul><li id="GUID-6C4D5017-F754-5FD5-B4D1-E712DBE127F9"><p> <b>SDP</b>  </p> <p>Bluetooth Service Discovery Protocol (SDP) enables a device to find out what services are available on another device. For example, when connecting a mobile phone to a bluetooth headset, SDP can find out which Bluetooth profiles the headset supports. The SDP component enables devices to register services to the SDP database and to query the database for available services. The SDP Agent and the SDP Database provide functionality for the SDP component. </p> </li> <li id="GUID-33A8BCE8-D453-5997-BB66-E0EF9E9E15BD"><p> <b>GAVDP</b>  </p> <p>Generic Audio Video Distribution Profile (GAVDP) enables audio or video streaming. </p> </li> <li id="GUID-F3FA41AD-8738-584C-B624-573C5862DE24"><p> <b>Bluetooth Notifiers Support</b>  </p> <p>The Bluetooth Notifiers Support component enables you to create dialogs for interacting with device users about Bluetooth interactions. You can offer Bluetooth dialogs for several purposes, but the main purpose is to provide security for Bluetooth interactions. </p> </li> </ul> </section> <section><title>Using the Bluetooth collection</title> <p>The Bluetooth collection has the following uses: </p> <ul><li id="GUID-31D55218-8C3B-593A-AE91-C3FB8BCA016C"><p>using <xref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita">SDP</xref> to find out what services are available on another device </p> </li> <li id="GUID-F591458E-5D5B-5D3F-980E-89C5986B9DCE"><p>Using <xref href="GUID-5EF234AA-E4A4-5C79-962F-823A4DB29D05.dita">GAVDP</xref> to enable audio or video streaming </p> </li> <li id="GUID-917BB008-04E7-58B6-A3B1-ED2E102B4251"><p>using the <xref href="GUID-EA15E87C-6A24-50B1-9FAC-9ACE8911ABD5.dita">Bluetooth Notifiers Support</xref> to create dialogs for interacting with device users about Bluetooth interactions. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E65D89C5-0472-573A-BD1C-B298848CD4CF"><title>Bluetooth Collection Overview</title><shortdesc>The Bluetooth collection contains the SDP, GAVDP and notifier support components. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-8DCCC4AF-9226-5CE3-B357-8577C2B7E920"><title>Purpose</title> <p>The Bluetooth Collection contains the SDP, GAVDP and notifier support components. </p> </section> <section id="GUID-C411D319-BDC3-5349-AD14-03184BF96195"><title>Architecture</title> <fig id="GUID-28512480-0D8C-5FBE-B6F6-9AE5605AC932"><image href="GUID-02F4AA24-283A-503D-8BA9-7C926DC7E306_d0e393621_href.png" placement="inline"/></fig> </section> <section id="GUID-BD745D05-764F-57EE-817B-228CF6EDEFC5"><title>Components</title> <p>The Bluetooth collection contains the following components: </p> <ul><li id="GUID-6C4D5017-F754-5FD5-B4D1-E712DBE127F9"><p> <b>SDP</b>  </p> <p>Bluetooth Service Discovery Protocol (SDP) enables a device to find out what services are available on another device. For example, when connecting a mobile phone to a bluetooth headset, SDP can find out which Bluetooth profiles the headset supports. The SDP component enables devices to register services to the SDP database and to query the database for available services. The SDP Agent and the SDP Database provide functionality for the SDP component. </p> </li> <li id="GUID-33A8BCE8-D453-5997-BB66-E0EF9E9E15BD"><p> <b>GAVDP</b>  </p> <p>Generic Audio Video Distribution Profile (GAVDP) enables audio or video streaming. </p> </li> <li id="GUID-F3FA41AD-8738-584C-B624-573C5862DE24"><p> <b>Bluetooth Notifiers Support</b>  </p> <p>The Bluetooth Notifiers Support component enables you to create dialogs for interacting with device users about Bluetooth interactions. You can offer Bluetooth dialogs for several purposes, but the main purpose is to provide security for Bluetooth interactions. </p> </li> </ul> </section> <section><title>Using the Bluetooth collection</title> <p>The Bluetooth collection has the following uses: </p> <ul><li id="GUID-31D55218-8C3B-593A-AE91-C3FB8BCA016C"><p>using <xref href="GUID-EC7A9299-4272-5C1E-8A10-8267E154D56A.dita">SDP</xref> to find out what services are available on another device </p> </li> <li id="GUID-F591458E-5D5B-5D3F-980E-89C5986B9DCE"><p>Using <xref href="GUID-5EF234AA-E4A4-5C79-962F-823A4DB29D05.dita">GAVDP</xref> to enable audio or video streaming </p> </li> <li id="GUID-917BB008-04E7-58B6-A3B1-ED2E102B4251"><p>using the <xref href="GUID-EA15E87C-6A24-50B1-9FAC-9ACE8911ABD5.dita">Bluetooth Notifiers Support</xref> to create dialogs for interacting with device users about Bluetooth interactions. </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F" xml:lang="en"><title>Lists
-and grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Vertical lists are used extensively in most applications. Two-dimensional
-grids are less frequently used, but have obvious advantages in some situations.
-In lists and grids, the user can move the focus from one item to another using
-the Arrow keys. This is called browsing or scrolling.</p>
-<p>In tap-enabled devices, a menu item can be opened by touch down and release.</p>
-<p>In general, vertical browsing is preferred over horizontal browsing; the
-keypad solutions should take this into account.</p>
-<codeblock xml:space="preserve"/>
-<fig id="GUID-7B357FCA-0F6F-4C13-B566-63B9B30992F4">
-<title>Lists and grids</title>
-<image href="GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e58734_href.png" placement="inline"/>
-</fig>
-<section id="GUID-CABB0753-D960-4BAE-8159-81681F73CDAA"><title>Using
-lists and grids in C++ applications</title><p>The APIs to use for lists and
-grids are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> and the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref>. For implementation information, see <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E6803961-14A0-44BD-A94E-5D8A38EA907F" xml:lang="en"><title>Lists
+and grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Vertical lists are used extensively in most applications. Two-dimensional
+grids are less frequently used, but have obvious advantages in some situations.
+In lists and grids, the user can move the focus from one item to another using
+the Arrow keys. This is called browsing or scrolling.</p>
+<p>In devices supporting touch, a menu item can be opened by
+touch down and release.</p>
+<p>In general, vertical browsing is preferred over horizontal browsing; the
+keypad solutions should take this into account.</p>
+<fig id="GUID-7B357FCA-0F6F-4C13-B566-63B9B30992F4">
+<title>Lists and grids</title>
+<image href="GUID-BDAC640A-FBFE-4DC2-BB29-1A780BCA8ADA_d0e52653_href.png" placement="inline"/>
+</fig>
+<section id="GUID-CABB0753-D960-4BAE-8159-81681F73CDAA"><title>Using
+lists and grids in applications</title><p>The APIs to use for lists and grids
+are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> and the <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html" scope="peer">Grids API</xref>. For implementation information, see <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Grids_API_Specification/Grids_API_Specification.html#Grids_API_Specification.topic3" scope="peer">Using the Grids API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC"><title>What is the mechanism for reading, writing and searching for data</title><shortdesc>This topic describes the mechanism for reading data from the Comms Database and writing data to the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>All elements that you can read and write have the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> as a base class. This base class contains the functions that get and store that element. </p> <p>Tables, records, links and fields are all elements. The classes that represent tables, records, links and fields have <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> in their class hierarchy. You use the functions in <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> to load and store tables, records, links and fields. </p> <fig id="GUID-3EED9581-A88B-5E79-B672-42486CFB6BE3"><image href="GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e86852_href.png" placement="inline"/></fig> <p>The <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> class gives you: </p> <ul><li id="GUID-3D33E6EE-F6FA-5B75-A165-4A8731BD2FCB"><p>the functions to get data from the Comms Database: <codeph>LoadL()</codeph>, <codeph>FindL()</codeph>, <codeph>RefreshL()</codeph>  </p> </li> <li id="GUID-413D285C-2447-5157-B573-51056F79C50D"><p>the functions to put data into the Comms Database: <codeph>StoreL()</codeph>, <codeph>ModifyL()</codeph>, <codeph>DeleteL()</codeph>  </p> </li> </ul> <section><title>Getting data directly from the Comms Database</title> <p>If you know the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of a table, record, field or link, you can load the table, record, field or link from the Comms Database. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. Call <codeph>LoadL()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class to load the table, record, field or link. </p> <p>The CommsDat API gets the data that the tool or application is allowed to see from the Comms database. The data that the tool or application can see depends on platform security capabilities and the access attributes for the session. </p> <p>A request to load a single element fails if the tool or application does not have the platform security capabilities. </p> <p>A request to load a table does not fail if some records in the table are not available. The tool or application can see only those records that are available. </p> <p>A request to load a record does not fail if some fields in the record are not available. The tool or application can see only those fields that are available. </p> <p> <codeph>LoadL()</codeph> writes over the content of the table, record, field or link object in memory. </p> <p> <codeph>LoadL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Finding data in the Comms Database</title> <p>You can search for records in the Comms Database. There are two patterns: </p> <p><b>Finding a single record that has specified field values </b> </p> <p>You create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordBase</apiname></xref> object in memory. You select the fields for the search and set the field values. Call <codeph>FindL()</codeph> on the <codeph>CMDBRecordBase</codeph> object. <codeph>FindL()</codeph> is member of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class. If the search is successful, the CommsDat API fills the <codeph>CMDBRecordBase</codeph> object with the values from the first record in the Comms Database that matches. The values include the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref>. If the search is not successful, the <codeph>CMDBRecordBase</codeph> object is not changed. </p> <p> <codeph>FindL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> <p>Note that you do not need to set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table, the record, the field or the link object. </p> <p><b>Finding all records in a table that match a specified record </b> </p> <p>You create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSet</apiname></xref> object and append a single record to the array of records. You select the fields for the search and set the field values. This record is the 'search record'. Call <codeph>FindL()</codeph> on the <codeph>CMDBRecordSet</codeph> object. If the search is successful, the function returns a number of complete records. The first record found writes over the 'search record'. If the search is not successful, the <codeph>CMDBRecordSet</codeph> object is not changed </p> <p> <codeph>FindL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> <p>Note that you do not need to set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table, the record, the field or the link object. </p> </section> <section><title>Refreshing data in memory</title> <p>You can update your copy of the data in memory. You call <codeph>RefreshL()</codeph> to update the data. The method is similar to <codeph>LoadL()</codeph> but the method does not write over fields that the tool or application has changed. All other fields are refreshed from the Comms Database. </p> <p> <codeph>RefreshL()</codeph> is a member of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class. </p> <p> <codeph>RefreshL()</codeph> is useful if a tool or application maintains a cache of Comms information. </p> <p> <codeph>RefreshL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Adding new data to the Comms Database</title> <p>If need to add or change the data in the Comms Database you must add or change the data in the table, the record, the link or the field object in memory. </p> <p>Call <codeph>StoreL()</codeph> to create new records, tables and fields. The CommsDat API only stores the fields that the tool or application has changed. </p> <p>A table, record, field or link object that exists must have a valid <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> before the call to <codeph>StoreL()</codeph>. </p> <p>To add a new user defined table to the Comms Database set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewTableRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. </p> <p>To add a new record to a table set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewRecordRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. The table must exist before you add the new record. </p> <p>To add a new column to a user defined table set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewColumnRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. The effect of a new column is to add a new field in the user defined records. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>StoreL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Changing data in the Comms Database</title> <p>If you need to change data in the Comms Database you must change the data in the table, the record, the link or the field object in memory. The table, the record, the link and the field must already exist in the database. </p> <p>Call <codeph>ModifyL()</codeph> to change existing data. The function cannot create new records or tables, but can store new fields in a record. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>ModifyL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Deleting data from the Comms Database</title> <p>Call <codeph>DeleteL()</codeph> to delete a table, a record, a field or a link from the Comms Database. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>DeleteL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E71DEB5F-A13A-5675-B2DE-9BCFDB38A3EC"><title>What is the mechanism for reading, writing and searching for data</title><shortdesc>This topic describes the mechanism for reading data from the Comms Database and writing data to the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>All elements that you can read and write have the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> as a base class. This base class contains the functions that get and store that element. </p> <p>Tables, records, links and fields are all elements. The classes that represent tables, records, links and fields have <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> in their class hierarchy. You use the functions in <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> to load and store tables, records, links and fields. </p> <fig id="GUID-3EED9581-A88B-5E79-B672-42486CFB6BE3"><image href="GUID-69831D75-D16D-54CF-A083-0EDB358F3390_d0e80140_href.png" placement="inline"/></fig> <p>The <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> class gives you: </p> <ul><li id="GUID-3D33E6EE-F6FA-5B75-A165-4A8731BD2FCB"><p>the functions to get data from the Comms Database: <codeph>LoadL()</codeph>, <codeph>FindL()</codeph>, <codeph>RefreshL()</codeph>  </p> </li> <li id="GUID-413D285C-2447-5157-B573-51056F79C50D"><p>the functions to put data into the Comms Database: <codeph>StoreL()</codeph>, <codeph>ModifyL()</codeph>, <codeph>DeleteL()</codeph>  </p> </li> </ul> <section><title>Getting data directly from the Comms Database</title> <p>If you know the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of a table, record, field or link, you can load the table, record, field or link from the Comms Database. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. Call <codeph>LoadL()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class to load the table, record, field or link. </p> <p>The CommsDat API gets the data that the tool or application is allowed to see from the Comms database. The data that the tool or application can see depends on platform security capabilities and the access attributes for the session. </p> <p>A request to load a single element fails if the tool or application does not have the platform security capabilities. </p> <p>A request to load a table does not fail if some records in the table are not available. The tool or application can see only those records that are available. </p> <p>A request to load a record does not fail if some fields in the record are not available. The tool or application can see only those fields that are available. </p> <p> <codeph>LoadL()</codeph> writes over the content of the table, record, field or link object in memory. </p> <p> <codeph>LoadL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Finding data in the Comms Database</title> <p>You can search for records in the Comms Database. There are two patterns: </p> <p><b>Finding a single record that has specified field values </b> </p> <p>You create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordBase</apiname></xref> object in memory. You select the fields for the search and set the field values. Call <codeph>FindL()</codeph> on the <codeph>CMDBRecordBase</codeph> object. <codeph>FindL()</codeph> is member of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class. If the search is successful, the CommsDat API fills the <codeph>CMDBRecordBase</codeph> object with the values from the first record in the Comms Database that matches. The values include the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref>. If the search is not successful, the <codeph>CMDBRecordBase</codeph> object is not changed. </p> <p> <codeph>FindL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> <p>Note that you do not need to set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table, the record, the field or the link object. </p> <p><b>Finding all records in a table that match a specified record </b> </p> <p>You create a <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBRecordSet</apiname></xref> object and append a single record to the array of records. You select the fields for the search and set the field values. This record is the 'search record'. Call <codeph>FindL()</codeph> on the <codeph>CMDBRecordSet</codeph> object. If the search is successful, the function returns a number of complete records. The first record found writes over the 'search record'. If the search is not successful, the <codeph>CMDBRecordSet</codeph> object is not changed </p> <p> <codeph>FindL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> <p>Note that you do not need to set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table, the record, the field or the link object. </p> </section> <section><title>Refreshing data in memory</title> <p>You can update your copy of the data in memory. You call <codeph>RefreshL()</codeph> to update the data. The method is similar to <codeph>LoadL()</codeph> but the method does not write over fields that the tool or application has changed. All other fields are refreshed from the Comms Database. </p> <p> <codeph>RefreshL()</codeph> is a member of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> base class. </p> <p> <codeph>RefreshL()</codeph> is useful if a tool or application maintains a cache of Comms information. </p> <p> <codeph>RefreshL()</codeph> opens a read-only transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Adding new data to the Comms Database</title> <p>If need to add or change the data in the Comms Database you must add or change the data in the table, the record, the link or the field object in memory. </p> <p>Call <codeph>StoreL()</codeph> to create new records, tables and fields. The CommsDat API only stores the fields that the tool or application has changed. </p> <p>A table, record, field or link object that exists must have a valid <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> before the call to <codeph>StoreL()</codeph>. </p> <p>To add a new user defined table to the Comms Database set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewTableRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. </p> <p>To add a new record to a table set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewRecordRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. The table must exist before you add the new record. </p> <p>To add a new column to a user defined table set the record Id part of the <xref href="GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84.dita#GUID-6DAF85AD-E412-5823-81C2-FC1755A90A84/GUID-4DDD4947-D379-5B68-8DC0-B67B074FA852">element Id</xref> of the table to <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>KCDNewColumnRequest</apiname></xref> before the call to <codeph>StoreL()</codeph>. Call <codeph>SetRecordId()</codeph> on the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBElement</apiname></xref> base class to set the record Id. The effect of a new column is to add a new field in the user defined records. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>StoreL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Changing data in the Comms Database</title> <p>If you need to change data in the Comms Database you must change the data in the table, the record, the link or the field object in memory. The table, the record, the link and the field must already exist in the database. </p> <p>Call <codeph>ModifyL()</codeph> to change existing data. The function cannot create new records or tables, but can store new fields in a record. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>ModifyL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> <section><title>Deleting data from the Comms Database</title> <p>Call <codeph>DeleteL()</codeph> to delete a table, a record, a field or a link from the Comms Database. </p> <p>The tool or application must have the platform security capabilities to write to the Comms Database. </p> <p> <codeph>DeleteL()</codeph> opens a read/write transaction with the Comms Database if the tool or application has not already started a transaction. </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e334814_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E726406A-2DAF-5A5F-91AF-7919C671F18F_d0e340971_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E764B4A3-4CEE-461D-B555-C8969A62130A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E764B4A3-4CEE-461D-B555-C8969A62130A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E764B4A3-4CEE-461D-B555-C8969A62130A" xml:lang="en"><title>Status
-pane items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A tap on: </p>
-<ul>
-<li><p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi pane</xref>:
-common items (such as tabs) should perform a function that is obvious and
-clear. Common AVKON interaction does not change. However, it an application
-can assign an appropriate function to its Navi pane items. It is also possible
-not to assign any function where appropriate.</p></li>
-<li><p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal indicator
-pane</xref>: opens a pop-up with more information on <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
-pane</xref> indicators. It always includes battery and signal indicators and
-digital clock. The user can tap any of those for more information. For each
-visible universal indicator, there is one row reserved in the pop-up for displaying
-the icon and a description text. The description text may also inform about
-the current status and/or it may be a link to a view in corresponding application.
-For example, a tap on "3 new messages" opens the relevant view from the messaging
-application, and "Bluetooth active" switches view to the Bluetooth settings.
-Content of the row is determined by the application originating the indicator. </p></li>
-<li><p>Clock in Idle state opens the Clock application.</p></li>
-</ul>
-<section id="GUID-76A12C4E-75B1-4C9E-B885-2450DA02B990"><title>Using
-status pane items in C++ applications</title><p>The API to use for the status
-pane is the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status Pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.2" scope="peer">Using the Status Pane API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E764B4A3-4CEE-461D-B555-C8969A62130A" xml:lang="en"><title>Status
+pane items</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A tap on: </p>
+<ul>
+<li><p><xref href="GUID-76FD2A71-E8A3-4C82-9704-3F7F6AD4DFD8.dita">Navi pane</xref>:
+common items (such as tabs) should perform a function that is obvious and
+clear. Common AVKON interaction does not change. However, it an application
+can assign an appropriate function to its Navi pane items. It is also possible
+not to assign any function where appropriate.</p></li>
+<li><p><xref href="GUID-314B1556-5CB5-4BCC-93C0-B22DB849D2D5.dita">Universal indicator
+pane</xref>: opens a pop-up with more information on <xref href="GUID-771AF721-E2D7-41C8-BF97-5BD30D1A28AD.dita">Status
+pane</xref> indicators. It always includes battery and signal indicators and
+digital clock. The user can tap any of those for more information. For each
+visible universal indicator, there is one row reserved in the pop-up for displaying
+the icon and a description text. The description text may also inform about
+the current status and/or it may be a link to a view in corresponding application.
+For example, a tap on "3 new messages" opens the relevant view from the messaging
+application, and "Bluetooth active" switches view to the Bluetooth settings.
+Content of the row is determined by the application originating the indicator. </p></li>
+<li><p>Clock in the home screen opens the Clock application.</p></li>
+</ul>
+<section id="GUID-76A12C4E-75B1-4C9E-B885-2450DA02B990"><title>Using
+status pane items in applications</title><p>The API to use for the status
+pane is the <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html" scope="peer">Status Pane API</xref>. For implementation information, see <xref format="html" href="specs/guides/Status_Pane_API_Specification/Status_Pane_API_Specification.html#Status_Pane_API_Specification.topic3.2" scope="peer">Using the Status Pane API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e337536_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E77E2E2A-2F2D-549E-ABD6-175E68A406CB_d0e343733_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-E7A53792-5ABC-460C-87EA-36E8C6989A2C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E7A53792-5ABC-460C-87EA-36E8C6989A2C" xml:lang="en"><title>API
+Changes and Compatibility Breaks</title><shortdesc>The purpose of this section is to highlight all the API changes
+and compatibility breaks (binary &amp; source) in Symbian^3. It provides all
+the required information for Symbian application developers and eases their
+migration process from S60 5th Edition to Symbian^3.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In Symbian^3, all the deprecated APIs from the earlier releases are removed.
+In addition, a few more APIs are deprecated and the behavior for a few others
+has changed based on issues found in earlier Symbian platform
+releases. To avoid functionality duplication, support for a few APIs has been
+removed.</p>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,103 +1,103 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E" xml:lang="en"><title>Preview
-pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Preview pop-up is a floating component used for displaying more detailed
-data about an item that has focus in the main pane.</p>
-<fig id="GUID-443FE00D-6678-4951-9038-07C82D10B69E">
-<title>Preview pop-up</title>
-<image href="GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e67292_href.png" placement="inline"/>
-</fig>
-<p>The preview is displayed with a 0.6 second delay after the focus is moved
-(for example, scrolling down a list with the Arrow keys) to avoid too rapid
-and continuous flicker. The default time-out for closing the preview pop-up
-is the same as for the Information pop-up, but it is possible to adjust it
-if necessary.</p>
-<p>Preview pop-up contents cannot be scrolled and the component must not contain
-any buttons or other elements that make it appear interactive: the component
-is the same in both standard and touch-enabled devices and should the component
-be used in a standard non-touch device, its elements should not look touch-enabled.
-There can be a maximum of five text rows in a preview pop-up, and it is possible
-to place a small icon in the start of the rows. It is even possible to have
-more than one icon on a row instead of text, if necessary. The number of images
-in a single preview pop-up is limited to one, and it can be accompanied by
-up to two rows of text.</p>
-<p>Preview pop-up shows always duplicate data in a given application to ensure
-that the user will not miss any content or functionality even if a given product
-does not utilize preview pop-up (that is, it has been switched OFF). Owing
-to the special nature of preview pop-up, it is important to thoroughly consider
-its genuine usefulness in various applications. Furthermore, the component
-should not be confused with the Information pop-up note even though the data
-displayed in these two components can at times be identical.</p>
-<table id="GUID-77983E22-5C85-4810-83B0-F52EFC18D428"><title>Default touch
-events in Preview Pop-Up</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down / release in Preview pop-up area</p></entry>
-<entry><p>Application-specific</p></entry>
-<entry><p>Tactile: Tactile feedback follows the component-specific functionality.</p></entry>
-</row>
-<row>
-<entry><p>Touch down / release outside Preview pop-up</p></entry>
-<entry><p>Dismisses Preview pop-up</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Application-specific</p></entry>
-<entry><p>Tactile: Basic tactile feedback and audio feedback is provided with
-touch down event.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<note> No tactile feedback is provided with preview pop-up. Applications need
-to take care of tactile feedback for the interactive elements inside Preview
-pop-up.</note>
-<p/>
-<section id="GUID-0381A2A3-571D-4C1D-A418-AA0C71ECB681"><title>Preview pop-up
-in a touch interface</title><p>Preview pop-up is a floating component used
-for displaying more detailed data about an item that has the focus in the
-main pane. It is not a touch-only component, and its basic functionality is
-described above. Although it is not recommended to place buttons or other
-items that appear touch-enabled into the preview pop-up, it is still possible
-to give some items touch-only functions. It is up to each application to decide
-whether to make use of this support in some sensible way. For example, a tap
-on a www hyperlink displayed in the preview pop-up would open Browser and
-open the Web site in question. However, it should be noted that using touch-enabled
-items in the preview pop-up is an advanced, heavy-user feature.</p><p>A tap
-on an item in the preview pop-up can also open the stylus pop-up menu, when
-there is no obvious direct function for that item. For more information, see <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus pop-up menu</xref>.</p></section>
-<section id="GUID-BE7B9950-53D3-4BB5-8971-4CBD0D57CE51"><title>Preview pop-up
-for touch only</title><p>The above section describes the general case for
-touch and the preview pop-up. There is, however, a variance possibility for
-the preview pop-up, which is to limit it strictly for touch. In this case,
-the guideline for having no buttons or other obvious touch items in the preview
-pop-up can be ignored for the most part: if the preview pop-up can only be
-opened with a stylus, it is perfectly acceptable to make touch functions plainly
-touch-enabled.</p></section>
-<section id="GUID-AC64544E-D3D9-451C-B0EF-FF3F54B280DF"><title>Using
-preview pop-ups in C++ applications</title><p>The API to use for creating
-the preview pop-up component is the <xref format="html" href="specs/Guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer">Information preview pop-up API</xref>.</p><p>Preview pop-ups
-can be used in two modes: in the default mode where the pop-up is hidden automatically
-as a result of time-out or input event (either a key press or a pointer event),
-or in permanent mode where the pop-up stays visible until it is dismissed
-by the application code. </p><p>For implementation information, see <xref format="html" href="specs/Guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html#Information_Preview_Popup_API_Specification.topic3" scope="peer">Using the Information Preview Pop-up API</xref>. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E7EFAD50-3323-49A6-A5D9-95B95F0FBF0E" xml:lang="en"><title>Preview
+pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Preview pop-up is a floating component used for displaying more detailed
+data about an item that has focus in the main pane.</p>
+<fig id="GUID-443FE00D-6678-4951-9038-07C82D10B69E">
+<title>Preview pop-up</title>
+<image href="GUID-02072A1B-6F60-457B-8F26-2B25A6EA7C5F_d0e62220_href.png" placement="inline"/>
+</fig>
+<p>The preview is displayed with a 0.6 second delay after the focus is moved
+(for example, scrolling down a list with the Arrow keys) to avoid too rapid
+and continuous flicker. The default time-out for closing the preview pop-up
+is the same as for the Information pop-up, but it is possible to adjust it
+if necessary.</p>
+<p>Preview pop-up contents cannot be scrolled and the component must not contain
+any buttons or other elements that make it appear interactive: the component
+is the same in both standard and touch-enabled devices and should the component
+be used in a standard non-touch device, its elements should not look touch-enabled.
+There can be a maximum of five text rows in a preview pop-up, and it is possible
+to place a small icon in the start of the rows. It is even possible to have
+more than one icon on a row instead of text, if necessary. The number of images
+in a single preview pop-up is limited to one, and it can be accompanied by
+up to two rows of text.</p>
+<p>Preview pop-up shows always duplicate data in a given application to ensure
+that the user will not miss any content or functionality even if a given product
+does not utilize preview pop-up (that is, it has been switched OFF). Owing
+to the special nature of preview pop-up, it is important to thoroughly consider
+its genuine usefulness in various applications. Furthermore, the component
+should not be confused with the Information pop-up note even though the data
+displayed in these two components can at times be identical.</p>
+<table id="GUID-77983E22-5C85-4810-83B0-F52EFC18D428"><title>Default touch
+events in Preview Pop-Up</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down / release in Preview pop-up area</p></entry>
+<entry><p>Application-specific</p></entry>
+<entry><p>Tactile: Tactile feedback follows the component-specific functionality.</p></entry>
+</row>
+<row>
+<entry><p>Touch down / release outside Preview pop-up</p></entry>
+<entry><p>Application-specific</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Application-specific</p></entry>
+<entry><p>Tactile: Basic tactile feedback and audio feedback is provided with
+touch down event.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<note> No tactile feedback is provided with preview pop-up. Applications need
+to take care of tactile feedback for the interactive elements inside Preview
+pop-up.</note>
+<p/>
+<section id="GUID-0381A2A3-571D-4C1D-A418-AA0C71ECB681"><title>Preview pop-up
+in a touch interface</title><p>Preview pop-up is not a touch-only component,
+and its basic functionality is described above. Although it is
+not recommended to place buttons or other items that appear touch-enabled
+into the preview pop-up, it is still possible to give some items touch-only
+functions. It is up to each application to decide whether to make use of this
+support in some sensible way. For example, a tap on a www hyperlink displayed
+in the preview pop-up would open Browser and open the Web site in question.
+However, it should be noted that using touch-enabled items in the preview
+pop-up is an advanced, heavy-user feature.</p><p>A tap on an item in the preview
+pop-up can also open the stylus pop-up menu, when there is no obvious direct
+function for that item. For more information, see <xref href="GUID-C4E728B4-3E84-49A4-83CB-DF146420D78A.dita">Stylus
+pop-up menu</xref>.</p></section>
+<section id="GUID-BE7B9950-53D3-4BB5-8971-4CBD0D57CE51"><title>Preview pop-up
+for touch only</title><p>The above section describes the general case for
+touch and the preview pop-up. There is, however, a variance possibility for
+the preview pop-up, which is to limit it strictly for touch. In this case,
+the guideline for having no buttons or other obvious touch items in the preview
+pop-up can be ignored for the most part: if the preview pop-up can only be
+opened with a stylus, it is perfectly acceptable to make touch functions plainly
+touch-enabled.</p></section>
+<section id="GUID-AC64544E-D3D9-451C-B0EF-FF3F54B280DF"><title>Using
+preview pop-ups in applications</title><p>The API to use for creating the
+preview pop-up component is the <xref format="html" href="specs/Guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html" scope="peer">Information preview pop-up API</xref>.</p><p>Preview pop-ups
+can be used in two modes: in the default mode where the pop-up is hidden automatically
+as a result of time-out or input event (either a key press or a pointer event),
+or in permanent mode where the pop-up stays visible until it is dismissed
+by the application code. </p><p>For implementation information, see <xref format="html" href="specs/Guides/Information_Preview_Popup_API_Specification/Information_Preview_Popup_API_Specification.html#Information_Preview_Popup_API_Specification.topic3" scope="peer">Using the Information Preview Pop-up API</xref>. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e117641_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E808AB2B-3A2D-5C91-9047-A74AAA770CE6_d0e124179_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E8266924-FA52-5171-BD73-423A46227A74.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E8266924-FA52-5171-BD73-423A46227A74.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,201 +1,201 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E8266924-FA52-5171-BD73-423A46227A74" xml:lang="en"><title> Descriptor
-Arrays</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A descriptor array is a mechanism which allows descriptors to be aggregated
-in a convenient way. </p>
-<section><title>Introduction</title> <p>Descriptor arrays build on the behaviour
-supplied by the Dynamic Arrays API and provides normal array operations for
-inserting, appending, deleting, and accessing elements. </p> <p>There are
-two types of descriptor array, based on the way data is represented by the
-array: </p> <ul>
-<li id="GUID-798A2774-299C-5078-9F48-588AC1EE8143"><p>an array whose elements
-consist of non-modifiable pointer descriptors. </p> </li>
-<li id="GUID-D456390C-34ED-5908-B188-73F55C26559C"><p>an array whose elements
-consist of memory pointers. </p> </li>
-</ul> <p>Either array can be used to represent descriptor data. The difference
-between them is based on the way they are implemented, and this determines
-which one is most suitable for a given situation. </p> <p> <b>NOTE</b>: All
-array classes are provided in variants for narrow and wide characters (for
-example, <xref href="GUID-5C0DD165-5C23-38C0-983E-B856F9F46F12.dita"><apiname>CDesC8Array</apiname></xref> and <xref href="GUID-9EC9CD13-91FB-38F7-9E55-F41C584AC5A6.dita"><apiname>CDesC16Array</apiname></xref>).
-These concrete types can be used directly, but it is usual to use typedefs
-(for example, <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref>) that are conditionally defined
-to map to the wide or narrow characters depending on the build. Only the conditional
-types are used below. </p> <p>Descriptor arrays has three key concepts - descriptor
-array protocol (<codeph>MDesC16Array</codeph>), general descriptor array (<codeph>CDesC16Array</codeph>)
-and pointer descriptor array (<codeph>CPtrC16Array</codeph>). </p> <p><b>Descriptor
-array protocol</b> </p> <p>This array defines an interface implemented by
-all descriptor array classes, and hence provides a degree of polymorphism.
-It provides a count function, and can return a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> for
-an indexed element. </p> <p>The interface is defined by <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref>. </p> <p><b>General
-descriptor array</b> </p> <p>This array accepts elements of any descriptor
-type. For each descriptor added, it creates a new heap descriptor (<xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>)
-and copies the contents into it. </p> <p>The base class is <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref>.
-Derived classes provide storage in flat arrays (<xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref>)
-and segmented arrays (<xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref>). </p> <p><b>Pointer
-descriptor array</b> </p> <p>This array holds only <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptor
-elements, that is, the descriptor type that points to data stored elsewhere.
-The data pointed to by the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptors is not copied
-or moved. </p> <p>The pointer descriptor array is <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref>.
-It implements <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref>, and can be used polymorphically
-with general descriptor arrays. </p> </section>
-<section><title>Array of non-modifiable pointer descriptor elements</title> <p>The
-array is supplied in two variants: </p> <ul>
-<li id="GUID-B55063AC-A34D-5156-B35A-085BADDD66B2"><p>the 16-bit variant <xref href="GUID-3A648EBA-DD13-31A8-863C-602D84E1913D.dita"><apiname>CPtrC16Array</apiname></xref> containing <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> types. </p> </li>
-<li id="GUID-E51F01E9-4956-5E0A-A422-4A5A1E7B642C"><p>the 8-bit variant <xref href="GUID-421D5F30-909F-39AC-A945-F1AE4B401E2F.dita"><apiname>CPtrC8Array</apiname></xref> containing <xref href="GUID-6DF731E4-5691-31C4-BEE0-03A3873F15EC.dita"><apiname>TPtrC8</apiname></xref> types. </p> </li>
-</ul> <p>The array is also supplied as a build independent type, <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref>.
-This is used whenever the descriptor elements are used to represent text strings.
-By using the build independent type, the appropriate variant, either 16-bit
-or 8-bit, is selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
-has been defined or not. </p> <p>Binary data always requires the 8-bit variant,
-regardless of the build, and this should be explicitly used in program code. </p> <p>Explicit
-use of the 16-bit variant is rare. </p> <p>The elements of this type of array
-consist of non-modifiable pointer descriptors. These pointer descriptors represent
-the data of the descriptors added to the array. The following diagram illustrates
-this. The diagram is also true for <xref href="GUID-6DF731E4-5691-31C4-BEE0-03A3873F15EC.dita"><apiname>TPtrC8</apiname></xref> and <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref>. </p> <fig id="GUID-AB7B77C5-31BC-5DD0-B1FC-D02436E18D14">
-<title>              Array of non-modifiable pointer descriptor elements 
-          </title>
-<image href="GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e182924_href.png" placement="inline"/>
-</fig> <p> <b>NOTE:</b> <xref href="GUID-B24BD746-98D1-3837-B834-5C12D4D516FC.dita"><apiname>delete()</apiname></xref> and <xref href="GUID-FA50BA77-E578-3652-B1FB-AD2D0523CC17.dita"><apiname>reset()</apiname></xref> removes
-the non-modifiable pointer descriptors from the array but does <b>not</b> delete
-the data or descriptors that they point to. </p> </section>
-<section><title>Array of pointer elements</title> <p>The elements of this
-type of array consist of <b>pointers</b> to heap descriptors. </p> <p>When
-a descriptor is added to this type of array, a heap descriptor is allocated,
-taking its data from the supplied descriptor. The pointer to this heap descriptor
-is added as an array element. The following diagram illustrates this. The
-diagram is also true for <xref href="GUID-2A528453-0279-3E47-838C-F8A8D29B88F1.dita"><apiname>HBufC8</apiname></xref> and <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref>. </p> <fig id="GUID-D6B993E5-AF6B-5AD2-A30F-834C6815EFEF">
-<title>              Array of pointer elements            </title>
-<image href="GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e182971_href.png" placement="inline"/>
-</fig> <p>There are two implementations of the array, one using a flat buffer
-and the other using a segmented buffer. </p> <p>The flat buffer implementation
-is supplied in two variants: </p> <ul>
-<li id="GUID-8E031CC3-AC57-5882-A96A-40F041543714"><p>the 16-bit variant implemented
-using a flat buffer, a <xref href="GUID-0DF28074-4B76-3767-9FD8-EADF36E3EA14.dita"><apiname>CDesC16ArrayFlat</apiname></xref>, constructed from <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> types. </p> </li>
-<li id="GUID-53DE0372-9FE8-55F8-A358-7062CA7FC37A"><p>the 8-bit variant implemented
-using a flat buffer, a <xref href="GUID-A774AF80-82C3-3031-A197-5625DACD60FE.dita"><apiname>CDesC8ArrayFlat</apiname></xref>, constructed from <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref> types. </p> </li>
-</ul> <p>The segmented buffer implementation is supplied in two variants: </p> <ul>
-<li id="GUID-DAEB51F2-19D5-5BC8-95DA-0375AC759C57"><p>the 16-bit variant implemented
-using a segmented buffer, a <xref href="GUID-F2998F7B-DFB1-3EDA-A6FF-1F3B2065DE4D.dita"><apiname>CDesC16ArraySeg</apiname></xref>, constructed
-from <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> types. </p> </li>
-<li id="GUID-0880573C-40D7-5C27-A2DB-5B9FF808E670"><p>the 8-bit variant implemented
-using a segmented buffer, a <xref href="GUID-DFC1F01A-A107-3C7F-883A-6C4F11859E1C.dita"><apiname>CDesC8ArraySeg</apiname></xref>, constructed
-from <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref> types. </p> </li>
-</ul> <p>Both array implementations are also supplied as build independent
-types, <xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref> and <xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref>.
-These are used whenever the descriptors are used to represent text strings.
-By using the build independent types, the appropriate variants, either 16-bit
-or 8-bit, are selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
-has been defined or not. </p> <p>Binary data always requires the 8-bit variants,
-regardless of the build, and this should be explicitly used in program code. </p> <p>Explicit
-use of the 16-bit variants is rare. </p> <p> <b>NOTE:</b>  <xref href="GUID-B24BD746-98D1-3837-B834-5C12D4D516FC.dita"><apiname>delete()</apiname></xref> and <xref href="GUID-FA50BA77-E578-3652-B1FB-AD2D0523CC17.dita"><apiname>reset()</apiname></xref> removes
-the pointers from the array and also deletes the heap descriptors that they
-point to. </p> </section>
-<section><title>Type of array to be used</title> <p>The advantages of using
-one type over the other are subtle. </p> <p>When using an array of non-modifiable
-pointer descriptors, the data represented by each <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> exists
-independently of the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> itself. The memory required
-by the array is that required to contain the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> elements.
-The data represented by the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptors is not copied
-or moved. On the other hand, that same data must be guaranteed to remain in
-memory if the array is to have any purpose. </p> <p>When using an array of
-pointers, a new heap descriptor is allocated for each descriptor to be added
-to the array. This increases the total memory requirements of the array. On
-the other hand, each array element is smaller because the size of a pointer
-is slightly smaller than the size of a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> object. The
-original descriptor data can also be safely discarded once it has been added
-to the array. </p> <p>This type also has the advantage that there is no commitment
-to a concrete descriptor type. </p> </section>
-<section><title>Relationship between descriptor array classes</title> <p>The
-following diagram illustrates the relationship between the descriptor array
-concrete classes and the base classes which support them. </p> <fig id="GUID-43444E8B-F2F5-539B-BA9D-EDF9B832DFD9">
-<title>              The class relationships for CDesCArrayFlat &amp; CDesCArraySeg
-           </title>
-<image href="GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e183125_href.png" placement="inline"/>
-</fig> <p> </p> <fig id="GUID-3BD4A73F-1E09-515A-9833-6D9592A98E97">
-<title>              The class relationships for CPtrCArray            </title>
-<image href="GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e183136_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9948A6D4-19A2-58A2-B2F1-73EC577E1B0B"><title>Copying Descriptor
-Arrays </title> <p>An array of non-modifiable pointer descriptors, a <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> type,
-provides a function which can copy elements from any descriptor array. </p> <p>The
-source descriptor array must be one which satisfies the protocol defined by
-the <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref> mixin class. Add the new <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> elements
-to the <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> array to represent the source data. </p> <p>The
-implementation of the copy does not and cannot depend on the type of the source
-descriptor array,that is, whether it is a <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> type
-or a <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref> type. However, the following diagram shows
-the effect of the copy operation based on the concrete type of the source
-array. </p> <fig id="GUID-E320FF9E-CBCA-597C-AE3B-8480A0829EF7">
-<title>              Copying descriptor arrays            </title>
-<image href="GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e183182_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-009C368B-80E3-523B-BC4A-12BB90244CE1"><title>8-Bit Variant,
-16-Bit Variant and Build Independence</title> <p>Descriptor arrays are supplied
-in two variants: </p> <ul>
-<li id="GUID-7819B939-C7C0-5117-812D-B2D05D7650D4"><p>the 16-bit variant for
-16-bit descriptors. These descriptors are used for handling Unicode strings
-and double byte valued data. </p> </li>
-<li id="GUID-A1DCAB83-37F6-51ED-8AEA-0EFE361BE107"><p>the 8-bit variant for
-8-bit variant descriptors. These descriptors are used for handling non-Unicode
-strings and single byte valued data. (binary data). </p> </li>
-</ul> <p>Descriptor arrays are also supplied as build independent types. These
-are used for descriptors which are used to represent text strings. </p> <p>By
-using build independent types, the appropriate variant, either 16-bit or 8-bit,
-is selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
-has been defined or not. </p> <p>Binary data always requires the 8-bit variant
-regardless of the build, and it must be explicitly used in program code. Explicit
-use of the 16-bit variant is rare. With a few exceptions, the behaviour of
-both 8-bit and 16-bit variants is the same. </p> </section>
-<section id="GUID-A8D3CD4B-9069-5B98-ADBA-2272F597DE4D"><title>The MDesCArray
-mixin class</title> <p>The <codeph>MDesCArray</codeph> class is a mixin which
-defines a protocol for: </p> <ul>
-<li id="GUID-21092598-F289-5A57-BA93-48F23EF788AF"><p>returning the number
-of elements in a descriptor array </p> </li>
-<li id="GUID-0FAE184F-6D54-5CFF-858C-2A75F70D3969"><p>returning a non-modifiable
-pointer descriptor, a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> type representing a specific
-indexed element. </p> </li>
-</ul> <p>The use of the mixin permits a degree of polymorphism amongst the
-descriptor array classes. It permits the number of descriptor array elements
-to be returned and a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> type for a specific descriptor
-array element to be returned without knowing the specific concrete descriptor
-array type being accessed. </p> <p id="GUID-DA93F261-9E35-5073-AA06-3991B9B1AA35"><b>MDesCArray
-example</b> </p> <p>The following code fragments illustrate how the <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref> mixin
-class is used to return: </p> <ul>
-<li id="GUID-6262BE55-0B74-5779-AEB6-94357104051C"><p>the number of descriptor
-elements in a descriptor array. </p> </li>
-<li id="GUID-4D7F6F00-301C-534F-901E-85DB9847E9FF"><p>a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> representing
-a specific indexed descriptor element. </p> </li>
-</ul> <p>The code uses the build independent forms but the code is equally
-valid while using the explicit 8-bit or 16-bit variants. </p> <p>In this case, <xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref>, <xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref> and <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> can be handled by the single function <codeph>foo()</codeph>. </p> <codeblock id="GUID-83C3574E-9FA6-57A3-AD5E-58705C6F5A68" xml:space="preserve"> ...
- CDesCArrayFlat* descflat = new( ELeave ) CDesCArrayFlat( 4 );
- CDesCArraySeg*  descseg  = new( ELeave ) CDesCArraySeg( 4 );
- CPtrCArray*     ptrc     = new( ELeave ) CPtrCArray( 4 );
- ...
- ... // add descriptor elements to all three arrays
- ...
- foo( descflat );
- foo( descseg );
- foo( ptrc );
- ...</codeblock> <codeblock id="GUID-CF9F694C-2175-5DAF-9666-C34E097B9992" xml:space="preserve">void foo( MDesCArray* anArray )
-    {
-    ..
-    TInt  somenumber = anArray-&gt;MdcaCount();
-    TPtrC someptrc   = anArray-&gt;MdcaPoint( someindexvalue );
-    ..
-    }</codeblock> </section>
-</conbody><related-links>
-<link href="GUID-685CF352-372F-5393-97AF-1FA17DC57BA8.dita"><linktext>Constructing
-descriptor                 arrays</linktext></link>
-<link href="GUID-E3F403EE-717B-5EA6-BC4E-6840097CAC10.dita"><linktext>Using Dynamic
-Arrays</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E8266924-FA52-5171-BD73-423A46227A74" xml:lang="en"><title> Descriptor
+Arrays</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A descriptor array is a mechanism which allows descriptors to be aggregated
+in a convenient way. </p>
+<section><title>Introduction</title> <p>Descriptor arrays build on the behaviour
+supplied by the Dynamic Arrays API and provides normal array operations for
+inserting, appending, deleting, and accessing elements. </p> <p>There are
+two types of descriptor array, based on the way data is represented by the
+array: </p> <ul>
+<li id="GUID-798A2774-299C-5078-9F48-588AC1EE8143"><p>an array whose elements
+consist of non-modifiable pointer descriptors. </p> </li>
+<li id="GUID-D456390C-34ED-5908-B188-73F55C26559C"><p>an array whose elements
+consist of memory pointers. </p> </li>
+</ul> <p>Either array can be used to represent descriptor data. The difference
+between them is based on the way they are implemented, and this determines
+which one is most suitable for a given situation. </p> <p> <b>NOTE</b>: All
+array classes are provided in variants for narrow and wide characters (for
+example, <xref href="GUID-5C0DD165-5C23-38C0-983E-B856F9F46F12.dita"><apiname>CDesC8Array</apiname></xref> and <xref href="GUID-9EC9CD13-91FB-38F7-9E55-F41C584AC5A6.dita"><apiname>CDesC16Array</apiname></xref>).
+These concrete types can be used directly, but it is usual to use typedefs
+(for example, <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref>) that are conditionally defined
+to map to the wide or narrow characters depending on the build. Only the conditional
+types are used below. </p> <p>Descriptor arrays has three key concepts - descriptor
+array protocol (<codeph>MDesC16Array</codeph>), general descriptor array (<codeph>CDesC16Array</codeph>)
+and pointer descriptor array (<codeph>CPtrC16Array</codeph>). </p> <p><b>Descriptor
+array protocol</b> </p> <p>This array defines an interface implemented by
+all descriptor array classes, and hence provides a degree of polymorphism.
+It provides a count function, and can return a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> for
+an indexed element. </p> <p>The interface is defined by <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref>. </p> <p><b>General
+descriptor array</b> </p> <p>This array accepts elements of any descriptor
+type. For each descriptor added, it creates a new heap descriptor (<xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref>)
+and copies the contents into it. </p> <p>The base class is <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref>.
+Derived classes provide storage in flat arrays (<xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref>)
+and segmented arrays (<xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref>). </p> <p><b>Pointer
+descriptor array</b> </p> <p>This array holds only <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptor
+elements, that is, the descriptor type that points to data stored elsewhere.
+The data pointed to by the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptors is not copied
+or moved. </p> <p>The pointer descriptor array is <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref>.
+It implements <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref>, and can be used polymorphically
+with general descriptor arrays. </p> </section>
+<section><title>Array of non-modifiable pointer descriptor elements</title> <p>The
+array is supplied in two variants: </p> <ul>
+<li id="GUID-B55063AC-A34D-5156-B35A-085BADDD66B2"><p>the 16-bit variant <xref href="GUID-3A648EBA-DD13-31A8-863C-602D84E1913D.dita"><apiname>CPtrC16Array</apiname></xref> containing <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> types. </p> </li>
+<li id="GUID-E51F01E9-4956-5E0A-A422-4A5A1E7B642C"><p>the 8-bit variant <xref href="GUID-421D5F30-909F-39AC-A945-F1AE4B401E2F.dita"><apiname>CPtrC8Array</apiname></xref> containing <xref href="GUID-6DF731E4-5691-31C4-BEE0-03A3873F15EC.dita"><apiname>TPtrC8</apiname></xref> types. </p> </li>
+</ul> <p>The array is also supplied as a build independent type, <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref>.
+This is used whenever the descriptor elements are used to represent text strings.
+By using the build independent type, the appropriate variant, either 16-bit
+or 8-bit, is selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
+has been defined or not. </p> <p>Binary data always requires the 8-bit variant,
+regardless of the build, and this should be explicitly used in program code. </p> <p>Explicit
+use of the 16-bit variant is rare. </p> <p>The elements of this type of array
+consist of non-modifiable pointer descriptors. These pointer descriptors represent
+the data of the descriptors added to the array. The following diagram illustrates
+this. The diagram is also true for <xref href="GUID-6DF731E4-5691-31C4-BEE0-03A3873F15EC.dita"><apiname>TPtrC8</apiname></xref> and <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref>. </p> <fig id="GUID-AB7B77C5-31BC-5DD0-B1FC-D02436E18D14">
+<title>              Array of non-modifiable pointer descriptor elements 
+          </title>
+<image href="GUID-77EC9F20-32F4-5A1D-B183-75838EBA30B1_d0e176330_href.png" placement="inline"/>
+</fig> <p> <b>NOTE:</b> <xref href="GUID-B24BD746-98D1-3837-B834-5C12D4D516FC.dita"><apiname>delete()</apiname></xref> and <xref href="GUID-FA50BA77-E578-3652-B1FB-AD2D0523CC17.dita"><apiname>reset()</apiname></xref> removes
+the non-modifiable pointer descriptors from the array but does <b>not</b> delete
+the data or descriptors that they point to. </p> </section>
+<section><title>Array of pointer elements</title> <p>The elements of this
+type of array consist of <b>pointers</b> to heap descriptors. </p> <p>When
+a descriptor is added to this type of array, a heap descriptor is allocated,
+taking its data from the supplied descriptor. The pointer to this heap descriptor
+is added as an array element. The following diagram illustrates this. The
+diagram is also true for <xref href="GUID-2A528453-0279-3E47-838C-F8A8D29B88F1.dita"><apiname>HBufC8</apiname></xref> and <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref>. </p> <fig id="GUID-D6B993E5-AF6B-5AD2-A30F-834C6815EFEF">
+<title>              Array of pointer elements            </title>
+<image href="GUID-3853600F-A096-53A6-8E68-4815ED85FD05_d0e176377_href.png" placement="inline"/>
+</fig> <p>There are two implementations of the array, one using a flat buffer
+and the other using a segmented buffer. </p> <p>The flat buffer implementation
+is supplied in two variants: </p> <ul>
+<li id="GUID-8E031CC3-AC57-5882-A96A-40F041543714"><p>the 16-bit variant implemented
+using a flat buffer, a <xref href="GUID-0DF28074-4B76-3767-9FD8-EADF36E3EA14.dita"><apiname>CDesC16ArrayFlat</apiname></xref>, constructed from <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> types. </p> </li>
+<li id="GUID-53DE0372-9FE8-55F8-A358-7062CA7FC37A"><p>the 8-bit variant implemented
+using a flat buffer, a <xref href="GUID-A774AF80-82C3-3031-A197-5625DACD60FE.dita"><apiname>CDesC8ArrayFlat</apiname></xref>, constructed from <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref> types. </p> </li>
+</ul> <p>The segmented buffer implementation is supplied in two variants: </p> <ul>
+<li id="GUID-DAEB51F2-19D5-5BC8-95DA-0375AC759C57"><p>the 16-bit variant implemented
+using a segmented buffer, a <xref href="GUID-F2998F7B-DFB1-3EDA-A6FF-1F3B2065DE4D.dita"><apiname>CDesC16ArraySeg</apiname></xref>, constructed
+from <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> types. </p> </li>
+<li id="GUID-0880573C-40D7-5C27-A2DB-5B9FF808E670"><p>the 8-bit variant implemented
+using a segmented buffer, a <xref href="GUID-DFC1F01A-A107-3C7F-883A-6C4F11859E1C.dita"><apiname>CDesC8ArraySeg</apiname></xref>, constructed
+from <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref> types. </p> </li>
+</ul> <p>Both array implementations are also supplied as build independent
+types, <xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref> and <xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref>.
+These are used whenever the descriptors are used to represent text strings.
+By using the build independent types, the appropriate variants, either 16-bit
+or 8-bit, are selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
+has been defined or not. </p> <p>Binary data always requires the 8-bit variants,
+regardless of the build, and this should be explicitly used in program code. </p> <p>Explicit
+use of the 16-bit variants is rare. </p> <p> <b>NOTE:</b>  <xref href="GUID-B24BD746-98D1-3837-B834-5C12D4D516FC.dita"><apiname>delete()</apiname></xref> and <xref href="GUID-FA50BA77-E578-3652-B1FB-AD2D0523CC17.dita"><apiname>reset()</apiname></xref> removes
+the pointers from the array and also deletes the heap descriptors that they
+point to. </p> </section>
+<section><title>Type of array to be used</title> <p>The advantages of using
+one type over the other are subtle. </p> <p>When using an array of non-modifiable
+pointer descriptors, the data represented by each <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> exists
+independently of the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> itself. The memory required
+by the array is that required to contain the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> elements.
+The data represented by the <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> descriptors is not copied
+or moved. On the other hand, that same data must be guaranteed to remain in
+memory if the array is to have any purpose. </p> <p>When using an array of
+pointers, a new heap descriptor is allocated for each descriptor to be added
+to the array. This increases the total memory requirements of the array. On
+the other hand, each array element is smaller because the size of a pointer
+is slightly smaller than the size of a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> object. The
+original descriptor data can also be safely discarded once it has been added
+to the array. </p> <p>This type also has the advantage that there is no commitment
+to a concrete descriptor type. </p> </section>
+<section><title>Relationship between descriptor array classes</title> <p>The
+following diagram illustrates the relationship between the descriptor array
+concrete classes and the base classes which support them. </p> <fig id="GUID-43444E8B-F2F5-539B-BA9D-EDF9B832DFD9">
+<title>              The class relationships for CDesCArrayFlat &amp; CDesCArraySeg
+           </title>
+<image href="GUID-B3166752-9B99-5669-8AB4-078164144AA1_d0e176531_href.png" placement="inline"/>
+</fig> <p> </p> <fig id="GUID-3BD4A73F-1E09-515A-9833-6D9592A98E97">
+<title>              The class relationships for CPtrCArray            </title>
+<image href="GUID-93678518-1FBD-521D-807A-63DA2E33551F_d0e176542_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-9948A6D4-19A2-58A2-B2F1-73EC577E1B0B"><title>Copying Descriptor
+Arrays </title> <p>An array of non-modifiable pointer descriptors, a <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> type,
+provides a function which can copy elements from any descriptor array. </p> <p>The
+source descriptor array must be one which satisfies the protocol defined by
+the <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref> mixin class. Add the new <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> elements
+to the <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> array to represent the source data. </p> <p>The
+implementation of the copy does not and cannot depend on the type of the source
+descriptor array,that is, whether it is a <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> type
+or a <xref href="GUID-1ABD9C74-01F0-3144-9E5C-550E83F4D424.dita"><apiname>CDesCArray</apiname></xref> type. However, the following diagram shows
+the effect of the copy operation based on the concrete type of the source
+array. </p> <fig id="GUID-E320FF9E-CBCA-597C-AE3B-8480A0829EF7">
+<title>              Copying descriptor arrays            </title>
+<image href="GUID-6FFEC753-4006-559C-B8E9-14940CFCD012_d0e176588_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-009C368B-80E3-523B-BC4A-12BB90244CE1"><title>8-Bit Variant,
+16-Bit Variant and Build Independence</title> <p>Descriptor arrays are supplied
+in two variants: </p> <ul>
+<li id="GUID-7819B939-C7C0-5117-812D-B2D05D7650D4"><p>the 16-bit variant for
+16-bit descriptors. These descriptors are used for handling Unicode strings
+and double byte valued data. </p> </li>
+<li id="GUID-A1DCAB83-37F6-51ED-8AEA-0EFE361BE107"><p>the 8-bit variant for
+8-bit variant descriptors. These descriptors are used for handling non-Unicode
+strings and single byte valued data. (binary data). </p> </li>
+</ul> <p>Descriptor arrays are also supplied as build independent types. These
+are used for descriptors which are used to represent text strings. </p> <p>By
+using build independent types, the appropriate variant, either 16-bit or 8-bit,
+is selected at build time depending on whether the <codeph>_UNICODE</codeph> macro
+has been defined or not. </p> <p>Binary data always requires the 8-bit variant
+regardless of the build, and it must be explicitly used in program code. Explicit
+use of the 16-bit variant is rare. With a few exceptions, the behaviour of
+both 8-bit and 16-bit variants is the same. </p> </section>
+<section id="GUID-A8D3CD4B-9069-5B98-ADBA-2272F597DE4D"><title>The MDesCArray
+mixin class</title> <p>The <codeph>MDesCArray</codeph> class is a mixin which
+defines a protocol for: </p> <ul>
+<li id="GUID-21092598-F289-5A57-BA93-48F23EF788AF"><p>returning the number
+of elements in a descriptor array </p> </li>
+<li id="GUID-0FAE184F-6D54-5CFF-858C-2A75F70D3969"><p>returning a non-modifiable
+pointer descriptor, a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> type representing a specific
+indexed element. </p> </li>
+</ul> <p>The use of the mixin permits a degree of polymorphism amongst the
+descriptor array classes. It permits the number of descriptor array elements
+to be returned and a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> type for a specific descriptor
+array element to be returned without knowing the specific concrete descriptor
+array type being accessed. </p> <p id="GUID-DA93F261-9E35-5073-AA06-3991B9B1AA35"><b>MDesCArray
+example</b> </p> <p>The following code fragments illustrate how the <xref href="GUID-B732E017-EFD5-36BD-B633-7DE2DC57FFA2.dita"><apiname>MDesCArray</apiname></xref> mixin
+class is used to return: </p> <ul>
+<li id="GUID-6262BE55-0B74-5779-AEB6-94357104051C"><p>the number of descriptor
+elements in a descriptor array. </p> </li>
+<li id="GUID-4D7F6F00-301C-534F-901E-85DB9847E9FF"><p>a <xref href="GUID-5CD07A27-E3ED-3273-A560-680501468C91.dita"><apiname>TPtrC</apiname></xref> representing
+a specific indexed descriptor element. </p> </li>
+</ul> <p>The code uses the build independent forms but the code is equally
+valid while using the explicit 8-bit or 16-bit variants. </p> <p>In this case, <xref href="GUID-29384669-FFCE-38FC-A005-61163D99401D.dita"><apiname>CDesCArrayFlat</apiname></xref>, <xref href="GUID-1B44227C-6F11-3A51-BE2C-8780319C6F72.dita"><apiname>CDesCArraySeg</apiname></xref> and <xref href="GUID-FC3F3E4A-C86C-3DDB-B851-538BF20D5B27.dita"><apiname>CPtrCArray</apiname></xref> can be handled by the single function <codeph>foo()</codeph>. </p> <codeblock id="GUID-83C3574E-9FA6-57A3-AD5E-58705C6F5A68" xml:space="preserve"> ...
+ CDesCArrayFlat* descflat = new( ELeave ) CDesCArrayFlat( 4 );
+ CDesCArraySeg*  descseg  = new( ELeave ) CDesCArraySeg( 4 );
+ CPtrCArray*     ptrc     = new( ELeave ) CPtrCArray( 4 );
+ ...
+ ... // add descriptor elements to all three arrays
+ ...
+ foo( descflat );
+ foo( descseg );
+ foo( ptrc );
+ ...</codeblock> <codeblock id="GUID-CF9F694C-2175-5DAF-9666-C34E097B9992" xml:space="preserve">void foo( MDesCArray* anArray )
+    {
+    ..
+    TInt  somenumber = anArray-&gt;MdcaCount();
+    TPtrC someptrc   = anArray-&gt;MdcaPoint( someindexvalue );
+    ..
+    }</codeblock> </section>
+</conbody><related-links>
+<link href="GUID-685CF352-372F-5393-97AF-1FA17DC57BA8.dita"><linktext>Constructing
+descriptor                 arrays</linktext></link>
+<link href="GUID-E3F403EE-717B-5EA6-BC4E-6840097CAC10.dita"><linktext>Using Dynamic
+Arrays</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e266235_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E86347E8-8D3C-5FCB-BD9F-EA0DF8F0D9FD_d0e269943_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E87018CD-01B4-5886-87FC-CD25EE90587D.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E87018CD-01B4-5886-87FC-CD25EE90587D.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E87018CD-01B4-5886-87FC-CD25EE90587D"><title>Central Repository Transactions</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic describes the concepts of Central Repository transactions. </p> <section><title>Overview of transactions </title> <p>In a typical use case, a repository is accessed by several different applications for different purposes such as reading, updating, caching and backing up. These applications are regarded as having a client-server relationship with the repository. When multiple applications can access a repository there is a danger of concurrent write operations corrupting the data. To prevent this, applications access repositories within sessions and perform operations on a repository within subdivisions of a session called transactions. The concept of a transaction is borrowed from database programming and is designed to ensure that only one application can modify a repository at any one time. Operations performed within a transaction are virtual, operating on a copy of the repository, until the transaction is successfully committed and the actual repository is modified. Transactions conform to a model which prevents them from being committed concurrently, so maintaining data integity. </p> <p>Only the following operations are permitted within a transaction: </p> <ul><li id="GUID-A1CFE73C-6248-5B8E-A5F8-5125786EAF64"><p>Find() </p> </li> <li id="GUID-4D0AEFB5-FB08-591F-BA24-098E832B6FE0"><p>Get() </p> </li> </ul> <ul><li id="GUID-6001550D-DC06-5767-A03C-F6677D895ECF"><p>Set() </p> </li> <li id="GUID-28F16F3E-502D-52C1-A157-621EE4307466"><p>Create() </p> </li> <li id="GUID-9E98BC2F-5E94-51EA-8FE7-DDADE388AE21"><p>Delete() </p> </li> <li id="GUID-42BC1D3F-1CE7-5F76-8B9F-9276892D86BC"><p>Move() </p> </li> </ul> <p>Transactions are either synchronous or asynchronous. As the programmer you are responsible for avoiding errors such as beginning a transaction within a transaction which will cause a leave. You do this by conforming to a transaction model. </p> <p>The recommended transaction model is the optimistic non-serialised transaction model. It works on the principle that any number of clients may start a transaction at the same time, but as soon as one transaction is committed, any other transactions fail and must be started again. </p> <p>A session is in various states: </p> <ul><li id="GUID-F0C23BCF-6528-5112-AB35-BEA53D7EA5EF"><p>Not in transaction </p> </li> <li id="GUID-27922FAA-BF3F-5C06-9810-FE20C41474E1"><p>Active </p> </li> <li id="GUID-720E56F0-477D-5C4E-8FA3-7EEABDE0E718"><p>Failed </p> </li> </ul> <p>An asynchronous transaction involves two other states: </p> <ul><li id="GUID-17470F86-6FE8-5998-B7CA-546988BDE132"><p>Pending start </p> </li> <li id="GUID-7AB3E6B9-51C6-56ED-82E8-FF1A1805C54E"><p>Pending commit </p> </li> </ul> </section> <section><title>Synchronous transactions </title> <p>A synchronous transaction has the following structure. </p> <ul><li id="GUID-DE7AA608-AC0C-53BF-A009-3D179621193C"><p>A session is initially in the state Not in transaction. </p> </li> <li id="GUID-178E4E88-02C6-5869-B344-514C14FBDB4F"><p>Call the synchronous form of <xref href="GUID-2FE14318-A0C6-37F9-A359-85D353D94F68.dita"><apiname>StartTransaction()</apiname></xref> with the single parameter EConcurrentReadWriteTransaction. </p> </li> <li id="GUID-91D3A638-114B-5DCA-8FB0-35B554797194"><p>The session changes state to Active. </p> </li> <li id="GUID-C32289CB-8EA9-53E0-84DD-881FCDC5FF99"><p>Manipulate the repository with the functions <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> <xref href="GUID-2F459F8B-0464-33BF-BB95-DF0648A5C6ED.dita"><apiname>Set()</apiname></xref> <xref href="GUID-3D9FBB4B-907F-33BC-9C90-5A896FBEE290.dita"><apiname>Find()</apiname></xref> etc covered above. </p> </li> <li id="GUID-2F9FA0A5-7624-5300-819D-45562AF5FFDA"><p>The session continues in the Active state. The changes to the repository are cached but not actually applied during the Active state. You then either revoke or persist the changes. </p> </li> <li id="GUID-39F7530F-E9D9-5938-B9EB-B0AF8768E16F"><p>To revoke the changes, call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref>  </p> </li> <li id="GUID-B21F7C3F-E960-571A-A98E-933B96FA14D0"><p>The session returns to Not in transaction. </p> </li> <li id="GUID-6C4EF9E4-CE0A-542B-A564-72B6FF2BECB1"><p>To persist the changes, call the synchronous form of <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> with the parameter <xref href="GUID-A67CA4BD-6F1F-3B0D-962C-4A78BBE80402.dita"><apiname>aKeyInfo</apiname></xref> of type <xref href="GUID-F58A1C0D-1B36-37EA-8012-1C74B2D12CAD.dita"><apiname>TUint32</apiname></xref> This function returns success or an error message and its parameter holds information about the transaction. On success, the parameter holds the number of settings which were changed. On failure, the parameter holds the settings which caused failure in the form of a key or partial key. </p> </li> <li id="GUID-FD7629FE-C6AF-5F65-9376-353ADD2B87F7"><p>On success the session returns to Not in transaction. On failure it enters the Failed state. When a transaction fails, the operations already performed are discarded and no subsequent operations can reverse the failure. </p> </li> <li id="GUID-0BBDE613-761D-54F2-894B-3BEEAB587A95"><p>If the reason for failure was the success of another transaction, the error message is <xref href="GUID-CF080900-A9A4-391E-AC95-B93EBFB23DE3.dita"><apiname>KErrLocked</apiname></xref> and the session is Not in transaction. You try the same sequence of function calls until you get a successful commit. </p> <p>If there was some other reason for failure you must close the transaction yourself. To do this, either call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> or else call <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> a second time. </p> <p>There is sometimes reason to fail the transaction deliberately by calling <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref> For instance you might want to generate failure after an unsuccessful <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> operation and then cancel the transaction. </p> </li> </ul> <fig id="GUID-B2011974-4A4F-58B4-BDCD-CAFBAC4E52A7"><title>
-             Synchronous transaction state diagram 
-          </title> <image href="GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e357243_href.png" placement="inline"/></fig> </section> <section><title>Asynchronous transactions</title> <p>Synchronous transactions have the disadvantage that a busy server may block the client thread before any action takes place. To avoid this problem you can use the slightly more complicated asynchronous transactions. An asynchronous transaction has the same structure as a synchronous one except that there are two new states Pending Start and Pending Commit where a transaction waits until the server is ready to communicate with it. The transition from Not in transaction to Active now proceeds like this. </p> <ul><li id="GUID-A90153AE-A050-5721-9513-DD9753B1DF61"><p>A session is initially in the state Not in transaction. </p> </li> <li id="GUID-1F494795-6391-5A0E-B057-820602C90233"><p>Call the asynchronous form of <xref href="GUID-2FE14318-A0C6-37F9-A359-85D353D94F68.dita"><apiname>StartTransaction()</apiname></xref> with the parameters <xref href="GUID-27A4E547-66EA-3F07-943C-171FAB9EE99D.dita"><apiname>EConcurrentReadWriteTransaction</apiname></xref> and <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> of type <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> This function returns void: success or the reasons for failure are determined from the state of <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> after execution. </p> </li> <li id="GUID-C419B2EB-2D04-5B93-B01C-AB9107B52351"><p>The session changes state to Pending Start. Activity on the server will eventually promote the session to Active. </p> </li> <li id="GUID-5793F04F-4BED-5755-B678-A1CDF3AE1400"><p>Manipulate the repository with the functions <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref>, <xref href="GUID-2F459F8B-0464-33BF-BB95-DF0648A5C6ED.dita"><apiname>Set()</apiname></xref>, <xref href="GUID-3D9FBB4B-907F-33BC-9C90-5A896FBEE290.dita"><apiname>Find()</apiname></xref> etc covered above. </p> </li> <li id="GUID-0210FDB7-FD3F-5A6F-90B0-B8DAD23960E3"><p>The session continues in the Active state. The changes to the repository are cached but not actually applied during the Active state. You then either revoke or persist the changes. </p> </li> <li id="GUID-617CA21B-89D5-5531-A9A4-83173FF66867"><p>To revoke the changes, call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> This call has different effects depending on whether it was called in the Pending Start state or the Active state. If it was called in the Pending Start state it sets <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> to <xref href="GUID-6F4A88DA-F54E-3848-9C32-942D6F5F4F3E.dita"><apiname>KErrCancel</apiname></xref>  </p> </li> <li id="GUID-57E59324-D623-5F0E-9954-B7B6C045C63E"><p>The session returns to Not in transaction. </p> </li> <li id="GUID-1E0463FC-81E0-574A-9585-11593FB31DD9"><p>To persist the changes, call the asynchronous form of <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> with the parameters <xref href="GUID-A67CA4BD-6F1F-3B0D-962C-4A78BBE80402.dita"><apiname>aKeyInfo</apiname></xref> of type <xref href="GUID-F58A1C0D-1B36-37EA-8012-1C74B2D12CAD.dita"><apiname>TUint32</apiname></xref> and <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> of type <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> This function returns void. Its first parameter holds information about the transaction. </p> </li> <li id="GUID-87C8F64D-2FE3-53D3-956C-3211EF7B776B"><p>On success, the <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> parameter holds the number of settings which were changed. On failure, the parameter holds the settings which caused failure in the form of a key or partial key. The <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> parameter is set to success or failure. </p> </li> <li id="GUID-4DE0D798-4B73-5EA2-B4DE-2DEDCE6CE55A"><p>If the reason for failure was the success of another transaction, aStatus is set to <xref href="GUID-CF080900-A9A4-391E-AC95-B93EBFB23DE3.dita"><apiname>KErrLocked</apiname></xref> and the session is Not in transaction. You try the same sequence of function calls until you get a successful commit. </p> <p>If there was some other reason for failure you must close the transaction yourself. To do this, either call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> or else call <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> a second time. </p> <p>There is sometimes reason to fail the transaction deliberately by calling <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref> For instance you might want to generate failure after an unsuccessful <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> operation and then cancel the transaction. </p> </li> </ul> <fig id="GUID-70E4E2BC-3996-54B1-AC65-ECADFB4E66FE"><title>
-             Asynchronous Transaction State Diagram 
-          </title> <image href="GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e357407_href.png" placement="inline"/></fig> </section> <section><title>Cleanup </title> <p>There is a danger that a transaction might remain open for ever if it is opened by code which subsequently leaves. To avoid this possibility, the <xref href="GUID-849C6016-BDB1-39B0-A48E-3AA661E11811.dita"><apiname>CCentralRepository</apiname></xref> class has two functions which cause the cleanup stack to end the transaction in the event of a leave. <xref href="GUID-896BCACB-335C-3A77-9161-52EA711AA84C.dita"><apiname>CleanupCancelTransactionPushL()</apiname></xref>, also named <xref href="GUID-D27AD32E-1D1F-34C9-92ED-B1CFCFB1DC0B.dita"><apiname>CleanupRollbackTransactionPushL()</apiname></xref>, causes a leave to be followed by a call to <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref>. <xref href="GUID-F9520CB0-266B-357D-997F-756787C5F549.dita"><apiname>CleanupFailTransactionPushL()</apiname></xref> causes a leave to be followed by a call to <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref>. </p> </section> </conbody><related-links><link href="GUID-1C683226-C142-5C7B-BD20-060058352B08.dita"><linktext>Central Repository Guide</linktext> </link> <link href="GUID-724BA3CD-7648-51DF-9285-3AA7470987F4.dita"><linktext>Optimising Repository
-                Access</linktext> </link> <link href="GUID-998DCA78-2488-5D6D-B5B3-D86C52F32823.dita"><linktext>Modifications to
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E87018CD-01B4-5886-87FC-CD25EE90587D"><title>Central Repository Transactions</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic describes the concepts of Central Repository transactions. </p> <section><title>Overview of transactions </title> <p>In a typical use case, a repository is accessed by several different applications for different purposes such as reading, updating, caching and backing up. These applications are regarded as having a client-server relationship with the repository. When multiple applications can access a repository there is a danger of concurrent write operations corrupting the data. To prevent this, applications access repositories within sessions and perform operations on a repository within subdivisions of a session called transactions. The concept of a transaction is borrowed from database programming and is designed to ensure that only one application can modify a repository at any one time. Operations performed within a transaction are virtual, operating on a copy of the repository, until the transaction is successfully committed and the actual repository is modified. Transactions conform to a model which prevents them from being committed concurrently, so maintaining data integity. </p> <p>Only the following operations are permitted within a transaction: </p> <ul><li id="GUID-A1CFE73C-6248-5B8E-A5F8-5125786EAF64"><p>Find() </p> </li> <li id="GUID-4D0AEFB5-FB08-591F-BA24-098E832B6FE0"><p>Get() </p> </li> </ul> <ul><li id="GUID-6001550D-DC06-5767-A03C-F6677D895ECF"><p>Set() </p> </li> <li id="GUID-28F16F3E-502D-52C1-A157-621EE4307466"><p>Create() </p> </li> <li id="GUID-9E98BC2F-5E94-51EA-8FE7-DDADE388AE21"><p>Delete() </p> </li> <li id="GUID-42BC1D3F-1CE7-5F76-8B9F-9276892D86BC"><p>Move() </p> </li> </ul> <p>Transactions are either synchronous or asynchronous. As the programmer you are responsible for avoiding errors such as beginning a transaction within a transaction which will cause a leave. You do this by conforming to a transaction model. </p> <p>The recommended transaction model is the optimistic non-serialised transaction model. It works on the principle that any number of clients may start a transaction at the same time, but as soon as one transaction is committed, any other transactions fail and must be started again. </p> <p>A session is in various states: </p> <ul><li id="GUID-F0C23BCF-6528-5112-AB35-BEA53D7EA5EF"><p>Not in transaction </p> </li> <li id="GUID-27922FAA-BF3F-5C06-9810-FE20C41474E1"><p>Active </p> </li> <li id="GUID-720E56F0-477D-5C4E-8FA3-7EEABDE0E718"><p>Failed </p> </li> </ul> <p>An asynchronous transaction involves two other states: </p> <ul><li id="GUID-17470F86-6FE8-5998-B7CA-546988BDE132"><p>Pending start </p> </li> <li id="GUID-7AB3E6B9-51C6-56ED-82E8-FF1A1805C54E"><p>Pending commit </p> </li> </ul> </section> <section><title>Synchronous transactions </title> <p>A synchronous transaction has the following structure. </p> <ul><li id="GUID-DE7AA608-AC0C-53BF-A009-3D179621193C"><p>A session is initially in the state Not in transaction. </p> </li> <li id="GUID-178E4E88-02C6-5869-B344-514C14FBDB4F"><p>Call the synchronous form of <xref href="GUID-2FE14318-A0C6-37F9-A359-85D353D94F68.dita"><apiname>StartTransaction()</apiname></xref> with the single parameter EConcurrentReadWriteTransaction. </p> </li> <li id="GUID-91D3A638-114B-5DCA-8FB0-35B554797194"><p>The session changes state to Active. </p> </li> <li id="GUID-C32289CB-8EA9-53E0-84DD-881FCDC5FF99"><p>Manipulate the repository with the functions <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> <xref href="GUID-2F459F8B-0464-33BF-BB95-DF0648A5C6ED.dita"><apiname>Set()</apiname></xref> <xref href="GUID-3D9FBB4B-907F-33BC-9C90-5A896FBEE290.dita"><apiname>Find()</apiname></xref> etc covered above. </p> </li> <li id="GUID-2F9FA0A5-7624-5300-819D-45562AF5FFDA"><p>The session continues in the Active state. The changes to the repository are cached but not actually applied during the Active state. You then either revoke or persist the changes. </p> </li> <li id="GUID-39F7530F-E9D9-5938-B9EB-B0AF8768E16F"><p>To revoke the changes, call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref>  </p> </li> <li id="GUID-B21F7C3F-E960-571A-A98E-933B96FA14D0"><p>The session returns to Not in transaction. </p> </li> <li id="GUID-6C4EF9E4-CE0A-542B-A564-72B6FF2BECB1"><p>To persist the changes, call the synchronous form of <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> with the parameter <xref href="GUID-A67CA4BD-6F1F-3B0D-962C-4A78BBE80402.dita"><apiname>aKeyInfo</apiname></xref> of type <xref href="GUID-F58A1C0D-1B36-37EA-8012-1C74B2D12CAD.dita"><apiname>TUint32</apiname></xref> This function returns success or an error message and its parameter holds information about the transaction. On success, the parameter holds the number of settings which were changed. On failure, the parameter holds the settings which caused failure in the form of a key or partial key. </p> </li> <li id="GUID-FD7629FE-C6AF-5F65-9376-353ADD2B87F7"><p>On success the session returns to Not in transaction. On failure it enters the Failed state. When a transaction fails, the operations already performed are discarded and no subsequent operations can reverse the failure. </p> </li> <li id="GUID-0BBDE613-761D-54F2-894B-3BEEAB587A95"><p>If the reason for failure was the success of another transaction, the error message is <xref href="GUID-CF080900-A9A4-391E-AC95-B93EBFB23DE3.dita"><apiname>KErrLocked</apiname></xref> and the session is Not in transaction. You try the same sequence of function calls until you get a successful commit. </p> <p>If there was some other reason for failure you must close the transaction yourself. To do this, either call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> or else call <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> a second time. </p> <p>There is sometimes reason to fail the transaction deliberately by calling <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref> For instance you might want to generate failure after an unsuccessful <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> operation and then cancel the transaction. </p> </li> </ul> <fig id="GUID-B2011974-4A4F-58B4-BDCD-CAFBAC4E52A7"><title>
+             Synchronous transaction state diagram 
+          </title> <image href="GUID-66E0B7F2-DEB4-5326-9DE0-5C0E253568AF_d0e351163_href.png" placement="inline"/></fig> </section> <section><title>Asynchronous transactions</title> <p>Synchronous transactions have the disadvantage that a busy server may block the client thread before any action takes place. To avoid this problem you can use the slightly more complicated asynchronous transactions. An asynchronous transaction has the same structure as a synchronous one except that there are two new states Pending Start and Pending Commit where a transaction waits until the server is ready to communicate with it. The transition from Not in transaction to Active now proceeds like this. </p> <ul><li id="GUID-A90153AE-A050-5721-9513-DD9753B1DF61"><p>A session is initially in the state Not in transaction. </p> </li> <li id="GUID-1F494795-6391-5A0E-B057-820602C90233"><p>Call the asynchronous form of <xref href="GUID-2FE14318-A0C6-37F9-A359-85D353D94F68.dita"><apiname>StartTransaction()</apiname></xref> with the parameters <xref href="GUID-27A4E547-66EA-3F07-943C-171FAB9EE99D.dita"><apiname>EConcurrentReadWriteTransaction</apiname></xref> and <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> of type <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> This function returns void: success or the reasons for failure are determined from the state of <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> after execution. </p> </li> <li id="GUID-C419B2EB-2D04-5B93-B01C-AB9107B52351"><p>The session changes state to Pending Start. Activity on the server will eventually promote the session to Active. </p> </li> <li id="GUID-5793F04F-4BED-5755-B678-A1CDF3AE1400"><p>Manipulate the repository with the functions <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref>, <xref href="GUID-2F459F8B-0464-33BF-BB95-DF0648A5C6ED.dita"><apiname>Set()</apiname></xref>, <xref href="GUID-3D9FBB4B-907F-33BC-9C90-5A896FBEE290.dita"><apiname>Find()</apiname></xref> etc covered above. </p> </li> <li id="GUID-0210FDB7-FD3F-5A6F-90B0-B8DAD23960E3"><p>The session continues in the Active state. The changes to the repository are cached but not actually applied during the Active state. You then either revoke or persist the changes. </p> </li> <li id="GUID-617CA21B-89D5-5531-A9A4-83173FF66867"><p>To revoke the changes, call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> This call has different effects depending on whether it was called in the Pending Start state or the Active state. If it was called in the Pending Start state it sets <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> to <xref href="GUID-6F4A88DA-F54E-3848-9C32-942D6F5F4F3E.dita"><apiname>KErrCancel</apiname></xref>  </p> </li> <li id="GUID-57E59324-D623-5F0E-9954-B7B6C045C63E"><p>The session returns to Not in transaction. </p> </li> <li id="GUID-1E0463FC-81E0-574A-9585-11593FB31DD9"><p>To persist the changes, call the asynchronous form of <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> with the parameters <xref href="GUID-A67CA4BD-6F1F-3B0D-962C-4A78BBE80402.dita"><apiname>aKeyInfo</apiname></xref> of type <xref href="GUID-F58A1C0D-1B36-37EA-8012-1C74B2D12CAD.dita"><apiname>TUint32</apiname></xref> and <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> of type <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> This function returns void. Its first parameter holds information about the transaction. </p> </li> <li id="GUID-87C8F64D-2FE3-53D3-956C-3211EF7B776B"><p>On success, the <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> parameter holds the number of settings which were changed. On failure, the parameter holds the settings which caused failure in the form of a key or partial key. The <xref href="GUID-8CC6A454-14EC-3059-B2F9-DC92B1D20F57.dita"><apiname>aStatus</apiname></xref> parameter is set to success or failure. </p> </li> <li id="GUID-4DE0D798-4B73-5EA2-B4DE-2DEDCE6CE55A"><p>If the reason for failure was the success of another transaction, aStatus is set to <xref href="GUID-CF080900-A9A4-391E-AC95-B93EBFB23DE3.dita"><apiname>KErrLocked</apiname></xref> and the session is Not in transaction. You try the same sequence of function calls until you get a successful commit. </p> <p>If there was some other reason for failure you must close the transaction yourself. To do this, either call <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref> or else call <xref href="GUID-DC938A94-1C71-3D9D-A4C0-45D5655F9F3A.dita"><apiname>CommitTransaction()</apiname></xref> a second time. </p> <p>There is sometimes reason to fail the transaction deliberately by calling <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref> For instance you might want to generate failure after an unsuccessful <xref href="GUID-890C741F-EC69-30E3-AA89-CE35B3DE481F.dita"><apiname>Get()</apiname></xref> operation and then cancel the transaction. </p> </li> </ul> <fig id="GUID-70E4E2BC-3996-54B1-AC65-ECADFB4E66FE"><title>
+             Asynchronous Transaction State Diagram 
+          </title> <image href="GUID-D2CF64ED-0D85-5535-9A51-C127B10B07B2_d0e351327_href.png" placement="inline"/></fig> </section> <section><title>Cleanup </title> <p>There is a danger that a transaction might remain open for ever if it is opened by code which subsequently leaves. To avoid this possibility, the <xref href="GUID-849C6016-BDB1-39B0-A48E-3AA661E11811.dita"><apiname>CCentralRepository</apiname></xref> class has two functions which cause the cleanup stack to end the transaction in the event of a leave. <xref href="GUID-896BCACB-335C-3A77-9161-52EA711AA84C.dita"><apiname>CleanupCancelTransactionPushL()</apiname></xref>, also named <xref href="GUID-D27AD32E-1D1F-34C9-92ED-B1CFCFB1DC0B.dita"><apiname>CleanupRollbackTransactionPushL()</apiname></xref>, causes a leave to be followed by a call to <xref href="GUID-E7D1327D-70BF-380E-8798-455FD9F4AAE0.dita"><apiname>CancelTransaction()</apiname></xref>. <xref href="GUID-F9520CB0-266B-357D-997F-756787C5F549.dita"><apiname>CleanupFailTransactionPushL()</apiname></xref> causes a leave to be followed by a call to <xref href="GUID-D4178000-A2A4-3B22-B984-530DD5EC75EE.dita"><apiname>FailTransaction()</apiname></xref>. </p> </section> </conbody><related-links><link href="GUID-1C683226-C142-5C7B-BD20-060058352B08.dita"><linktext>Central Repository Guide</linktext> </link> <link href="GUID-724BA3CD-7648-51DF-9285-3AA7470987F4.dita"><linktext>Optimising Repository
+                Access</linktext> </link> <link href="GUID-998DCA78-2488-5D6D-B5B3-D86C52F32823.dita"><linktext>Modifications to
                 Keyspaces</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9"><title>What are sessions with the Comms Database</title><shortdesc>This topic describes the use of sessions to access the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>Tools and applications create and use a session to access the Comms Database. A session is an instance of the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref>. An instance of <codeph>CMDBSession</codeph> acts as a handle to the database. The functions provided by <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> to access the Comms Database require an instance of <codeph>CMDBSession</codeph>. </p> <fig id="GUID-4B909AEF-6C15-52C4-9C5B-41E55B65A365"><image href="GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e86695_href.png" placement="inline"/></fig> <p>You must create a session before you get data from the Comms Database and before you update the Comms Database. To create a session, you create an instance of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref> class. </p> <p>You delete the session after you finish your use of the Comms Database. To delete a session, you delete the instance of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref> class. </p> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E88E64C6-5A80-59EE-8227-455EC033E6E9"><title>What are sessions with the Comms Database</title><shortdesc>This topic describes the use of sessions to access the Comms Database. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> <p>Tools and applications create and use a session to access the Comms Database. A session is an instance of the class <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref>. An instance of <codeph>CMDBSession</codeph> acts as a handle to the database. The functions provided by <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>MMetaDatabase</apiname></xref> to access the Comms Database require an instance of <codeph>CMDBSession</codeph>. </p> <fig id="GUID-4B909AEF-6C15-52C4-9C5B-41E55B65A365"><image href="GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e79983_href.png" placement="inline"/></fig> <p>You must create a session before you get data from the Comms Database and before you update the Comms Database. To create a session, you create an instance of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref> class. </p> <p>You delete the session after you finish your use of the Comms Database. To delete a session, you delete the instance of the <xref href="GUID-1CDD0B97-8B00-3373-9908-512C9BC1CF51.dita"><apiname>CMDBSession</apiname></xref> class. </p> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E8B0BDC7-714E-48EF-89F3-D8B7B34552ED.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E8B0BDC7-714E-48EF-89F3-D8B7B34552ED" xml:lang="en"><title>Interaction</title><shortdesc>This section explains the guidelines for rotation and basic interaction
-style in Symbian devices.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,265 +1,265 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8"><title>Creating a Charconv Plug-in DLL</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes how to create a Charconv plug-in DLL. </p> <section><title>Introduction</title> <p>The flowchart below shows the steps to create a Charconv plug-in DLL. </p> <fig id="GUID-B145D4B6-8385-5DC9-8958-2350C86EBE2B"><image href="GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e405012_href.png" placement="inline"/></fig> </section> <section><title>Procedure</title> <p>An example is used to explain the procedure for creating a Charconv plug-in DLL. This plug-in converts between the cp850 character set and Unicode. </p> <ol id="GUID-AC4B8539-C41C-5631-A8F7-8C9646951897"><li id="GUID-C75F84C2-C83A-567C-8AC6-788848EEE85E"><p>Create a cnvtool source file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp850.txt</filepath>. This file contains pairs of hexadecimal numbers. The first number in each pair is the encoding of a character in cp850and the second is the Unicode encoding of the same character. </p> <codeblock id="GUID-9541977F-8BBA-5838-ACD1-DAB896C00D8C" xml:space="preserve">...
-0x00    0x0000    #NULL
-0x01    0x0001    #START OF HEADING
-0x02    0x0002    #START OF TEXT
-0x03    0x0003    #END OF TEXT
-0x04    0x0004    #END OF TRANSMISSION
-0x05    0x0005    #ENQUIRY
-0x06    0x0006    #ACKNOWLEDGE
-...</codeblock> <p>For more information about the syntax of a cnvtool source file, refer to <xref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita">Cnvtool Source File</xref>. </p> </li> <li id="GUID-62F3284F-1686-5869-A849-373A8092209F"><p>Create a cnvtool control file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp850.ctl</filepath>. This file specifies the conversion algorithms to convert both ways between ranges of characters, and other information. </p> <codeblock id="GUID-EC3C3757-655C-5E7E-873A-0D2620FFE09E" xml:space="preserve">Endianness                                                            FixedBigEndian
-ReplacementForUnconvertibleUnicodeCharacters                        0x1a # ASCII "substitute" character - must be a single character, and must be little-endian if the "Endianness" above is "Unspecified", otherwise in the same endianness as specified
-
-StartForeignVariableByteData
-#    FirstInitialByteValueInRange    LastInitialByteValueInRange        NumberOfSubsequentBytes
-    0x00                            0xff                            0
-EndForeignVariableByteData
-
-StartForeignToUnicodeData
-#    IncludePriority    SearchPriority    FirstInputCharacterCodeInRange    LastInputCharacterCodeInRange    Algorithm                        Parameters
-    2                2                0x00                            0x7f                            Direct                            {}        # ASCII
-    1                1                0x80                            0xff                            KeyedTable16OfIndexedTables16    {}        # CP850
-EndForeignToUnicodeData
-
-StartUnicodeToForeignData
-#    IncludePriority    SearchPriority    FirstInputCharacterCodeInRange    LastInputCharacterCodeInRange    Algorithm            SizeOfOutputCharacterCodeInBytes    Parameters
-    2                2                0x0000                            0x007f                            Direct                1                                    {}        # ASCII
-    1                1                0x00A0                            0x25A0                            KeyedTable1616        1                                    {}        # CP850
-EndUnicodeToForeignData
-</codeblock> <p>For more information about the syntax of a cnvtool control file, refer to <xref href="GUID-2624060D-A5E7-590A-9FA0-471AE42A9BE9.dita">Cnvtool Control File</xref>. </p> </li> <li id="GUID-A15AE20D-57A2-5D66-80C6-6CC0CFE5A409"><p>Start a command prompt to run <filepath>cnvtool</filepath> on the source and control files as follows: </p> <p><userinput>cd d:\Symbian\epoc32\tools</userinput> </p> <p><userinput>cnvtool.bat -generateSourceCode d:\charconvfiles\data\cp850.txt d:\charconvfiles\data\cp850.ctl d:\charconvfiles\data\g_cp850.cpp</userinput> </p> <p>This process generates a C++ source code file called <filepath>g_cp850.cpp</filepath>. It is referred to as the <filepath>cnvtool</filepath> -generated cpp file. It contains the <codeph>SCnvConversionData</codeph> data structure. </p> <codeblock id="GUID-0E9F220F-F77C-54D7-A4F1-76672A16625B" xml:space="preserve">
-#include &lt;e32std.h&gt;
-#include &lt;CONVDATA.H&gt;
-#include &lt;CONVGENERATEDCPP.H&gt;
-
-#define ARRAY_LENGTH(aArray) (sizeof(aArray)/sizeof((aArray)[0]))
-
-
-_LIT8(KLit8ReplacementForUnconvertibleUnicodeCharacters, "\x1a");
-
-GLDEF_C const TDesC8&amp; ReplacementForUnconvertibleUnicodeCharacters_internal()
-    {
-    return KLit8ReplacementForUnconvertibleUnicodeCharacters;
-    }
-
-LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1[]=
-    {
-    0x00c7,
-    0x00fc,
-...
- }
-
-
-LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_foreignToUnicode_1[]=
-    {
-        {
-        0x80,
-        0xff,
-        keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1
-        }
-    };
-
-LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_1[]=
-    {
-        {
-        0x00a0,
-        0xff
-        },
-...
- }
-LOCAL_D const SCnvConversionData::SVariableByteData::SRange foreignVariableByteDataRanges[]=
-    {
-        {
-        0x00,
-        0xff,
-        0,
-        0
-        }
-    };
-
-....
-
-GLDEF_D const SCnvConversionData conversionData=
-    {
-    SCnvConversionData::EFixedBigEndian,
-        {
-        ARRAY_LENGTH(foreignVariableByteDataRanges),
-        foreignVariableByteDataRanges
-        },
-        {
-        ARRAY_LENGTH(foreignToUnicodeDataRanges),
-        foreignToUnicodeDataRanges
-        },
-        {
-        ARRAY_LENGTH(unicodeToForeignDataRanges),
-        unicodeToForeignDataRanges
-        },
-    NULL,
-    NULL
-    };
-
-</codeblock> <p>For more information about the command syntax of cnvtool, refer to <xref href="GUID-214A7085-185B-5D40-A613-E82E68968AAB.dita">Cnvtool Command Syntax</xref>. </p> </li> <li id="GUID-03FF26E6-8AA2-5E31-A9A9-8A366FDBCD7F"><p>Create a cpp file which implements the <xref href="GUID-F58308AA-7072-370D-BE6A-1E8236060FC4.dita"><apiname>CCharacterSetConverterPluginInterface</apiname></xref> class. </p> <p>All of the functions defined in the interface must be implemented by the plug-in DLL. The implementations of <codeph>ConvertFromUnicode()</codeph> and <codeph>ConvertToUnicode()</codeph> must fulfil the following behavioural requirements: </p> <ul><li id="GUID-E6E2B609-A110-5607-8203-6E5C25C8B952"><p>They must return a negative error code (see <codeph>CCnvCharacterSetConverter::TError</codeph>), or the number of elements remaining in the input descriptor which have not been converted. </p> </li> <li id="GUID-2640AA42-5CA9-54B8-BCF8-40896D1BCA36"><p>They must not return an error when the output descriptor is too short or there is a truncated sequence at the end of the input descriptor. </p> <ul><li id="GUID-3A715936-4164-5493-A826-BB10448BD004"><p>If the output descriptor is full, the input descriptor cannot be fully converted. </p> </li> <li id="GUID-8D962732-8CAE-5D39-A2EA-FEA6D50E920E"><p>If the input descriptor ends with a truncated sequence, such as the first half of a Unicode surrogate pair, the first byte of a multi-byte foreign character set character code, or a truncated escape sequence of a modal foreign character set, it cannot be fully converted. </p> </li> </ul> </li> <li id="GUID-50C3341A-1319-5B57-A6B4-A527B48788E5"><p>If the input descriptor consists purely of a truncated sequence they must return <codeph>CCnvCharacterSetConverter::EErrorIllFormedInput</codeph>. </p> </li> </ul> <p>For non-complex character sets, they can call <codeph>CCnvCharacterSetConverter::DoConvertFromUnicode()</codeph> and <codeph>CCnvCharacterSetConverter::DoConvertToUnicode()</codeph> functions respectively. </p> <p>For complex character sets, for example JIS or Shift-JIS, the <xref href="GUID-2FC99DA0-F1C0-3A5E-B990-5DC3F7EAA31C.dita"><apiname>CnvUtilities</apiname></xref> class provides some utility functions. </p> <p>To access the two (const) global objects implemented in the cnvtool-generated cpp file, you must include the <filepath>convgeneratedcpp.h</filepath> header file. The <xref href="GUID-1A6BF3E3-31BF-3BC9-A010-26FF72F39F0B.dita"><apiname>SCnvConversionData</apiname></xref> object generated can then be used to implement the <codeph>ConvertFromUnicode()</codeph> and <codeph>ConvertToUnicode()</codeph> functions. </p> <p> <b>Example implementation</b>  </p> <codeblock id="GUID-E899A8AE-73D4-591D-B5A1-6777986D9361" xml:space="preserve">#include &lt;e32std.h&gt;
-#include &lt;charconv.h&gt;
-#include &lt;convgeneratedcpp.h&gt;
-#include &lt;ecom/implementationproxy.h&gt;
-#include &lt;charactersetconverter.h&gt;
-
-class CCP850ConverterImpl : public CCharacterSetConverterPluginInterface
-    {
-
-public:
-    virtual const TDesC8&amp; ReplacementForUnconvertibleUnicodeCharacters();
-
-    virtual TInt ConvertFromUnicode(
-        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
-        const TDesC8&amp; aReplacementForUnconvertibleUnicodeCharacters, 
-        TDes8&amp; aForeign, 
-        const TDesC16&amp; aUnicode, 
-        CCnvCharacterSetConverter::TArrayOfAscendingIndices&amp; aIndicesOfUnconvertibleCharacters);
-
-    virtual TInt ConvertToUnicode(
-        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
-        TDes16&amp; aUnicode, 
-        const TDesC8&amp; aForeign, 
-        TInt&amp; aState, 
-        TInt&amp; aNumberOfUnconvertibleCharacters, 
-        TInt&amp; aIndexOfFirstByteOfFirstUnconvertibleCharacter);
-
-    virtual TBool IsInThisCharacterSetL(
-        TBool&amp; aSetToTrue, 
-        TInt&amp; aConfidenceLevel, 
-        const TDesC8&amp; aSample);
-
-    static CCP850ConverterImpl* NewL();
-    virtual ~CCP850ConverterImpl();
-
-private:
-    CCP850ConverterImpl();
-
-    };
-
-
-const TDesC8&amp; CCP850ConverterImpl::ReplacementForUnconvertibleUnicodeCharacters()
-    {
-    return ReplacementForUnconvertibleUnicodeCharacters_internal();
-    }
-
-TInt CCP850ConverterImpl::ConvertFromUnicode(
-        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
-        const TDesC8&amp; aReplacementForUnconvertibleUnicodeCharacters, 
-        TDes8&amp; aForeign, 
-        const TDesC16&amp; aUnicode, 
-        CCnvCharacterSetConverter::TArrayOfAscendingIndices&amp; aIndicesOfUnconvertibleCharacters)
-    {
-    return CCnvCharacterSetConverter::DoConvertFromUnicode(conversionData, aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters);
-    }
-
-TInt CCP850ConverterImpl::ConvertToUnicode(
-        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
-        TDes16&amp; aUnicode, 
-        const TDesC8&amp; aForeign, 
-        TInt&amp; /*aState*/, 
-        TInt&amp; aNumberOfUnconvertibleCharacters, 
-        TInt&amp; aIndexOfFirstByteOfFirstUnconvertibleCharacter)
-    {
-    return CCnvCharacterSetConverter::DoConvertToUnicode(conversionData, aDefaultEndiannessOfForeignCharacters, aUnicode, aForeign, aNumberOfUnconvertibleCharacters, aIndexOfFirstByteOfFirstUnconvertibleCharacter);
-    }
-
-TBool CCP850ConverterImpl::IsInThisCharacterSetL(
-        TBool&amp; aSetToTrue, 
-        TInt&amp; aConfidenceLevel, 
-        const TDesC8&amp; /*aSample*/)
-    {
-    aSetToTrue=ETrue;
-    aConfidenceLevel=0;
-    return EFalse;
-    }
-
-CCP850ConverterImpl* CCP850ConverterImpl::NewL()
-    {
-    CCP850ConverterImpl* self = new(ELeave) CCP850ConverterImpl();
-    return self;
-    }
-
-CCP850ConverterImpl::~CCP850ConverterImpl()
-    {
-    }
-
-CCP850ConverterImpl::CCP850ConverterImpl()
-    {
-    }
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-        IMPLEMENTATION_PROXY_ENTRY(0x102825AD,    CCP850ConverterImpl::NewL)
-    };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-    return ImplementationTable;
-    } 
-</codeblock> </li> <li id="GUID-D6584918-0542-5164-B339-658D52E041BF"><p>Create an ECom registry resource file using a text editor. </p> <p>102825ac.rss </p> <codeblock id="GUID-0652DC46-A32A-5730-A0B0-211C45A016B5" xml:space="preserve">#include "ecom/registryinfo.rh"
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = 0x102825AC; // UID acquired from Symbian
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = 0x101F7F1D; // fixed UID for Charconv plug-ins
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x102825AD; // UID acquired from Symbian
-                    version_no = 1;
-                    display_name = "CP850";
-                    default_data = "CP850";
-                    opaque_data = "";
-                    }
-                };
-            }
-        };
-    }
-</codeblock> </li> <li id="GUID-58F16B35-BB07-5C51-AE43-92E9D3D76FE8"><p>Create an mmp file which is used to build the plug-in DLL. </p> <codeblock id="GUID-AB46B407-D465-5AA1-BF7D-78FC11816A45" xml:space="preserve">TARGET            cp850.dll
-TARGETTYPE        PLUGIN
-
-CAPABILITY        All -Tcb
-
-UID                0x10009D8D 0x102825AC
-VENDORID        0x70000001
-
-SYSTEMINCLUDE    /epoc32/include
-
-SOURCEPATH        ../src/plugins
-SOURCE            cp850.cpp
-
-SOURCEPATH        /epoc32/build/generatedcpp/charconv
-SOURCE            g_cp850.cpp
-
-SOURCEPATH        ../resource
-START RESOURCE    cp850.rss
-TARGETPATH        /resource/charconv
-LANG            sc
-END
-
-START RESOURCE    102825ac.rss
-TARGET            cp850.rsc
-END
-
-LIBRARY            euser.lib
-LIBRARY            charconv.lib
-LIBRARY            ecom.lib
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-E8EF06D7-FB4E-598D-9D9D-4395AB6F51C8"><title>Creating a Charconv Plug-in DLL</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section describes how to create a Charconv plug-in DLL. </p> <section><title>Introduction</title> <p>The flowchart below shows the steps to create a Charconv plug-in DLL. </p> <fig id="GUID-B145D4B6-8385-5DC9-8958-2350C86EBE2B"><image href="GUID-9F14FB98-D7CD-55C9-8D27-715642B8FFC3_d0e404850_href.png" placement="inline"/></fig> </section> <section><title>Procedure</title> <p>An example is used to explain the procedure for creating a Charconv plug-in DLL. This plug-in converts between the cp850 character set and Unicode. </p> <ol id="GUID-AC4B8539-C41C-5631-A8F7-8C9646951897"><li id="GUID-C75F84C2-C83A-567C-8AC6-788848EEE85E"><p>Create a cnvtool source file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp850.txt</filepath>. This file contains pairs of hexadecimal numbers. The first number in each pair is the encoding of a character in cp850and the second is the Unicode encoding of the same character. </p> <codeblock id="GUID-9541977F-8BBA-5838-ACD1-DAB896C00D8C" xml:space="preserve">...
+0x00    0x0000    #NULL
+0x01    0x0001    #START OF HEADING
+0x02    0x0002    #START OF TEXT
+0x03    0x0003    #END OF TEXT
+0x04    0x0004    #END OF TRANSMISSION
+0x05    0x0005    #ENQUIRY
+0x06    0x0006    #ACKNOWLEDGE
+...</codeblock> <p>For more information about the syntax of a cnvtool source file, refer to <xref href="GUID-6796BA71-47A7-5465-89F2-BD0AEF2E4EE7.dita">Cnvtool Source File</xref>. </p> </li> <li id="GUID-62F3284F-1686-5869-A849-373A8092209F"><p>Create a cnvtool control file using a text editor and save it as, for example <filepath>d:\charconvfiles\data\cp850.ctl</filepath>. This file specifies the conversion algorithms to convert both ways between ranges of characters, and other information. </p> <codeblock id="GUID-EC3C3757-655C-5E7E-873A-0D2620FFE09E" xml:space="preserve">Endianness                                                            FixedBigEndian
+ReplacementForUnconvertibleUnicodeCharacters                        0x1a # ASCII "substitute" character - must be a single character, and must be little-endian if the "Endianness" above is "Unspecified", otherwise in the same endianness as specified
+
+StartForeignVariableByteData
+#    FirstInitialByteValueInRange    LastInitialByteValueInRange        NumberOfSubsequentBytes
+    0x00                            0xff                            0
+EndForeignVariableByteData
+
+StartForeignToUnicodeData
+#    IncludePriority    SearchPriority    FirstInputCharacterCodeInRange    LastInputCharacterCodeInRange    Algorithm                        Parameters
+    2                2                0x00                            0x7f                            Direct                            {}        # ASCII
+    1                1                0x80                            0xff                            KeyedTable16OfIndexedTables16    {}        # CP850
+EndForeignToUnicodeData
+
+StartUnicodeToForeignData
+#    IncludePriority    SearchPriority    FirstInputCharacterCodeInRange    LastInputCharacterCodeInRange    Algorithm            SizeOfOutputCharacterCodeInBytes    Parameters
+    2                2                0x0000                            0x007f                            Direct                1                                    {}        # ASCII
+    1                1                0x00A0                            0x25A0                            KeyedTable1616        1                                    {}        # CP850
+EndUnicodeToForeignData
+</codeblock> <p>For more information about the syntax of a cnvtool control file, refer to <xref href="GUID-2624060D-A5E7-590A-9FA0-471AE42A9BE9.dita">Cnvtool Control File</xref>. </p> </li> <li id="GUID-A15AE20D-57A2-5D66-80C6-6CC0CFE5A409"><p>Start a command prompt to run <filepath>cnvtool</filepath> on the source and control files as follows: </p> <p><userinput>cd d:\Symbian\epoc32\tools</userinput> </p> <p><userinput>cnvtool.bat -generateSourceCode d:\charconvfiles\data\cp850.txt d:\charconvfiles\data\cp850.ctl d:\charconvfiles\data\g_cp850.cpp</userinput> </p> <p>This process generates a C++ source code file called <filepath>g_cp850.cpp</filepath>. It is referred to as the <filepath>cnvtool</filepath> -generated cpp file. It contains the <codeph>SCnvConversionData</codeph> data structure. </p> <codeblock id="GUID-0E9F220F-F77C-54D7-A4F1-76672A16625B" xml:space="preserve">
+#include &lt;e32std.h&gt;
+#include &lt;CONVDATA.H&gt;
+#include &lt;CONVGENERATEDCPP.H&gt;
+
+#define ARRAY_LENGTH(aArray) (sizeof(aArray)/sizeof((aArray)[0]))
+
+
+_LIT8(KLit8ReplacementForUnconvertibleUnicodeCharacters, "\x1a");
+
+GLDEF_C const TDesC8&amp; ReplacementForUnconvertibleUnicodeCharacters_internal()
+    {
+    return KLit8ReplacementForUnconvertibleUnicodeCharacters;
+    }
+
+LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1[]=
+    {
+    0x00c7,
+    0x00fc,
+...
+ }
+
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_foreignToUnicode_1[]=
+    {
+        {
+        0x80,
+        0xff,
+        keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1
+        }
+    };
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_1[]=
+    {
+        {
+        0x00a0,
+        0xff
+        },
+...
+ }
+LOCAL_D const SCnvConversionData::SVariableByteData::SRange foreignVariableByteDataRanges[]=
+    {
+        {
+        0x00,
+        0xff,
+        0,
+        0
+        }
+    };
+
+....
+
+GLDEF_D const SCnvConversionData conversionData=
+    {
+    SCnvConversionData::EFixedBigEndian,
+        {
+        ARRAY_LENGTH(foreignVariableByteDataRanges),
+        foreignVariableByteDataRanges
+        },
+        {
+        ARRAY_LENGTH(foreignToUnicodeDataRanges),
+        foreignToUnicodeDataRanges
+        },
+        {
+        ARRAY_LENGTH(unicodeToForeignDataRanges),
+        unicodeToForeignDataRanges
+        },
+    NULL,
+    NULL
+    };
+
+</codeblock> <p>For more information about the command syntax of cnvtool, refer to <xref href="GUID-214A7085-185B-5D40-A613-E82E68968AAB.dita">Cnvtool Command Syntax</xref>. </p> </li> <li id="GUID-03FF26E6-8AA2-5E31-A9A9-8A366FDBCD7F"><p>Create a cpp file which implements the <xref href="GUID-F58308AA-7072-370D-BE6A-1E8236060FC4.dita"><apiname>CCharacterSetConverterPluginInterface</apiname></xref> class. </p> <p>All of the functions defined in the interface must be implemented by the plug-in DLL. The implementations of <codeph>ConvertFromUnicode()</codeph> and <codeph>ConvertToUnicode()</codeph> must fulfil the following behavioural requirements: </p> <ul><li id="GUID-E6E2B609-A110-5607-8203-6E5C25C8B952"><p>They must return a negative error code (see <codeph>CCnvCharacterSetConverter::TError</codeph>), or the number of elements remaining in the input descriptor which have not been converted. </p> </li> <li id="GUID-2640AA42-5CA9-54B8-BCF8-40896D1BCA36"><p>They must not return an error when the output descriptor is too short or there is a truncated sequence at the end of the input descriptor. </p> <ul><li id="GUID-3A715936-4164-5493-A826-BB10448BD004"><p>If the output descriptor is full, the input descriptor cannot be fully converted. </p> </li> <li id="GUID-8D962732-8CAE-5D39-A2EA-FEA6D50E920E"><p>If the input descriptor ends with a truncated sequence, such as the first half of a Unicode surrogate pair, the first byte of a multi-byte foreign character set character code, or a truncated escape sequence of a modal foreign character set, it cannot be fully converted. </p> </li> </ul> </li> <li id="GUID-50C3341A-1319-5B57-A6B4-A527B48788E5"><p>If the input descriptor consists purely of a truncated sequence they must return <codeph>CCnvCharacterSetConverter::EErrorIllFormedInput</codeph>. </p> </li> </ul> <p>For non-complex character sets, they can call <codeph>CCnvCharacterSetConverter::DoConvertFromUnicode()</codeph> and <codeph>CCnvCharacterSetConverter::DoConvertToUnicode()</codeph> functions respectively. </p> <p>For complex character sets, for example JIS or Shift-JIS, the <xref href="GUID-2FC99DA0-F1C0-3A5E-B990-5DC3F7EAA31C.dita"><apiname>CnvUtilities</apiname></xref> class provides some utility functions. </p> <p>To access the two (const) global objects implemented in the cnvtool-generated cpp file, you must include the <filepath>convgeneratedcpp.h</filepath> header file. The <xref href="GUID-1A6BF3E3-31BF-3BC9-A010-26FF72F39F0B.dita"><apiname>SCnvConversionData</apiname></xref> object generated can then be used to implement the <codeph>ConvertFromUnicode()</codeph> and <codeph>ConvertToUnicode()</codeph> functions. </p> <p> <b>Example implementation</b>  </p> <codeblock id="GUID-E899A8AE-73D4-591D-B5A1-6777986D9361" xml:space="preserve">#include &lt;e32std.h&gt;
+#include &lt;charconv.h&gt;
+#include &lt;convgeneratedcpp.h&gt;
+#include &lt;ecom/implementationproxy.h&gt;
+#include &lt;charactersetconverter.h&gt;
+
+class CCP850ConverterImpl : public CCharacterSetConverterPluginInterface
+    {
+
+public:
+    virtual const TDesC8&amp; ReplacementForUnconvertibleUnicodeCharacters();
+
+    virtual TInt ConvertFromUnicode(
+        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
+        const TDesC8&amp; aReplacementForUnconvertibleUnicodeCharacters, 
+        TDes8&amp; aForeign, 
+        const TDesC16&amp; aUnicode, 
+        CCnvCharacterSetConverter::TArrayOfAscendingIndices&amp; aIndicesOfUnconvertibleCharacters);
+
+    virtual TInt ConvertToUnicode(
+        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
+        TDes16&amp; aUnicode, 
+        const TDesC8&amp; aForeign, 
+        TInt&amp; aState, 
+        TInt&amp; aNumberOfUnconvertibleCharacters, 
+        TInt&amp; aIndexOfFirstByteOfFirstUnconvertibleCharacter);
+
+    virtual TBool IsInThisCharacterSetL(
+        TBool&amp; aSetToTrue, 
+        TInt&amp; aConfidenceLevel, 
+        const TDesC8&amp; aSample);
+
+    static CCP850ConverterImpl* NewL();
+    virtual ~CCP850ConverterImpl();
+
+private:
+    CCP850ConverterImpl();
+
+    };
+
+
+const TDesC8&amp; CCP850ConverterImpl::ReplacementForUnconvertibleUnicodeCharacters()
+    {
+    return ReplacementForUnconvertibleUnicodeCharacters_internal();
+    }
+
+TInt CCP850ConverterImpl::ConvertFromUnicode(
+        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
+        const TDesC8&amp; aReplacementForUnconvertibleUnicodeCharacters, 
+        TDes8&amp; aForeign, 
+        const TDesC16&amp; aUnicode, 
+        CCnvCharacterSetConverter::TArrayOfAscendingIndices&amp; aIndicesOfUnconvertibleCharacters)
+    {
+    return CCnvCharacterSetConverter::DoConvertFromUnicode(conversionData, aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters);
+    }
+
+TInt CCP850ConverterImpl::ConvertToUnicode(
+        CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, 
+        TDes16&amp; aUnicode, 
+        const TDesC8&amp; aForeign, 
+        TInt&amp; /*aState*/, 
+        TInt&amp; aNumberOfUnconvertibleCharacters, 
+        TInt&amp; aIndexOfFirstByteOfFirstUnconvertibleCharacter)
+    {
+    return CCnvCharacterSetConverter::DoConvertToUnicode(conversionData, aDefaultEndiannessOfForeignCharacters, aUnicode, aForeign, aNumberOfUnconvertibleCharacters, aIndexOfFirstByteOfFirstUnconvertibleCharacter);
+    }
+
+TBool CCP850ConverterImpl::IsInThisCharacterSetL(
+        TBool&amp; aSetToTrue, 
+        TInt&amp; aConfidenceLevel, 
+        const TDesC8&amp; /*aSample*/)
+    {
+    aSetToTrue=ETrue;
+    aConfidenceLevel=0;
+    return EFalse;
+    }
+
+CCP850ConverterImpl* CCP850ConverterImpl::NewL()
+    {
+    CCP850ConverterImpl* self = new(ELeave) CCP850ConverterImpl();
+    return self;
+    }
+
+CCP850ConverterImpl::~CCP850ConverterImpl()
+    {
+    }
+
+CCP850ConverterImpl::CCP850ConverterImpl()
+    {
+    }
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+        IMPLEMENTATION_PROXY_ENTRY(0x102825AD,    CCP850ConverterImpl::NewL)
+    };
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt&amp; aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+    return ImplementationTable;
+    } 
+</codeblock> </li> <li id="GUID-D6584918-0542-5164-B339-658D52E041BF"><p>Create an ECom registry resource file using a text editor. </p> <p>102825ac.rss </p> <codeblock id="GUID-0652DC46-A32A-5730-A0B0-211C45A016B5" xml:space="preserve">#include "ecom/registryinfo.rh"
+
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid = 0x102825AC; // UID acquired from Symbian
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = 0x101F7F1D; // fixed UID for Charconv plug-ins
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x102825AD; // UID acquired from Symbian
+                    version_no = 1;
+                    display_name = "CP850";
+                    default_data = "CP850";
+                    opaque_data = "";
+                    }
+                };
+            }
+        };
+    }
+</codeblock> </li> <li id="GUID-58F16B35-BB07-5C51-AE43-92E9D3D76FE8"><p>Create an mmp file which is used to build the plug-in DLL. </p> <codeblock id="GUID-AB46B407-D465-5AA1-BF7D-78FC11816A45" xml:space="preserve">TARGET            cp850.dll
+TARGETTYPE        PLUGIN
+
+CAPABILITY        All -Tcb
+
+UID                0x10009D8D 0x102825AC
+VENDORID        0x70000001
+
+SYSTEMINCLUDE    /epoc32/include
+
+SOURCEPATH        ../src/plugins
+SOURCE            cp850.cpp
+
+SOURCEPATH        /epoc32/build/generatedcpp/charconv
+SOURCE            g_cp850.cpp
+
+SOURCEPATH        ../resource
+START RESOURCE    cp850.rss
+TARGETPATH        /resource/charconv
+LANG            sc
+END
+
+START RESOURCE    102825ac.rss
+TARGET            cp850.rsc
+END
+
+LIBRARY            euser.lib
+LIBRARY            charconv.lib
+LIBRARY            ecom.lib
 </codeblock> </li> </ol> <p>Build the plug-in DLL and install it into the <filepath>\system\charconv\</filepath> directory. The DLL is then available to be loaded when <codeph>CCnvCharacterSetConverter::PrepareToConvertToOrFromL()</codeph> is invoked. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,138 +1,137 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82" xml:lang="en"><title>Handling
-pointer events in custom controls</title><shortdesc>The Symbian platform passes touch events to applications by calling <parmname>CCoeControl::HandlePointerEventL()</parmname>.
-The application that receives these events is the one that owns the window.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>While this method has been available since S60 3.0, it previously has been
-an optional method. If you have derived a custom control from <parmname>CCoeControl</parmname>,
-then you must implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.
-Otherwise, your application cannot react to the touch events passed to it.</p>
-<p>You have to implement at least <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5CF90E7A-4A91-36FF-BB3F-CF7CF687DED2"><apiname>CCoeControl::HandlePointerEventL()</apiname></xref> into
-your own custom UI components. If you have a container control that owns other
-controls, you have to remember to call the base class implementation of <codeph>CCoeControl::HandlePointerEventL()</codeph> before
-your additional code as illustrated below:</p>
-<codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL()
-    {
-    // Remember to call base class implementation
-    CCoeControl::HandlePointerEventL();
-    
-    // Your additional code here
-    // ...
-    }</codeblock>
-<p>The following figure illustrates changes in the code. Items marked with
-a black frame indicate usage of features in earlier editions, and items marked
-with a red frame are new features.</p>
-<fig id="GUID-A8FE0B16-FCA8-48FB-BAE8-EE141CED39C0">
-<title><parmname>CCoeControl::HandlePointerEventL()</parmname> usage</title>
-<image href="GUID-52783B69-09FC-4123-849A-79FF61406129_d0e43689_href.png" placement="inline"/>
-</fig>
-<p>To handle pointer events in your custom control:</p>
-<ol>
-<li id="GUID-CFB37EC0-E28A-4E28-9D7E-FEE90F21C1E5"><itemgroup><p>In your custom
-control header file, include the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">    public: // from CCoeControl
-    void HandlePointerEventL(const TPointerEvent&amp; aPointerEvent);</codeblock></itemgroup></li>
-<li id="GUID-096D3B29-AD1F-4BBA-90FD-8A850A353BA3"><itemgroup><p>In your custom
-control, implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void CMyControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    switch( aPointerEvent.iType )
-        {
-        case TPointerEvent::EButton1Up:
-            {
-            // Is the pointer position on this component?
-            if (Rect().Contains(aPointerEvent.iPosition))
-                {
-                SetFocus(ETrue);
-                // Tell container control that this is focused control
-                CMyContainerControl* parent = static_cast&lt;CMyContainerControl*&gt;(Parent());
-                parent-&gt;SetLastFocusedControl(this);
-                }
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }</codeblock><p>By default, the Symbian platform only passes <parmname>EButton1Down</parmname> and <parmname>EButton1Up</parmname> events
-to <parmname>CCoeControl::HandlePointerEventL()</parmname>. To enable drag
-events, see <xref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita">Enabling
-additional touch events for your application</xref>.</p></itemgroup></li>
-<li id="GUID-6725474A-66CA-4AEE-99AA-7608E4219780"><itemgroup><p>In your custom
-container control header file, include the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void HandlePointerEventL(const TPointerEvent&amp; aPointerEvent);</codeblock></itemgroup></li>
-<li id="GUID-0166F02C-5B77-40D5-9CC5-FAEF53E8639A"><itemgroup><p>In your custom
-container control, implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
-    {
-    // Check if touch is enabled or not
-    if( !AknLayoutUtils::PenEnabled() )
-        {
-        return;
-        }
- 
-    // Remove last focus
-    if (iLastFocusedControl)
-        {
-        iLastFocusedControl-&gt;SetFocus(EFalse);
-        }
-    
-    // Call base class method, that forwards pointer event the right child
-    // component
-    CCoeControl::HandlePointerEventL(aPointerEvent);
-    
-    // Check all button up cases again
-    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
-        {
-        // Find which control was focused / received pointer event
-        CCoeControlArray::TCursor cursor = Components().Begin();
-        CCoeControl* ctrl = NULL;
-        TInt counter = 0;
-        while ((ctrl = cursor.Control&lt;CCoeControl&gt;()) != NULL)
-            {
-            if (ctrl-&gt;Rect().Contains(aPointerEvent.iPosition))
-                {
-                // Set focused index for the scroll bar
-                iFocusedIndex = counter;
-                break;
-                }
-            cursor.Next();
-            counter++;
-            }
-        }
- 
-    // Do drawing
-    UpdateScrollBarFrameL();
-    DrawNow();
-    }</codeblock><note importance="normal"><p>For information on the <parmname>AknLayoutUtils::PenEnabled()</parmname> method,
-see <xref href="GUID-DB2E0959-C24E-4E6E-BC6D-064B91BDE662.dita">Checking for touch
-support at runtime</xref>.</p></note></itemgroup></li>
-</ol>
-<ul>
-<li><itemgroup><p>Features introduced:</p><ul>
-<li><p>Optional <parmname>TPointerEvent::EDrag()</parmname> for receiving
-events indicating that a mobile device user is dragging it across the screen.</p><p>For
-more information on this and other touch event options, see <xref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita">Enabling
-additional touch events for your application</xref>.</p></li>
-<li><p>Optional <parmname>MTouchFeedback</parmname> observer for sending a
-vibration when a mobile device user touches a control with the feedback interface.</p><p>For
-more information on tactile feedback, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
-feedback</xref>.</p></li>
-</ul></itemgroup></li>
-</ul>
-</conbody><related-links>
-<linklist><title>Related information</title>
-<link href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita"><linktext>Enabling
-additional touch events for your application</linktext></link>
-<link href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita"><linktext>Providing
-tactile feedback</linktext></link>
-<link href="GUID-1614B24F-5DB2-43AA-9A18-723BD61B8B4C.dita"><linktext>Handling
-key events in your application</linktext></link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E9191C31-4D09-4C95-85E4-4282ADEE1D82" xml:lang="en"><title>Handling
+pointer events in custom controls</title><shortdesc>The Symbian platform passes touch events to applications by calling <parmname>CCoeControl::HandlePointerEventL()</parmname>.
+The application that receives these events is the one that owns the window.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>While this method has been available since S60 3.0, it previously has been
+an optional method. If you have derived a custom control from <parmname>CCoeControl</parmname>,
+then you must implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.
+Otherwise, your application cannot react to the touch events passed to it.</p>
+<p>You have to implement at least <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-5CF90E7A-4A91-36FF-BB3F-CF7CF687DED2"><apiname>CCoeControl::HandlePointerEventL()</apiname></xref> into
+your own custom UI components. If you have a container control that owns other
+controls, you have to remember to call the base class implementation of <codeph>CCoeControl::HandlePointerEventL()</codeph> before
+your additional code as illustrated below:</p>
+<codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL()
+    {
+    // Remember to call base class implementation
+    CCoeControl::HandlePointerEventL();
+    
+    // Your additional code here
+    // ...
+    }</codeblock>
+<p>The following figure illustrates changes in the code. Items marked with
+a black frame indicate usage of features in earlier editions, and items marked
+with a red frame are new features.</p>
+<fig id="GUID-A8FE0B16-FCA8-48FB-BAE8-EE141CED39C0">
+<title><parmname>CCoeControl::HandlePointerEventL()</parmname> usage</title>
+<image href="GUID-52783B69-09FC-4123-849A-79FF61406129_d0e38122_href.png" placement="inline"/>
+</fig>
+<p>To handle pointer events in your custom control:</p>
+<ol>
+<li id="GUID-CFB37EC0-E28A-4E28-9D7E-FEE90F21C1E5"><itemgroup><p>In your custom
+control header file, include the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">    public: // from CCoeControl
+    void HandlePointerEventL(const TPointerEvent&amp; aPointerEvent);</codeblock></itemgroup></li>
+<li id="GUID-096D3B29-AD1F-4BBA-90FD-8A850A353BA3"><itemgroup><p>In your custom
+control, implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void CMyControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
+    {
+    switch( aPointerEvent.iType )
+        {
+        case TPointerEvent::EButton1Up:
+            {
+            // Is the pointer position on this component?
+            if (Rect().Contains(aPointerEvent.iPosition))
+                {
+                SetFocus(ETrue);
+                // Tell container control that this is focused control
+                CMyContainerControl* parent = static_cast&lt;CMyContainerControl*&gt;(Parent());
+                parent-&gt;SetLastFocusedControl(this);
+                }
+            break;
+            }
+        default:
+            {
+            break;
+            }
+        }
+    }</codeblock><p>By default, the Symbian platform only passes <parmname>EButton1Down</parmname> and <parmname>EButton1Up</parmname> events
+to <parmname>CCoeControl::HandlePointerEventL()</parmname>. To enable drag
+events, see <xref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita">Enabling
+additional touch events for your application</xref>.</p></itemgroup></li>
+<li id="GUID-6725474A-66CA-4AEE-99AA-7608E4219780"><itemgroup><p>In your custom
+container control header file, include the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void HandlePointerEventL(const TPointerEvent&amp; aPointerEvent);</codeblock></itemgroup></li>
+<li id="GUID-0166F02C-5B77-40D5-9CC5-FAEF53E8639A"><itemgroup><p>In your custom
+container control, implement the <parmname>CCoeControl::HandlePointerEventL()</parmname> method.</p><codeblock xml:space="preserve">void CMyContainerControl::HandlePointerEventL(const TPointerEvent&amp; aPointerEvent)
+    {
+    // Check if touch is enabled or not
+    if( !AknLayoutUtils::PenEnabled() )
+        {
+        return;
+        }
+ 
+    // Remove last focus
+    if (iLastFocusedControl)
+        {
+        iLastFocusedControl-&gt;SetFocus(EFalse);
+        }
+    
+    // Call base class method, that forwards pointer event the right child
+    // component
+    CCoeControl::HandlePointerEventL(aPointerEvent);
+    
+    // Check all button up cases again
+    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+        {
+        // Find which control was focused / received pointer event
+        CCoeControlArray::TCursor cursor = Components().Begin();
+        CCoeControl* ctrl = NULL;
+        TInt counter = 0;
+        while ((ctrl = cursor.Control&lt;CCoeControl&gt;()) != NULL)
+            {
+            if (ctrl-&gt;Rect().Contains(aPointerEvent.iPosition))
+                {
+                // Set focused index for the scroll bar
+                iFocusedIndex = counter;
+                break;
+                }
+            cursor.Next();
+            counter++;
+            }
+        }
+ 
+    // Do drawing
+    UpdateScrollBarFrameL();
+    DrawNow();
+    }</codeblock><note importance="normal"><p>For information on the <parmname>AknLayoutUtils::PenEnabled()</parmname> method,
+see <xref href="GUID-DB2E0959-C24E-4E6E-BC6D-064B91BDE662.dita">Checking for touch
+support at runtime</xref>.</p></note></itemgroup></li>
+</ol>
+<ul>
+<li><itemgroup><p>Features introduced:</p><ul>
+<li><p>Optional <parmname>TPointerEvent::EDrag()</parmname> for receiving
+events indicating that a mobile device user is dragging it across the screen.</p><p>For
+more information on this and other touch event options, see <xref href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita">Enabling additional touch events for your application</xref>.</p></li>
+<li><p>Optional <parmname>MTouchFeedback</parmname> observer for sending a
+vibration when a mobile device user touches a control with the feedback interface.</p><p>For
+more information on tactile feedback, see <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
+feedback</xref>.</p></li>
+</ul></itemgroup></li>
+</ul>
+</conbody><related-links>
+<linklist><title>Related information</title>
+<link href="GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita"><linktext>Enabling
+additional touch events for your application</linktext></link>
+<link href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita"><linktext>Providing
+tactile feedback</linktext></link>
+<link href="GUID-1614B24F-5DB2-43AA-9A18-723BD61B8B4C.dita"><linktext>Handling
+key events in your application</linktext></link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e111110_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E91931D8-E433-58FB-B064-70903FA4C4A5_d0e117648_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,68 +1,68 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0" xml:lang="en"><title>Listening
-for Property Changes</title><shortdesc>The sensor channel APIs enable the client applications to be notified
-about the changes to properties associated with a sensor channel.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<prereq id="GUID-D1D22060-E453-4046-953D-10486D45885F"> Before listening for
-the property changes of a sensor channel, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open the sensor channel</xref>.         </prereq>
-<context id="GUID-0D960123-7430-42B5-A84D-B63F2852DD7C"><p>The client applications
-can use the property listener to monitor the property changes made by other
-clients.</p></context>
-<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-8-1-9-1-1-6-1-4-1-4-1-8-1-3-3">
-<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-8-1-9-1-1-6-1-4-1-4-1-8-1-3-3-1"><cmd>Create a property
-listener implementation for the <parmname>MSensrvPropertyListener</parmname> interface.</cmd>
-<stepxmp><codeblock xml:space="preserve">class PropertyListener:public MSensrvPropertyListener
-    {
-    public:    
-    void PropertyChanged(CSensrvChannel &amp;aChannel, const TSensrvProperty &amp;aChangedProperty)
-        {
-        ...
-         //Implementation
-        }
-    void PropertyError(CSensrvChannel &amp;aChannel, TSensrvErrorSeverity aError)
-        {
-        ...
-         //Implementation
-        }
-    void SetPropertySuccessIndicationChanged(TSetPropertySuccessIndicator aIndication)
-        {
-        ...
-         //Implementation
-        }
-    void GetPropertyListenerInterfaceL(TUid aInterfaceUid, TAny *&amp;aInterface)
-        {
-        ...
-         //Implementation
-        }
-    };</codeblock></stepxmp>
-</step>
-<step id="GUID-6AB619B9-0259-493A-BC40-CAF5BF337E04"><cmd>Start property listening
-by passing an instance of property listener implementation using <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4552066A-4FC1-3876-89AA-DC9B081B3814"><apiname>CSensrvChannel::SetPropertyListenerL()</apiname></xref>.</cmd>
-<stepxmp><codeblock xml:space="preserve">//Instance of the property listener implementation
-PropertyListener propListener;
-...
-CSensrvChannel* channel;
-...
-channel-&gt;SetPropertyListenerL(&amp;propListener);
-...</codeblock></stepxmp>
-<info>When a property change occurs, a <parmname>PropertyChanged()</parmname> notification
-is delivered through the <parmname>MSensrvPropertyListener</parmname> callback
-interface to the clients that are listening for property changes.<note> The
-client that set the property is not notified.</note></info>
-</step>
-<step id="GUID-8AD85E3B-EBBC-41E4-A32C-AF2A52B018E6"><cmd>Once you get the
-required property changes associated with the sensor channel, you can stop
-property listening by passing a NULL parameter to the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4552066A-4FC1-3876-89AA-DC9B081B3814"><apiname>CSensrvChannel::SetPropertyListenerL()</apiname></xref> function.</cmd>
-<stepxmp><codeblock xml:space="preserve">channel-&gt;SetPropertyListenerL();</codeblock></stepxmp>
-</step>
-</steps>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-E93EE459-8CF4-42A1-B06C-E78E56FD25A0" xml:lang="en"><title>Listening
+for Property Changes</title><shortdesc>The sensor channel APIs enable the client applications to be notified
+about the changes to properties associated with a sensor channel.</shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-D1D22060-E453-4046-953D-10486D45885F"> Before listening for
+the property changes of a sensor channel, you must <xref href="GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B.dita#GUID-4B709839-8EEF-4AD2-9868-9AF0176B1E5B/GUID-FBBD3A8B-F240-4DC0-B516-3A51FDD86A88">open the sensor channel</xref>.         </prereq>
+<context id="GUID-0D960123-7430-42B5-A84D-B63F2852DD7C"><p>The client applications
+can use the property listener to monitor the property changes made by other
+clients.</p></context>
+<steps id="GUID-4DD07DEC-6017-4237-BE46-1D69E5FBD744-GENID-1-10-1-9-1-1-6-1-4-1-4-1-8-1-3-3">
+<step id="GUID-9A69E5AD-E938-4092-A8C2-CB65C37C8962-GENID-1-10-1-9-1-1-6-1-4-1-4-1-8-1-3-3-1"><cmd>Create a property
+listener implementation for the <parmname>MSensrvPropertyListener</parmname> interface.</cmd>
+<stepxmp><codeblock xml:space="preserve">class PropertyListener:public MSensrvPropertyListener
+    {
+    public:    
+    void PropertyChanged(CSensrvChannel &amp;aChannel, const TSensrvProperty &amp;aChangedProperty)
+        {
+        ...
+         //Implementation
+        }
+    void PropertyError(CSensrvChannel &amp;aChannel, TSensrvErrorSeverity aError)
+        {
+        ...
+         //Implementation
+        }
+    void SetPropertySuccessIndicationChanged(TSetPropertySuccessIndicator aIndication)
+        {
+        ...
+         //Implementation
+        }
+    void GetPropertyListenerInterfaceL(TUid aInterfaceUid, TAny *&amp;aInterface)
+        {
+        ...
+         //Implementation
+        }
+    };</codeblock></stepxmp>
+</step>
+<step id="GUID-6AB619B9-0259-493A-BC40-CAF5BF337E04"><cmd>Start property listening
+by passing an instance of property listener implementation using <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4552066A-4FC1-3876-89AA-DC9B081B3814"><apiname>CSensrvChannel::SetPropertyListenerL()</apiname></xref>.</cmd>
+<stepxmp><codeblock xml:space="preserve">//Instance of the property listener implementation
+PropertyListener propListener;
+...
+CSensrvChannel* channel;
+...
+channel-&gt;SetPropertyListenerL(&amp;propListener);
+...</codeblock></stepxmp>
+<info>When a property change occurs, a <parmname>PropertyChanged()</parmname> notification
+is delivered through the <parmname>MSensrvPropertyListener</parmname> callback
+interface to the clients that are listening for property changes.<note> The
+client that set the property is not notified.</note></info>
+</step>
+<step id="GUID-8AD85E3B-EBBC-41E4-A32C-AF2A52B018E6"><cmd>Once you get the
+required property changes associated with the sensor channel, you can stop
+property listening by passing a NULL parameter to the <xref href="GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844.dita#GUID-22DC917F-D833-3531-AB2D-A6E2D52EF844/GUID-4552066A-4FC1-3876-89AA-DC9B081B3814"><apiname>CSensrvChannel::SetPropertyListenerL()</apiname></xref> function.</cmd>
+<stepxmp><codeblock xml:space="preserve">channel-&gt;SetPropertyListenerL();</codeblock></stepxmp>
+</step>
+</steps>
 </taskbody></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413261_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E9C620EF-4C77-56C3-8023-A6F13989246A_d0e413423_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,42 +1,88 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task xml:lang="en" id="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F"><title>Background Processing for Ecam</title><shortdesc>This topic describes how to capture an image using standalone background processing in Ecam. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> <prereq id="GUID-18F6B6F4-909B-58C3-A6B3-014E8B4D5919-GENID-1-8-1-18-1-1-5-1-5-1-6-1-4-1-12-1-3-1"><p>Before you start you should understand the <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref> topic. </p> </prereq> <context id="GUID-43393C5E-C050-5B00-99CF-4C467DBE1335"><p>The Ecam API has been extended for background processing by having it as a standalone process. In order to use standalone background processing you need to implement the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraObserver2</apiname></xref>, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MPreImageCaptureControlObserver</apiname></xref>, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCaptureImageObserver</apiname></xref> interfaces and use with the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> API. </p> </context> <steps id="GUID-48762C38-0A88-5EEE-85E2-49DF09ED23A7"><step id="GUID-4F2E1FBC-5593-588D-A4E8-947E58EAADC0"><cmd/><info id="GUID-F6BB2B65-A4FD-53FA-BDD6-37A7D2AB3B54"> To prepare image capturing using the <codeph>CCamera</codeph> API </info> <substeps id="GUID-E491A3EC-80E1-502D-9A7E-F1EB1F69F0A6"><substep id="GUID-A28A04E2-C154-5846-A934-AE175BD4FD91"><cmd>call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPreImageCaptureControl::GetSupportedProcessingOptionsL(Tint&amp;)</apiname></xref> to get support for processing specified by <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>TECamProcessingTypes</apiname></xref>. </cmd> </substep> <substep id="GUID-BF3B1D7B-D79E-57A9-B5D5-F48938148CB7"><cmd/><info>pass the <codeph>EECamBackgroundProcessing</codeph> option instead of the <codeph>SetImageProcessingOptions</codeph> value within the <codeph>TPrepareImageParameters</codeph> values to the required processing option specified in <codeph>TECamProcessingOptions</codeph> for the background processing. </info> </substep> <substep id="GUID-3EFC3492-D190-5ADE-B293-41BC3775B3C6"><cmd/><info>call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPreImageCaptureControl::PrepareImageCapture(const
-                     CCameraPreImageCaptureControl:: TPrepareImageParameters&amp;,
-                     MCaptureImageObserver&amp;)</apiname></xref> to perform setup and allocation of memory for the image capture operation. This implementation creates a new <codeph>CCameraImageCapture()</codeph> object which internally implements the <codeph>MCameraImageCapture()</codeph> interface. </info> <info>If an error occurs while preparing an image, call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPreImageCaptureControl::PrepareImageComplete(CCameraPreImageCaptureControl*,
-                     TInt)</apiname></xref> to pass the <codeph>aErrorCode</codeph> value to <codeph>CCamera</codeph>. </info> </substep> </substeps> </step> <step id="GUID-57389BBB-6434-583D-95F1-E235DACAEA92"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraImageCapture::CaptureImage()</apiname></xref> to capture an image. This implements <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCameraImageCapture()</apiname></xref>. </info> </step> <step id="GUID-DC1848F3-CEF1-58A5-AE9C-9DA6CF602F0D"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPostImageCaptureControl::CreateL(CCameraImageCapture*,
-                TPostCaptureControlId)</apiname></xref> if you wish to capture another image. The <codeph>CCameraPostImageCaptureControl</codeph> object from the previous capture is preserved. This callback function creates a <codeph>CCameraPostImageCaptureControl</codeph> object for every individual image captured. </info> </step> <step id="GUID-27371599-2216-5C53-8730-69E8F9D9F988"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>MCaptureImageObserver::IndividualImageControlHandle(CCameraImageCapture&amp;,
-                TPostCaptureControlId)</apiname></xref> to destroy the individual captured image. </info> </step> <step id="GUID-27ADAF59-D386-5693-9106-AC87B6C8C3BA"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPostImageCaptureControl::~CCameraPostImageCaptureControl()</apiname></xref> to destroy any captured image objects created by <codeph>CCameraPostImageCaptureControl::CreateL()</codeph>. </info> </step> <step id="GUID-5F31396D-9C68-52F8-8FC3-1C51FC7B74B5"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraImageCapture::PauseProcessing(TUint)</apiname></xref> to pause any processing options associated with the relevant image capture function. </info> <info>Note: You can call <codeph>PauseProcessing()</codeph> for any processing options used during image capture. </info> </step> <step id="GUID-41D15FB4-E0A8-54FE-90FC-2DF05CA955D0"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraImageCapture::ResumeProcessingL(TUint)</apiname></xref> to resume any processing options associated with the relevant image capture function. </info> <info>Note: You can call <codeph>ResumeProcessingL()</codeph> for any processing options used during image capture. </info> </step> <step id="GUID-66119341-7FEE-5BCA-A7D8-3471E61B355A"><cmd/><info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCameraPostImageCaptureControl::GetImageStateL(TImageState&amp;)</apiname></xref> to retrieve the image state of the individual image given by the <codeph>CCameraPostImageCaptureControl</codeph> object. </info> </step> </steps> <example><title>Example</title> <p>The following example shows you how to capture an image using standalone background processing in Ecam: </p> <codeblock id="GUID-F4409BA1-A6D9-5855-AB32-FC4672AD136A" xml:space="preserve">
-
-CCamera* camera; 
-MCameraObserver2* observer2; 
-camera = CCamera::New2L(*observer2, 0);
-MPreImageCaptureControlObserver* preImageCaptureControlObserver;
-CCamera::CCameraPreImageCaptureControl* preImgCapture = CCamera::CCameraPreImageCaptureControl::NewL(*camera, preImageCaptureControlObserver));
-TInt supportedProcessingOptions;
-preImgCapture-&gt;GetSupportedProcessingOptionsL(supportedProcessingOptions); // provides supported image processing options
-CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters prepareImageParameters;
-prepareImageParameters::iImageProcessingOptions = EECamBackgroundProcessing;
-...
-...
-// Capture image
-...
-...
-TUint processingOptions = EECamBackgroundProcessing;
-imgCapture-&gt;PauseProcessing(processingOptions); // Pauses any background processing associated with this image capture
-imgCapture-&gt;ResumeProcessingL(processingOptions); // Resumes any background processing associated with this image capture
-
- //  Retrieve the information for any stage of captured image. 
-TImageState imgState;
-postImgCapture-&gt;GetImageStateL(imgState); // Retrieves the stage of any processing on the current image
-
-
-</codeblock> </example> </taskbody><related-links><link href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita"><linktext>Capturing Image</linktext> </link> </related-links></task>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F" xml:lang="en"><title>Background
+Processing for Ecam</title><shortdesc>This topic describes how to capture an image using standalone background
+processing in Ecam. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<prereq id="GUID-18F6B6F4-909B-58C3-A6B3-014E8B4D5919-GENID-1-10-1-19-1-1-5-1-5-1-5-1-4-1-7-1-3-1"><p>Before you start
+you should understand the <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
+Camera Overview</xref> topic. </p> </prereq>
+<context id="GUID-43393C5E-C050-5B00-99CF-4C467DBE1335"><p>The Ecam API has
+been extended for background processing by having it as a standalone process.
+In order to use standalone background processing you need to implement the <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref>, <xref href="GUID-901FB5EB-70A9-39AA-9052-436E8FC0C0EA.dita"><apiname>MPreImageCaptureControlObserver</apiname></xref>, <xref href="GUID-430C206E-24D7-30BE-98E9-ACD176DDA3A8.dita"><apiname>MCaptureImageObserver</apiname></xref> interfaces and use with the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> API. </p> </context>
+<steps id="GUID-48762C38-0A88-5EEE-85E2-49DF09ED23A7">
+<step id="GUID-4F2E1FBC-5593-588D-A4E8-947E58EAADC0"><cmd/>
+<info id="GUID-F6BB2B65-A4FD-53FA-BDD6-37A7D2AB3B54"> To prepare image capturing
+using the <codeph>CCamera</codeph> API </info>
+<substeps id="GUID-E491A3EC-80E1-502D-9A7E-F1EB1F69F0A6">
+<substep id="GUID-A28A04E2-C154-5846-A934-AE175BD4FD91"><cmd>Call <xref href="GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58.dita#GUID-7B13335C-10A9-38D2-AE12-A50ECCF7EA58/GUID-FEADDA78-14DF-38C9-9EEF-DF18955BB39B"><apiname>CCamera::CCameraPreImageCaptureControl::GetSupportedProcessingOptionsL(TUint&amp;
+aECamProcessingOptionsSupported) const</apiname></xref> to get support for processing
+specified by <codeph>TECamProcessingTypes</codeph>. </cmd>
+</substep>
+<substep id="GUID-BF3B1D7B-D79E-57A9-B5D5-F48938148CB7"><cmd/>
+<info>Pass the <codeph>EECamBackgroundProcessing</codeph> option instead of
+the <codeph>SetImageProcessingOptions</codeph> value within the <codeph>TPrepareImageParameters</codeph> values
+to the required processing option specified in <codeph>TECamProcessingOptions</codeph> for
+the background processing. </info>
+</substep>
+<substep id="GUID-3EFC3492-D190-5ADE-B293-41BC3775B3C6"><cmd/>
+<info>Call <xref href="GUID-7906A608-8E79-3144-8595-AAF16BF08A31.dita#GUID-7906A608-8E79-3144-8595-AAF16BF08A31/GUID-EDA3C3EA-E007-36D1-8908-1F13872CA362"><apiname>CCamera::CCameraPreImageCaptureControl::PrepareImageCapture(const
+       CCameraPreImageCaptureControl::TPrepareImageParameters&amp;, MCaptureImageObserver&amp;)</apiname></xref> to
+perform setup and allocation of memory for the image capture operation. This
+implementation creates a new <codeph>CCameraImageCapture()</codeph> object
+which internally implements the <codeph>MCameraImageCapture()</codeph> interface. </info>
+<info>If an error occurs while preparing an image, call <xref href="GUID-1FAC4515-39EA-3C89-AE7F-EA6615F8906C.dita#GUID-1FAC4515-39EA-3C89-AE7F-EA6615F8906C/GUID-1BDF7E6E-0542-34CE-A351-252963C88CD9"><apiname>MPreImageCaptureControlObserver::PrepareImageComplete(CCamera::CCameraImageCapture
+*,TInt)</apiname></xref> to pass the <codeph>aErrorCode</codeph> value to <codeph>CCamera</codeph>. </info>
+</substep>
+</substeps>
+</step>
+<step id="GUID-57389BBB-6434-583D-95F1-E235DACAEA92"><cmd/>
+<info>Call <xref href="GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4.dita#GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4/GUID-478F4AF3-56F7-3155-B8BB-5AC6EC8F8673"><apiname>CCamera::CCameraImageCapture::CaptureImage()</apiname></xref> to
+capture an image. This implements <xref href="GUID-BC75A950-7188-3A8B-BB25-49A119F23E06.dita"><apiname>MCameraImageCapture</apiname></xref>. </info>
+</step>
+<step id="GUID-DC1848F3-CEF1-58A5-AE9C-9DA6CF602F0D"><cmd/>
+<info>Call <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera::CCameraPostImageCaptureControl::CreateL(CCameraImageCapture*,
+                TPostCaptureControlId)</apiname></xref> if you wish to capture another
+image. The <codeph>CCameraPostImageCaptureControl</codeph> object from the
+previous capture is preserved. This callback function creates a <codeph>CCameraPostImageCaptureControl</codeph> object
+for every individual image captured. </info>
+</step>
+<step id="GUID-27371599-2216-5C53-8730-69E8F9D9F988"><cmd/>
+<info>Call <xref href="GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386.dita#GUID-FB8D88AD-5F05-363B-94EF-70E3E2E7F386/GUID-8EF6EC5F-91F4-3E9C-BF63-B4849974AEB1"><apiname>MCaptureImageObserver::IndividualImageControlHandle(CCamera::CCameraImageCapture
+&amp;,TPostCaptureControlId)</apiname></xref> to destroy the individual captured
+image. </info>
+</step>
+<step id="GUID-27ADAF59-D386-5693-9106-AC87B6C8C3BA"><cmd/>
+<info>Call <xref href="GUID-C607DA37-D386-3291-A9C5-AD0E302607D3.dita#GUID-C607DA37-D386-3291-A9C5-AD0E302607D3/GUID-36F6EC39-DF31-341E-87D3-D1DCAE192292"><apiname>CCamera::CCameraPostImageCaptureControl::~CCameraPostImageCaptureControl()</apiname></xref> to
+destroy any captured image objects created by <codeph>CCameraPostImageCaptureControl::CreateL()</codeph>. </info>
+</step>
+<step id="GUID-5F31396D-9C68-52F8-8FC3-1C51FC7B74B5"><cmd/>
+<info>Call <xref href="GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4.dita#GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4/GUID-5C7C7841-E840-3052-B753-4C4D1498AC0F"><apiname>CCamera::CCameraImageCapture::PauseProcessing(TUint)</apiname></xref> to
+pause any processing options associated with the relevant image capture function. </info>
+<info>Note: You can call <codeph>PauseProcessing()</codeph> for any processing
+options used during image capture. </info>
+</step>
+<step id="GUID-41D15FB4-E0A8-54FE-90FC-2DF05CA955D0"><cmd/>
+<info>Call <xref href="GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4.dita#GUID-4F2BB371-3FE1-3FC5-800B-67B6472FE0E4/GUID-D1DB9FF6-0465-3AE4-B3B8-EB5F0EB3F94F"><apiname>CCamera::CCameraImageCapture::ResumeProcessingL(TUint)</apiname></xref> to
+resume any processing options associated with the relevant image capture function. </info>
+<info>Note: You can call <codeph>ResumeProcessingL()</codeph> for any processing
+options used during image capture. </info>
+</step>
+<step id="GUID-66119341-7FEE-5BCA-A7D8-3471E61B355A"><cmd/>
+<info>Call <xref href="GUID-C607DA37-D386-3291-A9C5-AD0E302607D3.dita#GUID-C607DA37-D386-3291-A9C5-AD0E302607D3/GUID-C2C5CCFA-7537-36F9-8063-A8646FC8B6CB"><apiname>CCamera::CCameraPostImageCaptureControl::GetImageStateL(TImageState
+&amp;)const</apiname></xref> to retrieve the image state of the individual
+image given by the <codeph>CCameraPostImageCaptureControl</codeph> object. </info>
+</step>
+</steps>
+</taskbody><related-links>
+<link href="GUID-A1D2C673-3B91-403A-800B-5E1504FB19EE.dita"><linktext>Capturing
+Still Images</linktext></link>
+</related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e283704_href.png has changed
Binary file Symbian3/SDK/Source/GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e287390_href.png has changed
--- a/Symbian3/SDK/Source/GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,57 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753" xml:lang="en"><title>Error
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Error notes are a warning to the user. They should only be used when the
-user has tried to do something that may cause a considerable problem.</p>
-<fig id="GUID-D82577DB-4C11-4EDE-8C29-D8AE0AE8521D">
-<title>Error note</title>
-<image href="GUID-1EB9BF25-DFF4-42CA-926C-D26409A2868E_d0e65079_href.png" scale="33" placement="inline"/>
-</fig>
-<section id="GUID-A62B2AD0-BA1F-4112-9B61-25D29D3B1854"><title>Guidelines
-for using error notes</title>       <p>Use an error note when the user does
-something that may cause considerable harm immediately or later. For example,
-the user gives a wrong PIN code. Repeating this couple of times would block
-the SIM card.</p> <p>To keep error notes effective, they should be used very
-sparingly. In most ordinary error cases, an <xref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita">information
-note</xref> should be used instead of an error note. It has a less aggressive
-sound and graphics.</p>  <p>It should also be noted that if the information
-to be given is such that the user must see and acknowledge it, a confirmation
-query is a better component to use than a note. Then the user must press a
-key to dismiss the information, and there is time to read and think about
-the notification.</p>           </section>
-<section id="GUID-247815E4-E5BD-456A-9AD0-C3B856C5E274"><title>Using
-error notes in C++ applications</title><p>You can create either a basic error
-note that is displayed only when your application is in the foreground or
-a global note that stays displayed even if the application launching the note
-is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes). </p><p>To use an error
-note with the default icon, text, sound, and duration, create an instance
-of the note class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknErrorNote.html" format="application/java-archive"><codeph>CAknErrorNote</codeph></xref>.</p><p>To create a global error note, use the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
-notes, you can change the icon or text displayed in the note, use a different
-kind of sound, or change the note duration using the setter methods in the
-class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html" format="application/java-archive"><codeph>CAknNoteDialog</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#bfce8dc1591cae822feca43a093a11a9" format="application/java-archive"><codeph>SetIconL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#ae7db1ca3d39de28ae4793b4e7cf79cb" format="application/java-archive"><codeph>SetTextL()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#5f887d8738ed0f061a1c9e82cf3a14a5" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknNoteDialog.html#8778e804a7709588a4cd23134f79674c" format="application/java-archive"><codeph>SetTimeout()</codeph></xref>.</p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
-tone, and softkeys using the methods in the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html" format="application/java-archive"><codeph>CAknGlobalNote</codeph></xref>: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#cee323af0704e07d3f1887a4a13c1639" format="application/java-archive"><codeph>SetGraphic()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#d23699273b28a39c0817bc575be767ab" format="application/java-archive"><codeph>SetAnimation()</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#a8748ee0b3342c24a11b8ed0ea9121bc" format="application/java-archive"><codeph>SetTone()</codeph></xref>, and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknGlobalNote.html#f31895e5838994b1c70300cfd3d7d127" format="application/java-archive"><codeph>SetSoftkeys()</codeph></xref>.</p></section>
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753" xml:lang="en"><title>Error
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Error notes are a warning to the user. They should only be used when the
+user has tried to do something that may cause a considerable problem.</p>
+<fig id="GUID-2265C3F3-86BA-4520-9C5A-BF522D6E3C9C">
+<title>Error note</title>
+<image href="GUID-DAB7AB0C-8B32-4472-8EDC-AA8A5A01205C_d0e59307_href.png" placement="inline"/>
+</fig>
+<section id="GUID-A62B2AD0-BA1F-4112-9B61-25D29D3B1854"><title>Guidelines
+for using error notes</title>       <p>Use an error note when the user does
+something that may cause considerable harm immediately or later. For example,
+the user gives a wrong PIN code. Repeating this couple of times would block
+the SIM card.</p> <p>To keep error notes effective, they should be used very
+sparingly. In most ordinary error cases, an <xref href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita">information
+note</xref> should be used instead of an error note. It has a less aggressive
+sound and graphics.</p>  <p>It should also be noted that if the information
+to be given is such that the user must see and acknowledge it, a confirmation
+query is a better component to use than a note. Then the user must press a
+key to dismiss the information, and there is time to read and think about
+the notification.</p>           </section>
+<section id="GUID-247815E4-E5BD-456A-9AD0-C3B856C5E274"><title>Using
+error notes in applications</title><p>You can create either a basic error
+note that is displayed only when your application is in the foreground or
+a global note that stays displayed even if the application launching the note
+is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes). </p><p>To use an error
+note with the default icon, text, sound, and duration, create an instance
+of the note <xref href="GUID-2261A396-8AF8-3914-B78A-993DDE0B58A8.dita"><apiname>CAknErrorNote</apiname></xref> class.</p><p>To create a global
+error note, use the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref> class: <ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul></p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> class:<ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul> </p></section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita"><linktext>Warning note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EA107811-240C-5F95-922B-7C042FA00A87.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,119 +1,119 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-EA107811-240C-5F95-922B-7C042FA00A87" xml:lang="en"><title>Reading
-a String Resource </title><abstract><p>The simplest use of a resource file involves reading string resources
-and interpreting the source data. </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context><p>Resources are defined in terms of structs which are accessed and
-read by the <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref> class, and interpreted by the <xref href="GUID-B375D32E-1F91-30FA-8605-A2E163111F9A.dita"><apiname>TResourceReader</apiname></xref>.
-An application may also use resources from multiple files simultaneously.
-See <xref href="GUID-98903A01-CD04-5345-84AE-2E440CE06E11.dita">Resource File examples</xref> for
-more information. </p><p>Consider a sample resource file where a struct of
-STRING is defined having a single member of type <codeph>LTEXT</codeph>: </p><codeblock xml:space="preserve">// define structures
-STRUCT STRING
-    {
-    LTEXT text;
-    }
-// define resources
-RESOURCE STRING hello
-    {
-    text=Bonjour tout le monde!;
-    }
-</codeblock> </context>
-<steps id="GUID-F147E8CF-65D1-5025-BA85-E0D171DBEFFD">
-<step id="GUID-0BAEB54B-5A6E-59F6-B14E-FAF0A3D15F27"><cmd/>
-<info>Compile the resource file using <xref href="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-11-1-1-5-1-4-1.dita">the
-resource compiler</xref> (rcomp) to generate an <filepath>.rsc</filepath> file
-and an <filepath>.rsg</filepath> file. </info>
-<substeps id="GUID-0B421705-A5CD-5FF7-BB95-C17559811267">
-<substep id="GUID-673E32C9-665C-5388-AE17-780A149F8837"><cmd/>
-<info> <filepath>.rsc</filepath> file contains the resource data; this is
-the resource file that must be referred to at run-time by the <codeph>RResourceFile</codeph> class
-in the C++ code. </info>
-</substep>
-<substep id="GUID-AEE254EB-0716-5478-B1DF-F8ED8E4FF8E1"><cmd/>
-<info> <filepath>.rsg</filepath> file is a <keyword>generated            
-         header</keyword> file that contains <codeph>#define</codeph> statements
-for each resource defined in the source file. In the resource file generated
-here, the only resource is called <codeph>hello</codeph> and the generated
-header file contains: </info>
-<stepxmp><codeblock id="GUID-385BB8E3-FF77-5A95-8F65-043E72412959" xml:space="preserve">#define HELLO 1</codeblock> </stepxmp>
-<info>Note that the name in the generated header file is converted to upper
-case. </info>
-</substep>
-</substeps>
-</step>
-<step id="GUID-3367B1DD-C2E9-5780-A77A-7F574D2EC541"><cmd/>
-<info> <codeph>#include</codeph> the <filepath>.rsg</filepath> file in the
-file containing the C++ code, to access the resource IDs generated by the
-resource compiler. For example, for a project refered as <codeph>ReadText</codeph>,
-this might be: </info>
-<stepxmp><codeblock id="GUID-AC615F67-6331-500C-B91E-ADD6A94464FB" xml:space="preserve">#include ReadText.rsg</codeblock> </stepxmp>
-</step>
-<step id="GUID-ACC66DA2-4AC8-536B-9912-7CE632C0A8DF"><cmd/>
-<info>Initialize the <codeph>RResourceFile</codeph> object in the C++ program,
-specifying the name of the resource file: </info>
-<stepxmp><codeblock id="GUID-5CF79231-E42C-51DF-9002-FD1ED8AB21C1" xml:space="preserve">    
-RResourceFile resourceFile;
-resourceFile.OpenL( fsSession,_L( Z:\\system\\data\\ReadText.rsc ) );</codeblock> </stepxmp>
-<info>Note: To access the resource file contents, a session with the file
-server must be started using an instance of <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class. </info>
-</step>
-<step id="GUID-CA53A8D1-E13E-50A8-96A7-B6B397B82DB3"><cmd/>
-<info>Use one of the three functions (<xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-9B16E6B8-84A4-37DF-BBB4-EC8B04FDB14C"><apiname>RResourceFile::AllocReadLC()</apiname></xref>, <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-8CEE29E0-78F3-3DD6-B068-85C8E0403884"><apiname>RResourceFile::AllocReadL()</apiname></xref> or <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-DF6DFFD5-E923-3C4E-87F0-BC4EE7C8B586"><apiname>RResourceFile::ReadL()</apiname></xref> to read a resource as shown in the following
-code fragment: </info>
-<stepxmp><codeblock id="GUID-92AC4270-4A4D-52F1-B5C4-CFF6FBD19700" xml:space="preserve">HBufC8* dataBuffer = resourceFile.AllocReadLC( HELLO );</codeblock> </stepxmp>
-</step>
-<step id="GUID-77F9A976-6E09-5158-B515-256F4B878CDB"><cmd/>
-<info>Interpret the resource data using a <codeph>TResourceReader</codeph> object.
-This provides access to the text string through a pointer descriptor as shown
-in the following code fragment: </info>
-<stepxmp><codeblock id="GUID-CB3BE44D-72F5-5E15-8D1D-52F513D9D980" xml:space="preserve">
-TResourceReader theReader;
-...
-theReader.SetBuffer( datafBuffer );
-TPtrC textdata = reader.ReadTPtrC();</codeblock> </stepxmp>
-</step>
-</steps>
-<result><p>In this example, once the resource data is no longer needed, the
-heap descriptor, dataBuffer, can be removed from the cleanup stack and destroyed
-as shown in the code fragment: </p><codeblock xml:space="preserve">CleanupStack::PopAndDestroy();</codeblock><p>When
-all operations on the resource file are complete, the resource file can be
-closed using the RResourceFile::close() function as:  </p><codeblock xml:space="preserve">resourceFile.Close();</codeblock></result>
-<example><title>Example</title> <p>Consider a resource constructed
-from the following definition. </p> <codeblock id="GUID-538D959C-A85A-5675-9B14-ED81AB860F47" xml:space="preserve">RESOURCE ARRAY anarray
-{
-items=
-    {
-    LBUF { txt="Esc"; },
-    LBUF { txt="Enter"; },
-    LBUF { txt="Tab"; },
-    LBUF { txt="Del"; },
-    LBUF { txt="Space"; }
-    };
-}</codeblock> <p>A <codeph>TPtrC</codeph> representing the second item can
-be constructed using the <codeph>ReadTPtrC()</codeph> function. The example
-simply takes the length of the text <codeph>Enter</codeph>: </p> <codeblock id="GUID-9817910D-0661-513D-BB3A-9557D70688AD" xml:space="preserve">// open the resource file
-...
-HBufC8* res = resourceFile.AllocReadLC( ANARRAY );
-TResourceReader theReader;
-...
-TInt len;
-len = ( theReader.ReadTPtrC( 1,res ) ).Length(); // len == 5
-...</codeblock> </example>
-</taskbody><related-links>
-<link href="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita"><linktext>Resource
-files</linktext></link>
-<link href="GUID-07C031C2-7FFC-5B0E-9691-E6E678E65C4B.dita"><linktext>Resource
-file format</linktext></link>
-<link href="GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita"><linktext>Resource
-compilation</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-EA107811-240C-5F95-922B-7C042FA00A87" xml:lang="en"><title>Reading
+a String Resource </title><abstract><p>The simplest use of a resource file involves reading string resources
+and interpreting the source data. </p></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context><p>Resources are defined in terms of structs which are accessed and
+read by the <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita"><apiname>RResourceFile</apiname></xref> class, and interpreted by the <xref href="GUID-B375D32E-1F91-30FA-8605-A2E163111F9A.dita"><apiname>TResourceReader</apiname></xref>.
+An application may also use resources from multiple files simultaneously.
+See <xref href="GUID-98903A01-CD04-5345-84AE-2E440CE06E11.dita">Resource File examples</xref> for
+more information. </p><p>Consider a sample resource file where a struct of
+STRING is defined having a single member of type <codeph>LTEXT</codeph>: </p><codeblock xml:space="preserve">// define structures
+STRUCT STRING
+    {
+    LTEXT text;
+    }
+// define resources
+RESOURCE STRING hello
+    {
+    text=Bonjour tout le monde!;
+    }
+</codeblock> </context>
+<steps id="GUID-F147E8CF-65D1-5025-BA85-E0D171DBEFFD">
+<step id="GUID-0BAEB54B-5A6E-59F6-B14E-FAF0A3D15F27"><cmd/>
+<info>Compile the resource file using <xref href="GUID-9C57F0C6-E2E3-58A2-907D-924A7E22EA97-GENID-1-13-1-1-5-1-4-1.dita">the
+resource compiler</xref> (rcomp) to generate an <filepath>.rsc</filepath> file
+and an <filepath>.rsg</filepath> file. </info>
+<substeps id="GUID-0B421705-A5CD-5FF7-BB95-C17559811267">
+<substep id="GUID-673E32C9-665C-5388-AE17-780A149F8837"><cmd/>
+<info> <filepath>.rsc</filepath> file contains the resource data; this is
+the resource file that must be referred to at run-time by the <codeph>RResourceFile</codeph> class
+in the C++ code. </info>
+</substep>
+<substep id="GUID-AEE254EB-0716-5478-B1DF-F8ED8E4FF8E1"><cmd/>
+<info> <filepath>.rsg</filepath> file is a <keyword>generated            
+         header</keyword> file that contains <codeph>#define</codeph> statements
+for each resource defined in the source file. In the resource file generated
+here, the only resource is called <codeph>hello</codeph> and the generated
+header file contains: </info>
+<stepxmp><codeblock id="GUID-385BB8E3-FF77-5A95-8F65-043E72412959" xml:space="preserve">#define HELLO 1</codeblock> </stepxmp>
+<info>Note that the name in the generated header file is converted to upper
+case. </info>
+</substep>
+</substeps>
+</step>
+<step id="GUID-3367B1DD-C2E9-5780-A77A-7F574D2EC541"><cmd/>
+<info> <codeph>#include</codeph> the <filepath>.rsg</filepath> file in the
+file containing the C++ code, to access the resource IDs generated by the
+resource compiler. For example, for a project refered as <codeph>ReadText</codeph>,
+this might be: </info>
+<stepxmp><codeblock id="GUID-AC615F67-6331-500C-B91E-ADD6A94464FB" xml:space="preserve">#include ReadText.rsg</codeblock> </stepxmp>
+</step>
+<step id="GUID-ACC66DA2-4AC8-536B-9912-7CE632C0A8DF"><cmd/>
+<info>Initialize the <codeph>RResourceFile</codeph> object in the C++ program,
+specifying the name of the resource file: </info>
+<stepxmp><codeblock id="GUID-5CF79231-E42C-51DF-9002-FD1ED8AB21C1" xml:space="preserve">    
+RResourceFile resourceFile;
+resourceFile.OpenL( fsSession,_L( Z:\\system\\data\\ReadText.rsc ) );</codeblock> </stepxmp>
+<info>Note: To access the resource file contents, a session with the file
+server must be started using an instance of <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita"><apiname>RFs</apiname></xref> class. </info>
+</step>
+<step id="GUID-CA53A8D1-E13E-50A8-96A7-B6B397B82DB3"><cmd/>
+<info>Use one of the three functions (<xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-9B16E6B8-84A4-37DF-BBB4-EC8B04FDB14C"><apiname>RResourceFile::AllocReadLC()</apiname></xref>, <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-8CEE29E0-78F3-3DD6-B068-85C8E0403884"><apiname>RResourceFile::AllocReadL()</apiname></xref> or <xref href="GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA.dita#GUID-AA6DEF11-6F23-3523-A9F7-F15DF918E1BA/GUID-DF6DFFD5-E923-3C4E-87F0-BC4EE7C8B586"><apiname>RResourceFile::ReadL()</apiname></xref> to read a resource as shown in the following
+code fragment: </info>
+<stepxmp><codeblock id="GUID-92AC4270-4A4D-52F1-B5C4-CFF6FBD19700" xml:space="preserve">HBufC8* dataBuffer = resourceFile.AllocReadLC( HELLO );</codeblock> </stepxmp>
+</step>
+<step id="GUID-77F9A976-6E09-5158-B515-256F4B878CDB"><cmd/>
+<info>Interpret the resource data using a <codeph>TResourceReader</codeph> object.
+This provides access to the text string through a pointer descriptor as shown
+in the following code fragment: </info>
+<stepxmp><codeblock id="GUID-CB3BE44D-72F5-5E15-8D1D-52F513D9D980" xml:space="preserve">
+TResourceReader theReader;
+...
+theReader.SetBuffer( datafBuffer );
+TPtrC textdata = reader.ReadTPtrC();</codeblock> </stepxmp>
+</step>
+</steps>
+<result><p>In this example, once the resource data is no longer needed, the
+heap descriptor, dataBuffer, can be removed from the cleanup stack and destroyed
+as shown in the code fragment: </p><codeblock xml:space="preserve">CleanupStack::PopAndDestroy();</codeblock><p>When
+all operations on the resource file are complete, the resource file can be
+closed using the RResourceFile::close() function as:  </p><codeblock xml:space="preserve">resourceFile.Close();</codeblock></result>
+<example><title>Example</title> <p>Consider a resource constructed
+from the following definition. </p> <codeblock id="GUID-538D959C-A85A-5675-9B14-ED81AB860F47" xml:space="preserve">RESOURCE ARRAY anarray
+{
+items=
+    {
+    LBUF { txt="Esc"; },
+    LBUF { txt="Enter"; },
+    LBUF { txt="Tab"; },
+    LBUF { txt="Del"; },
+    LBUF { txt="Space"; }
+    };
+}</codeblock> <p>A <codeph>TPtrC</codeph> representing the second item can
+be constructed using the <codeph>ReadTPtrC()</codeph> function. The example
+simply takes the length of the text <codeph>Enter</codeph>: </p> <codeblock id="GUID-9817910D-0661-513D-BB3A-9557D70688AD" xml:space="preserve">// open the resource file
+...
+HBufC8* res = resourceFile.AllocReadLC( ANARRAY );
+TResourceReader theReader;
+...
+TInt len;
+len = ( theReader.ReadTPtrC( 1,res ) ).Length(); // len == 5
+...</codeblock> </example>
+</taskbody><related-links>
+<link href="GUID-3AF1F492-3D7D-5F8C-B1AE-16FBD8224775.dita"><linktext>Resource
+files</linktext></link>
+<link href="GUID-07C031C2-7FFC-5B0E-9691-E6E678E65C4B.dita"><linktext>Resource
+file format</linktext></link>
+<link href="GUID-3527AAEE-210F-524B-A655-A65F1CE86C80.dita"><linktext>Resource
+compilation</linktext></link>
 </related-links></task>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,56 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E" xml:lang="en"><title>Platform
-security architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The purpose of the Symbian platform security architecture is to enable
-users to use their mobile devices in an easy and trusted manner. For more
-information, see <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/guide/platsecsdk/index.html" format="application/java-archive">platform security</xref>.</p>
-<p>This section introduces some central platform security concepts. These
-include the following:</p>
-<ul>
-<li><p><xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">Capabilities</xref></p>
-</li>
-<li><p><xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita">Application
-signing</xref></p></li>
-<li><p><xref href="GUID-ACDED56F-38FE-491D-B019-BE2C53A75D28.dita">Data
-caging</xref></p></li>
-</ul>
-<p>For more details on the above concepts, see the <xref format="" href="https://www.symbiansigned.com/" scope="external">Symbian
-Signed</xref> website.</p>
-<section id="GUID-49FCB653-EE07-4D7D-A1B9-AAAD77837147"><title>Additional information
-on security</title>
-<ul>
-<li><p>For more information on how to test and certify your applications
-and how to access <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref>,
-see <xref href="http://developer.symbian.com/ssguide" scope="external">The Complete Guide
-to Symbian Signed</xref>.</p></li>
-<li><p>For more information about security in Symbian C++ application
-development, see the <xref href="http://wiki.forum.nokia.com/index.php/Symbian_C%2B%2B_Security_Articles" scope="external">Security
-Articles</xref> in the Forum Nokia Developer Community Wiki.</p></li>
-<li><p>For more advanced information and practical examples on how
-to use various security options provided by the platform, see the following
-Forum Nokia resources:<draft-comment time="2009-04-20T13:01">All these examples
-are listed as compatible with the 3rd Edition on Forum Nokia, and therefore
-it is unclear whether they apply to 5th Edition.</draft-comment></p>
-<ul>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/1bd6bf54-7886-43a5-8335-821bcb603049/S60_Platform_System_Information_Example_v2_0_en.zip.html" scope="external">System Information Example</xref></p></li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/53a369e8-14c7-4f52-9731-577db4e0d303/S60_Platform_ECom_Plug-in_Architecture_v2_0_en.pdf.html" scope="external">ECom Plug-in Architecture</xref> and <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/75ae7bde-7401-490f-87ec-920e44f518c2/S60_Platform_ECom_Plug-in_Examples_v2_0_en.zip.html" scope="external">ECom Plug-In Examples</xref></p></li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/b740b0e2-1201-4471-bbd4-1d9c77bcfa97/S60_Platform_HTTP_Client_API_Example_v2_0_en.zip.html" scope="external">HTTP Client API Example</xref></p></li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/07416c2f-ef81-4d70-a085-e38e758dc308/Symbian_OS_End-to-End_HTTP_API_Example_v1_3_en.zip.html" scope="external">End-to-End HTTP API Example</xref></p></li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/4f781f57-a5ae-4508-8afb-8cdd296b87f5/Symbian_OS_End-to-End_Sockets_API_Example_v1_3_en.zip.html" scope="external">End-to-End Sockets API Example</xref></p></li>
-<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/dc3f99aa-10fa-4855-b3b1-dd507136b6fa/S60_Platform_Access_Points_Example_with_Roaming_Support_v1_0_en.zip.html" scope="external">Access Points Example with Roaming Support</xref></p>
-</li>
-</ul>
-</li>
-</ul>
-</section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EA20E614-C911-4EE9-92B5-C8F9B657D59E" xml:lang="en"><title>Platform
+security architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The purpose of the Symbian platform security architecture is to enable
+users to use their mobile devices in an easy and trusted manner.</p>
+<p>This section introduces some central platform security concepts. These
+include the following:</p>
+<ul>
+<li><p><xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">Capabilities</xref></p>
+</li>
+<li><p><xref href="GUID-B9414AE8-820E-4CA5-A9C4-29560CD6F2EF.dita">Application
+signing</xref></p></li>
+<li><p><xref href="GUID-ACDED56F-38FE-491D-B019-BE2C53A75D28.dita">Data
+caging</xref></p></li>
+</ul>
+<p>For more details on the above concepts, see the <xref format="" href="https://www.symbiansigned.com/" scope="external">Symbian
+Signed</xref> website.</p>
+<section id="GUID-49FCB653-EE07-4D7D-A1B9-AAAD77837147"><title>Additional information
+on security</title>
+<ul>
+<li><p>For more information on how to test and certify your applications
+and how to access <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capabilities</xref>,
+see <xref href="http://developer.symbian.org/wiki/index.php/Complete_Guide_To_Symbian_Signed" scope="external">The
+Complete Guide to Symbian Signed</xref>.</p></li>
+<li><p>For more information about security in Symbian C++ application
+development, see the <xref href="http://wiki.forum.nokia.com/index.php/Symbian_C%2B%2B_Security_Articles" scope="external">Security
+Articles</xref> in the Forum Nokia Developer Community Wiki.</p></li>
+<li><p>For more advanced information and practical examples on how
+to use various security options provided by the platform, see the following
+Forum Nokia resources:<draft-comment time="2009-04-20T13:01">All these examples
+are listed as compatible with the 3rd Edition on Forum Nokia, and therefore
+it is unclear whether they apply to 5th Edition.</draft-comment></p>
+<ul>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/1bd6bf54-7886-43a5-8335-821bcb603049/S60_Platform_System_Information_Example_v2_0_en.zip.html" scope="external">System Information Example</xref></p></li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/53a369e8-14c7-4f52-9731-577db4e0d303/S60_Platform_ECom_Plug-in_Architecture_v2_0_en.pdf.html" scope="external">ECom Plug-in Architecture</xref> and <xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/75ae7bde-7401-490f-87ec-920e44f518c2/S60_Platform_ECom_Plug-in_Examples_v2_0_en.zip.html" scope="external">ECom Plug-In Examples</xref></p></li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/b740b0e2-1201-4471-bbd4-1d9c77bcfa97/S60_Platform_HTTP_Client_API_Example_v2_0_en.zip.html" scope="external">HTTP Client API Example</xref></p></li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/07416c2f-ef81-4d70-a085-e38e758dc308/Symbian_OS_End-to-End_HTTP_API_Example_v1_3_en.zip.html" scope="external">End-to-End HTTP API Example</xref></p></li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/4f781f57-a5ae-4508-8afb-8cdd296b87f5/Symbian_OS_End-to-End_Sockets_API_Example_v1_3_en.zip.html" scope="external">End-to-End Sockets API Example</xref></p></li>
+<li><p><xref href="http://www.forum.nokia.com/info/sw.nokia.com/id/dc3f99aa-10fa-4855-b3b1-dd507136b6fa/S60_Platform_Access_Points_Example_with_Roaming_Support_v1_0_en.zip.html" scope="external">Access Points Example with Roaming Support</xref></p></li>
+</ul>
+</li>
+</ul>
+</section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e229007_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EA2AAE86-0BD3-52C9-BD13-75E9F04DE77F_d0e232744_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,75 +1,75 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47" xml:lang="en"><title>Descriptor
-basics</title><shortdesc>This document describes buffer descriptors, heap descriptors, pointer
-descriptors and resizable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Descriptors provide a safe, consistent and economical mechanism for accessing
-and manipulating strings and general binary data. </p>
-<p>A descriptor represents data which can reside in any memory location, either
-ROM or RAM. A descriptor object maintains pointer and length information to
-describe the data. All access to the data is made through the descriptor object. </p>
-<p>The area occupied by data represented by a given descriptor is considered
-to be non-expandable, even though the length of data represented can shrink
-or expand to fill that area. </p>
-<p>The set of operations which can be performed on data represented by a descriptor
-is divided into those that can modify the data and those which provide access
-but do not modify the data. This split is reflected in the structure of the
-descriptor classes. </p>
-<p>Operations on data represented by a descriptor are safe. Accidental or
-deliberate attempts to access memory outside the data area represented by
-a descriptor are caught. An illegal access is treated as bad programming rather
-than an environment or resource problem and raises an exception known as a
-panic. </p>
-<p>Descriptors make no distinction between the type of data represented; both
-strings and binary data are treated in the same way. Although some operations
-on a descriptor are intended to operate on a string, they also work on binary
-data. This unifies the handling of both strings and binary data and increases
-efficiency by allowing code to be shared. This also means that data can consist
-of a mix of string data and binary data. </p>
-<p>The concrete descriptors that programs create come in four types: </p>
-<ul>
-<li id="GUID-FFBB1AD9-1B31-5B37-8DA5-2B441385BE06"><p>Buffer descriptors -
-where the data is part of the descriptor object and the descriptor object
-lives on the program stack. </p> </li>
-<li id="GUID-2E7EF74C-0079-597F-B15A-4351D9682BA6"><p>Heap descriptors - where
-the data is part of the descriptor object and the descriptor object lives
-on the heap. </p> </li>
-<li id="GUID-DFB5D25C-FBF9-54F6-B0A4-51E58602935C"><p>Pointer descriptors
-- where the descriptor object is separate from the data it represents. </p> </li>
-<li id="GUID-AF5F3732-5E41-5E1A-AA88-C2A900C7F004"><p>Resizable buffer descriptors
-- where the descriptor is separate from the data it represents, and the data
-resides in a buffer allocated on the heap. </p> </li>
-</ul>
-<fig id="GUID-3FE00A17-DC27-5AB3-AAC8-05B4259C0834">
-<title>           Buffer descriptor         </title>
-<image href="GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e223822_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-646F7A87-3D87-5856-886D-F3844D5D046C">
-<title>           Heap descriptor         </title>
-<image href="GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e223830_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-6A2463A0-CF76-5746-9BF3-2FC24F714A73">
-<title>           Pointer descriptor         </title>
-<image href="GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e223838_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-5EE9C2A2-E654-5736-A72B-4F7A705E12DE">
-<title>           Resizable buffer descriptor         </title>
-<image href="GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e223846_href.png" placement="inline"/>
-</fig>
-<p>Although the four types seem to be different, the underlying class structure
-makes such differences transparent allowing them to be treated in the same
-way. </p>
-<p>Descriptor objects generally, behave as built-in types, as they can be
-safely created on the program stack and can also be safely orphaned. The heap
-descriptor is an exception to this rule. </p>
-<p>The design also avoids the memory overhead associated with virtual functions. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EA3419BD-D757-5AC3-AE6F-DF21F794AE47" xml:lang="en"><title>Descriptor
+basics</title><shortdesc>This document describes buffer descriptors, heap descriptors, pointer
+descriptors and resizable buffer descriptors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Descriptors provide a safe, consistent and economical mechanism for accessing
+and manipulating strings and general binary data. </p>
+<p>A descriptor represents data which can reside in any memory location, either
+ROM or RAM. A descriptor object maintains pointer and length information to
+describe the data. All access to the data is made through the descriptor object. </p>
+<p>The area occupied by data represented by a given descriptor is considered
+to be non-expandable, even though the length of data represented can shrink
+or expand to fill that area. </p>
+<p>The set of operations which can be performed on data represented by a descriptor
+is divided into those that can modify the data and those which provide access
+but do not modify the data. This split is reflected in the structure of the
+descriptor classes. </p>
+<p>Operations on data represented by a descriptor are safe. Accidental or
+deliberate attempts to access memory outside the data area represented by
+a descriptor are caught. An illegal access is treated as bad programming rather
+than an environment or resource problem and raises an exception known as a
+panic. </p>
+<p>Descriptors make no distinction between the type of data represented; both
+strings and binary data are treated in the same way. Although some operations
+on a descriptor are intended to operate on a string, they also work on binary
+data. This unifies the handling of both strings and binary data and increases
+efficiency by allowing code to be shared. This also means that data can consist
+of a mix of string data and binary data. </p>
+<p>The concrete descriptors that programs create come in four types: </p>
+<ul>
+<li id="GUID-FFBB1AD9-1B31-5B37-8DA5-2B441385BE06"><p>Buffer descriptors -
+where the data is part of the descriptor object and the descriptor object
+lives on the program stack. </p> </li>
+<li id="GUID-2E7EF74C-0079-597F-B15A-4351D9682BA6"><p>Heap descriptors - where
+the data is part of the descriptor object and the descriptor object lives
+on the heap. </p> </li>
+<li id="GUID-DFB5D25C-FBF9-54F6-B0A4-51E58602935C"><p>Pointer descriptors
+- where the descriptor object is separate from the data it represents. </p> </li>
+<li id="GUID-AF5F3732-5E41-5E1A-AA88-C2A900C7F004"><p>Resizable buffer descriptors
+- where the descriptor is separate from the data it represents, and the data
+resides in a buffer allocated on the heap. </p> </li>
+</ul>
+<fig id="GUID-3FE00A17-DC27-5AB3-AAC8-05B4259C0834">
+<title>           Buffer descriptor         </title>
+<image href="GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e220085_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-646F7A87-3D87-5856-886D-F3844D5D046C">
+<title>           Heap descriptor         </title>
+<image href="GUID-084C5F8F-3310-5BDE-BB4B-110361D45AB0_d0e220093_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-6A2463A0-CF76-5746-9BF3-2FC24F714A73">
+<title>           Pointer descriptor         </title>
+<image href="GUID-29E54156-DF94-5B34-ACAB-1417265C950D_d0e220101_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-5EE9C2A2-E654-5736-A72B-4F7A705E12DE">
+<title>           Resizable buffer descriptor         </title>
+<image href="GUID-245FC4CA-EB57-5745-AD2E-79E33D43D912_d0e220109_href.png" placement="inline"/>
+</fig>
+<p>Although the four types seem to be different, the underlying class structure
+makes such differences transparent allowing them to be treated in the same
+way. </p>
+<p>Descriptor objects generally, behave as built-in types, as they can be
+safely created on the program stack and can also be safely orphaned. The heap
+descriptor is an exception to this rule. </p>
+<p>The design also avoids the memory overhead associated with virtual functions. </p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390209_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EA5E9A07-587C-5E64-A157-1077AD9E56ED_d0e390371_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,262 +1,262 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7" xml:lang="en"><title>Bluetooth
-Comms Profiles Collection Overview</title><shortdesc>Provides implementations of some Bluetooth profiles and support
-for others. (Some Bluetooth profiles are omitted.) </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-6B099746-A936-5009-81F0-D3282ED6C48A"><title>Purpose</title> <p id="GUID-D7338D15-E269-54A5-B4E1-D5F0AACA9F32">  This document introduces
-Bluetooth profiles and indicates the current status of those profiles within
-the Symbian platform Bluetooth subsystem. A Bluetooth profile encompasses
-a defined set of functionality for an operation or task, identifies the Bluetooth
-stack features required to perform the operation or tasks and describes how
-those features are used. </p> <p>By specifying these details Bluetooth profiles
-make a significant contribution to realising the interoperability goals of
-the Bluetooth consortium. If all device manufactures implement the profiles
-according to the standards users can confidently purchase Bluetooth enabled
-devices knowing that they will all work. </p> <p><b>In this overview </b> </p> <p>You will learn about the status of the Bluetooth
-profiles, those that are <i>implemented</i>, those that are <i>supported</i> and
-those that are <i>omitted</i> from the current Symbian platform Bluetooth
-subsystem. Documentation will be provided for each of the supported profiles
-and this page will be updated with links as they become available. </p> <p>The
-standards define terminology specific to individual profiles. Please refer
-to the latest Bluetooth standard at <xref href="http://www.bluetooth.com" scope="external">www.bluetooth.com</xref> for all official definitions. </p> </section>
-<section id="GUID-3D73ECD8-AA0F-5E1A-B963-32921B31B6E8"><title>Architecture</title> <fig id="GUID-CEFC70E7-D449-52CF-99C5-869BD3B4D504">
-<image href="GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396269_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-9957D1E0-F639-5CEB-BD61-52B81BBACA88"><title>Description</title> <p>There
-are two kinds of profiles provided for by Symbian platform: implemented and
-supported. Implemented profiles can be used directly from the existing components.
-When a profile is supported the licensee will need to provide its own APIs
-to make the functionality of that profile available to application developers. </p> <fig id="GUID-9B0D507E-B9E1-5E3F-8330-15564BD89681">
-<title>              Figure 1. Profile dependencies            </title>
-<desc><p>Figure 1 above shows the dependencies of profiles. The shaded profiles,
-discussed in the next section, are implemented by the Symbian platform Bluetooth
-subsystem. </p> </desc>
-<image href="GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396290_href.png" placement="inline"/>
-</fig> <p><b>Implemented
-Bluetooth profiles</b> </p> <p>The following profiles are implemented by Symbian
-platform Bluetooth: </p> <ul>
-<li id="GUID-12BCA8FE-B874-56AE-9F09-00D013BB9E25"><p>Generic Access Profile
-(<b>GAP</b>) </p> </li>
-<li id="GUID-3151F147-4A6B-5C83-B8D5-A70FDB58DEFC"><p>Serial Port Profile
-(<b>SPP</b>) </p> </li>
-<li id="GUID-ED98C49B-BBEB-536C-A806-BEA77DEDD497"><p>Generic Object Exchange
-Profile (<b>GOEP</b>) </p> </li>
-<li id="GUID-94EA76BC-C843-5558-9E16-A5931B937372"><p>Personal Area Networking
-(<b>PAN</b>) Profile </p> </li>
-<li id="GUID-7C0BA324-CAC9-5595-9523-1CEF3A1D2A4D"><p>Audio Video Remote Control
-Profile (<b>AVRCP</b>) </p> </li>
-<li id="GUID-38F8CCD0-93F8-571D-AD52-762FDEC2A4E9"><p>Generic Audio Video
-Distribution Profile (<b>GAVDP</b>) </p> </li>
-<li id="GUID-E7D4DD39-6EE4-5A71-AED5-9D61F7B8BC3F"><p>Advanced Audio Distribution
-Profile (<b>A2DP</b>) </p> </li>
-</ul> <p>The profiles are introduced here: </p> <p id="GUID-BCA99FAB-1825-56A0-9D06-926B30C0FFBA"><b>GAP</b> </p> <p>The Generic
-Access Profile is the foundation Bluetooth profile. It enables two devices
-to discover and connect to each other in a piconet. GAP defines the mode of
-operation for participating devices, handles role assignment, and controls
-the connection and link functionality at protocol level. </p> <p>The Generic
-Access profile, as the basic piconet enabler, uses features of the RFCOMM,
-L2CAP, Link Manager and Link Controller layers of the <xref href="GUID-66B87EE1-00E8-592F-8FBA-5DDDC257F758.dita#GUID-66B87EE1-00E8-592F-8FBA-5DDDC257F758/GUID-EBA301E1-0034-587C-9355-71DB7F762A6B">Bluetooth stack</xref>. As an application developer you do not need to concern
-yourself with the details of the protocols as this is handled internally.
-The APIs will handle all of the connection, linking and role negotiation for
-you. Note however that there are no explicit GAP APIs. The GAP functionality
-is implicit in other APIs within Symbian platform. </p> <p id="GUID-74CDD0F3-3901-5F23-8FE8-B23FEB6DB243"><b> SPP </b> </p> <p>The Serial
-Port Profile gives Bluetooth devices RS-232 emulation capabilities, allowing
-applications that were written with cable connection in mind to make the transition
-to Bluetooth. The application establishes a link over the Bluetooth connection
-without being aware of Bluetooth. The SPP simply emulates a typical RS-232
-serial cable communications session. The SPP enables multiplexing and provides
-support for two device types: communication endpoint devices and intermediate
-devices. SPP operates on the RFCOMM and L2CAP layers of the Bluetooth stack. </p> <p>The
-SPP is an integral part of the following profiles: </p> <table id="GUID-0C88077B-7C0A-5304-801C-2D76907E5BAF">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Bluetooth Profile</entry>
-<entry>Supported</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Fax Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>Dial-up Networking Profile(DUNP) </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>LAN Access Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>Headset Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>Hands Free Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>Generic Object Exchange Profile </p> </entry>
-<entry><p>Implemented </p> </entry>
-</row>
-<row>
-<entry><p>Phonebook Access Profile </p> </entry>
-<entry><p>No </p> </entry>
-</row>
-<row>
-<entry><p>SIM Access Profile </p> </entry>
-<entry><p>No </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>Links to examples, guides, and tutorials that use the SPP will
-be provided here as they become available. </p> <p id="GUID-C7894668-B9C0-5C31-BD24-8A3753DF1F6C"><b> GOEP </b> </p> <p>The Generic
-Object Exchange Profile provides the functionality needed to use the Object
-Exchange (OBEX) Protocol over Bluetooth. GOEP is used by the following profiles: </p> <table id="GUID-A1A29057-A7A4-5624-909F-1ED78CF362D3">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>Bluetooth Profile</entry>
-<entry>Supported</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Object Push Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>File Transfer Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-<row>
-<entry><p>Synchronisation Profile </p> </entry>
-<entry><p>Yes </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>GOEP makes a significant contribution to the overall offering
-by providing client and server roles to the devices of the Bluetooth Piconet.
-Applications using GOEP can push and pull objects from other devices in the
-piconet. </p> <p id="GUID-85C0DABF-1EC0-5B25-9E36-72C42E5D4A97"><b> PAN Profile </b> </p> <p>The
-Personal Area Networking profile provides a simplification to the LAN Access
-and Dial-up Networking profiles (both now deprecated), by reducing the number
-of layers in a network connection. PAN enhances networking over Bluetooth
-by providing new functionality such as the Group Ad-hoc Networking role, discussed
-below. </p> <p>The PAN profile provides for three possible roles: the User
-(PANU), Group Ad-hoc Networking (GN) and Network Access Point (NAP). </p> <p>When
-a device is operating in the PANU role it can connect to a device operating
-in any of the three roles. This allows it to act as a client to one of these
-devices. When operating in the GN role the device can accept a connection
-request from a PANU device or make its own request to connect to such a device.
-PANU and GN roles can be switched but a PANU device connecting to a NAP device
-can not switch roles because NAP is not supported. </p> <p>PAN is integrated
-into the networking framework as a plug-in. See the Networking documentation
-for more information about networking with the Bluetooth PAN profile plug-in.
-Therefore applications can treat a Bluetooth PAN as any other networking technology. </p> <p id="GUID-7251B0E5-D6B1-524B-9714-6A469F8E1CB3"><b>AVRCP</b> </p> <p>The Audio
-video remote control profile implements certain aspects of the AV/C Digital
-Interface Command Set (IEEE 1394) for use over a Bluetooth connection. This
-profile defines two possible roles: controller (CT) and target (TG). The controller
-device sends commands to the target who acts on those commands. </p> <p>Role
-switching is possible. Consider a Bluetooth headset with integrated command
-functions. When the headset is acting in the CT role it can begin music playback
-or switch songs on the TG Symbian device. The Symbian device can become the
-CT to send a volume control command to the headset, making the headset the
-TG for that transaction. </p> <p>Features of the profile implemented in the
-Symbian platform Bluetooth subsystem are presented in the following table
-according to defined role. </p> <table id="GUID-6C8A5320-A06C-51A5-B431-14CFC828BAAA">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>CT</entry>
-<entry>TG</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>All Mandatory features. </p> </entry>
-<entry><p>All Mandatory features. </p> </entry>
-</row>
-<row>
-<entry><p>Sending UNIT info command. </p> </entry>
-<entry><p>Initiating connection for control. </p> </entry>
-</row>
-<row>
-<entry><p>Sending subunit info command. </p> </entry>
-<entry><p>Receiving pass through commands. </p> </entry>
-</row>
-<row>
-<entry><p>Sending pass through commands. </p> </entry>
-<entry><p>Sending all operation_ids. </p> </entry>
-</row>
-<row>
-<entry><p>Sending all operation_ids. </p> </entry>
-<entry><p>Receiving all operation_ids. </p> </entry>
-</row>
-<row>
-<entry><p>Receiving all operation_ids. </p> </entry>
-<entry><p> </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> <p>AVRCP operates over a GAP connection, communicating via the Audio
-Video Control Transport Protocol (AVCTP) on a channel in the L2CAP layer.
-Application developers will use the Remote Control Framework for creating
-apps that use the AVRCP. </p> <p id="GUID-3ABC26C2-D65A-5577-B9B2-0A613D48D49B"><b>GAVDP</b> </p> <p>The Generic
-audio video distribution profile provides the mechanism for distributing audio
-and video content over a Bluetooth connection. There are two roles defined
-for GAVDP, they are: Initiator (INT) and Acceptor (ACP). INT begins a signalling
-procedure and ACP responds. The roles are not linked to the master / slave
-relationship between devices and can switch when a new procedure is initiated. </p> <p>GAVDP
-has been implemented in the Symbian platform Bluetooth subsystem specifically
-to support the Bluetooth stereo headset usecase. The Audio Video Distribution
-Transport Protocol (AVDTP) manages the transmission of audio packets over
-an L2CAP channel. The GAVDP component of the Bluetooth subsystem provides
-an API to configure, send and receive data over the AVDTP within an ESock
-plug-in. </p> <p id="GUID-E051004B-9650-5AA9-9CDB-5C4925F71A68"><b>A2DP</b> </p> <p>The Advanced
-Audio Distribution Profile describes the protocols and procedures to stream
-high quality stereo audio over Bluetooth. </p> <p><b>Supported Bluetooth Profiles </b> </p> <p>The following list indicates
-profiles for which the Symbian platform subsystem has provided the necessary
-framework should a licensee have a need to implement them. Application developers
-should refer to the documentation for the platform(s) they are targeting to
-determine which additional profiles (if any) are available for a particular
-device. </p> <p>The Bluetooth profile implementers guide, <i>available soon</i>,
-describes how licensees can enable profiles on their devices. </p> <ul>
-<li id="GUID-20776509-543D-502E-8B22-90F1A0FED5CA"><p>Advanced Audio Distribution
-Profile </p> <p>Linked to MMF. </p> </li>
-<li id="GUID-9C1A784A-E765-5AC4-A158-B56360D5171B"><p>Video Distribution Profile </p> <p>Linked
-to MMF. </p> </li>
-<li id="GUID-DFD5DA23-040B-5ECA-A20B-E3254D3664E3"><p>File Transfer Profile </p> </li>
-<li id="GUID-9CB7D73F-6F3B-52DA-B7C2-C356CBFB8E87"><p>Synchronization Profile </p> </li>
-<li id="GUID-9D3A40EE-9068-5E5D-A373-B423E5E0AB09"><p>Fax Profile </p> </li>
-<li id="GUID-3BFFA617-27AF-53E1-96BC-A130356D9540"><p>Dial Up Networking (DUN)
-Profile </p> </li>
-<li id="GUID-6C05F7F3-715C-5610-B82F-1E758610170F"><p>Headset Profile </p> </li>
-<li id="GUID-BE0FD664-E594-598E-BA19-8840E420DB24"><p>Hands Free Profile </p> <p>Use
-the Remote Control Framework. </p> </li>
-<li id="GUID-24DBFC9A-8F62-5A8F-BADB-0982572A47B5"><p>HID Profile </p> </li>
-<li id="GUID-6BA8FC1A-1001-5DAC-AF6A-256CA6F3250A"><p>Device ID Profile </p> </li>
-<li id="GUID-9F6B9D39-56D2-5C12-8541-506077392190"><p>Basic Printing Profile </p> </li>
-<li id="GUID-9404210C-4C1F-558B-B74B-5BF0296221DE"><p>Basic Imaging Profile </p> </li>
-<li id="GUID-052835AA-41A8-5BE7-B6E5-9A064AB11A9C"><p>Service Discovery Application
-Profile </p> </li>
-<li id="GUID-32D6A3BB-B4C8-5B66-B6FC-38B3AEEF6566"><p>Unrestricted Digital
-Information Profile </p> </li>
-</ul> <p><b>Omitted
-Bluetooth profiles</b> </p> <p>The following profiles are explicitly omitted
-from the Current Symbian platform Bluetooth subsystem: </p> <ul>
-<li id="GUID-803B0A52-D5F0-5FBD-B79E-DFFD0EF98CC1"><p>Cordless Telephony Profile </p> </li>
-<li id="GUID-CAFA84DC-DBE5-522E-B060-55D9C9393800"><p>Intercom Profile </p> </li>
-<li id="GUID-48A2EAE9-80CE-5688-BE8A-396C4208CF5E"><p>SIM Access Profile </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EA8038F6-8727-5ABE-805C-9FF095293EB7" xml:lang="en"><title>Bluetooth
+Comms Profiles Collection Overview</title><shortdesc>Provides implementations of some Bluetooth profiles and support
+for others. (Some Bluetooth profiles are omitted.) </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-6B099746-A936-5009-81F0-D3282ED6C48A"><title>Purpose</title> <p id="GUID-D7338D15-E269-54A5-B4E1-D5F0AACA9F32">  This document introduces
+Bluetooth profiles and indicates the current status of those profiles within
+the Symbian platform Bluetooth subsystem. A Bluetooth profile encompasses
+a defined set of functionality for an operation or task, identifies the Bluetooth
+stack features required to perform the operation or tasks and describes how
+those features are used. </p> <p>By specifying these details Bluetooth profiles
+make a significant contribution to realising the interoperability goals of
+the Bluetooth consortium. If all device manufactures implement the profiles
+according to the standards users can confidently purchase Bluetooth enabled
+devices knowing that they will all work. </p> <p><b>In this overview </b> </p> <p>You will learn about the status of the Bluetooth
+profiles, those that are <i>implemented</i>, those that are <i>supported</i> and
+those that are <i>omitted</i> from the current Symbian platform Bluetooth
+subsystem. Documentation will be provided for each of the supported profiles
+and this page will be updated with links as they become available. </p> <p>The
+standards define terminology specific to individual profiles. Please refer
+to the latest Bluetooth standard at <xref href="http://www.bluetooth.com" scope="external">www.bluetooth.com</xref> for all official definitions. </p> </section>
+<section id="GUID-3D73ECD8-AA0F-5E1A-B963-32921B31B6E8"><title>Architecture</title> <fig id="GUID-CEFC70E7-D449-52CF-99C5-869BD3B4D504">
+<image href="GUID-13D48922-4DEF-56A6-8ADE-DD1DB280627B_d0e396107_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-9957D1E0-F639-5CEB-BD61-52B81BBACA88"><title>Description</title> <p>There
+are two kinds of profiles provided for by Symbian platform: implemented and
+supported. Implemented profiles can be used directly from the existing components.
+When a profile is supported the licensee will need to provide its own APIs
+to make the functionality of that profile available to application developers. </p> <fig id="GUID-9B0D507E-B9E1-5E3F-8330-15564BD89681">
+<title>              Figure 1. Profile dependencies            </title>
+<desc><p>Figure 1 above shows the dependencies of profiles. The shaded profiles,
+discussed in the next section, are implemented by the Symbian platform Bluetooth
+subsystem. </p> </desc>
+<image href="GUID-60B4CDBE-B863-52EA-9125-632A1FF1A059_d0e396128_href.png" placement="inline"/>
+</fig> <p><b>Implemented
+Bluetooth profiles</b> </p> <p>The following profiles are implemented by Symbian
+platform Bluetooth: </p> <ul>
+<li id="GUID-12BCA8FE-B874-56AE-9F09-00D013BB9E25"><p>Generic Access Profile
+(<b>GAP</b>) </p> </li>
+<li id="GUID-3151F147-4A6B-5C83-B8D5-A70FDB58DEFC"><p>Serial Port Profile
+(<b>SPP</b>) </p> </li>
+<li id="GUID-ED98C49B-BBEB-536C-A806-BEA77DEDD497"><p>Generic Object Exchange
+Profile (<b>GOEP</b>) </p> </li>
+<li id="GUID-94EA76BC-C843-5558-9E16-A5931B937372"><p>Personal Area Networking
+(<b>PAN</b>) Profile </p> </li>
+<li id="GUID-7C0BA324-CAC9-5595-9523-1CEF3A1D2A4D"><p>Audio Video Remote Control
+Profile (<b>AVRCP</b>) </p> </li>
+<li id="GUID-38F8CCD0-93F8-571D-AD52-762FDEC2A4E9"><p>Generic Audio Video
+Distribution Profile (<b>GAVDP</b>) </p> </li>
+<li id="GUID-E7D4DD39-6EE4-5A71-AED5-9D61F7B8BC3F"><p>Advanced Audio Distribution
+Profile (<b>A2DP</b>) </p> </li>
+</ul> <p>The profiles are introduced here: </p> <p id="GUID-BCA99FAB-1825-56A0-9D06-926B30C0FFBA"><b>GAP</b> </p> <p>The Generic
+Access Profile is the foundation Bluetooth profile. It enables two devices
+to discover and connect to each other in a piconet. GAP defines the mode of
+operation for participating devices, handles role assignment, and controls
+the connection and link functionality at protocol level. </p> <p>The Generic
+Access profile, as the basic piconet enabler, uses features of the RFCOMM,
+L2CAP, Link Manager and Link Controller layers of the <xref href="GUID-66B87EE1-00E8-592F-8FBA-5DDDC257F758.dita#GUID-66B87EE1-00E8-592F-8FBA-5DDDC257F758/GUID-EBA301E1-0034-587C-9355-71DB7F762A6B">Bluetooth stack</xref>. As an application developer you do not need to concern
+yourself with the details of the protocols as this is handled internally.
+The APIs will handle all of the connection, linking and role negotiation for
+you. Note however that there are no explicit GAP APIs. The GAP functionality
+is implicit in other APIs within Symbian platform. </p> <p id="GUID-74CDD0F3-3901-5F23-8FE8-B23FEB6DB243"><b> SPP </b> </p> <p>The Serial
+Port Profile gives Bluetooth devices RS-232 emulation capabilities, allowing
+applications that were written with cable connection in mind to make the transition
+to Bluetooth. The application establishes a link over the Bluetooth connection
+without being aware of Bluetooth. The SPP simply emulates a typical RS-232
+serial cable communications session. The SPP enables multiplexing and provides
+support for two device types: communication endpoint devices and intermediate
+devices. SPP operates on the RFCOMM and L2CAP layers of the Bluetooth stack. </p> <p>The
+SPP is an integral part of the following profiles: </p> <table id="GUID-0C88077B-7C0A-5304-801C-2D76907E5BAF">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Bluetooth Profile</entry>
+<entry>Supported</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Fax Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>Dial-up Networking Profile(DUNP) </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>LAN Access Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>Headset Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>Hands Free Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>Generic Object Exchange Profile </p> </entry>
+<entry><p>Implemented </p> </entry>
+</row>
+<row>
+<entry><p>Phonebook Access Profile </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p>SIM Access Profile </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>Links to examples, guides, and tutorials that use the SPP will
+be provided here as they become available. </p> <p id="GUID-C7894668-B9C0-5C31-BD24-8A3753DF1F6C"><b> GOEP </b> </p> <p>The Generic
+Object Exchange Profile provides the functionality needed to use the Object
+Exchange (OBEX) Protocol over Bluetooth. GOEP is used by the following profiles: </p> <table id="GUID-A1A29057-A7A4-5624-909F-1ED78CF362D3">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>Bluetooth Profile</entry>
+<entry>Supported</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Object Push Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>File Transfer Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p>Synchronisation Profile </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>GOEP makes a significant contribution to the overall offering
+by providing client and server roles to the devices of the Bluetooth Piconet.
+Applications using GOEP can push and pull objects from other devices in the
+piconet. </p> <p id="GUID-85C0DABF-1EC0-5B25-9E36-72C42E5D4A97"><b> PAN Profile </b> </p> <p>The
+Personal Area Networking profile provides a simplification to the LAN Access
+and Dial-up Networking profiles (both now deprecated), by reducing the number
+of layers in a network connection. PAN enhances networking over Bluetooth
+by providing new functionality such as the Group Ad-hoc Networking role, discussed
+below. </p> <p>The PAN profile provides for three possible roles: the User
+(PANU), Group Ad-hoc Networking (GN) and Network Access Point (NAP). </p> <p>When
+a device is operating in the PANU role it can connect to a device operating
+in any of the three roles. This allows it to act as a client to one of these
+devices. When operating in the GN role the device can accept a connection
+request from a PANU device or make its own request to connect to such a device.
+PANU and GN roles can be switched but a PANU device connecting to a NAP device
+can not switch roles because NAP is not supported. </p> <p>PAN is integrated
+into the networking framework as a plug-in. See the Networking documentation
+for more information about networking with the Bluetooth PAN profile plug-in.
+Therefore applications can treat a Bluetooth PAN as any other networking technology. </p> <p id="GUID-7251B0E5-D6B1-524B-9714-6A469F8E1CB3"><b>AVRCP</b> </p> <p>The Audio
+video remote control profile implements certain aspects of the AV/C Digital
+Interface Command Set (IEEE 1394) for use over a Bluetooth connection. This
+profile defines two possible roles: controller (CT) and target (TG). The controller
+device sends commands to the target who acts on those commands. </p> <p>Role
+switching is possible. Consider a Bluetooth headset with integrated command
+functions. When the headset is acting in the CT role it can begin music playback
+or switch songs on the TG Symbian device. The Symbian device can become the
+CT to send a volume control command to the headset, making the headset the
+TG for that transaction. </p> <p>Features of the profile implemented in the
+Symbian platform Bluetooth subsystem are presented in the following table
+according to defined role. </p> <table id="GUID-6C8A5320-A06C-51A5-B431-14CFC828BAAA">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>CT</entry>
+<entry>TG</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>All Mandatory features. </p> </entry>
+<entry><p>All Mandatory features. </p> </entry>
+</row>
+<row>
+<entry><p>Sending UNIT info command. </p> </entry>
+<entry><p>Initiating connection for control. </p> </entry>
+</row>
+<row>
+<entry><p>Sending subunit info command. </p> </entry>
+<entry><p>Receiving pass through commands. </p> </entry>
+</row>
+<row>
+<entry><p>Sending pass through commands. </p> </entry>
+<entry><p>Sending all operation_ids. </p> </entry>
+</row>
+<row>
+<entry><p>Sending all operation_ids. </p> </entry>
+<entry><p>Receiving all operation_ids. </p> </entry>
+</row>
+<row>
+<entry><p>Receiving all operation_ids. </p> </entry>
+<entry><p> </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>AVRCP operates over a GAP connection, communicating via the Audio
+Video Control Transport Protocol (AVCTP) on a channel in the L2CAP layer.
+Application developers will use the Remote Control Framework for creating
+apps that use the AVRCP. </p> <p id="GUID-3ABC26C2-D65A-5577-B9B2-0A613D48D49B"><b>GAVDP</b> </p> <p>The Generic
+audio video distribution profile provides the mechanism for distributing audio
+and video content over a Bluetooth connection. There are two roles defined
+for GAVDP, they are: Initiator (INT) and Acceptor (ACP). INT begins a signalling
+procedure and ACP responds. The roles are not linked to the master / slave
+relationship between devices and can switch when a new procedure is initiated. </p> <p>GAVDP
+has been implemented in the Symbian platform Bluetooth subsystem specifically
+to support the Bluetooth stereo headset usecase. The Audio Video Distribution
+Transport Protocol (AVDTP) manages the transmission of audio packets over
+an L2CAP channel. The GAVDP component of the Bluetooth subsystem provides
+an API to configure, send and receive data over the AVDTP within an ESock
+plug-in. </p> <p id="GUID-E051004B-9650-5AA9-9CDB-5C4925F71A68"><b>A2DP</b> </p> <p>The Advanced
+Audio Distribution Profile describes the protocols and procedures to stream
+high quality stereo audio over Bluetooth. </p> <p><b>Supported Bluetooth Profiles </b> </p> <p>The following list indicates
+profiles for which the Symbian platform subsystem has provided the necessary
+framework should a licensee have a need to implement them. Application developers
+should refer to the documentation for the platform(s) they are targeting to
+determine which additional profiles (if any) are available for a particular
+device. </p> <p>The Bluetooth profile implementers guide, <i>available soon</i>,
+describes how licensees can enable profiles on their devices. </p> <ul>
+<li id="GUID-20776509-543D-502E-8B22-90F1A0FED5CA"><p>Advanced Audio Distribution
+Profile </p> <p>Linked to MMF. </p> </li>
+<li id="GUID-9C1A784A-E765-5AC4-A158-B56360D5171B"><p>Video Distribution Profile </p> <p>Linked
+to MMF. </p> </li>
+<li id="GUID-DFD5DA23-040B-5ECA-A20B-E3254D3664E3"><p>File Transfer Profile </p> </li>
+<li id="GUID-9CB7D73F-6F3B-52DA-B7C2-C356CBFB8E87"><p>Synchronization Profile </p> </li>
+<li id="GUID-9D3A40EE-9068-5E5D-A373-B423E5E0AB09"><p>Fax Profile </p> </li>
+<li id="GUID-3BFFA617-27AF-53E1-96BC-A130356D9540"><p>Dial Up Networking (DUN)
+Profile </p> </li>
+<li id="GUID-6C05F7F3-715C-5610-B82F-1E758610170F"><p>Headset Profile </p> </li>
+<li id="GUID-BE0FD664-E594-598E-BA19-8840E420DB24"><p>Hands Free Profile </p> <p>Use
+the Remote Control Framework. </p> </li>
+<li id="GUID-24DBFC9A-8F62-5A8F-BADB-0982572A47B5"><p>HID Profile </p> </li>
+<li id="GUID-6BA8FC1A-1001-5DAC-AF6A-256CA6F3250A"><p>Device ID Profile </p> </li>
+<li id="GUID-9F6B9D39-56D2-5C12-8541-506077392190"><p>Basic Printing Profile </p> </li>
+<li id="GUID-9404210C-4C1F-558B-B74B-5BF0296221DE"><p>Basic Imaging Profile </p> </li>
+<li id="GUID-052835AA-41A8-5BE7-B6E5-9A064AB11A9C"><p>Service Discovery Application
+Profile </p> </li>
+<li id="GUID-32D6A3BB-B4C8-5B66-B6FC-38B3AEEF6566"><p>Unrestricted Digital
+Information Profile </p> </li>
+</ul> <p><b>Omitted
+Bluetooth profiles</b> </p> <p>The following profiles are explicitly omitted
+from the Current Symbian platform Bluetooth subsystem: </p> <ul>
+<li id="GUID-803B0A52-D5F0-5FBD-B79E-DFFD0EF98CC1"><p>Cordless Telephony Profile </p> </li>
+<li id="GUID-CAFA84DC-DBE5-522E-B060-55D9C9393800"><p>Intercom Profile </p> </li>
+<li id="GUID-48A2EAE9-80CE-5688-BE8A-396C4208CF5E"><p>SIM Access Profile </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e184763_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EADC4EA6-4492-5A00-A29E-6F7747FCAAC9_d0e191359_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3-master.png has changed
Binary file Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e67688_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EAFD71DD-0EB2-402A-9511-D0F3362BDCE3_d0e72825_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,190 +1,191 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EB212C35-5416-4CA7-8091-61B45D78E220" xml:lang="en"><title>Toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The toolbar offers quick access to some of the key functions in the application
-view. All of the functions must also be found from the <uicontrol>Options</uicontrol> menu. </p>
-<fig id="GUID-8F4054B9-F6F6-4328-ACFF-459B03398FAC">
-<title>Toolbar</title>
-<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e71460_href.png" placement="inline"/>
-</fig>
-<p>A tooltip is an information pop-up containing information regarding each
-button must be shown.</p>
-<p>Following toolbar button types can be used:</p>
-<ul>
-<li><p><b>Command button</b> offering direct action (functions/view access)
-like <i>Send</i> or <i>New contact</i> with a button press feedback. Related
-tooltip indicates the function of the button. Command button may have a long
-press functionality included such as <i>Fast forward</i>.</p></li>
-<li><p><b>ON/OFF button</b> can be used for active/inactive type of functions
-such as <i>Loudspeaker</i> or<i> Font italics</i>. Button has related latched
-down effect. Button icon graphic and tooltip indicate the function of the
-button, and they stay the same regardless of the button state. No long tap
-allowed.</p></li>
-<li><p><b>Mode toggle button</b> can be used for switching between several
-modes as in <i>Flash</i>. Button icon graphic and tooltip change and should
-indicate the current status.</p></li>
-</ul>
-<p>Toolbar buttons are view specific, thus within one application some views
-may have toolbar and some do not. It is recommended though to keep the toolbars
-as consistent as possible within an application. Changing toolbar buttons
-within one view is not allowed, but button can be dimmed in case function
-is not available, for example, depending on focused item in the view or currently
-available services. Application may change the buttons according to product
-concept.</p>
-<p>The order of the toolbar buttons in different orientations is according
-to the reading direction  the first item is placed topmost when the toolbar
-is vertical and leftmost when the toolbar is horizontal in western languages.
-The appearance of functions in Toolbar should follow the order presented below.</p>
-<table id="GUID-D8D1CBB2-C07E-43EA-80E5-9163865A0B2D"><title>Appearance order
-of toolbar functions</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Function type</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>Call</entry>
-<entry>Call initiation related functions</entry>
-</row>
-<row>
-<entry>Reply</entry>
-<entry>Replying to a message</entry>
-</row>
-<row>
-<entry>Send</entry>
-<entry>For sending the content in focus</entry>
-</row>
-<row>
-<entry>Create new</entry>
-<entry>For creating a new message, note, folder, contact or some other item</entry>
-</row>
-<row>
-<entry>View switching</entry>
-<entry>For functions such as Go-to or View mode switching</entry>
-</row>
-<row>
-<entry>Editing</entry>
-<entry>For switching to editing mode</entry>
-</row>
-<row>
-<entry>Opening extension</entry>
-<entry>For opening the toolbar extension in case all the functions within
-the extension are a collection of options of similar type and can be grouped
-under one command, for example, Insert -extension for inserting image, video,
-presentation and so on. </entry>
-</row>
-<row>
-<entry>Delete</entry>
-<entry>Deleting the item in focus</entry>
-</row>
-<row>
-<entry>More -extension</entry>
-<entry>For opening the toolbar extension “More” in case the functions within
-the extension are various kinds and cannot be grouped.</entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>Application specific commands that do not fit into any function type described
-above are to be placed between Create new and Opening the extension in the
-order list.</p>
-<p>The application may decide the initial state of ON/OFF and Mode toggle
-button in application launch. They can also be reset or resumed from the previous
-session.</p>
-<fig id="GUID-2D9D4495-4AA3-4DA8-9AC7-B989189CD2F3">
-<title>Toolbar button states: example of ON/OFF type of button</title>
-<image href="GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e71631_href.png" scale="50" placement="inline"/>
-</fig>
-<section id="GUID-EC526E89-570D-4611-A44D-ABDA4918805E"><title>Floating toolbar</title><p>Floating
-toolbar is a component for showing the key functions on top of the Main pane
-or full screen content. It can be used in non-touch UI, but also in touch
-UI.</p><p>Floating toolbar owns the focus, and thus it can be used only if
-other content in the view does not need the focus. It means that floating
-toolbar cannot be used with lists and grids.</p><p>Opening and closing the
-floating toolbar can be done with the <uicontrol>Show toolbar</uicontrol> / <uicontrol>Hide
-toolbar</uicontrol> command via the Options menu. In this case the toolbar
-is open by default.</p><p>Floating toolbar can also be designed to be opened
-via MSK labeled as <uicontrol>Toolbar</uicontrol>. For closing the toolbar,
-there has to be then a <uicontrol>Hide</uicontrol> button or the toolbar is
-closed after selecting a function. Navigation keys can be used as a shortcut
-for opening and closing the toolbar, when not used for anything else in the
-view. Time-out can be used for closing the toolbar.</p><p>There
-can be 3-6 buttons in the floating toolbar depending on used resolution. Thus
-the most important functions must be designed to be the first ones in the
-toolbar; so that they are visible, for example, in case only three buttons
-fit the layout.  </p><p>When the toolbar is open, it owns the Selection key
-for selecting the focused toolbar button. Toolbar does not own the right and
-left softkeys. The user can move the focus over the toolbar buttons with the
-Arrow keys (left and right). The focus loops, and the toolbar itself does
-not scroll.</p></section>
-<section id="GUID-2010D820-45FF-464A-8C11-34A657A566B3"><title>Floating toolbar
-extension</title><p>Toolbar button can be reserved for opening a toolbar extension,
-where more options can be found. Placement of the extension button within
-toolbar can be found from the appearance order in the table <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita#GUID-EB212C35-5416-4CA7-8091-61B45D78E220/GUID-D8D1CBB2-C07E-43EA-80E5-9163865A0B2D">Appearance order of toolbar functions</xref>. The button has a default graphic,
-which the application can change if needed. </p><p>Toolbar extension buttons
-are for similar actions as buttons in toolbar, which means the same types
-and rules apply for toolbar extension buttons. Extension should be used for
-accessing a set of logically similar options, for example, when selecting
-content to be inserted to a message or for adjusting imaging session related
-values in camera. </p><p>Extension can have 2 – 12 buttons (3x4 in landscape
-and 4x3 in portrait). The filling order follows the grid filling rules, thus
-for example most important one should be placed as first. In floating toolbar
-extension, the last extension button is reserved for closing the toolbar. </p></section>
-<section id="GUID-6BFBE3CC-FE17-4F61-98A5-2E14EFEAD1E9"><title>Toolbar component
-in touch UI</title><p>In touch UI the toolbar is either fixed in the layout,
-or a floating component. Both toolbars cannot exist in one view.</p><p>Toolbars
-are view specific, thus all views of an application do not have to have a
-toolbar.</p><p>Selection in touch toolbars is done with a single tap, and
-related tooltip is shown with stylus down.</p></section>
-<section id="GUID-348E53C9-1F1D-42EC-8E0C-635CA18DB9D8"><title>Floating toolbar
-in touch UI</title><p>The number of floating toolbar buttons in the nHD (640
-x 360 pixels) layout is three. In case floating toolbar is used in full screen,
-there can be four buttons. </p><p>Floating toolbar owns the focus also in
-touch UI, and thus cannot be used in views that have focus for main pane content.</p><p>Floating
-toolbar can be opened and closed as in non-touch UI via the Options menu or
-with the Selection key, or it can be opened by tapping the main pane area.
-In this case closing is done by tapping the main pane area again, with time-out
-or by selecting a function.</p></section>
-<section id="GUID-75A2EDF2-10D7-4CCC-A6AA-4B55BA21C46D"><title>Fixed toolbar
-in touch UI</title><p>The number of fixed toolbar buttons in the nHD (640
-x 360 pixels) layout is three. It reserves own space from the layout and does
-not cover the content of main pane area. </p><p>Fixed toolbar does not have
-a highlight, and thus it can be used in all views (whether main pane needs
-the highlight or not).</p><p>  Fixed toolbar cannot be opened or closed, but
-it is always visible. Toolbar can be hidden in case other controls are also
-hidden (in full screen views).</p><fig id="GUID-C5A359DF-1C8F-42D3-B86F-79A49EB97D70">
-<title>Toolbar in touch UI fixed in the layout</title>
-<image href="GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e71711_href.png" placement="inline"/>
-</fig></section>
-<section id="GUID-4BBFEE08-26AA-4F6E-B74A-F82BD75F3E59"><title>Toolbar extension
-in touch UI</title><p>As in non-touch UI, toolbars can have extensions also
-in touch UI. For floating toolbar in touch UI, the same rules apply as defined
-for floating toolbar extension in general. In touch UI, the toolbar extension
-can always be closed with the same toolbar button as it was opened, or by
-tapping outside the extension area. </p><p>In addition to general extension
-rules, the toolbar extension for fixed toolbar has certain specific guidelines.
-Besides buttons, the extension of fixed toolbar can include editor fields,
-for example, for entering an URL or for the Find function in the browser.
-The most important editor field is to be the topmost and has the cursor by
-default.</p><note> In case editor field(s) exists, there is less space for
-buttons in landscape layout compared to portrait layout.</note></section>
-<section id="GUID-C01D7518-956D-41B1-8AD6-540AE70844CD"><title>Using
-toolbars in C++ applications</title><p>The APIs to use for creating a toolbar
-are the <xref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita">Toolbar API</xref> for
-the toolbar itself and the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
-button API</xref> for the buttons in the toolbar.</p><p>For implementation
-information, see <xref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita">Enabling
-quick access to functions with a toolbar</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EB212C35-5416-4CA7-8091-61B45D78E220" xml:lang="en"><title>Toolbar</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The toolbar offers quick access to some of the key functions in the application
+view. All of the functions must also be found from the <uicontrol>Options</uicontrol> menu. </p>
+<note> Toolbar buttons are <xref href="GUID-8F6F6C2C-C00E-4412-A880-5EEBF7270265.dita">Generic
+buttons</xref> that have touch functionality.</note>
+<fig id="GUID-8F4054B9-F6F6-4328-ACFF-459B03398FAC">
+<title>Toolbar</title>
+<image href="GUID-2A4DED23-D0AB-436A-BCED-F0645FF05726_d0e66217_href.png" placement="inline"/>
+</fig>
+<p>A tooltip is an information pop-up containing information regarding each
+button must be shown.</p>
+<p>Following toolbar button types can be used:</p>
+<ul>
+<li><p><b>Command button</b> offering direct action (functions/view access)
+like <i>Send</i> or <i>New contact</i> with a button press feedback. Related
+tooltip indicates the function of the button. Command button may have a long
+press functionality included such as <i>Fast forward</i>.</p></li>
+<li><p><b>ON/OFF button</b> can be used for active/inactive type of functions
+such as <i>Loudspeaker</i> or<i> Font italics</i>. Button has related latched
+down effect. Button icon graphic and tooltip indicate the function of the
+button, and they stay the same regardless of the button state. No long tap
+allowed.</p></li>
+<li><p><b>Mode toggle button</b> can be used for switching between several
+modes as in <i>Flash</i>. Button icon graphic and tooltip change and should
+indicate the current status.</p></li>
+</ul>
+<p>Toolbar buttons are view specific, thus within one application some views
+may have toolbar and some do not. It is recommended though to keep the toolbars
+as consistent as possible within an application. Changing toolbar buttons
+within one view is not allowed, but button can be dimmed in case function
+is not available, for example, depending on focused item in the view or currently
+available services. Application may change the buttons according to product
+concept.</p>
+<p>The order of the toolbar buttons in different orientations is according
+to the reading direction  the first item is placed topmost when the toolbar
+is vertical and leftmost when the toolbar is horizontal in western languages.
+The appearance of functions in Toolbar should follow the order presented below.</p>
+<table id="GUID-D8D1CBB2-C07E-43EA-80E5-9163865A0B2D"><title>Appearance order
+of toolbar functions</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.46*"/><colspec colname="col2" colwidth="1.54*"/>
+<thead>
+<row>
+<entry>Function type</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>Call</entry>
+<entry>Call initiation related functions</entry>
+</row>
+<row>
+<entry>Reply</entry>
+<entry>Replying to a message</entry>
+</row>
+<row>
+<entry>Send</entry>
+<entry>For sending the content in focus</entry>
+</row>
+<row>
+<entry>Create new</entry>
+<entry>For creating a new message, note, folder, contact or some other item</entry>
+</row>
+<row>
+<entry>View switching</entry>
+<entry>For functions such as Go-to or View mode switching</entry>
+</row>
+<row>
+<entry>Editing</entry>
+<entry>For switching to editing mode</entry>
+</row>
+<row>
+<entry>Opening extension</entry>
+<entry>For opening the toolbar extension in case all the functions within
+the extension are a collection of options of similar type and can be grouped
+under one command, for example, Insert -extension for inserting image, video,
+presentation and so on. </entry>
+</row>
+<row>
+<entry>Delete</entry>
+<entry>Deleting the item in focus</entry>
+</row>
+<row>
+<entry>More -extension</entry>
+<entry>For opening the toolbar extension “More” in case the functions within
+the extension are various kinds and cannot be grouped.</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>Application specific commands that do not fit into any function type described
+above are to be placed between Create new and Opening the extension in the
+order list.</p>
+<p>The application may decide the initial state of ON/OFF and Mode toggle
+button in application launch. They can also be reset or resumed from the previous
+session.</p>
+<fig id="GUID-2D9D4495-4AA3-4DA8-9AC7-B989189CD2F3">
+<title>Toolbar button states: example of ON/OFF type of button</title>
+<image href="GUID-9E0C8892-E67F-4DC9-8253-2F65611AD4C6_d0e66389_href.png" scale="50" placement="inline"/>
+</fig>
+<section id="GUID-EC526E89-570D-4611-A44D-ABDA4918805E"><title>Floating toolbar</title><p>Floating
+toolbar is a component for showing the key functions on top of the Main pane
+or full screen content. It can be used in non-touch UI, but also in touch
+UI.</p><p>Floating toolbar owns the focus, and thus it can be used only if
+other content in the view does not need the focus. It means that floating
+toolbar cannot be used with lists and grids.</p><p>Opening and closing the
+floating toolbar can be done with the <uicontrol>Show toolbar</uicontrol> / <uicontrol>Hide
+toolbar</uicontrol> command via the Options menu. In this case the toolbar
+is open by default.</p><p>Floating toolbar can also be designed to be opened
+via MSK labeled as <uicontrol>Toolbar</uicontrol>. For closing the toolbar,
+there has to be then a <uicontrol>Hide</uicontrol> button or the toolbar is
+closed after selecting a function. Navigation keys can be used as a shortcut
+for opening and closing the toolbar, when not used for anything else in the
+view. Time-out can be used for closing the toolbar.</p><p>There can be 3-6
+buttons in the floating toolbar depending on used resolution. Thus the most
+important functions must be designed to be the first ones in the toolbar;
+so that they are visible, for example, in case only three buttons fit the
+layout.  </p><p>When the toolbar is open, it owns the Selection key for selecting
+the focused toolbar button. Toolbar does not own the right and left softkeys.
+The user can move the focus over the toolbar buttons with the Arrow keys (left
+and right). The focus loops, and the toolbar itself does not scroll.</p></section>
+<section id="GUID-2010D820-45FF-464A-8C11-34A657A566B3"><title>Floating toolbar
+extension</title><p>Toolbar button can be reserved for opening a toolbar extension,
+where more options can be found. Placement of the extension button within
+toolbar can be found from the appearance order in the table <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita#GUID-EB212C35-5416-4CA7-8091-61B45D78E220/GUID-D8D1CBB2-C07E-43EA-80E5-9163865A0B2D">Appearance order of toolbar functions</xref>. The button has a default graphic,
+which the application can change if needed. </p><p>Toolbar extension buttons
+are for similar actions as buttons in toolbar, which means the same types
+and rules apply for toolbar extension buttons. Extension should be used for
+accessing a set of logically similar options, for example, when selecting
+content to be inserted to a message or for adjusting imaging session related
+values in camera. </p><p>Extension can have 2 – 12 buttons (3x4 in landscape
+and 4x3 in portrait). The filling order follows the grid filling rules, thus
+for example most important one should be placed as first. In floating toolbar
+extension, the last extension button is reserved for closing the toolbar. </p></section>
+<section id="GUID-6BFBE3CC-FE17-4F61-98A5-2E14EFEAD1E9"><title>Toolbar component
+in touch UI</title><p>In touch UI the toolbar is either fixed in the layout,
+or a floating component. Both toolbars cannot exist in one view.</p><p>Toolbars
+are view specific, thus all views of an application do not have to have a
+toolbar.</p><p>Selection in touch toolbars is done with a single tap, and
+related tooltip is shown with stylus down.</p></section>
+<section id="GUID-348E53C9-1F1D-42EC-8E0C-635CA18DB9D8"><title>Floating toolbar
+in touch UI</title><p>The number of floating toolbar buttons in the nHD (640
+x 360 pixels) layout is three. In case floating toolbar is used in full screen,
+there can be four buttons. </p><p>Floating toolbar owns the focus also in
+touch UI, and thus cannot be used in views that have focus for main pane content.</p><p>Floating
+toolbar can be opened and closed as in non-touch UI via the Options menu or
+with the Selection key, or it can be opened by tapping the main pane area.
+In this case closing is done by tapping the main pane area again, with time-out
+or by selecting a function.</p></section>
+<section id="GUID-75A2EDF2-10D7-4CCC-A6AA-4B55BA21C46D"><title>Fixed toolbar
+in touch UI</title><p>The number of fixed toolbar buttons in the nHD (640
+x 360 pixels) layout is three. It reserves own space from the layout and does
+not cover the content of main pane area. </p><p>Fixed toolbar does not have
+a highlight, and thus it can be used in all views (whether main pane needs
+the highlight or not).</p><p>  Fixed toolbar cannot be opened or closed, but
+it is always visible. Toolbar can be hidden in case other controls are also
+hidden (in full screen views).</p><fig id="GUID-C5A359DF-1C8F-42D3-B86F-79A49EB97D70">
+<title>Toolbar in touch UI fixed in the layout</title>
+<image href="GUID-05C87497-738B-473C-B5B2-BE46D32225F5_d0e66467_href.png" placement="inline"/>
+</fig></section>
+<section id="GUID-4BBFEE08-26AA-4F6E-B74A-F82BD75F3E59"><title>Toolbar extension
+in touch UI</title><p>As in non-touch UI, toolbars can have extensions also
+in touch UI. For floating toolbar in touch UI, the same rules apply as defined
+for floating toolbar extension in general. In touch UI, the toolbar extension
+can always be closed with the same toolbar button as it was opened, or by
+tapping outside the extension area. </p><p>In addition to general extension
+rules, the toolbar extension for fixed toolbar has certain specific guidelines.
+Besides buttons, the extension of fixed toolbar can include editor fields,
+for example, for entering an URL or for the Find function in the browser.
+The most important editor field is to be the topmost and has the cursor by
+default.</p><note> In case editor field(s) exists, there is less space for
+buttons in landscape layout compared to portrait layout.</note></section>
+<section id="GUID-C01D7518-956D-41B1-8AD6-540AE70844CD"><title>Using
+toolbars in applications</title><p>The APIs to use for creating a toolbar
+are the <xref href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita">Toolbar API</xref> for
+the toolbar itself and the <xref href="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita">Generic
+button API</xref> for the buttons in the toolbar.</p><p>For implementation
+information, see <xref href="GUID-95CE2206-7AE0-48C0-97A7-4E2082F9F662.dita">Enabling
+quick access to functions with a toolbar</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3"><title>DevVideo Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the DevVideo library. </p> <section><title>Purpose</title> <p>DevVideo provides the interface between the Symbian platform and the video processing hardware for all video functionality. </p> <p><b>DevVideo Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-2D7D4730-333C-592B-9830-C8AA979E28D7"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>devvideo.dll</b>  </p> </entry> <entry><p> <b>devvideo.lib</b>  </p> </entry> <entry><p>These files are used for implementing DevVideo. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>DevVideo provides middleware components, such as MMF controller plug-ins, access to video codecs, pre-processors and post-processors. DevVideo interacts with: </p> <ul><li id="GUID-95821394-F1A1-52D9-82C2-7DAC2D5189C3"><p>MMF Controller Framework </p> <p>The controller framework helps to manage the interface to DevVideo and provides controller plug-ins for playing and recording video data. </p> </li> <li id="GUID-46C2C613-7EA1-554C-BE8C-67F1DD9BEF7C"><p>Controller plug-ins </p> <p>Video play and video record controller plug-ins implement play and record functionality respectively. </p> </li> <li id="GUID-90DD575E-B686-5925-9579-C5B7F26CEAE9"><p>Video Hardware Device interface </p> <p> <xref href="GUID-B75C7A33-53E9-300B-A3F1-9584F292A8E5.dita"><apiname>CMMFVideoHwDevice</apiname></xref> is the base class for all video hardware devices. Video playback hardware devices are video decoders and video post-processors. Video recording hardware devices are video pre-processors and encoders. </p> <p>Note that, although the interface is called "Hardware Device" interface, it is possible that the codecs, and pre-processors and post-processors, are not running on a separate hardware device. They could be running on the same processor as all the other software. </p> </li> </ul> <p>Shown below is a representation of how DevVideo interacts with the Multimedia Framework and Media Device Framework components: </p> <fig id="GUID-E9F26F16-0358-5750-9960-110D7721F892"><title>
-             DevVideo and related components 
-          </title> <image href="GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e323484_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>DevVideo is a hardware abstraction layer that provides access to video functionality. DevVideo functionality includes video decoding, encoding, pre-processing and post-processing. </p> </section> <section><title>Key DevVideo Classes</title> <p>The video play and record functionality provided by DevVideo is contained within the following key classes: </p> <ul><li id="GUID-8E3D7110-9C2D-5A0D-8AFA-D93C88BB3A24"><p> <xref href="GUID-8CBAAA14-07E5-30AA-A67D-EA968251EB02.dita"><apiname>MMMFDevVideoPlayProxy</apiname></xref> - the interface to <codeph>CMMFDevVideoPlay</codeph>. Hardware devices use this interface to deliver data back to the client. </p> </li> <li id="GUID-DDE4EB42-841A-53E3-9530-03A08D2C2DC4"><p> <xref href="GUID-6273220C-24F9-3ECB-9748-E74D595D448A.dita"><apiname>CMMFDevVideoPlay</apiname></xref> - DevVideoPlay interface and implementation. </p> </li> <li id="GUID-6459C887-823E-5F79-B6A5-82DA37AE7E66"><p> <xref href="GUID-58680391-FDEC-36F5-B3C1-F09581E428F1.dita"><apiname>MMMFDevVideoPlayObserver</apiname></xref> - set of callback functions that any client using <codeph>CMMFDevVideoPlay</codeph> must implement. </p> </li> <li id="GUID-BD82BD0D-A62B-5C60-955E-AEB80B62873B"><p> <xref href="GUID-D3B23BA7-C337-3444-B41B-322024066743.dita"><apiname> MMMFDevVideoRecordProxy</apiname></xref> - the interface to <codeph>CMMFDevVideoRecord</codeph>. Hardware devices use this interface to deliver data back to the client. </p> </li> <li id="GUID-A37B47E1-7AAD-547C-BE0C-D07C3CAA72A4"><p> <xref href="GUID-E2D1AA86-41CD-3D9A-A8FE-FF7D0E3024B0.dita"><apiname>CMMFDevVideoRecord</apiname></xref> - DevVideoRecord interface and implementation. </p> </li> <li id="GUID-9B1FE095-285D-592C-A924-DD13577A8D7B"><p> <xref href="GUID-765A7269-BB3D-32A3-B37C-5C2250E990FB.dita"><apiname>MMMFDevVideoRecordObserver</apiname></xref> - set of callback functions that any client using <codeph>CMMFDevVideoRecord</codeph> must implement. </p> </li> </ul> </section> <section><title>Using DevVideo</title> <p>Clients can use DevVideo to: </p> <ul><li id="GUID-0E3CC319-7A07-52B7-BF0B-C60B552EAEB9"><p>Select the video decoder to use. </p> </li> <li id="GUID-1E8EA07D-E0D7-50A1-AB2C-B22A502BD651"><p>Configure the video decoder. </p> </li> <li id="GUID-206AA299-813C-570F-96E1-C34971A9BCF6"><p>Select the video post-processor to use. </p> </li> <li id="GUID-3FA3B14D-E470-596A-A365-83D8A82C08FE"><p>Configure the video post-processor. </p> </li> <li id="GUID-619F4F90-C9B6-5CE8-A3CE-5133F26D33E6"><p>Set clock source for timing video playback. </p> </li> <li id="GUID-E74E4938-215F-53AA-A5C1-2CCC3E193BF0"><p>Set video output destination. </p> </li> <li id="GUID-91D6FFF1-E0B1-5C08-B622-C4CBD7D353BF"><p>Start video playback. </p> </li> <li id="GUID-C1233D6B-07E8-5F52-B181-D829E6BEF75B"><p>Pause video playback. </p> </li> <li id="GUID-C691A1FC-3B90-558F-9A40-D1B721797277"><p>Stop video playback. </p> </li> <li id="GUID-09E5A40D-4410-51EA-A1DD-3390356CA21B"><p>Select the video encoder to use. </p> </li> <li id="GUID-1AB0F445-6747-595B-964A-2607D98231BF"><p>Configure the video encoder. </p> </li> <li id="GUID-05647E57-0BCB-5766-A6C7-38324563D8E7"><p>Select the video pre-processor to use. </p> </li> <li id="GUID-6B78688D-D291-511E-A4A2-B24175D1CFC4"><p>Configure the video pre-processor. </p> </li> <li id="GUID-B153F2DF-1F2B-5F25-8693-2D46FC8B7077"><p>Set clock source for timing of video recording. </p> </li> <li id="GUID-8A7AB02B-5FFE-5CD1-8856-26C2577A09C6"><p>Start video recording. </p> </li> <li id="GUID-E294F9BC-0078-53CA-AA84-C3E4F28D0648"><p>Pause video recording. </p> </li> <li id="GUID-7730116F-1188-5BEB-91B7-1F21525E65CD"><p>Stop video recording. </p> </li> <li id="GUID-026D56C1-4E68-587B-A546-4543B8149FBE"><p>Pass video buffers to and from the client. </p> </li> <li id="GUID-7CD4E18E-3E54-54AD-AAFB-D9B778C64331"><p>Pass pictures to and from the client. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita"> Video Client Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3"><title>DevVideo Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of the DevVideo library. </p> <section><title>Purpose</title> <p>DevVideo provides the interface between the Symbian platform and the video processing hardware for all video functionality. </p> <p><b>DevVideo Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-2D7D4730-333C-592B-9830-C8AA979E28D7"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>devvideo.dll</b>  </p> </entry> <entry><p> <b>devvideo.lib</b>  </p> </entry> <entry><p>These files are used for implementing DevVideo. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>DevVideo provides middleware components, such as MMF controller plug-ins, access to video codecs, pre-processors and post-processors. DevVideo interacts with: </p> <ul><li id="GUID-95821394-F1A1-52D9-82C2-7DAC2D5189C3"><p>MMF Controller Framework </p> <p>The controller framework helps to manage the interface to DevVideo and provides controller plug-ins for playing and recording video data. </p> </li> <li id="GUID-46C2C613-7EA1-554C-BE8C-67F1DD9BEF7C"><p>Controller plug-ins </p> <p>Video play and video record controller plug-ins implement play and record functionality respectively. </p> </li> <li id="GUID-90DD575E-B686-5925-9579-C5B7F26CEAE9"><p>Video Hardware Device interface </p> <p> <xref href="GUID-B75C7A33-53E9-300B-A3F1-9584F292A8E5.dita"><apiname>CMMFVideoHwDevice</apiname></xref> is the base class for all video hardware devices. Video playback hardware devices are video decoders and video post-processors. Video recording hardware devices are video pre-processors and encoders. </p> <p>Note that, although the interface is called "Hardware Device" interface, it is possible that the codecs, and pre-processors and post-processors, are not running on a separate hardware device. They could be running on the same processor as all the other software. </p> </li> </ul> <p>Shown below is a representation of how DevVideo interacts with the Multimedia Framework and Media Device Framework components: </p> <fig id="GUID-E9F26F16-0358-5750-9960-110D7721F892"><title>
+             DevVideo and related components 
+          </title> <image href="GUID-BC498630-E802-5A36-8DB1-D67F739CAD64_d0e317327_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>DevVideo is a hardware abstraction layer that provides access to video functionality. DevVideo functionality includes video decoding, encoding, pre-processing and post-processing. </p> </section> <section><title>Key DevVideo Classes</title> <p>The video play and record functionality provided by DevVideo is contained within the following key classes: </p> <ul><li id="GUID-8E3D7110-9C2D-5A0D-8AFA-D93C88BB3A24"><p> <xref href="GUID-8CBAAA14-07E5-30AA-A67D-EA968251EB02.dita"><apiname>MMMFDevVideoPlayProxy</apiname></xref> - the interface to <codeph>CMMFDevVideoPlay</codeph>. Hardware devices use this interface to deliver data back to the client. </p> </li> <li id="GUID-DDE4EB42-841A-53E3-9530-03A08D2C2DC4"><p> <xref href="GUID-6273220C-24F9-3ECB-9748-E74D595D448A.dita"><apiname>CMMFDevVideoPlay</apiname></xref> - DevVideoPlay interface and implementation. </p> </li> <li id="GUID-6459C887-823E-5F79-B6A5-82DA37AE7E66"><p> <xref href="GUID-58680391-FDEC-36F5-B3C1-F09581E428F1.dita"><apiname>MMMFDevVideoPlayObserver</apiname></xref> - set of callback functions that any client using <codeph>CMMFDevVideoPlay</codeph> must implement. </p> </li> <li id="GUID-BD82BD0D-A62B-5C60-955E-AEB80B62873B"><p> <xref href="GUID-D3B23BA7-C337-3444-B41B-322024066743.dita"><apiname> MMMFDevVideoRecordProxy</apiname></xref> - the interface to <codeph>CMMFDevVideoRecord</codeph>. Hardware devices use this interface to deliver data back to the client. </p> </li> <li id="GUID-A37B47E1-7AAD-547C-BE0C-D07C3CAA72A4"><p> <xref href="GUID-E2D1AA86-41CD-3D9A-A8FE-FF7D0E3024B0.dita"><apiname>CMMFDevVideoRecord</apiname></xref> - DevVideoRecord interface and implementation. </p> </li> <li id="GUID-9B1FE095-285D-592C-A924-DD13577A8D7B"><p> <xref href="GUID-765A7269-BB3D-32A3-B37C-5C2250E990FB.dita"><apiname>MMMFDevVideoRecordObserver</apiname></xref> - set of callback functions that any client using <codeph>CMMFDevVideoRecord</codeph> must implement. </p> </li> </ul> </section> <section><title>Using DevVideo</title> <p>Clients can use DevVideo to: </p> <ul><li id="GUID-0E3CC319-7A07-52B7-BF0B-C60B552EAEB9"><p>Select the video decoder to use. </p> </li> <li id="GUID-1E8EA07D-E0D7-50A1-AB2C-B22A502BD651"><p>Configure the video decoder. </p> </li> <li id="GUID-206AA299-813C-570F-96E1-C34971A9BCF6"><p>Select the video post-processor to use. </p> </li> <li id="GUID-3FA3B14D-E470-596A-A365-83D8A82C08FE"><p>Configure the video post-processor. </p> </li> <li id="GUID-619F4F90-C9B6-5CE8-A3CE-5133F26D33E6"><p>Set clock source for timing video playback. </p> </li> <li id="GUID-E74E4938-215F-53AA-A5C1-2CCC3E193BF0"><p>Set video output destination. </p> </li> <li id="GUID-91D6FFF1-E0B1-5C08-B622-C4CBD7D353BF"><p>Start video playback. </p> </li> <li id="GUID-C1233D6B-07E8-5F52-B181-D829E6BEF75B"><p>Pause video playback. </p> </li> <li id="GUID-C691A1FC-3B90-558F-9A40-D1B721797277"><p>Stop video playback. </p> </li> <li id="GUID-09E5A40D-4410-51EA-A1DD-3390356CA21B"><p>Select the video encoder to use. </p> </li> <li id="GUID-1AB0F445-6747-595B-964A-2607D98231BF"><p>Configure the video encoder. </p> </li> <li id="GUID-05647E57-0BCB-5766-A6C7-38324563D8E7"><p>Select the video pre-processor to use. </p> </li> <li id="GUID-6B78688D-D291-511E-A4A2-B24175D1CFC4"><p>Configure the video pre-processor. </p> </li> <li id="GUID-B153F2DF-1F2B-5F25-8693-2D46FC8B7077"><p>Set clock source for timing of video recording. </p> </li> <li id="GUID-8A7AB02B-5FFE-5CD1-8856-26C2577A09C6"><p>Start video recording. </p> </li> <li id="GUID-E294F9BC-0078-53CA-AA84-C3E4F28D0648"><p>Pause video recording. </p> </li> <li id="GUID-7730116F-1188-5BEB-91B7-1F21525E65CD"><p>Stop video recording. </p> </li> <li id="GUID-026D56C1-4E68-587B-A546-4543B8149FBE"><p>Pass video buffers to and from the client. </p> </li> <li id="GUID-7CD4E18E-3E54-54AD-AAFB-D9B778C64331"><p>Pass pictures to and from the client. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita"> Video Client Overview</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C"><title>MIME Recognition Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The MIME (Multipurpose Internet Mail Extension) recognition framework enables data type identification. </p> <p>The MIME recognition framework implements data type recognition using MIME (data) recognizers. The MIME recognizers are ECOM plug-ins. A MIME recognizer reads a small piece of the data. A data type can be recognized by more than one MIME recognizer. The framework uses the concepts of priority and confidence level to determine the data type. </p> <p>The Application Architecture (AppArc) launches the appropriate application using the MIME framework to handle the data. </p> <p>It is not guaranteed that an application will be available to handle a data type, even if it was successfully recognized. </p> <section><title>Purpose</title> <p> </p> <p>MIME type recognition enables devices to identify data type in streams or files and start appropriate application automatically. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt>MIME</dt> <dd><p>MIME (Multipurpose Internet Mail Extension) is an internet standard system for identifying the type of data in a file or stream. Types can include graphics, photos, audio, video files and formatted text. </p> </dd> </dlentry> <dlentry><dt>Priority</dt> <dd><p>The plug-in developer assigns a priority (EHigh, ENormal or ELow) to the data recognizers. A data type can be handled by more than one application and may therefore be recognized by more than one recognizer. </p> <p>The priority determines the position at which the recognizer is inserted into the recognizer list. The higher priority recognizers are placed at the start of the list. If more than one recognizer recognizes a data type with the same confidence, the recognizer with the higher priority takes precedence. The sequence in which recognizers are invoked by the framework is determined by their priority. High priority recognizers are invoked first. </p> <p>For more details refer to <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-14F65687-821A-3C30-A27F-A8B5F4688094"><apiname>CApaDataRecognizerType::TRecognizerPriority</apiname></xref>. </p> </dd> </dlentry> <dlentry><dt>Recognizer list</dt> <dd><p>The MIME recognition framework maintains a list of MIME recognizers. The recognizer list is constructed based on the data types the MIME recognizers claim to support and is ordered by priority. </p> </dd> </dlentry> <dlentry><dt>Confidence level</dt> <dd><p>A MIME recognizer reads a small piece of data from the start of a file or stream. It attempts to match the data with one of its known types. If the match is complete it returns the associated data type with full confidence (ECertain) and if there is no match it returns no data type with no confidence (ENotRecognized). If there is a partial match it can return a data type with an intermediate confidence level (EPossible, EUnlikely, ENotRecognized). </p> <p>The confidence of MIME recognizers can be expressed in 5 different levels: </p> <ul><li id="GUID-1C6B8B13-6303-5B3E-804E-9798B8CC39F3"><p> <codeph>ECertain</codeph>  </p> </li> <li id="GUID-9BF81FB9-CF0E-59D6-B7F7-5B31D161B760"><p> <codeph>EProbable</codeph>  </p> </li> <li id="GUID-9F2047BD-67C0-57D6-88A7-0B087D99F4BA"><p> <codeph>EPossible</codeph>  </p> </li> <li id="GUID-7A4B066D-9884-5F8E-B455-588DE546EB69"><p> <codeph>EUnlikely</codeph>  </p> </li> <li id="GUID-71651D00-8254-56C4-B26D-DCFB4AA658E5"><p> <codeph>ENotRecognized</codeph>  </p> </li> </ul> <p>By default, the confidence level of the MIME Recognizer is <codeph>ECertain</codeph>. </p> <p>For more details refer <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-3DCAE2B7-E840-3838-83BC-3D7FE73A1757"><apiname>CApaDataRecognizerType::TRecognitionConfidence</apiname></xref>. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>MIME recognizers are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECOM</xref> plugins, located under <filepath>\sys\bin\</filepath>. </p> <fig id="GUID-981203F5-B7D7-54F4-95E5-AFA2D1286BFF"><title>
-             MIME framework architecture 
-          </title> <image href="GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e176017_href.jpg" placement="inline"/></fig> <ul><li id="GUID-17CE2467-5B33-5B07-95A7-CCCF9D66E693"><p>AppArc is the main client of the MIME recognition framework. </p> </li> <li id="GUID-CAEDF3BA-B7AA-5F60-BF9F-CA308CAF7002"><p>Applications that need data type recognition use the MIME recognition framework via AppArc APIs. </p> </li> <li id="GUID-E3763687-3E7D-5D24-BC92-88DE1CC11D2B"><p>The MIME recognition framework delegates the data type identification task to an appropriate MIME recognizer. </p> </li> <li id="GUID-94882AE7-A578-507C-AE2E-6C778B78F52B"><p>The MIME recognizer identifies the data type. </p> </li> <li id="GUID-5F74226E-0EAA-5338-BED9-5A58B54ECC2F"><p>AppArc launches the application for the identified data type. </p> </li> </ul> </section> <section><title>APIs</title> <table id="GUID-6573D858-F2D1-5E0C-B330-951D0324702C"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>  </p> </entry> <entry><p>Is the abstract base class for a recognizer. Recognizers need to define and implement a derived class and provide an implementation of the functions.This class contains the MIME APIs related to MIME recognition framework. </p> </entry> </row> <row><entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry> <entry><p>A session with the application architecture server. The server provides access to a cached list of the applications on the device. This class contains the AppArc APIs related to MIME recognition framework. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The MIME recognition framework allows the plug-in writers to: </p> <ul><li id="GUID-FEBCF579-E483-58D3-9BEB-A9A50F58F1FA"><p><xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Write Data(MIME) Recogzisers</xref>  </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C"><title>MIME Recognition Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The MIME (Multipurpose Internet Mail Extension) recognition framework enables data type identification. </p> <p>The MIME recognition framework implements data type recognition using MIME (data) recognizers. The MIME recognizers are ECOM plug-ins. A MIME recognizer reads a small piece of the data. A data type can be recognized by more than one MIME recognizer. The framework uses the concepts of priority and confidence level to determine the data type. </p> <p>The Application Architecture (AppArc) launches the appropriate application using the MIME framework to handle the data. </p> <p>It is not guaranteed that an application will be available to handle a data type, even if it was successfully recognized. </p> <section><title>Purpose</title> <p> </p> <p>MIME type recognition enables devices to identify data type in streams or files and start appropriate application automatically. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt>MIME</dt> <dd><p>MIME (Multipurpose Internet Mail Extension) is an internet standard system for identifying the type of data in a file or stream. Types can include graphics, photos, audio, video files and formatted text. </p> </dd> </dlentry> <dlentry><dt>Priority</dt> <dd><p>The plug-in developer assigns a priority (EHigh, ENormal or ELow) to the data recognizers. A data type can be handled by more than one application and may therefore be recognized by more than one recognizer. </p> <p>The priority determines the position at which the recognizer is inserted into the recognizer list. The higher priority recognizers are placed at the start of the list. If more than one recognizer recognizes a data type with the same confidence, the recognizer with the higher priority takes precedence. The sequence in which recognizers are invoked by the framework is determined by their priority. High priority recognizers are invoked first. </p> <p>For more details refer to <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-14F65687-821A-3C30-A27F-A8B5F4688094"><apiname>CApaDataRecognizerType::TRecognizerPriority</apiname></xref>. </p> </dd> </dlentry> <dlentry><dt>Recognizer list</dt> <dd><p>The MIME recognition framework maintains a list of MIME recognizers. The recognizer list is constructed based on the data types the MIME recognizers claim to support and is ordered by priority. </p> </dd> </dlentry> <dlentry><dt>Confidence level</dt> <dd><p>A MIME recognizer reads a small piece of data from the start of a file or stream. It attempts to match the data with one of its known types. If the match is complete it returns the associated data type with full confidence (ECertain) and if there is no match it returns no data type with no confidence (ENotRecognized). If there is a partial match it can return a data type with an intermediate confidence level (EPossible, EUnlikely, ENotRecognized). </p> <p>The confidence of MIME recognizers can be expressed in 5 different levels: </p> <ul><li id="GUID-1C6B8B13-6303-5B3E-804E-9798B8CC39F3"><p> <codeph>ECertain</codeph>  </p> </li> <li id="GUID-9BF81FB9-CF0E-59D6-B7F7-5B31D161B760"><p> <codeph>EProbable</codeph>  </p> </li> <li id="GUID-9F2047BD-67C0-57D6-88A7-0B087D99F4BA"><p> <codeph>EPossible</codeph>  </p> </li> <li id="GUID-7A4B066D-9884-5F8E-B455-588DE546EB69"><p> <codeph>EUnlikely</codeph>  </p> </li> <li id="GUID-71651D00-8254-56C4-B26D-DCFB4AA658E5"><p> <codeph>ENotRecognized</codeph>  </p> </li> </ul> <p>By default, the confidence level of the MIME Recognizer is <codeph>ECertain</codeph>. </p> <p>For more details refer <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-3DCAE2B7-E840-3838-83BC-3D7FE73A1757"><apiname>CApaDataRecognizerType::TRecognitionConfidence</apiname></xref>. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>MIME recognizers are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECOM</xref> plugins, located under <filepath>\sys\bin\</filepath>. </p> <fig id="GUID-981203F5-B7D7-54F4-95E5-AFA2D1286BFF"><title>
+             MIME framework architecture 
+          </title> <image href="GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e169416_href.jpg" placement="inline"/></fig> <ul><li id="GUID-17CE2467-5B33-5B07-95A7-CCCF9D66E693"><p>AppArc is the main client of the MIME recognition framework. </p> </li> <li id="GUID-CAEDF3BA-B7AA-5F60-BF9F-CA308CAF7002"><p>Applications that need data type recognition use the MIME recognition framework via AppArc APIs. </p> </li> <li id="GUID-E3763687-3E7D-5D24-BC92-88DE1CC11D2B"><p>The MIME recognition framework delegates the data type identification task to an appropriate MIME recognizer. </p> </li> <li id="GUID-94882AE7-A578-507C-AE2E-6C778B78F52B"><p>The MIME recognizer identifies the data type. </p> </li> <li id="GUID-5F74226E-0EAA-5338-BED9-5A58B54ECC2F"><p>AppArc launches the application for the identified data type. </p> </li> </ul> </section> <section><title>APIs</title> <table id="GUID-6573D858-F2D1-5E0C-B330-951D0324702C"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>  </p> </entry> <entry><p>Is the abstract base class for a recognizer. Recognizers need to define and implement a derived class and provide an implementation of the functions.This class contains the MIME APIs related to MIME recognition framework. </p> </entry> </row> <row><entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry> <entry><p>A session with the application architecture server. The server provides access to a cached list of the applications on the device. This class contains the AppArc APIs related to MIME recognition framework. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The MIME recognition framework allows the plug-in writers to: </p> <ul><li id="GUID-FEBCF579-E483-58D3-9BEB-A9A50F58F1FA"><p><xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Write Data(MIME) Recogzisers</xref>  </p> </li> </ul> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366-master.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e51873_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e57480_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e58382_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e62404_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e69109_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e74252_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e280024_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EC824DA2-CA19-567C-8218-7C6E1C5ED461_d0e283710_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EC98E7E0-872D-467D-BDC8-6471F6165705.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,67 +1,69 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705" xml:lang="en"><title>Universal
-indicator pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Universal indicator pop-up is touch-only component. It is activated by
-tapping the universal indicators or the digital clock. It always includes
-battery and connectivity indicators and digital clock. For each visible universal
-indicator, there is one row reserved in the pop-up for displaying the icon
-and the description text. Hence, the user can view the preferred indicator.
-The description text also informs the current status and/or it may be a link
-to a view in corresponding application. For example, by tapping the text “3
-new messages” opens the relevant view from the messaging application, tapping
-“Bluetooth active” switches view to the Bluetooth settings. Content of the
-row is determined by the application originating the indicator.</p>
-<fig id="GUID-9ACEF376-FE52-4834-8A67-53EA68BACFBF">
-<title>Universal indicator pop-up</title>
-<image href="GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e68374_href.png" placement="inline"/>
-</fig>
-<p/>
-<table id="GUID-03B51B9A-B474-4AB8-8957-6E025AA854F0"><title>Default touch events in Universal indicator pop-up</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
-<colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down and release in Universal indicator pop-up area (anywhere
-except on link).</p></entry>
-<entry><p>No change.</p><p><note>The ’information area’, which is plain text,
-has no touch interaction.</note></p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release on function link</p></entry>
-<entry><p>Performs appropriate action. The ’activation area’ (= link) works
-with touch down and release.</p></entry>
-<entry><p>Highlight is shown on touch down and it disappears on release.</p><p>Tactile:
-Sensitive button effect and audio given with touch down event. No effect on
-touch release.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and release outside Universal indicator pop-up</p></entry>
-<entry><p>Dismisses pop-up, but no ’underlying’ action is performed.</p><p>Touch
-down, move and touch release outside the status indicator area cancels any
-action.</p></entry>
-<entry><p>Tactile: Pop-up effect when opening and closing, irrespective of
-the theme effects being ON or OFF.</p></entry>
-</row>
-</tbody>
-</tgroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EC98E7E0-872D-467D-BDC8-6471F6165705" xml:lang="en"><title>Universal
+indicator pop-up</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Universal indicator pop-up is touch-only component. It is activated by
+tapping the universal indicators or the digital clock. It always includes
+battery and connectivity indicators and digital clock. For each visible universal
+indicator, there is one row reserved in the pop-up for displaying the icon
+and the description text. Hence, the user can view the indicator displayed
+in the Universal Indicator pane. The description text also informs the current
+status and/or it may be a link to a view in corresponding application. For
+example, by tapping the text “3 new messages” opens the relevant view from
+the messaging application, tapping “Bluetooth active” switches view to the
+Bluetooth settings. Content of the row is determined by the application originating
+the indicator.</p>
+<fig id="GUID-9ACEF376-FE52-4834-8A67-53EA68BACFBF">
+<title>Universal indicator pop-up</title>
+<image href="GUID-2CBD504A-5538-4823-9139-2941A0BA5E8B_d0e63133_href.png" placement="inline"/>
+</fig>
+<p/>
+<table id="GUID-03B51B9A-B474-4AB8-8957-6E025AA854F0"><title>Default touch
+events in Universal indicator pop-up</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/>
+<colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down and release in Universal indicator pop-up area (anywhere
+except on link).</p></entry>
+<entry><p>No change.</p><p><note>The ’information area’, which is plain text,
+has no touch interaction.</note></p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release on function link</p></entry>
+<entry><p>Performs appropriate action. The ’activation area’ (= link) works
+with touch down and release.</p></entry>
+<entry><p>Highlight is shown on touch down and it disappears on release.</p><p>Tactile:
+Sensitive button effect and audio given with touch down event. No effect on
+touch release.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and release outside Universal indicator pop-up</p></entry>
+<entry><p>Dismisses pop-up, but no ’underlying’ action is performed.</p><p>Touch
+down, move and touch release outside the status indicator area cancels any
+action.</p></entry>
+<entry><p>Tactile: Pop-up effect when opening and closing, irrespective of
+the theme effects being ON or OFF.</p></entry>
+</row>
+</tbody>
+</tgroup>
 </table></conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e177456_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ECACB935-AD19-5BE6-AC27-A63465244087_d0e184050_href.png has changed
--- a/Symbian3/SDK/Source/GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781"><title>Audio Output Streaming Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to use Audio Output Streaming. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to open, play and then close an audio output stream. </p> <p><b>Required Background</b> </p> <p>The user needs to maintain the data packets in a queue before starting to send it to the server. There is no need for the entire sound clip to arrive to be able to pass on to the low level audio controller. They can be forwarded as they arrive. If the server tends to receive data more than it can read or process, then a separate queue is maintained in the client side whose elements are references to the buffers passed to it. Once the server is free to receive more data the client sends the data in the queue and receives a notification from the server by means of a callback. As a result of this, the client deletes the data fragments from the queue. </p> <p>Upon receiving the data packets the audio controller maintains them in the received buffers. A read function is instantiated to read the data into the destination descriptors. </p> <p><b>Introduction</b> </p> <p>The Audio streaming API is the interface providing the functionalities for playing, stopping, and recording the audio stream to and from the audio buffers. The audio output stream interface class, <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>, enables client applications to: </p> <ul><li id="GUID-542B9854-AF72-5A00-B05C-AF7DE8C56916"><p>Stream raw audio data from specified buffers to audio devices. </p> </li> <li id="GUID-C4F56B32-661A-5160-AE11-C11BCCDA856E"><p>Specify the priority of the audio stream relative to other clients trying to use the same hardware. </p> </li> <li id="GUID-40790849-788F-56A1-8116-90AA755698DE"><p>Set the sample rate and the number of audio channels before playback. </p> </li> <li id="GUID-3664365E-FB62-5EB6-B396-B83655ECC49C"><p>Adjust the volume and channel balance during playback. </p> </li> </ul> </section> <section><title>Using Audio Output Streaming </title> <p>Typically, using an audio output stream involves the following steps as shown in the sequence diagram below: </p> <fig id="GUID-2D2AAE41-55E6-5BB6-B572-0A8C8015054C"><image href="GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e315546_href.png" placement="inline"/></fig> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-C498F32D-D466-5C10-893D-71B8168E6C1D"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-7435C237-DB6C-516E-BB4D-C31BF96470B0"> Constructing an audio output stream</xref>  </p> </li> <li id="GUID-F66078F3-9125-5277-BEAF-2740869354ED"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-A48822BE-E726-5892-A83D-CDD224C27EA0"> Opening an audio output stream</xref>  </p> </li> <li id="GUID-F3A82F27-5406-5937-BC5E-E83D9C7A6F6B"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-E21EE5D7-42ED-5D7C-AB8F-000D6BBE88A9">Getting and setting the stream properties</xref>  </p> </li> <li id="GUID-5F166776-8C9C-5C00-8A39-E77C9157DF59"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-CD886111-BE51-523D-A782-FA35A3889A0B"> Playing an audio output stream</xref>  </p> </li> <li id="GUID-7F60C260-A0B3-51C7-A1B1-4BE5A3F7E03A"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-B18F568C-E82B-5D46-A225-96816258E8AB">Stopping an audio output stream</xref>  </p> </li> </ul> <p id="GUID-7435C237-DB6C-516E-BB4D-C31BF96470B0"><b>Basic Procedure for Constructing an Audio Output Stream</b> </p> <p>The high level step to construct an audio output stream is shown here: </p> <ul><li id="GUID-8314E401-E900-587A-A7DD-2899214AB883"><p>The client application creates an audio output stream object using the static function <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita#GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D/GUID-B4D44672-C628-304A-B36E-8AF0ACAA8A80"><apiname>CMdaAudioOutputStream::NewL()</apiname></xref>. Optionally, it also sets the audio priorities to be able to access the audio hardware in relation to the other clients trying to access the same device. </p> <codeblock id="GUID-ACD5FF96-44F1-5DC8-8A89-CD3C193EAACE" xml:space="preserve">static IMPORT_C CMdaAudioOutputStream *NewL(MMdaAudioOutputStreamCallback &amp;aCallBack, 
-TInt aPriority, TMdaPriorityPreference aPref=EMdaPriorityPreferenceTimeAndQuality);</codeblock> </li> </ul> <p id="GUID-A48822BE-E726-5892-A83D-CDD224C27EA0"><b>Basic Procedure for Opening an Audio Output Stream </b> </p> <p>The high level steps to open an audio output stream are shown here: </p> <ol id="GUID-B7CF17BD-41ED-5B34-8801-7101170D43C9"><li id="GUID-074798AB-3B28-52FA-9082-0B34DBB6118C"><p>To open the output stream, use the <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref> member function. For example: </p> <codeblock id="GUID-7EA3B237-91BB-5933-AAEE-1A59375BF004" xml:space="preserve">virtual void Open(TMdaPackage* aSettings);</codeblock> </li> <li id="GUID-2D96C7A5-A81C-5B6A-A977-5A897B357FEE"><p>Once the stream is open <xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita#GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8/GUID-148F9A5D-883E-3E9E-A3F4-FBACFACC2CB4"><apiname>MMdaAudioOutputStreamCallback::MaoscOpenComplete()</apiname></xref> is invoked to indicate that the stream is ready to use. </p> <codeblock id="GUID-6F18FC40-E21D-58D9-8703-0BDA17E69F0A" xml:space="preserve">void CIOStreamAudio::MaoscOpenComplete(TInt aError)
-    {
-    ASSERT(iState==EStateOpeningOutput);
-    TInt error = aError;
-    if (error==KErrNone)
-        {
-        iState = EStateWriting;    
-        iOutputStream-&gt;SetVolume(iOutputStream-&gt;MaxVolume()/2);
-        TRAP(error, iOutputStream-&gt;WriteL(iMainBuffer));
-        }
-    if (error!=KErrNone)
-        {
-        Complete(aError);    
-        }
-    }</codeblock> </li> </ol> <p id="GUID-E21EE5D7-42ED-5D7C-AB8F-000D6BBE88A9"><b>Basic Procedure for Getting and Setting the Stream Properties</b> </p> <p>The high level steps to get and set stream properties are shown here: </p> <ol id="GUID-A7DF8DD3-B3CC-56AB-B900-5FA1AB5D7E89"><li id="GUID-D300515F-450D-52E2-A7A3-5AB02A642143"><p>To set the sampling rate and number of audio channels use <xref href="GUID-38034819-8999-3EBE-9833-479D96D5DAB6.dita"><apiname>SetAudioPropertiesL()</apiname></xref>. For example: </p> <codeblock id="GUID-C36320C7-403B-50B2-868E-F8B23C3F921C" xml:space="preserve">virtual void SetAudioPropertiesL(TInt aSampleRate, TInt aChannels);</codeblock> <p>You cannot set these values while playing the stream. Also, you must specify them as enums; for example, <xref href="GUID-CF54F882-E290-3C68-9352-79C6B7303FDF.dita#GUID-CF54F882-E290-3C68-9352-79C6B7303FDF/GUID-681C1220-0CDD-34BF-848F-9DC82CB001DB"><apiname>TMdaAudioDataSettings::ESampleRate8000Hz</apiname></xref> rather than <codeph>8000</codeph> (Hz). </p> </li> <li id="GUID-77B3670A-0DC3-52BE-B245-58AF9852AF66"><p>The <xref href="GUID-657CDF11-EA74-3074-9872-412D2C26F3E6.dita"><apiname>Volume()</apiname></xref> and <xref href="GUID-DDE4193C-AB52-3FE9-8AD5-2DB344BD3404.dita"><apiname>GetbalanceL()</apiname></xref> member functions let you determine current volume and balance settings. For example: </p> <ul><li id="GUID-581B588C-5F23-57F6-9113-A34B2B796AE1"><codeblock id="GUID-07B29807-340D-5C6E-89F5-F0522F3CD611" xml:space="preserve">IMPORT_C TInt GetBalanceL() const;</codeblock> </li> <li id="GUID-550C5E9C-4073-5F54-937F-2FD6E0A0F684"><codeblock id="GUID-6C5293FE-EB1B-52B2-BE07-2E0D0393B863" xml:space="preserve">virtual TInt Volume();</codeblock> </li> </ul> </li> <li id="GUID-23A18BCE-75EB-5B7D-8812-A7D883061B1B"><p>The <xref href="GUID-171667CD-06F4-3DF5-A4E1-360422F362D2.dita"><apiname>SetVolume()</apiname></xref> and <xref href="GUID-D1856981-6A17-3CD9-80B5-65781A803BA4.dita"><apiname>SetBalanceL()</apiname></xref> member functions let you set the volume and balance respectively. You can use them while the stream is open, with the new settings taking immediate effect. </p> </li> </ol> <p id="GUID-CD886111-BE51-523D-A782-FA35A3889A0B"><b>Basic Procedure for Playing an Audio Output Stream</b> </p> <p>The high level steps to play an audio output stream are shown here: </p> <ol id="GUID-EABB52B7-5B85-5E65-9BA5-58168A0331AA"><li id="GUID-C2D6E0ED-85F3-5FF5-BA6A-67EAEB039CE2"><p>To play an audio stream from the current position use the <xref href="GUID-60E583FD-35E0-349A-B2A9-B28C8B8B4AE1.dita"><apiname>WriteL()</apiname></xref> member function. For example: </p> <codeblock id="GUID-2BAD8EF3-AA4D-564A-816F-5ABC69863153" xml:space="preserve">virtual void WriteL(const TDesC8&amp; aData);</codeblock> <p>This function is asynchronous. </p> <p>When <codeph>aData</codeph> is received, the client is notified by a call to <xref href="GUID-EF3C442E-03C4-3630-98A8-C2ABD94D1A3F.dita#GUID-EF3C442E-03C4-3630-98A8-C2ABD94D1A3F/GUID-D4E0CAA0-9FF3-3E02-BC0B-CCC9F91E8E66"><apiname>MdaAudioOutputStreamCallback::MaoscBufferCopied()</apiname></xref>. </p> <codeblock id="GUID-BF75B2F0-9A63-5249-BF37-007A817D8C0A" xml:space="preserve">void CIOStreamAudio::MaoscBufferCopied(TInt aError, const TDesC8&amp; IFDEBUG(aBuffer))
-    {
-    ASSERT(iState==EStateWriting);
-    if (aError!=KErrNone)
-        {
-        // ignore any KErrAbort returns - this would happen during a Stop() call
-        // if we were playing 
-        if (aError!=KErrAbort)
-            {
-            Complete(aError);    
-            }
-        }
-    else
-        {
-        ASSERT(aBuffer.Length()==iMainBuffer.Length());
-        // output almost complete - have been asked for more data
-        iState = EStateWritingPostBuffer;
-        }
-    }</codeblock> <p>The <xref href="GUID-60E583FD-35E0-349A-B2A9-B28C8B8B4AE1.dita"><apiname>WriteL()</apiname></xref> can be called again before this notification is triggered because the buffers are held in a client-side queue until they have been sent. </p> </li> <li id="GUID-1671B229-D248-56E6-9CBA-6F2A674B3ED9"><p>When the audio stream has completed playing, the callback function <xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita#GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8/GUID-93577BCB-6063-3BC4-A051-38A5BE5C6A8C"><apiname>MMdaAudioOutputStreamCallback::MaoscPlayComplete()</apiname></xref> is invoked. </p> <codeblock id="GUID-033737CB-294F-5B55-A5BF-C66245B172DE" xml:space="preserve">void CIOStreamAudio::MaoscPlayComplete(TInt aError)
-    {
-    ASSERT(iState==EStateWriting || iState==EStateWritingPostBuffer);
-    TInt error = aError;
-    if (aError==KErrUnderflow &amp;&amp; iState==EStateWritingPostBuffer)
-        {
-        error = KErrNone; // normal termination is underflow following buffer request    
-        }
-    Complete(error);
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781"><title>Audio Output Streaming Tutorial</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to use Audio Output Streaming. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to open, play and then close an audio output stream. </p> <p><b>Required Background</b> </p> <p>The user needs to maintain the data packets in a queue before starting to send it to the server. There is no need for the entire sound clip to arrive to be able to pass on to the low level audio controller. They can be forwarded as they arrive. If the server tends to receive data more than it can read or process, then a separate queue is maintained in the client side whose elements are references to the buffers passed to it. Once the server is free to receive more data the client sends the data in the queue and receives a notification from the server by means of a callback. As a result of this, the client deletes the data fragments from the queue. </p> <p>Upon receiving the data packets the audio controller maintains them in the received buffers. A read function is instantiated to read the data into the destination descriptors. </p> <p><b>Introduction</b> </p> <p>The Audio streaming API is the interface providing the functionalities for playing, stopping, and recording the audio stream to and from the audio buffers. The audio output stream interface class, <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>, enables client applications to: </p> <ul><li id="GUID-542B9854-AF72-5A00-B05C-AF7DE8C56916"><p>Stream raw audio data from specified buffers to audio devices. </p> </li> <li id="GUID-C4F56B32-661A-5160-AE11-C11BCCDA856E"><p>Specify the priority of the audio stream relative to other clients trying to use the same hardware. </p> </li> <li id="GUID-40790849-788F-56A1-8116-90AA755698DE"><p>Set the sample rate and the number of audio channels before playback. </p> </li> <li id="GUID-3664365E-FB62-5EB6-B396-B83655ECC49C"><p>Adjust the volume and channel balance during playback. </p> </li> </ul> </section> <section><title>Using Audio Output Streaming </title> <p>Typically, using an audio output stream involves the following steps as shown in the sequence diagram below: </p> <fig id="GUID-2D2AAE41-55E6-5BB6-B572-0A8C8015054C"><image href="GUID-534C1D1A-9450-5A1B-933F-5157039BF069_d0e309152_href.png" placement="inline"/></fig> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-C498F32D-D466-5C10-893D-71B8168E6C1D"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-7435C237-DB6C-516E-BB4D-C31BF96470B0"> Constructing an audio output stream</xref>  </p> </li> <li id="GUID-F66078F3-9125-5277-BEAF-2740869354ED"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-A48822BE-E726-5892-A83D-CDD224C27EA0"> Opening an audio output stream</xref>  </p> </li> <li id="GUID-F3A82F27-5406-5937-BC5E-E83D9C7A6F6B"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-E21EE5D7-42ED-5D7C-AB8F-000D6BBE88A9">Getting and setting the stream properties</xref>  </p> </li> <li id="GUID-5F166776-8C9C-5C00-8A39-E77C9157DF59"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-CD886111-BE51-523D-A782-FA35A3889A0B"> Playing an audio output stream</xref>  </p> </li> <li id="GUID-7F60C260-A0B3-51C7-A1B1-4BE5A3F7E03A"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita#GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781/GUID-B18F568C-E82B-5D46-A225-96816258E8AB">Stopping an audio output stream</xref>  </p> </li> </ul> <p id="GUID-7435C237-DB6C-516E-BB4D-C31BF96470B0"><b>Basic Procedure for Constructing an Audio Output Stream</b> </p> <p>The high level step to construct an audio output stream is shown here: </p> <ul><li id="GUID-8314E401-E900-587A-A7DD-2899214AB883"><p>The client application creates an audio output stream object using the static function <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita#GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D/GUID-B4D44672-C628-304A-B36E-8AF0ACAA8A80"><apiname>CMdaAudioOutputStream::NewL()</apiname></xref>. Optionally, it also sets the audio priorities to be able to access the audio hardware in relation to the other clients trying to access the same device. </p> <codeblock id="GUID-ACD5FF96-44F1-5DC8-8A89-CD3C193EAACE" xml:space="preserve">static IMPORT_C CMdaAudioOutputStream *NewL(MMdaAudioOutputStreamCallback &amp;aCallBack, 
+TInt aPriority, TMdaPriorityPreference aPref=EMdaPriorityPreferenceTimeAndQuality);</codeblock> </li> </ul> <p id="GUID-A48822BE-E726-5892-A83D-CDD224C27EA0"><b>Basic Procedure for Opening an Audio Output Stream </b> </p> <p>The high level steps to open an audio output stream are shown here: </p> <ol id="GUID-B7CF17BD-41ED-5B34-8801-7101170D43C9"><li id="GUID-074798AB-3B28-52FA-9082-0B34DBB6118C"><p>To open the output stream, use the <xref href="GUID-20D0D10F-3401-3F72-8AF6-DC35F6025DC2.dita"><apiname>Open()</apiname></xref> member function. For example: </p> <codeblock id="GUID-7EA3B237-91BB-5933-AAEE-1A59375BF004" xml:space="preserve">virtual void Open(TMdaPackage* aSettings);</codeblock> </li> <li id="GUID-2D96C7A5-A81C-5B6A-A977-5A897B357FEE"><p>Once the stream is open <xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita#GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8/GUID-148F9A5D-883E-3E9E-A3F4-FBACFACC2CB4"><apiname>MMdaAudioOutputStreamCallback::MaoscOpenComplete()</apiname></xref> is invoked to indicate that the stream is ready to use. </p> <codeblock id="GUID-6F18FC40-E21D-58D9-8703-0BDA17E69F0A" xml:space="preserve">void CIOStreamAudio::MaoscOpenComplete(TInt aError)
+    {
+    ASSERT(iState==EStateOpeningOutput);
+    TInt error = aError;
+    if (error==KErrNone)
+        {
+        iState = EStateWriting;    
+        iOutputStream-&gt;SetVolume(iOutputStream-&gt;MaxVolume()/2);
+        TRAP(error, iOutputStream-&gt;WriteL(iMainBuffer));
+        }
+    if (error!=KErrNone)
+        {
+        Complete(aError);    
+        }
+    }</codeblock> </li> </ol> <p id="GUID-E21EE5D7-42ED-5D7C-AB8F-000D6BBE88A9"><b>Basic Procedure for Getting and Setting the Stream Properties</b> </p> <p>The high level steps to get and set stream properties are shown here: </p> <ol id="GUID-A7DF8DD3-B3CC-56AB-B900-5FA1AB5D7E89"><li id="GUID-D300515F-450D-52E2-A7A3-5AB02A642143"><p>To set the sampling rate and number of audio channels use <xref href="GUID-38034819-8999-3EBE-9833-479D96D5DAB6.dita"><apiname>SetAudioPropertiesL()</apiname></xref>. For example: </p> <codeblock id="GUID-C36320C7-403B-50B2-868E-F8B23C3F921C" xml:space="preserve">virtual void SetAudioPropertiesL(TInt aSampleRate, TInt aChannels);</codeblock> <p>You cannot set these values while playing the stream. Also, you must specify them as enums; for example, <xref href="GUID-CF54F882-E290-3C68-9352-79C6B7303FDF.dita#GUID-CF54F882-E290-3C68-9352-79C6B7303FDF/GUID-681C1220-0CDD-34BF-848F-9DC82CB001DB"><apiname>TMdaAudioDataSettings::ESampleRate8000Hz</apiname></xref> rather than <codeph>8000</codeph> (Hz). </p> </li> <li id="GUID-77B3670A-0DC3-52BE-B245-58AF9852AF66"><p>The <xref href="GUID-657CDF11-EA74-3074-9872-412D2C26F3E6.dita"><apiname>Volume()</apiname></xref> and <xref href="GUID-DDE4193C-AB52-3FE9-8AD5-2DB344BD3404.dita"><apiname>GetbalanceL()</apiname></xref> member functions let you determine current volume and balance settings. For example: </p> <ul><li id="GUID-581B588C-5F23-57F6-9113-A34B2B796AE1"><codeblock id="GUID-07B29807-340D-5C6E-89F5-F0522F3CD611" xml:space="preserve">IMPORT_C TInt GetBalanceL() const;</codeblock> </li> <li id="GUID-550C5E9C-4073-5F54-937F-2FD6E0A0F684"><codeblock id="GUID-6C5293FE-EB1B-52B2-BE07-2E0D0393B863" xml:space="preserve">virtual TInt Volume();</codeblock> </li> </ul> </li> <li id="GUID-23A18BCE-75EB-5B7D-8812-A7D883061B1B"><p>The <xref href="GUID-171667CD-06F4-3DF5-A4E1-360422F362D2.dita"><apiname>SetVolume()</apiname></xref> and <xref href="GUID-D1856981-6A17-3CD9-80B5-65781A803BA4.dita"><apiname>SetBalanceL()</apiname></xref> member functions let you set the volume and balance respectively. You can use them while the stream is open, with the new settings taking immediate effect. </p> </li> </ol> <p id="GUID-CD886111-BE51-523D-A782-FA35A3889A0B"><b>Basic Procedure for Playing an Audio Output Stream</b> </p> <p>The high level steps to play an audio output stream are shown here: </p> <ol id="GUID-EABB52B7-5B85-5E65-9BA5-58168A0331AA"><li id="GUID-C2D6E0ED-85F3-5FF5-BA6A-67EAEB039CE2"><p>To play an audio stream from the current position use the <xref href="GUID-60E583FD-35E0-349A-B2A9-B28C8B8B4AE1.dita"><apiname>WriteL()</apiname></xref> member function. For example: </p> <codeblock id="GUID-2BAD8EF3-AA4D-564A-816F-5ABC69863153" xml:space="preserve">virtual void WriteL(const TDesC8&amp; aData);</codeblock> <p>This function is asynchronous. </p> <p>When <codeph>aData</codeph> is received, the client is notified by a call to <xref href="GUID-EF3C442E-03C4-3630-98A8-C2ABD94D1A3F.dita#GUID-EF3C442E-03C4-3630-98A8-C2ABD94D1A3F/GUID-D4E0CAA0-9FF3-3E02-BC0B-CCC9F91E8E66"><apiname>MdaAudioOutputStreamCallback::MaoscBufferCopied()</apiname></xref>. </p> <codeblock id="GUID-BF75B2F0-9A63-5249-BF37-007A817D8C0A" xml:space="preserve">void CIOStreamAudio::MaoscBufferCopied(TInt aError, const TDesC8&amp; IFDEBUG(aBuffer))
+    {
+    ASSERT(iState==EStateWriting);
+    if (aError!=KErrNone)
+        {
+        // ignore any KErrAbort returns - this would happen during a Stop() call
+        // if we were playing 
+        if (aError!=KErrAbort)
+            {
+            Complete(aError);    
+            }
+        }
+    else
+        {
+        ASSERT(aBuffer.Length()==iMainBuffer.Length());
+        // output almost complete - have been asked for more data
+        iState = EStateWritingPostBuffer;
+        }
+    }</codeblock> <p>The <xref href="GUID-60E583FD-35E0-349A-B2A9-B28C8B8B4AE1.dita"><apiname>WriteL()</apiname></xref> can be called again before this notification is triggered because the buffers are held in a client-side queue until they have been sent. </p> </li> <li id="GUID-1671B229-D248-56E6-9CBA-6F2A674B3ED9"><p>When the audio stream has completed playing, the callback function <xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita#GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8/GUID-93577BCB-6063-3BC4-A051-38A5BE5C6A8C"><apiname>MMdaAudioOutputStreamCallback::MaoscPlayComplete()</apiname></xref> is invoked. </p> <codeblock id="GUID-033737CB-294F-5B55-A5BF-C66245B172DE" xml:space="preserve">void CIOStreamAudio::MaoscPlayComplete(TInt aError)
+    {
+    ASSERT(iState==EStateWriting || iState==EStateWritingPostBuffer);
+    TInt error = aError;
+    if (aError==KErrUnderflow &amp;&amp; iState==EStateWritingPostBuffer)
+        {
+        error = KErrNone; // normal termination is underflow following buffer request    
+        }
+    Complete(error);
     }</codeblock> <p>This closes the stream and sets the callback <xref href="GUID-DA707A8F-7006-3193-B8E5-3197BB471B4F.dita"><apiname>aError</apiname></xref> to <xref href="GUID-F9B50A12-0CDE-3D5F-89B2-E2864B00E156.dita"><apiname>KErrUnderFlow</apiname></xref>. </p> </li> </ol> <p id="GUID-B18F568C-E82B-5D46-A225-96816258E8AB"><b>Basic Procedure for Stopping an Audio Output Stream</b> </p> <p>The high level step to stop an audio output stream is shown here: </p> <ul><li id="GUID-453E8330-16E2-5A6A-B2B4-E1D08E80AC12"><p>To stop audio playback (stop data being sent to the stream) use the <xref href="GUID-7CBDCF0D-1D11-34D1-BF5C-1E5B50DA75B5.dita"><apiname>Stop()</apiname></xref> member function. </p> <p>For example: </p> <codeblock id="GUID-084898F1-DB72-5DB4-9FCA-581F1AA96F6F" xml:space="preserve">virtual void Stop();</codeblock> <p>This invokes <xref href="GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8.dita#GUID-A35C1D9B-DC43-39FB-9FF1-39CD01D981B8/GUID-93577BCB-6063-3BC4-A051-38A5BE5C6A8C"><apiname>MMdaAudioOutputStreamCallback::MaoscPlayComplete()</apiname></xref> to notify successful closure of the stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita"> Audio Input Streaming Tutorial</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ED198434-94C0-4842-8353-B2FA319BA5C7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,46 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7" xml:lang="en"><title>Warning
-note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-61BDB896-12F1-43D1-B4DD-65BB42911AB6"><p>Warning
-notes are used when the user must be notified about something that may require
-action. They have a fairly long duration, and a sound that can be heard (and
-distinguished) even when not concentrating on the phone. For example, the
-battery low warning. </p></section>
-<section id="GUID-6A2B479D-A60D-4153-9221-7771F38B4A92"><title>Using
-warning notes in C++ applications</title><p>You can create either a basic
-warning note that is displayed only when your application is in the foreground
-or a global note that stays displayed even if the application launching the
-note is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes
-API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use a warning
-note with the default icon, text, sound, and duration, create an instance
-of the note class <xref href="GUID-D4F6D7BE-8C61-3FE7-88B0-FEBDF57BFE0D.dita"><apiname>CAknWarningNote</apiname></xref>. </p><p>To create a global
-warning note, use the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
-notes, you can change the icon or text displayed in the note, use a different
-kind of sound, or change the note duration using the setter methods in the
-class <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref>: <codeph>SetIconL()</codeph>,<codeph>SetTextL()</codeph>, <codeph>SetTone()</codeph> and <codeph>SetTimeout()</codeph>.</p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the
-graphic, animation, tone, and softkeys using the methods in the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref>: <codeph>SetGraphic()</codeph>, <codeph>SetAnimation()</codeph>, <codeph>SetTone()</codeph>, and <codeph>SetSoftkeys()</codeph>.</p></section>
-
-</conbody><related-links>
-<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
-note</linktext></link>
-<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
-note</linktext></link>
-<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
-</link>
-<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
-note</linktext></link>
-<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
-</link>
-<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
-note</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ED198434-94C0-4842-8353-B2FA319BA5C7" xml:lang="en"><title>Warning
+note</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-61BDB896-12F1-43D1-B4DD-65BB42911AB6"><p>Warning
+notes are used when the user must be notified about something that may require
+action. They have a fairly long duration, and a sound that can be heard (and
+distinguished) even when not concentrating on the phone. For example, the
+battery low warning. </p></section>
+<section id="GUID-6A2B479D-A60D-4153-9221-7771F38B4A92"><title>Using
+warning notes in applications</title><p>You can create either a basic warning
+note that is displayed only when your application is in the foreground or
+a global note that stays displayed even if the application launching the note
+is not in the foreground. The related APIs are the <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html" scope="peer">Notes API</xref> (for basic notes) and the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref> (for global notes).</p><p>To use a warning
+note with the default icon, text, sound, and duration, create an instance
+of the note class <xref href="GUID-D4F6D7BE-8C61-3FE7-88B0-FEBDF57BFE0D.dita"><apiname>CAknWarningNote</apiname></xref>. </p><p>To create a global
+warning note, use the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref> in the <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html" scope="peer">Notifiers API</xref>. For implementation information, see <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.5" scope="peer">Using global notes</xref> and <xref format="html" href="specs/guides/Notes_API_Specification/Notes_API_Specification.html#Notes_API_Specification.topic3.6" scope="peer">Using global notes with user interaction</xref>.</p><p>For basic
+notes, you can change the icon or text displayed in the note, use a different
+kind of sound, or change the note duration using the setter methods in the
+class <xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita"><apiname>CAknNoteDialog</apiname></xref>: <ul>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-414C2EDC-E2D4-3B36-9436-588A6E7DB674"><apiname>CAknNoteDialog::SetIconL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-3D9DDD5D-92CB-3CF9-A8E8-A551FDDD3398"><apiname>CAknNoteDialog::SetTextL()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-C512B481-10C3-343A-93C0-6661544815C0"><apiname>CAknNoteDialog::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E.dita#GUID-267BF374-66FD-3B7F-A56B-2A9689AEA35E/GUID-5C457F5F-71DB-3C45-A175-0AB6EA188186"><apiname>CAknNoteDialog::SetTimeout()</apiname></xref></p></li>
+</ul></p><p>For information on customizing global notes, see <xref format="html" href="specs/guides/Notifiers_API_Specification/Notifiers_API_Specification.html#Notifiers_API_Specification.topic3.4" scope="peer">Enhancing global notes</xref>. You can change the graphic, animation,
+tone, and softkeys using the methods in the class <xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita"><apiname>CAknGlobalNote</apiname></xref>: <ul>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-34F19A47-92FD-33B8-9691-4249000C4466"><apiname>CAknGlobalNote::SetGraphic()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-94D9D112-D50F-30F4-BF42-6D2B0096156E"><apiname>CAknGlobalNote::SetAnimation()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-D51CD0FE-5672-30D8-9DF0-39E94489FBB6"><apiname>CAknGlobalNote::SetTone()</apiname></xref></p></li>
+<li><p><xref href="GUID-2FF927BE-12D6-35E9-8466-011C252E5A66.dita#GUID-2FF927BE-12D6-35E9-8466-011C252E5A66/GUID-5BCD9086-4432-3D69-8194-D0131A1CD1FC"><apiname>CAknGlobalNote::SetSoftkeys()</apiname></xref></p></li>
+</ul></p></section>
+
+</conbody><related-links>
+<link href="GUID-875D74D3-5663-42E3-A4B9-294F82FF5486.dita"><linktext>Confirmation
+note</linktext></link>
+<link href="GUID-E449F309-F230-46F9-B777-EF64D0E3191D.dita"><linktext>Information
+note</linktext></link>
+<link href="GUID-E9F203A6-D9E3-41B7-9FC4-24EDE20C4753.dita"><linktext>Error note</linktext>
+</link>
+<link href="GUID-11B69814-5B3E-42AE-844E-998A7A08E654.dita"><linktext>Permanent
+note</linktext></link>
+<link href="GUID-93EFC9E4-8779-415D-ABEB-2AC9991996DD.dita"><linktext>Wait note</linktext>
+</link>
+<link href="GUID-81E33E18-D390-4110-8D85-1FCDA9CC311E.dita"><linktext>Progress
+note</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,173 +1,173 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30" xml:lang="en"><title>Markable
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A markable list is a selection list with the added marking feature. The
-user can mark any number of items on the list while browsing it, and then
-execute a single command, which is applied to all the marked items. This is
-analogous to the multiple-item highlight feature used in computer GUIs.</p>
-<p>The marking feature is typically applied to lists the user manages, containing
-a large number of items that may be for example sent, moved, or deleted. By
-marking items first and then selecting a command, the user can perform certain
-operations more quickly and with less key presses than by performing the command
-separately for each of the items.</p>
-<p>Marked items are indicated graphically.</p>
-<fig id="GUID-171B4713-C197-4D05-9FBC-E3296C26ABFF">
-<title>Markable list. Marked items are indicated graphically in the list.</title>
-<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e61778_href.png" placement="inline"/>
-</fig>
-<p>The <b>Mark</b> and <b>Unmark</b> functions are available in the Options
-menu of the markable list. Alternatively, or as a shortcut, the user can keep
-the Hash (#) key pressed while using the Arrow keys and the Selection key
-in the following way:</p>
-<ul>
-<li><p>Pressing the Hash (#) key marks the current item. This is a toggling
-function, so pressing the Hash (#) key on a marked item unmarks the item. </p></li>
-<li><p>Pressing an Arrow key (up or down) while holding down the Hash (#)
-key marks both the current item and the one onto which the focus moves. If
-the user keeps holding the Hash (#) key and scrolls further in the same direction,
-all the scrolled items become marked; to unmark the items in reverse order
-the user can scroll into the opposite direction while holding the Hash (#)
-key down. </p></li>
-<li><p>Items can be unmarked by pressing the Hash (#) key together with scrolling:
-if the user starts holding the Hash (#) key down when on a marked item and
-then scrolls, all the scrolled items become unmarked. </p></li>
-<li><p>Several marking actions can be done subsequently. The user can mark
-an item, then release the Hash (#) key, browse and move the focus onto some
-other item on the list, and then mark that item. The first item remains marked,
-and the ones between the two do not become marked. </p></li>
-<li><p>All items become unmarked when the user exits the list, for example
-by back stepping. There may be exceptions to this rule in certain applications
-that require selecting items from several levels of folder hierarchy. An example
-of this is creating a play list in the Media Player application. Items remain
-marked if the user opens and cancels the <b>Options</b> menu, or swaps applications. </p></li>
-<li><p>Pressing the Selection key when there are marked items on the list
-opens the context sensitive <b>Options</b> menu containing only those functions
-that apply to multiple items.</p></li>
-</ul>
-<p>A markable list functions exactly like a normal selection list, except
-for the marking feature.</p>
-<p>Devices that have the optional Edit key perform these same functions by
-using the Edit key and arrow keys instead of the Hash (#) key.</p>
-<p>The user may access the <b>Options</b> menu to perform functions on all
-marked items at once. When user has one or more items marked, <b>Options</b> menu
-does not contain items that apply to one item only (such as <b>Open</b>).
-Exceptions are Help and Exit, which should appear in every <b>Options</b> menu.
-Appropriate error handling must be designed for functions that do not apply
-to some or all of the marked items.</p>
-<ul>
-<li><p>When executing a function, if any of the items are marked, all the
-marked items are affected by the function. If the focus is on an item that
-is not marked, the function does not affect that item. </p></li>
-<li><p>After the selected function is successfully done, all items are unmarked.
-In an error case, when the function cannot be applied, the marks should remain
-in place.</p></li>
-</ul>
-<p>The Options menu includes the marking and unmarking functions in a submenu
-so that any user can find the feature. The submenu has also the <b>Mark all</b> and <b>Unmark</b> all
-options.</p>
-<p>For other keypad actions, see <xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
-list</xref>.</p>
-<table id="GUID-385DFE50-AC9B-4C4E-BCE4-98A088443E77"><title>Default touch
-events for Markable lists</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>The marked/unmarked status of all items remains unchanged.</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Touch release, while no item is marked</p></entry>
-<entry><p>Activates the item</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
-with touch release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold, while no item is marked</p></entry>
-<entry><p>Stylus pop-up menu is opened with an option Mark <i>§QTN_OPTIONS_LIST_MARK_ONE§</i>. </p><p>If
-user selects Mark, the pop-up is closed, highlight removed and the item becomes
-marked.</p></entry>
-<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
-If activates a long touch, then increasing long touch effect is provided with
-hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
-</row>
-<row>
-<entry><p>Touch release, while at least one item is marked</p></entry>
-<entry><p>A context specific options menu opens. The marked/unmarked status
-of all items remains unchanged. </p><p>Context specific options menu should
-contain items for Mark/Unmark and any needed items that apply to all marked
-items.</p></entry>
-<entry><p>Highlight disappears. Tactile: Pop-up open effect is provided. If
-pop-up has theme effects and they are ON, then increasing long touch effect
-is provided with touch release.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold, while at least one item is marked</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-BD658610-F69D-4CF6-9025-1BC567D3025A"><title>Default touch/key
-events for markable lists</title>
-<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Control and touch down</p></entry>
-<entry><p>Mark/unmark the item touched. </p><p>Toggle between marked and unmarked.</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-feedback is provided with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Control and touch release</p></entry>
-<entry><p>No effect</p></entry>
-<entry><p>Highlight disappears. </p><p>Tactile: No effect.</p></entry>
-</row>
-<row>
-<entry><p>Shift and touch down</p></entry>
-<entry><p>If there is highlight brought by the hardware key event, mark/unmark
-all items between focused and touched down item. </p><p>If the item touched
-down is unmarked, then all items between the item and focused item are marked,
-and vice versa.</p></entry>
-<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
-is provided with touch down.</p></entry>
-</row>
-<row>
-<entry><p>Control/Shift and touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<section id="GUID-69189A53-90FA-4874-AC60-D18D120C9C90"><title>Using
-markable lists in C++ applications</title><p>The API to use for markable lists
-is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ED784025-4E65-4BE9-ADA8-A13427B6EA30" xml:lang="en"><title>Markable
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A markable list is a selection list with the added marking feature. The
+user can mark any number of items on the list while browsing it, and then
+execute a single command, which is applied to all the marked items. This is
+analogous to the multiple-item highlight feature used in computer GUIs.</p>
+<p>The marking feature is typically applied to lists the user manages, containing
+a large number of items that may be for example sent, moved, or deleted. By
+marking items first and then selecting a command, the user can perform certain
+operations more quickly and with less key presses than by performing the command
+separately for each of the items.</p>
+<p>Marked items are indicated graphically.</p>
+<fig id="GUID-171B4713-C197-4D05-9FBC-E3296C26ABFF">
+<title>Markable list. Marked items are indicated graphically in the list.</title>
+<image href="GUID-8CCA308A-5302-4D95-8E60-DA75D8B6DC41_d0e57411_href.png" placement="inline"/>
+</fig>
+<p>The <b>Mark</b> and <b>Unmark</b> functions are available in the Options
+menu of the markable list. Alternatively, or as a shortcut, the user can keep
+the Hash (#) key pressed while using the Arrow keys and the Selection key
+in the following way:</p>
+<ul>
+<li><p>Pressing the Hash (#) key marks the current item. This is a toggling
+function, so pressing the Hash (#) key on a marked item unmarks the item. </p></li>
+<li><p>Pressing an Arrow key (up or down) while holding down the Hash (#)
+key marks both the current item and the one onto which the focus moves. If
+the user keeps holding the Hash (#) key and scrolls further in the same direction,
+all the scrolled items become marked; to unmark the items in reverse order
+the user can scroll into the opposite direction while holding the Hash (#)
+key down. </p></li>
+<li><p>Items can be unmarked by pressing the Hash (#) key together with scrolling:
+if the user starts holding the Hash (#) key down when on a marked item and
+then scrolls, all the scrolled items become unmarked. </p></li>
+<li><p>Several marking actions can be done subsequently. The user can mark
+an item, then release the Hash (#) key, browse and move the focus onto some
+other item on the list, and then mark that item. The first item remains marked,
+and the ones between the two do not become marked. </p></li>
+<li><p>All items become unmarked when the user exits the list, for example
+by back stepping. There may be exceptions to this rule in certain applications
+that require selecting items from several levels of folder hierarchy. An example
+of this is creating a play list in the Media Player application. Items remain
+marked if the user opens and cancels the <b>Options</b> menu, or swaps applications. </p></li>
+<li><p>Pressing the Selection key when there are marked items on the list
+opens the context sensitive <b>Options</b> menu containing only those functions
+that apply to multiple items.</p></li>
+</ul>
+<p>A markable list functions exactly like a normal selection list, except
+for the marking feature.</p>
+<p>Devices that have the optional Edit key perform these same functions by
+using the Edit key and arrow keys instead of the Hash (#) key.</p>
+<p>The user may access the <b>Options</b> menu to perform functions on all
+marked items at once. When user has one or more items marked, <b>Options</b> menu
+does not contain items that apply to one item only (such as <b>Open</b>).
+Exceptions are Help and Exit, which should appear in every <b>Options</b> menu.
+Appropriate error handling must be designed for functions that do not apply
+to some or all of the marked items.</p>
+<ul>
+<li><p>When executing a function, if any of the items are marked, all the
+marked items are affected by the function. If the focus is on an item that
+is not marked, the function does not affect that item. </p></li>
+<li><p>After the selected function is successfully done, all items are unmarked.
+In an error case, when the function cannot be applied, the marks should remain
+in place.</p></li>
+</ul>
+<p>The Options menu includes the marking and unmarking functions in a submenu
+so that any user can find the feature. The submenu has also the <b>Mark all</b> and <b>Unmark</b> all
+options.</p>
+<p>For other keypad actions, see <xref href="GUID-0822B030-E776-4BD5-B9C9-23D3821BCE1F.dita">Selection
+list</xref>.</p>
+<table id="GUID-385DFE50-AC9B-4C4E-BCE4-98A088443E77"><title>Default touch
+events for Markable lists</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>The marked/unmarked status of all items remains unchanged.</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Touch release, while no item is marked</p></entry>
+<entry><p>Activates the item</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: Basic list effect is provided
+with touch release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold, while no item is marked</p></entry>
+<entry><p>Stylus pop-up menu is opened with an option Mark <i>§QTN_OPTIONS_LIST_MARK_ONE§</i>. </p><p>If
+user selects Mark, the pop-up is closed, highlight removed and the item becomes
+marked.</p></entry>
+<entry><p>Highlight is shown. Animation is shown to indicate the opening pop-up. </p><p>Tactile:
+If activates a long touch, then increasing long touch effect is provided with
+hold event and pop-up effect is provided when the pop-up is opened.</p></entry>
+</row>
+<row>
+<entry><p>Touch release, while at least one item is marked</p></entry>
+<entry><p>A context specific options menu opens. The marked/unmarked status
+of all items remains unchanged. </p><p>Context specific options menu should
+contain items for Mark/Unmark and any needed items that apply to all marked
+items.</p></entry>
+<entry><p>Highlight disappears. Tactile: Pop-up open effect is provided. If
+pop-up has theme effects and they are ON, then increasing long touch effect
+is provided with touch release.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold, while at least one item is marked</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-BD658610-F69D-4CF6-9025-1BC567D3025A"><title>Default touch/key
+events for markable lists</title>
+<tgroup cols="3"><colspec colname="col1" colwidth="0.80*"/><colspec colname="col2" colwidth="1.01*"/><colspec colname="col3" colwidth="1.19*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Control and touch down</p></entry>
+<entry><p>Mark/unmark the item touched. </p><p>Toggle between marked and unmarked.</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+feedback is provided with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Control and touch release</p></entry>
+<entry><p>No effect</p></entry>
+<entry><p>Highlight disappears. </p><p>Tactile: No effect.</p></entry>
+</row>
+<row>
+<entry><p>Shift and touch down</p></entry>
+<entry><p>If there is highlight brought by the hardware key event, mark/unmark
+all items between focused and touched down item. </p><p>If the item touched
+down is unmarked, then all items between the item and focused item are marked,
+and vice versa.</p></entry>
+<entry><p>Highlight is shown.</p><p>Tactile: Basic list effect and audio feedback
+is provided with touch down.</p></entry>
+</row>
+<row>
+<entry><p>Control/Shift and touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<section id="GUID-69189A53-90FA-4874-AC60-D18D120C9C90"><title>Using
+markable lists in applications</title><p>The API to use for markable lists
+is the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e72175_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e77324_href.png has changed
Binary file Symbian3/SDK/Source/GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e79634_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF-master.png has changed
Binary file Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e51678_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e67259_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EDBCCC26-BA4D-4318-9F0D-62272FA97BBF_d0e72462_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EDC16636-B24E-598B-9084-EAE782A4A213.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EDC16636-B24E-598B-9084-EAE782A4A213.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EDC16636-B24E-598B-9084-EAE782A4A213" xml:lang="en"><title>What
-is Bearer Mobility</title><shortdesc>This topic describes the concept of <i>Bearer Mobility</i> in the
-Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Bearer Mobility is a feature that allows a device to change bearers without
-interruption to the user's data sessions. An example of a bearer change is
-if a device moves into the range of a Wi-Fi hot spot and the device moves
-the GPRS connections over to Wi-Fi. Example data sessions include: streaming
-videos; surfing the internet; and downloading emails. Example bearers include:
-Wireless LAN (eg Wi-Fi); 3G (including HSUPA and HSDPA); Circuit Switched
-Data (CSD); and GPRS. </p>
-<fig id="GUID-64CF6B77-F451-56F2-9223-4DB0AE835E56">
-<title>           Example of a bearer change          </title>
-<desc><p>A device is connected to a mobile network using GPRS. The device
-comes into range of a Wi-Fi network. The device decides to change to the Wi-Fi
-network and creates a bearer to access the Wi-Fi network. The device then
-moves all the existing connections across to the Wi-Fi bearer. In the final
-step the device disconnects from the GPRS network. </p> </desc>
-<image href="GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e84262_href.png" placement="inline"/>
-</fig>
-<p>Bearer Mobility operates in response to changes in the environment of the
-device. A bearer is known as <i>available</i> when the device is in range
-of the bearer and the device can potentially use the bearer. </p>
-<p> <b>NOTE:</b> The bearer can be available but unusable because of the security
-requirements of the bearer. </p>
-<p>Symbian platform uses <i>non-seamless</i> Bearer Mobility. Non-seamless
-indicates that clients of the Socket Server must reconnect all sockets after
-the bearer has changed. The local IP address of the link changes if the bearer
-changes. </p>
-<section id="GUID-0C818D67-819E-417B-9DBE-53E439555E57"><title>Bearer Mobility APIs</title> <p>Two Socket Server Bearer Mobility
-APIs are available: <xref href="GUID-D5F43DFB-5143-3563-8655-16E245A9735F.dita"><apiname>RCommsMobilityApiExt</apiname></xref> and <xref href="GUID-6CA83252-4D0C-3B72-83ED-B5152B666C83.dita"><apiname>CActiveCommsMobilityApiExt</apiname></xref>.
-A client of the Socket Server cannot change bearer if the client does not
-use at least one Bearer Mobility API. A device can have clients that support
-Bearer Mobility and clients that do not support Bearer Mobility. If clients
-that support Bearer Mobility change bearer, the device does not disconnect
-a client that does not support Bearer Mobility unless that client's bearer
-is no longer available. </p> <p>A client of the socket server can ask the
-user to accept or deny the change of bearer. For example, the client can display
-a dialog box to ask the user to accept or deny the change. The decision to
-ask the user remains with the client. </p> <p>A client of the socket server
-can ask to use the default bearer. The default bearer is the highest priority
-bearer that is available. The device manufacturer or network operator creates
-the list of bearer priorities. </p> </section>
-<section id="GUID-717F07AE-6C85-5051-9CCB-9B23FC40DADD"><title>Bearer Mobility
-Blacklists</title> <p>The Bearer Mobility components in the Communications
-Architecture implement a <i>blacklist</i> feature. The Socket Server implements
-the blacklist feature on the server side. The blacklist feature affects the
-notifications that a Socket Server client receives. The blacklist feature
-stops notifications for bearer changes that have previously been rejected.
-The device keeps a blacklist for each client. </p> <p>For example: </p> <ol id="GUID-8B1E6BD1-AE7B-5BDB-A73E-A4D0FC194AF9">
-<li id="GUID-683FD641-5E1A-58D7-B171-2B6E28FACF0D"><p>A client receives a
-notification for a bearer change </p> </li>
-<li id="GUID-5AE721C6-10ED-5E48-9C03-451CAD47B474"><p>The client sends a response
-to reject the bearer change </p> </li>
-<li id="GUID-4AEE582D-C6E4-534E-999E-BFDC1F7C4237"><p>The device adds the
-rejected bearer to the blacklist for that client </p> </li>
-<li id="GUID-9AAD65F6-94A2-5704-B224-47A93EA9F7B6"><p>The device does not
-notify the client of any further opportunities to change to that bearer </p> </li>
-</ol> <p>There can be variations in the operation of the blacklist. For example,
-there can be a limit on the lifetime of the blacklist. </p> <p> <b>NOTE:</b> The
-blacklist scheme is dependent on the plug-ins and settings used for the Communications
-Architecture for the particular device. </p> </section>
-</conbody><related-links>
-<link href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita"><linktext>Using the
-                Bearer Mobility APIs</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EDC16636-B24E-598B-9084-EAE782A4A213" xml:lang="en"><title>What
+is Bearer Mobility</title><shortdesc>This topic describes the concept of <i>Bearer Mobility</i> in the
+Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Bearer Mobility is a feature that allows a device to change bearers without
+interruption to the user's data sessions. An example of a bearer change is
+if a device moves into the range of a Wi-Fi hot spot and the device moves
+the GPRS connections over to Wi-Fi. Example data sessions include: streaming
+videos; surfing the internet; and downloading emails. Example bearers include:
+Wireless LAN (eg Wi-Fi); 3G (including HSUPA and HSDPA); Circuit Switched
+Data (CSD); and GPRS. </p>
+<fig id="GUID-64CF6B77-F451-56F2-9223-4DB0AE835E56">
+<title>           Example of a bearer change          </title>
+<desc><p>A device is connected to a mobile network using GPRS. The device
+comes into range of a Wi-Fi network. The device decides to change to the Wi-Fi
+network and creates a bearer to access the Wi-Fi network. The device then
+moves all the existing connections across to the Wi-Fi bearer. In the final
+step the device disconnects from the GPRS network. </p> </desc>
+<image href="GUID-65A4BA91-579F-5B9B-ACC1-D3D9B1F233B7_d0e77550_href.png" placement="inline"/>
+</fig>
+<p>Bearer Mobility operates in response to changes in the environment of the
+device. A bearer is known as <i>available</i> when the device is in range
+of the bearer and the device can potentially use the bearer. </p>
+<p> <b>NOTE:</b> The bearer can be available but unusable because of the security
+requirements of the bearer. </p>
+<p>Symbian platform uses <i>non-seamless</i> Bearer Mobility. Non-seamless
+indicates that clients of the Socket Server must reconnect all sockets after
+the bearer has changed. The local IP address of the link changes if the bearer
+changes. </p>
+<section id="GUID-0C818D67-819E-417B-9DBE-53E439555E57"><title>Bearer Mobility APIs</title> <p>Two Socket Server Bearer Mobility
+APIs are available: <xref href="GUID-D5F43DFB-5143-3563-8655-16E245A9735F.dita"><apiname>RCommsMobilityApiExt</apiname></xref> and <xref href="GUID-6CA83252-4D0C-3B72-83ED-B5152B666C83.dita"><apiname>CActiveCommsMobilityApiExt</apiname></xref>.
+A client of the Socket Server cannot change bearer if the client does not
+use at least one Bearer Mobility API. A device can have clients that support
+Bearer Mobility and clients that do not support Bearer Mobility. If clients
+that support Bearer Mobility change bearer, the device does not disconnect
+a client that does not support Bearer Mobility unless that client's bearer
+is no longer available. </p> <p>A client of the socket server can ask the
+user to accept or deny the change of bearer. For example, the client can display
+a dialog box to ask the user to accept or deny the change. The decision to
+ask the user remains with the client. </p> <p>A client of the socket server
+can ask to use the default bearer. The default bearer is the highest priority
+bearer that is available. The device manufacturer or network operator creates
+the list of bearer priorities. </p> </section>
+<section id="GUID-717F07AE-6C85-5051-9CCB-9B23FC40DADD"><title>Bearer Mobility
+Blacklists</title> <p>The Bearer Mobility components in the Communications
+Architecture implement a <i>blacklist</i> feature. The Socket Server implements
+the blacklist feature on the server side. The blacklist feature affects the
+notifications that a Socket Server client receives. The blacklist feature
+stops notifications for bearer changes that have previously been rejected.
+The device keeps a blacklist for each client. </p> <p>For example: </p> <ol id="GUID-8B1E6BD1-AE7B-5BDB-A73E-A4D0FC194AF9">
+<li id="GUID-683FD641-5E1A-58D7-B171-2B6E28FACF0D"><p>A client receives a
+notification for a bearer change </p> </li>
+<li id="GUID-5AE721C6-10ED-5E48-9C03-451CAD47B474"><p>The client sends a response
+to reject the bearer change </p> </li>
+<li id="GUID-4AEE582D-C6E4-534E-999E-BFDC1F7C4237"><p>The device adds the
+rejected bearer to the blacklist for that client </p> </li>
+<li id="GUID-9AAD65F6-94A2-5704-B224-47A93EA9F7B6"><p>The device does not
+notify the client of any further opportunities to change to that bearer </p> </li>
+</ol> <p>There can be variations in the operation of the blacklist. For example,
+there can be a limit on the lifetime of the blacklist. </p> <p> <b>NOTE:</b> The
+blacklist scheme is dependent on the plug-ins and settings used for the Communications
+Architecture for the particular device. </p> </section>
+</conbody><related-links>
+<link href="GUID-CB1E1921-9CF7-55B7-9F70-6AD61A961208.dita"><linktext>Using the
+                Bearer Mobility APIs</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e190360_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EDC405DC-F222-59CD-836E-180F8E1D2D11_d0e195368_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646" xml:lang="en"><title>Rendezvous
-Thread rendezvous example code</title><shortdesc>This example demonstrates the use of <codeph>Rendezvous()</codeph> API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-23A83B50-4B34-4DEE-A8BA-83DC3809244C"><title>Purpose</title> <p>The code is a simple example that shows
-the principle of synchronization using the thread rendezvous technique. </p> </section>
-<section id="GUID-B01D0987-EC69-4156-82A7-3B7306F2789E"><title>Class summary</title><ul>
-<li><p><xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> - A handle to a thread.</p></li>
-</ul></section>
-<section id="GUID-A1A279BF-DDFC-4D22-95A0-8F16F18C1CE6"><title>Download</title> <p>Download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-08949ca7-66de-4dcf-9b5e-a0938ea9a3e7.zip" scope="external">Rendezvous.zip</xref>. </p><p>Download some additional files
-required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external">CommonFramework.zip</xref>.</p><p>View the source code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-08949ca7-66de-4dcf-9b5e-a0938ea9a3e7.html" scope="peer">browse</xref>. View the additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer">browse</xref></p> </section>
-<section id="GUID-DEFCF4B9-452A-5EAF-ABD3-BC4F6FBD528B-GENID-1-8-1-14-1-1-4-1-4-1-25-1-28-1-3-4"><title>Building and
-configuring</title> <ul>
-<li id="GUID-424F9220-DD87-577F-BEA6-8B60E793F058"><p>You can build the example
-from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
-of the example into your IDE, and use the build command of the IDE. </p> <p>If
-you use the command line, open a command prompt, and set the current directory
-to the source code directory of the example. You can then build the example
-with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
-bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
-how to use the SBSv1 build tools. </p> </li>
-<li id="GUID-2C1C9600-B7A8-5875-9B8B-2D83C84DBFA6"><p>For the emulator, the
-example builds an executable called <filepath>threadrendezvous.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
-</ul> </section>
-<section id="GUID-EE6BD4B0-1D8D-459B-9D02-E5671C138716"><title>Running the example</title> <p>When running the example, the
-user is presented with various menu options that are self explanatory. The
-code is a simple example that shows the principle of synchronization using
-the thread rendezvous technique.  </p> </section>
-</refbody><related-links>
-<link>
-<desc><xref href="GUID-24477051-265A-5FE5-B479-ACB3EE27B825.dita">Synchronisation
-techniques</xref></desc>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-EDDEA6A0-D45D-5241-B594-94ADDD803646" xml:lang="en"><title>Rendezvous
+Thread rendezvous example code</title><shortdesc>This example demonstrates the use of <codeph>Rendezvous()</codeph> API. </shortdesc><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-23A83B50-4B34-4DEE-A8BA-83DC3809244C"><title>Purpose</title> <p>The code is a simple example that shows
+the principle of synchronization using the thread rendezvous technique. </p> </section>
+<section id="GUID-B01D0987-EC69-4156-82A7-3B7306F2789E"><title>Class summary</title><ul>
+<li><p><xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita"><apiname>RThread</apiname></xref> - A handle to a thread.</p></li>
+</ul></section>
+<section id="GUID-A1A279BF-DDFC-4D22-95A0-8F16F18C1CE6"><title>Download</title> <p>Download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-08949ca7-66de-4dcf-9b5e-a0938ea9a3e7.zip" scope="external">Rendezvous.zip</xref>. </p><p>Download some additional files
+required by the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.zip" scope="external">CommonFramework.zip</xref>.</p><p>View the source code: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-08949ca7-66de-4dcf-9b5e-a0938ea9a3e7.html" scope="peer">browse</xref>. View the additional files: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-4184e6d4-8dbe-4267-b1a3-8737c8bf64ce.html" scope="peer">browse</xref></p> </section>
+<section id="GUID-DEFCF4B9-452A-5EAF-ABD3-BC4F6FBD528B"><title>Building and
+configuring</title> <ul>
+<li id="GUID-424F9220-DD87-577F-BEA6-8B60E793F058"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+<li id="GUID-2C1C9600-B7A8-5875-9B8B-2D83C84DBFA6"><p>For the emulator, the
+example builds an executable called <filepath>threadrendezvous.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </li>
+</ul> </section>
+<section id="GUID-EE6BD4B0-1D8D-459B-9D02-E5671C138716"><title>Running the example</title> <p>When running the example, the
+user is presented with various menu options that are self explanatory. The
+code is a simple example that shows the principle of synchronization using
+the thread rendezvous technique.  </p> </section>
+</refbody><related-links>
+<link>
+<desc><xref href="GUID-24477051-265A-5FE5-B479-ACB3EE27B825.dita">Synchronisation
+techniques</xref></desc>
+</link>
 </related-links></reference>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E"><title>ASN-PKCS Overview</title><shortdesc>The ASN-PKCS component provides interfaces for: </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-ABA89F09-85DD-5BB3-92BB-DDF39D42B3F5"><p>Performing <xref scope="external" href="http://tools.ietf.org/html/rfc4792">ASN.1</xref> -DER (Abstract Syntax Notation One - Distinguished Encoding Rules) encoding and decoding of PKCS (Public-Key Cryptography Standards) private keys in raw text as well as PBE (Password-Based Encryption) encrypted forms. </p> </li> <li id="GUID-40921059-C49F-5E38-8297-F5D10F878DC7"><p>Performing ASN.1 encoding and decoding of PBE parameters associated with the private keys. </p> </li> </ul> <section><title>Key concepts and terms</title> <dl><dlentry><dt>Key</dt> <dd><p>A cryptography key is a constant value applied using a cryptographic algorithm to encrypt text or to decrypt encrypted text. </p> <p>Keys are classified as symmetric and asymmetric based on the type of algorithm applied. If the same key is used for both encryption and decryption, it is symmetric. If different keys are used for encryption and decryption, they are asymmetric. Asymmetric keys exist in the form of a public and private key pair, where the public key is used for encryption and the private key is used for decryption. </p> </dd> </dlentry> <dlentry><dt>Key Store</dt> <dd><p>A key store is a repository of keys that can be retrieved and used to accomplish a variety of tasks. </p> <p>The key store provides the following functionality: </p> <ul><li id="GUID-7217616D-996F-5346-BCAD-BC90522B972E"><p>Generation, import and export of RSA, DSA, and DH key pairs </p> </li> <li id="GUID-D759A086-C2BD-5892-AF9B-BEE93C21A55C"><p>Listing of stored keys </p> </li> <li id="GUID-9FC0C694-45E5-5DAB-9938-5BD4F414BE91"><p>Authentication of users </p> </li> <li id="GUID-D350C774-F17B-5D7B-B4DF-8EF3CA7A2AC8"><p>Private key operations for authenticated users </p> </li> </ul> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>The following block diagram describes the interaction of the ASN-PKCS component with the certificate and key stores: </p> <fig id="GUID-7E820717-BAC4-5C14-8A09-7B23989200F6"><image href="GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e389033_href.jpg" placement="inline"/></fig> <p>The client application accesses the various certificates and keys of the device stored in the respective stores. Depending on the requests received from the store management and implementation components, ASN-PKCS acts on the keys during certain key and certificate manipulation operations. For details of the operations during which the ASN-PKCS APIs are invoked, see <xref href="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita#GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E/GUID-1586B629-1321-5D65-9995-A312825CF52D">Typical uses</xref>. </p> </section> <section><title>APIs</title> <table id="GUID-96509B7C-3CB2-5AD4-BD6C-0DDEAA7517C8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-6DE1C841-A004-3255-A973-68B86A59A481.dita"><apiname>CDecPKCS8Data</apiname></xref>  </p> </entry> <entry><p>Provides the means to decode <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2130">PKCS#8</xref> encoded private keys. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-1586B629-1321-5D65-9995-A312825CF52D"><title>Typical uses</title> <p>ASN-PKCS APIs are used for encoding and decoding purposes during the following key and certificate manipulation operations: </p> <ul><li id="GUID-A9151CFF-028F-5BC1-B71E-9F99ACF2E285"><p>Encoding and decoding of PKCS private keys (in raw text and PBE-encrypted forms) during import and export of keys. When PBE-encrypted PKCS keys are imported or exported, the ASN-PKCS APIs also help in encoding or decoding of the PBE parameters. </p> </li> <li id="GUID-F2937C68-BC7D-5A10-AC61-E51139FFDA06"><p>Encoding of the private keys accompanying public key certificates (according to <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2138">PKCS#12</xref> standards) while creating certificate requests. </p> </li> <li id="GUID-AF0D122F-8A98-53FB-A6FE-AE3ABE4E0847"><p>Creation of <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2129">PKCS#7</xref> messages for creating the certificate requests. </p> </li> </ul> <p> <b>Notes:</b>  </p> <ul><li id="GUID-C8D72104-9E2C-59F1-A902-7270D998EF9C"><p>Device creators can use the ASN-PKCS component along with their own implementation of the certificate and key stores. </p> </li> <li id="GUID-34D1F3B2-2497-56A9-8E3E-3136D8C99C31"><p>For details of the key and certificate operations, see <xref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita">Unified Keystore Tutorials</xref> and <xref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita">Unified Certificate Store Tutorial</xref> respectively. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita"><linktext>Unified Stores</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E"><title>ASN-PKCS Overview</title><shortdesc>The ASN-PKCS component provides interfaces for: </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-ABA89F09-85DD-5BB3-92BB-DDF39D42B3F5"><p>Performing <xref scope="external" href="http://tools.ietf.org/html/rfc4792">ASN.1</xref> -DER (Abstract Syntax Notation One - Distinguished Encoding Rules) encoding and decoding of PKCS (Public-Key Cryptography Standards) private keys in raw text as well as PBE (Password-Based Encryption) encrypted forms. </p> </li> <li id="GUID-40921059-C49F-5E38-8297-F5D10F878DC7"><p>Performing ASN.1 encoding and decoding of PBE parameters associated with the private keys. </p> </li> </ul> <section><title>Key concepts and terms</title> <dl><dlentry><dt>Key</dt> <dd><p>A cryptography key is a constant value applied using a cryptographic algorithm to encrypt text or to decrypt encrypted text. </p> <p>Keys are classified as symmetric and asymmetric based on the type of algorithm applied. If the same key is used for both encryption and decryption, it is symmetric. If different keys are used for encryption and decryption, they are asymmetric. Asymmetric keys exist in the form of a public and private key pair, where the public key is used for encryption and the private key is used for decryption. </p> </dd> </dlentry> <dlentry><dt>Key Store</dt> <dd><p>A key store is a repository of keys that can be retrieved and used to accomplish a variety of tasks. </p> <p>The key store provides the following functionality: </p> <ul><li id="GUID-7217616D-996F-5346-BCAD-BC90522B972E"><p>Generation, import and export of RSA, DSA, and DH key pairs </p> </li> <li id="GUID-D759A086-C2BD-5892-AF9B-BEE93C21A55C"><p>Listing of stored keys </p> </li> <li id="GUID-9FC0C694-45E5-5DAB-9938-5BD4F414BE91"><p>Authentication of users </p> </li> <li id="GUID-D350C774-F17B-5D7B-B4DF-8EF3CA7A2AC8"><p>Private key operations for authenticated users </p> </li> </ul> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>The following block diagram describes the interaction of the ASN-PKCS component with the certificate and key stores: </p> <fig id="GUID-7E820717-BAC4-5C14-8A09-7B23989200F6"><image href="GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e388871_href.jpg" placement="inline"/></fig> <p>The client application accesses the various certificates and keys of the device stored in the respective stores. Depending on the requests received from the store management and implementation components, ASN-PKCS acts on the keys during certain key and certificate manipulation operations. For details of the operations during which the ASN-PKCS APIs are invoked, see <xref href="GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E.dita#GUID-EDE54D27-D902-5C67-BF8E-5E7E0A33A98E/GUID-1586B629-1321-5D65-9995-A312825CF52D">Typical uses</xref>. </p> </section> <section><title>APIs</title> <table id="GUID-96509B7C-3CB2-5AD4-BD6C-0DDEAA7517C8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-6DE1C841-A004-3255-A973-68B86A59A481.dita"><apiname>CDecPKCS8Data</apiname></xref>  </p> </entry> <entry><p>Provides the means to decode <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2130">PKCS#8</xref> encoded private keys. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section id="GUID-1586B629-1321-5D65-9995-A312825CF52D"><title>Typical uses</title> <p>ASN-PKCS APIs are used for encoding and decoding purposes during the following key and certificate manipulation operations: </p> <ul><li id="GUID-A9151CFF-028F-5BC1-B71E-9F99ACF2E285"><p>Encoding and decoding of PKCS private keys (in raw text and PBE-encrypted forms) during import and export of keys. When PBE-encrypted PKCS keys are imported or exported, the ASN-PKCS APIs also help in encoding or decoding of the PBE parameters. </p> </li> <li id="GUID-F2937C68-BC7D-5A10-AC61-E51139FFDA06"><p>Encoding of the private keys accompanying public key certificates (according to <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2138">PKCS#12</xref> standards) while creating certificate requests. </p> </li> <li id="GUID-AF0D122F-8A98-53FB-A6FE-AE3ABE4E0847"><p>Creation of <xref scope="external" href="http://www.rsa.com/rsalabs/node.asp?id=2129">PKCS#7</xref> messages for creating the certificate requests. </p> </li> </ul> <p> <b>Notes:</b>  </p> <ul><li id="GUID-C8D72104-9E2C-59F1-A902-7270D998EF9C"><p>Device creators can use the ASN-PKCS component along with their own implementation of the certificate and key stores. </p> </li> <li id="GUID-34D1F3B2-2497-56A9-8E3E-3136D8C99C31"><p>For details of the key and certificate operations, see <xref href="GUID-6C6AED40-D5B3-5613-8F92-FD2CB711AE54.dita">Unified Keystore Tutorials</xref> and <xref href="GUID-B946BDF0-C5D8-57E2-9D05-7BE134AD032E.dita">Unified Certificate Store Tutorial</xref> respectively. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-39B459CD-8210-59B5-95F4-85CE36676735.dita"><linktext>Unified Stores</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e334772_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-EE556214-BFB8-582E-ACD9-5287D7C64EFA_d0e340929_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e69754_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EE5937B6-9103-4711-B13B-06A62D56AF79_d0e74928_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EEF2F892-8900-475F-926B-A49D0D98C1C6" xml:lang="en"><title>Navigation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The model of navigation is based on states arranged as hierarchical trees.
-The following features provide the flexibility for navigation:</p>
-<ul>
-<li><p>Tabs</p></li>
-<li><p>Home / Menu key and the <xref href="GUID-86AADA3E-B77C-45CC-B523-785B75BAA5AA.dita">Menu</xref></p></li>
-<li><p>Direct navigation between sibling folders</p></li>
-<li><p>Links to applications and documents</p></li>
-</ul>
-</conbody><related-links>
-<linklist>
-<link href="GUID-0F593BE1-1220-4403-B04E-B8E8A9A49701.dita"><linktext>UI concepts</linktext>
-</link>
-<link href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita"><linktext>Framework
-requirements for GUI applications</linktext></link>
-</linklist>
-</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0"><title>Feature Manager Server Guide</title><shortdesc>This document describes the feature management server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The feature management server maintains the table which contains and maintains the list of features available on the device. </p> </section> <section><title>Required background</title> <p>The feature management system uses the standard client server architecture that is the feature manager server that does the work associated with the feature management functionality. Communication between the application and the server is undertaken by two dlls. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-E3DEFD6C-7BA2-5F4B-9771-F6BCF595B3C8"><title>
-             Architecture of the feature management system 
-          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351999_href.png" placement="inline"/></fig> </section> <section><title>APIs</title> <p>Communication to and from the feature management server is only provided by the methods available in the <xref href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita#GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14/GUID-044747C8-90DF-5C93-B0E1-310F283E8894">Feature Manager Client API</xref> and the <xref href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita#GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A/GUID-3CF8D502-1181-511C-9F14-A256ACD4EF6B">Feature Manager Discovery API</xref>. </p> </section> <section><title>Typical uses</title> <p>These are the same as for feature management (since it does all the work). They include adding, disabling, enabling and removing features. </p> <p>For the description of the APIs used in feature management look at the component overview for featmgr.dll and featdiscovery.dll. </p> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita"><linktext>Feature Manager Client
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-EF3DB813-B0B9-5099-9E57-561A32111BF0"><title>Feature Manager Server Guide</title><shortdesc>This document describes the feature management server. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The feature management server maintains the table which contains and maintains the list of features available on the device. </p> </section> <section><title>Required background</title> <p>The feature management system uses the standard client server architecture that is the feature manager server that does the work associated with the feature management functionality. Communication between the application and the server is undertaken by two dlls. </p> </section> <section><title>Architecture</title> <p>The relationship between the parts of the feature management system is : </p> <fig id="GUID-E3DEFD6C-7BA2-5F4B-9771-F6BCF595B3C8"><title>
+             Architecture of the feature management system 
+          </title> <image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e345918_href.png" placement="inline"/></fig> </section> <section><title>APIs</title> <p>Communication to and from the feature management server is only provided by the methods available in the <xref href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita#GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14/GUID-044747C8-90DF-5C93-B0E1-310F283E8894">Feature Manager Client API</xref> and the <xref href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita#GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A/GUID-3CF8D502-1181-511C-9F14-A256ACD4EF6B">Feature Manager Discovery API</xref>. </p> </section> <section><title>Typical uses</title> <p>These are the same as for feature management (since it does all the work). They include adding, disabling, enabling and removing features. </p> <p>For the description of the APIs used in feature management look at the component overview for featmgr.dll and featdiscovery.dll. </p> </section> </conbody><related-links><link href="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita"><linktext>Feature Manager Overview</linktext> </link> <link href="GUID-3FB773BA-C648-5C0A-9022-3F9882C6724A.dita"><linktext>Feature Manager Client
                 Overview</linktext> </link> <link href="GUID-40B9136A-B91B-5FF4-A44D-CA6925F19B14.dita"><linktext>Feature Discovery Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e134536_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EF7F79E4-21B1-59E3-A063-ABD2C6426E7C_d0e141070_href.png has changed
--- a/Symbian3/SDK/Source/GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C" xml:lang="en"><title>How
-to use the SDP Codec API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-36C9040A-BE35-5DAD-8D32-089C45AD6A6C"><title>Protocols</title> <p>The
-following steps describe how to use the SDP Codec API to create an SDP description: </p> <ul>
-<li id="GUID-E54E7175-023E-57B7-867C-C7B2132DC1F4"><p>Create a <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object
-and open the string pool before use. <b>Note</b>: The string table includes
-predefined SDP constants for which handles are retrieved when <xref href="GUID-6841DB3A-C481-34D0-9428-236CCC316BBD.dita#GUID-6841DB3A-C481-34D0-9428-236CCC316BBD/GUID-82ABB289-BADC-33C7-B950-3FFAF50B48F1"><apiname>SdpCodecStringPool::StringPoolL()</apiname></xref> is
-called. The string table includes all predefined SDP related constants. </p> </li>
-<li id="GUID-5865EC55-8737-50C3-8E3A-59E2864A2FB9"><p>The net type and the
-address type of the connection and origin field parameters that are predefined
-are retrieved from the string pool. </p> </li>
-<li id="GUID-8CA935E5-00A8-5B8C-8615-F1045657AEA5"><p>Create the origin field
-with origin field parameters, and set the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object. </p> </li>
-<li id="GUID-F54C71B1-F53F-51B5-BC34-47250D11B2FE"><p>Create the connection
-field from the connection parameters, and set the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object. </p> </li>
-<li id="GUID-96FCCAE1-4DE2-5113-BA06-D5486621F809"><p>When you finish with
-the SDP description, delete the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object and
-close the string pool. </p> </li>
-</ul> <p>The following illustration shows how to create an SDP description. </p> <fig id="GUID-FB29EDEC-BD06-5571-BDCE-A6E8A9A94613">
-<image href="GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e343167_href.png" placement="inline"/>
-</fig> <p> <b>Note</b>: In the following illustration only required SDP fields
-are included. </p> </section>
-<section id="GUID-0C86D6D3-2EDD-54B8-A2FE-E68CF43D40E8"><title>Error handling</title> <p>All
-function calls are synchronous. When an error occurs the functions leave with
-SDP Codec specific error codes and Symbian platform error codes. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EFAEDFA5-3807-56EB-8D47-3A6960C4056C" xml:lang="en"><title>How
+to use the SDP Codec API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-36C9040A-BE35-5DAD-8D32-089C45AD6A6C"><title>Protocols</title> <p>The
+following steps describe how to use the SDP Codec API to create an SDP description: </p> <ul>
+<li id="GUID-E54E7175-023E-57B7-867C-C7B2132DC1F4"><p>Create a <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object
+and open the string pool before use. <b>Note</b>: The string table includes
+predefined SDP constants for which handles are retrieved when <xref href="GUID-6841DB3A-C481-34D0-9428-236CCC316BBD.dita#GUID-6841DB3A-C481-34D0-9428-236CCC316BBD/GUID-82ABB289-BADC-33C7-B950-3FFAF50B48F1"><apiname>SdpCodecStringPool::StringPoolL()</apiname></xref> is
+called. The string table includes all predefined SDP related constants. </p> </li>
+<li id="GUID-5865EC55-8737-50C3-8E3A-59E2864A2FB9"><p>The net type and the
+address type of the connection and origin field parameters that are predefined
+are retrieved from the string pool. </p> </li>
+<li id="GUID-8CA935E5-00A8-5B8C-8615-F1045657AEA5"><p>Create the origin field
+with origin field parameters, and set the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object. </p> </li>
+<li id="GUID-F54C71B1-F53F-51B5-BC34-47250D11B2FE"><p>Create the connection
+field from the connection parameters, and set the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object. </p> </li>
+<li id="GUID-96FCCAE1-4DE2-5113-BA06-D5486621F809"><p>When you finish with
+the SDP description, delete the <xref href="GUID-FF6D4EAD-3AAE-3843-8A9C-7C92426FC29F.dita"><apiname>CSdpDocument</apiname></xref> object and
+close the string pool. </p> </li>
+</ul> <p>The following illustration shows how to create an SDP description. </p> <fig id="GUID-FB29EDEC-BD06-5571-BDCE-A6E8A9A94613">
+<image href="GUID-55754EF4-EC25-5CE3-9B38-79F278BCF19F_d0e336970_href.png" placement="inline"/>
+</fig> <p> <b>Note</b>: In the following illustration only required SDP fields
+are included. </p> </section>
+<section id="GUID-0C86D6D3-2EDD-54B8-A2FE-E68CF43D40E8"><title>Error handling</title> <p>All
+function calls are synchronous. When an error occurs the functions leave with
+SDP Codec specific error codes and Symbian platform error codes. </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e76890_href.png has changed
Binary file Symbian3/SDK/Source/GUID-EFE378EA-C668-5CD5-A630-B8041027791A_d0e83602_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-EFEBDE65-293C-40AC-B57D-363158E77DA0.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-EFEBDE65-293C-40AC-B57D-363158E77DA0" xml:lang="en"><title>Qt on Symbian</title><shortdesc>Some links to useful information about developing for Symbian
+using QT.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-DEED7807-40A8-4711-B42C-BFD4662E8577"><title>Useful
+links</title><p>The links below give you a starting point for learning
+about
+Qt on the Symbian platform.</p><ul>
+<li><p><b>Getting started</b></p><ul>
+<li><p><xref format="html" href="http://www.forum.nokia.com/Develop/Qt/Getting_started/" scope="external">Getting started with Qt on Nokia devices</xref> (forum.nokia.com)
+— is a very good place to start.</p></li>
+<li><p><xref format="html" href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Nokia_Qt_SDK/" scope="external">Nokia Qt SDK</xref> (forum.nokia.com) — the toolset
+you need to go from application concept to a fully tested, ready to
+deploy application.</p></li>
+<li><p><xref format="html" href="http://developer.symbian.org/wiki/index.php/Qt_for_the_Symbian_Platform_(Product_Overview)" scope="external">Qt for the Symbian platform</xref> (developer.symbian.org)
+— describes Qt from a Symbian C++ developer perspective</p></li>
+<li><p><xref format="html" href="http://www.forum.nokia.com/Tools_Docs_and_Code/Code_Examples/Qt.xhtml" scope="external">Qt code examples</xref> (forum.nokia.com) — example
+applications developed and optimised for mobile devices.</p></li>
+<li><p><xref format="html" href="http://developer.symbian.org/wiki/index.php/Qt_&amp;_Symbian_Platform_Security" scope="external">Qt and Symbian Platform Security</xref> (developer.symbian.org)
+— an introduction to Symbian's security model and how it works with
+Qt.</p></li>
+<li><p><xref format="html" href="http://developer.symbian.org/wiki/index.php/Deploying_a_Qt_Application" scope="external">Deploying a Qt Application</xref> (developer.symbian.org)
+— how to get your Qt application on other Symbian devices.</p></li>
+</ul></li>
+<li><p><b>More detailed information about Qt on Symbian devices</b></p><ul>
+<li><p><xref format="html" href="http://doc.qt.nokia.com/4.6/platform-notes-symbian.html" scope="external">Qt's platform notes for Symbian</xref> (doc.qt.nokia.com)
+— describes the status of the port of Qt 4.6 to the Symbian platform.</p></li>
+<li><p><xref format="html" href="http://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C++_Together" scope="external">Qt and Symbian C++ together</xref> (developer.symbian.org)
+— provides technical details about how to make Qt and Symbian C++
+cooperate.</p></li>
+<li><p><xref format="html" href="http://doc.qt.nokia.com/4.6/qmake-platform-notes.html#symbian-platform" scope="external">qmake extensions for Symbian</xref> (doc.qt.nokia.com)
+— Qt's qmake tool has some Symbian-specific extensions.</p></li>
+<li><p><xref format="html" href="http://qt.nokia.com/developer/nokia-smart-installer-for-symbian" scope="external">Smart installer for Symbian</xref> (forum.nokia.com)
+— a tool to package with an application installation file. The tool
+checks the version of Qt on the device and downloads the latest version
+of Qt if necessary.</p></li>
+</ul></li>
+<li><p><b>Support</b></p><ul>
+<li><p><xref format="html" href="http://qt.nokia.com/developer" scope="external">Qt Developer Zone</xref> (qt.nokia.com) — Qt's main
+page for developers.</p></li>
+<li><p><xref format="html" href="http://qt.nokia.com/support" scope="external">Qt's
+main support page</xref> (qt.nokia.com) — official support options
+from Qt.</p></li>
+<li><p><xref format="html" href="http://wiki.forum.nokia.com/index.php/Category:Qt" scope="external">Forum Nokia's Qt wiki</xref> (forum.nokia.com) —
+wiki articles about Qt on Symbian and MeeGo devices.</p></li>
+<li><p><xref format="html" href="http://discussion.forum.nokia.com/forum/forumdisplay.php?f=219" scope="external">Qt discussion board</xref> (forum.nokia.com) — find
+help from other developers using Qt on Symbian devices.</p></li>
+<li><p><xref format="html" href="http://wiki.forum.nokia.com/index.php/KnowledgeBase" scope="external">Forum Nokia knowledge base</xref> (forum.nokia.com)
+— code snippets, technical solutions, and known issues.</p></li>
+<li><p><xref format="html" href="http://developer.qt.nokia.com/" scope="external">Qt Developer Network</xref> (qt.nokia.com) — beta
+version of the
+Qt support network.</p></li>
+<li><p><xref format="html" href="http://qt.nokia.com/developer/new-qt-apis" scope="external">New Qt APIs</xref> (qt.nokia.com) — information about
+the latest updates to Qt.</p></li>
+<li><p><xref format="html" href="http://qt.nokia.com/products/appdev/add-on-products/catalog/4/new-qt-apis/mobility" scope="external">New Qt APIs for mobile development</xref> (qt.nokia.com)
+— information
+about QT's latest mobile-related APIs.</p></li>
+</ul></li>
+<li><p><b>Qt books</b></p><ul>
+<li><p><xref format="html" href="http://qt.nokia.com/developer/getting-started/getting-started#read-the-official-qt" scope="external">C++ GUI Programming with Qt 4, Second Edition</xref> (qt.nokia.com) — the official Qt book.</p></li>
+<li><p><xref format="html" href="ttp://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip" scope="external">C++ GUI Programming with Qt 4, First Edition</xref> (www.qtrac.eu) — this older version of the official Qt book is available
+online.</p></li>
+<li><p><xref format="html" href="http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.html" scope="external">Qt for Symbian</xref> (eu.wiley.com) — goes into
+depth about how Qt works on the Symbian platform.</p></li>
+</ul></li>
+</ul></section>
+</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,104 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE task
-  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
-<task id="GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8" xml:lang="en"><title>Setting
-Use Policies</title><shortdesc>A use policy denotes the security check required to use the key.
-The use policy associated with the key is of type <codeph>TSecurityPolicy</codeph>.
-The policy can be set to check capabilities or the Secure ID associated with
-the calling process. The calling process should have a <codeph>WriteUserData</codeph> capability. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
-<context id="GUID-4F90AC15-5BC9-4A2A-BD86-D6CF6FD04E47"><p>The following steps explain the process of setting a use policy
-for a key:</p></context>
-<steps id="GUID-16DDA72F-9BC5-52FB-A3C6-874815ABF9FC-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2">
-<step id="GUID-89755D62-9A44-5F07-9035-6AA97F701C0C-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-1"><cmd>Create a file system
-session using an <codeph>RFs</codeph> object. </cmd>
-</step>
-<step id="GUID-6A14EBD6-AF2D-5CE8-A232-F04B717CA0B3-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-2"><cmd/>
-<info>Create an object of type CUnifiedKeyStore using <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-C7A96153-4179-3B3F-878D-1EAA64A98D39"><apiname>CUnifiedKeyStore::NewL()</apiname></xref> or <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-217FBB3B-CEF5-36F2-A612-EDDA0982053C"><apiname>CUnifiedKeyStore::NewLC()</apiname></xref>. </info>
-</step>
-<step id="GUID-C8F104CE-E857-5615-B847-E3A33EAF7481-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-3"><cmd/>
-<info>Initialise the member functions and keystore using the asynchronous
-function <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-6C5D732C-1FD1-3EF0-AC90-87690F891B8D"><apiname>CUnifiedKeyStore::Initialize()</apiname></xref>. </info>
-</step>
-<step id="GUID-B1DD3DB8-90D9-52F7-96B5-B2AD5AE3E1F8"><cmd/>
-<info>List all keys in the keystore using the <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-8B22E1BC-D779-32DC-9C0A-CA37E4C0A81B"><apiname>CUnifiedKeyStore::List()</apiname></xref> function.
-Retrieve the handle of the key for which the use policy needs to be set. </info>
-</step>
-<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-5"><cmd/>
-<info>Set the use policy for the key using the <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-CC8814B6-569C-3426-A319-BFB631211B07"><apiname>CUnifiedKeyStore::SetUsePolicy()</apiname></xref> function. </info>
-</step>
-</steps>
-<result id="GUID-46A56876-6A07-4E94-9D00-73BC1270CAB4"><p>Use policy is set for the selected key. </p> </result>
-<example id="GUID-C2150584-293D-50CE-8DDC-19B4D55D8B0B-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-4"><title>Example</title> <p>The
-following code snippet shows how to set use policy for a key. </p> <codeblock id="GUID-FAD1C292-8E42-5348-B975-3CBA7E8D2820-GENID-1-8-1-23-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-4-3" xml:space="preserve">// Create a file system session object
-RFs iFs;
-CleanupClosePushL(&amp;iFs);
-
-
-...
-
-
-// Initialise the keystore and member functions
-CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(fs);
-keyStore-&gt;Initialize(iStatus); //iStatus is a TRequestStatus object
-
-
-...
-
-
-
-// Retrieve the handle of the key for which use policy has to be set
-TCTKeyAttributeFilter  filter.iUsage = EPKCS15UsageAll;
-RPointerArray&lt;CCTKeyInfo&gt; iKeys; // This variable will contain the result of the set use policy operation
-keyStore-&gt;List(iKeys, filter, iStatus);
-
-
-...
-
-
-
-// Retrieve the key handle of the appropriate key
-_LIT(KLabel,”keylabel”);
-
-// Select the key with the label you are looking for
-TInt keyIndex;
-for (TInt j = 0; j &lt; iKeys.Count(); j++)
-    {
-    if (iKeys[j]-&gt;Label() == KLabel) 
-        {
-        keyIndex = j;
-        break;
-        }
-    }
-
-
-...
-
-
-
-// Set the use policy
-
-TSecurityPolicy usePolicy;
-TUint secureId = 0x101FFFFF;
-TCapability caps[3];
-caps[0] = ECapabilityWriteUserData;
-caps[1] = ECapabilityDRM;
-caps[2] = ECapabilityReadUserData;
-
-usePolicy = TSecurityPolicy(TSecureId(secureId), caps[0], caps[1], caps[2]);
-keyStore-&gt;SetUsePolicy(*iKeys, usePolicy, iStatus);
-
-
-// Clean up
-CleanupStack::PopAndDestroy(); // iFs</codeblock> </example>
-</taskbody><related-links>
-<link href="GUID-60141F31-6061-5C65-809D-FE7A4F8414F7.dita"><linktext>Set Management
-Policies</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
+<task id="GUID-EFF8D1A1-00D5-5F96-8285-414DC0044AB8" xml:lang="en"><title>Setting
+Use Policies</title><shortdesc>A use policy denotes the security check required to use the key.
+The use policy associated with the key is of type <codeph>TSecurityPolicy</codeph>.
+The policy can be set to check capabilities or the Secure ID associated with
+the calling process. The calling process should have a <codeph>WriteUserData</codeph> capability. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
+<context id="GUID-4F90AC15-5BC9-4A2A-BD86-D6CF6FD04E47"><p>The following steps explain the process of setting a use policy
+for a key:</p></context>
+<steps id="GUID-16DDA72F-9BC5-52FB-A3C6-874815ABF9FC-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2">
+<step id="GUID-89755D62-9A44-5F07-9035-6AA97F701C0C-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-1"><cmd>Create a file system
+session using an <codeph>RFs</codeph> object. </cmd>
+</step>
+<step id="GUID-6A14EBD6-AF2D-5CE8-A232-F04B717CA0B3-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-2"><cmd/>
+<info>Create an object of type CUnifiedKeyStore using <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-C7A96153-4179-3B3F-878D-1EAA64A98D39"><apiname>CUnifiedKeyStore::NewL()</apiname></xref> or <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-217FBB3B-CEF5-36F2-A612-EDDA0982053C"><apiname>CUnifiedKeyStore::NewLC()</apiname></xref>. </info>
+</step>
+<step id="GUID-C8F104CE-E857-5615-B847-E3A33EAF7481-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-3"><cmd/>
+<info>Initialise the member functions and keystore using the asynchronous
+function <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-6C5D732C-1FD1-3EF0-AC90-87690F891B8D"><apiname>CUnifiedKeyStore::Initialize()</apiname></xref>. </info>
+</step>
+<step id="GUID-B1DD3DB8-90D9-52F7-96B5-B2AD5AE3E1F8"><cmd/>
+<info>List all keys in the keystore using the <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-8B22E1BC-D779-32DC-9C0A-CA37E4C0A81B"><apiname>CUnifiedKeyStore::List()</apiname></xref> function.
+Retrieve the handle of the key for which the use policy needs to be set. </info>
+</step>
+<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-2-5"><cmd/>
+<info>Set the use policy for the key using the <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-CC8814B6-569C-3426-A319-BFB631211B07"><apiname>CUnifiedKeyStore::SetUsePolicy()</apiname></xref> function. </info>
+</step>
+</steps>
+<result id="GUID-46A56876-6A07-4E94-9D00-73BC1270CAB4"><p>Use policy is set for the selected key. </p> </result>
+<example id="GUID-C2150584-293D-50CE-8DDC-19B4D55D8B0B-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-4"><title>Example</title> <p>The
+following code snippet shows how to set use policy for a key. </p> <codeblock id="GUID-FAD1C292-8E42-5348-B975-3CBA7E8D2820-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-12-1-3-4-3" xml:space="preserve">// Create a file system session object
+RFs iFs;
+CleanupClosePushL(&amp;iFs);
+
+
+...
+
+
+// Initialise the keystore and member functions
+CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(fs);
+keyStore-&gt;Initialize(iStatus); //iStatus is a TRequestStatus object
+
+
+...
+
+
+
+// Retrieve the handle of the key for which use policy has to be set
+TCTKeyAttributeFilter  filter.iUsage = EPKCS15UsageAll;
+RPointerArray&lt;CCTKeyInfo&gt; iKeys; // This variable will contain the result of the set use policy operation
+keyStore-&gt;List(iKeys, filter, iStatus);
+
+
+...
+
+
+
+// Retrieve the key handle of the appropriate key
+_LIT(KLabel,”keylabel”);
+
+// Select the key with the label you are looking for
+TInt keyIndex;
+for (TInt j = 0; j &lt; iKeys.Count(); j++)
+    {
+    if (iKeys[j]-&gt;Label() == KLabel) 
+        {
+        keyIndex = j;
+        break;
+        }
+    }
+
+
+...
+
+
+
+// Set the use policy
+
+TSecurityPolicy usePolicy;
+TUint secureId = 0x101FFFFF;
+TCapability caps[3];
+caps[0] = ECapabilityWriteUserData;
+caps[1] = ECapabilityDRM;
+caps[2] = ECapabilityReadUserData;
+
+usePolicy = TSecurityPolicy(TSecureId(secureId), caps[0], caps[1], caps[2]);
+keyStore-&gt;SetUsePolicy(*iKeys, usePolicy, iStatus);
+
+
+// Clean up
+CleanupStack::PopAndDestroy(); // iFs</codeblock> </example>
+</taskbody><related-links>
+<link href="GUID-60141F31-6061-5C65-809D-FE7A4F8414F7.dita"><linktext>Set Management
+Policies</linktext></link>
 </related-links></task>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e219908_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F057FFF8-EA6A-5719-BE6B-B37950A07A7B_d0e223645_href.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F09DA1AD-6D83-5267-B479-C857DFA2B939" xml:lang="en"><title>Ordinal: ordinal position, drag and drop</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-F62D04D1-9739-445E-BB46-8AB168934D8E"><title>Description</title> <p> <filepath>Ordinal</filepath> uses five numbered, draggable windows, similar to the draggable
+window used in the previous example to demonstrate the ordinal positioning
+of windows. </p> </section>
+<section id="GUID-7D157811-63D5-4D02-BCE2-11B405A61E33"><title>Class Summary</title><p><xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita"><apiname>RWindowTreeNode</apiname></xref></p></section>
+<section id="GUID-E54DAC3E-F42B-5333-BAD3-88C20FB555B3"><title>Download</title> <p>Click on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-67fd2240-74b6-4b43-aaed-61e1cf883ffd.zip" scope="external">Ordinal.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-67fd2240-74b6-4b43-aaed-61e1cf883ffd.html" scope="peer">browse</xref> to view the example code. </p> </section>
+<section id="GUID-AF878AB7-CEF1-432B-B569-479320968D51"><title>Running on the emulator</title> <p>Clicking in a window
+with the left mouse button brings that window to the front by giving
+it an ordinal position of 0. Dragging with the left mouse button moves
+the windows around on the screen. </p> <p>Clicking in a window with
+the right mouse button cascades the children of that window in the
+top left corner (using <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-1B5C2B63-658A-37F7-9934-5EBB74A7925B"><apiname>RWindowTreeNode::Child()const</apiname></xref>, <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-8D048E10-E375-3B20-A1E0-2C2B5990FA75"><apiname>RWindowTreeNode::NextSibling()const</apiname></xref> and <xref href="GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D.dita#GUID-9FFD28C7-8747-3438-84BF-44AF26ACEC7D/GUID-B532B23D-356E-318F-8AA4-64762D31D061"><apiname>RWindowTreeNode::PrevSibling()const</apiname></xref>). The windows are cascaded
+according to their ordinal position in the top window's list of siblings. </p> </section>
+<section id="GUID-E7AF502F-A894-4C7F-B564-7DFF17C3C512"><title>Running on the target phone</title> <p>The behaviour
+invoked by the right mouse button click is unavailable on the target
+phone. Windows can be dragged using the pointer, and tapping on a
+window brings it to the front. </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e431942_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F0DCFAB5-DE92-5336-B4E2-1ED40BE05DEC_d0e432104_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,205 +1,205 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A" xml:lang="en"><title>Setting
-list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A setting list is a specific kind of selection list containing setting
-items that the user can adjust. Setting lists are displayed in the main pane.</p>
-<fig id="GUID-0CDD9A63-4113-4662-BCBA-502FC7CA8FF4">
-<title>Setting list </title>
-<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e62404_href.png" placement="inline"/>
-</fig>
-<p>A setting item can be adjusted by selecting it in the same way as selection
-list items are selected in general; that is, by pressing the Selection key,
-or choosing the Change command from the Options menu. The main pane then displays
-the setting item editor where the value can be changed.</p>
-<p>There are several setting item types available. They look the same in the
-setting list: each item displays an attribute text (the title of the setting)
-on one line and the current value on another line within the item. The adjusting
-and editing functions differ between the setting item types.</p>
-<table id="GUID-212B8C90-F3AC-4893-9AF6-19A8B4845F91"><title>Setting item
-types</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.41*"/><colspec colname="col2" colwidth="1.59*"/>
-<thead>
-<row>
-<entry>Setting</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Pop-up setting</p></entry>
-<entry><p>A pop-up setting allows the user to choose one value from a pre-defined
-list. The setting editor displays the available values in a menu list. A pop-up
-setting may also allow the user to enter a new textual value in addition to
-the pre-defined values. In that case, the last option is named Other (or equivalent),
-and selecting it opens a Data query for entering the new value.</p></entry>
-</row>
-<row>
-<entry><p>Multi-selection list setting</p></entry>
-<entry><p>A multi-selection list setting allows the user to choose several
-simultaneous values from a pre-defined list. The setting editor displays the
-available values as a multi-selection list. The setting item displays the
-number of selected items versus all the items in the value field; for example:
-3/8.</p></entry>
-</row>
-<row>
-<entry><p>Text setting</p></entry>
-<entry><p>The value of a text setting item is an alphanumeric or numeric string.
-The editor can be of a specific type, such as the Date and Time editor.</p></entry>
-</row>
-<row>
-<entry><p>Slider setting</p></entry>
-<entry><p>With a slider, the user can adjust the value of a setting by sliding
-a marker. The value of a slider is adjusted using the Arrow left and Arrow
-right keys.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<fig id="GUID-100ECC17-5370-437D-B356-070DC3F1E785">
-<title>Pop-up setting</title>
-<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e62487_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-FE7CEFF0-1929-46D5-906B-B65C4CC909BF">
-<title>Multi-selection setting</title>
-<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e62495_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-9391502B-9B3E-417C-98D4-9962B88E9C97">
-<title>Text setting</title>
-<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e62503_href.png" placement="inline"/>
-</fig>
-<fig id="GUID-C8EFE352-7D5B-4199-B6C9-A9F9DEBFEF53">
-<title>Slider setting</title>
-<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e62511_href.png" placement="inline"/>
-</fig>
-<p>By default, in a setting editor, the keypad functions are as follows:</p>
-<table id="GUID-1181AD52-5BAD-4F44-A0A1-EA930F63E1AC"><title>Default key events
-in setting editor</title>
-<tgroup cols="2"><colspec colname="col1" colwidth="0.32*"/><colspec colname="col2" colwidth="1.68*"/>
-<thead>
-<row>
-<entry>Key</entry>
-<entry>Action</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Arrow up / down</p></entry>
-<entry><p>Pop-up, multi-selection: browses the list. Text: moves the cursor.
-Slider: ignored.</p></entry>
-</row>
-<row>
-<entry><p>Arrow left / right</p></entry>
-<entry><p>Pop-up: ignored. Multi-selection: ignored. Text: moves the cursor.
-Slider: adjusts the slider value (a key repeat event may move the slider by
-several steps).</p></entry>
-</row>
-<row>
-<entry><p>Selection key</p></entry>
-<entry><p>All except multi-selection: accepts the value, returns to the setting
-list. Multi-selection: toggles <b>Mark/Unmark</b>.</p></entry>
-</row>
-<row>
-<entry><p>Left softkey (OK)</p></entry>
-<entry><p>Accepts the current item or value, returns.</p><p><b>Note: </b>may
-also be <b>Options</b> in certain instances.</p></entry>
-</row>
-<row>
-<entry><p>Right softkey (Cancel)</p></entry>
-<entry><p>Cancels the setting editor, returns.</p></entry>
-</row>
-<row>
-<entry><p>Clear</p></entry>
-<entry><p>Pop-up, multi-selection: ignored. Text: deletes characters. Slider:
-ignored.</p></entry>
-</row>
-<row>
-<entry><p>Edit</p></entry>
-<entry><p>Pop-up, multi-selection: ignored. Text: opens the editing menu.
-Slider: ignored.</p></entry>
-</row>
-<row>
-<entry><p>Numeric keypad</p></entry>
-<entry><p>Pop-up, multi-selection: ignored. Text: input functions. Slider:
-ignored; if the value is numeric, it may be adjustable using the Numeric keys.</p></entry>
-</row>
-<row>
-<entry><p>Other keys</p></entry>
-<entry><p>Do the default action of the key.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p/>
-<table id="GUID-02B3DF05-AF93-4E8C-A252-DCACBC02311C"><title>Default touch
-events to setting list</title>
-<tgroup cols="3">
-
-<colspec colname="col1" colwidth="0.62*"/><colspec colname="col2" colwidth="1.09*"/>
-<colspec colname="col3" colwidth="1.28*"/>
-<thead>
-<row>
-<entry valign="top"><p>User action</p></entry>
-<entry valign="top"><p>State change</p></entry>
-<entry valign="top"><p>Feedback</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Touch down</p></entry>
-<entry><p>No change</p></entry>
-<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
-given with touch down event.</p></entry>
-</row>
-<row>
-<entry><p>Touch release</p></entry>
-<entry><p>The setting item is opened. Exception for only two values in a setting
-list. Refer to 19.2 Setting item with two available values.</p></entry>
-<entry><p>Highlight disappears. Tactile: Basic list effect given with touch
-release event.</p></entry>
-</row>
-<row>
-<entry><p>Touch down and hold</p></entry>
-<entry><p>Inactive</p></entry>
-<entry><p>Tactile: No effect</p></entry>
-</row>
-<row>
-<entry><p>Touch down and move</p></entry>
-<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events</p></entry>
-<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
-and flicking</xref> events.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>In the setting editor, the Navi pane is empty, or in case of a text editor,
-contains the editing indicators.</p>
-<p>Further guidelines:</p>
-<ul>
-<li><p>Typically, a setting list is accessed via the <b>Options</b> menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref>). </p></li>
-<li><p>Setting lists can only contain setting items, not other types of items
-mixed with them. (In case the settings are arranged in a hierarchical structure,
-both setting items and setting folders may exist in one list.)</p></li>
-<li><p>All the setting item types can co-exist in the same setting list.</p></li>
-</ul>
-<p>If a pop-up setting has only two available values (such as <b>On</b> and <b>Off</b>)
-and no special procedure is needed when switching from one value to the other,
-then the setting editor (list) must not be displayed when the user presses
-the Selection key; the item's value is changed immediately. However, if the
-user opens the setting item via the <b>Options</b> menu, or if an additional
-procedure is required (for example a password) before the item's value can
-be changed, the list is opened normally.</p>
-<section id="GUID-EDDFFFA4-DFBC-4455-B6DD-D48ED995A3EF"><title>Using
-setting lists in C++ applications</title><p>The APIs to use for setting lists
-are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> and the <xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html#Setting_Pages_API_Specification.topic3" scope="peer">Using the Setting pages API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F149726A-CC79-42A1-8A25-E15AC14ABE9A" xml:lang="en"><title>Setting
+list</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A setting list is a specific kind of selection list containing setting
+items that the user can adjust. Setting lists are displayed in the main pane.</p>
+<fig id="GUID-0CDD9A63-4113-4662-BCBA-502FC7CA8FF4">
+<title>Setting list </title>
+<image href="GUID-EC7E0C0E-EEB0-45B5-BE4A-11CAF78EC366_d0e58382_href.png" placement="inline"/>
+</fig>
+<p>A setting item can be adjusted by selecting it in the same way as selection
+list items are selected in general; that is, by pressing the Selection key,
+or choosing the Change command from the Options menu. The main pane then displays
+the setting item editor where the value can be changed.</p>
+<p>There are several setting item types available. They look the same in the
+setting list: each item displays an attribute text (the title of the setting)
+on one line and the current value on another line within the item. The adjusting
+and editing functions differ between the setting item types.</p>
+<table id="GUID-212B8C90-F3AC-4893-9AF6-19A8B4845F91"><title>Setting item
+types</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.41*"/><colspec colname="col2" colwidth="1.59*"/>
+<thead>
+<row>
+<entry>Setting</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Pop-up setting</p></entry>
+<entry><p>A pop-up setting allows the user to choose one value from a pre-defined
+list. The setting editor displays the available values in a menu list. A pop-up
+setting may also allow the user to enter a new textual value in addition to
+the pre-defined values. In that case, the last option is named Other (or equivalent),
+and selecting it opens a Data query for entering the new value.</p></entry>
+</row>
+<row>
+<entry><p>Multi-selection list setting</p></entry>
+<entry><p>A multi-selection list setting allows the user to choose several
+simultaneous values from a pre-defined list. The setting editor displays the
+available values as a multi-selection list. The setting item displays the
+number of selected items versus all the items in the value field; for example:
+3/8.</p></entry>
+</row>
+<row>
+<entry><p>Text setting</p></entry>
+<entry><p>The value of a text setting item is an alphanumeric or numeric string.
+The editor can be of a specific type, such as the Date and Time editor.</p></entry>
+</row>
+<row>
+<entry><p>Slider setting</p></entry>
+<entry><p>With a slider, the user can adjust the value of a setting by sliding
+a marker. The value of a slider is adjusted using the Arrow left and Arrow
+right keys.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<fig id="GUID-100ECC17-5370-437D-B356-070DC3F1E785">
+<title>Pop-up setting</title>
+<image href="GUID-DFBBA71F-0042-4303-B66F-0D291106B655_d0e58465_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-FE7CEFF0-1929-46D5-906B-B65C4CC909BF">
+<title>Multi-selection setting</title>
+<image href="GUID-3AA34D0C-539D-4D4E-9337-EB5B83AEF4C1_d0e58473_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-9391502B-9B3E-417C-98D4-9962B88E9C97">
+<title>Text setting</title>
+<image href="GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e58481_href.png" placement="inline"/>
+</fig>
+<fig id="GUID-C8EFE352-7D5B-4199-B6C9-A9F9DEBFEF53">
+<title>Slider setting</title>
+<image href="GUID-D8D65830-CC9D-4E9F-A206-34BB077E89E6_d0e58489_href.png" placement="inline"/>
+</fig>
+<p>By default, in a setting editor, the keypad functions are as follows:</p>
+<table id="GUID-1181AD52-5BAD-4F44-A0A1-EA930F63E1AC"><title>Default key events
+in setting editor</title>
+<tgroup cols="2"><colspec colname="col1" colwidth="0.32*"/><colspec colname="col2" colwidth="1.68*"/>
+<thead>
+<row>
+<entry>Key</entry>
+<entry>Action</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Arrow up / down</p></entry>
+<entry><p>Pop-up, multi-selection: browses the list. Text: moves the cursor.
+Slider: ignored.</p></entry>
+</row>
+<row>
+<entry><p>Arrow left / right</p></entry>
+<entry><p>Pop-up: ignored. Multi-selection: ignored. Text: moves the cursor.
+Slider: adjusts the slider value (a key repeat event may move the slider by
+several steps).</p></entry>
+</row>
+<row>
+<entry><p>Selection key</p></entry>
+<entry><p>All except multi-selection: accepts the value, returns to the setting
+list. Multi-selection: toggles <b>Mark/Unmark</b>.</p></entry>
+</row>
+<row>
+<entry><p>Left softkey (OK)</p></entry>
+<entry><p>Accepts the current item or value, returns.</p><p><b>Note: </b>may
+also be <b>Options</b> in certain instances.</p></entry>
+</row>
+<row>
+<entry><p>Right softkey (Cancel)</p></entry>
+<entry><p>Cancels the setting editor, returns.</p></entry>
+</row>
+<row>
+<entry><p>Clear</p></entry>
+<entry><p>Pop-up, multi-selection: ignored. Text: deletes characters. Slider:
+ignored.</p></entry>
+</row>
+<row>
+<entry><p>Edit</p></entry>
+<entry><p>Pop-up, multi-selection: ignored. Text: opens the editing menu.
+Slider: ignored.</p></entry>
+</row>
+<row>
+<entry><p>Numeric keypad</p></entry>
+<entry><p>Pop-up, multi-selection: ignored. Text: input functions. Slider:
+ignored; if the value is numeric, it may be adjustable using the Numeric keys.</p></entry>
+</row>
+<row>
+<entry><p>Other keys</p></entry>
+<entry><p>Do the default action of the key.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p/>
+<table id="GUID-02B3DF05-AF93-4E8C-A252-DCACBC02311C"><title>Default touch
+events to setting list</title>
+<tgroup cols="3">
+
+<colspec colname="col1" colwidth="0.62*"/><colspec colname="col2" colwidth="1.09*"/>
+<colspec colname="col3" colwidth="1.28*"/>
+<thead>
+<row>
+<entry valign="top"><p>User action</p></entry>
+<entry valign="top"><p>State change</p></entry>
+<entry valign="top"><p>Feedback</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Touch down</p></entry>
+<entry><p>No change</p></entry>
+<entry><p>Highlight is shown. </p><p>Tactile: Basic list effect and audio
+given with touch down event.</p></entry>
+</row>
+<row>
+<entry><p>Touch release</p></entry>
+<entry><p>The setting item is opened. Exception for only two values in a setting
+list. Refer to 19.2 Setting item with two available values.</p></entry>
+<entry><p>Highlight disappears. Tactile: Basic list effect given with touch
+release event.</p></entry>
+</row>
+<row>
+<entry><p>Touch down and hold</p></entry>
+<entry><p>Inactive</p></entry>
+<entry><p>Tactile: No effect</p></entry>
+</row>
+<row>
+<entry><p>Touch down and move</p></entry>
+<entry><p>Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events</p></entry>
+<entry><p>Tactile: Refer to <xref href="GUID-7C61D3D7-8FCB-46AB-B2E9-CE1AC68F86DE.dita">Dragging
+and flicking</xref> events.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>In the setting editor, the Navi pane is empty, or in case of a text editor,
+contains the editing indicators.</p>
+<p>Further guidelines:</p>
+<ul>
+<li><p>Typically, a setting list is accessed via the <b>Options</b> menu (see <xref href="GUID-BFEEECCA-190B-4DDE-8A04-4FE918BE8690.dita">Options menu</xref>). </p></li>
+<li><p>Setting lists can only contain setting items, not other types of items
+mixed with them. (In case the settings are arranged in a hierarchical structure,
+both setting items and setting folders may exist in one list.)</p></li>
+<li><p>All the setting item types can co-exist in the same setting list.</p></li>
+</ul>
+<p>If a pop-up setting has only two available values (such as <b>On</b> and <b>Off</b>)
+and no special procedure is needed when switching from one value to the other,
+then the setting editor (list) must not be displayed when the user presses
+the Selection key; the item's value is changed immediately. However, if the
+user opens the setting item via the <b>Options</b> menu, or if an additional
+procedure is required (for example a password) before the item's value can
+be changed, the list is opened normally.</p>
+<section id="GUID-EDDFFFA4-DFBC-4455-B6DD-D48ED995A3EF"><title>Using
+setting lists in applications</title><p>The APIs to use for setting
+lists are the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> and the <xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html" scope="peer">Setting pages API</xref>. For implementation information, see <xref format="htrml" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic3" scope="peer">Using the Lists API</xref> and <xref format="html" href="specs/guides/Setting_Pages_API_Specification/Setting_Pages_API_Specification.html#Setting_Pages_API_Specification.topic3" scope="peer">Using the Setting pages API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,86 +1,86 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7" xml:lang="en"><title>Repetitive
-Search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>When a new search-sort asynchronous operation is successful, a unique ID
-is returned to the client, which is referred as query ID. This query ID can
-be used to repeat the same search-sort query. </p>
-<section><title>Required background</title> <p>To do a repetitive search operation,
-that is searching messages using a query ID, you must first get the query
-ID of that search operation. </p> </section>
-<section><title>Introduction</title> <p>Every new search-sort asynchronous
-query that is successful is assigned with a unique 32 bit integer value, which
-is referred to as a <xref href="GUID-01500959-E1C8-3491-B8F1-0D2F0512CC16.dita"><apiname>query           ID</apiname></xref>. This query ID is
-used to initiate the same search-sort operation (initiate a repetitive query)
-in future. The query ID can be retrieved using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1893C3C7-4F77-3630-B115-A161CCA2665A"><apiname>CMsvSearchSortOperation::GetQueryIdL()</apiname></xref> function. </p> <p><b>Marking</b> </p> <p>When the search-sort cache reaches its maximum size the message server
-deletes the least recently used query to accommodate a new one. However, there
-may be some queries and their results which the client wants to keep in the
-cache, irrespective of how frequently they are being used. </p> <p>Such queries
-can be marked by the client to indicate to the Messaging server that the query
-should not be disposed from the search-sort cache when the cache is full.
-Marked queries are considered for deletion only if all of the remaining queries
-are also marked. </p> <p>To mark a query ID, use the <codeph>TBool aMarkQuery</codeph> parameter
-in the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref> function in
-your client application. </p> <codeblock id="GUID-EED135A5-C141-5525-9C0C-DCF318040C46" xml:space="preserve">IMPORT_C void RequestL (CMsvSearchSortQuery* aQuery, TBool aMarkQuery, TRequestStatus&amp; aQueryStatus, TInt aIterator=0)</codeblock> <p><b>Unmarking</b> </p> <p>To unmark a query ID, use the CMsvSearchSortOperation::UnmarkQuery()
-function in your client application. </p> <codeblock id="GUID-1C27E207-33F0-5F64-81FC-C50BF257BCB7" xml:space="preserve">IMPORT_C TInt UnmarkQuery  (const TInt aQueryId )</codeblock> <fig id="GUID-7D09EFAE-67B3-5142-A6EF-F9D86E39414F">
-<title>              Repetitive search request process            </title>
-<image href="GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e287390_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Procedure</title> <ol id="GUID-E149145A-A3CB-5CE9-9484-9A7B41E9D302">
-<li id="GUID-9D17EF5C-BCA1-5FAE-BE69-DDF6B441F4A5"><p>To get a query ID, complete
-the steps from 1 to 10 in <xref href="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita">New
-Search</xref>. </p> </li>
-<li id="GUID-CD3AABCA-4A90-5B1C-8D77-A2E76161DF2A"><p>Get the query ID from
-step 10 and start the search operation using the query ID as the search parameter. </p> </li>
-</ol><codeblock xml:space="preserve">void CSearchsortExample::SeachSortRequestByQueryIdL()
-    {
-    //1. Create a session with message server
-    // NOTE: CMsvSession::OpenSyncL requires a &amp;MMsvObserver parameter. This example assumes that 
-    // CSearchSortExample implements MMsvObserver.
-    CMsvSession* session = CMsvSession::OpenSyncL(*this);
-    CleanupStack::PushL(session);
-
-    //2. Create an instance of CMsvSearchSortOperation to perform a 
-    //search-sort operation    
-    CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session);
-    CleanupStack::PushL(search);
-            
-    //3. Start the search operation using the query ID as the search parameter
-    TRequestStatus aStatus;
-    search-&gt;RequestL(iQueryId, aStatus);
-
-    //4. Wait for the result
-    User::WaitForRequest(aStatus);
-
-    //5. Create an array to hold Search-sort results
-    RArray&lt;TMsvId&gt; resultArray;
-
-    //6. Retrieve the results of the search. The format for the results should be the same as
-    // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest
-    // error
-    TInt err =  search-&gt;GetResultsL(resultArray);
-    if(ret == KErrNone)
-        {
-        TInt count = resultArray.Count();
-        }
-
-    //7. Store the query ID. This ID can be used in repetitive search queries.
-    iQueryId = search-&gt;GetQueryIdL();
-    
-    CleanupStack::PopAndDestroy(2); //search, session  
-    }</codeblock> </section>
-<example><title>Search-sort example</title> <p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample:
-Enhanced Search and Sort for Message Store </xref>  </p> </example>
-<section><title>See also</title> <p>For conceptual information on search-sort
-APIs, see <xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Search-Sort
-Introduction</xref>. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7" xml:lang="en"><title>Repetitive
+Search</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>When a new search-sort asynchronous operation is successful, a unique ID
+is returned to the client, which is referred as query ID. This query ID can
+be used to repeat the same search-sort query. </p>
+<section><title>Required background</title> <p>To do a repetitive search operation,
+that is searching messages using a query ID, you must first get the query
+ID of that search operation. </p> </section>
+<section><title>Introduction</title> <p>Every new search-sort asynchronous
+query that is successful is assigned with a unique 32 bit integer value, which
+is referred to as a <xref href="GUID-01500959-E1C8-3491-B8F1-0D2F0512CC16.dita"><apiname>query           ID</apiname></xref>. This query ID is
+used to initiate the same search-sort operation (initiate a repetitive query)
+in future. The query ID can be retrieved using the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-1893C3C7-4F77-3630-B115-A161CCA2665A"><apiname>CMsvSearchSortOperation::GetQueryIdL()</apiname></xref> function. </p> <p><b>Marking</b> </p> <p>When the search-sort cache reaches its maximum size the message server
+deletes the least recently used query to accommodate a new one. However, there
+may be some queries and their results which the client wants to keep in the
+cache, irrespective of how frequently they are being used. </p> <p>Such queries
+can be marked by the client to indicate to the Messaging server that the query
+should not be disposed from the search-sort cache when the cache is full.
+Marked queries are considered for deletion only if all of the remaining queries
+are also marked. </p> <p>To mark a query ID, use the <codeph>TBool aMarkQuery</codeph> parameter
+in the <xref href="GUID-5D956759-5D21-3715-916E-F7E703172762.dita#GUID-5D956759-5D21-3715-916E-F7E703172762/GUID-6C81A72A-3BEC-3D18-9CAD-46E9309C3FEB"><apiname>CMsvSearchSortOperation::RequestL()</apiname></xref> function in
+your client application. </p> <codeblock id="GUID-EED135A5-C141-5525-9C0C-DCF318040C46" xml:space="preserve">IMPORT_C void RequestL (CMsvSearchSortQuery* aQuery, TBool aMarkQuery, TRequestStatus&amp; aQueryStatus, TInt aIterator=0)</codeblock> <p><b>Unmarking</b> </p> <p>To unmark a query ID, use the CMsvSearchSortOperation::UnmarkQuery()
+function in your client application. </p> <codeblock id="GUID-1C27E207-33F0-5F64-81FC-C50BF257BCB7" xml:space="preserve">IMPORT_C TInt UnmarkQuery  (const TInt aQueryId )</codeblock> <fig id="GUID-7D09EFAE-67B3-5142-A6EF-F9D86E39414F">
+<title>              Repetitive search request process            </title>
+<image href="GUID-E9F08BCA-39F6-55D3-8974-BD0FFB90DE11_d0e283704_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Procedure</title> <ol id="GUID-E149145A-A3CB-5CE9-9484-9A7B41E9D302">
+<li id="GUID-9D17EF5C-BCA1-5FAE-BE69-DDF6B441F4A5"><p>To get a query ID, complete
+the steps from 1 to 10 in <xref href="GUID-3F938A76-3F27-56ED-BB3D-0E7EC4ACFB9C.dita">New
+Search</xref>. </p> </li>
+<li id="GUID-CD3AABCA-4A90-5B1C-8D77-A2E76161DF2A"><p>Get the query ID from
+step 10 and start the search operation using the query ID as the search parameter. </p> </li>
+</ol><codeblock xml:space="preserve">void CSearchsortExample::SeachSortRequestByQueryIdL()
+    {
+    //1. Create a session with message server
+    // NOTE: CMsvSession::OpenSyncL requires a &amp;MMsvObserver parameter. This example assumes that 
+    // CSearchSortExample implements MMsvObserver.
+    CMsvSession* session = CMsvSession::OpenSyncL(*this);
+    CleanupStack::PushL(session);
+
+    //2. Create an instance of CMsvSearchSortOperation to perform a 
+    //search-sort operation    
+    CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session);
+    CleanupStack::PushL(search);
+            
+    //3. Start the search operation using the query ID as the search parameter
+    TRequestStatus aStatus;
+    search-&gt;RequestL(iQueryId, aStatus);
+
+    //4. Wait for the result
+    User::WaitForRequest(aStatus);
+
+    //5. Create an array to hold Search-sort results
+    RArray&lt;TMsvId&gt; resultArray;
+
+    //6. Retrieve the results of the search. The format for the results should be the same as
+    // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest
+    // error
+    TInt err =  search-&gt;GetResultsL(resultArray);
+    if(ret == KErrNone)
+        {
+        TInt count = resultArray.Count();
+        }
+
+    //7. Store the query ID. This ID can be used in repetitive search queries.
+    iQueryId = search-&gt;GetQueryIdL();
+    
+    CleanupStack::PopAndDestroy(2); //search, session  
+    }</codeblock> </section>
+<example><title>Search-sort example</title> <p><xref href="GUID-B26A4743-F331-5AC3-A40A-28B14B785857.dita">SearchSortExample:
+Enhanced Search and Sort for Message Store </xref>  </p> </example>
+<section><title>See also</title> <p>For conceptual information on search-sort
+APIs, see <xref href="GUID-32C1FC8B-F7D2-5275-BDF2-0D662551294C.dita">Search-Sort
+Introduction</xref>. </p> </section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,124 +1,124 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE reference
-  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
-<reference id="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22" xml:lang="en"><title>linkedlist:
-Using the Linked List classes</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><refbody>
-<section id="GUID-4B81C04C-94DD-4694-9BD9-447ADE72B294"><p>The following examples
-show the use of the linked list classes: </p> <ul>
-<li id="GUID-F204E5EC-593B-556D-83DC-72B7B5C7C46A"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"> Singly linked list example</xref>  </p> </li>
-<li id="GUID-295D6285-199E-5FD8-B0B9-90FA546831F8"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"> Doubly linked list example</xref>  </p> </li>
-<li id="GUID-F459FF26-D837-5E5F-BB50-67D12D3EE93F"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"> Delta queue example</xref>  </p> </li>
-</ul> </section>
-<section id="GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"><title>Singly linked
-list example</title> <p>This example application demonstrates the use of singly
-linked lists. The templated <xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref> class is used to create
-a singly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
-link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-54304ba8-7028-43b8-89b8-d89432684981.zip" scope="external">sgllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-54304ba8-7028-43b8-89b8-d89432684981.html" scope="peer">browse </xref>to view the example.</p> <p><b>Description</b> </p> <p>The
-example creates a singly linked list of objects of the <xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref> class.
-This list represents a long number. An object of class <xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref> owns
-the list. The user can edit this list using the functions defined in the <codeph>CLongNumber</codeph> class.
-The following edit operations are possible: </p> <ul>
-<li id="GUID-C793B73E-9037-5B22-8A3A-EFAD7A666D53"><p>Insert an object of
-the <codeph>TDigit</codeph> class at the start of the singly linked list </p> </li>
-<li id="GUID-C46B31C9-49FF-5457-9157-E55316F26252"><p>Insert an object of
-the <codeph>TDigit</codeph> class at the end of the singly linked list </p> </li>
-<li id="GUID-9AFD5005-AA6A-5D7D-9B96-35CBA4791128"><p>Remove an object of
-the <codeph>TDigit</codeph> class from the end of the singly linked list </p> </li>
-</ul> <p>The user can perform any of these operations by pressing keys specified
-in the menu. <codeph>CLongNumber</codeph> is an active object class and handles
-the key press events in the <codeph>CLongNumber::RunL()</codeph> function.The <codeph>CLongNumber::ReadFunc()</codeph> function
-displays a menu and waits for an asynchronous key press event. </p> <p>An
-object of the templated <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref> class is used to traverse
-this linked list. The sum of all digits of the number represented by the linked
-list is displayed to the user. </p> <p>An object of the <xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref> class
-is used to traverse the <codeph>CLongNumber::iNumber</codeph> list and print
-the sum of all digits of the number represented by this list. The <codeph>CAdder::Add()</codeph> function
-gets this sum. </p><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref></p></li>
-<li><p><xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref></p></li>
-<li><p><xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref></p></li>
-<li><p><xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
-</ul> <p><b>Design and implementation</b> </p> <p>Figure 1 shows the classes
-in the example. </p> <fig id="GUID-7BB458A7-C1E6-5919-A503-BFBE695432AA">
-<title>     Figure 1. Classes in the singly linked list example          
-    </title>
-<image href="GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e256243_href.jpg" placement="inline"/>
-</fig> <p><b>Class summary</b></p><ul>
-<li><p><xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref></p></li>
-<li><p> <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
-</ul><p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this example. </p> <p>For
-the emulator, the example builds an executable called <filepath>sgllist.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p><p><b>See
-also:</b></p><p><xref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita">Using
-Singly Linked Lists</xref></p> </section>
-<section id="GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"><title>Doubly linked
-list example</title> <p>This example application demonstrates the use of doubly
-linked lists. The templated <xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> class is used create
-a doubly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
-link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.zip" scope="external">dbllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.html" scope="peer">browse </xref>to view the example code</p> <p><b>Description</b> </p> <p>The
-example creates a doubly linked list of objects of the <codeph>TLetter</codeph> class.
-This list represents a character string. An object of class <codeph>CMyStringReverse</codeph> owns
-this string. The user can edit this string using the functions defined in
-the <codeph>CMyStringReverse</codeph> class. The following edit operations
-are possible: </p> <ul>
-<li id="GUID-D3B39123-1249-59DD-BC1F-2D62B7F9DE84"><p>Insert a character at
-the start of the list </p> </li>
-<li id="GUID-E6CEC00A-B6C1-53B2-9AAA-870EA8B06A5B"><p>Insert a character at
-the end of the list </p> </li>
-</ul> <p>The user can perform either of these operations by pressing keys
-specified in the menu. <codeph>CMyStringReverse</codeph> is an active object
-class and handles key press events in the <codeph>CMyStringReverse::RunL()</codeph> function.
-The <codeph>CMyStringReverse::ReadFunc()</codeph> function displays a menu
-and waits for an asynchronous key press event. </p> <p>The <codeph>CMyStringReverse</codeph> class
-has a doubly linked list iterator, <codeph>iIteratorString</codeph>. The <codeph>iIteratorString</codeph> object
-iterates through the list <codeph>iString</codeph> from start to end to print
-the string reversed. </p><p><b>Design and implementation</b></p><p>Figure
-2 shows the classes in the example.</p><fig id="GUID-67F3F952-D0A8-4A28-8CB2-0394C1562A29">
-<title> Figure 2. Classes in the doubly linked list example </title>
-<image href="GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e256382_href.jpg" placement="inline"/>
-</fig><p><b>Class summary</b></p><ul>
-<li><p><xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> - A templated class that provides the behaviour
-for managing a doubly linked list.</p></li>
-</ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this example. </p> <p>For
-the emulator, the example builds an executable called <filepath>dbllist.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> <p><b>See
-also</b> </p> <p><xref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita">Using
-Doubly Linked Lists</xref>  </p> <p><b>Example code</b> </p> </section>
-<section id="GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"><title>Delta queue
-example</title> <p>This example application demonstrates the use of the delta
-queue. The templated <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref> class is used create a delta
-queue. </p> <p><b>Download</b> </p> <p>Click on the following link to download
-the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-6a73c507-073b-4993-aa02-a677a384bafb.zip" scope="external">deltaque.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-6a73c507-073b-4993-aa02-a677a384bafb.html" scope="peer">browse </xref>to view the example code.</p> <p><b>Description</b> </p> <p>The
-example creates an object of the <codeph>CTimerEntry</codeph> class. This
-is a <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> derived class. An object of this class generates
-timer events by using the <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref> function. The
-data member of this class, <codeph>iQueue</codeph> is a delta list. The offset
-value of each node in this list is the tick count after each timer event.
-The <codeph>CTimerEntry::Arbitrator()</codeph> function decides the action
-to be performed for each event generated by the timer. It either adds tick
-counts to the list or removes elements from the list based on the state of
-the queue. </p><p><b>Related APIs</b></p><ul>
-<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
-<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref></p></li>
-</ul><p><b>Design and implementation</b></p><p> Figure 3 shows the classes
-of the example. </p><fig id="GUID-2E093EFA-7A18-4623-AE31-3FA1FDB103F5">
-<title> Figure 3. Classes of the delta queue example </title>
-<image href="GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e256511_href.jpg" placement="inline"/>
-</fig><p><b>Class summary</b></p><ul>
-<li><p> <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref></p></li>
-<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
-</ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
-Symbian build process</xref> describes how to build this example. </p> <p>For
-the emulator, the example builds an executable called <filepath>deltaque.exe</filepath> in
-the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE reference
+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
+<reference id="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22" xml:lang="en"><title>linkedlist:
+Using the Linked List classes</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><refbody>
+<section id="GUID-4B81C04C-94DD-4694-9BD9-447ADE72B294"><p>The following examples
+show the use of the linked list classes: </p> <ul>
+<li id="GUID-F204E5EC-593B-556D-83DC-72B7B5C7C46A"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"> Singly linked list example</xref>  </p> </li>
+<li id="GUID-295D6285-199E-5FD8-B0B9-90FA546831F8"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"> Doubly linked list example</xref>  </p> </li>
+<li id="GUID-F459FF26-D837-5E5F-BB50-67D12D3EE93F"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"> Delta queue example</xref>  </p> </li>
+</ul> </section>
+<section id="GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"><title>Singly linked
+list example</title> <p>This example application demonstrates the use of singly
+linked lists. The templated <xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref> class is used to create
+a singly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
+link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-54304ba8-7028-43b8-89b8-d89432684981.zip" scope="external">sgllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-54304ba8-7028-43b8-89b8-d89432684981.html" scope="peer">browse </xref>to view the example.</p> <p><b>Description</b> </p> <p>The
+example creates a singly linked list of objects of the <xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref> class.
+This list represents a long number. An object of class <xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref> owns
+the list. The user can edit this list using the functions defined in the <codeph>CLongNumber</codeph> class.
+The following edit operations are possible: </p> <ul>
+<li id="GUID-C793B73E-9037-5B22-8A3A-EFAD7A666D53"><p>Insert an object of
+the <codeph>TDigit</codeph> class at the start of the singly linked list </p> </li>
+<li id="GUID-C46B31C9-49FF-5457-9157-E55316F26252"><p>Insert an object of
+the <codeph>TDigit</codeph> class at the end of the singly linked list </p> </li>
+<li id="GUID-9AFD5005-AA6A-5D7D-9B96-35CBA4791128"><p>Remove an object of
+the <codeph>TDigit</codeph> class from the end of the singly linked list </p> </li>
+</ul> <p>The user can perform any of these operations by pressing keys specified
+in the menu. <codeph>CLongNumber</codeph> is an active object class and handles
+the key press events in the <codeph>CLongNumber::RunL()</codeph> function.The <codeph>CLongNumber::ReadFunc()</codeph> function
+displays a menu and waits for an asynchronous key press event. </p> <p>An
+object of the templated <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref> class is used to traverse
+this linked list. The sum of all digits of the number represented by the linked
+list is displayed to the user. </p> <p>An object of the <xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref> class
+is used to traverse the <codeph>CLongNumber::iNumber</codeph> list and print
+the sum of all digits of the number represented by this list. The <codeph>CAdder::Add()</codeph> function
+gets this sum. </p><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref></p></li>
+<li><p><xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref></p></li>
+<li><p><xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref></p></li>
+<li><p><xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
+</ul> <p><b>Design and implementation</b> </p> <p>Figure 1 shows the classes
+in the example. </p> <fig id="GUID-7BB458A7-C1E6-5919-A503-BFBE695432AA">
+<title>     Figure 1. Classes in the singly linked list example          
+    </title>
+<image href="GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e252535_href.jpg" placement="inline"/>
+</fig> <p><b>Class summary</b></p><ul>
+<li><p><xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref></p></li>
+<li><p> <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
+</ul><p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. </p> <p>For
+the emulator, the example builds an executable called <filepath>sgllist.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p><p><b>See
+also:</b></p><p><xref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita">Using
+Singly Linked Lists</xref></p> </section>
+<section id="GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"><title>Doubly linked
+list example</title> <p>This example application demonstrates the use of doubly
+linked lists. The templated <xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> class is used create
+a doubly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
+link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.zip" scope="external">dbllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.html" scope="peer">browse </xref>to view the example code</p> <p><b>Description</b> </p> <p>The
+example creates a doubly linked list of objects of the <codeph>TLetter</codeph> class.
+This list represents a character string. An object of class <codeph>CMyStringReverse</codeph> owns
+this string. The user can edit this string using the functions defined in
+the <codeph>CMyStringReverse</codeph> class. The following edit operations
+are possible: </p> <ul>
+<li id="GUID-D3B39123-1249-59DD-BC1F-2D62B7F9DE84"><p>Insert a character at
+the start of the list </p> </li>
+<li id="GUID-E6CEC00A-B6C1-53B2-9AAA-870EA8B06A5B"><p>Insert a character at
+the end of the list </p> </li>
+</ul> <p>The user can perform either of these operations by pressing keys
+specified in the menu. <codeph>CMyStringReverse</codeph> is an active object
+class and handles key press events in the <codeph>CMyStringReverse::RunL()</codeph> function.
+The <codeph>CMyStringReverse::ReadFunc()</codeph> function displays a menu
+and waits for an asynchronous key press event. </p> <p>The <codeph>CMyStringReverse</codeph> class
+has a doubly linked list iterator, <codeph>iIteratorString</codeph>. The <codeph>iIteratorString</codeph> object
+iterates through the list <codeph>iString</codeph> from start to end to print
+the string reversed. </p><p><b>Design and implementation</b></p><p>Figure
+2 shows the classes in the example.</p><fig id="GUID-67F3F952-D0A8-4A28-8CB2-0394C1562A29">
+<title> Figure 2. Classes in the doubly linked list example </title>
+<image href="GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e252674_href.jpg" placement="inline"/>
+</fig><p><b>Class summary</b></p><ul>
+<li><p><xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> - A templated class that provides the behaviour
+for managing a doubly linked list.</p></li>
+</ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. </p> <p>For
+the emulator, the example builds an executable called <filepath>dbllist.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> <p><b>See
+also</b> </p> <p><xref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita">Using
+Doubly Linked Lists</xref>  </p> <p><b>Example code</b> </p> </section>
+<section id="GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"><title>Delta queue
+example</title> <p>This example application demonstrates the use of the delta
+queue. The templated <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref> class is used create a delta
+queue. </p> <p><b>Download</b> </p> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-6a73c507-073b-4993-aa02-a677a384bafb.zip" scope="external">deltaque.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-6a73c507-073b-4993-aa02-a677a384bafb.html" scope="peer">browse </xref>to view the example code.</p> <p><b>Description</b> </p> <p>The
+example creates an object of the <codeph>CTimerEntry</codeph> class. This
+is a <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> derived class. An object of this class generates
+timer events by using the <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref> function. The
+data member of this class, <codeph>iQueue</codeph> is a delta list. The offset
+value of each node in this list is the tick count after each timer event.
+The <codeph>CTimerEntry::Arbitrator()</codeph> function decides the action
+to be performed for each event generated by the timer. It either adds tick
+counts to the list or removes elements from the list based on the state of
+the queue. </p><p><b>Related APIs</b></p><ul>
+<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
+<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref></p></li>
+</ul><p><b>Design and implementation</b></p><p> Figure 3 shows the classes
+of the example. </p><fig id="GUID-2E093EFA-7A18-4623-AE31-3FA1FDB103F5">
+<title> Figure 3. Classes of the delta queue example </title>
+<image href="GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e252803_href.jpg" placement="inline"/>
+</fig><p><b>Class summary</b></p><ul>
+<li><p> <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref></p></li>
+<li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
+</ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
+Symbian build process</xref> describes how to build this example. </p> <p>For
+the emulator, the example builds an executable called <filepath>deltaque.exe</filepath> in
+the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </section>
 </refbody></reference>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e51832_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e57438_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e58481_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e62503_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e64048_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69073_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e69279_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F161C184-2016-4331-A57C-78C753453EFE_d0e74217_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e4714_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F18A6C91-136D-450E-90F0-7C2B9263777C_d0e5989_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e388871_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-F18AA5AC-80C6-51B2-8D15-61C59D877520_d0e389033_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7" xml:lang="en"><title>Find
-pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Find pane is a component intended to help find items in a list. The
-Find pane is situated in the bottom part of the main pane.</p>
-<fig id="GUID-08B6ECBF-B245-4476-BF17-29894CEBFE21">
-<title>Find pane within a selection list of names in Phonebook</title>
-<image href="GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e57857_href.png" placement="inline"/>
-</fig>
-<p>The standard functionality of the Find pane is as follows:</p>
-<ul>
-<li><p>Characters typed from the numeric keypad appear at the end of the string
-in the Find pane. </p></li>
-<li><p>The user can only add and remove characters at the end.</p></li>
-<li><p>The Find pane may be hidden until the user types in a character. </p></li>
-<li><p>Whenever the find string changes, the list in the main pane is filtered,
-and only the items matching the string are displayed. The user can browse
-the list normally using the Arrow up and Arrow down keys.</p></li>
-</ul>
-<p>The Find pane can also be a pop-up window. In this case, it is only displayed
-when it is specifically activated.</p>
-<section id="GUID-A625A3A9-3D7F-42C0-9FA2-251616E40138"><title>Using
-the Find pane in C++ applications</title><p>The APIs to use for the Find pane
-are the Searchfield API and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F1CC06C0-0D3A-4BBC-97E1-E52D2856D7A7" xml:lang="en"><title>Find
+pane</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The Find pane is a component intended to help find items in a list. The
+Find pane is situated in the bottom part of the main pane.</p>
+<fig id="GUID-08B6ECBF-B245-4476-BF17-29894CEBFE21">
+<title>Find pane within a selection list of names in Phonebook</title>
+<image href="GUID-0EBE8B44-1F42-4654-AC4D-A5F242FA49EB_d0e52114_href.png" placement="inline"/>
+</fig>
+<p>The standard functionality of the Find pane is as follows:</p>
+<ul>
+<li><p>Characters typed from the numeric keypad appear at the end of the string
+in the Find pane. </p></li>
+<li><p>The user can only add and remove characters at the end.</p></li>
+<li><p>The Find pane may be hidden until the user types in a character. </p></li>
+<li><p>Whenever the find string changes, the list in the main pane is filtered,
+and only the items matching the string are displayed. The user can browse
+the list normally using the Arrow up and Arrow down keys.</p></li>
+</ul>
+<p>The Find pane can also be a pop-up window. In this case, it is only displayed
+when it is specifically activated.</p>
+<section id="GUID-A625A3A9-3D7F-42C0-9FA2-251616E40138"><title>Using
+the Find pane in applications</title><p>The APIs to use for the Find pane
+are the Searchfield API and the <xref format="html" href="specs/guides/Popups_API_Specification/Popups_API_Specification.html" scope="peer">Popups API</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e74305_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F1EFB7C3-BC06-4822-BA37-06B02BECE80A_d0e79427_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72" xml:lang="en"><title>ABIv1
-to ABIv2 toolchain changes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The principal task of Symbian platform build tools such as <filepath>abld/makmake</filepath> is
-to read the specified project (.mmp) files and then call the appropriate compiler
-and linker with the necessary inputs and option settings. The binaries output
-from commercial compiler and linkers, such as ARM's RVCT and GNU GCC, cannot
-however be directly used by Symbian platform. Symbian platform requires binaries
-to be in Symbian-specific format, known as the E32Image format. </p>
-<p>In order to create binaries in this format, the toolchain must perform
-additional steps on the compiler/linker output. How these steps are performed
-is considerably different between builds for the ABIv1 and ABIv2 targets.
-Essentially, a number of small tools used for ABIv1 targets, are replaced
-for ABIv2 targets by a single tool called the post-linker (file name <filepath>elf2e32.exe</filepath>).
-This redesign is intended to simplify the work needed to introduce support
-for a new ABIv2 compatible compiler into the toolchain. </p>
-<p>The following diagram shows the steps (somewhat simplified) performed by
-the toolchain for the creation of a DLL for ABIv1 and v2 respectively: </p>
-<fig id="GUID-F68AB795-A612-5202-A459-30B62663737F">
-<title>           ABIv1 and v2 toolchains compared          </title>
-<image href="GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469621_href.png" placement="inline"/>
-</fig>
-<p>The <filepath>elf2e32</filepath> tool replaces the ABIv1 toolchain tools <filepath>def2dll.bat</filepath>, <filepath>elf2inf.pl</filepath>, <filepath>makedef.pl</filepath> and <filepath>elftran.exe</filepath>. </p>
-<section><title>.dso files </title><p>In the ABIv2 toolchain, <filepath> .lib</filepath> files
-are replaced by <filepath>.dso</filepath> files. These files are used in similar
-situations to <filepath>.lib</filepath> files. However, the format of these
-two files is completely different. A <filepath>.lib</filepath> file is an
-archive file created from stubs generated for each of the exported symbols.
-A <filepath>.dso</filepath> file is an ELF object similar to other objects
-created with the compiler. It has all the associated sections required for
-an ELF object, such as the symbol table, string table, etc. The <filepath>.dso</filepath> file
-also has the information required for the linker to link to the correct ordinals
-to the DLL. <filepath>.lib</filepath> files cannot be used by the ABIv2 toolchain,
-and <filepath>.dso</filepath> files cannot be used by the ABIv1 toolchain.</p></section>
-<section><title>Linked objects </title><p>The compiler toolchain that supports
-ABIv2 produces linked objects that are different to those produced by the
-ABIv1 toolchain. The linked objects produced are both ELF format, but they
-have extra information that can be used by a postlinker to create platform
-specific binaries. As the ELF produced by ABIv2 has more information, it is
-not necessary to perform the sort of manipulations performed by the many small
-tools in the ABIv1 toolchain. As the linked objects differ significantly in
-their content, it is not possible to mix ABIv1 and ABIv2 toolchain objects
-in the same build tree. </p></section>
-<section><title>E32Image format </title><p>The final E32image produced by
-the ABIv2 toolchain is in the same format as that of the ABIv1 toolchain.
-However, a byte by byte comparison of the same E32image file in ABIv1 and
-ABIv2 is not possible. The layout of the code produced by the linker is different,
-although the code is still binary compatible. </p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72" xml:lang="en"><title>ABIv1
+to ABIv2 toolchain changes</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The principal task of Symbian platform build tools such as <filepath>abld/makmake</filepath> is
+to read the specified project (.mmp) files and then call the appropriate compiler
+and linker with the necessary inputs and option settings. The binaries output
+from commercial compiler and linkers, such as ARM's RVCT and GNU GCC, cannot
+however be directly used by Symbian platform. Symbian platform requires binaries
+to be in Symbian-specific format, known as the E32Image format. </p>
+<p>In order to create binaries in this format, the toolchain must perform
+additional steps on the compiler/linker output. How these steps are performed
+is considerably different between builds for the ABIv1 and ABIv2 targets.
+Essentially, a number of small tools used for ABIv1 targets, are replaced
+for ABIv2 targets by a single tool called the post-linker (file name <filepath>elf2e32.exe</filepath>).
+This redesign is intended to simplify the work needed to introduce support
+for a new ABIv2 compatible compiler into the toolchain. </p>
+<p>The following diagram shows the steps (somewhat simplified) performed by
+the toolchain for the creation of a DLL for ABIv1 and v2 respectively: </p>
+<fig id="GUID-F68AB795-A612-5202-A459-30B62663737F">
+<title>           ABIv1 and v2 toolchains compared          </title>
+<image href="GUID-09263C33-EE63-530C-A6B9-70806F0BC16D_d0e469457_href.png" placement="inline"/>
+</fig>
+<p>The <filepath>elf2e32</filepath> tool replaces the ABIv1 toolchain tools <filepath>def2dll.bat</filepath>, <filepath>elf2inf.pl</filepath>, <filepath>makedef.pl</filepath> and <filepath>elftran.exe</filepath>. </p>
+<section><title>.dso files </title><p>In the ABIv2 toolchain, <filepath> .lib</filepath> files
+are replaced by <filepath>.dso</filepath> files. These files are used in similar
+situations to <filepath>.lib</filepath> files. However, the format of these
+two files is completely different. A <filepath>.lib</filepath> file is an
+archive file created from stubs generated for each of the exported symbols.
+A <filepath>.dso</filepath> file is an ELF object similar to other objects
+created with the compiler. It has all the associated sections required for
+an ELF object, such as the symbol table, string table, etc. The <filepath>.dso</filepath> file
+also has the information required for the linker to link to the correct ordinals
+to the DLL. <filepath>.lib</filepath> files cannot be used by the ABIv2 toolchain,
+and <filepath>.dso</filepath> files cannot be used by the ABIv1 toolchain.</p></section>
+<section><title>Linked objects </title><p>The compiler toolchain that supports
+ABIv2 produces linked objects that are different to those produced by the
+ABIv1 toolchain. The linked objects produced are both ELF format, but they
+have extra information that can be used by a postlinker to create platform
+specific binaries. As the ELF produced by ABIv2 has more information, it is
+not necessary to perform the sort of manipulations performed by the many small
+tools in the ABIv1 toolchain. As the linked objects differ significantly in
+their content, it is not possible to mix ABIv1 and ABIv2 toolchain objects
+in the same build tree. </p></section>
+<section><title>E32Image format </title><p>The final E32image produced by
+the ABIv2 toolchain is in the same format as that of the ABIv1 toolchain.
+However, a byte by byte comparison of the same E32image file in ABIv1 and
+ABIv2 is not possible. The layout of the code produced by the linker is different,
+although the code is still binary compatible. </p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e184149_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F220E2B7-DE9B-5230-A396-15853369C176_d0e190745_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F23BB1F1-CF90-597F-8410-34AB8B567501.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,82 +1,82 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501" xml:lang="en"><title>PIM Subsystem
-Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-201D8954-325A-422C-94D3-772274154AF9"><title>Purpose</title> <p>This
-document describes storage, organisation and utility functionalities within
-Symbian platform Personal Information Management (PIM) technology, as defined
-by its subsystems: Application Engines and Application Services. </p> </section>
-<section id="GUID-78706FAF-6F53-4DFD-B77B-BA44C5E087B2"><title>Key Concepts</title> <p> <i>Application
-Engines</i> - provide PIM data storage and manipulation. </p> <p> <i>Application
-Services</i> - provide a collection of utility components.</p> <p> Application
-Engines and Application Services enable user applications to acquire, organise,
-maintain, and retrieve personal information. </p> <p> <i>Subsystem</i> - a
-cohesive group of components within a single technology. </p> <p> <i>Component</i> -
-the smallest unit of architectural significance and the finest grained unit
-of description. </p> </section>
-<section id="GUID-A76EE4BC-565F-4F5E-8943-1F9BE03B4D07"><title>Architectural
-Relationships</title> <p>PIM <xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita">Application
-Services</xref> technology delivers high-level OS services for storage and
-manipulation of user data (such as a collection of Calendar and Contacts items).
-PIM subsystem components are part of Application Engines and Application Services.
-The Symbian platform Generic Middleware layer contains the following PIM components:
-Alarm Server, Time Zone Server and Help Model. </p> <p>All the components
-are contained between the OS Services layer and the User Interface layer. </p> <p>Key
-clients of these components are licensee applications that use subsystems
-such as Telephony, SyncML and Messaging. </p> <fig id="GUID-5335C9B9-5C4E-5673-AB93-59C921C3AC58">
-<title>PIM Subsystem components are part of the Application Services and Generic
-Middleware layers</title>
-<image href="GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e374252_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-AEA465F8-77B5-45A6-B5A4-12083A9008F4"><title>Application
-Engines</title> <p>Application Engines provide data storage and manipulation
-for user data. </p><ul>
-<li><p><xref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita#GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0/GUID-85D629ED-30D4-5608-A816-07BD375C6A76">Calendar</xref> enables
-management of calendar entries and provides access to calendar stores. The
-CalInterimAPI library is the Calendar data store. </p></li>
-<li><p>The <xref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita#GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0/GUID-5F20F757-46F6-5652-AB0F-6B22DBB61111">Contacts
-model</xref> provides a unified interface for managing contact information. </p></li>
-</ul> </section>
-<section id="GUID-D6AC13D1-3C9F-44B2-8691-3F4583E7D805"><title>Application
-Services</title> <p>Application Services are used by multiple application
-engines or applications running on Symbian. </p> <ul>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-8BD6CF61-80B6-5869-AB85-F572C590DB30">Alarm
-Server</xref> maintains a queue of system-wide alarms. </p></li>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-32519F1C-429A-59C9-B945-D0B1F81A0AA5">Calendar
-Conversion</xref> converts dates between Gregorian and Chinese lunar calendar
-dates for applications requiring Chinese date support. </p></li>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-6EB921E1-0048-5388-8983-87172763FAB3">Help
-model</xref> manages a collection of files that provide context-sensitive
-help information. </p></li>
-<li><p>Notepad API is a middleware tool that you can write simple text to
-and save for future reference. </p>  </li>
-<li><p>The Calendar Interim Utils2 is an Organizer API that provides methods
-you can use to keep track of your time. It displays the individual days of
-a given time period. You can add notes and memos to these dates to organize
-your schedule.</p>  </li>
-<li><p>Phonebook APIs provide methods useful in creating a contacts database
-and performing various operations on it. These APIs expand on the Contact
-model.</p>  </li>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-4268D6AA-F468-5461-88A2-D6852D4AC69A">Time
-zone localization</xref> provides localized versions of time zone and city
-names. </p></li>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-D30706E5-7191-5349-A883-C200B73AFED1">Time
-zone server</xref> allows clients to obtain accurate conversion between any
-time expressed in UTC and local time for a user's time zone. </p></li>
-<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-9DFB0954-9CDF-5DAF-BA7A-54A1D64833F7">Versit</xref> is
-a set of utility classes that support the import and export of data that is
-formatted according to a set of standards initially defined by the Versit
-consortium. </p></li>
-</ul><p>There are no strong relationships between any of the subsystem components.
-They are presented as a subsystem because they enable development of a set
-of related applications.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F23BB1F1-CF90-597F-8410-34AB8B567501" xml:lang="en"><title>PIM Subsystem
+Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-201D8954-325A-422C-94D3-772274154AF9"><title>Purpose</title> <p>This
+document describes storage, organisation and utility functionalities within
+Symbian platform Personal Information Management (PIM) technology, as defined
+by its subsystems: Application Engines and Application Services. </p> </section>
+<section id="GUID-78706FAF-6F53-4DFD-B77B-BA44C5E087B2"><title>Key Concepts</title> <p> <i>Application
+Engines</i> - provide PIM data storage and manipulation. </p> <p> <i>Application
+Services</i> - provide a collection of utility components.</p> <p> Application
+Engines and Application Services enable user applications to acquire, organise,
+maintain, and retrieve personal information. </p> <p> <i>Subsystem</i> - a
+cohesive group of components within a single technology. </p> <p> <i>Component</i> -
+the smallest unit of architectural significance and the finest grained unit
+of description. </p> </section>
+<section id="GUID-A76EE4BC-565F-4F5E-8943-1F9BE03B4D07"><title>Architectural
+Relationships</title> <p>PIM <xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita">Application
+Services</xref> technology delivers high-level OS services for storage and
+manipulation of user data (such as a collection of Calendar and Contacts items).
+PIM subsystem components are part of Application Engines and Application Services.
+The Symbian platform Generic Middleware layer contains the following PIM components:
+Alarm Server, Time Zone Server and Help Model. </p> <p>All the components
+are contained between the OS Services layer and the User Interface layer. </p> <p>Key
+clients of these components are licensee applications that use subsystems
+such as Telephony, SyncML and Messaging. </p> <fig id="GUID-5335C9B9-5C4E-5673-AB93-59C921C3AC58">
+<title>PIM Subsystem components are part of the Application Services and Generic
+Middleware layers</title>
+<image href="GUID-1742B2A1-6EC1-5368-919B-362516A5D452_d0e368182_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-AEA465F8-77B5-45A6-B5A4-12083A9008F4"><title>Application
+Engines</title> <p>Application Engines provide data storage and manipulation
+for user data. </p><ul>
+<li><p><xref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita#GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0/GUID-85D629ED-30D4-5608-A816-07BD375C6A76">Calendar</xref> enables
+management of calendar entries and provides access to calendar stores. The
+CalInterimAPI library is the Calendar data store. </p></li>
+<li><p>The <xref href="GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0.dita#GUID-A1227CAE-EE08-5EAF-8D15-81465467C0C0/GUID-5F20F757-46F6-5652-AB0F-6B22DBB61111">Contacts
+model</xref> provides a unified interface for managing contact information. </p></li>
+</ul> </section>
+<section id="GUID-D6AC13D1-3C9F-44B2-8691-3F4583E7D805"><title>Application
+Services</title> <p>Application Services are used by multiple application
+engines or applications running on Symbian. </p> <ul>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-8BD6CF61-80B6-5869-AB85-F572C590DB30">Alarm
+Server</xref> maintains a queue of system-wide alarms. </p></li>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-32519F1C-429A-59C9-B945-D0B1F81A0AA5">Calendar
+Conversion</xref> converts dates between Gregorian and Chinese lunar calendar
+dates for applications requiring Chinese date support. </p></li>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-6EB921E1-0048-5388-8983-87172763FAB3">Help
+model</xref> manages a collection of files that provide context-sensitive
+help information. </p></li>
+<li><p>Notepad API is a middleware tool that you can write simple text to
+and save for future reference. </p>  </li>
+<li><p>The Calendar Interim Utils2 is an Organizer API that provides methods
+you can use to keep track of your time. It displays the individual days of
+a given time period. You can add notes and memos to these dates to organize
+your schedule.</p>  </li>
+<li><p>Phonebook APIs provide methods useful in creating a contacts database
+and performing various operations on it. These APIs expand on the Contact
+model.</p>  </li>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-4268D6AA-F468-5461-88A2-D6852D4AC69A">Time
+zone localization</xref> provides localized versions of time zone and city
+names. </p></li>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-D30706E5-7191-5349-A883-C200B73AFED1">Time
+zone server</xref> allows clients to obtain accurate conversion between any
+time expressed in UTC and local time for a user's time zone. </p></li>
+<li><p><xref href="GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48.dita#GUID-F43E458D-6650-5BB0-871D-2E4EB1353C48/GUID-9DFB0954-9CDF-5DAF-BA7A-54A1D64833F7">Versit</xref> is
+a set of utility classes that support the import and export of data that is
+formatted according to a set of standards initially defined by the Versit
+consortium. </p></li>
+</ul><p>There are no strong relationships between any of the subsystem components.
+They are presented as a subsystem because they enable development of a set
+of related applications.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA"><title>MVS GUI layout</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The MVS GUI is shown below. </p> <fig id="GUID-1AF83588-2D14-5E7E-BCDD-03C5C69C6BC5"><image href="GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e328905_href.jpg" placement="inline"/></fig> <p>This example shows the GUI while an audio file is playing, and includes the <i>tool bar</i> (at the top), the <i>information pane</i> (in the middle), and the <i>status bar</i> (at the bottom). </p> <section id="GUID-FF49918A-EFE9-5229-9D33-BFF4BFA0589D"><title>Tool bar</title> <p>The tool bar buttons let you control the currently loaded media file. </p> <fig id="GUID-06D94739-5307-5E82-96E1-54F3A6549D49"><image href="GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e328927_href.jpg" placement="inline"/></fig> <p>From left to right, the buttons let you: </p> <ul><li id="GUID-C72779C2-5E2C-5046-B9E3-E06D827271A0"><p>play, pause, stop and record a file. These buttons have the standard symbols for AV devices. </p> </li> <li id="GUID-2C8E573E-3ADC-5DDA-AE25-BB63B8DEADD8"><p>set the number of repeats for the file (curved arrow) </p> </li> <li id="GUID-98D0DC06-BD8C-5B1C-BDFF-7FB84329F394"><p>set the playback sound volume (megaphone) </p> </li> <li id="GUID-5C398E1F-72A5-5452-BE64-BAFAD6FFDB9B"><p>set the stereo balance (arrows pointing left and right) </p> </li> <li id="GUID-175E38F7-B9D7-5DF0-A773-697AC3CCF38E"><p>fast reverse the file (standard symbol) </p> </li> <li id="GUID-CE6D7209-C28B-543E-9385-6C5E933FBC4C"><p>fast forward the file (standard symbol). </p> </li> </ul> </section> <section id="GUID-F1855632-55B6-5166-A6D4-AA25B9E49619"><title> Information pane</title> <p>The information pane displays details of the current media file: </p> <fig id="GUID-4A04B009-8C40-5D58-8845-C948EA2686E4"><image href="GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e328973_href.jpg" placement="inline"/></fig> <ul><li id="GUID-7ECA742E-76B1-5213-BE36-98DF260C507E"><p>The state of the file: AUDIO or VIDEO, PLAYING, RECORDING, PAUSED or STOPPED </p> </li> <li id="GUID-3836D4DB-8E7B-5760-8B03-392D80A73E19"><p>The sound volume as a percentage of the maximum </p> </li> <li id="GUID-82F4740B-E815-592A-9C06-CB2923892D60"><p>The sound balance: Left, Right or Centre </p> </li> <li id="GUID-E5C2029E-3A26-500E-BFFD-973C037462C7"><p>The number of times the file contents are played </p> </li> <li id="GUID-8A095F9C-6CD1-502D-A83A-1761D5A62D68"><p>The audio priority </p> </li> <li id="GUID-A4F71FAB-5CBB-59A0-A6BA-D35207AAA720"><p>The length of the clip in milliseconds </p> </li> <li id="GUID-1B6FE708-ADAA-5F2E-BA34-5A6EAD08DADB"><p>The bit rate (per second). </p> </li> </ul> <p>When the a video file is loaded, the pane also contains: </p> <ul><li id="GUID-38FB830E-56B6-528D-9D03-4187FA2B1CA6"><p>The frame size </p> </li> <li id="GUID-F29E6C2E-E295-5B39-A1B4-31E275A54E51"><p>The frame rate. </p> </li> </ul> </section> <section id="GUID-C882C16C-FDC3-5AA9-829B-462B23095AD9"><title> Status bar</title> <p>The status bar displays the current state of the GUI. </p> <fig id="GUID-D663F227-CD76-5A90-B448-F9EE9BA49DF3"><title>
-             Status bar 
-          </title> <image href="GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e329039_href.jpg" placement="inline"/></fig> <p>From left to right, the boxes show: </p> <ul><li id="GUID-5306E258-5F20-5ED0-943A-AAB6CE5543B2"><p>The path and name of the file (if any) being recorded or played. </p> </li> <li id="GUID-F49E1C65-FDCA-5532-89BE-053F4AE63ED1"><p>What the GUI is doing; for example: Recording, Opened, Playing or Idle. </p> </li> <li id="GUID-D9C7EC76-0636-5EED-B64B-CFB2C7BAD39B"><p>The elapsed time of clip being recorded or played, in hours, minutes, seconds and hundredths of a second (centiseconds): hh:mm:ss:cs. </p> </li> </ul> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F263A3D1-EA96-5D4B-B8C9-4B8471082DBA"><title>MVS GUI layout</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The MVS GUI is shown below. </p> <fig id="GUID-1AF83588-2D14-5E7E-BCDD-03C5C69C6BC5"><image href="GUID-488F24B1-DC9B-5A5B-8B0D-47A428B9AA3C_d0e322748_href.jpg" placement="inline"/></fig> <p>This example shows the GUI while an audio file is playing, and includes the <i>tool bar</i> (at the top), the <i>information pane</i> (in the middle), and the <i>status bar</i> (at the bottom). </p> <section id="GUID-FF49918A-EFE9-5229-9D33-BFF4BFA0589D"><title>Tool bar</title> <p>The tool bar buttons let you control the currently loaded media file. </p> <fig id="GUID-06D94739-5307-5E82-96E1-54F3A6549D49"><image href="GUID-BB38AFE5-56FE-552D-8715-438936865B69_d0e322770_href.jpg" placement="inline"/></fig> <p>From left to right, the buttons let you: </p> <ul><li id="GUID-C72779C2-5E2C-5046-B9E3-E06D827271A0"><p>play, pause, stop and record a file. These buttons have the standard symbols for AV devices. </p> </li> <li id="GUID-2C8E573E-3ADC-5DDA-AE25-BB63B8DEADD8"><p>set the number of repeats for the file (curved arrow) </p> </li> <li id="GUID-98D0DC06-BD8C-5B1C-BDFF-7FB84329F394"><p>set the playback sound volume (megaphone) </p> </li> <li id="GUID-5C398E1F-72A5-5452-BE64-BAFAD6FFDB9B"><p>set the stereo balance (arrows pointing left and right) </p> </li> <li id="GUID-175E38F7-B9D7-5DF0-A773-697AC3CCF38E"><p>fast reverse the file (standard symbol) </p> </li> <li id="GUID-CE6D7209-C28B-543E-9385-6C5E933FBC4C"><p>fast forward the file (standard symbol). </p> </li> </ul> </section> <section id="GUID-F1855632-55B6-5166-A6D4-AA25B9E49619"><title> Information pane</title> <p>The information pane displays details of the current media file: </p> <fig id="GUID-4A04B009-8C40-5D58-8845-C948EA2686E4"><image href="GUID-E52D52C8-AC58-5550-8932-59B314A47313_d0e322816_href.jpg" placement="inline"/></fig> <ul><li id="GUID-7ECA742E-76B1-5213-BE36-98DF260C507E"><p>The state of the file: AUDIO or VIDEO, PLAYING, RECORDING, PAUSED or STOPPED </p> </li> <li id="GUID-3836D4DB-8E7B-5760-8B03-392D80A73E19"><p>The sound volume as a percentage of the maximum </p> </li> <li id="GUID-82F4740B-E815-592A-9C06-CB2923892D60"><p>The sound balance: Left, Right or Centre </p> </li> <li id="GUID-E5C2029E-3A26-500E-BFFD-973C037462C7"><p>The number of times the file contents are played </p> </li> <li id="GUID-8A095F9C-6CD1-502D-A83A-1761D5A62D68"><p>The audio priority </p> </li> <li id="GUID-A4F71FAB-5CBB-59A0-A6BA-D35207AAA720"><p>The length of the clip in milliseconds </p> </li> <li id="GUID-1B6FE708-ADAA-5F2E-BA34-5A6EAD08DADB"><p>The bit rate (per second). </p> </li> </ul> <p>When the a video file is loaded, the pane also contains: </p> <ul><li id="GUID-38FB830E-56B6-528D-9D03-4187FA2B1CA6"><p>The frame size </p> </li> <li id="GUID-F29E6C2E-E295-5B39-A1B4-31E275A54E51"><p>The frame rate. </p> </li> </ul> </section> <section id="GUID-C882C16C-FDC3-5AA9-829B-462B23095AD9"><title> Status bar</title> <p>The status bar displays the current state of the GUI. </p> <fig id="GUID-D663F227-CD76-5A90-B448-F9EE9BA49DF3"><title>
+             Status bar 
+          </title> <image href="GUID-DE417474-906D-5EB8-A80D-2CBF099EC81C_d0e322882_href.jpg" placement="inline"/></fig> <p>From left to right, the boxes show: </p> <ul><li id="GUID-5306E258-5F20-5ED0-943A-AAB6CE5543B2"><p>The path and name of the file (if any) being recorded or played. </p> </li> <li id="GUID-F49E1C65-FDCA-5532-89BE-053F4AE63ED1"><p>What the GUI is doing; for example: Recording, Opened, Playing or Idle. </p> </li> <li id="GUID-D9C7EC76-0636-5EED-B64B-CFB2C7BAD39B"><p>The elapsed time of clip being recorded or played, in hours, minutes, seconds and hundredths of a second (centiseconds): hh:mm:ss:cs. </p> </li> </ul> </section> <section><title>See Also</title> <p> <xref href="GUID-8DF29A16-CC33-59D4-BB05-B628DC603A49.dita">Introduction to the MVS</xref> </p> <p> <xref href="GUID-4195F4EE-5A61-515D-A6EF-2E16E00E4AFF.dita">Recording media files</xref> </p> <p> <xref href="GUID-5B966A81-2309-5169-963A-19E52D98A6E8.dita">Playing media files</xref> </p> <p> <xref href="GUID-0F09110F-3C4C-57D9-BA7D-19DD9A06B33B.dita">Editing media files</xref> </p> <p> <xref href="GUID-E5291BCB-D5D0-5175-B0A1-FE03CD14E1BD.dita">Configuring and clearing files</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e18408_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F27A92CB-1C02-562B-A93D-57675C53BFEB_d0e54310_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e335623_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2877A25-1FBC-5C7C-9542-9EDED2748AD3_d0e341780_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,231 +1,231 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE" xml:lang="en"><title>SMS
-MTM Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>SMS MTM provides APIs for sending SMS text messages. This section provides
-an overview of the SMS MTM component. </p>
-<section id="GUID-6C25C670-C4BF-4BFA-8D3C-D46618AEB5C4"><title>Description</title> <p>The Messaging Application module provides
-a SMS MTM for handling SMS messages in the Message Store. For further SMS
-support available on the Symbian platform, see <xref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita">Cellular
-Baseband Services Guide</xref> documentation. </p> <p><b>Supported functionality</b> </p> <p>SMS
-MTM provides functionality to create, store and retrieve an SMS message entry
-in the Message Store, send an SMS, reply to a received SMS and forward existing
-SMS. A reply to a received SMS may include the original message text, including
-any EMS components. </p> <p>SMS that are received by SMS MTM are stored in
-the Message Store. The type and class of the received SMS affects the storage
-of a message. All received class 2 SMS are stored in a non-Symbian platform
-store. </p> <p><b>Storing SMS</b> </p> <p>SMS messages that are received by
-SMS MTM are stored in both the Message Store and a non-Symbian platform store.
-Messages can be moved, copied to, from the non-Symbian platform store and
-the Message Store. The non-Symbian platform store can be enumerated so that
-its contents can be reflected in the folder in the Message Store, except any
-of the standard folders (for example, the global inbox). </p> <p>The type
-and class of the received SMS affects message storage. All received class
-2 SMS message are stored in the class 2 folder in a non-Symbian platform store.
-The class 2 folder is a configurable location in the Message Store and may
-be set to be the global inbox. All received non-class 2 SMS messages are stored
-in the global inbox folder of the Message Store. </p> <p><b>Sending SMS</b> </p> <p>SMS
-MTM can send the message immediately or schedule it for a specific time. Before
-SMS MTM sends an SMS, it checks the global outbox in the Message Store for
-any SMS that are waiting to be sent (these can also be scheduled for sending).
-If an SMS failed to be sent, then the MTM may re-schedule that SMS to be sent
-at a later time. A re-schedule is configurable against the failure error code.
-The schedule send functionality handles this configuration. A SMS that is
-successfully sent is moved to the sent folder in the Message Store by SMS
-MTM. </p> <p>This MTM supports multiple recipients for an SMS message. An
-outgoing SMS message may have multiple recipients. When this message is being
-sent, one message is sent for each recipient. </p> <p><b>BIO messages</b> </p> <p>SMS
-MTM is aware of BIO messages and uses the BIO Framework to tag SMS with the
-appropriate BIO type. This includes support for WAP messages. </p> <p><b>Unsupported
-functionality</b> </p> <p>SMS MTM does not support sending and receiving OTA
-(Over The Air) SMS messages. </p> </section>
-<section id="GUID-9776B05D-D289-46C0-83C0-BD30E82A65EC"><title>Architecture</title> <p>The Messaging Middleware architecture
-defines a framework in which modules (MTMs) can be implemented that provide
-support for particular messaging protocols. A client MTM provides the API
-for application engines to use the protocol. SMS MTM API provides the client
-MTM API, server MTM API, and supporting classes for SMS. </p> <p>SMS MTM integrates
-SMS into the Messaging architecture, so that SMS can be used by a messaging
-client program in a similar way to other message types such as email. SMS
-MTM uses the SMS interface provided by the Telephony sub-system. This provides
-support for 7, 8, and 16-bit text messages, and message concatenation. </p> <p>The
-following figure shows the SMS architecture:</p> <fig id="GUID-F904EC3A-7292-5A57-BC4E-1C736D24223C">
-<title>              SMS MTM architecture            </title>
-<image href="GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e273960_href.jpg" placement="inline"/>
-</fig> <p><b>SMS Client MTM</b> </p> <p>The SMS Client MTM implements the
-standard set of <xref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita#GUID-E180D222-CC4F-5007-93FC-C339BBE708BC/GUID-BCFBE2C5-2C90-5E43-9B21-0D80A469CEAB">Client
-MTM APIs</xref> described in <xref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita">Client
-MTM</xref>. In addition, it provides the following functionality: </p> <ul>
-<li id="GUID-8044B9F8-BF51-577B-B99A-7E7598172DD7"><p>Access to the <xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref> object
-that is used to represent the SMS message. </p> </li>
-<li id="GUID-DEDCDE66-84B8-596C-AA2B-0D3E89AF2656"><p>Access to the SMS settings
-stored in the associated SMS service centre. </p> </li>
-<li id="GUID-5FEEE0B8-E58F-5E7A-9A6E-5AD4FB206192"><p>Provides the APIs required
-by SendAs to allow SendAs to create SMS, including setting the BIO type message
-to allow clients of SendAs to send BIO messages, such as vCards and vCals.
-The data of the BIO message is stored in the body text of the SMS. </p> </li>
-<li id="GUID-DF695D34-951B-5B21-8D95-5ACF2699A57B"><p>Simple check for valid
-SMS addresses; an SMS address is considered valid if it contains at least
-one digit. </p> </li>
-<li id="GUID-CBDDD0E5-8BDE-579E-B52F-7DFC40926B07"><p>Reading and writing
-SIM parameters. </p> </li>
-</ul><note> MS receiving is normally done automatically by the Cellular Baseband
-and messaging components, with received SMS messages placed in the Inbox.
-Generic message receiving operations are not supported by the MTM. Also, UI
-functionality, such as SMS message viewing and editing, is not provided by
-the Symbian platform.</note> <p>The SMS Client MTM class is <xref href="GUID-C499ABDB-BA30-3D97-A850-D5790FE49634.dita"><apiname>CSmsClientMtm</apiname></xref>. </p> <p id="GUID-752B2A3B-CC1D-50CB-B3BF-113BED635538"><b>SMS Server MTM</b> </p> <p>SMS
-Server MTM implements the <xref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita">Server-side
-MTM</xref> interface, and primarily provides functionality to handle requests
-from the client MTM to send SMS messages. Incoming SMS messages are handled
-by a group of components called SMS watchers. </p> <p>These components provide
-a layer over the SMS support provided in the Narrow Band Protocols Stack subsystem.
-This has SMS stacks for GSM which offer an encapsulation of an SMS message,
-together with the ability to send and receive messages. At the lowest level,
-below the SMS stacks, is the ETel multimode API, which provides low-level
-access to the phone drivers. </p> <p>The SMS Server MTM provides access to
-messages under remote services. It is loaded in the Message Server’s process
-space and handles the following tasks: </p> <ul>
-<li id="GUID-F4EE3024-0E25-5628-BABA-FA3D040844B3"><p>Connecting to remote
-servers to handle updating the cache of SMS messages. </p> </li>
-<li id="GUID-9E768517-6189-59DD-93D4-66EA4DC491CD"><p>Sending messages that
-are copied to remote services when messages are copied to a remote service. </p> <p>The
-SMS Server MTM handles sending of SMS and WAP messages through the SMS stack
-and the WAP stack respectively. To support this, it implements the <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita#GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD/GUID-46569C6B-0F24-392E-A649-091D91BAE910"><apiname>CBaseServerMtm::CopyFromLocal()</apiname></xref> function
-inherited from the <xref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita#GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2/GUID-54184D61-6325-525D-947F-D86EF8072BFC">Server
-MTM base class</xref>. It implements this for sending SMS and moving the successfully
-sent messages to the <b>Sent</b> folder. When sending the SMS, the Server
-MTM checks the BIO type of the message and uses the BIO database to check
-the transport type for the BIO message. The MTM supports <codeph>ENbs</codeph> that
-is sent through the SMS stack and <codeph>EWap</codeph>, <codeph>EWapSecure</codeph> that
-are sent through the WAP stack. The MTM does not support <codeph>EWsp</codeph> or <codeph>EWspSecure</codeph> although
-the watchers do support receiving them. </p> </li>
-<li id="GUID-8086B93E-6AC2-5BFD-97E4-C95538B4C821"><p>Scheduling messages </p> <p>The
-SMS Server MTM implements scheduled sending API by sub-classing from the Schedule
-send Server MTM. It accepts requests from client applications either through
-the SMS Client MTM's <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita#GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D/GUID-05327221-98A9-35FA-BD28-D6323BE449D1"><apiname>CBaseMtm::InvokeAsyncFunctionL()</apiname></xref> API
-or through the <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita#GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B/GUID-43563010-9B4F-31EB-BE83-E7C4C1979677"><apiname>CMsvSession::TransferCommand()</apiname></xref> API to schedule
-messages to be sent or to delete existing schedules. When it receives a request
-to schedule a message, it packages the command and uses the Scheduled Send
-functionality to request that the task scheduler ask it to send the messages
-at a future point in time. </p> </li>
-<li id="GUID-BE3E335F-900E-5C7A-A5AE-CDCD1DEEF5FE"><p>Managing phone store </p> <p>The
-phone store is a storage for SMS outside the Message Store. For example, for
-GSM phones it is the <b>SIM</b>. The SMS Server MTM accepts requests from
-client applications to copy or move messages to and from the SIM and delete
-messages from the SIM. For example, when copying to the SIM, it packages SMS
-and passes it to the SMS stack with a request to write it to the SIM. If the
-class2 folder is set in the SMS settings class, the Server MTM copies the
-SMS to the SIM and then updates the SMS in the message store. The Server MTM
-also provides the details of the space used to store on the SIM and the reason
-for storing on the SIM. </p> </li>
-<li id="GUID-096F78F8-44B0-5F35-84C7-ED6E312C2E60"><p>Providing SIM parameters </p> <p>The
-Server MTM provides functions to read and write SIM parameters. </p> </li>
-</ul> <p>The SMS Server MTM class is <xref href="GUID-1CC9D9DD-4C6A-3B71-8006-E0289E4C8C62.dita"><apiname>CSmsServerMtm</apiname></xref>. </p> <p><b>SMS
-Utilities</b> </p> <p>SMS Utilities provide the following: </p> <ul>
-<li id="GUID-09858DED-EBC8-5C22-AB67-E1F20ECE617A"><p>Classes to represent
-and store SMS (<xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref>), and SMS settings (<xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>, <xref href="GUID-D96E6D26-0D1A-36B4-85E1-63DA127F099A.dita"><apiname>CSmsMessageSettings</apiname></xref>)
-and a SMS number (<xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref>). </p> </li>
-<li id="GUID-8B55A758-1104-5C58-A428-4DD7F2562DB9"><p>Functions to generate
-descriptions and details fields to store with SMS. The details includes decoding
-special messages (such as, message indication and status report messages),
-reading resource file for descriptions strings of special messages, and using
-the contacts database to replace phone numbers with names. </p> </li>
-<li id="GUID-5F410D35-D654-5CBC-8E52-6E6400D929B1"><p>Function to validate
-a GSM number. </p> </li>
-<li id="GUID-2C531B06-90D4-5F75-BD85-60330DCBE81C"><p>Mode to find the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
-the SMS service entry. </p> </li>
-</ul> <p><b>SMS Watchers</b> </p> <p>SMS Watchers are made up of two watchers,
-the <filepath>nbswatcher.dll</filepath> and the <filepath>wapwatcher.dll</filepath>,
-and some common base classes in <filepath>biowatcher.dll</filepath>. The watchers
-listen for incoming messages from the SMS Stack, part of Cellular Baseband
-Services, and the WAP stack, part of High-level Internet Protocols. </p> <p><b>SMS
-Stack</b> </p> <p>SMS Stack is one of a number of protocol stacks that is
-supported by the ESock Server client-server framework. The SMS Stack’s principal
-clients are the messaging applications, WAP Stack and third party applications.
-The Messaging Application and the third party applications access the stack
-as clients of the ESock Server, while the WAP Stack accesses directly the
-SMS Stack. For more information on SMS Stack, see <xref href="GUID-E0DA7DE7-FD5A-5C1D-A53C-870966F00445.dita">SMS
-Stack for GSM Networks</xref>. </p> <p><b>SMS service settings</b> </p> <p>Settings
-for SMS connections, such as service centre addresses, are stored in the Message
-Store (<xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref>) for the SMS service entry. Encapsulation
-of service settings is provided by <xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>. </p> <p><b>Progress
-information</b> </p> <p>The progress information can be obtained for messaging
-operations. For SMS operations, progress information includes such things
-as type of operation, and number of messages processed. Progress information
-is provided by <xref href="GUID-25FA6A20-1122-3B06-B8AF-59D3FDBDDC76.dita"><apiname>TSmsProgress</apiname></xref>. </p> </section>
-<section id="GUID-80A5C81E-42C9-4432-A97D-872525E5D468"><title>APIs</title> <fig id="GUID-EABD829F-612D-53DF-BFDF-1F4E27FD4FD8">
-<image href="GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e274234_href.jpg" placement="inline"/>
-</fig> <p>The following are the important classes for SMS Client MTM: </p> <table id="GUID-8C815D5D-0494-5507-8A7D-275641BFF71D">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<tbody>
-<row>
-<entry><p> <b>Class</b>  </p> </entry>
-<entry><p> <b>Purpose</b>  </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-C499ABDB-BA30-3D97-A850-D5790FE49634.dita"><apiname>CSmsClientMtm</apiname></xref>  </p> </entry>
-<entry><p>Implements the messaging architecture client MTM interface for SMS.
-It allows messages to be created, replied to, and forwarded, and MTM-specific
-commands to be given. </p> <p>It provides an accessor function <codeph>SmsHeader()</codeph> to
-get the <codeph>CSmsHeader</codeph> for a message. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates an SMS message in a message store. </p> <p>It provides
-information about message recipients as an array of <xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref> objects,
-and access to the family of classes derived from <xref href="GUID-A57B70F4-3F29-31AC-9763-FE5DE25E85CC.dita"><apiname>TMsvMessageBio</apiname></xref>,
-which allow fields of a message to be set and accessed. </p> <p>For compatibility
-with the API of the v8 (GSM only) SMS MTM, it also provides access to the
-GSM SMS stack's message class <xref href="GUID-FA6D9B1B-3845-3B81-ACBB-34977D3C9631.dita"><apiname>CSmsMessage</apiname></xref>. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-ABF26927-F794-39D1-97B2-C7CD447224DF.dita"><apiname>TMsvMessageGsm</apiname></xref>  </p> </entry>
-<entry><p>Provides access to GSM-specific fields. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-920DFEAD-41A4-3586-98F0-BA0FEEC2FD13.dita"><apiname>TMsvSmsEntry</apiname></xref>  </p> </entry>
-<entry><p>Provides a specialisation of the message server index class <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> for
-SMS message entries. </p> <p>Putting selected SMS-specific fields in the index
-entry allows message clients to quickly get important message properties without
-having to create a message object. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates recipient information for an SMS message. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>  </p> </entry>
-<entry><p>Defines settings for the SMS service. </p> <p>It contains some GSM-specific
-functions to maintain compability with the GSM SMS MTM. </p> <p>It also provides
-access to <xref href="GUID-CFD9E5F2-F28F-3A95-A53A-34030345EAF9.dita"><apiname>CSmsMessageSettingsProxy</apiname></xref> for outgoing message
-defaults. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-40DD66D7-D08E-3A04-9583-1C5E60E352FF.dita"><apiname>CSmsAccount</apiname></xref>  </p> </entry>
-<entry><p>Stores SMS service and Schedule Send settings to Central Repository. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-9BD25A7F-4A9E-3469-BA7F-F016E2ED8BFC.dita"><apiname>CSmsServiceCenter</apiname></xref>  </p> </entry>
-<entry><p>Used to store Service Centre numbers and their associated name. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-</conbody><related-links>
-<link href="GUID-69438F28-E2E9-5BFA-B644-08FB59D50A39.dita"><linktext>SMS MTM Concepts</linktext>
-</link>
-<link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type
-Module</linktext></link>
-<link href="GUID-E56E21A9-B545-5217-A877-E64D30275157.dita"><linktext>Using the
-Policy Evaluator Plug-in</linktext></link>
-<link href="GUID-A2408186-1927-45F4-8972-C9273E5135CF.dita"><linktext>SMS     
-           Tutorial</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F2D86E40-279A-5B48-B91F-922803FEF5DE" xml:lang="en"><title>SMS
+MTM Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>SMS MTM provides APIs for sending SMS text messages. This section provides
+an overview of the SMS MTM component. </p>
+<section id="GUID-6C25C670-C4BF-4BFA-8D3C-D46618AEB5C4"><title>Description</title> <p>The Messaging Application module provides
+a SMS MTM for handling SMS messages in the Message Store. For further SMS
+support available on the Symbian platform, see <xref href="GUID-34E7AAF2-EC62-5BF6-B9E7-C7D346BCDF93.dita">Cellular
+Baseband Services Guide</xref> documentation. </p> <p><b>Supported functionality</b> </p> <p>SMS
+MTM provides functionality to create, store and retrieve an SMS message entry
+in the Message Store, send an SMS, reply to a received SMS and forward existing
+SMS. A reply to a received SMS may include the original message text, including
+any EMS components. </p> <p>SMS that are received by SMS MTM are stored in
+the Message Store. The type and class of the received SMS affects the storage
+of a message. All received class 2 SMS are stored in a non-Symbian platform
+store. </p> <p><b>Storing SMS</b> </p> <p>SMS messages that are received by
+SMS MTM are stored in both the Message Store and a non-Symbian platform store.
+Messages can be moved, copied to, from the non-Symbian platform store and
+the Message Store. The non-Symbian platform store can be enumerated so that
+its contents can be reflected in the folder in the Message Store, except any
+of the standard folders (for example, the global inbox). </p> <p>The type
+and class of the received SMS affects message storage. All received class
+2 SMS message are stored in the class 2 folder in a non-Symbian platform store.
+The class 2 folder is a configurable location in the Message Store and may
+be set to be the global inbox. All received non-class 2 SMS messages are stored
+in the global inbox folder of the Message Store. </p> <p><b>Sending SMS</b> </p> <p>SMS
+MTM can send the message immediately or schedule it for a specific time. Before
+SMS MTM sends an SMS, it checks the global outbox in the Message Store for
+any SMS that are waiting to be sent (these can also be scheduled for sending).
+If an SMS failed to be sent, then the MTM may re-schedule that SMS to be sent
+at a later time. A re-schedule is configurable against the failure error code.
+The schedule send functionality handles this configuration. A SMS that is
+successfully sent is moved to the sent folder in the Message Store by SMS
+MTM. </p> <p>This MTM supports multiple recipients for an SMS message. An
+outgoing SMS message may have multiple recipients. When this message is being
+sent, one message is sent for each recipient. </p> <p><b>BIO messages</b> </p> <p>SMS
+MTM is aware of BIO messages and uses the BIO Framework to tag SMS with the
+appropriate BIO type. This includes support for WAP messages. </p> <p><b>Unsupported
+functionality</b> </p> <p>SMS MTM does not support sending and receiving OTA
+(Over The Air) SMS messages. </p> </section>
+<section id="GUID-9776B05D-D289-46C0-83C0-BD30E82A65EC"><title>Architecture</title> <p>The Messaging Middleware architecture
+defines a framework in which modules (MTMs) can be implemented that provide
+support for particular messaging protocols. A client MTM provides the API
+for application engines to use the protocol. SMS MTM API provides the client
+MTM API, server MTM API, and supporting classes for SMS. </p> <p>SMS MTM integrates
+SMS into the Messaging architecture, so that SMS can be used by a messaging
+client program in a similar way to other message types such as email. SMS
+MTM uses the SMS interface provided by the Telephony sub-system. This provides
+support for 7, 8, and 16-bit text messages, and message concatenation. </p> <p>The
+following figure shows the SMS architecture:</p> <fig id="GUID-F904EC3A-7292-5A57-BC4E-1C736D24223C">
+<title>              SMS MTM architecture            </title>
+<image href="GUID-97545AEB-0518-5937-AEB6-C97443B449D3_d0e270252_href.jpg" placement="inline"/>
+</fig> <p><b>SMS Client MTM</b> </p> <p>The SMS Client MTM implements the
+standard set of <xref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita#GUID-E180D222-CC4F-5007-93FC-C339BBE708BC/GUID-BCFBE2C5-2C90-5E43-9B21-0D80A469CEAB">Client
+MTM APIs</xref> described in <xref href="GUID-E180D222-CC4F-5007-93FC-C339BBE708BC.dita">Client
+MTM</xref>. In addition, it provides the following functionality: </p> <ul>
+<li id="GUID-8044B9F8-BF51-577B-B99A-7E7598172DD7"><p>Access to the <xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref> object
+that is used to represent the SMS message. </p> </li>
+<li id="GUID-DEDCDE66-84B8-596C-AA2B-0D3E89AF2656"><p>Access to the SMS settings
+stored in the associated SMS service centre. </p> </li>
+<li id="GUID-5FEEE0B8-E58F-5E7A-9A6E-5AD4FB206192"><p>Provides the APIs required
+by SendAs to allow SendAs to create SMS, including setting the BIO type message
+to allow clients of SendAs to send BIO messages, such as vCards and vCals.
+The data of the BIO message is stored in the body text of the SMS. </p> </li>
+<li id="GUID-DF695D34-951B-5B21-8D95-5ACF2699A57B"><p>Simple check for valid
+SMS addresses; an SMS address is considered valid if it contains at least
+one digit. </p> </li>
+<li id="GUID-CBDDD0E5-8BDE-579E-B52F-7DFC40926B07"><p>Reading and writing
+SIM parameters. </p> </li>
+</ul><note> MS receiving is normally done automatically by the Cellular Baseband
+and messaging components, with received SMS messages placed in the Inbox.
+Generic message receiving operations are not supported by the MTM. Also, UI
+functionality, such as SMS message viewing and editing, is not provided by
+the Symbian platform.</note> <p>The SMS Client MTM class is <xref href="GUID-C499ABDB-BA30-3D97-A850-D5790FE49634.dita"><apiname>CSmsClientMtm</apiname></xref>. </p> <p id="GUID-752B2A3B-CC1D-50CB-B3BF-113BED635538"><b>SMS Server MTM</b> </p> <p>SMS
+Server MTM implements the <xref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita">Server-side
+MTM</xref> interface, and primarily provides functionality to handle requests
+from the client MTM to send SMS messages. Incoming SMS messages are handled
+by a group of components called SMS watchers. </p> <p>These components provide
+a layer over the SMS support provided in the Narrow Band Protocols Stack subsystem.
+This has SMS stacks for GSM which offer an encapsulation of an SMS message,
+together with the ability to send and receive messages. At the lowest level,
+below the SMS stacks, is the ETel multimode API, which provides low-level
+access to the phone drivers. </p> <p>The SMS Server MTM provides access to
+messages under remote services. It is loaded in the Message Server’s process
+space and handles the following tasks: </p> <ul>
+<li id="GUID-F4EE3024-0E25-5628-BABA-FA3D040844B3"><p>Connecting to remote
+servers to handle updating the cache of SMS messages. </p> </li>
+<li id="GUID-9E768517-6189-59DD-93D4-66EA4DC491CD"><p>Sending messages that
+are copied to remote services when messages are copied to a remote service. </p> <p>The
+SMS Server MTM handles sending of SMS and WAP messages through the SMS stack
+and the WAP stack respectively. To support this, it implements the <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita#GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD/GUID-46569C6B-0F24-392E-A649-091D91BAE910"><apiname>CBaseServerMtm::CopyFromLocal()</apiname></xref> function
+inherited from the <xref href="GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2.dita#GUID-963C0F50-A44A-518E-8DB0-42BEBEFD10A2/GUID-54184D61-6325-525D-947F-D86EF8072BFC">Server
+MTM base class</xref>. It implements this for sending SMS and moving the successfully
+sent messages to the <b>Sent</b> folder. When sending the SMS, the Server
+MTM checks the BIO type of the message and uses the BIO database to check
+the transport type for the BIO message. The MTM supports <codeph>ENbs</codeph> that
+is sent through the SMS stack and <codeph>EWap</codeph>, <codeph>EWapSecure</codeph> that
+are sent through the WAP stack. The MTM does not support <codeph>EWsp</codeph> or <codeph>EWspSecure</codeph> although
+the watchers do support receiving them. </p> </li>
+<li id="GUID-8086B93E-6AC2-5BFD-97E4-C95538B4C821"><p>Scheduling messages </p> <p>The
+SMS Server MTM implements scheduled sending API by sub-classing from the Schedule
+send Server MTM. It accepts requests from client applications either through
+the SMS Client MTM's <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita#GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D/GUID-05327221-98A9-35FA-BD28-D6323BE449D1"><apiname>CBaseMtm::InvokeAsyncFunctionL()</apiname></xref> API
+or through the <xref href="GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B.dita#GUID-2DA04D96-F0AD-3FDC-9E36-1C27D889AF4B/GUID-43563010-9B4F-31EB-BE83-E7C4C1979677"><apiname>CMsvSession::TransferCommand()</apiname></xref> API to schedule
+messages to be sent or to delete existing schedules. When it receives a request
+to schedule a message, it packages the command and uses the Scheduled Send
+functionality to request that the task scheduler ask it to send the messages
+at a future point in time. </p> </li>
+<li id="GUID-BE3E335F-900E-5C7A-A5AE-CDCD1DEEF5FE"><p>Managing phone store </p> <p>The
+phone store is a storage for SMS outside the Message Store. For example, for
+GSM phones it is the <b>SIM</b>. The SMS Server MTM accepts requests from
+client applications to copy or move messages to and from the SIM and delete
+messages from the SIM. For example, when copying to the SIM, it packages SMS
+and passes it to the SMS stack with a request to write it to the SIM. If the
+class2 folder is set in the SMS settings class, the Server MTM copies the
+SMS to the SIM and then updates the SMS in the message store. The Server MTM
+also provides the details of the space used to store on the SIM and the reason
+for storing on the SIM. </p> </li>
+<li id="GUID-096F78F8-44B0-5F35-84C7-ED6E312C2E60"><p>Providing SIM parameters </p> <p>The
+Server MTM provides functions to read and write SIM parameters. </p> </li>
+</ul> <p>The SMS Server MTM class is <xref href="GUID-1CC9D9DD-4C6A-3B71-8006-E0289E4C8C62.dita"><apiname>CSmsServerMtm</apiname></xref>. </p> <p><b>SMS
+Utilities</b> </p> <p>SMS Utilities provide the following: </p> <ul>
+<li id="GUID-09858DED-EBC8-5C22-AB67-E1F20ECE617A"><p>Classes to represent
+and store SMS (<xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref>), and SMS settings (<xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>, <xref href="GUID-D96E6D26-0D1A-36B4-85E1-63DA127F099A.dita"><apiname>CSmsMessageSettings</apiname></xref>)
+and a SMS number (<xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref>). </p> </li>
+<li id="GUID-8B55A758-1104-5C58-A428-4DD7F2562DB9"><p>Functions to generate
+descriptions and details fields to store with SMS. The details includes decoding
+special messages (such as, message indication and status report messages),
+reading resource file for descriptions strings of special messages, and using
+the contacts database to replace phone numbers with names. </p> </li>
+<li id="GUID-5F410D35-D654-5CBC-8E52-6E6400D929B1"><p>Function to validate
+a GSM number. </p> </li>
+<li id="GUID-2C531B06-90D4-5F75-BD85-60330DCBE81C"><p>Mode to find the <xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname>TMsvId</apiname></xref> of
+the SMS service entry. </p> </li>
+</ul> <p><b>SMS Watchers</b> </p> <p>SMS Watchers are made up of two watchers,
+the <filepath>nbswatcher.dll</filepath> and the <filepath>wapwatcher.dll</filepath>,
+and some common base classes in <filepath>biowatcher.dll</filepath>. The watchers
+listen for incoming messages from the SMS Stack, part of Cellular Baseband
+Services, and the WAP stack, part of High-level Internet Protocols. </p> <p><b>SMS
+Stack</b> </p> <p>SMS Stack is one of a number of protocol stacks that is
+supported by the ESock Server client-server framework. The SMS Stack’s principal
+clients are the messaging applications, WAP Stack and third party applications.
+The Messaging Application and the third party applications access the stack
+as clients of the ESock Server, while the WAP Stack accesses directly the
+SMS Stack. For more information on SMS Stack, see <xref href="GUID-E0DA7DE7-FD5A-5C1D-A53C-870966F00445.dita">SMS
+Stack for GSM Networks</xref>. </p> <p><b>SMS service settings</b> </p> <p>Settings
+for SMS connections, such as service centre addresses, are stored in the Message
+Store (<xref href="GUID-8CB90FA2-A6CF-3FA2-81FF-7D22EFD9C2CE.dita"><apiname>CMsvStore</apiname></xref>) for the SMS service entry. Encapsulation
+of service settings is provided by <xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>. </p> <p><b>Progress
+information</b> </p> <p>The progress information can be obtained for messaging
+operations. For SMS operations, progress information includes such things
+as type of operation, and number of messages processed. Progress information
+is provided by <xref href="GUID-25FA6A20-1122-3B06-B8AF-59D3FDBDDC76.dita"><apiname>TSmsProgress</apiname></xref>. </p> </section>
+<section id="GUID-80A5C81E-42C9-4432-A97D-872525E5D468"><title>APIs</title> <fig id="GUID-EABD829F-612D-53DF-BFDF-1F4E27FD4FD8">
+<image href="GUID-938C0EB5-D0B3-502E-87A9-7C626642AE4B_d0e270526_href.jpg" placement="inline"/>
+</fig> <p>The following are the important classes for SMS Client MTM: </p> <table id="GUID-8C815D5D-0494-5507-8A7D-275641BFF71D">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Class</b>  </p> </entry>
+<entry><p> <b>Purpose</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-C499ABDB-BA30-3D97-A850-D5790FE49634.dita"><apiname>CSmsClientMtm</apiname></xref>  </p> </entry>
+<entry><p>Implements the messaging architecture client MTM interface for SMS.
+It allows messages to be created, replied to, and forwarded, and MTM-specific
+commands to be given. </p> <p>It provides an accessor function <codeph>SmsHeader()</codeph> to
+get the <codeph>CSmsHeader</codeph> for a message. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-790D9BA9-2FB7-3073-AF2F-FFD049C3FD3D.dita"><apiname>CSmsHeader</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates an SMS message in a message store. </p> <p>It provides
+information about message recipients as an array of <xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref> objects,
+and access to the family of classes derived from <xref href="GUID-A57B70F4-3F29-31AC-9763-FE5DE25E85CC.dita"><apiname>TMsvMessageBio</apiname></xref>,
+which allow fields of a message to be set and accessed. </p> <p>For compatibility
+with the API of the v8 (GSM only) SMS MTM, it also provides access to the
+GSM SMS stack's message class <xref href="GUID-FA6D9B1B-3845-3B81-ACBB-34977D3C9631.dita"><apiname>CSmsMessage</apiname></xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-ABF26927-F794-39D1-97B2-C7CD447224DF.dita"><apiname>TMsvMessageGsm</apiname></xref>  </p> </entry>
+<entry><p>Provides access to GSM-specific fields. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-920DFEAD-41A4-3586-98F0-BA0FEEC2FD13.dita"><apiname>TMsvSmsEntry</apiname></xref>  </p> </entry>
+<entry><p>Provides a specialisation of the message server index class <xref href="GUID-5A23B804-2C06-3407-9D48-1BFB212D699F.dita"><apiname>TMsvEntry</apiname></xref> for
+SMS message entries. </p> <p>Putting selected SMS-specific fields in the index
+entry allows message clients to quickly get important message properties without
+having to create a message object. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-6DB3A42E-14FC-3B87-AB8E-7C05CA34B3AB.dita"><apiname>CSmsNumber</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates recipient information for an SMS message. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A9FE5C23-4F39-345E-873B-682D9807BAA0.dita"><apiname>CSmsSettings</apiname></xref>  </p> </entry>
+<entry><p>Defines settings for the SMS service. </p> <p>It contains some GSM-specific
+functions to maintain compability with the GSM SMS MTM. </p> <p>It also provides
+access to <xref href="GUID-CFD9E5F2-F28F-3A95-A53A-34030345EAF9.dita"><apiname>CSmsMessageSettingsProxy</apiname></xref> for outgoing message
+defaults. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-40DD66D7-D08E-3A04-9583-1C5E60E352FF.dita"><apiname>CSmsAccount</apiname></xref>  </p> </entry>
+<entry><p>Stores SMS service and Schedule Send settings to Central Repository. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9BD25A7F-4A9E-3469-BA7F-F016E2ED8BFC.dita"><apiname>CSmsServiceCenter</apiname></xref>  </p> </entry>
+<entry><p>Used to store Service Centre numbers and their associated name. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+</conbody><related-links>
+<link href="GUID-69438F28-E2E9-5BFA-B644-08FB59D50A39.dita"><linktext>SMS MTM Concepts</linktext>
+</link>
+<link href="GUID-8B843382-D27A-5E36-8F60-304903F3AA41.dita"><linktext>Message Type
+Module</linktext></link>
+<link href="GUID-E56E21A9-B545-5217-A877-E64D30275157.dita"><linktext>Using the
+Policy Evaluator Plug-in</linktext></link>
+<link href="GUID-A2408186-1927-45F4-8972-C9273E5135CF.dita"><linktext>SMS     
+           Tutorial</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e117673_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2D96A30-7264-5CAF-9CC7-8AF05EF978E1_d0e124211_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e189694_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2E8CB4B-C1BB-577D-B018-7FF231B70D8C_d0e194747_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e66931_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F2F19F40-E87B-4FF2-ABE8-4E14AE728364_d0e72186_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e184746_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F31EC49A-FE01-58B2-9CB5-4A3BBCCB7DA7_d0e191342_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-3-1-1-7-1-7-1-9-1" xml:lang="en"><title>The
-object provider (MOP) mechanism</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-07E61ABD-C57F-4E11-A32B-85DF6FAC4D61-GENID-1-8-1-3-1-1-7-1-7-1-9-1-2-1"><title>Purpose</title><p>The object provider mechanism
-exists to enable control types to be established at run time. It's a form
-of Run Time Type Identification (RTTI). More specifically it allows a caller
-to find a control in the run-time hierarchy that implements a particular interface,
-or mixin. From the caller's point of view it's pretty simple: all that's required
-is to ask a control, any control, to get an object that supports the specified
-interface, cast the pointer returned to the correct interface and then call
-the desired function. </p></section>
-<section id="GUID-96964B1B-297B-4196-961F-B574ACBF1811-GENID-1-8-1-3-1-1-7-1-7-1-9-1-2-2"><title>History</title><p>The Object Provider interface pre-dates
-the parent pointer in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. Instead it uses a <codeph>MopParent</codeph> pointer
-which is normally the parent control but may be the AppUi or even the <codeph>CoeEnv</codeph> object.
-It was designed to meet Series 60 requirements for navigation of the run-time
-hierarchy. Internally it is now implemented by the framework using the parent
-pointer where possible which simplifies the control development process. </p></section>
-<section id="GUID-8A6CBDB0-343E-41F1-AC3A-876FA6968DB4-GENID-1-8-1-3-1-1-7-1-7-1-9-1-2-3"><title>Description</title><p>Interfaces are only identifiable by
-the Object Provider framework if they have an associated Interface UID. The
-Interface UID must be declared in the class definition. Fortunately the UID
-is invisible to the caller which simply uses the interface (mixin) name. </p><p>A
-class which implements an identifiable mixin, i.e. one with an Interface UID,
-can 'supply' a pointer to itself when the Object Provider framework requests
-it. If a control is not able to supply the mixin requested it passes the request
-on to the next control in the hierarchy. </p><p>The sequence diagram below
-illustrates the Object Provider process for supplying an interface pointer
-from the run-time hierarchy. </p><fig id="GUID-91496FA9-60F6-5DDA-899B-7E54A8A7E4CB-GENID-1-8-1-3-1-1-7-1-7-1-9-1-2-3-5">
-<image href="GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e16477_href.png" placement="inline"/>
-</fig><p>Object1 wishes to call a function on <codeph>MInterface</codeph>.
-It calls <codeph>MopGetObject()</codeph> on the nearest control in the run-time
-hierarchy. The Object Provider Framework identifies the Uid for <codeph>Minterface</codeph> and
-then passes the request up the hierarchy until an object is found (Object4)
-that implements <codeph>Minterface</codeph>. </p><p>Calling <codeph>MopGetGetObjectNoChaining()</codeph> will
-call <codeph>MopSupplyObject()</codeph> but not <codeph>MopNext()</codeph>.
-It returns Null if the class does not implement the specified mixin. </p></section>
-<section id="GUID-33E336B0-98AD-45B0-80A8-5263D8D6167D-GENID-1-8-1-3-1-1-7-1-7-1-9-1-2-4"><title>See also</title> <p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How
-to write controls</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1" xml:lang="en"><title>The
-object provider (MOP) mechanism</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-07E61ABD-C57F-4E11-A32B-85DF6FAC4D61-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1-2-1"><title>Purpose</title><p>The object provider mechanism
-exists to enable control types to be established at run time. It's a form
-of Run Time Type Identification (RTTI). More specifically it allows a caller
-to find a control in the run-time hierarchy that implements a particular interface,
-or mixin. From the caller's point of view it's pretty simple: all that's required
-is to ask a control, any control, to get an object that supports the specified
-interface, cast the pointer returned to the correct interface and then call
-the desired function. </p></section>
-<section id="GUID-96964B1B-297B-4196-961F-B574ACBF1811-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1-2-2"><title>History</title><p>The Object Provider interface pre-dates
-the parent pointer in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. Instead it uses a <codeph>MopParent</codeph> pointer
-which is normally the parent control but may be the AppUi or even the <codeph>CoeEnv</codeph> object.
-It was designed to meet Series 60 requirements for navigation of the run-time
-hierarchy. Internally it is now implemented by the framework using the parent
-pointer where possible which simplifies the control development process. </p></section>
-<section id="GUID-8A6CBDB0-343E-41F1-AC3A-876FA6968DB4-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1-2-3"><title>Description</title><p>Interfaces are only identifiable by
-the Object Provider framework if they have an associated Interface UID. The
-Interface UID must be declared in the class definition. Fortunately the UID
-is invisible to the caller which simply uses the interface (mixin) name. </p><p>A
-class which implements an identifiable mixin, i.e. one with an Interface UID,
-can 'supply' a pointer to itself when the Object Provider framework requests
-it. If a control is not able to supply the mixin requested it passes the request
-on to the next control in the hierarchy. </p><p>The sequence diagram below
-illustrates the Object Provider process for supplying an interface pointer
-from the run-time hierarchy. </p><fig id="GUID-91496FA9-60F6-5DDA-899B-7E54A8A7E4CB-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1-2-3-5">
-<image href="GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e52379_href.png" placement="inline"/>
-</fig><p>Object1 wishes to call a function on <codeph>MInterface</codeph>.
-It calls <codeph>MopGetObject()</codeph> on the nearest control in the run-time
-hierarchy. The Object Provider Framework identifies the Uid for <codeph>Minterface</codeph> and
-then passes the request up the hierarchy until an object is found (Object4)
-that implements <codeph>Minterface</codeph>. </p><p>Calling <codeph>MopGetGetObjectNoChaining()</codeph> will
-call <codeph>MopSupplyObject()</codeph> but not <codeph>MopNext()</codeph>.
-It returns Null if the class does not implement the specified mixin. </p></section>
-<section id="GUID-33E336B0-98AD-45B0-80A8-5263D8D6167D-GENID-1-8-1-6-1-1-4-1-6-1-7-1-9-1-2-4"><title>See also</title> <p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290-GENID-1-8-1-3-1-1-7-1-9-1.dita">How
-to write controls</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-F32E2F00-B68F-59B2-AABA-181E16354C86.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F32E2F00-B68F-59B2-AABA-181E16354C86" xml:lang="en"><title>The
+object provider (MOP) mechanism</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-07E61ABD-C57F-4E11-A32B-85DF6FAC4D61"><title>Purpose</title><p>The object provider mechanism
+exists to enable control types to be established at run time. It's a form
+of Run Time Type Identification (RTTI). More specifically it allows a caller
+to find a control in the run-time hierarchy that implements a particular interface,
+or mixin. From the caller's point of view it's pretty simple: all that's required
+is to ask a control, any control, to get an object that supports the specified
+interface, cast the pointer returned to the correct interface and then call
+the desired function. </p></section>
+<section id="GUID-96964B1B-297B-4196-961F-B574ACBF1811"><title>History</title><p>The Object Provider interface pre-dates
+the parent pointer in <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>. Instead it uses a <codeph>MopParent</codeph> pointer
+which is normally the parent control but may be the AppUi or even the <codeph>CoeEnv</codeph> object.
+It was designed to meet Series 60 requirements for navigation of the run-time
+hierarchy. Internally it is now implemented by the framework using the parent
+pointer where possible which simplifies the control development process. </p></section>
+<section id="GUID-8A6CBDB0-343E-41F1-AC3A-876FA6968DB4"><title>Description</title><p>Interfaces are only identifiable by
+the Object Provider framework if they have an associated Interface UID. The
+Interface UID must be declared in the class definition. Fortunately the UID
+is invisible to the caller which simply uses the interface (mixin) name. </p><p>A
+class which implements an identifiable mixin, i.e. one with an Interface UID,
+can 'supply' a pointer to itself when the Object Provider framework requests
+it. If a control is not able to supply the mixin requested it passes the request
+on to the next control in the hierarchy. </p><p>The sequence diagram below
+illustrates the Object Provider process for supplying an interface pointer
+from the run-time hierarchy. </p><fig id="GUID-91496FA9-60F6-5DDA-899B-7E54A8A7E4CB">
+<image href="GUID-DF3ECD47-4A5B-5836-B5CA-ACCEE98412D4_d0e46823_href.png" placement="inline"/>
+</fig><p>Object1 wishes to call a function on <codeph>MInterface</codeph>.
+It calls <codeph>MopGetObject()</codeph> on the nearest control in the run-time
+hierarchy. The Object Provider Framework identifies the Uid for <codeph>Minterface</codeph> and
+then passes the request up the hierarchy until an object is found (Object4)
+that implements <codeph>Minterface</codeph>. </p><p>Calling <codeph>MopGetGetObjectNoChaining()</codeph> will
+call <codeph>MopSupplyObject()</codeph> but not <codeph>MopNext()</codeph>.
+It returns Null if the class does not implement the specified mixin. </p></section>
+<section id="GUID-33E336B0-98AD-45B0-80A8-5263D8D6167D"><title>See also</title> <p><xref href="GUID-B84FA223-3DFD-58C5-8CEF-C5AA73AA6290.dita">How
+to write controls</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e213719_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F342B002-0667-5D51-AE2D-3CF534D70B62_d0e217456_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e220085_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F392355C-C499-555A-85B7-1DF40492E9B2_d0e223822_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,65 +1,67 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB" xml:lang="en"><title>Generic
-button API</title><shortdesc>The Generic button API is used for enabling touch support for buttons.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>An Avkon button is a generic button component specifically designed for
-touch support. The generic button component (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknButton.html" format="application/java-archive"><codeph>CAknButton</codeph></xref>, defined in <codeph>aknbutton.h</codeph>) is used, for example, in
-a toolbar and a status pane. The button can contain text, an image, or both. </p>
-<p>Buttons can have multiple states, and each of the states can have three
-different states according to user actions. The possible user-action states
-for the button states are:</p>
-<ul>
-<li><p>Normal</p></li>
-<li><p>Pressed down</p></li>
-<li><p>Dimmed</p></li>
-</ul>
-<p>By default, the button has a frame, it responds to tap (press) event, has
-a latchable view in the pressed-down state, and has horizontally and vertically
-aligned text in it. Some default behavior can be changed with button flags
-or with the help of member functions. </p>
-<p>To observe the buttons in your application, use the <codeph>MCoeControlObserver</codeph> observer
-interface.</p>
-<fig id="GUID-EEC0C576-8EEC-481E-817F-6E137E4F6A7D">
-<title>Generic button used in a toolbar</title>
-<image href="GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e77324_href.png" scale="50" placement="inline"/>
-</fig>
-<note><p> The Generic button API is used for creating buttons that are displayed
-as parts of container components, such as a toolbar. It is not used for creating
-CBA buttons displayed in the control pane at the bottom of the device screen.
-The API for creating CBA buttons is the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref>.</p></note>
-<p>For look and feel guidelines on the generic button component as part of
-a toolbar, see the <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">toolbar
-UI component description</xref>.</p>
-<p>For information on using the API, see <xref href="GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita">Enabling
-touch support for buttons</xref>.</p>
-<p>For the Generic button API classes and header files, see Classes and Definitions.</p>
-<section id="GUID-3334EF0D-D9BF-468D-B218-27FA9A2492AC"><title>Constraints</title><p>This
-API is valid for all platforms running on Symbian OS v9.3 or later.</p></section>
-<section id="GUID-EA74FA6F-FA20-47D7-99F2-9A98A4F24CF1"><title>Emulator support</title><p>This
-API is supported in the WINS/WINSCW emulator environment, with the following
-exception:</p><ul>
-<li><p>Tactile feedback is not supported.</p></li>
-</ul></section>
-</conbody><related-links>
-<linklist><title>Related APIs</title>
-<link format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer"><linktext>Skins API</linktext>
-<desc> for adding skin support to the button</desc>
-</link>
-<link href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita"><linktext>Toolbar API</linktext>
-<desc> for creating a toolbar containing generic buttons</desc>
-</link>
-<link href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita"><linktext>Touch UI
-utilities API</linktext>
-<desc> for using long-tap events</desc>
-</link>
-</linklist>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F3EE1000-71A6-4D48-A30B-3D2357BF20FB" xml:lang="en"><title>Generic
+button API</title><shortdesc>The Generic button API is used for enabling touch support for buttons.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>An Avkon button is a generic button component specifically designed for
+touch support. The generic button component (<xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknButton.html" format="application/java-archive"><codeph>CAknButton</codeph></xref>, defined in <codeph>aknbutton.h</codeph>) is used, for example, in
+a toolbar and a status pane. The button can contain text, an image, or both. </p>
+<p>Buttons can have multiple states, and each of the states can have three
+different states according to user actions. The possible user-action states
+for the button states are:</p>
+<ul>
+<li><p>Normal</p></li>
+<li><p>Pressed down</p></li>
+<li><p>Dimmed</p></li>
+</ul>
+<p>By default, the button has a frame, it responds to tap (press) event, has
+a latchable view in the pressed-down state, and has horizontally and vertically
+aligned text in it. Some default behavior can be changed with button flags
+or with the help of member functions. </p>
+<p>To observe the buttons in your application, use the <codeph>MCoeControlObserver</codeph> observer
+interface.</p>
+<fig id="GUID-EEC0C576-8EEC-481E-817F-6E137E4F6A7D">
+<title>Generic button used in a toolbar</title>
+<image href="GUID-ED823C5E-A59B-476A-BF88-0FCBA5D35FED_d0e72175_href.png" scale="50" placement="inline"/>
+</fig>
+<note><p> The Generic button API is used for creating buttons that are displayed
+as parts of container components, such as a toolbar. It is not used for creating
+CBA buttons displayed in the control pane at the bottom of the device screen.
+The API for creating CBA buttons is the <xref format="html" href="specs/guides/Buttons_API_Specification/Buttons_API_Specification.html" scope="peer">Buttons API</xref>.</p></note>
+<p>For look and feel guidelines on the generic button component as part of
+a toolbar, see the <xref href="GUID-EB212C35-5416-4CA7-8091-61B45D78E220.dita">toolbar
+UI component description</xref>.</p>
+<p>For information on using the API, see <xref href="GUID-97712509-84AD-462F-8FFB-E1E6D8278938.dita">Enabling
+touch support for buttons</xref>.</p>
+<p>For the Generic button API classes and header files, see Classes and Definitions.</p>
+<section id="GUID-464FAFFC-A02C-4313-8461-5618C8EEBA21"><title>Changes and release information</title><p>The Generic button
+API is an SDK API and first released in S60 5th Edition. </p></section>
+<section id="GUID-3334EF0D-D9BF-468D-B218-27FA9A2492AC"><title>Constraints</title><p>This
+API is valid for all platforms running on Symbian OS v9.3 or later.</p></section>
+<section id="GUID-EA74FA6F-FA20-47D7-99F2-9A98A4F24CF1"><title>Emulator support</title><p>This
+API is supported in the WINS/WINSCW emulator environment, with the following
+exception:</p><ul>
+<li><p>Tactile feedback is not supported.</p></li>
+</ul></section>
+</conbody><related-links>
+<linklist><title>Related APIs</title>
+<link format="html" href="specs/guides/Skins_API_Specification/Skins_API_Specification.html" scope="peer"><linktext>Skins API</linktext>
+<desc> for adding skin support to the button</desc>
+</link>
+<link href="GUID-B05B61B8-1217-441F-BAFA-C209C8F123C5.dita"><linktext>Toolbar API</linktext>
+<desc> for creating a toolbar containing generic buttons</desc>
+</link>
+<link href="GUID-92018B6B-3CBB-434D-9E61-F271C67E98E3.dita"><linktext>Touch UI
+utilities API</linktext>
+<desc> for using long-tap events</desc>
+</link>
+</linklist>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e143081_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F4203C60-EB2A-4644-8B2D-291087724BA9_d0e149615_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,142 +1,142 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F43A54C0-E82B-5790-8493-1372D214C642" xml:lang="en"><title>What
-are Planes</title><shortdesc>This topic describes the concept of a <i>Plane</i> in the Communications
-Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The transmission of data and the management of connections is divided into
-separate operations. Symbian platform gives the name <i>Plane</i> to
-these operations. The Communications Framework defines three Planes. Each
-Plane has a separate role and a separate responsibility. Each Plane matches
-a Sockets Server API. </p>
-<p>The Planes are called: the Data Plane, the Control Plane and the Management
-Plane. </p>
-<p>Layers span all three Planes. Code in each Plane operates together to deliver
-the required Communications protocol behaviour. </p>
-<p>A connection can have a number of subconnections. Subconnections can be
-called channels. The concepts of connection and subconnection make it useful
-to divide the Control Plane into two parts. The following diagram shows the
-concept. The blue arrows indicate dependencies. The vertical dotted lines
-indicate the division of Planes. </p>
-<fig id="GUID-258000D9-1BC3-5A61-8235-4183D4A759C5">
-<title>           Planes in the Communications Framework         </title>
-<image href="GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e83043_href.png" placement="inline"/>
-</fig>
-<p>The following diagram overlays the Planes with an example series of Layers </p>
-<fig id="GUID-1758E53D-2A62-5C4C-93B9-8FE5DE67BBAA">
-<title>           Planes and Layers in the Communications Framework      
-  </title>
-<image href="GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e83054_href.png" placement="inline"/>
-</fig>
-<ul>
-<li id="GUID-45F19CFA-9B96-53B3-9B15-428BB3226BAA"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref>  </p> </li>
-<li id="GUID-461678D6-3198-55CF-B07E-94F5E1086BAC"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref>  </p> </li>
-<li id="GUID-6B98DEAB-F245-5533-A05A-957FADE0C120"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref>  </p> </li>
-</ul>
-<section id="GUID-E8250BBE-8529-5C45-BCA3-92A87C013580"><title>Data Plane</title> <p>The
-Data Plane carries data and uses Communications protocols. The Data Plane
-handles conversations with remote peers.The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control
-Plane</xref> and the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management
-Plane</xref> exist to serve the Data Plane. </p> <p>The Data Plane exists
-to minimise interruptions to the flow of data. The Data Plane assigns the
-response to interruptions to the Control Plane. Interruptions include: the
-start of a new network connection, the management of a timeout and the management
-of changes to the status of the network. </p> <p>To make sure that interruptions
-cannot interfere with the Data Plane, a thread divide exists between the Data
-Plane and the Control/Management Planes. The thread division allows the Communications
-Framework to give the Data Plane thread a higher priority than the Control
-and Management Plane thread. The difference in thread priorities allows the
-Communications Framework to give the task of data transfer the highest priority. </p> <p>The
-Communications Framework provides a mechanism to send messages between the
-threads. The mechanism is called the <xref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita">Message
-Transport</xref>. The Transport sends and delivers the messages asynchronously.
-Threads can continue their work until the threads are prepared to process
-messages. The Transport always makes sure of the delivery of messages. </p> <p>The
-Data Plane corresponds to the Sockets Server API: <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>. </p> <p>The
-following diagram shows the thread divide. </p> <fig id="GUID-A440C4F8-199E-575A-9922-D90059CA69C3">
-<title>              Data Plane in the Communications Framework           </title>
-<image href="GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e83124_href.png" placement="inline"/>
-</fig> <p><b>Features </b> </p> <p>The Data Plane: </p> <ul>
-<li id="GUID-70DDF365-81B9-5D30-BEA1-B338074CF097"><p>exchanges data with
-remote peers and uses data transfer protocols </p> </li>
-<li id="GUID-E8A426F5-98AD-5BFA-9D8C-820B1656140C"><p>allows any number of
-conversations at the same time through many protocols </p> </li>
-<li id="GUID-6748E1E2-5FF3-52BC-9FC7-6759F52B59D2"><p>enables the transfer
-of data to clients of the protocol stack and from clients of the protocol
-stack </p> </li>
-<li id="GUID-1073D70B-80FA-55E7-96E9-C9B51A701BC4"><p>enables the transfer
-of data to hardware and from hardware </p> </li>
-</ul> </section>
-<section id="GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5"><title>Control Plane</title> <p>The
-Control Plane establishes, maintains and modifies the traffic, or conversations
-in the Data Plane. Specifically, the Control Pane establishes, controls, re-binds
-and tears down the Communications protocol stack based on commands from the
-application and from the Management Plane. </p> <p>The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> sends the status of the link and other control information
-to the Control Plane. The Control Plane processes the status of the link and
-other control information, and allows the Data Plane to give the task of data
-transfer the highest priority. </p> <p>A connection can have a number of subconnections.
-Subconnections can be called channels. The concepts of connection and subconnection
-make it useful to divide the Control Plane into two parts. </p> <p>The Data
-Plane corresponds to the Sockets Server APIs: <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. </p> <p><b>Features </b> </p> <p>The Control Plane: </p> <ul>
-<li id="GUID-EE232AB1-E916-54AB-B658-19B1A3F62B7C"><p>creates the Data Plane </p> </li>
-<li id="GUID-F5E545D5-7954-5F20-B8A4-4C9B7F4B06CC"><p>configures the Data
-Plane modules from information provided by the client application or the Management
-Plane </p> </li>
-<li id="GUID-3C4FF301-30D7-5064-BD45-5A05C962E1DE"><p>starts the Data Plane </p> </li>
-<li id="GUID-BB2A8489-38D7-5D0B-A272-0C04DDE9B2FF"><p>controls and monitors
-the Data Plane: </p> <ul>
-<li id="GUID-7D7E7B38-34C4-53F6-A545-774DEEE07403"><p>acts on information
-received from the data protocols </p> </li>
-<li id="GUID-805AE125-F139-5E65-9912-DCA92926F1EF"><p>notifies the Management
-Plane or the client application about changes to the state of the Control
-Plane or the Data Plane. </p> </li>
-</ul> </li>
-<li id="GUID-ACDF9227-7286-5092-AF85-503BA30A2B45"><p>stops the Data Plane </p> </li>
-<li id="GUID-54C50C8C-4CFB-5C02-89CE-754EF2F858E2"><p>destroys the Data Plane </p> </li>
-<li id="GUID-8FC8ED8A-71DA-546A-8548-D6979B0F8CD7"><p>manages connection session
-timers </p> </li>
-<li id="GUID-C316844B-3046-599E-967C-085D79F9DA01"><p>manages connection data
-channels and their properties </p> </li>
-<li id="GUID-7CF74684-F4C8-54FC-9BA0-EA68D081E5AF"><p>handles changes to the
-status of the network and handles error reports </p> </li>
-</ul> </section>
-<section id="GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442"><title>Management
-Plane</title> <p>The Management Plane maintains the configuration of the device,
-monitors the availability of the network and makes policy decisions for the
-Communications Framework. The Management Plane is the main location where
-phone creators can customise the behaviour of the Communications protocol
-stack. </p> <p>The Management Plane corresponds to the Sockets Server API: <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>  </p> <p><b>Features </b> </p> <p>The Management Plane: </p> <ul>
-<li id="GUID-3FB67172-7DC3-5621-AADB-02AE601D4EAF"><p>selects, constructs
-and manages the Communications protocol stack: </p> <ul>
-<li id="GUID-003EFE03-849E-5168-AAC3-8CFB6E07436C"><p>selects the correct
-protocol stack for a connection based on client and configuration preferences </p> </li>
-<li id="GUID-2E1CBE6C-2CCE-51E7-AE9C-F4EFAC0A426B"><p>manages the Control
-Plane connections based on the policy set either in the configuration or at
-run-time. </p> </li>
-</ul> </li>
-<li id="GUID-DA0FE037-69DB-586D-8809-C4D5A8D22C67"><p>notifies interested
-clients about the state of the Communications protocol stack, for example,
-bearer and service availability </p> </li>
-<li id="GUID-3B36F963-CCF5-5E75-9486-04CBEF27DFC1"><p>provides an entry point
-for third-party plugins to customise and control the Communications protocol
-stack </p> </li>
-<li id="GUID-D7A39FA9-1C88-5E8E-A566-E030971CCF0A"><p>controls the Communications
-protocol stack. This control is based on policy decisions </p> </li>
-<li id="GUID-8BBADB62-AB50-5B9D-B0E8-9546488E12DD"><p>communicates with the
-Control Plane to influence the behaviour of Control or Data flow operations
-in the Communications protocol stack </p> </li>
-<li id="GUID-86CAD544-2B60-5713-B8C1-1FB14806FC31"><p>supplies configuration
-information to the Layer. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F43A54C0-E82B-5790-8493-1372D214C642" xml:lang="en"><title>What
+are Planes</title><shortdesc>This topic describes the concept of a <i>Plane</i> in the Communications
+Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The transmission of data and the management of connections is divided into
+separate operations. Symbian platform gives the name <i>Plane</i> to
+these operations. The Communications Framework defines three Planes. Each
+Plane has a separate role and a separate responsibility. Each Plane matches
+a Sockets Server API. </p>
+<p>The Planes are called: the Data Plane, the Control Plane and the Management
+Plane. </p>
+<p>Layers span all three Planes. Code in each Plane operates together to deliver
+the required Communications protocol behaviour. </p>
+<p>A connection can have a number of subconnections. Subconnections can be
+called channels. The concepts of connection and subconnection make it useful
+to divide the Control Plane into two parts. The following diagram shows the
+concept. The blue arrows indicate dependencies. The vertical dotted lines
+indicate the division of Planes. </p>
+<fig id="GUID-258000D9-1BC3-5A61-8235-4183D4A759C5">
+<title>           Planes in the Communications Framework         </title>
+<image href="GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e76331_href.png" placement="inline"/>
+</fig>
+<p>The following diagram overlays the Planes with an example series of Layers </p>
+<fig id="GUID-1758E53D-2A62-5C4C-93B9-8FE5DE67BBAA">
+<title>           Planes and Layers in the Communications Framework      
+  </title>
+<image href="GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e76342_href.png" placement="inline"/>
+</fig>
+<ul>
+<li id="GUID-45F19CFA-9B96-53B3-9B15-428BB3226BAA"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref>  </p> </li>
+<li id="GUID-461678D6-3198-55CF-B07E-94F5E1086BAC"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref>  </p> </li>
+<li id="GUID-6B98DEAB-F245-5533-A05A-957FADE0C120"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref>  </p> </li>
+</ul>
+<section id="GUID-E8250BBE-8529-5C45-BCA3-92A87C013580"><title>Data Plane</title> <p>The
+Data Plane carries data and uses Communications protocols. The Data Plane
+handles conversations with remote peers.The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control
+Plane</xref> and the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management
+Plane</xref> exist to serve the Data Plane. </p> <p>The Data Plane exists
+to minimise interruptions to the flow of data. The Data Plane assigns the
+response to interruptions to the Control Plane. Interruptions include: the
+start of a new network connection, the management of a timeout and the management
+of changes to the status of the network. </p> <p>To make sure that interruptions
+cannot interfere with the Data Plane, a thread divide exists between the Data
+Plane and the Control/Management Planes. The thread division allows the Communications
+Framework to give the Data Plane thread a higher priority than the Control
+and Management Plane thread. The difference in thread priorities allows the
+Communications Framework to give the task of data transfer the highest priority. </p> <p>The
+Communications Framework provides a mechanism to send messages between the
+threads. The mechanism is called the <xref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita">Message
+Transport</xref>. The Transport sends and delivers the messages asynchronously.
+Threads can continue their work until the threads are prepared to process
+messages. The Transport always makes sure of the delivery of messages. </p> <p>The
+Data Plane corresponds to the Sockets Server API: <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>. </p> <p>The
+following diagram shows the thread divide. </p> <fig id="GUID-A440C4F8-199E-575A-9922-D90059CA69C3">
+<title>              Data Plane in the Communications Framework           </title>
+<image href="GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e76412_href.png" placement="inline"/>
+</fig> <p><b>Features </b> </p> <p>The Data Plane: </p> <ul>
+<li id="GUID-70DDF365-81B9-5D30-BEA1-B338074CF097"><p>exchanges data with
+remote peers and uses data transfer protocols </p> </li>
+<li id="GUID-E8A426F5-98AD-5BFA-9D8C-820B1656140C"><p>allows any number of
+conversations at the same time through many protocols </p> </li>
+<li id="GUID-6748E1E2-5FF3-52BC-9FC7-6759F52B59D2"><p>enables the transfer
+of data to clients of the protocol stack and from clients of the protocol
+stack </p> </li>
+<li id="GUID-1073D70B-80FA-55E7-96E9-C9B51A701BC4"><p>enables the transfer
+of data to hardware and from hardware </p> </li>
+</ul> </section>
+<section id="GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5"><title>Control Plane</title> <p>The
+Control Plane establishes, maintains and modifies the traffic, or conversations
+in the Data Plane. Specifically, the Control Pane establishes, controls, re-binds
+and tears down the Communications protocol stack based on commands from the
+application and from the Management Plane. </p> <p>The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> sends the status of the link and other control information
+to the Control Plane. The Control Plane processes the status of the link and
+other control information, and allows the Data Plane to give the task of data
+transfer the highest priority. </p> <p>A connection can have a number of subconnections.
+Subconnections can be called channels. The concepts of connection and subconnection
+make it useful to divide the Control Plane into two parts. </p> <p>The Data
+Plane corresponds to the Sockets Server APIs: <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. </p> <p><b>Features </b> </p> <p>The Control Plane: </p> <ul>
+<li id="GUID-EE232AB1-E916-54AB-B658-19B1A3F62B7C"><p>creates the Data Plane </p> </li>
+<li id="GUID-F5E545D5-7954-5F20-B8A4-4C9B7F4B06CC"><p>configures the Data
+Plane modules from information provided by the client application or the Management
+Plane </p> </li>
+<li id="GUID-3C4FF301-30D7-5064-BD45-5A05C962E1DE"><p>starts the Data Plane </p> </li>
+<li id="GUID-BB2A8489-38D7-5D0B-A272-0C04DDE9B2FF"><p>controls and monitors
+the Data Plane: </p> <ul>
+<li id="GUID-7D7E7B38-34C4-53F6-A545-774DEEE07403"><p>acts on information
+received from the data protocols </p> </li>
+<li id="GUID-805AE125-F139-5E65-9912-DCA92926F1EF"><p>notifies the Management
+Plane or the client application about changes to the state of the Control
+Plane or the Data Plane. </p> </li>
+</ul> </li>
+<li id="GUID-ACDF9227-7286-5092-AF85-503BA30A2B45"><p>stops the Data Plane </p> </li>
+<li id="GUID-54C50C8C-4CFB-5C02-89CE-754EF2F858E2"><p>destroys the Data Plane </p> </li>
+<li id="GUID-8FC8ED8A-71DA-546A-8548-D6979B0F8CD7"><p>manages connection session
+timers </p> </li>
+<li id="GUID-C316844B-3046-599E-967C-085D79F9DA01"><p>manages connection data
+channels and their properties </p> </li>
+<li id="GUID-7CF74684-F4C8-54FC-9BA0-EA68D081E5AF"><p>handles changes to the
+status of the network and handles error reports </p> </li>
+</ul> </section>
+<section id="GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442"><title>Management
+Plane</title> <p>The Management Plane maintains the configuration of the device,
+monitors the availability of the network and makes policy decisions for the
+Communications Framework. The Management Plane is the main location where
+phone creators can customise the behaviour of the Communications protocol
+stack. </p> <p>The Management Plane corresponds to the Sockets Server API: <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref>  </p> <p><b>Features </b> </p> <p>The Management Plane: </p> <ul>
+<li id="GUID-3FB67172-7DC3-5621-AADB-02AE601D4EAF"><p>selects, constructs
+and manages the Communications protocol stack: </p> <ul>
+<li id="GUID-003EFE03-849E-5168-AAC3-8CFB6E07436C"><p>selects the correct
+protocol stack for a connection based on client and configuration preferences </p> </li>
+<li id="GUID-2E1CBE6C-2CCE-51E7-AE9C-F4EFAC0A426B"><p>manages the Control
+Plane connections based on the policy set either in the configuration or at
+run-time. </p> </li>
+</ul> </li>
+<li id="GUID-DA0FE037-69DB-586D-8809-C4D5A8D22C67"><p>notifies interested
+clients about the state of the Communications protocol stack, for example,
+bearer and service availability </p> </li>
+<li id="GUID-3B36F963-CCF5-5E75-9486-04CBEF27DFC1"><p>provides an entry point
+for third-party plugins to customise and control the Communications protocol
+stack </p> </li>
+<li id="GUID-D7A39FA9-1C88-5E8E-A566-E030971CCF0A"><p>controls the Communications
+protocol stack. This control is based on policy decisions </p> </li>
+<li id="GUID-8BBADB62-AB50-5B9D-B0E8-9546488E12DD"><p>communicates with the
+Control Plane to influence the behaviour of Control or Data flow operations
+in the Communications protocol stack </p> </li>
+<li id="GUID-86CAD544-2B60-5713-B8C1-1FB14806FC31"><p>supplies configuration
+information to the Layer. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F"><title>Launching Zsh</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic describes how to launch Zsh using a Telnet session on a PC. You can use the following methods: </p> <ul><li id="GUID-3598635A-D7CD-5603-B7AD-79D417AE47EA"><p> <xref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita#GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F/GUID-8B921FD5-CC14-5B1C-91EA-DD0D1A2539DE"> Emulator as a Telnet server</xref>  </p> </li> <li id="GUID-E81D52C9-003A-5BE5-8DB3-35449F39E5AD"><p> <xref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita#GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F/GUID-F95A0266-A1EF-50E6-A5DC-3C64102C0F08"> Device (phone) as a Telnet server</xref>  </p> </li> </ul> <section id="GUID-8B921FD5-CC14-5B1C-91EA-DD0D1A2539DE"><title>Emulator as a Telnet server</title> <p>To launch Zsh (using a Telnet session) on a PC using an emulator as a Telnet server, perform the following steps: </p> <ol id="GUID-503E2376-7EAF-56C1-9160-F4F372186802"><li id="GUID-1F803171-9692-50D7-90ED-79626BDD8C17"><p>Start the emulator by selecting <b>Extras</b> &gt; <b>Eshell</b>. </p> </li> <li id="GUID-3A38C35A-04B9-52DA-8F76-36C59F6E4FB6"><p>Run the following command: </p> <p><userinput>TelnetD</userinput> </p> <p> <b>Note:</b> Before running the <codeph>Telnetd</codeph> command, ensure that <filepath>Zsh.exe</filepath> and the external command executables such as <filepath>find.exe</filepath>, <filepath>grep.exe</filepath>, <filepath>ps.exe</filepath>, <filepath>unzip.exe</filepath> and <filepath>zip.exe</filepath> are present in a <filepath>sys/bin</filepath> folder. You can copy these files from the <filepath>/epoc32/release/winscw/&lt;udeb/urel</filepath> &gt; directory. </p> </li> <li id="GUID-623F3295-998D-5BDB-A62A-5B61A26E0D2C"><p>The IP address of the Telnet server running on the emulator is displayed, as shown in the following image: </p> <fig id="GUID-189039DA-9401-5252-80FE-8D938E463EE8"><title>
-              IP configuration 
-            </title> <image href="GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e142135_href.png" placement="inline"/></fig> </li> <li id="GUID-EC72EDFB-8ACD-5036-9050-9633CA625957"><p>In a scenario where multiple IP addresses are listed, use the <codeph>ping</codeph> command from the PC console to identify the IP address that is accessible from the PC, as shown in the following image. </p> <fig id="GUID-C010C9CD-ED32-5C2B-B448-DE1E45FBD258"><title>
-              Using the ping command 
-            </title> <image href="GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e142149_href.png" placement="inline"/></fig> </li> <li id="GUID-A0D77A28-4D2A-5031-B58E-6D7E3022413E"><p>Open command prompt on a Windows PC. </p> </li> <li id="GUID-AB9BD817-CEF1-5701-9E54-16127D2FF5E7"><p>Run the following command by typing the IP address (associated with the emulator) that is accessible from the PC: </p> <p><userinput>telnet &lt;ip-address of the emulator&gt;</userinput> </p> <p>The emulator and the Telnet client console prompts for an alphanumeric key to authenticate the session. </p> </li> <li id="GUID-FF995AA7-531E-5CE9-8D3F-A923847B7131"><p>Type the same alphanumeric key (which is upto eight characters) both on the emulator console window and also on the Telnet client console. </p> <p>Zsh is successfully launched on the PC. </p> </li> </ol> </section> <section id="GUID-F95A0266-A1EF-50E6-A5DC-3C64102C0F08"><title>Device (phone) as a Telnet server</title> <p>After establishing a connection between a device and the PC using one of the methods described in the <xref href="GUID-DC6AF355-3079-531F-98F7-A70AC13A2863.dita">Device Setup</xref> section, you can launch Zsh. To launch Zsh (using a Telnet session) on a PC using a device as a Telnet server, perform the following steps: </p> <p> <b>Note:</b> Before starting a Telnet session, ensure that TelnetD and Zsh are installed on the device. </p> <ol id="GUID-97736606-0B15-5ABB-8CCD-56E7CF225EA4"><li id="GUID-16CB0BAD-9AE1-5390-AD0D-D2A0922E8045"><p>Start TelnetD on the device by clicking the <b>Zsh</b> icon. The IP address of the Telnet server running on the device is displayed. </p> </li> <li id="GUID-B8DCD78C-2919-5B99-AF46-E0AE21C5D995"><p>In a scenario where multiple IP addresses are listed, use the <codeph>ping</codeph> command from the PC console to identify the IP address of the device that is accessible from the PC. </p> </li> <li id="GUID-0294250D-AA30-5E12-87C7-2B71AA0575C3"><p>Open command prompt on a Windows PC. </p> </li> <li id="GUID-CE2B9EF0-2BCD-56A6-ABB5-CD2F327AFAC3"><p>Run the following command, by typing the IP address (associated with the device) that is accessible from the PC: </p> <p><userinput>Telnet &lt;ip-address of the device&gt;</userinput> </p> <p>The device and the Telnet client console prompts for an alphanumeric key to authenticate the session. </p> </li> <li id="GUID-CCE9AD14-2BB9-5A6D-A4F4-B401891B2F00"><p>Type the same alphanumeric key (which is upto eight characters) both on the device console window and also on the Telnet client console. </p> <p>Zsh is successfully launched on the PC. The following image shows the result of this command on a Linux PC: </p> <fig id="GUID-291093D9-691C-5C97-BB84-09B4CCE9490D"><image href="GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e142239_href.png" placement="inline"/></fig> </li> </ol> </section> </conbody><related-links><link href="GUID-DA204619-9F02-5854-80BE-0AC6BB80D730.dita"><linktext>Emulator Setup</linktext> </link> <link href="GUID-DC6AF355-3079-531F-98F7-A70AC13A2863.dita"><linktext>Device Setup</linktext> </link> <link href="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita#GUID-94F21522-D598-5F85-BE04-D606AE8D5A25/GUID-B6A34708-CA62-5B2C-918B-595B78D80EDA"><linktext>Using TelnetD and Zsh</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F"><title>Launching Zsh</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This topic describes how to launch Zsh using a Telnet session on a PC. You can use the following methods: </p> <ul><li id="GUID-3598635A-D7CD-5603-B7AD-79D417AE47EA"><p> <xref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita#GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F/GUID-8B921FD5-CC14-5B1C-91EA-DD0D1A2539DE"> Emulator as a Telnet server</xref>  </p> </li> <li id="GUID-E81D52C9-003A-5BE5-8DB3-35449F39E5AD"><p> <xref href="GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F.dita#GUID-F4E64499-57CB-5E4A-AAD7-439191BF5E0F/GUID-F95A0266-A1EF-50E6-A5DC-3C64102C0F08"> Device (phone) as a Telnet server</xref>  </p> </li> </ul> <section id="GUID-8B921FD5-CC14-5B1C-91EA-DD0D1A2539DE"><title>Emulator as a Telnet server</title> <p>To launch Zsh (using a Telnet session) on a PC using an emulator as a Telnet server, perform the following steps: </p> <ol id="GUID-503E2376-7EAF-56C1-9160-F4F372186802"><li id="GUID-1F803171-9692-50D7-90ED-79626BDD8C17"><p>Start the emulator by selecting <b>Extras</b> &gt; <b>Eshell</b>. </p> </li> <li id="GUID-3A38C35A-04B9-52DA-8F76-36C59F6E4FB6"><p>Run the following command: </p> <p><userinput>TelnetD</userinput> </p> <p> <b>Note:</b> Before running the <codeph>Telnetd</codeph> command, ensure that <filepath>Zsh.exe</filepath> and the external command executables such as <filepath>find.exe</filepath>, <filepath>grep.exe</filepath>, <filepath>ps.exe</filepath>, <filepath>unzip.exe</filepath> and <filepath>zip.exe</filepath> are present in a <filepath>sys/bin</filepath> folder. You can copy these files from the <filepath>/epoc32/release/winscw/&lt;udeb/urel</filepath> &gt; directory. </p> </li> <li id="GUID-623F3295-998D-5BDB-A62A-5B61A26E0D2C"><p>The IP address of the Telnet server running on the emulator is displayed, as shown in the following image: </p> <fig id="GUID-189039DA-9401-5252-80FE-8D938E463EE8"><title>
+              IP configuration 
+            </title> <image href="GUID-2D7BD92E-E242-524B-8D83-874C32EC0503_d0e135601_href.png" placement="inline"/></fig> </li> <li id="GUID-EC72EDFB-8ACD-5036-9050-9633CA625957"><p>In a scenario where multiple IP addresses are listed, use the <codeph>ping</codeph> command from the PC console to identify the IP address that is accessible from the PC, as shown in the following image. </p> <fig id="GUID-C010C9CD-ED32-5C2B-B448-DE1E45FBD258"><title>
+              Using the ping command 
+            </title> <image href="GUID-517D9795-88BC-5959-9384-36F132AE634C_d0e135615_href.png" placement="inline"/></fig> </li> <li id="GUID-A0D77A28-4D2A-5031-B58E-6D7E3022413E"><p>Open command prompt on a Windows PC. </p> </li> <li id="GUID-AB9BD817-CEF1-5701-9E54-16127D2FF5E7"><p>Run the following command by typing the IP address (associated with the emulator) that is accessible from the PC: </p> <p><userinput>telnet &lt;ip-address of the emulator&gt;</userinput> </p> <p>The emulator and the Telnet client console prompts for an alphanumeric key to authenticate the session. </p> </li> <li id="GUID-FF995AA7-531E-5CE9-8D3F-A923847B7131"><p>Type the same alphanumeric key (which is upto eight characters) both on the emulator console window and also on the Telnet client console. </p> <p>Zsh is successfully launched on the PC. </p> </li> </ol> </section> <section id="GUID-F95A0266-A1EF-50E6-A5DC-3C64102C0F08"><title>Device (phone) as a Telnet server</title> <p>After establishing a connection between a device and the PC using one of the methods described in the <xref href="GUID-DC6AF355-3079-531F-98F7-A70AC13A2863.dita">Device Setup</xref> section, you can launch Zsh. To launch Zsh (using a Telnet session) on a PC using a device as a Telnet server, perform the following steps: </p> <p> <b>Note:</b> Before starting a Telnet session, ensure that TelnetD and Zsh are installed on the device. </p> <ol id="GUID-97736606-0B15-5ABB-8CCD-56E7CF225EA4"><li id="GUID-16CB0BAD-9AE1-5390-AD0D-D2A0922E8045"><p>Start TelnetD on the device by clicking the <b>Zsh</b> icon. The IP address of the Telnet server running on the device is displayed. </p> </li> <li id="GUID-B8DCD78C-2919-5B99-AF46-E0AE21C5D995"><p>In a scenario where multiple IP addresses are listed, use the <codeph>ping</codeph> command from the PC console to identify the IP address of the device that is accessible from the PC. </p> </li> <li id="GUID-0294250D-AA30-5E12-87C7-2B71AA0575C3"><p>Open command prompt on a Windows PC. </p> </li> <li id="GUID-CE2B9EF0-2BCD-56A6-ABB5-CD2F327AFAC3"><p>Run the following command, by typing the IP address (associated with the device) that is accessible from the PC: </p> <p><userinput>Telnet &lt;ip-address of the device&gt;</userinput> </p> <p>The device and the Telnet client console prompts for an alphanumeric key to authenticate the session. </p> </li> <li id="GUID-CCE9AD14-2BB9-5A6D-A4F4-B401891B2F00"><p>Type the same alphanumeric key (which is upto eight characters) both on the device console window and also on the Telnet client console. </p> <p>Zsh is successfully launched on the PC. The following image shows the result of this command on a Linux PC: </p> <fig id="GUID-291093D9-691C-5C97-BB84-09B4CCE9490D"><image href="GUID-727E6071-591B-539E-997C-BC0CC5B62A11_d0e135705_href.png" placement="inline"/></fig> </li> </ol> </section> </conbody><related-links><link href="GUID-DA204619-9F02-5854-80BE-0AC6BB80D730.dita"><linktext>Emulator Setup</linktext> </link> <link href="GUID-DC6AF355-3079-531F-98F7-A70AC13A2863.dita"><linktext>Device Setup</linktext> </link> <link href="GUID-94F21522-D598-5F85-BE04-D606AE8D5A25.dita#GUID-94F21522-D598-5F85-BE04-D606AE8D5A25/GUID-B6A34708-CA62-5B2C-918B-595B78D80EDA"><linktext>Using TelnetD and Zsh</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,66 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3" xml:lang="en"><title>Touch-enabled
-vs. touch-optimized</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-5A2B0210-EE1A-4B8F-A714-F7CA1EC2B1EA"> <p>Rather than being
-touch-enabled, certain applications can be touch-optimized, that is, designed
-primarily for touch screen interaction. When developing applications for a
-touch interface, it is important to consider interactions which benefit the
-most from touch UI. While physical strokes and gestures allow for more natural
-interaction with objects, the fact that one can apply them does not mean they
-are appropriate for every situation. </p><p>Following are some useful tips
-that can be used when designing applications for touch use: <ul>
-<li><p>It is imperative that design decisions are based on real-time touch
-use cases.</p></li>
-<li><p>Since touch functions require a fair amount of discovery from the user,
-it is good if only very obvious functions are made touch-enabled. </p></li>
-</ul></p><p><b>Why to use touch</b></p><ul>
-<li><p><b>More flexible:</b> Compared to fixed hardware keys, the interface
-can change dynamically. This allows for more flexible configurations depending
-on the functionality requirements, languages, and so on. Thus a very small
-screen can change its buttons as required. Also, with indirect strokes and
-gestures, there are numerous possibilities of flexibility. No use of physical
-buttons is required.</p><fig id="GUID-30369880-1F00-440E-A12C-2C75511FDEE8">
-<image href="GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e74811_href.png" placement="inline"/>
-</fig></li>
-<li><p><b>More intuitive:</b> Manipulating objects directly by touching them
-is natural and intuitive. Keyboards, mice, trackballs, and other input devices
-are not able to convey as much subtlety as touch can. Direct manipulation
-can deliver a lot more meaning to controlling a tool. </p></li>
-<li><p><b>More fun:</b> One can design a game in which users press a button
-and an on-screen avatar swings a tennis racket. But it can be simply more
-entertaining to mimic movements physically, and to see the action mirrored
-on-screen. Strokes and gestures encourage play and exploration of a system
-by providing a more hands-on experience. </p></li>
-<li><p><b>More engaging:</b> Through play, users start to engage with the
-interface, first by trying it out to see how it works. </p></li>
-</ul><p><b>Limitations of touch</b></p><ul>
-<li><p><b>Heavy data input:</b> A hardware keyboard is faster for most people
-to use when entering a large amount of text or numbers, and applications which
-involve heavy data input are not necessarily ideal for touch devices. Virtual
-keyboards are adequate, for example, for messaging applications. Consider
-utilizing adaptive methods - such as options and selections filtered according
-to what is available on the screen or in a list - and pre-filled items, when
-possible.</p></li>
-<li><p><b>Reliance on the visual:</b> While the Symbian platform provides
-tactile feedback capability, some applications can rely heavily on visual
-feedback to indicate actions. Allow for scalability, larger buttons and text
-sizes, for example, for visually impaired users.</p></li>
-<li><p><b>Reliance on the physical: </b>Touch interface can be more demanding
-on the physical context than mechanical keys. Tapping a touch screen button
-can be difficult while wearing winter gloves, or with long fingernails. The
-inverse is also true: the more subtle and small the movement, the less likely
-it is that everyone will be able to do it. To overcome this, the most basic
-use cases, such as answering an incoming phone call, must utilize large enough
-elements and straightforward interaction.</p></li>
-</ul></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F4F3A37A-AB0C-47B8-A538-C05F1CA73BF3" xml:lang="en"><title>Touch-enabled
+vs. touch-optimized</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-5A2B0210-EE1A-4B8F-A714-F7CA1EC2B1EA"> <p>Applications can
+be designed primarily for touch screen interaction (touch-optimized) instead
+of being touch-enabled. While developing applications for a touch interface,
+the design considerations must be based on interactions that benefit the most
+from touch UI. Physical strokes and gestures allows natural interaction with
+objects but must be used appropriately. </p><p>Following are few useful tips
+that can be used when designing applications for touch interface: <ul>
+<li><p>Design decisions must be based on real-time touch use cases.</p></li>
+<li><p>Only obvious functions can be made touch-enabled. </p></li>
+</ul></p><p>Following are the important features of touch:</p><ul>
+<li><p><b>Flexibility</b> - Virtual keyboard provides more flexibility than
+fixed hardware keys. The dynamically changing interface allows for flexible
+configurations depending on the functionality requirements, languages, and
+so on. Also, indirect strokes and gestures provide flexibility reducing the
+need for physical buttons.</p><fig id="GUID-30369880-1F00-440E-A12C-2C75511FDEE8">
+<image href="GUID-785160B9-A6BC-47FA-957E-5BB87E79B4E7_d0e69648_href.png" placement="inline"/>
+</fig></li>
+<li><p><b>Intuitive</b> - Manipulating objects directly by touching them is
+natural and intuitive. Touch interface allows better real-time experience
+for end users. Strokes and gestures encourage play and exploration of a system
+by providing a more hands-on experience.</p></li>
+</ul><p><b>Limitations of touch</b></p><ul>
+<li><p><b>Data input</b> - touch devices are not ideal for applications involving
+huge data entry. Virtual keyboards are adequate, for example, for messaging
+applications. Consider utilizing adaptive methods such as options and selections
+filtered according to what is available on the screen or in a list - and pre-filled
+items, when possible.</p></li>
+<li><p><b>Reliance on the visual</b> - Although the Symbian platform provides
+tactile feedback capability, some applications rely more on visual feedback
+to indicate actions. Allow for scalability, larger buttons and text sizes,
+for example, for visually impaired users.</p></li>
+<li><p><b>Reliance on the physical</b> - Touch interface can be more demanding
+on the physical context than mechanical keys. Subtle and small movements are
+less likely to be achieved. For example, tapping a touch screen
+button while wearing winter gloves or with long fingernails can be difficult.
+To overcome this limitation, the basic use cases, such as answering an incoming
+phone call, must utilize large elements and simple interaction.</p></li>
+</ul></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F5371A59-A637-4623-A2C0-9A8B8E5F3CFB.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F5371A59-A637-4623-A2C0-9A8B8E5F3CFB" xml:lang="en"><title>Interaction
-with other hardware components</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In addition to traditional keys, interaction devices of other types may
-be built in the devices. In most scenarios, they produce input events similar
-to keys, so that the software need not be changed. The hardware commands do
-not have any effect on the application.</p>
-<p>Examples of specific interaction devices are:<ul>
-<li><p>Optical joysticks</p></li>
-<li><p>Optical 9-way finger navigation</p></li>
-<li><p>Acceleration sensors</p></li>
-</ul></p>
-<section id="GUID-C70CF894-EACC-470A-98C7-846B7FBC4F04"><title>Optical joystick</title><p>An optical joystick can be used
-instead of (or in addition to) the traditional navigation keys. </p><p>When
-used in combination with traditional scroll keys, optical joystick performs
-same functions as that of mechanical scroll keys. However, the speed of the
-movement can differ. </p><p>When used individually as the only scrolling device,
-optical joystick emulates the functions of mechanical scroll keys. Sliding
-a finger down over the joystick provides the same function as that of pressing
-the down key. Repeat functionality can be produced with longer strokes. </p></section>
-<section id="GUID-DF3C81F4-2FAD-4373-8568-0CFC6C7F9618">       <title>Optical
-9-way navigation</title><p>The Symbian platform supports additional optical
-navigation that is integrated to centre Select key. The supported directions
-in 9-way rocker key are domed main directions and diagonals by combining the
-main directions. Optical navigation allows continues moment of the finger
-as observed in touch pad. It is suitable for pointer moving in browser and
-content panning, for example, in photos, browser, and maps.</p></section>
-<section id="GUID-10494E4E-B037-4874-BEFB-20AB95B61CBA"><title>Acceleration
-sensor</title><p>There are three types of interaction events that can be recognized
-with acceleration sensors:<ol>
-<li id="GUID-704B967F-7E70-4446-B443-DDCA665D80BE"><p>Tapping the device by
-hand (double tap) to perform a given function in set events. Tapping interaction
-is not recommended for touch devices to prevent the unintentional touch actions.</p></li>
-<li id="GUID-43884A1A-DE03-4074-8D35-4C5254159F14"><p>Changing the device’s
-orientation from portrait to landscape and back to perform screen re-orientation.</p></li>
-<li id="GUID-C07401D7-3AD2-4D74-B61D-E08A95F4E504"><p>Changing the device
-orientation from screen up (for example on a table) to screen down and back
-to silence an alert tone (for example, silencing an incoming call).</p></li>
-</ol></p>The system is capable of sensing any of listed events. The supported
-sensor interactions are configurable per device, but must be consistent in
-not assigning different functions to these standard events. Also, the user
-can be provided with the option to set the desired interactions. For example,
-it is possible to set methods 1 and 3 (double tap by hand and turning the
-screen downwards) for the 'silence incoming call' event. The settings are
-available in <b>General Settings</b>. A double tap on the device produces
-tactile (vibrating) feedback to reinforce and acknowledge that the interaction
-is successful. See <xref href="GUID-581A8E4B-12BE-41C0-A20E-3087A80FEECF.dita">Tactile
-feedback</xref> for more details.</section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59" xml:lang="en"><title>Smiley
-picker</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Smiley picker is identical to special character table. </p>
-<p>User can enter smileys to editors. For the functionality of touch events,
-refer to the <xref href="GUID-A3962EAA-542C-48FC-93B6-C2D2686AA082.dita">default
-touch events of special character table</xref>. Smiley picker can be opened: <ul>
-<li><p>from touch input <b>Options</b> menu if there is no dedicated Smiley
-picker button.</p></li>
-<li><p>from dedicated smiley button in handwriting recognition, full screen
-QWERTY and virtual QWERTY keyboard.</p></li>
-<li><p>by pressing the dedicated smiley button in <xref href="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita">Special
-Character Table</xref> opened from virtual ITU-T.</p></li>
-</ul></p>
-<fig id="GUID-3F790280-4BD5-4112-B045-44661D588A98">
-<title>Smiley picker in portrait and landscape modes</title>
-<image href="GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e71245_href.png" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F59B0B89-94C3-4E0B-BF87-2AE5B3811F59" xml:lang="en"><title>Smiley
+picker</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Smiley picker is similar to special character table. </p>
+<p>User can enter smileys to editors. For the functionality of touch events,
+refer to the <xref href="GUID-A3962EAA-542C-48FC-93B6-C2D2686AA082.dita">default
+touch events of special character table</xref>. Smiley picker can be opened: <ul>
+<li><p>from touch input <b>Options</b> menu if there is no dedicated Smiley
+picker button.</p></li>
+<li><p>from dedicated smiley button in handwriting recognition, full screen
+QWERTY and virtual QWERTY keyboard.</p></li>
+<li><p>by pressing the dedicated smiley button in <xref href="GUID-D1F4B2DC-5B18-4454-BFD7-8BB61D80E7CA.dita">Special
+Character Table</xref> opened from virtual ITU-T.</p></li>
+</ul></p>
+<fig id="GUID-3F790280-4BD5-4112-B045-44661D588A98">
+<title>Smiley picker in portrait and landscape modes</title>
+<image href="GUID-3BA7EB01-D967-44B2-B817-91722C59F2DE_d0e65995_href.png" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e332635_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e338792_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e176051_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F5B58B20-B85C-5BCD-B1EB-69CCE42DE6BB_d0e182645_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F" xml:lang="en"><title>The
-Non-ScreenPlay Graphics Architecture</title><shortdesc>ScreenPlay provides improved support for graphics hardware acceleration
-and some other new features. However, it is possible to use the Symbian platform
-without enabling ScreenPlay. This is called the non-ScreenPlay variant (sometimes
-referred to as the <b>non-NGA</b> variant). This topic provides an introduction
-to the graphics architecture when ScreenPlay is <b>not</b> enabled. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The following diagram shows the non-ScreenPlay architecture. It includes
-the components in the Graphics package and some closely related components
-in other packages. </p>
-<fig id="GUID-060B8747-36A8-5F2A-BE82-0F637381673A">
-<title>The Symbian Foundation non-ScreenPlay graphics architecture </title>
-<image href="GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e191485_href.png" placement="inline"/>
-</fig>
-<p>The software model is as follows: </p>
-<ul>
-<li id="GUID-8BDB2015-C8FD-51EC-AB19-A55C55DD6D4B"><p>The Hardware Adaptation
-Layer (HAL) consists of the frame buffer and basic attributes. All processes
-have equal access to the frame buffer and can both read and write to it. </p> </li>
-<li id="GUID-06209922-9276-5843-95ED-CCE01A96A67C"><p>The Screen Driver provides
-simple pixel, scan-line and bitmap operations. The Screen Driver has the same
-interface for both bitmaps and the frame buffer. Hardware manufacturers can
-adapt the Screen Driver to suit the available hardware. </p> </li>
-<li id="GUID-333C52F6-5B6C-5212-8286-B344749550B5"><p>The BitGDI component
-provides support for higher-level geometric primitives and text. The BitGDI
-component is implemented in terms of Screen Driver operations. All BitGDI
-rendering operations are synchronous. </p> </li>
-<li id="GUID-B542796F-47AE-5B8A-976A-446315EC6550"><p>The Window Server multiplexes
-access to the screen and provides a BitGDI-like interface. </p> </li>
-<li id="GUID-81912D86-0CF6-5399-84FF-904E15BA8B50"><p>The Window Server provides
-Direct Screen Access (DSA) support for applications that require high frame
-rates (such as video and games) to bypass the Window Server and write to the
-frame buffer directly. However, some interaction with the Window Server is
-needed to prevent the application from drawing over other application's data. </p> </li>
-</ul>
-<p>In addition, the non-ScreenPlay architecture provides support for EGL,
-OpenGL and OpenVG. </p>
-<p>The following diagram shows the rendering stack in the non-ScreenPlay variant. </p>
-<fig id="GUID-4A245007-BE0A-5DD6-A3D5-CAD9A16E0540">
-<title>The rendering stack in the non-ScreenPlay variant</title>
-<image href="GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e191530_href.png" placement="inline"/>
-</fig>
-
-<p>Although DSA provides a solution for applications that require high frame
-rates, the non-ScreenPlay architecture has limitations when used on graphics
-accelerated hardware and non-uniform memory models. The architecture may require
-the copying of buffers between CPU and GPU memory as shown in the following
-diagram. ScreenPlay provides a solution that requires less copying of buffers
-in this type of use case. </p>
-<fig id="GUID-0EAF51D1-173E-52E2-8E28-C5FB7F6F9BD0">
-<title> Example non-uniform memory, non-ScreenPlay hardware model </title>
-<image href="GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e191542_href.png" placement="inline"/>
-</fig>
-</conbody><related-links>
-<link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay
-Architecture</linktext></link>
-<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Graphics
-Hardware Acceleration</linktext></link>
-<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
-Concepts</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F" xml:lang="en"><title>The
+Non-ScreenPlay Graphics Architecture</title><shortdesc>ScreenPlay provides improved support for graphics hardware acceleration
+and some other new features. However, it is possible to use the Symbian platform
+without enabling ScreenPlay. This is called the non-ScreenPlay variant (sometimes
+referred to as the <b>non-NGA</b> variant). This topic provides an introduction
+to the graphics architecture when ScreenPlay is <b>not</b> enabled. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following diagram shows the non-ScreenPlay architecture. It includes
+the components in the Graphics package and some closely related components
+in other packages. </p>
+<fig id="GUID-060B8747-36A8-5F2A-BE82-0F637381673A">
+<title>The Symbian Foundation non-ScreenPlay graphics architecture </title>
+<image href="GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e184889_href.png" placement="inline"/>
+</fig>
+<p>The software model is as follows: </p>
+<ul>
+<li id="GUID-8BDB2015-C8FD-51EC-AB19-A55C55DD6D4B"><p>The Hardware Adaptation
+Layer (HAL) consists of the frame buffer and basic attributes. All processes
+have equal access to the frame buffer and can both read and write to it. </p> </li>
+<li id="GUID-06209922-9276-5843-95ED-CCE01A96A67C"><p>The Screen Driver provides
+simple pixel, scan-line and bitmap operations. The Screen Driver has the same
+interface for both bitmaps and the frame buffer. Hardware manufacturers can
+adapt the Screen Driver to suit the available hardware. </p> </li>
+<li id="GUID-333C52F6-5B6C-5212-8286-B344749550B5"><p>The BitGDI component
+provides support for higher-level geometric primitives and text. The BitGDI
+component is implemented in terms of Screen Driver operations. All BitGDI
+rendering operations are synchronous. </p> </li>
+<li id="GUID-B542796F-47AE-5B8A-976A-446315EC6550"><p>The Window Server multiplexes
+access to the screen and provides a BitGDI-like interface. </p> </li>
+<li id="GUID-81912D86-0CF6-5399-84FF-904E15BA8B50"><p>The Window Server provides
+Direct Screen Access (DSA) support for applications that require high frame
+rates (such as video and games) to bypass the Window Server and write to the
+frame buffer directly. However, some interaction with the Window Server is
+needed to prevent the application from drawing over other application's data. </p> </li>
+</ul>
+<p>In addition, the non-ScreenPlay architecture provides support for EGL,
+OpenGL and OpenVG. </p>
+<p>The following diagram shows the rendering stack in the non-ScreenPlay variant. </p>
+<fig id="GUID-4A245007-BE0A-5DD6-A3D5-CAD9A16E0540">
+<title>The rendering stack in the non-ScreenPlay variant</title>
+<image href="GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e184934_href.png" placement="inline"/>
+</fig>
+
+<p>Although DSA provides a solution for applications that require high frame
+rates, the non-ScreenPlay architecture has limitations when used on graphics
+accelerated hardware and non-uniform memory models. The architecture may require
+the copying of buffers between CPU and GPU memory as shown in the following
+diagram. ScreenPlay provides a solution that requires less copying of buffers
+in this type of use case. </p>
+<fig id="GUID-0EAF51D1-173E-52E2-8E28-C5FB7F6F9BD0">
+<title> Example non-uniform memory, non-ScreenPlay hardware model </title>
+<image href="GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e184946_href.png" placement="inline"/>
+</fig>
+</conbody><related-links>
+<link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay
+Architecture</linktext></link>
+<link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Graphics
+Hardware Acceleration</linktext></link>
+<link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
+Concepts</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F66AC845-58B8-4029-AE04-C283226B7C12.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,35 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F66AC845-58B8-4029-AE04-C283226B7C12" xml:lang="en"><title>Single
-tap</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In S60 5th Edition, double tap (focus and select) was supported for non-touch
-devices. The Symbian platform supports single tap, which activates an item
-on direct selection. That is, the UI is no longer focus driven. </p>
-<p>The following are the highlighting features of single tap
-in the Symbian platform:<ul>
-<li><p>Single click performs the core action without requiring double tap.
-If the core action cannot be defined, then the single tap provides the context-sensitive
-menu as Selection key press in hybrid devices.</p></li>
-<li><p>By default, no visible focus in touch UI. Focus can be evoked pressing
-Selection key or navigation keys in hybrid devices</p></li>
-<li><p>All item-specific options from the <b>Options</b> menu are hidden.
-Item-specific options will be available via Stylus popup menu opened with
-long tap, or in the next level in the UI hierarchy.</p></li>
-<li><p>Item-specific options are removed from the touch toolbar. If there
-are less than three actions left for the touch toolbar, the whole toolbar
-is removed.</p></li>
-<li><p>The landscape layout is optimized. Entire main pane area can be utilized
-for the application content, when touch toolbar is not required. Toolbars
-can still be utilized when the actions apply to the whole view, for example,
-in Message viewer and editor.</p></li>
-</ul></p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F66AC845-58B8-4029-AE04-C283226B7C12" xml:lang="en"><title>Single tap</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In S60 5th Edition, double tap (focus and select) was supported
+for touch devices. The Symbian platform supports single tap, which
+activates an item on direct selection. That is, the UI is no longer
+focus driven. </p>
+<p>The following are the highlighting features of single tap in the
+Symbian platform:<ul>
+<li><p>Single tap performs the core action without requiring double
+tap. If the core action cannot be defined, then the single tap provides
+the context-sensitive menu as Selection key press in hybrid devices.</p></li>
+<li><p>By default, no visible focus in touch UI. Focus can be evoked
+pressing Selection key or navigation keys in hybrid devices</p></li>
+<li><p>All <xref href="GUID-567718E7-0267-4641-A9E3-538D893362D2.dita">item-specific options</xref> from the <b>Options</b> menu are hidden.
+Item-specific options will be available via Stylus pop-up menu opened
+with long tap, or in the next level in the UI hierarchy.</p></li>
+<li><p><xref href="GUID-567718E7-0267-4641-A9E3-538D893362D2.dita">Item-specific
+options</xref> are removed from the touch toolbar. If there are less
+than three actions left for the touch toolbar, the whole toolbar is
+removed.</p></li>
+<li><p>The landscape layout is optimized. Entire main pane area can
+be utilized for the application content, when touch toolbar is not
+required. Toolbars can still be utilized when the actions apply to
+the whole view, for example, in Message viewer and editor.</p></li>
+</ul></p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F681C857-086F-527A-9946-A91560601658_d0e403679_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-F681C857-086F-527A-9946-A91560601658_d0e403841_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e324544_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F68FF4C2-F9DB-5935-9027-9BEC006D031F_d0e330701_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E" xml:lang="en"><title>Kernel
-side object containers</title><shortdesc>This document describes the use of object containers to maintain
-kernel objects.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Kernel objects such as mutexes, semaphores, threads, processes, timers
-are reference counting objects, i.e. they are instances of classes derived
-from <codeph>CObject</codeph>. The Kernel maintains all such objects in object
-containers, one container for each type; i.e. one for threads, one for processes,
-one for mutexes etc. as shown below.</p>
-<fig id="GUID-BF99B66C-8D6E-5EF2-9087-E6A8C8E3B066">
-<image href="GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e234301_href.png" placement="inline"/>
-</fig>
-<p>See also:</p>
-<ul>
-<li id="GUID-5B42BA8B-B983-50D0-87EA-916F3719FBAF"><p><xref href="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita">The
-object container</xref> </p> </li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F6903E31-DF4A-572F-BF2C-65CE618F016E" xml:lang="en"><title>Kernel
+side object containers</title><shortdesc>This document describes the use of object containers to maintain
+kernel objects.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Kernel objects such as mutexes, semaphores, threads, processes, timers
+are reference counting objects, i.e. they are instances of classes derived
+from <codeph>CObject</codeph>. The Kernel maintains all such objects in object
+containers, one container for each type; i.e. one for threads, one for processes,
+one for mutexes etc. as shown below.</p>
+<fig id="GUID-BF99B66C-8D6E-5EF2-9087-E6A8C8E3B066">
+<image href="GUID-C5C42C02-1C22-5537-B966-0F5F78E4D7BE_d0e230564_href.png" placement="inline"/>
+</fig>
+<p>See also:</p>
+<ul>
+<li id="GUID-5B42BA8B-B983-50D0-87EA-916F3719FBAF"><p><xref href="GUID-E16E286C-FB6A-5D3E-95D6-044C39DBA2B4.dita">The
+object container</xref> </p> </li>
+</ul>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF" xml:lang="en"><title> Capturing
-Video</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This tutorial describes how to capture video using the Ecam API. </p>
-<section id="GUID-01CB3845-42E0-45C6-A784-6A3991A81C83"><title>Purpose</title> <p>The
-purpose of this tutorial is to show you how to capture video using the Ecam
-API. </p> <p><b>Required
-Background</b> </p> <p>For background information, see the <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
-Camera Overview</xref>. </p> <p><b>Introduction</b> </p> <p>The video capture control allows the client to start, pause,
-resume and stop video capture. </p> </section>
-<section id="GUID-84B26023-5014-4689-B989-5F76A2CA9629"><title>Using Video
-Capture </title> <ul>
-<li id="GUID-55ABCB13-5C9B-5D2F-9D33-B8969B41BAE6"><p>Create a class pointer
-using the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-61883C60-E883-3D33-A5B2-484451310591"><apiname>CCamera::CCameraVideoCaptureControl::NewL()</apiname></xref> factory
-method. </p> <p> </p> </li>
-<li id="GUID-E92F4F3B-AC92-5B34-851D-B518E64AA620"><p>Use <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-F717B6C4-913A-3F28-9AD1-E7FBFB85427F"><apiname>CCamera::CCameraVideoCaptureControl::PrepareVideoCapture()</apiname></xref> to
-initialize the settings for video capture. </p> </li>
-<li id="GUID-A57E28A4-2CCD-5621-B2D5-9D286196869F"><p>Start video capture
-using <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-774897D4-271E-3D7D-AAA6-033D34A39D74"><apiname>CCamera::CCameraVideoCaptureControl::StartVideoCaptureL()</apiname></xref>. </p> </li>
-<li id="GUID-66610441-E054-5704-999A-097BCB23568D"><p>Use <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-5EB82FE6-4025-3F78-9DAD-6851086A46C6"><apiname>CCamera::CCameraVideoCaptureControl::PauseVideoCapture()</apiname></xref> call
-to pause the video capture. </p> </li>
-<li id="GUID-C426DA42-D8ED-5702-A13D-6786B0B45849"><p>Use <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-D9BECEAD-8695-3B8B-A537-9F7B96EF1A2A"><apiname>CCamera::CCameraVideoCaptureControl::ResumeVideoCaptureL()</apiname></xref> to
-resume the video capture. </p> </li>
-<li id="GUID-BDE3DD51-7778-5021-BC72-26644B5BE651"><p>Use <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-017E7D68-9971-3966-B863-95471AC8636F"><apiname>CCamera::CCameraVideoCaptureControl::StopVideoCapture()</apiname></xref> to
-stop video capture. </p> </li>
-<li id="GUID-BFCA4131-01D8-539F-A0E6-5C363BFC2F62"><p>Release the resource
-that was allocated during <xref href="GUID-E8B6B8ED-B023-367A-B760-06D4000AAB8D.dita"><apiname>PrepareVideoCapture()</apiname></xref> using the <xref href="GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460.dita#GUID-D74635DE-C5D8-3A9A-ABDD-8324D8EFF460/GUID-6379550B-578F-3A91-8328-AD7429CF2AA4"><apiname>CCamera::CCameraVideoCaptureControl::ReleaseVideoResource()</apiname></xref> method. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-9DE1CE5D-F148-5A7E-908A-DDD57A32C629.dita"><linktext>Camera API</linktext>
-</link>
-<link href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita"><linktext>Accessing
-and Power Control of  Camera</linktext></link>
-<link href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita"><linktext>Camera Preset
-Support</linktext></link>
-<link href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita"><linktext>Capturing
-Image</linktext></link>
-</related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,204 +1,204 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F"><title>How to Get Location Information</title><shortdesc>This document demonstrates how a client application uses the Location Acquisition API to get a position. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This tutorial explains how to get location information using the Location Acquisition API. </p> </section> <section><title>Required background</title> <p><xref href="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita">Location Acquisition API Overview</xref> describes the main client/server classes of the API. </p> <p><xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position Data and Info Classes</xref> describes the classes that hold location information. </p> </section> <section><title>Getting location information</title> <p>This section describes how to get location information using the Location Acquisition API. </p> <p><b>Introduction</b> </p> <p>Client applications use the <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref> and <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> classes to get position updates. <codeph>RPositionServer</codeph> is used by client applications to manage a session with the Location Server and to get Positioning Module information. <codeph>RPositioner</codeph> is used by client applications to manage a subsession with the Location Server and to get position updates. </p> <p><b>GPS positioning modes</b> </p> <p>The Global Positioning System (GPS) is a technology that is often included in devices that support LBS. </p> <p>For each location request from a client, the LBS subsystem can operate in one of several different GPS positioning modes. The Location Acquisition API hides the details of which GPS positioning mode is in use from client applications. A client makes the same sequence of calls to the API to get a position update whichever positioning mode is used. Note that only some of these positioning modes may be available to a client application at runtime. </p> <p>Each GPS positioning mode is a different way of getting a position fix: </p> <ul><li id="GUID-2BDDAACC-EB8D-5191-A42E-0BFA0B26C7DC"><p>Autonomous </p> <p>LBS uses a GPS Positioning Module to calculate position fixes without assistance data from the network. This mode typically takes the longest time to obtain a location fix compared to the other modes. </p> </li> <li id="GUID-B2E24A6F-F46A-529E-A8F5-FC52F7CD8F0D"><p>Terminal Based Mode </p> <p>LBS uses an A-GPS Positioning Module to calculate position fixes using assistance data from the network. Assistance data specifies the GPS satellites that are above the horizon as seen from the mobile device's current location. Assistance data is used by an A-GPS Positioning Module to reduce the time necessary to obtain a position fix. </p> <p>The network can also supply a <i>reference position</i> to the LBS subsystem as part of the sequence of events. This position is calculated in the network using cell-based techniques and may be less accurate than that obtained from GPS. If a reference position is available, it may be returned to the client before a GPS position. </p> <p>See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API Runtime Behaviour</xref> for more information about the position updates that can be returned by LBS. </p> </li> <li id="GUID-018CA9E1-F191-5CC9-8DCD-8FE08CAABD28"><p>Terminal Assisted Mode </p> <p>LBS uses an A-GPS Positioning Module to obtain GPS measurements (using assistance data from the network). GPS measurements are the raw data used to calculate a GPS fix. Measurements are sent to the network and a position fix is calculated by a remote server. The remotely calculated position fix is returned to the mobile device and is known as the <i>final network position</i>. The LBS subsystem returns this position to the client. </p> </li> <li id="GUID-9B1678F5-A53B-5245-9EE4-5809461E2EBB"><p>Simultaneous Terminal Based Mode and Terminal Assisted Mode. </p> <p>LBS passes GPS measurements to the network (as in Terminal Assisted Mode), but also attempts to use those measurements to calculate a GPS position fix (as in Terminal Based Mode). The position returned to the client may be either a GPS position (calculated in the mobile device) or a final network position (calculated using the measurements by a remote server in the network). The position that is calculated first (the GPS position or the final network position) is generally returned to the client. The final network position may also be returned to the client after the return of the GPS position. </p> </li> </ul> <p>Some devices also support a Cell-based Mode in which LBS obtains a position fix from the network without using GPS. This position fix is sometimes less accurate than that obtained using GPS. </p> <p>A client application cannot directly choose the GPS positioning mode that is used for its location request. A handset manufacturer may provide an LBS settings application where the GPS mode can be selected by an end user. However for modes that involve the network (Terminal Based Mode, Terminal Assisted Mode and Cell-based Mode) it is possible for a network operator to override the GPS mode as part of the location request. If a client wants to know precisely how a position fix was calculated, this information is available in the returned position info object (as described in more detail later in this document). </p> <p><b>Example sequence</b> </p> <p>Figure 1 shows a simplified sequence for a client requesting a position update from LBS. The sequence shows simplified behaviour for Terminal Based Mode. The <i>A-GPS Module</i> is a Positioning Module that uses Assisted GPS to calculate a position. The <i>Network Protocol Module</i> is a Positioning Module that obtains GPS assistance data and reference positions (often approximate positions) from the network. Note that Terminal Based Mode may not be available on all mobile devices. This depends on the Positioning Modules that have been installed by the mobile device creator. </p> <fig id="GUID-FD5FEC83-B76D-5D45-AF40-DF5C2F17D404"><title>
-                Figure 1. Simplified Terminal Based Mode Sequence 
-             </title> <image href="GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e271226_href.png" placement="inline"/></fig> <p><b>Example code and description</b> </p> <p>The following code shows a simple example of how a client application can get a single position update. The numbers in the code comments refer to sections that follow the code example. </p> <codeblock id="GUID-7B350944-5178-586B-B381-87DC5104DD1F" xml:space="preserve">#include &lt;lbs.h&gt;
-#include &lt;lbserrors.h&gt;
-
-...
-
-RPositionServer server;
-RPositioner positioner;
-
-// 1. Create a session with the Location Server
-User::LeaveIfError(server.Connect());
-CleanupClosePushL(server);
-
-// 2. Create a subsession with the Location Server using default positioning module
-User::LeaveIfError(positioner.Open(server));
-CleanupClosePushL(positioner);
-
-// 3. Set the requester information - in this example define a requester stack... 
-
-_LIT(KCntPhone, "+358501234567");
-_LIT(KSrvName, "MyService");
-RRequestorStack stack;
-CRequestor* contact = CRequestor::NewLC(CRequestor::ERequestorContact, CRequestor::EFormatTelephone, KCntPhone);
-stack.Append(contact);
-CRequestor* service = CRequestor::NewLC(CRequestor::ERequestorService,    CRequestor::EFormatApplication, KSrvName);
-stack.Append(service);
-User::LeaveIfError(positioner.SetRequestor(stack));
-
-TPositionInfo posInfo;
-TPosition pos;
-TRequestStatus status;
-
-/* 4. To set update options, call RPositioner::SetUpdateOptions(). 
-      See the description in section 4 below */
-
-/* 5. Request location information
-      Could also call positioner.GetLastKnownPosition(posInfo, status) 
-      to get cached location information */
-positioner.NotifyPositionUpdate(posInfo, status);
-User::WaitForRequest(status);
-
-// 6. Receive location information
-if (status != KErrNone)
- {
- // Handle possible client/server errors
- ...
- }
-
-// Get the position data object from the wrapper info object
-posInfo.GetPosition(pos);
-
-// Use the position data
-...
-
-// Reissue the location request if necessary by calling NotifyPositionUpdate() again
-
-/* 7. To cancel or complete a location request a client
- calls RPositioner::CancelRequest() or RPositioner::CompleteRequest() */
-
-// 8. Cleanup
-stack.Reset();
-CleanupStack::PopAndDestroy(service);
-CleanupStack::PopAndDestroy(contact);
-CleanupStack::PopAndDestroy(&amp;positioner);
-CleanupStack::PopAndDestroy(&amp;server);
-</codeblock> <p>The following describes the steps to get location information as shown in the above example: </p> <p><b>1. Create a session with the Location Server </b> </p> <p>To create a session with the Location Server, a client application: </p> <ul><li id="GUID-2AD36917-A3B1-52D1-BBBB-C9A48592E5AA"><p>Creates an instance of <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref>  </p> </li> <li id="GUID-5771DD5B-C660-5408-8F34-C94D2E8A3419"><p>Calls <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-23285930-A1D5-3A97-AED4-E979BFA96FDD"><apiname>RPositionServer::Connect()</apiname></xref>  </p> </li> </ul> <p>Standard client-server error codes are returned by calls to open the session. A panic occurs if the client application has already created a session with the Location Server. Error and panic codes specific to LBS are defined in <filepath>LbsErrors.h</filepath>. </p> <p><b>2. Create a subsession with the Location Server </b> </p> <p>Location information requests are issued on a subsession. </p> <p>To create a subsession, an application calls one of three overloaded <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-AF3D9B5F-8025-3AFF-A101-82025520EBD6"><apiname>RPositioner::Open()</apiname></xref> member functions: </p> <ul><li id="GUID-D6A2BD94-DFE6-5B2D-9CE4-E5C565323F6E"><p> <codeph>RPositioner::Open(RPositionServer&amp; aPosServer)</codeph> uses the Default Positioning Module to get location information. The client application does not specify any position quality criteria (which specify the required position accuracy) and therefore LBS uses default position quality criteria (horizontal accuracy = 50m, vertical accuracy = 1000m, request timeout = 30 seconds). </p> </li> <li id="GUID-B6357BFF-A3DF-5036-90BF-ED2243C752C0"><p> <codeph>RPositioner::Open(RPositionServer&amp; aPosServer,
-                  TPositionModuleId aModuleId)</codeph> allows a specific Positioning Module to be specified by the client application. LBS uses position quality criteria associated with the specified Positioning Module. No quality criteria are specified and so LBS uses the capabilities of the Positioning Module as the default criteria. </p> <p>See <xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning Modules</xref> for information about Positioning Module position quality and <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref> for more information about how to get a module ID. </p> </li> </ul> <p>The LBS subsystem does not compare the vertical accuracy of a calculated position with the vertical accuracy specified by a client application (specified by position quality criteria, by a quality profile or by a Positioning Module). Only the horizontal accuracy of a calculated position is used to decide if it is accurate enough to be returned to a client application. </p> <p><b>3. Set client requester details </b> </p> <p>A client application can specify the client requesters by calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref> before calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref>. </p> <p>This is an optional step. Calling <codeph>SetRequestorL()</codeph> has no effect in this version of the Symbian platform. Calling <codeph>SetRequestorL()</codeph> is required in some devices based on earlier versions of Symbian. To ensure an LBS application runs on devices based on earlier versions of Symbian, it is recommended that it calls <codeph>SetRequestorL()</codeph>. </p> <p>See <xref href="GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita">Privacy Requester Classes</xref> for more information. </p> <p><b>4. Set update options </b> </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-7A8BC23A-6FF9-3AAF-99BF-A6B074FDEA7B"><apiname>RPositioner::SetUpdateOptions()</apiname></xref> to set the update options. Calling this method only affects future calls to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> and <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> and does not affect any outstanding requests. </p> <p>A <xref href="GUID-E60595B9-B6E2-38E1-BE1E-A82113C7EC94.dita"><apiname>TPositionUpdateOptions</apiname></xref> parameter specifies the update options and is passed in <codeph>RPositioner::SetUpdateOptions()</codeph>. The properties of <codeph>TPositionUpdateOptions</codeph> are set either on its construction or via setter methods. The following properties can be defined: </p> <ul><li id="GUID-239CCE63-0455-525A-9CC7-8FCE0530B7CB"><p>The time interval between position updates </p> <p> <codeph>TPositionUpdateOptions::SetUpdateInterval(TTimeIntervalMicroSeconds
-                  aInterval)</codeph> sets the time interval between position updates. </p> <p>Setting a non-zero value indicates that the client requires periodic updates (this is also known as 'tracking'). LBS attempts to send position updates to the client application with this interval between the updates. Note that setting <codeph>aInterval</codeph> to <codeph>0</codeph> (or not setting it) indicates that the client is not tracking. </p> <p> <i>Note that when a client application is tracking, LBS does not return reference positions as periodic updates. See the section on Tracking later in this document for more information on tracking behaviour.</i>  </p> </li> <li id="GUID-3BDBCE8C-53D1-5DE7-B81A-86145460C1BA"><p>A position update timeout </p> <p> <codeph>TPositionUpdateOptions::SetUpdateTimeOut(TTimeIntervalMicroSeconds
-                  aTimeOut)</codeph> sets a timeout for the location request. It specifies how long the client application is prepared to wait to obtain a position update. If the timeout expires <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> completes and the client's <codeph>RunL()</codeph> method is called. </p> <p>After a timeout the value set for the client's <codeph>TRequestStatus</codeph> parameter depends on the configuration of the LBS subsystem and may be either <codeph>KErrTimeOut</codeph> or <codeph>KPositionQualityLoss</codeph>. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> <p> <i>Note that calling SetUpdateTimeOut() with a value of 0 (or not setting it) indicates that LBS should not timeout the location request from a client. </i>  </p> </li> <li id="GUID-C0405589-A7DC-58E4-A39A-145943152B50"><p>The maximum age of a position update </p> <p> <codeph>TPositionUpdateOptions::SetMaxUpdateAge(TTimeIntervalMicroSeconds
-                  aMaxAge)</codeph> specifies the maximum age of the position data returned by <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref>. Setting this value allows the Location Server to use cached location information in some cases. The default value of 0 indicates that new position data is required. </p> </li> <li id="GUID-EBCB9F00-1331-5627-95B6-4B1E851776CF"><p>Acceptance of partial updates </p> <p>A partial update is a position update that contains only partial position data. Such a position is called an <i>incomplete position</i>. An example of an incomplete position is one that contains data about the satellites used to obtain a GPS fix but no latitude or longitude data.<codeph/> LBS defines an incomplete position to be one where either <codeph>TPosition::Latitude()</codeph> or <codeph>TPosition::Longitude()</codeph> is <codeph>NaN</codeph> (Not a Number). </p> <p> <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(TBool
-                  aPartial)</codeph> allows an application to choose to accept partial updates. If a partial update is returned an application's <codeph>TRequestStatus</codeph> parameter is set to <codeph>KPositionPartialUpdate</codeph> when <codeph>NotifyPositionUpdate()</codeph> completes. </p> <p>If partial updates are not set the default behaviour is for <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> to complete only when the Positioning Module used for the location request has obtained as much information as possible. Note however that this behaviour is configurable by a Symbian device creator (see <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information). </p> </li> </ul> <p><b>Important note on setting update options </b> </p> <p>The default constructor of <xref href="GUID-E60595B9-B6E2-38E1-BE1E-A82113C7EC94.dita"><apiname>TPositionUpdateOptions</apiname></xref> sets all update options to zero by default and is the equivalent of calling the following: </p> <ul><li id="GUID-FA830ED1-156A-5EE9-B27F-7C4AD064A061"><p> <codeph>TPositionUpdateOptions::SetUpdateInterval(0)</codeph> meaning that tracking is off </p> </li> <li id="GUID-0AF71B28-0EE0-549B-BE23-A82A85A3CC1E"><p> <codeph>TPositionUpdateOptions::SetUpdateTimeout(0)</codeph> meaning that LBS should not timeout the client's request </p> </li> <li id="GUID-A66326A6-8350-5B0A-BA67-1E67C8416FEC"><p> <codeph>TPositionUpdateOptions::SetMaxUpdateAge(0)</codeph> meaning that new position data is required </p> </li> <li id="GUID-8FFDD522-7CE8-5627-A630-100562B6AC61"><p> <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(EFalse)</codeph> meaning the partial updates are not returned </p> </li> </ul> <p>When setting update options, a client should beware of causing unexpected side effects. For example, if a client wants to accept partial updates, it might do the following: </p> <ul><li id="GUID-2C3A765E-9000-55D0-AF80-959E30FC6BCF"><p>Create a new <codeph>TPositionUpdateOptions</codeph> options object </p> </li> <li id="GUID-412495C8-DD14-5F18-B49A-4AB577F7ADFA"><p>Call <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(ETrue)</codeph>  </p> </li> <li id="GUID-0F75DB2C-A3AE-50DD-AE5F-A9C0767E92EF"><p>Call <codeph>RPositioner::SetUpdateOptions()</codeph> passing the options object as a parameter </p> </li> </ul> <p>However, this process has the side-effect of setting all the other update options to their default values as described above. In particular the client request will now not timeout which is unlikely to be the desired behaviour. To avoid this, a client should usually modify the current update options as follows: </p> <ul><li id="GUID-95B83378-4262-5861-A17A-1813DA6FC339"><p>Get the current update options by calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-69E1F34F-FEF9-3E0C-88B6-DE0458E005A5"><apiname>RPositioner::GetUpdateOptions()</apiname></xref>  </p> </li> <li id="GUID-7C5DE68E-D192-551F-8F30-F4DC35E9D736"><p>Call the appropriate <codeph>TPositionUpdateOptions::SetXXX()</codeph> methods for the options to be changed </p> </li> <li id="GUID-E889905E-5AE5-53D0-BA99-8F430EAC3177"><p>Call <codeph>RPositioner::SetUpdateOptions()</codeph> passing the modified options object as a parameter </p> </li> </ul> <p><b>Examples </b> </p> <p>The following code shows a simple example of how to set update options. Note that all the options are changed by the client. </p> <codeblock id="GUID-A6C75044-19AF-5A77-BB17-18F4B8AA32EE" xml:space="preserve">...
-
-TPositionUpdateOptions options;
-
-// Frequency of updates in microseconds
-const TTimeIntervalMicroSeconds KUpdateInterval(2000000);
-
-// How long the application is willing to wait before timing out the request
-const TTimeIntervalMicroSeconds KTimeOut(4000000);
-
-// The maximum acceptable age of the information in an update
-const TTimeIntervalMicroSeconds KMaxUpdateAge(1000000);
-
-options.SetUpdateInterval(KUpdateInterval);
-options.SetUpdateTimeOut(KTimeOut);
-options.SetMaxUpdateAge(KMaxUpdateAge);
-options.SetAcceptPartialUpdates(EFalse);
-
-User::LeaveIfError(positioner.SetUpdateOptions(options));
-
-/* Now when the application requests location information
-it will be provided with these options */ 
-
-positioner.NotifyPositionUpdate(posInfo, status);
-
-...
-
-</codeblock> <p>The following code example shows an example of how to change one update option (to accept partial updates). </p> <codeblock id="GUID-6AEAAEBA-0841-502C-A6AF-11E9A5B5BD88" xml:space="preserve">...
-
-TPositionUpdateOptions options;
-
-User::LeaveIfError(positioner.GetUpdateOptions(options));
-options.SetAcceptPartialUpdates(ETrue);
-User::LeaveIfError(positioner.SetUpdateOptions(options));
-
-// The other update options are unchanged
-
-positioner.NotifyPositionUpdate(posInfo, status);
-
-...
-
-</codeblock> <p> <b>Notes</b>  </p> <p>When a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> or <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> completes, it is necessary to re-issue the request by calling one of these methods again to obtain further updates even if <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-7A8BC23A-6FF9-3AAF-99BF-A6B074FDEA7B"><apiname>RPositioner::SetUpdateOptions()</apiname></xref> has been called. Setting update options allows a client to specify when the next position update is required, but does not cause periodic requests to the Location Server to be made. </p> <p>A client application can only have one outstanding request for location information per <codeph>RPositioner</codeph> subsession. An attempt to make a second request for location information while one is still outstanding causes a panic to occur. An application must cancel an outstanding request before it makes another request. This process is described in step 7. </p> <p><b>5. Request the location information </b> </p> <p>An application can call one the following methods to obtain position data: </p> <ul><li id="GUID-8026ACFD-3519-5917-B64C-6BB5349E0793"><p> <i>RPositioner::NotifyPositionUpdate()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> to request a position update. The LBS subsystem can either request that a Positioning Module obtains a new position and returns it to the client or simply returns an existing position calculated at some earlier time. The precise action taken by LBS depends on the quality of position required by the client because it is possible that a position obtained some time ago may meet the client application's position quality requirements. </p> <p> <codeph>RPositioner::NotifyPositionUpdate()</codeph> is a client-server asynchronous call. The client application can pass any position info class that derives from <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita"><apiname>TPositionInfoBase</apiname></xref>. The standard position info class is <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> which is supported by all Positioning Modules. An application can get extended location information (if there is a Positioning Module that can supply it) by passing one of the specialised position info classes such as <xref href="GUID-E438D9D8-8DC2-39E3-B5D2-9EBD1D2EED82.dita"><apiname>TCourseInfo</apiname></xref> or <xref href="GUID-54AE0674-C49D-3329-8B77-3A58EFFC03D7.dita"><apiname>TPositionSatelliteInfo</apiname></xref> instead of <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref>. </p> <p>See <xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position data and info classes</xref> for more information about position data and wrapper info classes. </p> </li> <li id="GUID-8C8CD6DD-5ED1-5F73-9FCD-611579838CD0"><p> <i>RPositioner::GetLastKnownPosition()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> to request the device's last known position. </p> <p> <codeph>RPositioner::GetLastKnownPosition()</codeph> is a client-server asynchronous call. Calling this method does not instigate a new position fix even if the LBS subsystem does not have a last known position. It is therefore possible that this method will fail to return a position if one was not previously calculated. Client applications must check for this possibility by checking the values of <codeph>TCoordinate::Latitude()</codeph> and <codeph>TCoordinate::Longitude()</codeph> of the <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object inside of the <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> parameter. If latitude and longitude data are not available they are set to <codeph>NaN</codeph> (Not a Number). An application may also need to check the timestamp of the information to ensure it still meets its needs as it is possible that the last position update was obtained some time ago. </p> <p>If the LBS subsystem has a position from a previous request a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> is more efficient in terms of request response time and device power consumption. It may also be cheaper for the mobile device owner who may be charged to obtain a new position. </p> </li> <li id="GUID-462ACD7E-9E6E-5366-8538-4EF5416CB2E7"><p> <i>RPositioner::GetLastKnownPositionArea()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref> to request the last known position that most closely matches the device's current location. The device's current location is estimated from the network cell ID received from the network. </p> <p> <codeph>RPositioner::GetLastKnownPositionArea()</codeph> is a client-server asynchronous call. The client application can request the LBS subsystem to provide either basic or the extended area information. The exact signature of the method is as follows: </p> <p> <codeph>RPositioner::GetLastKnownPositionArea(TPositionInfoBase&amp;
-                  aPosInfo, TPositionAreaInfoBase&amp; aAreaInfo, TRequestStatus&amp; aStatus)
-                  const;</codeph>  </p> <p>A client passes in <codeph>aPosInfo</codeph>, <codeph>aAreaInfo</codeph> and <codeph>aStatus</codeph> parameters. </p> <ul><li id="GUID-44BEA85B-1CFF-5380-B9FE-8659029CD52D"><p>On completion, <codeph>aPosInfo</codeph> contains the last known position that is the best match with information received from the network. </p> </li> <li id="GUID-8A708090-5281-5BC7-8EFE-A935317F9531"><p> <codeph>aAreaInfo</codeph> contains an estimate of the accuracy of the last known position. <codeph>TPositionAreaInfoBase</codeph> is the base class for two position area data classes. A client can pass a <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita"><apiname>TPositionAreaInfo</apiname></xref> object to get basic position accuracy information, or it can pass a <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> object to get extra information about how the accuracy estimate was calculated. </p> </li> </ul> <p>If successful, <codeph>GetLastKnownPositionArea()</codeph> returns the best matching last known position in the <codeph>aPosInfo</codeph> parameter, an estimate of the position accuracy in the <codeph>aAreaInfo</codeph> parameter and a result code of <codeph>KErrNone</codeph>. </p> <p>See <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref> for more information about using this method and the returned error codes. </p> <p>See <xref href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita">Position Area Data Classes</xref> for information about the classes that used to obtain the position accuracy estimate. </p> <p>The following code fragment shows how to use the method and check the accuracy of the returned position: </p> <codeblock id="GUID-2AC03D72-4105-5752-A294-08D64CAFB3A5" xml:space="preserve">
-// Create an RPositionServer, RPositioner, TRequestStatus as normal and open a session (see above)
-
-...
-
-// Want to know basic position accuracy, so use TPositionAreaInfo
-
-TRequestStatus status;
-TPositionInfo posInfo;
-TPositionAreaInfo areaInfo;
-
-// Get the last known location and an estimate of its accuracy
-
-positioner.GetLastKnownLocationArea(posInfo, areaInfo, status);
-User::WaitForRequest(status);
-
-// Check the return status 
-
-if ( status == KErrNone )
- {
-
- TPosition pos;
- posInfo.GetPosition(pos);
- TReal64 latitude = pos.Latitude();
- TReal64 longitude = pos.Longitude();
- TTime time = pos.Time();
-
- /*
- Check the posInfo object to see if it contains valid position data before trying to use it.
- Check position latitude, longitude and (if necessary) altitude for Math::IsNaN().
- Also a good idea to check the timestamp against current time, because this position could be old.
- Details omitted...
- */
-
- // Get the accuracy of the position
- TPositionAreaInfo::TArea area = areaInfo.Area();
- 
- // Does this position meet your accuracy requirements?
-
- if (area == TPositionAreaInfo::EAreaCity)
-  {
-  
-  /* 
-  In this example, want city level position accuracy.
-  Is this position accurate enough for your application?
-  
-  If not you could also check for EAreaDistrict and EAreaStreet.
-  TPositionAreaInfo::_TArea defines the values you can check for.
-  
-  If this position is accurate enough, do something useful with your returned position data...
-  
-  If it is not accurate enough, you may need to get a new full position fix
-  Call positioner.NotifyPositionUpdate() to do this.
-  */
-  
-  }
- 
- }
-
-else
-
-    {
-
- /*
- Function returned something other than KErrNone.
- It could be KErrNotFound which indicates that no stored position was found.
- Or it could be a system error code if something went wrong - you need to check it.
- */
-
- }
-</codeblock> </li> </ul> <p>Client applications must always check the value of the <codeph>TRequestStatus</codeph> parameter as this indicates the success or failure of the location request and may indicate that specified location accuracy criteria could not be satisfied at the time of the request. </p> <p>The value of <codeph>TRequestStatus</codeph> that is set when a position update occurs or times out depends on the configuration of the LBS subsystem. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> <p><b>6. Receive and use the location information </b> </p> <p>When the Location Server obtains a position, the client's <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> variable is updated. In the example, the <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> object that was passed to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> holds the new position data in a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object. </p> <p> <b>Important notes</b>  </p> <p>An application should test what kind of position is returned by <codeph>NotifyPositionUpdate()</codeph>. <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita#GUID-73D6F438-C270-33B9-974B-D4D1583E1738/GUID-AC9654DD-2FC8-3B27-8743-83D7B8C58B79"><apiname>TPositionInfoBase::PositionMode()</apiname></xref> returns a bitmask value of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-AE121191-0B6A-39D8-9379-386EFF58CF0A"><apiname>TPositionModuleInfo::TTechnologyType</apiname></xref> that is composed of values of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-03AF8C51-1CAF-3F4C-BED1-17844FAE8423"><apiname>TPositionModuleInfo::_TTechnologyType</apiname></xref>. Valid combinations of this value are as follows: </p> <table id="GUID-8D2D95EF-9749-5D72-9F1D-FB878961DE84"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>TPositionInfoBase::PositionMode()</entry> <entry>Meaning</entry> </row> </thead> <tbody><row><entry><p>ETechnologyNetwork </p> </entry> <entry><p>A reference position obtained from the network </p> </entry> </row> <row><entry><p>ETechnologyTerminal | ETechnologyAssisted </p> </entry> <entry><p>A position calculated using GPS with assistance data from the network </p> </entry> </row> <row><entry><p>ETechnologyNetwork | ETechnologyAssisted </p> </entry> <entry><p>A position calculated using GPS measurements by a remote server in the network </p> </entry> </row> <row><entry><p>ETechnologyTerminal </p> </entry> <entry><p>A position calculated using GPS without assistance data (autonomous mode) </p> </entry> </row> </tbody> </tgroup> </table> <p>A reference position <i>may</i> be returned to a client application by the Location Server before a more accurate position fix is available. Whether a reference position is made available to the Location Server depends on the implementation of the Positioning Modules by the Symbian device creator or handset manufacturer. </p> <p>If a reference position is returned, the behaviour is as follows: </p> <p> <b>For the first call to RPositioner::NotifyPositionUpdate()</b>  </p> <p> <codeph>NotifyPositionUpdate()</codeph> completes and a <i>reference position</i> is returned to the client. The client application can check for return of a reference position by checking for <codeph>TPositionInfoBase()::PositionMode() ==
-             TPositionModuleInfo::ETechnologyNetwork</codeph>. If a reference position is returned it may not satisfy the application's position accuracy quality criteria and the application will need to make another <codeph>NotifyPositionUpdate()</codeph> request. </p> <p> <b>For subsequent calls to RPositioner::NotifyPositionUpdate()</b> (made by the same client subsession) </p> <p> <codeph>NotifyPositionUpdate()</codeph> completes and a position is returned to the client. This position may be either: </p> <ul><li id="GUID-F707A545-244D-5110-80CF-CBE9FFECC05C"><p>Calculated in the mobile device by GPS with assistance data (for Terminal Based Mode) </p> <p> <codeph>TPositionInfo::PositionMode() ==
-                  TPositionInfoBase::ETechnologyTerminal |
-                  TPositionInfoBase::ETechnologyAssisted</codeph>  </p> </li> <li id="GUID-289DE4DD-469D-58F0-8534-0B4353CDEC24"><p>Returned from the network, a position known as the <i>final network position</i> (for Terminal Assisted Mode) </p> <p>The value of <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita#GUID-D5B2E933-209D-3871-8E27-CC5C8855C745/GUID-A01CF36E-6EF9-395A-94DC-AB94478C66BE"><apiname>TPositionInfo::PositionMode()</apiname></xref> for a final network position depends on the configuration of the LBS subsystem: </p> <p>Normal behaviour is to return <codeph>TPositionInfo::PositionMode()
-                  == TPositionModuleInfo::ETechnologyNetwork |
-                  TPositionModuleInfo::ETechnologyAssisted</codeph>, but it is possible for LBS to return <codeph>TPositionModuleInfo::ETechnologyTerminal |
-                  TPositionModuleInfo::ETechnologyAssisted</codeph> if it is configured to do so. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> </li> </ul> <p>Note that <codeph>NotifyPositionUpdate()</codeph> may complete early if a GPS positioning module signals to LBS that it will be unable to return a location fix with the required quality criteria. In this case the Location Server returns the best location fix it can obtain to the client. The value of the <codeph>TRequestStatus</codeph> parameter of the client is set to either <codeph>KPositionQualityLoss</codeph> or <codeph>KErrNone</codeph> depending on the configuration of <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref>. </p> <p><b>Tracking </b> </p> <p>A position update time line for tracking is shown in figure 2. Note that the exact behaviour of tracking on systems may differ from that shown in Figure 2. </p> <p>A client application has previously called <codeph>TPositionUpdateOptions::SetUpdateInterval(T)</codeph> and <codeph>RPositioner::SetUpdateOptions()</codeph> (not shown in figure 2). Partial updates are not set. LBS is also configured to return reference positions and accurate positions only (see <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information about this behaviour). The important points are: </p> <ul><li id="GUID-644F7437-0207-5B16-B38C-C695DC5BB83B"><p>A client application makes its first call to <codeph>RPositioner::NotifyPositionUpdate()</codeph> (First NPUD in figure 2). </p> </li> <li id="GUID-E9F2BBA1-8F8A-516C-BB01-640535090820"><p>After a time t, the client's <codeph>RunL()</codeph> method is called and it receives its first position update (the reference position update Ref Pos in figure 2). This first position update is delivered to the client by LBS as soon as possible (t is as short as possible and is not equal to T). The client then makes its next call to <codeph>NotifyPositionUpdate()</codeph> (the next NPUD in figure 2). When tracking, a client application should make its next call to <codeph>RPositioner::NotifyPositionUpdate()</codeph> as soon as possible in its <codeph>RunL()</codeph> method. The time between the client's <codeph>RunL()</codeph> and the client's next NPUD is exaggerated for clarity in Figure 2. </p> </li> <li id="GUID-8D670561-5F51-5836-AA24-3B0CC0417BB7"><p>At a time t + T (where T is the update interval) the client's <codeph>RunL()</codeph> method is called and it receives the next position update (GPS Pos in figure 2). The client makes its next call to <codeph>NotifyPositionUpdate()</codeph>. </p> </li> <li id="GUID-E93AE6CA-DF93-56AD-B68B-A60A1B96F128"><p>The next position update is expected at time t + 2T, but in the case shown in figure 2 this is not possible (the mobile device may have moved into an area where the GPS signal is weak). In general if it is not possible to obtain an accurate GPS fix by time t + nT, but the fix is obtained a short time later, the next position update is delivered as soon as possible after time t + nT (after t + 2T in figure 2). </p> </li> <li id="GUID-9E52BD1C-7BD4-55F8-BF75-98669883C0CF"><p>The client makes its next call to <codeph>NotifyPositionUpdate()</codeph> and at time t + (n+1)T the next position update is delivered (at t + 3T in figure 2). </p> <p> <i>The important point to note is that LBS attempts to deliver position updates at regular times t + nT but the time interval between position updates may temporarily be greater than or less than T.</i>  </p> </li> <li id="GUID-A7F59CB4-BFC7-5F88-8AF2-C8D6C24122D9"><p>Note that if partial updates were enabled, an incomplete position would be delivered at time t + 2T if it were available. Also note that an inaccurate position would be delivered if one was available at that time and LBS was configured to return it. </p> <p> </p> </li> </ul> <fig id="GUID-916FB3EF-08C6-5A0C-8D72-881FEEC7C161"><title>
-                Figure 2. Position updates when tracking 
-             </title> <image href="GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e272191_href.png" placement="inline"/></fig> <p><b>Error codes </b> </p> <p>The value of a client's <codeph>TRequestStatus</codeph> can be set to an LBS error code (defined in <filepath>lbserrors.h</filepath>) <i>or an error code defined in a licensee's Positioning Module</i>. An error causes <codeph>NotifyPositionUpdate()</codeph> to complete. An application should always check the value of <codeph>TRequestStatus</codeph> when its <codeph>RunL()</codeph> method is called. </p> <p><b>7. Cancel or complete a location information request </b> </p> <p>To cancel a location request a client application calls <xref href="GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC.dita#GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC/GUID-168130E7-459D-3108-9418-94773D802EAE"><apiname>RPositionerSubSessionBase::CancelRequest()</apiname></xref>, passing a <xref href="GUID-355E1EEF-A312-3BB8-9655-9DD6805A3CDD.dita"><apiname>EPositionerNotifyPositionUpdate</apiname></xref> parameter. The client's <codeph>TRequestStatus</codeph> is set to <codeph>KErrCancel</codeph> if the request was successfully cancelled and no position update is returned. </p> <p>To complete a location request early, a client application calls <xref href="GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC.dita#GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC/GUID-88F0FA62-BC72-3BC5-B42E-FA0A26F3E405"><apiname>RPositionerSubSessionBase::CompleteRequest()</apiname></xref> passing a <xref href="GUID-355E1EEF-A312-3BB8-9655-9DD6805A3CDD.dita"><apiname>EPositionerNotifyPositionUpdate</apiname></xref> parameter. Calling this method does not cancel the position update, but asks the Location Server to return any available position data. The returned position update may be different from that which would have been returned if the request had been allowed to complete normally. If the request is completed early, the client's <codeph>TRequestStatus</codeph> is set to <codeph>KPositionEarlyComplete</codeph>. </p> <p><b>8. Close the subsession and session </b> </p> <p> <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-DE09BADB-6D90-3995-A893-F949F9C37A2B"><apiname>RPositioner::Close()</apiname></xref> closes the subsession. <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-3D081F5B-F8D6-3168-951F-EDBC2364EB76"><apiname>RPositionServer::Close()</apiname></xref> closes the server session. In the code example the cleanup stack function is used. Any privacy requester objects created by a client must also be cleaned up. </p> </section> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F6B5F777-D12F-5913-AECE-047DF8C72F1F"><title>How to Get Location Information</title><shortdesc>This document demonstrates how a client application uses the Location Acquisition API to get a position. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>This tutorial explains how to get location information using the Location Acquisition API. </p> </section> <section><title>Required background</title> <p><xref href="GUID-65E9C040-AAB6-5C1E-9724-8828DADFC741.dita">Location Acquisition API Overview</xref> describes the main client/server classes of the API. </p> <p><xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position Data and Info Classes</xref> describes the classes that hold location information. </p> </section> <section><title>Getting location information</title> <p>This section describes how to get location information using the Location Acquisition API. </p> <p><b>Introduction</b> </p> <p>Client applications use the <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref> and <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita"><apiname>RPositioner</apiname></xref> classes to get position updates. <codeph>RPositionServer</codeph> is used by client applications to manage a session with the Location Server and to get Positioning Module information. <codeph>RPositioner</codeph> is used by client applications to manage a subsession with the Location Server and to get position updates. </p> <p><b>GPS positioning modes</b> </p> <p>The Global Positioning System (GPS) is a technology that is often included in devices that support LBS. </p> <p>For each location request from a client, the LBS subsystem can operate in one of several different GPS positioning modes. The Location Acquisition API hides the details of which GPS positioning mode is in use from client applications. A client makes the same sequence of calls to the API to get a position update whichever positioning mode is used. Note that only some of these positioning modes may be available to a client application at runtime. </p> <p>Each GPS positioning mode is a different way of getting a position fix: </p> <ul><li id="GUID-2BDDAACC-EB8D-5191-A42E-0BFA0B26C7DC"><p>Autonomous </p> <p>LBS uses a GPS Positioning Module to calculate position fixes without assistance data from the network. This mode typically takes the longest time to obtain a location fix compared to the other modes. </p> </li> <li id="GUID-B2E24A6F-F46A-529E-A8F5-FC52F7CD8F0D"><p>Terminal Based Mode </p> <p>LBS uses an A-GPS Positioning Module to calculate position fixes using assistance data from the network. Assistance data specifies the GPS satellites that are above the horizon as seen from the mobile device's current location. Assistance data is used by an A-GPS Positioning Module to reduce the time necessary to obtain a position fix. </p> <p>The network can also supply a <i>reference position</i> to the LBS subsystem as part of the sequence of events. This position is calculated in the network using cell-based techniques and may be less accurate than that obtained from GPS. If a reference position is available, it may be returned to the client before a GPS position. </p> <p>See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API Runtime Behaviour</xref> for more information about the position updates that can be returned by LBS. </p> </li> <li id="GUID-018CA9E1-F191-5CC9-8DCD-8FE08CAABD28"><p>Terminal Assisted Mode </p> <p>LBS uses an A-GPS Positioning Module to obtain GPS measurements (using assistance data from the network). GPS measurements are the raw data used to calculate a GPS fix. Measurements are sent to the network and a position fix is calculated by a remote server. The remotely calculated position fix is returned to the mobile device and is known as the <i>final network position</i>. The LBS subsystem returns this position to the client. </p> </li> <li id="GUID-9B1678F5-A53B-5245-9EE4-5809461E2EBB"><p>Simultaneous Terminal Based Mode and Terminal Assisted Mode. </p> <p>LBS passes GPS measurements to the network (as in Terminal Assisted Mode), but also attempts to use those measurements to calculate a GPS position fix (as in Terminal Based Mode). The position returned to the client may be either a GPS position (calculated in the mobile device) or a final network position (calculated using the measurements by a remote server in the network). The position that is calculated first (the GPS position or the final network position) is generally returned to the client. The final network position may also be returned to the client after the return of the GPS position. </p> </li> </ul> <p>Some devices also support a Cell-based Mode in which LBS obtains a position fix from the network without using GPS. This position fix is sometimes less accurate than that obtained using GPS. </p> <p>A client application cannot directly choose the GPS positioning mode that is used for its location request. A handset manufacturer may provide an LBS settings application where the GPS mode can be selected by an end user. However for modes that involve the network (Terminal Based Mode, Terminal Assisted Mode and Cell-based Mode) it is possible for a network operator to override the GPS mode as part of the location request. If a client wants to know precisely how a position fix was calculated, this information is available in the returned position info object (as described in more detail later in this document). </p> <p><b>Example sequence</b> </p> <p>Figure 1 shows a simplified sequence for a client requesting a position update from LBS. The sequence shows simplified behaviour for Terminal Based Mode. The <i>A-GPS Module</i> is a Positioning Module that uses Assisted GPS to calculate a position. The <i>Network Protocol Module</i> is a Positioning Module that obtains GPS assistance data and reference positions (often approximate positions) from the network. Note that Terminal Based Mode may not be available on all mobile devices. This depends on the Positioning Modules that have been installed by the mobile device creator. </p> <fig id="GUID-FD5FEC83-B76D-5D45-AF40-DF5C2F17D404"><title>
+                Figure 1. Simplified Terminal Based Mode Sequence 
+             </title> <image href="GUID-D9C4D520-821D-5097-A63C-0BF4C7F59827_d0e267518_href.png" placement="inline"/></fig> <p><b>Example code and description</b> </p> <p>The following code shows a simple example of how a client application can get a single position update. The numbers in the code comments refer to sections that follow the code example. </p> <codeblock id="GUID-7B350944-5178-586B-B381-87DC5104DD1F" xml:space="preserve">#include &lt;lbs.h&gt;
+#include &lt;lbserrors.h&gt;
+
+...
+
+RPositionServer server;
+RPositioner positioner;
+
+// 1. Create a session with the Location Server
+User::LeaveIfError(server.Connect());
+CleanupClosePushL(server);
+
+// 2. Create a subsession with the Location Server using default positioning module
+User::LeaveIfError(positioner.Open(server));
+CleanupClosePushL(positioner);
+
+// 3. Set the requester information - in this example define a requester stack... 
+
+_LIT(KCntPhone, "+358501234567");
+_LIT(KSrvName, "MyService");
+RRequestorStack stack;
+CRequestor* contact = CRequestor::NewLC(CRequestor::ERequestorContact, CRequestor::EFormatTelephone, KCntPhone);
+stack.Append(contact);
+CRequestor* service = CRequestor::NewLC(CRequestor::ERequestorService,    CRequestor::EFormatApplication, KSrvName);
+stack.Append(service);
+User::LeaveIfError(positioner.SetRequestor(stack));
+
+TPositionInfo posInfo;
+TPosition pos;
+TRequestStatus status;
+
+/* 4. To set update options, call RPositioner::SetUpdateOptions(). 
+      See the description in section 4 below */
+
+/* 5. Request location information
+      Could also call positioner.GetLastKnownPosition(posInfo, status) 
+      to get cached location information */
+positioner.NotifyPositionUpdate(posInfo, status);
+User::WaitForRequest(status);
+
+// 6. Receive location information
+if (status != KErrNone)
+ {
+ // Handle possible client/server errors
+ ...
+ }
+
+// Get the position data object from the wrapper info object
+posInfo.GetPosition(pos);
+
+// Use the position data
+...
+
+// Reissue the location request if necessary by calling NotifyPositionUpdate() again
+
+/* 7. To cancel or complete a location request a client
+ calls RPositioner::CancelRequest() or RPositioner::CompleteRequest() */
+
+// 8. Cleanup
+stack.Reset();
+CleanupStack::PopAndDestroy(service);
+CleanupStack::PopAndDestroy(contact);
+CleanupStack::PopAndDestroy(&amp;positioner);
+CleanupStack::PopAndDestroy(&amp;server);
+</codeblock> <p>The following describes the steps to get location information as shown in the above example: </p> <p><b>1. Create a session with the Location Server </b> </p> <p>To create a session with the Location Server, a client application: </p> <ul><li id="GUID-2AD36917-A3B1-52D1-BBBB-C9A48592E5AA"><p>Creates an instance of <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita"><apiname>RPositionServer</apiname></xref>  </p> </li> <li id="GUID-5771DD5B-C660-5408-8F34-C94D2E8A3419"><p>Calls <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-23285930-A1D5-3A97-AED4-E979BFA96FDD"><apiname>RPositionServer::Connect()</apiname></xref>  </p> </li> </ul> <p>Standard client-server error codes are returned by calls to open the session. A panic occurs if the client application has already created a session with the Location Server. Error and panic codes specific to LBS are defined in <filepath>LbsErrors.h</filepath>. </p> <p><b>2. Create a subsession with the Location Server </b> </p> <p>Location information requests are issued on a subsession. </p> <p>To create a subsession, an application calls one of three overloaded <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-AF3D9B5F-8025-3AFF-A101-82025520EBD6"><apiname>RPositioner::Open()</apiname></xref> member functions: </p> <ul><li id="GUID-D6A2BD94-DFE6-5B2D-9CE4-E5C565323F6E"><p> <codeph>RPositioner::Open(RPositionServer&amp; aPosServer)</codeph> uses the Default Positioning Module to get location information. The client application does not specify any position quality criteria (which specify the required position accuracy) and therefore LBS uses default position quality criteria (horizontal accuracy = 50m, vertical accuracy = 1000m, request timeout = 30 seconds). </p> </li> <li id="GUID-B6357BFF-A3DF-5036-90BF-ED2243C752C0"><p> <codeph>RPositioner::Open(RPositionServer&amp; aPosServer,
+                  TPositionModuleId aModuleId)</codeph> allows a specific Positioning Module to be specified by the client application. LBS uses position quality criteria associated with the specified Positioning Module. No quality criteria are specified and so LBS uses the capabilities of the Positioning Module as the default criteria. </p> <p>See <xref href="GUID-BADAAC2D-8614-5036-95BC-3889457F7ED0.dita">Positioning Modules</xref> for information about Positioning Module position quality and <xref href="GUID-A4B47A7A-17EB-570C-AD88-6756B34AF634.dita">How to Use Positioning Module Information</xref> for more information about how to get a module ID. </p> </li> </ul> <p>The LBS subsystem does not compare the vertical accuracy of a calculated position with the vertical accuracy specified by a client application (specified by position quality criteria, by a quality profile or by a Positioning Module). Only the horizontal accuracy of a calculated position is used to decide if it is accurate enough to be returned to a client application. </p> <p><b>3. Set client requester details </b> </p> <p>A client application can specify the client requesters by calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-E1B082DC-9C01-3852-B1D8-B2FD18235319"><apiname>RPositioner::SetRequestorL()</apiname></xref> before calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref>. </p> <p>This is an optional step. Calling <codeph>SetRequestorL()</codeph> has no effect in this version of the Symbian platform. Calling <codeph>SetRequestorL()</codeph> is required in some devices based on earlier versions of Symbian. To ensure an LBS application runs on devices based on earlier versions of Symbian, it is recommended that it calls <codeph>SetRequestorL()</codeph>. </p> <p>See <xref href="GUID-ACD9E338-DF75-5811-B696-C3900B498218.dita">Privacy Requester Classes</xref> for more information. </p> <p><b>4. Set update options </b> </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-7A8BC23A-6FF9-3AAF-99BF-A6B074FDEA7B"><apiname>RPositioner::SetUpdateOptions()</apiname></xref> to set the update options. Calling this method only affects future calls to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> and <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> and does not affect any outstanding requests. </p> <p>A <xref href="GUID-E60595B9-B6E2-38E1-BE1E-A82113C7EC94.dita"><apiname>TPositionUpdateOptions</apiname></xref> parameter specifies the update options and is passed in <codeph>RPositioner::SetUpdateOptions()</codeph>. The properties of <codeph>TPositionUpdateOptions</codeph> are set either on its construction or via setter methods. The following properties can be defined: </p> <ul><li id="GUID-239CCE63-0455-525A-9CC7-8FCE0530B7CB"><p>The time interval between position updates </p> <p> <codeph>TPositionUpdateOptions::SetUpdateInterval(TTimeIntervalMicroSeconds
+                  aInterval)</codeph> sets the time interval between position updates. </p> <p>Setting a non-zero value indicates that the client requires periodic updates (this is also known as 'tracking'). LBS attempts to send position updates to the client application with this interval between the updates. Note that setting <codeph>aInterval</codeph> to <codeph>0</codeph> (or not setting it) indicates that the client is not tracking. </p> <p> <i>Note that when a client application is tracking, LBS does not return reference positions as periodic updates. See the section on Tracking later in this document for more information on tracking behaviour.</i>  </p> </li> <li id="GUID-3BDBCE8C-53D1-5DE7-B81A-86145460C1BA"><p>A position update timeout </p> <p> <codeph>TPositionUpdateOptions::SetUpdateTimeOut(TTimeIntervalMicroSeconds
+                  aTimeOut)</codeph> sets a timeout for the location request. It specifies how long the client application is prepared to wait to obtain a position update. If the timeout expires <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> completes and the client's <codeph>RunL()</codeph> method is called. </p> <p>After a timeout the value set for the client's <codeph>TRequestStatus</codeph> parameter depends on the configuration of the LBS subsystem and may be either <codeph>KErrTimeOut</codeph> or <codeph>KPositionQualityLoss</codeph>. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> <p> <i>Note that calling SetUpdateTimeOut() with a value of 0 (or not setting it) indicates that LBS should not timeout the location request from a client. </i>  </p> </li> <li id="GUID-C0405589-A7DC-58E4-A39A-145943152B50"><p>The maximum age of a position update </p> <p> <codeph>TPositionUpdateOptions::SetMaxUpdateAge(TTimeIntervalMicroSeconds
+                  aMaxAge)</codeph> specifies the maximum age of the position data returned by <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref>. Setting this value allows the Location Server to use cached location information in some cases. The default value of 0 indicates that new position data is required. </p> </li> <li id="GUID-EBCB9F00-1331-5627-95B6-4B1E851776CF"><p>Acceptance of partial updates </p> <p>A partial update is a position update that contains only partial position data. Such a position is called an <i>incomplete position</i>. An example of an incomplete position is one that contains data about the satellites used to obtain a GPS fix but no latitude or longitude data.<codeph/> LBS defines an incomplete position to be one where either <codeph>TPosition::Latitude()</codeph> or <codeph>TPosition::Longitude()</codeph> is <codeph>NaN</codeph> (Not a Number). </p> <p> <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(TBool
+                  aPartial)</codeph> allows an application to choose to accept partial updates. If a partial update is returned an application's <codeph>TRequestStatus</codeph> parameter is set to <codeph>KPositionPartialUpdate</codeph> when <codeph>NotifyPositionUpdate()</codeph> completes. </p> <p>If partial updates are not set the default behaviour is for <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> to complete only when the Positioning Module used for the location request has obtained as much information as possible. Note however that this behaviour is configurable by a Symbian device creator (see <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information). </p> </li> </ul> <p><b>Important note on setting update options </b> </p> <p>The default constructor of <xref href="GUID-E60595B9-B6E2-38E1-BE1E-A82113C7EC94.dita"><apiname>TPositionUpdateOptions</apiname></xref> sets all update options to zero by default and is the equivalent of calling the following: </p> <ul><li id="GUID-FA830ED1-156A-5EE9-B27F-7C4AD064A061"><p> <codeph>TPositionUpdateOptions::SetUpdateInterval(0)</codeph> meaning that tracking is off </p> </li> <li id="GUID-0AF71B28-0EE0-549B-BE23-A82A85A3CC1E"><p> <codeph>TPositionUpdateOptions::SetUpdateTimeout(0)</codeph> meaning that LBS should not timeout the client's request </p> </li> <li id="GUID-A66326A6-8350-5B0A-BA67-1E67C8416FEC"><p> <codeph>TPositionUpdateOptions::SetMaxUpdateAge(0)</codeph> meaning that new position data is required </p> </li> <li id="GUID-8FFDD522-7CE8-5627-A630-100562B6AC61"><p> <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(EFalse)</codeph> meaning the partial updates are not returned </p> </li> </ul> <p>When setting update options, a client should beware of causing unexpected side effects. For example, if a client wants to accept partial updates, it might do the following: </p> <ul><li id="GUID-2C3A765E-9000-55D0-AF80-959E30FC6BCF"><p>Create a new <codeph>TPositionUpdateOptions</codeph> options object </p> </li> <li id="GUID-412495C8-DD14-5F18-B49A-4AB577F7ADFA"><p>Call <codeph>TPositionUpdateOptions::SetAcceptPartialUpdates(ETrue)</codeph>  </p> </li> <li id="GUID-0F75DB2C-A3AE-50DD-AE5F-A9C0767E92EF"><p>Call <codeph>RPositioner::SetUpdateOptions()</codeph> passing the options object as a parameter </p> </li> </ul> <p>However, this process has the side-effect of setting all the other update options to their default values as described above. In particular the client request will now not timeout which is unlikely to be the desired behaviour. To avoid this, a client should usually modify the current update options as follows: </p> <ul><li id="GUID-95B83378-4262-5861-A17A-1813DA6FC339"><p>Get the current update options by calling <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-69E1F34F-FEF9-3E0C-88B6-DE0458E005A5"><apiname>RPositioner::GetUpdateOptions()</apiname></xref>  </p> </li> <li id="GUID-7C5DE68E-D192-551F-8F30-F4DC35E9D736"><p>Call the appropriate <codeph>TPositionUpdateOptions::SetXXX()</codeph> methods for the options to be changed </p> </li> <li id="GUID-E889905E-5AE5-53D0-BA99-8F430EAC3177"><p>Call <codeph>RPositioner::SetUpdateOptions()</codeph> passing the modified options object as a parameter </p> </li> </ul> <p><b>Examples </b> </p> <p>The following code shows a simple example of how to set update options. Note that all the options are changed by the client. </p> <codeblock id="GUID-A6C75044-19AF-5A77-BB17-18F4B8AA32EE" xml:space="preserve">...
+
+TPositionUpdateOptions options;
+
+// Frequency of updates in microseconds
+const TTimeIntervalMicroSeconds KUpdateInterval(2000000);
+
+// How long the application is willing to wait before timing out the request
+const TTimeIntervalMicroSeconds KTimeOut(4000000);
+
+// The maximum acceptable age of the information in an update
+const TTimeIntervalMicroSeconds KMaxUpdateAge(1000000);
+
+options.SetUpdateInterval(KUpdateInterval);
+options.SetUpdateTimeOut(KTimeOut);
+options.SetMaxUpdateAge(KMaxUpdateAge);
+options.SetAcceptPartialUpdates(EFalse);
+
+User::LeaveIfError(positioner.SetUpdateOptions(options));
+
+/* Now when the application requests location information
+it will be provided with these options */ 
+
+positioner.NotifyPositionUpdate(posInfo, status);
+
+...
+
+</codeblock> <p>The following code example shows an example of how to change one update option (to accept partial updates). </p> <codeblock id="GUID-6AEAAEBA-0841-502C-A6AF-11E9A5B5BD88" xml:space="preserve">...
+
+TPositionUpdateOptions options;
+
+User::LeaveIfError(positioner.GetUpdateOptions(options));
+options.SetAcceptPartialUpdates(ETrue);
+User::LeaveIfError(positioner.SetUpdateOptions(options));
+
+// The other update options are unchanged
+
+positioner.NotifyPositionUpdate(posInfo, status);
+
+...
+
+</codeblock> <p> <b>Notes</b>  </p> <p>When a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> or <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> completes, it is necessary to re-issue the request by calling one of these methods again to obtain further updates even if <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-7A8BC23A-6FF9-3AAF-99BF-A6B074FDEA7B"><apiname>RPositioner::SetUpdateOptions()</apiname></xref> has been called. Setting update options allows a client to specify when the next position update is required, but does not cause periodic requests to the Location Server to be made. </p> <p>A client application can only have one outstanding request for location information per <codeph>RPositioner</codeph> subsession. An attempt to make a second request for location information while one is still outstanding causes a panic to occur. An application must cancel an outstanding request before it makes another request. This process is described in step 7. </p> <p><b>5. Request the location information </b> </p> <p>An application can call one the following methods to obtain position data: </p> <ul><li id="GUID-8026ACFD-3519-5917-B64C-6BB5349E0793"><p> <i>RPositioner::NotifyPositionUpdate()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> to request a position update. The LBS subsystem can either request that a Positioning Module obtains a new position and returns it to the client or simply returns an existing position calculated at some earlier time. The precise action taken by LBS depends on the quality of position required by the client because it is possible that a position obtained some time ago may meet the client application's position quality requirements. </p> <p> <codeph>RPositioner::NotifyPositionUpdate()</codeph> is a client-server asynchronous call. The client application can pass any position info class that derives from <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita"><apiname>TPositionInfoBase</apiname></xref>. The standard position info class is <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> which is supported by all Positioning Modules. An application can get extended location information (if there is a Positioning Module that can supply it) by passing one of the specialised position info classes such as <xref href="GUID-E438D9D8-8DC2-39E3-B5D2-9EBD1D2EED82.dita"><apiname>TCourseInfo</apiname></xref> or <xref href="GUID-54AE0674-C49D-3329-8B77-3A58EFFC03D7.dita"><apiname>TPositionSatelliteInfo</apiname></xref> instead of <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref>. </p> <p>See <xref href="GUID-ABC01315-D65D-55EA-9D42-4DE6384D517D.dita">Position data and info classes</xref> for more information about position data and wrapper info classes. </p> </li> <li id="GUID-8C8CD6DD-5ED1-5F73-9FCD-611579838CD0"><p> <i>RPositioner::GetLastKnownPosition()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> to request the device's last known position. </p> <p> <codeph>RPositioner::GetLastKnownPosition()</codeph> is a client-server asynchronous call. Calling this method does not instigate a new position fix even if the LBS subsystem does not have a last known position. It is therefore possible that this method will fail to return a position if one was not previously calculated. Client applications must check for this possibility by checking the values of <codeph>TCoordinate::Latitude()</codeph> and <codeph>TCoordinate::Longitude()</codeph> of the <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object inside of the <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> parameter. If latitude and longitude data are not available they are set to <codeph>NaN</codeph> (Not a Number). An application may also need to check the timestamp of the information to ensure it still meets its needs as it is possible that the last position update was obtained some time ago. </p> <p>If the LBS subsystem has a position from a previous request a call to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-D9E0BC1D-7783-35BA-8D88-223576E4C85E"><apiname>RPositioner::GetLastKnownPosition()</apiname></xref> is more efficient in terms of request response time and device power consumption. It may also be cheaper for the mobile device owner who may be charged to obtain a new position. </p> </li> <li id="GUID-462ACD7E-9E6E-5366-8538-4EF5416CB2E7"><p> <i>RPositioner::GetLastKnownPositionArea()</i>  </p> <p>A client application calls <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref> to request the last known position that most closely matches the device's current location. The device's current location is estimated from the network cell ID received from the network. </p> <p> <codeph>RPositioner::GetLastKnownPositionArea()</codeph> is a client-server asynchronous call. The client application can request the LBS subsystem to provide either basic or the extended area information. The exact signature of the method is as follows: </p> <p> <codeph>RPositioner::GetLastKnownPositionArea(TPositionInfoBase&amp;
+                  aPosInfo, TPositionAreaInfoBase&amp; aAreaInfo, TRequestStatus&amp; aStatus)
+                  const;</codeph>  </p> <p>A client passes in <codeph>aPosInfo</codeph>, <codeph>aAreaInfo</codeph> and <codeph>aStatus</codeph> parameters. </p> <ul><li id="GUID-44BEA85B-1CFF-5380-B9FE-8659029CD52D"><p>On completion, <codeph>aPosInfo</codeph> contains the last known position that is the best match with information received from the network. </p> </li> <li id="GUID-8A708090-5281-5BC7-8EFE-A935317F9531"><p> <codeph>aAreaInfo</codeph> contains an estimate of the accuracy of the last known position. <codeph>TPositionAreaInfoBase</codeph> is the base class for two position area data classes. A client can pass a <xref href="GUID-5FA78254-70C7-3105-B6CE-E1A294C8F773.dita"><apiname>TPositionAreaInfo</apiname></xref> object to get basic position accuracy information, or it can pass a <xref href="GUID-BC7DEDAF-80AE-34DC-8FD8-CF77FA511B3D.dita"><apiname>TPositionAreaExtendedInfo</apiname></xref> object to get extra information about how the accuracy estimate was calculated. </p> </li> </ul> <p>If successful, <codeph>GetLastKnownPositionArea()</codeph> returns the best matching last known position in the <codeph>aPosInfo</codeph> parameter, an estimate of the position accuracy in the <codeph>aAreaInfo</codeph> parameter and a result code of <codeph>KErrNone</codeph>. </p> <p>See <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-A8484963-B2C4-339D-AF8C-056792444D89"><apiname>RPositioner::GetLastKnownPositionArea()</apiname></xref> for more information about using this method and the returned error codes. </p> <p>See <xref href="GUID-70E1117B-17F0-5CF4-A5D0-35D3BEBB0FEA.dita">Position Area Data Classes</xref> for information about the classes that used to obtain the position accuracy estimate. </p> <p>The following code fragment shows how to use the method and check the accuracy of the returned position: </p> <codeblock id="GUID-2AC03D72-4105-5752-A294-08D64CAFB3A5" xml:space="preserve">
+// Create an RPositionServer, RPositioner, TRequestStatus as normal and open a session (see above)
+
+...
+
+// Want to know basic position accuracy, so use TPositionAreaInfo
+
+TRequestStatus status;
+TPositionInfo posInfo;
+TPositionAreaInfo areaInfo;
+
+// Get the last known location and an estimate of its accuracy
+
+positioner.GetLastKnownLocationArea(posInfo, areaInfo, status);
+User::WaitForRequest(status);
+
+// Check the return status 
+
+if ( status == KErrNone )
+ {
+
+ TPosition pos;
+ posInfo.GetPosition(pos);
+ TReal64 latitude = pos.Latitude();
+ TReal64 longitude = pos.Longitude();
+ TTime time = pos.Time();
+
+ /*
+ Check the posInfo object to see if it contains valid position data before trying to use it.
+ Check position latitude, longitude and (if necessary) altitude for Math::IsNaN().
+ Also a good idea to check the timestamp against current time, because this position could be old.
+ Details omitted...
+ */
+
+ // Get the accuracy of the position
+ TPositionAreaInfo::TArea area = areaInfo.Area();
+ 
+ // Does this position meet your accuracy requirements?
+
+ if (area == TPositionAreaInfo::EAreaCity)
+  {
+  
+  /* 
+  In this example, want city level position accuracy.
+  Is this position accurate enough for your application?
+  
+  If not you could also check for EAreaDistrict and EAreaStreet.
+  TPositionAreaInfo::_TArea defines the values you can check for.
+  
+  If this position is accurate enough, do something useful with your returned position data...
+  
+  If it is not accurate enough, you may need to get a new full position fix
+  Call positioner.NotifyPositionUpdate() to do this.
+  */
+  
+  }
+ 
+ }
+
+else
+
+    {
+
+ /*
+ Function returned something other than KErrNone.
+ It could be KErrNotFound which indicates that no stored position was found.
+ Or it could be a system error code if something went wrong - you need to check it.
+ */
+
+ }
+</codeblock> </li> </ul> <p>Client applications must always check the value of the <codeph>TRequestStatus</codeph> parameter as this indicates the success or failure of the location request and may indicate that specified location accuracy criteria could not be satisfied at the time of the request. </p> <p>The value of <codeph>TRequestStatus</codeph> that is set when a position update occurs or times out depends on the configuration of the LBS subsystem. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> <p><b>6. Receive and use the location information </b> </p> <p>When the Location Server obtains a position, the client's <xref href="GUID-E0B34F3E-D4C4-3232-B8B1-7DB35B454646.dita"><apiname>TRequestStatus</apiname></xref> variable is updated. In the example, the <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita"><apiname>TPositionInfo</apiname></xref> object that was passed to <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-321F6046-3551-3ACE-B0A3-26D51FAEB477"><apiname>RPositioner::NotifyPositionUpdate()</apiname></xref> holds the new position data in a <xref href="GUID-AB9F288E-86C6-327A-9E53-2EA746416038.dita"><apiname>TPosition</apiname></xref> object. </p> <p> <b>Important notes</b>  </p> <p>An application should test what kind of position is returned by <codeph>NotifyPositionUpdate()</codeph>. <xref href="GUID-73D6F438-C270-33B9-974B-D4D1583E1738.dita#GUID-73D6F438-C270-33B9-974B-D4D1583E1738/GUID-AC9654DD-2FC8-3B27-8743-83D7B8C58B79"><apiname>TPositionInfoBase::PositionMode()</apiname></xref> returns a bitmask value of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-AE121191-0B6A-39D8-9379-386EFF58CF0A"><apiname>TPositionModuleInfo::TTechnologyType</apiname></xref> that is composed of values of type <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-03AF8C51-1CAF-3F4C-BED1-17844FAE8423"><apiname>TPositionModuleInfo::_TTechnologyType</apiname></xref>. Valid combinations of this value are as follows: </p> <table id="GUID-8D2D95EF-9749-5D72-9F1D-FB878961DE84"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>TPositionInfoBase::PositionMode()</entry> <entry>Meaning</entry> </row> </thead> <tbody><row><entry><p>ETechnologyNetwork </p> </entry> <entry><p>A reference position obtained from the network </p> </entry> </row> <row><entry><p>ETechnologyTerminal | ETechnologyAssisted </p> </entry> <entry><p>A position calculated using GPS with assistance data from the network </p> </entry> </row> <row><entry><p>ETechnologyNetwork | ETechnologyAssisted </p> </entry> <entry><p>A position calculated using GPS measurements by a remote server in the network </p> </entry> </row> <row><entry><p>ETechnologyTerminal </p> </entry> <entry><p>A position calculated using GPS without assistance data (autonomous mode) </p> </entry> </row> </tbody> </tgroup> </table> <p>A reference position <i>may</i> be returned to a client application by the Location Server before a more accurate position fix is available. Whether a reference position is made available to the Location Server depends on the implementation of the Positioning Modules by the Symbian device creator or handset manufacturer. </p> <p>If a reference position is returned, the behaviour is as follows: </p> <p> <b>For the first call to RPositioner::NotifyPositionUpdate()</b>  </p> <p> <codeph>NotifyPositionUpdate()</codeph> completes and a <i>reference position</i> is returned to the client. The client application can check for return of a reference position by checking for <codeph>TPositionInfoBase()::PositionMode() ==
+             TPositionModuleInfo::ETechnologyNetwork</codeph>. If a reference position is returned it may not satisfy the application's position accuracy quality criteria and the application will need to make another <codeph>NotifyPositionUpdate()</codeph> request. </p> <p> <b>For subsequent calls to RPositioner::NotifyPositionUpdate()</b> (made by the same client subsession) </p> <p> <codeph>NotifyPositionUpdate()</codeph> completes and a position is returned to the client. This position may be either: </p> <ul><li id="GUID-F707A545-244D-5110-80CF-CBE9FFECC05C"><p>Calculated in the mobile device by GPS with assistance data (for Terminal Based Mode) </p> <p> <codeph>TPositionInfo::PositionMode() ==
+                  TPositionInfoBase::ETechnologyTerminal |
+                  TPositionInfoBase::ETechnologyAssisted</codeph>  </p> </li> <li id="GUID-289DE4DD-469D-58F0-8534-0B4353CDEC24"><p>Returned from the network, a position known as the <i>final network position</i> (for Terminal Assisted Mode) </p> <p>The value of <xref href="GUID-D5B2E933-209D-3871-8E27-CC5C8855C745.dita#GUID-D5B2E933-209D-3871-8E27-CC5C8855C745/GUID-A01CF36E-6EF9-395A-94DC-AB94478C66BE"><apiname>TPositionInfo::PositionMode()</apiname></xref> for a final network position depends on the configuration of the LBS subsystem: </p> <p>Normal behaviour is to return <codeph>TPositionInfo::PositionMode()
+                  == TPositionModuleInfo::ETechnologyNetwork |
+                  TPositionModuleInfo::ETechnologyAssisted</codeph>, but it is possible for LBS to return <codeph>TPositionModuleInfo::ETechnologyTerminal |
+                  TPositionModuleInfo::ETechnologyAssisted</codeph> if it is configured to do so. See <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information. </p> </li> </ul> <p>Note that <codeph>NotifyPositionUpdate()</codeph> may complete early if a GPS positioning module signals to LBS that it will be unable to return a location fix with the required quality criteria. In this case the Location Server returns the best location fix it can obtain to the client. The value of the <codeph>TRequestStatus</codeph> parameter of the client is set to either <codeph>KPositionQualityLoss</codeph> or <codeph>KErrNone</codeph> depending on the configuration of <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref>. </p> <p><b>Tracking </b> </p> <p>A position update time line for tracking is shown in figure 2. Note that the exact behaviour of tracking on systems may differ from that shown in Figure 2. </p> <p>A client application has previously called <codeph>TPositionUpdateOptions::SetUpdateInterval(T)</codeph> and <codeph>RPositioner::SetUpdateOptions()</codeph> (not shown in figure 2). Partial updates are not set. LBS is also configured to return reference positions and accurate positions only (see <xref href="GUID-4E56E531-5757-5740-9C7D-705D427FA9D5.dita">Location Acquisition API runtime behaviour</xref> for more information about this behaviour). The important points are: </p> <ul><li id="GUID-644F7437-0207-5B16-B38C-C695DC5BB83B"><p>A client application makes its first call to <codeph>RPositioner::NotifyPositionUpdate()</codeph> (First NPUD in figure 2). </p> </li> <li id="GUID-E9F2BBA1-8F8A-516C-BB01-640535090820"><p>After a time t, the client's <codeph>RunL()</codeph> method is called and it receives its first position update (the reference position update Ref Pos in figure 2). This first position update is delivered to the client by LBS as soon as possible (t is as short as possible and is not equal to T). The client then makes its next call to <codeph>NotifyPositionUpdate()</codeph> (the next NPUD in figure 2). When tracking, a client application should make its next call to <codeph>RPositioner::NotifyPositionUpdate()</codeph> as soon as possible in its <codeph>RunL()</codeph> method. The time between the client's <codeph>RunL()</codeph> and the client's next NPUD is exaggerated for clarity in Figure 2. </p> </li> <li id="GUID-8D670561-5F51-5836-AA24-3B0CC0417BB7"><p>At a time t + T (where T is the update interval) the client's <codeph>RunL()</codeph> method is called and it receives the next position update (GPS Pos in figure 2). The client makes its next call to <codeph>NotifyPositionUpdate()</codeph>. </p> </li> <li id="GUID-E93AE6CA-DF93-56AD-B68B-A60A1B96F128"><p>The next position update is expected at time t + 2T, but in the case shown in figure 2 this is not possible (the mobile device may have moved into an area where the GPS signal is weak). In general if it is not possible to obtain an accurate GPS fix by time t + nT, but the fix is obtained a short time later, the next position update is delivered as soon as possible after time t + nT (after t + 2T in figure 2). </p> </li> <li id="GUID-9E52BD1C-7BD4-55F8-BF75-98669883C0CF"><p>The client makes its next call to <codeph>NotifyPositionUpdate()</codeph> and at time t + (n+1)T the next position update is delivered (at t + 3T in figure 2). </p> <p> <i>The important point to note is that LBS attempts to deliver position updates at regular times t + nT but the time interval between position updates may temporarily be greater than or less than T.</i>  </p> </li> <li id="GUID-A7F59CB4-BFC7-5F88-8AF2-C8D6C24122D9"><p>Note that if partial updates were enabled, an incomplete position would be delivered at time t + 2T if it were available. Also note that an inaccurate position would be delivered if one was available at that time and LBS was configured to return it. </p> <p> </p> </li> </ul> <fig id="GUID-916FB3EF-08C6-5A0C-8D72-881FEEC7C161"><title>
+                Figure 2. Position updates when tracking 
+             </title> <image href="GUID-C6DDF01D-DF54-5C65-9FAC-D3693D30819F_d0e268483_href.png" placement="inline"/></fig> <p><b>Error codes </b> </p> <p>The value of a client's <codeph>TRequestStatus</codeph> can be set to an LBS error code (defined in <filepath>lbserrors.h</filepath>) <i>or an error code defined in a licensee's Positioning Module</i>. An error causes <codeph>NotifyPositionUpdate()</codeph> to complete. An application should always check the value of <codeph>TRequestStatus</codeph> when its <codeph>RunL()</codeph> method is called. </p> <p><b>7. Cancel or complete a location information request </b> </p> <p>To cancel a location request a client application calls <xref href="GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC.dita#GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC/GUID-168130E7-459D-3108-9418-94773D802EAE"><apiname>RPositionerSubSessionBase::CancelRequest()</apiname></xref>, passing a <xref href="GUID-355E1EEF-A312-3BB8-9655-9DD6805A3CDD.dita"><apiname>EPositionerNotifyPositionUpdate</apiname></xref> parameter. The client's <codeph>TRequestStatus</codeph> is set to <codeph>KErrCancel</codeph> if the request was successfully cancelled and no position update is returned. </p> <p>To complete a location request early, a client application calls <xref href="GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC.dita#GUID-BC95F637-51F6-3D99-9265-C6DFD903C5BC/GUID-88F0FA62-BC72-3BC5-B42E-FA0A26F3E405"><apiname>RPositionerSubSessionBase::CompleteRequest()</apiname></xref> passing a <xref href="GUID-355E1EEF-A312-3BB8-9655-9DD6805A3CDD.dita"><apiname>EPositionerNotifyPositionUpdate</apiname></xref> parameter. Calling this method does not cancel the position update, but asks the Location Server to return any available position data. The returned position update may be different from that which would have been returned if the request had been allowed to complete normally. If the request is completed early, the client's <codeph>TRequestStatus</codeph> is set to <codeph>KPositionEarlyComplete</codeph>. </p> <p><b>8. Close the subsession and session </b> </p> <p> <xref href="GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575.dita#GUID-1EAEB7EF-0AC7-37C7-B35F-C9B780FFC575/GUID-DE09BADB-6D90-3995-A893-F949F9C37A2B"><apiname>RPositioner::Close()</apiname></xref> closes the subsession. <xref href="GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B.dita#GUID-0ADC4654-7F7B-3B53-A2F9-7035670F501B/GUID-3D081F5B-F8D6-3168-951F-EDBC2364EB76"><apiname>RPositionServer::Close()</apiname></xref> closes the server session. In the code example the cleanup stack function is used. Any privacy requester objects created by a client must also be cleaned up. </p> </section> </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,128 +1,128 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2" xml:lang="en"><title>Quick
-Start</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Generic OS Services is a collection of components and libraries that provide
-generic OS level services to the Symbian platform components and applications. </p>
-<section id="GUID-2705CC8F-AE74-4627-8A07-1FE48F187EE6"><title>Getting started with Generic OS Services</title> <p>The following
-list briefly describes how device creators or Symbian Developers can use the
-APIs of the components and libraries provided by Generic OS Services: </p> <ul>
-<li id="GUID-E5E9B035-EA72-5931-9295-6601A5A202CA"><p>Use the Plug-In Framework
-(ECom) APIs to register, discover plug-ins and load appropriate plug-ins. </p> </li>
-<li id="GUID-2C3836C2-5F9B-5E5B-95A8-725325956AFF"><p>Use the P.I.P.S. libraries
-(<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
-to port POSIX-based applications to the Symbian platform. </p> </li>
-<li id="GUID-195FD344-AF6B-517A-869C-99A816FE45CB"><p>Use the Standard C++
-libraries to develop or port Standard C++ applications or libraries to the
-Symbian platform. </p> </li>
-<li id="GUID-71C8DD3C-9989-5EB0-AC01-BACACB0BB683"><p>Use the <xref href="http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/librt.html" scope="external">Librt</xref> library APIs to port Librt-based applications
-onto the Symbian platform quickly and easily. </p> </li>
-<li id="GUID-83754BD8-F2AA-55FC-999F-BF46BDD1CA61"><p>Use the EUser High Level
-(EUserHL) library to do better string handling, resource management, and error
-handling and object creation along the lines of standard C++ practices. EUserHL
-library provides a usability layer to hide away some of the complexities of
-the Symbian platform. </p> </li>
-<li id="GUID-6BEBEC4E-71F5-56F0-A731-DD498446B6BB"><p>Use the Zip Compression
-Library APIs to perform file and stream compression and decompression. </p> </li>
-<li id="GUID-D62D3C16-0C6A-5569-BCD7-546EBF687282"><p>Use the task scheduler
-APIs to develop applications with scheduling options and capabilities. </p> </li>
-<li id="GUID-26FD6D1B-5F7C-5C4B-8474-B5B7D4BB7D0F"><p>Use the Active Backup
-Client APIs to create backup and restore software with complete control of
-the data backed up and restored. </p> </li>
-<li id="GUID-D9B2CA30-9AA0-529C-B531-5B511BD05B7C"><p>Use the HTTP Utilities
-library APIs to extract URI components, construct and modify Uniform Resource
-Indicators (URIs), text utilities, and URI component utilities required to
-work with URIs. </p> </li>
-<li id="GUID-4FC76033-12BC-5D76-AD3F-D4825E3D6C1B"><p>Use the MIME (Multipurpose
-Internet Mail Extension) Recognition Framework APIs to implement data type
-recognition using MIME recognizer plug-ins. </p> </li>
-<li id="GUID-22816C73-E2CC-57FD-BB18-8A3DA071F95B"><p>Use the Basic Application
-Framework Utilities library (BAFL) to in turn use utilities, such as clipboard,
-command-line parser, descriptor array, environment change notifier, incremental
-matcher, resource files, localized names of plug-ins, system sounds and string
-pools. </p> </li>
-<li id="GUID-B4CB6CF9-8022-55A8-9642-2F79306C6653"><p>Use the Base Services
-Utility library (BSUL) to validate messages and handle errors. </p> </li>
-<li id="GUID-F239EF07-F3DC-5C23-8A21-44CDFE798322"><p>Use the Activity Manager
-library to enable clients to monitor user inactivity (idle time) and user
-activity (key press). </p> </li>
-<li id="GUID-FFF66809-C883-570C-A741-9182280B2F7C"><p>Use the System Utility
-library to perform the following tasks: </p> <ul>
-<li id="GUID-62F47958-AFEF-5D09-BF39-88676E8E889B"><p>Retrieve software and
-language package version strings for display purposes. </p> </li>
-<li id="GUID-B3726DF9-7108-5C0A-A713-2B0BAA36051A"><p>Check for free space
-on a disk drive before file creation or writing. </p> </li>
-<li id="GUID-F47C051F-921C-5B72-8498-0D4AB4FB295F"><p>Get device type information
-(phone model) for display purposes. </p> </li>
-</ul> </li>
-</ul> </section>
-<section id="GUID-403DCD77-1F14-4E82-85DE-98419E629A47"><title>Architecture</title> <p>The Generic OS Services module is
-a group of non-related components and libraries that provide OS level services
-to other components of the Symbian platform. The components and libraries
-in Generic OS Services are grouped into the following collections: </p> <ul>
-<li id="GUID-D831C8AB-D3AF-57EB-81CF-E4EF1E57CBED"><p><xref href="GUID-9208E03A-CC7A-57A9-84BD-778B99040842.dita"> Compression
-Libraries</xref>  </p> </li>
-<li><p><xref href="GUID-E2DE2C6F-E071-5E88-96F1-D71DDED84609.dita">Generic Open
-Libraries</xref></p></li>
-<li id="GUID-5F25107F-DF98-5DB1-9D4A-B8A7B68B2919"><p><xref href="GUID-94215E49-605B-51BA-B215-10BDA1A0C013.dita">Generic
-Services</xref>  </p> </li>
-<li id="GUID-FE8F4625-0D24-5113-A72F-B9E70801284F"><p><xref href="GUID-324107D1-6E0B-56DD-BDC0-7296F688A9CF.dita"> Low
-Level Libraries and Frameworks</xref>  </p> </li>
-</ul> <p>The following diagram outlines the Generic OS Services collections
-and components associated with each collection: </p> <fig id="GUID-3DCD7AF8-7355-5752-A569-EA4F9078C739">
-<title>              Collections and components of Generic OS Services   
-        </title>
-<image href="GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e150880_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-842B935E-D653-4EFD-9BB7-2E819BBE17DF"><title>Technologies</title> <p>Generic OS services enables, implements
-or uses the following technologies: </p> <ul>
-<li id="GUID-66896EAF-09A0-5EBB-A496-106F94A924EA"><p> <b>zlib:</b> The <xref href="GUID-5D14ADEC-ED83-5FA4-B551-C57CAE4F79BE.dita">Zip Compression Library</xref> (EZLib)
-provides C++ wrapper classes that encapsulate the functionality of the Open
-Source <xref href="http://en.wikipedia.org/wiki/Zlib" scope="external">zlib</xref> library
-v1.2.3. It provides stream and file compression and decompression functionalities. </p> </li>
-<li id="GUID-EF1DE4A8-CBE1-5DD3-9D89-E2EAC1CC1B29"><p> <b> Standard C++:</b> A
-Standard C++ environment with IOStream and STL (Standard Template Library)
-libraries enables you to develop or port Standard C++ applications or libraries
-quickly and easily onto the Symbian platform. For more information, see the <xref href="GUID-4492D5C1-C64E-5561-8A3F-8D887603B6FB.dita"> Standard C++ Porting Tutorials</xref> section. </p> </li>
-<li id="GUID-95F58286-C65B-5EC3-A432-1C3C5CA02269"><p> <b>P.I.P.S. Is POSIX
-on Symbian Platform (P.I.P.S.):</b> P.I.P.S. provides an API layer, above
-the Symbian platform native APIs, that is more closely aligned with industry
-standard APIs making Symbian software development more accessible to Symbian
-Developers who program using the C language. Symbian Developers can use the
-P.I.P.S. libraries (<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
-to port POSIX-based applications to the Symbian platform. For more information,
-see the <xref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita">P.I.P.S. Porting
-Tutorials</xref> section. </p> </li>
-<li id="GUID-571DD883-A5A6-5A89-9092-47279A521685"><p> <b> POSIX.1b, Real-time
-extensions:</b> The Librt library enables support for POSIX.1b, Real-time
-extensions on the Symbian platform and is based on the Linux Standard Base
-(LSB) 3.1 specification. It covers features such as shared memory, clocks
-and real time emulation for timers. Support for the Librt library on the Symbian
-platform enables you to port Librt-based applications onto the Symbian platform
-quickly and easily. For more information, see the <xref href="GUID-6565B222-4036-5C3D-8319-4CDDA3F2098D.dita">Librt</xref> section </p> </li>
-<li id="GUID-CBF47924-085E-5546-92D8-D9269072B816"><p> <b>MIME (Multipurpose
-Internet Mail Extension):</b> MIME is an internet standard system
-for identifying the type of data in a file or stream. Types can include graphics,
-photos, audio, video files and formatted text. MIME type recognition enables
-devices to identify data in streams or files and start appropriate applications
-automatically. </p> <p>This technology is implemented by the MIME recognition
-framework component. The MIME recognition framework implements data recognition
-using MIME recogniser plug-ins. For more information, see the <xref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita">MIME
-Recognition Framework</xref> section. </p> </li>
-<li id="GUID-51BFDE39-44E7-51E6-82BC-2F45738A0ADD"><p> <b>ECom Plug-in:</b> The
-Plug-in (ECom) framework is a generic framework that enables registration
-and discovery of plug-ins, and the loading of an appropriate plug-in. The
-Plug-In framework is intended to provide a common and system-wide mechanism
-for instantiating a dynamically determined component. For more information,
-see the <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">Plug-in Framework</xref> section. </p> </li>
-</ul> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2" xml:lang="en"><title>Quick
+Start</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Generic OS Services is a collection of components and libraries that provide
+generic OS level services to the Symbian platform components and applications. </p>
+<section id="GUID-2705CC8F-AE74-4627-8A07-1FE48F187EE6"><title>Getting started with Generic OS Services</title> <p>The following
+list briefly describes how device creators or Symbian Developers can use the
+APIs of the components and libraries provided by Generic OS Services: </p> <ul>
+<li id="GUID-E5E9B035-EA72-5931-9295-6601A5A202CA"><p>Use the Plug-In Framework
+(ECom) APIs to register, discover plug-ins and load appropriate plug-ins. </p> </li>
+<li id="GUID-2C3836C2-5F9B-5E5B-95A8-725325956AFF"><p>Use the P.I.P.S. libraries
+(<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
+to port POSIX-based applications to the Symbian platform. </p> </li>
+<li id="GUID-195FD344-AF6B-517A-869C-99A816FE45CB"><p>Use the Standard C++
+libraries to develop or port Standard C++ applications or libraries to the
+Symbian platform. </p> </li>
+<li id="GUID-71C8DD3C-9989-5EB0-AC01-BACACB0BB683"><p>Use the <xref href="http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/librt.html" scope="external">Librt</xref> library APIs to port Librt-based applications
+onto the Symbian platform quickly and easily. </p> </li>
+<li id="GUID-83754BD8-F2AA-55FC-999F-BF46BDD1CA61"><p>Use the EUser High Level
+(EUserHL) library to do better string handling, resource management, and error
+handling and object creation along the lines of standard C++ practices. EUserHL
+library provides a usability layer to hide away some of the complexities of
+the Symbian platform. </p> </li>
+<li id="GUID-6BEBEC4E-71F5-56F0-A731-DD498446B6BB"><p>Use the Zip Compression
+Library APIs to perform file and stream compression and decompression. </p> </li>
+<li id="GUID-D62D3C16-0C6A-5569-BCD7-546EBF687282"><p>Use the task scheduler
+APIs to develop applications with scheduling options and capabilities. </p> </li>
+<li id="GUID-26FD6D1B-5F7C-5C4B-8474-B5B7D4BB7D0F"><p>Use the Active Backup
+Client APIs to create backup and restore software with complete control of
+the data backed up and restored. </p> </li>
+<li id="GUID-D9B2CA30-9AA0-529C-B531-5B511BD05B7C"><p>Use the HTTP Utilities
+library APIs to extract URI components, construct and modify Uniform Resource
+Indicators (URIs), text utilities, and URI component utilities required to
+work with URIs. </p> </li>
+<li id="GUID-4FC76033-12BC-5D76-AD3F-D4825E3D6C1B"><p>Use the MIME (Multipurpose
+Internet Mail Extension) Recognition Framework APIs to implement data type
+recognition using MIME recognizer plug-ins. </p> </li>
+<li id="GUID-22816C73-E2CC-57FD-BB18-8A3DA071F95B"><p>Use the Basic Application
+Framework Utilities library (BAFL) to in turn use utilities, such as clipboard,
+command-line parser, descriptor array, environment change notifier, incremental
+matcher, resource files, localized names of plug-ins, system sounds and string
+pools. </p> </li>
+<li id="GUID-B4CB6CF9-8022-55A8-9642-2F79306C6653"><p>Use the Base Services
+Utility library (BSUL) to validate messages and handle errors. </p> </li>
+<li id="GUID-F239EF07-F3DC-5C23-8A21-44CDFE798322"><p>Use the Activity Manager
+library to enable clients to monitor user inactivity (idle time) and user
+activity (key press). </p> </li>
+<li id="GUID-FFF66809-C883-570C-A741-9182280B2F7C"><p>Use the System Utility
+library to perform the following tasks: </p> <ul>
+<li id="GUID-62F47958-AFEF-5D09-BF39-88676E8E889B"><p>Retrieve software and
+language package version strings for display purposes. </p> </li>
+<li id="GUID-B3726DF9-7108-5C0A-A713-2B0BAA36051A"><p>Check for free space
+on a disk drive before file creation or writing. </p> </li>
+<li id="GUID-F47C051F-921C-5B72-8498-0D4AB4FB295F"><p>Get device type information
+(phone model) for display purposes. </p> </li>
+</ul> </li>
+</ul> </section>
+<section id="GUID-403DCD77-1F14-4E82-85DE-98419E629A47"><title>Architecture</title> <p>The Generic OS Services module is
+a group of non-related components and libraries that provide OS level services
+to other components of the Symbian platform. The components and libraries
+in Generic OS Services are grouped into the following collections: </p> <ul>
+<li id="GUID-D831C8AB-D3AF-57EB-81CF-E4EF1E57CBED"><p><xref href="GUID-9208E03A-CC7A-57A9-84BD-778B99040842.dita"> Compression
+Libraries</xref>  </p> </li>
+<li><p><xref href="GUID-E2DE2C6F-E071-5E88-96F1-D71DDED84609.dita">Generic Open
+Libraries</xref></p></li>
+<li id="GUID-5F25107F-DF98-5DB1-9D4A-B8A7B68B2919"><p><xref href="GUID-94215E49-605B-51BA-B215-10BDA1A0C013.dita">Generic
+Services</xref>  </p> </li>
+<li id="GUID-FE8F4625-0D24-5113-A72F-B9E70801284F"><p><xref href="GUID-324107D1-6E0B-56DD-BDC0-7296F688A9CF.dita"> Low
+Level Libraries and Frameworks</xref>  </p> </li>
+</ul> <p>The following diagram outlines the Generic OS Services collections
+and components associated with each collection: </p> <fig id="GUID-3DCD7AF8-7355-5752-A569-EA4F9078C739">
+<title>              Collections and components of Generic OS Services   
+        </title>
+<image href="GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e144346_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-842B935E-D653-4EFD-9BB7-2E819BBE17DF"><title>Technologies</title> <p>Generic OS services enables, implements
+or uses the following technologies: </p> <ul>
+<li id="GUID-66896EAF-09A0-5EBB-A496-106F94A924EA"><p> <b>zlib:</b> The <xref href="GUID-5D14ADEC-ED83-5FA4-B551-C57CAE4F79BE.dita">Zip Compression Library</xref> (EZLib)
+provides C++ wrapper classes that encapsulate the functionality of the Open
+Source <xref href="http://en.wikipedia.org/wiki/Zlib" scope="external">zlib</xref> library
+v1.2.3. It provides stream and file compression and decompression functionalities. </p> </li>
+<li id="GUID-EF1DE4A8-CBE1-5DD3-9D89-E2EAC1CC1B29"><p> <b> Standard C++:</b> A
+Standard C++ environment with IOStream and STL (Standard Template Library)
+libraries enables you to develop or port Standard C++ applications or libraries
+quickly and easily onto the Symbian platform. For more information, see the <xref href="GUID-4492D5C1-C64E-5561-8A3F-8D887603B6FB.dita"> Standard C++ Porting Tutorials</xref> section. </p> </li>
+<li id="GUID-95F58286-C65B-5EC3-A432-1C3C5CA02269"><p> <b>P.I.P.S. Is POSIX
+on Symbian Platform (P.I.P.S.):</b> P.I.P.S. provides an API layer, above
+the Symbian platform native APIs, that is more closely aligned with industry
+standard APIs making Symbian software development more accessible to Symbian
+Developers who program using the C language. Symbian Developers can use the
+P.I.P.S. libraries (<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
+to port POSIX-based applications to the Symbian platform. For more information,
+see the <xref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita">P.I.P.S. Porting
+Tutorials</xref> section. </p> </li>
+<li id="GUID-571DD883-A5A6-5A89-9092-47279A521685"><p> <b> POSIX.1b, Real-time
+extensions:</b> The Librt library enables support for POSIX.1b, Real-time
+extensions on the Symbian platform and is based on the Linux Standard Base
+(LSB) 3.1 specification. It covers features such as shared memory, clocks
+and real time emulation for timers. Support for the Librt library on the Symbian
+platform enables you to port Librt-based applications onto the Symbian platform
+quickly and easily. For more information, see the <xref href="GUID-6565B222-4036-5C3D-8319-4CDDA3F2098D.dita">Librt</xref> section </p> </li>
+<li id="GUID-CBF47924-085E-5546-92D8-D9269072B816"><p> <b>MIME (Multipurpose
+Internet Mail Extension):</b> MIME is an internet standard system
+for identifying the type of data in a file or stream. Types can include graphics,
+photos, audio, video files and formatted text. MIME type recognition enables
+devices to identify data in streams or files and start appropriate applications
+automatically. </p> <p>This technology is implemented by the MIME recognition
+framework component. The MIME recognition framework implements data recognition
+using MIME recogniser plug-ins. For more information, see the <xref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita">MIME
+Recognition Framework</xref> section. </p> </li>
+<li id="GUID-51BFDE39-44E7-51E6-82BC-2F45738A0ADD"><p> <b>ECom Plug-in:</b> The
+Plug-in (ECom) framework is a generic framework that enables registration
+and discovery of plug-ins, and the loading of an appropriate plug-in. The
+Plug-In framework is intended to provide a common and system-wide mechanism
+for instantiating a dynamically determined component. For more information,
+see the <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">Plug-in Framework</xref> section. </p> </li>
+</ul> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e169201_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-F740BA72-B00E-5D98-BD0F-5937F60460BC_d0e175802_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F" xml:lang="en"><title>Doubly
-linked lists</title><shortdesc>This document is a introduction to doubly linked lists.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A doubly linked list is one where each element has pointers forwards to
-the next element and backwards to the previous element. The list is circular
-- the last element points forwards to an anchor point, and the anchor point
-points back to the last element. </p>
-<p>Anchor points are always referred to as <i>headers</i>.</p>
-<p>A doubly linked list is useful for maintaining a circular queue of items.</p>
-<fig id="GUID-1D25A6C6-B294-554E-9EDD-20F8BA05FB07">
-<image href="GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e217308_href.png" placement="inline"/>
-</fig>
-<p>Doubly linked lists involve the creation and use of the classes:</p>
-<ul>
-<li id="GUID-68B5EDB3-EE3B-5186-9F79-CE1F307B8DA1"><p><codeph>TDblQueLink</codeph> </p> </li>
-<li id="GUID-5F281C65-DD6E-5862-A465-C11D8A515CFA"><p><codeph>TDblQue&lt;class
-T&gt;</codeph> </p> </li>
-<li id="GUID-7A9DD0CC-4F91-5C24-85FE-D91696257A5C"><p><codeph>TDblQueIter&lt;class
-T</codeph> </p> </li>
-</ul>
-<p>In practice, these classes are almost always used as components of other
-classes.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F765C7EB-A8C6-50C0-B350-85BE04C8984F" xml:lang="en"><title>Doubly
+linked lists</title><shortdesc>This document is a introduction to doubly linked lists.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A doubly linked list is one where each element has pointers forwards to
+the next element and backwards to the previous element. The list is circular
+- the last element points forwards to an anchor point, and the anchor point
+points back to the last element. </p>
+<p>Anchor points are always referred to as <i>headers</i>.</p>
+<p>A doubly linked list is useful for maintaining a circular queue of items.</p>
+<fig id="GUID-1D25A6C6-B294-554E-9EDD-20F8BA05FB07">
+<image href="GUID-B0391618-0681-5E4E-94BE-C0E24B862AEF_d0e213571_href.png" placement="inline"/>
+</fig>
+<p>Doubly linked lists involve the creation and use of the classes:</p>
+<ul>
+<li id="GUID-68B5EDB3-EE3B-5186-9F79-CE1F307B8DA1"><p><codeph>TDblQueLink</codeph> </p> </li>
+<li id="GUID-5F281C65-DD6E-5862-A465-C11D8A515CFA"><p><codeph>TDblQue&lt;class
+T&gt;</codeph> </p> </li>
+<li id="GUID-7A9DD0CC-4F91-5C24-85FE-D91696257A5C"><p><codeph>TDblQueIter&lt;class
+T</codeph> </p> </li>
+</ul>
+<p>In practice, these classes are almost always used as components of other
+classes.</p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F77CC49A-904D-486B-8D16-972525EC34D5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F77CC49A-904D-486B-8D16-972525EC34D5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F77CC49A-904D-486B-8D16-972525EC34D5" xml:lang="en"><title>Data
-query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>A Data query requests the user to type in some alphanumeric or numeric
-information, such as a name or a phone number.</p>
-<p>The query contains a prompt text and a user input field. The input field
-can have any type of an editor, depending on the context, so that the input
-may be restricted to e.g. numeric data, date or time only. Both the prompt
-and input fields can be longer than one line when necessary.</p>
-<p>The softkeys of a Data query are <b>OK</b> on the left for accepting the
-input, and <b>Cancel</b> on the right softkey for discarding the query. The
-Selection key accepts the input in the same way as the left softkey.</p>
-<p>The Clear key is used for deleting characters and for that purpose only.</p>
-<fig id="GUID-B2C1C6E7-9389-4F8E-A38D-A99B78696706">
-<title>Data query. </title>
-<image href="GUID-9C848E60-DD02-4787-90F3-1857AC3C3D1A_d0e68886_href.png" scale="40" placement="inline"/>
-</fig>
-<section><title>Using data queries in
-C++ applications</title><p>For implementation information, see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F77CC49A-904D-486B-8D16-972525EC34D5" xml:lang="en"><title>Data
+query</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>A Data query requests the user to type in some alphanumeric or numeric
+information, such as a name or a phone number.</p>
+<p>The query contains a prompt text and a user input field. The input field
+can have any type of an editor, depending on the context, so that the input
+may be restricted to, for example, numeric data, date or time only. Both the
+prompt and input fields can be longer than one line when necessary.</p>
+<p>The softkeys of a Data query are <b>OK</b> on the left for accepting the
+input, and <b>Cancel</b> on the right softkey for discarding the query. The
+Selection key accepts the input in the same way as the left softkey.</p>
+<p>The Clear key is used for deleting characters and for that purpose only.</p>
+<fig id="GUID-9955336F-88DB-4790-AB6F-0FA08F18F027">
+<title>Data query. </title>
+<image href="GUID-36221068-4E6D-4E03-AF9A-AD9465F1C6B6_d0e63652_href.png" placement="inline"/>
+</fig>
+<section id="GUID-A9C2671A-5375-4BF6-A9A1-D62734A0597C"><title>Using
+data queries in applications</title><p>For implementation information,
+see <xref href="GUID-7B275129-5EF7-4B27-B603-3BDE2C650A93.dita">Queries</xref>.</p></section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e173024_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F78F12AE-64CA-50BD-A715-8F254FBDB793_d0e179619_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2"><title>Creating an Implicitly Bound Socket</title><shortdesc>This topic describes how create an implicitly bound socket. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-B46FE3BB-A098-5234-86F4-DF6332B6497E"><p>An application opens a socket using the default interface connection and binds to a port and IP address of the connection. The application receives inbound traffic only from the interface the socket is bound to. </p> <p>For example, an application opens an implicit UDP socket and listens on port 8000. The UDP socket binds to interface IP address <codeph>10.253.4.134</codeph>. The UDP socket must receive data packets from this interface only. </p> </li> <li id="GUID-D83D0586-F746-5099-8778-248C3B8AD9EC"><p>If an application opens a socket and does not bind to a port or IP address of the default interface connection, then the application receives inbound traffic from multiple interfaces. </p> <p>For example, if an application opens an implicit UDP socket and does not bind the port 8000 to the IP address of the default interface connection, then the application receives inbound traffic from all the interfaces. </p> </li> </ul> <example><title>Implicit binding example</title> <p>Client B creates a socket with implicit binding without specifying the interface connection. </p> <codeblock id="GUID-A2F39285-5934-5FDC-8E94-1EDBD7A7446E" xml:space="preserve">
-server = RSocketServ.Connect();
-socket1 = RSocket.Open(server);
-</codeblock> <p>ESock creates the socket within the default connection and subconnection. </p> <fig id="GUID-31F625B2-DB7F-51F8-AB6D-F06925DF1A64"><image href="GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e117503_href.png" placement="inline"/></fig> </example> </conbody><related-links><link href="GUID-D1BCE2D9-04B5-5C39-A50B-C5BBDAAFEFED.dita"><linktext>Socket Binding</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F79A3DD7-DB91-545F-8165-F1F2DD6D0AD2"><title>Creating an Implicitly Bound Socket</title><shortdesc>This topic describes how create an implicitly bound socket. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-B46FE3BB-A098-5234-86F4-DF6332B6497E"><p>An application opens a socket using the default interface connection and binds to a port and IP address of the connection. The application receives inbound traffic only from the interface the socket is bound to. </p> <p>For example, an application opens an implicit UDP socket and listens on port 8000. The UDP socket binds to interface IP address <codeph>10.253.4.134</codeph>. The UDP socket must receive data packets from this interface only. </p> </li> <li id="GUID-D83D0586-F746-5099-8778-248C3B8AD9EC"><p>If an application opens a socket and does not bind to a port or IP address of the default interface connection, then the application receives inbound traffic from multiple interfaces. </p> <p>For example, if an application opens an implicit UDP socket and does not bind the port 8000 to the IP address of the default interface connection, then the application receives inbound traffic from all the interfaces. </p> </li> </ul> <example><title>Implicit binding example</title> <p>Client B creates a socket with implicit binding without specifying the interface connection. </p> <codeblock id="GUID-A2F39285-5934-5FDC-8E94-1EDBD7A7446E" xml:space="preserve">
+server = RSocketServ.Connect();
+socket1 = RSocket.Open(server);
+</codeblock> <p>ESock creates the socket within the default connection and subconnection. </p> <fig id="GUID-31F625B2-DB7F-51F8-AB6D-F06925DF1A64"><image href="GUID-77F02412-00E1-59F9-A875-3147529F83F5_d0e110965_href.png" placement="inline"/></fig> </example> </conbody><related-links><link href="GUID-D1BCE2D9-04B5-5C39-A50B-C5BBDAAFEFED.dita"><linktext>Socket Binding</linktext> </link> </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,181 +1,181 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66" xml:lang="en"><title>XML
-Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The XML Framework is a collection of components for event-based XML parsing
-and provides content-processing architecture. </p>
-<section><title>Purpose</title> <p>The XML Framework provides configurable
-features for parsing XML and <xref href="http://www.w3.org/TR/wbxml/" scope="external">WBXML</xref> (WAP
-Binary XML), with options for validating against a specification and auto-correcting
-for spelling errors in the validated text, using a single interface. It is
-based on the <xref href="http://www.saxproject.org" scope="external">SAX</xref> (Simple
-API for XML) specification. </p> </section>
-<section><title>Required background</title> <p>You must have a basic understanding
-on XML before using XML Framework. </p> </section>
-<section><title>Key concepts</title> <p>The following are the key concepts
-of XML Framework: </p><p><b>Attribute</b></p><p>A name-value pair separated
-by an equals sign, for example <codeph>author="Jane Austen"</codeph>  </p><p><b>Attribute
-type </b></p><p>One of certain data types defined for attributes, for instance <codeph>CDATA</codeph>. </p><p><b>Client</b></p><p>An
-application which uses the XML framework for parsing or generating a document. </p><p><b>Document
-Type Definition (DTD) </b></p><p>A document which defines a particular use
-of XML entities (the names, attributes and values permitted). </p><p><b>Extension</b></p><p>WBXML
-extends XML syntax with extension tokens which are used differently by different
-applications. For example, extension token is used to refer to a string table
-created specifically for each message and transmitted in the introduction
-of the message. </p><p><b>Parser</b></p><p>It is an interface to the XML framework
-which allows a client to access the parser plug-ins, which are specific for
-a mark-up language. For example, XML Expat Parser and WBXML Parser. </p><p><b>String
-dictionary collection</b></p><p>A class that holds a collection of string
-dictionaries. </p><p><b>String dictionary plug-ins </b></p><p>The XML Framework
-allows strings to be stored in DTD document, XML namespace or WBXML code page
-in an ECOM plug-in that could be accessed as required by the parser and the
-client. These plug-ins are referred as string dictionary plug-ins. </p><p><b>String
-pool</b></p><p>A string pool is a mechanism for storing strings in a particular
-way using which the strings can be compared quickly. </p><p><b>String table</b></p><p>A
-WBXML document is encoded and decoded using a table of frequently encountered
-strings which the body of the document references by index to compress the
-data. </p><p><b>Uniform Resource Identifier (URI)</b></p><p>The web address
-associated with a prefix. For instance, <codeph>http://www.w3.org/XML/1998/namespace</codeph>. </p><p><b>WBXML</b></p><p>WAP
-Binary XML (WBXML) is a binary representation of XML. It was developed by
-the Open Mobile Alliance as a standard to allow XML documents to be transmitted
-in a compact manner over mobile networks and was proposed as an addition to
-the World Wide Web Consortium's Wireless Application Protocol family of standards. </p> </section>
-<section><title>Architecture</title> <p>The following diagram illustrates
-the XML framework, consisting of client and a parser: </p> <fig id="GUID-9EE24AE6-17F1-59A2-9AF8-9A1068393053">
-<title>              Block diagram of XML framework            </title>
-<image href="GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432397_href.png" placement="inline"/>
-</fig> <p>The XML framework consists of classes which model the main constituents
-of the architecture - the framework as a whole, the parser plug-ins and extensions
-to XML, the content processor chain and the content handler mechanism. </p> <p>The
-XML and WBXML parsers convert the contents of a document to UTF-8 format.
-This is to ensure that extended characters are not lost from the document
-by the String Pool. Expat is the engine behind the XML parser plug-in. </p> <p>The
-XML Framework allows strings to be stored for a particular DTD, XML namespace
-or WBXML codepage in an ECOM plug-in that can be accessed when requireded
-by the Parser and the Client. These plug-ins are referred as String Dictionary
-Plug-ins and they are managed through a string dictionary collection object.
-See <xref href="GUID-0D16866C-F46B-5A2B-B974-324278588A1B.dita">String Dictionary</xref>  </p> <p>Libxml2
-provides XML processing, parsing and validation APIs. See <xref href="GUID-0129AE17-B171-5CD5-8542-1DB738CBAB8B.dita">libxml2</xref>. </p> <p>Plug-in
-1 and Plug-in 2 are examples of optional processors, which may be chained
-together with the parser output to allow further processing of the data, before
-the client receives it. Such plug-ins can be a DTD validator or a document
-auto-corrector. The chain is not limited to just two plug-ins. </p> <p><b>Parser
-framework</b> </p> <p>The XML framework contains Parser framework which is
-represented by the <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> class. A client with an XML
-document to be parsed creates a <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> object and calls
-its parse functions. <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> obtains the data about plug-ins
-and the document to be parsed from<xref href="GUID-A6CF939C-110C-3FA4-8C2E-0B48C04D9CFB.dita"><apiname>CMatchData</apiname></xref> and <xref href="GUID-D79A2F59-8DC1-3493-92F6-2E1337CD9405.dita"><apiname>RDocumentParameters</apiname></xref> classes
-respectively. </p> <p>The parser framework conforms to the event-based SAX
-specification. It outputs an event when it starts or finishes reading one
-of the following: </p> <ul>
-<li id="GUID-A229D260-A15A-5EC6-8808-60577D988073"><p>a document </p> </li>
-<li id="GUID-4ED3BF2E-0CB8-54E3-B332-C60A032FD8F5"><p>a start tag </p> </li>
-<li id="GUID-57CB6A28-6F7B-5D75-AB59-BA4429374D23"><p>an end tag </p> </li>
-<li id="GUID-2CB3BFDA-425D-5936-B2D0-1A5459D56813"><p>a prefix mapping </p> </li>
-<li id="GUID-181F5F9F-D9D2-5E42-96F4-BACD64B2ABBF"><p>a processing instruction </p> </li>
-<li id="GUID-FB122F10-A946-5661-8A9B-A42877FB0DAC"><p>character data </p> </li>
-<li id="GUID-C0C9C2C4-862B-55CF-904F-E761518275DB"><p>ignorable white space </p> </li>
-</ul> <p>For more information on XML-related concepts, refer to W3C or similar
-sources. </p> <p><b>Parser plug-ins</b> </p> <p>The <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> is
-the interface to the XML framework allowing the client to access the parser
-plug-ins, each one of which is specific to a mark-up language (e.g. XML, WBXML).
-Individual parser plug-in implements the <xref href="GUID-6F334B00-8026-3FA3-AE96-B0A511030B7B.dita"><apiname>MParser</apiname></xref> interface.
-It is associated through the <xref href="GUID-5F929E9F-E895-3DA6-8072-28C4B8B1CF81.dita"><apiname>TParserInitParams</apiname></xref> class, with
-a character set converter (to convert other formats to Unicode), a string
-dictionary and an element stack. </p> <p>The Symbian platform framework is
-delivered with three parser plug-ins, two for XML and one for WBXML. </p> <ul>
-<li id="GUID-CAAD5966-F37D-5A9C-A240-911B6683B315"><p>The first XML parser
-consists of <xref href="GUID-278C5360-5023-3406-98B1-BEB7AD2A4A9D.dita"><apiname>CXmlParser</apiname></xref> class, which is wrapped around the <xref href="GUID-D7864E56-D87D-3EC0-BA5F-804BE8F532FF.dita"><apiname>CExpat</apiname></xref> class,
-an implementation of the stream-based Expat parser. </p> </li>
-<li id="GUID-4A7DAA35-DD92-547F-BF81-232521F21A79"><p>The second XML parser
-consists of <xref href="GUID-F6E8B374-12D7-34FE-A1AA-F8B2BCA45B0A.dita"><apiname>CXMLEngineSAXPlugin</apiname></xref> class, which encapsulates
-the SAX parser of the <codeph>libxml2</codeph> component. It is not available
-if the Symbian platform build excludes this component. </p> </li>
-<li id="GUID-A5342749-34E7-5AD4-A5E4-FD46703F4AC7"><p>The WBXML parser is
-implemented as the <xref href="GUID-98F7BF57-BDC8-3BA4-9141-7DEDFFF64DB0.dita"><apiname>CWmxmlParser</apiname></xref> class. </p> </li>
-</ul> <p><b>Extensions to XML</b> </p> <p>The XML framework provides extensions
-to XML. At present WBXML is implemented. WBXML requires use of string dictionaries
-and extension tokens to store the element strings specific to the WBXML, which
-are represented by the <xref href="GUID-094A4884-182E-3A10-80F5-85A925020BC1.dita"><apiname>RStringDictionaryCollection</apiname></xref>, <xref href="GUID-FF04F0FE-771D-3197-BA3F-BB34C78E2F65.dita"><apiname>MWbxmlExtensionHandler</apiname></xref> and <xref href="GUID-1D0F59D7-574C-3485-9AB7-499712E5F20B.dita"><apiname>TExtensionTokens</apiname></xref> classes. </p> <p><b>Content processors</b> </p> <p>Content processors are
-plug-ins which perform further operations on the output of a parser plug-in.
-They implement the <xref href="GUID-7942EDC6-6571-3423-8ECA-D3DB68A78CB6.dita"><apiname>MContentProcessor</apiname></xref> interface and are
-associated through the <xref href="GUID-892978EC-1BE4-3356-ADB1-1E7EAB83C686.dita"><apiname>TContentProcessorInitParams</apiname></xref> class,
-with a string dictionary and element stack. They are organised into chains
-by the <xref href="GUID-0DFBB9EA-5A0E-3B4F-AD60-3CCD35090B40.dita"><apiname>MContentSource</apiname></xref> class which directs the output of
-each plug-in to the next plug-in in the chain. </p> <p><b>Content handlers</b> </p> <p>A
-client application which is designed to react to the output of the XML framework
-event must implement the <xref href="GUID-A6B8386B-29F6-3BEC-9D77-D8E0900DEAC2.dita"><apiname>MContentHandler</apiname></xref> interface. The
-functions to be implemented correspond to the SAX specification discussed
-in the Parser Framework section. </p> </section>
-<section><title>APIs</title> <p>The XML Framework exports the following APIs: </p> <table id="GUID-7EBF7AA5-B11F-5C40-93A7-685E8714DE92">
-<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
-<thead>
-<row>
-<entry>API</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p> <xref href="GUID-D7864E56-D87D-3EC0-BA5F-804BE8F532FF.dita"><apiname>CExpat</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates the Expat XML parser. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-278C5360-5023-3406-98B1-BEB7AD2A4A9D.dita"><apiname>CXmlParser</apiname></xref>  </p> </entry>
-<entry><p>Implementation of the stream-based Expat parser. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-F6E8B374-12D7-34FE-A1AA-F8B2BCA45B0A.dita"><apiname>CXMLEngineSAXPlugin</apiname></xref>  </p> </entry>
-<entry><p>Encapsulates the SAX parser of the <codeph>libxml2</codeph> component. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref>  </p> </entry>
-<entry><p>Represents the entire parser framework. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-A6CF939C-110C-3FA4-8C2E-0B48C04D9CFB.dita"><apiname>CMatchData</apiname></xref>  </p> </entry>
-<entry><p>Consists of the data of the plug-ins. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-98F7BF57-BDC8-3BA4-9141-7DEDFFF64DB0.dita"><apiname>CWmxmlParser</apiname></xref>  </p> </entry>
-<entry><p>WBXML parser implementation. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-D79A2F59-8DC1-3493-92F6-2E1337CD9405.dita"><apiname>RDocumentParameters</apiname></xref>  </p> </entry>
-<entry><p>Consists of the data about the document to be parsed. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-AE53784D-B405-34D8-9A93-ACDE6F8ECA44.dita"><apiname>RElementStack</apiname></xref>  </p> </entry>
-<entry><p>Data structure used to store XML elements and check the tag ordering. </p> </entry>
-</row>
-<row>
-<entry><p> <xref href="GUID-094A4884-182E-3A10-80F5-85A925020BC1.dita"><apiname>RStringDictionaryCollection</apiname></xref>  </p> </entry>
-<entry><p>Holds a collection of dictionaries requested by the user. </p> </entry>
-</row>
-</tbody>
-</tgroup>
-</table> </section>
-<section><title>Typical uses</title> <p>The following tasks can be performed
-using XML Framework: </p> <ul>
-<li id="GUID-0FD3D44F-83D3-57C4-9C3E-063450A8078E"><p>Parsing an XML document. </p> </li>
-<li id="GUID-9C4511A4-49FE-53FA-83A4-9B55D58B0905"><p>Choosing a parser plug-in. </p> </li>
-<li id="GUID-6B09BFFF-8BBC-5FDC-B1CE-339C893C5164"><p>Using content processor. </p> </li>
-<li id="GUID-EC907C49-599B-5C60-B212-74AB22DEA759"><p>Writing a parser plug-in. </p> </li>
-<li id="GUID-A86A66BB-0C80-5760-B7C3-7C4E276C5EFF"><p>Customising a parser
-plug-in. </p> </li>
-<li id="GUID-3F689A67-D8DC-50EF-9D49-476417E503B6"><p>Creating a resource
-file for a parser plug-in. </p> </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-4A9255D1-42A4-57FA-A4B4-42C552964047.dita"><linktext>XML Framework
-Tutorials</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F79E4F18-19E2-577E-8409-8B82BD48AC66" xml:lang="en"><title>XML
+Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The XML Framework is a collection of components for event-based XML parsing
+and provides content-processing architecture. </p>
+<section><title>Purpose</title> <p>The XML Framework provides configurable
+features for parsing XML and <xref href="http://www.w3.org/TR/wbxml/" scope="external">WBXML</xref> (WAP
+Binary XML), with options for validating against a specification and auto-correcting
+for spelling errors in the validated text, using a single interface. It is
+based on the <xref href="http://www.saxproject.org" scope="external">SAX</xref> (Simple
+API for XML) specification. </p> </section>
+<section><title>Required background</title> <p>You must have a basic understanding
+on XML before using XML Framework. </p> </section>
+<section><title>Key concepts</title> <p>The following are the key concepts
+of XML Framework: </p><p><b>Attribute</b></p><p>A name-value pair separated
+by an equals sign, for example <codeph>author="Jane Austen"</codeph>  </p><p><b>Attribute
+type </b></p><p>One of certain data types defined for attributes, for instance <codeph>CDATA</codeph>. </p><p><b>Client</b></p><p>An
+application which uses the XML framework for parsing or generating a document. </p><p><b>Document
+Type Definition (DTD) </b></p><p>A document which defines a particular use
+of XML entities (the names, attributes and values permitted). </p><p><b>Extension</b></p><p>WBXML
+extends XML syntax with extension tokens which are used differently by different
+applications. For example, extension token is used to refer to a string table
+created specifically for each message and transmitted in the introduction
+of the message. </p><p><b>Parser</b></p><p>It is an interface to the XML framework
+which allows a client to access the parser plug-ins, which are specific for
+a mark-up language. For example, XML Expat Parser and WBXML Parser. </p><p><b>String
+dictionary collection</b></p><p>A class that holds a collection of string
+dictionaries. </p><p><b>String dictionary plug-ins </b></p><p>The XML Framework
+allows strings to be stored in DTD document, XML namespace or WBXML code page
+in an ECOM plug-in that could be accessed as required by the parser and the
+client. These plug-ins are referred as string dictionary plug-ins. </p><p><b>String
+pool</b></p><p>A string pool is a mechanism for storing strings in a particular
+way using which the strings can be compared quickly. </p><p><b>String table</b></p><p>A
+WBXML document is encoded and decoded using a table of frequently encountered
+strings which the body of the document references by index to compress the
+data. </p><p><b>Uniform Resource Identifier (URI)</b></p><p>The web address
+associated with a prefix. For instance, <codeph>http://www.w3.org/XML/1998/namespace</codeph>. </p><p><b>WBXML</b></p><p>WAP
+Binary XML (WBXML) is a binary representation of XML. It was developed by
+the Open Mobile Alliance as a standard to allow XML documents to be transmitted
+in a compact manner over mobile networks and was proposed as an addition to
+the World Wide Web Consortium's Wireless Application Protocol family of standards. </p> </section>
+<section><title>Architecture</title> <p>The following diagram illustrates
+the XML framework, consisting of client and a parser: </p> <fig id="GUID-9EE24AE6-17F1-59A2-9AF8-9A1068393053">
+<title>              Block diagram of XML framework            </title>
+<image href="GUID-CA1CE18E-DB40-5608-BE09-3767FB094AB2_d0e432235_href.png" placement="inline"/>
+</fig> <p>The XML framework consists of classes which model the main constituents
+of the architecture - the framework as a whole, the parser plug-ins and extensions
+to XML, the content processor chain and the content handler mechanism. </p> <p>The
+XML and WBXML parsers convert the contents of a document to UTF-8 format.
+This is to ensure that extended characters are not lost from the document
+by the String Pool. Expat is the engine behind the XML parser plug-in. </p> <p>The
+XML Framework allows strings to be stored for a particular DTD, XML namespace
+or WBXML codepage in an ECOM plug-in that can be accessed when requireded
+by the Parser and the Client. These plug-ins are referred as String Dictionary
+Plug-ins and they are managed through a string dictionary collection object.
+See <xref href="GUID-0D16866C-F46B-5A2B-B974-324278588A1B.dita">String Dictionary</xref>  </p> <p>Libxml2
+provides XML processing, parsing and validation APIs. See <xref href="GUID-0129AE17-B171-5CD5-8542-1DB738CBAB8B.dita">libxml2</xref>. </p> <p>Plug-in
+1 and Plug-in 2 are examples of optional processors, which may be chained
+together with the parser output to allow further processing of the data, before
+the client receives it. Such plug-ins can be a DTD validator or a document
+auto-corrector. The chain is not limited to just two plug-ins. </p> <p><b>Parser
+framework</b> </p> <p>The XML framework contains Parser framework which is
+represented by the <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> class. A client with an XML
+document to be parsed creates a <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> object and calls
+its parse functions. <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> obtains the data about plug-ins
+and the document to be parsed from<xref href="GUID-A6CF939C-110C-3FA4-8C2E-0B48C04D9CFB.dita"><apiname>CMatchData</apiname></xref> and <xref href="GUID-D79A2F59-8DC1-3493-92F6-2E1337CD9405.dita"><apiname>RDocumentParameters</apiname></xref> classes
+respectively. </p> <p>The parser framework conforms to the event-based SAX
+specification. It outputs an event when it starts or finishes reading one
+of the following: </p> <ul>
+<li id="GUID-A229D260-A15A-5EC6-8808-60577D988073"><p>a document </p> </li>
+<li id="GUID-4ED3BF2E-0CB8-54E3-B332-C60A032FD8F5"><p>a start tag </p> </li>
+<li id="GUID-57CB6A28-6F7B-5D75-AB59-BA4429374D23"><p>an end tag </p> </li>
+<li id="GUID-2CB3BFDA-425D-5936-B2D0-1A5459D56813"><p>a prefix mapping </p> </li>
+<li id="GUID-181F5F9F-D9D2-5E42-96F4-BACD64B2ABBF"><p>a processing instruction </p> </li>
+<li id="GUID-FB122F10-A946-5661-8A9B-A42877FB0DAC"><p>character data </p> </li>
+<li id="GUID-C0C9C2C4-862B-55CF-904F-E761518275DB"><p>ignorable white space </p> </li>
+</ul> <p>For more information on XML-related concepts, refer to W3C or similar
+sources. </p> <p><b>Parser plug-ins</b> </p> <p>The <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref> is
+the interface to the XML framework allowing the client to access the parser
+plug-ins, each one of which is specific to a mark-up language (e.g. XML, WBXML).
+Individual parser plug-in implements the <xref href="GUID-6F334B00-8026-3FA3-AE96-B0A511030B7B.dita"><apiname>MParser</apiname></xref> interface.
+It is associated through the <xref href="GUID-5F929E9F-E895-3DA6-8072-28C4B8B1CF81.dita"><apiname>TParserInitParams</apiname></xref> class, with
+a character set converter (to convert other formats to Unicode), a string
+dictionary and an element stack. </p> <p>The Symbian platform framework is
+delivered with three parser plug-ins, two for XML and one for WBXML. </p> <ul>
+<li id="GUID-CAAD5966-F37D-5A9C-A240-911B6683B315"><p>The first XML parser
+consists of <xref href="GUID-278C5360-5023-3406-98B1-BEB7AD2A4A9D.dita"><apiname>CXmlParser</apiname></xref> class, which is wrapped around the <xref href="GUID-D7864E56-D87D-3EC0-BA5F-804BE8F532FF.dita"><apiname>CExpat</apiname></xref> class,
+an implementation of the stream-based Expat parser. </p> </li>
+<li id="GUID-4A7DAA35-DD92-547F-BF81-232521F21A79"><p>The second XML parser
+consists of <xref href="GUID-F6E8B374-12D7-34FE-A1AA-F8B2BCA45B0A.dita"><apiname>CXMLEngineSAXPlugin</apiname></xref> class, which encapsulates
+the SAX parser of the <codeph>libxml2</codeph> component. It is not available
+if the Symbian platform build excludes this component. </p> </li>
+<li id="GUID-A5342749-34E7-5AD4-A5E4-FD46703F4AC7"><p>The WBXML parser is
+implemented as the <xref href="GUID-98F7BF57-BDC8-3BA4-9141-7DEDFFF64DB0.dita"><apiname>CWmxmlParser</apiname></xref> class. </p> </li>
+</ul> <p><b>Extensions to XML</b> </p> <p>The XML framework provides extensions
+to XML. At present WBXML is implemented. WBXML requires use of string dictionaries
+and extension tokens to store the element strings specific to the WBXML, which
+are represented by the <xref href="GUID-094A4884-182E-3A10-80F5-85A925020BC1.dita"><apiname>RStringDictionaryCollection</apiname></xref>, <xref href="GUID-FF04F0FE-771D-3197-BA3F-BB34C78E2F65.dita"><apiname>MWbxmlExtensionHandler</apiname></xref> and <xref href="GUID-1D0F59D7-574C-3485-9AB7-499712E5F20B.dita"><apiname>TExtensionTokens</apiname></xref> classes. </p> <p><b>Content processors</b> </p> <p>Content processors are
+plug-ins which perform further operations on the output of a parser plug-in.
+They implement the <xref href="GUID-7942EDC6-6571-3423-8ECA-D3DB68A78CB6.dita"><apiname>MContentProcessor</apiname></xref> interface and are
+associated through the <xref href="GUID-892978EC-1BE4-3356-ADB1-1E7EAB83C686.dita"><apiname>TContentProcessorInitParams</apiname></xref> class,
+with a string dictionary and element stack. They are organised into chains
+by the <xref href="GUID-0DFBB9EA-5A0E-3B4F-AD60-3CCD35090B40.dita"><apiname>MContentSource</apiname></xref> class which directs the output of
+each plug-in to the next plug-in in the chain. </p> <p><b>Content handlers</b> </p> <p>A
+client application which is designed to react to the output of the XML framework
+event must implement the <xref href="GUID-A6B8386B-29F6-3BEC-9D77-D8E0900DEAC2.dita"><apiname>MContentHandler</apiname></xref> interface. The
+functions to be implemented correspond to the SAX specification discussed
+in the Parser Framework section. </p> </section>
+<section><title>APIs</title> <p>The XML Framework exports the following APIs: </p> <table id="GUID-7EBF7AA5-B11F-5C40-93A7-685E8714DE92">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<thead>
+<row>
+<entry>API</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p> <xref href="GUID-D7864E56-D87D-3EC0-BA5F-804BE8F532FF.dita"><apiname>CExpat</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates the Expat XML parser. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-278C5360-5023-3406-98B1-BEB7AD2A4A9D.dita"><apiname>CXmlParser</apiname></xref>  </p> </entry>
+<entry><p>Implementation of the stream-based Expat parser. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F6E8B374-12D7-34FE-A1AA-F8B2BCA45B0A.dita"><apiname>CXMLEngineSAXPlugin</apiname></xref>  </p> </entry>
+<entry><p>Encapsulates the SAX parser of the <codeph>libxml2</codeph> component. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-3C824E3B-68AB-31C5-A3D7-26A73B53D076.dita"><apiname>CParser</apiname></xref>  </p> </entry>
+<entry><p>Represents the entire parser framework. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-A6CF939C-110C-3FA4-8C2E-0B48C04D9CFB.dita"><apiname>CMatchData</apiname></xref>  </p> </entry>
+<entry><p>Consists of the data of the plug-ins. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-98F7BF57-BDC8-3BA4-9141-7DEDFFF64DB0.dita"><apiname>CWmxmlParser</apiname></xref>  </p> </entry>
+<entry><p>WBXML parser implementation. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-D79A2F59-8DC1-3493-92F6-2E1337CD9405.dita"><apiname>RDocumentParameters</apiname></xref>  </p> </entry>
+<entry><p>Consists of the data about the document to be parsed. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-AE53784D-B405-34D8-9A93-ACDE6F8ECA44.dita"><apiname>RElementStack</apiname></xref>  </p> </entry>
+<entry><p>Data structure used to store XML elements and check the tag ordering. </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-094A4884-182E-3A10-80F5-85A925020BC1.dita"><apiname>RStringDictionaryCollection</apiname></xref>  </p> </entry>
+<entry><p>Holds a collection of dictionaries requested by the user. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section><title>Typical uses</title> <p>The following tasks can be performed
+using XML Framework: </p> <ul>
+<li id="GUID-0FD3D44F-83D3-57C4-9C3E-063450A8078E"><p>Parsing an XML document. </p> </li>
+<li id="GUID-9C4511A4-49FE-53FA-83A4-9B55D58B0905"><p>Choosing a parser plug-in. </p> </li>
+<li id="GUID-6B09BFFF-8BBC-5FDC-B1CE-339C893C5164"><p>Using content processor. </p> </li>
+<li id="GUID-EC907C49-599B-5C60-B212-74AB22DEA759"><p>Writing a parser plug-in. </p> </li>
+<li id="GUID-A86A66BB-0C80-5760-B7C3-7C4E276C5EFF"><p>Customising a parser
+plug-in. </p> </li>
+<li id="GUID-3F689A67-D8DC-50EF-9D49-476417E503B6"><p>Creating a resource
+file for a parser plug-in. </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-4A9255D1-42A4-57FA-A4B4-42C552964047.dita"><linktext>XML Framework
+Tutorials</linktext></link>
 </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e70843_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7A17E65-CB2D-41D3-9404-1A7D7F55FABC_d0e75876_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e79126_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7BFE6E3-0EEE-536C-8411-65D8F5FEBF2E_d0e85838_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7C762AA-3961-4739-ADD1-346DBF7CD7F8-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F7C762AA-3961-4739-ADD1-346DBF7CD7F8_d0e82262_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e36154_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F7C9730D-7A41-4EE3-881C-393BB52B99C8_d0e41721_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16" xml:lang="en"><title>Standard
-C++ Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-A42A3956-597C-45B5-8A58-CEDE2BDD800C"><title>Purpose</title> <p>Standard C++ support on the Symbian platform
-helps to port existing Standard C++ applications onto the Symbian platform
-quickly and easily. Also, if you have a good understanding of Standard C++
-and STL, you can easily develop a Standard C++ application or library using
-the Standard C++ environment supported on the Symbian platform. </p> </section>
-<section id="GUID-C6BD4B3F-6147-4621-B0D2-EEEAA17720C1"><title>Required background</title> <p>To use the Standard C++ environment
-supported on the Symbian platform you need a good understanding of C++ and
-STL. For complete information about STL, see <xref href="http://en.wikipedia.org/wiki/Standard_Template_Library" scope="external">Wikipedia</xref>. </p> <p> <b>Important:</b> Symbian is not
-responsible for the information available on external websites. </p> </section>
-<section id="GUID-FD370B42-AB5B-4D9C-A592-A95AD16AEADD"><title>Architectural relationships</title> <p>The following image
-illustrates how Standard C++ interacts with the Symbian platform and P.I.P.S.
-libraries: </p> <fig id="GUID-52C870F7-6368-588D-BE3B-51F35D9DF6AF">
-<title>              Standard C++ on the Symbian platform            </title>
-<image href="GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e165376_href.jpg" placement="inline"/>
-</fig> </section>
-</conbody><related-links>
-<link href="GUID-D6BEAF0D-844D-51F4-8DB7-FB1D60E17FE3.dita"><linktext>Copyright
-Acknowledgments for Standard C++                 (STLport)</linktext></link>
-<link href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita"><linktext>Standard
-C++ Support on the Symbian Platform</linktext></link>
-<link href="GUID-CDE8CD85-8467-5B36-A0AC-41D1D98151CA.dita"><linktext>Developing
-Applications or Libraries                 Using Standard C++</linktext></link>
-<link href="GUID-E331B72B-84AF-558A-9B8F-73E5E50B58C7.dita"><linktext>Building
-a Standard C++ Application or                 Library</linktext></link>
-<link href="GUID-D32E52C9-F05C-5F1E-8B49-243D555C353C.dita"><linktext>Known Issues</linktext>
-</link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F7FEB759-E64D-5B6D-9017-C5E982E4FC16" xml:lang="en"><title>Standard
+C++ Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-A42A3956-597C-45B5-8A58-CEDE2BDD800C"><title>Purpose</title> <p>Standard C++ support on the Symbian platform
+helps to port existing Standard C++ applications onto the Symbian platform
+quickly and easily. Also, if you have a good understanding of Standard C++
+and STL, you can easily develop a Standard C++ application or library using
+the Standard C++ environment supported on the Symbian platform. </p> </section>
+<section id="GUID-C6BD4B3F-6147-4621-B0D2-EEEAA17720C1"><title>Required background</title> <p>To use the Standard C++ environment
+supported on the Symbian platform you need a good understanding of C++ and
+STL. For complete information about STL, see <xref href="http://en.wikipedia.org/wiki/Standard_Template_Library" scope="external">Wikipedia</xref>. </p> <p> <b>Important:</b> Symbian is not
+responsible for the information available on external websites. </p> </section>
+<section id="GUID-FD370B42-AB5B-4D9C-A592-A95AD16AEADD"><title>Architectural relationships</title> <p>The following image
+illustrates how Standard C++ interacts with the Symbian platform and P.I.P.S.
+libraries: </p> <fig id="GUID-52C870F7-6368-588D-BE3B-51F35D9DF6AF">
+<title>              Standard C++ on the Symbian platform            </title>
+<image href="GUID-A308643D-6EEA-5C41-BD9C-5DA76EE83BA6_d0e158775_href.jpg" placement="inline"/>
+</fig> </section>
+</conbody><related-links>
+<link href="GUID-D6BEAF0D-844D-51F4-8DB7-FB1D60E17FE3.dita"><linktext>Copyright
+Acknowledgments for Standard C++                 (STLport)</linktext></link>
+<link href="GUID-2CCD1748-9EDE-5383-9941-A3051E06F3E2.dita"><linktext>Standard
+C++ Support on the Symbian Platform</linktext></link>
+<link href="GUID-CDE8CD85-8467-5B36-A0AC-41D1D98151CA.dita"><linktext>Developing
+Applications or Libraries                 Using Standard C++</linktext></link>
+<link href="GUID-E331B72B-84AF-558A-9B8F-73E5E50B58C7.dita"><linktext>Building
+a Standard C++ Application or                 Library</linktext></link>
+<link href="GUID-D32E52C9-F05C-5F1E-8B49-243D555C353C.dita"><linktext>Known Issues</linktext>
+</link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F8069628-BD32-535C-963A-A1CF8172E275.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F8069628-BD32-535C-963A-A1CF8172E275.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F8069628-BD32-535C-963A-A1CF8172E275"><title>What are CF Protocols, Binders, and Flows</title><shortdesc>This topic describes the concepts of <i>Communications Framework (CF) Protocols</i>,<i>Binders</i> and <i>Flows</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>In the Communications Architecture each Layer requires the participation of several communications components; namely the Tier Manager, MCPR, CPR, SCPR and the components. The name given to the Data Flow components is a <b>Communications Framework Protocol</b> (CF Protocol). </p> <fig id="GUID-293BE7D5-9C9D-5A17-9C61-5FA19B06490C"><title>
-          Figure 1 - A CF Protocol in the Layered Comms Stack 
-        </title> <image href="GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e84040_href.png" placement="inline"/></fig> <p>A CF Protocol is a collection of components on the Data Plane, most importantly the Flow and the Binder(s). The Flow is a Node and communicates with the SCPR that caused it to be started, using the asynchronous Message Transport mechanism. Each Flow has one or more Binders which connect the Flow to the layer above. </p> <section><title>CF Protocol components</title> <fig id="GUID-171654F9-312C-547C-A886-E16A9DB21040"><title>
-             Components of a CF Protocol 
-          </title> <image href="GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e84053_href.png" placement="inline"/></fig> <p>A CF Protocol is constructed of two main components: </p> <ul><li id="GUID-B9E64AE4-CC30-5085-82D1-938C397A4FD3"><p> <b>Flow</b> - a single conversation with a remote peer. There can be multiple Flows in a CF Protocol to handle multiple concurrent conversations through the same instance of the CF Protocol. </p> </li> <li id="GUID-6A394EF2-EFD4-5885-BE40-A62784A85E2B"><p> <b>Binder</b> - A Binder handles the interface between the current Flow and the Layer above. A Binder connects two CF Protocols together so that they can communicate data and sometimes commands. A Flow can have more than one Binder if it needs to connect to more than one Flow in the Layer above. </p> <p>A <b>Protocol Binder</b> is the binding point for de-multiplexed incoming data but provides no flow control, data will be lost if the layer above is not ready to process it. </p> <p>A <b>Session Binder</b> handles flow control by contacting the Layer above to say data is available, and waits for the CF Protocol of the Layer above to request the data. </p> </li> </ul> </section> <section id="GUID-832AD765-692C-56BE-92AC-AF8AEFB69413"><title>Flow</title> <p>A Flow is an instance of a class which represents a single conversation with a remote peer. </p> <p>There may be many active Flows in a CF Protocol to represent many concurrent conversations through the same instance of the CF Protocol. </p> <p>A Flow is a Stack Node created and controlled by one SCPR. </p> <p>Configuration data for the Flow is provisioned directly by the SCPR and usually originates from the MCPR. </p> <p>Since a Flow handles message exchange with the corresponding SCPR asynchronously, a Flow is always a state machine. State transitions are mostly triggered by exchange of different message types with the remote peer. State transitions may also be triggered by other mechanisms, such as timeouts, that require active objects within the Flow. A Flow is created by a Factory. </p> <p>The Flow can de-multiplex the inbound, though it is up to the specific Flow to have appropriate code to do the de-multiplexing. De-multiplexing could be performed based on address information, port information, protocol specific session, source identifier or other data. De-multiplexing passes data to specific Flows, via individual Protocol Binders, to higher level CF Protocols which can also de-multiplex the data further. If there is no de-multiplexing then the layer above does not have to bind a protocol interface as a data receiver. An example would be an IP Flow, which may contain IPv4 and IPv6 packets and would have separate Protocl Binders for each version. </p> <p>Each Flow must serve the following messages: </p> <ul><li id="GUID-CF546C5F-B597-528B-8A7D-3D9AB804291F"><p> <xref href="GUID-413B79AB-EFA4-3C29-842B-F4DFE2C5A87D.dita"><apiname>TBindTo</apiname></xref> - tells the Flow which lower Flow to bind to </p> </li> <li id="GUID-31FDA6FA-251D-5E98-A194-E134EF953311"><p> <xref href="GUID-F2EEF015-3165-32D6-B98C-E77B2BDFDCDF.dita"><apiname>TProvisionConfig</apiname></xref> - carries a configuration object </p> </li> <li id="GUID-B4D38D5B-5537-5882-A7D0-F5A1AEC9E34C"><p> <xref href="GUID-2257D314-72A9-3A2A-9E79-4BCED7AC1045.dita"><apiname>TStartFlow</apiname></xref> - starts the Flow </p> </li> <li id="GUID-3DB58B6B-32E0-5B0A-B8D1-3D6B6CDF41A0"><p> <xref href="GUID-74EDDB44-5E1B-34CF-9678-C7C8811C7D58.dita"><apiname>TStopFlow</apiname></xref> - stops the Flow </p> </li> <li id="GUID-1BAC8A9D-94D6-5E96-BEAE-0EC97537EA16"><p> <xref href="GUID-9E005556-76E5-306B-982C-B2C2BC268EB8.dita"><apiname>TDestroy</apiname></xref> - instructs the Flow to delete itself </p> </li> <li id="GUID-DF01A012-4D45-5670-A62A-91ADA3303A10"><p> <xref href="GUID-B61247EA-48AE-301B-8089-0B5E67B5E04C.dita"><apiname>TStateChange</apiname></xref> - the Flow should send this whenever it wants to inform the control side of its state change </p> </li> </ul> </section> <section id="GUID-B09A95DB-93A8-5D36-BB95-40DA8766E3A0"><title>Binder</title> <p>The Binder is split into two parts: </p> <ul><li id="GUID-261D54B9-E404-5282-A322-A98EC5693DCF"><p> <i>Binder Control</i> - used by the upper layer to set up the binding with the lower layer. </p> </li> <li id="GUID-5D596068-F8A6-564C-A084-82FAB47B2035"><p> <i>Binder</i> - the actual binding between two Layers so that data can be sent and received. Again there are two types of Binder, Protocol Binder and Session Binder. It is common for a particular CF Protocol to only support one kind of Binder, Session or Protocol. </p> </li> </ul> <p>There will be CF Protocols where it will be a good design to have a Protocol Binder for data, and to use a Session Binder for control messages. These will usually be separate Flows. </p> <p id="GUID-C16F3524-AFFE-5E0B-82A7-8EC9B12BA660"><b>Protocol Binder</b> </p> <p>A Protocol Binder is used by the Flow as the link to the next higher CF Protocol for inbound data. </p> <p>A Protocol Binder only communicates with the Flow and should never communicate with an SCPR. Any design that would require the Protocol Binder to communicate with the SCPR should be redesigned. </p> <p>Protocol Binders are most commonly used for lower-level protocols (nearer the hardware) rather than the higher-level Link layer protocols. </p> <p id="GUID-E6B2C4D3-BE14-53DC-8616-5D3BC2B14686"><b>Session Binder</b> </p> <p> A Session Binder offers much richer functionality than a Protocol Binder as it is mostly used by higher level protocols (closer to application space) that are more complex than the lower level ones (closer to hardware). A Session Binder operates independently of the protocol of the next Layer above with which it connects, as opposed to the Protocol Binder which is specific for a particular protocol in the Layer above. A Session Binder may offer functionality that is supported by only some of the protocols using that binder. For example a Session Binder may provide flow control on the data, while a Protocol Binder will pass the data upwards immediately and if the Layer above is not able to accept the data it will be discarded. </p> </section> </conbody><related-links><link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> <link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> <link href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita"><linktext>Nodes</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F8069628-BD32-535C-963A-A1CF8172E275"><title>What are CF Protocols, Binders, and Flows</title><shortdesc>This topic describes the concepts of <i>Communications Framework (CF) Protocols</i>,<i>Binders</i> and <i>Flows</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>In the Communications Architecture each Layer requires the participation of several communications components; namely the Tier Manager, MCPR, CPR, SCPR and the components. The name given to the Data Flow components is a <b>Communications Framework Protocol</b> (CF Protocol). </p> <fig id="GUID-293BE7D5-9C9D-5A17-9C61-5FA19B06490C"><title>
+          Figure 1 - A CF Protocol in the Layered Comms Stack 
+        </title> <image href="GUID-9FB82D95-F110-5D42-B39E-BCFAE574E18F_d0e77328_href.png" placement="inline"/></fig> <p>A CF Protocol is a collection of components on the Data Plane, most importantly the Flow and the Binder(s). The Flow is a Node and communicates with the SCPR that caused it to be started, using the asynchronous Message Transport mechanism. Each Flow has one or more Binders which connect the Flow to the layer above. </p> <section><title>CF Protocol components</title> <fig id="GUID-171654F9-312C-547C-A886-E16A9DB21040"><title>
+             Components of a CF Protocol 
+          </title> <image href="GUID-E63899B3-8EA8-5EF7-982E-EC161B3A4794_d0e77341_href.png" placement="inline"/></fig> <p>A CF Protocol is constructed of two main components: </p> <ul><li id="GUID-B9E64AE4-CC30-5085-82D1-938C397A4FD3"><p> <b>Flow</b> - a single conversation with a remote peer. There can be multiple Flows in a CF Protocol to handle multiple concurrent conversations through the same instance of the CF Protocol. </p> </li> <li id="GUID-6A394EF2-EFD4-5885-BE40-A62784A85E2B"><p> <b>Binder</b> - A Binder handles the interface between the current Flow and the Layer above. A Binder connects two CF Protocols together so that they can communicate data and sometimes commands. A Flow can have more than one Binder if it needs to connect to more than one Flow in the Layer above. </p> <p>A <b>Protocol Binder</b> is the binding point for de-multiplexed incoming data but provides no flow control, data will be lost if the layer above is not ready to process it. </p> <p>A <b>Session Binder</b> handles flow control by contacting the Layer above to say data is available, and waits for the CF Protocol of the Layer above to request the data. </p> </li> </ul> </section> <section id="GUID-832AD765-692C-56BE-92AC-AF8AEFB69413"><title>Flow</title> <p>A Flow is an instance of a class which represents a single conversation with a remote peer. </p> <p>There may be many active Flows in a CF Protocol to represent many concurrent conversations through the same instance of the CF Protocol. </p> <p>A Flow is a Stack Node created and controlled by one SCPR. </p> <p>Configuration data for the Flow is provisioned directly by the SCPR and usually originates from the MCPR. </p> <p>Since a Flow handles message exchange with the corresponding SCPR asynchronously, a Flow is always a state machine. State transitions are mostly triggered by exchange of different message types with the remote peer. State transitions may also be triggered by other mechanisms, such as timeouts, that require active objects within the Flow. A Flow is created by a Factory. </p> <p>The Flow can de-multiplex the inbound, though it is up to the specific Flow to have appropriate code to do the de-multiplexing. De-multiplexing could be performed based on address information, port information, protocol specific session, source identifier or other data. De-multiplexing passes data to specific Flows, via individual Protocol Binders, to higher level CF Protocols which can also de-multiplex the data further. If there is no de-multiplexing then the layer above does not have to bind a protocol interface as a data receiver. An example would be an IP Flow, which may contain IPv4 and IPv6 packets and would have separate Protocl Binders for each version. </p> <p>Each Flow must serve the following messages: </p> <ul><li id="GUID-CF546C5F-B597-528B-8A7D-3D9AB804291F"><p> <xref href="GUID-413B79AB-EFA4-3C29-842B-F4DFE2C5A87D.dita"><apiname>TBindTo</apiname></xref> - tells the Flow which lower Flow to bind to </p> </li> <li id="GUID-31FDA6FA-251D-5E98-A194-E134EF953311"><p> <xref href="GUID-F2EEF015-3165-32D6-B98C-E77B2BDFDCDF.dita"><apiname>TProvisionConfig</apiname></xref> - carries a configuration object </p> </li> <li id="GUID-B4D38D5B-5537-5882-A7D0-F5A1AEC9E34C"><p> <xref href="GUID-2257D314-72A9-3A2A-9E79-4BCED7AC1045.dita"><apiname>TStartFlow</apiname></xref> - starts the Flow </p> </li> <li id="GUID-3DB58B6B-32E0-5B0A-B8D1-3D6B6CDF41A0"><p> <xref href="GUID-74EDDB44-5E1B-34CF-9678-C7C8811C7D58.dita"><apiname>TStopFlow</apiname></xref> - stops the Flow </p> </li> <li id="GUID-1BAC8A9D-94D6-5E96-BEAE-0EC97537EA16"><p> <xref href="GUID-9E005556-76E5-306B-982C-B2C2BC268EB8.dita"><apiname>TDestroy</apiname></xref> - instructs the Flow to delete itself </p> </li> <li id="GUID-DF01A012-4D45-5670-A62A-91ADA3303A10"><p> <xref href="GUID-B61247EA-48AE-301B-8089-0B5E67B5E04C.dita"><apiname>TStateChange</apiname></xref> - the Flow should send this whenever it wants to inform the control side of its state change </p> </li> </ul> </section> <section id="GUID-B09A95DB-93A8-5D36-BB95-40DA8766E3A0"><title>Binder</title> <p>The Binder is split into two parts: </p> <ul><li id="GUID-261D54B9-E404-5282-A322-A98EC5693DCF"><p> <i>Binder Control</i> - used by the upper layer to set up the binding with the lower layer. </p> </li> <li id="GUID-5D596068-F8A6-564C-A084-82FAB47B2035"><p> <i>Binder</i> - the actual binding between two Layers so that data can be sent and received. Again there are two types of Binder, Protocol Binder and Session Binder. It is common for a particular CF Protocol to only support one kind of Binder, Session or Protocol. </p> </li> </ul> <p>There will be CF Protocols where it will be a good design to have a Protocol Binder for data, and to use a Session Binder for control messages. These will usually be separate Flows. </p> <p id="GUID-C16F3524-AFFE-5E0B-82A7-8EC9B12BA660"><b>Protocol Binder</b> </p> <p>A Protocol Binder is used by the Flow as the link to the next higher CF Protocol for inbound data. </p> <p>A Protocol Binder only communicates with the Flow and should never communicate with an SCPR. Any design that would require the Protocol Binder to communicate with the SCPR should be redesigned. </p> <p>Protocol Binders are most commonly used for lower-level protocols (nearer the hardware) rather than the higher-level Link layer protocols. </p> <p id="GUID-E6B2C4D3-BE14-53DC-8616-5D3BC2B14686"><b>Session Binder</b> </p> <p> A Session Binder offers much richer functionality than a Protocol Binder as it is mostly used by higher level protocols (closer to application space) that are more complex than the lower level ones (closer to hardware). A Session Binder operates independently of the protocol of the next Layer above with which it connects, as opposed to the Protocol Binder which is specific for a particular protocol in the Layer above. A Session Binder may offer functionality that is supported by only some of the protocols using that binder. For example a Session Binder may provide flow control on the data, while a Protocol Binder will pass the data upwards immediately and if the Layer above is not able to accept the data it will be discarded. </p> </section> </conbody><related-links><link href="GUID-01029B52-55E0-5598-994F-BB5DE73D37EE.dita"><linktext>Layers</linktext> </link> <link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> <link href="GUID-E3E4E9A1-359E-5475-A355-1DA446FE7170.dita"><linktext>Nodes</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e202130_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F82675C4-C2FD-50E2-BEDA-EB454FF1C57E_d0e207138_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F8A26275-883A-5299-9C37-9DDCC2F62108.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F8A26275-883A-5299-9C37-9DDCC2F62108.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,50 +1,50 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F8A26275-883A-5299-9C37-9DDCC2F62108" xml:lang="en"><title>Eclipsing</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Eclipsing is a mechanism to upgrade files existing on the ROM drive, by
-installing a new version of the same on the RAM drive. The file name and path
-of the existing file and the new version must be the same. </p>
-<p>For example, the file, <filepath>a.exe</filepath> located on <filepath>z:\...\</filepath>,
-can be eclipsed by placing a latest version of <filepath>a.exe</filepath> on <filepath>C:\...\</filepath>. </p>
-<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-8-1-4-1-1-4-1-6-1-4-1-5-1-2-3"><title>Eclipsing rules</title> <p>The
-eclipsing of binary and data files in the ROM is strictly controlled. That
-is, device creators can eclipse only the files that are listed in the Stub
-SIS file. The eclipsing fails if there is no associated Stub SIS file present
-in ROM. </p> <p>The following are important considerations for eclipsing
-ROM files: </p> <ul>
-<li id="GUID-B854DA2E-A125-5E42-8B97-7DD9E5D30FFE"><p>Drives are
-scanned in the order <filepath>Y</filepath> to <filepath>A</filepath> and
-lastly the <filepath>Z</filepath> drive. Therefore a file in <filepath>Z</filepath> drive
-can be eclipsed by the newer version of the file placed on any drive between <filepath>Y</filepath> to <filepath>A</filepath>. </p> </li>
-<li id="GUID-4ECA6004-CE36-5EC7-A523-03EC3B9FC171"><p>The upgrading package
-must have the same package UID and non-localized vendor name as the package
-that installed the original file. </p> </li>
-<li id="GUID-60050205-50D1-5331-93ED-26E39D0D9678"><p>The file in ROM can
-be eclipsed only once. </p> </li>
-<li id="GUID-DA8251A1-D148-580A-A28F-B0A7388C4870"><p>The installation is
-blocked if a data file with the same name as the file to be eclipsed exists
-in the file system. The device creators can configure the installation policy
-to enable the Symbian device user to remove the obstructing files and continue
-with the installation. </p> </li>
-<li id="GUID-40325AC4-85B8-5EF3-9E70-21AF6DF35A52"><p>Eclipsing of <filepath>EXEs</filepath>, <filepath>DLLs</filepath> and
-data files either by installation or by inserting the media card into the
-Symbian device returns an error. This aborts the installation or renders the
-media card application unusable until the conflict is resolved. This restriction
-is not applicable if the file being eclipsed is an orphaned file.</p>  </li>
-</ul> </section>
-</conbody><related-links>
-<link href="GUID-9DCD2076-0F73-5BB7-85BF-580567E0AB53.dita"><linktext>Package Upgrades</linktext>
-</link>
-<link href="GUID-7FD72D9F-D65E-5248-A296-F2196F1DF5CF.dita"><linktext>Upgrade Types</linktext>
-</link>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F8A26275-883A-5299-9C37-9DDCC2F62108" xml:lang="en"><title>Eclipsing</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Eclipsing is a mechanism to upgrade files existing on the ROM drive, by
+installing a new version of the same on the RAM drive. The file name and path
+of the existing file and the new version must be the same. </p>
+<p>For example, the file, <filepath>a.exe</filepath> located on <filepath>z:\...\</filepath>,
+can be eclipsed by placing a latest version of <filepath>a.exe</filepath> on <filepath>C:\...\</filepath>. </p>
+<section id="GUID-DBF1C87D-7360-54B7-8658-B6659BF77F06-GENID-1-10-1-4-1-1-4-1-6-1-4-1-5-1-2-3"><title>Eclipsing rules</title> <p>The
+eclipsing of binary and data files in the ROM is strictly controlled. That
+is, device creators can eclipse only the files that are listed in the Stub
+SIS file. The eclipsing fails if there is no associated Stub SIS file present
+in ROM. </p> <p>The following are important considerations for eclipsing
+ROM files: </p> <ul>
+<li id="GUID-B854DA2E-A125-5E42-8B97-7DD9E5D30FFE"><p>Drives are
+scanned in the order <filepath>Y</filepath> to <filepath>A</filepath> and
+lastly the <filepath>Z</filepath> drive. Therefore a file in <filepath>Z</filepath> drive
+can be eclipsed by the newer version of the file placed on any drive between <filepath>Y</filepath> to <filepath>A</filepath>. </p> </li>
+<li id="GUID-4ECA6004-CE36-5EC7-A523-03EC3B9FC171"><p>The upgrading package
+must have the same package UID and non-localized vendor name as the package
+that installed the original file. </p> </li>
+<li id="GUID-60050205-50D1-5331-93ED-26E39D0D9678"><p>The file in ROM can
+be eclipsed only once. </p> </li>
+<li id="GUID-DA8251A1-D148-580A-A28F-B0A7388C4870"><p>The installation is
+blocked if a data file with the same name as the file to be eclipsed exists
+in the file system. The device creators can configure the installation policy
+to enable the Symbian device user to remove the obstructing files and continue
+with the installation. </p> </li>
+<li id="GUID-40325AC4-85B8-5EF3-9E70-21AF6DF35A52"><p>Eclipsing of <filepath>EXEs</filepath>, <filepath>DLLs</filepath> and
+data files either by installation or by inserting the media card into the
+Symbian device returns an error. This aborts the installation or renders the
+media card application unusable until the conflict is resolved. This restriction
+is not applicable if the file being eclipsed is an orphaned file.</p>  </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-9DCD2076-0F73-5BB7-85BF-580567E0AB53.dita"><linktext>Package Upgrades</linktext>
+</link>
+<link href="GUID-7FD72D9F-D65E-5248-A296-F2196F1DF5CF.dita"><linktext>Upgrade Types</linktext>
+</link>
+
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51" xml:lang="en"><title>Column
-structure of lists</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>For visual consistency, the standard list layouts are built around a structure
-of three virtual columns. The column borders are aligned with the sides of
-the context pane.</p>
-<p>The width of list items can be divided in three sections (columns A, B
-and C). All three columns need not be used separately in a list layout: combinations
-AB, BC or ABC are possible. Column D is basically the very end of column C
-where additional indicators can be displayed (see figure below). The area
-for these indicators is not strictly an individual column in the same sense
-as the other three, because it can be used dynamically, item by item. All
-items within a list must use the same column layout.</p>
-<fig id="GUID-88132214-24C6-4C80-93A7-335D7FBE938A">
-<title>Different column arrangements: a) All columns used for a text item.
-b) Column A contains an icon, columns B&amp;C combined for text. c) Columns
-A&amp;B combined for a large icon, column C contains text. d) Column A: an
-icon; column B: a label; column C: text.</title>
-<image href="GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e59136_href.png" placement="inline"/>
-</fig>
-<table id="GUID-634822BE-B1A4-43E4-9A28-7ABA9D6DF336"><title>Standard elements
-within list item associated with columns</title>
-<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
-<thead>
-<row>
-<entry>Column</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Column A</p></entry>
-<entry><ul>
-<li><p>Small graphic (icon): an item property indication. </p></li>
-<li><p>The item number (see <xref href="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita">Numbered
-items</xref>).</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Column B</p></entry>
-<entry><p>Heading (the title or attribute of the item).</p></entry>
-</row>
-<row>
-<entry><p>Column AB</p></entry>
-<entry><ul>
-<li><p>Heading (the title or attribute of the item). </p></li>
-<li><p>Large graphic (for example, an icon or an image thumbnail).</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Column C/BC/ABC</p></entry>
-<entry><p>The main text of the item.</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<note><p>The list layout can be mirrored for localizations such as Arabic
-and Hebrew (for example, column A is in the right edge of the pane). See <xref href="GUID-8E2FA5CC-C582-4321-88BB-C5CE3AA047FE.dita">Layout changes in bi-directional
-languages</xref>.</p></note>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F95A7D74-FD5C-40D2-BF4F-2F75443CAE51" xml:lang="en"><title>Column
+structure of lists</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>For visual consistency, the standard list layouts are built around a structure
+of three virtual columns. The column borders are aligned with the sides of
+the context pane.</p>
+<p>The width of list items can be divided in three sections (columns A, B
+and C). All three columns need not be used separately in a list layout: combinations
+AB, BC or ABC are possible. Column D is basically the very end of column C
+where additional indicators can be displayed (see figure below). The area
+for these indicators is not strictly an individual column in the same sense
+as the other three, because it can be used dynamically, item by item. All
+items within a list must use the same column layout.</p>
+<fig id="GUID-88132214-24C6-4C80-93A7-335D7FBE938A">
+<title>Different column arrangements: a) All columns used for a text item.
+b) Column A contains an icon, columns B&amp;C combined for text. c) Columns
+A&amp;B combined for a large icon, column C contains text. d) Column A: an
+icon; column B: a label; column C: text.</title>
+<image href="GUID-043CFB8D-8780-478C-A3B2-FE5838795665_d0e53370_href.png" placement="inline"/>
+</fig>
+<table id="GUID-634822BE-B1A4-43E4-9A28-7ABA9D6DF336"><title>Standard elements
+within list item associated with columns</title>
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry>Column</entry>
+<entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Column A</p></entry>
+<entry><ul>
+<li><p>Small graphic (icon): an item property indication. </p></li>
+<li><p>The item number (see <xref href="GUID-2B8CA0F5-8956-4D7B-B719-DE5EFD62C232.dita">Numbered
+items</xref>).</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Column B</p></entry>
+<entry><p>Heading (the title or attribute of the item).</p></entry>
+</row>
+<row>
+<entry><p>Column AB</p></entry>
+<entry><ul>
+<li><p>Heading (the title or attribute of the item). </p></li>
+<li><p>Large graphic (for example, an icon or an image thumbnail).</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Column C/BC/ABC</p></entry>
+<entry><p>The main text of the item.</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<note><p>The list layout can be mirrored for localizations such as Arabic
+and Hebrew (for example, column A is in the right edge of the pane). See <xref href="GUID-8E2FA5CC-C582-4321-88BB-C5CE3AA047FE.dita">Layout changes in bi-directional
+languages</xref>.</p></note>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e57672_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e62709_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e67818_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e69206_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F96623BF-B646-46B4-942E-69EB065BE491_d0e74372_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F96D14A5-58BB-4F1A-A6FB-5D13DCB84B33-master.png has changed
Binary file Symbian3/SDK/Source/GUID-F96D14A5-58BB-4F1A-A6FB-5D13DCB84B33_d0e61999_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e77110_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F97EA91E-35E3-5E69-A4C4-7415AB91C1BC_d0e83822_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-F9896E96-1076-552D-AE54-8F9DABED867F"><title>Configuring the Video Player</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to configure the video player. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to make configuration adjustments to the video player. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video player utility is used to open, play, and obtain information from sampled video data. This functionality is implemented by the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class. The video data can be supplied either in a file, a descriptor or a URL. </p> </section> <section><title>Using Video Player </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-0A783BCE-7C87-5EE1-BFDA-BD2847CF1E4F"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-18902F43-1F13-5A91-84AD-94732560A554">Set the Display Window</xref>  </p> </li> <li id="GUID-4A64B04C-737D-587E-BBA4-478EE453EC82"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-CDD3561D-84E4-5524-9593-5055659B6CB0"> Query and Set the Volume</xref>  </p> </li> <li id="GUID-15F0C370-6460-5D6D-8CDB-B042CBD4A7C6"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-BBCD720C-1276-5D6C-B9E6-1946EE019987">Query and Set the Balance</xref>  </p> </li> <li id="GUID-ACB66213-E77F-5F93-BF2D-A7DEECFA10D1"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-7666501B-196B-5FE9-A331-311B11BF7954">Query and Set the Priority</xref>  </p> </li> <li id="GUID-7E7ACD89-0ECB-5CD7-A550-571BC8F8FE1C"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-8B88F87D-A3F0-5521-92DA-C74EE2D942A8">Query and Set the Bit and Frame Rate</xref>  </p> </li> <li id="GUID-1ED08DD8-4D68-52AF-89DA-7617BCE9A388"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-7D998004-DC09-5328-B2EE-AA363FB2D1C5">Query and Set the Current Playback Position</xref>  </p> </li> <li id="GUID-ADFC9AEB-30BE-56A0-B2C0-F6F2E7D12C2E"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-0A67AED6-860A-5D84-9CE3-6E30A673DD82">Query and Set the MIME and Codec Type</xref>  </p> </li> </ul> <p id="GUID-18902F43-1F13-5A91-84AD-94732560A554"><b>Setting the Display Window</b> </p> <p>The high level steps to set the display window are shown here: </p> <ul><li id="GUID-86A3CE74-3BC6-5C40-B9D4-9A6D89C2D059"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-34881891-A618-3E46-B6E2-3BA63324C0D7"><apiname>CVideoPlayerUtility::SetDisplayWindowL</apiname></xref>: This is used to provide the video controller with an area of display to render the current video frame. It can be represented pictorially as shown below: </p> <fig id="GUID-FAA210BE-66AB-5B23-AD33-F623B30AE305"><title>
-                     Video display regions 
-                  </title> <image href="GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e317843_href.png" placement="inline"/></fig> <p>The screeenRect specifies the area within the window provided for displaying the video image. This rectangle is in screen coordinates. The video frame will be fitted to this rectangle as best possible, while maintaining the original aspect ratio. </p> <p>The ClipRect specifies the region to draw. The drawn region will be the intersection between the ClipRect and the ScreenRect. </p> <p>A crop region is defined as a region in the source video frame. The cropped region is displayed in the center of the ScreenRect with the same scaling as if it was displayed as part of the whole image. This could be used to zoom in on a region by setting the crop region, and setting the scale factor to fill the WindowRect. </p> <codeblock id="GUID-3F331C91-F37E-5575-9994-A162E3C88EAD" xml:space="preserve">void CPlayVideo::SetDisplayWindowL(RWsSession &amp;aWs, CWsScreenDevice &amp;aScreenDevice, RWindowBase &amp;aWindow, const TRect &amp;aWindowRect, const TRect &amp;aClipRect)
-    {
-    iVideoUtility-&gt;SetDisplayWindowL(aWs, aScreenDevice, aWindow, aWindowRect, aClipRect);
-    }
-</codeblock> </li> </ul> <p id="GUID-CDD3561D-84E4-5524-9593-5055659B6CB0"><b>Querying and Setting the Volume</b> </p> <p>The current volume settings can be reported and set appropriately with the help of the following functions: : </p> <ul><li id="GUID-E8AFCF73-2B6E-5DF1-80EE-69B2E7D51260"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-4397F487-2C26-3F6C-B347-F58C0F8E1DB4"><apiname>CVideoPlayerUtility::Volume()</apiname></xref>: Returns the current playback volume for the audio track of the video clip. </p> <codeblock id="GUID-F4994952-BDBA-51D6-B1C5-6658EE4C31A5" xml:space="preserve">TInt CPlayVideo::Volume() 
-    {
-    return iVideoUtility-&gt;Volume();
-    }</codeblock> </li> <li id="GUID-4C860E43-36B7-58C3-820A-E5901C7B250C"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-842870F6-2A0E-36B2-8ADB-41CE032DCF85"><apiname>CVideoPlayerUtility::MaxVolume()</apiname></xref>: Returns the maximum volume that the audio track can support. </p> </li> <li id="GUID-BEEFF82A-D825-512C-86BF-EA2E5B55F48E"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-3B55A392-FD48-30FD-8038-405366EB241C"><apiname>CVideoPlayerUtility::SetVolumeL()</apiname></xref>: This function allows the volume of the audio track of the video clip to be set. The volume can be changed before or during playback and comes to effect immediately. The volume can be set to a value anywhere between zero and the maximum permissible volume. </p> <codeblock id="GUID-F1ACB4E4-672E-58A1-8C42-F6BC6EB70774" xml:space="preserve">TInt volume;
-
-volume = iVideoPlayer.MaxVolume(); \\Returns maximum volume
-void CPlayVideo::SetVolumeL(TInt aVolume) \\Set the audio volume
-    {
-    iVideoUtility-&gt;SetVolumeL(aVolume);
-    } 
-
-//The volume must be a value between 0 and the value returned by the MaxVolume function.
-
-</codeblock> </li> </ul> <p id="GUID-BBCD720C-1276-5D6C-B9E6-1946EE019987"><b>Querying and Setting the Balance</b> </p> <p>The audio playback balance settings can be done using the following functions: </p> <ul><li id="GUID-D5970FD6-C545-54AD-A3C4-6710C7A744ED"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-AF2BEB2A-ED31-3671-B479-2027B9EBA5A6"><apiname>CVideoPlayerUtility::SetBalanceL()</apiname></xref>: This function sets the current playback balance for the audio track of the video clip. It can be any value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight. </p> <codeblock id="GUID-A675CCAF-EFD5-599C-BB5A-3756E49E0F5E" xml:space="preserve">void CPlayVideo::SetBalanceL(TInt aBalance)
-    {
-    iVideoUtility-&gt;SetBalanceL(aBalance);
-    }</codeblock> </li> <li id="GUID-9AE78FF2-9210-5027-BE63-7FA63EFE5116"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-1E3592A8-6C90-3F2F-95A5-F0908ECE1B7B"><apiname>CVideoPlayerUtility::Balance()</apiname></xref>: This function returns the current playback balance settings for the audio track of the video clip. </p> <codeblock id="GUID-AE730785-2C00-5738-9490-34EB2E04025B" xml:space="preserve">TInt CPlayVideo::Balance() 
-    {
-    return iVideoUtility-&gt;Balance();    
-    }</codeblock> </li> </ul> <p id="GUID-7666501B-196B-5FE9-A331-311B11BF7954"><b>Querying and Setting the Priority</b> </p> <p>To set the priority for the playback to access the sound hardware, use the following methods: </p> <ul><li id="GUID-8573BEA1-DBE1-5AA2-8329-853B6B5BDD50"><p> <xref href="GUID-E03EA458-1ABD-34A4-BBB2-F3C65D035773.dita"><apiname>PriorityL()</apiname></xref>: This function returns the current playback priority. This is used to arbitrate between multiple objects simultaneously trying to accesses the sound hardware. </p> </li> <li id="GUID-B7B7769A-DAE7-503F-8375-6D99AABE9596"><p> <xref href="GUID-3A818B04-A01A-35EB-9F6C-E13543B54CB1.dita"><apiname>SetPriorityL()</apiname></xref>: This function sets the playback priority. </p> <codeblock id="GUID-C8835378-FEF4-5E36-981B-A8E8B55B7FDE" xml:space="preserve">void CPlayVideo::SetPriorityL(TInt aPriority, TMdaPriorityPreference aPref)
-    {
-    iVideoUtility-&gt;SetPriorityL(aPriority, aPref);
-    }</codeblock> </li> </ul> <p id="GUID-8B88F87D-A3F0-5521-92DA-C74EE2D942A8"><b>Querying and Setting the Bit and Frame Rate</b> </p> <p>The high level steps to query and set the bit and frame rate: </p> <ul><li id="GUID-AA205B92-155C-5E21-8DD7-A78E793F65DE"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-75E33792-E4AD-39BA-9129-15E731DD32D7"><apiname>CVideoPlayerUtility::VideoBitRateL()</apiname></xref>: This function returns the bit rate of the video clip. This returns the video clip's bit rate in bits per second. </p> <codeblock id="GUID-B5BFDD9A-B521-5A60-B278-57E72E9311DD" xml:space="preserve">TInt CPlayVideo::VideoBitRateL() 
-    {
-    return iVideoUtility-&gt;VideoBitRateL();
-    }</codeblock> </li> <li id="GUID-254E33F2-3169-51E1-B964-3E8D0107D79C"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-BF2B4086-4682-3A37-AB02-859A02B0A3EF"><apiname>CVideoPlayerUtility::VideoFrameRateL()</apiname></xref>: This function returns the video frame rate. This returns the video frame rate in frames per second. </p> <codeblock id="GUID-FFFC156C-927A-564B-92B0-0E7D99ED506C" xml:space="preserve">TReal32 CPlayVideo::VideoFrameRateL()
-    {
-    return iVideoUtility-&gt;VideoFrameRateL();
-    }</codeblock> </li> <li id="GUID-0136372C-744E-5C85-B3F8-8E4F6921B7A2"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-AC9ACAC4-44AD-3FC0-8E03-58DB0A641EE0"><apiname>CVideoPlayerUtility::SetVideoFrameRateL()</apiname></xref>: This function is used to set the number of video frames to be displayed per second. </p> <codeblock id="GUID-79D3C6D7-7E4F-5292-9221-6BCAEE88302B" xml:space="preserve">void CPlayVideo::SetVideoFrameRateL(TReal32 aFramesPerSecond)
-    {
-    iVideoUtility-&gt;SetVideoFrameRateL(aFramesPerSecond);
-    }</codeblock> </li> </ul> <p> <b>Note:</b> The presence of an audio track within a video clip can be determined using <xref href="GUID-A230A2A3-FAFA-3F6F-A6C1-67B407779A87.dita"><apiname>AudioEnabledL()</apiname></xref>. </p> <p id="GUID-7D998004-DC09-5328-B2EE-AA363FB2D1C5"><b>Querying and Setting the Current Playback Position</b> </p> <p>The current playback position can be queried and set using the following functions: </p> <ul><li id="GUID-B3CC86FB-3169-5760-A289-7AAA7F5E6BF6"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A000D8FD-DFA7-3402-A7AF-E8958E4AD252"><apiname>CVideoPlayerUtility::PositionL()</apiname></xref>: This function returns the current playback position. It returns the current position from the start of the clip in microseconds. </p> </li> <li id="GUID-3822C893-A609-5E8E-995B-C92D637CF435"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-F1E338F3-F683-3B21-9CAC-79A3B0996587"><apiname>CVideoPlayerUtility::SetPositionL()</apiname></xref>: This function sets the position for the playback within the video clip to start. </p> <codeblock id="GUID-704F61E0-A79A-56B5-8814-9F332681188C" xml:space="preserve">TTimeIntervalMicroSeconds pos;
-TTimeIntervalMicroSeconds CPlayVideo::PositionL() \\ retrieves the current playback position within the video clip
-    {
-    return iVideoUtility-&gt;PositionL();
-    } </codeblock> </li> </ul> <p id="GUID-0A67AED6-860A-5D84-9CE3-6E30A673DD82"><b>Querying and Setting the MIME and Codec Type</b> </p> <p>This section explains the functions that reports and sets the MIME type and codecs for video and audio data that is already open. The functions are as stated below: </p> <ul><li id="GUID-2A5F777D-1AFE-5798-A818-B4772185B741"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-58238242-AB6D-3A09-8212-1724244F69B0"><apiname>CVideoPlayerUtility::VideoFormatMimeType()</apiname></xref>: This returns the current MIME type of the video clip currently open. </p> <codeblock id="GUID-1CF87BE3-6249-55FB-8E37-2ACE38E73090" xml:space="preserve">const TDesC8 &amp; CPlayVideo::VideoFormatMimeType() 
-    {
-    return iVideoUtility-&gt;VideoFormatMimeType();
-    }</codeblock> </li> <li id="GUID-8558289D-3599-57D7-8571-50A49012D433"><p>The datatype of the audio track used by the video clip can be retrieved using and <xref href="GUID-5298E3BF-4840-3FFD-B74D-D324B0386EDE.dita"><apiname>AudioTypeL()</apiname></xref>. </p> <codeblock id="GUID-789FF0CC-9115-5BA1-879E-FDFDA76F5EFE" xml:space="preserve">TFourCC CPlayVideo::AudioTypeL() \\retrieves the codecs used by audio track
-    {
-    return iVideoUtility-&gt;AudioTypeL();
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-F9896E96-1076-552D-AE54-8F9DABED867F"><title>Configuring the Video Player</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to configure the video player. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to make configuration adjustments to the video player. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video player utility is used to open, play, and obtain information from sampled video data. This functionality is implemented by the <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> class. The video data can be supplied either in a file, a descriptor or a URL. </p> </section> <section><title>Using Video Player </title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-0A783BCE-7C87-5EE1-BFDA-BD2847CF1E4F"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-18902F43-1F13-5A91-84AD-94732560A554">Set the Display Window</xref>  </p> </li> <li id="GUID-4A64B04C-737D-587E-BBA4-478EE453EC82"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-CDD3561D-84E4-5524-9593-5055659B6CB0"> Query and Set the Volume</xref>  </p> </li> <li id="GUID-15F0C370-6460-5D6D-8CDB-B042CBD4A7C6"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-BBCD720C-1276-5D6C-B9E6-1946EE019987">Query and Set the Balance</xref>  </p> </li> <li id="GUID-ACB66213-E77F-5F93-BF2D-A7DEECFA10D1"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-7666501B-196B-5FE9-A331-311B11BF7954">Query and Set the Priority</xref>  </p> </li> <li id="GUID-7E7ACD89-0ECB-5CD7-A550-571BC8F8FE1C"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-8B88F87D-A3F0-5521-92DA-C74EE2D942A8">Query and Set the Bit and Frame Rate</xref>  </p> </li> <li id="GUID-1ED08DD8-4D68-52AF-89DA-7617BCE9A388"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-7D998004-DC09-5328-B2EE-AA363FB2D1C5">Query and Set the Current Playback Position</xref>  </p> </li> <li id="GUID-ADFC9AEB-30BE-56A0-B2C0-F6F2E7D12C2E"><p><xref href="GUID-F9896E96-1076-552D-AE54-8F9DABED867F.dita#GUID-F9896E96-1076-552D-AE54-8F9DABED867F/GUID-0A67AED6-860A-5D84-9CE3-6E30A673DD82">Query and Set the MIME and Codec Type</xref>  </p> </li> </ul> <p id="GUID-18902F43-1F13-5A91-84AD-94732560A554"><b>Setting the Display Window</b> </p> <p>The high level steps to set the display window are shown here: </p> <ul><li id="GUID-86A3CE74-3BC6-5C40-B9D4-9A6D89C2D059"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-34881891-A618-3E46-B6E2-3BA63324C0D7"><apiname>CVideoPlayerUtility::SetDisplayWindowL</apiname></xref>: This is used to provide the video controller with an area of display to render the current video frame. It can be represented pictorially as shown below: </p> <fig id="GUID-FAA210BE-66AB-5B23-AD33-F623B30AE305"><title>
+                     Video display regions 
+                  </title> <image href="GUID-1E25EE44-9421-549C-B79E-AEFE87308011_d0e311449_href.png" placement="inline"/></fig> <p>The screeenRect specifies the area within the window provided for displaying the video image. This rectangle is in screen coordinates. The video frame will be fitted to this rectangle as best possible, while maintaining the original aspect ratio. </p> <p>The ClipRect specifies the region to draw. The drawn region will be the intersection between the ClipRect and the ScreenRect. </p> <p>A crop region is defined as a region in the source video frame. The cropped region is displayed in the center of the ScreenRect with the same scaling as if it was displayed as part of the whole image. This could be used to zoom in on a region by setting the crop region, and setting the scale factor to fill the WindowRect. </p> <codeblock id="GUID-3F331C91-F37E-5575-9994-A162E3C88EAD" xml:space="preserve">void CPlayVideo::SetDisplayWindowL(RWsSession &amp;aWs, CWsScreenDevice &amp;aScreenDevice, RWindowBase &amp;aWindow, const TRect &amp;aWindowRect, const TRect &amp;aClipRect)
+    {
+    iVideoUtility-&gt;SetDisplayWindowL(aWs, aScreenDevice, aWindow, aWindowRect, aClipRect);
+    }
+</codeblock> </li> </ul> <p id="GUID-CDD3561D-84E4-5524-9593-5055659B6CB0"><b>Querying and Setting the Volume</b> </p> <p>The current volume settings can be reported and set appropriately with the help of the following functions: : </p> <ul><li id="GUID-E8AFCF73-2B6E-5DF1-80EE-69B2E7D51260"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-4397F487-2C26-3F6C-B347-F58C0F8E1DB4"><apiname>CVideoPlayerUtility::Volume()</apiname></xref>: Returns the current playback volume for the audio track of the video clip. </p> <codeblock id="GUID-F4994952-BDBA-51D6-B1C5-6658EE4C31A5" xml:space="preserve">TInt CPlayVideo::Volume() 
+    {
+    return iVideoUtility-&gt;Volume();
+    }</codeblock> </li> <li id="GUID-4C860E43-36B7-58C3-820A-E5901C7B250C"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-842870F6-2A0E-36B2-8ADB-41CE032DCF85"><apiname>CVideoPlayerUtility::MaxVolume()</apiname></xref>: Returns the maximum volume that the audio track can support. </p> </li> <li id="GUID-BEEFF82A-D825-512C-86BF-EA2E5B55F48E"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-3B55A392-FD48-30FD-8038-405366EB241C"><apiname>CVideoPlayerUtility::SetVolumeL()</apiname></xref>: This function allows the volume of the audio track of the video clip to be set. The volume can be changed before or during playback and comes to effect immediately. The volume can be set to a value anywhere between zero and the maximum permissible volume. </p> <codeblock id="GUID-F1ACB4E4-672E-58A1-8C42-F6BC6EB70774" xml:space="preserve">TInt volume;
+
+volume = iVideoPlayer.MaxVolume(); \\Returns maximum volume
+void CPlayVideo::SetVolumeL(TInt aVolume) \\Set the audio volume
+    {
+    iVideoUtility-&gt;SetVolumeL(aVolume);
+    } 
+
+//The volume must be a value between 0 and the value returned by the MaxVolume function.
+
+</codeblock> </li> </ul> <p id="GUID-BBCD720C-1276-5D6C-B9E6-1946EE019987"><b>Querying and Setting the Balance</b> </p> <p>The audio playback balance settings can be done using the following functions: </p> <ul><li id="GUID-D5970FD6-C545-54AD-A3C4-6710C7A744ED"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-AF2BEB2A-ED31-3671-B479-2027B9EBA5A6"><apiname>CVideoPlayerUtility::SetBalanceL()</apiname></xref>: This function sets the current playback balance for the audio track of the video clip. It can be any value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight. </p> <codeblock id="GUID-A675CCAF-EFD5-599C-BB5A-3756E49E0F5E" xml:space="preserve">void CPlayVideo::SetBalanceL(TInt aBalance)
+    {
+    iVideoUtility-&gt;SetBalanceL(aBalance);
+    }</codeblock> </li> <li id="GUID-9AE78FF2-9210-5027-BE63-7FA63EFE5116"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-1E3592A8-6C90-3F2F-95A5-F0908ECE1B7B"><apiname>CVideoPlayerUtility::Balance()</apiname></xref>: This function returns the current playback balance settings for the audio track of the video clip. </p> <codeblock id="GUID-AE730785-2C00-5738-9490-34EB2E04025B" xml:space="preserve">TInt CPlayVideo::Balance() 
+    {
+    return iVideoUtility-&gt;Balance();    
+    }</codeblock> </li> </ul> <p id="GUID-7666501B-196B-5FE9-A331-311B11BF7954"><b>Querying and Setting the Priority</b> </p> <p>To set the priority for the playback to access the sound hardware, use the following methods: </p> <ul><li id="GUID-8573BEA1-DBE1-5AA2-8329-853B6B5BDD50"><p> <xref href="GUID-E03EA458-1ABD-34A4-BBB2-F3C65D035773.dita"><apiname>PriorityL()</apiname></xref>: This function returns the current playback priority. This is used to arbitrate between multiple objects simultaneously trying to accesses the sound hardware. </p> </li> <li id="GUID-B7B7769A-DAE7-503F-8375-6D99AABE9596"><p> <xref href="GUID-3A818B04-A01A-35EB-9F6C-E13543B54CB1.dita"><apiname>SetPriorityL()</apiname></xref>: This function sets the playback priority. </p> <codeblock id="GUID-C8835378-FEF4-5E36-981B-A8E8B55B7FDE" xml:space="preserve">void CPlayVideo::SetPriorityL(TInt aPriority, TMdaPriorityPreference aPref)
+    {
+    iVideoUtility-&gt;SetPriorityL(aPriority, aPref);
+    }</codeblock> </li> </ul> <p id="GUID-8B88F87D-A3F0-5521-92DA-C74EE2D942A8"><b>Querying and Setting the Bit and Frame Rate</b> </p> <p>The high level steps to query and set the bit and frame rate: </p> <ul><li id="GUID-AA205B92-155C-5E21-8DD7-A78E793F65DE"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-75E33792-E4AD-39BA-9129-15E731DD32D7"><apiname>CVideoPlayerUtility::VideoBitRateL()</apiname></xref>: This function returns the bit rate of the video clip. This returns the video clip's bit rate in bits per second. </p> <codeblock id="GUID-B5BFDD9A-B521-5A60-B278-57E72E9311DD" xml:space="preserve">TInt CPlayVideo::VideoBitRateL() 
+    {
+    return iVideoUtility-&gt;VideoBitRateL();
+    }</codeblock> </li> <li id="GUID-254E33F2-3169-51E1-B964-3E8D0107D79C"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-BF2B4086-4682-3A37-AB02-859A02B0A3EF"><apiname>CVideoPlayerUtility::VideoFrameRateL()</apiname></xref>: This function returns the video frame rate. This returns the video frame rate in frames per second. </p> <codeblock id="GUID-FFFC156C-927A-564B-92B0-0E7D99ED506C" xml:space="preserve">TReal32 CPlayVideo::VideoFrameRateL()
+    {
+    return iVideoUtility-&gt;VideoFrameRateL();
+    }</codeblock> </li> <li id="GUID-0136372C-744E-5C85-B3F8-8E4F6921B7A2"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-AC9ACAC4-44AD-3FC0-8E03-58DB0A641EE0"><apiname>CVideoPlayerUtility::SetVideoFrameRateL()</apiname></xref>: This function is used to set the number of video frames to be displayed per second. </p> <codeblock id="GUID-79D3C6D7-7E4F-5292-9221-6BCAEE88302B" xml:space="preserve">void CPlayVideo::SetVideoFrameRateL(TReal32 aFramesPerSecond)
+    {
+    iVideoUtility-&gt;SetVideoFrameRateL(aFramesPerSecond);
+    }</codeblock> </li> </ul> <p> <b>Note:</b> The presence of an audio track within a video clip can be determined using <xref href="GUID-A230A2A3-FAFA-3F6F-A6C1-67B407779A87.dita"><apiname>AudioEnabledL()</apiname></xref>. </p> <p id="GUID-7D998004-DC09-5328-B2EE-AA363FB2D1C5"><b>Querying and Setting the Current Playback Position</b> </p> <p>The current playback position can be queried and set using the following functions: </p> <ul><li id="GUID-B3CC86FB-3169-5760-A289-7AAA7F5E6BF6"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-A000D8FD-DFA7-3402-A7AF-E8958E4AD252"><apiname>CVideoPlayerUtility::PositionL()</apiname></xref>: This function returns the current playback position. It returns the current position from the start of the clip in microseconds. </p> </li> <li id="GUID-3822C893-A609-5E8E-995B-C92D637CF435"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-F1E338F3-F683-3B21-9CAC-79A3B0996587"><apiname>CVideoPlayerUtility::SetPositionL()</apiname></xref>: This function sets the position for the playback within the video clip to start. </p> <codeblock id="GUID-704F61E0-A79A-56B5-8814-9F332681188C" xml:space="preserve">TTimeIntervalMicroSeconds pos;
+TTimeIntervalMicroSeconds CPlayVideo::PositionL() \\ retrieves the current playback position within the video clip
+    {
+    return iVideoUtility-&gt;PositionL();
+    } </codeblock> </li> </ul> <p id="GUID-0A67AED6-860A-5D84-9CE3-6E30A673DD82"><b>Querying and Setting the MIME and Codec Type</b> </p> <p>This section explains the functions that reports and sets the MIME type and codecs for video and audio data that is already open. The functions are as stated below: </p> <ul><li id="GUID-2A5F777D-1AFE-5798-A818-B4772185B741"><p> <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita#GUID-0F1F8AC6-B99F-3274-A785-9977197AF762/GUID-58238242-AB6D-3A09-8212-1724244F69B0"><apiname>CVideoPlayerUtility::VideoFormatMimeType()</apiname></xref>: This returns the current MIME type of the video clip currently open. </p> <codeblock id="GUID-1CF87BE3-6249-55FB-8E37-2ACE38E73090" xml:space="preserve">const TDesC8 &amp; CPlayVideo::VideoFormatMimeType() 
+    {
+    return iVideoUtility-&gt;VideoFormatMimeType();
+    }</codeblock> </li> <li id="GUID-8558289D-3599-57D7-8571-50A49012D433"><p>The datatype of the audio track used by the video clip can be retrieved using and <xref href="GUID-5298E3BF-4840-3FFD-B74D-D324B0386EDE.dita"><apiname>AudioTypeL()</apiname></xref>. </p> <codeblock id="GUID-789FF0CC-9115-5BA1-879E-FDFDA76F5EFE" xml:space="preserve">TFourCC CPlayVideo::AudioTypeL() \\retrieves the codecs used by audio track
+    {
+    return iVideoUtility-&gt;AudioTypeL();
     } </codeblock> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-172F46C1-6066-57FA-A815-5AC23ACE159D.dita">Creating and Preparing a Video Player</xref>  </p> <p><xref href="GUID-733B9695-0C7C-5637-9025-6CE3BAA1A23E.dita"> Enabling/Disabling Audio or Video Playback Separately</xref>  </p> <p><xref href="GUID-FE7DE542-3FD4-56D2-B281-C670EF1C4FEB.dita">Scaling Automatically</xref>  </p> <p><xref href="GUID-5F4510C9-5B16-593A-A225-37606800915B.dita">Controlling Video Playback</xref>  </p> <p><xref href="GUID-70B3881F-9532-5F1D-B210-99A15DB93FC2.dita">Fast Forwarding and Rewinding</xref>  </p> <p><xref href="GUID-469377FB-AAE8-5245-A8E1-469C65AFE5C5.dita">Stepping Frames</xref>  </p> <p><xref href="GUID-F13C7D36-E4AB-57F1-87A1-EB83AA2258DF.dita">Controlling the Video Controller Plugin</xref>  </p> </section> </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427411_href.png has changed
Binary file Symbian3/SDK/Source/GUID-F99938E9-9E06-53C0-B762-2CE51BC5F1E2_d0e427573_href.png has changed
--- a/Symbian3/SDK/Source/GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,662 +1,662 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF" xml:lang="en"><title>List
-item types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The appearance of list items can be chosen from the following types. The
-examples are from lists displayed in the main pane; for most item types a
-similar component for use in pop-up windows is possible.</p>
-<table id="GUID-CA6D80E6-0876-4A4D-B08B-09EFFF2B305B"><title>List item types</title>
-<tgroup cols="4"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/>
-<thead>
-<row>
-<entry>Item</entry>
-<entry nameend="col4" namest="col2">Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p>Single-line item</p></entry>
-<entry><p>ABC</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry><p>[list_single_pane]</p></entry>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics </p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul><p>Note: Item status graphics in column D may be empty; they indicate
-e.g. temporary item states.</p></entry>
-</row>
-<row>
-<entry><p>Single-line item with a number</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Ordinal number</p></entry>
-<entry><p>Primary font small</p></entry>
-</row>
-<row>
-<entry><p>[list_single_number_pane]</p></entry>
-<entry><p>BC</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul><p>Note: Numbered lists should only be used when numbering offers some
-added value.</p></entry>
-</row>
-<row>
-<entry><p>Single-line item with a graphic</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_single_graphic_pane]</p></entry>
-<entry><p>BC</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Multi-selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Single-line item with a heading</p></entry>
-<entry><p>AB</p></entry>
-<entry><p>Heading </p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry><p>[list_single_heading_pane]</p></entry>
-<entry><p>C</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics </p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Single-line item with a number and a heading</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Ordinal number</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry><p>[list_single_number_heading_pane]</p></entry>
-<entry><p>B</p></entry>
-<entry><p>Heading</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Single-line item with a graphic and a heading</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_single_graphic_heading_pane]</p></entry>
-<entry><p>B</p></entry>
-<entry><p>Heading</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Multi-selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Single-line item with a large graphic</p></entry>
-<entry><p>AB</p></entry>
-<entry><p>Large graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_single_large_graphic_pane]</p></entry>
-<entry><p>C</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul><p>Note: A large graphic may be e.g. an image or indicate item property.</p></entry>
-</row>
-<row>
-<entry><p>Two-line item</p></entry>
-<entry><p>ABC (line 1)</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry><p>[list_double_pane]</p></entry>
-<entry><p>ABC (line 2)</p></entry>
-<entry><p>Additional text</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line1)</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul><p>Note: The second line may be empty. </p></entry>
-</row>
-<row>
-<entry><p>Two-line item with a number</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Ordinal number</p></entry>
-<entry><p>Primary font small</p></entry>
-</row>
-<row>
-<entry><p>[list_double_number_pane]</p></entry>
-<entry><p>BC (line 1)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>BC (line 2)</p></entry>
-<entry><p>Additional text </p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line1) </p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a graphic</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_double_graphic_pane]</p></entry>
-<entry><p>BC (line 1)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>BC (line 2)</p></entry>
-<entry><p>Additional text </p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a heading</p></entry>
-<entry><p>ABC (line1)</p></entry>
-<entry><p>Heading</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry><p>[list_double_heading_pane]</p></entry>
-<entry><p>ABC (line 2)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line 1)</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a large graphic</p></entry>
-<entry><p>AB</p></entry>
-<entry><p>Large graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_double_large_graphic_pane]</p></entry>
-<entry><p>C (line 1)</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C (line 2)</p></entry>
-<entry><p>Additional text</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line 1)</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry/>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a graphic and a heading</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_double_graphic_heading_pane]</p></entry>
-<entry><p>BC (line 1)</p></entry>
-<entry><p>Heading</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>BC (line 2)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line 1)</p></entry>
-<entry><p>Two additional graphics possible</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with time</p></entry>
-<entry><p>AB</p></entry>
-<entry><p>Time</p></entry>
-<entry><p>Digital font</p></entry>
-</row>
-<row>
-<entry><p>[list_double_time_pane]</p></entry>
-<entry><p>C (line 1)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C (line 2)</p></entry>
-<entry><p>Additional text</p></entry>
-<entry><p>Secondary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line 1)</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><p>Clock alarm lists</p></entry>
-</row>
-<row>
-<entry><p>Two-line item, style 2</p></entry>
-<entry><p>ABC (line 1)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry><p>[list_double2_pane]</p></entry>
-<entry><p>ABC (line 2)</p></entry>
-<entry><p>Main text continues</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line1) </p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul><p>Note: One text item that can extend to a second line.</p></entry>
-</row>
-<row>
-<entry><p>Two-line item with a graphic, style 2</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_double2_graphic_pane]</p></entry>
-<entry><p>BC (line 1)</p></entry>
-<entry><p>Main text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>BC (line 2)</p></entry>
-<entry><p>Main text (continued)</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a large graphic, style 2</p></entry>
-<entry><p>AB</p></entry>
-<entry><p>Large graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry><p>[list_double2_large_graphic_pane]</p></entry>
-<entry><p>C (line 1)</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C (line 2)</p></entry>
-<entry><p>Main text (continued)</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Settings item</p></entry>
-<entry><p>ABC (line 1)</p></entry>
-<entry><p>Setting item text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry><p>[list_setting_pane]</p></entry>
-<entry><p>ABC (line 2)</p></entry>
-<entry><p>Value item status</p></entry>
-<entry><p>Primary font small</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line1)</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><p>Setting lists</p><p>Note: The value
-item may be omitted in order to create a regular selection item within a setting
-list.</p></entry>
-</row>
-<row>
-<entry><p>Setting item with a number</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Ordinal number</p></entry>
-<entry><p>Primary font small</p></entry>
-</row>
-<row>
-<entry><p>[list_setting_number_pane]</p></entry>
-<entry><p>BC (line 1)</p></entry>
-<entry><p>Setting item text </p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>BC (line 2)</p></entry>
-<entry><p>Value item status</p></entry>
-<entry><p>Primary font small</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D (line1) </p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><p>Setting lists</p><p>Note: The value
-item may be omitted in order to create a regular selection item within a setting
-list.</p></entry>
-</row>
-<row>
-<entry><p>Single-line item with two graphics</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item selection graphic</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry><p>[list_single_2graphic_pane]</p></entry>
-<entry><p>B</p></entry>
-<entry><p>Item property graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Multi-selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-<row>
-<entry><p>Two-line item with a graphic and a large graphic, style 2</p></entry>
-<entry><p>A</p></entry>
-<entry><p>Item selection graphic</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry><p>[list_double_graphic_large_graphic_pane]</p></entry>
-<entry><p>B</p></entry>
-<entry><p>Large graphic</p></entry>
-<entry><p>Color</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>C</p></entry>
-<entry><p>Main text</p></entry>
-<entry><p>Primary font</p></entry>
-</row>
-<row>
-<entry/>
-<entry><p>D</p></entry>
-<entry><p>Item status graphics</p></entry>
-<entry><p>Single color</p></entry>
-</row>
-<row>
-<entry/>
-<entry nameend="col4" namest="col2"><ul>
-<li><p>Menu lists</p></li>
-<li><p>Selection lists</p></li>
-<li><p>Multi-selection lists</p></li>
-<li><p>Markable lists</p></li>
-</ul></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>There is a corresponding pop-up window list item for the following components:</p>
-<ul>
-<li><p>single-line item</p></li>
-<li><p>single-line item with a number</p></li>
-<li><p>single-line item with a graphic</p></li>
-<li><p>single-line item with a heading</p></li>
-<li><p>single-line item with a number and a heading</p></li>
-<li><p>single-line item with a graphic and a heading</p></li>
-<li><p>single-line item with a large graphic</p></li>
-<li><p>single-line item with two graphics</p></li>
-<li><p>two-line item</p></li>
-<li><p>two-line item with a number</p></li>
-<li><p>two-line item with a graphic</p></li>
-<li><p>two-line item with a heading</p></li>
-<li><p>two-line item with a large graphic</p></li>
-<li><p>two-line item, style 2</p></li>
-<li><p>two-line item with a graphic, style 2</p></li>
-<li><p>two line item with a large graphic, style 2</p></li>
-</ul>
-<section id="GUID-FF822D6C-210D-45CD-BDB3-F40753A6FA7C"><title>Using
-list item types in C++ applications</title><p>For the C++ classes used for
-the different list item types, see <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic2.3.2" scope="peer">List box item layouts</xref> in the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists
-API</xref> documentation.</p></section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F9C12192-EDA8-4220-87DF-E7F1EA50CDEF" xml:lang="en"><title>List
+item types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The appearance of list items can be chosen from the following types. The
+examples are from lists displayed in the main pane; for most item types a
+similar component for use in pop-up windows is possible.</p>
+<table id="GUID-CA6D80E6-0876-4A4D-B08B-09EFFF2B305B"><title>List item types</title>
+<tgroup cols="4"><colspec colname="col1" colwidth="1.04*"/><colspec colname="col2" colwidth="0.99*"/><colspec colname="col3" colwidth="0.98*"/><colspec colname="col4" colwidth="0.99*"/>
+<thead>
+<row>
+<entry>Item</entry>
+<entry nameend="col4" namest="col2">Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>Single-line item</p></entry>
+<entry><p>ABC</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry><p>[list_single_pane]</p></entry>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics </p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul><p>Note: Item status graphics in column D may be empty; they indicate,
+for example, temporary item states.</p></entry>
+</row>
+<row>
+<entry><p>Single-line item with a number</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Ordinal number</p></entry>
+<entry><p>Primary font small</p></entry>
+</row>
+<row>
+<entry><p>[list_single_number_pane]</p></entry>
+<entry><p>BC</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul><p>Note: Numbered lists should only be used when numbering offers some
+added value.</p></entry>
+</row>
+<row>
+<entry><p>Single-line item with a graphic</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_single_graphic_pane]</p></entry>
+<entry><p>BC</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Multi-selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Single-line item with a heading</p></entry>
+<entry><p>AB</p></entry>
+<entry><p>Heading </p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry><p>[list_single_heading_pane]</p></entry>
+<entry><p>C</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics </p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Single-line item with a number and a heading</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Ordinal number</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry><p>[list_single_number_heading_pane]</p></entry>
+<entry><p>B</p></entry>
+<entry><p>Heading</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Single-line item with a graphic and a heading</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_single_graphic_heading_pane]</p></entry>
+<entry><p>B</p></entry>
+<entry><p>Heading</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Multi-selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Single-line item with a large graphic</p></entry>
+<entry><p>AB</p></entry>
+<entry><p>Large graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_single_large_graphic_pane]</p></entry>
+<entry><p>C</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul><p>Note: A large graphic may be , for example, an image or indicate item
+property.</p></entry>
+</row>
+<row>
+<entry><p>Two-line item</p></entry>
+<entry><p>ABC (line 1)</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry><p>[list_double_pane]</p></entry>
+<entry><p>ABC (line 2)</p></entry>
+<entry><p>Additional text</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line1)</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul><p>Note: The second line may be empty. </p></entry>
+</row>
+<row>
+<entry><p>Two-line item with a number</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Ordinal number</p></entry>
+<entry><p>Primary font small</p></entry>
+</row>
+<row>
+<entry><p>[list_double_number_pane]</p></entry>
+<entry><p>BC (line 1)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>BC (line 2)</p></entry>
+<entry><p>Additional text </p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line1) </p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a graphic</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_double_graphic_pane]</p></entry>
+<entry><p>BC (line 1)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>BC (line 2)</p></entry>
+<entry><p>Additional text </p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a heading</p></entry>
+<entry><p>ABC (line1)</p></entry>
+<entry><p>Heading</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry><p>[list_double_heading_pane]</p></entry>
+<entry><p>ABC (line 2)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line 1)</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a large graphic</p></entry>
+<entry><p>AB</p></entry>
+<entry><p>Large graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_double_large_graphic_pane]</p></entry>
+<entry><p>C (line 1)</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C (line 2)</p></entry>
+<entry><p>Additional text</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line 1)</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry/>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a graphic and a heading</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_double_graphic_heading_pane]</p></entry>
+<entry><p>BC (line 1)</p></entry>
+<entry><p>Heading</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>BC (line 2)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line 1)</p></entry>
+<entry><p>Two additional graphics possible</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with time</p></entry>
+<entry><p>AB</p></entry>
+<entry><p>Time</p></entry>
+<entry><p>Digital font</p></entry>
+</row>
+<row>
+<entry><p>[list_double_time_pane]</p></entry>
+<entry><p>C (line 1)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C (line 2)</p></entry>
+<entry><p>Additional text</p></entry>
+<entry><p>Secondary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line 1)</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><p>Clock alarm lists</p></entry>
+</row>
+<row>
+<entry><p>Two-line item, style 2</p></entry>
+<entry><p>ABC (line 1)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry><p>[list_double2_pane]</p></entry>
+<entry><p>ABC (line 2)</p></entry>
+<entry><p>Main text continues</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line1) </p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul><p>Note: One text item that can extend to a second line.</p></entry>
+</row>
+<row>
+<entry><p>Two-line item with a graphic, style 2</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_double2_graphic_pane]</p></entry>
+<entry><p>BC (line 1)</p></entry>
+<entry><p>Main text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>BC (line 2)</p></entry>
+<entry><p>Main text (continued)</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a large graphic, style 2</p></entry>
+<entry><p>AB</p></entry>
+<entry><p>Large graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry><p>[list_double2_large_graphic_pane]</p></entry>
+<entry><p>C (line 1)</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C (line 2)</p></entry>
+<entry><p>Main text (continued)</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Settings item</p></entry>
+<entry><p>ABC (line 1)</p></entry>
+<entry><p>Setting item text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry><p>[list_setting_pane]</p></entry>
+<entry><p>ABC (line 2)</p></entry>
+<entry><p>Value item status</p></entry>
+<entry><p>Primary font small</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line1)</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><p>Setting lists</p><p>Note: The value
+item may be omitted in order to create a regular selection item within a setting
+list.</p></entry>
+</row>
+<row>
+<entry><p>Setting item with a number</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Ordinal number</p></entry>
+<entry><p>Primary font small</p></entry>
+</row>
+<row>
+<entry><p>[list_setting_number_pane]</p></entry>
+<entry><p>BC (line 1)</p></entry>
+<entry><p>Setting item text </p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>BC (line 2)</p></entry>
+<entry><p>Value item status</p></entry>
+<entry><p>Primary font small</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D (line1) </p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><p>Setting lists</p><p>Note: The value
+item may be omitted in order to create a regular selection item within a setting
+list.</p></entry>
+</row>
+<row>
+<entry><p>Single-line item with two graphics</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item selection graphic</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry><p>[list_single_2graphic_pane]</p></entry>
+<entry><p>B</p></entry>
+<entry><p>Item property graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Multi-selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+<row>
+<entry><p>Two-line item with a graphic and a large graphic, style 2</p></entry>
+<entry><p>A</p></entry>
+<entry><p>Item selection graphic</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry><p>[list_double_graphic_large_graphic_pane]</p></entry>
+<entry><p>B</p></entry>
+<entry><p>Large graphic</p></entry>
+<entry><p>Color</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>C</p></entry>
+<entry><p>Main text</p></entry>
+<entry><p>Primary font</p></entry>
+</row>
+<row>
+<entry/>
+<entry><p>D</p></entry>
+<entry><p>Item status graphics</p></entry>
+<entry><p>Single color</p></entry>
+</row>
+<row>
+<entry/>
+<entry nameend="col4" namest="col2"><ul>
+<li><p>Menu lists</p></li>
+<li><p>Selection lists</p></li>
+<li><p>Multi-selection lists</p></li>
+<li><p>Markable lists</p></li>
+</ul></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>There is a corresponding pop-up window list item for the following components:</p>
+<ul>
+<li><p>single-line item</p></li>
+<li><p>single-line item with a number</p></li>
+<li><p>single-line item with a graphic</p></li>
+<li><p>single-line item with a heading</p></li>
+<li><p>single-line item with a number and a heading</p></li>
+<li><p>single-line item with a graphic and a heading</p></li>
+<li><p>single-line item with a large graphic</p></li>
+<li><p>single-line item with two graphics</p></li>
+<li><p>two-line item</p></li>
+<li><p>two-line item with a number</p></li>
+<li><p>two-line item with a graphic</p></li>
+<li><p>two-line item with a heading</p></li>
+<li><p>two-line item with a large graphic</p></li>
+<li><p>two-line item, style 2</p></li>
+<li><p>two-line item with a graphic, style 2</p></li>
+<li><p>two line item with a large graphic, style 2</p></li>
+</ul>
+<section id="GUID-FF822D6C-210D-45CD-BDB3-F40753A6FA7C"><title>Using
+list item types in applications</title><p>For the C++ classes used for the
+different list item types, see <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html#Lists_API_Specification.topic2.3.2" scope="peer">List box item layouts</xref> in the <xref format="html" href="specs/guides/Lists_API_Specification/Lists_API_Specification.html" scope="peer">Lists API</xref> documentation.</p></section>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,51 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC" xml:lang="en"><title>What
-is Root Server Configurator?</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>Root Server Configurator is the starter program for the C32exe process.
-Root Server Configurator is started during device startup and then Root Server
-Configurator starts all the other servers used for device communication. </p>
-<p>Examples of these servers are the <xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Sockets
-Server</xref>, the <xref href="GUID-D49696D1-4B84-56B5-909D-A15F599F4B6D.dita">Telephony
-Server</xref> and the <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
-Communications Server</xref>. </p>
-<p>The Root Server Configurator is a separate process to the Root Server. </p>
-<p>To start the Root Server Configurator, a process must start either the <filepath>c32start.exe</filepath> program,
-or must call the <xref href="GUID-CFCBC5A6-FB1F-3DD7-B275-9B9C7389A8A7.dita"><apiname>StartC32()</apiname></xref> function. In the Techview reference
-version of Symbian platform, the steps in the startup up of the
-communications servers are: </p>
-<ol id="GUID-1036F8B2-A73F-524E-B6FA-A47D890F3089">
-<li id="GUID-E1C66978-2D2E-5AF8-8087-5C8F33B359C1"><p> <xref href="GUID-788BD091-186A-5E25-B058-952C7629A8D4.dita">System
-Starter</xref> calls <filepath>c32start.exe</filepath> to start the Root Server
-Configurator. </p> </li>
-<li id="GUID-1C5C4BBB-D5BB-5576-81A1-5C632B6F2BC1"><p>The Root Server Configurator
-loads the <xref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita">CMI files</xref>  </p> </li>
-<li id="GUID-9CFA086A-65C9-5F17-85E9-9CBFBE3B1D4D"><p>The Root Server Configurator
-calls <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref> to start the C32exe process. This
-starts the Root Server. </p> <p>The Root Server Configurator makes requests
-to Root Server for Root Server to load all the Comms Provider Modules. </p> </li>
-</ol>
-<p>After step 3, the device communications servers are all loaded and ready
-for use by applications. </p>
-<p>Figure 1 shows these three steps and how the Root Server and Root Server
-Configurator relate: </p>
-<fig id="GUID-09B31A56-73AF-5C89-87A7-E68A435FCDAD">
-<title>           Figure 1 - How Root Server and Root Server relate, and the
-steps           involved during startup          </title>
-<image href="GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e115451_href.png" placement="inline"/>
-</fig>
-<p>Root Server Configurator is configured by two types of files: <xref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita">CMI
-files</xref>, and the <xref href="GUID-B5FC3F90-9669-5DED-A6E2-CB927273850B.dita">c32start.ini</xref> file. </p>
-<p>Root Server Configurator does not provide a published API to its server.
-Root Server Configurator is the only application which uses the Root Server
-API. </p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FA12B3F7-4E84-5BBD-8598-9A974FFA7FCC" xml:lang="en"><title>What
+is Root Server Configurator?</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Root Server Configurator is the starter program for the C32exe process.
+Root Server Configurator is started during device startup and then Root Server
+Configurator starts all the other servers used for device communication. </p>
+<p>Examples of these servers are the <xref href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita">Sockets
+Server</xref>, the <xref href="GUID-D49696D1-4B84-56B5-909D-A15F599F4B6D.dita">Telephony
+Server</xref> and the <xref href="GUID-9B83CDD4-FC94-51A0-AC67-CD04BCAFEF08.dita">Serial
+Communications Server</xref>. </p>
+<p>The Root Server Configurator is a separate process to the Root Server. </p>
+<p>To start the Root Server Configurator, a process must start either the <filepath>c32start.exe</filepath> program,
+or must call the <xref href="GUID-CFCBC5A6-FB1F-3DD7-B275-9B9C7389A8A7.dita"><apiname>StartC32()</apiname></xref> function. In the Techview reference
+version of Symbian platform, the steps in the startup up of the
+communications servers are: </p>
+<ol id="GUID-1036F8B2-A73F-524E-B6FA-A47D890F3089">
+<li id="GUID-E1C66978-2D2E-5AF8-8087-5C8F33B359C1"><p> <xref href="GUID-788BD091-186A-5E25-B058-952C7629A8D4.dita">System
+Starter</xref> calls <filepath>c32start.exe</filepath> to start the Root Server
+Configurator. </p> </li>
+<li id="GUID-1C5C4BBB-D5BB-5576-81A1-5C632B6F2BC1"><p>The Root Server Configurator
+loads the <xref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita">CMI files</xref>  </p> </li>
+<li id="GUID-9CFA086A-65C9-5F17-85E9-9CBFBE3B1D4D"><p>The Root Server Configurator
+calls <xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita#GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695/GUID-DD214BA3-907E-3C7F-93C6-924A9A115A02"><apiname>RProcess::Create()</apiname></xref> to start the C32exe process. This
+starts the Root Server. </p> <p>The Root Server Configurator makes requests
+to Root Server for Root Server to load all the Comms Provider Modules. </p> </li>
+</ol>
+<p>After step 3, the device communications servers are all loaded and ready
+for use by applications. </p>
+<p>Figure 1 shows these three steps and how the Root Server and Root Server
+Configurator relate: </p>
+<fig id="GUID-09B31A56-73AF-5C89-87A7-E68A435FCDAD">
+<title>           Figure 1 - How Root Server and Root Server relate, and the
+steps           involved during startup          </title>
+<image href="GUID-4DB70D45-1E74-5357-9824-566962316E12_d0e108913_href.png" placement="inline"/>
+</fig>
+<p>Root Server Configurator is configured by two types of files: <xref href="GUID-10A0DC8C-70B3-53D0-B63F-786C4BAB36CF.dita">CMI
+files</xref>, and the <xref href="GUID-B5FC3F90-9669-5DED-A6E2-CB927273850B.dita">c32start.ini</xref> file. </p>
+<p>Root Server Configurator does not provide a published API to its server.
+Root Server Configurator is the only application which uses the Root Server
+API. </p>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5"><title>Camera Preset Support</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document describes about the preset support provided as part of Ecam component. </p> <section><title>Providing Improved Camera Preset Support</title> <p>The following steps allows the clients to receive notification about possible changes in supported values and ranges, when camera operates in a particular preset mode. </p> <ol id="GUID-54E10369-B253-5A3F-865F-9A465EB3C989"><li id="GUID-B5000AD2-2D12-51D9-B038-A06CF4E61DB6"><p>Create a new UID <xref href="GUID-62198BF4-764C-3E57-AC39-550F884AAD11.dita"><apiname>KUidECamEventRangeRestricted</apiname></xref> to notify the clients about the possible range restrictions, when camera operates in a particular preset mode. </p> </li> <li id="GUID-6769FA35-42C1-5E63-BBC5-D4B02BAFFC21"><p>Use <xref href="GUID-2773C25B-19DF-38B0-84F7-CABC89F43DD2.dita"><apiname>TECAMEvent</apiname></xref> class to report this event to the client. </p> </li> <li id="GUID-9D7C0B6F-CFA8-527F-9361-84ED1775B4E8"><p>Client gets the list of UIDs for which range has been restricted using <xref href="GUID-6750F61A-455B-371E-893B-090350DCB704.dita#GUID-6750F61A-455B-371E-893B-090350DCB704/GUID-B16C3B90-2788-34B5-94CF-B1F928AAB816"><apiname>CCamera::CCameraPresets::GetFeatureRestrictedSettingsL</apiname></xref> method. </p> </li> <li id="GUID-5D129427-E51F-56EF-8E7C-1BDBE40A0098"><p>Notify the client about the restricted features using the UID <xref href="GUID-547AD3B0-CDCD-335D-97AD-D38622DEBE43.dita"><apiname>KUidECamEventFeatureRestricted</apiname></xref> invoked by ECAM implementation, when camera works in a specific preset mode. </p> </li> <li id="GUID-A683471D-BE75-5E09-9AB9-0CB1C3B0AFF3"><p>Client retrieves the list of uids representing the settings which do not support few feature values using <xref href="GUID-6AC2B220-A05C-3F53-B962-12F951B9BCEB.dita"><apiname>GetFeatureRestrictedSettingsL</apiname></xref> method. An array of TUid <xref href="GUID-0A0EF639-6B37-3F11-981F-5A117D853B0D.dita"><apiname>aFeatureRestrictedSettings</apiname></xref>, retrieves the settings for which the current preset has imposed feature value restrictions. If no restrictions have been imposed, an empty array will be returned. </p> </li> <li id="GUID-AEACA837-A9BA-56D4-978A-C7228DCB327A"><p>Clients can retrieve information if the preset unlock feature is supported using <xref href="GUID-6750F61A-455B-371E-893B-090350DCB704.dita#GUID-6750F61A-455B-371E-893B-090350DCB704/GUID-A0E382E0-832E-3DA4-8CF4-629D74F6CA87"><apiname>CCamera::CCameraPresets::IsPresetUnlockSupportedL</apiname></xref> method. </p> <p>Unlocking preset settings of the camera that worked in a particular preset mode earlier, helps to make changes to the settings subsequently. This can be done as follows: </p> <ul><li id="GUID-0A085E9C-0940-5079-9A02-5D47F506D291"><p>ECAM implementation uses appropriate settings in the camera, to meet the specific preset requirements requested by the client, and the camera with the specific preset is in locked state. </p> <p>By default, the client cannot customise this preset value, without unlocking the preset. </p> </li> <li id="GUID-6C9B5ABC-49D9-5E63-820F-1A0291E9CB7F"><p>Unlock the preset using <xref href="GUID-6750F61A-455B-371E-893B-090350DCB704.dita#GUID-6750F61A-455B-371E-893B-090350DCB704/GUID-067B9ECD-EE8E-3ED3-B570-F4D2BD8754E2"><apiname>CCamera::CCameraPresets::UnlockPresetL()</apiname></xref>, to change the settings. </p> </li> <li id="GUID-E0E7584C-B1D5-5087-B1C6-30C2B1AA5F49"><p>Make sure to lock the preset using <xref href="GUID-6750F61A-455B-371E-893B-090350DCB704.dita#GUID-6750F61A-455B-371E-893B-090350DCB704/GUID-34702C51-953C-341D-9730-BC1547250F03"><apiname>CCamera::CCameraPresets::LockPresetL()</apiname></xref>, when the changes are made. This prevents further changes in settings. </p> </li> <li id="GUID-E2EB81D2-9068-55B7-BE79-4D7B95469421"><p>Whenever client customizes the camera settings after putting the camera in a particular preset, the ECam implementation realises that the preset to be <xref href="GUID-CE906148-7BC9-38D8-97AF-C8876897D9BA.dita"><apiname>KUidECamPresetNone</apiname></xref> instead of the preset previously set by the client. So <xref href="GUID-6750F61A-455B-371E-893B-090350DCB704.dita#GUID-6750F61A-455B-371E-893B-090350DCB704/GUID-B1EAB3BA-C20D-3527-AE20-AE95B444FBC6"><apiname>CCamera::CCameraPresets::Preset()</apiname></xref> will always retrieve <xref href="GUID-CE906148-7BC9-38D8-97AF-C8876897D9BA.dita"><apiname>KUidECamPresetNone</apiname></xref>, when client customises the actual preset settings. </p> </li> </ul> </li> </ol> </section> </conbody><related-links><link href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita"><linktext>Accessing and Power Control of
-                Camera</linktext> </link> <link href="GUID-DA26D246-D74A-529F-9F81-11B45669103F.dita"><linktext>Capturing Image</linktext> </link> <link href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita"><linktext>Capturing Video</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e334695_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FAC309FE-B7DA-572B-9165-BC9BEF944D83_d0e340852_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e169039_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-FB12481D-B3F6-5901-A0DC-DF92BCED3B18_d0e175640_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-FB45BC8B-FE99-5616-9270-132C4174DAE7-master.png has changed
Binary file Symbian3/SDK/Source/GUID-FB45BC8B-FE99-5616-9270-132C4174DAE7_d0e383750_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e177098_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FB479891-8788-5548-B875-A5C637EC2DE6_d0e183692_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e214615_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FB654184-C256-546F-AF6C-E0FADA78D5D0_d0e218352_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253" xml:lang="en"><title>IPv4/IPv6
-dual-stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The IP protocol is responsible for routing the data between networks
-and it employs an addressing system to achieve this. The Internet protocol
-version 4 (IPv4) has a number of security problems and lacks privacy and authentication
-mechanisms below the application layer. IPv6 provided numerous security enhancements,
-such as mandatory implementation of Authentication Header and Encapsulated
-Security Payload.</p>
-<p><i>IPv4/IPv6 dual-stack</i> enables applications to choose the protocol
-to use or automatically select it according to address type. This feature
-is supported from Symbian OS v7.0s onwards.</p>
-<fig id="GUID-E46DA5BE-AB7E-40C6-9A75-1BB7E9D21034"><title>IPv4/IPv6 dual-protocol stack</title><image href="GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e11345_href.png"/></fig>
-<p>It is possible to establish a secure connection from application to
-application and also from router to router. Security features implemented
-in low-level protocols (like IPv6) are automatically available to higher-level
-protocols and applications.</p>
-<p>For more information, see <xref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita">Networking
-Services Guide</xref>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FBB9ED48-3C0F-4B2D-90FC-52127698F253" xml:lang="en"><title>IPv4/IPv6
+dual-stack</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The IP protocol is responsible for routing the data between networks
+and it employs an addressing system to achieve this. The Internet protocol
+version 4 (IPv4) has a number of security problems and lacks privacy and authentication
+mechanisms below the application layer. IPv6 provided numerous security enhancements,
+such as mandatory implementation of Authentication Header and Encapsulated
+Security Payload.</p>
+<p><i>IPv4/IPv6 dual-stack</i> enables applications to choose the protocol
+to use or automatically select it according to address type. This feature
+is supported from Symbian OS v7.0s onwards.</p>
+<fig id="GUID-E46DA5BE-AB7E-40C6-9A75-1BB7E9D21034"><title>IPv4/IPv6 dual-protocol stack</title><image href="GUID-D81EAF75-EF8C-4B62-8866-439E29325E8A_d0e12620_href.png"/></fig>
+<p>It is possible to establish a secure connection from application to
+application and also from router to router. Security features implemented
+in low-level protocols (like IPv6) are automatically available to higher-level
+protocols and applications.</p>
+<p>For more information, see <xref href="GUID-B144EAB9-53AB-579B-9E12-B16518E4FC01.dita">Networking
+Services Guide</xref>.</p>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e76136_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FBBC7F0D-FD4B-58B7-BEAC-B68EEBD19ACF_d0e82848_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e323758_href.jpg has changed
Binary file Symbian3/SDK/Source/GUID-FBC9FA67-847F-599B-B244-3E9B72D40505_d0e329915_href.jpg has changed
--- a/Symbian3/SDK/Source/GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,17 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A" xml:lang="en"><title>Persistent Data Services
-Guide</title><shortdesc>Provides services to enable and support persistence. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FBCBF8A0-7922-5881-A1C5-5DB41630E75A" xml:lang="en"><title>Persistent
+Data Services Guide</title><shortdesc>Provides services to enable and support persistence. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+
+
+
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e334707_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FC230C68-18FC-5DB9-A5B2-942B48DC5590_d0e340864_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e306369_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312384_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-3-1-1-9-1-3-1" xml:lang="en"><title>Front
-End Processor Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4DBE2888-BC56-417E-B12F-520A9AFF5CBE-GENID-1-8-1-3-1-1-9-1-3-1-2-1"><title>Purpose</title> <p>Front
-End Processors, or FEPs, enable users to input characters that are not on
-the device keyboard. For most phones a FEP is essential for entering anything
-anything other than numbers. Typically FEPs are used for processing multi-tap
-keypad input, predictive text, handwriting recognition, voice recognition
-and character selection. </p> </section>
-<section id="GUID-CB4AD573-8695-4BE0-A40D-DCB813AD313C-GENID-1-8-1-3-1-1-9-1-3-1-2-2"><title>Architectural
-relationships</title> <p>FEPs are ECOM plugins that implement the FEP interface.
-They typically use the UI Control Framework to intercept key and pointer events
-which are processed as necessary and the output sent to the current application.
-Applications do not need to be aware that a FEP is present. </p> <p>Note that
-until the introduction of <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
-Security</xref> FEPs were implemented as polymorphic DLLs. Significantly,
-under Platsec, FEPs require a capability of <b>All - Tcb</b> as they may be
-loaded by any application. </p> </section>
-<section id="GUID-DDA8FA60-B059-45ED-98FE-BA0C274BFC36-GENID-1-8-1-3-1-1-9-1-3-1-2-3"><title>Description</title> <p>The
-API has five key concepts: FEP base, control input capability, FEP-aware text
-editor, foreground observer and focus observer. </p> <p><b>FEP Base</b> </p> <p>The
-FEP base, <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>, is the abstract base class from which
-a FEP is derived. A FEP is typically implemented to have a window owning control,
-the standard means of receiving input events. The UI Control Framework uses
-a control stack to determine the order in which controls are offered key events.
-A FEP places its control on the stack with a high priority such that it has
-first access to key events. </p> <fig id="GUID-55FA95ED-227B-560E-98B4-CCFB8E42A216-GENID-1-8-1-3-1-1-9-1-3-1-2-3-5">
-<title>                 FEP Base               </title>
-<image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e19147_href.png" placement="inline"/>
-</fig> <p>The Window Server provides support for windows that float above
-other windows in the application. This allows a FEP to have a visible presence. </p> <p>Each
-running application has its own instance of the current FEP. Support is provided
-for synchronising attributes across all instances so that there appears to
-be only one. </p> <p><b>Control input-capabilities</b> </p> <p>A FEP must
-be able to discover the input-capabilities of the target control(s) to determine
-what output is appropriate. Input capabilities are provided by <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>. </p> <p><b>FEP-aware
-text editors</b> </p> <p>A text-editing control can be designed to be closely
-integrated with a FEP by implementing <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>.
-Most of the Symbian provided editing controls do this. The use of in-line
-editing in FEP aware editors can mean that a FEP has no obvious visible presence
-at all. </p> <p><b>Foreground observer</b> </p> <p>A FEP can implement an
-observer interface to be notified when the application goes into the foreground
-or background. The foreground observer is <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref>. </p> <p><b>Focus
-observer</b> </p> <p>A FEP can implement an observer to be notified when controls
-under the FEP gain or lose focus. The FEP can then discover the input-capabilities
-of the current target control(s). The focus observer is <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. </p> </section>
-<section id="GUID-90026D68-1FB6-4190-B0A8-9CDD0B1C6C18-GENID-1-8-1-3-1-1-9-1-3-1-2-4"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework Overview</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-6-1-1-4-1-8-1-3-1.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E-GENID-1-8-1-6-1-1-4-1-8-1-3-1" xml:lang="en"><title>Front
-End Processor Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section id="GUID-4DBE2888-BC56-417E-B12F-520A9AFF5CBE-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-1"><title>Purpose</title> <p>Front
-End Processors, or FEPs, enable users to input characters that are not on
-the device keyboard. For most phones a FEP is essential for entering anything
-anything other than numbers. Typically FEPs are used for processing multi-tap
-keypad input, predictive text, handwriting recognition, voice recognition
-and character selection. </p> </section>
-<section id="GUID-CB4AD573-8695-4BE0-A40D-DCB813AD313C-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-2"><title>Architectural
-relationships</title> <p>FEPs are ECOM plugins that implement the FEP interface.
-They typically use the UI Control Framework to intercept key and pointer events
-which are processed as necessary and the output sent to the current application.
-Applications do not need to be aware that a FEP is present. </p> <p>Note that
-until the introduction of <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
-Security</xref> FEPs were implemented as polymorphic DLLs. Significantly,
-under Platsec, FEPs require a capability of <b>All - Tcb</b> as they may be
-loaded by any application. </p> </section>
-<section id="GUID-DDA8FA60-B059-45ED-98FE-BA0C274BFC36-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-3"><title>Description</title> <p>The
-API has five key concepts: FEP base, control input capability, FEP-aware text
-editor, foreground observer and focus observer. </p> <p><b>FEP Base</b> </p> <p>The
-FEP base, <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>, is the abstract base class from which
-a FEP is derived. A FEP is typically implemented to have a window owning control,
-the standard means of receiving input events. The UI Control Framework uses
-a control stack to determine the order in which controls are offered key events.
-A FEP places its control on the stack with a high priority such that it has
-first access to key events. </p> <fig id="GUID-55FA95ED-227B-560E-98B4-CCFB8E42A216-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-3-5">
-<title>                 FEP Base               </title>
-<image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e55049_href.png" placement="inline"/>
-</fig> <p>The Window Server provides support for windows that float above
-other windows in the application. This allows a FEP to have a visible presence. </p> <p>Each
-running application has its own instance of the current FEP. Support is provided
-for synchronising attributes across all instances so that there appears to
-be only one. </p> <p><b>Control input-capabilities</b> </p> <p>A FEP must
-be able to discover the input-capabilities of the target control(s) to determine
-what output is appropriate. Input capabilities are provided by <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>. </p> <p><b>FEP-aware
-text editors</b> </p> <p>A text-editing control can be designed to be closely
-integrated with a FEP by implementing <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>.
-Most of the Symbian provided editing controls do this. The use of in-line
-editing in FEP aware editors can mean that a FEP has no obvious visible presence
-at all. </p> <p><b>Foreground observer</b> </p> <p>A FEP can implement an
-observer interface to be notified when the application goes into the foreground
-or background. The foreground observer is <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref>. </p> <p><b>Focus
-observer</b> </p> <p>A FEP can implement an observer to be notified when controls
-under the FEP gain or lose focus. The FEP can then discover the input-capabilities
-of the current target control(s). The focus observer is <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. </p> </section>
-<section id="GUID-90026D68-1FB6-4190-B0A8-9CDD0B1C6C18-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-4"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework Overview</xref>  </p> </section>
-</conbody></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E" xml:lang="en"><title>Front
+End Processor Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-4DBE2888-BC56-417E-B12F-520A9AFF5CBE"><title>Purpose</title> <p>Front
+End Processors, or FEPs, enable users to input characters that are not on
+the device keyboard. For most phones a FEP is essential for entering anything
+anything other than numbers. Typically FEPs are used for processing multi-tap
+keypad input, predictive text, handwriting recognition, voice recognition
+and character selection. </p> </section>
+<section id="GUID-CB4AD573-8695-4BE0-A40D-DCB813AD313C"><title>Architectural
+relationships</title> <p>FEPs are ECOM plugins that implement the FEP interface.
+They typically use the UI Control Framework to intercept key and pointer events
+which are processed as necessary and the output sent to the current application.
+Applications do not need to be aware that a FEP is present. </p> <p>Note that
+until the introduction of <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform
+Security</xref> FEPs were implemented as polymorphic DLLs. Significantly,
+under Platsec, FEPs require a capability of <b>All - Tcb</b> as they may be
+loaded by any application. </p> </section>
+<section id="GUID-DDA8FA60-B059-45ED-98FE-BA0C274BFC36"><title>Description</title> <p>The
+API has five key concepts: FEP base, control input capability, FEP-aware text
+editor, foreground observer and focus observer. </p> <p><b>FEP Base</b> </p> <p>The
+FEP base, <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>, is the abstract base class from which
+a FEP is derived. A FEP is typically implemented to have a window owning control,
+the standard means of receiving input events. The UI Control Framework uses
+a control stack to determine the order in which controls are offered key events.
+A FEP places its control on the stack with a high priority such that it has
+first access to key events. </p> <fig id="GUID-55FA95ED-227B-560E-98B4-CCFB8E42A216">
+<title>                 FEP Base               </title>
+<image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e49491_href.png" placement="inline"/>
+</fig> <p>The Window Server provides support for windows that float above
+other windows in the application. This allows a FEP to have a visible presence. </p> <p>Each
+running application has its own instance of the current FEP. Support is provided
+for synchronising attributes across all instances so that there appears to
+be only one. </p> <p><b>Control input-capabilities</b> </p> <p>A FEP must
+be able to discover the input-capabilities of the target control(s) to determine
+what output is appropriate. Input capabilities are provided by <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>. </p> <p><b>FEP-aware
+text editors</b> </p> <p>A text-editing control can be designed to be closely
+integrated with a FEP by implementing <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>.
+Most of the Symbian provided editing controls do this. The use of in-line
+editing in FEP aware editors can mean that a FEP has no obvious visible presence
+at all. </p> <p><b>Foreground observer</b> </p> <p>A FEP can implement an
+observer interface to be notified when the application goes into the foreground
+or background. The foreground observer is <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref>. </p> <p><b>Focus
+observer</b> </p> <p>A FEP can implement an observer to be notified when controls
+under the FEP gain or lose focus. The FEP can then discover the input-capabilities
+of the current target control(s). The focus observer is <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. </p> </section>
+<section id="GUID-90026D68-1FB6-4190-B0A8-9CDD0B1C6C18"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework Overview</xref>  </p> </section>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e215760_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FCFF0750-0AE9-5F51-B4F7-B1655E1AD244_d0e219497_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e194260_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD0593E7-A36C-4656-A85A-9D62DFBCC42F_d0e199268_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e383543_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD1BB5C6-A042-56C9-8F1F-B51BF9DF5389_d0e388684_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e72846_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD21D8B1-EB37-409A-9158-19DBBF1A67B7_d0e78000_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC" xml:lang="en"><title>UI controller</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The term <i>UI controller</i> refers to an object derived from either <parmname>CAknAppUi</parmname> or <parmname>CAknViewAppUi</parmname>,
-depending on your UI architecture. The UI controller is a required part of
-GUI-based applications.</p>
-<p>Examples of services and responsibilities provided by the UI controller
-are as follows:</p>
-<ul>
-<li><p>control stack for <xref href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita">event
-handling</xref></p></li>
-<li><p>construction of <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">views</xref> for
-applications</p></li>
-<li><p>the top-level window owning <xref href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita">control</xref> of
-the application</p></li>
-</ul>
-<p>For more information on the UI controller, see:</p>
-<ul>
-<li><p><xref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA-GENID-1-8-1-3-1-1-7-1-8-1.dita">The
-Application User Interface</xref></p></li>
-<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7-GENID-1-8-1-3-1-1-7-1-7-1-5-1.dita">The
-run-time control hierarchy</xref></p></li>
-</ul>
-<p>The UI controller is part of the controller structure in the Model -
-View - Controller <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">(MVC)
-design pattern</xref> used to design the architecture of many GUI-based mobile
-applications.</p>
-<p>The <xref href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita"><parmname>CAknDocument</parmname></xref> -derived
-class of your application contains the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide3/index.html#CleanupSupportGuide3%2etoc" format="application/java-archive">first
-phase</xref> constructor of the UI controller.</p>
-<note>
-<p>The second-phase constructor is called by the application framework.</p>
-</note>
-<p>The UI controller is implemented in one of the following classes:</p>
-<ul>
-<li><p>In a <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
-architecture</xref> application architecture, the UI controller must be derived
-from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p></li>
-<li><p>In <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
-view architecture</xref>, the UI controller must be derived from <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>.</p>
-</li>
-<li><p>In <xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">dialog
-architecture</xref>, the UI controller is typically derived from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p>
-</li>
-</ul>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC" xml:lang="en"><title>UI controller</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The term <i>UI controller</i> refers to an object derived from either <parmname>CAknAppUi</parmname> or <parmname>CAknViewAppUi</parmname>,
+depending on your UI architecture. The UI controller is a required part of
+GUI-based applications.</p>
+<p>Examples of services and responsibilities provided by the UI controller
+are as follows:</p>
+<ul>
+<li><p>control stack for <xref href="GUID-A9330FEF-C559-4E2B-B064-0151FDADEA8C.dita">event
+handling</xref></p></li>
+<li><p>construction of <xref href="GUID-DAC32BB9-C0EB-42FF-A596-C2F1A90A4BD7.dita">views</xref> for
+applications</p></li>
+<li><p>the top-level window owning <xref href="GUID-5944FFF1-79C6-4F5E-95C8-F4833AFC64AB.dita">control</xref> of
+the application</p></li>
+</ul>
+<p>For more information on the UI controller, see:</p>
+<ul>
+<li><p><xref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita">The
+Application User Interface</xref></p></li>
+<li><p><xref href="GUID-E244744F-4837-5B46-8E37-4666A28BF0B7.dita">The
+run-time control hierarchy</xref></p></li>
+</ul>
+<p>The UI controller is part of the controller structure in the Model -
+View - Controller <xref href="GUID-BDDDF68F-F7C3-43AF-8B6C-C77C701FD2A9.dita">(MVC)
+design pattern</xref> used to design the architecture of many GUI-based mobile
+applications.</p>
+<p>The <xref href="GUID-07D2ED79-90B2-4ABC-A61F-108DAEE21955.dita"><parmname>CAknDocument</parmname></xref> -derived
+class of your application contains the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide3/index.html#CleanupSupportGuide3%2etoc" format="application/java-archive">first
+phase</xref> constructor of the UI controller.</p>
+<note>
+<p>The second-phase constructor is called by the application framework.</p>
+</note>
+<p>The UI controller is implemented in one of the following classes:</p>
+<ul>
+<li><p>In a <xref href="GUID-B5DE1C86-2B16-4B22-887F-7079E54A8ED6.dita">traditional
+architecture</xref> application architecture, the UI controller must be derived
+from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p></li>
+<li><p>In <xref href="GUID-68B999C2-0993-4804-9624-42C3D88BE5C7.dita">Symbian
+view architecture</xref>, the UI controller must be derived from <xref href="GUID-2DBA2DA9-3DA7-381C-842C-9F6FEEDF973E.dita"><apiname>CAknViewAppUi</apiname></xref>.</p>
+</li>
+<li><p>In <xref href="GUID-DD88DD7B-E246-4BF2-B537-5C677728CC49.dita">dialog
+architecture</xref>, the UI controller is typically derived from <xref href="GUID-77329067-34D9-3698-B764-294535E660EB.dita"><apiname>CAknAppUi</apiname></xref>.</p>
+</li>
+</ul>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e355285_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD503B6E-889C-521F-B61A-0EBDCA8CD9AC_d0e361365_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e71700_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FD52DFC5-03CD-4C7A-B118-0D5C90D99F1A_d0e76845_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FDD68915-5B6F-4091-A99A-64F91D508B3E.dita	Wed Mar 31 11:11:55 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FDD68915-5B6F-4091-A99A-64F91D508B3E" xml:lang="en"><title>Changes
-and release information</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>The Choice list API is an SDK API and first released in S60 5th Edition. </p>
-</conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC"><title>Data Access Example</title><shortdesc>This example describes typical processing of the data in an RMBufChain. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Downwards flow</title> <fig id="GUID-43219AE7-A0E4-570A-98ED-07D44D849979"><title>
-             Example : flow going downwards 
-          </title> <image href="GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e113991_href.png" placement="inline"/></fig> <p>The following function is a simplified example of how a component in the middle of the stack could process data sent to the driver. As shown in the above diagram, the upper layer provides the data in the <codeph>RMBufChain</codeph> parameter. </p> <codeblock id="GUID-4C87CEB3-DCFD-5765-BF89-6EF9275EB584" xml:space="preserve">
-void Send (RMBufChain &amp;aChain) 
-{
-   TBuf8&lt;KHeaderLength&gt; aHeader;
-   
-   // [...] fill the header
-
-   // request space in front of the data 
-   aChain.Prepend(KHeaderLength);
-
-   // add the protocol header
-   aChain.CopyIn(aHeader);
-
-   // send the updated chain to the next layer
-   downwardComponent-&gt;Send(aChain);
-}
-   </codeblock> <p>Note that depending on the available space remaining in front of the data in the MBuf, the <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita#GUID-F024208C-ED19-3301-85C1-53F397C9910F/GUID-A7CEF452-AB4E-378C-A262-B1C5FCBA68BB"><apiname>RMBufChain::Prepend()</apiname></xref> method may request the pond to add a new MBuf to the front of the chain. For more information, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita#GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72/GUID-5EBCD46C-5E07-5DB1-90D9-6A5CA3E36C0B">Buffer layout</xref>. </p> </section> <section><title>Upwards flow</title> <fig id="GUID-402331EB-6DE8-5DC5-9FF7-7D5DD8D816D5"><title>
-             Example : flow going upwards 
-          </title> <image href="GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e114021_href.png" placement="inline"/></fig> <p>The following function is a simplified example of how a component in the middle of the stack could process data received by the driver. As shown in the above diagram, the underlying layer provides the data in the <codeph>RMBufChain</codeph> parameter. </p> <codeblock id="GUID-C36656D9-AEB0-5DBF-A469-0183F80AE057" xml:space="preserve">
-void Process (RMBufChain &amp;aChain)
-{
-   TBuf8&lt;KHeaderLength&gt; aHeader;
-   
-   // get a copy of the header
-   aChain.CopyOut(KHeaderLength, &amp;aHeader);
-   
-   // discard the header in the chain
-   aChain.TrimStart(KHeaderLength);
-
-   // [...] process the header
-   
-   // send the updated chain to the next layer
-   appropriateUpwardComponent-&gt;Process(aChain);
-}
-</codeblock> <p>Note that the header might not be stored in a contiguous memory area: it can be splitted accross several chained MBufs. For a better performance, you should define a buffer size slightly bigger than your MTU: for more information, see <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita#GUID-6FEE5676-8BFB-53E6-A652-7178295C342E/GUID-8F0E62BA-455A-5C58-9AB1-70C79F5BA573">Pond Configuration : Recommendations</xref>. </p> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-FE3825C5-BDEE-5F18-9FFD-2E794E618FEC"><title>Data Access Example</title><shortdesc>This example describes typical processing of the data in an RMBufChain. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Downwards flow</title> <fig id="GUID-43219AE7-A0E4-570A-98ED-07D44D849979"><title>
+             Example : flow going downwards 
+          </title> <image href="GUID-30987768-8B0A-5A35-820C-DBB410D2053B_d0e107453_href.png" placement="inline"/></fig> <p>The following function is a simplified example of how a component in the middle of the stack could process data sent to the driver. As shown in the above diagram, the upper layer provides the data in the <codeph>RMBufChain</codeph> parameter. </p> <codeblock id="GUID-4C87CEB3-DCFD-5765-BF89-6EF9275EB584" xml:space="preserve">
+void Send (RMBufChain &amp;aChain) 
+{
+   TBuf8&lt;KHeaderLength&gt; aHeader;
+   
+   // [...] fill the header
+
+   // request space in front of the data 
+   aChain.Prepend(KHeaderLength);
+
+   // add the protocol header
+   aChain.CopyIn(aHeader);
+
+   // send the updated chain to the next layer
+   downwardComponent-&gt;Send(aChain);
+}
+   </codeblock> <p>Note that depending on the available space remaining in front of the data in the MBuf, the <xref href="GUID-F024208C-ED19-3301-85C1-53F397C9910F.dita#GUID-F024208C-ED19-3301-85C1-53F397C9910F/GUID-A7CEF452-AB4E-378C-A262-B1C5FCBA68BB"><apiname>RMBufChain::Prepend()</apiname></xref> method may request the pond to add a new MBuf to the front of the chain. For more information, see <xref href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita#GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72/GUID-5EBCD46C-5E07-5DB1-90D9-6A5CA3E36C0B">Buffer layout</xref>. </p> </section> <section><title>Upwards flow</title> <fig id="GUID-402331EB-6DE8-5DC5-9FF7-7D5DD8D816D5"><title>
+             Example : flow going upwards 
+          </title> <image href="GUID-11CBC0BA-3683-584A-9DC9-8BD3C9573F01_d0e107483_href.png" placement="inline"/></fig> <p>The following function is a simplified example of how a component in the middle of the stack could process data received by the driver. As shown in the above diagram, the underlying layer provides the data in the <codeph>RMBufChain</codeph> parameter. </p> <codeblock id="GUID-C36656D9-AEB0-5DBF-A469-0183F80AE057" xml:space="preserve">
+void Process (RMBufChain &amp;aChain)
+{
+   TBuf8&lt;KHeaderLength&gt; aHeader;
+   
+   // get a copy of the header
+   aChain.CopyOut(KHeaderLength, &amp;aHeader);
+   
+   // discard the header in the chain
+   aChain.TrimStart(KHeaderLength);
+
+   // [...] process the header
+   
+   // send the updated chain to the next layer
+   appropriateUpwardComponent-&gt;Process(aChain);
+}
+</codeblock> <p>Note that the header might not be stored in a contiguous memory area: it can be splitted accross several chained MBufs. For a better performance, you should define a buffer size slightly bigger than your MTU: for more information, see <xref href="GUID-6FEE5676-8BFB-53E6-A652-7178295C342E.dita#GUID-6FEE5676-8BFB-53E6-A652-7178295C342E/GUID-8F0E62BA-455A-5C58-9AB1-70C79F5BA573">Pond Configuration : Recommendations</xref>. </p> </section> </conbody><related-links><link href="GUID-55E4D84B-1B90-5BA4-9CE0-6D26EA208F13.dita"><linktext>Overview</linktext> </link> <link href="GUID-B4F15CA3-CAD4-5A87-9610-A656CA337B72.dita"><linktext>Comms Buffers (MBuf)
                 and Comms Chains</linktext> </link> </related-links></concept>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FE3AFA30-4097-51B2-B31B-9EF4A04FE7A5" xml:lang="en"><title>Windowing Example Code</title><shortdesc>Example code for the Windowing collection. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody/><related-links><link href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita"><linktext>Windowing
+  Collection</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e184843_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FE3C8D39-CE17-5AC7-AB6A-4D6664D52196_d0e191439_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FE4BBEB4-4E5A-5BF2-A72F-AF53BAD83518-master.png has changed
Binary file Symbian3/SDK/Source/GUID-FE4BBEB4-4E5A-5BF2-A72F-AF53BAD83518_d0e187538_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FE922294-380D-447D-AC46-A46EFAD79168.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FE922294-380D-447D-AC46-A46EFAD79168.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,121 +1,125 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FE922294-380D-447D-AC46-A46EFAD79168" xml:lang="en"><title>Order
-of items and browsing in grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>In a grid, the available items are in a rectangular arrangement of cells
-and browsing is possible in four directions. In addition to the up and down
-functions, the user can press the Arrow right key to move the focus one step
-to the right, or the Arrow left key to move the focus one step to the left.</p>
-<p>The number of items can be larger than what fits in the view, so the grid
-items may scroll in the view when browsing.</p>
-<ul>
-<li><p>The preferred scrolling dimension is vertical; this means that when
-more items are added, the number of items in a grid grows downwards line by
-line, but not outside the window to the left or right. </p></li>
-<li><p> A grid should not be scrollable in both dimensions; it is acceptable
-only in cases where the grid has a natural geometry that cannot be changed.
-Calendar's Month view is an example of this kind of geometry (but even in
-that case it is better to fit the whole month on the screen rather than make
-it scrollable in both dimensions).</p></li>
-<li><p>The default filling order of choice items in a grid is first left to
-right, then top-to-bottom. In right-to-left languages, the order is flipped
-horizontally.</p></li>
-</ul>
-<table id="GUID-B2580444-D5A5-4E29-A33E-F4C8B0EA9B69-GENID-1-8-1-6-1-1-5-1-9-1-1-7-1-2-4"><title>Default grid-filling
-order: Left-to-right UI languages </title>
-<tgroup cols="3"><colspec colname="col2" colwidth="0.99*"/><colspec colname="col3" colwidth="1.02*"/><colspec colname="col4" colwidth="0.98*"/>
-<tbody>
-<row>
-<entry><p>1</p></entry>
-<entry><p>2</p></entry>
-<entry><p>3</p></entry>
-</row>
-<row>
-<entry><p>4</p></entry>
-<entry><p>5</p></entry>
-<entry><p>6</p></entry>
-</row>
-<row>
-<entry><p>7</p></entry>
-<entry><p>8</p></entry>
-<entry><p>9</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table><table id="GUID-B2580444-D5A5-4E29-A33E-F4C8B0EA9B69-GENID-1-8-1-6-1-1-5-1-9-1-1-7-1-2-5"><title>Default
-grid-filling order: Right-to-left UI languages </title>
-<tgroup cols="3"><colspec colname="col7" colwidth="0.99*"/><colspec colname="col8" colwidth="1.02*"/><colspec colname="col9" colwidth="0.98*"/>
-<tbody>
-<row>
-<entry><p>3</p></entry>
-<entry><p>2</p></entry>
-<entry><p>1</p></entry>
-</row>
-<row>
-<entry><p>6</p></entry>
-<entry><p>5</p></entry>
-<entry><p>4</p></entry>
-</row>
-<row>
-<entry><p>9</p></entry>
-<entry><p>8</p></entry>
-<entry><p>7</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<p>In certain cases, it is possible that a grid is not filled completely.
-Depending on the application, the grid can be auto-filling (for example, the
-cells are moved within the grid so that empty cells in the middle get filled),
-in which case there can only be empty cells on the rightmost part of the last
-line. Other applications may allow empty cells anywhere, so that the grid
-can be sparse.</p>
-<p>Browsing in grids that scroll vertically resembles traditional scrolling
-in text editors, based on the idea that the user can always move to the correct
-row first and then move within the row to the correct item. The following
-rules are applied:</p>
-<ul>
-<li><p>Empty cells are skipped: the focus is never on an empty cell.</p><p>Note:
-An exception to this occurs when the user is moving items around in a grid;
-in that case, all cells are accessible. </p></li>
-<li><p>When browsing up or down, the focus is moved to the adjacent cell directly
-below or above the current cell if that cell is filled. In case it is empty,
-the nearest cell towards the beginning of the same row gets the focus. If
-all cells on the row are empty, the search continues on the next row in the
-same direction, and so on, until a filled cell is found. </p></li>
-<li><p>When browsing towards the end of a row, the focus moves to the following
-filled cell on the same row. If there are no filled cells in that direction
-on the row, the search continues from the beginning of the next row, and so
-on, until a filled cell is found. </p></li>
-<li><p>Browsing towards the beginning of a row moves the focus to the previous
-filled cell on the same row, or continues searching from the end of the previous
-row. Using only the Arrow right or Arrow left key, the user can thus go through
-every item in the grid, regardless of the distribution of items in it.</p><p>Note:
-In right-to-left UI languages, such as Arabic and Hebrew, the end of a row
-is on the left-hand side. Respectively, the beginning of the line is on the
-right. </p></li>
-<li><p>The grid is scrolled (moved within the view) only when the item that
-is becoming focused is not fully visible already. </p></li>
-<li><p>A grid may also loop vertically within the same column. When browsing
-down from the cell at the bottom of a column, the focus moves to the choice
-item at the top of the next column and vice versa. If the focus is in the
-last column when applying the previous rule, the focus loops over to the top
-of the first column and vice versa.</p></li>
-</ul>
-<fig id="GUID-62A2FAE4-565B-4938-9581-3BBA80F9567E">
-<title>Examples of moving the focus in a grid. a) Left-to-right UI language;
-only scroll down commands used. b) Left-to-right UI language; only scroll
-right commands used. c) Right-to-left UI language; only scroll
-down used. d) Right-to-left UI language; only scroll right used.</title>
-<image href="GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e59044_href.png" scale="40" placement="inline"/>
-</fig>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FE922294-380D-447D-AC46-A46EFAD79168" xml:lang="en"><title>Order
+of items and browsing in grids</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>In a grid, the available items are in a rectangular arrangement of cells
+and browsing is possible in four directions. In addition to the up and down
+functions, the user can press the Arrow right key to move the focus one step
+to the right, or the Arrow left key to move the focus one step to the left.</p>
+<p>The number of items can be larger than what fits in the view, so the grid
+items may scroll in the view when browsing.</p>
+<ul>
+<li><p>The preferred scrolling dimension is vertical; this means that when
+more items are added, the number of items in a grid grows downwards line by
+line, but not outside the window to the left or right. </p></li>
+<li><p> A grid should not be scrollable in both dimensions; it is acceptable
+only in cases where the grid has a natural geometry that cannot be changed.
+Calendar's Month view is an example of this kind of geometry (but even in
+that case it is better to fit the whole month on the screen rather than make
+it scrollable in both dimensions).</p></li>
+<li><p>The default filling order of choice items in a grid is first left to
+right, then top-to-bottom. In right-to-left languages, the order is flipped
+horizontally.</p></li>
+</ul>
+<table id="GUID-B2580444-D5A5-4E29-A33E-F4C8B0EA9B69-GENID-1-10-1-6-1-1-5-1-8-1-1-6-1-2-4"><title>Default grid-filling
+order: Left-to-right UI languages </title>
+<tgroup align="center" cols="3"><colspec colname="col2" colwidth="100.00pt"/>
+<colspec colname="col3" colwidth="100.00pt"/><colspec colname="col4" colwidth="100.00pt"/>
+<tbody>
+<row valign="middle">
+<entry><p>1</p></entry>
+<entry><p>2</p></entry>
+<entry><p>3</p></entry>
+</row>
+<row valign="middle">
+
+<entry><p>4</p></entry>
+<entry><p>5</p></entry>
+<entry><p>6</p></entry>
+</row>
+<row valign="middle">
+
+<entry><p>7</p></entry>
+<entry><p>8</p></entry>
+<entry><p>9</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table><table id="GUID-B2580444-D5A5-4E29-A33E-F4C8B0EA9B69-GENID-1-10-1-6-1-1-5-1-8-1-1-6-1-2-5"><title>Default
+grid-filling order: Right-to-left UI languages </title>
+<tgroup align="center" cols="3"><colspec colname="col7" colwidth="100.00pt"/>
+<colspec colname="col8" colwidth="100.00pt"/><colspec colname="col9" colwidth="100.00pt"/>
+<tbody>
+<row valign="middle">
+<entry><p>3</p></entry>
+<entry><p>2</p></entry>
+<entry><p>1</p></entry>
+</row>
+<row valign="middle">
+<entry><p>6</p></entry>
+<entry><p>5</p></entry>
+<entry><p>4</p></entry>
+</row>
+<row valign="middle">
+<entry><p>9</p></entry>
+<entry><p>8</p></entry>
+<entry><p>7</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<p>In certain cases, it is possible that a grid is not filled completely.
+Depending on the application, the grid can be auto-filling (for example, the
+cells are moved within the grid so that empty cells in the middle get filled),
+in which case there can only be empty cells on the rightmost part of the last
+line. Other applications may allow empty cells anywhere, so that the grid
+can be sparse.</p>
+<p>Browsing in grids that scroll vertically resembles traditional scrolling
+in text editors, based on the idea that the user can always move to the correct
+row first and then move within the row to the correct item. The following
+rules are applied:</p>
+<ul>
+<li><p>Empty cells are skipped: the focus is never on an empty cell.</p><p>Note:
+An exception to this occurs when the user is moving items around in a grid;
+in that case, all cells are accessible. </p></li>
+<li><p>When browsing up or down, the focus is moved to the adjacent cell directly
+below or above the current cell if that cell is filled. In case it is empty,
+the nearest cell towards the beginning of the same row gets the focus. If
+all cells on the row are empty, the search continues on the next row in the
+same direction, and so on, until a filled cell is found. </p></li>
+<li><p>When browsing towards the end of a row, the focus moves to the following
+filled cell on the same row. If there are no filled cells in that direction
+on the row, the search continues from the beginning of the next row, and so
+on, until a filled cell is found. </p></li>
+<li><p>Browsing towards the beginning of a row moves the focus to the previous
+filled cell on the same row, or continues searching from the end of the previous
+row. Using only the Arrow right or Arrow left key, the user can thus go through
+every item in the grid, regardless of the distribution of items in it.</p><p>Note:
+In right-to-left UI languages, such as Arabic and Hebrew, the end of a row
+is on the left-hand side. Respectively, the beginning of the line is on the
+right. </p></li>
+<li><p>The grid is scrolled (moved within the view) only when the item that
+is becoming focused is not fully visible already. </p></li>
+<li><p>A grid may also loop vertically within the same column. When browsing
+down from the cell at the bottom of a column, the focus moves to the choice
+item at the top of the next column and vice versa. If the focus is in the
+last column when applying the previous rule, the focus loops over to the top
+of the first column and vice versa.</p></li>
+</ul>
+<fig id="GUID-62A2FAE4-565B-4938-9581-3BBA80F9567E">
+<title>Examples of moving the focus in a grid. a) Left-to-right UI language;
+only scroll down commands used. b) Left-to-right UI language; only scroll
+right commands used. c) Right-to-left UI language; only scroll down used.
+d) Right-to-left UI language; only scroll right used.</title>
+<image href="GUID-93FFE6EF-9F6D-46BD-846C-CAC03F26E643_d0e53249_href.png" scale="40" placement="inline"/>
+</fig>
 </conbody></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FE94596E-B5BB-51FE-BE38-069840323915.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FE94596E-B5BB-51FE-BE38-069840323915.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,191 +1,191 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FE94596E-B5BB-51FE-BE38-069840323915" xml:lang="en"><title>Encoding
-Types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
-<p>This topic describes the types of SMS encoding. </p>
-<section id="GUID-F7D1E6C8-9605-57FA-9788-AF7FC72BD94C"><title>7-bit GSM encoding</title> <p>7-bit
-GSM encoding supports the GSM 7-bit default alphabet and GSM 7-bit default
-alphabet extension table through an escape mechanism. </p> <p>Figure 1 </p> <fig id="GUID-CDEE59FC-F035-5B75-8838-96E94A6714E8">
-<title>              Escape mechanism            </title>
-<image href="GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406761_href.png" placement="inline"/>
-</fig> <p>The GSM 7-bit default alphabet consists of 128 characters. Each
-character is represented by 7 bits. 10 extra characters are defined in the
-GSM 7-bit default extension table. These characters are represented by an
-escape mechanism using the escape character (0x1B). For example, 0x1B65 maps
-to the Euro sign € (U+20AC). If an escape character byte is followed by a
-character that is not included in the 10 characters, the escape character
-is just ignored. This means 0x1B41 maps to Latin capital letter A (U+0041). </p> <p>For
-more information about the GSM 7-bit default table, extension table and escape
-mechanism, see 3GPP TS 23.038 V8.1.0. </p> </section>
-<section id="GUID-918FF2E3-B9F4-5C61-8DBA-F9143DB16460"><title>Lossy 7-bit
-encoding</title> <p>Lossy 7-bit encoding enlarges the character set supported
-by 7-bit GSM encoding. Some Unicode Characters do not exist in the target
-7-bit set. These characters are converted to ones that do exist in the target
-7-bit set and closely resemble the original, intended character. A lossy encoding
-using a 7-bit encoding is more cost effective than a UCS-2 encoding. </p> <p> <b>Example
-of 7-bit encoding</b>  </p> <p>Accented Latin characters are not supported
-by 7-bit GSM encoding. Figure 2 describes how an accented Latin characters
-Á, is sent by SMS. Á has a Unicode value of 0x00C1. When it is processed by
-the Lossy converter the character is converted from the Unicode to 7-bit code
-letter A. A has a 7-bit code of 0x41. The SMS receiver reads A instead of
-Á. By substituting the character that is similar enough to the original, the
-reader can understand the word. The process of converting Á to A is called
-a lossy conversion. </p> <p> <b>Note</b>: The 7-bit code of A (0x41) can only
-be decoded back to the same Unicode letter A instead of Á. </p> <p>Figure
-2 </p> <fig id="GUID-ACFF9511-D5E0-5558-8008-4CD48EE0B7A1">
-<title>              Lossy conversion            </title>
-<image href="GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406801_href.png" placement="inline"/>
-</fig> </section>
-<section id="GUID-D2F0E6BE-932E-545D-A0C8-39017E3D67B4"><title>16-bit Unicode
-encoding</title> <p>Unicode is an international standard character set. It
-includes the characters of every language. In Unicode, each character is usually
-encoded in two 8-bit bytes, and takes up more space than 7-bit encoding. </p> </section>
-<section id="GUID-93B3DDF2-8EB1-5853-9DFD-3ABF42ADCB40"><title>National language
-encoding</title> <p>According to 3GPP TS 23.038 V8.1.0, National Language
-Encoding supports additional characters for certain languages which cannot
-be represented in the GSM default 7-bit alphabet. It defines two mechanisms
-for doing this: </p> <ul>
-<li id="GUID-9ECCA8BD-0BA0-5AE2-B2D6-4677D2CD1BD7"><p>Locking shift mechanism–the
-default GSM table is replaced with a table containing the character set needed
-for a language. The table is referred to as locking shift table. </p> </li>
-<li id="GUID-3900D849-350A-5722-9759-D1D768FE6A84"><p>Single shift mechanism–the
-GSM extension table is replaced with a table containing the character set
-needed for a language. The table is referred to as single shift table. </p> </li>
-</ul> <p>When the locking shift mechanism is used, the escape table can be
-the existing GSM extension table or it can be the escape table used by the
-single shift mechanism. This supports three possible mappings as shown in
-Figure 3: </p> <ul>
-<li id="GUID-34ECF450-6265-58E2-9CB6-00E0C5DDA6F8"><p>The GSM 7-bit default
-escapes to language-specific escape table. It is referred to as GSM-single. </p> </li>
-<li id="GUID-6E8A53BF-0572-5DE2-8D41-FB588B6FB812"><p>The Language-specific
-basic table escapes to GSM 7-bit default extension table. It is referred to
-as locking-GSM ext. </p> </li>
-<li id="GUID-830569B1-8ACD-5924-AF7F-15705FEF76B0"><p>The Language-specific
-basic table escapes to language-specific extension table. It is referred to
-as locking-single. </p> </li>
-</ul> <p>Figure 3 </p> <fig id="GUID-541CED9A-2450-5C9D-AADF-93EE59E4D77E">
-<title>              National language encoding            </title>
-<image href="GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406863_href.png" placement="inline"/>
-</fig><p>The single shift mechanism is useful when a message contains only
-a few characters outside the default GSM table. It is however inefficient
-when a message contains many unsupported characters, because each escaped
-character must occupy 2 bytes. GSM-single supports more characters than locking-GSM
-ext, but these characters are in the single table, which takes 2 bytes. Locking-single
-is used more for the decoding purpose in case the extra characters can come
-from the locking or single table. </p><p>The locking or single table is not
-a complete replacement. For example, the locking table for Turkish redefines
-only 8-character codes from the default GSM table, as shown in table 1. The
-escape table for Turkish adds 7 characters to the GSM extension, as shown
-in table 2. </p><table id="GUID-4AE6F58D-A5DA-4AD9-B39E-A61AA378F3F6"><title>Table 1</title>
-<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry><p>GSM 7-Bit Code</p></entry>
-<entry><p>Turkish Locking Shift Table</p></entry>
-<entry><p>GSM 7-Bit Default Table</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><codeph>0x40</codeph></p></entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE</p></entry>
-<entry><p>¡ INVERTED EXCLAMATION MARK </p></entry>
-</row>
-<row>
-<entry><p><codeph>0x60</codeph></p></entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA</p></entry>
-<entry><p>¿ INVERTED QUESTION MARK</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x04</codeph></p></entry>
-<entry><p>€ EURO SIGN</p></entry>
-<entry><p>è LATIN SMALL LETTER E WITH GRAVE</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x07</codeph></p></entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS</p></entry>
-<entry><p>ì LATIN SMALL LETTER I WITH GRAVE</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x0B</codeph></p></entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE</p></entry>
-<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x0C</codeph></p></entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE</p></entry>
-<entry><p>ø LATIN SMALL LETTER O WITH STROKE</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x1C</codeph></p></entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA *</p></entry>
-<entry><p>Æ LATIN CAPITAL LETTER AE</p></entry>
-</row>
-<row>
-<entry><p><codeph>0x1D</codeph></p></entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA *</p></entry>
-<entry><p>æ LATIN SMALL LETTER AE</p></entry>
-</row>
-</tbody>
-</tgroup>
-</table> <table id="GUID-EC345039-0CB5-4F51-8CFA-83286790AC75"><title>Table 2</title>
-<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
-<thead>
-<row>
-<entry><p>GSM 7-Bit Code</p></entry>
-<entry><p>Turkish Single Shift Table</p></entry>
-<entry><p>GSM 7-Bit Extension Table</p></entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry><p><codeph>0x1B49</codeph></p></entry>
-<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B63</codeph></p></entry>
-<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B69</codeph></p></entry>
-<entry><p>i LATIN SMALL LETTER DOTLESS</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B47</codeph></p></entry>
-<entry><p>G LATIN CAPITAL LETTER G WITH BREVE</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B67</codeph></p></entry>
-<entry><p>g LATIN SMALL LETTER G WITH BREVE</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B53</codeph></p></entry>
-<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA *</p></entry>
-<entry><p/></entry>
-</row>
-<row>
-<entry><p><codeph>0x1B73</codeph></p></entry>
-<entry><p>s LATIN SMALL LETTER S WITH CEDILLA *</p></entry>
-<entry><p/></entry>
-</row>
-</tbody>
-</tgroup>
-</table><p>For more information about the National Language Identifier, Single
-or Locking mechanism, see 3GPP TS 23.038 V8.1.0: National Language Identifier.</p></section>
-<section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS
-Encodings and Converters Overview</xref> </p> </section>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FE94596E-B5BB-51FE-BE38-069840323915" xml:lang="en"><title>Encoding
+Types</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This topic describes the types of SMS encoding. </p>
+<section id="GUID-F7D1E6C8-9605-57FA-9788-AF7FC72BD94C"><title>7-bit GSM encoding</title> <p>7-bit
+GSM encoding supports the GSM 7-bit default alphabet and GSM 7-bit default
+alphabet extension table through an escape mechanism. </p> <p>Figure 1 </p> <fig id="GUID-CDEE59FC-F035-5B75-8838-96E94A6714E8">
+<title>              Escape mechanism            </title>
+<image href="GUID-08A6B93F-92CD-5182-B142-D353E78016F3_d0e406599_href.png" placement="inline"/>
+</fig> <p>The GSM 7-bit default alphabet consists of 128 characters. Each
+character is represented by 7 bits. 10 extra characters are defined in the
+GSM 7-bit default extension table. These characters are represented by an
+escape mechanism using the escape character (0x1B). For example, 0x1B65 maps
+to the Euro sign € (U+20AC). If an escape character byte is followed by a
+character that is not included in the 10 characters, the escape character
+is just ignored. This means 0x1B41 maps to Latin capital letter A (U+0041). </p> <p>For
+more information about the GSM 7-bit default table, extension table and escape
+mechanism, see 3GPP TS 23.038 V8.1.0. </p> </section>
+<section id="GUID-918FF2E3-B9F4-5C61-8DBA-F9143DB16460"><title>Lossy 7-bit
+encoding</title> <p>Lossy 7-bit encoding enlarges the character set supported
+by 7-bit GSM encoding. Some Unicode Characters do not exist in the target
+7-bit set. These characters are converted to ones that do exist in the target
+7-bit set and closely resemble the original, intended character. A lossy encoding
+using a 7-bit encoding is more cost effective than a UCS-2 encoding. </p> <p> <b>Example
+of 7-bit encoding</b>  </p> <p>Accented Latin characters are not supported
+by 7-bit GSM encoding. Figure 2 describes how an accented Latin characters
+Á, is sent by SMS. Á has a Unicode value of 0x00C1. When it is processed by
+the Lossy converter the character is converted from the Unicode to 7-bit code
+letter A. A has a 7-bit code of 0x41. The SMS receiver reads A instead of
+Á. By substituting the character that is similar enough to the original, the
+reader can understand the word. The process of converting Á to A is called
+a lossy conversion. </p> <p> <b>Note</b>: The 7-bit code of A (0x41) can only
+be decoded back to the same Unicode letter A instead of Á. </p> <p>Figure
+2 </p> <fig id="GUID-ACFF9511-D5E0-5558-8008-4CD48EE0B7A1">
+<title>              Lossy conversion            </title>
+<image href="GUID-8862E271-ABA4-5A25-8990-C0B3931E370D_d0e406639_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-D2F0E6BE-932E-545D-A0C8-39017E3D67B4"><title>16-bit Unicode
+encoding</title> <p>Unicode is an international standard character set. It
+includes the characters of every language. In Unicode, each character is usually
+encoded in two 8-bit bytes, and takes up more space than 7-bit encoding. </p> </section>
+<section id="GUID-93B3DDF2-8EB1-5853-9DFD-3ABF42ADCB40"><title>National language
+encoding</title> <p>According to 3GPP TS 23.038 V8.1.0, National Language
+Encoding supports additional characters for certain languages which cannot
+be represented in the GSM default 7-bit alphabet. It defines two mechanisms
+for doing this: </p> <ul>
+<li id="GUID-9ECCA8BD-0BA0-5AE2-B2D6-4677D2CD1BD7"><p>Locking shift mechanism–the
+default GSM table is replaced with a table containing the character set needed
+for a language. The table is referred to as locking shift table. </p> </li>
+<li id="GUID-3900D849-350A-5722-9759-D1D768FE6A84"><p>Single shift mechanism–the
+GSM extension table is replaced with a table containing the character set
+needed for a language. The table is referred to as single shift table. </p> </li>
+</ul> <p>When the locking shift mechanism is used, the escape table can be
+the existing GSM extension table or it can be the escape table used by the
+single shift mechanism. This supports three possible mappings as shown in
+Figure 3: </p> <ul>
+<li id="GUID-34ECF450-6265-58E2-9CB6-00E0C5DDA6F8"><p>The GSM 7-bit default
+escapes to language-specific escape table. It is referred to as GSM-single. </p> </li>
+<li id="GUID-6E8A53BF-0572-5DE2-8D41-FB588B6FB812"><p>The Language-specific
+basic table escapes to GSM 7-bit default extension table. It is referred to
+as locking-GSM ext. </p> </li>
+<li id="GUID-830569B1-8ACD-5924-AF7F-15705FEF76B0"><p>The Language-specific
+basic table escapes to language-specific extension table. It is referred to
+as locking-single. </p> </li>
+</ul> <p>Figure 3 </p> <fig id="GUID-541CED9A-2450-5C9D-AADF-93EE59E4D77E">
+<title>              National language encoding            </title>
+<image href="GUID-44347376-702D-5648-8938-EB55AFA329EC_d0e406701_href.png" placement="inline"/>
+</fig><p>The single shift mechanism is useful when a message contains only
+a few characters outside the default GSM table. It is however inefficient
+when a message contains many unsupported characters, because each escaped
+character must occupy 2 bytes. GSM-single supports more characters than locking-GSM
+ext, but these characters are in the single table, which takes 2 bytes. Locking-single
+is used more for the decoding purpose in case the extra characters can come
+from the locking or single table. </p><p>The locking or single table is not
+a complete replacement. For example, the locking table for Turkish redefines
+only 8-character codes from the default GSM table, as shown in table 1. The
+escape table for Turkish adds 7 characters to the GSM extension, as shown
+in table 2. </p><table id="GUID-4AE6F58D-A5DA-4AD9-B39E-A61AA378F3F6"><title>Table 1</title>
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry><p>GSM 7-Bit Code</p></entry>
+<entry><p>Turkish Locking Shift Table</p></entry>
+<entry><p>GSM 7-Bit Default Table</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><codeph>0x40</codeph></p></entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE</p></entry>
+<entry><p>¡ INVERTED EXCLAMATION MARK </p></entry>
+</row>
+<row>
+<entry><p><codeph>0x60</codeph></p></entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA</p></entry>
+<entry><p>¿ INVERTED QUESTION MARK</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x04</codeph></p></entry>
+<entry><p>€ EURO SIGN</p></entry>
+<entry><p>è LATIN SMALL LETTER E WITH GRAVE</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x07</codeph></p></entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS</p></entry>
+<entry><p>ì LATIN SMALL LETTER I WITH GRAVE</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x0B</codeph></p></entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE</p></entry>
+<entry><p>Ø LATIN CAPITAL LETTER O WITH STROKE</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x0C</codeph></p></entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE</p></entry>
+<entry><p>ø LATIN SMALL LETTER O WITH STROKE</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x1C</codeph></p></entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA *</p></entry>
+<entry><p>Æ LATIN CAPITAL LETTER AE</p></entry>
+</row>
+<row>
+<entry><p><codeph>0x1D</codeph></p></entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA *</p></entry>
+<entry><p>æ LATIN SMALL LETTER AE</p></entry>
+</row>
+</tbody>
+</tgroup>
+</table> <table id="GUID-EC345039-0CB5-4F51-8CFA-83286790AC75"><title>Table 2</title>
+<tgroup cols="3"><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/>
+<thead>
+<row>
+<entry><p>GSM 7-Bit Code</p></entry>
+<entry><p>Turkish Single Shift Table</p></entry>
+<entry><p>GSM 7-Bit Extension Table</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><codeph>0x1B49</codeph></p></entry>
+<entry><p>I LATIN CAPITAL LETTER I WITH DOT ABOVE</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B63</codeph></p></entry>
+<entry><p>ç LATIN SMALL LETTER C WITH CEDILLA</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B69</codeph></p></entry>
+<entry><p>i LATIN SMALL LETTER DOTLESS</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B47</codeph></p></entry>
+<entry><p>G LATIN CAPITAL LETTER G WITH BREVE</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B67</codeph></p></entry>
+<entry><p>g LATIN SMALL LETTER G WITH BREVE</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B53</codeph></p></entry>
+<entry><p>S LATIN CAPITAL LETTER S WITH CEDILLA *</p></entry>
+<entry><p/></entry>
+</row>
+<row>
+<entry><p><codeph>0x1B73</codeph></p></entry>
+<entry><p>s LATIN SMALL LETTER S WITH CEDILLA *</p></entry>
+<entry><p/></entry>
+</row>
+</tbody>
+</tgroup>
+</table><p>For more information about the National Language Identifier, Single
+or Locking mechanism, see 3GPP TS 23.038 V8.1.0: National Language Identifier.</p></section>
+<section><title>See also</title> <p> <xref href="GUID-0BC9A9A1-DB99-5095-8390-E1C1B04D0080.dita">SMS
+Encodings and Converters Overview</xref> </p> </section>
 </conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FEFF353E-DE8A-5FBA-B696-CD01D06BE813-master.png has changed
Binary file Symbian3/SDK/Source/GUID-FEFF353E-DE8A-5FBA-B696-CD01D06BE813_d0e187563_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept id="GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438" xml:lang="en"><title>Multimedia
-Plug-ins Overview</title><shortdesc>This topic provides an overview of the components that form the
-Multimedia Plug-ins collection. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
-<section><title>Purpose</title> <p>The Multimedia Plug-ins collection represents
-a plug-in framework for handling multimedia data. </p> </section>
-<section><title>Architecture</title> <p>The components in the Multimedia Plug-ins
-collection are used by the components in the Multimedia APIs and Frameworks
-collection. The following diagram shows the architecture of the Multimedia
-Plug-ins collection: </p> <fig id="GUID-2132F240-AC05-5F54-A9A6-4332707CC387">
-<title>              Multimedia Plug-ins architecture            </title>
-<image href="GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e323720_href.png" placement="inline"/>
-</fig> </section>
-<section><title>Description</title> <p>The Multimedia Plug-ins collection
-provides a generic plug-in architecture for the Camera Framework, Imaging
-Frameworks and Multimedia Framework (MMF) components. The following types
-of plug-ins are available: </p> <ul>
-<li id="GUID-9693A45C-7A3C-57C7-9E32-E00335865AE3"><p>Codec plug-ins provide
-the conversion between different data types. </p> </li>
-<li id="GUID-8DC6F831-361B-5C17-9A17-2F2FA5C1107B"><p>Controller plug-ins
-enable support for audio and video formats. </p> </li>
-<li id="GUID-EC5F52B0-065E-54E9-B4BB-991BAB6D7E56"><p>Content Rendering Plug-ins
-(CRPs) are plug-ins that are loaded into the Window Server process for server-side
-rendering. For more information, see <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window
-Server Component</xref>. </p> </li>
-</ul> </section>
-<section><title>Components</title> <p>The Multimedia Plug-ins collection comprises
-the following components: </p> <ul>
-
-<li id="GUID-91A78BA4-B6F5-59C8-B120-D68BB0103D45"><p> <b> Camera Plug-ins</b> -
-provides a Camera stub plug-in implementation. For information about Camera
-Plug-ins see, <xref href="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita">Camera
-Plug-in Overview</xref>. </p> </li>
-<li id="GUID-8EA928CF-9E38-573B-B767-C42F44CD00FD"><p> <b>Imaging Plug-ins</b> -
-encodes and decodes various imaging formats, for example, GIF and JPEG. For
-information about Imaging Plug-ins see, <xref href="GUID-7226DB6E-93E9-57E6-B7AB-043E1C5E2A7F.dita">Imaging
-Plug-ins Overview</xref>. </p> </li>
-<li id="GUID-FB7F3BF6-1E31-546C-9B84-245350489045"><p> <b>Video Subtitle CRP
-(Content Rendering Plug-in)</b> - displays video subtitles. For information
-about Video Subtitle CRP see, <xref href="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita">Video
-Subtitle CRP Overview</xref>. </p> </li>
-</ul> </section>
-<section><title>Using Multimedia Plug-ins</title> <p>You can use the functionality
-provided by the Multimedia Plug-ins collection to: </p> <ul>
-<li id="GUID-35CB2977-799F-579E-A7DA-14ED0923E620"><p>Implement the camera
-stub plug-in. </p> </li>
-<li id="GUID-2CB2C2CF-C5B0-542C-A3F4-0FF229CECF46"><p>Encode and decode imaging
-formats. </p> </li>
-<li id="GUID-FC228509-5AC3-59EE-85DC-A5E2BC8A74DC"><p>Display video subtitles. </p> </li>
-</ul> </section>
-</conbody><related-links>
-
-<link href="GUID-6F6B6C23-D5CF-5BE7-A001-EE87BC76A65D.dita"><linktext>Camera Plug-in</linktext>
-</link>
-<link href="GUID-B61F5B98-E76E-52BF-ACB6-0C68314F190E.dita"><linktext>Imaging Plug-in</linktext>
-</link>
-<link href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita"><linktext>Video Subtitle
-CRP</linktext></link>
-<link href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita"><linktext>Writing 
-               Multimedia Framework Plug-ins</linktext></link>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FF08B8F5-9881-5BA3-ACD1-C09E40A09438" xml:lang="en"><title>Multimedia
+Plug-ins Overview</title><shortdesc>This topic provides an overview of the components that form the
+Multimedia Plug-ins collection. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Purpose</title> <p>The Multimedia Plug-ins collection represents
+a plug-in framework for handling multimedia data. </p> </section>
+<section><title>Architecture</title> <p>The components in the Multimedia Plug-ins
+collection are used by the components in the Multimedia APIs and Frameworks
+collection. The following diagram shows the architecture of the Multimedia
+Plug-ins collection: </p> <fig id="GUID-2132F240-AC05-5F54-A9A6-4332707CC387">
+<title>              Multimedia Plug-ins architecture            </title>
+<image href="GUID-5B8061C3-3BED-51D7-9919-5BA16EA6C6FE_d0e317563_href.png" placement="inline"/>
+</fig> </section>
+<section><title>Description</title> <p>The Multimedia Plug-ins collection
+provides a generic plug-in architecture for the Camera Framework, Imaging
+Frameworks and Multimedia Framework (MMF) components. The following types
+of plug-ins are available: </p> <ul>
+<li id="GUID-9693A45C-7A3C-57C7-9E32-E00335865AE3"><p>Codec plug-ins provide
+the conversion between different data types. </p> </li>
+<li id="GUID-8DC6F831-361B-5C17-9A17-2F2FA5C1107B"><p>Controller plug-ins
+enable support for audio and video formats. </p> </li>
+<li id="GUID-EC5F52B0-065E-54E9-B4BB-991BAB6D7E56"><p>Content Rendering Plug-ins
+(CRPs) are plug-ins that are loaded into the Window Server process for server-side
+rendering. For more information, see <xref href="GUID-0C4B86B5-530A-5839-86C1-46E7ABE281E0.dita">Window
+Server Component</xref>. </p> </li>
+</ul> </section>
+<section><title>Components</title> <p>The Multimedia Plug-ins collection comprises
+the following components: </p> <ul>
+
+<li id="GUID-91A78BA4-B6F5-59C8-B120-D68BB0103D45"><p> <b> Camera Plug-ins</b> -
+provides a Camera stub plug-in implementation. For information about Camera
+Plug-ins see, <xref href="GUID-2CEF22AD-7F80-58CE-AF5F-C7BF636D524F.dita">Camera
+Plug-in Overview</xref>. </p> </li>
+<li id="GUID-8EA928CF-9E38-573B-B767-C42F44CD00FD"><p> <b>Imaging Plug-ins</b> -
+encodes and decodes various imaging formats, for example, GIF and JPEG. For
+information about Imaging Plug-ins see, <xref href="GUID-7226DB6E-93E9-57E6-B7AB-043E1C5E2A7F.dita">Imaging
+Plug-ins Overview</xref>. </p> </li>
+<li id="GUID-FB7F3BF6-1E31-546C-9B84-245350489045"><p> <b>Video Subtitle CRP
+(Content Rendering Plug-in)</b> - displays video subtitles. For information
+about Video Subtitle CRP see, <xref href="GUID-80E8BA3A-FDF3-50A5-BF44-181C40C31F09.dita">Video
+Subtitle CRP Overview</xref>. </p> </li>
+</ul> </section>
+<section><title>Using Multimedia Plug-ins</title> <p>You can use the functionality
+provided by the Multimedia Plug-ins collection to: </p> <ul>
+<li id="GUID-35CB2977-799F-579E-A7DA-14ED0923E620"><p>Implement the camera
+stub plug-in. </p> </li>
+<li id="GUID-2CB2C2CF-C5B0-542C-A3F4-0FF229CECF46"><p>Encode and decode imaging
+formats. </p> </li>
+<li id="GUID-FC228509-5AC3-59EE-85DC-A5E2BC8A74DC"><p>Display video subtitles. </p> </li>
+</ul> </section>
+</conbody><related-links>
+
+<link href="GUID-6F6B6C23-D5CF-5BE7-A001-EE87BC76A65D.dita"><linktext>Camera Plug-in</linktext>
+</link>
+<link href="GUID-B61F5B98-E76E-52BF-ACB6-0C68314F190E.dita"><linktext>Imaging Plug-in</linktext>
+</link>
+<link href="GUID-412CB101-A92C-54E1-9518-79E94DD40A08.dita"><linktext>Video Subtitle
+CRP</linktext></link>
+<link href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita"><linktext>Writing 
+               Multimedia Framework Plug-ins</linktext></link>
 </related-links></concept>
\ No newline at end of file
--- a/Symbian3/SDK/Source/GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD"><title>What are Access Point Priorities?</title><shortdesc>This topic explains access point priorities and how the values are inherited. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>Contention management issues are resolved using the priorities associated with the Access Points. Priorities are assigned to Access Point Layers. If an incoming GPRS connection has a higher priority than an existing GRPS connection, the existing connection is stopped and the new connection is started. If the incoming GPRS connection has a lower priority than all existing GPRS connections the incoming GPRS connection is discarded. </p> <p>The Access Point priority is stored in the CommsDat AccessPointTable. You can specify a priority for access point using the CommsData config file in “cfg” format. The priority range is 1-KMaxTUint where 1 is high priority and KMaxTUint is low priority. If a priority is not assigned to an access point the default value is KMaxTUint is given. A zero priority value is not allowed. </p> <example><title>Access Point Priority Inheritance Example</title> <p>Access Point Priorities can be inherited between Access Point Layers. The current Access Point Layer priority is compared to the inherited Access Point priority, the highest priority is assigned to the Point Layer. This means that the priority of an Access point layer can be overridden by an inherited priority. </p> <p> <codeph>CurrentPriority = max_priority{AccessPointPriority,
-          inherited_priority}</codeph>  </p> <p>The following diagram contains three Access Point Layers. Each Access Point Layer has an associated priority. </p> <fig id="GUID-25A488E3-B1B8-58BB-835F-944D4480B5F9"><image href="GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e347660_href.png" placement="inline"/></fig> <p>As a result of inheritance the following priorities are applied. </p> <p>For IP_MCPR1 the resultant priority is {3, KmaxTUint} = 3 </p> <p>For IPPROTO_MCPR1 the resultant priority is {3, 5} = 3 </p> <p>For PDP_MCPR1 the resultant priority is {4, 3} = 3 </p> </example> <section><title>Changes in Access Point Priorities at Runtime</title> <p>The following diagram outlines how priorities can change at runtime. </p> <fig id="GUID-9D3C98CE-9C35-5B89-AA55-28D4695814E7"><image href="GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e347683_href.png" placement="inline"/></fig> <p>In this example: </p> <ul><li id="GUID-8C8FEAA2-27E5-5A7D-9B88-CB33E494429F"><p>Two stack configurations (SNAP1 and SNAP2) are defined in the CommsDat. The configurations have different settings for the IP layer but the same IPProto and PDP layers. </p> </li> <li id="GUID-09F5F8EF-C969-57E8-9E26-4F1AC95C707C"><p>An application is started on SNAP1. IP_CPR1 and IP_MCPR1 are created. </p> </li> <li id="GUID-D87C4F2D-07BD-5FAB-AEFE-17F0448B6439"><p>A second application is started on SNAP2. IP_CPR2 and IP_MCPR2 are created. </p> </li> <li id="GUID-462FEA77-7CCB-5A12-817D-91FFF9239C05"><p>Current priorities for IPProto and PDP layer will be recalculated. On this example they do not change because priority 6 is the lowest priority in this stack. </p> </li> <li id="GUID-758ECDB2-148D-5E05-A3F0-E116AB169368"><p>If first application stops its connection and second application continue to work, IP_CPR1 is destroyed. IPPROTO_CPR1 and PDP_CPR1 priorities will be recalculated. </p> <p>IPPROTO_CPR1 priority = max_priority{5, 6} = 5 </p> <p>PDP_CPR1 priority = max_priority{4, 5} = 4 </p> </li> </ul> </section> </conbody><related-links><link href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita"><linktext>What is Contention?</linktext> </link> <link href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita"><linktext>What is Contention
-                Management?</linktext> </link> <link href="GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita"><linktext>Starting a Network Connection
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-FF81C5C5-09B7-5194-928E-0BA87417B2CD"><title>What are Access Point Priorities?</title><shortdesc>This topic explains access point priorities and how the values are inherited. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>Contention management issues are resolved using the priorities associated with the Access Points. Priorities are assigned to Access Point Layers. If an incoming GPRS connection has a higher priority than an existing GRPS connection, the existing connection is stopped and the new connection is started. If the incoming GPRS connection has a lower priority than all existing GPRS connections the incoming GPRS connection is discarded. </p> <p>The Access Point priority is stored in the CommsDat AccessPointTable. You can specify a priority for access point using the CommsData config file in “cfg” format. The priority range is 1-KMaxTUint where 1 is high priority and KMaxTUint is low priority. If a priority is not assigned to an access point the default value is KMaxTUint is given. A zero priority value is not allowed. </p> <example><title>Access Point Priority Inheritance Example</title> <p>Access Point Priorities can be inherited between Access Point Layers. The current Access Point Layer priority is compared to the inherited Access Point priority, the highest priority is assigned to the Point Layer. This means that the priority of an Access point layer can be overridden by an inherited priority. </p> <p> <codeph>CurrentPriority = max_priority{AccessPointPriority,
+          inherited_priority}</codeph>  </p> <p>The following diagram contains three Access Point Layers. Each Access Point Layer has an associated priority. </p> <fig id="GUID-25A488E3-B1B8-58BB-835F-944D4480B5F9"><image href="GUID-B16E3A7D-FF14-559A-BF86-2A1A1A584CDC_d0e341463_href.png" placement="inline"/></fig> <p>As a result of inheritance the following priorities are applied. </p> <p>For IP_MCPR1 the resultant priority is {3, KmaxTUint} = 3 </p> <p>For IPPROTO_MCPR1 the resultant priority is {3, 5} = 3 </p> <p>For PDP_MCPR1 the resultant priority is {4, 3} = 3 </p> </example> <section><title>Changes in Access Point Priorities at Runtime</title> <p>The following diagram outlines how priorities can change at runtime. </p> <fig id="GUID-9D3C98CE-9C35-5B89-AA55-28D4695814E7"><image href="GUID-46E27DAF-B72D-5A86-91BB-1B3C0788C6A5_d0e341486_href.png" placement="inline"/></fig> <p>In this example: </p> <ul><li id="GUID-8C8FEAA2-27E5-5A7D-9B88-CB33E494429F"><p>Two stack configurations (SNAP1 and SNAP2) are defined in the CommsDat. The configurations have different settings for the IP layer but the same IPProto and PDP layers. </p> </li> <li id="GUID-09F5F8EF-C969-57E8-9E26-4F1AC95C707C"><p>An application is started on SNAP1. IP_CPR1 and IP_MCPR1 are created. </p> </li> <li id="GUID-D87C4F2D-07BD-5FAB-AEFE-17F0448B6439"><p>A second application is started on SNAP2. IP_CPR2 and IP_MCPR2 are created. </p> </li> <li id="GUID-462FEA77-7CCB-5A12-817D-91FFF9239C05"><p>Current priorities for IPProto and PDP layer will be recalculated. On this example they do not change because priority 6 is the lowest priority in this stack. </p> </li> <li id="GUID-758ECDB2-148D-5E05-A3F0-E116AB169368"><p>If first application stops its connection and second application continue to work, IP_CPR1 is destroyed. IPPROTO_CPR1 and PDP_CPR1 priorities will be recalculated. </p> <p>IPPROTO_CPR1 priority = max_priority{5, 6} = 5 </p> <p>PDP_CPR1 priority = max_priority{4, 5} = 4 </p> </li> </ul> </section> </conbody><related-links><link href="GUID-CD57B3EB-B8FD-53CE-B319-FB6275BE391E.dita"><linktext>What is Contention?</linktext> </link> <link href="GUID-0E0D4E95-470F-54BE-8DCB-719976C8B84C.dita"><linktext>What is Contention
+                Management?</linktext> </link> <link href="GUID-01979029-C009-5FD3-9925-2B7945FB96A6.dita"><linktext>Starting a Network Connection
                 Tutorial</linktext> </link> </related-links></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e79983_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FFBB390B-0A5D-5ABC-A111-95B3C84818DE_d0e86695_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e3849_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FFC6F01E-15AB-43E6-90E8-0E42DA297AE9_d0e5124_href.png has changed
--- a/Symbian3/SDK/Source/GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7.dita	Wed Mar 31 11:11:55 2010 +0100
+++ b/Symbian3/SDK/Source/GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7.dita	Fri Jun 11 12:39:03 2010 +0100
@@ -1,12 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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" 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: 
--->
-<!DOCTYPE concept
-  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
-<concept xml:lang="en" id="GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7"><title>List of Constants and Enumerations</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The following are the SIP profile settings that are available as a part of the SIP Profile API: </p> <p> <xref href="GUID-8A57B75A-C1FE-3704-8ECC-714E3BF7B3E9.dita"><apiname>KSIPProfileId</apiname></xref>, <xref href="GUID-6644F3AC-CEDB-3305-BA74-CAB7F5DFA16C.dita"><apiname>KSIPProviderName</apiname></xref>, <xref href="GUID-9EC404AC-CDF9-3588-AEC2-FD23999E5212.dita"><apiname>KSIPAccessPointId</apiname></xref>, <xref href="GUID-73D9179A-B9E7-3215-9755-968593C542A0.dita"><apiname>KSIPSigComp</apiname></xref>, <xref href="GUID-B538300D-8850-350F-99E9-1AE195DF414B.dita"><apiname>KSIPSecurityNegotiation</apiname></xref>, <xref href="GUID-5D8A6FF4-9DC9-3CC8-9070-E512795503AD.dita"><apiname>KSIPAutoRegistration</apiname></xref>, <xref href="GUID-8BAC0A4A-4C03-313D-AEE6-9EEB826327A4.dita"><apiname>KSIPUserAor</apiname></xref>, <xref href="GUID-DBFD1EE5-D0A7-3E72-AFCF-00C7257F1188.dita"><apiname>KSIPProfileRegistered</apiname></xref>, <xref href="GUID-A2395816-C415-33F0-857A-5D547B8C62F4.dita"><apiname>KSIPRegisteredAors</apiname></xref>, <xref href="GUID-D1FF5D46-F27B-36D9-82C5-5ADDFC09A78E.dita"><apiname>KSIPNegotiatedSecurityMechanism</apiname></xref>, <xref href="GUID-FEA1F3FE-EF36-31E3-9CC8-52E71E557E5A.dita"><apiname>KSIPDefaultProfile</apiname></xref>, <xref href="GUID-86382B70-DDEF-3471-92D5-314D2D2ED7D9.dita"><apiname>KSIPContactHeaderParams</apiname></xref>, <xref href="GUID-5499CA84-8FFA-35F6-BFCB-65514F23B25D.dita"><apiname>KSIPRegistrar</apiname></xref>, <xref href="GUID-A46F476F-40D1-3893-952F-8E958132653F.dita"><apiname>KSIPResolveProxy</apiname></xref>, <xref href="GUID-51E1043D-5FC6-3A79-911B-816CE8043A25.dita"><apiname>KSIPOutboundProxy</apiname></xref>, <xref href="GUID-F0D0FF92-A578-384E-A29F-06F19BFBC35F.dita"><apiname>KSIPRegisteredContact</apiname></xref>, <xref href="GUID-803DC494-57F5-3993-B060-3D73EC7A56B9.dita"><apiname>KSIPDigestUserName</apiname></xref>, <xref href="GUID-CFED4B8A-BF3E-3D9A-BE43-97FBDF307F5E.dita"><apiname>KSIPDigestRealm</apiname></xref>, <xref href="GUID-0A75B17F-0FC0-31F4-876D-A4149AF04EA5.dita"><apiname>KSIPServerAddress</apiname></xref>, <xref href="GUID-6158FD32-D6F8-3ABC-B43A-92E507AA5DC1.dita"><apiname>KSIPSnapId</apiname></xref>, <xref href="GUID-5722F228-5EF8-3955-AA50-E9C2EDF877B7.dita"><apiname>KSIPContactHeaderUser</apiname></xref>, <xref href="GUID-D9365F24-C781-3448-97B3-3D95720743FA.dita"><apiname>KSIPSoIpTOS</apiname></xref>. </p> <p>The following are the Profile Registry Events that are available as a part of the SIP Profile API: </p> <p> <xref href="GUID-92312598-A5DA-36B9-AF46-E7EE80452792.dita"><apiname>EProfileCreated</apiname></xref>, <xref href="GUID-50139B57-F5E0-3548-B373-077566B09692.dita"><apiname>EProfileUpdated</apiname></xref>, <xref href="GUID-F78ECFEB-441F-3D55-9909-A3F82F738F7E.dita"><apiname>EProfileRegistered</apiname></xref>, <xref href="GUID-1BB61FBD-6145-3674-9AF6-76F27CEE018F.dita"><apiname>EProfileDeregistered</apiname></xref>, <xref href="GUID-EF7A7A13-3B11-3021-8DEE-4AF88B82D48E.dita"><apiname>EProfileDestroyed</apiname></xref>. </p> <p>The following are the Container for the profile type information as a part of the SIP Profile API. </p> <p> <xref href="GUID-C5A7C867-7338-3AA7-A184-6254B1284D11.dita"><apiname>EInternet</apiname></xref>, <xref href="GUID-34D23C1F-53BB-3185-B4A0-CA390D935D3A.dita"><apiname>EIms</apiname></xref>, <xref href="GUID-66779747-E56E-3884-8F83-E753F4A4D67C.dita"><apiname>EOther</apiname></xref>. </p> <p>The following are the SIP Profile ALR events as part of the SIP Profile API: </p> <p> <xref href="GUID-F6739001-7FA7-3FB6-ABD2-B2B666FE247C.dita"><apiname>EIapAvailable</apiname></xref>, <xref href="GUID-EC34F4CB-73B5-3342-87C6-040E8B10CB9A.dita"><apiname>EMigrationStarted</apiname></xref>, <xref href="GUID-C15DA58C-7A8D-3D11-9E93-2E1054FE94D3.dita"><apiname>EMigrationCompleted</apiname></xref>. </p> <p>The following are the SIP Managed Profile settings that are available as a part of the SIP Managed Profile API: </p> <p> <xref href="GUID-9190861F-B1B4-3F22-9039-837DE644AD5D.dita"><apiname>KSIPPrivateIdentity</apiname></xref>, <xref href="GUID-33C37EF6-2A87-3934-8622-061816E23997.dita"><apiname>KSIPDigestPassword</apiname></xref>, <xref href="GUID-29780BDE-A989-3CCF-A2AA-A4FE89C8578A.dita"><apiname>KSIPHeaders</apiname></xref>, <xref href="GUID-83EFCF24-3444-34E1-A1D8-176AC9AD72F2.dita"><apiname>KSIPAllowIMSRegistration</apiname></xref>, <xref href="GUID-B7C8C956-7A2B-3E02-83F7-D6101F2FF5B2.dita"><apiname>KSIPProfileLocked</apiname></xref>, <xref href="GUID-135C27A3-9215-3306-A3FD-9DEA72F50589.dita"><apiname>KSIPAllowAutoRegistrationOnlyOnHomeNetwork</apiname></xref>. </p> <p> </p> </conbody></concept>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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" 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-FFE69A34-2FF8-5FC9-A295-5D3C05A2D7D7" xml:lang="en"><title>List of
+Constants and Enumerations</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following are the SIP profile settings that are available as a part
+of the SIP Profile API: </p>
+<p> <codeph>KSIPProfileId</codeph>, <codeph>KSIPProviderName</codeph>, <codeph>KSIPAccessPointId</codeph>, <codeph>KSIPSigComp</codeph>, <codeph>KSIPSecurityNegotiation</codeph>, <codeph>KSIPAutoRegistration</codeph>,<codeph>KSIPUserAor</codeph> , <codeph>KSIPProfileRegistered</codeph>, <codeph>KSIPRegisteredAors</codeph>, <codeph>KSIPNegotiatedSecurityMechanism</codeph>, <codeph>KSIPDefaultProfile</codeph>, <codeph>KSIPContactHeaderParams</codeph><codeph>KSIPRegistrar</codeph>, <codeph>KSIPResolveProxy</codeph>, <codeph>KSIPOutboundProxy</codeph>, <codeph>KSIPRegisteredContact</codeph>, <codeph>KSIPDigestUserName</codeph>, <codeph>KSIPDigestRealm</codeph>, <codeph>KSIPServerAddress</codeph>, <codeph>KSIPSnapId</codeph>, <codeph>KSIPContactHeaderUser</codeph>, <codeph>KSIPSoIpTOS</codeph>. </p>
+<p>The following are the Profile Registry Events that are available as a part
+of the SIP Profile API: </p>
+<p><codeph>EProfileCreated</codeph> , <codeph>EProfileUpdated</codeph>, <codeph>EProfileRegistered</codeph>, <codeph>EProfileDeregistered</codeph>, <codeph>EProfileDestroyed</codeph>. </p>
+<p>The following are the Container for the profile type information as a part
+of the SIP Profile API. </p>
+<p> <codeph>EInternet</codeph>, <codeph>EIms</codeph>, <codeph>EOther</codeph>. </p>
+<p>The following are the SIP Profile ALR events as part of the SIP Profile
+API: </p>
+<p> <codeph>EIapAvailable</codeph>, <codeph>EMigrationStarted</codeph>, <codeph>EMigrationCompleted</codeph>. </p>
+<p>The following are the SIP Managed Profile settings that are available as
+a part of the SIP Managed Profile API: </p>
+<p> <codeph>KSIPPrivateIdentity</codeph>, <codeph>KSIPDigestPassword</codeph>, <codeph>KSIPHeaders</codeph>, <codeph>KSIPAllowIMSRegistration</codeph>, <codeph>KSIPProfileLocked</codeph>, <codeph>KSIPAllowAutoRegistrationOnlyOnHomeNetwork</codeph>. </p>
+<p> </p>
+</conbody></concept>
\ No newline at end of file
Binary file Symbian3/SDK/Source/GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e338240_href.png has changed
Binary file Symbian3/SDK/Source/GUID-FFE6BAF8-C093-53FC-8672-365BAF38E048_d0e344437_href.png has changed